14 历史曲线控件

什么是历史曲线控件?

HistoryGraph11

通过历史曲线控件来记录某些数据在一段时间内的变化路径和曲线。本例程中介绍历史曲线控件常见的应用,结合工程中的画面介绍每一个应用的配置,常见的应用如下所示

  1. 记录温度的变化

    实现在一段时间内,外部MCU通过传感器采集到的温度数据发送给屏幕,利用历史曲线控件在屏幕上显示出来

适用范围:全系列

例程下载链接:《历史曲线控件应用》(点击跳转)

14.1 历史曲线属性

本章节重点介绍历史曲线控件的属性,属性窗口如下所示

HistoryGraph01

采样点数

单个通道在整个控件宽度范围内,总采用点数,若采样点数超过该值,则通道只保存最近的采样点。

使能采样

设置初始化时的状态是否允许采样,也可以通过指令控制。

数据格式

采样点的数据格式,发送数据给历史曲线时,采样值的高字节在前,低字节在后,可设置格式如下所示

HistoryGraph02

  • UINT8:无符号,单字节整数
  • INT:有符号,单字节整数
  • UINT16:无符号,双字节整数
  • INT16:有符号,双字节整数
  • UINT32:无符号,四字节整数
  • INT32:有符号,四字节整数
  • FLOAT:单精度浮点数

注:数据记录控件与历史曲线共用存储块在128K flash里面,开启数据存储时,应设置存储地址

数据存储地址计算:

数据控件存储大小 = 最大记录数*单条记录大小+24 (单位:字节)

历史曲线存储大小 = 通道个数*采样点数+30 (单位: 字节)

采样周期

采样数据的时间间隔,单位为:秒。

数据存储

设置采样数据是否存储到屏幕的用户flash区。

最大值

采样值轴方向上顶端显示的最大值,默认为100。

最小值

采样值轴方向上底端显示的最小值,默认为0。

时间轴宽度

屏幕水平方向范围内的采样点数,默认为100,如下所示

HistoryGraph03

曲线宽度

曲线线条的宽度,可选1、2、3、4级。

通道数

控件上显示的曲线通道数,一个控件最多可选8个通道,且每个通道的颜色可单独设置,如下所示

HistoryGraph04

字体

显示数值和时间的字体大小。

显示边框

可设置是否显示边框,显示边框时可设置边框的宽度(可设置“1”和“2”两个等级)和颜色。

显示背景

可设置控件背景颜色、水平延伸、垂直延伸,可选择“是”或“否”。设置显示背景→是,水平延伸→35,垂直延伸→35,如下所示

HistoryGraph05

显示滚动条

可选择“是”或“否”,当开启滚动条,设置滚动条属性,运行虚拟屏,滚动条显示在上方,可以拖动查看所有时间点的曲线,如下所示

HistoryGraph06

网格颜色

设置网格的颜色,支持单色设置

image-20210517191719282

文字颜色

设置文字的颜色显示,包括Y轴的值、X轴的时间、以及右上角的日期

显示时间刻度

可选“否”、“下边显示”或“上边显示”,(开启显示时,可设置刻度数、是否显示网格、是否显示日期、是否显示时间)

显示垂直刻度

可设置是否显示垂直方向上的刻度值,显示垂直刻度时,可以设置刻度数和是否显示网格线

14.2 历史曲线功能

【历史曲线控件】画面,介绍用户如何配置历史曲线控件的基本属性和使用。

画面配置

在【历史曲线控件】画面的“背景图片”导入相应的美工图片。在该画面中添加历史曲线控件,如下所示

HistoryGraph08

属性配置

历史曲线控件:设置【字体】为【ASC_CHS_16】、显示时间轴的【刻度数】为“4”,显示垂直刻度的【刻度数】为“5”,其他为默认配置,配置如下所示

HistoryGraph09

运行预览

运行虚拟屏,VisualTFT软件和虚拟屏用“虚拟串口”建立联机,打开指令助手,左侧导航栏选择【历史曲线】,设置“设置采样值”区域的指令参数。如例程中,设置画面ID0、控件1、数据类型为“UINT8”,通道数为“1”的采样值为“77”。显示效果如下所示

image-20210517192801580

外部MCU控制

参考开发包keil程序中的him.dever.h文件函数声明以及him.dever.c文件中的定义。

MCU设置采样值

利用MCU来实现历史曲线的采样通道数,数据类型和采样数值的设定。例如用户需实现例程中【历史曲线控件】的采样数据类型为“UINT8”、通道数为“1”,设置采样值为“77”,直接调用历史曲线控件设置函数HistoryGraph_SetValueInt8 ( )即可,代码如下所示。

/************************************************************************
** Function name:    void HistoryGraph_SetValueInt8 (uint16 screen_id,
**                                                   uint16 control_id,
**                                                   uint8 *value,
**                                                   uint8 channel);
** Descriptions    :  设置历史曲线采样值
** input parameters:  screen_id:   画面ID
**                    control_id:  控件ID
**                    *value:     设置的采样值
**                    channel    通道数
** output parameters: 无
** Returned value   :  无
************************************************************************/
{
    ......
    HistoryGraph_SetValueInt8(0,1,77,1);//画面0,控件1,通道1的采样值为77
    ......

}
MCU控制【历史曲线控件】的禁止和使能采样。

例如用户需实现当前画面的【历史曲线控件】的禁止采样和使能采样状态,直接调用历史曲线控件禁使能函数HistoryGraph_EnableSampling ( )即可,代码如下所示。

/************************************************************************
** Function name:    void HistoryGraph_EnableSampling (uint16 screen_id,
**                                                     uint16 control_id,
**                                                     uint8 enable);
** Descriptions    :  设置历史曲线控件的采样禁使能
** input parameters:  screen_id :  画面ID
**                    control_id:  控件ID
**                    value     :  禁止或使能(0代表禁止,1代表使能)
** output parameters: 无
** Returned value   : 无
************************************************************************/
{
    ......
    HistoryGraph_EnableSampling (0,1,1);//画面0,控件1的历史曲线控件使能采样
    ......
}
Copyright ©Dacai all right reserved,powered by Gitbook该文件修订时间: 2023-03-27 19:36:03

results matching ""

    No results matching ""