【产品应用】ZWS物联网云平台如何下发命令给设备?

描述

对于一些位于偏远环境的设备,可以远程配置或控制设备显得尤为重要。ZWS云从设计之初就充分考虑了这一需求,支持云端远程下发命令给设备。

 

设备  介绍

ZWS云平台是致远电子研发的通用物联网云平台,提供多种不同物联网云服务,为设备厂商提供上云服务,支持对厂商不同种类设备的数据采集和分析。

物联网的设备有千万种,不同的设备有着不同的控制命令,比如“开关灯”,“时间同步”,“文件召回”等。ZWS云针对这些不同命令做了归并分类,可以分为三种:

  1. 通用命令:所有接入ZWS云都需要支持的命令,例如文件召回,固件升级等。
  2. 透传命令:命令下发过程不经平台校验,只做透传的命令。
  3. 差异化命令:设备类型自己跟其他设备类型不同的命令。

对于这三种命令,虽然他们分类不一样,但他们下发的流程是差不多的,都是先在云端定义好命令的格式,然后再下发给设备,设备收到命令后进行命令的响应操作。具体流程如下图所示:

设备

设备  定义命令

定义命令是设备建模的一部分,可在功能块中定义命令字段。对于通用命令和透传命令,ZWS云平台已经在common_fn功能块进行了定义,用户可以直接使用,不需要重复定义。这两种命令定义如下所示:

设备

对于第三种差异化命令,这个是由用户自定义的,用户可以在自定义设备类型的功能块下添加自己差异化的命令,如下图:

设备

说明:自定义命令如果需要设备响应必须配置以下两个字段:

 

 

cmdid: 命令id,用于关联响应结果;

 

 

mtype: 消息类型,命令类型的消息此字段值固定是2。

 

 

差异化命令,用户除了可以在功能块里面添加自己的命令实现命令下发的需求,还可以复用通用功能块的set_config命令配置。用户只需要把自己的命令参数放到set_config命令的cfg_info字段里进行下发,设备收到该命令后进行响应即可。

set_config命令不仅可以给用户自定义命令复用,而且,可以通过set_config命令配置设备的状态值。

设备

 

设备  设备接收命令

设备固件开发需要集成“ZWS_SDK”,SDK里面提供了设备连接云服务关于网络层的封装同时也提供了一些demo,其中device_example这个demo演示设备怎么连接云,然后设备接收处理云端命令。用户可以直接通过make指令编译SDK里的device_expl.c,编译成功后,把设备的三元组传给运行程序,把demo跑起来。

linux系统,在SDK所在目录执行以下命令:

./bin/device_example  demo_dev_type  d123  123123123

代码说明:
1. demo中关于命令的回调是在device_expl.c文件中的on_message函数。
2. demo中只实现部分通用命令的响应处理,自定义命令需要用户自己实现。


 

设备  下发命令

在设备管理的高阶功能界面,通过set_config命令下发给设备,设备接收命令,响应成功后返回给ZWS云平台,如下:

设备

设备收到命令的处理日志:

 

设备

 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分