#ifndef COMMONS_H #define COMMONS_H // Config #define MY_ID 0x00 #define HAS_LED 1 // Set to 0 if unsupported #define HAS_MOISTURE 1 // Set to 0 if unsupported #define HAS_LDR 1 // Set to 0 if unsupported #define MASTER_ID 0xF0 #define MODEL ((HAS_LED << 2) | (HAS_MOISTURE << 1) | HAS_LDR) #define DELAY_TO_REPLY 5 // Proto #define START_DEL '[' #define END_DEL ']' // General indexes #define ID_INDEX 1 #define CMD_INDEX (ID_INDEX + 1) #define PAYLOAD_INDEX (CMD_INDEX + CMD_NAME_LEN) // MODEL #define GET_MODEL_CMD_ID 0 #define MODEL_CMD_ID 1 #define MODEL_INDEX 3 // GET #define GET_CMD_ID 2 // SET #define SET_CMD_ID 3 #define LED1_INDEX 3 #define LED2_INDEX 5 // DATA #define DATA_CMD_ID 4 #define MOISTURE_INDEX 3 #define LIGHT_INDEX 5 // ERROR #define ERROR_CMD_ID 5 #define ERR_INDEX 3 #define RET_SUCCESS(ret) (ret <= 1) #define RET_FAILURE(ret) (ret > 1) typedef enum errors { SUCCESS = 0, NO_RX, UNSUPPORTED_CMD, TX_DONE_ERR, TX_READY_ERR, } errors_t; #endif /* COMMONS_H */