?? statistic.c
字號:
memcpy(&ProcessData[s_Pid.iProcessId][sizeof(MESSAGE_STATISTIC_t)],&s_CBSEStatisticResult,
s_CBSEStatisticResult.cNumber*sizeof(STATTYPE_COUNT_t)+1);
/* 返回一次統計結果 */
memset(&s_CBEMessage,0,sizeof(CBEMESSAGE_t));
s_CBEMessage.s_MessageHead.iMessageAreaId=C;
memcpy(&s_CBEMessage.s_MessageHead.s_ReceiverPid,&LpMessageStatistic->s_StatMessageHead.s_SenderPid,sizeof(PID_t));
memcpy(&s_CBEMessage.s_MessageHead.s_SenderPid,&s_Pid,sizeof(PID_t));
s_CBEMessage.s_MessageHead.iMessageType=LpMessageStatistic->s_StatMessageHead.iMessageType;
s_CBEMessage.s_MessageHead.iMessageLength=i*sizeof(STATTYPE_COUNT_t)+1+ilen;
s_CBEMessage.iLen=s_CBEMessage.s_MessageHead.iMessageLength+sizeof(MESSAGE_HEAD_t);
/* 將統計請求也返回 */
if (LpMessageStatistic->StatCounter==0)
{
LpMessageStatistic->StatCounter=255;
memcpy(&s_CBEMessage.cMessage[0],&LpMessageStatistic->StatSerialId[0],ilen);
LpMessageStatistic->StatCounter=0;
}
else
{
memcpy(&s_CBEMessage.cMessage[0],&LpMessageStatistic->StatSerialId[0],ilen);
}
memcpy(&s_CBEMessage.cMessage[ilen],&s_CBSEStatisticResult,s_CBEMessage.s_MessageHead.iMessageLength-ilen);
AppendCBESendMessage(&s_CBEMessage);
/* 是否結束統計 */
if (LpMessageStatistic->StatCounter>0)
{
LpMessageStatistic->StatCounter--;
if (LpMessageStatistic->StatCounter==0)
{
return END;
}
}
/* 開始下一次統計 */
i=0;
/* 寫入 */
s_CBSEStatisticResult.s_StattypeCount[i].cStatisticType=WRITE_STATISTIC;
s_CBSEStatisticResult.s_StattypeCount[i].iCount=
s_CBSECount.s_ReqBSCCnt[Tid].iCBCProxyWriteReqCnt ;
i++;
/* 替換 */
s_CBSEStatisticResult.s_StattypeCount[i].cStatisticType=REPLACE_STATISTIC;
s_CBSEStatisticResult.s_StattypeCount[i].iCount=
s_CBSECount.s_ReqBSCCnt[Tid].iCBCProxyReplaceReqCnt ;
i++;
/* 刪除 */
s_CBSEStatisticResult.s_StattypeCount[i].cStatisticType=KILL_STATISTIC;
s_CBSEStatisticResult.s_StattypeCount[i].iCount=
s_CBSECount.s_ReqBSCCnt[Tid].iCBCProxyKillReqCnt;
i++;
/* 消息狀態查詢查詢 */
s_CBSEStatisticResult.s_StattypeCount[i].cStatisticType=QUERY_STATISTIC;
s_CBSEStatisticResult.s_StattypeCount[i].iCount=
s_CBSECount.s_ReqBSCCnt[Tid].iCBCProxyMsgQueryCnt;
i++;
/* 小區信道負荷查詢 */
s_CBSEStatisticResult.s_StattypeCount[i].cStatisticType=CBCH_STATISTIC;
s_CBSEStatisticResult.s_StattypeCount[i].iCount=
s_CBSECount.s_ReqBSCCnt[Tid].iCBCProxyCBCHReqCnt;
i++;
/* 小區重啟 */
s_CBSEStatisticResult.s_StattypeCount[i].cStatisticType=RESET_STATISTIC;
s_CBSEStatisticResult.s_StattypeCount[i].iCount=
s_CBSECount.s_ReqBSCCnt[Tid].iCBCProxyResetCnt;
i++;
s_CBSEStatisticResult.cNumber=i;
memcpy(&ProcessData[s_Pid.iProcessId][sizeof(MESSAGE_STATISTIC_t)],&s_CBSEStatisticResult,s_CBSEStatisticResult.cNumber*sizeof(STATTYPE_COUNT_t)+1);
/* 創建統計定時器 */
iReturnValue=create_timer(LpMessageStatistic->StatTimeLength*1000,
STATISTIC_TIMER,(char *)&s_Pid,NULL);
/* 創建定時器失敗 */
if (iReturnValue<0)
{
printf("Create timer Error!\n");
/* 結束統計進程 */
return END;
}
memcpy(&ProcessData[s_Pid.iProcessId][LPCB_DATA_SIZE-sizeof(int)],&iReturnValue,sizeof(int));
}
break;
case CELL_CBSE_CNT: /* 小區服務元素的統計,包括成功和失敗 */
{
/* 取出小區在系統中的位置,在進程尾部 */
memcpy(&i,&ProcessData[s_Pid.iProcessId][LPCB_DATA_SIZE-16],4);
memcpy(&j,&ProcessData[s_Pid.iProcessId][LPCB_DATA_SIZE-12],4);
memcpy(&k,&ProcessData[s_Pid.iProcessId][LPCB_DATA_SIZE-8],4);
/* 如果小區被修改,被刪除,或位置發生變化 */
if(memcmp(&LpMessageStatistic->cCellId[0],
&s_BSCCellInfo[i].s_BTSCellInfo[j].s_CellId[k].cCellId[0],4)!=0)
{
IfCellExist=0;
/* 查找該小區 */
for(i=0;i<MAX_BSC_CONNECT;i++)
{
if (s_BSCCellInfo[i].bFlag==1)
{
for(j=0;j<s_BSCCellInfo[i].cNumberOfBTS;j++)
{
for(k=0;k<s_BSCCellInfo[i].s_BTSCellInfo[j].cNumberOfCell;k++)
{
if(memcmp(&LpMessageStatistic->cCellId[0],
&s_BSCCellInfo[i].s_BTSCellInfo[j].s_CellId[k].cCellId[0],4)==0)
{
/* 記下小區在系統中的位置,記在進程尾部 */
memcpy(&ProcessData[s_Pid.iProcessId][LPCB_DATA_SIZE-16],&i,4);
memcpy(&ProcessData[s_Pid.iProcessId][LPCB_DATA_SIZE-12],&j,4);
memcpy(&ProcessData[s_Pid.iProcessId][LPCB_DATA_SIZE-8],&k,4);
IfCellExist=EXIST;
/* 跳出循環 */
goto L_out;
}
}
}
}
}
L_out:
/* 找不到該小區 */
if(IfCellExist==0)
{
return END;
}
}
memset(&s_CellCBSEStatisticResult,0,sizeof(CELL_CBSE_STATISTIC_RESULT_t));
// memcpy(&s_CellCBSEStatisticResult,&ProcessData[s_Pid.iProcessId][sizeof(MESSAGE_STATISTIC_t)],s_CellCBSEStatisticResult.cNumber*sizeof(CELL_STATTYPE_COUNT_t)+1);
memcpy(&s_CellCBSEStatisticResult,&ProcessData[s_Pid.iProcessId][sizeof(MESSAGE_STATISTIC_t)],ProcessData[s_Pid.iProcessId][sizeof(MESSAGE_STATISTIC_t)]*sizeof(CELL_STATTYPE_COUNT_t)+1);
s_CellCBSEStatisticResult.cNumber=0;
/* 寫入 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].cStatisticType=WRITE_STATISTIC;
/* 發送總數 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iSendCount=
s_BSCCellInfo[i].s_BTSCellInfo[j].s_CellId[k].s_WriteCount.iSendCount-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iSendCount;
/* 成功總數 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iSuccessCount=
s_BSCCellInfo[i].s_BTSCellInfo[j].s_CellId[k].s_WriteCount.iSuccessCount-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iSuccessCount;
/* 基站系統負荷超載 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].ibsscapErr=
s_BSCCellInfo[i].s_BTSCellInfo[j].s_CellId[k].s_WriteCount.ibsscapErr-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].ibsscapErr;
/* 小區內存溢出 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].icellmemErr=
s_BSCCellInfo[i].s_BTSCellInfo[j].s_CellId[k].s_WriteCount.icellmemErr-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].icellmemErr;
/* 基站系統內存溢出 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].ibssmemErr=
s_BSCCellInfo[i].s_BTSCellInfo[j].s_CellId[k].s_WriteCount.ibssmemErr-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].ibssmemErr;
/* 其他錯誤 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iotherErr=
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iSendCount-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iSuccessCount-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].ibsscapErr-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].icellmemErr-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].ibssmemErr;
s_CellCBSEStatisticResult.cNumber++;
/* 替換 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].cStatisticType=REPLACE_STATISTIC;
/* 發送總數 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iSendCount=
s_BSCCellInfo[i].s_BTSCellInfo[j].s_CellId[k].s_ReplaceCount.iSendCount-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iSendCount;
/* 成功總數 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iSuccessCount=
s_BSCCellInfo[i].s_BTSCellInfo[j].s_CellId[k].s_ReplaceCount.iSuccessCount-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iSuccessCount;
/* 基站系統負荷超載 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].ibsscapErr=
s_BSCCellInfo[i].s_BTSCellInfo[j].s_CellId[k].s_ReplaceCount.ibsscapErr-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].ibsscapErr;
/* 小區內存溢出 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].icellmemErr=
s_BSCCellInfo[i].s_BTSCellInfo[j].s_CellId[k].s_ReplaceCount.icellmemErr-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].icellmemErr;
/* 基站系統內存溢出 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].ibssmemErr=
s_BSCCellInfo[i].s_BTSCellInfo[j].s_CellId[k].s_ReplaceCount.ibssmemErr-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].ibssmemErr;
/* 其他錯誤 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iotherErr=
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iSendCount-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iSuccessCount-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].ibsscapErr-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].icellmemErr-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].ibssmemErr;
s_CellCBSEStatisticResult.cNumber++;
/* 刪除 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].cStatisticType=KILL_STATISTIC;
/* 發送總數 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iSendCount=
s_BSCCellInfo[i].s_BTSCellInfo[j].s_CellId[k].s_KillCount.iSendCount-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iSendCount;
/* 成功總數 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iSuccessCount=
s_BSCCellInfo[i].s_BTSCellInfo[j].s_CellId[k].s_KillCount.iSuccessCount-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iSuccessCount;
/* 基站系統負荷超載 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].ibsscapErr=
s_BSCCellInfo[i].s_BTSCellInfo[j].s_CellId[k].s_KillCount.ibsscapErr-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].ibsscapErr;
/* 小區內存溢出 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].icellmemErr=
s_BSCCellInfo[i].s_BTSCellInfo[j].s_CellId[k].s_KillCount.icellmemErr-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].icellmemErr;
/* 基站系統內存溢出 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].ibssmemErr=
s_BSCCellInfo[i].s_BTSCellInfo[j].s_CellId[k].s_KillCount.ibssmemErr-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].ibssmemErr;
/* 其他錯誤 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iotherErr=
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iSendCount-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iSuccessCount-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].ibsscapErr-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].icellmemErr-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].ibssmemErr;
s_CellCBSEStatisticResult.cNumber++;
/* 消息狀態查詢查詢 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].cStatisticType=QUERY_STATISTIC;
/* 發送總數 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iSendCount=
s_BSCCellInfo[i].s_BTSCellInfo[j].s_CellId[k].s_QueryCount.iSendCount-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iSendCount;
/* 成功總數 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iSuccessCount=
s_BSCCellInfo[i].s_BTSCellInfo[j].s_CellId[k].s_QueryCount.iSuccessCount-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iSuccessCount;
/* 基站系統負荷超載 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].ibsscapErr=
s_BSCCellInfo[i].s_BTSCellInfo[j].s_CellId[k].s_QueryCount.ibsscapErr-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].ibsscapErr;
/* 小區內存溢出 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].icellmemErr=
s_BSCCellInfo[i].s_BTSCellInfo[j].s_CellId[k].s_QueryCount.icellmemErr-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].icellmemErr;
/* 基站系統內存溢出 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].ibssmemErr=
s_BSCCellInfo[i].s_BTSCellInfo[j].s_CellId[k].s_QueryCount.ibssmemErr-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].ibssmemErr;
/* 其他錯誤 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iotherErr=
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iSendCount-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iSuccessCount-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].ibsscapErr-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].icellmemErr-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].ibssmemErr;
s_CellCBSEStatisticResult.cNumber++;
/* 小區信道負荷查詢 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].cStatisticType=CBCH_STATISTIC;
/* 發送總數 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iSendCount=
s_BSCCellInfo[i].s_BTSCellInfo[j].s_CellId[k].s_CBCHCount.iSendCount-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iSendCount;
/* 成功總數 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iSuccessCount=
s_BSCCellInfo[i].s_BTSCellInfo[j].s_CellId[k].s_CBCHCount.iSuccessCount-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iSuccessCount;
/* 基站系統負荷超載 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].ibsscapErr=
s_BSCCellInfo[i].s_BTSCellInfo[j].s_CellId[k].s_CBCHCount.ibsscapErr-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].ibsscapErr;
/* 小區內存溢出 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].icellmemErr=
s_BSCCellInfo[i].s_BTSCellInfo[j].s_CellId[k].s_CBCHCount.icellmemErr-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].icellmemErr;
/* 基站系統內存溢出 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].ibssmemErr=
s_BSCCellInfo[i].s_BTSCellInfo[j].s_CellId[k].s_CBCHCount.ibssmemErr-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].ibssmemErr;
/* 其他錯誤 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iotherErr=
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iSendCount-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].iSuccessCount-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].ibsscapErr-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].icellmemErr-
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].ibssmemErr;
s_CellCBSEStatisticResult.cNumber++;
/* 返回一次統計結果 */
memset(&s_CBEMessage,0,sizeof(CBEMESSAGE_t));
s_CBEMessage.s_MessageHead.iMessageAreaId=C;
memcpy(&s_CBEMessage.s_MessageHead.s_ReceiverPid,&LpMessageStatistic->s_StatMessageHead.s_SenderPid,sizeof(PID_t));
memcpy(&s_CBEMessage.s_MessageHead.s_SenderPid,&s_Pid,sizeof(PID_t));
s_CBEMessage.s_MessageHead.iMessageType=LpMessageStatistic->s_StatMessageHead.iMessageType;
s_CBEMessage.s_MessageHead.iMessageLength=s_CellCBSEStatisticResult.cNumber*sizeof(CELL_STATTYPE_COUNT_t)+1+ilen;
s_CBEMessage.iLen=s_CBEMessage.s_MessageHead.iMessageLength+sizeof(MESSAGE_HEAD_t);
/* 將統計請求也返回 */
if (LpMessageStatistic->StatCounter==0)
{
LpMessageStatistic->StatCounter=255;
memcpy(&s_CBEMessage.cMessage[0],&LpMessageStatistic->StatSerialId[0],ilen);
LpMessageStatistic->StatCounter=0;
}
else
{
memcpy(&s_CBEMessage.cMessage[0],&LpMessageStatistic->StatSerialId[0],ilen);
}
memcpy(&s_CBEMessage.cMessage[ilen],&s_CellCBSEStatisticResult,s_CBEMessage.s_MessageHead.iMessageLength-ilen);
AppendCBESendMessage(&s_CBEMessage);
/* 是否結束統計 */
if (LpMessageStatistic->StatCounter>0)
{
LpMessageStatistic->StatCounter--;
if (LpMessageStatistic->StatCounter==0)
{
return END;
}
}
/* 開始下一次統計 */
memset(&s_CellCBSEStatisticResult,0,sizeof(CELL_CBSE_STATISTIC_RESULT_t));
s_CellCBSEStatisticResult.cNumber=0;
/* 寫入 */
s_CellCBSEStatisticResult.s_StattypeCount[s_CellCBSEStatisticResult.cNumber].cStatisticType=WRITE_STATISTIC;
/* 發送總數 */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -