关于EDP命令下发
最近发现在群里不少朋友对EDP命令下发不是很了解。其实应该多看看协议文档,文档描述得很清楚,然后再把命令下发的数据读取出来,对比着文档看,效果很好的。
这里简单介绍下,EDP命令下发的内容。
一、快速应用
其实往简单了说,平台就是把系统相关数据 加上 用户自定义的命令数据组成一帧数据,然后下发到设备。我们只需要根据协议SDK里边提供的命令解包函数就可以解除cmdid和命令了。
1.先看看平台端的命令格式约定:
例程中使用命令格式如{xxx}{V},{xxx}就是命令内容,比如操作红色LED就写{redled}{V},{V}是值,特别注意这个“{V}”,看以下说明红线处
什么意思呢,就是说在平台按钮填写命令的时候,比如写{redled}{V},下发的实际内容是{redled}1或者{redled}0,{V}会被替换为开关值。
2.再看看设备端的命令处理方法(以kyLin-V2.5-EDP例程为例
传入参数是获取到的整个下发的内容,也就是系统相关信息和用户自定义命令。
然后调用SDK里边的接口,即可解出cmdid和命令了。
将命令带上“{}”,也是方便查找。
所以大家平时自己做开发的时候,只要下发和解析的命令做到相同就可以了。
二、协议详解
摘自“设备终端接入协议-EDP-V1.5”,5.7节,关于EDP命令下发的具体内容可由此参考。
此截图是命令下发内容的字符形式和十六进制形式,现在结合协议内容来分析下。
图右半部分高亮处为协议的所有内容。
起始的0xA0对应第一字节,bit4~7为10。
第二字节为0x33,是代表除了第一个和第二个字节,剩下的数据长度为51字节。
第三和第四字节“0x00 0x24”代表cmdid的长度,共计36字节,cmdid是在命令响应的时候需要把下发的cmdid原封不动的返回给平台的,只是处理下发时,可以忽略。
然后在“0x00 0x00 0x00 0x09”代表命令的长度,共4个字节来表示命令长度。{redled}0,刚好9字节。
紧接着的就是命令内容和参数了,从0x7B("{")开始,从这里开始的数据就全部是用户自定义的数据了。
页:
[1]