BC26 OPEN开发之--LWM2M连接分析
翔神教你学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 timerId, void* param);
串口回调函数:
static void CallBack_UART_Hdlr(Enum_SerialPort port, Enum_UARTEventType msg, bool level, void* customizedPara);
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的流程就讲完了,看下代码执行结果把:
BC26 OPEN开发之--LWM2M连接分析相关推荐
- BC26电信云平台LWM2M接入指南
BC26电信云平台LWM2M接入指南 最近使用移远BC26做了电信云平台的LWM2M介入设计,遇到几个问题,逐一解决,做个记录 准备工作 相对于移动的OneNet平台,电信平台的LWM2M接入指令完全 ...
- iOS开发工具——网络封包分析工具Charles
iOS开发工具--网络封包分析工具Charles 简介 Charles是在Mac下常用的截取网络封包的工具,在做iOS开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析.Char ...
- 属于服务器端运行的程序_生信分析云平台产品开发 - 5 生信分析pipeline服务器端运行...
在上文 [生信分析云平台产品开发 - 4 生信分析pipeline的图形化] 讨论了生信分析pipeline的图形化,如何用图形的方式显示生信pipeline,但是pipeline脚本按照变量的形式保 ...
- 转:Android应用开发性能优化完全分析
转自:http://blog.csdn.net/yanbober/article/details/48394201 1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾.不想写的原因是随便上网一搜 ...
- Android应用开发性能优化完全分析
1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾.不想写的原因是随便上网一搜一堆关于性能的建议,感觉大家你一总结.我一总结的都说到了很多优化注意事项,但是看过这些文章后大多数存在一个问题就是只 ...
- 功能连接分析方法及其解释缺陷的综述
文章来源于微信公众号(茗创科技),欢迎有兴趣的朋友搜索关注. 本文是一篇关于功能连接分析方法及其相关注意事项的综述,于2016年发表在Frontiers in Systems Neuroscience ...
- TVM开发三个示例分析
TVM开发三个示例分析 把自主生成的代码生成TVM 把自主生成的代码生成TVM 目录 简介 要生成C代码. 要生成任何其它图形表示. 实现一个C代码生成器 实现[CodegenC] 运算符代码生成 输 ...
- 自动驾驶开发云平台业务分析
自动驾驶开发云平台业务分析 自动驾驶车辆量产需积累大量里程经验,传统车端研发和测试方式,无法满足市场需求,业界普遍采用"云+端"研发迭代新模式,通过测试车队采集海量道路环境数据,在 ...
- 思科“万物互联”路线下一站:连接分析
近期,思科正在将其万物互联计划推向下一个层级,将引入"连接分析".在Cisco Global Editors Conference大会上,思科宣布将立刻在基础架构中推出新的软件分析 ...
最新文章
- Google发布“多巴胺”开源强化学习框架,三大特性全满足
- java 图像膨胀与腐蚀程序_膨胀和腐蚀 - 解决图像缺陷问题
- 关于vue+element-ui项目的分页,返回默认显示第一页的问题解决
- 全球及中国拉丝润滑剂粉末行业投资潜力及发展战略规划报告2021-2027年
- 软件项目管理0724:见供应商的体会
- 解决numpy报错UFuncTypeError: Cannot cast ufunc ‘add‘ output from dtype(‘x‘) to dtype(‘x‘)
- 递归算法的总结与应用
- html 自动关机程序,Windows 自动关机/定时关机 命令 shuntdown
- java的lookup方法_lookup方法注入
- FastDFS监控中心安装
- python format函数 日期_Python-日期格式化
- 何华达回忆录:何华达经历的辛酸过去!
- 操作电脑时间长,眼睛疲劳怎么办?
- IBM OMNIBUS INSTALL
- CAN总线整车电子电气架构设计培训
- P4593 [TJOI2018]教科书般的亵渎(拉格朗日插值 + k幂次之和)
- 如何挑选一款合适的手机用于开发呢?
- 计算机系统配置有哪些东西吗,老司机教你组装电脑主要配置有哪些
- Google创始人佩奇和布林简介
- ====单词本====
热门文章
- FL STUDIO宿主软件v20.9中文版使用技巧心得
- matlab中模型预测控制工具箱中m文件optimizer代码里面有个built in kalman 的选项
- 极路由B70/极路由4增强版改spi,pb-boot启动后切换回nand刷nand breed
- 人民网总裁叶蓁蓁:要用四种眼光看待区块链热
- Java GUI编写一个简单的抽奖机
- html如何将网页分割开来,发现pdf文件页面内容太多,怎么把页面拆分开来?
- HCIA-RoutingSwitching华为认证路由交换工程师(持续更新中2%)
- 【大数据运维监控】Prometheus水平扩展Cortex的架构分析
- 基于STM32与OneNet平台的智能家居系统设计(代码开源含自制APP代码)
- MATLAB中表示点形状、颜色的常见符号