haas506 2.0开发教程-hota
最新案例教程点击下方链接跳转,CSDN已停止更新
点
击
跳
转
1.hota.py升级
案例说明
使用HTTP协议实现OTA空中升级,更新开发板的python程序。只需要获取存储位置相应的URL就可以进行更新。(案例使用阿里云OSS进行演示,用户根据需要自行更改存储位置)
(1)获取URL
将最新程序上传阿里云OSS。获取存储位置的URL。
- 将main.py和board.json文件压缩成zip格式文件
- 阿里云创建Bucket
- 上传文件zip文件
- 点击详情 - 复制文件URL(可适当加长时间,超时后URL将会失效)
(2)功能代码
将复制的url填入代码
main.py
import utime as time
from modem import net
import hota
import network
import sntp
from modem import info
import system
pyversion="202204281243"
g_connect_status = False
def on_4g_cb(args):
global g_connect_status
pdp = args[0]
netwk_sta = args[1]
if netwk_sta == 1:
g_connect_status = True
else:
g_connect_status = False
def connect_network():
global netw,on_4g_cb,g_connect_status
netw = network.NetWorkClient()
g_register_network = False
if netw._stagecode is not None and netw._stagecode == 3 and netw._subcode == 1:
g_register_network = True
else:
g_register_network = False
if g_register_network:
netw.on(1,on_4g_cb)
netw.connect(None)
else:
print('network register failed')
while True:
if g_connect_status:
print('network register successed')
break
time.sleep_ms(20)
#py升级包里包含的是haas506的python脚本升级包,.zip格式的文件
def ota_py_app():
global ota_flag
#初始化
hot = hota.client()
#修改url
#########################################################################
ota_url = "填入复制的url替换"
#########################################################################
ota_flag = 0
if hot.fotaPy(ota_url) == 0: #py固件下载成功,重启设备
print('------------------htp.pyfotaPy')
time.sleep_ms(1000)
system.reset()
else:
print('pyota failed!')
if __name__ == '__main__':
connect_network()#连接网络
pacversion = info.getDevFwVersion()
print('---------------------------pacversion={}'.format(pacversion))
sntp.settime()#SNTP对时
print("csq:",net.getCsq())
print('pyversion:{}'.format(pyversion))
time.sleep(5)
ota_py_app()
while True:
print('httpota test')
time.sleep(3)
(3)输出log
network register successed
csq: 31
pyversion:202203281800
------------------htp.pyfotaPy
#重启
#最新程序的log
2.hota.pac升级
案例说明
- 固件pac包有需要可以私聊支持
- 具体升级步骤和py升级类似
(1)获取URL
获取到pac固件包后,如上方法,将pac包存入oss,复制url。
(2)功能代码
将复制的url填入代码
main.py
import utime as time
from modem import net
import hota
import network
import sntp
from modem import info
import system
pyversion="202204281243"
g_connect_status = False
def on_4g_cb(args):
global g_connect_status
pdp = args[0]
netwk_sta = args[1]
if netwk_sta == 1:
g_connect_status = True
else:
g_connect_status = False
def connect_network():
global netw,on_4g_cb,g_connect_status
netw = network.NetWorkClient()
g_register_network = False
if netw._stagecode is not None and netw._stagecode == 3 and netw._subcode == 1:
g_register_network = True
else:
g_register_network = False
if g_register_network:
netw.on(1,on_4g_cb)
netw.connect(None)
else:
print('network register failed')
while True:
if g_connect_status:
print('network register successed')
break
time.sleep_ms(20)
#pac升级包里包含的是haas506的pac差分升级包,.pack格式的文件
def ota_pac_app():
global ota_flag
#初始化
hot = hota.client()
#填入url
#########################################################################
ota_url = "填入复制的url替换"
#########################################################################
if hot.fotaSys(ota_url) == 0: #pac固件下载成功,重启设备
print('------------------htp.pacfotaPy')
time.sleep_ms(1000)
system.reset()
else:
print('pacota failed!')
if __name__ == '__main__':
connect_network()#连接网络
pacversion = info.getDevFwVersion()
print('---------------------------pacversion={}'.format(pacversion))
sntp.settime()#SNTP对时
print("csq:",net.getCsq())
print('pyversion:{}'.format(pyversion))
time.sleep(5)
ota_pac_app()
while True:
print('httpota test')
time.sleep(3)
(3)输出log
network register successed
csq: 31
pyversion:202203281800
------------------------------------htp.pacfotaPy
#重启
(4)查看固件版本
运行以下程序,查看当前固件版本。
from modem import info
print("设备固件版本",info.getDevFwVersion())
3.Class-hota
client | fotaPy | fotaSys |
---|---|---|
初始化 | py固件升级 | pac固件升级 |
hota - 固件升级模块
- 模块功能:用于py固件升级,或者pac固件升级
client - 初始化固件升级
-
函数功能: 初始化,创建一个固件升级
-
函数原型:
hota.client()
- 参数说明: 无
fotaPy - py固件升级
-
函数功能: py固件升级
-
函数原型:
hota.fotaPy(url)
- 参数说明:
参数 | 说明 |
---|---|
url | url是固件地址,支持http,不支持https |
fotaSys - pac固件升级
-
函数功能: pac固件升级
-
函数原型:
hota.fotaSys(url)
- 参数说明:
参数 | 说明 |
---|---|
url | url是固件地址,支持http,不支持https |