【分享】关于EDP命令下发-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3220|回复: 0

【分享】关于EDP命令下发

[复制链接]
发表于 2017-7-6 10:43 | 显示全部楼层 |阅读模式
最近发现在群里不少朋友对EDP命令下发不是很了解。
其实应该多看看协议文档,文档描述得很清楚,然后再把命令下发的数据读取出来,对比着文档看,效果很好的。
这里简单介绍下,EDP命令下发的内容。

一、快速应用
其实往简单了说,平台就是把系统相关数据 加上 用户自定义的命令数据组成一帧数据,然后下发到设备。我们只需要跳过系统相关数据,直接获取到命令内容就可以了。

1.先看看平台端的命令格式约定:
例程中使用命令格式如{xxx}{V},{xxx}就是命令内容,比如操作红色LED就写{redled},{V}是值,特别注意这个“{V}”,看以下说明红线处
2.jpg (0 Bytes, 下载次数: 42)
下载附件
2017-4-11 14:22 上传




什么意思呢,就是说在平台按钮填写命令的时候,比如写{redled}{V},下发的实际内容是{redled}1或者0,{V}会被替换为开关值。

2.再看看设备端的命令处理方法
传入参数是获取到的整个下发的内容,也就是系统相关信息和用户自定义命令。
因为我们下发的命令内容少于256字节,所以整个下发内容中有4个结束符(数值:0),例程使用string库来处理命令,所以不能有结束符,则需要替换掉(图中高亮处)。
然后找到命令和命令参数即可。
3.jpg (0 Bytes, 下载次数: 30)
下载附件
2017-4-11 14:29 上传




将命令带上“{}”,也是方便查找。

所以大家平时自己做开发的时候,只要下发和解析的命令做到相同就可以了。

二、协议详解
4.jpg (0 Bytes, 下载次数: 30)
下载附件
2017-4-11 14:35 上传




摘自“设备终端接入协议-EDP-V1.5”,5.7节,关于EDP命令下发的具体内容可由此参考。

1.jpg (0 Bytes, 下载次数: 90)
下载附件
2017-4-11 14:37 上传




此截图是命令下发内容的字符形式和十六进制形式,现在结合协议内容来分析下。
图右半部分高亮处为协议的所有内容。
起始的0xA0对应第一字节,bit4~7为10。
第二字节为0x33,是代表除了第一个和第二个字节,剩下的数据长度为51字节。
第三和第四字节“0x00 0x24”代表cmdid的长度,共计36字节,cmdid是在命令响应的时候需要把下发的cmdid原封不动的返回给平台的,只是处理下发时,可以忽略。
然后在“0x00 0x00 0x00 0x09”代表命令的长度,共4个字节来表示命令长度。{redled}0,刚好9字节。
紧接着的就是命令内容和参数了,从0x7B("{")开始,从这里开始的数据就全部是用户自定义的数据了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-28 03:50 , Processed in 0.069802 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表