基于本地SDK对接华为云(4)-CoAP
【摘要】 前文介绍了Lwm2m、MQTT基于本地SDK对接华为云的流程,由于基于模板创建没有关于CoAP的demo,本文讲解基于CoAP对接华为云的流程。
1 引言
由于lwm2m与CoAP协议的抽象层对接API函数非常相似,因此采用lwm2m对接华为云的智慧农业demo进行修改以实现CoAP协议对接华为云,因此其中profile定义继续沿用前面demo中的定义。
2 API对比
主要对比LwM2M与CoAP协议的对接华为云的API。LiteOS采用抽象组件来满足不同设备、不同需求对接华为云的方式,对上提供应用所需的接口,对下允许接入方式的领过适配。无论是哪种协议均采用了该抽象组件。下图给出了Lwm2m和CoAP协议的API,可见二者对接华为云使用的api大体相同,皆为oc_xxx_config(设备上线)、oc_xxx_report(上报数据)、oc_xxx_deconfig(断开服务器连接)。
因此只需要将lwm2m替换成coap,之后对照参数进行微调lwm2m的参数到coap协议即可。
如demo中下列函数的修改,当然细节也需要微调,具体适配较为简单,这里不做详细介绍
static int app_msg_deal(void *data, int len)
oc_coap_report(s_coap_handle,(char *)&Response_Agriculture_Control_Light,sizeof(Response_Agriculture_Control_Light));
oc_coap_report(s_coap_handle, (char *)&Response_Agriculture_Control_Motor,sizeof(Response_Agriculture_Control_Motor));
s_coap_handle = oc_coap_config(&oc_param);
oc_coap_report( s_coap_handle, (char *)&Agriculture, sizeof(Agriculture));
当然同时需要在配置文件中关闭lwm2m协议,打开coap协议即可。
3 配置文件修改
(1).config文件修改
#CoAP
CONFIG_OCCOAP_ENABLE=y
CONFIG_COAP_AL_ENABLE=y
CONFIG_OCCOAPTINY_ENABLE=y
CONFIG_LITECOAP_ENABLE=y
(2)iot_config.h文件修改
//CoAP
#define CONFIG_OCCOAP_ENABLE 1
#define CONFIG_COAP_AL_ENABLE 1
#define CONFIG_LITECOAP_ENABLE 1
#define CONFIG_OCCOAPTINY_ENABLE 1
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)