LUA教程6-运算和字符串处理
Posted 大彩科技
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LUA教程6-运算和字符串处理相关的知识,希望对你有一定的参考价值。
简单的运算和字符处理-视频教程演示
1
适用范围
2
开发环境版本
-
打开VisualTFT软件启动页面如图2‑1软件版本,右上角会显示的软件版本号; 图 2‑1 软件版本 -
打开VisualTFT,在软件右下角可以查看软件版本图2‑2软件版本, 最新版本可登录http://www.gz-dc.com/进行下载。
2. 串口屏硬件版本:V3.0.301.0 及以上的版本。
版本查看:
a) 查看屏幕背面版本号贴纸;
b) VisualTFT与屏幕联机成功后,右下角显示的版本号。
3. LUA语言版本V5.5。
3
概述
4
参考文档
《物联型LUA 脚本API》
《LUA基础学习》
LUA脚本初学者可以通过下面链接进行学习。http://www.runoob.com/lua/lua-arrays.html
5
工程设计
5.1 素材准备
5.2 LUA编辑器
上位机VisualTFT内部已集成了LUA开发编译环境,点击菜单栏工具,选择LUA编辑器,如图 5‑3所示。
图 5‑3 打开LUA编辑器
5.3 API函数说明
大彩科技针对LUA脚本提供了丰富的API接口函数,具体函数可以查阅文档《物联型LUA脚本API 》,如图 5‑4所示。
图 5‑4 API函数文档
5.3.1 本教程文档中所涉及到的部分的相关接口函数如下
1. 函数set_value(screen,control,value)
注释:设置控件的值
参数: screen 画面ID
-- control 控件ID
-- value 控件值
2. 函数get_value(screen,control)
注释:获取控件的值。
参数: screen 画面ID
-- control 控件ID
3 . 函数set_text((screen,control,str)
注释:获取控件的值。
参数: screen 画面ID
-- control 控件ID
-- str 字符串
4. 函数get_text((screen,control)
注释:获取控件的值。
参数 : screen 画面ID
-- control 控件ID
5.函数on_screen_change(screen)
注释:当画面切换至目标画面ID时,执行此回调函数
参数:screen 表示目标画面ID
5.3.2 String和math库函数
教程中用到的部分math库函数和string库函数说明:
部分math库函数
--********************************************************
--功能:开方
--调用函数:math.sqrt(num)
--参数 : num 数值
--********************************************************
--功能:取模运算(类求x/y余)
--调用函数:math.fmod(x,y)
--参数 : x 数值
--参数 : y 数值
--********************************************************
--功能:取绝对值
--调用函数:math.abs(x)
--参数 : x 数值
--********************************************************
--功能:获取数值的整数部分及小数部分
--调用函数:math.modf(x)
--参数 : x 数值
--*********************************************************
--功能:余弦函数
--调用函数:math.cos(x)
--参数 : x 弧度
--*********************************************************
--功能:正弦函数
--调用函数:math.sin(x)
-- math.rad(30) 角度转换弧度
--参数 : 30 角度
--********************************************************
--功能:正切函数
--函数:math.tan(x)
--参数 : x 弧度
--********************************************************
--功能:筛选出输入的参数中最大的参数
--调用函数:math.max(arg...)
--参数 : arg 数值(可多个参数,参数数量不定)
--********************************************************
--功能:筛选出输入的参数中最小的参数
--函数:math.min(arg...)
--参数 : arg 数值(可多个参数,参数数量不定)
2. String库函数
--********************************************************
--功能:尝试将参数e转换为数字,当不能转换时返回nil
--函数:tonumber (e [, base])
--参数 : e 字符串
-- [,base](可选参数,不填时默认转十进制数值,填16转十六进制进制数)
--********************************************************
--功能:尝试将参数e转换为字符串,当不能转换时返回nil
--函数:tonumber (e)
--参数 : e 数值
--********************************************************
--功能:在文本框中显示获取字符串长度
--调用函数:tonumber (str)
--参数 : str 字符串
--********************************************************
--功能:在文本框中显示截取字的符串str_value的第一个字符
--函数:string.sub(str,i,j)
--参数 : str 字符串
-- i 起始索引
-- j 截止索引
--*********************************************************
5.4 教程DEMO说明
除了我们提供的API函数之外还可以使用部分LUA相关的库函数,如math库,string库等。本章节主要讲述调用部分库函数在串口屏上的实现简单的逻辑运算和字符处理。
5.4.1 简单运算
教程DEMO在此画面中简单的演示了LUA基础运算中的加减乘除和关系运算,教程DEMO画面如图 5‑5所示。
图 5‑5 简单的运算
在当前画面的A,B文本框输入值后点击运算按钮,会在相对应的文本框中显示运算结果,如所示;
图 5‑6 虚拟屏
教程程序说明:点击运算按钮后系统会调用on_control_notify(screen,control,value),并将当前画面ID、按钮控件ID以及按钮的值传入函数中,通过IF判断当按钮按下的时候将运算结果显示用set_value( ),程序如程序清单 1所示;
程序清单1显示运算结果
5.4.2 math库函数
5.4.3 字符串处理
通过LUA脚本string库函数以及字符串特性,可以实现将两个或多个字符串拼接起来在一个文本框中显示,而且不需要外部MCU的参与。教程演示画面如图 5‑8所示;
程序清单3显示图片
5.4.4 简单的逻辑运算
图 5‑9 简单的逻辑处理
5.5 编译和下载
在我司的上层软件Visual TFT中集成了LUA程序的编译器,可以实现在编译工程的同时将LUA脚本程序一起编译,并且将编译后的图片和程序集合在一个名为DCIOT.PKG的文件中。编译后只需要把DCIOT.PKG文件拷贝到U盘中,接上串口屏并重新上电即可将图片和程序下载到屏中。
5.6 调试与运行
除了下载到实体屏中调试,还可以利用上层软件的虚拟屏进行调试,我司的Visual TFT软件中支持大部分LUA脚本功能运行。在开发过程中可以利用软件中的虚拟屏进行调试,从而缩短调试的时间,实现加快开发进度。
5.6.1 打开虚拟屏
点击工具栏中的运行虚拟串口屏,软件先会将当前工程进行编译,编译成功后工程会在虚拟屏上运行起来,如图 5‑13和图 5‑14所示
图 5‑14 虚拟屏
6
LUA教程的完整程序清单
●编辑:肖水兰
官网:www.gz-dc.com
淘宝:gz-dc.taobao.com
以上是关于LUA教程6-运算和字符串处理的主要内容,如果未能解决你的问题,请参考以下文章