精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

AWTK 串口屏開發(2) - 家居控制

ZLG致遠電子 ? 2023-12-16 08:24 ? 次閱讀

本文以一個家居控制應用程序為例,介紹 AWTK 串口屏的開發流程和 MVVM 數據綁定的高級用法。

1. 功能

這個例子稍微復雜一點,重點關注數據綁定。在這個例子中,模型(也就是數據)里包括一臺空調和一臺咖啡機:

變量名

數據類型

功能說明

空調_開關

布爾

空調開關

空調_模式

整數

空調模式 (0: 制冷;1: 制熱;2: 送風;2: 除濕;4: 自動)

空調_風速

整數

0-4 共五檔

空調_垂直風向

整數

垂直風向 (0: 自動;1:上;2:中;3:下)

空調_水平風向

整數

水平風向(0:自動;1:左;2:中;3:右)

空調_溫度

布爾

溫度(0-40)

咖啡_開關

整數

咖啡開關

咖啡_類型

整數

類型 (0: 卡布奇諾;1: 拿鐵;2: 美式;3: 意式)

咖啡_溫度

整數

溫度(0-100)

咖啡_口味

整數

口味 (0: 濃郁;1: 絲滑;2: 清淡;3: 平衡;4: 溫和)

咖啡_熱奶

整數

熱奶 (0: 少量;1: 較少;2: 較多;3: 大量)

咖啡_奶泡

整數

奶泡 (0: 少量;1: 較少;2: 較多;3: 大量)

咖啡_水量

整數

水量 (50-350ml)

咖啡_剩余時間

整數

制作時間(格式:分鐘:秒)

咖啡_開始制作

布爾

開始制作

2. 創建項目

從模板創建項目,將 hmi/template_app 拷貝 hmi/home_automation 即可。

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

3. 制作界面

界面和資源就直接用了 ZDP1440 顯示驅動芯片例子:

  • 主界面

8a25d1e4-9ba9-11ee-9788-92fbcf53809c.png

  • 空調界面

8a2f440e-9ba9-11ee-9788-92fbcf53809c.png

  • 咖啡機界面

8a455e92-9ba9-11ee-9788-92fbcf53809c.png

4. 添加綁定規則

里面的控件太多,為了不至于太累贅,不同類型的綁定只舉一個例子:

完整示例可以參考 hmi/demo_app3

4.1 溫度設置

這種兩個按鈕帶一個靜態文本的組合很常見。8a4badc4-9ba9-11ee-9788-92fbcf53809c.png

中間的靜態文本

綁定屬性

綁定規則

說明

v-data:value

{空調_溫度+‘℃’}

右邊的按鈕(增加)

綁定屬性

綁定規則

說明

v-on:click

{fscript, Args=set(空調_溫度,min(空調_溫度+1, 40))}

這里用函數 set 將變量空調_溫度增加 1 度。min 函數保證變量的值不會超出 40。

  • 左邊的按鈕(減少)

綁定屬性

綁定規則

說明

v-on:click

{fscript, Args=set(空調_溫度,max(空調_溫度-1, 40))}

這里用函數 set 將變量空調_溫度減少 1 度。max 函數保證變量的值不會小于 0。

v-on:click 是一個常見的事件,最好記住,可以提高效率。

4.2 模式選擇

這個用一組單選按鈕實現,將多個單選按鈕放到 group_box 里(將多個單選按鈕放到 view 里也可以,只是需要為每個單選按鈕編寫綁定規則)。

8a526bf0-9ba9-11ee-9788-92fbcf53809c.png

  • 如果綁定規則寫到 group_box 上。這樣寫即可:

綁定屬性

綁定規則

說明

v-data:value

{空調_模式}

如果使用 view 作為容器,則麻煩一點。需要為每個單選按鈕編寫兩條綁定規則:

綁定屬性

綁定規則

說明

v-data:value

{空調_模式 == 0}

這里的 0 是單選按鈕的序數,根據實際情況調整

v-on:click

{fscript, Args=set(空調_模式,0)}

這里的 0 是單選按鈕的序數,根據實際情況調整

這種方式雖然麻煩,但是可以處理變量的值不是從 0 開始或者不連續的情況。

4.3 模式顯示

模式用一個靜態文本顯示。問題在于,模式在內部用一個正整數表示,而顯示的是一個用戶可以理解的字符串。所以需要一個轉換函數one_of:8a61bc72-9ba9-11ee-9788-92fbcf53809c.png

綁定屬性

綁定規則

說明

v-data:value

v-data:value="{one_of(‘制冷;制熱;送風;除濕;自動’, 空調_模式)}

這里的 one_of 的功能是從指定的字符串數組中取出對應的子串。

4.4 剩余時間

剩余時間用一個靜態文本顯示。問題在于,剩余時間在內部用一個正整數表示(秒數),而顯示的是“分鐘:秒”。所以需要一個轉換表達式:

8a6fc8d0-9ba9-11ee-9788-92fbcf53809c.png

綁定屬性

綁定規則

說明

v-data:value

int(咖啡_剩余時間/60) + ‘:’ + 咖啡_剩余時間%60}

表達是按浮點數計算的,這里的 int 將結果轉換為正數。

4.5 隱藏視圖

在點擊開關按鈕時,會自動顯示或隱藏右邊的設置視圖。這是通過將視圖的可見性(visible)綁定到開關的狀態實現的:

綁定屬性

綁定規則

說明

v-data:visible

{空調_開關}

4.6 指定窗口的模型為 default

這是最簡單也是最關鍵的一步:

綁定屬性

綁定規則

說明

v-model

default

嚴格的意義上說,綁定規則也是一種代碼,不過相比于 C 語言,它有下面的優勢:

無需編譯,直接運行。

簡單,通常只有一行。

易懂,聲明式的語法。

5. 初始化數據

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

{ "空調_開關" : false, "空調_模式" : 3, "空調_風速" : 3, "空調_垂直風向" : 1, "空調_水平風向" : 1, "空調_溫度": 25, "咖啡_開關" : false, "咖啡_類型" : 1, "咖啡_溫度" : 60, "咖啡_口味" : 1, "咖啡_熱奶" : 1, "咖啡_奶泡" : 1, "咖啡_水量" : 150, "咖啡_剩余時間" : 200, "咖啡_開始制作" : false}

注意:

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

6. 編譯運行

運行 bin 目錄下的 demo 程序。

8a76e2e6-9ba9-11ee-9788-92fbcf53809c.png

7. 使用 MCU 模擬器與之進行交互

運行 mcu/simulator 目錄下的 mcu_sim 程序,連接到 Localhost:2233。

  • 在界面上修改參數,會看到模擬器上收到了對應的事件:

8a7ea1d4-9ba9-11ee-9788-92fbcf53809c.gif

  • 在模擬器中設置變量咖啡_類型的數據,HMI 端的界面也會自動更新。

8a8e8a22-9ba9-11ee-9788-92fbcf53809c.gif

8. 注意

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 控制
    +關注

    關注

    4

    文章

    1005

    瀏覽量

    122506
  • 串口屏
    +關注

    關注

    8

    文章

    518

    瀏覽量

    37004
  • awtk
    +關注

    關注

    0

    文章

    37

    瀏覽量

    198
收藏 人收藏

    評論

    相關推薦

    AWTK 開源智能串口方案

    AWTK開源智能串口方案發布,旨在解決傳統串口諸多痛點,為用戶提供更開放、更易用、更強大的開源串口
    的頭像 發表于 12-02 08:24 ?767次閱讀
    <b class='flag-5'>AWTK</b> 開源智能<b class='flag-5'>串口</b><b class='flag-5'>屏</b>方案

    AWTK 串口開發(1) - Hello World

    本文以一個簡單的溫度設置程序為例,介紹AWTK串口開發流程和MVVM數據綁定的基本方法。功能這個例子很簡單,制作一個調節溫度的界面。在這里例子中,模型(也就是數據)里只有一個溫度變
    的頭像 發表于 12-08 15:52 ?413次閱讀
    <b class='flag-5'>AWTK</b> <b class='flag-5'>串口</b><b class='flag-5'>屏</b><b class='flag-5'>開發</b>(1) - Hello World

    ?【AWTK開源智能串口方案】方案介紹和工作原理

    本篇文章介紹一下AWTK開源智能串口方案的基本原理和實際使用效果,包括主要特點、應用場景、工作原理以及簡單的Demo演示。引言:AWTK-HMI是基于
    的頭像 發表于 12-21 08:24 ?764次閱讀
    ?【<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 ?302次閱讀
    <b class='flag-5'>AWTK</b> <b class='flag-5'>串口</b><b class='flag-5'>屏</b><b class='flag-5'>開發</b>(3) - 告警信息

    AWTK 串口開發(5) - MCU端 SDK 用法

    AWTK開源智能串口,不但開放了串口端全部源碼,還提供了MCU端SDK,大大加快MCU軟件的開發
    的頭像 發表于 01-06 08:24 ?304次閱讀
    <b class='flag-5'>AWTK</b> <b class='flag-5'>串口</b><b class='flag-5'>屏</b><b class='flag-5'>開發</b>(5) - MCU端 SDK 用法

    AWTK 開源串口開發(6) - 定時器的用法

    定時器是個常用的功能,AWTK串口提供了豐富的定時器函數,用于定時器的啟動、停止、暫停、恢復、修改和重置等功能,本文以計時器的例子來介紹定時器的基本用法。定時器也是一個常用的功能,在AWTK
    的頭像 發表于 01-13 08:24 ?427次閱讀
    <b class='flag-5'>AWTK</b> 開源<b class='flag-5'>串口</b><b class='flag-5'>屏</b><b class='flag-5'>開發</b>(6) - 定時器的用法

    AWTK開源智能串口方案】HMI端程序移植編譯及運行

    -HMI是基于AWTKAWTK-MVVM開發的低代碼智能串口方案,本系列文章介紹如何從零開發
    的頭像 發表于 01-18 08:24 ?689次閱讀
    【<b class='flag-5'>AWTK</b>開源智能<b class='flag-5'>串口</b><b class='flag-5'>屏</b>方案】HMI端程序移植編譯及運行

    AWTK 開源串口開發(9) - 用戶和權限管理

    AWTK串口中,內置用戶管理和權限控制的模型,無需編碼即可實現登錄、登出、修改密碼、權限控制、創建用戶、刪除用戶等功能,本文介紹一下用戶
    的頭像 發表于 02-19 12:10 ?392次閱讀
    <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使用與編譯運行

    代碼智能串口方案,本系列文章介紹如何從零開發HMI程序,包括搭建開發環境、創建HMI運行時工程、修改應用界面以及開發MCU程序。MCU端簡
    的頭像 發表于 02-19 12:11 ?905次閱讀
    【<b class='flag-5'>AWTK</b>開源智能<b class='flag-5'>串口</b><b class='flag-5'>屏</b>方案】MCU SDK使用與編譯運行

    AWTK開源智能串口方案】設計UI界面并上傳到串口

    本篇文章將介紹如何使用AWStudio設計串口端的UI界面和添加綁定規則,以及怎么將資源文件上傳到串口端。引言:AWTK-HMI是基于
    的頭像 發表于 02-22 08:24 ?480次閱讀
    【<b class='flag-5'>AWTK</b>開源智能<b class='flag-5'>串口</b><b class='flag-5'>屏</b>方案】設計UI界面并上傳到<b class='flag-5'>串口</b><b class='flag-5'>屏</b>

    AWTK 開源串口開發(11) - 天氣預報

    AWTK串口內置了XML/JSON/INI等各種數據文件的模型,并支持用HTTP/HTTPS從網絡獲取數據。不用編寫一行代碼,即可實現天氣預報、股票行情、航班查詢和快遞查詢等功能。天氣預報是一個很
    的頭像 發表于 03-05 08:24 ?275次閱讀
    <b class='flag-5'>AWTK</b> 開源<b class='flag-5'>串口</b><b class='flag-5'>屏</b><b class='flag-5'>開發</b>(11) - 天氣預報

    AWTK 開源串口開發(12) - 記事本應用

    傳統的的串口中,開發一個記事本應用,即使可能,也是非常麻煩的事情。在AWTK串口中,內置文件
    的頭像 發表于 03-09 08:23 ?257次閱讀
    <b class='flag-5'>AWTK</b> 開源<b class='flag-5'>串口</b><b class='flag-5'>屏</b><b class='flag-5'>開發</b>(12) - 記事本應用

    AWTK 開源串口開發(14) - 界面重用

    AWTK串口支持同一個界面綁定不同的數據,本文以家居控制為例,介紹一下界面重用的方法。在家居
    的頭像 發表于 03-23 08:23 ?248次閱讀
    <b class='flag-5'>AWTK</b> 開源<b class='flag-5'>串口</b><b class='flag-5'>屏</b><b class='flag-5'>開發</b>(14) - 界面重用

    AWTK 開源串口開發(15) - 通過 MODBUS 訪問遠程數據

    AWTK串口內置MODBUSClient模型,支持用MODBUS協議從遠程設備獲取數據。不用編寫代碼即可實現對遠程設備數據的顯示和修改。在AWTK
    的頭像 發表于 03-30 08:23 ?299次閱讀
    <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協議訪問
    的頭像 發表于 04-13 08:24 ?318次閱讀
    <b class='flag-5'>AWTK</b> 開源<b class='flag-5'>串口</b><b class='flag-5'>屏</b><b class='flag-5'>開發</b>(16) - 提供 MODBUS 服務