// // Created by CFIF on 19.12.22. // #ifndef HVAC_VarsTabDumpOBSERVER_H #define HVAC_VarsTabDumpOBSERVER_H #include #include "VariablesTable.h" #include "LoggerInterface.h" typedef struct { tLoggerInterface *logger; tStorageInterface *interfaceCalib; tStorageInterface *interfaceParam; tVariablesTable *trackableVarsTab; uint32_t trackableGroup; void *dataCalib; void *dataParam; size_t sizeCalib; size_t sizeParam; bool health; osMutexId_t access; osMutexId_t accessDumper; uint32_t dumpAfter; uint32_t delay; struct { osThreadId_t id; uint32_t stack[256]; StaticTask_t controlBlock; osThreadAttr_t attr; } thread; } tVarsTabDumpObserver; void VarsTabDumpObserver_Init( tVarsTabDumpObserver *env, tStorageInterface *storageCalibInterface, tStorageInterface *storageParamInterface, uint32_t delay, void *dataCalib, void *dataParam, size_t sizeCalib, size_t sizeParam, tVariablesTable *VarsTab, uint32_t trackableGroup ); bool VarsTabDumpObserverCalib_Load(tVarsTabDumpObserver *env); bool VarsTabDumpObserverParam_Load(tVarsTabDumpObserver *env); bool VarsTabDumpObserverCalib_Dump(tVarsTabDumpObserver *env); bool VarsTabDumpObserverParam_Dump(tVarsTabDumpObserver *env); void VarsTabDumpObserver_RequireDump(tVarsTabDumpObserver *env); void VarsTabDumpObserver_StartThread(tVarsTabDumpObserver *env); void VarsTabDumpObserver_StopThread(tVarsTabDumpObserver *env); void VarsTabDumpObserver_Flush(tVarsTabDumpObserver *env); #endif //HVAC_VarsTabDumpOBSERVER_H