0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

ZLG致远电子 2024-01-20 08:24 次阅读

现在的屏幕其实并不需要屏幕保护程序来“保护”,不过屏幕保护程序会衍生一些其它用途。比如,保护隐私、数据安全和显示广告等等。本文介绍一下在 AWTK 串口屏中,实现屏幕保护程序的方法。

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

保护隐私。长时间不操作,通过动画或者其它方式隐藏屏幕内容。

数据安全。长时间不操作,需要输入密码才能恢复。

美观/广告。长时间不操作,显示动画或者播放视频广告。

本文介绍一下在 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 文件。里面有一个空的窗口,在上面加入下面的控件:

静态文本

编辑器

做出类似下面的界面。

41c3d1de-b72a-11ee-aa22-92fbcf53809c.png

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-datanormal: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 程序,设置屏幕时间为一个较短的值,等待屏保启动。

41c3d1de-b72a-11ee-aa22-92fbcf53809c.png

41d1c5f0-b72a-11ee-aa22-92fbcf53809c.gif

7. 注意

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开源
    +关注

    关注

    3

    文章

    2989

    浏览量

    41721
  • 串口屏
    +关注

    关注

    8

    文章

    473

    浏览量

    36621
  • awtk
    +关注

    关注

    0

    文章

    24

    浏览量

    169
收藏 人收藏

    评论

    相关推荐

    介绍AWTK

    ZLG 开源 GUI 引擎 AWTK 1.6 发布一、介绍AWTK全称 Toolkit AnyWhere,是ZLG开发开源 GUI 引擎,
    发表于 08-20 08:09

    AWTK的寓意

    一、介绍AWTK全称Toolkit AnyWhere,是ZLG开发开源GUI引擎,旨在为嵌入式系统、WEB、各种小程序、手机和PC打造的通用GUI引擎,为用户提供一个功能强大、高效可靠、简单易用
    发表于 08-20 08:12

    介绍AWTK

    ZLG开源GUI引擎AWTK发布1.1版本一、介绍AWTK全称Toolkit AnyWhere,是ZLG开发开源GUI引擎,旨在为嵌入式系
    发表于 08-20 08:18

    AWTK 开源智能串口屏方案

    AWTK开源智能串口屏方案发布,旨在解决传统串口屏诸多痛点,为用户提供更开放、更易用、更强大的开源串口
    的头像 发表于 12-02 08:24 465次阅读
    <b class='flag-5'>AWTK</b> <b class='flag-5'>开源</b>智能<b class='flag-5'>串口</b>屏方案

    ​【AWTK开源智能串口屏方案】方案介绍和工作原理

    本篇文章介绍一下AWTK开源智能串口屏方案的基本原理和实际使用效果,包括主要特点、应用场景、工作原理以及简单的Demo演示。引言:AWTK-HMI是基于
    的头像 发表于 12-21 08:24 405次阅读
    ​【<b class='flag-5'>AWTK</b><b class='flag-5'>开源</b>智能<b class='flag-5'>串口</b>屏方案】方案介绍和工作原理

    AWTK 串口开发(3) - 告警信息

    告警信息是一个常用的功能。在AWTK开源串口屏中,内置告警信息模型,只需设计用户界面即可实现告警信息的显示和管理。1.功能告警信息是一个常用的功能,MCU在设备异常时,会发送告警信息到串口
    的头像 发表于 12-23 08:24 180次阅读
    <b class='flag-5'>AWTK</b> <b class='flag-5'>串口</b>屏<b class='flag-5'>开发</b>(3) - 告警信息

    AWTK 串口开发(5) - MCU端 SDK 用法

    AWTK开源智能串口屏,不但开放了串口屏端全部源码,还提供了MCU端SDK,大大加快MCU软件的开发。本介绍一下MCU端SDK在不同平台上的
    的头像 发表于 01-06 08:24 160次阅读
    <b class='flag-5'>AWTK</b> <b class='flag-5'>串口</b>屏<b class='flag-5'>开发</b>(5) - MCU端 SDK 用法

    AWTK 开源串口开发(6) - 定时器的用法

    定时器是个常用的功能,AWTK串口屏提供了丰富的定时器函数,用于定时器的启动、停止、暂停、恢复、修改和重置等功能,本文以计时器的例子来介绍定时器的基本用法。定时器也是一个常用的功能,在AWTK
    的头像 发表于 01-13 08:24 164次阅读
    <b class='flag-5'>AWTK</b> <b class='flag-5'>开源</b><b class='flag-5'>串口</b>屏<b class='flag-5'>开发</b>(6) - 定时器的用法

    AWTK开源智能串口屏方案】HMI端程序移植编译及运行

    本篇文章介绍一下AWTK开源智能串口屏方案的串口屏端(即HMI端)的编译运行步骤,并介绍如何将HMI端移植到Linux或STM32平台或RTOS平台,以及如何配置资源文件。引言:
    的头像 发表于 01-18 08:24 295次阅读
    【<b class='flag-5'>AWTK</b><b class='flag-5'>开源</b>智能<b class='flag-5'>串口</b>屏方案】HMI端程序移植编译及运行

    AWTK 开源串口开发(9) - 用户和权限管理

    AWTK串口屏中,内置用户管理和权限控制的模型,无需编码即可实现登录、登出、修改密码、权限控制、创建用户、删除用户等功能,本文介绍一下用户管理和权限控制的基本用法。用户管理和权限控制是一个常用
    的头像 发表于 02-19 12:10 189次阅读
    <b class='flag-5'>AWTK</b> <b class='flag-5'>开源</b><b class='flag-5'>串口</b>屏<b class='flag-5'>开发</b>(9) - 用户和权限管理

    AWTK开源智能串口屏方案】MCU SDK使用与编译运行

    本篇文章将介绍AWTK-HMI中的MCU端开发方法,包括MCUSDK常用API的说明、使用流程及如何编译到Linux和STM32平台。引言:AWTK-HMI是基于AWTK
    的头像 发表于 02-19 12:11 404次阅读
    【<b class='flag-5'>AWTK</b><b class='flag-5'>开源</b>智能<b class='flag-5'>串口</b>屏方案】MCU SDK使用与编译运行

    AWTK开源智能串口屏方案】设计UI界面并上传到串口

    本篇文章将介绍如何使用AWStudio设计串口屏端的UI界面和添加绑定规则,以及怎么将资源文件上传到串口屏端。引言:AWTK-HMI是基于AWTK
    的头像 发表于 02-22 08:24 207次阅读
    【<b class='flag-5'>AWTK</b><b class='flag-5'>开源</b>智能<b class='flag-5'>串口</b>屏方案】设计UI界面并上传到<b class='flag-5'>串口</b>屏

    AWTK 开源串口开发(12) - 记事本应用

    。在传统的的串口屏中,开发一个记事本应用,即使可能,也是非常麻烦的事情。在AWTK串口屏中,内置文件模型和文件选择对话框,实现一个简单的记事本,不需要编写代码,设计好界
    的头像 发表于 03-09 08:23 116次阅读
    <b class='flag-5'>AWTK</b> <b class='flag-5'>开源</b><b class='flag-5'>串口</b>屏<b class='flag-5'>开发</b>(12) - 记事本应用

    AWTK 开源串口开发(15) - 通过 MODBUS 访问远程数据

    AWTK串口屏内置MODBUSClient模型,支持用MODBUS协议从远程设备获取数据。不用编写代码即可实现对远程设备数据的显示和修改。在AWTK串口屏中,内置了MODBUSClie
    的头像 发表于 03-30 08:23 111次阅读
    <b class='flag-5'>AWTK</b> <b class='flag-5'>开源</b><b class='flag-5'>串口</b>屏<b class='flag-5'>开发</b>(15) - 通过 MODBUS 访问远程数据

    AWTK 开源串口开发(16) - 提供 MODBUS 服务

    AWTK串口屏内置MODBUS从站模型,不用编写一行代码即可让串口屏提供MODBUS服务,让远程设备通过MODBUS协议访问串口屏上的数据。1.功能让
    的头像 发表于 04-13 08:24 84次阅读
    <b class='flag-5'>AWTK</b> <b class='flag-5'>开源</b><b class='flag-5'>串口</b>屏<b class='flag-5'>开发</b>(16) - 提供 MODBUS 服务