LUA教程2-回调函数使用说明

Posted 大彩科技

tags:

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

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


回调函数使用-视频教程演示


1

适用范围

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

2

开发环境版本

1.VisualTFT软件版本:V3.0.0.944及以上的版本。
版本查看:
  1. 打开VisualTFT软件启动页面如图2‑1软件版本,右上角会显示的软件版本号;
    LUA教程2-回调函数使用说明

    图2‑1  软件版本


  2. 打开VisualTFT,在软件右下角可以查看软件版本图2‑2软件版本,

    最新版本可登录http://www.gz-dc.com/进行下载。

LUA教程2-回调函数使用说明
图2‑2  软件版本

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

3

概述

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

本文将介绍大彩LUA脚本API函数中的回调函数使用方法,以及调用回调函数的注意事项。


4

参考文档

  1. 《物联型LUA 脚本API》

  2. 《LUA基础学习》

  3. LUA脚本初学者可以通过下面链接进行学习。http://www.runoob.com/lua/lua-arrays.html


5

工程设计

   本章节主要通过LUA教程demo讲述如何实现回调函数的触发使用以及编写程序的注意事项。该例程使用大彩物联型7寸串口屏DC80480W070为验证开发平台。如图 5‑1所示

LUA教程2-回调函数使用说明
图5‑1  物联型7寸串口屏

5.1  UI素材准备

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


LUA教程2-回调函数使用说明
图5‑2  素材准备


5.2 LUA编辑器

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

LUA教程2-回调函数使用说明
5‑3  打开LUA编辑器

5.3 API函数说明

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

LUA教程2-回调函数使用说明

5‑4  API函数文档


本教程文档中所涉及到的部分的相关接口函数如下。
1.  函数on_control_notify(screen,control,value)
注释:此函数可以在用户触摸控件后被回调。函数有三个参数:
screen 表示画面ID
control表示控件的编号
value 表示控件的值。
2.  函数on_init()
注释:系统初始化时,执行此回调函数。
3.  函数 on_systick( )
注释:定时回调函数,系统每隔1秒钟自动调用。
4.  函数on_timer(timer_id)
注释:定时器超时,执行此回调函数
参数:timer_id     --定时器ID
5.  函数on_screen_change(screen)
 注释:当画面切换至目标画面ID时,执行此回调函数
 参数:screen 表示目标画面ID

6.  函数 on_draw(screen)

注释:当调用redraw()或屏幕刷新时会触发此函数,在目标画面中进行绘图

参数:screen 表示目标画面ID

7.  函数 on_usb_inserted (dir)

注释:当插入U盘后会触发调用此函数

参数:dir 表示系统分派给U盘的路径

8.  函数on_sd_inserted(dir)

注释:当插入SD卡后会触发调用此函数

参数:dir 表示系统分派给SD卡的路径

9.   函数on_usb_removed()
注释:当拔出U盘后会触发调用此函数
10.  函数on_sd_removed()
注释:当拔出SD卡后会触发调用此函数


5.4  教程DEMO说明

下文将结合教程DEMO讲述回调函数是如何触发的。


5.4.1  函数on_init()

系统加载 LUA 脚本文件之后,立即调用此回调函数, 通常用于执行初始化操作,如图 5‑5和图 5‑6所示。


LUA教程2-回调函数使用说明
5‑5  函数on_init( )


on_init()函数中填写设置文本框数值的API函数,在系统初始化是会调用执行。具体代码如程序清单 1中所示。

 

程序清单 系统初始化执行函数

LUA教程2-回调函数使用说明


5.4.2  函数on_systick()

系统每隔 1 秒钟自动调用此回调函数,工程画面如图5‑7所示

LUA教程2-回调函数使用说明
5‑7  函数on_systick


教程中在on_systick()函数里添加了一个显示回调函数被执行次数的程序,具体代码如程序清单2中所示

程序清单函数on_systick( )
LUA教程2-回调函数使用说明


5.4.3  函数on_timer()

on_timer(timer_id)定时器超时回调函数,教程画面中放置了两个按钮,一个启用定时器,一个停止定时器和一个文本框,文本框是显示定时器超时后调用的的次数。教程演示画面如 图5‑8所示

LUA教程2-回调函数使用说明
5‑8  函数on_timer( )

   教程中添加了按钮按下触发启用定时器以及按钮按下触发停止定时器的程序,具体代码如程序清单 3中所示。

程序清单函数on_timer 

LUA教程2-回调函数使用说明


5.4.4  函数on_control_notify()

用户触摸修改控件后,执行此回调函数。点击按钮控件,修改文本控件、修改滑动条都会触发此函数。教程演示画面如 图5‑9所示


LUA教程2-回调函数使用说明

5‑9  函数on_control_notify( )


教程中在回调函数函数中添加了对触发函数的控件编号判断,具体代码如程序清单4

程序清单函数on_control_notify

LUA教程2-回调函数使用说明


5.4.5  函数on_screen_change()

当画面需要切换时,执行此回调函数。教程中将按钮控件的属性设置为画面切换,点击该按钮控件就会将画面切换到指定的画面中,演示画面如图 5‑10、图 5‑11和图 5‑12所示
注意,此函数内部调用API change_screen切换画面,不会嵌套执行 on_screen_change

LUA教程2-回调函数使用说明

5‑10  函数on_screen_change


LUA教程2-回调函数使用说明

5‑11  目标画面中的数据

教程中在on_screen_change函数中添加了对目标画面数据修改的逻辑处理,屏在切换画面的同时会触发回调函数on_screen_change,从而实现在切换画面是将目标画面的数据进行修改,具体代码如程序清单 5中所示。

程序清单函数on_screen_change

LUA教程2-回调函数使用说明


LUA教程2-回调函数使用说明

5‑12  虚拟屏运行结果

5.4.6  函数on_draw()

重绘时执行此回调函数,通常所有绘图操作都在此函数中实现。显示工程中的图片也是在此回调函数中实现,教程实现点击按钮显示随工程编译下载的图片,教程演示画面如图 5‑13所示

LUA教程2-回调函数使用说明

5‑13  函数on_draw


教程中的显示图片的代码如程序清单 6中所示


程序清单函数on_draw

LUA教程2-回调函数使用说明


5.4.7  U盘和SD卡的回调函数

当插入U盘和SD卡或者拔出U盘或SD卡时,便会触发对应的回调函数,教程中将U盘或SD卡插入时的路径显示出来,如果拔出则在文本框中提示已拔出。教程演示画面如图 5‑14所示

LUA教程2-回调函数使用说明

5‑14  U/SD卡回调函数演示画面

教程中实现显示U/SD卡插入及拔出操作提示的LUA脚本代码如程序清单 7中所示

程序清单 7 U盘或SD卡回调函数

LUA教程2-回调函数使用说明


5.5  编译和下载

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

5.6  调试与运行

除了下载到实体屏中调试,还可以利用上层软件的虚拟屏进行调试,我司的Visual TFT软件中支持大部分LUA脚本功能运行。在开发过程中可以利用软件中的虚拟屏进行调试,从而缩短调试的时间,实现加快开发进度。

5.6.1  打开虚拟屏

点击工具栏中的运行虚拟串口屏,软件先会将当前工程进行编译,编译成功后工程会在虚拟屏上运行起来,如图 5‑18和图 5‑19所示


LUA教程2-回调函数使用说明

5‑18  点击运行虚拟屏


LUA教程2-回调函数使用说明

5‑19  虚拟屏


6

LUA回调函数的完整程序清单

查看程序时请结合教程demo理解:

LUA教程2-回调函数使用说明

LUA教程2-回调函数使用说明

LUA教程2-回调函数使用说明

LUA教程2-回调函数使用说明

LUA教程2-回调函数使用说明


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



编辑:肖水兰



更多大彩串口屏资讯

官网:www.gz-dc.com

淘宝:gz-dc.taobao.com


以上是关于LUA教程2-回调函数使用说明的主要内容,如果未能解决你的问题,请参考以下文章

Lua 函数回调技巧

失败时调用的成功回调函数。可能的错误?

lua cocosstudio 怎么获得触摸点的坐标

如何在Lua脚本中响应事件回调

JS回调函数全解析教程

JS回调函数全解析教程