立即注册
查看: 535|回复: 0

[NB-IoT技术] ML302 OpenCPU阿里云demo及函数代码解析(二)

已绑定手机
发表于 2021-11-11 16:47:55 | 显示全部楼层 |阅读模式 来自 广东省深圳市
在上一期中,我们讲了如何使用ML302通过OpenCPU的阿里云demo连接阿里云。在这一期,我们将对阿里云demo中各个函数进行简要解析。
测试时所使用的模组型号是ML302-DNLM,所使用的SDK版本是V2.2.1

1、获取三元素信息
图片1.png
这三个函数分别用来获取产片Key、设备名以及设备密钥,如函数int HAL_GetproductKey(char product_key[IOTX_PRODUCT_KEY_LEN + 1]):
图片2.png
其中_product_key表示产品密钥,在文件头部定义作为一个全局变量,如下图所示:
图片3.png
首先将形参product_key清空内存:
图片4.png
然后将产品密钥复制到形参中:
图片5.png

2、回调函数void example_event_handle
此回调函数用来打印事件类型:
图片6.png
其中event_type在结构体iotx_MQTT_event_type_t中,如下图所示:
图片7.png
如事件“IOTX_MQTT_EVENT_PUBLISH_RECEIVED”表示接收从MQTT远端代理发送的MQTT数据包,定义的值为12

3、void *IOT_MQTT_Construct(iotx_mqtt_param_t *pInitParams)
这个函数用来连接云平台,其中pInitParams是一个iotx_mqtt_param_t结构体变量,其是MQTT参数结构体,里面包含如端口号、用户名等信息,如下图所示:
图片8.png

4、int example_subscribe(void *handle)
这个函数用来订阅消息,其中handle表示客户端指针,在这个函数内部,订阅消息的流程为:
(1) 定义订阅消息类型
图片9.png
(2) 获取命令长度,并为订阅消息分配内存
图片10.png
如果内存分配未成功,则打印“memory not enough”
图片11.png
(3) 清空topic内存
图片12.png
(4) 生成topic命令
将产品key、设备名等填入topic中:
图片13.png
上述函数表示将变量“DEMO_PRODUCT_KEY”和“DEMO_DEVICE_NAME”填入定义的fmt中,然后将整个语句复制到topic中。
(5) 订阅topic类型
图片14.png
此函数用于订阅topic类型,使用QoS0,并打印反馈信息,若订阅成功则返回0。

更多内容请下载附件查看
2021-11-11 16:47 上传
文件大小:
578.45 KB
下载次数:
2
本地下载

16RD supports Paypal , Payment is calculated at the exchange rate of the day. Unable to download please contact 18902843661 (WhatsApp OR wechat number)

关于一牛网在微软浏览器(Microsoft Edge、IE浏览器)警报通告&解决方案!(无法下载直接更换浏览器即可)

*附件为作者发布,与本站无关,如有侵权,请联系客服删除

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

合作/建议

TEL: 19168984579

工作时间:
周一到周五 9:00-11:30 13:30-19:30
  • 扫一扫关注公众号
  • 扫一扫打开小程序
Copyright © 2013-2024 一牛网 版权所有 All Rights Reserved. 帮助中心|隐私声明|联系我们|手机版|粤ICP备13053961号|营业执照|EDI证
在本版发帖搜索
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表