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

163 lines
5.6 KiB
C
Raw Permalink 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 INTERACT_LCD_123_INCLUDED
#define INTERACT_LCD_123_INCLUDED
#include "glbtypes.h"
#include "general_defines.h"
#include "basetype.h"
#ifdef __cplusplus
extern "C" {
#endif
/************************************************************************/
typedef struct
{
ST_DOUBLE cmdTime; //下面命令的时间,可用于判断命令长时间没有返回。建议不使用,因为每个命令都会返回,即使失败
ST_UCHAR cmdStatus; //命令状态0=初始状态1命令执行中2执行完毕
ST_UCHAR group;
ST_UCHAR result; //0表示执行成功其它值失败
ST_UCHAR dzNum;
UNION_FLOAT dzVal[256];
ST_UCHAR dzType[256]; //7=浮点5整数,其它未定义
UNION_FLOAT dzTmp[256]; //修改的临时值存放缓冲。修改定值的时候,使用本缓冲的值
} LCD_CMD_DZ;
//事件自检报告的结构体
typedef struct
{
struct
{
unsigned short int Msecond; //毫秒2字节范围059999
unsigned char Minute; //分1字节范围059
unsigned char Hour; //小时1字节范围023
unsigned char Date; //日期1字节范围131
unsigned char Month; //月1字节范围112
unsigned short int Year; //年2字节范围20002099
} SoeDate; //时间8字节
unsigned int SoeTime; //相对时间4字节单位毫秒ms
unsigned short int SoeCode; //事件代码2字节
unsigned char SoeParaNum; //参数个数1字节取值范围03
struct
{
unsigned char Type; //模拟量类型1字节
unsigned char Mode; //显示方式1次、2次1字节
float Value; //浮点数
//cbt modified 2019.5.22 事件自检报告的参数个数从3个改为10个.液晶中相应的修改参数个数
//} SoeValue[3]; //参数值
} SoeValue[SOE_VALUE_NUM]; //参数值
} LCD_CMD_SJZJ_ITEM;
//事件自检报告的命令
typedef struct{
ST_UCHAR cmdStatus; //命令状态0=初始状态1命令执行中2执行完毕
ST_UCHAR result; //0表示执行成功其它值失败
ST_UCHAR target; //查询事件报告的目标对象,保护或者IO板等
ST_UCHAR itemNum;
LCD_CMD_SJZJ_ITEM item[7];
} LCD_CMD_SJZJ;
typedef struct{
ST_UCHAR cmdStatus; //命令状态0=初始状态1命令执行中2执行完毕
ST_UCHAR result; //0表示执行成功其它值失败
//版本号不存在或查询失败对应版本内容为全0
ST_UCHAR protVer[32];
ST_UCHAR commcpuVer[32];
ST_UCHAR ioVer[4][32];
} LCD_CMD_VERSION;
//遥控传动
typedef struct{
ST_UCHAR cmdStatus; //命令状态0=初始状态1命令执行中2执行完毕
ST_UCHAR result; //0表示执行成功其它值失败
ST_UCHAR cdIndex; //传动的通道号
ST_UCHAR dco; //传动的分、合值
} LCD_CMD_YKCD;
ST_RET interact_lcd_init( ST_VOID );
ST_RET interact_lcd_release( ST_VOID );
ST_RET interact_lcd_handle( ST_VOID );
/*驱动程序调用,发送定值相关命令 */
LCD_CMD_DZ * interact_lcd_cmd_dz_get_struct( ST_VOID );
ST_RET interact_lcd_cmd_dz_get_data( ST_UCHAR dzGroup );
ST_RET interact_lcd_cmd_dz_set_sec( ST_UCHAR dzGroup );
ST_RET interact_lcd_cmd_dz_set_data( ST_UCHAR dzGroup );
ST_RET interact_lcd_cmd_dz_get_data_return( ST_RET result, ST_UCHAR group, ST_UCHAR dzNum, const UNION_FLOAT *dzVal, const ST_UCHAR *dzType );
ST_RET interact_lcd_cmd_dz_set_sec_return( ST_RET result, ST_UCHAR group );
ST_RET interact_lcd_cmd_dz_set_data_return( ST_RET result, ST_UCHAR group );
ST_VOID * interact_lcd_cmd_l2_set( const ST_VOID *yaoce );
//驱动程序调用,获取二级数据是否更新的标记
ST_INT interact_lcd_cmd_l2_get_updateflag( ST_VOID );
//返回的是结构体:CLZType
const ST_VOID * interact_lcd_cmd_l2_get( ST_VOID );
//返回的是结构体Q_DataType, pYcNum传入参数可设置实际遥测个数
const ST_VOID * interact_lcd_cmd_yc_get( ST_UCHAR *pYcNum );
//返回的是结构体TELE_SIGNAL取结构体中的value值即可.value值&0x03取低2位1为分2为合其它为不定态
const ST_VOID * interact_lcd_cmd_yx_get( ST_INT *pYxNum );
//获取上次保存的运行灯状态
ST_RET interact_lcd_cmd_l2_get_lastrunstatus( ST_UCHAR *lastRunStatus );
//获取故障报告的内容根据排序0表示最新1表示次新依次类推失败返回空指针。 结构体为FaultItemType
//faultIndex为故障报告序号的指针
const ST_VOID * interact_lcd_cmd_gzbg_get( ST_INT buildIndex, ST_INT *faultIndex );
//事件结构体的转换
ST_RET interact_lcd_soeitem_to_sjzjitem( const ST_VOID *soe, LCD_CMD_SJZJ_ITEM *sjzj );
///液晶驱动调用本函数,下发命令。然后实时监测结构体的状态,判断程序是否执行完成
ST_RET interact_lcd_cmd_sjzj_get( ST_UCHAR sjzj, ST_INT target, ST_UCHAR segment );
LCD_CMD_SJZJ * interact_lcd_cmd_sjbg_get_struct( ST_VOID );
ST_RET interact_lcd_cmd_sjzj_get_return( ST_RET result, ST_INT dataLen, const ST_UCHAR *dataBuff, ST_UCHAR dstDev );
//驱动程序调用,版本号相关函数
ST_RET interact_lcd_cmd_ver_get_all( ST_VOID );
LCD_CMD_VERSION * interact_lcd_cmd_ver_get_struct( ST_VOID );
ST_RET interact_lcd_cmd_ver_get_return( ST_VOID );
///返回的结构体是HOST_INFO。 失败返回NULL
ST_VOID * interact_lcd_cmd_netinfo_get( ST_VOID );
//下发的结构体也是HOST_INFO。需要设置正确网卡的数量(需提示要重新装置)调用set_reboot_time可重启装置
ST_RET interact_lcd_cmd_netinfo_set( const ST_VOID *netInfo );
//获取装置地址
ST_UCHAR interact_lcd_cmd_devaddr_get( ST_VOID );
ST_RET interact_lcd_cmd_devaddr_set( ST_UCHAR devAddr );
//通知液晶驱动,有的报告产生
ST_RET interact_lcd_cmd_sjzj_burst( ST_UCHAR sjzj, ST_INT target, const ST_VOID *sjzjData );
ST_RET interact_lcd_cmd_gzbg_burst( const ST_VOID *gzbgData, ST_INT faultIndex );
//设置装置时间其中年必须大于等于2000年.其中dateSet为结构体DateType
ST_RET interact_lcd_cmd_time_set( const ST_VOID *dateSet );
//液晶驱动调用,下发传动命令
ST_RET interact_lcd_cmd_cd_send( ST_UCHAR cdIndex, ST_UCHAR dco );
LCD_CMD_YKCD * interact_lcd_cmd_cd_get_struct( ST_VOID );
//接口调用,返回传动命令结果
ST_RET interact_lcd_cmd_cd_return( ST_RET result );
/************************************************************************/
#ifdef __cplusplus
}
#endif
#endif