什么是历史曲线控件?

通过历史曲线控件来记录某些데이터在一段时间内的变化路径和曲线。本例程中介绍历史曲线控件常见的적용,结合엔지니어링中的화면介绍每一个적용的설정,常见的적용如下所示
- 记录온도的变化实现在一段时间内,外部MCU通过센서采集到的온도데이터보내기给屏幕,利用历史曲线控件在屏幕上显示出来
适用范围:全시리즈
例程下载链接:《历史曲线控件적용》(클릭跳转)
14.1 历史曲线属性
本章节重点介绍历史曲线控件的属性,属性窗口如下所示

采样点数
单个通道在整个控件宽度范围内,总采用点数,若采样点数超过该值,则通道只저장最近的采样点。
使能采样
设置初始化时的状态是否允许采样,也可以通过指令控制。
데이터형식
采样点的데이터형식,보내기데이터给历史曲线时,采样值的高바이트在前,低바이트在后,可设置형식如下所示

- UINT8:无符号,单바이트整数
- INT:有符号,单바이트整数
- UINT16:无符号,双바이트整数
- INT16:有符号,双바이트整数
- UINT32:无符号,四바이트整数
- INT32:有符号,四바이트整数
- FLOAT:单精度浮点数
注:데이터记录控件与历史曲线共用存储块在128K flash里面,开启데이터存储时,应设置存储주소
데이터存储주소계산:
데이터控件存储大小 = 最大记录数*单条记录大小+24 (单位:바이트)
历史曲线存储大小 = 通道个数*采样点数+30 (单位: 바이트)
采样周期
采样데이터的时间间隔,单位为:秒。
데이터存储
设置采样데이터是否存储到屏幕的用户flash区。
最大值
采样值轴方向上顶端显示的最大值,默认为100。
最小值
采样值轴方向上底端显示的最小值,默认为0。
时间轴宽度
屏幕水平方向范围内的采样点数,默认为100,如下所示

曲线宽度
曲线线条的宽度,可选1、2、3、4级。
通道数
控件上显示的曲线通道数,一个控件最多可选8个通道,且每个通道的颜色可单独设置,如下所示

字体
显示数值和时间的字体大小。
显示边框
可设置是否显示边框,显示边框时可设置边框的宽度(可设置“1”和“2”两个等级)和颜色。
显示背景
可设置控件背景颜色、水平延伸、垂直延伸,可选择“是”或“否”。设置显示背景→是,水平延伸→35,垂直延伸→35,如下所示

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

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

文字颜色
设置文字的颜色显示,包括Y轴的值、X轴的时间、以及右上角的日期
显示时间刻度
可选“否”、“下边显示”或“上边显示”,(开启显示时,可设置刻度数、是否显示网格、是否显示日期、是否显示时间)
显示垂直刻度
可设置是否显示垂直方向上的刻度值,显示垂直刻度时,可以设置刻度数和是否显示网格线
14.2 历史曲线功能
【历史曲线控件】화면,介绍用户如何설정历史曲线控件的基本属性和使用。
화면설정
在【历史曲线控件】화면的“背景图片”导入相应的美工图片。在该화면中추가历史曲线控件,如下所示

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

运行预览
运行虚拟屏,VisualTFT软件和虚拟屏用“虚拟시리얼 포트”建立联机,열기指令助手,左侧导航栏选择【历史曲线】,设置“设置采样值”区域的指令매개변수。如例程中,设置화면ID0、控件1、데이터유형为“UINT8”,通道数为“1”的采样值为“77”。显示效果如下所示

外部MCU控制
参考개발包keil程序中的him.dever.h文件函数声明以及him.dever.c文件中的定义。
MCU设置采样值
利用MCU来实现历史曲线的采样通道数,데이터유형和采样数值的设定。例如用户需实现例程中【历史曲线控件】的采样데이터유형为“UINT8”、通道数为“1”,设置采样值为“77”,直接调用历史曲线控件设置函数HistoryGraph_SetValueInt8 ( )即可,代码如下所示。
/************************************************************************
** 기능 name: void HistoryGraph_SetValueInt8 (uint16 screen_id,
** uint16 control_id,
** uint8 *value,
** uint8 channel);
** Descriptions : 히 스토 리 곡 선 샘플 링 값 설정
** 입력 매 개 변 수 : screen _ id : 화 면 ID
** control _ id : 컨트롤 ID
** * 값 : 설정 된 샘플 값
** 채널 채널 수
** 출 력 매 개 변 수 : 없음
** 반환 된 값 : 없음
************************************************************************/
{
......
History Gra ph _ Set V alue Int 8 (0, 1, 7 7, 1) ; // 화 면 0, 컨트롤 1, 채널 1 의 샘플 값 은 77 입니다 .
......
}
MC U 는 [ 역 사 곡 선 컨트롤 ] 의 샘플 링 을 금지 하고 활성화 합니다 .
예를 들어 , 사용자는 현재 화 면의 [ 역 사 곡 선 컨트롤 ] 의 샘플 링 금지 및 샘플 링 활성화 상태를 구현 해야 하며 , 직접 역사 곡 선 컨트롤 비 활 성 화 함 수 History Gra ph _ Ena ble S amp ling () 를 호출 하면 다음과 같은 코 드가 있습니다 .
/** **********************************************************************
** 함 수 이름 : vo id History Gra ph _ Ena ble S amp ling (u int 16 screen _ id ,
** u int 16 control _ id ,
** u int 8 enable)
** 설명 서 : 히 스토 리 곡 선 컨트롤 의 샘플 링 비 활 성 화 설정
** input paramet ers : screen _ id : 화 면 ID
** control _ id : 컨트롤 ID
** 값 : 비 활 성 화 또는 활성화 (0 은 비 활 성 화 , 1 은 활성화)
** 출 력 매 개 변 수 : 없음
** 반환 된 값 : 없음
************************************************************************/
{
......
History Gra ph _ Ena ble S amp ling (0, 1, 1) ; / / 화 면 0, 컨트롤 1 의 히 스토 리 곡 선 컨트롤 샘플 링 활성화
......
}
답글 작성