LUA教程7-绘图API函数使用说明

Posted 大彩科技

tags:

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

 关注 ↑↑↑我们获得更多精彩内容!


绘图API函数使用说明-视频教程 演示

1

适用范围

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

2

开发环境版本

1.VisualTFT软件版本:V3.0.0.944及以上的版本。
版本查看:
  1. 打开VisualTFT软件启动页面如图2‑1软件版本,右上角会显示的软件版本号;
     2‑1  软件版本


  2. 打开VisualTFT,在软件右下角可以查看软件版本图2‑2软件版本,
    最新版本可登录http://www.gz-dc.com/进行下载。
LUA教程7-绘图API函数使用说明
图 2‑2  软件版本

2.  串口屏硬件版本:V3.0.301.0 及以上的版本。

版本查看:

a)  查看屏幕背面版本号贴纸;

b)  VisualTFT与屏幕联机成功后,右下角显示的版本号。

 3.    LUA语言版本V5.5

3

概述

   物联型串口屏通过LUA脚本配合工程可以完成大部分的内部逻辑处理,可以做到让MCU只参与数据处理,不参与屏的逻辑处理。

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

4

参考文档

  1. 《物联型LUA 脚本API
  2. LUA基础学习》
  3. LUA脚本初学者可以通过下面链接进行学习。 http://www.runoob.com/lua/lua-arrays.html

5

工程设计

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

LUA教程7-绘图API函数使用说明
图  5‑1  物联型7

5.1     素材准备

准备好相应的美工UI。如图5‑2所示
LUA教程7-绘图API函数使用说明
图  5‑2  素材准备


5.2   LUA编辑器

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

LUA教程7-绘图API函数使用说明

图  5‑3  打开LUA编辑器

5.3  API函数说明

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

LUA教程7-绘图API函数使用说明

图 5‑4  API函数文档


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


1.    函数redraw()

注释:申请调用回调函数on_draw:

2.    函数start_timer(timer_id, timeout,countdown, repeat)  

         注释:打开定时器。

参数 :   timer_id           画面ID

             timeout           超时时间

countdown      1或0  顺计时1 ,倒计时 0

             repeat              计时器重复次数   0为无限循环

3.    函数load_surface (filepath)

注释:定时回调函数,系统每隔1秒钟自动调用。

参数                    filepath               图片路径

      返还值                  surface               图层指针,指向所加载的图片

1.   函数draw_line(x1,y1,x2,y2,level)

注释:定时器超时,执行此回调函数

参数:     

         x1           直线起始点x轴的坐标

y1          直线起始点y轴的坐标

              x2           直线结束点X轴的坐标

y2          直线结束点y轴的坐标

level       直线的曲线等级,1~10级

  1. 2.     函数on_screen_change(screen)

 注释:当画面切换至目标画面ID时,执行此回调函数

 参数:screen 表示目标画面ID

  1. 3.     函数on_draw(screen)

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

 参数:screen 表示目标画面ID


5.3.2 绘图API函数使用注意事项

所有的绘图API函数需要写在回调函数on_draw()才能生效,写在该函数外的绘图API函数均无效,但函数redraw()除外。

5.4    教程DEMO说明

串口屏提供API函数绘制的基本图形共有7种,分别为直线、矩形、实心矩形、圆形、实心圆形、椭圆形和实心椭圆,另外还提供绘制文字和图片的API函数。本章节将结合教程DEMO讲述如何调用API函数实现绘制基本图形和绘制图片。

5.4.1  绘制基本图形API

在教程DEMO的绘图示例画面中,点击按钮可以实现绘制指定的基本图形,运行虚拟屏后工程画面如图 5‑5所示。

LUA教程7-绘图API函数使用说明

图  5‑5  绘制基本图形画面

教程脚本程序解释:将 7种图形按按钮控件编号属性定义,如1对应直线、2对应空心矩形依次类推。按下对应的按钮后获取对应的序号,程序如程序清单 1所示;
程序清单 1获取绘图类型

LUA教程7-绘图API函数使用说明

获取到对应的编号后调用API函数在当前画面绘制图形,显示图形部分的程序清单 2中所示。 
程序清单 2绘制基本图形

LUA教程7-绘图API函数使用说明

LUA教程7-绘图API函数使用说明


5.4.2  绘图应用1

利用基本图形也可以仿制部分控件的使用,如利用画直线模仿曲线控件和画实心矩形模仿进度条控件,教程DEMO中先将曲线坐标轴和空心矩形画在背景图中,然后利用坐标在对应的位置上画直线和实心矩形,教程DEMO画面如图 5‑6所示

LUA教程7-绘图API函数使用说明

图  5‑6  绘图应用1


LUA程序解释:教程中的曲线数据为固定数据,进入到该画面后按照固定数据显示曲线;显示曲线部分的代码如程序清单 3所示;
程序清单 3绘制曲线

LUA教程7-绘图API函数使用说明


按下画面中开始按钮后启动定时器2定时刷新进度条的进度。代码如程序清单 4中所示
程序清单 4定时刷新进度条

LUA教程7-绘图API函数使用说明


5.4.3  绘图应用2

该画面为使用LUA  API函数显示图片的教程,在画面中的按钮代表对应的显示图片的API函数,空心矩形框的位置是图片显示的位置。教程演示画面如图 5‑7所示

LUA教程7-绘图API函数使用说明

图 5‑7   绘图应用

  按下画面中的按钮,分别调用两种API函数显示指定的图片,显示图片的程序如程序清单 5中所示。
程序清单 5 显示图片

LUA教程7-绘图API函数使用说明


5.5     编译和下载

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

5.6     调试与运行

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

5.6.1  打开虚拟屏

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

LUA教程7-绘图API函数使用说明

图 5‑11  点击运行虚拟屏


LUA教程7-绘图API函数使用说明

图 5‑12  虚拟屏


6

LUA绘图API使用教程的完整程序清单

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

LUA教程7-绘图API函数使用说明

LUA教程7-绘图API函数使用说明

LUA教程7-绘图API函数使用说明

LUA教程7-绘图API函数使用说明


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





编辑:肖水兰




更多大彩串口屏资讯

官网:www.gz-dc.com

淘宝:gz-dc.taobao.com


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

H7-TOOL的LUA小程序教程第2期:变量,循环,函数,条件语句和字符串相关API

H7-TOOL的LUA小程序教程第3期:使用LUA控制H7-TOOL的LCD简易界面设计

H7-TOOL的LUA小程序教程第1期:LUA编辑器,LUA测试环境搭建,调试方法

H7-TOOL的LUA小程序教程第5期:串口开发,含Modbus(2022-01-16)

H7-TOOL的LUA小程序教程第4期:I2C总线开发(2022-01-13)

Lua的API函数