diff --git a/src/EthernetOverride/TCP.cpp b/src/EthernetOverride/TCP.cpp index bd34c61..5fc221e 100644 --- a/src/EthernetOverride/TCP.cpp +++ b/src/EthernetOverride/TCP.cpp @@ -109,7 +109,45 @@ void EthernetMaketClient::close(){ void EthernetMaketClient::tick_(){ if(_sock != MAX_SOCK_NUM && connectStatus!=CONNECT_CONNECTED && connectStatus!=CONNECT_STOP_WAITING&&connectStatus!=CONNECT_CONNECTING){ - Serial.print("tick_() sock = "); Serial.println(_sock); + Serial.print("tick_() sock = "); Serial.print(_sock); + + uint8_t s = w5500.readSnSR(_sock); + String state = ""; + switch (s) { + case 0x00: state = "CLOSED"; connectStatus = CONNECT_STOP_WAITING; break; + case 0x13: state = "INIT"; break; + case 0x14: state = "LISTEN"; break; + case 0x15: state = "SYNSENT"; break; + case 0x16: state = "SYNRECV"; break; + case 0x17: state = "ESTABLISHED"; connectStatus = CONNECT_CONNECTED; break; + case 0x18: state = "FIN_WAIT"; break; + case 0x1A: state = "CLOSING"; break; + case 0x1B: state = "TIME_WAIT"; break; + case 0x1C: state = "CLOSE_WAIT"; connectStatus = CONNECT_STOP_START; break; + case 0x1D: state = "LAST_ACK"; break; + case 0x22: state = "UDP"; break; + case 0x32: state = "IPRAW"; break; + case 0x42: state = "MACRAW"; break; + case 0x5F: state = "PPPOE"; break; + default: state = "UNKNOWN"; break; + } + String connectStatusStr = ""; + switch (connectStatus) { + case CONNECT_FAIL: connectStatusStr = "CONNECT_FAIL"; break; + case CONNECT_SUCCESS: connectStatusStr = "CONNECT_SUCCESS"; break; + case CONNECT_CONNECTING: connectStatusStr = "CONNECT_CONNECTING"; break; + case CONNECT_START: connectStatusStr = "CONNECT_START"; break; + case CONNECT_IDLE: connectStatusStr = "CONNECT_IDLE"; break; + case CONNECT_CONNECTED: connectStatusStr = "CONNECT_CONNECTED"; break; + case CONNECT_STOP_START: connectStatusStr = "CONNECT_STOP_START"; break; + case CONNECT_STOP_WAITING: connectStatusStr = "CONNECT_STOP_WAITING"; break; + default: connectStatusStr = "UNKNOWN"; break; + } + Serial.print(" state = "); + Serial.print(state); + Serial.print(" connectStatus = "); + Serial.print(connectStatusStr); + Serial.println(); } //todo [] Пересмотреть стейт машину перевести на нативные статусы