加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

技術(shù)分享 | AWTK 開(kāi)源串口屏開(kāi)發(fā)(8) - 系統(tǒng)設(shè)置

01/28 11:25
2155
閱讀需 12 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

系統(tǒng)設(shè)置是一個(gè)必需的功能,AWTK 串口屏的默認(rèn)模型提供一些系統(tǒng)設(shè)置相關(guān)的屬性和命令,實(shí)現(xiàn)系統(tǒng)設(shè)置非常簡(jiǎn)單。本文介紹一下音量、背光、時(shí)間和觸屏音等常見(jiàn)系統(tǒng)設(shè)置的實(shí)現(xiàn)方法。

系統(tǒng)設(shè)置只是一個(gè)普通應(yīng)用程序,不過(guò)它會(huì)用默認(rèn)模型中一些內(nèi)置的屬性和命令,所以這里專門來(lái)介紹一下。

1. 功能

在這個(gè)例子會(huì)用到默認(rèn)模型中一些下列內(nèi)置的屬性和命令:

    內(nèi)置屬性
屬性 類型 說(shuō)明
rtc_year int RTC 年
rtc_month int RTC 月
rtc_day int RTC 日
rtc_hour int RTC 時(shí)
rtc_minute int RTC 分
rtc_second int RTC 秒
rtc_ymd string RTC 年月日,格式為 YYYY-MM-DD 或 YYYY/MM/DD
rtc_hms string RTC 時(shí)分秒,格式為 HH:MM:SS
backlight int 背光亮度 (0-100)
audio_volume int 音量 (0-100)
ui_feedback bool UI 反饋。true 啟用反饋 (beep), false 禁用反饋

內(nèi)置命令

命令 參數(shù) 說(shuō)明
set_rtc 無(wú) 將屬性 rtc_year, rtc_month, rtc_day, rtc_hour, rtc_minute, rtc_second 設(shè)置為系統(tǒng) RTC 時(shí)間
get_rtc 無(wú) 獲取系統(tǒng) RTC 時(shí)間,并設(shè)置到屬性 rtc_year, rtc_month, rtc_day, rtc_hour, rtc_minute, rtc_second, rtc_wday
save 無(wú) 保存配置

2. 創(chuàng)建項(xiàng)目

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

最好不要放到其它目錄,因?yàn)榉诺狡渌夸浶枰薷呐渲梦募械穆窂?,等熟悉之后再考慮放到其它目錄。路徑中也不要中文和空格,避免不必要的麻煩。

3. 制作界面

用 AWStudio 打開(kāi)上面 settings 目錄下的 project.json 文件。

里面有一個(gè)空的窗口,在上面加入下面的控件,并調(diào)節(jié)位置和大小,做出類似下面的界面。

再創(chuàng)建一個(gè)新窗口,命名為 basic,并加入下面的控件,并調(diào)節(jié)位置和大小,做出類似下面的界面。

再創(chuàng)建一個(gè)新窗口,命名為 rtc,并加入下面的控件,并調(diào)節(jié)位置和大小,做出類似下面的界面。

需要給編輯器設(shè)置輸入類型、最大值和最小值。實(shí)際項(xiàng)目可能會(huì)用文本選擇控件代替編輯器,不過(guò)綁定方法是一樣的。

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

3.1?主界面?(home_page)

將?基本設(shè)置?按鈕的?點(diǎn)擊?事件綁定到?navigate?命令。添加自定義的屬性?v-on:click,將值設(shè)置為?{navigate, Args=basic}。

綁定屬性 綁定規(guī)則 說(shuō)明
v-on:click {navigate, Args=basic} navigate 命令是導(dǎo)航命令,用于打開(kāi)窗口,Args=后面跟目標(biāo)窗口的名稱。
    將?時(shí)間設(shè)置?按鈕的?點(diǎn)擊?事件綁定到?navigate?命令。添加自定義的屬性?v-on:click,將值設(shè)置為?{navigate, Args=rtc}。

 

綁定屬性 綁定規(guī)則 說(shuō)明
v-on:click {navigate, Args=rtc} navigate 命令是導(dǎo)航命令,用于打開(kāi)窗口,Args=后面跟目標(biāo)窗口的名稱。

命令和參數(shù)要用英文大括號(hào)括起來(lái)。

3.2?基本設(shè)置?(basic)

將?背光滑動(dòng)條?綁定到?backlight?變量。添加自定義的屬性?v-data:value,將值設(shè)置為?{backlight}。

綁定屬性 綁定規(guī)則 說(shuō)明
v-data:value {backlight} 變量要用英文大括號(hào)括起來(lái)。

將音量滑動(dòng)條?綁定到?audio_volume?變量。添加自定義的屬性?v-data:value,將值設(shè)置為?{audio_volume}。

綁定屬性 綁定規(guī)則 說(shuō)明
v-data:value {audio_volume} 變量要用英文大括號(hào)括起來(lái)。

將?開(kāi)啟屏幕音?綁定到?ui_feedback?變量。添加自定義的屬性?v-data:value,將值設(shè)置為?{ui_feedback}。

綁定屬性 綁定規(guī)則 說(shuō)明
v-data:value {ui_feedback} 變量要用英文大括號(hào)括起來(lái)。

讓?確定?按鈕的?點(diǎn)擊?事件執(zhí)行命令 “{save}”。添加自定義的屬性?v-on:click,將值設(shè)置為:

{save, CloseWindow=true}

CloseWindow=true,表示執(zhí)行命令并關(guān)閉當(dāng)前窗口。

命令和參數(shù)要用英文大括號(hào)括起來(lái)。

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

綁定屬性 綁定規(guī)則 說(shuō)明
v-model default default 不需要用大括號(hào)括起來(lái)。

3.3?時(shí)間設(shè)置?(rtc)

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

綁定屬性 綁定規(guī)則 說(shuō)明
v-data:value {rtc_year} 變量要用英文大括號(hào)括起來(lái)。

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

綁定屬性 綁定規(guī)則 說(shuō)明
v-data:value {rtc_month} 變量要用英文大括號(hào)括起來(lái)。

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

綁定屬性 綁定規(guī)則 說(shuō)明
v-data:value {rtc_day} 變量要用英文大括號(hào)括起來(lái)。

將?時(shí) 編輯器?綁定到?rtc_hour?變量。添加自定義的屬性?v-data:value,將值設(shè)置為?{rtc_hour}。

綁定屬性 綁定規(guī)則 說(shuō)明
v-data:value {rtc_hour} 變量要用英文大括號(hào)括起來(lái)。

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

綁定屬性 綁定規(guī)則 說(shuō)明
v-data:value {rtc_minute} 變量要用英文大括號(hào)括起來(lái)。

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

綁定屬性 綁定規(guī)則 說(shuō)明
v-data:value {rtc_second} 變量要用英文大括號(hào)括起來(lái)。

讓?獲取時(shí)間?按鈕的?點(diǎn)擊?事件執(zhí)行命令 “{get_rtc}”。添加自定義的屬性?v-on:click,將值設(shè)置為:

{get_rtc}

命令和參數(shù)要用英文大括號(hào)括起來(lái)。

讓?設(shè)置時(shí)間?按鈕的?點(diǎn)擊?事件執(zhí)行命令 “{set_rtc}”。添加自定義的屬性?v-on:click,將值設(shè)置為:

{set_rtc}

命令和參數(shù)要用英文大括號(hào)括起來(lái)。

讓?返回?按鈕的?點(diǎn)擊?事件執(zhí)行命令 “{nothing}”。添加自定義的屬性?v-on:click,將值設(shè)置為:

{nothing, CloseWindow=true}

nothing 是一個(gè)特殊命令,表示什么也不做。

CloseWindow=true,表示執(zhí)行命令并關(guān)閉當(dāng)前窗口。

命令和參數(shù)要用英文大括號(hào)括起來(lái)。

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

綁定屬性 綁定規(guī)則 說(shuō)明
v-model default default 不需要用大括號(hào)括起來(lái)。

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

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

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

注意:如果文件內(nèi)容有中文(非 ASCII 字符),一定要保存為 UTF-8 格式。重新打包資源才能生效。

5. 描述需要持久化的數(shù)據(jù)

修改資源文件 design/default/data/settings.json, 將其內(nèi)容改為:

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

如果有多個(gè)數(shù)據(jù)需要持久化,將它們加入到 settings 對(duì)象中即可。為了避免不同串口屏應(yīng)用程序之間,持久化數(shù)據(jù)覆蓋,這里的 name 需要取一個(gè)唯一的名字。

注意:如果文件內(nèi)容有中文(非 ASCII 字符),一定要保存為 UTF-8 格式。重新打包資源才能生效。

6. 編譯運(yùn)行

運(yùn)行 bin 目錄下的 demo 程序。

程序退出時(shí)會(huì)自動(dòng)保存需要保存的數(shù)據(jù)。

7. 注意

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

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
KSZ8041FTLI-TR 1 Microchip Technology Inc DATACOM, ETHERNET TRANSCEIVER, PQFP48

ECAD模型

下載ECAD模型
$2.95 查看
KSZ8721BLI 1 Microchip Technology Inc DATACOM, ETHERNET TRANSCEIVER, PQFP48

ECAD模型

下載ECAD模型
$4.07 查看
BCM5241A1KMLG 1 Broadcom Limited Ethernet Transceiver, PACKAGE
$1.66 查看
致遠(yuǎn)電子

致遠(yuǎn)電子

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

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

查看更多

相關(guān)推薦

電子產(chǎn)業(yè)圖譜