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

    文章

    3320

    浏览量

    42473
  • 计算器
    +关注

    关注

    16

    文章

    437

    浏览量

    37330
  • 串口屏
    +关注

    关注

    8

    文章

    532

    浏览量

    37422
  • awtk
    +关注

    关注

    0

    文章

    44

    浏览量

    226
收藏 人收藏

    评论

    相关推荐

    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 948次阅读
    <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 986次阅读
    ​【<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 446次阅读
    <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 424次阅读
    <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 569次阅读
    <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 913次阅读
    【<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 503次阅读
    <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 1200次阅读
    【<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 717次阅读
    【<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 396次阅读
    <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 346次阅读
    <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 399次阅读
    <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 452次阅读
    <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 服务