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

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

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

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

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

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

1. 功能

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

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

變量名

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

功能說明

expr

字符串

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


2. 創(chuàng)建項目

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

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


3. 制作界面

用 AWStudio 打開上面 calculator 目錄下的 project.json 文件。里面有一個空的窗口,做出類似下面的界面。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 輸入=計算結(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 計算表達(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á)式中最后一個字符。

4.18 窗口模型

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

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

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

7. 編譯運(yùn)行

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

8. 注意

本項目并沒有編寫界面相關(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)系本站處理。 舉報投訴
  • 開源
    +關(guān)注

    關(guān)注

    3

    文章

    3348

    瀏覽量

    42496
  • 計算器
    +關(guān)注

    關(guān)注

    16

    文章

    437

    瀏覽量

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

    關(guān)注

    8

    文章

    534

    瀏覽量

    37433
  • awtk
    +關(guān)注

    關(guān)注

    0

    文章

    44

    瀏覽量

    231
收藏 人收藏

    評論

    相關(guān)推薦

    Arduino計算器開源分享

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

    高級計算器開源分享

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

    AWTK 開源智能串口方案

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

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

    告警信息是一個常用的功能。在AWTK開源串口中,內(nèi)置告警信息模型,只需設(shè)計用戶界面即可實(shí)現(xiàn)告警信息的顯示和管理。1.功能告警信息是一個常用的功能,MCU在設(shè)備異常時,會發(fā)送告警信息到
    的頭像 發(fā)表于 12-23 08:24 ?457次閱讀
    <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 ?435次閱讀
    <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) - 定時的用法

    定時是個常用的功能,AWTK串口提供了豐富的定時函數(shù),用于定時的啟動、停止、暫停、恢復(fù)、
    的頭像 發(fā)表于 01-13 08:24 ?575次閱讀
    <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) - 定時<b class='flag-5'>器</b>的用法

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

    本篇文章介紹一下AWTK開源智能串口方案的串口端(即HMI端)的編譯運(yùn)行步驟,并介紹如何將H
    的頭像 發(fā)表于 01-18 08:24 ?929次閱讀
    【<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)限控制是一個常用
    的頭像 發(fā)表于 02-19 12:10 ?510次閱讀
    <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)行時工程、修改應(yīng)用界面以及開發(fā)MCU程序。MCU端簡
    的頭像 發(fā)表于 02-19 12:11 ?1213次閱讀
    【<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è)計UI界面并上傳到串口

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

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

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

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

    傳統(tǒng)的的串口中,開發(fā)一個記事本應(yīng)用,即使可能,也是非常麻煩的事情。在AWTK串口中,內(nèi)置文件
    的頭像 發(fā)表于 03-09 08:23 ?354次閱讀
    <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 ?407次閱讀
    <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 ?454次閱讀
    <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ù)