RISC-V大赛开发套件详解(六):D1哪吒开发板HaaS-UI FOTA 升级

简介: 本期内容是HaaS-UI实战教学部分的最后一篇,同时也是D1 哪吒开发板上手教学的完结篇。我们将手把手教大家在D1 哪吒开发板上实现HaaS-UI的FOTA升级功能。

概述

本文介绍D1哪吒开发板上,基于HaaS-UI的FOTA功能。


01

相关文件介绍

FOTA涉及到的文件较多,下文将分模块展开描述。


2.1 fota service

/usr/bin/fota_service FOTA服务启动主程序


2.2 JS 播放器

haas-ui-demo/src/libs/fota.js JS FOTA库


haas-ui-demo/src/pages/cases/components/fota.vue FOTA demo界面


2.3 Yocto描述

meta-d1/recipes-devtools/fota/thead-fota-d1_1.0.0.bb yocto fota service服务描述


03

框架介绍

FOTA服务框架采用通用的C/S架构,服务端提供离线语音功能和在线语音等功能。客户端可以接收服务端发出的事件,也可以向服务端发送控制命令。如下图框架:FOTA服务FOTA Service为一个进程,单独运行;FOTA Client(JS)为一个进程,haas-ui中运行。两者通过D-Bus通信。

image.png

D-Bus介绍

D-Bus是一种高级的进程间通信机制,它由freedesktop.org项目提供,使用AFL和GPL双许可证发行。D-Bus 提供system守护进程(用于“添加新硬件设备”或“打印队列更改”等事件)和per-user-login-session守护进程(用于用户应用程序之间的一般 IPC 需求)。此外,消息总线建立在通用的一对一消息传递框架之上,任何两个应用程序都可以使用该框架进行直接通信(无需通过消息总线守护进程)。


目前,通信应用程序在一台计算机上,或者通过未加密的 TCP/IP 进行,适合在具有共享 NFS 主目录的防火墙后面使用。D-Bus最主要的用途是在Linux桌面环境为进程提供通信,同时能将Linux桌面环境和Linux内核事件作为消息传递到进程。D-Bus的主要概率为总线,注册后的进程可通过总线接收或传递消息,进程也可注册后等待内核事件响应,例如等待网络状态的转变或者计算机发出关机指令。目前,D-Bus已被大多数Linux发行版所采用,开发者可使用D-Bus实现各种复杂的进程间通信任务。在D1 开发板JS轻应用平台中,服务使用D-Bus通信机制对外提供事件信号(Signal)和方法(Method Call)。服务使用的是D-Bus的系统总线(System Bus)。


04

HaaS-UI界面操作

4.1 FOTA升级

进入到HaaS-UI的“FOTA”界面:

640 (8).png

05

OCC添加镜像

5.1 进入控制台

注册或登录平头哥芯片开发社区(OCC)控制台


OCC网址:

https://occ.t-head.cn/?spm=a2cl5.25411629.0.0.278e180ffqdsgH

640 (9).png

5.2 添加产品

  • 在平头哥芯片开发社区上创建产品,在控制台->FOTA服务->添加产品,填写产品信息并提交。

640 (10).png

注意:【产品型号】需要设置到设备中,后续操作会说明。


  • 提交完成后页面中生成产品列表,在新建产品的右侧点击编辑按钮,可进入产品的详细配置界面。

640 (11).png

5.3 初始固件的添加及发布

  • 进入产品详细配置界面中选择FOTA选项卡,点击添加固件 进入添加新版本设置。
    640 (12).png

添加新版本页面中填写名称以及版本号、上传工程目录下生成的generated/images.zip镜像包并提交。

image.png

  • 点击上一步骤提交的待发布固件名称,并点击发布,等待服务器处理十几秒即完成版本发布。


image.png


确认版本状态为已发布后,下载发布后的镜像至本地。

image.png

5.4 升级固件的添加及发布再次将设备升级后的版本固件通过添加固件上传

image.png


image.pngOCC升级设备管理

6.1 生成许可证

OCC平台会对每一个设备颁发一个许可证,用于设备升级,并需把许可证信息配置到设备中。进入产品详细配置界面中选择许可证选项卡:

image.png

页面中点击下载开始下载许可证数据。解压后,pieces目录中以设备ID为文件名,保存了每个设备的信息。通过文件名获取设备ID,后续操作会说明。


6.2 添加标签

  • 标签是用来区分升级的设备组,一个标签可以包含多个设备,版本升级通过选择不同的标签来确定需要升级的设备。点击【添加标签】,为设备添加标签。

image.png

6.3 设置升级策略

  • 通过点击升级版本对应操作栏下的升级策略设置版本之间的升级策略

image.png





相关文章
|
3月前
|
Android开发 缓存 双11
android的基础ui组件,Android开发社招面试经验
android的基础ui组件,Android开发社招面试经验
android的基础ui组件,Android开发社招面试经验
|
26天前
|
数据可视化 前端开发 开发者
花样玩转“所见即所得”的可视化开发UI
【7月更文挑战第12天】WYSIWYG)的可视化开发UI带来的便利与创新: 降低开发门槛: 即使无编程基础也能通过直观操作快速构建界面。 提高开发效率: 实时预览减少代码与预览间的频繁切换。 促进团队协作: 设计师与开发者可在同一界面交流修改。 增加创意实现: 自由尝试布局、颜色与交互方式以验证想法。 此类工具(如Adobe XD、Figma、Sketch等)正变革软件开发方式,带来更高效、具创意及易操作的体验。
|
30天前
|
前端开发 JavaScript SEO
开发与运维开发问题之fx(props) = UI如何解决
开发与运维开发问题之fx(props) = UI如何解决
|
1月前
uniapp 安装插件 uView (多平台快速开发的UI框架)
uniapp 安装插件 uView (多平台快速开发的UI框架)
55 0
|
1月前
|
JavaScript
vue项目中升级element ui(含常见报错及解决方案,如表格不显示,el-table无效, “__v_isRef“ is not defined,Use :deep() instead)
vue项目中升级element ui(含常见报错及解决方案,如表格不显示,el-table无效, “__v_isRef“ is not defined,Use :deep() instead)
24 0
|
2月前
|
机器学习/深度学习 移动开发 文字识别
视觉智能开放平台产品使用合集之h5页面使用人脸活体检测,是否需要自己开发UI
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
|
3月前
|
JavaScript API
鸿蒙开发接口UI界面:【@ohos.mediaquery (媒体查询)】
鸿蒙开发接口UI界面:【@ohos.mediaquery (媒体查询)】
48 1
|
3月前
UI开发第四篇——实现像handcent sms或者chomp sms那样的气泡
UI开发第四篇——实现像handcent sms或者chomp sms那样的气泡
27 2
|
3月前
|
Android开发 开发者 UED
探索安卓应用开发中的UI设计趋势
随着移动应用市场的不断发展和用户需求的变化,安卓应用的UI设计趋势也在不断演进。本文将深入探讨当前安卓应用开发中的UI设计趋势,包括暗黑模式、原生化设计、动效设计等方面的发展趋势,为开发者提供参考和启发。
|
3月前
|
开发框架 前端开发 JavaScript
【Flutter前端技术开发专栏】Flutter中的动态UI构建与数据驱动视图
【4月更文挑战第30天】Flutter是一款高效跨平台移动开发框架,以其热重载、高性能渲染和丰富组件库著称,简化了动态UI和数据驱动视图的实现。本文深入讨论了动态UI构建原理,包括基于Widget树模型的UI更新和状态管理,如使用StatefulWidget和数据流库(如Provider、Redux)。此外,文中还介绍了实现技巧,如使用ListView等可滚动组件、StreamBuilder进行数据流驱动的UI更新,以及应用响应式布局以适应不同设备。Flutter为开发者提供了构建高效动态界面的强大工具。
72 0
【Flutter前端技术开发专栏】Flutter中的动态UI构建与数据驱动视图