翔神教你学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连接分析相关推荐

  1. BC26电信云平台LWM2M接入指南

    BC26电信云平台LWM2M接入指南 最近使用移远BC26做了电信云平台的LWM2M介入设计,遇到几个问题,逐一解决,做个记录 准备工作 相对于移动的OneNet平台,电信平台的LWM2M接入指令完全 ...

  2. iOS开发工具——网络封包分析工具Charles

    iOS开发工具--网络封包分析工具Charles 简介 Charles是在Mac下常用的截取网络封包的工具,在做iOS开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析.Char ...

  3. 属于服务器端运行的程序_生信分析云平台产品开发 - 5 生信分析pipeline服务器端运行...

    在上文 [生信分析云平台产品开发 - 4 生信分析pipeline的图形化] 讨论了生信分析pipeline的图形化,如何用图形的方式显示生信pipeline,但是pipeline脚本按照变量的形式保 ...

  4. 转:Android应用开发性能优化完全分析

    转自:http://blog.csdn.net/yanbober/article/details/48394201 1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾.不想写的原因是随便上网一搜 ...

  5. Android应用开发性能优化完全分析

    1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾.不想写的原因是随便上网一搜一堆关于性能的建议,感觉大家你一总结.我一总结的都说到了很多优化注意事项,但是看过这些文章后大多数存在一个问题就是只 ...

  6. 功能连接分析方法及其解释缺陷的综述

    文章来源于微信公众号(茗创科技),欢迎有兴趣的朋友搜索关注. 本文是一篇关于功能连接分析方法及其相关注意事项的综述,于2016年发表在Frontiers in Systems Neuroscience ...

  7. TVM开发三个示例分析

    TVM开发三个示例分析 把自主生成的代码生成TVM 把自主生成的代码生成TVM 目录 简介 要生成C代码. 要生成任何其它图形表示. 实现一个C代码生成器 实现[CodegenC] 运算符代码生成 输 ...

  8. 自动驾驶开发云平台业务分析

    自动驾驶开发云平台业务分析 自动驾驶车辆量产需积累大量里程经验,传统车端研发和测试方式,无法满足市场需求,业界普遍采用"云+端"研发迭代新模式,通过测试车队采集海量道路环境数据,在 ...

  9. 思科“万物互联”路线下一站:连接分析

    近期,思科正在将其万物互联计划推向下一个层级,将引入"连接分析".在Cisco Global Editors Conference大会上,思科宣布将立刻在基础架构中推出新的软件分析 ...

最新文章

  1. Google发布“多巴胺”开源强化学习框架,三大特性全满足
  2. java 图像膨胀与腐蚀程序_膨胀和腐蚀 - 解决图像缺陷问题
  3. 关于vue+element-ui项目的分页,返回默认显示第一页的问题解决
  4. 全球及中国拉丝润滑剂粉末行业投资潜力及发展战略规划报告2021-2027年
  5. 软件项目管理0724:见供应商的体会
  6. 解决numpy报错UFuncTypeError: Cannot cast ufunc ‘add‘ output from dtype(‘x‘) to dtype(‘x‘)
  7. 递归算法的总结与应用
  8. html 自动关机程序,Windows 自动关机/定时关机 命令 shuntdown
  9. java的lookup方法_lookup方法注入
  10. FastDFS监控中心安装
  11. python format函数 日期_Python-日期格式化
  12. 何华达回忆录:何华达经历的辛酸过去!
  13. 操作电脑时间长,眼睛疲劳怎么办?
  14. IBM OMNIBUS INSTALL
  15. CAN总线整车电子电气架构设计培训
  16. P4593 [TJOI2018]教科书般的亵渎(拉格朗日插值 + k幂次之和)
  17. 如何挑选一款合适的手机用于开发呢?
  18. 计算机系统配置有哪些东西吗,老司机教你组装电脑主要配置有哪些
  19. Google创始人佩奇和布林简介
  20. ====单词本====

热门文章

  1. FL STUDIO宿主软件v20.9中文版使用技巧心得
  2. matlab中模型预测控制工具箱中m文件optimizer代码里面有个built in kalman 的选项
  3. 极路由B70/极路由4增强版改spi,pb-boot启动后切换回nand刷nand breed
  4. 人民网总裁叶蓁蓁:要用四种眼光看待区块链热
  5. Java GUI编写一个简单的抽奖机
  6. html如何将网页分割开来,发现pdf文件页面内容太多,怎么把页面拆分开来?
  7. HCIA-RoutingSwitching华为认证路由交换工程师(持续更新中2%)
  8. 【大数据运维监控】Prometheus水平扩展Cortex的架构分析
  9. 基于STM32与OneNet平台的智能家居系统设计(代码开源含自制APP代码)
  10. MATLAB中表示点形状、颜色的常见符号