haas506 2.0开发教程-hota(仅支持2.2以上版本)

最新案例教程点击下方链接跳转,CSDN已停止更新

点击跳转HaaS506官方最新案例







1.hota.py升级

案例说明

使用HTTP协议实现OTA空中升级,更新开发板的python程序。只需要获取存储位置相应的URL就可以进行更新。(案例使用阿里云OSS进行演示,用户根据需要自行更改存储位置)

(1)获取URL

将最新程序上传阿里云OSS。获取存储位置的URL。

  1. 将main.py和board.json文件压缩成zip格式文件
    在这里插入图片描述
  2. 阿里云创建Bucket

在这里插入图片描述

  1. 上传文件zip文件

在这里插入图片描述

  1. 点击详情 - 复制文件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

clientfotaPyfotaSys
初始化py固件升级pac固件升级

hota - 固件升级模块

  • 模块功能:用于py固件升级,或者pac固件升级

client - 初始化固件升级

  • 函数功能: 初始化,创建一个固件升级

  • 函数原型:

hota.client()

  • 参数说明: 无

fotaPy - py固件升级

  • 函数功能: py固件升级

  • 函数原型:

hota.fotaPy(url)

  • 参数说明:
参数说明
urlurl是固件地址,支持http,不支持https

fotaSys - pac固件升级

  • 函数功能: pac固件升级

  • 函数原型:

hota.fotaSys(url)

  • 参数说明:
参数说明
urlurl是固件地址,支持http,不支持https
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值