commCPU_SUPV/code/user/inc/hmi_driver.h
2025-04-30 16:24:29 +08:00

530 lines
21 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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