This is an old revision of
Doc/API/part5 from 2016-09-29 12:39:50..
5. Ïîäñèñòåìà "Àðõèâû" (TArchiveS)
Ïîäñèñòåìà "Àðõèâû" ïðåäñòàâëåíà îáúåêòîì TArchiveS, êîòîðûé ñîäåðæèò íà óðîâíå ïîäñèñòåìû ìîäóëüíûå îáúåêòû òèïîâ àðõèâàòîðîâ TTypeArchivator. Êàæäûé îáúåêò òèïà àðõèâàòîðà ñîäåðæèò îáúåêòû àðõèâàòîðîâ ñîîáùåíèé TMArchivator è àðõèâàòîðîâ çíà÷åíèé TVArchivator. Êðîìå ýòîãî îáúåêò ïîäñèñòåìû àðõèâû ñîäåðæèò ìåòîäû àðõèâà ñîîáùåíèé è îáúåêòû àðõèâîâ çíà÷åíèé TVArchive. Îáúåêò àðõèâà çíà÷åíèé TVArchive ñîäåðæèò áóôåð çíà÷åíèé ïóò¸ì íàñëåäîâàíèÿ îáúåêòà áóôåðà TValBuf. Äëÿ ñâÿçè àðõèâà çíà÷åíèé ñ àðõèâàòîðàìè ïðåäíàçíà÷åí îáúåêò ýëåìåíòà çíà÷åíèÿ TVArchEl. Ýòîò îáúåêò ñîäåðæèòñÿ â àðõèâàòîðå è íà íåãî ññûëàåòñÿ àðõèâ. Ñòðóêòóðà ïîäñèñòåìû "Àðõèâû" ïðåäñòàâëåíà íà ðèñ. 5.
Ðèñ. 5. Èåðàðõè÷åñêàÿ ñòðóêòóðà ïîäñèñòåìû àðõèâîâ.
Ïîäñèñòåìà "Àðõèâû" ñîäåðæèò ìåõàíèçìû àðõèâèðîâàíèÿ ñîîáùåíèé è çíà÷åíèé. Íåïîñðåäñòâåííî ñîäåðæèò àðõèâ ñîîáùåíèé âìåñòå ñ åãî áóôåðîì. Ñîäåðæèò ìåòîäû äîñòóïà ê àðõèâàì çíà÷åíèé è àðõèâàòîðàì çíà÷åíèé è ñîîáùåíèé. Êðîìå ýòîãî âûïîëíÿåò çàäà÷ó àêòèâíîãî ñáîðà äàííûõ èç èñòî÷íèêîâ çíà÷åíèé äëÿ àðõèâîâ çíà÷åíèé, à òàêæå àðõèâèðîâàíèå àðõèâà ñîîáùåíèé ïî àðõèâàòîðàì.
Àðõèâ çíà÷åíèé (TVArchive) ñîäåðæèò áóôåð (TValBuf) äëÿ ïðîìåæóòî÷íîãî íàêîïëåíèÿ çíà÷åíèé ïåðåä àðõèâèðîâàíèåì. Ñâÿçûâàåòñÿ ñ èñòî÷íèêîì çíà÷åíèé â ëèöå ïàðàìåòðîâ ñèñòåìû OpenSCADA â àêòèâíîì èëè ïàññèâíîì ðåæèìå, à òàêæå ñ äðóãèìè èñòî÷íèêàìè â ïàññèâíîì ðåæèìå. Äëÿ àðõèâèðîâàíèÿ íà ôèçè÷åñêèå õðàíèëèùà ñâÿçûâàåòñÿ ñ àðõèâàòîðàìè çíà÷åíèé ðàçëè÷íûõ òèïîâ.
Îáúåêò áóôåðà TValBuf ñîäåðæèò ìàññèâ çíà÷åíèé îñíîâíûõ òèïîâ ñèñòåìû OpenSCADA: ñòðîêà, öåëîå, âåùåñòâåííîå è ëîãè÷íîå. Ïîääåðæèâàåòñÿ õðàíåíèå çíà÷åíèé â ðåæèìàõ æåñòêîé, ìÿãêîé ñåòêè è ðåæèìå ñâîáîäíîãî äîñòóïà. Ïðåäóñìîòðåí òàêæå ðåæèì âðåìåíè âûñîêîãî ðàçðåøåíèÿ (ìèêðîñåêóíäû). Èñïîëüçóåòñÿ êàê äëÿ íåïîñðåäñòâåííîãî õðàíåíèÿ áîëüøèõ ìàññèâîâ çíà÷åíèé, òàê è äëÿ îáìåíà ñ áîëüøèìè ìàññèâàìè ìåòîäîì ïîêàäðîâîãî äîñòóïà.
Êîðíåâîé îáúåêò ìîäóëÿ ïîäñèñòåìû "Àðõèâû" (TTypeArchivator) ñîäåðæèò èíôîðìàöèþ î êîíêðåòíî âçÿòîì òèïå ìîäóëÿ.  ðàìêàõ îòäåëüíûõ ìîäóëåé ìîæåò ðåàëèçîâûâàòü ñîáñòâåííûå îáùåìîäóëüíûå ôóíêöèè.  îáùåì äëÿ ìîäóëåé ýòîãî òèïà ñîäåðæèò ìåòîäû äîñòóïà ê õðàíèëèùàì çíà÷åíèé è ñîîáùåíèé.
Îáúåêò àðõèâàòîðà ñîîáùåíèé (TMArchivator) ñîäåðæèò êîíêðåòíóþ ðåàëèçàöèþ õðàíèëèùà ñîîáùåíèé. Â îáùåì äëÿ àðõèâàòîðîâ ñîîáùåíèé ïðåäîñòàâëÿåòñÿ èíòåðôåéñ äîñòóïà ê ðåàëèçàöèè ìåõàíèçìà àðõèâèðîâàíèÿ â ìîäóëÿõ.
Îáúåêò àðõèâàòîðà çíà÷åíèé (TVArchivator) ñîäåðæèò êîíêðåòíóþ ðåàëèçàöèþ õðàíèëèùà çíà÷åíèé.  îáùåì äëÿ àðõèâàòîðîâ çíà÷åíèé ïðåäîñòàâëÿåòñÿ èíòåðôåéñ äîñòóïà ê ðåàëèçàöèè ìåõàíèçìà àðõèâèðîâàíèÿ è íàçíà÷åíèå àðõèâîâ çíà÷åíèé íà îáñëóæèâàíèå àðõèâàòîðîì.
Îáúåêò ýëåìåíòà àðõèâà TVArchEl ñâÿçûâàåò îáúåêòû àðõèâîâ ñ àðõèâàòîðàìè. Èñïîëüçóåòñÿ äëÿ äîñòóïà ê àðõèâàòîðàì èç àðõèâà, à òàêæå ê àðõèâàì èç àðõèâàòîðà, ò.å. äëÿ ïåðåêð¸ñòíûõ âûçîâîâ.
5.1. Îáúåêò ïîäñèñòåìû "Àðõèâû" (TArchiveS)
Ïóáëè÷íûå ìåòîäû:
- int subVer( ); — Âåðñèÿ ïîäñèñòåìû.
- int messPeriod( ); — Ïåðèîä àðõèâèðîâàíèå ñîîáùåíèé èç áóôåðà (ñåêóíä).
- int valPeriod( ); — Ïåðèîä ñáîðà çíà÷åíèé äëÿ àêòèâíûõ àðõèâàòîðîâ (ìèëëèñåêóíä).
- int valPrior( ); — Ïðèîðèòåò çàäà÷è ñáîðà çíà÷åíèé äëÿ àêòèâíûõ àðõèâàòîðîâ.
- bool valForceCurTm( ); — Óêàçûâàåò íà ïðèíóäèòåëüíóþ óñòàíîâêó òåêóùåãî âðåìÿ â êà÷åñòâå ìåòêè âðåìåíè ïîëó÷àåìîãî çíà÷åíèÿ.
- void setMessPeriod( int ivl ); — Óñòàíîâêà ïåðèîäà àðõèâèðîâàíèÿ ñîîáùåíèé èç áóôåðà (ñåêóíä).
- void setValPeriod( int ivl ); — Óñòàíîâêà ïåðèîäà ñáîðà çíà÷åíèé äëÿ àêòèâíûõ àðõèâàòîðîâ (ìèëëèñåêóíä).
- void setValPrior( int ivl ); — Óñòàíîâêà ïðèîðèòåòà çàäà÷è ñáîðà çíà÷åíèé äëÿ àêòèâíûõ àðõèâàòîðîâ.
- void setValForceCurTm( bool vl ); — Ïðèíóäèòåëüíàÿ óñòàíîâêà òåêóùåãî âðåìÿ â êà÷åñòâå ìåòêè âðåìåíè ïîëó÷àåìîãî çíà÷åíèÿ.
- void setToUpdate( ); — Óñòàíîâêà ôëàãà ïëàíèðîâàíèÿ îáíîâëåíèÿ.
- void subStart( ); — Çàïóñê ïîäñèñòåìû.
- void subStop( ); — Îñòàíîâ ïîäñèñòåìû.
- void valList( vector<string> &list ); — Ñïèñîê àðõèâîâ çíà÷åíèé â ïîäñèñòåìå.
- bool valPresent( const string &iid ); — Ïðîâåðêà íà íàëè÷èå àðõèâà çíà÷åíèé iid.
- void valAdd( const string &iid, const string &idb = "*.*" ); — Äîáàâëåíèå íîâîãî àðõèâà çíà÷åíèé iid.
- void valDel( const string &iid, bool db = false ); — Óäàëåíèå àðõèâà çíà÷åíèé iid.
- AutoHD<TVArchive> valAt( const string &iid ); — Ïîäêëþ÷åíèå/îáðàùåíèå ê àðõèâó çíà÷åíèé iid.
- void setActMess( TMArchivator *a, bool val ); — Óñòàíîâêà àðõèâàòîðà ñîîáùåíèé a â àêòèâíîå ñîñòîÿíèå val. Àêòèâíûé àðõèâàòîð áóäåò ïîäñèñòåìîé îáåñïå÷èâàòüñÿ ïîòîêîì ñîîáùåíèé.
- void setActVal( TVArchive *a, bool val ); — Óñòàíîâêà àðõèâà çíà÷åíèé a â àêòèâíîå ñîñòîÿíèå val. Àêòèâíûé àðõèâ áóäåò ïîäñèñòåìîé îáåñïå÷èâàòüñÿ ïåðèîäè÷åñêèì ïîòîêîì çíà÷åíèé (îïðåäåëÿåòñÿ ïåðèîäè÷íîñòüþ àðõèâà).
- AutoHD<TTypeArchivator> at( const string &name ); — Ïîäêëþ÷åíèå/îáðàùåíèå ê òèïó àðõèâàòîðà (ìîäóëþ) name.
- void messPut( time_t tm, int utm, const string &categ, int8_t level, const string &mess, const string &arch = "", bool force = false ); — Ïîìåùåíèå çíà÷åíèÿ mess ñ óðîâíåì level êàòåãîðèè categ è âðåìÿ tm+utm â áóôåð, à çàòåì â àðõèâ ñîîáùåíèé èëè ïðÿìî â óêàçàííûé àðõèâàòîðû arch (ðàçäåëåíû ñèìâîëîì ';'). force äëÿ ïðÿìîé çàïèñè â àðõèâàòîð ìèíóÿ ðåçåðâèðîâàíèå.
- void messPut( const vector<TMess::SRec> &recs, const string &arch = "", bool force = false ); — Ïîìåùåíèå ãðóïïû çíà÷åíèé recs â áóôåð, à çàòåì â àðõèâ ñîîáùåíèé èëè ïðÿìî â óêàçàííûé àðõèâàòîðû arch (ðàçäåëåíû ñèìâîëîì ';'). force äëÿ ïðÿìîé çàïèñè â àðõèâàòîð ìèíóÿ ðåçåðâèðîâàíèå.
- time_t messGet( time_t bTm, time_t eTm, vector<TMess::SRec> &recs, const string &category = "", int8_t level = TMess::Debug, const string &arch = "", time_t upTo = 0 ); — Çàïðîñ çíà÷åíèé reqs çà óêàçàííûé ïåðèîä âðåìåíè bTm, eTm äëÿ óêàçàííîé êàòåãîðèè (ïî øàáëîíó) category è óðîâíÿ level èç àðõèâàòîðîâ arch (ðàçäåëåíû ñèìâîëîì ';'). Âîçâðàùàåò âðåìÿ îñòàíîâêè çàïðîñà, ïîëåçíî äëÿ ïðîäîëæåíèÿ ñ óêàçàííîé òî÷êè.
- time_t messBeg( const string &arch = "" ); — Íà÷àëî àðõèâà ñîîáùåíèé â öåëîì èëè äëÿ óêàçàííîãî àðõèâàòîðà arch.
- time_t messEnd( const string &arch = "" ); — Êîíåö àðõèâà ñîîáùåíèé â öåëîì èëè äëÿ óêàçàííîãî àðõèâàòîðà arch.
- float rdRestDtOverTm( ); — Ãëóáèíà ïðèíóäèòåëüíîé ïåðåçàãðóçêè èñòîðèè ðåçåðâà ïðè çàïóñêå, â ñóòêàõ.
- void setRdRestDtOverTm( float vl ); — Óñòàíîâêà ãëóáèíû ïðèíóäèòåëüíîé ïåðåçàãðóçêè èñòîðèè ðåçåðâà ïðè çàïóñêå, â ñóòêàõ.
- void rdActArchMList( vector<string> &ls, bool isRun = false ); — Ñïèñîê àêòèâíûõ àðõèâàòîðîâ ñîîáùåíèé, ðàáîòàþùèõ â ñõåìå ðåçåðâèðîâàíèÿ. Ïðè óêàçàíèè isRun â ñïèñîê ïîïàäóò òîëüêî èñïîëíÿþùèåñÿ íà äàííîé ñòàíöèè àðõèâàòîðû ñîîáùåíèÿ.
- string rdStRequest( const string &arch, XMLNode &req, const string &prevSt = "", bool toRun = true ); — Çàïðîñ req ê ðåçåðâíîé ñòàíöèè îò èìåíè àðõèâàòîðà ñîîáùåíèÿ arch. Ñòàíöèÿ äëÿ çàïðîñà âûáèðàåòñÿ ïîñëå óêàçàííîé â prevSt, äëÿ èñïîëíÿåìîãî óäàë¸ííî àðõèâàòîðà ñîîáùåíèé, ïðè óêàçàíèè toRun.
- TElem &messE( ); — Ñòðóêòóðà ÁÄ àðõèâàòîðîâ ñîîáùåíèé.
- TElem &valE( ); — Ñòðóêòóðà ÁÄ àðõèâàòîðîâ çíà÷åíèé.
- TElem &aValE( ); — Ñòðóêòóðà ÁÄ àðõèâîâ çíà÷åíèé.
Ïóáëè÷íûå àòðèáóòû:
- bool SubStarting; — Ïðèçíàê çàïóñêà ïîäñèñòåìû.
5.2. Îáúåêò àðõèâà çíà÷åíèé (TVArchive)
Íàñëåäóåò: | TCntrNode, TValBuf, TConfig |
Äàííûå:
Ðåæèì ñáîðà äàííûõ/èñòî÷íèê (struct — TVArchive::SrcMode):
- Passive — ïàññèâíûé ðåæèì ñáîðà äàííûõ, èñòî÷íèê ñàìîñòîÿòåëüíî ïîìåùàåò äàííûå â àðõèâ;
- PassiveAttr — ïàññèâíûé ðåæèì ñáîðà äàííûõ ó àòðèáóòà ïàðàìåòðà, àòðèáóò ïàðàìåòðà ñàìîñòîÿòåëüíî ïîìåùàåò äàííûå â àðõèâ;
- ActiveAttr — àêòèâíûé ðåæèì ñáîðà äàííûõ ó àòðèáóòà ïàðàìåòðà, àòðèáóò ïàðàìåòðà ïåðèîäè÷åñêè îïðàøèâàåòñÿ ïîäñèñòåìîé "Àðõèâû".
Ïóáëè÷íûå ìåòîäû:
- TVArchive( const string &id, const string &db, TElem *cf_el ); — Èíèöèàëèçèðóþùèé êîíñòðóêòîð àðõèâà. Ãäå id — èäåíòèôèêàòîð àðõèâà, db — ÁÄ äëÿ õðàíåíèÿ è cf_el — còðóêòóðà ÁÄ àðõèâîâ çíà÷åíèé.
- string id( ); — Èäåíòèôèêàòîð àðõèâà.
- string name( ); — Èìÿ àðõèâà.
- string dscr( ); — Îïèñàíèå àðõèâà.
- SrcMode srcMode( ); — Ðåæèì ñâÿçûâàíèÿ ñ èñòî÷íèêîì äàííûõ.
- string srcData( ); — Ïàðàìåòðû èñòî÷íèêà äàííûõ, â ñëó÷àå ðåæèìà äîñòóïà ê ïàðàìåòðó ýòî àäðåñ ïàðàìåòðà.
- AutoHD<TVal> srcPAttr( bool force = false, const string &ipath = "" ); — Ïîäêëþ÷åíèå ê àññîöèèðîâàííîìó àòðèáóòó ïàðàìåòðà èñòî÷íèêà äàííûõ.
- bool toStart( ); — Ïðèçíàê: "Çàïóñêàòü àðõèâ ïðè âêëþ÷åíèè".
- bool startStat( ); — Ñîñòîÿíèå: "Àðõèâ çàïóùåí".
- string DB( ); — Àäðåñ ÁÄ àðõèâà çíà÷åíèé.
- string tbl( ); — Òàáëèöà ÁÄ àðõèâà çíà÷åíèé.
- string fullDB( ); — Ïîëíîå èìÿ òàáëèöû ÁÄ àðõèâà çíà÷åíèé.
- int64_t end( const string &arch = BUF_ARCH_NM ); — Âðåìÿ îêîí÷àíèÿ àðõèâà â öåëîì (arch="") èëè óêàçàííîãî àðõèâàòîðà, áóôåðà (arch="<bufer>").
- int64_t begin( const string &arch = BUF_ARCH_NM ); — Âðåìÿ íà÷àëà àðõèâà â öåëîì (arch="") èëè óêàçàííîãî àðõèâàòîðà, áóôåðà (arch="<bufer>").
- int64_t period( const string &arch = BUF_ARCH_NM ); — Ïåðèîäè÷íîñòü áóôåðà àðõèâà èëè óêàçàííîãî àðõèâàòîðà (ìèêðîñåêóíä).
- TFld::Type valType( bool full = false ); — Òèï àðõèâèðóåìîãî çíà÷åíèÿ. full — ïîëó÷àòü ïîëíûé òèï, èíà÷å òîëüêî îáùèé.
- bool hardGrid( ); — Èñïîëüçîâàíèå æåñòêîé ñåòêè â áóôåðå àðõèâà.
- bool highResTm( ); — Èñïîëüçîâàíèå âûñîêîãî ðàçðåøåíèÿ âðåìåíè â áóôåðå àðõèâà (ìèêðîñåêóíäû).
- bool fillLast( ); — Çàïîëíåíèå ïðîõîäíûõ òî÷åê ïîñëåäíèì çíà÷åíèåì.  îñíîâíîì ïðîõîäíûå çíà÷åíèÿ çàïîëíÿþòñÿ EVAL îäíàêî èíîãäà ïåðèîäè÷íîñòü çíà÷åíèé èñòî÷íèêà áîëüøå ïåðèîäè÷íîñòè ýòîãî àðõèâà è ýòî íîðìàëüíî.
- int size( ); — Ðàçìåð áóôåðà àðõèâà (åäèíèöû).
- void setName( const string &inm ); — Óñòàíîâêà èìåíè àðõèâà.
- void setDscr( const string &idscr ); — Óñòàíîâêà îïèñàíèÿ àðõèâà.
- void setSrcMode( SrcMode vl = SaveCur, const string &isrc = "<*>", bool noex = false ); — Óñòàíîâêà ðåæèìà ñâÿçûâàíèÿ ñ èñòî÷íèêîì äàííûõ.
- void setToStart( bool vl ); — Óñòàíîâêà ïðèçíàêà: "Çàïóñêàòü àðõèâ ïðè âêëþ÷åíèè".
- void setDB( const string &idb ); — Óñòàíîâêà àäðåñà ÁÄ àðõèâà çíà÷åíèé.
- void setValType( TFld::Type vl ); — Óñòàíîâêà òèïà àðõèâèðóåìîãî çíà÷åíèÿ.
- void setHardGrid( bool vl ); — Óñòàíîâêà èñïîëüçîâàíèÿ æåñòêîé ñåòêè â áóôåðå àðõèâà.
- void setHighResTm( bool vl ); — Óñòàíîâêà èñïîëüçîâàíèÿ âûñîêîãî ðàçðåøåíèÿ âðåìåíè â áóôåðå àðõèâà (ìèêðîñåêóíäû).
- void setFillLast( bool vl ); — Óñòàíîâêà çàïîëíåíèÿ ïðîõîäíûõ òî÷åê ïîñëåäíèì çíà÷åíèåì.
- void setSize( int vl ); — Óñòàíîâêà ðàçìåðà áóôåðà àðõèâà (åäèíèö).
- void setPeriod( int64_t vl ); — Óñòàíîâêà ïåðèîäè÷íîñòè áóôåðà àðõèâà.
- void start( ); — Çàïóñê àðõèâà.
- void stop( bool full_del = false ); — Îñòàíîâ àðõèâà, ñ ïîëíûì óäàëåíèåì full_del.
- TVariant getVal( int64_t *tm = NULL, bool up_ord = false, const string &arch = "", bool onlyLocal = false ); — Çàïðîñ îäíîãî çíà÷åíèÿ çà âðåìÿ tm è ïðèçíàêîì ïðèòÿãèâàíèÿ ê âåðõó <up_ord> èç óêàçàííîãî àðõèâàòîðà <arch>, áóôåðà (arch="<bufer>") èëè âñåõ àðõèâàòîðîâ ïî ìåðå ïàäåíèÿ êà÷åñòâà (arch=""). Äëÿ îáðàáîòêè çàïðîñà òîëüêî ëîêàëüíîé ñòàíöèåé óñòàíàâèëèâàåòñÿ <onlyLocal>.
- void getVals( TValBuf &buf, int64_t beg = 0, int64_t end = 0, const string &arch = "", int limit = 100000, bool onlyLocal = false ); — Çàïðîñ êàäðà çíà÷åíèé buf çà âðåìÿ îò beg äî end èç óêàçàííîãî àðõèâàòîðà arch, áóôåðà (arch="<bufer>") èëè âñåõ àðõèâàòîðîâ ïî ìåðå ïàäåíèÿ êà÷åñòâà (arch=""), ñ îãðàíè÷åíèåì ðàçìåðà çàïðîñà â limit çàïèñåé. Äëÿ çàïðîñà òîëüêî ëîêàëüíûõ àðõèâîâ, áåç êîìïåíñàöèè ïðîáåëîâ àðõèâîâ èç ðåçåðâíûõ ñòàíöèé, óñòàíàâëèâàåòñÿ onlyLocal.
- void setVals( TValBuf &buf, int64_t beg, int64_t end, const string &arch ); — Çàãðóçêà êàäðà çíà÷åíèé buf çà âðåìÿ îò beg äî end â óêàçàííûé àðõèâàòîð arch, áóôåð (arch="<bufer>") èëè âñå àðõèâàòîðû (arch="").
- void getActiveData( const int64_t &tm = 0 ); — Îïðîñèòü èñòî÷íèê äàííûõ ñ ïðèíóäèòåëüíîé óñòàíîâêîé ìåòêè âðåìåíè â tm (íå íóëåâîå). Èñïîëüçóåòñÿ ïîäñèñòåìîé äëÿ ïåðèîäè÷åñêîãî ñáîða äàííûõ àêòèâíûìè àðõèâàìè.
- void archivatorList( vector<string> &ls ); — Ñïèñîê àðõèâàòîðîâ, êîòîðûìè îáñëóæèâàåòñÿ àðõèâ.
- bool archivatorPresent( const string &arch ); — Ïðîâåðêà àðõèâàòîðà íà îáñëóæèâàíèå äàííîãî àðõèâà.
- void archivatorAttach( const string &arch ); — Ïîäêëþ÷åíèå äàííîãî àðõèâà íà îáñëóæèâàíèå óêàçàííûì àðõèâàòîðîì.
- void archivatorDetach( const string &arch, bool full = false ); — Îòêëþ÷åíèå äàííîãî àðõèâà îò îáñëóæèâàíèå óêàçàííûì àðõèâàòîðîì.
- void archivatorSort( ); — Ñîðòèðîâêà îáñëóæèâàþùèõ àðõèâàòîðîâ â ïîðÿäêå óõóäøåíèÿ êà÷åñòâà.
- string makeTrendImg( int64_t beg, int64_t end, const string &arch, int hsz = 650, int vsz = 230 ); — Ôîðìèðîâàíèå èçîáðàæåíèÿ (pdf) òðåíäà çà óêàçàííûé ïðîìåæóòîê âðåìåíè beg, end è óêàçàííîãî àðõèâàòîðà arch.
- TArchiveS &owner( ); — Ïîäñèñòåìà "Àðõèâû" — âëàäåëåö àðõèâà çíà÷åíèé.
5.3. Îáúåêò áóôåðà çíà÷åíèé (TValBuf)
Ïóáëè÷íûå ìåòîäû:
- TValBuf( ); — Èíèöèàëèçàòîð áóôåðà ñ óñòàíîâêàìè ïî óìîë÷àíèþ.
- TValBuf( TFld::Type vtp, int isz, int64_t ipr, bool ihgrd = false, bool ihres = false ); — Èíèöèàëèçàòîð áóôåðà ñ óêàçàííûìè ïàðàìåòðàìè.
- TValBuf( const TValBuf &src ); — Êîïèðóþùèé êîíñòðóêòîð.
- TValBuf &operator=( const TValBuf &src ); — Êîïèðîâàíèå îáúåêòà.
- void clear( ); — Î÷èñòêà áóôåðà.
- TFld::Type valType( bool full = false ); — Òèï çíà÷åíèÿ, õðàíèìîãî áóôåðîì. full — ïîëó÷àòü ïîëíûé òèï, èíà÷å òîëüêî îáùèé.
- bool hardGrid( ); — Ðàáîòà áóôåðà â ðåæèìå æåñòêîé ñåòêè.
- bool highResTm( ); — Ðàáîòà áóôåðà â ðåæèìå âðåìåíè âûñîêîãî ðàçðåøåíèÿ (ìèêðîñåêóíäû).
- bool fillLast( ); — Çàïîëíåíèå ïðîõîäíûõ òî÷åê ïîñëåäíèì çíà÷åíèåì.  îñíîâíîì ïðîõîäíûå çíà÷åíèÿ çàïîëíÿþòñÿ EVAL îäíàêî èíîãäà ïåðèîäè÷íîñòü çíà÷åíèé èñòî÷íèêà áîëüøå ïåðèîäè÷íîñòè ýòîãî àðõèâà è ýòî íîðìàëüíî.
- int size( ); — Ìàêñèìàëüíûé ðàçìåð áóôåðà (åäåíèö).
- int realSize( ); — Ðåàëüíûé ðàçìåð áóôåðà (åäåíèö).
- int64_t period( ); — Ïåðèîäè÷íîñòü çíà÷åíèé â áóôåðå (ìèêðîñåêóíä). Åñëè ïåðèîäè÷íîñòü íóëåâàÿ òî áóôåð ôóíêöèîíèðóåò â ðåæèìå ñâîáîäíîãî äîñòóïà.
- int64_t begin( ); — Âðåìÿ íà÷àëà áóôåðà (ìèêðîñåêóíä).
- int64_t end( ); — Âðåìÿ îêîí÷àíèÿ áóôåðà (ìèêðîñåêóíä).
- bool vOK( int64_t ibeg, int64_t iend ); — Ïðîâåðêà íàëè÷èÿ çíà÷åíèé â áóôåðå çà óêàçàííûé ïðîìåæóòîê âðåìåíè îò ibeg äî iend.
- void setValType( TFld::Type vl ); — Óñòàíîâêà òèïà çíà÷åíèÿ õðàíèìîãî áóôåðîì.
- void setHardGrid( bool vl ); — Óñòàíîâêà ðåæèìà æåñòêîé ñåòêè.
- void setHighResTm( bool vl ); — Óñòàíîâêà ðåæèìà âðåìåíè âûñîêîãî ðàçðåøåíèÿ (ìèêðîñåêóíäû).
- void setFillLast( bool vl ); — Óñòàíîâêà çàïîëíåíèÿ ïðîõîäíûõ òî÷åê ïîñëåäíèì çíà÷åíèåì.
- void setSize( int vl ); — Óñòàíîâêà ðàçìåðà áóôåðà (åäåíèö).
- void setPeriod( int64_t vl ); — Óñòàíîâêà ïåðèîäè÷íîñòè çíà÷åíèé â áóôåðå (ìèêðîñåêóíä).
- virtual void getVals( TValBuf &buf, int64_t beg = 0, int64_t end = 0 ); — Çàïðîñ êàäðà çíà÷åíèé buf çà âðåìÿ îò beg äî end.
- TVariant get( int64_t *tm = NULL, bool up_ord = false ); — Çàïðîñ çíà÷åíèÿ çà âðåìÿ tm è ïðèçíàêîì ïðèòÿãèâàíèÿ ê âåðõó up_ord.
- virtual string getS( int64_t *tm = NULL, bool up_ord = false ); — Çàïðîñ çíà÷åíèÿ ñòðîêîâîãî òèïà çà âðåìÿ tm è ïðèçíàêîì ïðèòÿãèâàíèÿ ê âåðõó up_ord.
- virtual double getR( int64_t *tm = NULL, bool up_ord = false ); — Çàïðîñ çíà÷åíèÿ âåùåñòâåííîãî òèïà çà âðåìÿ tm è ïðèçíàêîì ïðèòÿãèâàíèÿ ê âåðõó up_ord.
- virtual int64_t getI( int64_t *tm = NULL, bool up_ord = false ); — Çàïðîñ çíà÷åíèÿ öåëîãî òèïà çà âðåìÿ tm è ïðèçíàêîì ïðèòÿãèâàíèÿ ê âåðõó up_ord.
- virtual char getB( int64_t *tm = NULL, bool up_ord = false ); — Çàïðîñ çíà÷åíèÿ ëîãè÷åñêîãî òèïà çà âðåìÿ tm è ïðèçíàêîì ïðèòÿãèâàíèÿ ê âåðõó up_ord.
- virtual void setVals( TValBuf &buf, int64_t beg = 0, int64_t end = 0 ); — Óñòàíîâêà êàäðà çíà÷åíèé èç buf çà âðåìÿ îò beg äî end.
- void set( const TVariant &value, int64_t tm = 0 ); — Óñòàíîâêà çíà÷åíèÿ ñ âðåìåíåì tm.
- virtual void setS( const string &value, int64_t tm = 0 ); — Óñòàíîâêà çíà÷åíèÿ ñòðîêîâîãî òèïà ñ âðåìåíåì tm.
- virtual void setR( double value, int64_t tm = 0 ); — Óñòàíîâêà çíà÷åíèÿ âåùåñòâåííîãî òèïà ñ âðåìåíåì tm.
- virtual void setI( int64_t value, int64_t tm = 0 ); — Óñòàíîâêà çíà÷åíèÿ öåëîãî òèïà ñ âðåìåíåì tm.
- virtual void setB( char value, int64_t tm = 0 ); — Óñòàíîâêà çíà÷åíèÿ ëîãè÷åñêîãî òèïà ñ âðåìåíåì tm.
- //
Çàùèù¸ííûå ìåòîäû:
- void makeBuf( TFld::Type v_tp, int isz, int64_t ipr, bool hd_grd, bool hg_res ); — Ïåðåñîçäàíèå áóôåðà äëÿ óêàçàííûõ ïàðàìåòðîâ.
5.4. Ìîäóëüíûé îáúåêò òèïà àðõèâàòîðà (TTypeArchivator)
Íàñëåäóåò: | TModule. |
Íàñëåäóåòñÿ: | Êîðíåâûìè îáúåêòàìè ìîäóëåé ïîäñèñòåìû "Àðõèâû". |
Ïóáëè÷íûå ìåòîäû:
- void messList( vector<string> &list ); — Ñïèñîê àðõèâàòîðîâ ñîîáùåíèé.
- bool messPresent( const string &iid ); — Ïðîâåðêà íà íàëè÷èå óêàçàííîãî àðõèâàòîðà ñîîáùåíèé.
- void messAdd( const string &iid, const string &idb = "*.*" ); — Äîáàâëåíèå àðõèâàòîðà ñîîáùåíèé.
- void messDel( const string &iid, bool full = false ); — Óäàëåíèå àðõèâàòîðà ñîîáùåíèé.
- AutoHD<TMArchivator> messAt( const string &iid ); — Ïîäêëþ÷åíèå ê àðõèâàòîðó ñîîáùåíèé.
- void valList( vector<string> &list ); — Ñïèñîê àðõèâàòîðîâ çíà÷åíèé.
- bool valPresent( const string &iid ); — Ïðîâåðêà íà íàëè÷èå óêàçàííîãî àðõèâàòîðà çíà÷åíèé.
- void valAdd( const string &iid, const string &idb = "*.*" ); — Äîáàâëåíèå àðõèâàòîðà çíà÷åíèé.
- void valDel( const string &iid, bool full = false ); — Óäàëåíèå àðõèâàòîðà çíà÷åíèé.
- AutoHD<TVArchivator> valAt( const string &iid ); — Ïîäêëþ÷åíèå ê àðõèâàòîðó çíà÷åíèé.
- TArchiveS &owner( ); — Ïîäñèñòåìà "Àðõèâû" — âëàäåëåö òèïà àðõèâàòîðà.
Çàùèù¸ííûå ìåòîäû:
- virtual TMArchivator *AMess( const string &iid, const string &idb ); — Ìîäóëüíûé ìåòîä ñîçäàíèå àðõèâàòîðà ñîîáùåíèé.
- virtual TVArchivator *AVal( const string &iid, const string &idb ); — Ìîäóëüíûé ìåòîä ñîçäàíèå àðõèâàòîðà çíà÷åíèé.
5.5. Îáúåêò àðõèâàòîðà ñîîáùåíèé (TMArchivator)
Íàñëåäóåò: | TCntrNode, TConfig |
Íàñëåäóåòñÿ: | Îáúåêòàìè àðõèâàòîðîâ ñîîáùåíèé ìîäóëåé ïîäñèñòåìû "Àðõèâû". |
Ïóáëè÷íûå ìåòîäû:
- TMArchivator( const string &id, const string &db, TElem *cf_el ); — Èíèöèàëèçèðóþùèé êîíñòðóêòîð àðõèâàòîðà ñîîáùåíèé ñ èäåíòèôèêàòîðîì id, äëÿ õðàíåíèÿ íà ÁÄ db ñî ñòðóêòóðîé cf_el.
- string id( ); — Èäåíòèôèêàòîð àðõèâàòîðà.
- string workId( ); — Ðàáî÷èé èäåíòèôèêàòîð, âêëþ÷àåò èìÿ ìîäóëÿ.
- string name( ); — Èìÿ àðõèâàòîðà.
- string dscr( ); — Îïèñàíèå àðõèâàòîðà.
- bool toStart( ); — Ïðèçíàê "Çàïóñêàòü àðõèâàòîð".
- bool startStat( ); — Ñîñòîÿíèå àðõèâàòîðà "Çàïóùåí".
- string &addr( ); — Àäðåñ õðàíèëèùà àðõèâàòîðà.
- int &level( ); — Óðîâåíü ñîîáùåíèé, îáñëóæèâàåìûõ àðõèâàòîðîì.
- void categ( vector<string> &list ); — Êàòåãîðèè (øàáëîíû) ñîîáùåíèé, îáñëóæèâàåìûõ àðõèâàòîðîì.
- string DB( ); — Àäðåñ ÁÄ àðõèâàòîðà.
- string tbl( ); — Àäðåñ òàáëèöû ÁÄ àðõèâàòîðà.
- string fullDB( ); — Ïîëíûé àäðåñ òàáëèöû ÁÄ àðõèâàòîðà.
- void setName( const string &vl ); — Óñòàíîâêà èìåíè àðõèâàòîðà.
- void setDscr( const string &vl ); — Óñòàíîâêà îïèñàíèÿ àðõèâàòîðà.
- void setToStart( bool vl ); — Óñòàíîâêà ïðèçíàêà "Çàïóñêàòü àðõèâàòîð".
- void setAddr( const string &vl ); — Óñòàíîâêà àäðåñà õðàíèëèùà àðõèâàòîðà.
- void setLevel( int lev ); — Óñòàíîâêà óðîâíÿ ñîîáùåíèé, îáñëóæèâàåìûõ àðõèâàòîðîì.
- void setDB( const string &idb ); — Óñòàíîâêà àäðåñà ÁÄ àðõèâàòîðà.
- bool redntUse( ); — Ðåæèì ïîëó÷åíèÿ äàííûõ ó ðåçåðâíîé ñòàíöèè.
- void setRedntUse( bool vl ); — Ñìåíà ðåæèìà ïîëó÷åíèÿ äàííûõ ó ðåçåðâíîé ñòàíöèè.
- bool redntMode( ); — Ðåæèì ðåçåðâèðîâàíèÿ ("<high>", "<low>", "<optimal>", {ForceStation}), âêëþ÷åíèå.
- void setRedntMode( bool vl ); — Óñòàíîâêà ðåæèìà ðåçåðâèðîâàíèÿ, âêëþ÷åíèå.
- string redntRun( ); — Êîíôèãóðàöèÿ ïðåäïî÷òèòåëüíîãî èñïîëíåíèÿ.
- void setRedntRun( const string &vl ); — Óñòàíîâêà êîíôèãóðàöèè ïðåäïî÷òèòåëüíîãî èñïîëíåíèÿ.
- virtual void redntDataUpdate( ); — Âûïîëíåíèå îïåðàöèè ïîëó÷åíèÿ äàííûõ èç ðåçåðâíîé ñòàíöèè. Âûçûâàåòñÿ àâòîìàòè÷åñêè ïðîöåäóðîé îáñëóæèâàíèÿ ñõåìû ðåçåðâèðîâàíèÿ ïîäñèñòåìû.
- virtual void start( ); — Çàïóñê àðõèâàòîðà.
- virtual void stop( ); — Îñòàíîâ àðõèâàòîðà.
- virtual time_t begin( ); — Íà÷àëî àðõèâà äàííîãî àðõèâàòîðà.
- virtual time_t end( ); — Êîíåö àðõèâà äàííîãî àðõèâàòîðà.
- virtual bool put( vector<TMess::SRec> &mess, bool force = false ); — Ïîìåñòèòü ãðóïïó ñîîáùåíèé â àðõèâ ñîîáùåíèé äàííîãî àðõèâàòîðà. Âîçâðàùàåò "true", ïðè óñïåøíîé îïåðàöèè. force äëÿ ïðÿìîé çàïèñè â àðõèâàòîð ìèíóÿ ðåçåðâèðîâàíèå.
- virtual time_t get( time_t bTm, time_t eTm, vector<TMess::SRec> &mess, const string &category = "", char level = 0, time_t upTo = 0 ); — Ïîëó÷èòü ñîîáùåíèÿ èç àðõèâà äàííîãî àðõèâàòîðà äëÿ óêàçàííûõ ïàðàìåòðîâ ôèëüòðà. Âîçâðàùàåò âðåìÿ îñòàíîâêè çàïðîñà, ïîëåçíî äëÿ ïðîäîëæåíèÿ ñ óêàçàííîé òî÷êè.
- TTypeArchivator &owner( ); — Òèï àðõèâàòîðà – âëàäåëåö àðõèâàòîðà ñîîáùåíèé.
Çàùèù¸ííûå àòðèáóòû:
- bool run_st; — Ïðèçíàê "Çàïóùåí".
- int messHead; — Óêàçàòåëü íà ïîñëåäíåå ïðî÷èòàííîå ñîîáùåíèé áóôåðà ñîîáùåíèé.
Çàùèù¸ííûå ìåòîäû:
- bool chkMessOK( const string &icateg, int8_t ilvl ); — Ïðîâåðêà ñîîáùåíèÿ íà ñîîòâåòñòâèå óñëîâèÿì ôèëüòðà.
5.6. Îáúåêò àðõèâàòîðà çíà÷åíèé (TVArchivator)
Íàñëåäóåò: | TCntrNode, TConfig |
Íàñëåäóåòñÿ: | Îáúåêòàìè àðõèâàòîðîâ çíà÷åíèé ìîäóëåé ïîäñèñòåìû "Àðõèâû". |
Ïóáëè÷íûå ìåòîäû:
- TVArchivator( const string &id, const string &db, TElem *cf_el ); — Èíèöèàëèçèðóþùèé êîíñòðóêòîð àðõèâàòîðà çíà÷åíèé ñ èäåíòèôèêàòîðîì id, äëÿ õðàíåíèÿ íà ÁÄ db ñî ñòðóêòóðîé cf_el.
- string id( ); — Èäåíòèôèêàòîð àðõèâàòîðà.
- string workId( ); — Ðàáî÷èé èäåíòèôèêàòîð, âêëþ÷àåò èìÿ ìîäóëÿ.
- string name( ); — Èìÿ àðõèâàòîðà.
- string dscr( ); — Îïèñàíèå àðõèâàòîðà.
- string addr( ); — Àäðåñ õðàíèëèùà àðõèâàòîðà.
- double valPeriod( ); — Ïåðèîäè÷íîñòü çíà÷åíèé àðõèâàòîðà (ìèêðîñåêóíä).
- int archPeriod( ); — Ïåðèîäè÷íîñòü àðõèâèðîâàíèÿ çíà÷åíèé àðõèâàòîðîì. Âðåìÿ ÷åðåç êîòîðîå àðõèâàòîð ïðîèçâîäèò àðõèâèðîâàíèå êàäðà çíà÷åíèé èç áóôåðà àðõèâà.
- int selPrior( ); — Ïðèîðèòåò âûáîðà äëÿ ðåæèìà "Âñå" àðõèâàòîðû.
- bool toStart( ); — Ïðèçíàê "Çàïóñêàòü àðõèâàòîð".
- bool startStat( ); — Ñîñòîÿíèå àðõèâàòîðà "Çàïóùåí".
- string DB( ); — Àäðåñ ÁÄ àðõèâàòîðà.
- string tbl( ); — Àäðåñ òàáëèöû ÁÄ àðõèâàòîðà.
- string fullDB( ); — Ïîëíûé àäðåñ òàáëèöû ÁÄ àðõèâàòîðà.
- void setName( const string &inm ); — Óñòàíîâêà èìåíè àðõèâàòîðà.
- void setDscr( const string &idscr ); — Óñòàíîâêà îïèñàíèÿ àðõèâàòîðà.
- void setAddr( const string &vl ); — Óñòàíîâêà àäðåñà õðàíèëèùà àðõèâàòîðà.
- void setValPeriod( double iper ); — Óñòàíîâêà ïåðèîäè÷íîñòè çíà÷åíèé àðõèâàòîðà (ìèêðîñåêóíä).
- void setArchPeriod( int iper ); — Óñòàíîâêà ïåðèîäè÷íîñòè àðõèâèðîâàíèÿ çíà÷åíèé àðõèâàòîðîì. Âðåìÿ ÷åðåç êîòîðîå àðõèâàòîð ïðîèçâîäèò àðõèâèðîâàíèå êàäðà çíà÷åíèé èç áóôåðà àðõèâà.
- void setSelPrior( int vl ); — Óñòàíîâêà ïðèîðèòåòà âûáîðà äëÿ ðåæèìà "Âñå" àðõèâàòîðû.
- void setToStart( bool vl ); — Óñòàíîâêà ïðèçíàêà "Çàïóñêàòü àðçèâàòîð".
- void setDB( const string &idb ); — Óñòàíîâêà àäðåñà ÁÄ àðõèâàòîðà.
- virtual void start( ); — Çàïóñê àðõèâàòîðà.
- virtual void stop( bool full_del = false ); — Îñòàíîâ àðõèâàòîðà ñ âîçìîæíîñòüþ ïîëíîãî óäàëåíèÿ full_del.
- void archiveList( vector<string> &ls ); — Ñïèñîê àðõèâîâ îáñëóæèâàåìûõ àðõèâàòîðîì.
- bool archivePresent( const string &iid ); — Ïðîâåðêà íà îáñëóæèâàåìîñòü óêàçàííîãî àðõèâà àðõèâàòîðîì.
- TTypeArchivator &owner( ); — Òèï àðõèâàòîðà – âëàäåëåö àðõèâàòîðà çíà÷åíèé.
Çàùèù¸ííûå ìåòîäû:
- TVArchEl *archivePlace( TVArchive &item ); — Âêëþ÷èòü àðõèâ item â îáðàáîòêó àðõèâàòîðîì.
- void archiveRemove( const string &id, bool full = false ); — Óäàëèòü àðõèâ id èç îáðàáîòêè àðõèâàòîðîì, ñ âîçìîæíîñòüþ ïîëíîãî óäàëåíèÿ full.
- virtual TVArchEl *getArchEl( TVArchive &arch ); — Ïîëó÷åíèå îáúåêòà ýëåìåíòà àðõèâà äëÿ óêàçàííîãî àðõèâà.
- virtual void pushAccumVals( ); — Âûãðóçêà àêêóìóëèðîâàííûõ çàäà÷åé àðõèâàöèè çíà÷åíèé, äëÿ àêêóìóëèðóþùèõ àðõèâàòîðîâ.
Çàùèù¸ííûå àòðèáóòû:
- Res a_res — Ðåñóðñ ïðîöåññà àðõèâèðîâàíèÿ.
- bool run_st — Ïðèçíàê "Àðõèâ çàïóùåí".
- vector<TVArchEl *> arch_el; — Ìàññèâ ýëåìåíòîâ àðõèâîâ.
5.7. Îáúåêò ýëåìåíòà àðõèâà â àðõèâàòîðå (TVArchEl)
Íàñëåäóåòñÿ: | Îáúåêòàìè àðõèâàòîðîâ çíà÷åíèé ìîäóëåé ïîäñèñòåìû "Àðõèâû". |
Ïóáëè÷íûå ìåòîäû:
- TVArchEl( TVArchive &iarchive, TVArchivator &iarchivator ); — Èíèöèàëèçèðóþùèé êîíñòðóêòîð äëÿ ñâÿçè àðõèâà iarchive ñ àðõèâàòîðîì iarchivator.
- virtual void fullErase( ); — Ïîëíîå óäàëåíèå ýëåìåíòà.
- virtual int64_t end( ); — Âðåìÿ êîíöà äàííûõ (ìèêðîñåêóíäû).
- virtual int64_t begin( ); — Âðåìÿ íà÷àëà äàííûõ (ìèêðîñåêóíäû).
- int64_t lastGet( ); — Âðåìÿ ïîñëåäíåãî ñáðîñà äàííûõ èç áóôåðà â õðàíèëèùå.
- TVariant getVal( int64_t *tm, bool up_ord, bool onlyLocal = false ); — Çàïðîñ çíà÷åíèÿ çà âðåìÿ tm è ïðèçíàêîì ïðèòÿãèâàíèÿ ê âåðõó up_ord, ñ óêàçàíèåì çàïðîñà òîëüêî ëîêàëüíîãî àðõèâà â onlyLocal.
- void getVals( TValBuf &buf, int64_t beg = 0, int64_t end = 0, bool onlyLocal = false ); — Çàïðîñ êàäðà çíà÷åíèé buf çà âðåìÿ îò beg äî end, ñ óêàçàíèåì çàïðîñà òîëüêî ëîêàëüíîãî àðõèâà â onlyLocal.
- void setVals( TValBuf &buf, int64_t beg = 0, int64_t end = 0, bool toAccum = false ); — Óñòàíîâêà êàäðà çíà÷åíèé èç buf çà âðåìÿ îò beg äî end, ÷åðåç àêêóìóëÿöèþ toAccum.
- TVArchive &archive( ); — Àðõèâ ýëåìåíòà.
- TVArchivator &archivator( ); — Àðõèâàòîð ýëåìåíòà.
Ïóáëè÷íûå àòðèáóòû:
- int64_t prev_tm; — Âðåìÿ ïðåäûäóùåãî çíà÷åíèÿ. Èñïîëüçóåòñÿ äëÿ óñðåäíåíèÿ.
- string prev_val; — Ïðåäûäóùåå çíà÷åíèå. Èñïîëüçóåòñÿ äëÿ óñðåäíåíèÿ.
Çàùèù¸ííûå ìåòîäû:
- virtual TVariant getValProc( int64_t *tm, bool up_ord ); — Ôóíêöèÿ îáðàáîòêè çàïðîñà îäíîãî çíà÷åíèÿ èç àðõèâà.
- virtual void getValsProc( TValBuf &buf, int64_t beg, int64_t end ); — Ôóíêöèÿ îáðàáîòêè çàïðîñà ìîäóëåì íà ïîëó÷åíèå äàííûõ.
- virtual void setValsProc( TValBuf &buf, int64_t beg, int64_t end, bool toAccum ); — Ôóíêöèÿ îáðàáîòêè çàïðîñà ìîäóëåì íà óñòàíîâêó äàííûõ, ÷åðåç àêêóìóëÿöèþ toAccum.