大彩串口屏使用记录

2023-10-18 06:50
文章标签 使用 记录 串口 大彩

本文主要是介绍大彩串口屏使用记录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

写在最前面

屏幕型号 DC10600M070
IDE VisualTFT(官方) VSCode(lua编程)
用之前看一下官方那个1小时的视频教程就大概懂控件怎么用了,用官方的软件VisualTFT很简单
本文只是简单记录遇到的一些坑


lua编辑器

VisualTFT是有lua编辑器的,在【工具】那里点开【lua编辑器】就可以进入,使用其他编辑器之前也好好看一下官方的这段注释。
在这里插入图片描述官方编辑器打字有种奇妙的卡顿感,我用的vscode不会。
VisualTFT生成工程的lua脚本的编码是 GB2312,使用其他编辑器的时候注意以这个编码打开这样中文注释就不会乱码了。
顺便如果要编写一些简单的LUA测试小脚本推荐使用在线工具,https://c.runoob.com/compile/66/ 菜鸟教程的这个很好用。vscode好像我试过print输出有问题,查了下要改配置还挺麻烦遂放弃。

Lua数组 如何从0开始索引

因为屏幕脚本用Lua脚本写的,写的就现学了lua脚本语言,很简单,和python差不多,但是lua最大的一个坑是他的默认数组索引是从1开始的不是从0开始,然后屏幕厂商给的api要用到的数组索引全是从0开始的。刚开始学的时候没注意以为数组都是0开始,坑死我了(讨厌lua)

默认创建的数组 索引从1开始(以下测试脚本使用在线工具编写)

print("Hello World!")
local a = {1, 2}
for i=0, 3, 1 doprint(i)print(a[i])
end
-- 输出 
Hello World!
0
nil
1
1
2
2

创建从0开始的数组

print("Hello World!")
local a = {[0]=1, 2}
for i=0, 2, 1 doprint(i)print(a[i])
end
-- 输出
Hello World!
0
1
1
2
2
nil

通用列表控件显示彩色文字

官方的叫法是数据记录控件,我这边通称列表了
因为项目需要记录报警信息,但是官方提供的告警记录控件不符合需求,给的列表控件文字只能显示为1个颜色,就是说你改成红色文字列表里所有文字都是红的,不能像告警一样一行显示红色,一行显示蓝色。但是告警记录控件可记录的内容受到的限制很大。
在这里插入图片描述
告警控件如下图,选择列表控件然后更改【记录类型】就可以在这里插入图片描述最后想出来的解决办法(也没完全解决)是使用列表显示ICON图标【详见官方的】,图标使用官方VisualTFT的图标生成工具生成的。而且图标显示的内容是固定的(就是在列表里显示图片),所以只用来显示内容不变的文本,比如“xx事件”,像数值这种动态变化的文本就还是只能使用列表默认的颜色来显示。
效果如下(样例数据随便写的)
在这里插入图片描述

列表控件的上限

咨询屏幕厂商得到的数据,列表预留的空间不能超过131072【型号 DC10600M070】,否则列表内容将不能正常在屏幕上显示(在电脑上模拟没问题,用屏幕的时候会直接列表为空)。
单个表的预留空间 = 单条记录大小*最大记录数
在这里插入图片描述
我基本上使用record_add这个api添加列表记录 ,该API的格式是record_add(screen_id, control_id, str),str使用英文分号分隔开表示为不同列的内容。测试后发现单条记录大小大概等于这个str字符串的长度(不确定),如果你单条记录大小设置的太小的话,小于str的长度,可能会出现最后几列内容为空的情况。

串口通信测试/虚拟串口

使用虚拟串口Virtual Serial Port Driver可以在本机上对虚拟串口屏的通信进行测试,官方有提供这个软件的安装包。
在这里插入图片描述
打开选择想要用的两个串口号点【Add pair】就可以添加了,添加成功在左边列表可以看到(上面的是真实的物理串口),这里使用给的是COM2和COM5两个端口号。
用visualTFT运行虚拟串口,然后进行串口配置并且点击【打开串口】,串口号选择刚刚配置的端口号的其中一个(COM2)就可以了。
在这里插入图片描述
另外开一个串口软件,这里使用sscom,串口号选择配置的另外一个虚拟串口(COM5),波特率与刚刚配置的虚拟串口屏的波特率一致就可以。
在这里插入图片描述

关于曲线

官方给了两种曲线控件都不符合需求(。。。
然后自己画了,就用两点间直线连接的老方法,就用draw_line这个接口函数。
这个功能折磨了我一个月,最后效果还不错。

曲线测试(没啥好看的)

这篇关于大彩串口屏使用记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/230928

相关文章

Java中的抽象类与abstract 关键字使用详解

《Java中的抽象类与abstract关键字使用详解》:本文主要介绍Java中的抽象类与abstract关键字使用详解,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、抽象类的概念二、使用 abstract2.1 修饰类 => 抽象类2.2 修饰方法 => 抽象方法,没有

MyBatis ParameterHandler的具体使用

《MyBatisParameterHandler的具体使用》本文主要介绍了MyBatisParameterHandler的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、概述二、源码1 关键属性2.setParameters3.TypeHandler1.TypeHa

Spring 中的切面与事务结合使用完整示例

《Spring中的切面与事务结合使用完整示例》本文给大家介绍Spring中的切面与事务结合使用完整示例,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录 一、前置知识:Spring AOP 与 事务的关系 事务本质上就是一个“切面”二、核心组件三、完

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

使用Python实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca

C#下Newtonsoft.Json的具体使用

《C#下Newtonsoft.Json的具体使用》Newtonsoft.Json是一个非常流行的C#JSON序列化和反序列化库,它可以方便地将C#对象转换为JSON格式,或者将JSON数据解析为C#对... 目录安装 Newtonsoft.json基本用法1. 序列化 C# 对象为 JSON2. 反序列化

RabbitMQ 延时队列插件安装与使用示例详解(基于 Delayed Message Plugin)

《RabbitMQ延时队列插件安装与使用示例详解(基于DelayedMessagePlugin)》本文详解RabbitMQ通过安装rabbitmq_delayed_message_exchan... 目录 一、什么是 RabbitMQ 延时队列? 二、安装前准备✅ RabbitMQ 环境要求 三、安装延时队

Python ORM神器之SQLAlchemy基本使用完全指南

《PythonORM神器之SQLAlchemy基本使用完全指南》SQLAlchemy是Python主流ORM框架,通过对象化方式简化数据库操作,支持多数据库,提供引擎、会话、模型等核心组件,实现事务... 目录一、什么是SQLAlchemy?二、安装SQLAlchemy三、核心概念1. Engine(引擎)

Java Stream 并行流简介、使用与注意事项小结

《JavaStream并行流简介、使用与注意事项小结》Java8并行流基于StreamAPI,利用多核CPU提升计算密集型任务效率,但需注意线程安全、顺序不确定及线程池管理,可通过自定义线程池与C... 目录1. 并行流简介​特点:​2. 并行流的简单使用​示例:并行流的基本使用​3. 配合自定义线程池​示