RM新时代网站-首页

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

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

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

AWTK 開源串口屏開發(fā)(13) - 計(jì)算器應(yīng)用

ZLG致遠(yuǎn)電子 ? 2024-03-16 08:23 ? 次閱讀

計(jì)算器是一個(gè)常見的應(yīng)用程序,在 AWTK 串口屏中,利用 fscript 表達(dá)式計(jì)算函數(shù),無需編寫一行傳統(tǒng)的代碼,即可實(shí)現(xiàn)一個(gè)簡單的計(jì)算器應(yīng)用程序。

1. 功能

計(jì)算器是一個(gè)很常見的應(yīng)用,比如在電子秤中,可能就需要這樣一個(gè)應(yīng)用。在計(jì)算器中會用到一些有意思的知識點(diǎn),比如嵌入鍵盤,在數(shù)字輸入或密碼輸入也會用到。這里我們實(shí)現(xiàn)一個(gè)簡單的計(jì)算器,不需要編寫代碼,設(shè)計(jì)好界面,添加綁定規(guī)則即可。76e15e0e-e32b-11ee-9118-92fbcf53809c.png

在這里例子中,模型(也就是數(shù)據(jù))里只有一個(gè)expr

變量名

數(shù)據(jù)類型

功能說明

expr

字符串

保存表達(dá)式或結(jié)果


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

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

第一個(gè)項(xiàng)目最好不要放到其它目錄,因?yàn)榉诺狡渌夸浶枰薷呐渲梦募械穆窂剑仁煜ぶ笤倏紤]放到其它目錄。路徑中也不要中文和空格,避免不必要的麻煩。


3. 制作界面

用 AWStudio 打開上面 calculator 目錄下的 project.json 文件。里面有一個(gè)空的窗口,做出類似下面的界面。76e5d290-e32b-11ee-9118-92fbcf53809c.png

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

4.1 表達(dá)式(結(jié)果)

用 edit 控件顯示表達(dá)式,將表達(dá)式文本屬性綁定到expr變量。添加自定義的屬性v-data:value,將值設(shè)置為{expr}。

綁定屬性

綁定規(guī)則

說明

v-data:value

{expr}

expr 是內(nèi)置的變量,用于保存表達(dá)式。

4.2 輸入數(shù)字 0

0按鈕的點(diǎn)擊事件綁定到fscript命令。添加自定義的屬性v-on:click,將值設(shè)置為{fscript, Args=set(expr, expr+‘0’)}。

綁定屬性

綁定規(guī)則

說明

v-on:click

{fscript, Args=set(expr, expr+‘0’)}

在表達(dá)式后面追加字符串0’。

4.3 輸入數(shù)字 1

1按鈕的點(diǎn)擊事件綁定到fscript命令。添加自定義的屬性v-on:click,將值設(shè)置為{fscript, Args=set(expr, expr+‘1’)}。

綁定屬性

綁定規(guī)則

說明

v-on:click

{fscript, Args=set(expr, expr+‘1’)}

在表達(dá)式后面追加字符串1’。

4.4 輸入數(shù)字 2

2按鈕的點(diǎn)擊事件綁定到fscript命令。添加自定義的屬性v-on:click,將值設(shè)置為{fscript, Args=set(expr, expr+‘2’)}。

綁定屬性綁定規(guī)則說明
v-on:click{fscript, Args=set(expr, expr+‘2’)}

在表達(dá)式后面追加字符串2’。

4.5 輸入數(shù)字 3

3按鈕的點(diǎn)擊事件綁定到fscript命令。添加自定義的屬性v-on:click,將值設(shè)置為{fscript, Args=set(expr, expr+‘3’)}。

綁定屬性綁定規(guī)則說明
v-on:click{fscript, Args=set(expr, expr+‘3’)}

在表達(dá)式后面追加字符串3’。

4.6輸入數(shù)字 4

4按鈕的點(diǎn)擊事件綁定到fscript命令。添加自定義的屬性v-on:click,將值設(shè)置為{fscript, Args=set(expr, expr+‘4’)}。

綁定屬性綁定規(guī)則說明
v-on:click{fscript, Args=set(expr, expr+‘4’)}

在表達(dá)式后面追加字符串4’。

4.7輸入數(shù)字 5

5按鈕的點(diǎn)擊事件綁定到fscript命令。添加自定義的屬性v-on:click,將值設(shè)置為{fscript, Args=set(expr, expr+‘5’)}。

綁定屬性綁定規(guī)則說明
v-on:click{fscript, Args=set(expr, expr+‘5’)}

在表達(dá)式后面追加字符串5’。

4.8輸入數(shù)字6

6按鈕的點(diǎn)擊事件綁定到fscript命令。添加自定義的屬性v-on:click,將值設(shè)置為{fscript, Args=set(expr, expr+‘6’)}。

綁定屬性綁定規(guī)則說明
v-on:click{fscript, Args=set(expr, expr+‘6’)}

在表達(dá)式后面追加字符串6’。

4.9輸入數(shù)字7

7按鈕的點(diǎn)擊事件綁定到fscript命令。添加自定義的屬性v-on:click,將值設(shè)置為{fscript, Args=set(expr, expr+‘7’)}。

綁定屬性綁定規(guī)則說明
v-on:click{fscript, Args=set(expr, expr+‘7’)}

在表達(dá)式后面追加字符串7’。

4.10輸入數(shù)字8

8按鈕的點(diǎn)擊事件綁定到fscript命令。添加自定義的屬性v-on:click,將值設(shè)置為{fscript, Args=set(expr, expr+‘8’)}。

綁定屬性綁定規(guī)則說明
v-on:click{fscript, Args=set(expr, expr+‘8’)}

在表達(dá)式后面追加字符串8’。

4.11輸入數(shù)字9

9按鈕的點(diǎn)擊事件綁定到fscript命令。添加自定義的屬性v-on:click,將值設(shè)置為{fscript, Args=set(expr, expr+‘9’)}。

綁定屬性綁定規(guī)則說明
v-on:click{fscript, Args=set(expr, expr+‘9’)}

在表達(dá)式后面追加字符串9’。

4.12輸入運(yùn)算符+

+按鈕的點(diǎn)擊事件綁定到fscript命令。添加自定義的屬性v-on:click,將值設(shè)置為{fscript, Args=set(expr, expr+‘+’)}

綁定屬性綁定規(guī)則說明
v-on:click{fscript, Args=set(expr, expr+‘+’)}

在表達(dá)式后面追加字符串+。

4.13輸入運(yùn)算符-

-按鈕的點(diǎn)擊事件綁定到fscript命令。添加自定義的屬性v-on:click,將值設(shè)置為{fscript, Args=set(expr, expr+‘-’)}

綁定屬性綁定規(guī)則說明
v-on:click{fscript, Args=set(expr, expr+‘-’)}

在表達(dá)式后面追加字符串-。

4.14輸入運(yùn)算符*

*按鈕的點(diǎn)擊事件綁定到fscript命令。添加自定義的屬性v-on:click,將值設(shè)置為{fscript, Args=set(expr, expr+‘*’)}

綁定屬性綁定規(guī)則說明
v-on:click{fscript, Args=set(expr, expr+‘*’)}

在表達(dá)式后面追加字符串*。

4.15輸入運(yùn)算符/

/按鈕的點(diǎn)擊事件綁定到fscript命令。添加自定義的屬性v-on:click,將值設(shè)置為{fscript, Args=set(expr, expr+‘/’)}。

綁定屬性綁定規(guī)則說明
v-on:click{fscript, Args=set(expr, expr+‘/’)}

在表達(dá)式后面追加字符串/’。

4.16 輸入=計(jì)算結(jié)果

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

綁定屬性綁定規(guī)則說明
v-on:click{fscript, Args=set(expr, str(eval(expr)))}

eval 計(jì)算表達(dá)式結(jié)果,str 將結(jié)果轉(zhuǎn)成字符串。

4.17 刪除鍵<=

<=按鈕的點(diǎn)擊事件綁定到fscript命令。添加自定義的屬性v-on:click,將值設(shè)置為{fscript, Args=set(expr,usubstr(expr,0,-1))}。

綁定屬性綁定規(guī)則說明
v-on:click{fscript, Args=set(expr,usubstr(expr,0,-1))}

刪除表達(dá)式中最后一個(gè)字符。

4.18 窗口模型

指定窗口的模型為 dummy(expr=’’),dummy 是一個(gè)簡單的模型,只能存放數(shù)據(jù),而且是控件或窗口私有的。expr=’'表示將 expr 初始化為空字符串。

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

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

7. 編譯運(yùn)行

運(yùn)行 bin 目錄下的 demo 程序:76ee664e-e32b-11ee-9118-92fbcf53809c.gif

8. 注意

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

完整示例請參考:demo_calculator。

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

    關(guān)注

    3

    文章

    3309

    瀏覽量

    42471
  • 計(jì)算器
    +關(guān)注

    關(guān)注

    16

    文章

    437

    瀏覽量

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

    關(guān)注

    8

    文章

    532

    瀏覽量

    37418
  • awtk
    +關(guān)注

    關(guān)注

    0

    文章

    44

    瀏覽量

    226
收藏 人收藏

    評論

    相關(guān)推薦

    Arduino計(jì)算器開源分享

    電子發(fā)燒友網(wǎng)站提供《Arduino計(jì)算器開源分享.zip》資料免費(fèi)下載
    發(fā)表于 10-31 11:42 ?2次下載
    Arduino<b class='flag-5'>計(jì)算器</b><b class='flag-5'>開源</b>分享

    高級計(jì)算器開源分享

    電子發(fā)燒友網(wǎng)站提供《高級計(jì)算器開源分享.zip》資料免費(fèi)下載
    發(fā)表于 11-03 10:42 ?1次下載
    高級<b class='flag-5'>計(jì)算器</b><b class='flag-5'>開源</b>分享

    AWTK 開源智能串口方案

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

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

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

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

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

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

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

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

    定時(shí)是個(gè)常用的功能,AWTK串口提供了豐富的定時(shí)函數(shù),用于定時(shí)的啟動(dòng)、停止、暫停、恢復(fù)、
    的頭像 發(fā)表于 01-13 08:24 ?565次閱讀
    <b class='flag-5'>AWTK</b> <b class='flag-5'>開源</b><b class='flag-5'>串口</b><b class='flag-5'>屏</b><b class='flag-5'>開發(fā)</b>(6) - 定時(shí)<b class='flag-5'>器</b>的用法

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

    本篇文章介紹一下AWTK開源智能串口方案的串口端(即HMI端)的編譯運(yùn)行步驟,并介紹如何將H
    的頭像 發(fā)表于 01-18 08:24 ?912次閱讀
    【<b class='flag-5'>AWTK</b><b class='flag-5'>開源</b>智能<b class='flag-5'>串口</b><b class='flag-5'>屏</b>方案】HMI端程序移植編譯及運(yùn)行

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

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

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

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

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

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

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

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

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

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

    AWTK 開源串口開發(fā)(15) - 通過 MODBUS 訪問遠(yuǎn)程數(shù)據(jù)

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

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

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