This is an old revision of
Doc/Vision from 2017-08-22 09:47:41..
Ìîäóëü "Vision" ïîäñèñòåìû "Ïîëüçîâàòåëüñêèå èíòåðôåéñû"
Ìîäóëü: | Vision |
Èìÿ: | Ðàáî÷èé ïîëüçîâàòåëüñêèé èíòåðôåéñ (Qt) |
Òèï: | Ïîëüçîâàòåëüñêèå èíòåðôåéñû |
Èñòî÷íèê: | ui_Vision.so |
Âåðñèÿ: | 4.5 |
Àâòîð: | Ðîìàí Ñàâî÷åíêî, Ìàêñèì Ëûñåíêî (2007-2012), Êñåíèÿ ßøèíà (2007-2008) |
Îïèñàíèå: | Âèçóàëüíûé ðàáî÷èé ïîëüçîâàòåëüñêèé èíòåðôåéñ. |
Ëèöåíçèÿ: | GPL |
Ââåäåíèå
Ìîäóëü Vision ïðåäîñòàâëÿåò ìåõàíèçì êîíå÷íîé âèçóàëèçàöèè ñðåäû âèçóàëèçàöèè è óïðàâëåíèÿ (ÑÂÓ) â ñèñòåìó OpenSCADA. Ìîäóëü îñíîâàí íà ìíîãîïëàòôîðìåííîé áèáëèîòåêå ãðàôè÷åñêîãî ïîëüçîâàòåëüñêîãî èíòåðôåéñà (GUI) ôèðìû TrollTech – Qt(http://www.trolltech.com/qt).  ñâîåé ðàáîòå ìîäóëü èñïîëüçóåò äàííûå äâèæêà ÑÂÓ (ìîäóëü VCAEngine).
Ñðåäà âèçóàëèçàöèè è óïðàâëåíèÿ (ÑÂÓ) ÿâëÿåòñÿ íåîòúåìëåìîé ñîñòàâëÿþùåé SCADA ñèñòåìû. Îíà ïðèìåíÿåòñÿ íà êëèåíòñêèõ ñòàíöèÿõ ñ öåëüþ äîñòóïíîãî ïðåäîñòàâëåíèÿ èíôîðìàöèè îá îáúåêòå óïðàâëåíèÿ è âûäà÷è óïðàâëÿþùèõ âîçäåéñòâèé íà îáúåêò.  ðàçëè÷íûõ ïðàêòè÷åñêèõ ñëó÷àÿõ è óñëîâèÿõ ìîãóò ïðèìåíÿòüñÿ ÑÂÓ, ïîñòðîåííûå íà ðàçëè÷íûõ ïðèíöèïàõ âèçóàëèçàöèè. Íàïðèìåð, ýòî ìîãóò áûòü áèáëèîòåêè âèäæåòîâ Qt, GTK+, wxWidgets èëè ãèïåðòåêñòîâûå ìåõàíèçìû íà îñíîâå òåõíîëîãèé HTML, XHTML, XML, CSS è JavaScript, èëè æå ñòîðîííèå ïðèëîæåíèÿ âèçóàëèçàöèè, ðåàëèçîâàííûå íà ðàçëè÷íûõ ÿçûêàõ ïðîãðàììèðîâàíèÿ: Java, Python è ò.ä. Ëþáîé èç ýòèõ ïðèíöèïîâ èìååò ñâîè ïðåèìóùåñòâà è íåäîñòàòêè, êîìáèíàöèÿ êîòîðûõ ìîæåò ñòàòü íåïðåîäîëèìûì ïðåïÿòñòâèåì â âîçìîæíîñòè èñïîëüçîâàíèÿ ÑÂÓ â òîì èëè èíîì ïðàêòè÷åñêîì ñëó÷àå. Íàïðèìåð, òåõíîëîãèè âðîäå áèáëèîòåêè Qt ïîçâîëÿþò ñîçäàâàòü âûñîêîðåàêòèâíûå ÑÂÓ, ÷òî íåñîìíåííî âàæíî äëÿ ñòàíöèé îïåðàòîðà óïðàâëåíèÿ òåõíîëîãè÷åñêèì ïðîöåññîì (ÒÏ). Îäíàêî íåîáõîäèìîñòü èíñòàëëÿöèè äàííîãî êëèåíòñêîãî ÏÎ â îòäåëüíûõ ñèòóàöèÿõ ìîæåò ñäåëàòü èñïîëüçîâàíèå åãî íåâîçìîæíûì. Ñ äðóãîé ñòîðîíû Web-òåõíîëîãèè íå òðåáóþò èíñòàëëÿöèè íà êëèåíòñêèå ñèñòåìû è ÿâëÿþòñÿ ïðåäåëüíî ìíîãîïëàòôîðìåííûìè (äîñòàòî÷íî ñîçäàòü ññûëêó íà Web-ñåðâåð â ëþáîì Web-áðàóçåðå), ÷òî íàèáîëåå âàæíî äëÿ ðàçëè÷íûõ èíæåíåðíûõ è àäìèíèñòðàòèâíûõ ñòàíöèé. Íî ðåàêòèâíîñòü è íàä¸æíîñòü òàêèõ èíòåðôåéñîâ íèæå, ÷òî ïðàêòè÷åñêè èñêëþ÷àåò èõ èñïîëüçîâàíèÿ íà ñòàíöèÿõ îïåðàòîðà ÒÏ.
Ñèñòåìà OpenSCADA èìååò ãèáêóþ àðõèòåêòóðó, êîòîðàÿ ïîçâîëÿåò ñîçäàâàòü âíåøíèå èíòåðôåéñû, â òîì ÷èñëå è ïîëüçîâàòåëüñêèå, íà ëþáîé îñíîâå è íà ëþáîé âêóñ. Íàïðèìåð, ñðåäà êîíôèãóðàöèè ñèñòåìû OpenSCADA äîñòóïíà êàê íà Qt áèáëèîòåêå, òàê è íà Web-îñíîâå.
 òîæå âðåìÿ íåçàâèñèìîå ñîçäàíèå ðåàëèçàöèé ÑÂÓ íà ðàçëè÷íîé îñíîâå ìîæåò ïîâëå÷ü çà ñîáîé íåâîçìîæíîñòü èñïîëüçîâàíèÿ äàííûõ êîíôèãóðàöèè îäíîé ÑÂÓ â äðóãîé, ÷òî íåóäîáíî è îãðàíè÷åíî ñ ïîëüçîâàòåëüñêîé ñòîðîíû, à òàêæå íàêëàäíî â ïëàíå ðåàëèçàöèè è ïîñëåäóþùåé ïîääåðæêè. Ñ öåëüþ èçáåæàíèÿ ýòèõ ïðîáëåì, à òàêæå ñîçäàíèÿ â êðàò÷àéøèå ñðîêè ïîëíîãî ñïåêòðà ðàçëè÷íûõ òèïîâ ÑÂÓ îñíîâàí ïðîåêò ñîçäàíèÿ êîíöåïöèè ÑÂÓ?. Ðåçóëüòàòîì ýòîãî ïðîåêòà è ñòàë äàííûé ìîäóëü íåïîñðåäñòâåííîé âèçóàëèçàöèè (íà îñíîâå áèáëèîòåêè Qt), ìîäóëü íåïîñðåäñòâåííîé âèçóàëèçàöèè WebVision è äâèæîê ÑÂÓ VCAEngine.
1. Íàçíà÷åíèå
Äàííûé ìîäóëü íåïîñðåäñòâåííîé âèçóàëèçàöèè ÑÂÓ ïðåäíàçíà÷åí äëÿ ôîðìèðîâàíèÿ è èñïîëíåíèÿ èíòåðôåéñîâ ÑÂÓ â ñðåäå ãðàôè÷åñêîé áèáëèîòåêè Qt. Ìîäóëü ÑÂÓ îáåñïå÷èâàåò:
- òðè óðîâíÿ ñëîæíîñòè â ôîðìèðîâàíèè èíòåðôåéñà âèçóàëèçàöèè, ïîçâîëÿþùèå îðãàíè÷íî îñâàèâàòü è ïðèìåíÿòü èíñòðóìåíòàðèé ïî ìåòîäèêå îò ïðîñòîãî ê ñëîæíîìó:
- ôîðìèðîâàíèå èç øàáëîííûõ êàäðîâ ïóò¸ì íàçíà÷åíèÿ äèíàìèêè (áåç ãðàôè÷åñêîé êîíôèãóðàöèè);
- ãðàôè÷åñêîå ôîðìèðîâàíèå íîâûõ êàäðîâ ïóò¸ì èñïîëüçîâàíèÿ ãîòîâûõ ýëåìåíòîâ âèçóàëèçàöèè èç áèáëèîòåêè (ìíåìîñõåìû);
- ôîðìèðîâàíèå íîâûõ êàäðîâ, øàáëîííûõ êàäðîâ è ýëåìåíòîâ îòîáðàæåíèå â áèáëèîòåêè.
- ïîñòðîåíèå èíòåðôåéñîâ âèçóàëèçàöèè ðàçëè÷íîé ñëîæíîñòè, íà÷èíàÿ îò ïðîñòûõ ïëîñêèõ èíòåðôåéñîâ ìîíèòîðèíãà è çàêàí÷èâàÿ ïîëíîöåííûìè èåðàðõè÷åñêèìè èíòåðôåéñàìè, èñïîëüçóåìûìè â SCADA ñèñòåìàõ;
- ïðåäîñòàâëåíèå ðàçëè÷íûõ ñïîñîáîâ ôîðìèðîâàíèÿ è êîíôèãóðàöèè ïîëüçîâàòåëüñêîãî èíòåðôåéñà, îñíîâàííûõ íà ðàçëè÷íûõ èíòåðôåéñàõ ãðàôè÷åñêîãî ïðåäñòàâëåíèÿ (Qt, Web, Java ...) èëè æå ïîñðåäñòâîì ñòàíäàðòíîãî èíòåðôåéñà óïðàâëåíèÿ ñèñòåìîé OpenSCADA;
- ñìåíó äèíàìèêè â ïðîöåññå èñïîëíåíèÿ;
- ïîñòðîåíèå íîâûõ øàáëîííûõ êàäðîâ íà óðîâíå ïîëüçîâàòåëÿ è ôîðìèðîâàíèå ñïåöèàëèçèðîâàííûõ ïîä îáëàñòü ïðèìåíåíèÿ áèáëèîòåê êàäðîâ (íàïðèìåð, âêëþ÷åíèå êàäðîâ ïàðàìåòðîâ, ãðàôèêîâ è äðóãèõ ýëåìåíòîâ ñ óâÿçêîé èõ äðóã ñ äðóãîì), â ñîîòâåòñòâèè ñ òåîðèåé ïîâòîðíîãî èñïîëüçîâàíèÿ è íàêîïëåíèÿ;
- ïîñòðîåíèå íîâûõ ïîëüçîâàòåëüñêèõ ýëåìåíòîâ âèçóàëèçàöèè è ôîðìèðîâàíèå ñïåöèàëèçèðîâàííûõ ïîä îáëàñòü ïðèìåíåíèÿ áèáëèîòåê êàäðîâ â ñîîòâåòñòâèè ñ òåîðèåé ïîâòîðíîãî èñïîëüçîâàíèÿ è íàêîïëåíèÿ;
- îïèñàíèå ëîãèêè íîâûõ øàáëîííûõ êàäðîâ è ïîëüçîâàòåëüñêèõ ýëåìåíòîâ âèçóàëèçàöèè êàê ïðîñòûìè ñâÿçÿìè, òàê è ëàêîíè÷íûì, ïîëíîöåííûì ÿçûêîì ïîëüçîâàòåëüñêîãî ïðîãðàììèðîâàíèÿ;
- âîçìîæíîñòü âêëþ÷åíèÿ â ïîëüçîâàòåëüñêèå ýëåìåíòû âèçóàëèçàöèè ôóíêöèé (èëè êàäðîâ âû÷èñëåíèÿ ôóíêöèé) îáúåêòíîé ìîäåëè OpenSCADA, ïðàêòè÷åñêè ñâÿçûâàÿ ïðåäñòàâëåíèå ñ àëãîðèòìîì âû÷èñëåíèÿ (íàïðèìåð, âèçóàëèçèðóÿ áèáëèîòåêó ìîäåëåé àïïàðàòîâ ÒÏ äëÿ ïîñëåäóþùåãî âèçóàëüíîãî ïîñòðîåíèÿ ìîäåëåé ÒÏ);
- ðàçäåëåíèå äàííûõ ïîëüçîâàòåëüñêèõ èíòåðôåéñîâ è èíòåðôåéñîâ ïðåäñòàâëåíèÿ ýòèõ äàííûõ, ïîçâîëÿþùåå ñòðîèòü èíòåðôåéñ ïîëüçîâàòåëÿ â îäíîé ñðåäå, à èñïîëíÿòü âî ìíîãèõ äðóãèõ (Qt, Web, Java ...);
- âîçìîæíîñòü ïîäêëþ÷åíèå ê èñïîëíÿþùåìóñÿ èíòåðôåéñó äëÿ íàáëþäåíèÿ è êîððåêöèè äåéñòâèé (íàïðèìåð, ïðè îáó÷åíèè îïåðàòîðîâ è êîíòðîëÿ â ðåàëüíîì âðåìåíè çà åãî äåéñòâèÿìè);
- âèçóàëüíîå ïîñòðîåíèå ðàçëè÷íûõ ñõåì ñ íàëîæåíèåì ëîãè÷åñêèõ ñâÿçåé è ïîñëåäóþùåì öåíòðàëèçîâàííûì èñïîëíåíèåì â ôîíå (âèçóàëüíîå ïîñòðîåíèå è èñïîëíåíèå ìàòåìàòè÷åñêèõ ìîäåëåé, ëîãè÷åñêèõ ñõåì, ðåëåéíûõ ñõåì è èíûõ ïðîöåäóð);
- ïðåäîñòàâëåíèå ôóíêöèé îáúåêòíîãî API â ñèñòåìó OpenSCADA, ìîæåò èñïîëüçîâàòüñÿ äëÿ óïðàâëåíèÿ ñâîéñòâàìè èíòåðôåéñà âèçóàëèçàöèè èç ïîëüçîâàòåëüñêèõ ïðîöåäóð;
- ïîñòðîåíèå ñåðâåðîâ êàäðîâ, ýëåìåíòîâ âèçóàëèçàöèè è ïðîåêòîâ èíòåðôåéñîâ âèçóàëèçàöèè ñ âîçìîæíîñòüþ îáñëóæèâàíèÿ ìíîæåñòâåííûõ êëèåíòñêèõ ñîåäèíåíèé;
- ïðîñòàÿ îðãàíèçàöèÿ êëèåíòñêèõ ñòàíöèé íà ðàçëè÷íîé îñíîâå (Qt, Web, Java ...) ñ ïîäêëþ÷åíèåì ê öåíòðàëüíîìó ñåðâåðó;
- ïîëíîöåííûé ìåõàíèçì ðàçäåëåíèÿ ïîëíîìî÷èé ìåæäó ïîëüçîâàòåëÿìè, ïîçâîëÿþùèé ñîçäàâàòü è èñïîëíÿòü ïðîåêòû ñ ðàçëè÷íûìè ïðàâàìè äîñòóïà ê åãî êîìïîíåíòàì;
- ãèáêîå ôîðìèðîâàíèå ïðàâèë ñèãíàëèçàöèé è óâåäîìëåíèÿ, ñ ó÷¸òîì è ïîääåðæêîé ðàçëè÷íûõ ñïîñîáîâ óâåäîìëåíèÿ;
- ïîääåðæêà ïîëüçîâàòåëüñêîãî ôîðìèðîâàíèÿ ïàëèòðû è øðèôòîâûõ ïðåäïî÷òåíèé äëÿ èíòåðôåéñà âèçóàëèçàöèè;
- ïîääåðæêà ïîëüçîâàòåëüñêîãî ôîðìèðîâàíèÿ êàðò ñîáûòèé ïîä ðàçëè÷íîå îáîðóäîâàíèå óïðàâëåíèÿ è ïîëüçîâàòåëüñêèå ïðåäïî÷òåíèÿ;
- ïîääåðæêà ïðîôèëåé ïîëüçîâàòåëåé, ïîçâîëÿþùàÿ îïðåäåëÿòü ðàçëè÷íûå ñâîéñòâà èíòåðôåéñà âèçóàëèçàöèè (öâåòîâàÿ ãàììà, øðèôòîâûå îñîáåííîñòè, ïðåäïî÷òèòåëüíûå êàðòû ñîáûòèé);
- ãèáêîå õðàíåíèå è ðàñïðîñòðàíåíèå áèáëèîòåê âèäæåòîâ, êàäðîâ è ïðîåêòîâ èíòåðôåéñîâ âèçóàëèçàöèè â ÁÄ, ïîääåðæèâàåìûõ ñèñòåìîé OpenSCADA; ïðàêòè÷åñêè ïîëüçîâàòåëþ íóæíî òîëüêî çàðåãèñòðèðîâàòü ïîëó÷åííóþ ÁÄ ñ äàííûìè.
2. Èíñòðóìåíò ãðàôè÷åñêîãî ôîðìèðîâàíèÿ èíòåðôåéñà ÑÂÓ
Ðàçðàáîòêà èíòåðôåéñà ÑÂÓ âûïîëíÿåòñÿ â îäíîì îêíå, ðåàëèçóþùåì ìíîãîäîêóìåíòíûé èíòåðôåéñ (MDI) (ðèñ. 2.a). Äàííûé ïîäõîä ïîçâîëÿåò îäíîâðåìåííî îòêðûâàòü íåñêîëüêî êàäðîâ ðàçëè÷íûõ ðàçìåðîâ. Èñïîëüçîâàíû ñëåäóþùèå ìåõàíèçìû óïðàâëåíèÿ ðàçðàáîòêîé: ïàíåëè èíñòðóìåíòîâ, ïóíêòû ìåíþ è êîíòåêñòíîå ìåíþ. Áîëüøèíñòâî äåéñòâèé äóáëèðóþòñÿ ðàçíûìè ìåõàíèçìàìè, ÷òî ïîçâîëÿåò áûñòðî íàéòè èíñòðóìåíò ïðåäïî÷èòàåìûì ñïîñîáîì. Íàâèãàöèîííûå èíòåðôåéñû ðåàëèçîâàíû ïðèñîåäèíÿåìûìè îêíàìè. Êîíôèãóðàöèÿ ïàíåëåé èíñòðóìåíòîâ è ïðèñîåäèíÿåìûõ îêîí ñîõðàíÿåòñÿ ïðè âûõîäå è âîññòàíàâëèâàåòñÿ ïðè ñòàðòå, ÷òî ïîçâîëÿåò íàñòðàèâàòü èíòåðôåéñ ïîä ñåáÿ.
Ðèñ.2.a. Îêíî ðàçðàáîòêè èíòåðôåéñîâ ÑÂÓ.
Äîñòóï ê îñíîâíûì êîìïîíåíòàì ÑÂÓ ïðîèçâîäèòñÿ ïîñðåäñòâîì ïðèøâàðòîâàííûõ îêîí, íà ðèñ.2.a ýòè îêíà èçîáðàæåíû ñëåâà. Â ýòèõ îêíàõ ñîäåðæàòñÿ:
- Äåðåâî áèáëèîòåê âèäæåòîâ. Ñ ïîìîùüþ íàâèãàòîðà ìîæíî áûñòðî íàéòè íóæíûé âèäæåò èëè áèáëèîòåêó è ïðîäåëàòü íàä íèìè íåîáõîäèìûå îïåðàöèè. Ðåàëèçîâàíû îïåðàöèè äîáàâëåíèÿ, óäàëåíèÿ, êîïèðîâàíèÿ, íàñòðîéêè âèäæåòîâ è áèáëèîòåê, à òàêæå î÷èñòêè è âèçóàëüíîãî ðåäàêòèðîâàíèÿ âèäæåòîâ. Äëÿ ãèáêîãî óïðàâëåíèÿ ïîääåðæèâàåòñÿ êîíòåêñòíîå ìåíþ â ñîñòàâå ïóíêòîâ:
- "Íîâàÿ áèáëèîòåêà" — ñîçäàíèå íîâîé áèáëèîòåêè.
- "Äîáàâèòü âèçóàëüíûé ýëåìåíò" — äîáàâëåíèå âèçóàëüíîãî ýëåìåíòà â áèáëèîòåêó.
- "Óäàëèòü âèçóàëüíûé ýëåìåíò" — óäàëåíèå âèçóàëüíîãî ýëåìåíòà èç áèáëèîòåêè.
- "Î÷èñòèòü âèçóàëüíûé ýëåìåíò" — î÷èñòêà âèçóàëüíîãî ýëåìåíòà ñ íàñëåäîâàíèåì èçìåí¸ííûõ ñâîéñòâ èëè óñòàíîâêîé èõ ïî óìîë÷àíèþ.
- "Îïóñòèòü èçìåíåíèÿ âèçóàëüíîãî ýëåìåíòà" — îïóñê èçìåíåíèé âèçóàëüíîãî ýëåìåíòà ê åãî ðîäèòåëþ, êîòîðûå áóäóò èñïîëüçîâàíû äðóãèìè íàñëåäîâàòåëÿìè.
- "Ñâîéñòâà âèçóàëüíîãî ýëåìåíòà" — êîíôèãóðàöèÿ âèçóàëüíîãî ýëåìåíòà.
- "Ðåäàêòèðîâàòü âèçóàëüíûé ýëåìåíò" — âèçóàëüíîå ðåäàêòèðîâàíèå ýëåìåíòà.
- "Âûðåçàòü âèçóàëüíûé ýëåìåíò" — âûðåçàíèå/ïåðåìåùåíèå âèçóàëüíîãî ýëåìåíòà â ìîìåíò âñòàâêè.
- "Êîïèðîâàòü âèçóàëüíûé ýëåìåíò" — êîïèðîâàíèå âèçóàëüíîãî ýëåìåíòà â ìîìåíò âñòàâêè.
- "Âñòàâèòü âèçóàëüíûé ýëåìåíò" — âñòàâêà âèçóàëüíîãî ýëåìåíòà.
- "Çàãðóçèòü èç ÁÄ" — çàãðóçêà äàííûõ âèçóàëüíîãî ýëåìåíòà èç ÁÄ.
- "Ñîõðàíèòü â ÁÄ" — ñîõðàíåíèå äàííûõ âèçóàëüíîãî ýëåìåíòà â ÁÄ.
- "Îáíîâèòü áèáëèîòåêè" — âûïîëíÿåò ïåðå÷èòûâàíèå êîíôèãóðàöèè è ñîñòàâà áèáëèîòåê èç ìîäåëè äàííûõ.
- Äåðåâî ñòðàíèö ïðîåêòîâ. Ïðåäóñìàòðèâàåò ìåõàíèçì "Ïåðåòàùè è áðîñü" äëÿ ôîðìèðîâàíèÿ ïîëüçîâàòåëüñêèõ êàäðîâ íà îñíîâå ýëåìåíòîâ áèáëèîòåê. Äëÿ ãèáêîãî óïðàâëåíèÿ ïîääåðæèâàåò êîíòåêñòíîå ìåíþ â ñîñòàâå ïóíêòîâ:
- "Çàïóñòèòü èñïîëíåíèå ïðîåêòà" — çàïóñê èñïîëíåíèÿ âûáðàííîãî ïðîåêòà.
- "Íîâûé ïðîåêò" — ñîçäàíèå íîâîãî ïðîåêòà.
- "Äîáàâèòü âèçóàëüíûé ýëåìåíò" — äîáàâëåíèå âèçóàëüíîãî ýëåìåíòà â ïðîåêò/ñòðàíèöó.
- "Óäàëèòü âèçóàëüíûé ýëåìåíò" — óäàëåíèå âèçóàëüíîãî ýëåìåíòà èç ïðîåêòà/ñòðàíèöû.
- "Î÷èñòèòü âèçóàëüíûé ýëåìåíò" — î÷èñòêà âèçóàëüíîãî ýëåìåíòà ñ íàñëåäîâàíèåì èçìåí¸ííûõ ñâîéñòâ èëè óñòàíîâêîé èõ ïî óìîë÷àíèþ.
- "Îïóñòèòü èçìåíåíèÿ âèçóàëüíîãî ýëåìåíòà" — îïóñê èçìåíåíèé âèçóàëüíîãî ýëåìåíòà ê åãî ðîäèòåëþ, êîòîðûå áóäóò èñïîëüçîâàíû äðóãèìè íàñëåäîâàòåëÿìè.
- "Ñâîéñòâà âèçóàëüíîãî ýëåìåíòà" — êîíôèãóðàöèÿ âèçóàëüíîãî ýëåìåíòà.
- "Ðåäàêòèðîâàòü âèçóàëüíûé ýëåìåíò" — âèçóàëüíîå ðåäàêòèðîâàíèå ýëåìåíòà.
- "Âûðåçàòü âèçóàëüíûé ýëåìåíò" — âûðåçàíèå/ïåðåìåùåíèå âèçóàëüíîãî ýëåìåíòà â ìîìåíò âñòàâêè.
- "Êîïèðîâàòü âèçóàëüíûé ýëåìåíò" — êîïèðîâàíèå âèçóàëüíîãî ýëåìåíòà â ìîìåíò âñòàâêè.
- "Âñòàâèòü âèçóàëüíûé ýëåìåíò" — âñòàâêà âèçóàëüíîãî ýëåìåíòà.
- "Çàãðóçèòü èç ÁÄ" — çàãðóçêà äàííûõ âèçóàëüíîãî ýëåìåíòà èç ÁÄ.
- "Ñîõðàíèòü â ÁÄ" — ñîõðàíåíèå äàííûõ âèçóàëüíîãî ýëåìåíòà â ÁÄ.
- "Îáíîâèòü ïðîåêòû" — âûïîëíÿåò ïåðå÷èòûâàíèå êîíôèãóðàöèè è ñîñòàâà ïðîåêòîâ èç ìîäåëè äàííûõ.
- àòðèáóòû âèäæåòîâ;
- âíåøíèå ñâÿçè âèäæåòîâ.
 îñíîâíîì ïðîñòðàíñòâå ðàáî÷åãî îêíà ðàçìåùàþòñÿ îêíà ñòðàíèö ïðîåêòîâ, êàäðîâ áèáëèîòåê âèäæåòîâ, ïîëüçîâàòåëüñêèõ ýëåìåíòîâ è ýëåìåíòîâ ïðèìèòèâîâ íà ìîìåíò èõ âèçóàëüíîãî ðåäàêòèðîâàíèÿ.
Ñâåðõó ðàáî÷åãî îêíà ñîäåðæèòñÿ ìåíþ.  ìåíþ ðàçìåùåíû âñå èíñòðóìåíòû, íåîáõîäèìûå äëÿ ðàçðàáîòêè èíòåðôåéñîâ ÑÂÓ. Ìåíþ èìååò ñëåäóþùóþ ñòðóêòóðó:
- "Ôàéë" — Îáùèå îïåðàöèè.
- "Çàãðóçèòü èç ÁÄ" — çàãðóçêà äàííûõ âèçóàëüíîãî ýëåìåíòà èç ÁÄ.
- "Ñîõðàíèòü â ÁÄ" — ñîõðàíåíèå äàííûõ âèçóàëüíîãî ýëåìåíòà â ÁÄ.
- "Çàêðûòü" — çàêðûòü îêíî ðåäàêòîðà.
- "Âûõîä" — Âûõîä èç ñèñòåìû OpenSCADA.
- "Ðåäàêòèðîâàíèå" — Îïåðàöèè ðåäàêòèðîâàíèÿ âèçóàëüíûõ ýëåìåíòîâ.
- "Îòêàò èçìåíåíèÿ âèçóàëüíîãî ýëåìåíòà" — îñóùåñòâëåíèå îòêàòà ïîñëåäíåãî èçìåíåíèÿ âèçóàëüíîãî ýëåìåíòà.
- "Ïîâòîð èçìåíåíèÿ âèçóàëüíîãî ýëåìåíòà" — îñóùåñòâëåíèå ïîâòîðà èçìåíåíèÿ âèçóàëüíîãî ýëåìåíòà.
- "Âûðåçàòü âèçóàëüíûé ýëåìåíò" — âûðåçàíèå/ïåðåìåùåíèå âèçóàëüíîãî ýëåìåíòà â ìîìåíò âñòàâêè.
- "Êîïèðîâàòü âèçóàëüíûé ýëåìåíò" — êîïèðîâàíèå âèçóàëüíîãî ýëåìåíòà â ìîìåíò âñòàâêè.
- "Âñòàâèòü âèçóàëüíûé ýëåìåíò" — âñòàâêà âèçóàëüíîãî ýëåìåíòà.
- "Ïðîåêò" — Îïåðàöèè íàä ïðîåêòàìè.
- "Çàïóñòèòü èñïîëíåíèå ïðîåêòà" — çàïóñê èñïîëíåíèÿ âûáðàííîãî ïðîåêòà.
- "Íîâûé ïðîåêò" — ñîçäàíèå íîâîãî ïðîåêòà.
- "Äîáàâèòü âèçóàëüíûé ýëåìåíò" — äîáàâëåíèå âèçóàëüíîãî ýëåìåíòà â ïðîåêò.
- "Óäàëèòü âèçóàëüíûé ýëåìåíò" — óäàëåíèå âèçóàëüíîãî ýëåìåíòà èç ïðîåêòà.
- "Î÷èñòèòü âèçóàëüíûé ýëåìåíò" — î÷èñòêà âèçóàëüíîãî ýëåìåíòà ñ íàñëåäîâàíèåì èçìåí¸ííûõ ñâîéñòâ èëè óñòàíîâêîé èõ ïî óìîë÷àíèþ.
- "Îïóñòèòü èçìåíåíèÿ âèçóàëüíîãî ýëåìåíòà" — îïóñê èçìåíåíèé âèçóàëüíîãî ýëåìåíòà ê åãî ðîäèòåëþ, êîòîðûå áóäóò èñïîëüçîâàíû äðóãèìè íàñëåäîâàòåëÿìè.
- "Ñâîéñòâà âèçóàëüíîãî ýëåìåíòà" — êîíôèãóðàöèÿ âèçóàëüíîãî ýëåìåíòà.
- "Ðåäàêòèðîâàòü âèçóàëüíûé ýëåìåíò" — âèçóàëüíîå ðåäàêòèðîâàíèå ýëåìåíòà.
- "Âèäæåò" — Îïåðàöèè íàä âèäæåòàìè è áèáëèîòåêàìè âèäæåòîâ.
- "Íîâàÿ áèáëèîòåêà" — ñîçäàíèå íîâîé áèáëèîòåêè.
- "Äîáàâèòü âèçóàëüíûé ýëåìåíò" — äîáàâëåíèå âèçóàëüíîãî ýëåìåíòà â áèáëèîòåêó.
- "Óäàëèòü âèçóàëüíûé ýëåìåíò" — óäàëåíèå âèçóàëüíîãî ýëåìåíòà èç áèáëèîòåêè.
- "Î÷èñòèòü âèçóàëüíûé ýëåìåíò" — î÷èñòêà âèçóàëüíîãî ýëåìåíòà ñ íàñëåäîâàíèåì èçìåí¸ííûõ ñâîéñòâ èëè óñòàíîâêîé èõ ïî óìîë÷àíèþ.
- "Îïóñòèòü èçìåíåíèÿ âèçóàëüíîãî ýëåìåíòà" — îïóñê èçìåíåíèé âèçóàëüíîãî ýëåìåíòà ê åãî ðîäèòåëþ, êîòîðûå áóäóò èñïîëüçîâàíû äðóãèìè íàñëåäîâàòåëÿìè.
- "Ñâîéñòâà âèçóàëüíîãî ýëåìåíòà" — êîíôèãóðàöèÿ âèçóàëüíîãî ýëåìåíòà.
- "Ðåäàêòèðîâàòü âèçóàëüíûé ýëåìåíò" — âèçóàëüíîå ðåäàêòèðîâàíèå ýëåìåíòà.
- "Âèä" — óïðàâëåíèå ðàñïîëîæåíèåì âèçóàëüíûõ ýëåìåíòîâ íà êàäðàõ.
- "Âèäæåò íà âåðõ" — ïîäíÿòèå âèäæåòà íà ñàìûé âåðõ.
- "Âèäæåò íà íèç" — îïóñêàíèå âèäæåòà íà ñàìûé íèç.
- "Ïîäíÿòü âèäæåò" — ïîäíÿòü âèäæåò âûøå.
- "Îïóñòèòü âèäæåò" — îïóñòèòü âèäæåò íèæå.
- "Âûðàâíÿòü ñëåâà" — âûðàâíèâàíèå âèäæåòà ñëåâà.
- "Âûðîâíÿòü â öåíòðå âåðòèêàëüíî" — âûðàâíèâàíèå âèäæåòà âåðòèêàëüíî â öåíòðå.
- "Âûðîâíÿòü ñïðàâà" — âûðàâíèâàíèå âèäæåòà ñïðàâà.
- "Âûðîâíÿòü ñâåðõó" — âûðàâíèâàíèå âèäæåòà ñâåðõó.
- "Âûðîâíÿòü â öåíòðå ãîðèçîíòàëüíî" — âûðàâíèâàíèå âèäæåòà ãîðèçîíòàëüíî â öåíòðå.
- "Âûðîâíÿòü ñíèçó" — âûðàâíèâàíèå âèäæåòà ñíèçó.
- "Áèáëèîòåêà: {Èìÿ áèáëèîòåêè}" — ïóíêòû ìåíþ äëÿ äîñòóïà ê êàäðàì/âèäæåòàì ñîäåðæàùèìñÿ â áèáëèîòåêå.
- "Îêíî" — Óïðàâëåíèå îêíàìè MDI-èíòåðôåéñà.
- "Çàêðûòü" — çàêðûòü àêòèâíîå îêíî.
- "Çàêðûòü âñå" — çàêðûòü âñå îêíà.
- "Óëîæèòü" — óëîæèòü âñå îêíà äëÿ âèäèìîñòè îäíîâðåìåííî.
- "Êàñêàäèðîâàòü" — ðàñïîëîæèòü âñå îêíà êàñêàäîì.
- "Ñëåäóþùèé" — àêòèâèðîâàòü ñëåäóþùåå îêíî.
- "Ïðåäûäóùèé" — àêòèâèðîâàòü ïðåäûäóùåå îêíî.
- "Âèäæåò: {Èìÿ âèäæåòà}" — ïóíêòû àêòèâàöèè êîíêðåòíîãî îêíà.
- "Âèä" — Óïðàâëåíèå âèäèìîñòüþ ðàáî÷åãî îêíà è ïàíåëåé íà í¸ì.
- "Ïàíåëü âèçóàëüíûõ ýëåìåíòîâ" — ïàíåëü óïðàâëåíèÿ âèçóàëüíûìè ýëåìåíòàìè.
- "Ôóíêöèè âèäèìîñòè âèäæåòîâ" — ïàíåëü óïðàâëåíèÿ âèäèìîñòüþ è ðàñïîëîæåíèåì âèäæåòîâ íà ïàíåëÿõ.
- "Ïàíåëü ýëåìåíòàðíûõ ôèãóð" — äîïîëíèòåëüíàÿ ïàíåëü ðåäàêòèðîâàíèÿ ïðèìèòèâà ýëåìåíòàðíûõ ôèãóð ("ElFigure").
- "Ïðîåêòû" — ïðèøâàðòîâàííîå îêíî óïðàâëåíèÿ äåðåâîì ïðîåêòîâ.
- "Âèäæåòû" — ïðèøâàðòîâàííîå îêíî óïðàâëåíèÿ äåðåâîì áèáëèîòåê âèäæåòîâ.
- "Àòðèáóòû" — ïðèøâàðòîâàííîå îêíî äèñïåò÷åðà àòðèáóòîâ.
- "Ñâÿçè" — ïðèøâàðòîâàííîå îêíî äèñïåò÷åðà ñâÿçåé.
- "Áèáëèîòåêà: {Èìÿ áèáëèîòåêè}" — óïðàâëåíèå âèäèìîñòüþ ïàíåëåé áèáëèîòåê âèäæåòîâ.
- "Ïîìîùü" — Ïîìîùü ïî OpenSCADA è ìîäóëþ Vision.
- "Ïðî" — èíôîðìàöèÿ ïðî äàííûé ìîäóëü.
- "Ïðî Qt" — èíôîðìàöèÿ î áèáëèîòåêå Qt, èñïîëüçóåìîé ìîäóëåì.
- "×òî ýòî" — çàïðîñ îïèñàíèÿ ýëåìåíòîâ èíòåðôåéñà îêíà.
Ñâåðõó, ïîä ìåíþ, èëè ïî ñòîðîíàì ðàñïîëàãàþòñÿ ïàíåëè èíñòðóìåíòîâ. Ïàíåëè ìîãóò áûòü ñêðûòû èëè ðàñïîëîæåíû, ÷òî óïðàâëÿåòñÿ â ïóíêòå ìåíþ "Âèä". Ñóùåñòâóþò ñëåäóþùèå ïàíåëè èíñòðóìåíòîâ:
- "Ïàíåëü âèçóàëüíûõ ýëåìåíòîâ" — Ïàíåëü óïðàâëåíèÿ âèçóàëüíûìè ýëåìåíòàìè:
- "Çàïóñê èñïîëíåíèÿ ïðîåêòà äëÿ âûáðàííîãî ýëåìåíòà" — ïðîèçâîäèò çàïóñê ïðîåêòà íà èñïîëíåíèå è àêòèâàöèþ âûáðàííîé ñòðàíèöû ïðîåêòà.
- "Çàãðóçèòü äàííûå ýëåìåíòà èç ÁÄ" — âûïîëíÿåò çàãðóçêó äàííûõ âûáðàííîãî(ûõ) ýëåìåíòîâ èç ÁÄ.
- "Ñîõðàíèòü äàííûå ýëåìåíòà â ÁÄ" — âûïîëíÿåò ñîõðàíåíèå äàííûõ âûáðàííîãî(ûõ) ýëåìåíòîâ â ÁÄ.
- "Íîâûé ïðîåêò" — ñîçäàíèå íîâîãî ïðîåêòà.
- "Íîâàÿ áèáëèîòåêà" — ñîçäàíèå íîâîé áèáëèîòåêè.
- "Äîáàâèòü âèçóàëüíûé ýëåìåíò" — äîáàâëåíèå âèçóàëüíîãî ýëåìåíòà â ïðîåêò.
- "Óäàëèòü âèçóàëüíûé ýëåìåíò" — óäàëåíèå âèçóàëüíîãî ýëåìåíòà èç ïðîåêòà.
- "Ñâîéñòâà âèçóàëüíîãî ýëåìåíòà" — êîíôèãóðàöèÿ âèçóàëüíîãî ýëåìåíòà.
- "Ðåäàêòèðîâàòü âèçóàëüíûé ýëåìåíò" — âèçóàëüíîå ðåäàêòèðîâàíèå ýëåìåíòà.
- "Îòêàò èçìåíåíèÿ âèçóàëüíîãî ýëåìåíòà" — îñóùåñòâëåíèå îòêàòà ïîñëåäíåãî èçìåíåíèÿ âèçóàëüíîãî ýëåìåíòà.
- "Ïîâòîð èçìåíåíèÿ âèçóàëüíîãî ýëåìåíòà" — îñóùåñòâëåíèå ïîâòîðà èçìåíåíèÿ âèçóàëüíîãî ýëåìåíòà.
- "Âûðåçàòü âèçóàëüíûé ýëåìåíò" — âûðåçàíèå/ïåðåìåùåíèå âèçóàëüíîãî ýëåìåíòà â ìîìåíò âñòàâêè.
- "Êîïèðîâàòü âèçóàëüíûé ýëåìåíò" — êîïèðîâàíèå âèçóàëüíîãî ýëåìåíòà â ìîìåíò âñòàâêè.
- "Âñòàâèòü âèçóàëüíûé ýëåìåíò" — âñòàâêà âèçóàëüíîãî ýëåìåíòà.
- "Ôóíêöèè âèäèìîñòè âèäæåòîâ" — Ïàíåëü óïðàâëåíèÿ âèäèìîñòüþ è ðàñïîëîæåíèåì âèäæåòîâ íà ïàíåëÿõ:
- "Âèäæåò íà âåðõ" — ïîäíÿòèå âèäæåòà íà ñàìûé âåðõ.
- "Âèäæåò íà íèç" — îïóñêàíèå âèäæåòà íà ñàìûé íèç.
- "Ïîäíÿòü âèäæåò" — ïîäíÿòü âèäæåò âûøå.
- "Îïóñòèòü âèäæåò" — îïóñòèòü âèäæåò íèæå.
- "Âûðàâíÿòü ñëåâà" — âûðàâíèâàíèå âèäæåòà ñëåâà.
- "Âûðîâíÿòü â öåíòðå âåðòèêàëüíî" — âûðàâíèâàíèå âèäæåòà âåðòèêàëüíî â öåíòðå.
- "Âûðîâíÿòü ñïðàâà" — âûðàâíèâàíèå âèäæåòà ñïðàâà.
- "Âûðîâíÿòü ñâåðõó" — âûðàâíèâàíèå âèäæåòà ñâåðõó.
- "Âûðîâíÿòü â öåíòðå ãîðèçîíòàëüíî" — âûðàâíèâàíèå âèäæåòà ãîðèçîíòàëüíî â öåíòðå.
- "Âûðîâíÿòü ñíèçó" — âûðàâíèâàíèå âèäæåòà ñíèçó.
- "Ïàíåëü ýëåìåíòàðíûõ ôèãóð" — Äîïîëíèòåëüíàÿ ïàíåëü ðåäàêòèðîâàíèÿ ïðèìèòèâà ýëåìåíòàðíûõ ôèãóð ("ElFig").
- "Âîçâðàò êóðñîðà" — âîçâðàò ê êóðñîðó äëÿ äåéñòâèé íàä ôèãóðàìè íà âèäæåòå.
- "Äîáàâèòü ëèíèþ" — äîáàâëåíèå ëèíèè ê ýëåìåíòàðíîé ôèãóðå.
- "Äîáàâèòü äóãó" — äîáàâëåíèå äóãè ê ýëåìåíòàðíîé ôèãóðå.
- "Äîáàâèòü êðèâóþ áåçüå" — äîáàâëåíèå êðèâîé áåçüå ê ýëåìåíòàðíîé ôèãóðå.
- "Âêëþ÷èòü ïðèâÿçêè" — âêëþ÷åíèå ïðèâÿçîê ó ýëåìåíòàðíîé ôèãóðû.
- "Áèáëèîòåêà: {Èìÿ áèáëèîòåêè}" — Óïðàâëåíèå âèäèìîñòüþ ïàíåëåé áèáëèîòåê âèäæåòîâ. Ñîäåðæèìîå ïàíåëè çàâèñèò îò ñîäåðæèìîãî áèáëèîòåêè è âêëþ÷àåò êíîïêè âûçîâà ýëåìåíòîâ áèáëèîòåêè.
- "QTStarter ïàíåëü èíñòðóìåíòîâ" — Ïàíåëü, ñîçäàííàÿ ìîäóëåì çàïóñêà ìîäóëåé áèáëèîòåêè Qt. Ñîäåðæèò êíîïêè äëÿ çàïóñêà UI ìîäóëåé ñèñòåìû OpenSCADA, îñíîâàííûõ íà áèáëèîòåêå Qt. Ñ ïîìîùüþ ýòîé ïàíåëè ìîæíî îòêðûòü íåñêîëüêî ýêçåìïëÿðîâ îêîí äàííîãî ìîäóëÿ èëè äðóãèõ ìîäóëåé.
Âíèçó îêíà ðàçðàáîòêè ÑÂÓ ðàñïîëàãàåòñÿ ñòðîêà ñòàòóñà. Ñ ïðàâîé ñòîðîíû ñòðîêè ñòàòóñà ðàçìåùàþòñÿ èíäèêàòîðû âèçóàëüíîãî ìàñøòàáà ðåäàêòèðóåìîãî êàäðà, ðåæèìà èçìåíåíèÿ ðàçìåðà ýëåìåíòîâ, ðåæèìà òåêóùåé ñòàíöèè äâèæêà ÑÂÓ è ïîëüçîâàòåëÿ, îò èìåíè êîòîðîãî âåä¸òñÿ ðàçðàáîòêà èíòåðôåéñà ÑÂÓ. Ïî äâîéíîìó êëèêó íà èíäèêàòîðå ïîëüçîâàòåëÿ ìîæíî ïîëüçîâàòåëÿ ñìåíèòü, ââåäÿ íîâîå èìÿ è ïàðîëü ïîëüçîâàòåëÿ.  ãëàâíîå ïîëå ñòðîêè ñòàòóñà âûâîäÿòñÿ ðàçëè÷íûå èíôîðìàöèîííûå ñîîáùåíèÿ è ñîîáùåíèÿ ïîìîùè.
Äëÿ ðåäàêòèðîâàíèÿ ñâîéñòâ âèçóàëüíûõ ýëåìåíòîâ ïðåäóñìîòðåíî äâà äèàëîãà. Ïåðâûé äèàëîã ïîçâîëÿåò ðåäàêòèðîâàòü ñâîéñòâà êîíòåéíåðîâ âèçóàëüíûõ ýëåìåíòîâ (áèáëèîòåê âèäæåòîâ è ïðîåêòîâ), ðèñ. 2.b. Âòîðîé äèàëîã äëÿ ðåäàêòèðîâàíèÿ ñâîéñòâ ñàìèõ âèçóàëüíûõ ýëåìåíòîâ, ðèñ. 2.d. Èçìåíåíèÿ, âíåñ¸ííûå â äèàëîãàõ, ñðàçó æå ïîïàäàþò â äâèæîê ÑÂÓ. Äëÿ ñîõðàíåíèÿ ýòèõ èçìåíåíèÿ â ÁÄ èëè âîññòàíîâëåíèÿ èç ÁÄ íåîáõîäèìî âîñïîëüçîâàòüñÿ ñîîòâåòñòâóþùèìè èíñòðóìåíòàìè ãëàâíîãî îêíà ðàçðàáîòêè.
Ðèñ.2.b. Äèàëîã ðåäàêòèðîâàíèÿ ñâîéñòâ êîíòåéíåðîâ âèçóàëüíûõ ýëåìåíòîâ.
Ñ ïîìîùüþ ãëàâíîé âêëàäêè ýòîãî äèàëîãà ìîæíî óñòàíîâèòü:
- Ñîñòîÿíèå êîíòåéíåðà ýëåìåíòîâ, à èìåííî: "Âêëþ÷åí", ÁÄ êîíòåéíåðà, äàòà è âðåìÿ ïîñëåäíåé ìîäèôèêàöèè.
- Èäåíòèôèêàòîð, èìÿ è îïèñàíèå êîíòåéíåðà.
- Äëÿ ïðîåêòà:
- ïîëüçîâàòåëü, ãðóïïà ïîëüçîâàòåëåé è äîñòóï ïîëüçîâàòåëÿ, ãðóïïû ïîëüçîâàòåëåé è âñåõ îñòàëüíûõ;
- ïåðèîä âû÷èñëåíèÿ ïðîåêòà ïðè èñïîëíåíèè.
Ðèñ.2.ñ. Âêëàäêà "Äèàãíîñòèêà" ïðîåêòà.
 ýòîé âêëàäêå Âû ìîæåòå âûáðàòü âðåìÿ, èëè îñâåæèòü ê òåêóùåìó, è ðàçìåð äëÿ ïîëó÷åíèÿ äèàãíîñòè÷åñêèõ ñîîáùåíèé.
Ðèñ.2.d. Äèàëîã ðåäàêòèðîâàíèÿ ñâîéñòâ âèçóàëüíûõ ýëåìåíòîâ.
Ñ ïîìîùüþ ãëàâíîé âêëàäêè ýòîãî äèàëîãà ìîæíî óñòàíîâèòü:
- Ñîñòîÿíèå ýëåìåíòà, à èìåííî: "Âêëþ÷åí", ðîäèòåëüñêèé âèäæåò, äàòà è âðåìÿ ïîñëåäíåé ìîäèôèêàöèè.
- Èäåíòèôèêàòîð, êîðåíü, ïóòü, èìÿ è îïèñàíèå ýëåìåíòà.
Äèàëîã ðåäàêòèðîâàíèÿ ñâîéñòâ êîíòåéíåðîâ âèçóàëüíûõ ýëåìåíòîâ ñîäåðæèò äâå âêëàäêè: âêëàäêó êîíôèãóðàöèè îñíîâíûõ ïàðàìåòðîâ (ðèñ.2.b) è âêëàäêó êîíôèãóðàöèè mime-äàííûõ êîíòåéíåðîâ (ðèñ.2.e).
Ðèñ.2.e. Âêëàäêà ðåäàêòèðîâàíèÿ mime-äàííûõ êîíòåéíåðà âèçóàëüíûõ ýëåìåíòîâ.
Äèàëîã ðåäàêòèðîâàíèÿ ñâîéñòâ âèçóàëüíûõ ýëåìåíòîâ ñîäåðæèò ÷åòûðå âêëàäêè: âêëàäêó êîíôèãóðàöèè îñíîâíûõ ïàðàìåòðîâ (ðèñ.2.b), âêëàäêó àòðèáóòîâ ýëåìåíòà (ðèñ.2.f), âêëàäêó îáðàáîòêè ýëåìåíòà (ðèñ.2.g) è âêëàäêó ñâÿçåé ýëåìåíòà (ðèñ.2.h). Íà ðàçíûõ óðîâíÿõ èåðàðõèè âèçóàëüíûõ ýëåìåíòîâ êàêèå-òî âêëàäêè ìîãóò áûòü äîñòóïíû, à êàêèå-òî íåò.
Ðèñ.2.f. Âêëàäêà àòðèáóòîâ äèàëîãà ðåäàêòèðîâàíèÿ ñâîéñòâ âèçóàëüíîãî ýëåìåíòà.
Ðèñ.2.g. Âêëàäêà îáðàáîòêè äèàëîãà ðåäàêòèðîâàíèÿ ñâîéñòâ âèçóàëüíîãî ýëåìåíòà.
Ðèñ.2.h. Âêëàäêà ñâÿçåé äèàëîãà ðåäàêòèðîâàíèÿ ñâîéñòâ âèçóàëüíîãî ýëåìåíòà.
2.1. Ñòèëè
Èçâåñòíî, ÷òî ÷åëîâåê ìîæåò èìåòü èíäèâèäóàëüíûå îñîáåííîñòè â âîñïðèÿòèè ãðàôè÷åñêîé èíôîðìàöèè. Åñëè ýòè îñîáåííîñòè íå ó÷èòûâàòü òî ìîæíî ïîëó÷èòü íåïðèÿòèå è îòòîðæåíèå ïîëüçîâàòåëÿ ê èíòåðôåéñó ÂÓ. Òàêîå íåïðèÿòèå è îòòîðæåíèå ìîæåò ïðèâåñòè ê ôàòàëüíûì îøèáêàì ïðè óïðàâëåíèè ÒÏ, à òàêæå òðàâìèðîâàòü ÷åëîâåêà ïîñòîÿííîé ðàáîòîé ñ òàêèì èíòåðôåéñîì.  SCADA ñèñòåìàõ ïðèíÿòû ñîãëàøåíèÿ, êîòîðûå ðåãëàìåíòèðóþò òðåáîâàíèÿ ïî ñîçäàíèþ óíèôèöèðîâàííîãî èíòåðôåéñà ÂÓ, íîðìàëüíî âîñïðèíèìàåìîãî áîëüøèíñòâîì ëþäåé. Ïðè ýòîì ïðàêòè÷åñêè îòñóòñòâóåò ó÷¸ò îñîáåííîñòåé ëþäåé ñ íåêîòîðûìè îòêëîíåíèÿìè.
Ñ öåëüþ ó÷åñòü ýòî îáñòîÿòåëüñòâî è ïðåäîñòàâèòü âîçìîæíîñòü öåíòðàëèçîâàííî è ïðîñòî èçìåíÿòü âèçóàëüíûå ñâîéñòâà èíòåðôåéñà ïðîåêòîì ïðåäóñìàòðèâàåòñÿ ðåàëèçàöèÿ ìåíåäæåðà ñòèëåé èíòåðôåéñà âèçóàëèçàöèè.
Ïîëüçîâàòåëåì ìîæåò áûòü ñîçäàíî ìíîæåñòâî ñòèëåé, êàæäûé èç êîòîðûõ áóäåò õðàíèòü öâåòîâûå, øðèôòîâûå è äðóãèå ñâîéñòâà ýëåìåíòîâ êàäðà. Ïðîñòàÿ ñìåíà ñòèëÿ ïîçâîëèò áûñòðî ïðåîáðàçèòü èíòåðôåéñ ÂÓ, à âîçìîæíîñòü íàçíà÷åíèÿ èíäèâèäóàëüíîé ñòèëÿ äëÿ ïîëüçîâàòåëÿ ïîçâîëèò ó÷åñòü åãî èíäèâèäóàëüíûå îñîáåííîñòè.
Äëÿ ðåàëèçàöèè ýòîé âîçìîæíîñòè, ïðè ñîçäàíèè êàäðîâ íåîáõîäèìî äëÿ ñâîéñòâ öâåòà, øðèôòà è äðóãèõ óñòàíîâèòü ïàðàìåòð «Êîíôèãóðàöèÿ» (òàáëèöû âî âêëàäêå «Îáðàáîòêà») â çíà÷åíèå «Èç ñòèëÿ». À â ïàðàìåòðå «Êîíôèãóðàöèîííûé øàáëîí» óêàçàòü èäåíòèôèêàòîð ïîëÿ ñòèëÿ. Äàëåå ýòî ïîëå àâòîìàòè÷åñêè ïîÿâèòñÿ â ìåíåäæåðå ñòèëåé è åãî ìîæíî áóäåò òàì ìåíÿòü. Ìåíåäæåð ñòèëåé äîñòóïåí íà ñòðàíèöå êîíôèãóðàöèè ïðîåêòà âî âêëàäêå «Ñòèëè» (ðèñóíîê íèæå). Íà ýòîé âêëàäêå ìîæíî ñîçäàâàòü íîâûå ñòèëè, óäàëÿòü ñòàðûå, èçìåíÿòü ïîëÿ ñòèëÿ è óäàëÿòü íåíóæíûå.
 öåëîì ñòèëè äîñòóïíû, íà÷èíàÿ ñ óðîâíÿ ïðîåêòîâ. Íà óðîâíå áèáëèîòåê âèäæåòîâ ìîæíî òîëüêî îïðåäåëÿòü ïîëÿ ñòèëåé ó âèäæåòîâ. Íà óðîâíå ïðîåêòà ïðè âûáîðå ñòèëÿ âêëþ÷àåòñÿ ðàáîòà ñî ñòèëÿìè, ÷òî ïðåäïîëàãàåò äîñòóï ê ïîëÿì ñòèëåé âìåñòî íåïîñðåäñòâåííûõ çíà÷åíèé àòðèáóòîâ. Ôàêòè÷åñêè ýòî îçíà÷àåò, ÷òî ïðè ÷òåíèè èëè çàïèñè àòðèáóòà âèäæåòà óêàçàííûå îïåðàöèè áóäóò îñóùåñòâëÿòüñÿ ñ ñîîòâåòñòâóþùèì ïîëåì âûáðàííîãî ñòèëÿ.
Ïðè çàïóñêå ïðîåêòà íà èñïîëíåíèÿ áóäåò èñïîëüçîâàí óñòàíîâëåííûé â ïðîåêòå ñòèëü.  ïîñëåäñòâèè ïîëüçîâàòåëü ìîæåò âûáðàòü ñòèëü èç ïåðå÷íÿ äîñòóïíûõ. Âûáðàííûé ïîëüçîâàòåëåì ñòèëü áóäåò ñîõðàí¸í è èñïîëüçîâàí ïðè ñëåäóþùåì çàïóñêå ïðîåêòà.
2.2. Ñâÿçûâàíèå ñ äèíàìèêîé
Äëÿ ïðåäîñòàâëåíèÿ àêòóàëüíûõ äàííûõ â èíòåðôåéñ âèçóàëèçàöèè äîëæíû èñïîëüçîâàòüñÿ äàííûå ïîäñèñòåìû "Ñáîð äàííûõ (DAQ)". Ïðèðîäà ýòèõ äàííûõ ñëåäóþùàÿ:
- ïàðàìåòðû, ñîäåðæàùèå íåêîòîðîå êîëè÷åñòâî àòðèáóòîâ;
- àòðèáóòû ïàðàìåòðà ìîãóò ïðåäîñòàâëÿòü äàííûå ÷åòûð¸õ òèïîâ: Ëîãè÷åñêèé, Öåëûé, Âåùåñòâåííûé è Ñòðîêîâûé;
- àòðèáóòû ïàðàìåòðà ìîãóò èìåòü èñòîðèþ (àðõèâ);
- àòðèáóòû ïàðàìåòðà ìîãóò áûòü äëÿ ÷òåíèÿ, çàïèñè è ñ ïîëíûì äîñòóïîì.
Ó÷èòûâàÿ ïåðâûé ïóíêò, íóæíî îáåñïå÷èòü âîçìîæíîñòü ãðóïïîâîãî íàçíà÷åíèÿ ññûëêè. Äëÿ ýòîãî èñïîëüçóåì êîíöåïöèþ ëîãè÷åñêîãî óðîâíÿ.
 ñîîòâåòñòâèè ñ ïóíêòîì 2 ñâÿçè îáåñïå÷èâàþò ïðîçðà÷íîå ïðåîáðàçîâàíèå òèïîâ è íå òðåáóþò ñïåöèàëüíîé êîíôèãóðàöèè.
Äëÿ óäîâëåòâîðåíèÿ âîçìîæíîñòè äîñòóïà ê àðõèâàì â ñîîòâåòñòâèè ñ ïóíêòîì 3 ñâÿçè âûïîëíÿþò ïðîâåðêó òèïà àòðèáóòà è, â ñëó÷àå ïîäêëþ÷åíèÿ ê "Àäðåñó", â çíà÷åíèå ïîìåùàåòñÿ àäðåñ ñâÿçè.
 òåðìèíàõ ÑÂÓ äèíàìè÷åñêèå ñâÿçè è êîíôèãóðàöèÿ äèíàìèêè ÿâëÿþòñÿ îäíèì ïðîöåññîì, äëÿ îïèñàíèÿ êîíôèãóðàöèè êîòîðîãî ïðåäóñìàòðèâàåòñÿ âêëàäêà "Îáðàáîòêà" âèäæåòîâ (ðèñ.2.f). Âêëàäêà ñîäåðæèò òàáëèöó êîíôèãóðàöèè ñâîéñòâ àòðèáóòîâ âèäæåòà è òåêñò ïðîöåäóðû âû÷èñëåíèÿ âèäæåòà.
Êðîìå ïîëåé êîíôèãóðàöèè àòðèáóòîâ â òàáëèöå ïðåäóñìàòðèâàåòñÿ êîëîíêà "Îáðàáîòêà" äëÿ èçáèðàòåëüíîãî èñïîëüçîâàíèÿ àòðèáóòîâ âèäæåòîâ â âû÷èñëèòåëüíîé ïðîöåäóðå âèäæåòà è êîëîíêè "Êîíôèãóðàöèÿ" è "Êîíôèãóðàöèîííûé øàáëîí" äëÿ îïèñàíèÿ êîíôèãóðàöèè ñâÿçåé.
Êîëîíêà "Êîíôèãóðàöèÿ" ïîçâîëÿåò óêàçàòü òèï ñâÿçè äëÿ àòðèáóòà âèäæåòà:
- Ïîñòîÿííàÿ — âî âêëàäêå ñâÿçåé âèäæåòà ïîÿâëÿåòñÿ ïîëå óêàçàíèÿ ïîñòîÿííîé, íàïðèìåð, îñîáîãî öâåòà èëè çàãîëîâêà äëÿ øàáëîííûõ êàäðîâ.
- Âõîäíàÿ ñâÿçü — ñâÿçü ñ äèíàìèêîé òîëüêî äëÿ ÷òåíèÿ.
- Âûõîäíàÿ ñâÿçü — ñâÿçü ñ äèíàìèêîé òîëüêî äëÿ çàïèñè.
- Ïîëíàÿ ñâÿçü — ïîëíàÿ ñâÿçü ñ äèíàìèêîé (÷òåíèå è çàïèñü).
- Èç ñòèëÿ — áðàòü çíà÷åíèå èç ñòèëÿ ïðîåêòà.
Êîëîíêà "Êîíôèãóðàöèîííûé øàáëîí" ïîçâîëÿåò îïèñàòü ãðóïïû äèíàìè÷åñêèõ àòðèáóòîâ. Íàïðèìåð, ýòî ìîãóò áûòü ðàçíûå òèïû ïàðàìåòðîâ ïîäñèñòåìû "DAQ" è äðóãèå âèäæåòû èíòåðôåéñà. Ïðè êîððåêòíîì ôîðìèðîâàíèè ýòîãî ïîëÿ ðàáîòàåò ìåõàíèçì àâòîìàòè÷åñêîãî íàçíà÷åíèÿ àòðèáóòîâ, ïðè óêàçàíèè òîëüêî ïàðàìåòðà ïîäñèñòåìû "DAQ" èëè âèäæåòà èíòåðôåéñà, ÷òî óïðîùàåò è óñêîðÿåò ïðîöåññ êîíôèãóðàöèè. Çíà÷åíèå ýòîé êîëîíêè èìååò ñëåäóþùèé ôîðìàò:
- Äëÿ ïîñòîÿííîé: ïðÿìî çíà÷åíèå àòðèáóòà.
- Äëÿ ñâÿçè: "{ïàðàìåòð}|{èäåíòèôèêàòîð}", ãäå:
- ïàðàìåòð — ãðóïïà àòðèáóòà;
- èäåíòèôèêàòîð — èäåíòèôèêàòîð àòðèáóòà; èìåííî çíà÷åíèå â ýòîì ïîëå ñîïîñòàâëÿåòñÿ ñ àòðèáóòàìè ïàðàìåòðîâ DAQ ïðè àâòîìàòè÷åñêîì ñâÿçûâàíèè ïîñëå óêàçàíèÿ ãðóïïîâîé ñâÿçè;
- Äëÿ ñòèëÿ: èäåíòèôèêàòîð-èìÿ ïîëÿ ñòèëÿ.
Óñòàíîâêà ñâÿçåé ìîæåò áûòü íåñêîëüêèõ òèïîâ, êîòîðûé îïðåäåëÿåòñÿ ïðåôèêñîì:
- val: — Ïðÿìàÿ çàãðóçêà çíà÷åíèÿ ÷åðåç ìåõàíèçì ñâÿçåé. Íàïðèìåð, ñâÿçü: "val:100" çàãðóæàåò â àòðèáóò âèäæåòà çíà÷åíèå 100. ×àñòî èñïîëüçóåòñÿ â ñëó÷àå îòñóòñòâèÿ êîíå÷íîé òî÷êè ñâÿçè ñ öåëüþ ïðÿìîé óñòàíîâêè çíà÷åíèÿ.
- prm: — Ñâÿçü íà àòðèáóò ïàðàìåòðà èëè ïàðàìåòð â öåëîì, äëÿ ãðóïïû àòðèáóòîâ, ïîäñèñòåìû "Ñáîð äàííûõ". Íàïðèìåð, ñâÿçü "prm:/LogicLev/experiment/Pi/var" îñóùåñòâëÿåò äîñòóï àòðèáóòà âèäæåòà ê àòðèáóòó ïàðàìåòðà ïîäñèñòåìû "Ñáîð äàííûõ". Çíàê "(+)", â êîíöå àäðåñà, óêàçûâàåò íà óñïåøíóþ ëèíêîâêó è ïðèñóòñòâèå öåëåâîãî îáúåêòà. Äëÿ àòðèáóòîâ îáúåêòíîãî òèïà äîïóñòèì èåðàðõè÷åñêèé äîñòóï ê êîíêðåòíîìó ñâîéñòâó îáúåêòà ïóò¸ì óêàçàíèÿ åãî ïóòè ÷åðåç ñèìâîë '#', íàïðèìåð: "prm:/LogicLev/experiment/Pi/var#pr1/pr2".
- wdg: — Ñâÿçü íà àòðèáóò äðóãîãî âèäæåòà èëè âèäæåò â öåëîì äëÿ ãðóïïû àòðèáóòîâ. Íàïðèìåð, ñâÿçü "wdg:/ses_AGLKS/pg_so/pg_1/pg_ggraph/pg_1/a_bordColor" îñóùåñòâëÿåò äîñòóï àòðèáóòà îäíîãî âèäæåòà ê àòðèáóòó äðóãîãî. Ïîääåðæèâàþòñÿ êàê àáñîëþòíûå, òàê è îòíîñèòåëüíûå ïóòè ñâÿçåé. Òî÷êîé îòñ÷¸òà àäðåñà àáñîëþòíîé ñâÿçè âûñòóïàåò îáúåêò êîðíÿ ìîäóëÿ "VCAEngine", à çíà÷èò ïåðâûì ýëåìåíòîì àáñîëþòíîãî àäðåñà ÿâëÿåòñÿ èäåíòèôèêàòîð ñåàíñà èëè ïðîåêòà. Íà ñòîðîíå ñåàíñà ïåðâûé ýëåìåíò îïóñêàåòñÿ, ïîýòîìó ñâÿçè óñòàíîâëåííûå â ïðîåêòå òàì ðàáîòàþò. Îòíîñèòåëüíûå ñâÿçè áåðóò îòñ÷¸ò îò âèäæåòà ãäå ñâÿçü óêàçàíà. Ñïåöèàëüíûì ýëåìåíòîì îòíîñèòåëüíîé ñâÿçè ÿâëÿåòñÿ ýëåìåíò âûøåñòîÿùåãî óçëà "..".
- arh: — Îñîáûé òèï ñâÿçè äîñòóïíûé òîëüêî äëÿ îòäåëüíîãî àòðèáóòà òèïà "Àäðåñ", êîòîðûé ïîçâîëÿåò ïîäêëþ÷èòüñÿ ïðÿìî ê àðõèâó çíà÷åíèÿ ("arh:CPU_load"). Ìîæåò áûòü ïîëåçåí äëÿ óêàçàíèÿ àðõèâà â êà÷åñòâå èñòî÷íèêà äàííûõ äëÿ ïðèìèòèâà "Äèàãðàììà".
Îáðàáîòêà ñâÿçåé ïðîèñõîäèò ñ ïåðèîäè÷íîñòüþ âû÷èñëåíèÿ âèäæåòà â ïîðÿäêå:
- ïîëó÷åíèå äàííûõ âõîäíûõ ñâÿçåé;
- âûïîëíåíèå âû÷èñëåíèÿ ñêðèïòà;
- ïåðåäà÷à çíà÷åíèé ïî âûõîäíûì ñâÿçÿì.
Íà ðèñ. 2.g ïðåäñòàâëåíà âêëàäêà ñâÿçåé ñ âîçìîæíîñòüþ ãðóïïîâîãî è èíäèâèäóàëüíîãî íàçíà÷åíèåì àòðèáóòîâ.
Ïðè ðàçìåùåíèè âèäæåòà, ñîäåðæàùåãî êîíôèãóðàöèþ ñâÿçåé, â êîíòåéíåð âèäæåòîâ âñå ñâÿçè èñõîäíîãî âèäæåòà äîáàâëÿþòñÿ â ñïèñîê ðåçóëüòèðóþùèõ ñâÿçåé êîíòåéíåðà âèäæåòîâ.
Èç âûøåñêàçàííîãî âèäíî, ÷òî ñâÿçè óñòàíàâëèâàþòñÿ ïîëüçîâàòåëåì â ïðîöåññå êîíôèãóðàöèè èíòåðôåéñà. Îäíàêî, äëÿ ïðåäîñòàâëåíèÿ âîçìîæíîñòè ñîçäàíèÿ êàäðîâ îáùåãî íàçíà÷åíèÿ ñ ôóíêöèåé ïðåäîñòàâëåíèÿ äåòàëèçèðîâàííûõ äàííûõ ðàçíûõ èñòî÷íèêîâ îäíîãî òèïà íåîáõîäèì ìåõàíèçì äèíàìè÷åñêîé óñòàíîâêè ñâÿçåé. Òàêîé ìåõàíèçì ïðåäóñìàòðèâàåòñÿ ïîñðåäñòâîì çàðåçåðâèðîâàííîãî êëþ÷åâîãî èäåíòèôèêàòîðà "<page>" ãðóïïû àòðèáóòîâ ñâÿçåé ó êàäðîâ îáùåãî íàçíà÷åíèÿ è äèíàìè÷åñêîå íàçíà÷åíèå ñâÿçåé ñ èäåíòèôèêàòîðîì "<page>" â ïðîöåññå îòêðûòèÿ êàäðà îáùåãî íàçíà÷åíèÿ ñèãíàëîì îò äðóãîãî âèäæåòà.
Ðàññìîòðèì ïðèìåð, êîãäà èìååòñÿ êàäð îáùåãî íàçíà÷åíèÿ "Ïàíåëü êîíòðîëÿ ãðàôèêîì" è ìíîæåñòâî "Ãðàôèêîâ" íà ðàçíûõ êàäðàõ. "Ïàíåëü êîíòðîëÿ ãðàôèêîì" èìååò ñâÿçè ñ øàáëîíàìè:
- tSek -> "<page>|tSek"
- tSize -> "<page>|tSize"
- trcPer -> "<page>|trcPer"
- valArch -> "<page>|valArch"
Ïðè ýòîì êàæäûé âèäæåò "Ãðàôèê" èìååò àòðèáóòû tSek, tSize, trcPer è valArch.  ñëó÷àå âûçîâà ñèãíàëà îòêðûòèÿ "Ïàíåëè êîíòðîëÿ ãðàôèêîì" èç ëþáîãî âèäæåòà "Ãðàôèê" ïðîèñõîäèò ñâÿçûâàíèÿ àòðèáóòîâ "Ïàíåëè êîíòðîëÿ ãðàôèêîì" â ñîîòâåòñòâèè àòðèáóòó, óêàçàííîìó â øàáëîíå, ñ àòðèáóòîì âèäæåòà "Ãðàôèê". Êàê ðåçóëüòàò, âñå èçìåíåíèÿ íà "Ïàíåëè êîíòðîëÿ ãðàôèêîì" áóäóò îòðàæàòüñÿ íà ãðàôèêå ïîñðåäñòâîì ñâÿçè.
 ñëó÷àå íàëè÷èÿ ó âèäæåòà "Ãðàôèê" âíåøíèõ ñâÿçåé íà ïàðàìåòðû ïîäñèñòåìû "Ñáîð äàííûõ", ñâÿçè "Ïàíåëè êîíòðîëÿ ãðàôèêîì" áóäóò óñòàíàâëèâàòüñÿ íà âíåøíèé èñòî÷íèê. Êðîìå ýòîãî, åñëè ó "Ïàíåëè êîíòðîëÿ ãðàôèêîì" áóäóò çàÿâëåíû ñâÿçè íà îòñóòñòâóþùèå íåïîñðåäñòâåííî ó âèäæåòà "Ãðàôèê" àòðèáóòû, òî áóäåò ïðîèçâîäèòñÿ ïîèñê íà íàëè÷èå òàêèõ àòðèáóòîâ ó âíåøíåãî èñòî÷íèêà, ïåðâîãî íà êîòîðûé óñòàíîâëåíà ïðÿìàÿ ñâÿçü, âûïîëíÿÿ, òåì ñàìûì, äîïîëíåíèå íåäîñòàþùèõ ñâÿçåé.
Äëÿ íàãëÿäíîãî èçîáðàæåíèÿ ýòîãî ìåõàíèçìà ïðèâåäåíà òàáëèöà 2.2.
Òàáëèöà 2.2. Ìåõàíèçì äèíàìè÷åñêîé ëèíêîâêè.
Àòðèáóòû "Ïàíåëè êîíòðîëÿ ãðàôèêîì" (øàáëîí äèíàìè÷åñêîé ñâÿçè) | Àòðèáóòû "Ãðàôèêà" | Àòðèáóòû âíåøíåãî "Ïàðàìåòðà" | Ðåçóëüòèðóþùàÿ ñâÿçü èëè çíà÷åíèå ñâÿçóþùåãîñÿ àòðèáóòà |
tSek (<page>|tSek) | tSek | - | "Ãðàôèê".tSek |
tSize (<page>|tSize) | tSize | - | "Ãðàôèê".tSize |
trcPer (<page>|trcPer) | trcPer | - | "Ãðàôèê".trcPer |
valArch (<page>|valArch) | valArch | - | "Ãðàôèê".valArch |
var (<page>|var) | var | var | "Ïàðàìåòð".var |
ed (<page>|ed) | - | ed | "Ïàðàìåòð".ed |
max (<page>|max) | - | - | EVAL |
min (<page>|min) | - | - | EVAL |
3. Èñïîëíåíèå èíòåðôåéñîâ ÑÂÓ
Èñïîëíåíèå èíòåðôåéñà ÑÂÓ çàêëþ÷àåòñÿ â çàïóñêå íîâîãî ñåàíñà ïðîåêòà èëè ïîäêëþ÷åíèè ê ñóùåñòâóþùåìó íà óðîâíå äâèæêà ÑÂÓ. Äàëåå ìîäóëü íåïîñðåäñòâåííîé âèçóàëèçàöèè îòðàæàåò è óïðàâëÿåò äàííûìè ñåàíñà. Ãëàâíîå îêíî ðåæèìà èñïîëíåíèÿ äàííîãî ìîäóëÿ èìååò âèä, ïðåäñòàâëåííûé íà ðèñ.3.
Ðåàëèçîâàíî îáíîâëåíèå ñîäåðæèìîãî îòêðûòûõ ñòðàíèö èíòåðôåéñà âèçóàëèçàöèè ñ ïåðèîäè÷íîñòüþ èñïîëíåíèÿ ñåññèè ïðîåêòà.  ïðîöåññå îáíîâëåíèÿ âûïîëíÿåòñÿ:
- çàïðîñ ñïèñêà îòêðûòûõ ñòðàíèö ñ ïðèçíàêîì ìîäèôèêàöèè ñòðàíèöû ó ìîäåëè è ïðîâåðêà ñîîòâåòñòâèÿ ðåàëüíî îòêðûòûõ ñòðàíèö ýòîìó ñïèñêó;
- çàïðîñ âåòâè äàííûõ ìîäèôèöèðîâàííûõ ñòðàíèö;
- îáíîâëåíèå ñîäåðæèìîãî ìîäèôèöèðîâàííûõ ñòðàíèö è èõ âèäæåòîâ â ñîîòâåòñòâèè ñ ïîëó÷åííûìè èçìåíåííûìè äàííûìè.
Ïî çàêðûòèþ "RunTime" îêíà ïðîèçâîäèòñÿ çàêðûòèå ñåññèè ïðîåêòà â äâèæêå ÑÂÓ.
Ìåõàíèçì çàïðîñà òîëüêî èçìåí¸ííûõ äàííûõ îñíîâàí íà àáñîëþòíîì ñ÷¸ò÷èêå èñïîëíåíèÿ ñåññèè. Ïðè âíåñåíèè ðåàëüíûõ èçìåíåíèé â àòðèáóòû âèäæåòîâ âûïîëíÿåòñÿ çàïîìèíàíèå çíà÷åíèÿ ýòîãî ñ÷¸ò÷èêà, ÷òî è ïîçâîëÿåò èäåíòèôèöèðîâàòü èçìåí¸ííûå àòðèáóòû. Òàêîé ïîäõîä ïîçâîëÿåò ïîâûñèòü ïðîèçâîäèòåëüíîñòü è óìåíüøèòü íàãðóçêó íà ñåòåâîé îáìåí â ñëó÷àå äîñòóïà ê äâèæêó ÑÂÓ ÷åðåç ñåòü.
Èåðàðõè÷åñêè ìîäóëåì ïðåäóñìàòðèâàåòñÿ âîçìîæíîñòü ðàçìåùåíèÿ ñòðàíèö ïðîåêòà êàê íà ãëàâíîì îêíå èñïîëíåíèÿ (ðèñ.3), òàê è âêëàäûâàÿ âíóòðü âèäæåòîâ êîíòåéíåðîâ, à òàêæå ïóòåì îòêðûòèÿ äîïîëíèòåëüíûõ îêîí ïîâåðõ îñíîâíîãî.
Ïðè ðàçâîðà÷èâàíèè ãëàâíîãî îêíà èñïîëíåíèÿ èëè ïåðåõîäå â ïîëíîýêðàííûé ðåæèì âûïîëíÿåòñÿ ìàñøòàáèðîâàíèå ñîäåðæèìîãî ñòðàíèöû èíòåðôåéñà ÑÂÓ, çàïîëíÿÿ âñ¸ ïðîñòðàíñòâî îêíà è, ïîçâîëÿÿ òåì ñàìûì èñïîëíÿòü ïðîåêòû, ðàçðàáîòàííûå íà îäíîì ðàçðåøåíèè ýêðàíà, íà ðàçíûõ ðàçðåøåíèÿõ.
Ãëàâíîå îêíî ñîñòîèò èç ìåíþ (ñâåðõó) ñòðîêè ñòàòóñà (ñíèçó) è èñïîëíÿåìîãî ñîäåðæèìîãî ñåàíñà ìåæäó íèìè. Ìåíþ â ðåæèìå èñïîëíåíèÿ ïîçèöèîíèðóåòñÿ êàê èíñòðóìåíò àäìèíèñòðàòîðà OpenSCADA, ñîäåðæàùèé îáùåñèñòåìíûå ôóíêöèè, è äîñòóïíî òîëüêî ïðèâèëåãèðîâàííûì ïîëüçîâàòåëÿì, ñîñòîÿùèì â ãðóïïå "root". Ìåíþ èìååò ñëåäóþùóþ ñòðóêòóðó:
- "Ôàéë" — Îáùèå îïåðàöèè.
- "Ïå÷àòü" — Ïå÷àòü:
- "Ñòðàíèöà" — ñòðàíèöó ïîëüçîâàòåëüñêîãî èíòåðôåéñà;
- "Äèàãðàììà" — äèàãðàììó íà ïîëüçîâàòåëüñêîì èíòåðôåéñå;
- "Äîêóìåíò" — äîêóìåíò íà ïîëüçîâàòåëüñêîì èíòåðôåéñå.
- "Ýêñïîðò" — Ýêñïîðò:
- "Ñòðàíèöà" — ñòðàíèöó ïîëüçîâàòåëüñêîãî èíòåðôåéñà;
- "Äèàãðàììà" — äèàãðàììó íà ïîëüçîâàòåëüñêîì èíòåðôåéñå;
- "Äîêóìåíò" — äîêóìåíò íà ïîëüçîâàòåëüñêîì èíòåðôåéñå.
- "Çàêðûòü" — çàêðûòü îêíî ðåäàêòîðà.
- "Âûõîä" — Âûõîä èç ñèñòåìû OpenSCADA.
- "Íàðóøåíèå" — Êâèòàöèÿ íàðóøåíèé:
- "Óðîâåíü íàðóøåíèÿ" — âñå íàðóøåíèÿ;
- "Ñâåòîâîå ïðåäóïðåæäåíèå" — ñâåòîâîå óâåäîìëåíèå;
- "Ïðåäóïðåæäåíèå ãóäêîì" — óâåäîìëåíèå ãóäêîì;
- "Çâóêîâîå/ðå÷åâîå ïðåäóïðåæäåíèå" — óâåäîìëåíèå çâóêîì/ðå÷üþ.
- "Âèä" — Ïàðàìåòðû îòîáðàæåíèÿ ñåàíñà ïðîåêòà.
- "Âåñü ýêðàí" — ïåðåêëþ÷àòåëü ïîëíîýêðàííîãî ðåæèìà èñïîëíåíèÿ.
- "Ïîìîùü" — Ïîìîùü ïî OpenSCADA è ìîäóëþ Vision.
- "Ïðî" — èíôîðìàöèÿ ïðî äàííûé ìîäóëü.
- "Ïðî Qt" — èíôîðìàöèÿ î áèáëèîòåêå Qt, èñïîëüçóåìîé ìîäóëåì.
- "QTStarter ïàíåëü èíñòðóìåíòîâ" — Ïàíåëü, ñîçäàííàÿ ìîäóëåì çàïóñêà ìîäóëåé áèáëèîòåêè Qt. Ñîäåðæèò êíîïêè äëÿ çàïóñêà UI ìîäóëåé ñèñòåìû OpenSCADA, îñíîâàííûõ íà áèáëèîòåêå Qt. Ñ ïîìîùüþ ýòîé ïàíåëè ìîæíî îòêðûòü íåñêîëüêî ýêçåìïëÿðîâ îêîí äàííîãî ìîäóëÿ èëè äðóãèõ ìîäóëåé.
Ñ ïðàâîé ñòîðîíû ñòðîêè ñòàòóñà ðàçìåùàþòñÿ èíäèêàòîðû ÷àñîâ, òåêóùåé ñòàíöèè äâèæêà ÑÂÓ è ïîëüçîâàòåëÿ, îò èìåíè êîòîðîãî èñïîëíÿåòñÿ èíòåðôåéñ ÑÂÓ, à òàêæå ïàíåëü ñ êíîïêàìè êâèòàöèè íàðóøåíèé, ïå÷àòè è ýêñïîðòà. Ïî äâîéíîìó êëèêó íà èíäèêàòîðå ïîëüçîâàòåëÿ ìîæíî ïîëüçîâàòåëÿ ñìåíèòü, ââåäÿ íîâîå èìÿ è ïàðîëü ïîëüçîâàòåëÿ, à ïî êëèêó íà êíîïêè êâèòàöèè — ñêâèòèðîâàòü íàðóøåíèÿ ïîëíîñòüþ èëè òîëüêî íóæíîå óâåäîìëåíèå.  ãëàâíîå ïîëå ñòðîêè ñòàòóñà âûâîäÿòñÿ ðàçëè÷íûå èíôîðìàöèîííûå ñîîáùåíèÿ è ñîîáùåíèÿ ïîìîùè.
Ðèñ.3. Ãëàâíîå îêíî ðåæèìà èñïîëíåíèÿ.
4. Ïðåäñòàâëåíèå áàçîâûõ ýëåìåíòîâ (ïðèìèòèâîâ)
 äàííîé âåðñèè ýòîãî ìîäóëÿ ðåàëèçîâàíû íå âñå îáðàçû ïðèìèòèâîâ çàëîæåííûå ýòèì ïðîåêòîì.  îáùåì æå ïðîåêòîì çàëîæåíû ïðèìèòèâû:
Id | Íàèìåíîâàíèå | Ôóíêöèÿ |
ElFigure | Ýëåìåíòàðíûå ãðàôè÷åñêèå ôèãóðû | Ïðèìèòèâ ÿâëÿåòñÿ îñíîâîé äëÿ îòðèñîâêè ýëåìåíòàðíûõ ãðàôè÷åñêèõ ôèãóð ñî âñåâîçìîæíîé êîìáèíàöèåé èõ â îäíîì îáúåêòå. Ïðåäóñìàòðèâàåòñÿ ïîääåðæêà ñëåäóþùèõ ýëåìåíòàðíûõ ôèãóð: - Ëèíèÿ.
- Äóãà.
- Êðèâàÿ áåçüå.
- Çàëèâêà çàìêíóòîãî ïðîñòðàíñòâà.
Äëÿ âñåõ ôèãóð, ñîäåðæàùèõñÿ â âèäæåòå, óñòàíàâëèâàþòñÿ åäèíûå ñâîéñòâà òîëùèíû, öâåòà è ò.ä., íî ýòî íå èñêëþ÷àåò âîçìîæíîñòü óêàçàíèÿ âûøåïåðå÷èñëåííûõ àòðèáóòîâ äëÿ êàæäîé ôèãóðû îòäåëüíî. |
FormEl | Ýëåìåíòû ôîðìû | Âêëþ÷àåò ïîääåðæêó ñòàíäàðòíûõ êîìïîíåíòîâ ôîðìû: - Ðåäàêòèðîâàíèå ñòðîêè.
- Ðåäàêòèðîâàíèå òåêñòà.
- Ôëàæîê.
- Êíîïêà.
- Âûáîð èç ñïèñêà.
- Ñïèñîê.
- Äåðåâî.
- Òàáëèöà.
- Ñëàéäåð.
- Ñòðîêà ïðîêðóòêè.
|
Text | Òåêñò | Ýëåìåíò òåêñòà(ìåòêè). Õàðàêòåðèçóåòñÿ òèïîì øðèôòà, öâåòîì, îðèåíòàöèåé è âûðàâíèâàíèåì. |
Media | Ìåäèà | Ýëåìåíò îòîáðàæåíèÿ ðàñòðîâûõ è âåêòîðíûõ èçîáðàæåíèé ðàçëè÷íûõ ôîðìàòîâ, ïðîèãðûâàíèÿ àíèìèðîâàííûõ èçîáðàæåíèé, ïðîèãðûâàíèå àóäèî ôðàãìåíòîâ è ïðîñìîòð âèäåî-ôðàãìåíòîâ. |
Diagram | Äèàãðàììà | Ýëåìåíò äèàãðàììû ñ ïîääåðæêîé âîçìîæíîñòè îòîáðàæåíèÿ íåñêîëüêèõ ïîòîêîâ òðåíäîâ, ÷àñòîòíîãî ñïåêòðà, XY äèàãðàìì ðåàëüíîãî âðåìåíè, ... . |
Protocol | Ïðîòîêîë | Ýëåìåíò ïðîòîêîëà, âèçóàëèçàòîðà ñèñòåìíûõ ñîîáùåíèé ñ ïîääåðæêîé íåñêîëüêî ðåæèìîâ ðàáîòû. |
Document | Äîêóìåíò | Ýëåìåíò ôîðìèðîâàíèÿ îò÷¸òîâ, æóðíàëîâ è äðóãîé äîêóìåíòàöèè íà îñíîâå äîñòóïíûõ â ñèñòåìå äàííûõ. |
Box | Êîíòåéíåð | Ñîäåðæèò ìåõàíèçì ðàçìåùåíèÿ-âêëþ÷åíèÿ äðóãèõ âèäæåòîâ ñ öåëüþ ôîðìèðîâàíèÿ íîâûõ, áîëåå ñëîæíûõ, âèäæåòîâ è ñòðàíèö êîíå÷íîé âèçóàëèçàöèè. |
Function, â ïëàíàõ | Ôóíêöèÿ API îáúåêòíîé ìîäåëè OpenSCADA | Íåâèçóàëüíûé, íà ñòîðîíå èñïîëíåíèÿ, âèäæåò, ïîçâîëÿþùèé âêëþ÷àòü âû÷èñëèòåëüíûå ôóíêöèè îáúåêòíîé ìîäåëè OpenSCADA â ÑÂÓ. |
Ìîäóëåì âèçóàëèçàòîðà ïðåäîñòàâëÿåòñÿ è èñïîëüçóåòñÿ ðÿä ñïåöèôè÷åñêèõ àòðèáóòîâ, îáùåãî õàðàêòåðà, èíôîðìàöèÿ î êîòîðûõ ïðèâåäåíà â òàáëèöå. Ýòè àòðèáóòû àâòîìàòè÷åñêè ñîçäàþòñÿ âèçóàëèçàòîðîì, ïðè èõ îòñóòñòâèè, â ìîìåíò ïåðâîãî çàïóñêà.
Id (îáëàñòü) | Èìÿ | Íàçíà÷åíèå |
statLine (ãëàâíàÿ ñòðàíèöà) | Ýëåìåíòû ñòðîêè ñòàòóñîâ | Òåêñòîâîå ïîëå ñ îïèñàíèåì ýëåìåíòîâ ñòðîêè ñòàòóñà ïîëüçîâàòåëÿ â ôîðìàòå ñòðîêè "{Id}:{Label}:{ToolTip}:{Color}:{Img}", ãäå: - "Id" — èäåíòèôèêàòîð, èñïîëüçóåòñÿ òàêæå äëÿ ôîðìèðîâàíèÿ ñîáûòèé îò ëèöà âèäæåòà "stIt_{Id}".
- "Label" — âèçóàëüíàÿ ìåòêà ýëåìåíòà ñòàòóñà.
- "ToolTip" — âñïëûâàþùàÿ ïîäñêàçêà îêîëî ýëåìåíòà.
- "Color" — öâåò ìåòêè.
- "Img" — èçîáðàæåíèå ýëåìåíòà ñòàòóñà, âìåñòî ìåòêè.
|
runWin (ãëàâíàÿ ñòðàíèöà) | Îêíî èñïîëíåíèÿ | Óñòàíîâêà ðåæèìà èñïîëíåíèÿ ãëàâíîãî îêíà: - "Îðèãèíàëüíûé ðàçìåð (0)".
- "Ìàêñèìèçèðîâàòü (1)".
- "Íà âåñü ýêðàí (2)".
|
keepAspectRatio (ãëàâíàÿ ñòðàíèöà) | Ñîõðàíÿòü ïðîïîðöèþ ïðè ìàñøòàáèðîâàíèè | Ñîõðàíÿòü ïðîïîðöèþ ñòðàíèö ïðè ìàñøòàáèðîâàíèè. |
stBarNoShow (ãëàâíàÿ ñòðàíèöà) | Íå ïîêàçûâàòü ñòðîêó ñòàòóñà | Ñêðûòü ñòðîêó ñòàòóñà ãëàâíîãî îêíà. |
winPosCntrSave (ãëàâíàÿ ñòðàíèöà) | Óïðàâëåíèå è ñîõðàíåíèå ïîëîæåíèé îêîí | Âêëþ÷åíèå óïðàâëåíèÿ è ñîõðàíåíèÿ ïîëîæåíèÿ îêîí. |
Áîëåå äåòàëüíî ðàññìîòðèì ðåàëèçàöèþ êàæäîãî ïðèìèòèâà.
4.1. Ïðèìèòèâ ýëåìåíòàðíàÿ ôèãóðà (ElFigure)
Ðåàëèçîâàíà ïîääåðæêà ýëåìåíòàðíûõ ôèãóð: ëèíèè, ýëëèïòè÷åñêîé äóãè, êðèâîé Áåçüå è çàëèâêà çàìêíóòûõ êîíòóðîâ öâåòîì è/èëè èçîáðàæåíèåì. Äëÿ ýëåìåíòàðíûõ ôèãóð ðåàëèçîâàíû ñëåäóþùèå îïåðàöèè:
- ñîçäàíèå/óäàëåíèå ôèãóð;
- êîïèðîâàíèå ôèãóð;
- ïåðåìåùåíèå è èçìåíåíèå ðàçìåðîâ ôèãóð ñ ïîìîùüþ ìûøè è êëàâèàòóðû;
- âîçìîæíîñòü ñâÿçûâàòü ýëåìåíòàðíûå ôèãóðû äðóã ñ äðóãîì, ïîëó÷àÿ áîëåå ñëîæíûå, äëÿ êîòîðûõ äîñòóïíû âñå ñâîéñòâà èñõîäíûõ ýëåìåíòàðíûõ ôèãóð;
- âîçìîæíîñòü îäíîâðåìåííîãî ïåðåìåùåíèÿ íåñêîëüêèõ ôèãóð;
- çàëèâêà çàìêíóòîãî êîíòóðà öâåòîì è/èëè èçîáðàæåíèåì;
- ãåíåðàöèÿ ñîáûòèé êëàâèø ìûøè â ìîìåíò êëèêà ìûøüþ íà çàëèòûå êîíòóðà;
- ìàñøòàáèðîâàíèå;
- ïîâîðîò;
- îòðàæåíèå, ÷àñòè÷íî.
Íà ðèñóíêå ïðåäñòàâëåíà ÷àñòü ýêðàíà ñ êàäðîì, ñîäåðæàùèì ýëåìåíòàðíûå ôèãóðû.
Ôèãóðû, ëåæàùèå â îñíîâå äàííîãî âèäæåòà, ñîäåðæàò òî÷êè(íà÷àëüíàÿ è êîíå÷íàÿ), êîòîðûå ìîãóò ñòûêîâàòüñÿ ñ ñîîòâåòñòâóþùèìè òî÷êàìè äðóãèõ ôèãóð, è òî÷êè, ñ ïîìîùüþ êîòîðûõ èçìåíÿåòñÿ ãåîìåòðèÿ ôèãóðû.
Äîáàâèòü ôèãóðó ìîæíî ñ ïîìîùüþ ìûøè:
- Âûáðàòü æåëàåìóþ ôèãóðó èç êîíòåêñòíîãî ìåíþ.
- Çàäàòü ñ ïîìîùüþ ëåâîé êíîïêè ìûøè íà÷àëüíóþ è êîíå÷íóþ òî÷êè (äëÿ ëèíèè ïðè óäåðæèâàíèè êëàâèøè SHIFT ïðîèñõîäèò îðòîãîíàëüíàÿ å¸ îòðèñîâêà).
Óäàëèòü ôèãóðó(û) ìîæíî ïóò¸ì íàæàòèÿ êíîïêè "Del", èìåÿ âûäåëåííóþ(ûå) ôèãóðó(û).
Ñêîïèðîâàòü ôèãóðó(û) ìîæíî ïóò¸ì íàæàòèÿ êîìáèíàöèè êëàâèø "Ctrl" + "C", èìåÿ âûäåëåííóþ(ûå) ôèãóðó(û).
Ïåðåäâèíóòü/èçìåíèòü ãàáàðèòû ôèãóðû ìîæíî ñ ïîìîùüþ ìûøè èëè êëàâèàòóðû:
- Âûäåëèòü ôèãóðó, êëàöíóâ ïî íåé ëåâîé êíîïêîé ìûøè.
- Ïåðåòàùèòü (ñ ïîìîùüþ ìûøè èëè óïðàâëÿþùèõ êëàâèø) ôèãóðó èëè îäíó èç å¸ êîíòðîëüíûõ òî÷åê â æåëàåìîå ìåñòî è îòïóñòèòü êíîïêó ìûøè(êëàâèøó).
Ñóùåñòâóåò âîçìîæíîñòü ïåðåìåùàòü íåñêîëüêî âûäåëåííûõ ôèãóð, âûáðàííûõ ïðè ïîìîùè óäåðæàíèÿ "Ctrl"(ýòà îïöèÿ ðàáîòàåò ïðè îòêëþ÷åííîé êíîïêå Connetcions(Ïðèâÿçêè)) ëèáî ïðè ïîìîùè âûäåëåíèÿ ìûøêîé.
Ñâÿçàòü ôèãóðû äðóã ñ äðóãîì ìîæíî ñëåäóþùèì îáðàçîì:
- Íàæàòü êíîïêó Connections.
- Âûäåëèòü îäíó èç ôèãóð è ïåðåìåñòèòü å¸ íà÷àëüíóþ èëè êîíå÷íóþ òî÷êó ê æåëàåìîé íà÷àëüíîé èëè êîíå÷íîé òî÷êå äðóãîé ôèãóðû òàê, ÷òîáû îíà ïîïàäàëà â ïîÿâèâøóþñÿ îêðóæíîñòü. Ñâÿçàííûå ôèãóðû ïåðåìåùàþòñÿ òàêæå êàê è îòäåëüíûå, îáùàÿ òî÷êà ïåðåìåùàåòñÿ äëÿ âñåõ ôèãóð, ê êîòîðûì îíà îòíîñèòñÿ(ïðèîðèòåò îòäàåòñÿ äóãå, äâå äóãè íå ìîãóò áûòü ñîåäèíåíû íåïîñðåäñòâåííî äðóã ñ äðóãîì).
Çàëèòü çàìêíóòûé êîíòóð èç ôèãóð ìîæíî ñëåäóþùèì îáðàçîì:
- Íàæàòü êíîïêó Connections.
- Ñîçäàòü çàìêíóòûé êîíòóð.
- Äâà ðàçà êëàöíóòü ìûøêîé âíóòðè åãî.
Óäàëèòü çàëèâêó çàìêíóòîãî êîíòóðà ìîæíî èç êîíòåêñòíîãî ìåíþ, êëàöíóâ ïðàâîé êíîïêîé ìàíèïóëÿòîðà "ìûøü" ïî çàëèâêå; ðàçîðâàâ êîíòóð çàëèâêè; äâîéíûì êëèêîì ëåâîé êíîïêè ìàíèïóëÿòîðà "ìûøü" ïî óæå èìåþùåìóñÿ çàëèòîìó êîíòóðó.
Ïîâîðîò ôèãóðû îñóùåñòâëÿåòñÿ âîêðóã öåíòðà âèäæåòà.
4.2. Ïðèìèòèâ òåêñòà (Text)
Ðåàëèçîâàíà ïîääåðæêà ýëåìåíòà òåêñòà ñî ñâîéñòâàìè:
- Øðèôò ñî ñâîéñòâàìè: òèïà/êëàññà øðèôòà, ðàçìåðà, óñèëåíèÿ, íàêëîííîñòè, ïîä÷¸ðêèâàíèÿ è ïåðå÷¸ðêèâàíèÿ.
- Öâåò òåêñòà.
- Îðèåíòàöèÿ òåêñòà.
- Àâòîìàòè÷åñêèé ïåðåíîñ ïî ñëîâàì.
- Âûðàâíèâàíèå òåêñòà ïî ãîðèçîíòàëè è âåðòèêàëè ñî âñåìè âàðèàíòàìè.
- Îòîáðàæåíèå ôîíà â âèäå öâåòà è/èëè èçîáðàæåíèÿ.
- Îòîáðàæåíèå áîðäþðà âîêðóã òåêñòà ñ óêàçàííûì öâåòîì, øèðèíîé è ñòèëåì.
- Ôîðìèðîâàíèå òåêñòà èç àòðèáóòîâ ðàçëè÷íîãî òèïà è ñâîéñòâ.
Íà ðèñóíêå ïðåäñòàâëåíà ÷àñòü ýêðàíà ñ êàäðîì, ñîäåðæàùèì ïðèìåðû òåêñòà ñ èñïîëüçîâàíèåì ðàçëè÷íûõ ïàðàìåòðîâ.
4.3. Ïðèìèòèâ ýëåìåíòîâ ôîðìû (FormEl)
Ðåàëèçîâàíà ïîääåðæêà ýëåìåíòîâ ôîðìû íà êàäðàõ ÑÂÓ. Ðåàëèçîâàíû çàëîæåííûå ñâîéñòâà, âêëþ÷àÿ ñëåäóþùèå ýëåìåíòû ôîðìû:
- Ðåäàêòîð ñòðîêè — Ïðåäñòàâëåíî ñëåäóþùèìè âèäàìè: "Òåêñò", "Combo", "Öåëîå", "Âåùåñòâåííîå", "Âðåìÿ", "Äàòà", "Âðåìÿ è Äàòà". Âñå âèäû ðåäàêòîðà ñòðîêè ïîääåðæèâàþò ïîäòâåðæäåíèå ââîäà.
- Ðåäàêòîð òåêñòà — Ïðåäñòàâëÿåò ðåäàêòîð ïëîñêîãî òåêñòà ñ ïîäòâåðæäåíèåì èëè îòêàçîì îò ââîäà.
- Ïîëå ôëàæêà — Ïðåäîñòàâëÿåò ïîëå áèíàðíîãî ôëàæêà.
- Êíîïêà — Ïðåäîñòàâëÿåò êíîïêó ñ ïîääåðæêîé: öâåòà êíîïêè, èçîáðàæåíèÿ â êíîïêå è ðåæèìà ôèêñàöèè.
- Âûáîð èç ñïèñêà — Ïðåäîñòàâëÿåò ïîëå âûáîðà ýëåìåíòà ñî ñïèñêà óêàçàííûõ ýëåìåíòîâ.
- Ñïèñîê — Ïðåäîñòàâëÿåò ïîëå ñïèñêà ñ êîíòðîëåì çà òåêóùèì ýëåìåíòîì.
- Äåðåâî — Ïðåäîñòàâëÿåò ýëåìåíò äåðåâà ñ âîçìîæíîñòüþ âûáîðà ýëåìåíòîâ.
- Òàáëèöà — Ïðåäîñòàâëÿåò ýëåìåíò òàáëèöû ñ âîçìîæíîñòüþ âûáîðà ÿ÷ååê, ñòðîê èëè êîëîíîê è ðåäàêòèðîâàíèÿ ñîäåðæèìîãî ÿ÷åéêè.
- Ñëàéäåð — Ýëåìåíò ñëàéäåðà.
- Ïðîãðåñ-áàð — Ïîëîñêà ïðîãðåññ-áàðà.
Ðåàëèçîâàíû ðåæèìû: «Âêëþ÷åí» è «Àêòèâåí», à òàêæå ïåðåäà÷à èçìåíåíèé è ñîáûòèé â ìîäåëü äàííûõ ÑÂÓ (äâèæîê).
Íà ðèñóíêå ïðåäñòàâëåíà ÷àñòü ýêðàíà ñ êàäðîì, ñîäåðæàùèì âûøåïåðå÷èñëåííûå ýëåìåíòû ôîðìû.
4.4. Ïðèìèòèâ îòîáðàæåíèÿ ìåäèà-ìàòåðèàëîâ (Media)
Ðåàëèçîâàíà ïîääåðæêà ýëåìåíòà îòîáðàæåíèÿ ìåäèà-ìàòåðèàëîâ ñî ñâîéñòâàìè:
- Óêàçàíèå èñòî÷íèêà ìåäèà äàííûõ (èçîáðàæåíèÿ èëè âèäåî-ìàòåðèàëà).
- Ïðîñìîòð èçîáðàæåíèé áîëüøèíñòâà èçâåñòíûõ ôîðìàòîâ ñ âîçìîæíîñòüþ èõ âïèñûâàíèÿ â ðàçìåð âèäæåòà.
- Ïðîèãðûâàíèå ïðîñòûõ àíèìèðîâàííûõ ôîðìàòîâ èçîáðàæåíèé è âèäåî ñ âîçìîæíîñòüþ óïðàâëåíèÿ ñêîðîñòüþ ïðîèãðûâàíèÿ.
- Ïðîèãðûâàíèå ïîëíîôîðìàòíîãî âèäåî è àóäèî, ïîñðåäñòâîì Phonon.
- Îòîáðàæåíèå ôîíà â âèäå öâåòà è/èëè èçîáðàæåíèÿ.
- Îòîáðàæåíèå áîðäþðà âîêðóã òåêñòà, ñ óêàçàííûì öâåòîì, øèðèíîé è ñòèëåì.
- Ôîðìèðîâàíèÿ àêòèâíûõ îáëàñòåé è ãåíåðàöèÿ ñîáûòèé ïðè èõ àêòèâàöèè.
Íà ðèñóíêå ïðåäñòàâëåíà ÷àñòü ýêðàíà ñ êàäðîì, ñîäåðæàùèì ïðèìåðû ïðîñìîòðà/ïðîèãðûâàíèÿ ìåäèà-äàííûõ.
4.5. Ïðèìèòèâ ïîñòðîåíèÿ äèàãðàìì/ãðàôèêîâ (Diagram)
Ðåàëèçîâàíà ïîääåðæêà ýëåìåíòà ïîñòðîåíèÿ äèàãðàìì äëÿ òèïîâ "Ãðàôèê", "Ñïåêòð" è "XY" ñî ñâîéñòâàìè:
- Îáùèå ñâîéñòâà òèïîâ äèàãðàììû "Ãðàôèê", "Ñïåêòð" è "XY":
- âîçìîæíîñòü âûáîðà àðõèâàòîðà, áóôåðà àðõèâà èëè âñåõ äàííûõ ïðè ðàáîòå ñ àðõèâíûìè äàííûìè;
- àäàïòàöèÿ ãðàôèêà ïàðàìåòðà ê ðåàëüíûì çíà÷åíèÿì äàííûõ ïóò¸ì ïîäñòðîéêè øêàëû, â ñëó÷àå îòñóòñòâèÿ ïðÿìî óêàçàííîãî äèàïàçîíà çíà÷åíèé;
- óïðàâëåíèå ìàñøòàáîì øêàëû çíà÷åíèé ïóò¸ì óâåëè÷åíèÿ/óìåíüøåíèÿ è ñìåùåíèÿ;
- øèðîêèé äèàïàçîí ìàñøòàáèðîâàíèÿ è àäàïòàöèè øêàëû âðåìåíè ñ àâòîìàòè÷åñêèì ïðèâåäåíèåì çàïðàøèâàåìûõ äàííûõ ê êà÷åñòâó äîñòàòî÷íîìó äëÿ îòîáðàæåíèÿ, èëè íóæíîìó äëÿ ýêñïîðòà — óêàçàíèåì ïðåäåëüíîãî êîëè÷åñòâà èçìåðåíèé â ïèêñåëå;
- îòîáðàæåíèå ðàçìåðíîé ñåòêè è ìàðêåðîâ ïî ãîðèçîíòàëè è âåðòèêàëè ñ àäàïòàöèåé ê äèàïàçîíó îòîáðàæåíèÿ;
- ñëåäÿùèé ðåæèì çà òåêóùèì âðåìåíåì ïóò¸ì ïåðèîäè÷åñêîãî îáíîâëåíèÿ è ñìåùåíèÿ âðåìåíè äèàãðàììû ê òåêóùåìó âðåìåíè (âðåìåíè ïîñëåäíèõ äàííûõ â áóôåðå àðõèâà);
- ãîðèçîíòàëüíûé ñëàéäèíã/ñêîëüæåíèå ñ ïîìîùüþ ìûøü;
- ìàñøòàáèðîâàíèå ó÷àñòêà îáðàìë¸ííîãî îêíîì, ìûøüþ.
- Ñâîéñòâà òèïà äèàãðàììû "Ãðàôèê":
- ïîñòðîåíèå ãðàôèêîâ äî 100 ïàðàìåòðîâ íà îäíîé äèàãðàììå â ïðîöåíòíîé øêàëå è âîçìîæíîñòüþ îòîáðàæåíèÿ â ñîáñòâåííîé øêàëå âûáðàííûõ ïàðàìåòðîâ;
- ïîñòðîåíèå ãðàôèêà äëÿ: òåêóùèõ, àðõèâíûõ è ïîëüçîâàòåëüñêèõ äàííûõ;
- ôîðìèðîâàíèÿ ïðîìåæóòî÷íîãî áóôåðà îòîáðàæåíèÿ äëÿ òåêóùèõ çíà÷åíèé;
- ïîääåðæêà àêòèâíîãî ðåæèìà ñ êóðñîðîì è ïîëó÷åíèåì çíà÷åíèé ïîä êóðñîðîì;
- âîçìîæíîñòü ïîñòðîåíèÿ ãðàôèêîâ êàê â ëèíåéíîé, òàê è ëîãàðèôìè÷åñêîé øêàëå çíà÷åíèé.
- Ñâîéñòâà òèïà äèàãðàììû "Ñïåêòð":
- ïîñòðîåíèå ãðàôèêîâ ÷àñòîòíîãî ñïåêòðà ïàðàìåòðîâ äî 100 íà îäíîé äèàãðàììå â ïðîöåíòíîé øêàëå è âîçìîæíîñòüþ îòîáðàæåíèÿ â ñîáñòâåííîé øêàëå âûáðàííûõ ïàðàìåòðîâ;
- ïîñòðîåíèå ãðàôèêà äëÿ: àðõèâíûõ è ïîëüçîâàòåëüñêèõ äàííûõ;
- ïîääåðæêà àêòèâíîãî ðåæèìà ñ êóðñîðîì è ïîëó÷åíèåì çíà÷åíèé ïîä êóðñîðîì;
- Ñâîéñòâà òèïà äèàãðàììû "XY":
- ïîñòðîåíèå XY ãðàôèêîâ ïàðàìåòðîâ äî 50 íà îäíîé äèàãðàììå â ïðîöåíòíîé øêàëå è âîçìîæíîñòüþ îòîáðàæåíèÿ â ñîáñòâåííîé øêàëå âûáðàííûõ ïàðàìåòðîâ;
- ïîñòðîåíèå ãðàôèêà äëÿ: òåêóùèõ, àðõèâíûõ è ïîëüçîâàòåëüñêèõ äàííûõ;
- ôîðìèðîâàíèÿ ïðîìåæóòî÷íîãî áóôåðà îòîáðàæåíèÿ äëÿ òåêóùèõ çíà÷åíèé;
- ïàðàìåòðû ðàñïðåäåëÿþòñÿ ïàðàìè íà ãðàôèê, ãäå ÷¸òíûå ïî îñè Y (0,2,4...) è íå÷¸òíûå ïî îñè X (1,3,5...);
- âîçìîæíîñòü ïîñòðîåíèÿ ãðàôèêîâ êàê â ëèíåéíîé, òàê è ëîãàðèôìè÷åñêîé øêàëå çíà÷åíèé.
Ìîäóëåì âèçóàëèçàòîðà ïðåäîñòàâëÿåòñÿ è èñïîëüçóåò ðÿä ñïåöèôè÷åñêèõ àòðèáóòîâ äàííîãî ïðèìèòèâà, èíôîðìàöèÿ î êîòîðûõ ïðèâåäåíà â òàáëèöå.
Id | Èìÿ | Íàçíà÷åíèå |
sclWin | Ìàñøòàáèðîâàíèå ó÷àñòêà îáðàìë¸ííîãî îêíîì, ìûøüþ | Ëîãè÷åñêèé òèï àòðèáóòà, ñîçàäàâàåìûé âðó÷íóþ ïîëüçîâàòåëåì â ñëó÷àå íàäîáíîñòè. Äëÿ çíà÷åíèÿ "èñòèíà" âêëþ÷àåòñÿ ðåæèì ìàñøòàáèðîâàíèÿ ó÷àñòêà òðåíäà îáðàìë¸ííîãî îêíîì ñ ïîìîùüþ ìûøè. |
Íà ðèñóíêå ïðåäñòàâëåíà ÷àñòü ýêðàíà ñ êàäðîì, ñîäåðæàùèì ïðèìåðû äèàãðàìì: "Ãðàôèê", "Ñïåêòð" è "XY".
4.6. Ïðèìèòèâ ôîðìèðîâàíèÿ ïðîòîêîëà (Protocol)
Ðåàëèçîâàíà ïîääåðæêà ýëåìåíòà ôîðìèðîâàíèÿ ïðîòîêîëà ñî ñâîéñòâàìè:
- Ôîðìèðîâàíèå ïðîòîêîëà èç àðõèâà ñîîáùåíèé çà óêàçàííîå âðåìÿ è ãëóáèíó.
- Çàïðîñ äàííûõ èç óêàçàííûõ àðõèâàòîðîâ ñîîáùåíèé.
- Âûáîðêà äàííûõ èç àðõèâîâ ïî óðîâíþ âàæíîñòè è øàáëîíó êàòåãîðèè ñîîáùåíèé.
- Ïîääåðæêà ðåæèìà ñëåæåíèÿ çà ïîÿâëåíèåì ñîîáùåíèé â àðõèâå ñîîáùåíèé.
Íà ðèñóíêå ïðåäñòàâëåíà ÷àñòü ýêðàíà ñ êàäðîì, ñîäåðæàùèì ïðèìåð ïðîòîêîëà.
4.7. Ïðèìèòèâ ôîðìèðîâàíèÿ îò÷¸òíîé äîêóìåíòàöèè (Document)
Ðåàëèçîâàíà ïîääåðæêà ýëåìåíòà ôîðìèðîâàíèÿ îò÷¸òíîé äîêóìåíòàöèè ñî ñâîéñòâàìè:
- Ãèáêîå ôîðìèðîâàíèå ñòðóêòóðû äîêóìåíòà íà îñíîâå ÿçûêà ãèïåðòåêñòîâîé ðàçìåòêè. Ýòî ïðåäîñòàâëÿåò ïîääåðæêó øèðîêèõ âîçìîæíîñòåé ôîðìàòèðîâàíèÿ äîêóìåíòîâ.
- Ôîðìèðîâàíèå äîêóìåíòîâ ïî êîìàíäå èëè ïî ðàñïèñàíèþ. Íåîáõîäèìî äëÿ ôîðìèðîâàíèÿ îò÷¸òíîé äîêóìåíòàöèè â àðõèâ ñ ïîñëåäóþùèì ïðîñìîòðîì àðõèâà.
- Ôîðìèðîâàíèå äîêóìåíòà â ðåæèìå ðåàëüíîãî âðåìåíè. Äëÿ ôîðìèðîâàíèÿ äîêóìåíòîâ ïîëíîñòüþ äèíàìè÷åñêè è íà îñíîâå àðõèâîâ çà óêàçàííîå âðåìÿ.
- Èñïîëüçîâàíèå àòðèáóòîâ âèäæåòà äëÿ ïåðåäà÷è çíà÷åíèé è àäðåñîâ íà àðõèâû â äîêóìåíò. Ïîçâîëÿåò èñïîëüçîâàòü âèäæåò äîêóìåíòà êàê øàáëîí ïðè ôîðìèðîâàíèè îò÷¸òîâ ñ äðóãèìè âõîäíûìè äàííûìè.
 îñíîâå ëþáîãî äîêóìåíòà ëåæèò XHTML-øàáëîí. XHTML-øàáëîí ýòî òåã "body" WEB-ñòðàíèöû, ñîäåðæàùèé ñòàòèêó äîêóìåíòà â ñòàíäàðòå XHTML 1.0, è ýëåìåíòû èñïîëíÿåìûõ èíñòðóêöèé íà îäíîì èç ÿçûêîâ ïîëüçîâàòåëüñêîãî ïðîãðàììèðîâàíèÿ OpenSCADA â âèäå <?dp {procedure} ?>. Ðåçóëüòèðóþùèé äîêóìåíò ôîðìèðóåòñÿ ïóò¸ì èñïîëíåíèÿ ïðîöåäóð è âñòàâêè èõ ðåçóëüòàòà â äîêóìåíò.
Èñòî÷íèêîì çíà÷åíèé èñïîëíÿåìûõ èíñòðóêöèé ÿâëÿþòñÿ àòðèáóòû âèäæåòà ýòîãî ïðèìèòèâà, à òàêæå âñå ìåõàíèçìû ÿçûêà ïîëüçîâàòåëüñêîãî ïðîãðàììèðîâàíèÿ. Àòðèáóòû ìîãóò äîáàâëÿòüñÿ ïîëüçîâàòåëåì è ëèíêîâàòüñÿ íà ðåàëüíûå àòðèáóòû ïàðàìåòðîâ èëè-æå ÿâëÿòüñÿ àâòîíîìíûìè, çíà÷åíèÿ êîòîðûõ áóäóò ôîðìèðîâàòüñÿ â ñêðèïòå âèäæåòà.  ñëó÷àå ñî ñëèíêîâàííûìè àòðèáóòàìè ìîãóò èçâëåêàòüñÿ çíà÷åíèÿ èç èñòîðèè, àðõèâà.
Íà ðèñóíêå ïðåäñòàâëåí êàäð, ñîäåðæàùèé ïðèìåð äîêóìåíòà.
4.8. Ïðèìèòèâ êîíòåéíåðà (Box)
Ðåàëèçîâàíà ïîääåðæêà ïðèìèòèâà êîíòåéíåðà, ïî ñîâìåñòèòåëüñòâó âûïîëíÿþùåãî ðîëü ñòðàíèö ïðîåêòîâ. Äàííûé ïðèìèòèâ ÿâëÿåòñÿ åäèíñòâåííûì ýëåìåíòîì-êîíòåéíåðîì, êîòîðûé ìîæåò âêëþ÷àòü â ñåáÿ ññûëêè íà êàäðû èç áèáëèîòåêè, ôîðìèðóÿ òåì ñàìûì ïîëüçîâàòåëüñêèå ýëåìåíòû íóæíîé êîíôèãóðàöèè. Ïðèìèòèâ ðåàëèçóåò ïðåäóñìîòðåííûå ïðîåêòîì ñâîéñòâà. Ïåðå÷èñëèì ïî ïóíêòàì ñâîéñòâà äàííîãî ïðèìèòèâà:
- Êîíòåéíåð — Ïîçâîëÿåò ôîðìèðîâàòü íóæíûå îáúåêòû ïóò¸ì ãðóïïèðîâêè áàçîâûõ â ðàìêàõ äàííîãî ïðèìèòèâà.
- Ñòðàíèöà — Ýëåìåíòû, ïîñòðîåííûå íà äàííîì ïðèìèòèâå, ìîãóò âûïîëíÿòü ðîëü ñòðàíèöû ïîëüçîâàòåëüñêîãî èíòåðôåéñà.
- Êîíòåéíåð ñòðàíèö — Ñâîéñòâî çàìåùåíèÿ ñîáñòâåííîãî ñîäåðæèìîãî äðóãîé ñòðàíèöåé â ïðîöåññå èñïîëíåíèÿ. Èñïîëüçóåòñÿ äëÿ ôîðìèðîâàíèÿ ôðåéìîâ íà ñòðàíèöàõ ïîëüçîâàòåëüñêîãî èíòåðôåéñà. Íàïðèìåð, ãëàâíàÿ ñòðàíèöà òðàäèöèîííîé SCADA ñèñòåìû ñ îáúåêòàìè ñèãíàëèçàöèè ñòðîèòñÿ èìåííî òàêèì îáðàçîì.
- Ôîí — Ïîääåðæèâàåò âîçìîæíîñòü óêàçàíèÿ ôîíà â âèäå öâåòà èëè èçîáðàæåíèÿ.
- Áîðäþð — Ïîääåðæèâàåò âîçìîæíîñòü èçîáðàæåíèÿ áîðäþðà ñ óêàçàííûì öâåòîì, òîëùèíîé è ñòèëåì.
Ïðèìåð ðåäàêòèðîâàíèÿ êàäðà, îñíîâàííîãî íà äàííîì ïðèìèòèâå, ïðèâåäåí íà ðèñ. 2.a, à íà ðèñ. 3 èçîáðàæåíà ñòðàíèöà, ñîäåðæàùàÿ êîíòåéíåð ñòðàíèö, ïîñòðîåííûé íà îñíîâå äàííîãî ïðèìèòèâà.
Action source page doesn't exist yet(/Doc / Vision / El Figure?)
6. Îáùàÿ êîíôèãóðàöèÿ ìîäóëÿ
Äëÿ íàñòðîéêè ñîáñòâåííîãî ïîâåäåíèÿ â íåî÷åâèäíûõ ñèòóàöèÿõ ìîäóëåì ïðåäîñòàâëÿåòñÿ âîçìîæíîñòü íàñòðîéêè îòäåëüíûõ ïàðàìåòðîâ ïîñðåäñòâîì èíòåðôåéñà óïðàâëåíèÿ OpenSCADA (ðèñ. 6). Òàêîâûìè ïàðàìåòðàìè ÿâëÿþòñÿ:
- Ñîñòîÿíèå ìîäóëÿ: èñïîëíåíèå, äîñòóïíîå êîëè÷åñòâî ýêðàíîâ â áèáëèîòåêå Qt è ïåðå÷åíü îòêðûòûõ îñíîâíûõ îêîí.
- Èìÿ óäàë¸ííîé OpenSCADA ñòàíöèè ñ äâèæêîì âèçóàëèçàöèè ÑÂÓ è ññûëêà íà ñòðàíèöó êîíôèãóðàöèè ïåðå÷íÿ âíåøíèõ OpenSCADA ñòàíöèé.
- Íà÷àëüíûé ïîëüçîâàòåëü êîíôèãóðàòîðà — óêàçûâàåò, îò èìåíè êàêîãî ïîëüçîâàòåëÿ îòêðûâàòü êîíôèãóðàòîð áåç çàïðîñà ïàðîëÿ, äëÿ ëîêàëüíîé ñòàíöèè. Äëÿ óäàë¸ííîé ñòàíöèè óêàçûâàåò íà ïîëüçîâàòåëÿ, îòëè÷íîãî îò òèïîâîãî, óêàçàííîãî â êîíôèãóðàöèè õîñòà.
- Ïàðîëü ïîëüçîâàòåëÿ (óäàë¸ííàÿ ñòàíöèÿ) — ïàðîëü ïîëüçîâàòåëÿ, îòëè÷íîãî îò òèïîâîãî, óêàçàííîãî â êîíôèãóðàöèè õîñòà.
- Âðåìÿ âîññòàíîâëåíèÿ ïîäêëþ÷åíèÿ, â ñåêóíäàõ — óêàçûâàåò íà âðåìÿ ïîâòîðà âîññòàíîâëåíèÿ ïîòåðÿííîãî óäàë¸ííîãî ïîäêëþ÷åíèÿ.
- Âðåìÿ æèçíè ñòðàíèö â êåøå. Âèçóàëèçàòîð îñóùåñòâëÿåò óñêîðåíèÿ ðàáîòû ïîëüçîâàòåëüñêîãî èíòåðôåéñà ïóò¸ì ïîìåùåíèÿ ðàíåå îòêðûòûõ ñòðàíèö â êåø, äëÿ êîíòðîëÿ âðåìåíè õðàíåíèÿ ñòðàíèö â êîòîðîì äàííîå ñâîéñòâî è ïðåäíàçíà÷åíî. Óêàçàíèå íóëåâîãî çíà÷åíèå âîîáùå èñêëþ÷èò î÷èñòêó êåøà.
- Ïðîåêòû, ÷åðåç ñèìâîë ðàçäåëèòåëÿ ';', äëÿ çàïóñêà èõ àâòîìàòè÷åñêîãî èñïîëíåíèÿ ñ çàïóñêîì ìîäóëÿ. Äëÿ ïðåäîñòàâëåíèÿ âîçìîæíîñòè óêàçàíèÿ îòêðûòèÿ îêíà èñïîëíåíèÿ ïðîåêòà íà íóæíîì äèñïëåå, ìíîãî äèñïëåéíûõ ñèñòåì, ïðåäóñìîòðåí ôîðìàò çàïèñè èìåíè ïðîåêòà "PrjName-1", ãäå 1 — íîìåð öåëåâîãî äèñïëåÿ. Äëÿ ïîäêëþ÷åíèÿ ê ôîíîâîìó èëè äðóãîìó îòêðûòîìó ñåàíñó èñïîëüçîâàòü "ses_{SesID}".
Ôóíêöèÿ âûáîðà äèñïëåÿ âîçìîæíà äëÿ íåâèðòóàëüíîãî è íå ïîâòîðåíèÿ ðàáî÷åãî ñòîëà, ò.å. ïðè èñïîëüçîâàíèè xinerma èëè NVidia â ñîîòâåòñòâóþùåì ðåæèìå. Òåõíè÷åñêè, ôóíêöèÿ Qt screen() äîëæíà âîçâðàùàòü ðàçíûå âèäæåòû äèñïëåÿ äëÿ èõ íîìåðîâ.
- Âûõîä ïðè çàêðûòèè ïîñëåäíåãî èñïîëíÿþùåãîñÿ ïðîåêòà — ïîëåçíî äëÿ ðåøåíèé ñðàçó çàïóñêàþùèõñÿ íà èíòåðôåéñå èñïîëíåíèÿ ïðîåêòà.
Ðèñ.6. Ñòðàíèöà êîíôèãóðàöèè ìîäóëÿ.