本地OTA

如果暂时没有OTA服务器,我们又想测试下OTA的功能是否工作,我们可以在本地Windows或者Linux电脑上也可以模拟。首先需要准备一下Python环境,下面以Windows为例。

  1. 安装Python 3.12.6 (https://www.python.org/ftp/python/3.12.6/python-3.12.6-amd64.exe)

  2. 将Python的安装目录添加到Windows系统变量中

    ../../_images/0-python-env.png

    注意:必须添加到系统变量Path中,添加到用户变量Path中可能不生效

  3. 在PowerShell窗口或者cmd窗口中验证Python是否可用

    ../../_images/0-python-version.png

  4. 在PowerShell窗口中使用ipconfig命令查看本机的IP地址

    ../../_images/0-windows-shell.png

  5. 打开 OTA升级 例程

    ../../_images/1-open-demo.png

  6. 在ota控件的“链接”属性中填入 http://ip:8000/ota.json, 并勾选“生成Json”属性

    ../../_images/1-ota-url.png

  7. 构建工程,下载应用,将App烧写到设备上

    ../../_images/1-flash-app.png

  8. 在工程界面中修改控件位置或者大小,再次构建工程,打开文件夹,可以看到在build目录下面有一个ota文件夹,我们暂时可以不用关心里面的内容。

    ../../_images/2-open-folder.png ../../_images/3-ota-folder.png

  9. 在PowerShell窗口中 cd 到 ota 目录, 执行命令进行网络监听

    python -m http.server 8000 --bind 0.0.0.0
    

    ../../_images/4-python-httpserver.png

  10. 临时关闭Windows公共网络防火墙,要不然屏幕不能访问Windows的8000端口

    ../../_images/8-windows-firewall.png

  11. 在屏幕上点击 “检测” 按钮,观察检测结果提示,如果显示0表示没有可用的ota更新,如果显示1表示有可用的更新;也可以在调试器的日志中观察

    ../../_images/5-ota-no-upgradable.png ../../_images/6-ota-has-upradable.png ../../_images/9-debugger-has-upradable.png

  12. 在屏幕上点击“升级”按钮,观察进度条的进度;也可以在调试器中观察ota日志

    ../../_images/7-ota-upgrading.png ../../_images/10-ota-upgrading-log.png

  13. ota升级成功后,设备会自动重启,至此一个完整的ota升级完成,可以在工程中修改ota控件的“链接”属性为真实的ota服务器地址进行测试。