diff --git a/src/EthernetOverride/TCP.cpp b/src/EthernetOverride/TCP.cpp index 5fc221e..ed7bfed 100644 --- a/src/EthernetOverride/TCP.cpp +++ b/src/EthernetOverride/TCP.cpp @@ -109,7 +109,6 @@ 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.print(_sock); uint8_t s = w5500.readSnSR(_sock); String state = ""; @@ -119,7 +118,7 @@ void EthernetMaketClient::tick_(){ case 0x14: state = "LISTEN"; break; case 0x15: state = "SYNSENT"; break; case 0x16: state = "SYNRECV"; break; - case 0x17: state = "ESTABLISHED"; connectStatus = CONNECT_CONNECTED; break; + case 0x17: state = "ESTABLISHED"; connectStatus = CONNECT_CONNECTED; goto switchLabel; break; case 0x18: state = "FIN_WAIT"; break; case 0x1A: state = "CLOSING"; break; case 0x1B: state = "TIME_WAIT"; break; @@ -143,6 +142,7 @@ void EthernetMaketClient::tick_(){ case CONNECT_STOP_WAITING: connectStatusStr = "CONNECT_STOP_WAITING"; break; default: connectStatusStr = "UNKNOWN"; break; } + Serial.print("tick_() sock = "); Serial.print(_sock); Serial.print(" state = "); Serial.print(state); Serial.print(" connectStatus = "); @@ -151,6 +151,7 @@ void EthernetMaketClient::tick_(){ } //todo [] Пересмотреть стейт машину перевести на нативные статусы + switchLabel: switch (connectStatus) { case CONNECT_START: @@ -230,6 +231,7 @@ void EthernetMaketClient::tick_(){ { Serial.println("Connection closed due to inactivity"); connectStatus = CONNECT_STOP_START; + goto switchLabel; } break; diff --git a/todo b/todo index 25d65a3..1f8157b 100644 --- a/todo +++ b/todo @@ -1,3 +1,4 @@ -[] Проверить и отладить UDP -[] 8 статических клиентов для управления таймингами и сессией +8 статических клиентов для управления таймингами и сессией +параметры клиентской сессии: + \ No newline at end of file