530 lines
21 KiB
C
530 lines
21 KiB
C
#ifndef _HMI_DRIVER_
|
||
#define _HMI_DRIVER_
|
||
|
||
#include "glbtypes.h"
|
||
|
||
#define maxCmdLen 1024 //一帧最大数据
|
||
|
||
enum CtrlType
|
||
{
|
||
CtrlUnknown=0x0,
|
||
CtrlButton=0x10, //按钮
|
||
CtrlText, //文本
|
||
CtrlProgress, //进度条
|
||
CtrlSlider, //滑动条
|
||
CtrlDropList, //下拉列表
|
||
CtrlMeter, //仪表
|
||
CtrlAnimation, //动画
|
||
CtrlRTC, //时间显示
|
||
CtrlChart, //曲线控件
|
||
CtrlTable, //表格控件
|
||
CtrlMenu //menu控件
|
||
};
|
||
|
||
enum CtrlMsgType
|
||
{
|
||
CtrlMsgSetCurrentScreen=0x00,//设置当前画面ID,用于切换画面
|
||
CtrlMsgGetCurrentScreen=0x01,//主机请求获取当前画面ID
|
||
|
||
CtrlMsgSetFoucus=0x02,//设置输入焦点
|
||
CtrlMsgSetVisible=0x03,//设置控件是否可见
|
||
|
||
CtrlMsgSetData=0x10, //设置控件的数值
|
||
CtrlMsgGetData=0x11, //主机请求获取控件的数值
|
||
CtrlMsgDroplistData=0x14, //主机请求获取控件的数值
|
||
|
||
CtrlMsgAnimationStart=0x20, //动画-开始自动播放
|
||
CtrlMsgAnimationStop=0x21, //动画-停止自动播放
|
||
CtrlMsgAnimationPause=0x22, //动画-暂停自动播放
|
||
CtrlMsgAnimationPlayFrame=0x23, //动画-播放指定帧
|
||
CtrlMsgAnimationPlayPrev=0x24,//动画-播放下一帧
|
||
CtrlMsgAnimationPlayNext=0x25,//动画-播放上一帧
|
||
CtrlMsgAnimationNotify=0x26,//动画-事件通知:0弹起,1按下
|
||
|
||
CtrlMsgGraphChannelAdd=0x30,//EE B1 30 CHANNEL(UINT8) COLOR(UINT16) FF FC FF FF
|
||
CtrlMsgGraphChannelDel=0x31,//EE B1 31 CHANNEL(UINT8) FF FC FF FF
|
||
CtrlMsgGraphChannelDataAdd=0x32,//EE B1 CHANNEL(UINT8) 32 DATA_LEN(UINT16) DATA(UINT8 *) FF FC FF FF
|
||
CtrlMsgGraphChannelDataClear=0x33,//EE B1 CHANNEL(UINT8) 33 FF FC FF FF
|
||
CtrlMsgGraphSetViewport=0x34, //EE B1 34 X_OFFSET(INT16) X_MUL(UINT16) Y_OFFSET(INT16) Y_MUL(UINT16) FF FC FF FF
|
||
};
|
||
|
||
/****************************************************************************
|
||
* 名 称: SendBeginCMD()
|
||
* 功 能: 发送帧头命令
|
||
* 入口参数: 无
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void SendBeginCMD(void);
|
||
|
||
/****************************************************************************
|
||
* 名 称: SendEndCmd()
|
||
* 功 能: 发送帧尾命令
|
||
* 入口参数: 无
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void SendEndCmd(void);
|
||
|
||
/****************************************************************************
|
||
* 名 称: SetHandShake()
|
||
* 功 能: 握手
|
||
* 入口参数: 无
|
||
* 出口参数: 55表示握手成功,否则失败
|
||
****************************************************************************/
|
||
void SetHandShake(void);
|
||
|
||
/****************************************************************************
|
||
* 名 称: SetFcolor()
|
||
* 功 能: 设置前景色
|
||
* 入口参数: fcolor 前景色RGB参数
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void SetFcolor(ST_UINT fcolor);
|
||
|
||
/****************************************************************************
|
||
* 名 称: SetBcolor()
|
||
* 功 能: 设置背景色
|
||
* 入口参数: bcolor 背景色RGB参数
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void SetBcolor(ST_UINT bcolor);
|
||
|
||
/****************************************************************************
|
||
* 名 称: GUI_CleanScreen()
|
||
* 功 能: 清屏
|
||
* 入口参数: 无
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void GUI_CleanScreen(void);
|
||
|
||
/****************************************************************************
|
||
* 名 称: SetTextSpace()
|
||
* 功 能: 设置文字行列间距
|
||
* 入口参数: x_w 以点为单位的行间距,取值范围00~1F
|
||
y_w 以点为单位的列间距,取值范围00~1F
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void SetTextSpace(ST_UCHAR x_w, ST_UCHAR y_w);
|
||
|
||
/****************************************************************************
|
||
* 名 称: DisText_Region()
|
||
* 功 能: 限定文本显示范围
|
||
* 入口参数: length 文本框限定的长度
|
||
width 文本框限定的高度
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void SetFont_Region(ST_UCHAR enable,ST_UINT length,ST_UINT width );
|
||
|
||
/****************************************************************************
|
||
* 名 称: SetFilterColor()
|
||
* 功 能: 设置过滤颜色
|
||
* 入口参数: fillcolor_dwon 滤除颜色的下限值
|
||
fillcolor_up 滤除颜色的上限值
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void SetFilterColor(ST_UINT fillcolor_dwon, ST_UINT fillcolor_up);
|
||
|
||
/*****************************************************************
|
||
* 名 称: SendStrings()
|
||
* 功 能: 发送字符串
|
||
* 入口参数: str 发送的字符串
|
||
* 出口参数: 无
|
||
*****************************************************************/
|
||
void SendStrings(ST_UCHAR *str);
|
||
|
||
/****************************************************************************
|
||
* 名 称: DisText()
|
||
* 功 能: 文本显示
|
||
* 入口参数: x 以点为单位的X轴坐标值
|
||
y 以点为单位的Y轴坐标值
|
||
back 背景色使能
|
||
font 字库编码
|
||
strings 写入的汉字字符串
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void DisText(ST_UINT x, ST_UINT y,ST_UCHAR back,ST_UCHAR font,ST_UCHAR *strings );
|
||
|
||
/****************************************************************************
|
||
* 名 称: DisData()
|
||
* 功 能: 数据显示
|
||
* 入口参数: x 以点为单位的X轴坐标值
|
||
y 以点为单位的Y轴坐标值
|
||
back 背景色使能
|
||
font 字库编码
|
||
sdata 写入的数据
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void DisData(ST_UINT x, ST_UINT y,ST_UCHAR back,ST_UCHAR font,ST_UCHAR sdata );
|
||
|
||
/****************************************************************************
|
||
* 名 称: DisCursor()
|
||
* 功 能: 光标显示
|
||
* 入口参数: enable
|
||
x 以点为单位的X轴坐标值
|
||
y 以点为单位的Y轴坐标值
|
||
length 光标长度
|
||
width 光标宽度
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void DisCursor(ST_UCHAR enable,ST_UINT x, ST_UINT y,ST_UCHAR length,ST_UCHAR width );
|
||
|
||
/****************************************************************************
|
||
* 名 称: DisFull_Image()
|
||
* 功 能: 全屏整幅图显示
|
||
* 入口参数: image_id 图片ID编号
|
||
masken 屏蔽色使能
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void DisFull_Image(ST_UINT image_id,ST_UCHAR masken);
|
||
|
||
/****************************************************************************
|
||
* 名 称: DisArea_Image()
|
||
* 功 能: 区域图片显示
|
||
* 入口参数: x 以点为单位的X轴坐标值
|
||
y 以点为单位的Y轴坐标值
|
||
image_id 图片ID编号
|
||
masken 屏蔽色使能
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void DisArea_Image(ST_UINT x,ST_UINT y,ST_UINT image_id,ST_UCHAR masken);
|
||
|
||
/****************************************************************************
|
||
* 名 称: DisCut_Image()
|
||
* 功 能: 图片剪切
|
||
* 入口参数: x 以点为单位的X轴坐标值
|
||
y 以点为单位的Y轴坐标值
|
||
image_id 图片编号
|
||
image_x 图片内部X坐标
|
||
image_y 图片内部Y坐标
|
||
image_l 剪切长度
|
||
image_w 剪切宽度
|
||
masken 屏蔽色使能
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void DisCut_Image(ST_UINT x,ST_UINT y,ST_UINT image_id,ST_UINT image_x,ST_UINT image_y,
|
||
ST_UINT image_l, ST_UINT image_w,ST_UCHAR masken);
|
||
|
||
/****************************************************************************
|
||
* 名 称: DisFlashImgae()
|
||
* 功 能: 动画显示
|
||
* 入口参数: x 以点为单位的X轴坐标值
|
||
y 以点为单位的Y轴坐标值
|
||
flashimage_id GIF动画ID编号
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void DisFlashImage(ST_UINT x,ST_UINT y,ST_UINT flashimage_id,ST_UCHAR enable,ST_UCHAR playnum);
|
||
/****************************************************************************
|
||
* 名 称: GUI_Dot()
|
||
* 功 能: 画点
|
||
* 入口参数: x 以点为单位的X轴坐标值
|
||
y 以点为单位的Y轴坐标值
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void GUI_Dot(ST_UINT x,ST_UINT y);
|
||
|
||
/****************************************************************************
|
||
* 名 称: GUI_Line()
|
||
* 功 能: 画线
|
||
* 入口参数: x0 以点为单位的X轴坐标值
|
||
y0 以点为单位的Y轴坐标值
|
||
x1 以点为单位的X轴坐标值
|
||
y1 以点为单位的Y轴坐标值
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void GUI_Line(ST_UINT x0, ST_UINT y0, ST_UINT x1, ST_UINT y1);
|
||
|
||
/****************************************************************************
|
||
* 名 称: GUI_ConDots()
|
||
* 功 能: 绘制折线,将指定的坐标点自动连接起来
|
||
* 入口参数: mode 0:用前景色描绘 1:用背景色描绘
|
||
pDot 指向点的指针
|
||
num 数据的个数
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void GUI_ConDots(ST_UCHAR mode,ST_UINT *pDot,ST_UINT num);
|
||
|
||
/****************************************************************************
|
||
* 名 称: GUI_Circle()
|
||
* 功 能: 画空心圆
|
||
* 入口参数: x0 以点为单位的X轴坐标值
|
||
y0 以点为单位的Y轴坐标值
|
||
r 空心圆的半径
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void GUI_Circle(ST_UINT x0, ST_UINT y0, ST_UINT r);
|
||
|
||
/****************************************************************************
|
||
* 名 称: GUI_CircleFill()
|
||
* 功 能: 画实心圆
|
||
* 入口参数: x0 以点为单位的X轴坐标值
|
||
y0 以点为单位的Y轴坐标值
|
||
r 实心圆的半径
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void GUI_CircleFill(ST_UINT x0, ST_UINT y0, ST_UINT r);
|
||
|
||
/****************************************************************************
|
||
* 名 称: GUI_Rectangle()
|
||
* 功 能: 画空心矩形
|
||
* 入口参数: x0 以点为单位的空心矩形左上角X坐标值
|
||
y0 以点为单位的空心矩形左上角Y坐标值
|
||
x1 以点为单位的空心矩形右下角X坐标值
|
||
y1 以点为单位的空心矩形右下角Y坐标值
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void GUI_Rectangle(ST_UINT x0, ST_UINT y0, ST_UINT x1,ST_UINT y1 );
|
||
|
||
/****************************************************************************
|
||
* 名 称: RectangleFill()
|
||
* 功 能: 画实心矩形
|
||
* 入口参数: x0 以点为单位的实心矩形左上角X坐标值
|
||
y0 以点为单位的实心矩形左上角Y坐标值
|
||
x1 以点为单位的实心矩形右下角X坐标值
|
||
y1 以点为单位的实心矩形右下角Y坐标值
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void GUI_RectangleFill(ST_UINT x0, ST_UINT y0, ST_UINT x1,ST_UINT y1 );
|
||
|
||
/****************************************************************************
|
||
* 名 称: GUI_Ellipse()
|
||
* 功 能: 画空心椭圆
|
||
* 入口参数: x0 以点为单位的空心椭圆最左端X坐标值
|
||
y0 以点为单位的空心椭圆最上端Y坐标值
|
||
x1 以点为单位的空心椭圆最右端X坐标值
|
||
y1 以点为单位的空心椭圆最下端Y坐标值
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void GUI_Ellipse (ST_UINT x0, ST_UINT y0, ST_UINT x1,ST_UINT y1 );
|
||
|
||
/****************************************************************************
|
||
* 名 称: GUI_EllipseFill()
|
||
* 功 能: 画实心椭圆
|
||
* 入口参数: x0 以点为单位的实心椭圆最左端X坐标值
|
||
y0 以点为单位的实心椭圆最上端Y坐标值
|
||
x1 以点为单位的实心椭圆最右端X坐标值
|
||
y1 以点为单位的实心椭圆最下端Y坐标值
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void GUI_EllipseFill (ST_UINT x0, ST_UINT y0, ST_UINT x1,ST_UINT y1 );
|
||
|
||
/****************************************************************************
|
||
* 名 称: SetBackLight()
|
||
* 功 能: 背光调节
|
||
* 入口参数: light_level
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void SetBackLight(ST_UCHAR light_level);
|
||
|
||
/****************************************************************************
|
||
* 名 称: SetBuzzer()
|
||
* 功 能: 蜂鸣器控制
|
||
* 入口参数: light_level
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void SetBuzzer(ST_UCHAR time);
|
||
|
||
/****************************************************************************
|
||
* 名 称: SetCommBps()
|
||
* 功 能: 设置通讯波特率
|
||
* 入口参数: Baud
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void SetCommBps(ST_UCHAR baudset);
|
||
|
||
/****************************************************************************
|
||
* 名 称: SetTouchScreen(ST_UCHAR cmd)
|
||
* 功 能: 触摸屏控制
|
||
* 入口参数: cmd Bit0:1/0 触摸开/闭; Bit1 : 1/0 蜂鸣器开/闭; Bit2: 上传方式
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void SetTouchScreen(ST_UCHAR cmd);
|
||
|
||
/****************************************************************************
|
||
* 名 称: SetTouchScreen_Adj()
|
||
* 功 能: 触摸屏校准,校准完毕后下发结束信息
|
||
* 入口参数: 无
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void SetTouchScreen_Adj(void);
|
||
|
||
/****************************************************************************
|
||
* 名 称: TestTouchScreen()
|
||
* 功 能: 触摸屏体验
|
||
* 入口参数: 无
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void TestTouchScreen(void);
|
||
|
||
/****************************************************************************
|
||
* 名 称: WriteLayer()
|
||
* 功 能: 写图层操作
|
||
* 入口参数: layer 写入的图层数
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void WriteLayer(ST_UCHAR layer);
|
||
|
||
/****************************************************************************
|
||
* 名 称: WriteLayer()
|
||
* 功 能: 切换图层显示
|
||
* 入口参数: layer 切换显示的图层
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void DisplyLayer(ST_UCHAR layer);
|
||
|
||
/****************************************************************************
|
||
* 名 称: SetScreen()
|
||
* 功 能: 切换画面
|
||
* 入口参数: screen_id,目标画面ID
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void SetScreen(ST_UINT screen_id);
|
||
|
||
/****************************************************************************
|
||
* 名 称: GetScreen()
|
||
* 功 能: 异步获取当前画面ID
|
||
* 入口参数: 无
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void GetScreen(void);
|
||
|
||
/****************************************************************************
|
||
* 名 称: GetControlValue()
|
||
* 功 能: 异步获取控件数值-HMI接收到获取数值命令之后返回控件数值,
|
||
可以获取按钮、文本、进度条、滑动条、仪表控件的值
|
||
* 入口参数: screen_id,目标画面ID
|
||
* 入口参数: control_id,目标控件ID
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void GetControlValue(ST_UINT screen_id,ST_UINT control_id);
|
||
|
||
/****************************************************************************
|
||
* 名 称: SetButtonValue()
|
||
* 功 能: 设置按钮控件的状态值
|
||
* 入口参数: screen_id,目标画面ID
|
||
* 入口参数: control_id,目标控件ID
|
||
* 入口参数: value,按钮状态-0弹起,1按下
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void SetButtonValue(ST_UINT screen_id,ST_UINT control_id,ST_UCHAR value);
|
||
|
||
/****************************************************************************
|
||
* 名 称: SetTextValue()
|
||
* 功 能: 设置文本控件的显示文字
|
||
* 入口参数: screen_id,目标画面ID
|
||
* 入口参数: control_id,目标控件ID
|
||
* 入口参数: str,显示文字
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void SetTextValue(ST_UINT screen_id,ST_UINT control_id,ST_UCHAR *str);
|
||
|
||
/****************************************************************************
|
||
* 名 称: SetProgressValue()
|
||
* 功 能: 设置进度条控件的数值
|
||
* 入口参数: screen_id,控件所在的画面ID
|
||
* 入口参数: control_id,目标控件ID
|
||
* 入口参数: value_l-进度条的进度位置,低16位
|
||
* 入口参数: value_h-进度条的进度位置,高16位
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void SetProgressValue(ST_UINT screen_id,ST_UINT control_id,ST_UINT value_l,ST_UINT value_h);
|
||
|
||
/****************************************************************************
|
||
* 名 称: SetMeterValue()
|
||
* 功 能: 设置仪表控件的数值
|
||
* 入口参数: screen_id,控件所在的画面ID
|
||
* 入口参数: control_id,目标控件ID
|
||
* 入口参数: value_l-仪表指针位置,低16位
|
||
* 入口参数: value_h-仪表指针位置,高16位
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void SetMeterValue(ST_UINT screen_id,ST_UINT control_id,ST_UINT value_l,ST_UINT value_h);
|
||
|
||
/****************************************************************************
|
||
* 名 称: SetSliderValue()
|
||
* 功 能: 设置滑动条控件的数值
|
||
* 入口参数: screen_id,控件所在的画面ID
|
||
* 入口参数: control_id,目标控件ID
|
||
* 入口参数: value_l-滑动条的滑块位置,低16位
|
||
* 入口参数: value_h-滑动条的滑块位置,高16位
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void SetSliderValue(ST_UINT screen_id,ST_UINT control_id,ST_UINT value_l,ST_UINT value_h);
|
||
|
||
/****************************************************************************
|
||
* 名 称: SetControlState()
|
||
* 功 能: 设置控件状态
|
||
* 入口参数: screen_id,控件所在的画面ID
|
||
* 入口参数: control_id,目标控件ID
|
||
* 入口参数: state,状态,0禁用,1使能
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void SetControlState(ST_UINT screen_id,ST_UINT control_id, ST_UCHAR state);
|
||
|
||
/****************************************************************************
|
||
* 名 称: SetControlVisible()
|
||
* 功 能: 设置控件可见性
|
||
* 入口参数: screen_id,控件所在的画面ID
|
||
* 入口参数: control_id,目标控件ID
|
||
* 入口参数: visible,状态,0隐藏,1可见
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void SetControlVisible(ST_UINT screen_id,ST_UINT control_id, ST_UCHAR visible);
|
||
|
||
/****************************************************************************
|
||
* 名 称: SetIconValue()
|
||
* 功 能: 设置图标控件显示
|
||
* 入口参数: screen_id,控件所在的画面ID
|
||
* control_id,目标控件ID
|
||
* Value,帧数值
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void SetIconValue(ST_UINT screen_id,ST_UINT control_id, ST_UCHAR Value);
|
||
|
||
/****************************************************************************
|
||
* 名 称: SetDroplistVisible()
|
||
* 功 能: 设置控件可见性
|
||
* 入口参数: screen_id,控件所在的画面ID
|
||
* 入口参数: control_id,目标控件ID
|
||
* 入口参数: text_id,目标文本ID
|
||
* 入口参数: visible,状态,0隐藏,1可见
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void SetDroplistVisible(ST_UINT screen_id, ST_UINT control_id, ST_UINT text_id, ST_UCHAR visible);
|
||
|
||
/****************************************************************************
|
||
* 名 称: SetTextFcolor()
|
||
* 功 能: 设置文本框前景色
|
||
* 入口参数: screen_id,控件所在的画面ID
|
||
* control_id,目标控件ID
|
||
* fcolor 前景色RGB参数
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void SetTextFcolor(ST_UINT screen_id,ST_UINT control_id, ST_UINT fcolor);
|
||
|
||
/****************************************************************************
|
||
* 名 称: SetTextBcolor()
|
||
* 功 能: 设置文本框背景色
|
||
* 入口参数: screen_id,控件所在的画面ID
|
||
* control_id,目标控件ID
|
||
* bcolor 背景色RGB参数
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void SetTextBcolor(ST_UINT screen_id,ST_UINT control_id, ST_UINT bcolor);
|
||
|
||
/****************************************************************************
|
||
* 名 称: SetPeotectTime()
|
||
* 功 能: 设置屏保时间
|
||
* 入口参数: time 进入屏保时间,单位s
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void SetPeotectTime(ST_UINT time);
|
||
|
||
/****************************************************************************
|
||
* 名 称: SetUpdateScreen()
|
||
* 功 能: 设置屏幕更新
|
||
* 入口参数: enable 是否自动更新 0禁止1使能
|
||
* 出口参数: 无
|
||
****************************************************************************/
|
||
void SetUpdateScreen(ST_UCHAR enable);
|
||
|
||
#endif
|