API ïîëüçîâàòåëüñêîãî ïðîãðàììèðîâàíèÿ äâèæêà âèçóàëèçàöèè ïðåäñòàâëåíî ãðóïïîé ôóíêöèé íåïîñðåäñòâåííî â ìîäóëå äâèæêà ÑÂÓ. Âûçîâ ýòèõ ôóíêöèé èç ñêðèïòîâ âèäæåòîâ ìîæåò îñóùåñòâëÿòüñÿ ïðÿìî ïî èäåíòèôèêàòîðó ôóíêöèè, ïîñêîëüêó èõ îáëàñòü èì¸í óêàçûâàåòñÿ äëÿ êîíòåêñòà ñêðèïòîâ âèäæåòîâ.
Îïèñàíèå: Âîçâðàùàåò ñïèñîê âèäæåòîâ â êîíòåéíåðå âèäæåòîâ èëè ñïèñîê äî÷åðíèõ âèäæåòîâ. Åñëè óñòàíîâëåíî <pg> òî âîçâðàùàåòñÿ ñïèñîê ñòðàíèö äëÿ ïðîåêòîâ è ñåàíñîâ.
Ïàðàìåòðû:
ID | Èìÿ | Òèï | Ðåæèì | Ïî óìîë÷àíèþ |
list | Ñïèñîê | Ñòðîêà | Âîçâðàò | |
addr | Àäðåñ | Ñòðîêà | Âõîä | |
pg | Ñòðàíèöû | Bool | Âõîä | 0 |
Îïèñàíèå: Ïðîâåðêà íà ïðèñóòñòâèå óçëà, âêëþ÷àÿ âèäæåòû, àòðèáóòû è äðóãèå.
Ïàðàìåòðû:
ID | Èìÿ | Òèï | Ðåæèì | Ïî óìîë÷àíèþ |
rez | Ðåçóëüòàò | Bool | Âîçâðàò | |
addr | Àäðåñ | Ñòðîêà | Âõîä |
Îïèñàíèå: Âîçâðàùàåò ñïèñîê àòðèáóòîâ âèäæåòà. Åñëè óñòàíîâëåí <noUser> òîãäà âîçâðàùàþòñÿ òîëüêî íå ïîëüçîâàòåëüñêèå àòðèáóòû.
Ïàðàìåòðû:
ID | Èìÿ | Òèï | Ðåæèì | Ïî óìîë÷àíèþ |
list | Ñïèñîê | Ñòðîêà | Âîçâðàò | |
addr | Àäðåñ | Ñòðîêà | Âõîä | |
noUser | Áåç ïîëüçîâàòåëüñêèõ | Bool | Âõîä | 1 |
Îïèñàíèå: Çàïðîñ çíà÷åíèÿ àòðèáóòà âèäæåòà. Çàïðîñ ìîæåò îñóùåñòâëÿòüñÿ êàê óêàçàíèåì ïîëíîãî àäðåñà àòðèáóòà â <addr>, òàê è îòäåëüíî àäðåñà âèäæåòà â <addr>, à èäåíòèôèêàòîðà àòðèáóòà â <attr>.
Ïàðàìåòðû:
ID | Èìÿ | Òèï | Ðåæèì | Ïî óìîë÷àíèþ |
val | Çíà÷åíèå | Ñòðîêà | Âîçâðàò | |
addr | Àäðåñ | Ñòðîêà | Âõîä | |
attr | Àòðèáóò | Bool | Âõîä |
Îïèñàíèå: Óñòàíîâêà çíà÷åíèÿ àòðèáóòà âèäæåòà. Óñòàíîâêà ìîæåò îñóùåñòâëÿòüñÿ êàê óêàçàíèåì ïîëíîãî àäðåñà àòðèáóòà â <addr>, òàê è îòäåëüíî àäðåñà âèäæåòà â <addr>, à èäåíòèôèêàòîðà àòðèáóòà â <attr>.
Ïàðàìåòðû:
ID | Èìÿ | Òèï | Ðåæèì | Ïî óìîë÷àíèþ |
addr | Àäðåñ | Ñòðîêà | Âõîä | |
val | Çíà÷åíèå | Ñòðîêà | Âõîä | |
attr | Àòðèáóò | Bool | Âõîä |
Ñåðâèñíûå èíòåðôåéñû ýòî èíòåðôåéñû äîñòóïà ê ñèñòåìå OpenSCADA ïîñðåäñòâîì èíòåðôåéñà óïðàâëåíèÿ OpenSCADA èç âíåøíèõ ñèñòåì. Äàííûé ìåõàíèçì ïîëîæåí â îñíîâó âñåõ ìåõàíèçìîâ îáìåíà âíóòðè OpenSCADA, ðåàëèçîâàííûõ ïîñðåäñòâîì ñëàáûõ ñâÿçåé è ñòàíäàðòíîãî ïðîòîêîëà îáìåíà OpenSCADA.
Ñ öåëüþ ïðåäîñòàâëåíèÿ óíèôèöèðîâàííîãî, ãðóïïîâîãî è ñðàâíèòåëüíî áûñòðîãî äîñòóïà ê çíà÷åíèÿì àòðèáóòîâ âèçóàëüíûõ ýëåìåíòîâ ïðåäóñìîòðåíà ñåðâèñíàÿ ôóíêöèÿ âèçóàëüíîãî ýëåìåíòà "/serv/attr" è êîìàíäû ïîëó÷åíèÿ/óñòàíîâêè çíà÷åíèé àòðèáóòîâ: <get path="/UI/VCAEngine/{wdg_addr}/%2fserv%2fattr"/> è <set path="/UI/VCAEngine/{wdg_addr}/%2fserv%2fattr"/>. Àòðèáóòû äàííûõ êîìàíä, ïðåäóñìàòðèâàþùèå ðàçëè÷íûå ìåõàíèçìû çàïðîñà, ïðåäñòàâèì â òàáëèöå 4.14.2.a.
Òàáëèöà 4.14.2.a Àòðèáóòû êîìàíä ïîëó÷åíèÿ/óñòàíîâêè àòðèáóòîâ âèçóàëüíûõ ýëåìåíòîâ
Id | Èìÿ | Çíà÷åíèå |
Êîìàíäà çàïðîñà âèçóàëüíûõ àòðèáóòîâ âèäæåòà: <get path="/UI/VCAEngine/{wdg_addr}/%2fserv%2fattr"/> | ||
tm | Âðåìÿ/ñ÷¸ò÷èê èçìåíåíèé | Óñòàíîâêà âðåìåíè/ñ÷¸ò÷èêà èçìåíåíèé äëÿ çàïðîñà òîëüêî èçìåíèâøèõñÿ àòðèáóòîâ. |
<el id="{attr}" p="{a_id}">{val}</el> | Ôîðìèðîâàíèå äî÷åðíèõ ýëåìåíòîâ ñ ðåçóëüòàòàìè àòðèáóòîâ |  äî÷åðíåì ýëåìåíòå óêàçûâàþòñÿ: ñòðîêîâûõ èäåíòèôèêàòîð {attr} àòðèáóòà, èíäåêñ {a_id} àòðèáóòà è åãî çíà÷åíèå {val}. |
Êîìàíäà óñòàíîâêè âèçóàëüíûõ àòðèáóòîâ âèäæåòà: <set path="/UI/VCAEngine/{wdg_addr}/%2fserv%2fattr"/> | ||
<el id="{attr}">{val}</el> | Óñòàíîâêà àòðèáóòîâ |  äî÷åðíèõ ýëåìåíòàõ óêàçûâàåòñÿ èäåíòèôèêàòîð àòðèáóòà {attr} è åãî çíà÷åíèå {val}. |
Ñ öåëüþ îïòèìèçàöèè òðàôèêà ñåòåâîãî âçàèìîäåéñòâèÿ ïóò¸ì èñêëþ÷åíèÿ ìåëêèõ çàïðîñîâ, à èñïîëüçîâàíèÿ îäíîãî, íî áîëüøîãî çàïðîñà ñîçäàí ãðóïïîâîé çàïðîñ çíà÷åíèé àòðèáóòîâ âèçóàëüíûõ ýëåìåíòîâ. Ãðóïïèðîâêà äàííîãî çàïðîñà ïîäðàçóìåâàåò çàïðîñ àòðèáóòîâ âñåé âåòâè âèäæåòà, âêëþ÷àÿ è âëîæåííûå ýëåìåíòû. Äëÿ äàííîãî çàïðîñà ïðåäóñìîòðåíà ñåðâèñíàÿ êîìàíäà "/serv/attrBr". Çàïðîñ äàííîé ñåðâèñíîé êîìàíäû ýêâèâàëåíòåí ñåðâèñíîé êîìàíäå "/serv/attr" è âûãëÿäèò ñëåäóþùèì îáðàçîì:
<get path="/UI/VCAEngine/{wdg_addr}/%2fserv%2fattrBr"/>
Ðåçóëüòàò:
<el id="{attr}" p="{a_id}">{val}</el> -- Ýëåìåíòû ñ ðåçóëüòàòàìè àòðèáóòîâ.  ýëåìåíòå óêàçûâàþòñÿ: ñòðîêîâûõ èäåíòèôèêàòîð {attr} àòðèáóòà, èíäåêñ {a_id} àòðèáóòà è åãî çíà÷åíèå {val}.
<w id="{wid}" lnkPath="{lnk_path}">{childs+attrs}</w> -- Ýëåìåíòû ñ äî÷åðíèìè âèäæåòàìè è èõ àòðèáóòàìè.  ýëåìåíòå óêàçûâàþòñÿ èäåíòèôèêàòîð äî÷åðíåãî âèäæåòà {wid} è ïóòü âèäæåòà íà êîòîðûé ññûëàåòñÿ äàííûé âèäæåò åñëè îí ÿâëÿåòñÿ ññûëêîé {lnk_path}.
Ñ öåëüþ óíèôèêàöèè è îïòèìèçàöèè äîñòóïà ê ñòðàíèöàì ïðåäóñìîòðåíà ñåðâèñíàÿ ôóíêöèÿ ñåàíñà "/serv/pg" è êîìàíäû çàïðîñà ïåðå÷íÿ îòêðûòûõ ñòðàíèö (<openlist path="/UI/VCAEngine/ses_{Session}/%2fserv%2fpg"/>); îòêðûòèÿ ñòðàíèöû (<open path="/UI/VCAEngine/ses_{Session}/%2fserv%2fpg"/>); è çàêðûòèÿ ñòðàíèöû <close path="/UI/VCAEngine/ses_{Session}/%2fserv%2fpg"/>).
Ðåçóëüòàòîì çàïðîñà ïåðå÷íÿ îòêðûòûõ ñòðàíèö ÿâëÿþòñÿ äî÷åðíèå ýëåìåíòû <el>{OpPage}</el> ñîäåðæàùèå ïîëíûé ïóòü îòêðûòîé ñòðàíèöû. Êðîìå ïåðå÷íÿ îòêðûòûõ ñòðàíèö çàïðîñ âîçâðàùàåò çíà÷åíèå òåêóùåãî ñ÷¸ò÷èêà âû÷èñëåíèÿ ñåàíñà â àòðèáóòå <tm>. Åñëè äàííûé àòðèáóò óñòàíàâëèâàåòñÿ ïðè çàïðîñå, òî äëÿ êàæäîé îòêðûòîé ñòðàíèöû âîçâðàùàåòñÿ ñïèñîê èçìåí¸ííûõ, ñ ìîìåíòà óêàçàííîãî çíà÷åíèÿ ñ÷¸ò÷èêà, âèäæåòîâ îòêðûòîé ñòðàíèöû.
Äëÿ ïðåäîñòàâëåíèÿ ìåõàíèçìà ãëîáàëüíîãî êîíòðîëÿ çà ñèãíàëèçàöèåé ñåàíñà ïðåäóñìîòðåíà ñåðâèñíàÿ ôóíêöèÿ ñåàíñà "/serv/alarm" è êîìàíäû çàïðîñà ñòàòóñà ñèãíàëîâ (<get path="/UI/VCAEngine/ses_{Session}/%2fserv%2falarm"/>); è êâèòàöèè ñèãíàëîâ (<quittance path="/UI/VCAEngine/ses_{Session}/%2fserv%2falarm"/>).
Çàïðîñ ñòàòóñà ñèãíàëîâ âîçâðàùàåò îáîáù¸ííîå ñîñòîÿíèå ñèãíàëîâ, à òàê-æå äîïîëíèòåëüíóþ èíôîðìàöèþ äëÿ çâóêîâîé ñèãíàëèçàöèè. Äîïîëíèòåëüíàÿ èíôîðìàöèÿ çâóêîâîé ñèãíàëèçàöèè ïðåäîñòàâëÿåò òåêóùèé ðåñóðñ, çâóêîâîé ôàéë, äëÿ âîñïðîèçâåäåíèÿ è îáåñïå÷èâàåò îòñëåæèâàíèå ïîñëåäîâàòåëüíîñòè ñèãíàëèçàöèè è êâèòàöèè îòäåëüíûõ ôàéëîâ çâóêîâûõ ñîîáùåíèé.
Çàïðîñ íà êâèòàöèþ âûïîëíÿåò êâèòàöèþ óêàçàííîãî âèäæåòà, àòðèáóò <wdg>, â ñîîòâåòñòâèè ñ øàáëîíîì, àòðèáóò <tmpl>.
Äëÿ ïðåäîñòàâëåíèÿ óíèôèöèðîâàííîãî ìåõàíèçìà ìàíèïóëÿöèè ñåàíñàìè, âèçóàëèçàòîðàì ÑÂÓ, â ìîäóëå äâèæêà ÑÂÓ (VCAEngin) ïðåäóñìîòðåíà ñåðâèñíàÿ ôóíêöèÿ "/serv/sess" è êîìàíäû çàïðîñà ïåðå÷íÿ îòêðûòûõ ñåàíñîâ, ïîäêëþ÷åíèÿ/ñîçäàíèÿ íîâîãî ñåàíñà è îòêëþ÷åíèÿ/óäàëåíèÿ ñåàíñà: <list path="/UI/VCAEngine/%2fserv%2fsess"/>, <connect path="/UI/VCAEngine/%2fserv%2fsess"/> è <disconnect path="/UI/VCAEngine/%2fserv%2fsess"/> ñîîòâåòñòâåííî. Àòðèáóòû äàííûõ êîìàíä, ïðåäóñìàòðèâàþùèå ðàçëè÷íûå ìåõàíèçìû çàïðîñà, ïðåäñòàâèì â òàáëèöå 4.14.2.b.
Òàáëèöà 4.14.2.b. Àòðèáóòû êîìàíä ìåõàíèçìà ìàíèïóëÿöèè ñåàíñàìè
Id | Èìÿ | Çíà÷åíèå |
Êîìàíäà çàïðîñà ïåðå÷íÿ îòêðûòûõ ñåàíñîâ äëÿ ïðîåêòà: <list path="/UI/VCAEngine/%2fserv%2fsess"/> | ||
prj | Óêàçàíèå ïðîåêòà | Óêàçûâàåò ïðîåêò äëÿ êîòîðîãî âîçâðàùàòü ïåðå÷åíü îòêðûòûõ ñåàíñîâ. |
<el>{Session}</el> | Êîíòðîëü ïåðå÷íÿ ñåàíñîâ |  äî÷åðíèõ ýëåìåíòàõ óêàçûâàþòñÿ ñåàíñû, îòêðûòûå äëÿ çàïðîøåííîãî ïðîåêòà. |
Êîìàíäà ïîäêëþ÷åíèÿ/îòêðûòèÿ ñåàíñà: <connect path="/UI/VCAEngine/%2fserv%2fsess"/> | ||
sess | Óñòàíîâêà è êîíòðîëü èìåíè ñåàíñà | Åñëè àòðèáóò îïðåäåë¸í, òî ïðîèçâîäèòñÿ ïîäêëþ÷åíèå ê ñóùåñòâóþùåìó ñåàíñó, èíà÷å ñîçäàíèå íîâîãî ñåàíñà.  ñëó÷àå îòêðûòèÿ íîâîãî ñåàíñà â äàííûé àòðèáóò ïîìåùàåòñÿ åãî èìÿ. |
prj | Óñòàíîâêà èìåíè ïðîåêòà | Èñïîëüçóåòñÿ äëÿ îòêðûòèÿ íîâîãî ñåàíñà äëÿ óêàçàííîãî ïðîåêòà è åñëè àòðèáóò {sess} íå óêàçàí. |
Êîìàíäà îòêëþ÷åíèÿ/çàêðûòèÿ ñåàíñà: <disconnect path="/UI/VCAEngine/%2fserv%2fsess"/> | ||
sess | Óñòàíîâêà èìåíè ñåàíñà | Óêàçûâàåò èìÿ ñåàíñà îò êîòîðîãî âûïîëíÿåòñÿ îòêëþ÷åíèå èëè çàêðûòèå. Ñåàíñû, íå ÿâëÿþùèåñÿ ôîíîâûìè è ê êîòîðûì íè îäèí èç âèçóàëèçàòîðîâ íå ïîäêëþ÷åí àâòîìàòè÷åñêè çàêðûâàþòñÿ. |
Ñ öåëüþ îïòèìèçàöèè ïðîèçâîäèòåëüíîñòè ëîêàëüíîãî è îñîáåííî ñåòåâîãî âçàèìîäåéñòâèÿ ïðåäóñìîòðåíà ñåðâèñíàÿ ôóíêöèÿ "/serv/wlbBr" è êîìàíäà çàïðîñà äåðåâà áèáëèîòåê âèäæåòîâ: <get path="/UI/VCAEngine/%2fserv%2fwlbBr"/>. Ðåçóëüòàòîì çàïðîñà ÿâëÿåòñÿ äåðåâî ñ ýëåìåíòàìè áèáëèîòåê âèäæåòîâ, òåãè <wlb>. Âíóòðè òåãîâ áèáëèîòåê âèäæåòîâ ñîäåðæàòüñÿ òåã èêîíêè <ico> è òåãè âèäæåòîâ áèáëèîòåêè <w>. Òåãè âèäæåòîâ, â ñâîþ î÷åðåäü, ñîäåðæàò òåã èêîíêè è òåãè äî÷åðíèõ âèäæåòîâ <cw>.