www.pudn.com > Fronter_xie3.rar > struct.h
#ifndef STRUCT_H
#define STRUCT_H
#define LISTENSOCKETNUM 10
#define GB_FRM_SIZE 2048
#define GB_FRMSIZE_TX 2048
#define GB_FRMSIZE_RX 2048
#define GB_MAXDATASIZE 1000
#define GB_TRANSMITSIZE 2048
#define GB_PRO_RX 0
#define GB_PRO_TX 1
const BYTE VALUE_INVLAID = 0xee;
/*******************Location of one frame**********************/
//FIX FRAME HEADER
#define GB_LOC_START1 0
#define GB_LOC_LLEN1 1
#define GB_LOC_HLEN1 2
#define GB_LOC_LLEN2 3
#define GB_LOC_HLEN2 4
#define GB_LOC_START2 5
//ADDRESS FIELD DEFINATIONS
#define GB_LOC_CONTROL 6
#define GB_LOC_ADDA1 7
#define GB_LOC_ADDA2 8
#define GB_LOC_ADDB1 9
#define GB_LOC_ADDB2 10
#define GB_LOC_ADDB3 11
#define GB_LOC_AFN 12
#define GB_LOC_SEQUENCE 13
#define GB_LOC_DA1 14
#define GB_LOC_DA2 15
#define GB_LOC_DT1 16
#define GB_LOC_DT2 17
#define GB_LOC_DATA 18
/*******************defination of CONTROL BYTE**********************/
#define GB_CONTROL_FUN 0X0F
#define GB_CONTROL_FCV 0X10
#define GB_CONTROL_FCB 0X20
#define GB_CONTROL_ACD 0X20
#define GB_CONTROL_PRM 0X40
#define GB_CONTROL_DIR 0X80
/*******************defination of Linker layer's FUN code**********************/
//PRM = 1
#define GB_LFUN_RESET 1
#define GB_LFUN_ASKNOREPLY 4
#define GB_LFUN_ASKLINKSTATUS 9
#define GB_LFUN_ASKN1DATA 10 //1级数据
#define GB_LFUN_ASKN2DATA 11 //2级数据
//PRM = 0
#define GB_LFUN_CONFIRM 0
#define GB_LFUN_DATAREPLY 8
#define GB_LFUN_NOASKDATA 9
#define GB_LFUN_LINKSTATUS 11
/*******************defination of App layer's FUN command code**********************/
#define GB_AFUN_CONFIRM 0
#define GB_AFUN_RESET 1
#define GB_AFUN_CHECKLINK 2
#define GB_AFUN_RELAYCMD 3
#define GB_AFUN_SETPARA 4
#define GB_AFUN_CONTROLCMD 5
#define GB_AFUN_ASKPARA 0X0A
//#define GB_AFUN_ASKTASK 0X0B
#define GB_AFUN_ASKCLASS1 0X0C
#define GB_AFUN_ASKCLASS2 0X0D
#define GB_AFUN_ASKCLASS3 0X0E
#define GB_AFUN_TRANSFILE 0X0F
#define GB_AFUN_TRANSMIT 0X10
#define GB_AFUN_ADDON 0XFF //自定义部分
/*******************defination of SEQUENCE BYTE**********************/
#define GB_SEQUENCE_SEQ 0X0F
#define GB_SEQUENCE_CON 0X10
#define GB_SEQUENCE_FIN 0X20
#define GB_SEQUENCE_FIR 0X40
#define GB_SEQUENCE_TVP 0X80
#define GB_SEQUENCE_TVP0 0X00
#define GB_SEQUENCE_TVP1 0X80
/*******************defination of ERR BYTE**********************/
#define GB_ERR_OK 0
#define GB_ERR_DATAERR 1
#define GB_ERR_PASSERR 2
#define GB_ERR_NOVALIDDATA 3
#define GB_ERR_VERCHANGED 4
/*******************defination of Login type**********************/
#define GB_LOGLINK_LOGIN 1
#define GB_LOGLINK_LOGOUT 2
#define GB_LOGLINK_BEAT 3
#define REVFROMCL790D 1
#define SENDTOCL790D 0
/*******************defination of Message Type**********************/
typedef struct{
BYTE wTxCnt; //发送次数
BYTE pBuf[ GB_FRM_SIZE ];
WORD wBufSize; //发送帧缓冲区的大小
WORD wBufLen; //发送帧长度
WORD wBufPointer;
}GBMsg;
typedef struct{
WORD nYear;
BYTE nMonth;
BYTE nDay;
BYTE nHour;
BYTE nMinute;
BYTE nSecond;
BYTE nWeek;//1-7表示星期1-星期日 1 = Sunday, 2 = Monday, ..., 7 = Saturday
}TDATETIME;
typedef TDATETIME TTime;
typedef struct{
bool fStartSMS;
//接收部分
WORD wRxDataLen;
WORD wRxDataTotLen;
WORD wRxA1A2;
WORD wRxB1B2;
BYTE bRxMasterAddreess;
BYTE bRxFlag;//0:一对一命令; 1:广播命令; 2:片命令
BYTE bRxCTL;
BYTE bRxFUN;
BYTE bRxFCV;
BYTE bRxFCB;
BYTE bRxFN;
BYTE bRxPN;
BYTE bRxAFN;
BYTE bRxSequence;
BYTE bRxSEQ;
BYTE bRxTVP;
TTime RxTimeTag;
DWORD wRxTimeTagSecs;
//发送部分
bool fTxNeedCON;
TTime TxTimeTag;
BYTE bTxFCB;
BYTE bEC1;
BYTE bEC2;
BYTE bHisFCB;
BYTE bMyFCB;
BYTE bHisSEQ;//主站为启动站的方向计数
BYTE bMySEQ;//分站为启动站的方向计数
BYTE bHisPFC;//主站为启动站的方向帧计数器
BYTE bMyPFC;//分站为启动站的方向帧计数器
BYTE bPrmSend_CMD;
BYTE bPrmSend_Sequence;
DWORD dwPrmSend_Click;
bool fGotOneConfirm;
BYTE bGotConfirm_CMD;
BYTE bGotConfirm_Sequence;
BYTE bGotConfirm_Answer;
}GBCommInfo_T;
enum NETADDRESS
{
NETADDRESS_Valid,
NETADDRESS_GBAddress,
NETADDRESS_MainIP,
NETADDRESS_state,
NETADDRESS_SOCKET,
};
enum netconn_state
{
NETCONN_ONLINE,
NETCONN_OFFLINE
};
enum LOG_LEVEL
{
LOG_FATAL,
LOG_ERROR,
LOG_WARN,
LOG_INFO,
LOG_DEBUG
};
const BYTE ExTLEVEL=LOG_INFO;
#endif