基于本地SDK对接华为云(4)-CoAP

举报
星辰27 发表于 2020/12/21 10:06:42 2020/12/21
【摘要】 前文介绍了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(断开服务器连接)。



对比协议.png

因此只需要将lwm2m替换成coap,之后对照参数进行微调lwm2m的参数到coap协议即可。

如demo中下列函数的修改,当然细节也需要微调,具体适配较为简单,这里不做详细介绍

static int app_msg_deal(void *dataint 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_reports_coap_handle, (char *)&Agriculturesizeof(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

 

 

    附件下载

  • 附件.rar 4.49KB 下载次数:7
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。