BC26 OPEN开发之--LWM2M连接分析

2023-05-16

翔神教你学NB

BC26 OPEN开发之--LWM2M连接分析

前言:

    NB-IOT商用已经2年多了,三大运营商都建设了大量的NB网络,尤其以中国电信最为积极,各个模组厂家推出了大量的NB模组,移远的NB模组的出货量占了绝大数。BC26作为移远推出的第一款支持open开发的模组获得了大量的应用,为什么?价格优势在那呢。笔者利用这款模组开发了不下10款产品,其中一款产品3个月出货达到了40K.不多说了,下来就聊聊BC26的open开发之LWM2M。

         为什么是LMM2M啊? 因为中国电信开发平台支持LWM2M.同时电信的NB网络覆盖最广。

试验准备:

BC26 OPEN开发一套:

如果没有的可以点击:

https://item.taobao.com/item.htm?spm=a2126o.11854294.0.0.35eb4831eGzhta&id=601354111610

笔者年初做的一款BC26开发板,价格相当于白送就收个模块钱。有的就继续往下看。

编译工具一个:

笔者用的是VS CODE 为什么用这个边用先卖个关子。

VS CODE打开工程如下图:

关键的数据结构:

typedef enum{

    STATE_NW_QUERY_STATE,

    STATE_LwM2M_SERV,

    STATE_LwM2M_CONF,

    STATE_LwM2M_ADDOBJ,

    STATE_LwM2M_OPEN,

    STATE_LwM2M_UPDATE,

    STATE_LwM2M_CFG,

    STATE_LwM2M_SEND,

    //STATE_LwM2M_RD,

    STATE_LwM2M_CLOSE,

    STATE_LwM2M_DELETE,

    STATE_TOTAL_NUM

}Enum_ONENETSTATE;

static u8 m_lwm2m_state = STATE_NW_QUERY_STATE;

这个枚举类型里定义了,LWM2M的重要状态。并对变量进行了初始化。

主任务:

void proc_main_task(s32 taskId)

定时器回调函数:

static void Callback_Timer(u32 timerIdvoidparam);

串口回调函数:

static void CallBack_UART_Hdlr(Enum_SerialPort port, Enum_UARTEventType msgbool levelvoidcustomizedPara);

 

proc_main_task的流程图如下:

URC处理是该任务的重点处理流程如下:

 

 

proc_main_task中在while(1)的死循环中来获取模块底层上报的URC消息,根据URC消息进行不通的处理。

 

另外一个重要的函数

static void Callback_Timer(u32 timerId, void* param)

负责注网和电信平台建立网络连接,在测试前要保证BC26模块在电信平台注册同时SIM卡没有欠费。

/*****************************************************************

* LwM2M  timer param

******************************************************************/

#define LwM2M_TIMER_ID         TIMER_ID_USER_START

#define LwM2M_TIMER_PERIOD     1000

 

每一个TIMER需要一个ID编号,上面定义了ID和周期,该定时器1S执行一次。

 

Callback_Timer函数里用状态机实现了注网和连接平台的过程,具体的流程如下:

标题

到这LWM2M的流程就讲完了,看下代码执行结果把:

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BC26 OPEN开发之--LWM2M连接分析 的相关文章

  • windows10+ubuntu16.04双系统安装教程--UEFI安装方法

    本人github其他资料地址 xff1a https github com Bubble water deeplearning 一 ubuntu 1 1 ubuntu 系统镜像链接 1 2 刻录ubuntu 系统镜像 1 3 安装教程 往下
  • px4: v2的主板刷写v2的固件

    v2的主板刷写v2的固件 fengxuewei 64 fengxuewei Legion Y7000 2019 PG0 src Firmware changwei rc span class token function make span
  • C++语言HTTP协议解析器

    httpParser 项目地址 xff1a https github com yuesong feng httpParser C 43 43 版本的 HTTP 协议解析器 xff0c 可自动识别 request 与 response 请求
  • Docker push 命令

    https www jianshu com p 1c8b96cf1f13 Docker hub注册用户 到官网注册账号 xff1a https hub docker com 在本地Linux登录docker xff1a docker 64
  • docker 配置国内镜像地址

    https www cnblogs com cocoajin p 15513348 html 为docker配置国内镜像地址 xff0c 用于在pull镜像下载加速 1 创建配置文件daemon json 在目录 etc docker da
  • Dockerfile的使用

    dockerfile中的指令 构建镜像 docker build t 仓库地址 仓库名称 镜像名称 标签 在dockerfile目录下构建 文件名为Dockerfile FORM span class token comment 指定基础镜
  • ROS小车记录系列(二)IMU采集、过滤,与odom数据融合,发布新的odom话题

    xff08 二 xff09 IMU采集 过滤 xff0c 利用EKF将IMU与odom融合 xff0c 发布新的odom话题 A ROS采集节点B imu tools过滤imu数据C 使用 robot pose ekf 对imu和odom进
  • java开发——时间类型和时间格式转换

    项目开发过程中 xff0c 有时候需要将时间的形式进行变换 xff0c 时间的输入和输出不一致的转换 xff0c 本文用于记录常用到的方法 首先对sdf format a sdf parse a 两个类型进行区分 sdf format a
  • Cmake知识----编写CMakeLists.txt文件编译C/C++程序

    CMake是一种跨平台编译工具 xff0c 比make更为高级 xff0c 使用起来要方便得多 CMake主要是编写CMakeLists txt文件 xff0c 然后用cmake命令将CMakeLists txt文件转化为make所需要的m
  • Linux(centos 7) 环境安装MySQL5.7

    mysql安装包 链接 xff1a 百度网盘 请输入提取码 提取码 xff1a b8w4 环境准备 安装好的centos 7系统 root 用户登录Linux 在根目录下创建 soft目录 上传mysql安装包到 soft目录 xff0c
  • Linux桌面基础:X Window System——Xorg

    一 前言 Unix Like 操作系统不是只能进行服务器的架设而已 xff0c 在美编 排版 制图 多媒体应用上也是有其需要的 这些需求都需要用到图形接口 xff08 Graphical User Interface GUI xff09 的
  • 位姿估计之PnP算法

    最近实验室学习安排是了解Pnp问题解法 xff0c 于是就在网上找了各种文章学习 xff0c 在此进行总结 xff0c 给我卷 xff01 xff01 xff01 1 什么是PnP问题 xff1f PnP 全称Perspective n P
  • HardFault_Handler异常(死机)的处理

    在系统开发的时候 xff0c 出现了HardFault Handler硬件异常 xff0c 也就是死机 xff0c 尤其是对于调用了os的一系统 xff0c 程序量大 xff0c 检测堆栈溢出 xff0c 以及数组溢出等 xff0c 找了半
  • 我推荐的一些C\C++书籍

    转载 xff1a http blog jobbole com 61308 本文由 伯乐在线 周昌鸿 翻译自 bert hubert 欢迎加入 技术翻译小组 转载请参见文章末尾处的要求 人们常常问我有什么C 43 43 和编程的书籍推荐 xf
  • ddddttt

    lt template gt lt div class 61 34 editable cell 34 gt lt div v if 61 34 editable 34 class 61 34 editable cell input wrap
  • jmeter聚合报告的Throughput、Received KB/sec、Sent KB/sec、平均响应时间的算法分析

    Jmeter聚合报告 xff1a samples xff1a 总请求数 samples样本个数 number of requests Throughput 吞吐量 Request Sec 每秒多少请求 在jmeter中 xff0c 大多数情
  • ROS小车记录系列(五)TF树维护,串口ttyUSB*绑定

    1 TF树维护 在这单独列出我的TF树建立过程 xff0c 只是自己做个记录 开始时候很多都是用代码发布静态TF xff0c 可以使用但是后面调试rviz看的时候不方便 xff0c 所以改用urdf文件统一建立 xff0c 尤其是方便调雷达
  • 如何上传代码到github?

    github是什么 xff1f github是Git 远程仓库 github是一个基于git的代码托管平台 Git是什么 xff1a Git 是一个开源的分布式版本控制系统 xff0c 用于敏捷高效地处理任何或小或大的项目 如何上传代码到g
  • Linux:在xshell中如何将linux的文件拷到windows?

    在xshell中如何将linux的文件拷到windows xff1f 最近正好有空 xff0c 把一些之前写的文章 xff0c 放到博客上 xshell6工具 xff1a Xshell很好用 在windows和linux上传或下载某个文件
  • Jenkins构建(7): jenkins执行shell命令(本地和远程执行)

    jenkins执行shell命令 1 执行本地命令或shell脚本 2 执行本地的一个脚本 例如shell xff1a cd data package cp data package aaa zip var lib jenkins work

随机推荐