#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