LUA教程9-自定义串口指令

Posted 大彩科技

tags:

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

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


自定义串口指令-视频教程演示


1

适用范围

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

2

开发环境版本

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


  2. 打开VisualTFT,在软件右下角可以查看软件版本图2‑2软件版本,
    最新版本可登录http://www.gz-dc.com/进行下载。
LUA教程9-自定义串口指令

图 2‑2  软件版本


2.  串口屏硬件版本:V3.0.301.0 及以上的版本。
版本查看:
a)  查看屏幕背面版本号贴纸;
b)  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教程9-自定义串口指令
图  5‑1  物联型7

5.1     素材准备

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

LUA教程9-自定义串口指令

5‑2  素材准备


5.1.3  LUA编辑器

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

LUA教程9-自定义串口指令

5‑3  打开LUA编辑器

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

LUA教程9-自定义串口指令

图  5‑4 LUA编辑器界面

5.2     API函数说明

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

LUA教程9-自定义串口指令

图 5‑5 API函数文档

本教程文档中所涉及到的部分的相关接口函数
1. 函数on_control_notify(screen,control,value)
注释:此函数可以在用户触摸修改控件后被回调。函数有三个参数:
screen表示画面ID
control表示控件的编号
value表示控件的值。
2. 函数on_uart_recv_data(packet),baudrate表示设置的波特率值。
注释:此函数可以在用户触摸修改控件后被回调
3. 函数uart_set_timeout(timeout,timeout_inter)
注释:此函数可以在用户触摸修改控件后被回调。函数有两个参数:
timeout表示接收总超时
timeout_inter表示字节间隔超时
4. 函数beep(time),time表示蜂鸣器响的时间长度,单位ms。
5. 函数set_value(screen,control,value)
注释:此函数可以设置控件数值。函数有三个参数:
screen表示画面ID
control表示控件的编号
value表示控件的值。
6. 函数set_text(screen,control,text)
注释:此函数设置文本控件的内容。函数有三个参数:
screen 表示被触发控件的页码
control表示控件的编号
text表示要设置的内容
7. 函数uart_send_data(packet),packet表示数据,数据类型:表。
注释:此函数通过串口发送数据。
8. 函数get_text(screen,control)
注释:此函数获取文本控件的内容。函数有两个参数:
screen 表示被触发控件的页码
control表示控件的编号
返回文本的数据
9. 函数string.len(arg),arg表示字符串。
注释:计算字符串长度。
返回文本的长度值
10. 函数string.byte(arg[,int])
注释:转换字符为整数值(可以指定某个字符,默认第一个字符)。
arg表示字符串
[,int]表示索引
返回字符对应整数值
  注:更多API函数请参考文档《物联型LUA脚本API_V1.0》和网站:www.runoob.com/lua


5.3 教程实现过程

串口屏中使用自定义串口指令,通过发送自定义的指令可以设置按钮按下、设置文本、设置蜂鸣器响。并在按下按钮或通过键盘输入数据后发送自定义指令。教程中每个功能的实现步骤如下:
  1. 配置工程属性,
  2. 编写LUA程序,
  3. 运行程序。


5.3.1   设置自定义串口

首先因为在实体屏中数据传输需要时间,所以在LUA脚本中设置串口接受超时时间,如程序清单 5‑1

程序清单5‑1设置串口超时时间

LUA教程9-自定义串口指令


然后,设置uart_free_protocol1即进入自由串口协议,如程序清单 5‑2

程序清单5‑2设置自由串口协议

LUA教程9-自定义串口指令


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

LUA教程9-自定义串口指令

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

5.3.2  设置按钮状态

  1. 在工程中设置一个按钮,如需要在状态改变有效果,可以设置按下图片并选择裁剪,如图5‑6

LUA教程9-自定义串口指令

5‑7  设置按钮

2.然后在串口函数接收到A1 0101 1A指令时使按钮按下,如程序清单5‑3

程序清单5‑3设置按钮状态

LUA教程9-自定义串口指令


3.虚拟运行,当接收到A1 0101 1A指令时,按钮设置为按下状态,如图5‑7所示。

LUA教程9-自定义串口指令

5‑7 设置按钮按下


5.3.3  设置文本内容

  1. 设置一个文本框,如图 5‑8

LUA教程9-自定义串口指令

5‑8  设置文本框


2.然后在串口函数接收到A1 02XX 1A指令时设置文本值为XX,如程序清单 5‑4


程序清单5‑4设置文本框的数值

LUA教程9-自定义串口指令


3.虚拟运行,接收到指令时,设置文本框的值,如图 5‑9所示。

LUA教程9-自定义串口指令

5‑9 设置文本框的值

5.3.4  设置蜂鸣器响

  1. 在串口函数接收到A1 03 XX1A指令时设置响为XX毫秒,如程序清单 5‑5


    程序清单5‑5设置蜂鸣器响

LUA教程9-自定义串口指令


5.3.5  发送按钮指令

  1. 在设置一个按钮,事件通知选择是,再设置按下图片并选择裁剪,操作风格选择瞬变,如图 5‑10

LUA教程9-自定义串口指令

5‑10  设置按钮

2.在触摸控件回调函数中设置按下按钮是发送指令A1 04 01 1A,如程序清单5‑6

LUA教程9-自定义串口指令


3.虚拟运行,按下按钮时,发送A1 0401 1A指令,如图5‑11所示。

LUA教程9-自定义串口指令

5‑11  按下按钮发送指令

5.3.6  发送键盘输入内容

  1. 在设置一个文本框,文本框属性的键入方式选择弹出系统键盘输入,输入方式选择全键盘,如图 5‑12所示。

LUA教程9-自定义串口指令

5‑12  设置键盘输入

2.在触摸控件回调函数中设置键盘输入完成后是发送指令A1 05 XX 1AXX表示键盘输入的内容,如程序清单5‑7所示。


程序清单5‑7发送键盘输入的内容

LUA教程9-自定义串口指令


虚拟运行,键盘输入完成后发送键盘输入的内容,如图 5‑13所示。

LUA教程9-自定义串口指令

5‑13  发送键盘输入的内容

5.4     编译和下载

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


6

完整程序清单

  自定义串口指令demo的完整程序,如程序清单 8所示,查看程序时请结合教程demo理解:


程序清单 8完整程序

LUA教程9-自定义串口指令

LUA教程9-自定义串口指令

LUA教程9-自定义串口指令

LUA教程9-自定义串口指令

LUA教程9-自定义串口指令


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





编辑:肖水兰



更多大彩串口屏资讯

官网:www.gz-dc.com

淘宝:gz-dc.taobao.com


以上是关于LUA教程9-自定义串口指令的主要内容,如果未能解决你的问题,请参考以下文章

必看!LuatOS自定义C库全新教程,一文极速上手

必看!LuatOS自定义C库全新教程,一文极速上手

本篇更完ESP 保姆级教程 疯狂传感器篇 —— 案例:ESP8266 + 火焰传感器 + 串口输出 + 自定义微信告警(火警预防)

ESP 保姆级教程疯狂传感器篇 —— 案例:ESP8266 + 火焰传感器 + 串口输出 + 自定义飞书告警(火警预防)

vue3.0 如何自定义指令

vue3.0 如何自定义指令