API调试-网络调试助手

本页目录

1. 鉴权参数

2. 上报版本

3. 检测任务

4. 下载固件

5. 上报状态

OTA包括模组升级和MCU应用升级两类,待升级设备通过HTTP协议RESTful标准格式与OneNET平台进行数据交互以完成升级。南向设备目前所需的RESTful API一共有三类:检测任务、拉取文件、上报状态。

本部分内容主要介绍网络调试助手使用API测试拉取固件的过程,为研发人员组包测试提供参考。

1. 鉴权参数

鉴权参数说明请参考API鉴权

这里采用Python来计算Authorization,实际使用时,更改产品id和accesskey即可。Python代码如图1所示。

代码下载地址:

JAVA代码、Python代码下载C代码下载


图 1 Python代码示例

计算出来的鉴权参数:

version=2018-10-31&res=products%2F198290&et=7555917657&method=sha1&sign=ZUXNMUqvAbuH0uHs0S1pd%2BgflNE%3D

2. 上报版本

网络调试助手作为客户端,连接IP:183.230.40.50,端口:50,如图2所示。

POST http://ota.heclouds.com/ota/device/version?dev_id=522747162 HTTP/1.1
Content-Type: application/json
Authorization:version=2018-10-31&res=products%2F198290&et=7555917657&method=sha1&sign=ZUXNMUqvAbuH0uHs0S1pd%2BgflNE%3D
host:ota.heclouds.com
Content-Length:20

{"s_version":"V1.3"}

图 2 上报版本

3. 检测任务

manuf=102&model=10201这两个参数的取值如下表所示。

dev_id=522747162需要修改为升级的设备id。其他参数不改变。

芯片平台芯片型号厂商编号芯片编号
nordicESP3210110101
乐鑫nrf5283210210201
兆易GD3210310301
其他其他10010001
GET /ota/south/check?dev_id=522747162&manuf=102&model=10201&type=2&version=V11&cdn=false HTTP/1.1
Authorization:version=2018-10-31&res=products%2F198290&et=7555917657&method=sha1&sign=ZUXNMUqvAbuH0uHs0S1pd%2BgflNE%3D
host:  ota.heclouds.com
//此处有个换行,使用时请删除此行内容,保留换行符
//此处有个换行,使用时请删除此行内容,保留换行符

图 3 检测任务

4. 下载固件

如图4所示。

GET /ota/south/download/ota_JcWgqjwXigKAfRayjjUW HTTP/1.1
Range:bytes=0-5
host:  ota.heclouds.com
//此处有个换行,使用时请删除此行内容,保留换行符
//此处有个换行,使用时请删除此行内容,保留换行符

图 4 下载固件

拉取部分文件时,修改头部Range字段。

Range: bytes={start}-{end},目前只支持如下几种模式:

1、Range: bytes={start}-,获取第{start}+1个字节到最后的数据
  例如:Range: bytes=0-,获取所有数据
  Range: bytes=2-,获取第3个数据到最后1个数据
  注意:如果{start}>=文件总长度,则默认{start}=0

2、Range: bytes={start}-{end},获取第{start}+1个字节到第{end}+1个字节
  例如:Range: bytes=0-99,获取前100个字节
  注意:若{end}>=文件总长度len,则默认end=len-1
  若{start}>{end},start被设置为0

3、Range: bytes=-{end},获取最后end个字节数据
  例如:Range: bytes=-100,获取最后100个字节数据

如果{end}大于文件总长度len,则默认end=len(获取所有文件)。

状态码

分片返回的状态码:206

不分片返回的状态码:200

5. 上报状态

POST /ota/south/device/download/ota_3lI1NIMLB6E4u260cLRd/progress?dev_id=522747162 HTTP/1.1
Authorization:version=2018-10-31&res=products%2F198290&et=7555917657&method=sha1&sign=ZUXNMUqvAbuH0uHs0S1pd%2BgflNE%3D
host:ota.heclouds.com
Content-Type: application/json
Content-Length:11

{"step":54}//上报下载进度为54%

图 5 上报下载进度
POST /ota/south/device/download/ota_3lI1NIMLB6E4u260cLRd/progress?dev_id=522747162 HTTP/1.1
Authorization:version=2018-10-31&res=products%2F198290&et=7555917657&method=sha1&sign=ZUXNMUqvAbuH0uHs0S1pd%2BgflNE%3D
host:ota.heclouds.com
Content-Type: application/json
Content-Length:12

{"step":201}//表示升级完成

图 6 上报状态-升级完成

说明

1、设备在下载升级包的过程中(分片下载),可以根据需要上报下载进度(设备处于“下载中”,才能上报step=[0,100])

2、如果设备上报的下载进度为100(即step:100),那么平台会将设备的升级状态从“正在下载”修改为“正在升级”状态

3、只有当设备处于“正在下载”状态时,设备才能够使用该接口上报下载进度,其他状态将返回“invalid state”的错误

4、step如果大于100,将作为上报状态使用(设备处于:待升级、下载中、升级中,这三个状态时,可以通过上报如下状态码完成升级流程。其他状态如:已取消,升级失败、升级成功、暂停时,不能上报如下状态):

result码说明result码说明
101升级包下载成功。102下载失败,空间不足
103下载失败,内存溢出104下载失败,下载请求超时
105下载失败,电量不足106下载失败,信号不良
107下载失败,未知异常--
201升级成功202升级失败,电量不足
203升级失败,内存溢出204升级失败,版本不一致
203升级失败,内存溢出204升级失败,版本不一致
205升级失败,MD5校验失败206升级失败,未知异常
207达到最大重试次数208设备升级过期

上报升级成功状态后,平台会显示任务状态为完成。

个搜索结果,搜索内容 “

    0 个搜索结果,搜索内容 “