|
|
|
|
/************************************************************************************
|
|
|
|
|
*
|
|
|
|
|
* Copyright (C) 2004-2005 SCADA Control Technology Co., Ltd.
|
|
|
|
|
* All rights reserved.
|
|
|
|
|
*
|
|
|
|
|
* 文件名称:scadaprotect.h
|
|
|
|
|
* 文件标识:SCADA内部保护通讯规约
|
|
|
|
|
* 摘 要:
|
|
|
|
|
*
|
|
|
|
|
* 当前版本:1.0
|
|
|
|
|
* 作 者:aaawen
|
|
|
|
|
* 完成日期:2005/06/02
|
|
|
|
|
*
|
|
|
|
|
* 取代版本:1.0
|
|
|
|
|
* 原作者 :aaawen
|
|
|
|
|
* 完成日期:
|
|
|
|
|
*
|
|
|
|
|
* 说 明:数据定义规则
|
|
|
|
|
* u8 --- BYTE(usigned char)
|
|
|
|
|
* ch --- char
|
|
|
|
|
* w --- WORD(u_short, usigned short)
|
|
|
|
|
* sh --- short
|
|
|
|
|
* b --- BOOL(bool)
|
|
|
|
|
* i --- int
|
|
|
|
|
* l --- long
|
|
|
|
|
* u32 --- u_32
|
|
|
|
|
* ui --- unsigned int(u_int)
|
|
|
|
|
* ul --- unsigned long(u_long)
|
|
|
|
|
* f --- float
|
|
|
|
|
* db --- double
|
|
|
|
|
* c --- class
|
|
|
|
|
* s --- struct
|
|
|
|
|
* sta --- static
|
|
|
|
|
* g --- 全局变量
|
|
|
|
|
* Array --- 数组
|
|
|
|
|
* a --- 数组
|
|
|
|
|
* m_ --- 数据成员
|
|
|
|
|
* p --- 指针
|
|
|
|
|
* str --- 字符串
|
|
|
|
|
* 全部大写 --- 常量
|
|
|
|
|
* 首字节必须大写--- 类名称,结构,函数
|
|
|
|
|
**************************************************************************************/
|
|
|
|
|
// buban103.h: interface for the buban103 class.
|
|
|
|
|
//
|
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
|
#if !defined(_SCADABAOHU_H_200506020948__INCLUDED_)
|
|
|
|
|
#define _SCADABAOHU_H_200506020948__INCLUDED_
|
|
|
|
|
#ifdef OS_LINUX
|
|
|
|
|
#include "baohulib/common.h"
|
|
|
|
|
#else
|
|
|
|
|
#include "common.h"
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
|
// 宏定义 //
|
|
|
|
|
// WEN 2005.06.02 //
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
|
/*!
|
|
|
|
|
保护指令包(PROTECT->FEND)
|
|
|
|
|
*/
|
|
|
|
|
#define pPFV_PROTECT_BYPASS 1
|
|
|
|
|
/*!
|
|
|
|
|
保护数据包应答(FEND->PROTECT)
|
|
|
|
|
*/
|
|
|
|
|
#define fPFV_PROTECT_BYPASS_ACK 2
|
|
|
|
|
/*!
|
|
|
|
|
通道状态包(FEND->PROTECT)
|
|
|
|
|
*/
|
|
|
|
|
#define fPFV_STATUS 3
|
|
|
|
|
/*!
|
|
|
|
|
网络活动包(FEND<->PROTECT)
|
|
|
|
|
*/
|
|
|
|
|
#define fPFV_NETACTIVE 0xF0
|
|
|
|
|
|
|
|
|
|
//指令包操作码
|
|
|
|
|
/*!
|
|
|
|
|
读取定值
|
|
|
|
|
*/
|
|
|
|
|
#define hREADFIX 0x01
|
|
|
|
|
/*!
|
|
|
|
|
读取定值区号
|
|
|
|
|
*/
|
|
|
|
|
#define hREADFIXNO 0x07
|
|
|
|
|
/*!
|
|
|
|
|
读取保护模拟量
|
|
|
|
|
*/
|
|
|
|
|
#define hREADPAI 0x09
|
|
|
|
|
/*!
|
|
|
|
|
读取保护开关量
|
|
|
|
|
*/
|
|
|
|
|
#define hREADPDI 0x0b
|
|
|
|
|
/*!
|
|
|
|
|
读取保护波形数据
|
|
|
|
|
*/
|
|
|
|
|
#define hREADPWAVE 0x0d
|
|
|
|
|
/*!
|
|
|
|
|
读取指定故障报告
|
|
|
|
|
*/
|
|
|
|
|
#define hQUERYFAULT 0x11
|
|
|
|
|
/*!
|
|
|
|
|
读取指定的自检报告
|
|
|
|
|
*/
|
|
|
|
|
#define hQUERYSELFCHECK 0x12
|
|
|
|
|
/*!
|
|
|
|
|
修改保护定值
|
|
|
|
|
*/
|
|
|
|
|
#define hWRITEALLFIX 0x15
|
|
|
|
|
/*!
|
|
|
|
|
修改指定的保护定值
|
|
|
|
|
*/
|
|
|
|
|
#define hWRITESPECIALFIX 0x16
|
|
|
|
|
/*!
|
|
|
|
|
保护定值确认
|
|
|
|
|
*/
|
|
|
|
|
#define hWRITEFIXACK 0x17
|
|
|
|
|
/*!
|
|
|
|
|
保护定值不确认
|
|
|
|
|
*/
|
|
|
|
|
#define hWRITEFIXNAK 0x18
|
|
|
|
|
/*!
|
|
|
|
|
修改保护定值区
|
|
|
|
|
*/
|
|
|
|
|
#define hWRITEFIXNO 0x19
|
|
|
|
|
/*!
|
|
|
|
|
定值区修改确认
|
|
|
|
|
*/
|
|
|
|
|
#define hWRITEFIXNOACK 0x1a
|
|
|
|
|
/*!
|
|
|
|
|
定值区修改不确认
|
|
|
|
|
*/
|
|
|
|
|
#define hWRITEFIXNONAK 0x1b
|
|
|
|
|
/*!
|
|
|
|
|
保护信号复归
|
|
|
|
|
*/
|
|
|
|
|
#define hRESETPROTECT 0x1c
|
|
|
|
|
/*!
|
|
|
|
|
单个装置对时
|
|
|
|
|
*/
|
|
|
|
|
#define hCHECKTIME 0x1d
|
|
|
|
|
/*!
|
|
|
|
|
保护装置广播对时
|
|
|
|
|
*/
|
|
|
|
|
#define hBROADCASTCHECKTIME 0x1e
|
|
|
|
|
/*!
|
|
|
|
|
读取保护装置状态
|
|
|
|
|
*/
|
|
|
|
|
#define hSTATUS 0x1f
|
|
|
|
|
/*!
|
|
|
|
|
读取菜单单元值
|
|
|
|
|
*/
|
|
|
|
|
#define hCOMMAND 0x20
|
|
|
|
|
/*!
|
|
|
|
|
读取扰动参数的命令
|
|
|
|
|
*/
|
|
|
|
|
#define hDISTCOMMAND 0x21
|
|
|
|
|
/*!
|
|
|
|
|
保护操作取消
|
|
|
|
|
*/
|
|
|
|
|
#define hCANCEL 0xFF
|
|
|
|
|
|
|
|
|
|
//应答包操作码
|
|
|
|
|
/*!
|
|
|
|
|
数据申请中
|
|
|
|
|
*/
|
|
|
|
|
#define hREADINGDATA 0x02
|
|
|
|
|
/*!
|
|
|
|
|
定值数据
|
|
|
|
|
*/
|
|
|
|
|
#define hFIXDATA 0x03
|
|
|
|
|
/*!
|
|
|
|
|
数据申请结束
|
|
|
|
|
*/
|
|
|
|
|
#define hREADDATAEND 0x04
|
|
|
|
|
/*!
|
|
|
|
|
数据申请无响应
|
|
|
|
|
*/
|
|
|
|
|
#define hNORESPONSE 0x05
|
|
|
|
|
/*!
|
|
|
|
|
数据处理繁忙,稍后重试
|
|
|
|
|
*/
|
|
|
|
|
#define hSYSTEMBUSY 0x06
|
|
|
|
|
/*!
|
|
|
|
|
定值区号数据
|
|
|
|
|
*/
|
|
|
|
|
#define hFIXNODATA 0x08
|
|
|
|
|
/*!
|
|
|
|
|
保护模拟量数据
|
|
|
|
|
*/
|
|
|
|
|
#define hPAIDATA 0x0a
|
|
|
|
|
/*!
|
|
|
|
|
保护开关量数据
|
|
|
|
|
*/
|
|
|
|
|
#define hPDIDATA 0x0c
|
|
|
|
|
/*!
|
|
|
|
|
保护波行数据上送开始
|
|
|
|
|
*/
|
|
|
|
|
#define hPWAVEDATASTART 0x0e
|
|
|
|
|
/*!
|
|
|
|
|
保护波行数据
|
|
|
|
|
*/
|
|
|
|
|
#define hPWAVEDATA 0x0f
|
|
|
|
|
/*!
|
|
|
|
|
保护波行数据上送结束
|
|
|
|
|
*/
|
|
|
|
|
#define hPWAVEDATAEND 0x10
|
|
|
|
|
/*!
|
|
|
|
|
带索引号的事件报告数据
|
|
|
|
|
*/
|
|
|
|
|
#define hPEVENTDATAWITHID 0x13
|
|
|
|
|
/*!
|
|
|
|
|
字符串事件报告数据
|
|
|
|
|
*/
|
|
|
|
|
#define hPEVENTDATAWITHSTRING 0x14
|
|
|
|
|
/*!
|
|
|
|
|
保护定值确认
|
|
|
|
|
*/
|
|
|
|
|
#define hWRITEFIXACK 0x17
|
|
|
|
|
/*!
|
|
|
|
|
保护定值不确认
|
|
|
|
|
*/
|
|
|
|
|
#define hWRITEFIXNAK 0x18
|
|
|
|
|
/*!
|
|
|
|
|
定值区修改确认
|
|
|
|
|
*/
|
|
|
|
|
#define hWRITEFIXNOACK 0x1a
|
|
|
|
|
/*!
|
|
|
|
|
定值区修改不确认
|
|
|
|
|
*/
|
|
|
|
|
#define hWRITEFIXNONAK 0x1b
|
|
|
|
|
/*!
|
|
|
|
|
定值数据带序号
|
|
|
|
|
*/
|
|
|
|
|
#define hFIXDATAWITHNO 0x22
|
|
|
|
|
/*!
|
|
|
|
|
保护模拟量数据带序号
|
|
|
|
|
*/
|
|
|
|
|
#define hPAIDATAWITHNO 0x23
|
|
|
|
|
/*!
|
|
|
|
|
保护开关量数据带序号
|
|
|
|
|
*/
|
|
|
|
|
#define hPDIDATAWITHNO 0x24
|
|
|
|
|
|
|
|
|
|
// 数据项目属性
|
|
|
|
|
/*!
|
|
|
|
|
实际值
|
|
|
|
|
*/
|
|
|
|
|
#define ITEM_ATTR_REALVALUE 1
|
|
|
|
|
/*!
|
|
|
|
|
缺省值
|
|
|
|
|
*/
|
|
|
|
|
#define ITEM_ATTR_DEFAULTVALUE 2
|
|
|
|
|
/*!
|
|
|
|
|
量 程
|
|
|
|
|
*/
|
|
|
|
|
#define ITEM_ATTR_MINMAXSTEP 3
|
|
|
|
|
/*!
|
|
|
|
|
备 用
|
|
|
|
|
*/
|
|
|
|
|
#define ITEM_ATTR_STANDBY 4
|
|
|
|
|
/*!
|
|
|
|
|
精 度
|
|
|
|
|
*/
|
|
|
|
|
#define ITEM_ATTR_PRECISION 5
|
|
|
|
|
/*!
|
|
|
|
|
因 子
|
|
|
|
|
*/
|
|
|
|
|
#define ITEM_ATTR_FIGURE 6
|
|
|
|
|
/*!
|
|
|
|
|
参 比
|
|
|
|
|
*/
|
|
|
|
|
#define ITEM_ATTR_RATE 7
|
|
|
|
|
/*!
|
|
|
|
|
列 表
|
|
|
|
|
*/
|
|
|
|
|
#define ITEM_ATTR_LIST 8
|
|
|
|
|
/*!
|
|
|
|
|
量 纲
|
|
|
|
|
*/
|
|
|
|
|
#define ITEM_ATTR_UNIT 9
|
|
|
|
|
/*!
|
|
|
|
|
描 述
|
|
|
|
|
*/
|
|
|
|
|
#define ITEM_ATTR_DESCRIPTION 10
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
保护操作超时时间(秒)
|
|
|
|
|
*/
|
|
|
|
|
#define OPERPROTECTTIMEOUT 15
|
|
|
|
|
|
|
|
|
|
// 是pc机系统还是嵌入式系统
|
|
|
|
|
#ifdef PC_MACHINE
|
|
|
|
|
#ifdef OS_WINDOWS
|
|
|
|
|
#pragma pack (push,1)
|
|
|
|
|
#else// OS_UNIX
|
|
|
|
|
#pragma pack(1)
|
|
|
|
|
#endif //OS_UNIX
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
typedef struct tagPROTECTCONTENTHEAD
|
|
|
|
|
{
|
|
|
|
|
u_32 ummid __attribute__ ((packed));// 操作用户
|
|
|
|
|
u_32 uAddr __attribute__ ((packed));// 保护地址
|
|
|
|
|
char cFixNo __attribute__ ((packed));// 定值区号
|
|
|
|
|
char cCPUNo __attribute__ ((packed));// CPU号
|
|
|
|
|
u_32 uFuncCode __attribute__ ((packed));// 操作功能码
|
|
|
|
|
u_32 uReserved __attribute__ ((packed));// 保留
|
|
|
|
|
}PROTECTCONTENTHEAD, *pPROTECTCONTENTHEAD;
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
{
|
|
|
|
|
u_32 MsgType __attribute__ ((packed));// 信息类型
|
|
|
|
|
u_32 PortNumber __attribute__ ((packed));// 信息端口号
|
|
|
|
|
u_32 MsgLen __attribute__ ((packed));// 信息长度
|
|
|
|
|
//u_char MsgData[1]; // 信息数据
|
|
|
|
|
}PROTECTMSGHEAD;
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
{
|
|
|
|
|
u_32 MsgType __attribute__ ((packed));// 信息类型
|
|
|
|
|
u_32 PortNumber __attribute__ ((packed));// 信息端口号
|
|
|
|
|
u_32 MsgLen __attribute__ ((packed));// 信息长度
|
|
|
|
|
u_char MsgData[MAX_RTU_MSG_SIZE] __attribute__ ((packed));// 信息数据
|
|
|
|
|
}PROTECTMSG;
|
|
|
|
|
|
|
|
|
|
// 是pc机系统还是嵌入式系统
|
|
|
|
|
#ifdef PC_MACHINE
|
|
|
|
|
#ifdef OS_WINDOWS
|
|
|
|
|
#pragma pack (pop)
|
|
|
|
|
#else// OS_UNIX
|
|
|
|
|
#pragma pack (0)
|
|
|
|
|
#endif //OS_UNIX
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
{
|
|
|
|
|
BOOL bPortIdle; // 端口保护操作空闲标识
|
|
|
|
|
u_32 timeOut; // 保护操作超时时间
|
|
|
|
|
u_32 mmid; // 保护操作用户
|
|
|
|
|
} PORTSTATUS, *pPORTSTATUS;
|
|
|
|
|
|
|
|
|
|
typedef struct tagSCADAPROVDEVDEF
|
|
|
|
|
{
|
|
|
|
|
/*!
|
|
|
|
|
\brief 装置的实际端口号
|
|
|
|
|
*/
|
|
|
|
|
i_32 m_iRealCommid;
|
|
|
|
|
/*!
|
|
|
|
|
\brief 装置的转发地址(唯一确定一个装置)
|
|
|
|
|
*/
|
|
|
|
|
i_32 m_iProvAddr;
|
|
|
|
|
/*!
|
|
|
|
|
\brief 转发SOE数据参数
|
|
|
|
|
\note
|
|
|
|
|
用于历史记录的转发事件(应该是没有作用,已经遗弃)
|
|
|
|
|
*/
|
|
|
|
|
DEVPROVSOE m_sProvSoe;
|
|
|
|
|
|
|
|
|
|
i_32 m_iStatusStn;
|
|
|
|
|
i_32 m_iStatusPnt;
|
|
|
|
|
|
|
|
|
|
DBORIENTATION m_sYxInfo;
|
|
|
|
|
}SCADAPROVDEVDEF;
|
|
|
|
|
|
|
|
|
|
typedef struct tagSCADAPROTECTPORTPARAM
|
|
|
|
|
{
|
|
|
|
|
/*!
|
|
|
|
|
\var SCADAPROTECTPORTPARAM::m_achRecvBuf
|
|
|
|
|
\brief 接收数据缓冲区
|
|
|
|
|
\note
|
|
|
|
|
缓冲区最大不超过 MAX_RTU_MSG_SIZE+12(包头) bytes\n
|
|
|
|
|
*/
|
|
|
|
|
char m_achRecvBuf[MAX_RTU_MSG_SIZE+12];
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
\var SCADAPROTECTPORTPARAM::m_iRecvLen
|
|
|
|
|
\brief 接收数据长度
|
|
|
|
|
*/
|
|
|
|
|
int m_iRecvLen;
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
\var SCADAPROTECTPORTPARAM::m_iRecvLen
|
|
|
|
|
\brief 网络活动包的发送时间
|
|
|
|
|
*/
|
|
|
|
|
int m_iActiveTimeCnt;
|
|
|
|
|
int m_iActiveTimeConst;
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
\var SCADAPROTECTPORTPARAM::m_iRecvLen
|
|
|
|
|
\brief 通道状态包的发送时间
|
|
|
|
|
*/
|
|
|
|
|
int m_iStatusTimeCnt;
|
|
|
|
|
int m_iStatusTimeConst;
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
保护装置数量
|
|
|
|
|
*/
|
|
|
|
|
i_32 m_iDevNum;
|
|
|
|
|
|
|
|
|
|
SCADAPROVDEVDEF *m_psProvDev;
|
|
|
|
|
|
|
|
|
|
SINGLELIST m_sBaoHuData;
|
|
|
|
|
|
|
|
|
|
char m_chArrayTempletFileName[256];
|
|
|
|
|
|
|
|
|
|
PORTSTATUS *m_pPrtPortStatus;
|
|
|
|
|
/*!
|
|
|
|
|
\brief 该规约的端口数据指针
|
|
|
|
|
*/
|
|
|
|
|
SIO_PARAM_BAOHU_DEF *m_psBaoHu;
|
|
|
|
|
}SCADAPROTECTPORTPARAM, *pSCADAPROTECTPORTPARAM;
|
|
|
|
|
|
|
|
|
|
/////////////////////////以下为通用函数接口///////////////////////////
|
|
|
|
|
/*!
|
|
|
|
|
\brief 读取配置函数
|
|
|
|
|
\param commid -- 端口号
|
|
|
|
|
\note
|
|
|
|
|
取值范围:0 -- MaxSerialPortNum + MaxNetPortNum -1\n
|
|
|
|
|
*/
|
|
|
|
|
void ScadaProtectReadConfig(int commid); // 初始化处理
|
|
|
|
|
/*!
|
|
|
|
|
\brief 读取端口数据函数
|
|
|
|
|
\param commid -- 端口号
|
|
|
|
|
\note
|
|
|
|
|
取值范围:0 -- MaxSerialPortNum + MaxNetPortNum -1\n
|
|
|
|
|
\param buf -- 数据源缓冲区指针
|
|
|
|
|
\param len -- 数据源长度
|
|
|
|
|
*/
|
|
|
|
|
void ScadaProtectRecvData(int commid, u_char *buf, int len);// 规约读数据处理
|
|
|
|
|
/*!
|
|
|
|
|
\brief 规约数据处理定时器函数
|
|
|
|
|
\param commid -- 端口号
|
|
|
|
|
\note
|
|
|
|
|
取值范围:0 -- MaxSerialPortNum + MaxNetPortNum -1\n
|
|
|
|
|
*/
|
|
|
|
|
void ScadaProtectTimer(int commid); // 定时器处理
|
|
|
|
|
/*!
|
|
|
|
|
\brief 遥控遥调数据处理函数
|
|
|
|
|
\param commid -- 端口号
|
|
|
|
|
\note
|
|
|
|
|
取值范围:0 -- MaxSerialPortNum + MaxNetPortNum -1\n
|
|
|
|
|
\param buf -- 数据源缓冲区指针
|
|
|
|
|
\param len -- 数据源长度
|
|
|
|
|
*/
|
|
|
|
|
void ScadaProtectYkYtProcess(int commid, u_char *buf, int len); // 遥控遥调处理
|
|
|
|
|
/*!
|
|
|
|
|
\brief 系统下发对时函数
|
|
|
|
|
\param commid -- 端口号
|
|
|
|
|
\note
|
|
|
|
|
取值范围:0 -- MaxSerialPortNum + MaxNetPortNum -1\n
|
|
|
|
|
*/
|
|
|
|
|
//void ScadaProtectSendSystemTime(int commid); // 系统对时
|
|
|
|
|
/*!
|
|
|
|
|
\brief 系统退出时规约处理函数
|
|
|
|
|
\param commid -- 端口号
|
|
|
|
|
\note
|
|
|
|
|
取值范围:0 -- MaxSerialPortNum + MaxNetPortNum -1\n
|
|
|
|
|
*/
|
|
|
|
|
void ScadaProtectExit(int commid); // 规约退出
|
|
|
|
|
/*!
|
|
|
|
|
\brief 保护命令处理函数
|
|
|
|
|
\param commid -- 端口号
|
|
|
|
|
\param rtumsg -- 下发的保护命令指针
|
|
|
|
|
\note
|
|
|
|
|
取值范围:0 -- MaxSerialPortNum + MaxNetPortNum -1\n
|
|
|
|
|
*/
|
|
|
|
|
void ScadaProtectBaoHuCmdProcess(int commid, RTUMSG *rtumsg, BOOL bUpData);
|
|
|
|
|
/*!
|
|
|
|
|
\brief 取保护数据库指针函数
|
|
|
|
|
\param commid -- 端口号
|
|
|
|
|
\param iProvAddr -- 统一编排的保护转发地址
|
|
|
|
|
\param ppBaoHuDB -- 存放保护数据指针的指针
|
|
|
|
|
\retval -- 返回该装置保护数据组数
|
|
|
|
|
*/
|
|
|
|
|
int ScadaProtectGetBaohuDataBase(int commid, int iProvAddr, GROUPDEF **ppBaoHuDB);
|
|
|
|
|
/////////////////////////通用函数接口结束///////////////////////////////
|
|
|
|
|
|
|
|
|
|
/////////////////////////以下为通用函数支持接口/////////////////////////
|
|
|
|
|
void ScadaProtectProvMakeYkYtCommand(int commid, u_char *buf, int len);
|
|
|
|
|
/////////////////////////通用函数支持接口结束///////////////////////////
|
|
|
|
|
|
|
|
|
|
///////////////////////////以下为配置函数接口///////////////////////////
|
|
|
|
|
BOOL InitScadaInfoFromTempletFile(int commid, SCADAPROTECTPORTPARAM *psPortParam,\
|
|
|
|
|
char *ptrTemplate, BOOL bMaster);
|
|
|
|
|
BOOL GetProvDevNumFromTemplateFileScada(int commid, HDSFILE hFile, SCADAPROTECTPORTPARAM *psPortParam);
|
|
|
|
|
BOOL GetProvDevParamFromTemplateFileScada(int commid, HDSFILE hFile, SCADAPROTECTPORTPARAM *psPortParam);
|
|
|
|
|
int FindProtectDevFromPntNoScada(SCADAPROTECTPORTPARAM *psPortParam, int iPntNo, int itype);
|
|
|
|
|
/////////////////////////////配置函数接口结束///////////////////////////
|
|
|
|
|
|
|
|
|
|
///////////////////////以下为规约处理函数接口///////////////////////////
|
|
|
|
|
void ReduceTimeOut(SCADAPROTECTPORTPARAM *psPortParam);
|
|
|
|
|
BOOL IsProtectPortIdle(int commid, SCADAPROTECTPORTPARAM *psPortParam);
|
|
|
|
|
BOOL GetProtectPortIdle(int commid, SCADAPROTECTPORTPARAM *psPortParam, PORTSTATUS *pStatus);
|
|
|
|
|
BOOL SetProtectPortIdle(int commid, SCADAPROTECTPORTPARAM *psPortParam, PORTSTATUS *pStatus);
|
|
|
|
|
BOOL SetProtectPortIdleEx(int commid, int iBaoHuCommid, PORTSTATUS *pStatus);
|
|
|
|
|
void SendResponsetoMMI(int commid, int mmid, u_32 ResponseType, PROTECTMSG *pmsg);
|
|
|
|
|
//将客户机报文所有的数据从网络字节循序转换成主机字节顺序函数
|
|
|
|
|
void AllNetToHostByteSequence(PROTECTMSG *userdata);
|
|
|
|
|
//将客户机报文所有的数据从主机字节顺序转换成网络字节顺序函数
|
|
|
|
|
void AllHostToNetByteSequence(PROTECTMSG *userdata);
|
|
|
|
|
BOOL ScadaProtectConvertToScadaFrameAndSend(int commid);
|
|
|
|
|
BOOL ScadaProtectConvertTo103AndSend(int commid, PROTECTMSG *pmsg);
|
|
|
|
|
//数据处理函数总入口
|
|
|
|
|
void ScadaProtectProcessData(int commid, SCADAPROTECTPORTPARAM *psPortParam, BOOL bProcess);
|
|
|
|
|
|
|
|
|
|
void ScadaProtectByPassData(int commid, SCADAPROTECTPORTPARAM *psPortParam, PROTECTMSG *pmsg);
|
|
|
|
|
BOOL FormatDataAndSend(int commid, PROTECTMSG *pmsg);
|
|
|
|
|
void MakeInteractionCmd(int commid, int sourcommid, u_32 ResponseFunc, PROTECTCONTENTHEAD *pSourHead, BOOL bBoardCast);
|
|
|
|
|
void MakeNetActivePacket(int commid);
|
|
|
|
|
void MakeStatusPacket(int commid);
|
|
|
|
|
BOOL MakeSoeDataPacket(int commid);
|
|
|
|
|
/////////////////////////规约处理函数接口结束///////////////////////////
|
|
|
|
|
|
|
|
|
|
/////////////////////////以下为调试函数接口/////////////////////////////
|
|
|
|
|
void DispPrtPortStatus(int commid, SCADAPROTECTPORTPARAM *psPortParam);
|
|
|
|
|
///////////////////////////调试函数接口结束/////////////////////////////
|
|
|
|
|
#endif // !defined(_SCADABAOHU_H_200506020948__INCLUDED_)
|