Funkcia vykoná štatistickú operáciu nad vybraným obdobím vektora.
Deklarácia
%EDA_StatVectorRec( INT in statType, INT/TEXT in vector, TIME in bt, TIME in et, INT/TEXT in period, REC in params, REAL out value, INT out errorCode );
Parametre
| Parameter | Dátový typ | Typ | Popis | |
|---|---|---|---|---|
| 1 | statType | INT | in | Typ štatistiky. |
| 2 | vector | INT/TEXT | in | Id / kód vektora. |
| 3 | bt | TIME | in | Začiatok obdobia pre načítanie hodnôt. |
| 4 | et | TIME | in | Koniec obdobia pre načítanie hodnôt. |
| 5 | period | INT/TEXT | in | Perióda načítania hodnôt. |
| 6 | params | REC | in | Štruktúra voliteľných parametrov. |
| 7 | value | REAL | out | Výsledná hodnota. |
| 8 | errorCode | INT | out | Chybový (návratový) kód. |
Obsah štruktúry voliteľných parametrov verzie 1:
| Parameter | Dátový typ | Default | Popis | |
|---|---|---|---|---|
| 1 | structVersion | INT | 1 | Verzia štruktúry - 1. |
| 2 | cacheId | INT | 0 | Identifikátor cache. |
| 3 | useViewRounding | BOOL | @FALSE | Výsledná hodnota bude zaokrúhlená podľa definície vektora. |
| 4 | useAbsValues | BOOL | @FALSE | Do štatistiky sa použijú absolútne hodnoty. |
| 5 | version | INT/TEXT | Identifikátor (id/kód) verzie. | |
| 6 | envName | TEXT | Názov EDA prostredia, ktoré sa použije pre výpočet. | |
| 7 | paramBlockId | INT | Identifikátor bloku parametrov. |
Príklad použitia
INT _Stat_Sum = 0
INT _Stat_Min = 1
INT _Stat_Max = 2
INT _Stat_Avg = 3
BEGIN
TEXT _vectorName = "vector.test"
INT _vectorId = 1000000
INT _errorCode
TEXT _funcBody
TIME _bt, _et
REAL _value
RECORD NOALIAS (SD.EDA_CreateVector_Params_V1) _createParams
RECORD NOALIAS (SD.EDA_SetFunction_Params_V1) _funcParams
RECORD NOALIAS (SD.EDA_StatVector_Params_V1) _params
;vytvori vektor
_createParams[1]^structVersion := 1
_createParams[1]^periodBeginTime := %TimeFromItems(2015, 1, 1, 0, 0, 0, 0)
_createParams[1]^periodStepBase := 1
_createParams[1]^periodStepCount := 3600
_funcParams[1]^structVersion := 1
CALL %EDA_CreateVectorRec(_vectorName, _vectorId, _vectorName, 13, _createParams, _errorCode)
IF _errorCode != 0 THEN
RETURN
ENDIF
;nastavi mu predpis
_funcBody := "VEKTOR _v;" + %Chr(10)
_funcBody := _funcBody + "INT _i;" + %Chr(10)
_funcBody := _funcBody + "%CreateVektor(_v, _BT, _ET, _STEP);" + %Chr(10)
_funcBody := _funcBody + "FOR _i = 1 TO %ValuesNr(_v) LOOP" + %Chr(10)
_funcBody := _funcBody + " _v[_i] := %Mod(_i + 4, 10) + 1;" + %Chr(10)
_funcBody := _funcBody + "END LOOP;" + %Chr(10)
_funcBody := _funcBody + "RETURN _v;"
CALL %EDA_SetFunctionRec(_vectorId, 1, _funcBody, _funcParams, _errorCode)
IF _errorCode != 0 THEN
RETURN
ENDIF
;nacita vektor a z vyslednych hodnot vypocita priemer
_bt := %TimeFromItems(2015, 7, 10, 0, 0, 0, 0)
_et := %TimeFromItems(2015, 7, 10, 20, 0, 0, 0) - 1
_params[1]^structVersion := 1
CALL %EDA_StatVectorRec(_Stat_Avg, _vectorName, _bt, _et, 0, _params, _value, _errorCode)
IF _errorCode != 0 | !_value\VLD | _value != 5.5 THEN
RETURN
ENDIF
END
|
Súvisiace stránky:
0 komentárov