一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

AWTK 串口屏開(kāi)發(fā)(2) - 家居控制

ZLG致遠(yuǎn)電子 ? 2023-12-16 08:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文以一個(gè)家居控制應(yīng)用程序?yàn)槔?,介紹 AWTK 串口屏的開(kāi)發(fā)流程和 MVVM 數(shù)據(jù)綁定的高級(jí)用法。

1. 功能

這個(gè)例子稍微復(fù)雜一點(diǎn),重點(diǎn)關(guān)注數(shù)據(jù)綁定。在這個(gè)例子中,模型(也就是數(shù)據(jù))里包括一臺(tái)空調(diào)和一臺(tái)咖啡機(jī):

變量名

數(shù)據(jù)類(lèi)型

功能說(shuō)明

空調(diào)_開(kāi)關(guān)

布爾

空調(diào)開(kāi)關(guān)

空調(diào)_模式

整數(shù)

空調(diào)模式 (0: 制冷;1: 制熱;2: 送風(fēng);2: 除濕;4: 自動(dòng))

空調(diào)_風(fēng)速

整數(shù)

0-4 共五檔

空調(diào)_垂直風(fēng)向

整數(shù)

垂直風(fēng)向 (0: 自動(dòng);1:上;2:中;3:下)

空調(diào)_水平風(fēng)向

整數(shù)

水平風(fēng)向(0:自動(dòng);1:左;2:中;3:右)

空調(diào)_溫度

布爾

溫度(0-40)

咖啡_開(kāi)關(guān)

整數(shù)

咖啡開(kāi)關(guān)

咖啡_類(lèi)型

整數(shù)

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

咖啡_溫度

整數(shù)

溫度(0-100)

咖啡_口味

整數(shù)

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

咖啡_熱奶

整數(shù)

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

咖啡_奶泡

整數(shù)

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

咖啡_水量

整數(shù)

水量 (50-350ml)

咖啡_剩余時(shí)間

整數(shù)

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

咖啡_開(kāi)始制作

布爾

開(kāi)始制作

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

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

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

3. 制作界面

界面和資源就直接用了 ZDP1440 顯示驅(qū)動(dòng)芯片例子:

  • 主界面

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

  • 空調(diào)界面

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

  • 咖啡機(jī)界面

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

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

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

完整示例可以參考 hmi/demo_app3

4.1 溫度設(shè)置

這種兩個(gè)按鈕帶一個(gè)靜態(tài)文本的組合很常見(jiàn)。8a4badc4-9ba9-11ee-9788-92fbcf53809c.png

中間的靜態(tài)文本

綁定屬性

綁定規(guī)則

說(shuō)明

v-data:value

{空調(diào)_溫度+‘℃’}

右邊的按鈕(增加)

綁定屬性

綁定規(guī)則

說(shuō)明

v-on:click

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

這里用函數(shù) set 將變量空調(diào)_溫度增加 1 度。min 函數(shù)保證變量的值不會(huì)超出 40。

  • 左邊的按鈕(減少)

綁定屬性

綁定規(guī)則

說(shuō)明

v-on:click

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

這里用函數(shù) set 將變量空調(diào)_溫度減少 1 度。max 函數(shù)保證變量的值不會(huì)小于 0。

v-on:click 是一個(gè)常見(jiàn)的事件,最好記住,可以提高效率。

4.2 模式選擇

這個(gè)用一組單選按鈕實(shí)現(xiàn),將多個(gè)單選按鈕放到 group_box 里(將多個(gè)單選按鈕放到 view 里也可以,只是需要為每個(gè)單選按鈕編寫(xiě)綁定規(guī)則)。

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

  • 如果綁定規(guī)則寫(xiě)到 group_box 上。這樣寫(xiě)即可:

綁定屬性

綁定規(guī)則

說(shuō)明

v-data:value

{空調(diào)_模式}

如果使用 view 作為容器,則麻煩一點(diǎn)。需要為每個(gè)單選按鈕編寫(xiě)兩條綁定規(guī)則:

綁定屬性

綁定規(guī)則

說(shuō)明

v-data:value

{空調(diào)_模式 == 0}

這里的 0 是單選按鈕的序數(shù),根據(jù)實(shí)際情況調(diào)整

v-on:click

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

這里的 0 是單選按鈕的序數(shù),根據(jù)實(shí)際情況調(diào)整

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

4.3 模式顯示

模式用一個(gè)靜態(tài)文本顯示。問(wèn)題在于,模式在內(nèi)部用一個(gè)正整數(shù)表示,而顯示的是一個(gè)用戶(hù)可以理解的字符串。所以需要一個(gè)轉(zhuǎn)換函數(shù)one_of:8a61bc72-9ba9-11ee-9788-92fbcf53809c.png

綁定屬性

綁定規(guī)則

說(shuō)明

v-data:value

v-data:value="{one_of(‘制冷;制熱;送風(fēng);除濕;自動(dòng)’, 空調(diào)_模式)}

這里的 one_of 的功能是從指定的字符串?dāng)?shù)組中取出對(duì)應(yīng)的子串。

4.4 剩余時(shí)間

剩余時(shí)間用一個(gè)靜態(tài)文本顯示。問(wèn)題在于,剩余時(shí)間在內(nèi)部用一個(gè)正整數(shù)表示(秒數(shù)),而顯示的是“分鐘:秒”。所以需要一個(gè)轉(zhuǎn)換表達(dá)式:

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

綁定屬性

綁定規(guī)則

說(shuō)明

v-data:value

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

表達(dá)是按浮點(diǎn)數(shù)計(jì)算的,這里的 int 將結(jié)果轉(zhuǎn)換為正數(shù)。

4.5 隱藏視圖

在點(diǎn)擊開(kāi)關(guān)按鈕時(shí),會(huì)自動(dòng)顯示或隱藏右邊的設(shè)置視圖。這是通過(guò)將視圖的可見(jiàn)性(visible)綁定到開(kāi)關(guān)的狀態(tài)實(shí)現(xiàn)的:

綁定屬性

綁定規(guī)則

說(shuō)明

v-data:visible

{空調(diào)_開(kāi)關(guān)}

4.6 指定窗口的模型為 default

這是最簡(jiǎn)單也是最關(guān)鍵的一步:

綁定屬性

綁定規(guī)則

說(shuō)明

v-model

default

嚴(yán)格的意義上說(shuō),綁定規(guī)則也是一種代碼,不過(guò)相比于 C 語(yǔ)言,它有下面的優(yōu)勢(shì):

無(wú)需編譯,直接運(yùn)行。

簡(jiǎn)單,通常只有一行。

易懂,聲明式的語(yǔ)法。

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

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

{ "空調(diào)_開(kāi)關(guān)" : false, "空調(diào)_模式" : 3, "空調(diào)_風(fēng)速" : 3, "空調(diào)_垂直風(fēng)向" : 1, "空調(diào)_水平風(fēng)向" : 1, "空調(diào)_溫度": 25, "咖啡_開(kāi)關(guān)" : false, "咖啡_類(lèi)型" : 1, "咖啡_溫度" : 60, "咖啡_口味" : 1, "咖啡_熱奶" : 1, "咖啡_奶泡" : 1, "咖啡_水量" : 150, "咖啡_剩余時(shí)間" : 200, "咖啡_開(kāi)始制作" : false}

注意:

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

6. 編譯運(yùn)行

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

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

7. 使用 MCU 模擬器與之進(jìn)行交互

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

  • 在界面上修改參數(shù),會(huì)看到模擬器上收到了對(duì)應(yīng)的事件:

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

  • 在模擬器中設(shè)置變量咖啡_類(lèi)型的數(shù)據(jù),HMI 端的界面也會(huì)自動(dòng)更新。

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

8. 注意

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 控制
    +關(guān)注

    關(guān)注

    5

    文章

    1024

    瀏覽量

    123855
  • 串口屏
    +關(guān)注

    關(guān)注

    8

    文章

    586

    瀏覽量

    38389
  • awtk
    +關(guān)注

    關(guān)注

    0

    文章

    50

    瀏覽量

    390
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    AWTK 開(kāi)源智能串口方案

    AWTK開(kāi)源智能串口方案發(fā)布,旨在解決傳統(tǒng)串口諸多痛點(diǎn),為用戶(hù)提供更開(kāi)放、更易用、更強(qiáng)大的開(kāi)源串口
    的頭像 發(fā)表于 12-02 08:24 ?1455次閱讀
    <b class='flag-5'>AWTK</b> 開(kāi)源智能<b class='flag-5'>串口</b><b class='flag-5'>屏</b>方案

    AWTK 串口開(kāi)發(fā)(1) - Hello World

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

    ?【AWTK開(kāi)源智能串口方案】方案介紹和工作原理

    本篇文章介紹一下AWTK開(kāi)源智能串口方案的基本原理和實(shí)際使用效果,包括主要特點(diǎn)、應(yīng)用場(chǎng)景、工作原理以及簡(jiǎn)單的Demo演示。引言:AWTK-HMI是基于
    的頭像 發(fā)表于 12-21 08:24 ?1477次閱讀
    ?【<b class='flag-5'>AWTK</b>開(kāi)源智能<b class='flag-5'>串口</b><b class='flag-5'>屏</b>方案】方案介紹和工作原理

    AWTK 串口開(kāi)發(fā)(3) - 告警信息

    告警信息是一個(gè)常用的功能。在AWTK開(kāi)源串口中,內(nèi)置告警信息模型,只需設(shè)計(jì)用戶(hù)界面即可實(shí)現(xiàn)告警信息的顯示和管理。1.功能告警信息是一個(gè)常用的功能,MCU在設(shè)備異常時(shí),會(huì)發(fā)送告警信息到串口
    的頭像 發(fā)表于 12-23 08:24 ?774次閱讀
    <b class='flag-5'>AWTK</b> <b class='flag-5'>串口</b><b class='flag-5'>屏</b><b class='flag-5'>開(kāi)發(fā)</b>(3) - 告警信息

    AWTK 串口開(kāi)發(fā)(5) - MCU端 SDK 用法

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

    AWTK 開(kāi)源串口開(kāi)發(fā)(6) - 定時(shí)器的用法

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

    AWTK開(kāi)源智能串口方案】HMI端程序移植編譯及運(yùn)行

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

    AWTK 開(kāi)源串口開(kāi)發(fā)(9) - 用戶(hù)和權(quán)限管理

    AWTK串口中,內(nèi)置用戶(hù)管理和權(quán)限控制的模型,無(wú)需編碼即可實(shí)現(xiàn)登錄、登出、修改密碼、權(quán)限控制、創(chuàng)建用戶(hù)、刪除用戶(hù)等功能,本文介紹一下用戶(hù)
    的頭像 發(fā)表于 02-19 12:10 ?820次閱讀
    <b class='flag-5'>AWTK</b> 開(kāi)源<b class='flag-5'>串口</b><b class='flag-5'>屏</b><b class='flag-5'>開(kāi)發(fā)</b>(9) - 用戶(hù)和權(quán)限管理

    AWTK開(kāi)源智能串口方案】MCU SDK使用與編譯運(yùn)行

    代碼智能串口方案,本系列文章介紹如何從零開(kāi)發(fā)HMI程序,包括搭建開(kāi)發(fā)環(huán)境、創(chuàng)建HMI運(yùn)行時(shí)工程、修改應(yīng)用界面以及開(kāi)發(fā)MCU程序。MCU端簡(jiǎn)
    的頭像 發(fā)表于 02-19 12:11 ?1822次閱讀
    【<b class='flag-5'>AWTK</b>開(kāi)源智能<b class='flag-5'>串口</b><b class='flag-5'>屏</b>方案】MCU SDK使用與編譯運(yùn)行

    AWTK開(kāi)源智能串口方案】設(shè)計(jì)UI界面并上傳到串口

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

    AWTK 開(kāi)源串口開(kāi)發(fā)(11) - 天氣預(yù)報(bào)

    AWTK串口內(nèi)置了XML/JSON/INI等各種數(shù)據(jù)文件的模型,并支持用HTTP/HTTPS從網(wǎng)絡(luò)獲取數(shù)據(jù)。不用編寫(xiě)一行代碼,即可實(shí)現(xiàn)天氣預(yù)報(bào)、股票行情、航班查詢(xún)和快遞查詢(xún)等功能。天氣預(yù)報(bào)是一個(gè)很
    的頭像 發(fā)表于 03-05 08:24 ?672次閱讀
    <b class='flag-5'>AWTK</b> 開(kāi)源<b class='flag-5'>串口</b><b class='flag-5'>屏</b><b class='flag-5'>開(kāi)發(fā)</b>(11) - 天氣預(yù)報(bào)

    AWTK 開(kāi)源串口開(kāi)發(fā)(12) - 記事本應(yīng)用

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

    AWTK 開(kāi)源串口開(kāi)發(fā)(14) - 界面重用

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

    AWTK 開(kāi)源串口開(kāi)發(fā)(15) - 通過(guò) MODBUS 訪(fǎng)問(wèn)遠(yuǎn)程數(shù)據(jù)

    AWTK串口內(nèi)置MODBUSClient模型,支持用MODBUS協(xié)議從遠(yuǎn)程設(shè)備獲取數(shù)據(jù)。不用編寫(xiě)代碼即可實(shí)現(xiàn)對(duì)遠(yuǎn)程設(shè)備數(shù)據(jù)的顯示和修改。在AWTK
    的頭像 發(fā)表于 03-30 08:23 ?704次閱讀
    <b class='flag-5'>AWTK</b> 開(kāi)源<b class='flag-5'>串口</b><b class='flag-5'>屏</b><b class='flag-5'>開(kāi)發(fā)</b>(15) - 通過(guò) MODBUS 訪(fǎng)問(wèn)遠(yuǎn)程數(shù)據(jù)

    AWTK 開(kāi)源串口開(kāi)發(fā)(16) - 提供 MODBUS 服務(wù)

    AWTK串口內(nèi)置MODBUS從站模型,不用編寫(xiě)一行代碼即可讓串口提供MODBUS服務(wù),讓遠(yuǎn)程設(shè)備通過(guò)MODBUS協(xié)議訪(fǎng)問(wèn)
    的頭像 發(fā)表于 04-13 08:24 ?771次閱讀
    <b class='flag-5'>AWTK</b> 開(kāi)源<b class='flag-5'>串口</b><b class='flag-5'>屏</b><b class='flag-5'>開(kāi)發(fā)</b>(16) - 提供 MODBUS 服務(wù)