eg800z ota升级

eg800z如何制作全量升级包, 使用quecpython开发。升级时是否可以将升级包上传到ftp服务器, 然后提供一个http的url供下载升级?

EG800Z 使用 QuecPython 做 OTA 时,先区分升级类型:

  1. 模组固件全量升级包 / FOTA
    全量固件升级包通常需由移远根据具体模组型号、当前固件版本、目标固件版本生成或提供,用户侧不建议自行制作固件全量包。
    如需申请对应升级包,请提供邮箱地址,以便为您发送或对接对应资料。

  2. QuecPython 应用脚本升级 / SOTA
    如果只是升级 Python 脚本、资源文件等应用层内容,可按 QuecPython 应用 OTA 方式制作应用升级包,不等同于模组底层固件全量包。

关于服务器放置方式:

  • 可以将升级包上传到服务器。
  • 模块侧用于下载升级时,建议提供 HTTP/HTTPS 可直接访问的 URL
  • 如果文件实际存放在 FTP 服务器上,但该服务器同时提供 HTTP 访问能力,且 URL 能直接下载到升级包,则可以使用。
  • 不建议仅提供 ftp:// 链接作为升级 URL,需以实际 OTA 下载接口支持的协议为准。

简要结论:
固件全量包需由移远侧提供;应用层升级包可自行制作。升级包可以放在服务器上,但模块侧应使用可直接下载的 HTTP/HTTPS URL。

本回答仅供参考。若问题已解决,可标记为 :white_check_mark:解决方案 ;若仍有疑问,请等待官方技术人员回复,最终请以专业解答为准。

QuecPython 应用脚本升级 / SOTA怎么制作?

app_fota - 用户文件升级相关功能 - QuecPython sota即app_fota,可以看一下这个部分

那这样检测是否需要升级,就需要为每一个python文件加一个版本号,你们有没有更好的方法?

1.EG800Z不支持全量升级,只支持差分升级,参考视频

【DFota差分升级讲解】https://www.bilibili.com/video/BV13wRWYwEyW/

2.您说的检测是否需要升级是什么意思,appfota升级是你这边主动发起的

我想通过服务器读取设备的版本号, 和服务器上的进行对比, 如果服务器上的脚本比设备上的更新, 则进行升级, 否则不升级. 但是我的python文件有20多个, 以后可能更多, app_fota升级是每一个python文件单独升级, 这样就需要每一个python文件都有一个版本号, 这样才知道哪个脚本需要升级, 才可以用这种方式管理 .

也可以把整个脚本分区打包成一个压缩包,升级的时候下载整个压缩包,再解压,uzlib - zlib解压缩 - QuecPython

我还是选择了每个文件单独下载。

现在有另一个问题,我想将py文件编译成mpy文件,然后再下载到设备,这样可以减少体积,也可以保密,可以提供一下编译器吗

您可以在合并固件时直接选择加密脚本,QPYcom 固件脚本合并 - QuecPython

而如果说需要将mpy文件作为升级文件的话,那么可以将mpy文件从模组中导出,或者采用单个文件加密的方案,注意不可以加密main.py

mpy-cross-win32.zip (291.6 KB)

有没有ubuntu版本?

建议您使用windows版本对文件加密,linux版本的工具其实也有,在qpycom的ubuntu版本中,需要根据ubuntu版本的不同自行提取