#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字节,范围:0~59999 unsigned char Minute; //分,1字节,范围:0~59 unsigned char Hour; //小时,1字节,范围:0~23 unsigned char Date; //日期,1字节,范围:1~31 unsigned char Month; //月,1字节,范围:1~12 unsigned short int Year; //年,2字节,范围:2000~2099 } SoeDate; //时间,8字节 unsigned int SoeTime; //相对时间,4字节,单位毫秒(ms) unsigned short int SoeCode; //事件代码,2字节 unsigned char SoeParaNum; //参数个数,1字节,取值范围:0~3 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