// // 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 *interface; tVariablesTable *trackableVarsTab; uint32_t trackableGroup; void *data; size_t size; 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 *interface, uint32_t delay, void *data, size_t size, tVariablesTable *VarsTab, uint32_t trackableGroup ); bool VarsTabDumpObserver_Load(tVarsTabDumpObserver *env); bool VarsTabDumpObserver_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