基于本地SDK对接华为云(4)-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
- 点赞
- 收藏
- 关注作者
评论(0)