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 
Napíšte komentár