?? sys.h
字號:
#include "Include.h"
/* x25發送緩沖區長度 */
#define X25MSG_QUEUE_SIZE 100
/* Socket連接狀態 */
typedef enum
{
SOCKET_DISCONNECTED =0,
SOCKET_CONNECTED =1
}SOCKET_CONNECT_STATUS_e;
/* 定時器類型 */
typedef enum
{
SCHEDULED_NEW_MESSAGE =1, /* 定時發送預約新消息 */
SCHEDULED_RESEND =2, /* 定時重發 */
WRITE_RETURN_TO_CBC_PROXY =3, /* Write定時回復 */
REPLACE_RETURN_TO_CBC_PROXY =4, /* Replace定時回復 */
KILL_RETURN_TO_CBC_PROXY =5, /* KILL定時回復 */
STATUS_CBCH_QUERY_RETURN =6, /* STATUS_CBCH_QUERY定時回復 */
STATUS_MSG_QUERY_RETURN =7, /* STATUS_MSG_QUERY定時回復 */
LIFE_PERIOD =8, /* 進程生命到期 */
SCHEDULED_STATUS_CBCH_QUERY =9, /* 定時STATUS_CBCH_QUERY */
SET_DRX_REPORT_RETURN =10,/* SET_DRX_REPORT定時回復 */
RESET_RETURN =11, /* RESET回復定時器 */
STATISTIC_TIMER =20, /* 統計定時器 */
WATCH_TIME =21 /* 觀察定時器 */
}TIME_TYPE_e;
/* 定時器時長,單位:ms */
typedef enum
{
RETURN_TO_CBC_PROXY_DELAY_TIME =5000,
WRITE_RETURN_RETURN_DELAY_TIME =10000, /* WRITE回復定時器時長 */
REPLACE_RETURN_DELAY_TIME =5000, /* REPLACE回復定時器時長 */
KILL_RETURN_DELAY_TIME =5000, /* KILL回復定時器時長 */
STATUS_CBCH_QUERY_RETURN_DELAY_TIME =5000, /* STATUS_CBCH_QUERY回復定時器時長 */
STATUS_MSG_QUERY_RETURN_DELAY_TIME =5000, /* STATUS_MSG_QUERY回復定時器時長 */
SET_DRX_RETURN_DELAY_TIME =10000, /* SET_DRX_RETURN_DELAY_TIME回復定時器時長 */
RESET_RETURN_DELAY_TIME =10000, /* RESET_RETURN回復定時器時長 */
SCHEDULED_STATUS_CBCH_QUERY_TIME =30000, /* 定時查詢小區負荷時長 */
RESEND_PERIOD =30000, /* 重發周期 */
WAIT_RESPONSE_TIME =6000, /* 等待響應時間 */
RELEASE_X25CONNECT_WAIT =10000 /* 釋放X25鏈路等待時間 */
}TIME_LEN_e;
/*
* BSC的狀態
*/
typedef enum
{
/* 連接斷開 */
BSC_DISCONNECT =0,
/* 正常 */
BSC_STEADY =1
}BSC_STATUS_e;
/*
* 小區的狀態
*/
typedef enum
{
/* 正常 */
CELL_OK =0,
/* 連接斷開 */
CELL_ERROR =1
}CELL_STATUS_e;
/*
* 消息緩沖結構
*/
typedef struct
{
unsigned char cMessage[MESSAGE_LEN];
}MESSAGE_t;
typedef struct
{
unsigned short iLen;
MESSAGE_HEAD_t s_MessageHead;
unsigned char cMessage[MESSAGE_LEN];
}CBEMESSAGE_t;
typedef struct
{
unsigned short iLen;
unsigned char cMessage[MESSAGE_LEN];
PID_t s_Pid;
}BSCMESSAGE_t;
typedef struct
{
unsigned int iHead;
unsigned int iTail;
unsigned int iMsgCount;
HANDLE MsgMutex;
HANDLE MsgFull;
HANDLE MsgEmpty;
CBEMESSAGE_t s_Message[MSG_QUEUE_SIZE];
}MESSAGE_BUF_t;
typedef struct
{
unsigned int iHead;
unsigned int iTail;
unsigned int iMsgCount;
HANDLE MsgMutex;
HANDLE MsgFull;
HANDLE MsgEmpty;
BSCMESSAGE_t s_Message[X25MSG_QUEUE_SIZE];
}X25_SEND_MESSAGE_BUF_t;
/*
* 和BSC連接有關的參數
*/
typedef struct
{
char BscIdentifier[BSC_INDENTIFIER_LEN]; /* BSC標志 */
char BscAddr[BSC_ADDR_LEN+1]; /* BSC地址 */
int BscPort; /* Bsc端口 */
unsigned char CBCOperator[MAX_OPERATOR_LEN+1]; /* 下行連接用戶名 */
unsigned char BSCOperator[MAX_OPERATOR_LEN+1]; /* 上行連接用戶名 */
HANDLE DownlinkConnectThread; /* 下行連接請求線程 */
HANDLE UplinkListenThread; /* 上行鏈路監聽線程 */
// HANDLE ThreadEvent; /* 線程同步事件 */
HANDLE X25SendThreadHandle; /* 下行發送線程句柄 */
// HANDLE X25ReceiveThreadHandle; /* 下行接受線程句柄 */
int X25DownlinkHandle; /* 下行連接句柄 */
int X25UpLinkHandle; /* 上行連接句柄 */
/* 正常 BSC_STEADY =1,*/
/* 連接斷開 BSC_DISCONNECT =2 */
// int BscStatus; /* BSC狀態 */
int DownlinkStatus; /* 下行鏈路連接狀態 */
int UplinkStatus; /* 上行鏈路連接狀態 */
unsigned char ConnectOpen; /* 1:開啟連接,0:關閉連接 */
unsigned char DownlinkThreadOpen; /* 1:線程開啟,0:線程關閉 */
unsigned char UplinkThreadOpen; /* 1:線程開啟,0:線程關閉 */
int MessageType; /* 發送消息類型 */
X25_SEND_MESSAGE_BUF_t s_X25SendMessageBuf; /* 發送消息隊列 */
PID_t s_Pid; /* 消息的進程標志 */
// unsigned char bX25PackStatiFlag; /* 包層統計開啟標志 */
// unsigned char bX25LinkStatiFlag; /* 鏈路統計開啟標志 */
// int ExpireTimes; /* 連續超時次數 */
// unsigned char OriginalMessageBuf[LPCB_DATA_SIZE]; /* 未打包的原始信息 */
}BSC_CONNECT_INFO_t;
/* 小區消息的統計 */
typedef struct
{
unsigned int iSendCount; /* 發送總數 */
unsigned int iSuccessCount; /* 成功總數 */
unsigned int ibsscapErr; /* 基站系統負荷超載 */
unsigned int icellmemErr; /* 小區內存溢出 */
unsigned int ibssmemErr; /* 基站系統內存溢出 */
unsigned int iotherErr; /* 其他錯誤 */
}CELL_STAT_t;
typedef struct
{
unsigned char cCellId[4];
unsigned char cCellStatus; /* 0:可用,1:不可用 */
unsigned char cCellLoading; /* 信道負荷是用百分比的形式表明預計的短期內的負載 */
unsigned int iFailureCount; /* 小區失敗的次數 */
unsigned int icResetCount; /* 小區復位的次數 */
CELL_STAT_t s_WriteCount; /* 寫入的統計 */
CELL_STAT_t s_ReplaceCount;/* 替換的統計 */
CELL_STAT_t s_KillCount; /* 刪除的統計 */
CELL_STAT_t s_QueryCount; /* 消息查詢的統計 */
CELL_STAT_t s_CBCHCount; /* 信道負荷的統計 */
}CELLID_INFO_t;
/*
* 和BTS小區有關的參數
*/
typedef struct
{
unsigned char cBTSIdentifer[BTS_INDENTIFIER_LEN];
unsigned char cNumberOfCell;
CELLID_INFO_t s_CellId[MAXCELLOFBTS];
}BTS_CELL_INFO_t;
/*
* 和BSC小區有關的參數
*/
typedef struct
{
unsigned char bFlag;
unsigned char cBSCIdentifer[BSC_INDENTIFIER_LEN]; /* BSC的編號 */
unsigned char cLacId[LAC_INDENTIFIER_LEN]; /* MSC的編號 */
unsigned char cNumberOfBTS; /* BTS的個數 */
BTS_CELL_INFO_t s_BTSCellInfo[MAXBTSOFBSC];
}BSC_CELL_INFO_t;
/*
* CBCProxy配置BSC小區有關的參數接口
*/
typedef struct
{
unsigned char cBSCIdentifer[BSC_INDENTIFIER_LEN]; /* BSC的編號 */
unsigned char cLacId[LAC_INDENTIFIER_LEN]; /* MSC的編號 */
unsigned char BSCAddress[BSC_ADDR_LEN+1]; /* Bsc的地址 */
unsigned char CBCOperator[MAX_OPERATOR_LEN+1]; /* 下行連接用戶名 */
unsigned char BSCOperator[MAX_OPERATOR_LEN+1]; /* 上行連接用戶名 */
int cNumberOfCell; /* Cell的個數 */
CELLID_t s_Cell[MAX_BSC_CELL_COUNT] ;
}BSC_CELL_INFO_i;
/*
* X25連接的虛鏈路的端口號和邏輯會話號,
*/
typedef struct
{
unsigned int UplinkPort; /* 上行端口號 */
unsigned int UplinkLsn; /* 上行邏輯會話號 */
unsigned char UplinkFlag; /* 1:存在,0:不存在 */
unsigned int DownlinkPort; /* 下行端口號 */
unsigned int DownlinkLsn; /* 下行邏輯會話號 */
unsigned char DownlinkFlag; /* 1:存在,0:不存在 */
unsigned char BscAddr[BSC_ADDR_LEN+1]; /* Bsc的地址 */
}X25_PORT_LSN_t;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -