- Vytvoril/a D2000 Dev Team, naposledy zmenené nov 28, 2023
Akcia CALCSTATFUNC
CALCSTATFUNC archIdent, timeFromIdent_TmA, timeToIdent_TmA, statFuncIdent_Int, validPercIdent_Int, paramIdent, retValueIdent, statusIdent_Int [,archivInstance_Int]
archIdent | in | Odkaz na jednu archívnu hodnotu alebo odkaz na ľubovoľný objekt, ktorého hodnoty sa archivujú. Upozornenie: Ak sa parameter odkazuje na objekt, ktorý je viacnásobne archivovaný, nie je určené, hodnoty ktorého archívneho objektu sa použijú pre akciu. |
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. |
- _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 _STAT_F_GT_TIME _STAT_F_LE_TIME _STAT_F_LT_TIME _STAT_F_ADDITION_PARAM _STAT_F_INCREMENT_PARAM _STAT_F_DELTA_PARAM | Referenčná hodnota |
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.
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
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:
0 komentárov