AWTK 开源串口屏开发(7) - 屏幕保护

这篇具有很好参考价值的文章主要介绍了AWTK 开源串口屏开发(7) - 屏幕保护。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

现代屏幕其实并不需要屏幕保护,不过屏幕保护程序会衍生一些其它用途。比如:

  • 保护隐私。长时间不操作,通过动画或者其它方式隐藏屏幕内容。
  • 数据安全。长时间不操作,需要输入密码才能恢复。
  • 美观/广告。长时间不操作,显示动画或者播放视频广告。

本文介绍一下在 AWTK 串口屏中,是如何实现屏幕保护的。基本工作原理是这样的:

  • 长时间没有用户输入事件,触发屏幕保护事件。
  • 在屏幕保护事件中,打开名为 screen_saver 的窗口。
  • screen_saver 窗口中,显示屏保内容,如果收到输入事件,关闭该窗口(或要求输入密码)。

1. 功能

在这里例子中,模型(也就是数据)里只有一个 screen_saver_time 变量:

变量名 数据类型 功能说明
screen_saver_time 整数 单位为毫秒

screen_saver_time 是 默认模型 中一个内置属性。

2. 创建项目

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

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

3. 制作界面

3.1 主窗口

用 AWStudio 打开上面 screen_saver 目录下的 project.json 文件。里面有一个空的窗口,在上面加入下面的控件:

  • 静态文本
  • 编辑器

做出类似下面的界面。

AWTK 开源串口屏开发(7) - 屏幕保护,ZLG开源GUI AWTK,AWTK,串口屏,开源,单片机,嵌入式硬件

3.2 屏保窗口

在这个窗口中,我们通过一个定时器来改变窗口的背景颜色,创建一个空白窗口,将其改名为 screen_saver 即可。

4. 添加绑定规则

4.1 主窗口

  • 编辑器 绑定到 screen_saver_time 变量。添加自定义的属性 v-data:value,将值设置为 {screen_saver_time}
绑定属性 绑定规则 说明
v-data:value {screen_saver_time} 变量要用英文大括号括起来。
  • 同样指定窗口的模型为 default。
绑定属性 绑定规则 说明
v-model default default 不需要用大括号括起来。

4.2 屏保窗口

  • 启动 按钮的 点击 事件启动定时器。
绑定属性 绑定规则 说明
v-on:window_open {fscript, Args=start_timer(3000);set(计数,0)} 启动定时器
v-on:timer {fscript, Args=set(计数,计数+1)} 增加计数
v-data:style:normal:bg_color {one_of(‘red;blue;green;gold;orange;white;black’, 计数%7)} 根据计数改变背景颜色
v-on:pointer_move {nothing, CloseWindow=true} 关闭窗口
v-on:pointer_up {nothing, CloseWindow=true} 关闭窗口
v-on:key_up {nothing, CloseWindow=true} 关闭窗口

这里只是用了一个窗口内局部的变量“计数”,不需要指定模型,系统会自动创建一个 dummy 模型。

4. 初始化数据

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

{
  "screen_saver_time": 180000
}

注意:

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

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

5. 数据持久化

为了保存屏保时间,修改资源文件 design/default/data/settings.json, 将其内容改为:

{
    "name":"hmi_screen_saver",
    "persistent" : {
      "screen_saver_time": true
    }
}

6. 编译运行

运行 bin 目录下的 demo 程序,设置屏幕时间为一个较短的值,等待屏保启动。

AWTK 开源串口屏开发(7) - 屏幕保护,ZLG开源GUI AWTK,AWTK,串口屏,开源,单片机,嵌入式硬件

7. 注意

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

  • 完整示例请参考:demo_screen_saver文章来源地址https://www.toymoban.com/news/detail-808431.html

到了这里,关于AWTK 开源串口屏开发(7) - 屏幕保护的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux下编写zlg7290驱动(1)

    大家好,今天给大家介绍 Linux下编写zlg7290驱动(1) ,文章末尾附有分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!可进群免费领取。 在智能仪表中,经常会用到键盘、数码管等外设。因此,一个稳定、占用系统资源少的人机对话通道设计非

    2024年02月01日
    浏览(26)
  • 探索OpenVPN GUI:安全、易用的开源VPN客户端

    项目地址:https://gitcode.com/OpenVPN/openvpn-gui OpenVPN GUI 是一个直观且易于操作的图形用户界面,用于管理OpenVPN连接。对于那些需要在Windows平台上便捷地设置和控制加密网络连接的人来说,这是一个不可或缺的工具。 OpenVPN GUI是OpenVPN项目的一部分,它提供了一个用户友好的界面,

    2024年04月10日
    浏览(48)
  • 周立功CAN总线工具ZLG USBCANFD-200U上位机ZCANPRO使用方法

    请查看官网:https://www.zlg.cn/can/can/product/id/223.html 安装完上位机之后,上位机使用手册可安装目录下找到: ..\ZCANPROUserManual 2.1.1 参数要求 假设你要测试的CAN要求设置如下: 时钟:80M 仲裁域波特率:500K,采样点81.3% 数据域的波特率:2M,采样点75% 仲裁域和数据域的时钟

    2024年02月02日
    浏览(61)
  • 使用开源 MaxKey 与 APISIX 网关保护你的 API

    Apache APISIX 是 Apache 软件基金会下的云原生 API 网关,它兼具动态、实时、高性能等特点,提供了负载均衡、动态上游、灰度发布(金丝雀发布)、服务熔断、身份认证、可观测性等丰富的流量管理功能。我们可以使用 Apache APISIX 来处理传统的南北向流量,也可以处理服务间的

    2024年02月06日
    浏览(33)
  • AWTK 液体流动效果控件发布

    液体流动效果控件。 支持水平和垂直方向。 支持正向和反向流动。 支持设置头尾的图片。 支持设置流动的图片。 支持设置速度的快慢。 支持启停操作。 获取 awtk 并编译 生成示例代码的资源 编译 编译PC版本 编译LINUX FB版本 完整编译选项请参考编译选项 运行 代码: https

    2024年02月08日
    浏览(28)
  • SpringMvc集成开源流量监控、限流、熔断降级、负载保护组件Sentinel

    前言:作者查阅了Sentinel官网、51CTO、CSDN、码农家园、博客园等很多技术文章都没有很准确的springmvc集成Sentinel的示例,因此整理了本文,主要介绍SpringMvc集成Sentinel 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式、多语言异构化服务架构的

    2024年02月05日
    浏览(52)
  • PrimiHub 联邦学习大模型开源,打破数据限制,保护数据隐私安全

    ChatGPT 掀起的大模型热潮,让各界人士对人工智能大模型的关注度极速提高。 什么是大模型?大模型是指具有大量参数的深度神经网络模型,它们通常可以提供更强大的表达能力和泛化能力,从而提升各种智能服务的性能和质量。大模型在训练的过程中,会面临一个重大挑战

    2024年02月16日
    浏览(30)
  • 【开源串口屏方案】五步教你设计串口屏,5分钟快速上手

    目录 前言 一、什么是串口屏? 二、串口屏原理与组成 三、硬件制作 四、实现方法 1.硬件设备 2.环境依赖 3.界面设计 4.编写串口通信代码和示例  本文详细介绍串口屏原理、设计方法、实现步骤,给出完整代码实例,30分钟即可完成串口屏的设计使用。适合初学者快速上手。

    2024年02月05日
    浏览(30)
  • 【开源】ESP8266_MAX30102_OLED屏幕实现血氧心率检测

    本系列,是记录自己入门嵌入式领域的学习笔记。 看看能坚持多久。 今天是2023年5月2日 源代码的来源:https://github.com/yangqingyuan-byte/MAX30102-0.96_4pin_oled-esp8266_HR_and_SPO2 * ESP8266 --- OLED * GND --- GND * * 5V --- VCC  * D1 --- SCL  * D2 --- SDA  * ESP8266 --- MAX30102 * 5V --- VIN * G --- GND * D0 --- INT

    2024年02月03日
    浏览(30)
  • Proteus平台下基于Arduino的通过UART串口可靠通信系统仿真、传感器数据采集、以及LCD屏幕二级菜单功能实现(附工程源码、设计报告)

    三个按键控制菜单,功能分别为:选择功能1,选择功能2,以及返回上一级; 通过三个外部中断对页面状态参量进行控制: 停止等待 当U1收到U2的ACK后才会发送下一次传感器采集到的数据 超时重传 当关闭U2后,U1到达设定的超时时间后,进行重传操作,直到收到U2的确认收到

    2024年02月16日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包