📄 inforec.h
字号:
#ifndef __INFOREC__
#define __INFOREC__
#include "typedef.h"
#include "system.h"
/* 数据库访问ID */
typedef WORD HANDLE;
#define INF_H_NULL 0xFFFF
#define INF_MAX_HANDLE 16
BOOL INF_Initialize(void);
/* 申请访问指针,并清除该访问指针的当前所有变化量信息 */
HANDLE INF_Open_Database(void);
/* 释放访问指针,一般情况下,无需使用 */
BOOL INF_Close_Database(HANDLE h);
/* 通用状态类型 */
typedef BOOL T_STATE;
#define INF_S_OFF FALSE
#define INF_S_ON TRUE
/* 动作事件记录及检索 */
typedef struct tagT_EVENT
{
WORD dev_id; /* 设备标识号 */
WORD e_code; /* 事件条目号(最小值为1) */
T_STATE e_state; /* 事件状态 */
T_DATE e_date; /* 事件日期 */
} T_EVENT;
/* 记录一条动作事件 */
BOOL INF_Record_Event(const T_EVENT *p_evt);
/* 判断某设备是否有动作事件记录 */
BOOL INF_Search_Event(HANDLE h, WORD dev_id);
/* 取设备的动作事件记录,如果存在,取出该条记录,返回TRUE */
BOOL INF_Get_Event(HANDLE h, WORD dev_id, T_EVENT *p_evt);
/* 清除设备的所有动作事件记录,不影响其他访问指针 */
BOOL INF_Reset_Event(HANDLE h, WORD dev_id);
/* 告警事件记录及检索 */
typedef T_EVENT T_ALARM;
BOOL INF_Record_Alarm(const T_ALARM *p_alm);
BOOL INF_Search_Alarm(HANDLE h, WORD dev_id);
BOOL INF_Get_Alarm(HANDLE h, WORD dev_id, T_ALARM *p_alm);
BOOL INF_Reset_Alarm(HANDLE h, WORD dev_id);
/* 遥信SOE记录及检索 */
typedef T_EVENT T_SOE;
/* 记录遥信SOE信息并自动更新相关条目遥信状态 */
BOOL INF_Record_Soe(const T_SOE *p_soe);
BOOL INF_Search_Soe(HANDLE h, WORD dev_id);
BOOL INF_Get_Soe(HANDLE h, WORD dev_id, T_SOE *p_soe);
BOOL INF_Reset_Soe(HANDLE h, WORD dev_id);
/* 遥信变位记录及检索 */
typedef struct tagT_DIC
{
WORD dev_id;
WORD e_code;
T_STATE e_state;
T_DATE e_date;
} T_DIC;
/* 记录遥信变位信息并自动更新相关条目遥信状态 */
BOOL INF_Record_Dic(const T_DIC *p_dic);
BOOL INF_Search_Dic(HANDLE h, WORD dev_id);
BOOL INF_Get_Dic(HANDLE h, WORD dev_id, T_DIC *p_dic);
BOOL INF_Reset_Dic(HANDLE h, WORD dev_id);
/* 遥信量数据及接口定义 */
#define MAX_DI_GROUPS ((SYS_MAX_DI+31)/32)
typedef struct tagT_DI
{
WORD di_num;
DWORD di_val[MAX_DI_GROUPS];
} T_DI;
/* 设置指定条目的遥信状态(最小条目 =1) */
void INF_Preset_Di(T_DI *p_di, WORD di_no, T_STATE di_state);
/* 检查指定条目的遥信状态(最小条目 =1) */
T_STATE INF_Check_Di(const T_DI *p_di, WORD di_no);
/* 设置指定设备的遥信量,并与库比较产生遥信变位信息 */
BOOL INF_Set_Di(WORD dev_id, const T_DI *p_di);
/* 查询指定设备的遥信量 */
BOOL INF_Get_Di(WORD dev_id, T_DI *p_di);
/* 脉冲电度量数据及接口定义 */
typedef struct tagT_PULSE
{
WORD ps_num;
DWORD ps_val[SYS_MAX_PULSE];
} T_PULSE;
/* 设置指定设备的遥脉量 */
BOOL INF_Set_Pulse(WORD dev_id, const T_PULSE *p_ps);
/* 查询指定设备的遥脉量 */
BOOL INF_Get_Pulse(WORD dev_id, T_PULSE *p_ps);
/* 冻结脉冲量,保留 */
BOOL INF_Freeze_Pulse(WORD dev_id);
/* 解冻脉冲量,保留 */
BOOL INF_Defreeze_Pulse(WORD dev_id);
/* 遥测量数据及接口定义 */
//format of measure value(WORD)
#define INF_MS_OVERFLOW 0x8000
#define INF_MS_ERROR 0x4000
#define INF_MS_RESERVED 0x2000
#define INF_MS_NEGATIVE 0x1000
#define INF_MS_VALUE_MASK 0x0FFF
typedef struct tagT_MEASURE
{
WORD ms_num;
WORD ms_val[SYS_MAX_MEASURE];
} T_MEASURE;
BOOL INF_Set_Measure(WORD dev_id, const T_MEASURE *p_ms);
BOOL INF_Get_Measure(WORD dev_id, T_MEASURE *p_ms);
/* 遥测越限量记录及检索 */
typedef struct tagT_OVERLINE
{
WORD dev_id;
WORD ovl_no;
WORD ovl_val;
} T_OVERLINE;
/* 记录越限数据并自动更新相关条目遥测数据 */
BOOL INF_Record_Overline(const T_OVERLINE *p_ovl);
BOOL INF_Search_Overline(HANDLE h, WORD dev_id);
BOOL INF_Get_Overline(HANDLE h, WORD dev_id, T_OVERLINE *p_ovl);
BOOL INF_Reset_Overline(HANDLE h, WORD dev_id);
/* 软压板变位记录及检索 */
typedef T_DIC T_SFCC;
/* 记录软压板变位信息并自动更新相关条目软压板状态 */
BOOL INF_Record_SFCC(const T_SFCC *p_sfcc);
BOOL INF_Search_SFCC(HANDLE h, WORD dev_id);
BOOL INF_Get_SFCC(HANDLE h, WORD dev_id, T_SFCC *p_sfcc);
BOOL INF_Reset_SFCC(HANDLE h, WORD dev_id);
/* 软压板数据及接口定义 */
#define MAX_SFC_GROUPS ((SYS_MAX_SFC+31)/32)
typedef struct tagT_SFC
{
WORD sfc_num;
DWORD sfc_val[MAX_SFC_GROUPS];
} T_SFC;
/* 设置指定条目的软压板状态(最小条目 =1) */
void INF_Preset_SFC(T_SFC *p_sfc, WORD sfc_no, T_STATE sfc_state);
/* 检查指定条目的软压板状态(最小条目 =1) */
T_STATE INF_Check_SFC(const T_SFC *p_sfc, WORD sfc_no);
/* 设置指定设备的软压板信息,并与库比较产生软压板变位信息 */
BOOL INF_Set_SFC(WORD dev_id, const T_SFC *p_sfc);
/* 查询指定设备的软压板信息 */
BOOL INF_Get_SFC(WORD dev_id, T_SFC *p_sfc);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -