曲线控件
1. 属性
属性 |
说明 |
---|---|
id |
控件ID号,不可更改 |
global |
勾选:作用于全局,不勾选:作用于所在页; 不可脚本读写 |
name |
控件名称,可改,默认名称,curvedLine+序号 |
x |
控件起始点x坐标 |
y |
控件起始点y坐标 |
width |
控件宽度,可读写 |
height |
控件高度,可读写 |
locked |
勾选后锁定控件位置,但不影响脚本操作控件属性 |
visible |
控件是否可见,脚本:curvedLine.visible=1,可见,curvedLine.visible=0,不可见 |
opacity |
不透明度,opacity=0,完全透明,opacity=100,完全不透明。值介于0~100之间。默认100,非必要不建议修改此项。 |
bgType |
背景类型,可选择颜色、图片。 |
bgColor |
背景类型是颜色时,选择背景颜色。 |
bgImg |
背景类型是图片时,选择背景图片。 根据图片资源名称和顺序号选择。 |
bgImgMd |
背景类型是图片时,默认背景图片的对齐模式。 |
gdWidth |
网格宽度,如果不需要网格线,可设置为0 |
gdHeight |
网格高度,如果不需要网格线,可设置为0 |
horglw |
水平网格线条宽度,如果不需要网格线,可设置为0 |
werglw |
垂直网格线条宽度,如果不需要网格线,可设置为0 |
horgc |
设置水平网格线条的颜色 |
vergc |
设置垂直网格线条的颜色。 |
xStep |
曲线打点时水平步进的距离,单位,像素。 |
mode |
曲线绘制的模式 |
maxVal |
数据的最大值。 |
minVal |
数据的最小值。 |
pCount |
每个通道显示的点的数量,但是超过x轴总像素除以步进距离的值后,无效。 |
numType |
1.每个数据点的值的类型:字符型,2字节整型,4字节整型,四字节浮点型。 |
chCount |
数据通道数量,也就是要显示几条曲线,目前支持最多3条。 |
ch1Color |
通道一的数据打点颜色。 |
ch1Width |
通道一的数据打点的线宽,单位:像素点。 |
ch2Color |
通道二的数据打点颜色。 |
ch2Width |
通道二的数据打点的线宽,单位:像素点。 |
ch3Color |
通道三的数据打点颜色。 |
ch3Width |
通道三的数据打点的线宽,单位:像素点。 |
2. 方法
2.1. clear
清除指定通道的数据
void clear(int chId)
参数
- chId:
通道号,范围1~3
返回值
无
2.2. setPoint
设置折线图模式(Mode3)的点数据,该函数仅在Mode3模式下有效
void setPoint(int chId, int pid, float x, float y)
参数
- chId:
通道号,范围 1~3
- pid:
点序号,范围 0~ pCount
- x:
横坐标值,显示的位置与 minValX,maxValX 相关
- y:
纵坐标值,显示的位置与 minVal,maxVal 相关
返回值
无
3. 示例
3.1. 在脚本中访问属性(控件名以curvedLine0为例)
3.1.1. 获取曲线控件背景类型(curvedLine0.bgType)
例如 定义一个整数,获取控件背景类型
int type;
type=curvedLine0.bgType; //返回值为0背景类型为颜色,返回值为2背景类型为图片
3.1.2. 设置曲线控件的背景颜色(curvedLine0.bgColor)
例如 设置曲线控件背景颜色为红色
curvedLine0.bgColor=0xffff0000; //十六进制颜色格式
应用技巧:利用控件不同状态下的背景颜色是设计UI是最方便有效的方法,vp提供控件在不同操作状态下的背景颜色供客户使用
3.1.3. 设置整数控件背景图片(curvedLine0.bgImg)
例如 设置整数控件背景图片为图片素材库第一张图片
curvedLine0.bgImg=1;
应用技巧:利用控件不同状态下的背景图片可以设计不同风格的ui,vp提供非常自由的图片选择,图片尽量选用JPG格式,系统解码更快,运行更流畅,控件背景图片的对齐方式可以选择页面对齐,这样可以与页面背景用同一张图片,这样会最大程度的减少素材所占空间,系统运行也会更快,G系列暂时不支持带透明格式的png图片,但是S系列则支持这一选项
3.1.4. 设置曲线控件的网格宽度(curvedLine0.gdWidth)
例如 设置曲线控件的网格宽度为30
curvedLine0.gdWidth=30; //默认为20
3.1.5. 设置曲线控件的网格高度(curvedLine0.gdHeight)
例如 设置曲线控件的网格高度为30
curvedLine0.gdHeight=30; //默认为20
应用技巧:网格的宽高表示网格的大小,用户可根据实际数据来设置最佳显示的尺寸
3.1.6. 设置曲线控件的通道数量(curvedLine0.chCount)
例如 设置曲线控件的通道的数量为2
curvedLine0.chCount=2; //最高3个
应用技巧:在某些应用场景下,用户需要同时显示多个数据曲线,vp提供了这种可能,
用户最多可在同一曲线控件显示三条曲线。
3.1.7. 设置曲线控件的通道1的颜色(curvedLine0.ch1Color)
例如 设置曲线控件通道1的颜色为红色
curvedLine0.ch1Color=0xffff0000; //十六进制颜色格式
应用技巧:不同通道表示不同曲线,用颜色区分其ui是比较常见的区分方式,在vp中也是唯一的区分方式
3.1.8. 设置曲线控件的通道1的当前值(curvedLine0.ch1Val)
例如 设置曲线控件通道1的当前值为20
curvedLine0.ch1Val=20;
应用技巧:设置通道当前值,主要有两个方式,首先是addt数据透传,其次是通过协议。透传有专用的格式,对应文档有详细介绍,协议设置则是通过示例的方式对通道进行赋值
3.1.9. 设置曲线控件的最大值(curvedLine0.maxVal)
例如 设置曲线控件的最大值为50
curvedLine0.maxVal=50; //默认最大值100
3.1.10. 设置曲线控件的最小值(curvedLine0.minVal)
例如 设置曲线控件的最小值为-20
curvedLine0.minVal=-20; //默认最小值为-100
应用技巧:当用户的应用场景对数据有效性有要求时,最值设置可以过滤掉一部分超出范围的无效数据
3.1.11. 设置曲线控件的长度(curvedLine0.height)
例如 设置曲线控件的长度为400
curvedLine0.height=400;
3.1.12. 设置曲线控件的宽度(curvedLine0.width)
例如 设置曲线控件的宽度为700
cervedLine0.width=700;
3.1.13. 设置曲线控件的x轴(curvedLine0.x)
例如 设置曲线控件的x轴为30
cervedLine0.x=30;
3.1.14. 设置曲线控件的y轴(curvedLine0.y)
例如 设置曲线控件的y轴为50
curegdLine0.y=50;
应用技巧:控件的长宽和xy表示控件的大小和坐标,用户可根据不同的应用场景做处设置,这些属性都是可读写的,运行过程也可编辑这些属性,实现隐藏,移位,调用等效果。
3.1.15. 设置曲线控件新旧数据的间距(curvedLine0.dataSpace)
例如 设置间距为2
curvedLine0.dataSpace=2 //默认为0
应用技巧:间距表示两个数据之间的
3.1.16. 设置曲线控件x轴的步进(curvedLine0.xStep)
例如 设置控件x轴的步进为10
curvedLine0.xStep=10; //默认为5
应用技巧:数据的间距是两个数据之间相隔的距离,x轴步进是曲线x坐标单位之间的距离,这两个属性在ui显示上有相似之处,前者是指数据,后者是指x坐标,用户使用时需要区分一下。
3.1.17. 设置曲线控件的可见性(curvedLine0.visible)
例如 设置控件为不可见
curverdLibne0.visible=0; //0为不可见,1为可见
应用技巧:vp工程中控件并非时时必须显示,可视性这个属性实现了控件视觉效果的可编辑性,用户自定义可视性,可配合其他控件在脚本中编辑,也可以配合协议解析器,在通讯过程中控制控件的显示和隐藏,简单直接且行之有效。
3.1.18. 设置曲线控件的透明度(curvedLine0.opacity)
例如 设置控件的透明度为50
curevrdLibne0.opeacity=50;
应用技巧:透明度在UI上的用处就是能透过控件看到背景,特定风格之下的UI大有用处,但是透明度会增加系统工作量,非必要时刻不建议使用,如果背景素材希望设置成带透明的,目前网络上很多制图P图软件都可以做到这一点,将素材做成图片图片很多时候都是一个不错的选择。
4. 常见应用
曲线控件的应用主要是用来显示数据,用户可制作实时曲线和历史曲线,用曲线显示数据,利于观察数据变化趋势。
Addt透传可以直接传输曲线数据,无需任何脚本,对应历程有详细介绍,可移步查阅;
5. 常见问题
一个曲线空间最多显示的数据点的数量是2048,但是协议解析器单次能接收缓存的数据最大长度为1024,addt透传时要考虑到这一点,不可一次传输过长的字节,数据较长时,应该考虑多次发送。