#ifndef _CONFIG_H_ #define _CONFIG_H_ #include #include #include #define CONFIG_MAGIC 0xdead0009 #define DEVICE_MAGIC 0xaffe0000 typedef struct __attribute__((__packed__)) s_configBlock { uint32_t configMagic; char deviceName[16]; uint8_t macAddress[6]; int32_t frontendThreshold; char brokerName[64]; char watchdogTopic[64]; char startupTopic[64]; char statusTopic[64]; char mbusDataTopic[64]; char syslogServerName[64]; uint8_t numOfDeviceBlocks; uint8_t filler[1]; } t_configBlock; #define MBUSDEVICE_NAMELENGTH 16 #define MBUSDEVICE_NUM_OF_CONSIDEREDFIELDS 4 typedef struct __attribute__((__packed__)) s_deviceBlock { uint32_t deviceMagic; char deviceName[MBUSDEVICE_NAMELENGTH]; uint8_t address; int8_t consideredField[MBUSDEVICE_NUM_OF_CONSIDEREDFIELDS]; int32_t period; uint8_t filler[3]; } t_deviceBlock; void configInit(); t_configBlock* getConfig(); #endif /* _CONFIG_H_ */