背景

由于电信NB模组限制,使用了电信物NB联网卡的设备在连接公网时需要经过电信的CTWing平台,此时设备如果要做 FOTA升级则需要经过CTWing平台配置转发才能使用OneOS FOTA平台实现升级相关的操作。

电信CTWing平台设置

1.1 账号开通

访问电信CTWing平台 https://www.CTWing.cn/ 注册账号 然后做个人实名认证;进入控制台 并开通天翼物联网平台(AIoT)-通用组件服务。

1.2 创建第三方应用

如图,在应用管理中创建第三方应用,应用名称、应用分类、应用描述按实际使用填写,是否在AEP选择是,应用权限为AEP自身能力。

1.3 创建产品

如图 产品名称、产品分类、设备型号等字段根据产品自定义填写。
节点类型:选择设备
接入方式:设备直连
网络类型:NB-IoT
通信协议:LWM2M
数据加密方式:明文
认证方式:IMEI认证
Endpoint格式:imei
是否已有电信官方认证通过的profile:否
是否透传:否
消息格式:JSON/紧凑型二进制(对应设备选择的数据传输方式,这里以JSON格式为例说明

1.4 产品属性配置

产品创建成功后 需要在服务定义中建立属性,主要有fota_data属性,product_id属性,业务数据属性。点击右下角新增属性,接口入口如下图所示:

1.4.1 fota_data属性

属性标识必须为fota_data,属性为string类型,用于包含fota的数据,最好设置最大数据长度1024以上,这里设置的2048。

1.4.2 product_id属性

属性标识必须为product_id,属性为int32类型,用于传输ctw平台产品字段。

1.4.3 业务数据属性

用户需要传送到自己平台的业务数据,本字段按用户自己需求定义,示例中标识位data。

1.5 服务配置

在产品--服务定义--服务列表 中建立服务,fota需要2条服务分别用于上传数据和下发指令,配置入口如下图。

1.5.1 Fota数据上传服务

数据上传服务,上报请求数据用的服务,需要包含fota_data,product_id两条属性,配置如下。
数据类型:数据上报
服务ID:可自定义,在端侧配置相同ID即可
服务名称:可自定义
服务标识:fota_data_report
参数列表:添加属性中配置的fota_data和product_id属性对应的属性名称

1.5.2 Fota指令下发服务

指令下发服务,用于将fota平台返回数据下发到设备,需要包含fota_data属性,配置如下。
服务类型:指令下发
服务ID:可自定义
服务名称:可自定义
服务标识:fota_data_distribute
参数列表:添加建立的fota_data属性对应属性名称

1.5.3 用户业务上报服务

自定义服务,用户自身需要上传到自己平台的一些业务服务,这里给个参考设置,具体配置根据用户自身服务定义,示例中服务ID位789,服务标识为data。

1.6设置消息路由

在消息流转->目的地管理中的HTTP添加新增目的,URL自动填写http://218.201.45.140: 58084 /ctwpush/devicedata,不使用消息加密,该地址fota平台接受规则引擎转发数据的地址,之后再按照用户自身数据要求,添加转发到业务服务器的地址。

1.7添加规则引擎

规则引擎配置可参考https://www.CTWing.cn/gzyq/107#/callback配置。

在规则引擎中,创建规则引擎,使用可视化创建

选择简单规则,产品选择需要的产品,如demo,数据级别选择产品级别。

选择字段中,在字段列表中勾选fota_data和product_id两个属性字段以及自定义函数列表中的获取设备ID。

选择条件中选择fota_data字段<>空(既foat_data字段不是空就匹配)。

点击保存,提交前添加规则描述。

创建转发数据。

选择 添加操作:为发送到HTTP(S)接口

HTTP(S)接口:选择消息路由中设置的fota平台地址

参数模板:{"product_id":"%product_id%","deviceId":"%func-deviceId%","fota_data":"%fota_data%"},既分别发送产品id,设备id,fota请求数据到fota平台。

点击返回规则列表,选择启用规则。

这时fota数据的规则已经配置好了,可以参考fota数据的规则配置业务数据的规则,匹配条件改为fota_data字段为空即可。

1.8 产品配置信息提交

这是在ctw平台的配置除去产品中添加设备外其他配置已经完成。

为了保证规则引擎转发功能能正常使用,需要提交部分CTWing产品信息到OneOS-FOTA项目接口人,需要提交的信息有:

产品ID和Master-APIkey

第三方应用中的App Key和App Secret

Fota平台配置

2.1创建项目

登录OneOS-FOTA平台https://os.iot.10086.cn/otaplatform/ProjectHome,添加项目,其参数选项有
项目名称:可自定义,用于界面显示
OEM:可自定义,用于端侧配置
平台:按产品使用的型号选择,用于端侧配置
操作系统:选择RTOS
设备类型:按产品选择
设备型号:可自定义,用于端侧配置
OTA类型:必须选择精简版

2.2 制作差分包

完成项目创建后,选择主页中间顶部栏,进入在线差分平台。如下图:

选择刚刚创建的项目,并选择相应的配置参数,上传前置版本和目标版本包文件,点击下一步,进入差分包制作过程。

等待差分包制作完成,点击立即部署,就可以返回主页。进入当前项目查询制作差分包的版本的信息和差分信息 如下图 :

端侧配置

端侧使用OneOS_cube,menuconfig中的Components-OTA-Fota by CMIOT中配置,配置信息如图:

Oem:对应fota平台中的OEM字段
Model:对应fota平台中设备型号字段
Product id:对应fota平台中的product ID
Product secret:对应fota平台中的Product secret
Device type:对应fota平台中的设备类型
Platform:对应fota平台中的平台

CTWing product id:对应ctw平台中的产品id

CTWing fota data report service id:对应ctw平台中fota数据上报的服务id

The msg type report to CTWing:对应ctw平台中建立产品时选择的消息格式,支持JSON(2)和紧凑二进制(1)

使用注意事项

上传消息格式请参考ctw平台说明https://www.CTWing.cn/sbjr/32。

业务数据请求

上传业务数据有两种使用方式。

5.1 上传业务数据只包含业务数据

此情景上传的业务请求只包含业务数据,比如JSON格式消息为{"product_id":15059965," data":"123456”}

这种情景下,因为规则引擎设置的是fota_data字段为空转发业务平台,fota_data字段不为空转发fota平台,所以在业务消息中没有见fota_data置空,只能在每次请求完成fota后发送一条消息将fota_data字段置空。这样因为fota_data置空的这条消息能匹配转发业务平台,所以业务平台会再次转发条最后保存的业务消息,并且在进行fota请求的同时不能转发业务数据

5.2 上传业务数据包含fota_data

此情景上传的业务请求包含业务数据和fota_data置空消息,比如JSON格式消息为{"product_id":15059965," data":"123456”,”fota_data”:””}

这样就不需要每次fota请求后专门将fota_data置空,所以代码中将fota_data置空这条配置删除,cmiot_self.c中smiot_send_enpty_data_to_CTWing返回改为cmiot_false

到此,你就可以正常使用OneOS FOTA的全部功能了。

手把手教学电信NB模组使用OneOS FOTA相关推荐

  1. NB模组RSRP按比例转换为CSQ范围信号

    NB模组的信号强度指示为RSRP, 范围[-140, -44]: 但是GPRS模组信号强度指示多为CSQ, 范围[0, 31]: RSRP信号描述:     RSRP是代表无线信号强度的关键参数,反映 ...

  2. 通过微信公众号远程控制设备STM32+NB模组方案

    想要实现远程控制,无非就是三端的通信,发送设备端->服务器->接收设备端,服务器端可以选用一些常用的云服务器,阿里.百度等等.接收端就是实现控制的设备,发送设备端一般就是APP端.网页端等 ...

  3. NB模组(BC28/NB86-G)使用域名接入华为云方法

    现象 截止目前(2020-05-21),移远NB模组BC28在使用域名的情况下无法接入华为云平台,利尔达的NB模组NB86-G使用域名接入未测试. 方法 通过AT指令进行域名解析,得到IP后使用IP接 ...

  4. NB模组选型及整体方案注意事项

    一.NB模组选型考虑因素 NB模组的选型评估工作对于项目能否顺利实施至关重要.前期评估验证阶段若未做充分的工作,很可能项目进行到一半发现NB模组并不适合当前应用场景,造成项目时间和前期投入全部白费,实 ...

  5. 关于物联网2G/3G/4G/5G/NB模组开机后模组AT指令无反应/模块开机失败/模块开机不响应AT指令等问题

    一.背景 近些年物联网行业如日中天,越来越多的设备需要接入网络平台.因此无线通信模组便成为了连接物联网感知层和网络层的关键环节,属于底层硬件环节,具备其不可替代性,且无线通信模块与物联网终端存在一一对 ...

  6. NB模组中序列号,IMEI,IMSI,ICCID的含义(一些知识科普)

    概述 下面简述关于NB模组中使用,IMEI,IMSI,ICCID的含义. 什么是序列号? 序列号是一串标识你手机出生证明以及身材特征的信息,甚至还可用来识别是否为官方翻新机. 你可以简单的将这一串数字 ...

  7. 【IoT】产品研发:如何获取电信平台NB模组IMEI和IMSI号

    电信平台添加设备时需要IMEI和IMSI号,如何获取呢? IMEI:国际移动设备识别码(15位),用来标识模组. AT+CGSN=1 [09:44:09.263]收←◆AT+CGSN=1 +CGSN: ...

  8. NB模组基本AT指令

    1.终端开机命令 AT+CFUN=0 2.查询软件版本号 AT+CGMR 3.查询设备号 AT+CGSN=1 4.设置设备号 AT+NTSETID=1,xxxxx 5.设置IOM南向地址 AT+NCD ...

  9. C语言实现BC28NB模组上报数据到电信云

    目录 前言 一.串口层 1.comport_open() 2.comport_conf() 3.comport_close() 4.int comport_send() 二.指令操作层 1.send_ ...

最新文章

  1. 以后看下try,catch在C#下面的成本
  2. Linux之父警告全球程序员:我刚发布的5.12内核有bug,你们千万别用
  3. 电脑知识--Windows一片
  4. [网络安全提高篇] 一一五.Powershell恶意代码检测 (3)Token关键词自动提取
  5. 一线互联网公司的工程师们更应该增长技术以外的职场经验
  6. 在SQL Server Management Studio 中建立外键约束
  7. 如何在Mac上删除其他存储
  8. Sublime text3 Version 3.2.1 3207 和 3.2.2 3211(2019-11-06亲测有效)
  9. 大规模WebGL应用引发浏览器崩溃的几种情况及解决办法
  10. 结合Zemax浅谈几何光学和信息光学中的成像,孔径光阑,视场光阑
  11. creo绘图属性模板_creo绘图属性
  12. 物理学上四大神兽之拉普拉斯妖是指什么
  13. 打造自己的域名转向
  14. android 屏蔽系统输入法自定义输入法的详解
  15. 财务自开发系统的一些想法(实现篇)
  16. 计算机运行游戏卡顿,Win7电脑玩游戏出现卡顿如何解决?
  17. ios 按钮文字下划线_iOS - UIButton设置文字标题下划线以及下划线颜色
  18. python3分解质因数_Python 质因数分解的研究
  19. iOS开发的Sketch之旅
  20. FastJson - JSONObject 如何设置成有序?(如:LinkedHashMap)

热门文章

  1. 字体图标使用-修改颜色
  2. 关于React中useRef
  3. IDEA2020创建Maven项目卡在[INFO] Generating project in Batch mode状态(Maven配置阿里镜像)
  4. 大数据周刊专访Kyligence CTO李扬 | 我们让数据驱动你的每一个重要决策
  5. [译]未雨绸缪之:静态资源处理
  6. 短代码的java打地鼠_女白领在家无聊玩打地鼠游戏,不经意间已经学会了Python编程...
  7. Android麦克风录音的实现
  8. 百面机器学习(2)——模型评估
  9. 如何使用Quire管理产品积压
  10. 人工智能自动组方实习笔记2—萤火虫算法