- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
onenet设备终端接入协议2-EDP
Enhanced Device Protocol(EDP)欢迎访问设备云门户网站/注册用户,获取最新文档。版本号修订日期修订内容说明V1.12014.10.30EDP增加存储数据报文;REST API 增加历史数据查询接口,用于上报数据点,或者上报的同时转发数据点。V1.1.12014/11/3EDP增加消息类型9,以支持对存储数据的确认。V1.22015/07/17增加加密机制;命令请求和响应报文;存储数据点,新增3中格式;修改登陆方式为2种;V1.32015/10/14添加连接关闭消息说明该接口上的协议基于TCP,但只传输数据包到目的地,不保证传输的顺序与到达的顺序相同,事务机制需要在上层实现;若客户端同时发起两次请求,服务器返回时,不保障返回报文的顺序。设备与业务接入模式设备层:利用平台提供的EDPSDK,实现EDP协议,用于上报业务数据点到OnetNet。若需要实时接收业务层下发的控制命令,需要保持EDP长连接。业务应用层:若要自定义实现业务平台,可通过HTTP 协议的RESTful API操作OnetNet提供的资源(设备、数据点、命令控制等资源的增删查改)。适用场景:在充分分析业务数据模型的基础上,认为OneNet提供的设备-数据流-数据点模型适合业务数据存储。优先推荐新业务使用该模式。接入流程访问平台/注册用户;用户根据业务情况,在“连接请求”章节中选择EDP登录方式;根据登录方式,填写设备相关属性,在项目下新增设备,获取项目ID、设备ID,以及api-key等信息;设备发送TCP连接请求到以下地址,发送封装的报文与平台交互。平台服务器地址,TCP 端口876,29876消息格式消息包括三个部分:必选的消息头(绿色),可选的多个选项(黄色)以及可选的消息体(蓝色)。字节\biyte 1消息类型保留位(全零)Multi-bytes剩余消息长度(1-4字节,指示选项+消息体的长度)Multi-bytes选项(根据消息类型0个或多个)Multi-bytes消息体(根据消息类型0或多个字节)消息类型占第一个字节的前4位,取值范围(0-15),定义如下:类型值含义方向1CONN_REQ:连接建立请求C(client)-S(server)2CONN_RESP:连接建立响应S-C3PUSH_DATA:转发(透传)数据双向4CONN_CLOSE:连接关闭S-C8SAVE_DATA:存储(转发)数据双向9SAVE_ACK:存储确认S-C10CMD_REQS-C11CMD_RESPC-S12PING_REQ: 心跳请求C-S13PING_RESP: 心跳响应S-C14ENCRYPT_REQC-S15ENCRYPT_RESPS-C其他值保留剩余消息长度用于指示选项和消息体的字节数。目前平台限制EDP协议每条消息剩余长度不能超过4M。该字段占用1-4个字节,长度值的低位部分放在传输的前面字节,高位放在后面。每个字节的最高位为延续指示位。延续指示位为1时,标示后面字节也是长度值,最多可延续4个字节。可表示数据范围如下:字节数最小值最大值10(0x00)127(0x7F)2128(0x80, 0x01)16383 (0xFF, 0x7F)316 384 (0x80, 0x80, 0x01)2 097 151 (0xFF, 0xFF, 0x7F)42 097 152 (0x80, 0x80, 0x80, 0x01) 268 435 455 (0xFF, 0xFF, 0xFF, 0x7F)注意:消息剩余长度 = 选项所占字节数 + 消息体所占字节数,根据该值的大小来确定消息剩余长度字段在EDP数据包中占用多少个字节,比如从上表可以看出,当0剩余长度=127的时候,消息剩余长度字段在EDP数据包中只占一个字节,而不是四个字节;当127剩余长度=16383的时候,消息剩余长度字段在EDP数据包中占两个字节,而不是四个字节;依此类推。例如,若选项+消息体长度共321=65+2*128字节,则该域(剩余长度)需要两个字节才能表示,第一个字节的延续位置1,按照传输顺序格式如下:字节\biyte 111000001Byte 200000010解析该长度值的C语言算法可表示为:( ( Byte2 127 ) 7 ) | ( Byte1 127 )编码算法:解码算法:选项根据消息类型,选项的格式不同;详见后面的命令类型说明。某些选项为固定格式的几个字节,另一些采用length+value的字符串格式,用两个字节指示后面值的长度,字符串最长0xFFFF。字符串详细格式如下:字节\biyte 1长度高位字节Byte 2长度低位字节0-mulit bytes0或多个字节的内容,最长0xFFFF字节消息体
文档评论(0)