加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

技术分享 | AWTK 开源串口屏开发(13) - 计算器应用

03/16 09:25
2183
阅读需 12 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

计算器是一个常见的应用程序,在 AWTK 串口屏中,利用 fscript 表达式计算函数,无需编写一行传统的代码,即可实现一个简单的计算器应用程序。

1. 功能

计算器是一个很常见的应用,比如在电子秤中,可能就需要这样一个应用。在计算器中会用到一些有意思的知识点,比如嵌入键盘,在数字输入或密码输入也会用到。这里我们实现一个简单的计算器,不需要编写代码,设计好界面,添加绑定规则即可。

在这里例子中,模型(也就是数据)里只有一个 expr:

变量名 数据类型 功能说明
expr 字符串 保存表达式或结果

2. 创建项目

从模板创建项目,将 hmi/template_app 拷贝 hmi/calculator 即可。

第一个项目最好不要放到其它目录,因为放到其它目录需要修改配置文件中的路径,等熟悉之后再考虑放到其它目录。路径中也不要中文和空格,避免不必要的麻烦。

3. 制作界面

用 AWStudio 打开上面 calculator 目录下的 project.json 文件。里面有一个空的窗口,做出类似下面的界面。

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 程序:

8. 注意

本项目并没有编写界面相关的代码,AWStudio 在 src/pages 目录下生成了一些代码框架,这些代码并没有用到,可以删除也可以不用管它,但是不能加入编译。

完整示例请参考:demo_calculator。

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
TJA1042T/3,118 1 NXP Semiconductors TJA1042 - High-speed CAN transceiver with Standby mode SOIC 8-Pin

ECAD模型

下载ECAD模型
$1.51 查看
LAN8710A-EZC-ABC 1 Microchip Technology Inc Ethernet Transceiver

ECAD模型

下载ECAD模型
$1.55 查看
TJA1055T/C,518 1 NXP Semiconductors TJA1055 - Enhanced fault-tolerant CAN transceiver SOIC 14-Pin
$2.67 查看
致远电子

致远电子

广州致远电子股份有限公司成立于2001年,注册资金5000万元,国家级高新技术认证企业,广州市高端工控测量仪器工程技术研究开发中心,Intel ECA全球合作伙伴和微软嵌入式系统金牌合作伙伴。

广州致远电子股份有限公司成立于2001年,注册资金5000万元,国家级高新技术认证企业,广州市高端工控测量仪器工程技术研究开发中心,Intel ECA全球合作伙伴和微软嵌入式系统金牌合作伙伴。收起

查看更多

相关推荐

电子产业图谱