?? main.c
字號:
}
if (guwUartRxLen > 0) { // 根據guwUartRxLen判斷是否轉發RS232數據
MEMCPY(guwUartRxLen, guwUartRxBuf, cpTcpData);
guwEthLen = guwUartRxLen;
guwUartRxLen = 0;
gptConn->PollTime = 0; // 清除空閑時間記數
}
gptConn->PollTime = 0; // 清除空閑時間記數
return;
}
if (msip_Connected()){
gptConn->PollTime = 0; // 清除空閑時間記數
guwEthLen = 0; // 釋放TCP數據區
return;
}
// if (msip_Aborted() || msip_Closed()){ // 如果異常關閉,那就關閉當前連接
// Nothing to do!
// return;
// }
return;
#endif
#if cTCP_ADAC == 1 // ADAC 工作時:由于雙向通訊,所以Listen和Active處理是一樣的!
link_adac_listen:
if (msip_Acked()){ // 如果有A/D數據要發送,就轉發TCP數據包
/*
if (guwMicRxLen > 0) { // 根據guwMicRxLen判斷是否轉發Audio數據
SP_CLOSE_FIQ(); // 關閉FIQ中斷,同時也禁止了ADAC
MEMCPY(guwMicRxLen, guwMicRxBuf, cpTcpData);
guwEthLen = guwMicRxLen;
guwMicRxLen = 0; // A/D 轉換計數復位
SP_OPEN_FIQ(); // 開啟FIQ中斷,同時也開啟了ADAC
gptConn->PollTime = 0; // 清除空閑時間記數
} */
guwEthLen = 0;
return;
}
if (msip_NewData()){
/*
if (guwEthLen > 0){ // 收到Audio數據包
// 如果上次沒有轉換完,就等....
while(guwDAC1TxLen < guwDAC1TotalLen);
// 如果轉換完,就復制buffer
SP_CLOSE_FIQ(); // 關閉FIQ中斷,同時也禁止了ADAC
if (guwEthLen > cDAC1_MAXLEN){ // 攔截超長bytes部分
guwEthLen = cDAC1_MAXLEN;
}
MEMCPY(guwEthLen, cpTcpData, guwDAC1TxBuf); // 將TCP數據Audio復制給DAC1的buffer
guwDAC1TxLen = 0; // DAC1 轉換計數復位
guwDAC1TotalLen = guwEthLen; // DAC1 轉換buffer總長
SP_OPEN_FIQ(); // 開啟FIQ中斷,同時也開啟了ADAC
guwEthLen = 0;
}
if (guwMicRxLen > 0) { // 根據guwMicRxLen判斷是否轉發Audio數據
SP_CLOSE_FIQ(); // 關閉FIQ中斷,同時也禁止了ADAC
MEMCPY(guwMicRxLen, guwMicRxBuf, cpTcpData);
guwEthLen = guwMicRxLen;
guwMicRxLen = 0; // A/D 轉換計數復位
SP_OPEN_FIQ(); // 開啟FIQ中斷,同時也開啟了ADAC
} */
guwEthLen = 0;
gptConn->PollTime = 0; // 清除空閑時間記數
return;
}
if (msip_Connected()){
gptConn->PollTime = 0; // 清除空閑時間記數
guwEthLen = 0; // 釋放TCP數據區
/*
guwMicRxLen = 0; // A/D 轉換計數復位
guwDAC1TotalLen = 0; // DAC1 轉換計數復位
SP_OPEN_FIQ(); // 開啟FIQ中斷,同時也開啟了ADAC
*/
return;
}
if (msip_Poll()){
if (gptConn->PollTime++ > 3*cTCP_MAX_POLL){ // 太長時間空閑(900秒),終止連接!
msip_Close();
//SP_CLOSE_FIQ(); // 關閉FIQ中斷,同時也禁止了ADAC
}
guwEthLen = 0;
return;
}
if (msip_Aborted() || msip_Closed()){ // 如果異常關閉,那就關閉當前連接
//SP_CLOSE_FIQ(); // 關閉FIQ中斷,同時也禁止了ADAC
return;
}
link_adac_active:
if (msip_Acked()){ // 如果有A/D數據要發送,就轉發TCP數據包
/*
if (guwMicRxLen > 0) { // 根據guwMicRxLen判斷是否轉發Audio數據
SP_CLOSE_FIQ(); // 關閉FIQ中斷,同時也禁止了ADAC
MEMCPY(guwMicRxLen, guwMicRxBuf, cpTcpData);
guwEthLen = guwMicRxLen;
guwMicRxLen = 0; // A/D 轉換計數復位
SP_OPEN_FIQ(); // 開啟FIQ中斷,同時也開啟了ADAC
gptConn->PollTime = 0; // 清除空閑時間記數
} */
guwEthLen = 0;
return;
}
if (msip_NewData()){
/*
if (guwEthLen > 0){ // 收到Audio數據包
// 如果上次沒有轉換完,就等....
while(guwDAC1TxLen < guwDAC1TotalLen);
// 如果轉換完,就復制buffer
SP_CLOSE_FIQ(); // 關閉FIQ中斷,同時也禁止了ADAC
if (guwEthLen > cDAC1_MAXLEN){ // 攔截超長bytes部分
guwEthLen = cDAC1_MAXLEN;
}
MEMCPY(guwEthLen, cpTcpData, guwDAC1TxBuf); // 將TCP數據Audio復制給DAC1的buffer
guwDAC1TxLen = 0; // DAC1 轉換計數復位
guwDAC1TotalLen = guwEthLen; // DAC1 轉換buffer總長
SP_OPEN_FIQ(); // 開啟FIQ中斷,同時也開啟了ADAC
guwEthLen = 0;
}
if (guwMicRxLen > 0) { // 根據guwMicRxLen判斷是否轉發Audio數據
SP_CLOSE_FIQ(); // 關閉FIQ中斷,同時也禁止了ADAC
MEMCPY(guwMicRxLen, guwMicRxBuf, cpTcpData);
guwEthLen = guwMicRxLen;
guwMicRxLen = 0; // A/D 轉換計數復位
SP_OPEN_FIQ(); // 開啟FIQ中斷,同時也開啟了ADAC
} */
guwEthLen = 0;
gptConn->PollTime = 0; // 清除空閑時間記數
return;
}
if (msip_Connected()){
gptConn->PollTime = 0; // 清除空閑時間記數
guwEthLen = 0; // 釋放TCP數據區
/*
guwMicRxLen = 0; // A/D 轉換計數復位
guwDAC1TotalLen = 0; // DAC1 轉換計數復位
SP_OPEN_FIQ(); // 開啟FIQ中斷,同時也開啟了ADAC
*/
return;
}
if (msip_Poll()){
if (gptConn->PollTime++ > 3*cTCP_MAX_POLL){ // 太長時間空閑(900秒),終止連接!
msip_Close();
//SP_CLOSE_FIQ(); // 關閉FIQ中斷,同時也禁止了ADAC
}
guwEthLen = 1460;
return;
}
if (msip_Aborted() || msip_Closed()){ // 如果異常關閉,那就關閉當前連接
//SP_CLOSE_FIQ(); // 關閉FIQ中斷,同時也禁止了ADAC
return;
}
return;
#endif
// 以下部分用于Ping功能失效時的網絡測試!TMD現在網絡病毒太多,許多ISP運營商都禁Ping了!
// 不管是否傳數據,都將在300秒后斷開.....
test_net:
if (msip_NewData()){
// Message: 收到!別惹我,煩著呢......
cpTcpData[0] = 0xcad5;
cpTcpData[1] = 0xb5bd;
cpTcpData[2] = 0xa3a1;
cpTcpData[3] = 0xb1f0;
cpTcpData[4] = 0xc8c7;
cpTcpData[5] = 0xced2;
cpTcpData[6] = 0xb7b3;
cpTcpData[7] = 0xb7b1;
cpTcpData[8] = 0xd7c5;
cpTcpData[9] = 0xc4d8;
cpTcpData[10] = 0x2e2e;
cpTcpData[11] = 0x2e2e;
cpTcpData[12] = 0x2e2e;
guwEthLen = 26;
return;
}
if (msip_Poll()){
if (gptConn->PollTime == 0){
// Message: Welcome to you!
cpTcpData[0] = 0x5765; // "We"+
cpTcpData[1] = 0x6c63; // "lc"+
cpTcpData[2] = 0x6f6d; // "om"+
cpTcpData[3] = 0x6520; // "e "+
cpTcpData[4] = 0x746f; // "to"+
cpTcpData[5] = 0x2079; // "yo"+
cpTcpData[6] = 0x6f75; // " u"+
cpTcpData[7] = 0x2120; // "! "
guwEthLen = 16;
}
if (gptConn->PollTime++ > cTCP_MAX_POLL){ // 太長時間空閑,終止連接!
msip_Close();
}
return;
}
if (msip_Connected()){
gptConn->PollTime = 0; // 清除空閑時間記數
return;
}
// if (msip_Aborted() || msip_Closed()){ // 如果異常關閉,那就關閉當前連接
// Nothing to do!
// return;
// }
return;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -