表盘/应用传输¶
表盘/应用传输是指将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;
}