1. LiteOS OC lwm2m 抽象组件
概述
为了适应各种各样的使用lwm2m接入华为OC的模式,特采用该层次接口,对上提供应用所需的接口,对下允许接入方式的灵活适配。
oclwm2magent是处理使用lwm2m协议对接华为OC的流程抽象层,允许使用流程进行对接,也允许使用NB芯片内置的流程进行对接。对于应用程序开发者而言,无需关注对接流程的实现细节,仅仅需要调用该模块提供的api即可。
OC lwm2m AL的api接口声明在
中,使用相关的接口需要包含该头文件。
配置并连接
对接服务器的所有信息保存在结构体oc_config_param_t
中,其定义在oc_lwm2m_al.h
中,如下:
typedef struct
{
en_oc_boot_strap_mode_t boot_mode; ///< bootmode,if boot client_initialize, then the bs must be set
oc_server_t boot_server; ///< which will be used by the bootstrap, if not, set NULL here
oc_server_t app_server; ///< if factory or smart boot, must be set here
fn_oc_lwm2m_msg_deal rcv_func; ///< receive function caller here
void *usr_data; ///< used for the user
}oc_config_param_t;
其中boot_mode
是对接模式,对应华为平台的三种模式:
typedef enum
{
en_oc_boot_strap_mode_factory = 0,
en_oc_boot_strap_mode_client_initialize,
en_oc_boot_strap_mode_sequence,
} en_oc_boot_strap_mode_t;
app_server参数是服务器信息,定义如下:
typedef struct
{
char *ep_id; ///< endpoint identifier, which could be recognized by the server
char *address; ///< server address,maybe domain name
char *port; ///< server port
char *psk_id; ///< server encode by psk, if not set NULL here
char *psk;
int psk_len;
} oc_server_t;
参数说明如下:
- ep_id:设备标识符
- address:服务器地址
- port:服务器端口
- psk_id:DTLS使用,不使用的话设置为NULL
rcv_func是回调函数的函数指针,当设备接收到l