|  |  | @ -21,7 +21,7 @@ | 
			
		
	
		
			
				
					|  |  |  | //-------------------------------------
 | 
			
		
	
		
			
				
					|  |  |  | #define VERSION_MAJOR       0 | 
			
		
	
		
			
				
					|  |  |  | #define VERSION_MINOR       5 | 
			
		
	
		
			
				
					|  |  |  | #define VERSION_PATCH       4 | 
			
		
	
		
			
				
					|  |  |  | #define VERSION_PATCH       5 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | //-------------------------------------
 | 
			
		
	
	
		
			
				
					|  |  | @ -30,40 +30,38 @@ typedef struct { | 
			
		
	
		
			
				
					|  |  |  |     uint8_t packet[MAX_RF_PAYLOAD_SIZE]; | 
			
		
	
		
			
				
					|  |  |  | } packet_t; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | typedef enum | 
			
		
	
		
			
				
					|  |  |  | { | 
			
		
	
		
			
				
					|  |  |  |     InverterDevInform_Simple = 0, // 0x00
 | 
			
		
	
		
			
				
					|  |  |  |     InverterDevInform_All = 1, // 0x01
 | 
			
		
	
		
			
				
					|  |  |  |     //GridOnProFilePara = 2, // 0x02
 | 
			
		
	
		
			
				
					|  |  |  |     //HardWareConfig = 3, // 0x03
 | 
			
		
	
		
			
				
					|  |  |  |     //SimpleCalibrationPara = 4, // 0x04
 | 
			
		
	
		
			
				
					|  |  |  |     //SystemConfigPara = 5, // 0x05
 | 
			
		
	
		
			
				
					|  |  |  |     RealTimeRunData_Debug = 11, // 0x0b
 | 
			
		
	
		
			
				
					|  |  |  | typedef enum { | 
			
		
	
		
			
				
					|  |  |  |     InverterDevInform_Simple = 0,   // 0x00
 | 
			
		
	
		
			
				
					|  |  |  |     InverterDevInform_All = 1,      // 0x01
 | 
			
		
	
		
			
				
					|  |  |  |     //GridOnProFilePara = 2,        // 0x02
 | 
			
		
	
		
			
				
					|  |  |  |     //HardWareConfig = 3,           // 0x03
 | 
			
		
	
		
			
				
					|  |  |  |     //SimpleCalibrationPara = 4,    // 0x04
 | 
			
		
	
		
			
				
					|  |  |  |     //SystemConfigPara = 5,         // 0x05
 | 
			
		
	
		
			
				
					|  |  |  |     RealTimeRunData_Debug = 11,     // 0x0b
 | 
			
		
	
		
			
				
					|  |  |  |     //RealTimeRunData_Reality = 12, // 0x0c
 | 
			
		
	
		
			
				
					|  |  |  |     //RealTimeRunData_A_Phase = 13, // 0x0d
 | 
			
		
	
		
			
				
					|  |  |  |     //RealTimeRunData_B_Phase = 14, // 0x0e
 | 
			
		
	
		
			
				
					|  |  |  |     //RealTimeRunData_C_Phase = 15, // 0x0f
 | 
			
		
	
		
			
				
					|  |  |  |     AlarmData = 17, // 0x11    //Alarm data - all unsent alarms
 | 
			
		
	
		
			
				
					|  |  |  |     AlarmUpdate = 18, // 0x12    //Alarm data - all pending alarms
 | 
			
		
	
		
			
				
					|  |  |  |     //RecordData = 19, // 0x13
 | 
			
		
	
		
			
				
					|  |  |  |     //InternalData = 20, // 0x14
 | 
			
		
	
		
			
				
					|  |  |  |     GetLossRate = 21, // 0x15
 | 
			
		
	
		
			
				
					|  |  |  |     //GetSelfCheckState = 30, // 0x1e
 | 
			
		
	
		
			
				
					|  |  |  |     AlarmData = 17,                 // 0x11, Alarm data - all unsent alarms
 | 
			
		
	
		
			
				
					|  |  |  |     AlarmUpdate = 18,               // 0x12, Alarm data - all pending alarms
 | 
			
		
	
		
			
				
					|  |  |  |     //RecordData = 19,              // 0x13
 | 
			
		
	
		
			
				
					|  |  |  |     //InternalData = 20,            // 0x14
 | 
			
		
	
		
			
				
					|  |  |  |     GetLossRate = 21,               // 0x15
 | 
			
		
	
		
			
				
					|  |  |  |     //GetSelfCheckState = 30,       // 0x1e
 | 
			
		
	
		
			
				
					|  |  |  |     //InitDataState = 0xff
 | 
			
		
	
		
			
				
					|  |  |  | } InfoCmdType; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | typedef enum | 
			
		
	
		
			
				
					|  |  |  | { | 
			
		
	
		
			
				
					|  |  |  |     TurnOn = 0, // 0x00
 | 
			
		
	
		
			
				
					|  |  |  |     TurnOff = 1, // 0x01
 | 
			
		
	
		
			
				
					|  |  |  |     Restart = 2, // 0x02
 | 
			
		
	
		
			
				
					|  |  |  |     Lock = 3, // 0x03
 | 
			
		
	
		
			
				
					|  |  |  |     Unlock = 4, // 0x04
 | 
			
		
	
		
			
				
					|  |  |  |     ActivePowerContr = 11, // 0x0b
 | 
			
		
	
		
			
				
					|  |  |  |     ReactivePowerContr = 12, // 0x0c
 | 
			
		
	
		
			
				
					|  |  |  |     PFSet = 13, // 0x0d
 | 
			
		
	
		
			
				
					|  |  |  | typedef enum { | 
			
		
	
		
			
				
					|  |  |  |     TurnOn = 0,                   // 0x00
 | 
			
		
	
		
			
				
					|  |  |  |     TurnOff = 1,                  // 0x01
 | 
			
		
	
		
			
				
					|  |  |  |     Restart = 2,                  // 0x02
 | 
			
		
	
		
			
				
					|  |  |  |     Lock = 3,                     // 0x03
 | 
			
		
	
		
			
				
					|  |  |  |     Unlock = 4,                   // 0x04
 | 
			
		
	
		
			
				
					|  |  |  |     ActivePowerContr = 11,        // 0x0b
 | 
			
		
	
		
			
				
					|  |  |  |     ReactivePowerContr = 12,      // 0x0c
 | 
			
		
	
		
			
				
					|  |  |  |     PFSet = 13,                   // 0x0d
 | 
			
		
	
		
			
				
					|  |  |  |     CleanState_LockAndAlarm = 20, // 0x14
 | 
			
		
	
		
			
				
					|  |  |  |     SelfInspection = 40, // 0x28 // self-inspection of grid-connected protection files
 | 
			
		
	
		
			
				
					|  |  |  |     SelfInspection = 40,          // 0x28, self-inspection of grid-connected protection files
 | 
			
		
	
		
			
				
					|  |  |  |     Init = 0xff | 
			
		
	
		
			
				
					|  |  |  | } DevControlCmdType; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  | @ -79,76 +77,76 @@ typedef enum | 
			
		
	
		
			
				
					|  |  |  | //-------------------------------------
 | 
			
		
	
		
			
				
					|  |  |  | // EEPROM
 | 
			
		
	
		
			
				
					|  |  |  | //-------------------------------------
 | 
			
		
	
		
			
				
					|  |  |  | #define SSID_LEN            32 | 
			
		
	
		
			
				
					|  |  |  | #define PWD_LEN             64 | 
			
		
	
		
			
				
					|  |  |  | #define DEVNAME_LEN         16 | 
			
		
	
		
			
				
					|  |  |  | #define CRC_LEN             2 // uint16_t
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | #define INV_ADDR_LEN        MAX_NUM_INVERTERS * 8                   // uint64_t
 | 
			
		
	
		
			
				
					|  |  |  | #define INV_NAME_LEN        MAX_NUM_INVERTERS * MAX_NAME_LENGTH     // char[]
 | 
			
		
	
		
			
				
					|  |  |  | #define INV_CH_CH_PWR_LEN   MAX_NUM_INVERTERS * 2 * 4               // uint16_t (4 channels)
 | 
			
		
	
		
			
				
					|  |  |  | #define INV_CH_CH_NAME_LEN  MAX_NUM_INVERTERS * MAX_NAME_LENGTH * 4 // (4 channels)
 | 
			
		
	
		
			
				
					|  |  |  | #define INV_INTERVAL_LEN    2                                       // uint16_t
 | 
			
		
	
		
			
				
					|  |  |  | #define INV_MAX_RTRY_LEN    1                                       // uint8_t
 | 
			
		
	
		
			
				
					|  |  |  | #define INV_PWR_LIM_LEN     MAX_NUM_INVERTERS * 2                   // uint16_t 
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | #define PINOUT_LEN          3 // 3 pins: CS, CE, IRQ
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | #define RF24_AMP_PWR_LEN    1 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | #define NTP_ADDR_LEN        32 // DNS Name
 | 
			
		
	
		
			
				
					|  |  |  | #define NTP_PORT_LEN        2 // uint16_t
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | #define MQTT_ADDR_LEN         32 // DNS Name
 | 
			
		
	
		
			
				
					|  |  |  | #define MQTT_USER_LEN         16 | 
			
		
	
		
			
				
					|  |  |  | #define MQTT_PWD_LEN          32 | 
			
		
	
		
			
				
					|  |  |  | #define MQTT_TOPIC_LEN        32 | 
			
		
	
		
			
				
					|  |  |  | #define MQTT_INTERVAL_LEN     2 // uint16_t
 | 
			
		
	
		
			
				
					|  |  |  | #define MQTT_PORT_LEN         2 // uint16_t
 | 
			
		
	
		
			
				
					|  |  |  | #define MQTT_DISCOVERY_PREFIX "homeassistant" | 
			
		
	
		
			
				
					|  |  |  | #define MQTT_MAX_PACKET_SIZE  384 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | #define SER_ENABLE_LEN      1 // uint8_t
 | 
			
		
	
		
			
				
					|  |  |  | #define SER_DEBUG_LEN       1 // uint8_t
 | 
			
		
	
		
			
				
					|  |  |  | #define SER_INTERVAL_LEN    2 // uint16_t
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_START          0 | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_SSID           ADDR_START | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_PWD            ADDR_SSID          + SSID_LEN | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_DEVNAME        ADDR_PWD           + PWD_LEN | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_WIFI_CRC       ADDR_DEVNAME       + DEVNAME_LEN | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_START_SETTINGS ADDR_WIFI_CRC      + CRC_LEN | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_PINOUT         ADDR_START_SETTINGS | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_RF24_AMP_PWR   ADDR_PINOUT        + PINOUT_LEN | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_INV_ADDR       ADDR_RF24_AMP_PWR  + RF24_AMP_PWR_LEN | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_INV_NAME       ADDR_INV_ADDR      + INV_ADDR_LEN | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_INV_CH_PWR     ADDR_INV_NAME      + INV_NAME_LEN | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_INV_CH_NAME    ADDR_INV_CH_PWR    + INV_CH_CH_PWR_LEN | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_INV_INTERVAL   ADDR_INV_CH_NAME   + INV_CH_CH_NAME_LEN | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_INV_MAX_RTRY   ADDR_INV_INTERVAL  + INV_INTERVAL_LEN | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_INV_PWR_LIM    ADDR_INV_MAX_RTRY  + INV_MAX_RTRY_LEN | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_NTP_ADDR       ADDR_INV_PWR_LIM   + INV_PWR_LIM_LEN //Bugfix #125
 | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_NTP_PORT       ADDR_NTP_ADDR      + NTP_ADDR_LEN | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_MQTT_ADDR      ADDR_NTP_PORT      + NTP_PORT_LEN | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_MQTT_USER      ADDR_MQTT_ADDR     + MQTT_ADDR_LEN | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_MQTT_PWD       ADDR_MQTT_USER     + MQTT_USER_LEN | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_MQTT_TOPIC     ADDR_MQTT_PWD      + MQTT_PWD_LEN | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_MQTT_INTERVAL  ADDR_MQTT_TOPIC    + MQTT_TOPIC_LEN | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_MQTT_PORT      ADDR_MQTT_INTERVAL + MQTT_INTERVAL_LEN | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_SER_ENABLE     ADDR_MQTT_PORT     + MQTT_PORT_LEN | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_SER_DEBUG      ADDR_SER_ENABLE    + SER_ENABLE_LEN | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_SER_INTERVAL   ADDR_SER_DEBUG     + SER_DEBUG_LEN | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_NEXT           ADDR_SER_INTERVAL  + SER_INTERVAL_LEN | 
			
		
	
		
			
				
					|  |  |  | #define SSID_LEN                32 | 
			
		
	
		
			
				
					|  |  |  | #define PWD_LEN                 64 | 
			
		
	
		
			
				
					|  |  |  | #define DEVNAME_LEN             16 | 
			
		
	
		
			
				
					|  |  |  | #define CRC_LEN                 2 // uint16_t
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | #define INV_ADDR_LEN            MAX_NUM_INVERTERS * 8                   // uint64_t
 | 
			
		
	
		
			
				
					|  |  |  | #define INV_NAME_LEN            MAX_NUM_INVERTERS * MAX_NAME_LENGTH     // char[]
 | 
			
		
	
		
			
				
					|  |  |  | #define INV_CH_CH_PWR_LEN       MAX_NUM_INVERTERS * 2 * 4               // uint16_t (4 channels)
 | 
			
		
	
		
			
				
					|  |  |  | #define INV_CH_CH_NAME_LEN      MAX_NUM_INVERTERS * MAX_NAME_LENGTH * 4 // (4 channels)
 | 
			
		
	
		
			
				
					|  |  |  | #define INV_INTERVAL_LEN        2                                       // uint16_t
 | 
			
		
	
		
			
				
					|  |  |  | #define INV_MAX_RTRY_LEN        1                                       // uint8_t
 | 
			
		
	
		
			
				
					|  |  |  | #define INV_PWR_LIM_LEN         MAX_NUM_INVERTERS * 2                   // uint16_t
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | #define PINOUT_LEN              3 // 3 pins: CS, CE, IRQ
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | #define RF24_AMP_PWR_LEN        1 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | #define NTP_ADDR_LEN            32 // DNS Name
 | 
			
		
	
		
			
				
					|  |  |  | #define NTP_PORT_LEN            2 // uint16_t
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | #define MQTT_ADDR_LEN           32 // DNS Name
 | 
			
		
	
		
			
				
					|  |  |  | #define MQTT_USER_LEN           16 | 
			
		
	
		
			
				
					|  |  |  | #define MQTT_PWD_LEN            32 | 
			
		
	
		
			
				
					|  |  |  | #define MQTT_TOPIC_LEN          32 | 
			
		
	
		
			
				
					|  |  |  | #define MQTT_INTERVAL_LEN       2 // uint16_t
 | 
			
		
	
		
			
				
					|  |  |  | #define MQTT_PORT_LEN           2 // uint16_t
 | 
			
		
	
		
			
				
					|  |  |  | #define MQTT_DISCOVERY_PREFIX   "homeassistant" | 
			
		
	
		
			
				
					|  |  |  | #define MQTT_MAX_PACKET_SIZE    384 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | #define SER_ENABLE_LEN          1 // uint8_t
 | 
			
		
	
		
			
				
					|  |  |  | #define SER_DEBUG_LEN           1 // uint8_t
 | 
			
		
	
		
			
				
					|  |  |  | #define SER_INTERVAL_LEN        2 // uint16_t
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_START              0 | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_SSID               ADDR_START | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_PWD                ADDR_SSID          + SSID_LEN | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_DEVNAME            ADDR_PWD           + PWD_LEN | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_WIFI_CRC           ADDR_DEVNAME       + DEVNAME_LEN | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_START_SETTINGS     ADDR_WIFI_CRC      + CRC_LEN | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_PINOUT             ADDR_START_SETTINGS | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_RF24_AMP_PWR       ADDR_PINOUT        + PINOUT_LEN | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_INV_ADDR           ADDR_RF24_AMP_PWR  + RF24_AMP_PWR_LEN | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_INV_NAME           ADDR_INV_ADDR      + INV_ADDR_LEN | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_INV_CH_PWR         ADDR_INV_NAME      + INV_NAME_LEN | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_INV_CH_NAME        ADDR_INV_CH_PWR    + INV_CH_CH_PWR_LEN | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_INV_INTERVAL       ADDR_INV_CH_NAME   + INV_CH_CH_NAME_LEN | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_INV_MAX_RTRY       ADDR_INV_INTERVAL  + INV_INTERVAL_LEN | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_INV_PWR_LIM        ADDR_INV_MAX_RTRY  + INV_MAX_RTRY_LEN | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_NTP_ADDR           ADDR_INV_PWR_LIM   + INV_PWR_LIM_LEN //Bugfix #125
 | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_NTP_PORT           ADDR_NTP_ADDR      + NTP_ADDR_LEN | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_MQTT_ADDR          ADDR_NTP_PORT      + NTP_PORT_LEN | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_MQTT_USER          ADDR_MQTT_ADDR     + MQTT_ADDR_LEN | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_MQTT_PWD           ADDR_MQTT_USER     + MQTT_USER_LEN | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_MQTT_TOPIC         ADDR_MQTT_PWD      + MQTT_PWD_LEN | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_MQTT_INTERVAL      ADDR_MQTT_TOPIC    + MQTT_TOPIC_LEN | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_MQTT_PORT          ADDR_MQTT_INTERVAL + MQTT_INTERVAL_LEN | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_SER_ENABLE         ADDR_MQTT_PORT     + MQTT_PORT_LEN | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_SER_DEBUG          ADDR_SER_ENABLE    + SER_ENABLE_LEN | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_SER_INTERVAL       ADDR_SER_DEBUG     + SER_DEBUG_LEN | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_NEXT               ADDR_SER_INTERVAL  + SER_INTERVAL_LEN | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | // #define ADDR_SETTINGS_CRC   950
 | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_SETTINGS_CRC   ADDR_NEXT + 2 | 
			
		
	
		
			
				
					|  |  |  | #define ADDR_SETTINGS_CRC       ADDR_NEXT + 2 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | #if(ADDR_SETTINGS_CRC <= ADDR_NEXT) | 
			
		
	
		
			
				
					|  |  |  | #pragma error "address overlap! (ADDR_SETTINGS_CRC="+ ADDR_SETTINGS_CRC +", ADDR_NEXT="+ ADDR_NEXT +")"  | 
			
		
	
	
		
			
				
					|  |  | 
 |