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.

312 lines
11 KiB
C

2 years ago
/************************************************************************************
*
* Copyright (C) 2004-2005 SCADA Control Technology Co., Ltd.
* All rights reserved.
*
* <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD>buban101.h
* <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>ʶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>101<EFBFBD><EFBFBD>Լ
* ժ Ҫ<EFBFBD><EFBFBD>101<EFBFBD><EFBFBD>Լ<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><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/09/08
*
* ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1.0
* ԭ<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>
* 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>
**************************************************************************************/
// buban101.h: interface for the buban101 class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(_BUBAN101_H_200509081012__INCLUDED_)
#define _BUBAN101_H_200509081012__INCLUDED_
#ifdef OS_LINUX
#include "baohulib/common.h"
#else
#include "common.h"
#endif
//////////////////////////////////////////////////////////////////////////
// <09><EFBFBD><EAB6A8> //
// WEN 2005.09.08 //
//////////////////////////////////////////////////////////////////////////
//<2F><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>ַ
#define INFO_DI_BASEADDR 0x001 // <20><><><CBAB>ң<EFBFBD><D2A3><EFBFBD><EFBFBD>
#define INFO_PROTECT_BASEADDR 0x401 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>Ϣ
#define INFO_PROTECT_STARTBASEADDR 0x501 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
#define INFO_PROTECT_GROUPBASEADDR 0x601 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>Ϣ
#define INFO_AI_BASEADDR 0x701 // ң<><D2A3><EFBFBD><EFBFBD>
#define INFO_PARA_BASEADDR 0x901 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ,<2C><>ң<EFBFBD><D2A3><EFBFBD><EFBFBD>һһ<D2BB><D2BB>Ӧ
#define INFO_YKYT_BASEADDR 0xB01 // ң<>ء<EFBFBD>ң<EFBFBD><D2A3>
#define INFO_SET_BASEADDR 0xB81 // <20><EFBFBD><E8B6A8>ַ<EFBFBD><D6B7>Χ
#define INFO_PI_BASEADDR 0xC01 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define INFO_STEP_BASEADDR 0xC81 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><>:<3A><>ѹ<EFBFBD><D1B9><EFBFBD>ֽ<EFBFBD>ͷ)
#define INFO_BIN_BASEADDR 0xCA1 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>Ϣ
#define INFO_BCD_BASEADDR 0xCC1 // BCD<43><44>(ˮλ,Ƶ<><C6B5>)
#define INFO_STATUS_BASEADDR 0xCE9 // <20><>վԶ<D5BE><D4B6><EFBFBD>ն<EFBFBD>״̬
#define INFO_FILE_BASEADDR 0xCEA // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
//һ<><D2BB><EFBFBD>еĸ<D0B5><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define MAX_GROUP_AINUM 128
//#define MAX_GROUP_FLOATAINUM 128
#define MAX_GROUP_DINUM 128
#define MAX_GROUP_PINUM 32
//ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define MAX_AINUM 120
#define MAX_FLOATAINUM 48
#define MAX_DINUM 127
#define MAX_PINUM 35
#define MAX_POLL_CMD_BUF_NUM 32 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEBBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>
#define ASK_LINK 0 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·
#define RST_LINK 1 // <20><>λ<EFBFBD><CEBB>·
#define RTU_TIME 2 // <20><>ʱʱ<CAB1><CAB1>
#define ASK_DI_DATA 3 // <20>ٻ<EFBFBD>2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>YX
#define ASK_AI_DATA 4 // <20>ٻ<EFBFBD>2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>YC
#define ASK_PI_DATA 5 // <20>ٻ<EFBFBD>2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>YM
#define ASK_ALL_DATA 6 // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ٻ<EFBFBD>
#define ASK_FIRST_DATA 7 // <20>ٻ<EFBFBD>1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define ASK_SECOND_DATA 8 // <20>ٻ<EFBFBD>2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define ACK 9 // ȷ<>ϻش<CFBB>
#define ANS_LINK 10 // <20><>·<EFBFBD>ش<EFBFBD>
#define ASK_PI 11 // <20>ٻ<EFBFBD><D9BB><EFBFBD><EFBFBD><EFBFBD>YM
#define ASK_DATA_NO 12 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define ASK_ALLDATA_END 13 // <20>ٻ<EFBFBD><D9BB><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٻ<EFBFBD><D9BB>͵<EFBFBD><CDB5><EFBFBD><EFBFBD>ٻ<EFBFBD>)
//#define ASK_ALLDATA_ACK 14 // <20>ٻ<EFBFBD><D9BB><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٻ<EFBFBD><D9BB>͵<EFBFBD><CDB5><EFBFBD><EFBFBD>ٻ<EFBFBD>)
// <20><>ʱ<EFBFBD>ٻ<EFBFBD><D9BB><EFBFBD><EFBFBD><EFBFBD><EEBCB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define BUBAN101_TIMER_CMD_NUM 2 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
#define MAX_POLLCMD_BUF_LEN 320 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEBBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
// <20><><EFBFBD><EFBFBD>ģʽ
#define CONTROL_DOUBLE 0 // ˫<><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CONTROL_SINGAL 1 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CONTROL_DIRECT 2 // ֱ<>ӿ<EFBFBD><D3BF><EFBFBD>
// <20><>Լ<EFBFBD><EFBFBD><E6B1BE>
#define VER_BUBAN_101 0 // <20><><EFBFBD><EFBFBD>101
#define VER_IEC870_5_101 1 // IEC101
/////////////////////////////<2F><EFBFBD><E1B9B9><EFBFBD><EFBFBD>/////////////////////////////////
typedef struct
{
long CmdTimerCnt;
long CmdTimerConst;
} BUBAN101CMDDEF;
typedef struct tagBUBAN101PORTPARAM
{
BOOL RstLinkOk; // <20><>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1>FALSE
BOOL LinkOk; // <20><>վ<EFBFBD><D5BE>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>־ 1:ok; 0:no <20><>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1>FALSE
BOOL Initdata; // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ٻ<EFBFBD><D9BB><EFBFBD>־ TRUE<55><45><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD>ٻ<EFBFBD><D9BB><EFBFBD><EFBFBD><EFBFBD>֡
// FALSE<53><45>δ<EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD>ٻ<EFBFBD><D9BB><EFBFBD><EFBFBD><EFBFBD>֡
// <20>ٻ<EFBFBD><D9BB><EFBFBD><EFBFBD>ȱ<EFBFBD>־ TRUE<55><45><EFBFBD>յ<EFBFBD><D5B5>ٻ<EFBFBD><D9BB><EFBFBD><EFBFBD><EFBFBD>֡
// FALSE<53><45>δ<EFBFBD>յ<EFBFBD><D5B5>ٻ<EFBFBD><D9BB><EFBFBD><EFBFBD><EFBFBD>֡
BYTE LinkAddr; // <20><>ַ<EFBFBD><D6B7>
BYTE CtlByte; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
long LinkOkCnt;
long lTimeOutConst; // <20><>ʱʱ<CAB1><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
short RtuVersion; // <20><EFBFBD><E6B1BE>
short BalanceOrNot; //<2F>Ƿ<EFBFBD>ƽ<EFBFBD><C6BD>ʽ =1:ok; =0:no
short CurCmdIdx;
short YkMode; // ң<>ط<EFBFBD>ʽ(=0<><30>˫<EFBFBD><CBAB>ң<EFBFBD>أ<EFBFBD>=1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ң<EFBFBD>أ<EFBFBD>=2<><32>ֱ<EFBFBD>ط<EFBFBD>ʽ)
// wen 2005.01.15 <20>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַ
int iAiBaseAddr; //ң<><D2A3><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַ
int iDiBaseAddr; //ң<><D2A3><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַ
int iPiBaseAddr; //ң<><D2A3><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַ
int iYkBaseAddr; //ң<><D2A3><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַ
BYTE m_au8RecvBuf[300];
int m_iRecvLen;
BUBAN101CMDDEF CmdTime[BUBAN101_TIMER_CMD_NUM];
SIO_PARAM_BAOHU_DEF *m_psBaoHu; // <20>ù<EFBFBD>Լ<EFBFBD>Ķ˿<C4B6><CBBF><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
} BUBAN101PORTPARAM, *pBUBAN101PORTPARAM;
/////////////////////////<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 Buban101ReadConfig(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 Buban101RecvData(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 Buban101Timer(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 Buban101YkYtProcess(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 Buban101SendSystemTime(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 Buban101Exit(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 Buban101BaoHuCmdProcess(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 Buban101GetBaohuDataBase(int commid, int iProvAddr, GROUPDEF **ppBaoHuDB);
/////////////////////////ͨ<>ú<EFBFBD><C3BA><EFBFBD><EFBFBD>ӿڽ<D3BF><DABD><EFBFBD>///////////////////////////////
/////////////////////////buban101<30><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>///////////////////////////
// У<><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ȷ
BOOL Buban101Check(u_char* msg, int len);
//<2F><><EFBFBD><EFBFBD> Buban101 <20>ۼӺͼ<D3BA><CDBC><EFBFBD><EFBFBD><EFBFBD>
u_char CalBuban101Lpc(u_char* msg, int len);
//ָ<><EFBFBD><EEBBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
void InitBuban101CommandBuffer(int commid);
/////////////////////////buban101<30><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿڽ<D3BF><DABD><EFBFBD>///////////////////////
/////////////////////////<2F><><EFBFBD><EFBFBD>Ϊͨ<CEAA>ú<EFBFBD><C3BA><EFBFBD>֧<EFBFBD>ֽӿ<D6BD>/////////////////////////
void Buban101ProvMakeYkYtCommand(int commid, u_char *buf, int len);
/////////////////////////ͨ<>ú<EFBFBD><C3BA><EFBFBD>֧<EFBFBD>ֽӿڽ<D3BF><DABD><EFBFBD>///////////////////////////
///////////////////////////<2F><><EFBFBD><EFBFBD>Ϊָ<CEAA><D6B8><EFBFBD><EFBFBD><EFBFBD>ɺ<EFBFBD><C9BA><EFBFBD>///////////////////////////
//<2F><><EFBFBD><EFBFBD> Buban101 <20><><EFBFBD><EFBFBD><EFBFBD>
void MakeBuban101Command(u_32 commid, u_char cmdidx);
//<2F><><EFBFBD><EFBFBD>ң<EFBFBD><D2A3>ң<EFBFBD><D2A3>ָ<EFBFBD><D6B8>
void MakeBuBan101YkYtCommand(u_32 commid, u_char *buf, int len);
///////////////////////////ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD>ɺ<EFBFBD><C9BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/////////////////////////////
/////////////////////<2F><><EFBFBD><EFBFBD>ΪPOLLING<4E><47>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><E6BAAF><EFBFBD>ӿ<EFBFBD>//////////////////////
void Buban101FindNextCmd(int commid);
BOOL Buban101FindNextCmdEx(int commid);
void Buban101SendCmdFormPollCmdBuf(int commid);
//////////////////////POLLING<4E><47>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><E6BAAF><EFBFBD>ӿڽ<D3BF><DABD><EFBFBD>///////////////////////
///////////////////////<2F><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>///////////////////////////
//======================<3D><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>վ<EFBFBD><D5BE><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>============================
void Buban101ProcessData(u_32 commid, BUBAN101PORTPARAM *psPortParam, BOOL bProcess);
void Buban101shortprocess(RTUMSG *rtumsg);
void Buban101longprocess(RTUMSG *rtumsg);
void Buban101NoChanged(RTUMSG * rtumsg);
//Buban101 <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>
void Buban101InitdataProecss(RTUMSG * rtumsg);
//<2F><><EFBFBD>Ƚ<EFBFBD><C8BD><EFBFBD>֡
void Buban101PidataEnd(RTUMSG * rtumsg);
//<2F>趨ȷ<E8B6A8><C8B7>
void Buban101SetAck(RTUMSG *rtumsg);
//Buban101 ң<><D2A3>ң<EFBFBD><D2A3><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>
void Buban101YkYtAck(RTUMSG * rtumsg);
//Buban101 <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
void Buban101SynTime(RTUMSG * rtumsg);
// <20><>վ<EFBFBD><D5BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ң<EFBFBD>ű<EFBFBD>λ֡
void Buban101AutoSendDiProcess(RTUMSG *rtumsg);
void Buban101AiWithPzDataProcess(RTUMSG *, int);
void Buban101AllAiDataProcess(RTUMSG *rtumsg);
void Buban101DiDataProcess(RTUMSG *rtumsg, int);
void Buban101SoeDataProcess(RTUMSG *rtumsg, int);
void Buban101PiDataProcess(RTUMSG * rtumsg);
void Buban101PiWithTimeDataProcess(RTUMSG *rtumsg);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>
void Buban101BaoHuDataProcess(RTUMSG *rtumsg);
void Buban101DefaultBaoHuDataProcess(RTUMSG *rtumsg);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 7 BYTE <20><>ʱ<EFBFBD><CAB1>
void Buban101SoeDataProcessWithCP56Time2a(RTUMSG *rtumsg, int flag);
void Buban101AiWithDataProcessWithM_ME_TD_1(RTUMSG * rtumsg);
void Buban101AiWithDataProcessWithM_ME_TE_1(RTUMSG * rtumsg);
void Buban101AiWithDataProcessWithM_ME_TF_1(RTUMSG * rtumsg);
void Buban101PiWithTimeDataProcessWithM_IT_TB_1(RTUMSG *rtumsg);
//======================<3D><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>վ<EFBFBD><D5BE><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>============================
void ProvBuban101dataProcess(int commid, RTUMSG *rtumsg);
void ProvBuban101shortprocess(int commid, RTUMSG * rtumsg);
void ProvBuban101longprocess(int commid, RTUMSG * rtumsg);
void ProvBuban101SendAllData(int commid, RTUMSG * rtumsg);
void ProvBuban101SendPIData(int commid, RTUMSG * rtumsg);
void ProvBuban101ProcessTime(int commid, RTUMSG *rtumsg);
//iGroupNo=0Ϊ<30><CEAA>Ӧ<EFBFBD><D3A6><EFBFBD>ٻ<EFBFBD>
void ProvBuban101SendPI(int commid, RTUMSG *rtumsg, int iGroupNo);
void ProvBuban101SendAI(int commid, RTUMSG *rtumsg, int iGroupNo);
void ProvBuban101SendDI(int commid, RTUMSG *rtumsg, int iGroupNo);
void ProvBuban101YkYtData(int commid, RTUMSG *rtumsg);
void MakeProvBuban101YkYtAckMsg(int commid, int pnt, int op, int step);
void ProvBuban101SendClass1(int commid);
void ProvBuban101SendClass2(int commid);
void ProvMakeBuban101Command(int commid, u_char cmdidx);
/////////////////////////<2F><>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿڽ<D3BF><DABD><EFBFBD>///////////////////////////
#endif // !defined(_BUBAN101_H_200509081012__INCLUDED_)