LUA教程4- 定时器的使用

Posted 大彩科技

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LUA教程4- 定时器的使用相关的知识,希望对你有一定的参考价值。

点击关注了解更多精彩内容!!


定时器的使用-视频教程演示


1

适用范围

该文档适合所有大彩物联型系列。

2

开发环境版本

1.VisualTFT软件版本:V3.0.0.944及以上的版本。

版本查看:

  1. 打开VisualTFT软件启动页面如图2‑1软件版本,右上角会显示的软件版本号;

    LUA教程4- 定时器的使用
    2‑1  软件版本


  2. 打开VisualTFT,在软件右下角可以查看软件版本图2‑2软件版本,
    最新版本可登录http://www.gz-dc.com/进行下载。
LUA教程4- 定时器的使用
图 2‑2  软件版本

2.   串口屏硬件版本:V3.0.301.0 及以上的版本。
版本查看:
  1. 查看屏幕背面版本号贴纸;
  2. VisualTFT与屏幕联机成功后,右下角显示的版本号。
3.   LUA语言版本V5.5。


3

概述

物联型可以通过LUA脚本配合工程完成丰富多样的操作。

本文将介绍在LUA脚本中使用定时器循环设置按钮的状态。在按下按钮后,定时器启动,定时器以设定的时间为标准,循环设置灯亮/灭。


4

参考文档

1.《物联型LUA 脚本API_v1.0  可通过以下链接下载物联型开发包获取:
http:/www.gz-dc.com/index.php?s=/List/index/cid/19.html
2.《LUA基础学习》  可通过以下链接下载物联型开发包获取:
http:/www.gz-dc.com/index.php?s=/List/index/cid/19.html
3. LUA脚本初学者可以通过下面链接进行学习。
http://www.runoob.com/lua/lua-arrays.html

5

实现教程

   本章节主要讲述通过LUA实现循环计时,并在超时回调函数中设置灯循环亮/灭。本文将分为以下是4个阶段讲述教程DEMO是如何实现的:

  1. 工程准备,

  2. 工程配置与功能,

  3. LUA编写及调试,

  4. 下载与运行。


5.1  工程准备
在实现教程DEMO前需要作以下三个准备:
  1. 硬件平台,
  2. UI素材,
  3. LUA编辑器。


5.1.1  硬件平台

该例程使用大彩物联型7DC80480W070为验证开发平台。如图 5‑1所示。

LUA教程4- 定时器的使用

图  5‑1  物联型7

5.1.2  素材准备

准备好相应的美工UI。如图 5‑2所示。

LUA教程4- 定时器的使用

5‑2   素材准备

5.1.3 LUA编辑器

上位机VisualTFT内部已集成了LUA开发编译环境,点击菜单栏工具,选择LUA编辑器,如图 5‑3所示。
LUA教程4- 定时器的使用

5‑3打开LUA编辑器


LUA编辑器的开发环境,如图 5‑4所示。

LUA教程4- 定时器的使用

5‑4 LUA编辑器界面

5.2     API函数说明

大彩科技针对LUA脚本提供了丰富的API接口函数,具体函数可以查阅文档《大彩组态串口屏LUA 脚本API》,如图 5‑5所示。

LUA教程4- 定时器的使用

5‑5 API函数文档

本教程文档中所涉及到的部分的相关接口函数

1. 函数on_control_notify(screen,control,value)
注释:此函数可以在用户触摸修改控件后被回调。函数有三个参数:
screen表示画面ID
control表示控件的编号
value表示控件的值。
2. 函数on_timer(timer_id)
注释:此函数可以在定时器超时后被回调。函数有一个参数:
timer_id表示超时定时器ID
3. 函数start_timer(timer_id, timeout,countdown, repeat)
注释:此函数可以启动定时器。函数有四个参数:

timer_id表示定时器ID,0~31

timeout表示超时时间,单位毫秒

countdown表示计时的方向,0顺计时,1 倒计时

repeat表示重复次数,0 表示无限重复
4. 函数 stop_timer(timer_id),timer_id表示定时器ID。
5. 函数 set_value(screen,control,value)
注释:此函数可以设置控件数值。函数有三个参数:
screen表示画面ID
control表示控件的编号
value表示控件的值。
  注:更多API函数请参考文档《物联型LUA脚本API_V1.0》和网站:www.runoob.com/lua


5.3     教程实现过程

本例主要展示通过定时器设置灯循环亮/灭,教程中功能的实现步骤如下:
  1. 配置工程属性,
  2. 编写LUA程序,
  3. 运行程序。


5.3.1  定时器的使用

1.首先,设置一个按钮用来控制定时器的开关,事件通知选择是。如果在按下时需要有效果,就要选择按下时的图片效果,并勾选上裁剪。操作风格选择开关。如图5‑6

LUA教程4- 定时器的使用

5‑6  设置开关按钮


在工程中可以选择按钮或者图标来模拟灯。 本文使用按钮来模拟。
设置一个按钮,因为灯有两种状态,所有需要两张图片分别表示亮和灭。
使用灯灭的图片作页面背景图。 在按下时的图片处选择灯亮的图片并勾选裁剪。 如图 5‑7。

LUA教程4- 定时器的使用

5‑7  设置灯

2.按下按钮时,触发事件通知,LUA脚本中的if判断成立,执行函数start_timer(...),启动定时器。如程序清单5‑1所示。
程序清单5‑1设置定时器启动

LUA教程4- 定时器的使用


定时器开启后,超时就会进入回调函数on_timer(...),在回调函数中循环设置灯的状态。 如程序清单 5‑2。
程序清单 5‑2循环设置灯的状态

LUA教程4- 定时器的使用


把程序编写入软件的LUA编辑器中,如图 5‑8所示。

LUA教程4- 定时器的使用

5‑8把程序写入LUA编辑器

3.运行虚拟屏,点击"19200""115200"按钮即可设置波特率,如图5‑9和图5‑10所示。

LUA教程4- 定时器的使用

5‑9  虚拟运行,灯亮


LUA教程4- 定时器的使用

5‑10  虚拟运行,灯灭

5.4     编译和下载

在我司的上层软件Visual TFT中集成了LUA程序的编译器,可以实现在编译工程的同时将LUA脚本程序一起编译,并且将编译后的图片和程序集合在一个名为DCIOT.PKG的文件中。编译后只需要把DCIOT.PKG文件拷贝到U盘中,接上串口屏并重新上电即可将图片和程序下载到屏中。


6

完整程序清单

   

LUA教程4- 定时器的使用

LUA教程4- 定时器的使用

LUA教程4- 定时器的使用


如有问题欢迎联系我司技术支持咨询





编辑:肖水兰




更多大彩串口屏资讯

官网:www.gz-dc.com

淘宝:gz-dc.taobao.com




以上是关于LUA教程4- 定时器的使用的主要内容,如果未能解决你的问题,请参考以下文章

记录——时间轮定时器(lua 实现)

lua实现定时器

记录——时间轮定时器(lua 实现)

ESP8266 LUA脚本语言开发: 外设篇-定时器,延时,看门狗

停止 Lua 中的所有计时器(Garry's Mod)

韦东山freeRTOS系列教程之第十章软件定时器(software timer)