// // Created by xemon on 21.11.22. // #ifndef UVEOS_ON_NATION_ERAGLONASSMSDTABLE_H #define UVEOS_ON_NATION_ERAGLONASSMSDTABLE_H #include "EraGlonassMsd.h" #define ERA_GLONASS_MSD_TABLE_LENGTH 101 typedef struct { uint16_t attemptsLeft; tEraGlonassMsd msd; } tEraGlonassMsdTableItem; typedef struct { tEraGlonassMsdTableItem items[ERA_GLONASS_MSD_TABLE_LENGTH]; } tEraGlonassMsdTable; void EraGlonassMsdTable_Init(tEraGlonassMsdTable *env); uint16_t EraGlonassMsdTable_GetSize(); uint16_t EraGlonassMsdTable_GetLastId(tEraGlonassMsdTable *env); uint32_t EraGlonassMsdTable_GetNoSendDataCount(tEraGlonassMsdTable *env); tEraGlonassMsdTableItem *EraGlonassMsdTable_GetNoSendData(tEraGlonassMsdTable *env, tEraGlonassMsdTableItem *prev); tEraGlonassMsdTableItem *EraGlonassMsdTable_GetLastMsd(tEraGlonassMsdTable *env, tEraGlonassMsdTableItem *prev); tEraGlonassMsdTableItem *EraGlonassMsdTable_GetNextUnsent(tEraGlonassMsdTable *env, tEraGlonassMsdTableItem *prev); tEraGlonassMsdTableItem *EraGlonassMsdTable_GetNextFree(tEraGlonassMsdTable *env); uint32_t EraGlonassMsdTable_GetCount(tEraGlonassMsdTable *env); tEraGlonassMsdTableItem *EraGlonassMsdTable_GetById(tEraGlonassMsdTable *env, uint16_t id); #endif //UVEOS_ON_NATION_ERAGLONASSMSDTABLE_H