火锅下位机例程:通信协议(项目编号:SF006-F5-010)
发布: 2009-4-14 09:13 | 作者: aleyn | 来源: StmFans思蜕盟 OPELC 自由电子联盟
火锅下位机的通信协议,是架构於GAP(General Application Protocol)协议之上。
GAP属於应用协议,跟硬件无关,所以,GAP应用在串口上也行,USB上也行,TCP/IP上也行,等等。
GAP需要定义协议头,所以,就有了转义的定义
//协议定义和转义
#define PROTOCOL_BEGIN 0x1A //命令行开始
#define PROTOCOL_END 0x1D //命令行结束
#define PROTOCOL_RS 0x1E //帧的继续包
#define PROTOCOL_TEXT 0x1C //纯文本包
#define PROTOCOL_ESC 0x1B //帧的转义定义
#define PROTOCOL_ESC_BEGIN 0x11 //把0x1A 转为 0x11
#define PROTOCOL_ESC_TEXT 0x13 //把0x1C 转为 0x13
#define PROTOCOL_ESC_END 0x14 //把0x1D 转为 0x14
#define PROTOCOL_ESC_RS 0x15 //把0x1E 转为 0x15
#define PROTOCOL_ESC_DOL 0x0B //把0x1B 转为 0x0B
GAP有几个常用的主类别
//主类别
#define MCT_DEVICE_DETECT 0xF0 //设备搜索
#define MCT_COMMAND 0xE1 //命令
#define MCT_GET_CONFIG 0xD2 //取得参数或配置
#define MCT_SET_CONFIG 0xC3 //设置参数或配置
#define MCT_RESPONDER 0xA5 //接收端应答
#define MCT_SELF_INITIATION 0x5A //设备自检
#define MCT_MANUAL_TEST 0x4B //手动测试
#define MCT_STATUS 0x2D //状态
#define MCT_RAISE_ERROR 0x1E //设备发生故障
GAP协议的数据结构
struct GAP_Protocol_Struct{
GAP属於应用协议,跟硬件无关,所以,GAP应用在串口上也行,USB上也行,TCP/IP上也行,等等。
GAP需要定义协议头,所以,就有了转义的定义
//协议定义和转义
#define PROTOCOL_BEGIN 0x1A //命令行开始
#define PROTOCOL_END 0x1D //命令行结束
#define PROTOCOL_RS 0x1E //帧的继续包
#define PROTOCOL_TEXT 0x1C //纯文本包
#define PROTOCOL_ESC 0x1B //帧的转义定义
#define PROTOCOL_ESC_BEGIN 0x11 //把0x1A 转为 0x11
#define PROTOCOL_ESC_TEXT 0x13 //把0x1C 转为 0x13
#define PROTOCOL_ESC_END 0x14 //把0x1D 转为 0x14
#define PROTOCOL_ESC_RS 0x15 //把0x1E 转为 0x15
#define PROTOCOL_ESC_DOL 0x0B //把0x1B 转为 0x0B
GAP有几个常用的主类别
//主类别
#define MCT_DEVICE_DETECT 0xF0 //设备搜索
#define MCT_COMMAND 0xE1 //命令
#define MCT_GET_CONFIG 0xD2 //取得参数或配置
#define MCT_SET_CONFIG 0xC3 //设置参数或配置
#define MCT_RESPONDER 0xA5 //接收端应答
#define MCT_SELF_INITIATION 0x5A //设备自检
#define MCT_MANUAL_TEST 0x4B //手动测试
#define MCT_STATUS 0x2D //状态
#define MCT_RAISE_ERROR 0x1E //设备发生故障
GAP协议的数据结构
struct GAP_Protocol_Struct{

是村长自己定义的吗?