CALCSTATFUNC
Akcia CALCSTATFUNC
Funkcia
Výpočet archívnej štatistickej funkcie na požiadanie.
Deklarácia
CALCSTATFUNC archIdent, timeFromIdent_TmA, timeToIdent_TmA, statFuncIdent_Int, validPercIdent_Int, paramIdent, retValueIdent, statusIdent_Int [,archivInstance_Int]Parametre
archIdent | in | Odkaz na jednu archívnu hodnotu alebo odkaz na ľubovoľný objekt, ktorého hodnoty sa archivujú. |
timeFromItemIdent_TmA | in | Identifikátor typu AbsTime - začiatok intervalu. |
timeToItemIdent_TmA | in | Identifikátor typu AbsTime - koniec intervalu. |
statFunctIdent | in | Identifikátor typu Int - typ štatistickej funkcie. |
validPercIdent | in | Identifikátor typu Int - validačné kritérium. |
paramIdent | in | Identifikátor typu Int alebo Real - parameter pre niektoré typy funkcií. |
retValueIdent | out | Identifikátor pre výsledok výpočtu. |
statusIdent | out | Úspešnosť výpočtu. |
archivInstance_Int | in | Nepovinný identifikátor typu Int - identifikácia inštancie archívu. Ak nie je uvedený, nahradí sa hodnotou 0. |
Popis
Akcia vykoná výpočet štatistickej funkcie danej parametrom statFuncIdent_Int na archívnych dátach reprezentovaných archívnym objektom archIdent pre časový interval daný parametrami timeFromIdent_TmA a timeToIdent_TmA. Po úspešnom vykonaní akcie, parameter retValueIdent obsahuje výslednú hodnotu výpočtu. Návratový kód statusIdent_Int môže nadobúdať jednu z nasledujúcich hodnôt:
_ERR_TRANS_ABORT
_ERR_TRANS_ERROR
_ERR_TRANS_IGNORED
_ERR_NO_ERROR
Množina implementovaných funkcií je zhodná z funkciami, ktoré je možné konfigurovať pre štatistický archív (okrem funkcií FILTER a ECOAVG). Pre jednotlivé funkcie sú v ESL preddefinované lokálne konštanty.
Parameter validPerctIdent_Int predstavuje Validačné kritérium použité pri vyhodnocovaní štatistickej funkcie. Môže nadobúdať hodnoty 0 .. 100 (chyba pri nedodržaní podmienky ERR_RANGE_ERROR).
Pre niektoré štatistické funkcie je potrebné zadať parameter paramIdent podľa nasledujúcej tabuľky:
Štatistická funkcia | Popis parametra | ||||||||
_STAT_F_INTEGRAL | Časový rozmer vstupu. Pre jednotlivé typy sú taktiež zavedené preddefinované lokálne konštanty podľa tabuľky:
| ||||||||
_STAT_F_GE_TIME |
Pre ostatné štatistické funkcie sa parameter paramIdent nevyhodnocuje.
Hodnota parametra archivInstance_Int udáva inštanciu archívu, ktorá realizuje požiadavku. Ak nie je uvedený (alebo má hodnotu 0), požiadavku realizuje aktívna inštancia archívu.
Časová značka výsledku je zhodná so zadaným koncovým časom timeToItemIdent_TmA.
Poznámka: Pri výpočte akcie CALCSTATFUNC sa neuplatňuje obmedzenie času, ktoré je aktívne pri výpočtoch štatistických archívov a ktoré nedovolí výpočet pre časy v budúcnosti. Pomocou akcie CALCSTATFUNC je teda možné napríklad vypočítať štatistiku nad skriptom plneným archívom, ktorý má dáta aj v budúcnosti.
Príklad
TIME _bt
TIME _et
REAL _retValue
INT _retCode
_bt := %StrToTime("8:01:00 16-10-2003")
_et := %StrToTime("8:02:00 16-10-2003")
CALCSTATFUNC H.ArchObj, _bt, _et, _STAT_F_SUM, 100, 0, _retValue, _retCode
IF _retCode = _ERR_NO_ERROR THEN
; výpočet prebehol
ELSE
; nastala nejaká chyba
ENDIF Poznámka 1
Použitie akcie CALCSTATFUNC neumožňuje počítať štatistické funkcie FILTER a TIMESLICE.
Poznámka 2
Pokiaľ je potrebné počítať štatistiky nad periodickým archívom (napr. H.Period), treba si uvedomiť, že periodický archív má hodnoty iba v násobkoch periódy. Ak by bolo napríklad potrebné počítať integrál z periodického archívu a začiatok intervalu by nebol násobky periódy, tak od začiatku intervalu po prvý násobok periódy by sa naintegrovala 0.
Táto vlastnosť sa dá obísť vytvorením zmenového počítaného archívneho objektu (napr. H.PeriodOnRead), ktorý je počítaný pri čítaní, a ktorý kopíruje H.Period. Integrál počítaný z archívu H.PeriodOnRead sa už správa podľa očakávania.
Súvisiace stránky: