158 lines
3.2 KiB
C
158 lines
3.2 KiB
C
/**********************************************************************
|
|
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 definitionsazsdf
|
|
|
|
#define MAX_MESSAGE_SIZE 0xFFFF
|
|
|
|
#define FRAME_HEADER 0x8A
|
|
#define DATA_START 11
|
|
#define ACK 0xA3;
|
|
#define NAK 0x90;
|
|
#define BROADCAST_VALUE 0xFF
|
|
|
|
enum eFrameIndex
|
|
{
|
|
FRAME_HEADER_INDEX,
|
|
FRAME_SENDER_ID_INDEX,
|
|
FRAME_SENDER_ADDRESS_INDEX,
|
|
FRAME_DEST_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
|
|
};
|
|
|
|
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,
|
|
ID_RECEIVER_AMP,
|
|
ID_SMS_CLIENT,
|
|
ID_ETHERNET_VIRTUAL,
|
|
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
|
|
};
|
|
|
|
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_MAX_MSG
|
|
|
|
};
|
|
|
|
enum DEADBOLT_CMDS
|
|
{
|
|
DEADBOLT_DEVICE_ACK = 1,
|
|
DEADBOLT_DEVICE_STATUS_REQUEST,
|
|
DEADBOLT_DEVICE_STATUS_RESPONSE,
|
|
|
|
MAX_DEADBOLT_DEVICE_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
|
|
|
|
};
|
|
|
|
#endif
|