This is an old revision of
Doc/API/part4 from 2016-10-28 11:49:05..
4. Ïîäñèñòåìà "Ñáîð äàííûõ" (TDAQS)
Ïîäñèñòåìà "Ñáîð äàííûõ" ïðåäñòàâëåíà îáúåêòîì TDAQS, êîòîðûé ñîäåðæèò ìîäóëüíûå îáúåêòû òèïîâ èñòî÷íèêîâ äàííûõ TTypeDAQ è îáúåêòû áèáëèîòåê øàáëîíîâ ïàðàìåòðîâ ïîäñèñòåìû "Ñáîð äàííûõ" TPrmTmplLib. Îáúåêò òèïîâ èñòî÷íèêîâ äàííûõ ñîäåðæèò îáúåêòû êîíòðîëëåðîâ TController è îáúåêòû òèïîâ ïàðàìåòðîâ TTypeParam. Îáúåêòû òèïîâ ïàðàìåòðîâ ïðåäîñòàâëÿþòñÿ ìîäóëåì êîíòðîëëåðà è ñîäåðæàò ñòðóêòóðó ÁÄ îòäåëüíûõ òèïîâ ïàðàìåòðîâ (àíàëîãîâûå, äèñêðåòíûå ...). Îáúåêòû êîíòðîëëåðîâ ñîäåðæàò îáúåêòû ïàðàìåòðîâ TParamContr. Êàæäûé ïàðàìåòð àññîöèèðóåòñÿ ñ îäíèì èç òèïîâ ïàðàìåòðîâ. Äëÿ õðàíåíèÿ àòðèáóòîâ ïàðàìåòð íàñëåäóåòñÿ îò îáúåêòà çíà÷åíèé TValue, êîòîðûé è ñîäåðæèò çíà÷åíèÿ àòðèáóòîâ TVal. Áèáëèîòåêà øàáëîíîâ ïàðàìåòðîâ äàííîé ïîäñèñòåìû ñîäåðæèò îáúåêòû øàáëîíîâ TPrmTmpl. Ïðèìåð îïèñàííîé èåðàðõè÷åñêîé ñòðóêòóðû ïðèâåä¸í íà ðèñ. 4.

Ðèñ. 4. Èåðàðõè÷åñêàÿ ñòðóêòóðà ïîäñèñòåìû ñáîðà äàííûõ.
Ïîäñèñòåìà ñîäåðæèò òèïû èñòî÷íèêîâ äàííûõ. Èñòî÷íèêîì ìîæåò âûñòóïàòü ïðàêòè÷åñêè ëþáàÿ ñóùíîñòü ïðåäîñòàâëÿþùàÿ êàêèå ëèáî äàííûå. Òèï èñòî÷íèêà ìîæåò äåëèòüñÿ íà îòäåëüíûå èñòî÷íèêè (êîíòðîëëåðû) â ïðåäåëàõ êîíêðåòíîãî òèïà. Íàïðèìåð, åñëè âçÿòü äàííûå èç îïåðàöèîííîé ñèñòåìû (ÎÑ), òî ïîä îòäåëüíûì èñòî÷íèêîì ìîæíî ïîíèìàòü îïåðàöèîííóþ ñèñòåìó îòäåëüíîãî ÏÊ.
Èñòî÷íèê äàííûõ (êîíòðîëëåð) äàëåå äåëèòñÿ, èëè ñîäåðæèò, ïàðàìåòðû. Ïîä ïàðàìåòðîì ïîäðàçóìåâàåòñÿ êàêàÿ-òî ÷àñòü èñòî÷íèêà äàííûõ.  ñëó÷àå ñ ÎÑ ýòî áóäåò, íàïðèìåð: ðàñõîä îïåðàòèâíîé ïàìÿòè, ÷àñòîòà ïðîöåññîðà è ìíîãî äðóãèõ ñîñòàâíûõ ÷àñòåé.
Ïàðàìåòð, â ñâîþ î÷åðåäü, ñîäåðæèò àòðèáóòû, êîòîðûå è ïðåäîñòàâëÿþò äàííûå. Êðîìå îñíîâíûõ äàííûõ àòðèáóòàìè ìîãóò ïðåäîñòàâëÿòüñÿ è ñîïóòñòâóþùèå èëè äåòàëèçèðóþùèå äàííûå.  ñëó÷àå òîé-æå ÎÑ è ðàñõîäà ïàìÿòè, àòðèáóòàìè ìîæåò ïðåäîñòàâëÿòüñÿ íå òîëüêî çàíÿòàÿ ïàìÿòü, à òàêæå è ñêîëüêî å¸ âñåãî, ñêîëüêî â swap è ò.ä.
Íåêîòîðûå ðåàëèçàöèè èñòî÷íèêîâ äàííûõ ìîãóò ïðåäîñòàâëÿòü âîçìîæíîñòü ôîðìèðîâàíèÿ ñòðóêòóðû ïàðàìåòðà ïî ðàíåå ðàçðàáîòàííûì øàáëîíàì ïàðàìåòðîâ. Äëÿ ýòîé öåëè ïîäñèñòåìà ñîäåðæèò áèáëèîòåêè øàáëîíîâ, êîòîðûå, â ñâîþ î÷åðåäü, ñîäåðæàò øàáëîíû ïàðàìåòðîâ.  ïðèìåðå èçîáðàæåíà áèáëèîòåêà øàáëîíîâ "base" ñ øàáëîíàìè "digAlrm" è "smplBrd".
Íà óðîâíå ïîäñèñòåìû ïðåäîñòàâëÿþòñÿ ìåõàíèçì ðåçåðâèðîâàíèÿ èñòî÷íèêîâ äàííûõ. Ðåçåðâèðîâàíèå ïîäðàçóìåâàåò âîçìîæíîñòü ñîãëàñîâàííîé ðàáîòû íåñêîëüêèõ ñòàíöèé OpenSCADA äëÿ âûïîëíåíèÿ îáùåé çàäà÷è ñáîðà äàííûõ â îäíîèì¸ííûõ èñòî÷íèêàõ äàííûõ.
4.1. Îáúåêò ïîäñèñòåìû "Ñáîð äàííûõ" (TDAQS)
Ïóáëè÷íûå ìåòîäû:
- int subVer( ); — Âåðñèÿ ïîäñèñòåìû.
- void subStart( ); — Çàïóñê ïîäñèñòåìû.
- void subStop( ); — Îñòàíîâ ïîäñèñòåìû.
- AutoHD<TTypeDAQ> at( const string &name ); — Ïîäêëþ÷åíèå ê òèïó èñòî÷íèêà äàííûõ.
- AutoHD<TValue> prmAt( const string &path, char sep = 0, bool noex = false ); — Ïîäêëþ÷åíèå ê ïàðàìåòðó ïî ïóòè path èëè ñòðîêå ñ ðàçäåëèòåëåì sep. Íå ãåíåðèðîâàòü èñêëþ÷åíèÿ åñëè óñòàíîâëåí noex.
- AutoHD<TVal> attrAt( const string &path, char sep = 0, bool noex = false ); — Ïîäêëþ÷åíèå ê àòðèáóòó ïàðàìåòðà ïî ïóòè path èëè ñòðîêå ñ ðàçäåëèòåëåì sep. Íå ãåíåðèðîâàòü èñêëþ÷åíèÿ åñëè óñòàíîâëåí noex.
- void ctrListPrmAttr( XMLNode *nd, const string &addrBase, bool toPrm = false, char sep = 0, const string &pref = "" ); — Ñïèñîê îáçîðà ýëåìåíòîâ àòðèáóòîâ ïàðàìåòðîâ èëè toPrm ïàðàìåòðîâ DAQ ñ ïðåôèêñîì pref îò ïóòè èëè ñòðîêå ñ ðàçäåëèòåëåì sep áàçîâîãî àäðåñà addrBase.
- string tmplLibTable( ); — Èìÿ òàáëèöû äëÿ õðàíåíèÿ øàáëîíîâ ïàðàìåòðîâ ïîäñèñòåìû "Ñáîð äàííûõ".
- void tmplLibList( vector<string> &list ); — Ñïèñîê äîñòóïíûõ øàáëîíîâ ïàðàìåòðîâ.
- bool tmplLibPresent( const string &id ); — Ïðîâåðêà íà íàëè÷èå øàáëîíà ïàðàìåòðà id.
- void tmplLibReg( TPrmTmplLib *lib ); — Ðåãèñòðàöèÿ øàáëîíà ïàðàìåòðà lib.
- void tmplLibUnreg( const string &id, int flg = 0 ); — Óäàëåíèå/ñíÿòèå ñ ðåãèñòðàöèè øàáëîíà ïàðàìåòðà id.
- AutoHD<TPrmTmplLib> tmplLibAt( const string &id ); — Ïîäêëþ÷åíèå ê øàáëîíó ïàðàìåòðà id.
- float rdRestDtTm( ); — Ìàêñèìàëüíàÿ ãëóáèíà âîññòàíîâëåíèÿ äàííûõ àðõèâîâ ïðè âêëþ÷åíèè, â ÷àñàõ.
- void setRdRestDtTm( float vl ); — Óñòàíîâêà ìàêñèìàëüíîé ãëóáèíû âîññòàíîâëåíèÿ äàííûõ àðõèâîâ ïðè âêëþ÷åíèè.
- void rdActCntrList( vector<string> &ls, bool isRun = false ); — Ñïèñîê àêòèâíûõ êîíòðîëëåðîâ, ðàáîòàþùèõ â ñõåìå ðåçåðâèðîâàíèÿ. Ïðè óêàçàíèè isRun â ñïèñîê ïîïàäóò òîëüêî èñïîëíÿþùèåñÿ íà äàííîé ñòàíöèè êîíòðîëëåðû.
- string rdStRequest( const string &cntr, XMLNode &req, const string &prevSt = "", bool toRun = true ); — Çàïðîñ req ê ðåçåðâíîé ñòàíöèè îò èìåíè êîíòðîëëåðà cntr. Ñòàíöèÿ äëÿ çàïðîñà âûáèðàåòñÿ ïîñëå óêàçàííîé â prevSt, äëÿ èñïîëíÿåìîãî óäàë¸ííî êîíòðîëëåðà, ïðè óêàçàíèè toRun.
- TElem &elLib( ); — Ñòðóêòóðà òàáëèöû áèáëèîòåê øàáëîíîâ ïàðàìåòðîâ.
- TElem &elTmpl( ); — Ñòðóêòóðà òàáëèöû øàáëîíîâ ïàðàìåòðîâ.
- TElem &elTmplIO( ); — Ñòðóêòóðà àòðèáóòîâ øàáëîíîâ ïàðàìåòðîâ.
- TElem &elErr( ); — Ñòðóêòóðà àòðèáóòà(îâ) îøèáîê ïàðàìåòðîâ.
4.2. Ìîäóëüíûé îáúåêò òèïà êîíòðîëëåðà (TTypeDAQ)
Íàñëåäóåò: | TModule, TElem. |
Íàñëåäóåòñÿ: | Êîðíåâûìè îáúåêòàìè ìîäóëåé ïîäñèñòåìû "Ñáîð äàííûõ". |
Ïóáëè÷íûå ìåòîäû:
- string DAQPath( ); — Ïîëó÷åíèå DAQ àäðåñà ýëåìåíòà.
- void modStart( ); — Çàïóñê ìîäóëÿ.
- void modStop( ); — Îñòàíîâ ìîäóëÿ.
- void list( vector<string> &list ); — Ñïèñîê êîíòðîëëåðîâ.
- bool present( const string &name ); — Ïðîâåðêà íà íàëè÷èå óêàçàííîãî êîíòðîëëåðà.
- void add( const string &name, const string &daq_db = "*.*" ); — Äîáàâèòü êîíòðîëëåð.
- void del( const string &name ); — Óäàëèòü êîíòðîëëåð.
- AutoHD<TController> at( const string &name, const string &who = "" ); — Ïîäêëþ÷èòüñÿ ê êîíòðîëëåðó.
- bool tpPrmPresent( const string &name_t ); — Ïðîâåðêà íà íàëè÷èå óêàçàííîãî òèïà ïàðàìåòðà.
- unsigned tpPrmToId( const string &name_t ); — Ïîëó÷åíèå èíäåêñà òèïà ïàðàìåòðîâ ïî èìåíè.
- int tpParmAdd( const char *id, const char *n_db, const char *name ); — Äîáàâëåíèå/ðåãèñòðàöèÿ òèïà ïàðàìåòðîâ.
- unsigned tpPrmSize( ); — Êîëè÷åñòâî òèïîâ ïàðàìåòðîâ.
- TTypeParam &tpPrmAt( unsigned id ); — Ïîëó÷èòü îáúåêò òèïà ïàðàìåòðîâ.
- virtual bool compileFuncLangs( vector<string> *ls = NULL ); — Çàïðîñ ïåðå÷íÿ ÿçûêîâ äëÿ êîòîðûõ ðåàëèçîâàíà âîçìîæíîñòü ôîðìèðîâàíèÿ ïîëüçîâàòåëüñêèõ ïðîöåäóð, â äàííîì ìîäóëå, à òàêæå ïðîâåðêà ôàêòà èõ ïîääåðæêè.
- virtual void compileFuncSynthHighl( const string &lang, XMLNode &shgl ); — Çàïðîñ ïðàâèë ïîäñâåòêè ñèíòàêñèñà äëÿ óêàçàííîãî ÿçûêà.
- virtual string compileFunc( const string &lang, TFunction &fnc_cfg, const string &prog_text, const string &usings = "", int maxCalcTm = 0 ); — Êîìïèëÿöèÿ/íàñòðîéêà ïîëüçîâàòåëüñêîé ôóíêöèè íà ïîääåðæèâàåìîì ìîäóëåì ÿçûêå ïðîãðàììèðîâàíèÿ lang è èñõîäíîì òåêñòå ïðîöåäóðû prog_text, èñõîäÿ èç ïàðàìåòðîâ ïðîöåäóðû fnc_cfg. Ðåçóëüòàòîì ÿâëÿåòñÿ àäðåñ ê ïîäãîòîâëåííîìó îáúåêòó ôóíêöèè.
- virtual bool redntAllow( ); — Ïðèçíàê ïîääåðæêè ìåõàíèçìîâ ðåçåðâèðîâàíèÿ ìîäóëåì. Äîëæåí ïðîñòî ïåðåîïðåäåëÿòüñÿ è âîçâðàùàòü true.
Çàùèù¸ííûå ìåòîäû:
- virtual TController *ContrAttach( const string &name, const string &daq_db ); — Ïîäêëþ÷åíèå êîíòðîëëåðà. Îáÿçàòåëüíî ïåðåîïðåäåëÿåòñÿ â ïîòîìêå ìîäóëÿ.
4.3. Îáúåêò êîíòðîëëåðà (TController)
Íàñëåäóåò: | TCntrNode, TConfig. |
Íàñëåäóåòñÿ: | Îáúåêòàìè êîíòðîëëåðîâ ìîäóëåé ïîäñèñòåìû "Ñáîð äàííûõ". |
Äàííûå:
Ðåæèìû ðåçåðâèðîâàíèÿ (enum TController::Redundant):
- Off (0) — âûêëþ÷åíî;
- Asymmetric (1) — àñèììåòðè÷íûé;
- OnlyAlarms (2) — òîëüêî íàðóøåíèÿ, ïîäàâëåíèå íà ðåçåðâíîì.
Êîìàíäî-ñïåöèôè÷íîå
Ïóáëè÷íûå ìåòîäû:
- TController( const string &name_c, const string &daq_db, TElem *cfgelem ); — Èíèöèàëèçèðóþùèé êîíñòðóêòîð êîíòðîëëåðà.
- string DAQPath( ); — Ïîëó÷åíèå DAQ àäðåñà ýëåìåíòà.
- string id( ); — Èäåíòèôèêàòîð êîíòðîëëåðà.
- string workId( ); — Ðàáî÷èé èäåíòèôèêàòîð êîíòðîëëåðà, âêëþ÷àÿ èäåíòèôèêàòîð ìîäóëÿ.
- string name( ); — Èìÿ êîíòðîëëåðà.
- string descr( ); — Îïèñàíèå êîíòðîëëåðà.
- virtual string getStatus( ); — Ôóíêöèÿ çàïðîñà ñòàòóñà êîíòðîëëåðà.
- string DB( ); — Èìÿ ÁÄ ýêçåìïëÿðà êîíòðîëëåðà.
- string tbl( ); — Èìÿ òàáëèöû áàçû äàííûõ ýêçåìïëÿðà êîíòðîëëåðà.
- string fullDB( ); — Ïîëíîå èìÿ òàáëèöû ýêçåìïëÿðà êîíòðîëëåðà.
- void setName( const string &nm ); — Óñòàíîâèòü èìÿ êîíòðîëëåðà.
- void setDescr( const string &dscr ); — Óñòàíîâèòü îïèñàíèå êîíòðîëëåðà.
- void setDB( const string &idb ); — Óñòàíîâêà èìåíè ÁÄ ýêçåìïëÿðà êîíòðîëëåðà.
- bool toEnable( ); — Ïðèçíàê "Âêëþ÷àòü êîíòðîëëåð".
- bool toStart( ); — Ïðèçíàê "Çàïóñêàòü êîíòðîëëåð".
- bool enableStat( ); — Ñîñòîÿíèå "Âêëþ÷åí".
- bool startStat( ) const; — Ñîñòîÿíèå "Çàïóùåí".
- int messLev( ); — Óðîâåíü ñîîáùåíèé äèàãíîñòè÷åñêîé èíôîðìàöèè.
- void start( ); — Çàïóñê êîíòðîëëåðà.
- void stop( ); — Îñòàíîâ êîíòðîëëåðà.
- void enable( ); — Âêëþ÷åíèå êîíòðîëëåðà.
- void disable( ); — Îòêëþ÷åíèå êîíòðîëëåðà.
- void list( vector<string> &list ); — Ñïèñîê ïàðàìåòðîâ â êîíòðîëëåðå.
- bool present( const string &name ); — Ïðîâåðêà íà íàëè÷èå ïàðàìåòðà name.
- void add( const string &name, unsigned type ); — Äîáàâëåíèå ïàðàìåòðà name òèïà type.
- void del( const string &name, bool full = false ); — Óäàëåíèå ïàðàìåòðà name. Åñëè óêàçàíî ïîëå full òî êîíòðîëëåð áóäåò óäàë¸í ïîëíîñòüþ.
- AutoHD<TParamContr> at( const string &name, const string &who = "th_contr" ); — Ïîäêëþ÷åíèå ê ïàðàìåòðó êîíòðîëëåðà name.
- bool redntUse( Redundant md = Asymmetric ); — Ñîñòîÿíèÿ ðåçåðâèðîâàíèÿ äëÿ ðåæèìà md.
- void setRedntUse( bool vl ); — Ñìåíà ðåæèìà ïîëó÷åíèÿ äàííûõ ó ðåçåðâíîé ñòàíöèè.
- Redundant redntMode( ); — Ðåæèì ðåçåðâèðîâàíèÿ ("<high>", "<low>", "<optimal>", {ForceStation}), âêëþ÷åíèå.
- void setRedntMode( Redundant vl ); — Óñòàíîâêà ðåæèìà ðåçåðâèðîâàíèÿ, âêëþ÷åíèå.
- string redntRun( ); — Êîíôèãóðàöèÿ ïðåäïî÷òèòåëüíîãî èñïîëíåíèÿ.
- void setRedntRun( const string &vl ); — Óñòàíîâêà êîíôèãóðàöèè ïðåäïî÷òèòåëüíîãî èñïîëíåíèÿ.
- virtual void redntDataUpdate( ); — Âûïîëíåíèå îïåðàöèè ïîëó÷åíèÿ äàííûõ èç ðåçåðâíîé ñòàíöèè. Âûçûâàåòñÿ àâòîìàòè÷åñêè ïðîöåäóðîé îáñëóæèâàíèÿ ñõåìû ðåçåðâèðîâàíèÿ ïîäñèñòåìû.
- virtual string catsPat( ); — ñïèñîê ïðàâèë ðåãóëÿðíîãî âûðàæåíèÿ ðàçäåë¸ííûå '|' äëÿ âûáîðà ñîîáùåíèé ãåíåðèðîâàííûõ èñòî÷íèêîì äàííûõ ýòîãî îáúåêòà ïî êàòåãîðèÿì.
- void alarmSet( const string &mess, int lev = -TMess::Crit, const string &prm = "" ); — Ôîðìèðîâàíèå àâàðèéíîé ñèòóàöèè (íàðóøåíèÿ) äëÿ îáúåêòà êîíòðîëëåðà prm, èëè êîíòðîëëåðà â öåëîì åñëè îáúåêò íå óêàçàí, ñ ñîîáùåíèåì mess è óðîâíåì lev. Îòðèöàòåëüíîå çíà÷åíèå óðîâíÿ lev ñëóæèò äëÿ óñòàíîâêè, à ïîëîæèòåëüíîå äëÿ ñíÿòèÿ íàðóøåíèÿ. Ýòà ôóíêöèÿ ôîðìèðóåò íàðóøåíèÿ è ñîîáùåíèÿ ñ êàòåãîðèåé: al{ModId}:{CntrId}[.{PrmId}].
- TTypeDAQ &owner( ) const; — Òèï èñòî÷íèêà äàííûõ (ìîäóëü) - âëàäåëåö äàííûì êîíòðîëëåðîì.
Çàùèù¸ííûå àòðèáóòû:
- bool en_st; — Ïðèçíàê "Âêëþ÷åíî".
- bool run_st; — Ïðèçíàê "Çàïóùåíî".
Çàùèù¸ííûå ìåòîäû:
- virtual void enable_( ); — Âêëþ÷åíèå êîíòðîëëåðà. Ïåðåõâàòûâàåòñÿ ïîòîìêîì.
- virtual void disable_( ); — Îòêëþ÷åíèå êîíòðîëëåðà. Ïåðåõâàòûâàåòñÿ ïîòîìêîì.
- virtual void start_( ); — Çàïóñê êîíòðîëëåðà. Ïåðåõâàòûâàåòñÿ ïîòîìêîì.
- virtual void stop_( ); — Îñòàíîâ êîíòðîëëåðà. Ïåðåõâàòûâàåòñÿ ïîòîìêîì.
- virtual TParamContr *ParamAttach( const string &name, int type ); — Ìîäóëüíûé ìåòîä ñîçäàíèÿ/îòêðûòèÿ íîâîãî ïàðàìåòðà.
4.4. Îáúåêò òèïà ïàðàìåòðîâ (TTypeParam)
Ïóáëè÷íûå ìåòîäû:
- TTypeParam( const char *iid, const char *iname, const char *idb = "", bool i_isPrmCntr = false ); — Èíèöèàëèçèðóþùèé êîíñòðóêòîð.
- virtual void create( TParamContr *prm ); — Ñîçäàòü èëè óñòàíîâèòü òèï ïàðàìåòðà prm.
- virtual void destroy( TParamContr *prm ); — Óäàëèòü èëè ñíÿòü òèï ïàðàìåòðà prm.
- virtual string DB( TController *cntr ); — Ïîëó÷èòü èìÿ òàáëèöû ïàðàìåòðîâ êîíòðîëëåðà cntr.
- void setDB( TController *cntr, const string &vl ); — Óñòàíîâèòü èìÿ òàáëèöû ïàðàìåòðîâ êîíòðîëëåðà cntr.
- virtual void enable( TParamContr *prm ); — Âêëþ÷èòü ïàðàìåòð prm.
- virtual void disable( TParamContr *prm ); — Îòêëþ÷èòü ïàðàìåòð prm.
- virtual bool cfgChange( TParamContr *prm, TCfg &cfg ); — Ìîäèôèêàöèÿ êîíôèãóðàöèîííîãî ïîëÿ cfg ïàðàìåòðà prm.
- virtual void vlGet( TParamContr *prm, TVal &vo ); — Óïðåæäàþùàÿ ôóíêöèÿ ïîëó÷åíèÿ çíà÷åíèÿ, ÷åðåç ïàðàìåòð prm. Èñïîëüçóåòñÿ äëÿ ïðÿìîãî (ñèíõðîííîãî) ÷òåíèÿ.
- virtual void vlSet( TParamContr *prm, TVal &vo, const TVariant &vl, const TVariant &pvl ); — Óïðåæäàþùàÿ ôóíêöèÿ óñòàíîâêè çíà÷åíèÿ, ÷åðåç ïàðàìåòð prm. Èñïîëüçóåòñÿ äëÿ ïðÿìîé (ñèíõðîííîé) çàïèñè vl ñ ïðåäûäóùèì çíà÷åíèåì â pvl.
- virtual void vlArchMake( TParamContr *prm, TVal &val ); — Óâåäîìëÿþùàÿ ôóíêöèÿ î ñîçäàíèè àðõèâà äëÿ àòðèáóòà val, ÷åðåç ïàðàìåòð prm. Èñïîëüçóåòñÿ äëÿ íàñòðîéêè ñîçäàííîãî àðõèâà, â ñîîòâåòñòâèè ñ îñîáåííîñòÿìè èñòî÷íèêà äàííûõ.
- virtual void getVals( TParamContr *prm ); — Ôóíêöèÿ âíóòðåííåé ðåàëèçàöèÿ àñèíõðîííîãî ðåæèìà, âûçûâàåòñÿ â öèêëå îáúåêòà êîíòðîëëåðà äëÿ ïàðàìåòðà prm.
- virtual bool cntrCmdProc( TParamContr *prm, XMLNode *opt ); — Ôóíêöèÿ îáñëóæèâàíèÿ çàïðîñîâ èíòåðôåéñà óïðàâëåíèÿ, îò ïàðàìåòðà prm.
Ïóáëè÷íûå àòðèáóòû:
- string name; — Èìÿ òèïà ïàðàìåòðà.
- string descr; — Îïèñàíèå òèïà ïàðàìåòðà.
- string db; — ÁÄ òèïà ïàðàìåòðà.
4.5. Îáúåêò ïàðàìåòðà ôèçè÷åñêîãî óðîâíÿ (TParamContr)
Íàñëåäóåò: | TConfig, TValue. |
Íàñëåäóåòñÿ: | Îáúåêòàìè ïàðàìåòðîâ ìîäóëåé ïîäñèñòåìû "Ñáîð äàííûõ". |
Ïóáëè÷íûå ìåòîäû:
- TParamContr( const string &name, TTypeParam *tpprm ); — Èíèöèàëèçèðóþùèé êîíñòðóêòîð.
- string DAQPath( ); — Ïîëó÷åíèå DAQ àäðåñà ýëåìåíòà.
- string ownerPath( bool inclSelf = false ); — Ïóòü ïàðàìåòðà-âëàäåëüöà, âêëþ÷àÿ inclSelf äàííûé ïàðàìåòð.
- string id( ); — Èäåíòèôèêàòîð ïàðàìåòðà (øèôð).
- string name( ); — Èìÿ ïàðàìåòðà.
- string descr( ); — Îïèñàíèå ïàðàìåòðà.
- bool toEnable( ); — Ïðèçíàê "Âêëþ÷àòü ïàðàìåòð".
- bool enableStat( ) — Ñîñòîÿíèå "Âêëþ÷åí".
- void setName( const string &inm ); — Óñòàíîâêà èìåíè ïàðàìåòðà.
- void setDescr( const string &idsc ); — Óñòàíîâêà îïèñàíèÿ ïàðàìåòðà.
- void setToEnable( bool vl ); — Óñòàíîâêà ïðèçíàêà "Âêëþ÷àòü ïàðàìåòð".
- void list( vector<string> &list ); — Ñïèñîê ïàðàìåòðîâ â äàííîì ïàðàìåòðå.
- bool present( const string &name ); — Ïðîâåðêà íà íàëè÷èå ïàðàìåòðà name.
- void add( const string &name, unsigned type = 0 ); — Äîáàâëåíèå ïàðàìåòðà name òèïà type.
- void del( const string &name, bool full = false ); — Óäàëåíèå ïàðàìåòðà name. Åñëè óêàçàíî ïîëå full òî êîíòðîëëåð áóäåò óäàë¸í ïîëíîñòüþ.
- AutoHD<TParamContr> at( const string &name, const string &who = "th_prm" ); — Ïîäêëþ÷åíèå ê ïàðàìåòðó êîíòðîëëåðà name.
- TTypeParam &type( ); — Òèï ïàðàìåòðà.
- virtual TElem *dynElCntr( ); — Êîíòåéíåð äèíàìè÷åñêèõ ýëåìåíòîâ àòðèáóòîâ DAQ.
- virtual void enable( ); — Âêëþ÷èòü ïàðàìåòð.
- virtual void disable( ); — Îòêëþ÷èòü ïàðàìåòð.
- bool operator==( TParamContr & PrmCntr ); — Ñðàâíåíèå ïàðàìåòðîâ.
- TParamContr &operator=( const TParamContr & PrmCntr ); — Êîïèðîâàíèå ïàðàìåòðà.
- TController &owner( ) const; — Êîíòðîëëåð – âëàäåëåö ïàðàìåòðà.
Çàùèù¸ííûå ìåòîäû:
- virtual void setType( const string &tpId ); — âûçûâàåòñÿ äëÿ ñìåíû òèïà ïàðàìåòðà tpId è ìîæåò áûòü îáðàáîòàí â îáúåêòå ìîäóëÿ, äëÿ ñìåíû ñîáñòâåííûõ äàííûõ.
4.6. Îáúåêò çíà÷åíèÿ (TValue)
Íàñëåäóåò: | TCntrNode, TValElem. |
Íàñëåäóåòñÿ: | TParamContr. |
Ïóáëè÷íûå ìåòîäû:
- bool dataActive( ); — Ôëàã àêòèâíîñòè (îáíîâëÿåìîñòè) äàííûõ.
- virtual string DAQPath( ); — Ïîëó÷åíèå DAQ àäðåñà ýëåìåíòà.
- void vlList( vector<string> &list ); — Ïîëó÷åíèå ñïèñêà àòðèáóòîâ.
- bool vlPresent( const string &name ); — Ïðîâåðêà íà íàëè÷èÿ óêàçàííîãî àòðèáóòà.
- AutoHD<TVal> vlAt( const string &name ); — Ïîäêëþ÷åíèå ê àòðèáóòó.
Çàùèù¸ííûå ìåòîäû:
- TConfig *vlCfg( ) — Ïîëó÷åíèå ñâÿçàííîãî îáúåêòà êîíôèãóðàöèè. Åñëè âîçâðàùàåòñÿ NULL òî îòñóòñòâóåò ñâÿçàííûé îáúåêò êîíôèãóðàöèè.
- void setVlCfg( TConfig *cfg ); — Óñòàíîâêà ñâÿçàííîãî îáúåêòà êîíôèãóðàöèè cfg.
- bool vlElemPresent( TElem *ValEl ); — Ïðîâåðêà íà íàëè÷èå ýëåìåíòà àòðèáóòîâ ValEl.
- void vlElemAtt( TElem *ValEl ); — Ïîäêëþ÷åíèå ñòðóêòóðû äàííûõ ValEl.
- void vlElemDet( TElem *ValEl ); — Îòêëþ÷åíèå ñòðóêòóðû äàííûõ ValEl.
- TElem &vlElem( const string &name ); — Ïîëó÷èòü ñòðóêòóðó äàííûõ ïî å¸ èìåíè name.
- virtual TVal* vlNew( ); — Ñîçäàíèå ýêçåìïëÿðà TVal. Ìîæåò ïåðåîïðåäåëÿòüñÿ â ìîäóëÿõ äëÿ ñîçäàíèÿ ïðîèçâîäíûõ îáúåêòîâ àòðèáóòîâ ïàðàìåòðîâ ïîäñèñòåìû "Ñáîð äàííûõ".
- virtual void vlGet( TVal &vo ); — Óïðåæäàþùàÿ ôóíêöèÿ ïîëó÷åíèÿ çíà÷åíèÿ. Èñïîëüçóåòñÿ äëÿ ïðÿìîãî (ñèíõðîííîãî) ÷òåíèÿ.
- virtual void vlSet( TVal &vo, const TVariant &vl, const TVariant &pvl ); — Óïðåæäàþùàÿ ôóíêöèÿ óñòàíîâêè çíà÷åíèÿ. Èñïîëüçóåòñÿ äëÿ ïðÿìîé (ñèíõðîííîé) çàïèñè vl ñ ïðåäûäóùèì çíà÷åíèåì â pvl.
- virtual void vlArchMake( TVal &val ); — Óâåäîìëÿþùàÿ ôóíêöèÿ î ñîçäàíèè àðõèâà äëÿ àòðèáóòà val. Èñïîëüçóåòñÿ äëÿ íàñòðîéêè ñîçäàííîãî àðõèâà, â ñîîòâåòñòâèè ñ îñîáåííîñòÿìè èñòî÷íèêà äàííûõ.
4.7. Îáúåêò àòðèáóòà (TVal).
Äàííûå:
Äîïîëíèòåëüíûå ôëàãè ê îáúåêòó TFld (enum TVal::AttrFlag):
- TVal::DirRead(0x100) — ôëàã ïðÿìîãî ÷òåíèÿ çíà÷åíèÿ;
- TVal::DirWrite(0x200) — ôëàã ïðÿìîé çàïèñè çíà÷åíèÿ;
- TVal::Dynamic(0x400) — ôëàã äèíàìè÷åñêîãî àòðèáóòà, îáû÷íî ñîçäàâàåìîãî èç ïîëüçîâàòåëüñêèõ ïðîöåäóð.
Ïóáëè÷íûå ìåòîäû:
- TVal( ); — Êîíñòðóêòîð ïî óìîë÷àíèþ.
- TVal( TFld &fld ); — Èíèöèàëèçàöèÿ êàê õðàíèëèùå äèíàìè÷åñêèõ äàííûõ.
- TVal( TCfg &cfg ); — Èíèöèàëèçàöèÿ êàê îòðàæåíèå ñòàòè÷åñêèõ äàííûõ (ÁÄ).
- string DAQPath( ); — Ïîëó÷åíèå DAQ àäðåñà ýëåìåíòà.
- void setFld( TFld &fld ); — Èíèöèàëèçàöèÿ êàê õðàíèëèùå äèíàìè÷åñêèõ äàííûõ.
- void setCfg( TCfg &cfg ); — Èíèöèàëèçàöèÿ êàê îòðàæåíèå ñòàòè÷åñêèõ äàííûõ (ÁÄ).
- string name( ); — Èìÿ àòðèáóòà.
- int64_t time( ); — Ìåòêà âðåìåíè ïîñëåäíåãî/òåêóùåãî çíà÷åíèÿ (10-6ñ).
- bool isCfg( ); — Ïðèçíàê îáúåêòà çíà÷åíèÿ, ñîçäàííîãî íà îñíîâå ýëåìåíòà êîíôèãóðàöèè.
- bool dataActive( ); — Ôëàã àêòèâíîñòè (îáíîâëÿåìîñòè) äàííûõ.
- string getSEL( long long *tm = NULL, bool sys = false ); — Çàïðîñ çíà÷åíèÿ âûáîðî÷íîãî òèïà íà óêàçàííîå âðåìÿ tm. Åñëè NULL òî âîçâðàòèòñÿ ïîñëåäíåå çíà÷åíèå.
- TVariant get( long long *tm = NULL, bool sys = false ); — Çàïðîñ çíà÷åíèÿ íà óêàçàííîå âðåìÿ tm. Åñëè NULL òî âîçâðàòèòñÿ ïîñëåäíåå çíà÷åíèå.
- string getS( long long *tm = NULL, bool sys = false ); — Çàïðîñ çíà÷åíèÿ ñòðîêîâîãî òèïà íà óêàçàííîå âðåìÿ tm. Åñëè NULL òî âîçâðàòèòñÿ ïîñëåäíåå çíà÷åíèå.
- double getR( long long *tm = NULL, bool sys = false ); — Çàïðîñ çíà÷åíèÿ âåùåñòâåííîãî òèïà íà óêàçàííîå âðåìÿ tm. Åñëè NULL òî âîçâðàòèòñÿ ïîñëåäíåå çíà÷åíèå.
- int64_t getI( long long *tm = NULL, bool sys = false ); — Çàïðîñ çíà÷åíèÿ öåëîãî òèïà íà óêàçàííîå âðåìÿ tm. Åñëè NULL òî âîçâðàòèòñÿ ïîñëåäíåå çíà÷åíèå.
- char getB( long long *tm = NULL, bool sys = false ); — Çàïðîñ çíà÷åíèÿ ëîãè÷åñêîãî òèïà íà óêàçàííîå âðåìÿ tm. Åñëè NULL òî âîçâðàòèòñÿ ïîñëåäíåå çíà÷åíèå.
- AutoHD<TVarObj> getO( int64_t *tm = NULL, bool sys = false ); — Çàïðîñ çíà÷åíèÿ îáúåêòíîãî òèïà.
- void setSEL( const string &value, long long tm = 0, bool sys = false ); — Óñòàíîâêà çíà÷åíèÿ âûáîðî÷íîãî òèïà value.
- void set( const TVariant &value, long long tm = 0, bool sys = false ); — Óñòàíîâêà çíà÷åíèÿ value.
- void setS( const string &value, long long tm = 0, bool sys = false ); — Óñòàíîâêà çíà÷åíèÿ ñòðîêîâîãî òèïà value.
- void setR( double value, long long tm = 0, bool sys = false ); — Óñòàíîâêà çíà÷åíèÿ âåùåñòâåííîãî òèïà value.
- void setI( int64_t value, long long tm = 0, bool sys = false ); — Óñòàíîâêà çíà÷åíèÿ öåëîãî òèïà value.
- void setB( char value, long long tm = 0, bool sys = false ); — Óñòàíîâêà çíà÷åíèÿ ëîãè÷åñêîãî òèïà value.
- void setO( AutoHD<TVarObj> value, int64_t tm = 0, bool sys = false ); — Óñòàíîâêà çíà÷åíèÿ îáúåêòíîãî òèïà value.
- AutoHD<TVArchive> arch( ); — Ïîëó÷åíèå àññîöèèðîâàííîãî ñî çíà÷åíèåì àðõèâà.
- void setArch( const AutoHD<TVArchive> &vl ); — Óñòàíîâêà àññîöèèðîâàííîãî ñî çíà÷åíèåì àðõèâà.
- string setArch( const string &nm = "" ); — Óñòàíîâêà/ñîçäàíèå íîâîãî àðõèâà ñ ïðåäëîæåííûì èìåíåì nm èëè àâòîìàòè÷åñêè, åñëè èìÿ ïóñòî.
- bool reqFlg( ); bool resB1( ); bool resB2( ) — Ïîëó÷èòü íåêîòîðûå ñïåöèôè÷íûå äëÿ ðåàëèçàöèè ôëàãè.
- void setReqFlg( bool vl ); void setResB1( bool vl ); void setResB2( bool vl ) — Óñòàíîâèòü íåêîòîðûå ñïåöèôè÷íûå äëÿ ðåàëèçàöèè ôëàãè.
- TFld &fld( ); — Îïèñàòåëü ñòðóêòóðû àòðèáóòà.
4.8. Îáúåêò áèáëèîòåêè øàáëîíîâ ïàðàìåòðîâ ïîäñèñòåìû "DAQ" (TPrmTmplLib)
Íàñëåäóåò: | TCntrNode, TConfig. |
Ïóáëè÷íûå ìåòîäû:
- TPrmTmplLib( const char *id, const char *name, const string &lib_db ); — Èíèöèàëèçèðóþùèé êîíñòðóêòîð.
- string id( ); — Èäåíòèôèêàòîð áèáëèîòåêè.
- string name( ); — Èìÿ áèáëèîòåêè.
- string descr( ); — Îïèñàíèå áèáëèîòåêè.
- string DB( ); — ÁÄ ýêçåìïëÿðà áèáëèîòåêè.
- string tbl( ); — Òàáëèöà ÁÄ ýêçåìïëÿðà áèáëèîòåêè.
- string fullDB( ); — Ïîëíûé àäðåñ òàáëèöû ÁÄ ýêçåìïëÿðà áèáëèîòåêè.
- bool startStat( ) const; — Ïðèçíàê "Áèáëèîòåêà çàïóùåíà".
- void start( bool val ); — Çàïóñê/îñòàíîâ áèáëèîòåêè.
- void setName( const string &vl ); — Óñòàíîâêà èìåíè áèáëèîòåêè.
- void setDescr( const string &vl ); — Óñòàíîâêà îïèñàíèÿ áèáëèîòåêè.
- void setFullDB( const string &vl ); — Óñòàíîâêà ïîëíîãî àäðåñà òàáëèöû ÁÄ ýêçåìïëÿðà áèáëèîòåêè.
- void list( vector<string> &ls ); — Ñïèñîê øàáëîíîâ â áèáëèîòåêå.
- bool present( const string &id ); — Ïðîâåðêà íà ïðèñóòñòâèå øàáëîíà id â áèáëèîòåêå.
- AutoHD<TPrmTempl> at( const string &id ); — Ïîäêëþ÷åíèå ê øàáëîíó id.
- void add( const char *id, const char *name = "" ); — Äîáàâëåíèå øàáëîíà id.name â áèáëèîòåêó.
- void del( const char *id, bool full_del = false ); — Óäàëåíèå øàáëîíà id èç áèáëèîòåêè.
- TDAQS &owner( ) const; — Îáúåêò - ïîäñèñòåìà "DAQ", âëàäåëåö áèáëèîòåêè.
4.9. Îáúåêò øàáëîíà ïàðàìåòðîâ ïîäñèñòåìû "DAQ" (TPrmTempl)
Íàñëåäóåò: | TFunction, TConfig. |
Äàííûå:
Äîïîëíèòåëüíûå ôëàãè ê îáúåêòó àòðèáóòà ôóíêöèè IO (enum TPrmTempl::IOTmplFlgs):
- TPrmTempl::AttrRead(0x10) — àòðèáóò òîëüêî íà ÷òåíèå;
- TPrmTempl::AttrFull(0x20) — àòðèáóò ñ ïîëíûì äîñòóïîì;
- TPrmTempl::CfgPublConst(0x40) — ïóáëè÷íàÿ ïîñòîÿííàÿ;
- TPrmTempl::CfgLink(0x80) — âíåøíÿÿ ñâÿçü;
- TPrmTempl::LockAttr(0x100) — çàáëîêèðîâàííûé àòðèáóò.
Ïóáëè÷íûå ìåòîäû:
- TPrmTempl( const char *id, const char *name = "" ); — Èíèöèàëèçèðóþùèé êîíñòðóêòîð øàáëîíà.
- string id( ); — Èäåíòèôèêàòîð øàáëîíà ïàðàìåòðà.
- string name( ); — Èìÿ øàáëîíà ïàðàìåòðà.
- string descr( ); — Îïèñàíèå øàáëîíà ïàðàìåòðà.
- int maxCalcTm( ); — Ëèìèò íà ìàêñèìàëüíîå âðåìÿ âû÷èñëåíèÿ ïðîöåäóðû øàáëîíà.
- string progLang( ); — ßçûê ïðîãðàììèðîâàíèÿ øàáëîíà ïàðàìåòðà.
- bool progTr( ); — Ïåðåâîä ïðîãðàììû øàáëîíà ïàðàìåòðà.
- string prog( ); — Ïðîãðàììà øàáëîíà ïàðàìåòðà.
- int64_t timeStamp( ); — Ìåòêà âðåìåíè èçìåíåíèÿ îáúåêòà â ÁÄ.
- void setName( const string &inm ); — Óñòàíîâêà èìåíè øàáëîíà ïàðàìåòðà.
- void setDescr( const string &idsc ); — Óñòàíîâêà îïèñàíèÿ øàáëîíà ïàðàìåòðà.
- void setMaxCalcTm( int vl ); — Óñòàíîâêà ëèìèòà íà ìàêñèìàëüíîå âðåìÿ âû÷èñëåíèÿ ïðîöåäóðû øàáëîíà.
- void setProgLang( const string &ilng ); — Óñòàíîâêà ÿçûêà ïðîãðàììèðîâàíèÿ øàáëîíà ïàðàìåòðà.
- void setProgTr( bool vl ); — Óñòàíîâêà ïåðåâîäà ïðîãðàììû øàáëîíà ïàðàìåòðà.
- void setProg( const string &iprg ); — Óñòàíîâêà ïðîãðàììû øàáëîíà ïàðàìåòðà.
- void setStart( bool val ); — Ïóñê/îñòàíîâ øàáëîíà ïàðàìåòðà.
- AutoHD<TFunction> func( ); — Ïîäêëþ÷åíèå ê ôóíêöèè, ñôîðìèðîâàííîé øàáëîíîì.
- TPrmTmplLib &owner( ) const; — Îáúåêò áèáëèîòåêè øàáëîíîâ - âëàäåëåö øàáëîíà.