CALCSTATFUNC

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ú.

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.

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:

Konštanta

Popis

_INTEGRAL_HOURUNIT

Hodinový integrál

_INTEGRAL_MINUNIT

Minútový integrál

_INTEGRAL_SECUNIT

Sekundový integrál

_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.

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:

Akcie v skriptoch