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

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.mzph.cn/news/650913.shtml

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

相关文章

蓝桥杯之即约分数

求1~N的所有即约分数 公约数求法:可以使用欧几里得除法求得公约数 算法原理: a,b为两个整数,a>b a除以b的商q1和余数r1 如果r1为0,则最大公约数就为b 如果不为0,则继续使用b除以r取商为q2,余r2 如果r2为0&#xff0…

【连接dbeaver的时候提示Network unavailable due to a certificate issue】

问题: 连接dbeaver的时候提示Network unavailable due to a certificate issue。 Network unavailable due to a certificate issue. Try changing the setting Use Windows trust store in Preferences->Connections and restart DBeaver. It might help if yo…

【Unity3D日常开发】Unity3D中设置Text行首不出现标点符号

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 在开发中会遇到Text的文本内容行首出现标点符号的情况&#xf…

PyTorch初探:基本函数与案例实践

正文: 在熟悉了PyTorch的安装和环境配置后,接下来让我们深入了解PyTorch的基本函数,并通过一个简单的案例来实践这些知识。 1. 基本函数 PyTorch的核心是张量(Tensor),它类似于多维数组,但可以…

Cesium加载地图-高德影像

废话不多说&#xff0c;直接上代码 整体代码 <template><div id"cesiumContainer" style"height: 100vh;"></div><div id"toolbar" style"position: fixed;top:20px;left:220px;"><el-breadcrumb><…

hive面试题

0. 思维导图 1. 简述Hive♥♥ 我理解的&#xff0c;hive就是一款构建数据仓库的工具&#xff0c;它可以就结构化的数据映射为一张表&#xff0c;并且可以通过SQL语句进行查询分析。本质上是将SQL转换为MapReduce或者spark来进行计算&#xff0c;数据是存储在hdfs上&#xff0c;…

【word】论文、报告:①插入图表题注,交叉引用②快速插入图表目录③删改后一键更新

【word】①插入图表题注&#xff0c;②删改后一键更新 写在最前面插入题注交叉引用修改插入题注的文字格式快速插入图表目录 插入题注后有删改&#xff0c;实现编号一键更新 &#x1f308;你好呀&#xff01;我是 是Yu欸 &#x1f30c; 2024每日百字篆刻时光&#xff0c;感谢你…

【leetcode题解C++】150.逆波兰表达式求值 and 239.滑动窗口最大值 and 347.前k个高频元素

150.逆波兰表达式求值 给你一个字符串数组 tokens &#xff0c;表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 注意&#xff1a; 有效的算符为 、-、* 和 / 。每个操作数&#xff08;运算对象&#xff09;都可以是一个整数…

ubuntu安装mongod

1、安装 1.1包管理公钥导入 wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -执行结果截图如下&#xff1a; 1.2创建列表文件 lsb_release -dc 根据你的Codename 来修改下方对应的命令&#xff0c;如果你的是jammy&#xff0c;就修改为j…

飞机发动机和汽车发动机的构成有什么区别?燃料有什么区别?

问题描述&#xff1a;飞机发动机和汽车发动机的构成有什么区别&#xff1f;燃料有什么区别&#xff1f; 问题解答&#xff1a; 飞机发动机和汽车发动机在构成和燃料方面有一些显著的区别&#xff0c;主要是由于它们应对的工作环境和任务的不同。以下是它们的一些区别&#xf…

Hive常见问题汇总

Hive和Hadoop的关系 Hive 构建在 Hadoop 之上&#xff0c; HQL 中对查询语句的解释、优化、生成查询计划是由 Hive 完成的 所有的数据都是存储在 Hadoop 中 查询计划被转化为 MapReduce 任务&#xff0c;在 Hadoop 中执行&#xff08;有些查询没有 MR 任务&#xff0c;如&…

防御保护---安全策略

文章目录 一.安全策略概述 概述&#xff1a; 安全策略的作用&#xff1a; 包过滤防火墙的安全风险 状态检测防火墙访问过程 安全策略与传统防火墙的区别 二.案例分析 基础配置&#xff1a;&#xff08;正常数通&#xff09; 安全策略配置 练习 一.安全策略概述 概述&#xff1…

OpenAI API 的最新动态:新一代的嵌入模型,更新 GPT-4 Turbo,更新 GPT-3.5 Turbo 以及降低 API 价格

文章目录 一、前言二、主要内容三、总结 &#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、前言 OpenAI 正在推出新一代嵌入模型、新的 GPT-4 Turbo 和审查模型、新的 API 使用管理工具&#xff0c;而且很快就会降低 GPT-3.5 Turbo 的价格。 OpenAI…

vuepress搭建个人博客以及部署

vuepress&#xff0c;Vue 驱动的静态网站生成器&#xff0c;以 Markdown 为中心的项目结构&#xff0c;以最少的配置帮助你专注于写作。 vuepress官网 vuepress存在很多主题&#xff0c;也可以自定义设计主题&#xff0c;上传npm使用 这里采用vuepress-theme-hope主题模板进行制…

移动端应用(APP)如何设计测试用例?

为 APP 设计测试用例需要考虑移动设备的特殊性&#xff0c;如不同的操作系统、设备尺寸、硬件特性以及应用程序自身的特定功能。 以下是为APP设计测试用例时要考虑的内容&#xff1a; 1. 理解需求 熟悉APP的功能需求、用户故事和设计文档。 确定APP的目标用户群体、使用场景…

Leetcode刷题笔记题解(C++):1114. 按序打印(多线程)

思路&#xff1a; 保证A,B,C三个线程的顺序不会变&#xff0c;即优先级顺序的问题 A,B需要资源1&#xff0c;B,C需要资源2 A先占用资源1和资源2&#xff0c;A线程完了之后释放资源1不释放资源2&#xff0c;然后B线程占用资源1&#xff0c;A线程完了之后释放资源1和资源2&…

C++ 11 多线程库初步学习

在C11标准中&#xff0c;可以简单通过使用thread库&#xff0c;来管理多线程。 thread库可以看做对不同平台多线程API的一层包装&#xff1b;因此使用新标准提供的线程库编写的程序是跨平台的。 使用时需要#include <thread>头文件&#xff1b; #include <iostream&g…

Wpf 使用 Prism 实战开发Day16

客户端使用RestSharp库调用WebApi 动态加载数据 在MyDoTo客户端中&#xff0c;使用NuGet 安装两个库 RestSharp Newtonsoft.Json 一. RestSharp 简单的使用测试例子 当前章节主要目的是&#xff1a;对RestSharp 库&#xff0c;根据项目需求再次进行封装。下面先做个简单的使用…

Python语言入门到精通之练习实例15:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

题目&#xff1a;利用条件运算符的嵌套来完成此题&#xff1a;学习成绩>90分的同学用A表示&#xff0c;60-89分之间的用B表示&#xff0c;60分以下的用C表示。 程序分析&#xff1a;程序分析&#xff1a;(a>b) ? a:b 这是条件运算符的基本例子。 程序源代码&#xff1…

瑞丽杂志引领潮流,VOSS眼镜概念店开启奢华新纪元!

近日&#xff0c;由《瑞丽》杂志社举办的2023第4届瑞丽轻奢品牌大赛&#xff0c;以“轻奢•悦藏”为主题的大赛已圆满结束&#xff0c;VOSS眼镜荣获&#xff1a;2023瑞丽轻奢品牌大赛「轻奢时尚风格奖」&#xff0c;作为眼镜行业唯一获此奖项的品牌&#xff0c;VOSS眼镜对此表示…