表盘/应用传输

表盘/应用传输是指将SiFliGUIBuilder(简称 GUIBuilder)编辑,发布生成的{APP_ID}.zip通过OTA V3 SDK 下载到思澈板子的过程。OTA V3 SDK的集成,接口定义请参照 OTA V3 SDK

1.GUIBuilder 表盘[9]

表盘文件为.zip格式。在GUIBuilder编辑好表盘后, 工具栏 生成->发布菜单生成。zip内部结构如下

  • 表盘Zip 结构

文件名

格式

路径

{app_id}.bin

bin

{app_id}/{app_id}.bin

  • 传输方式

OtaV3Type = 9,OtaV3ResourceFileInfo 构建时第三个参数align填false.GuiBuilder 打包时已经对文件进行了4字节对齐和末尾添加4字节CRC值。 以android端为例

  OtaV3ResourceFileInfo resourceFileInfo = new OtaV3ResourceFileInfo(OtaV3DfuFileType.ZIP_RESOURCE,this.resFilePath,false);
 
  this.otaManager.startOtaV3(this.targetMac, OtaV3Type.OTA_SIFLI_WATCHFACE,resourceFileInfo,false);

2.GUIBuilder App[12]

App文件为.zip格式。在GUIBuilder编辑好表盘后, 工具栏 生成->发布菜单生成。zip内部结构如下

  • App zip 结构

文件名

格式

路径

{app_id}.bin

bin

{app_id}/{app_id}.bin

xxx.py

Python

{app_id}/xxx.py

  • 传输方式

OtaV3Type = 12,OtaV3ResourceFileInfo 构建时第三个参数align填false.GuiBuilder 打包时已经对文件进行了4字节对齐和末尾添加4字节CRC值。 以android端为例

  OtaV3ResourceFileInfo resourceFileInfo = new OtaV3ResourceFileInfo(OtaV3DfuFileType.ZIP_RESOURCE,this.resFilePath,false);

  this.otaManager.startOtaV3(this.targetMac, OtaV3Type.OTA_SIFLI_APP,resourceFileInfo,false);

3.GUIBuilder App 扩展资源[13]

扩展资源用于替换App中制定UID图片,

  • 扩展资源 zip 结构

文件名

格式

路径

{UID}.bin

bin,扩展资源

gui_tool/tool_app/{app_id}/

gui_tool/tool_app 这个路径在GUIBuilder 设置中根据板子类型设定。

  • 传输方式

OtaV3Type = 13,OtaV3ResourceFileInfo 构建时第三个参数align视情况,如果打包为zip之前没有进行4字节对齐和CRC添加,需要设定为true. 以android端为例

  OtaV3ResourceFileInfo resourceFileInfo = new OtaV3ResourceFileInfo(OtaV3DfuFileType.ZIP_RESOURCE,this.resFilePath,true);

  this.otaManager.startOtaV3(this.targetMac, OtaV3Type.OTA_SIFLI_APP_RES,resourceFileInfo,false);

4.Solution 110资源[0-8]

soution 110时期的资源传输在solution 2.0上也整合到了OTA V3 SDK.OtaV3Type如下。

0-表盘,1-多语言,2-背景图,3-自定义,4-音乐,5-JS,8-4G模块

举例说明,比如要传输OtaV3Type=0,动态表盘

  OtaV3ResourceFileInfo resourceFileInfo = new OtaV3ResourceFileInfo(OtaV3DfuFileType.ZIP_RESOURCE,this.resFilePath,false);

  this.otaManager.startOtaV3(this.targetMac, 0,resourceFileInfo,false);

5.附录

  • OtaV3Type 定义

public class OtaV3Type {
    /**表盘 带路径,对齐*/
    public static int OTA_DYNAMIC_MODULE = 0;
    /**多语言 带路径,对齐*/
    public static int OTA_MUTIL_LANGUAGE = 1;
    /**背景图 带路径,对齐*/
    public static int OTA_BG_PICTURE = 2;
    /**自定义文件 带路径,对齐*/
    public static int OTA_CUSTOM_FILE = 3;
    /**音乐 不带路径,*/
    public static int OTA_MUSIC = 4;
    /**qjs 带路径,对齐*/
    public static int OTA_QJS = 5;
    /**拍照预览 不带路径,未实现*/
    public static int OTA_PHOTO_VIEW = 7;
    /**4g模块 不带路径,不对齐,未实现*/
    public static int OTA_AIC_MODULE = 8;
    /**sifliguibuiler 产生的表盘 不带路径,对齐*/
    public static int OTA_SIFLI_WATCHFACE = 9;
    /**固件升级*/
    public static int OTA_FIRMWARE = 10;
    public static int OTA_FIRMWARE_MANAGER = 11;
    /**sifliguibuilder app  不带路径,对齐*/
    public static int OTA_SIFLI_APP= 12;
    /**app 拓展资源 带路径,对齐*/
    public static int OTA_SIFLI_APP_RES = 13;
    /**app 拓展组件 带路径,对齐*/
    public static int OTA_SIFLI_APP_WIDGET = 14;
    /**app 拓展组件 带路径,对齐*/
    public static int OTA_PYTHON_APP = 15;
  
}