CA168首页 > 自动化信息 > 企业信息 > 信息详情

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

发布日期:2023-05-04 来源:ZLG致远电子作者:网络
  对于一些位于偏远环境的设备,可以远程配置或控制设备显得尤为重要。ZWS云从设计之初就充分考虑了这一需求,支持云端远程下发命令给设备。

  介绍

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

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

  通用命令:所有接入ZWS云都需要支持的命令,例如文件召回,固件升级等。

  透传命令:命令下发过程不经平台校验,只做透传的命令。

  差异化命令:设备类型自己跟其他设备类型不同的命令。

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

  定义命令

  定义命令是设备建模的一部分,可在功能块中定义命令字段。对于通用命令和透传命令,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云平台,如下:


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

[信息搜索] [] [告诉好友] [打印本文] [关闭窗口] [返回顶部]
0条 [查看全部]  网友评论

视觉焦点