EDA okrem štandardne definovaných krokov pre prácu s dátami, umožňuje definovať aj vlastné periódy, ktoré je možné použiť všade tam, kde je možné zadať parameter krok, resp. perióda. Užívateľsky definované periódy sú identifikované ich kódom a definujú sa globálne pre celú EDA databázu funkciou EDA_SetPeriods. Zoznam všetkých užívateľsky definovaných periód je možné získať funkciou EDA_GetPeriods.


Príklad použitia:

 BEGIN
  INT _errorCode, _i
  TEXT _funcBody
  TIME _bt, _et
  RECORD NOALIAS (SD.EDA_Period) _periods
  RECORD NOALIAS (SD.EDA_CalcFunction_Params_V1) _calcParams
  RECORD NOALIAS (SD.EDA_Arr_Obj) _data
 
  ; vytvori polhodinovu periodu
  _periods[1]^code := "Min30"
  _periods[1]^title := _periods[1]^code
  _periods[1]^beginTime := %TimeFromItems(2015, 1, 1, 0, 0, 0, 0, 3600)
  _periods[1]^timeZone := 0
  _periods[1]^stepBase := 1 ; zakladny krok - sekunda
  _periods[1]^stepCount := 1800 ; pocet krokov - 1800
  _periods[1]^create := @TRUE
  CALL %EDA_SetPeriods(_periods, _errorCode)
  IF _errorCode != 0 THEN
    RETURN
  ENDIF
 
  ; nacita funkciu s polhodinovou periodou za jeden den
  ; vysledne _data budu obsahovat 48 hodnot
  _funcBody := "VEKTOR _v; INT _i;" + %Chr(10)
  _funcBody := _funcBody + "%CreateVektor(_v, 1);" + %Chr(10)
  _funcBody := _funcBody + "_v[1] := 1;" + %Chr(10)
  _funcBody := _funcBody + "RETURN _v;"
  _bt := %TimeFromItems(2015, 1, 1, 0, 0, 0, 0, 3600)
  _et := %TimeFromItems(2015, 1, 2, 0, 0, 0, 0, 3600) - 1
  _calcParams[1]^structVersion := 1
  CALL %EDA_CalcFunctionRec(10, _funcBody, _bt, _et, _periods[1]^code, _calcParams, _data, 1, _errorCode)
  IF _errorCode != 0 THEN
   RETURN
  ENDIF
 END
 
Napíšte komentár