三易串口屏开发环境VP介绍
1. VP界面
串口屏界面开发工具Visual Pix(以下简称VP),适用于win7及以上windows操作系统,默认为中文编辑界面。
界面开发可视化,所见即所得,控件配合脚本即可实现各种复杂应用。
以下是整体界面风格:
2. 菜单栏
2.1 文件 – 打开SD卡目录
点击打开SD卡目录后,会进入一个计算机C盘文件夹,此处用于存放一些文件。如视频、音频、图片资源以及数据的文件。
例如:当使用串口屏播放一段较长的视频时,因为串口屏本身容量有限,此时就只有将视频文件放入SD卡内,但是上位机模拟调试播放时,也需要有一个外部SD卡的环境,这里就是模拟串口屏模块使用SD卡的情况。
2.2 文件 – 工程文件操作
菜单项 |
说明 |
---|---|
新建项目 |
新建一个串口屏工程项目,快捷键 Ctrl+N |
打开项目 |
打开一个串口屏的工程,快捷键 Ctrl+O |
关闭项目 |
关闭当前串口屏工程。 |
编辑项目 |
划重点,非常有用。相同分辨率的项目,可以重新选择其他尺寸的固件。例如240x320分辨率的工程可以在 2.4 2.8 3.2寸串口屏直接随意选择型号。如果分辨率不同,则也会显示,会根据分辨率不同,放大或者缩小显示范围,功能照样使用。 |
保存项目 |
保存当前串口屏工程。 |
另存项目 |
当前串口屏工程另存为其他名称或者为位置。 |
退出 |
退出VP编辑器。 |
新建工程项目界面如下:
SANY-WQ-S43-01-R:分辨率为480x272,S系列的4.3寸,通讯接口为RS-232,电阻触摸。
产品型号编码规则:SANY-液晶分辨率缩写-系列代码+尺寸-硬件版本号+触摸类型
名称 |
说明 |
举例 |
---|---|---|
SANY |
产品前缀 |
|
液晶分辨率 |
液晶行业约定俗称 |
例如:WQ:480X272 WV:800X480 WS:1024X600 WS:1280X720 |
系列代码 |
G 或者 S |
G系列:1.54、2.4、2.8等; S系列:4.3、7.0、10.0等。 |
尺寸 |
24->2.4寸,70->7.0寸 |
|
硬件版本号 |
通讯方式,2位编码 |
01:RS232 02:RS485/02M:RS485带Modbus 04:lvttl+扩展IO+扩展串口 05 rs485+扩展IO,串口。带M标记,表示支持modbus。 |
触摸类型 |
N无触摸,R电阻触摸,C电容触摸 |
2.3 文件 – 编辑项目(工程型号更改)
说明 |
将一个型号的工程改为另一个型号,此功能可以更改已有工程的一些设置,如尺寸、产品型号、旋转角度。 |
操作简述 |
在已创建/打开的工程中,点击文件–>项目编辑,即可根据需要调整工程设置; |
注意事项 |
选择为已有工程尺寸的其它尺寸时,变化的只是操作界面,工程中的素材尺寸不会改变; |
界面如下:
2.4 编辑
菜单项 |
说明 |
---|---|
复制控件 |
复制功能内的一个控件,快捷键 Ctrl+C |
剪切控件 |
剪切功能内的一个控件,快捷键 Ctrl+X |
粘贴控件 |
粘贴功能内的一个控件,快捷键 Ctrl+V |
删除控件 |
删除功能内的一个控件,快捷键 delete |
撤销操作 |
撤销上一步操作,快捷键 Ctrl+Z |
重做操作 |
重做功能内的一个控件,快捷键 Ctrl+Y |
操作类的快捷方式如上: 简单明了,鼠标放上去会有提示。
2.5 调试
菜单项 |
说明 |
---|---|
编译 |
编译当前工程,编译不通过,则输出面板输出错误,快捷键 Ctrl+B |
下载 |
下载当前工程到串口屏模块。 |
调试 |
启动工程VP模拟器进行工程模拟运行,可以在VP软件中模拟串口屏工程的运行,方便客户调整工程中控件和脚本。 |
2.6 视图
菜单项 |
说明 |
---|---|
重置窗口布局 |
恢复窗口布局到默认状态,开发过程中,可能把各个工作区大小拖拽得比较乱,可用此键重新恢复默认布局。 |
2.7 工具
2.7.1 函数编辑器(自定义函数)
使用步骤 |
工具->函数编辑器,进入编辑界面,根据需求定义函数。如果用到重复性的计算,请使用函数功能,减少编码量,增加编程效率。 |
函数的定义 |
同C语言。 |
函数的调用 |
|
2.7.2 取字模(生成字库)
工程中所有显示字符的控件,都需要在控件的font属性内绑定一个字库,这个字库内包含的文字,就是控件能显示出的文字。用控件
菜单栏:工具->取字模,打开转换工具,字体转换工具的界面如下: |
操作步骤 |
1. 字体: 选择需要的字体,此处字体的种类和计算机系统安装的字体一致 注: |
2.7.3 固件下载
简介 |
串口屏固件,类似串口屏的操作系统,是执行串口屏工程的平台,运行在串口屏模块的主控芯片中。串口屏模块的固件,一直在不停的升级中,修改bug、增加功能、增加配置等,都需要固件支持。 |
下载接口 |
G系列(2.4、3.5等)只能用串口升级,S系列(4.3、7.0等)可以用USB或者串口升级。 |
下载方式介绍 |
有三种情况: |
串口屏显示提示 |
下载时,弹出固件升级提示窗口,选择 ‘是’ 进行升级,升级固件时,串口屏背景会变成绿色并有下载提示。 |
2.7.4 项目设置 – 波特率
菜单栏:工具->项目设置,或者点击快捷栏按钮 ,界面如下:
波特率可脚本更改,若想通过脚本设置系统变量,如设置波特率为9600:sys_baud = 9600;
注:屏幕掉电后会波特率恢复到项目设置的初始选择值;
2.7.5 项目设置 – Modbus主从机设置
当工程为带Modbus的版本时,进入项目设置界面,会增加以下设置:
当串口屏做主机时,勾选‘主机’,不勾选则默认为从机;
地址为做从机时的地址,从机地址可脚本更改,如设置从机地址100:sys_modbus_addr = 100;
注:屏幕掉电后地址会恢复到项目设置的填写值;
2.7.6 项目设置 – Bin文件生成和下载
生成bin文件:进入项目设置后
勾选‘生成二进制文件’;
点击保存,然后编译工程文件;
工程文件的保存文件夹内会出现*.pix.bin文件。
.pix文件,是客户编辑的共层源文件,可以重复打开编辑。
.pix.bin 文件,是跟.pix文件同名的,编译后的二进制文件。
下载bin文件:
此文件是烧录到串口屏模块中的文件,相当于编译完成的执行文件。
方法一、 使用SD卡:
在SD卡根目录下新建HMI文件夹,把*.pix.bin文件,放在HMI文件夹中,文件名改成“USER.bin”。断电插入SD卡,再上电后会自动烧录到串口屏,烧录过程串口屏会绿屏黑字和进度提示,烧录完成后,请断电拔出SD卡,最后串口屏重新上电,烧录完成;若烧录过程中出现断电或者取卡,则烧录失败,需要重新操作。
.bin文件方式烧录工程能脱离VP软件,实现客户的大规模生产。
**方法二、**工具菜单->二进制文件下载:
用转串口工具或USB线连接好屏幕后,点击选择工程的.bin文件即可下载。
此方式不用打开项目工程,不用更改bin文件的名称。
2.7.7 项目设置 – 编码格式和CRC16
编码格式: 可选择UTF-8和GBK
应用:当用户在自己设备的单片机程序中,通过串口指令设置控件显示文字时,如:wset text1.txt “2022星期一”,可能 出现控件只显示2022,而不显示汉字的情况;这时就需要确定单片机程序和VP工程的编码格式是否一致。
CRC16**:** 多项式:8005、1021、3D65
脚本计算,请参考后续函数的介绍和用法章节,CRC16函数的相关操作函数。
2.7.8 项目设置 – 掉电保存
做掉电保存的第一步,需要先进入项目设置,开辟一段空间:
如要保存一个整数,在设置了用户Flash大小后,事件脚本如下:
fwInt(0,123);//[0] - [3] 空间段内存储整数123
fSave(); // 两个函数必须同时使用,才能完成存储操作
注:
Int、Float都为4字节;
String类型时,需要 字数*2+2段长度;
读出存储的整数:
num1.val = frInt(0);//读出[0] - [3] 空间段内存储的整数
数据的掉电存储和读取操作都需要用内置函数实现,请参考后续函数的介绍和用法章节,Flash的相关操作函数。
3. 快捷按钮
快捷按钮上的功能都是常用功能,如果和菜单栏重复的功能,请参考上面的介绍。
快捷键 |
说明 |
---|---|
控件上移一层 |
为了显示效果,编辑时控件可能重合或者被遮盖,例如钟表的3个指针。使用这个功能可以把下层的控件移动到上层。 |
控件下移一层 |
为了显示效果,编辑时控件可能重合或者被遮盖,例如钟表的3个指针。使用这个功能可以把上层的控件移动到下层,使下层控件显示出来,进行设置。 |
联机预览 |
这个按钮被按下,则进入三易串口屏的特色功能。 |
显示ID号 |
显示各个控件的名称。如果客户的页面用了大量的控件,相互遮盖交叉,还有客户书写脚本时不方便找到各个控件的名称,此时点击此按钮,就显示所有控件的名称,非常方便。 |
4. 工具箱
工具箱中包含了各种经常用到的控件,工具箱中的控件,点击选中拖动到编辑区的合适位置,就可以使用了。注意,非显示控件,例如定时器等,也要拖动到编辑区,才能使用,这个操作作为用户确定要使用这个控件的标定。
工具箱的控件见下图:控件会一直增加,后续会出更多的复合控件。
控件 |
简介 |
---|---|
视频控件 |
支持视频播放功能,默认3.5及以下小尺寸(下称为:G系列)不支持,如果您需要可以定做。G系列串口屏使用的芯片,播放速度达不到可以使用的程度,胜在性价比高。 |
音频控件 |
全系列支持音频播放。不支持同时播放一路以上的音频。支持停止,播放,暂停功能,可以随时获取播放进度,可以跳转到某一时刻播放,方便用其他控制和联动。 |
图片控件 |
G系列串口屏支持jpeg、BMP、没有透明度的PNG图片,VP会转换成二进制格式,所以图片所占空间以实际编译后为准。不支持带透明度的PNG图片,用户在做素材时,尽量避免用此种方式。 |
GIF动画控件 |
全系支持GIF动画。用户可以导入GIF动画到VP编辑界面,VP工具会读取GIF动画的帧数据和时间数据,还原GIF动画的显示。GIF动画目前不支持硬件解码,所以会造成编译后数据变大,用户要注意动画会占用较大Flash存储空间。 |
二维码控件 |
全系支持动态二维码。二维码作为一个最常用的功能,支持起来比较麻烦,需要用到较大内存空间做算法。这个功能,在内存不足的情况下实现。 |
触摸热区控件 |
类同透明的按钮,也有按下、弹起事件。触摸热区功能可以加到任意的位置,点击屏幕上的这个区域,可以触发点击事件,方便客户做一些隐形的功能。 |
双态按钮控件 |
实现开关按钮的功能。按下后不会自动弹起,需要手动点击才能弹起。 |
按钮控件 |
实现按钮功能。重要功能,属性多,效果也多,背景可透明(S系列),透明后的功能大于触摸热区。 |
曲线控件 |
曲线功能可以实现客户透传的曲线数据,为了实现快速数据传输,透传数据使用二进制格式。 |
滚动文本控件 |
目前支持一串字符水平左右、垂直上下方向飞来飞去。经常作为提示用途。 |
文本控件 |
用于显示文本,可选择是否自动换行,占用空间小。支持各种客户定义的字体,支持1-100透明度选择。 |
多行文本控件 |
用于显示多行文本,可选择是否自动换行。如果串口屏带有触摸屏,可以拖动文本主体进行移动。 |
复选框控件 |
未选中是空心矩形,选中为中间是黑块的矩形。特色是,复选框的触控范围可在右侧水平方向上随意调整,用户不用只点击矩形框才能选中,可以点击右侧任意有效位置选中。 |
单选按钮控件 |
单选框为分组控件,可以设置有几个可选项,各个选项是互斥的。可以根据值改变的事件编写脚本。 |
滑块控件 |
使用滑块可以调整进度。滑块的不同位置,会有不同的对应值,可以根据值改变编写控制脚本,例如控制音频播放,背光亮度等。 |
进度条控件 |
进度条是被动控件,显示需要过程处理功能的进度。 |
变量控件 |
勾选global属性可以设置为全局变量。全局变量可以在整个工程内使用,局部变量的作用区域在本页。 |
数组控件 |
可以设置为全局变量和局部变量。全局变量可以在整个工程内使用,局部变量的作用区域在本页。 |
浮点数控件 |
类似于文本框,是一个浮点数的显示控件,值为float类型,省去把浮点数转换为文本显示的处理过程。支持正负数。 |
整数控件 |
整数的显示控件,值为int类型,省去把整数转换为文本显示的处理过程。支持正负数。 |
定时器控件 |
定时器是重要控件,页面显示的自动动作效果主要来自定时器事件。控制定时器开启、关闭和定时间隔可以完成各种自动操作。 |
直线控件 |
在界面上画一条直线。如果是简单应用,用直线可以省去处理图片的工作,也节省存储空间。直线其实就是一个实心矩形,但是可以调整属性,使之有不同倾斜角度。 |
矩形控件 |
在界面上画一个矩形。如果是简单应用,用矩形可以省去处理图片的工作。矩形是带有边框的矩形,线宽,颜色,填充,都可以设置。 |
圆 |
在界面上画一个圆形。如果是简单应用,用圆形可以省去处理图片的工作。圆形是带有边框的圆形,线宽,颜色,填充都可以处理。 |
指针控件 |
围绕中心转动的指针。目前指针的处理相当完善,中心,长端,短端的尖角角度和长度以及颜色,都可以通过配置直接生成,变化多端。并不是一条旋转的直线,不用配置样式,配置不同的参数,就可以生成几十种指针类型。配合绚丽的背景图,可以逼真实现现实中的仪表。 |
协议解析器控件 |
用户可以对接收到的数据,自行使用脚本进行数据处理,可以接入以及处理以下的数据(包括但不限于): |
RTC控件 |
非可见控件形式,需使用系统变量在脚本内获取; |
键盘控件 |
上位机软件内置的一套键盘,包括数字、字母、符号键盘; |
环形进度条控件 |
和条形进度条的区别在于表现数据的形式上,一个水平或者垂直表示进度,而此控件是圆环进度,也可做成扇形比; |
日志控件 |
用于打印屏幕模块接收的数据,可打印显示ASCII码、HEX数据; |
CAN解析器控件 |
不可见控件,用法可类比协议解析器控件; |
Modbus |
不可见控件 |
IO控件 |
不可见控件 |
ADC控件 |
不可见控件 |
PWM控件 |
不可见控件 |
5. 资源区
资源区存放用户做串口屏界面使用的资源,包括 图片,字库,动画,音频,视频。资源区在VP编辑器的左下方。如图:
功能 |
介绍 |
---|---|
增加资源按钮 |
点击按钮,会弹出文件夹,用户可寻找目录,选择资源。 |
替换资源按钮 |
选中需要替换的资源,点击按钮,会弹出文件夹,用户可寻找目录,替换资源。 |
位置上移按钮 |
选中资源,点击按钮,资源会上移一个位置,方便用户排列资源顺序。注意移动位置后,资源的编号会改变,脚本和属性中的资源都是按照编号来选择。 |
位置下移按钮 |
选中资源,点击按钮,资源会上移一个位置,方便用户排列资源顺序。注意移动位置后,资源的编号会改变,脚本和属性中的资源都是按照编号来选择。 |
资源删除按钮 |
选中资源,点击删除按钮,如果这个资源被控件使用,则会不能删除,必须解除控件的相应属性,没有控件使用这个资源,才会删除。如果不能删除,会给出使用这个资源的列表。 |
资源导出按钮 |
选中资源。点击导出按钮,则可以导出资源到指定的硬盘位置,会存储为相应的文件格式。方便再次使用。 |
图片资源操作区 |
点击后,可操作图片资源的增加、替换、删除、位置移动。图片操作简介。 |
字库资源操作区 |
点击后,可操作字库资源的增加、替换、删除。字库操作简介 |
动画资源操作区 |
点击后,可操作动画资源的增加、替换、删除、位置移动。动画操作简介。 |
音频资源操作区 |
点击后,可操作音频资源的增加、替换、删除。音频操作简介。 |
视频资源操作区 |
点击后,可操作视频资源的增加、替换、删除。视频操作简介。 |
键盘资源操作区 |
点击后,定制系统键盘,增加,替换,删除。键盘操作简介。 |
6. 页面编辑区,输出区,事件编辑器
页面编辑区是页面显示主要工作区域,可以查看基本效果,位置,点击控件进行属性调整等。 输出区,主要功能是输出编译结果,提示编译错误。 事件编辑器,点击不同的控件,会出现不同的事件编辑区域。事件编辑区域中,可以使用类C语言编辑脚本,执行事件处理过程。
7. 页面区域
页面区域位于VP编辑器的右下角,执行新增页面,复制页面,粘贴页面,删除页面的操作。每个页面都有页ID和页名称组成,页名称只能是纯字母或字母和数字组成,页ID不可修改,名称可以修改。
功能 |
介绍 |
---|---|
新建页面 |
点击按钮,新建一个页面,双击名称可重命名,命名只支持英文、数字和下划线组合。 |
复制页面 |
选中需要复制的页面,点击复制,然后点击后面的粘贴页面,完成页面的复制。 |
粘贴页面 |
选中需要复制的页面,点击复制,然后点击后面的粘贴页面,完成页面的复制。 |
删除页面 |
选中需要删除的页面,点击后删除页面。 |
页面上移 |
选中需要上下移动的页面,点击后改变页面层级顺序,但不会改变页面的ID号。 |
页面下移 |
选中需要上下移动的页面,点击后改变页面层级顺序,但不会改变页面的ID号。 |
页面ID |
不可更改,新建页面时自动生成。 |
页面名称 |
双击名称可重命名,命名只支持英文、数字和下划线组合。在脚本跨页访问控件时,需要用到完整的页面名称。 |
8. 脚本语法介绍
8.1 概要
名称 |
功能 |
介绍 |
---|---|---|
分隔符 |
语句结束符“;” |
英文状态下的分号,每条语句以此为分隔符,同C语言。 |
标识符 |
标识变量名称 |
一个标识符以字母 A-Z 或 a-z 或下划线_开始,后跟零个或多个字母、下划线和数字(0-9)。标识符区分大小写。同C语言。 |
关键字 |
语言组成的关键字 |
目前支持: |
数据类型 |
变量的数据类型定义 |
byte: 带符号单字节。 |
运算符 |
变量常量之间的运算 |
目前支持:算术运算符,关系运算符,逻辑运算符。 |
函数 |
带参数的功能处理集合 |
支持带变量的函数处理,方式同C语言,可自定义函数。 |
字符串 |
字符串常量 |
目前支持:字符串相加,用“+”运算符执行。 |
变量 |
可变数值的标识符 |
目前支持:脚本定义类型支持 int、float、byte,作用区域只在当前事件编辑区里,而变量控件可作用于全局。String变量定义,需通过变量控件设置和使用。 |
8.2 变量类型与定义
局部变量 |
声明一个整型变量: int a; |
全局变量 |
全局变量,只能通过变量控件实现。 |
8.3 运算符
算术 |
算术运算符包括:+ - * / %,对应 |
关系 |
关系运算符包括:< 小于,<= 小于等于,>大于 ,>=大于等于, ==是否相等, !=是否不等。同C语言。 |
逻辑 |
逻辑运算符包括:&& 与运算, | 或运算,!非运算。同C语言。 |
位运算 |
位运算符包括:“<<”左移运算,“>>”右移运算,“&”位与,“|”位或,“^”位异或。同C语言。 |
8.4 条件语句
介绍 |
目前支持条件关键字: |
举例: |
8.5 循环语句
关键字 |
功能 |
举例 |
for |
固定多次执行一个语句序列,简化管理循环变量的代码。同C语言。 |
while(a>10) |
while |
当给定条件为真时,重复语句或语句组。它会在执行循环主体之前测试条件。同C语言。 |
|
for |
除了它是在循环主体结尾测试条件外,其他与 while 语句类似,同C语言。 |
|
break |
终止循环语句,程序流将继续执行紧接着循环的下一条语句。同C语言。 |
|
continue |
告诉一个循环体立刻停止本次循环迭代,重新开始下次循环迭代。同C语言。 |
8.6 脚本注释
单行注释
// 单行注释
text3.txt = "123";
多行注释:
/*多行注释
多行注释
多行注释*/
text3.txt = "123";
text3.txt = "456";