[干货分享] 【开发者portal在线开发插件系列五】命令的响应,即命令结果的上报(mid的使用)

基础篇

基础场景见上面两个帖子,这里单独介绍命令的响应的用法
什么是命令响应呢?命令的响应其实是命令的执行结果的上报。对于设备来说是命令执行完后,单独又上报的码流。具体可以参考【分享】一张流程图认识编解码插件中的4类消息

话不多说,开始今天的演(表)示(演)

================我是“下方内容基本都是图,看图操作就好”的分隔线================

Profile和插件开发

在命令中加入命令响应

打开插件修改原来的命令,勾选上响应字段:

编辑命令下发字段:
删除messageId后的字段(如果是新增命令可跳过这步)

添加mid(原消息中已有messageId,所以这里不用添加;如果是新增命令消息,需要添加messageId)


mid后是自定义业务字段,也就是命令下发参数:



编辑命令响应字段:
添加messageId(默认值为6,对应码流是06


再添加errcode(表示命令执行结果的成功与失败):


再添加mid:


mid后面的字段是自定义的业务字段:


与profile中的字段关联(务必看图中的说明):

关联完成后部署插件。



调测:
注册一个新设备


使用NB模拟器模拟设备,绑定成功后先上报一个业务码流:


下发一条命令(注意:使用模拟器模拟设备,上报数据后马上下发命令


命令状态变成已送达:


再上报命令执行结果(06开头的码流表示SET_ALARM的命令执行结果):


命令状态变成执行成功:


再下发3条命令:


上报2条命令执行结果(一条成功,一条失败):


命令状态进行相应变化(有一条保持不变):


总结:
1)插件中添加命令响应(命令执行结果上报),则上行消息必须使用mid(命令执行结果上报是上行消息)
2)命令下发的mid是2个字节,对于每个设备来说,mid从1递增到65535,对应码流就是0001到FFFF
3)设备执行完命令,命令执行结果上报中的mid要与收到命令中的mid保持一致,这样平台才能刷新对应命令的状态


更多精彩内容: