⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inforec.h

📁 东方电子700系统接入源代码,比较一下,就清楚如何利用该代码改写其他的接入代码了.
💻 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 + -