火锅下位机例程:通信协议(项目编号: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{
binglin (2009-4-14 13:40:17)
学习村长的源码。
dragon045 (2009-4-14 19:58:31)
学习
jcx0324 (2009-4-23 15:52:08)
支持
liweifoic (2009-5-12 10:19:17)
GAP
是村长自己定义的吗?
happlylife (2009-5-13 09:41:45)
学习编程思路,是提升技术的重要方法啊。。。