|
- /**********************************************************************
- Project: Automatic cat feeder
- Date: march 19 2006
- Author: Jean-François Martel
- Target: PIC 18F252
- Compiler: Microchip mcc18
- Filename: Protocol.h
-
- File description: Communication protocol implementation.
-
-
- jean-francois.martel@polymtl.ca
- **********************************************************************/
-
- #ifndef PROTOCOLDEFS_H
- #define PROTOCOLDEFS_H
-
- //Protocol buffer specific definitions
-
- #define MAX_BOOTLOADER_MESSAGE_SIZE 25
- #define MAX_MESSAGE_SIZE 300
- #define BOOTLOADER_MAX_MESSAGE_SIZE 50
-
-
- #define FRAME_HEADER 0x8A
- #define BOOTLOADER_HEADER 0xA8
- #define DATA_START 11
- #define PROTOCOL_ACK 0xA3
- #define PROTOCOL_NAK 0x90
- #define BROADCAST_VALUE 0xFF
-
- #define MASTER_RECONNECTION_TIMEOUT 25000 //Try to reconnect every 5s
- #define MASTER_RESPONSE_TIMEOUT 30000 //Wait max 30s for the master to respond...
-
- enum eFrameIndex
- {
- FRAME_HEADER_INDEX = 0,
- FRAME_SENDER_ADDRESS_INDEX,
- FRAME_SENDER_DEVICE_ID_INDEX,
- FRAME_DEST_DEVICE_ID_INDEX,
- FRAME_DEST_ADDRESS_INDEX,
- FRAME_FLAGS_INDEX,
- FRAME_COMMAND_INDEX,
- FRAME_SIZE1_INDEX,
- FRAME_SIZE2_INDEX,
- FRAME_SIZE3_INDEX,
- FRAME_SIZE4_INDEX,
- FRAME_DATA_INDEX,
-
- FRAME_INDEX_NBR
- };
-
- enum DEVICES_IDS
- {
- ID_MASTER, //Master Controller
- ID_CONSOLE, //LCD Console
- ID_PC, //PC
- ID_AV_MUX, //Audio Video Multiplexer
- ID_IR_REMOTE, //Infra red transmitter
- ID_DEADBOLT_DEVICE,
- ID_AV_RECEIVER,
- ID_SMS_CLIENT,
- ID_ETHERNET_VIRTUAL,
- ID_SPRINKLER_DEVICE,
- ID_SPRINKLER_INTERFACE,
- ID_DEADBOLT_INTERFACE,
- ID_AVRECEIVER_INTERFACE,
- ID_CHALET_INTERFACE,
- ID_CHALET_DEVICE,
- ID_ISPINDEL_INTERFACE,
- ID_LORA_INTERFACE_DEVICE,
- ID_LORA_INTERFACE_INTERFACE,
- ID_AVRECEIVER_CONSOLE_INTERFACE,
- ID_AVRECEIVER_CONSOLE_DEVICE,
- ID_NB_DEVICE_ID
-
- };
-
- // Commands definitions
-
- enum MASTER_CMD
- {
- RX_MASTER_GET_STATUS,
- TX_MASTER_STATUS,
- TX_MASTER_ACK,
- RX_MASTER_SET_NET_INFO,
- RX_MASTER_GET_NET_INFO,
- TX_MASTER_NET_INFO,
- RX_MASTER_SEND_DEVICE_CMD,
- TX_MASTER_SEND_DEVICE_CMD_ACK,
- RX_MASTER_SET_WEATHER_INFO,
- TX_MASTER_SET_WEATHER_INFO_ACK,
- RX_MASTER_SET_MAIL_MSG,
- TX_MASTER_SET_MAIL_MSG_ACK,
- RX_MASTER_NEW_OUTLOOK_EMAILS,
- TX_MASTER_NEW_OUTLOOK_EMAILS_ACK,
- RX_MASTER_TODAYS_EVENTS,
- TX_MASTER_TODAYS_EVENTS_ACK
- };
-
-
- //CONSOLE
- enum CONSOLE_CMD
- {
- RX_CONSOLE_GET_STATUS,
- TX_CONSOLE_STATUS,
- TX_CONSOLE_ACK,
- RX_START_CALIBRATION,
- RX_GET_CONSOLE_EVENT_MSG,
- TX_CONSOLE_EVENT_MSG,
- RX_CONSOLE_SHOW_CALLER_ID,
- RX_SET_TIME,
- RX_SET_WEATHER,
- RX_SEND_NEW_MAIL_MSG,
- RX_SEND_NEW_MAIL_MSG_ACK,
- RX_NEW_OUTLOOK_EMAILS,
- TX_NEW_OUTLOOK_EMAILS_ACK,
- RX_TODAYS_EVENTS,
- TX_TODAYS_EVENTS_ACK,
- LAST_CONSOLE_CMD
- };
-
-
-
- enum IR_REMOTE_CMDS
- {
- TX_IR_REMOTE_ACK = 1,
- RX_GET_STATUS,
- TX_REMOTE_STATUS,
- RX_TRANSMIT_CMD,
- RX_LEARN_IR_CMD,
- TX_LEARN_IR_CMD_FINISHED,
- RX_GET_IR_DATA,
- TX_SEND_IR_DATA,
- RX_SET_IR_CMD,
- RX_SET_IR_DATA,
- RX_GET_IR_CMD,
- TX_SEND_IR_CMD,
- MAX_IR_REMOTE_CMD
- };
-
- //The SMS remote interface commands
- enum SMS_CLIENT_CMDS
- {
- SMS_CLIENT_DEVICE_ACK = 1,
- SMS_CLIENT_DEVICE_STATUS_REQUEST,
- SMS_CLIENT_DEVICE_STATUS_RESPONSE,
- SMS_CLIENT_DEVICE_DID_INFO_REQUEST,
- SMS_CLIENT_DEVICE_DID_INFO_RESPONSE,
- SMS_CLIENT_DEVICE_GET_ALL_MSG_REQUEST,
- SMS_CLIENT_DEVICE_GET_ALL_MSG_RESPONSE,
- SMS_CLIENT_DEVICE_NEW_MSG_NOTIFICATION,
- SMS_CLIENT_DEVICE_SEND_SMS_REQUEST,
- SMS_CLIENT_DEVICE_SEND_SMS_ACK,
- SMS_CLIENT_DEVICE_GET_CONTACTS_REQUEST,
- SMS_CLIENT_DEVICE_GET_CONTACTS_RESPONSE,//12
- SMS_CLIENT_DEVICE_CONTACTS_CHANGED_NOTIFICATION,
-
- SMS_CLIENT_DEVICE_MAX_MSG
-
- };
-
- //The actual deadbolt device commands
- enum DEADBOLT_CMDS
- {
- DEADBOLT_DEVICE_ACK = 1,
- DEADBOLT_DEVICE_STATUS_REQUEST,
- DEADBOLT_DEVICE_STATUS_RESPONSE,
- DEADBOLT_DEVICE_GET_LOCKED_STATE_REQUEST,
- DEADBOLT_DEVICE_LOCKED_STATE_RESPONSE,
- DEADBOLT_DEVICE_GOTO_LOCKED_REQUEST,
- DEADBOLT_DEVICE_GOTO_LOCKED_ACK,
- DEADBOLT_DEVICE_GOTO_UNLOCKED_REQUEST,
- DEADBOLT_DEVICE_GOTO_UNLOCKED_ACK,
- DEADBOLT_DEVICE_GET_PASSWORDS_REQUEST,
- DEADBOLT_DEVICE_GET_PASSWORDS_RESPONSE,
- DEADBOLT_DEVICE_SET_PASSWORDS_REQUEST,
- DEADBOLT_DEVICE_SET_PASSWORDS_ACK,
- DEADBOLT_DEVICE_LOCK_EVENT,
-
- MAX_DEADBOLT_DEVICE_CMD
- };
-
- //The actual sprinkler module device commands
- enum SPRINKLER_DEVICE_CMDS
- {
- SPRINKLER_DEVICE_ACK = 1,
- SPRINKLER_DEVICE_STATUS_REQUEST,
- SPRINKLER_DEVICE_STATUS_RESPONSE,
- SPRINKLER_DEVICE_SET_SPRINKLER_STATE_REQUEST,
- SPRINKLER_DEVICE_SET_SPRINKLER_STATE_ACK,
- SPRINKLER_DEVICE_GET_SPRINKLER_STATE_REQUEST,
- SPRINKLER_DEVICE_GET_SPRINKLER_STATE_RESPONSE,
- SPRINKLER_DEVICE_GET_WATER_FLOW_REQUEST,
- SPRINKLER_DEVICE_GET_WATER_FLOW_RESPONSE,
- SPRINKLER_DEVICE_GET_MOISTURE_REQUEST,
- SPRINKLER_DEVICE_GET_MOISTURE_RESPONSE,
- SPRINKLER_DEVICE_SET_PROGRAM_REQUEST,
- SPRINKLER_DEVICE_SET_PROGRAM_ACK,
- SPRINKLER_DEVICE_GET_PROGRAM_REQUEST,
- SPRINKLER_DEVICE_GET_PROGRAM_RESPONSE,
- SPRINKLER_DEVICE_SET_PARAMETERS_REQUEST,
- SPRINKLER_DEVICE_SET_PARAMETERS_ACK,
- SPRINKLER_DEVICE_GET_PARAMETERS_REQUEST,
- SPRINKLER_DEVICE_GET_PARAMETERS_RESPONSE,
-
-
- MAX_SPRINKLER_DEVICE_CMD
- };
-
- //The sprinkler interface commands
- enum SPRINKLER_INTERFACE_CMDS
- {
- SPRINKLER_INTERFACE_ACK = 1,
- SPRINKLER_INTERFACE_STATUS_REQUEST,
- SPRINKLER_INTERFACE_STATUS_RESPONSE,
- SPRINKLER_INTERFACE_GET_SPRINKLERS_REQUEST,
- SPRINKLER_INTERFACE_GET_SPRINKLERS_RESPONSE,
- SPRINKLER_INTERFACE_GET_SPRINKLER_DATA_REQUEST,
- SPRINKLER_INTERFACE_GET_SPRINKLER_DATA_RESPONSE,
- SPRINKLER_INTERFACE_SET_SPRINKLER_DATA_REQUEST,
- SPRINKLER_INTERFACE_SET_SPRINKLER_DATA_ACK,
- SPRINKLER_INTERFACE_GET_SPRINKLER_STATE_REQUEST,
- SPRINKLER_INTERFACE_GET_SPRINKLER_STATE_RESPONSE,
- SPRINKLER_INTERFACE_SET_SPRINKLER_STATE_REQUEST,
- SPRINKLER_INTERFACE_SET_SPRINKLER_STATE_ACK,
-
- MAX_SPRINKLER_INTERFACE_CMD
- };
-
-
- enum ETHERNET_NETWORK_VIRTUAL_CMDS
- {
- ETH_NETWK_DEVICE_INFO_REQUEST = 0xD0,
- ETH_NETWK_DEVICE_INFO_RESPONSE,
- ETH_NETWK_SET_DEVICE_INFO_ACK,
- ETH_NETWK_CONNECTION_REFUSED,
-
- MAX_ETHERNET_NETWORK_VIRTUAL_CMDS
-
- };
-
- enum AV_RECEIVER_INTERFACE_CMDS
- {
- AV_RECEIVER_INTERFACE_ACK = 1,
- AV_RECEIVER_INTERFACE_GENERAL_STATUS_REQUEST,
- AV_RECEIVER_INTERFACE_GENERAL_STATUS_RESPONSE,
- AV_RECEIVER_INTERFACE_SET_MAIN_POWER_REQUEST,
- AV_RECEIVER_INTERFACE_SET_MAIN_POWER_RESPONSE,
- AV_RECEIVER_INTERFACE_SET_ZONE2_REQUEST,
- AV_RECEIVER_INTERFACE_SET_ZONE2_RESPONSE,
- AV_RECEIVER_INTERFACE_SET_MAIN_ZONE_REQUEST,
- AV_RECEIVER_INTERFACE_SET_MAIN_ZONE_RESPONSE,
- AV_RECEIVER_INTERFACE_SET_SPEAKERS_REQUEST,
- AV_RECEIVER_INTERFACE_SET_SPEAKERS_RESPONSE,
- AV_RECEIVER_INTERFACE_SEND_DIRECT_CMD_REQUEST,
- AV_RECEIVER_INTERFACE_SEND_DIRECT_CMD_RESPONSE,
- AV_RECEIVER_INTERFACE_SELECT_SCENE_REQUEST,
- AV_RECEIVER_INTERFACE_SELECT_SCENE_RESPONSE,
- AV_RECEIVER_INTERFACE_SET_MAIN_VOLUME_REQUEST,
- AV_RECEIVER_INTERFACE_SET_MAIN_VOLUME_RESPONSE,
- AV_RECEIVER_INTERFACE_SET_ZONE2_VOLUME_REQUEST,
- AV_RECEIVER_INTERFACE_SET_ZONE2_VOLUME_RESPONSE,
- AV_RECEIVER_INTERFACE_SET_ZONE2_INPUT_REQUEST,
- AV_RECEIVER_INTERFACE_SET_ZONE2_INPUT_RESPONSE,
- AV_RECEIVER_INTERFACE_SET_SYNC_Z2_WITH_Z1_REQUEST,
- AV_RECEIVER_INTERFACE_SET_SYNC_Z2_WITH_Z1_RESPONSE,
- AV_RECEIVER_INTERFACE_INCREMENT_MAIN_VOLUME_REQUEST,
- AV_RECEIVER_INTERFACE_INCREMENT_MAIN_VOLUME_RESPONSE,
- AV_RECEIVER_INTERFACE_INCREMENT_Z2_VOLUME_REQUEST,
- AV_RECEIVER_INTERFACE_INCREMENT_Z2_VOLUME_RESPONSE,
-
-
- MAX_AV_RECEIVER_INTERFACE_CMD
- };
-
- enum CHALET_INTERFACE_CMDS
- {
- CHALET_INTERFACE_ACK = 1,
- CHALET_INTERFACE_GENERAL_STATUS_REQUEST,
- CHALET_INTERFACE_GENERAL_STATUS_RESPONSE,
- CHALET_INTERFACE_AC_POWER_STATE_STATUS_REQUEST,
- CHALET_INTERFACE_AC_POWER_STATE_STATUS_RESPONSE,
- CHALET_INTERFACE_AC_POWER_SET_STATE_REQUEST,
- CHALET_INTERFACE_AC_POWER_SET_STATE_RESPONSE,
- CHALET_INTERFACE_BATTERY_VOLTAGE_REQUEST,
- CHALET_INTERFACE_BATTERY_VOLTAGE_RESPONSE,
-
- MAX_CHALET_INTERFACE_CMD
- };
-
- enum CHALET_CMDS
- {
- CHALET_ACK = 1,
- CHALET_GENERAL_STATUS_REQUEST,
- CHALET_GENERAL_STATUS_RESPONSE,
- CHALET_AC_POWER_STATE_STATUS_REQUEST,
- CHALET_AC_POWER_STATE_STATUS_RESPONSE,
- CHALET_AC_POWER_SET_STATE_REQUEST,
- CHALET_AC_POWER_SET_STATE_RESPONSE,
- CHALET_BATTERY_VOLTAGE_REQUEST,
- CHALET_BATTERY_VOLTAGE_RESPONSE,
- CHALET_BATTERY_CURRENT_REQUEST,
- CHALET_BATTERY_CURRENT_RESPONSE,
- CHALET_WIFI_STATUS_REQUEST,
- CHALET_WIFI_STATUS_RESPONSE,
- CHALET_WIFI_SET_STATE_REQUEST,
- CHALET_WIFI_SET_STATE_RESPONSE,
- CHALET_DO_HARAKIRI_REQUEST,
- CHALET_DO_HARAKIRI_CONFIRMATION,
- CHALET_REBOOT_CPU_REQUEST,
- CHALET_REBOOT_CPU_RESPONSE,
- CHALET_GET_STORED_WIFI_SETTINGS_REQUEST,
- CHALET_GET_STORED_WIFI_SETTINGS_RESPONSE,
- CHALET_SET_STORED_WIFI_SETTINGS_REQUEST,
- CHALET_SET_STORED_WIFI_SETTINGS_RESPONSE,
- CHALET_GET_FIRMWARE_VERSION_REQUEST,
- CHALET_GET_FIRMWARE_VERSION_RESPONSE,
- CHALET_CLEAR_COMMS_STATISTICS_REQUEST,
- CHALET_CLEAR_COMMS_STATISTICS_RESPONSE,
- CHALET_REGISTER_FRIENDLY_DEVICE_REQUEST,
- CHALET_REGISTER_FRIENDLY_DEVICE_RESPONSE,
- CHALET_FWD_DEVICE_MESSAGE_REQUEST,
- CHALET_FWD_DEVICE_MESSAGE_RESPONSE,
-
-
- MAX_CHALET_CMD
- };
-
- enum BOOTLOADER_CMDS
- {
- BOOTLOADER_ACK = 1,
- BOOTLOADER_HEARTBEAT_REQUEST,
- BOOTLOADER_HEARTBEAT_RESPONSE,
- BOOTLOADER_ERASE_BOOTLOADER_FLASH_REQUEST,
- BOOTLOADER_ERASE_BOOTLOADER_FLASH_RESPONSE,
- BOOTLOADER_ERASE_BOOTLOADER_FLASH_RESULT_RESPONSE,
- BOOTLOADER_INIT_UPLOAD_REQUEST,
- BOOTLOADER_INIT_UPLOAD_RESPONSE,
- BOOTLOADER_GET_STATE_REQUEST,
- BOOTLOADER_GET_STATE_RESPONSE,
- BOOTLOADER_READY_FOR_DATA_RESPONSE,
- BOOTLOADER_SEND_DATA_CHUNK_REQUEST,
- BOOTLOADER_SEND_DATA_CHUNK_RESPONSE,
- BOOTLOADER_UPLOAD_FINISHED_REQUEST,
- BOOTLOADER_UPLOAD_FINISHED_RESPONSE,
- BOOTLOADER_EXECUTE_UPGRAGE_REQUEST,
- BOOTLOADER_EXECUTE_UPGRADE_RESPONSE,
- BOOTLOADER_ABORT_OPERATION_REQUEST,
- BOOTLOADER_ABORT_OPERATION_RESPONSE,
- BOOTLOADER_SEND_FLASH_DATA_REQUEST,
- BOOTLOADER_SEND_FLASH_DATA_RESPONSE,
- BOOTLOADER_SEND_FLASH_DATA_CHUNK,
- BOOTLOADER_SEND_FLASH_DATA_CHUNK_RESPONSE,
- BOOTLOADER_CHECK_FLASH_FIRMW_INTEGRITY_REQUEST,
- BOOTLOADER_CHECK_FLASH_FIRMW_INTEGRITY_RESPONSE,
- BOOTLOADER_GET_STORED_FIRMWARE_INFO_REQUEST,
- BOOTLOADER_GET_STORED_FIRMWARE_INFO_RESPONSE,
-
- MAX_BOOTLOADER_CMD
- };
- #endif
|