You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

517 lines
12 KiB
C

2 years ago
/************************************************************************************
*
* Copyright (C) 2004-2005 SCADA Control Technology Co., Ltd.
* All rights reserved.
*
* <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD>scadaprotect.h
* <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>ʶ<EFBFBD><EFBFBD>SCADA<EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨѶ<EFBFBD><EFBFBD>Լ
* ժ Ҫ<EFBFBD><EFBFBD>
*
* <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD>1.0
* <EFBFBD><EFBFBD> <EFBFBD>ߣ<EFBFBD>aaawen
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>2005/06/02
*
* ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1.0
* ԭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>aaawen
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>
*
* ˵ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* 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 --- ȫ<EFBFBD>ֱ<EFBFBD><EFBFBD><EFBFBD>
* Array --- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* a --- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* m_ --- <EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD>Ա
* p --- ָ<EFBFBD><EFBFBD>
* str --- <EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>
* ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>д --- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD>ֽڱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д--- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
**************************************************************************************/
// 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
//////////////////////////////////////////////////////////////////////////
// <09><EFBFBD><EAB6A8> //
// WEN 2005.06.02 //
//////////////////////////////////////////////////////////////////////////
/*!
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>(PROTECT->FEND)
*/
#define pPFV_PROTECT_BYPASS 1
/*!
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>Ӧ<EFBFBD><EFBFBD>(FEND->PROTECT)
*/
#define fPFV_PROTECT_BYPASS_ACK 2
/*!
ͨ<EFBFBD><EFBFBD>״̬<EFBFBD><EFBFBD>(FEND->PROTECT)
*/
#define fPFV_STATUS 3
/*!
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(FEND<->PROTECT)
*/
#define fPFV_NETACTIVE 0xF0
//ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/*!
<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ֵ
*/
#define hREADFIX 0x01
/*!
<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
#define hREADFIXNO 0x07
/*!
<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
#define hREADPAI 0x09
/*!
<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
#define hREADPDI 0x0b
/*!
<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
#define hREADPWAVE 0x0d
/*!
<EFBFBD><EFBFBD>ȡָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><EFBFBD><EFBFBD>
*/
#define hQUERYFAULT 0x11
/*!
<EFBFBD><EFBFBD>ȡָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD>
*/
#define hQUERYSELFCHECK 0x12
/*!
<EFBFBD>޸ı<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
*/
#define hWRITEALLFIX 0x15
/*!
<EFBFBD>޸<EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
*/
#define hWRITESPECIALFIX 0x16
/*!
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵȷ<EFBFBD><EFBFBD>
*/
#define hWRITEFIXACK 0x17
/*!
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD>
*/
#define hWRITEFIXNAK 0x18
/*!
<EFBFBD>޸ı<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>
*/
#define hWRITEFIXNO 0x19
/*!
<EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>ȷ<EFBFBD><EFBFBD>
*/
#define hWRITEFIXNOACK 0x1a
/*!
<EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD>޸IJ<EFBFBD>ȷ<EFBFBD><EFBFBD>
*/
#define hWRITEFIXNONAK 0x1b
/*!
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>źŸ<EFBFBD><EFBFBD><EFBFBD>
*/
#define hRESETPROTECT 0x1c
/*!
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD>ö<EFBFBD>ʱ
*/
#define hCHECKTIME 0x1d
/*!
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD>ù<EFBFBD><EFBFBD>ʱ
*/
#define hBROADCASTCHECKTIME 0x1e
/*!
<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD>״̬
*/
#define hSTATUS 0x1f
/*!
<EFBFBD><EFBFBD>ȡ<EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD>Ԫֵ
*/
#define hCOMMAND 0x20
/*!
<EFBFBD><EFBFBD>ȡ<EFBFBD>Ŷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
#define hDISTCOMMAND 0x21
/*!
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>
*/
#define hCANCEL 0xFF
//Ӧ<><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/*!
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
#define hREADINGDATA 0x02
/*!
<EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
#define hFIXDATA 0x03
/*!
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
#define hREADDATAEND 0x04
/*!
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ
*/
#define hNORESPONSE 0x05
/*!
<EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>æ<EFBFBD><EFBFBD><EFBFBD>Ժ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
#define hSYSTEMBUSY 0x06
/*!
<EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
#define hFIXNODATA 0x08
/*!
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
#define hPAIDATA 0x0a
/*!
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
#define hPDIDATA 0x0c
/*!
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϳ<EFBFBD>ʼ
*/
#define hPWAVEDATASTART 0x0e
/*!
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
#define hPWAVEDATA 0x0f
/*!
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͽ<EFBFBD><EFBFBD><EFBFBD>
*/
#define hPWAVEDATAEND 0x10
/*!
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
#define hPEVENTDATAWITHID 0x13
/*!
<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
#define hPEVENTDATAWITHSTRING 0x14
/*!
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵȷ<EFBFBD><EFBFBD>
*/
#define hWRITEFIXACK 0x17
/*!
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD>
*/
#define hWRITEFIXNAK 0x18
/*!
<EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>ȷ<EFBFBD><EFBFBD>
*/
#define hWRITEFIXNOACK 0x1a
/*!
<EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD>޸IJ<EFBFBD>ȷ<EFBFBD><EFBFBD>
*/
#define hWRITEFIXNONAK 0x1b
/*!
<EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
#define hFIXDATAWITHNO 0x22
/*!
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
#define hPAIDATAWITHNO 0x23
/*!
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
#define hPDIDATAWITHNO 0x24
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>
/*!
ʵ<EFBFBD><EFBFBD>ֵ
*/
#define ITEM_ATTR_REALVALUE 1
/*!
ȱʡֵ
*/
#define ITEM_ATTR_DEFAULTVALUE 2
/*!
<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
*/
#define ITEM_ATTR_MINMAXSTEP 3
/*!
<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
*/
#define ITEM_ATTR_STANDBY 4
/*!
<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
*/
#define ITEM_ATTR_PRECISION 5
/*!
<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
*/
#define ITEM_ATTR_FIGURE 6
/*!
<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
*/
#define ITEM_ATTR_RATE 7
/*!
<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
*/
#define ITEM_ATTR_LIST 8
/*!
<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
*/
#define ITEM_ATTR_UNIT 9
/*!
<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
*/
#define ITEM_ATTR_DESCRIPTION 10
/*!
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<EFBFBD><EFBFBD>(<EFBFBD><EFBFBD>)
*/
#define OPERPROTECTTIMEOUT 15
// <20><>pc<70><63>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>Ƕ<EFBFBD><C7B6>ʽϵͳ
#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));// <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>
u_32 uAddr __attribute__ ((packed));// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
char cFixNo __attribute__ ((packed));// <20><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
char cCPUNo __attribute__ ((packed));// CPU<50><55>
u_32 uFuncCode __attribute__ ((packed));// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
u_32 uReserved __attribute__ ((packed));// <20><><EFBFBD><EFBFBD>
}PROTECTCONTENTHEAD, *pPROTECTCONTENTHEAD;
typedef struct
{
u_32 MsgType __attribute__ ((packed));// <20><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
u_32 PortNumber __attribute__ ((packed));// <20><>Ϣ<EFBFBD>˿ں<CBBF>
u_32 MsgLen __attribute__ ((packed));// <20><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
//u_char MsgData[1]; // <20><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
}PROTECTMSGHEAD;
typedef struct
{
u_32 MsgType __attribute__ ((packed));// <20><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
u_32 PortNumber __attribute__ ((packed));// <20><>Ϣ<EFBFBD>˿ں<CBBF>
u_32 MsgLen __attribute__ ((packed));// <20><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
u_char MsgData[MAX_RTU_MSG_SIZE] __attribute__ ((packed));// <20><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
}PROTECTMSG;
// <20><>pc<70><63>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>Ƕ<EFBFBD><C7B6>ʽϵͳ
#ifdef PC_MACHINE
#ifdef OS_WINDOWS
#pragma pack (pop)
#else// OS_UNIX
#pragma pack (0)
#endif //OS_UNIX
#endif
typedef struct
{
BOOL bPortIdle; // <20>˿ڱ<CBBF><DAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>ʶ
u_32 timeOut; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1>
u_32 mmid; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>
} PORTSTATUS, *pPORTSTATUS;
typedef struct tagSCADAPROVDEVDEF
{
/*!
\brief װ<EFBFBD>õ<EFBFBD>ʵ<EFBFBD>ʶ˿ں<EFBFBD>
*/
i_32 m_iRealCommid;
/*!
\brief װ<EFBFBD>õ<EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ(Ψһȷ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD>)
*/
i_32 m_iProvAddr;
/*!
\brief ת<EFBFBD><EFBFBD>SOE<EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><EFBFBD><EFBFBD>
\note
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʷ<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>(Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
*/
DEVPROVSOE m_sProvSoe;
i_32 m_iStatusStn;
i_32 m_iStatusPnt;
DBORIENTATION m_sYxInfo;
}SCADAPROVDEVDEF;
typedef struct tagSCADAPROTECTPORTPARAM
{
/*!
\var SCADAPROTECTPORTPARAM::m_achRecvBuf
\brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
\note
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󲻳<EFBFBD><EFBFBD><EFBFBD> MAX_RTU_MSG_SIZE+12(<EFBFBD><EFBFBD>ͷ) bytes\n
*/
char m_achRecvBuf[MAX_RTU_MSG_SIZE+12];
/*!
\var SCADAPROTECTPORTPARAM::m_iRecvLen
\brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><EFBFBD><EFBFBD>
*/
int m_iRecvLen;
/*!
\var SCADAPROTECTPORTPARAM::m_iRecvLen
\brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>
*/
int m_iActiveTimeCnt;
int m_iActiveTimeConst;
/*!
\var SCADAPROTECTPORTPARAM::m_iRecvLen
\brief ͨ<EFBFBD><EFBFBD>״̬<EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>
*/
int m_iStatusTimeCnt;
int m_iStatusTimeConst;
/*!
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
i_32 m_iDevNum;
SCADAPROVDEVDEF *m_psProvDev;
SINGLELIST m_sBaoHuData;
char m_chArrayTempletFileName[256];
PORTSTATUS *m_pPrtPortStatus;
/*!
\brief <EFBFBD>ù<EFBFBD>Լ<EFBFBD>Ķ˿<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
*/
SIO_PARAM_BAOHU_DEF *m_psBaoHu;
}SCADAPROTECTPORTPARAM, *pSCADAPROTECTPORTPARAM;
/////////////////////////<2F><><EFBFBD><EFBFBD>Ϊͨ<CEAA>ú<EFBFBD><C3BA><EFBFBD><EFBFBD>ӿ<EFBFBD>///////////////////////////
/*!
\brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD>
\param commid -- <EFBFBD>˿ں<EFBFBD>
\note
ȡֵ<EFBFBD><EFBFBD>Χ<EFBFBD><EFBFBD>0 -- MaxSerialPortNum + MaxNetPortNum -1\n
*/
void ScadaProtectReadConfig(int commid); // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/*!
\brief <EFBFBD><EFBFBD>ȡ<EFBFBD>˿<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD><EFBFBD><EFBFBD>
\param commid -- <EFBFBD>˿ں<EFBFBD>
\note
ȡֵ<EFBFBD><EFBFBD>Χ<EFBFBD><EFBFBD>0 -- MaxSerialPortNum + MaxNetPortNum -1\n
\param buf -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
\param len -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
void ScadaProtectRecvData(int commid, u_char *buf, int len);// <20><>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>
/*!
\brief <EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
\param commid -- <EFBFBD>˿ں<EFBFBD>
\note
ȡֵ<EFBFBD><EFBFBD>Χ<EFBFBD><EFBFBD>0 -- MaxSerialPortNum + MaxNetPortNum -1\n
*/
void ScadaProtectTimer(int commid); // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/*!
\brief ң<EFBFBD><EFBFBD>ң<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
\param commid -- <EFBFBD>˿ں<EFBFBD>
\note
ȡֵ<EFBFBD><EFBFBD>Χ<EFBFBD><EFBFBD>0 -- MaxSerialPortNum + MaxNetPortNum -1\n
\param buf -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
\param len -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
void ScadaProtectYkYtProcess(int commid, u_char *buf, int len); // ң<><D2A3>ң<EFBFBD><D2A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/*!
\brief ϵͳ<EFBFBD>·<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
\param commid -- <EFBFBD>˿ں<EFBFBD>
\note
ȡֵ<EFBFBD><EFBFBD>Χ<EFBFBD><EFBFBD>0 -- MaxSerialPortNum + MaxNetPortNum -1\n
*/
//void ScadaProtectSendSystemTime(int commid); // ϵͳ<CFB5><CDB3>ʱ
/*!
\brief ϵͳ<EFBFBD>˳<EFBFBD>ʱ<EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
\param commid -- <EFBFBD>˿ں<EFBFBD>
\note
ȡֵ<EFBFBD><EFBFBD>Χ<EFBFBD><EFBFBD>0 -- MaxSerialPortNum + MaxNetPortNum -1\n
*/
void ScadaProtectExit(int commid); // <20><>Լ<EFBFBD>˳<EFBFBD>
/*!
\brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
\param commid -- <EFBFBD>˿ں<EFBFBD>
\param rtumsg -- <EFBFBD>·<EFBFBD><EFBFBD>ı<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
\note
ȡֵ<EFBFBD><EFBFBD>Χ<EFBFBD><EFBFBD>0 -- MaxSerialPortNum + MaxNetPortNum -1\n
*/
void ScadaProtectBaoHuCmdProcess(int commid, RTUMSG *rtumsg, BOOL bUpData);
/*!
\brief ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD>
\param commid -- <EFBFBD>˿ں<EFBFBD>
\param iProvAddr -- ͳһ<EFBFBD><EFBFBD><EFBFBD>ŵı<EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
\param ppBaoHuDB -- <EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
\retval -- <EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>װ<EFBFBD>ñ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
int ScadaProtectGetBaohuDataBase(int commid, int iProvAddr, GROUPDEF **ppBaoHuDB);
/////////////////////////ͨ<>ú<EFBFBD><C3BA><EFBFBD><EFBFBD>ӿڽ<D3BF><DABD><EFBFBD>///////////////////////////////
/////////////////////////<2F><><EFBFBD><EFBFBD>Ϊͨ<CEAA>ú<EFBFBD><C3BA><EFBFBD>֧<EFBFBD>ֽӿ<D6BD>/////////////////////////
void ScadaProtectProvMakeYkYtCommand(int commid, u_char *buf, int len);
/////////////////////////ͨ<>ú<EFBFBD><C3BA><EFBFBD>֧<EFBFBD>ֽӿڽ<D3BF><DABD><EFBFBD>///////////////////////////
///////////////////////////<2F><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ú<EFBFBD><C3BA><EFBFBD><EFBFBD>ӿ<EFBFBD>///////////////////////////
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);
/////////////////////////////<2F><><EFBFBD>ú<EFBFBD><C3BA><EFBFBD><EFBFBD>ӿڽ<D3BF><DABD><EFBFBD>///////////////////////////
///////////////////////<2F><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>///////////////////////////
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);
//<2F><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>ѭ<EFBFBD><D1AD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void AllNetToHostByteSequence(PROTECTMSG *userdata);
//<2F><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>˳<EFBFBD><CBB3>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void AllHostToNetByteSequence(PROTECTMSG *userdata);
BOOL ScadaProtectConvertToScadaFrameAndSend(int commid);
BOOL ScadaProtectConvertTo103AndSend(int commid, PROTECTMSG *pmsg);
//<2F><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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);
/////////////////////////<2F><>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿڽ<D3BF><DABD><EFBFBD>///////////////////////////
/////////////////////////<2F><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>Ժ<EFBFBD><D4BA><EFBFBD><EFBFBD>ӿ<EFBFBD>/////////////////////////////
void DispPrtPortStatus(int commid, SCADAPROTECTPORTPARAM *psPortParam);
///////////////////////////<2F><><EFBFBD>Ժ<EFBFBD><D4BA><EFBFBD><EFBFBD>ӿڽ<D3BF><DABD><EFBFBD>/////////////////////////////
#endif // !defined(_SCADABAOHU_H_200506020948__INCLUDED_)