163 lines
5.6 KiB
C
163 lines
5.6 KiB
C
|
||
|
||
#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
|
||
|