日志控件

1. 属性

属性

说明

id

控件ID号,不可更改

global

勾选:作用于全局,不勾选:作用于所在页; 不可脚本读写

name

控件名称,可改,默认:log+序号

X/Y

控件的显示坐标

width/height

控件的宽高

locked

勾选后锁定控件位置,但不影响脚本操作控件属性

visible

控件的可见性 脚本:log0.visible=1,可见,log0.visible=0,不可见

opacity

控件的透明度,默认100,不透明,值介于0~100之间

font

显示文本使用的字体,如果不设置,不能显示字体出来。

fontColor

字体颜色

bgType

控件背景类型。可选择纯色和图片。

txtHorSpc

字符的水平间距

txtVerSpc

字符的垂直间距(行间距)

hexMd

十六进制显示模式

MaxLogCount

存储的最大行数。设置多少行去显示接收的数据,当数据填满设置行数后,会自动清除超出的行数数据。

2. 方法

2.1. addBytes

添加字节数据

void addBytes(byte[] data, int start, int len)

参数

data:

需要显示的字节数组

start:

起始位置

len:

长度

返回值


2.2. addString

添加文本

void addString(string txt)

参数

txt:

要显示的文本

返回值


clear

清除所有数据

int clear()

参数

返回值


3. 示例

3.1. 在脚本中访问属性(控件名以log0为例)

3.1.1. 获取日志控件背景类型(log0.bgType)

例如 定义一个整数,获取控件背景类型

int type;
type=log0.bgType;//返回值为0背景类型为颜色,返回值2背景类型为图片

当背景为颜色时

3.1.2. 设置日志控件的背景颜色(log0.bgColor)

例如 设置日志控件背景颜色为红色

log0.bgColor=0xffff0000;//十六进制颜色格式

应用技巧:利用控件不同状态下的背景颜色是设计UI是最方便有效的方法,vp提供控件在不同操作状态下的背景颜色供客户使用

当背景为图片时

3.1.3. 设置日志控件背景图片(log0.bgImg)

例如 设置日志控件背景图片为图片素材库第一张图片

log0.bgImg=1;

应用技巧:利用控件不同状态下的背景图片可以设计不同风格的ui,vp提供非常自由的图片选择,图片尽量选用JPG格式,系统解码更快,运行更流畅,控件背景图片的对齐方式可以选择页面对齐,这样可以与页面背景用同一张图片,这样会最大程度的减少素材所占空间,系统运行也会更快,G系列暂时不支持带透明格式的png图片,但是S系列则支持这一选项

3.1.4. 设置日志控件的内容字体(log0.font)

例如 设置日志控件内容为第二个字库的字体格式

log0.font=2;

3.1.5. 设置日志控件内容的字体颜色(log0.fontColor)

例如 设置控件内容颜色为红色

log0.fontColor=0xffff0000;

应用技巧:字体颜色是显示控件不同状态最简单使用的方法,字体颜色的改变多配合协议使用,比如控件显示数据内容时往往用户会设计一个报警范围,范围之内正常的数据可以用绿色来显示,范围之外的数据用红色来显示提醒报警。

3.1.6. 设置日志控件的高度(log0.height)

例如 设置日志控件高度为100

log0.height=100;

3.1.7. 设置日志控件的宽度(log0.width)

例如 设置日志控件宽度为150

log0.height=150;

3.1.8. 设置日志控件的位置的x坐标(log0.x)

例如 设置日志控件x坐标为100

log0.x=100;//坐标原点x=0为页面左上角顶点

3.1.9. 设置日志位置的y坐标(log0.y)

例如 设置日志控件y坐标为100

log0.y=100;//坐标原点y=0为页面左上角顶点

应用技巧:控件的宽高和坐标,表示控件在工程中的大小和位置,数值都是以像素为单位,编辑此属性首先要了解工程对应串口屏的像素大小,利用对宽高和坐标的编辑,可以实现控件UI丰富多彩的变换。

3.1.10. 设置日志控件字符的水平间距(log0.txtHorSpc)

例如 设置水平间距为20

log0.txtHorSpc=20;

3.1.11. 设置日志控件字符的垂直间距(log0.txtVerSpc)

例如 设置垂直间距为20

log0.txtVerSpc=20;

应用技巧:作为一个显示字符的控件,间距调整是必不可少的,vp提供字符在控件内间距的编辑,能应对字符显示的各种需求

3.1.12. 设置日志控件自动换行(log0.wrap)

例如 设置日志控件为换行

log0.wrap=1;  //0不换行  1换行

应用技巧:需要分行显示时,,选择这个属性,并且调整控件大小就可以了。

3.1.13. 设置日志控件的可见性(log0.visible)

例如 设置日志控件为可见

log0.visible=1;  //0为不可见  1为可见

应用技巧:vp工程中控件并非时时必须显示,可视性这个属性实现了控件视觉效果的可编辑性,用户自定义可视性,可配合其他控件在脚本中编辑,也可以配合协议解析器,在通讯过程中控制控件的显示和隐藏,简单直接且行之有效。

4. 常见应用

4.1. 打印显示字符串

文本模式,不勾选控件的 hexMd 属性

// 直接打印显示字符串“txt123”  
log0.addString("txt123"); 

// 用日志控件打印协议解析器protocol0所接收到的数据
log0.addString(stringDecode(protocol0.rxBuf,0,protocol0.rxLen));

4.2. 打印显示字节数据

十六进制模式,勾选控件的 hexMd 属性

// 比如定义有数组
byte  a[4]={0x01,0x02,0x03,0x04}; 

// 打印数组a,参数为数组名称a,起始位置,长度 
log0.addBytes(a,0,4); 

// 打印协议解析器收到的数据
log0.addBytes(protocol0.rxBuf,0,protocol0.rxLen);

4.3. 清除显示

//清空整个控件的显示内容
log0.clear();

注意:addBytes()和addString()是两种显示模式,打印字节或者文本数据,两种方法脚本中不可同时使用。

5. 常见问题

  1. 日志控件显示的字符最大行数在编辑工程时设置,当打印的条数累计超过最大条目数量时,最上方数据会被覆盖。

  2. 日志控件可以打印数组和字符串,整型,浮点数打印显示需要用字符转换函数将整型或者浮点数转为字符串格式打印显示