• 正文
  • 推薦器件
  • 相關推薦
申請入駐 產業(yè)圖譜

技術分享 | AWTK 開源串口屏開發(fā)(7) - 屏幕保護

2024/01/21
1329
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

現(xiàn)在的屏幕其實并不需要屏幕保護程序來“保護”,不過屏幕保護程序會衍生一些其它用途。比如,保護隱私、數(shù)據(jù)安全和顯示廣告等等。本文介紹一下在 AWTK 串口屏中,實現(xiàn)屏幕保護程序的方法。

現(xiàn)代屏幕其實并不需要屏幕保護,不過屏幕保護程序會衍生一些其它用途。比如:

保護隱私。長時間不操作,通過動畫或者其它方式隱藏屏幕內容。

數(shù)據(jù)安全。長時間不操作,需要輸入密碼才能恢復。

美觀/廣告。長時間不操作,顯示動畫或者播放視頻廣告。

本文介紹一下在 AWTK 串口屏中,是如何實現(xiàn)屏幕保護的。基本工作原理是這樣的:長時間沒有用戶輸入事件,觸發(fā)屏幕保護事件。

在屏幕保護事件中,打開名為 screen_saver 的窗口。

screen_saver 窗口中,顯示屏保內容,如果收到輸入事件,關閉該窗口(或要求輸入密碼)。

1. 功能

在這里例子中,模型(也就是數(shù)據(jù))里只有一個?screen_saver_time?變量:

變量名 數(shù)據(jù)類型 功能說明
screen_saver_time 整數(shù) 單位為毫秒

screen_saver_time 是?默認模型?中一個內置屬性。

2. 創(chuàng)建項目

從模板創(chuàng)建項目,將 hmi/template_app 拷貝 hmi/screen_saver 即可。

第一個項目最好不要放到其它目錄,因為放到其它目錄需要修改配置文件中的路徑,等熟悉之后再考慮放到其它目錄。路徑中也不要中文和空格,避免不必要的麻煩。

3. 制作界面

3.1 主窗口

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

靜態(tài)文本

編輯器

做出類似下面的界面。

3.2 屏保窗口

在這個窗口中,我們通過一個定時器來改變窗口的背景顏色,創(chuàng)建一個空白窗口,將其改名為 screen_saver 即可。

4. 添加綁定規(guī)則

4.1 主窗口

將?編輯器?綁定到?screen_saver_time?變量。添加自定義的屬性?v-data:value,將值設置為?{screen_saver_time}。

綁定屬性 綁定規(guī)則 說明
v-data:value {screen_saver_time} 變量要用英文大括號括起來。

同樣指定窗口的模型為 default。

綁定屬性 綁定規(guī)則 說明
v-model default default 不需要用大括號括起來。

4.2 屏保窗口

在?啟動?按鈕的?點擊?事件啟動定時器。

綁定屬性 綁定規(guī)則 說明
v-on:window_open {fscript, Args=start_timer(3000);set(計數(shù),0)} 啟動定時器
v-on:timer {fscript, Args=set(計數(shù),計數(shù)+1)} 增加計數(shù)
v-data:style:normal:bg_color {one_of(‘red;blue;green;gold;orange;white;black’, 計數(shù)%7)} 根據(jù)計數(shù)改變背景顏色
v-on:pointer_move {nothing, CloseWindow=true} 關閉窗口
v-on:pointer_up {nothing, CloseWindow=true} 關閉窗口
v-on:key_up {nothing, CloseWindow=true} 關閉窗口

這里只是用了一個窗口內局部的變量“計數(shù)”,不需要指定模型,系統(tǒng)會自動創(chuàng)建一個 dummy 模型。

4. 初始化數(shù)據(jù)

修改資源文件 design/default/data/default_model.json, 將其內容改為:

{ ?"screen_saver_time": 180000}

注意:

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

重新打包資源才能生效。

5. 數(shù)據(jù)持久化

為了保存屏保時間,修改資源文件 design/default/data/settings.json, 將其內容改為:

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

6. 編譯運行

運行 bin 目錄下的 demo 程序,設置屏幕時間為一個較短的值,等待屏保啟動。

7. 注意

本項目并沒有編寫界面相關的代碼,AWStudio 在 src/pages 目錄下生成了一些代碼框架,這些代碼并沒有用到,可以刪除也可以不用管它,但是不能加入編譯。

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風險等級 參考價格 更多信息
TJA1051T/3/1J 1 NXP Semiconductors TJA1051 - High-speed CAN transceiver SOIC 8-Pin

ECAD模型

下載ECAD模型
$1.11 查看
TLE9271QXV33XUMA1 1 Infineon Technologies AG Interface Circuit, PQCC48, VQFN-48
暫無數(shù)據(jù) 查看
DP83867ERGZT 1 Texas Instruments Extended temperature, robust low-latency gigabit Ethernet PHY transceiver with SGMII 48-VQFN -40 to 105

ECAD模型

下載ECAD模型
$12.97 查看
致遠電子

致遠電子

廣州致遠電子股份有限公司成立于2001年,注冊資金5000萬元,國家級高新技術認證企業(yè),廣州市高端工控測量儀器工程技術研究開發(fā)中心,Intel ECA全球合作伙伴和微軟嵌入式系統(tǒng)金牌合作伙伴。

廣州致遠電子股份有限公司成立于2001年,注冊資金5000萬元,國家級高新技術認證企業(yè),廣州市高端工控測量儀器工程技術研究開發(fā)中心,Intel ECA全球合作伙伴和微軟嵌入式系統(tǒng)金牌合作伙伴。收起

查看更多

相關推薦

登錄即可解鎖
  • 海量技術文章
  • 設計資源下載
  • 產業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄