衡阳派盒市场营销有限公司

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

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

3天內不再提示

AWTK 開源串口屏開發(13) - 計算器應用

ZLG致遠電子 ? 2024-03-16 08:23 ? 次閱讀

計算器是一個常見的應用程序,在 AWTK 串口屏中,利用 fscript 表達式計算函數,無需編寫一行傳統的代碼,即可實現一個簡單的計算器應用程序。

1. 功能

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

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

變量名

數據類型

功能說明

expr

字符串

保存表達式或結果


2. 創建項目

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

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


3. 制作界面

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

4. 添加綁定規則

4.1 表達式(結果)

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

綁定屬性

綁定規則

說明

v-data:value

{expr}

expr 是內置的變量,用于保存表達式。

4.2 輸入數字 0

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

綁定屬性

綁定規則

說明

v-on:click

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

在表達式后面追加字符串0’。

4.3 輸入數字 1

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

綁定屬性

綁定規則

說明

v-on:click

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

在表達式后面追加字符串1’。

4.4 輸入數字 2

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

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

在表達式后面追加字符串2’。

4.5 輸入數字 3

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

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

在表達式后面追加字符串3’。

4.6輸入數字 4

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

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

在表達式后面追加字符串4’。

4.7輸入數字 5

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

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

在表達式后面追加字符串5’。

4.8輸入數字6

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

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

在表達式后面追加字符串6’。

4.9輸入數字7

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

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

在表達式后面追加字符串7’。

4.10輸入數字8

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

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

在表達式后面追加字符串8’。

4.11輸入數字9

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

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

在表達式后面追加字符串9’。

4.12輸入運算符+

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

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

在表達式后面追加字符串+

4.13輸入運算符-

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

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

在表達式后面追加字符串-

4.14輸入運算符*

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

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

在表達式后面追加字符串*

4.15輸入運算符/

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

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

在表達式后面追加字符串/’。

4.16 輸入=計算結果

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

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

eval 計算表達式結果,str 將結果轉成字符串。

4.17 刪除鍵<=

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

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

刪除表達式中最后一個字符。

4.18 窗口模型

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

5. 初始化數據

6. 描述需要持久化的數據

7. 編譯運行

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

8. 注意

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

完整示例請參考:demo_calculator。

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

    關注

    3

    文章

    3402

    瀏覽量

    42711
  • 計算器
    +關注

    關注

    16

    文章

    438

    瀏覽量

    37469
  • 串口屏
    +關注

    關注

    8

    文章

    546

    瀏覽量

    37581
  • awtk
    +關注

    關注

    0

    文章

    46

    瀏覽量

    252
收藏 人收藏

    評論

    相關推薦

    Arduino計算器開源分享

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

    高級計算器開源分享

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

    AWTK 開源智能串口方案

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

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

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

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

    告警信息是一個常用的功能。在AWTK開源串口中,內置告警信息模型,只需設計用戶界面即可實現告警信息的顯示和管理。1.功能告警信息是一個常用的功能,MCU在設備異常時,會發送告警信息到
    的頭像 發表于 12-23 08:24 ?508次閱讀
    <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 ?473次閱讀
    <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串口提供了豐富的定時函數,用于定時的啟動、停止、暫停、恢復、
    的頭像 發表于 01-13 08:24 ?623次閱讀
    <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'>開發</b>(6) - 定時<b class='flag-5'>器</b>的用法

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

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

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

    AWTK串口中,內置用戶管理和權限控制的模型,無需編碼即可實現登錄、登出、修改密碼、權限控制、創建用戶、刪除用戶等功能,本文介紹一下用戶管理和權限控制的基本用法。用戶管理和權限控制是一個常用
    的頭像 發表于 02-19 12:10 ?549次閱讀
    <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'>開發</b>(9) - 用戶和權限管理

    AWTK開源智能串口方案】MCU SDK使用與編譯運行

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

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

    本篇文章將介紹如何使用AWStudio設計串口端的UI界面和添加綁定規則,以及怎么將資源文件上傳到串口端。引言:AWTK-HMI是基于
    的頭像 發表于 02-22 08:24 ?790次閱讀
    【<b class='flag-5'>AWTK</b><b class='flag-5'>開源</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 ?441次閱讀
    <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'>開發</b>(11) - 天氣預報

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

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

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

    AWTK串口內置MODBUSClient模型,支持用MODBUS協議從遠程設備獲取數據。不用編寫代碼即可實現對遠程設備數據的顯示和修改。在AWTK
    的頭像 發表于 03-30 08:23 ?455次閱讀
    <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'>開發</b>(15) - 通過 MODBUS 訪問遠程數據

    AWTK 開源串口開發(16) - 提供 MODBUS 服務

    AWTK串口內置MODBUS從站模型,不用編寫一行代碼即可讓串口提供MODBUS服務,讓遠程設備通過MODBUS協議訪問
    的頭像 發表于 04-13 08:24 ?507次閱讀
    <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'>開發</b>(16) - 提供 MODBUS 服務
    投真钱百家乐官网必输吗| 百家乐官网百家乐官网视频游戏世界 | 大发888资讯网007| 永利博线上娱乐城| 百家乐官网破解方法技巧| 博九娱乐场| 娱乐场百家乐官网大都| 百家乐软件代打| 新太阳城娱乐| 百家乐官网游戏出售| 百家乐官网五湖四海娱乐场开户注册| 百家乐最新缆| 新宁县| 养狗对做生意风水好吗| 大发888充钱| 大世界百家乐官网娱乐城| 百家乐只打一种牌型| 边城棋牌中心| 百家乐官网tt娱乐平台| 百家乐网络游戏信誉怎么样 | 百家乐官网套路| 新花园百家乐官网的玩法技巧和规则 | 百家乐智能软件| 新全讯网| 百家乐大赢家客户端| 太阳城网络博彩| 线上百家乐官网的玩法技巧和规则| 百家乐最新分析仪| 百家乐官网视频游戏账号| 信誉好百家乐平台| 当阳市| 百家乐电子路单破解| 石河子市| 百家乐水晶筹码| 静安区| 中国百家乐游戏| 昂仁县| 金百家乐官网的玩法技巧和规则| 老虎机价格| 荷规则百家乐官网的玩法技巧和规则 | 赌博百家乐赢不了|