/** * @file globals.h * * @brief Header file for global variables and enums in the ChainLube application. * * This file contains declarations for global variables and enums used in the ChainLube application. * It includes enums for system status and EEPROM-related requests, as well as a struct for global variables. * The file also defines a struct for constants and initializes it with firmware and required flash version information. * * @author Marcel Peterkau * @date 09.01.2024 */ #ifndef _GLOBALS_H_ #define _GLOBALS_H_ #include #include "config.h" #include "common.h" typedef struct Globals_s { tSystem_Status systemStatus = sysStat_Startup; /**< Current system status */ tSystem_Status resumeStatus = sysStat_Startup; /**< Status to resume after rain mode */ char systemStatustxt[16] = ""; /**< Text representation of system status */ uint16_t purgePulses = 0; /**< Number of purge pulses */ EERequest_t requestEEAction = EE_IDLE;; /**< EEPROM-related request */ char DeviceName[33]; /**< Device name */ char FlashVersion[10]; /**< Flash version */ uint16_t eePersistanceAdress; /**< EEPROM persistence address */ uint8_t TankPercentage; /**< Tank percentage */ bool hasDTC; /**< Flag indicating the presence of Diagnostic Trouble Codes (DTC) */ bool measurementActive; /**< Flag indicating active measurement */ uint32_t measuredPulses; /**< Number of measured pulses */ } Globals_t; extern Globals_t globals; /**< Global variable struct */ typedef struct Constants_s { uint8_t FW_Version_major; /**< Firmware version major number */ uint8_t FW_Version_minor; /**< Firmware version minor number */ uint8_t Required_Flash_Version_major; /**< Required flash version major number */ uint8_t Required_Flash_Version_minor; /**< Required flash version minor number */ char GitHash[11]; /**< Git hash string */ } Constants_t; const Constants_t constants PROGMEM = { 1,4, // Firmware_Version 1,4, // Required Flash Version GIT_REV // Git-Hash-String }; /** * @brief Initializes global variables. */ void initGlobals(); #endif // _GLOBALS_H_