AWTK 开源串口屏开发(8) - 系统设置

news2024/9/29 19:14:24

AWTK 开源串口屏开发 - 系统设置

系统设置只是一个普通应用程序,不过它会用 默认模型 中一些内置的属性和命令,所以这里专门来介绍一下。

1. 功能

在这个例子会用到 默认模型 中一些下列内置的属性和命令:

  • 内置属性
属性类型说明
rtc_yearintRTC 年
rtc_monthintRTC 月
rtc_dayintRTC 日
rtc_hourintRTC 时
rtc_minuteintRTC 分
rtc_secondintRTC 秒
rtc_ymdstringRTC 年月日,格式为 YYYY-MM-DD 或 YYYY/MM/DD
rtc_hmsstringRTC 时分秒,格式为 HH:MM:SS
backlightint背光亮度 (0-100)
audio_volumeint音量 (0-100)
ui_feedbackboolUI 反馈。true 启用反馈 (beep), false 禁用反馈
  • 内置命令
命令参数说明
set_rtc将属性 rtc_year, rtc_month, rtc_day, rtc_hour, rtc_minute, rtc_second 设置为系统 RTC 时间
get_rtc获取系统 RTC 时间,并设置到属性 rtc_year, rtc_month, rtc_day, rtc_hour, rtc_minute, rtc_second, rtc_wday
save保存配置

2. 创建项目

从模板创建项目,将 hmi/template_app 拷贝 hmi/settings 即可。

最好不要放到其它目录,因为放到其它目录需要修改配置文件中的路径,等熟悉之后再考虑放到其它目录。路径中也不要中文和空格,避免不必要的麻烦。

3. 制作界面

用 AWStudio 打开上面 settings 目录下的 project.json 文件。

里面有一个空的窗口,在上面加入下面的控件,并调节位置和大小,做出类似下面的界面。

在这里插入图片描述

再创建一个新窗口,命名为 basic,并加入下面的控件,并调节位置和大小,做出类似下面的界面。

在这里插入图片描述

再创建一个新窗口,命名为 rtc,并加入下面的控件,并调节位置和大小,做出类似下面的界面。

在这里插入图片描述

需要给编辑器设置输入类型、最大值和最小值。实际项目可能会用文本选择控件代替编辑器,不过绑定方法是一样的。

3. 添加绑定规则

3.1 主界面 (home_page)

  • 基本设置 按钮的 点击 事件绑定到 navigate 命令。添加自定义的属性 v-on:click,将值设置为 {navigate, Args=basic}
绑定属性绑定规则说明
v-on:click{navigate, Args=basic}navigate 命令是导航命令,用于打开窗口,Args=后面跟目标窗口的名称。
  • 时间设置 按钮的 点击 事件绑定到 navigate 命令。添加自定义的属性 v-on:click,将值设置为 {navigate, Args=rtc}
绑定属性绑定规则说明
v-on:click{navigate, Args=rtc}navigate 命令是导航命令,用于打开窗口,Args=后面跟目标窗口的名称。

命令和参数要用英文大括号括起来。

3.2 基本设置 (basic)

  • 背光 滑动条 绑定到 backlight 变量。添加自定义的属性 v-data:value,将值设置为 {backlight}
绑定属性绑定规则说明
v-data:value{backlight}变量要用英文大括号括起来。
  • 音量 滑动条 绑定到 audio_volume 变量。添加自定义的属性 v-data:value,将值设置为 {audio_volume}
绑定属性绑定规则说明
v-data:value{audio_volume}变量要用英文大括号括起来。
  • 开启屏幕音 绑定到 ui_feedback 变量。添加自定义的属性 v-data:value,将值设置为 {ui_feedback}
绑定属性绑定规则说明
v-data:value{ui_feedback}变量要用英文大括号括起来。
  • 确定 按钮的 点击 事件执行命令 “{save}”。添加自定义的属性 v-on:click,将值设置为:
{save, CloseWindow=true}

CloseWindow=true,表示执行命令并关闭当前窗口。

命令和参数要用英文大括号括起来。

  • 同样指定窗口的模型为 default。
绑定属性绑定规则说明
v-modeldefaultdefault 不需要用大括号括起来。

3.3 时间设置 (rtc)

  • 年 编辑器 绑定到 rtc_year 变量。添加自定义的属性 v-data:value,将值设置为 {rtc_year}
绑定属性绑定规则说明
v-data:value{rtc_year}变量要用英文大括号括起来。
  • 月 编辑器 绑定到 rtc_month 变量。添加自定义的属性 v-data:value,将值设置为 {rtc_month}
绑定属性绑定规则说明
v-data:value{rtc_month}变量要用英文大括号括起来。
  • 日 编辑器 绑定到 rtc_day 变量。添加自定义的属性 v-data:value,将值设置为 {rtc_day}
绑定属性绑定规则说明
v-data:value{rtc_day}变量要用英文大括号括起来。
  • 时 编辑器 绑定到 rtc_hour 变量。添加自定义的属性 v-data:value,将值设置为 {rtc_hour}
绑定属性绑定规则说明
v-data:value{rtc_hour}变量要用英文大括号括起来。
  • 时 编辑器 绑定到 rtc_minute 变量。添加自定义的属性 v-data:value,将值设置为 {rtc_minute}
绑定属性绑定规则说明
v-data:value{rtc_minute}变量要用英文大括号括起来。
  • 秒 编辑器 绑定到 rtc_second 变量。添加自定义的属性 v-data:value,将值设置为 {rtc_second}
绑定属性绑定规则说明
v-data:value{rtc_second}变量要用英文大括号括起来。
  • 获取时间 按钮的 点击 事件执行命令 “{get_rtc}”。添加自定义的属性 v-on:click,将值设置为:
{get_rtc}

命令和参数要用英文大括号括起来。

  • 设置时间 按钮的 点击 事件执行命令 “{set_rtc}”。添加自定义的属性 v-on:click,将值设置为:
{set_rtc}

命令和参数要用英文大括号括起来。

  • 返回 按钮的 点击 事件执行命令 “{nothing}”。添加自定义的属性 v-on:click,将值设置为:
{nothing, CloseWindow=true}

nothing 是一个特殊命令,表示什么也不做。

CloseWindow=true,表示执行命令并关闭当前窗口。

命令和参数要用英文大括号括起来。

  • 同样指定窗口的模型为 default。
绑定属性绑定规则说明
v-modeldefaultdefault 不需要用大括号括起来。

4. 初始化数据

修改资源文件 design/default/data/default_model.json, 将其内容改为:

{
  "ui_feedback":true,
  "audio_volume":60,
  "backlight":60
}

注意:

  • 如果文件内容有中文(非 ASCII 字符),一定要保存为 UTF-8 格式。

  • 重新打包资源才能生效。

5. 描述需要持久化的数据

修改资源文件 design/default/data/settings.json, 将其内容改为:

{
    "name": "hmi_settings",
    "persistent": {
        "ui_feedback": true,
        "audio_volume": true,
        "backlight": true
    }
}

如果有多个数据需要持久化,将它们加入到 settings 对象中即可。为了避免不同串口屏应用程序之间,持久化数据覆盖,这里的 name 需要取一个唯一的名字。

注意:

  • 如果文件内容有中文(非 ASCII 字符),一定要保存为 UTF-8 格式。

  • 重新打包资源才能生效。

5. 编译运行

运行 bin 目录下的 demo 程序。

在这里插入图片描述

程序退出时会自动保存需要保存的数据。

7. 注意

本项目并没有编写界面相关的代码,AWStudio 在 src/pages 目录下生成了一些代码框架,这些代码并没有用到,可以删除也可以不用管它,但是不能加入编译。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1413894.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

x-cmd pkg | httpx - 为 Python 设计的下一代 HTTP 客户端库

目录 简介首次用户功能特点进一步探索 简介 HTTPX 是一个为 Python 设计的下一代 HTTP 客户端库,由 Tom Christie 创建。它提供了同步和异步的 API,并支持 HTTP/1.1 和 HTTP/2 协议。与 Requests 库类似,但增加了对异步请求的支持和 HTTP/2 …

8通液体水位检测IC/液位检测芯片/抗干扰水位检测VK36W8I SOP16/QFN16L FAE支持

产品型号:VK36W8I 产品品牌:永嘉微电/VINKA 封装形式:SOP16/QFN16L 工程服务,技术支持! 概述 VK36W8I具有8个触摸检测通道,可用来检测8个点的水位。该芯片具有较高的集成度,仅需极少的外部组…

【汇总】解决Spring-Web与Spring-WebFlux冲突

【汇总】解决Spring-Web与Spring-WebFlux冲突 问题发现问题解决问题一:The bean requestMappingHandlerMapping, defined in class path resource [org/springframework/web/reactive/config/DelegatingWebFluxConfiguration.class],问题二:The Java/XML…

Cesium渲染白膜数据

async DrawBaiMoFun2() {// tiles 矩阵变换let changePostion = (tileSet, tx, ty, tz, rx, ry, rz, scale, center) => {if (!center) return;const m = Cesium.Transforms.eastNorthUpToFixedFrame(center);const surface =center ||Cesium.Cartesian3.fromRadians(cartog…

.NET中的matplotlib平替,ScottPlot简单使用

文章目录 前言解决方案Python调用.NET 原生解决 ScottPlot找到文章ScottPlot Nuget安装简单代码测试代码跑不了5.0新版本测试 总结 前言 我之前在学OpenCV 三语言开发的时候,遇到了一个问题,怎么可视化的显示数据。Python有matplotlib,那么C…

el-table每一行的回调方法及假删除真隐藏

html数据 <template><el-table :data"tableData" :row-class-name"rowClassName">//每一行的回调方法<el-table-column fixed prop"date" label"日期" width"150"></el-table-column><el-table…

Unknown encoder ‘libmp3lame

环境&#xff1a; macos m1 &#xff0c; python3.10.x 背景 做视频切片&#xff0c; 使用moviepy 中VideoFileClip进行截取视频。 报错&#xff1a; Unknown encoder libmp3lameThe audio export failed because FFMPEG didnt find the specified codec for audio encoding …

ArXiv| Graph-Toolformer: 基于ChatGPT增强提示以赋予大语言模型图数据推理能力

ArXiv| Graph-Toolformer: 基于ChatGPT增强提示以赋予大语言模型图数据推理能力. 来自加利福利亚大学戴维斯分校计算机科学系的IFM实验室发表在arXiv上的文章:“Graph-ToolFormer: To Empower LLMs with Graph Reasoning Ability via Prompt Augmented by ChatGPT”。 文章的…

Java 字符串 07 练习-手机号屏蔽、身份证号信息查看,游戏骂人敏感词替换

注意点&#xff1a;只有返回值才是被截取的小串&#xff0c;所以需要有一个变量去承接它&#xff1b; 自己写的代码&#xff1a; import java.util.Scanner; public class practice {public static void main(String[] args) {Scanner input new Scanner(System.in);String …

Mac Idea安装后无法启动

1、起因 想安装一个新版的idea2023.3.2&#xff0c;结果安装完之后直接无法启动 以为是卸载不干净&#xff0c;下载了一个腾讯柠檬&#xff0c;结果将2018版也一并卸载了 好家伙&#xff0c;彻底没得用 2、找原因 1&#xff09;查看idea报错信息 网上找了一圈&#xff0c;其…

架构篇28:业务高可用的保障-异地多活架构

文章目录 应用场景架构模式小结无论是高可用计算架构,还是高可用存储架构,其本质的设计目的都是为了解决部分服务器故障的场景下,如何保证系统能够继续提供服务。但在一些极端场景下,有可能所有服务器都出现故障。例如,典型的有机房断电、机房火灾、地震、水灾……这些极端…

nginx反向代理-负载均衡

nginx环境搭建 wget https://nginx.org/download/nginx-1.21.6.tar.gz&#xff08;下载nginx安装包&#xff09; tar -xvzf nginx-1.21.6.tar.gz&#xff08;解压缩&#xff09; yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel&#xff08;下载依赖库和…

[SwiftUI]Text对字符串中部分字符改变颜色和字体

如图&#xff0c;需要对字符串中部分字符改变颜色和字体。 在 SwiftUI 中合并带有不同样式的文本&#xff0c;应该使用不同的 Text 实例并将它们合并起来。将实例使用 运算符合并起来&#xff0c;每个 Text 实例都保持其自己的样式设置。这种方式可以正常编译并运行&#xff0…

Flutter 点击空白处关闭软键盘,点击非TextField 关闭软键盘的方法

1&#xff1a;点击空白处(非控件上)关闭软键盘。 此方法有个问题&#xff0c;就是点击非空白区域&#xff0c;不会关闭软键盘&#xff0c;比如点击旁边的其他按钮&#xff0c;则软键盘还在。只适合点击空白处关闭软键盘 在 main.dart 入口 build 中增加 builder: (context, ch…

“海洋天堂——助成长计划”走进安徽省科学技术馆

为了助力困境儿童、青少年有效地参与社会生活&#xff0c;培养他们团队精神&#xff0c;引导他们掌握社会规则&#xff0c;增强自信&#xff0c;合肥市庐阳区为民社会工作服务中心于2024年1月24日上午&#xff0c;组织有四名老师带领18名困境儿童、青少年&#xff0c;通过徒步、…

javaspring bootmysql疾病查询网站01548-计算机毕业设计项目选题推荐(附源码)

摘 要 随着互联网时代的到来&#xff0c;同时计算机网络技术高速发展&#xff0c;网络管理运用也变得越来越广泛。因此&#xff0c;建立一个B/S结构的疾病查询网站&#xff0c;会使疾病查询工作系统化、规范化&#xff0c;也会提高医院形象&#xff0c;提高管理效率。 本疾病查…

【PyTorch】记一次卷积神经网络优化过程

记一次卷积神经网络优化过程 前言 在深度学习的世界中&#xff0c;图像分类任务是一个经典的问题&#xff0c;它涉及到识别给定图像中的对象类别。CIFAR-10数据集是一个常用的基准数据集&#xff0c;包含了10个类别的60000张32x32彩色图像。在上一篇博客中&#xff0c;我们已…

5G时代下的融合CDN新风口

近年来&#xff0c;随着网络技术的飞速发展&#xff0c;互联网流量视频化的趋势日益明显&#xff0c;视频应用使互联网的可扩展性、可演进性、服务质量和网络安全面临诸多挑战。为克服传统IP网络在服务视频应用当中的不足&#xff0c;内容分发网络CDN被提出&#xff0c;并迅速成…

Linux系统——循环

一、循环 1.循环的含义 将某代码段重复运行多次&#xff0c;通常有进入循环的条件和退出循环的条件 重复运行次数 循环次数事先已知循环次数事先未知 常见的循环的命令&#xff1a;for, while, until for&#xff1a;已知次数&#xff1b;while&#xff0c;until&#xf…

鸿蒙HarmonyOS获取GPS精确位置信息

参考官方文档 #1.初始化时获取经纬度信息 aboutToAppear() {this.getLocation() } async getLocation () {try {const result await geoLocationManager.getCurrentLocation()AlertDialog.show({message: JSON.stringify(result)})}catch (error) {AlertDialog.show({message…