《嵌入式系统软件工程与实践》课程教学专用Internet信息家电设备短消息通用监控平台系统协议V0.1Internet设备终端(简称信息家电)和控制平台间的访问接口功能描述此访问接口需要实现以下功能:Internet设备开机后能自动与监控平台Login连接,并在初次安装时向监控平台注册设备能支持的函数类型信息;Internet设备能接收监控平台发来的查询命令,并根据命令向监控平台发送相应的状态信息;Internet设备根据监控平台发送来的控制命令,产生相应的动作;为了实现上述功能,在监控平台和Internet设备之间需要有一个通信通道用于传输主机命令和检测设备的状态信息。由于命令和状态信息不能丢失,所以需要采用面向连接、无差错传输的TCP协议;在系统具体实现时,可以选择没有被占用的TCP协议端口号,作为控制端口。Internet设备终端和控制平台之间的通信协议设计监控平台和Internet设备之间的通信协议如下图所示:监控平台与Internet设备终端之间的通信协议日常交互登陆、登出注册角色`ConfigLoginControlQueryEventConfig_ScuessInternet设备控制平台Config_FailLogin_FailLogin_ScuessLogout图1监控平台与Internet设备终端之间的通信协议Internet设备终端(信息家电)和控制平台之间的通信流程与报文格式V0.1版本在Internet设备初始化后,首先与监控平台(其IP地址事先确定)进行TCP连接,如果连接成功则发送Config报文向监控平台注册。确定设备注册成功后,向手机终端发送报告短消息,用以通知用户新设备注册成功;同时向设备发送Config_Scuess以通告注册成功并发布其ID号。之后(平时设备启动时)设备发送Login登陆。登陆成功后Internet设备与控制平台之间通过报文CALL_FUNC,Event进行控制或反馈。报文的传播方式为TCP,这几种报文的格式如下所示:简称:N:NAME;L:LENGTH;C:COUNTU:UNITACT:ACTIONST:STATEP:PARTConfig报文数据区数据名占用字节数说明报文头信息部TYPE(0x01)1报文类型,0x01表示Config报文PACKAGE_L2报文总长度HANDSHAKE_CODE1握手码,用于确定两报文的应答关系设备综合信息部CID设备类型(待拓展)1当前设备的设备类型ID号。同类Internet设备有一样的ID号,最多可以支持256个检测设备类型(用途待拓展)DEVICE_DATA_T(待拓展)1设备内厂商自定义名称(设备名、动作名等)的编码类型(ASC等,待拓展)DEVICE_N_L1厂商自定义设备名长度DEVICE_NN厂商自定义设备名函数注册(动作、状态)部F_C1函数,最多255个函数F1_ID函数IDF1_N_L1函数1厂商自定义动作名字长度F1_NN函数1厂商自定义动作名字Q_OR_C1函数属于控制还是查询F1_ARGS_C1函数1查询参数个数F1_ARG1_N_L1函数1参数1的参数名字长度F1_ARG1_NN函数1参数1的参数名字F1_ARG1_T1函数1参数1的参数类型F1_ARG1_U_L1函数1参数1的参数单位名字长度F1_ARG1_U_NN函数1参数1的参数单位名字F1_ARG2_N_L……(同参数1)…………(同参数1)F2_L2(同状态1)…………(同状态1)尾部END_CODE1终结标志,也可用于校验码Config_Success报文数据区数据名占用字节数说明报文头信息部TYPE(0x02)1报文类型,0x02表示Config_Sucess报文PACKAGE_L2报文长度HANDSHAKE_CODE1握手码,用于确定两报文的应答关系数据部D_ID1当前设备的设备ID号。每个Internet设备有唯一的ID号,最多可以支持256个检测设备LOGIN_CODE2用于登陆时进行验证的验证码尾部END_CODE1终结标志,也可用于校验码Config_Fail报文数据区数据名占用字节数说明报文头信息部TYPE(0x03)1报文类型,0x03表示Config_Fail报文PACKAGE_L2报文长度HANDSHAKE_CODE1握手码,用于确定两报文的应答关系数据部ERROR_LINE2出错的行数ERROR_T1出错的类型尾部END_CODE1终结标志,也可用于校验码Login报文,用于登陆监控平台,其结构中各个字段的含义如下表所示:数据区数据名占用字节数说明报文头信息部TYPE(0x04)1报文类型,0x04表示Login报文PACKAGE_L2报文长度HANDSHAKE_CODE1握手码,用于确定两报文的应答关系数据部D_ID1当前设备的设备ID号。每个Internet设备有唯一的ID号,最多可以支持256个检测设备LOGIN_CODE2用于登陆登出时进行验证的验证码尾部END_CODE1终结标志,也可用于校验码Login_Fail报文,向设备反馈登陆失败,其结构中各个字段的含义如下表所示:数据区数据名占用字节数说明报文头信息部TYPE(0x05)1报文类型,0x05表示Login_Fail报文PACKAGE_L2报文长度HANDSHAKE_CODE1握手码,用于确定两报文的应答关系数据部FAIL_T1失败类型尾部END_CODE1终结标志,也可用于校验码Login_Success报文,向设备反馈登陆成功,其结构中各个字段的含义如下表所示:数据区数据名占用字节数说明报文头信息部TYPE(0x06)1报文类型,0x06表示Login_Sucess报文PACKAGE_L2报文长度HANDSHAKE_CODE1握手码,用于确定两报文的应答关系尾部END_CODE1终结标志,也可用于校验码Logout报文,用于登出监控平台,其结构中各个字段的含义如下表所示:数据区数据名占用字节数说明报文头信息部TYPE(0x07)1报文类型,0x07表示Logout报文PACKAGE_L2报文长度HANDSHAKE_CODE1握手码,用于确定两报文的应答关系数据部D_ID1当前设备的设备ID号。每个Internet设备有唯一的ID号,最多可以支持256个检测设备LOGIN_CODE2用于登陆登出时进行验证的验证码尾部END_CODE1终结标志,也可用于校验码CALL_FUNC报文,用于监控平台向internet设备发送控制(或查询)命令,其结构中各个字段的含义如下表所示:数据区数据名占用字节数说明报文头信息部TYPE(0x08||0x09)1报文类型,0x08表示Control报文0x09表示Query报文PACKAGE_L2报文长度HANDSHAKE_CODE1握手码,用于确定两报文的应答关系数据部D_ID1本报文配置的目标检测设备ID号FUNC_NO1函数号ARG1N函数第1参数(没有的话就各位全填充1,如SHORT:1111111111111111,如果是字符类型,填充‘\0’)ARG2N函数第2参数。。。。。。。。。。。。。。。。。。尾部END_CODE1终结标志,也可用于校验码Event报文,用于Internet设备向监控平台回送实际的查询或者告警结果。各个字段的含义如下表所示:数据区数据名占用字节数说明报文头信息部TYPE(0x0a)1报文类型,0x0a表示Event报文PACKAGE_L2报文长度HANDSHAKE_CODE1握手码,用于确定两报文的应答关系数据部D_ID1本报文配置的目标检测设备ID号EVENT_NAMEN事件名EVENT_TYPE1事件类型(警告或其他)ARG_C1事件参数个数ARG1_NAMEN参数1名ARG1_TYPE1参数1类型ARG1_DATAN参数1(数值数据按位填充,字符数据以’\0’结尾)ARG1_UNIT_NAMEN参数1单位名………………尾部END_CODE1终结标志,也可用于校验码