整体联调运行

更新时间:
复制 MD 格式

完成设备端和服务端业务开发后,启动服务端程序,与物联网平台建立连接,然后启动设备端模拟脚本上报数据,在服务端调用Pub接口下发控制指令,进行整体联调运行。

设备端上报数据联调

设备端

CMD窗口,使用cd命令找到设备端的iot_device.js文件所在路径,然后输入如下命令,运行iot_device.js代码,启动设备。

node iot_device.js

设备接入成功,打印业务报文,如下所示。

payload=[ DE02,23,16,011101010,am024,1d478f ]
payload=[ DE02,29,24,011101010,am024,1d478f ]
payload=[ DE02,28,17,011101010,am024,1d478f ]
payload=[ DE02,26,18,011101010,am024,1d478f ]
payload=[ DE02,25,10,011101010,am024,1d478f ]
payload=[ DE02,18,10,011101010,am024,1d478f ]
payload=[ DE02,29,13,011101010,am024,1d478f ]

服务端

IntelliJ IDEA,运行已完成开发的AmqpClient.java程序。

说明 本示例Demo代码中,添加了结束程序的代码(Thread.sleep(60 * 1000);),即程序启动成功,运行一分钟后会结束。实际场景中,您可根据需要自行设置运行时间。

服务端实时打印从物联网平台获取到的消息数据。报文中包含设备原始报文完整内容,如下所示。

11:17:34.134 [pool-1-thread-8] INFO com.aliyun.iotx.demo.AmqpClient - receive message,
topic = /a1xxxx/deviceSN1/user/data/up,
messageId = 1xxx7,
content = {"payload":"DE02,26,16,011101010,am024,1d478f","deviceName":"deviceSN1","timestamp":1658891854095}

物联网平台云端

登录物联网平台控制台进入对应的实例,选择监控运维 > 日志服务 > 云端运行日志

可以看到业务类型设备行为的日志,记录设备上线(online)、设备离线(offline)。

还可以查看上行消息的消息详情,包括TopicPayload,跟踪上行消息的流转过程。

日志已按产生时间标记顺序,依次为:

  1. 设备上报消息。
  2. 消息从规则引擎流转到AMQP。
  3. AMQP推送消息到服务端。
  4. 服务端响应消息ACK。

在控制台左侧,选择消息转发 > 服务端订阅,单击消费组列表,单击消费组充电宝业务数据处理对应的查看,进入消费组详情页面,可看到消息处理速率、堆积量、最后一条消息处理时间,以及服务端(即客户端)的信息。

服务端下发控制指令

服务端

IntelliJ IDEA,运行已完成开发的PubClient.java程序。

在服务端执行Pub接口调用,向设备下发控制指令,返回结果如下所示。

{"requestId":"705EADF6-B5A3-579E-B7F9-2CBAACD4CF37","success":true,"messageId":"1xxx8"}

设备端

设备端会实时打印指令信息,如下所示。

topic /a16****/deviceSN1/user/cmd/down
message CMD,82923,ad322

物联网平台云端

登录物联网平台控制台进入对应的实例,选择监控运维 > 日志服务 > 云端运行日志

可以查看指令消息流转的完整过程。

日志已按产生时间标记顺序,依次为:

  1. 服务端调用下行API。
  2. 云端收到服务端的API调用请求后,推送消息到设备端。

执行结果

至此,我们在尽量少影响业务的前提下,完成了企业存量设备迁移上阿里云物联网平台的工作,为企业业务增长提供了稳定的技术保障。