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 |
0 komentárov