This commit is contained in:
2024-12-05 17:56:48 +03:00
parent 2fb1f546fa
commit daf17f1ac6
6 changed files with 101 additions and 11 deletions

View File

@ -13,6 +13,9 @@ EthernetMaketClient::EthernetMaketClient() {
EthernetMaketClient::EthernetMaketClient(uint8_t sock) {
_sock = sock;
}
EthernetMaketClient::EthernetMaketClient(EthernetClient &client) {
_sock = client.getSocketNumber();
}
void EthernetMaketClient::tick()
{
@ -116,6 +119,35 @@ void EthernetMaketClient::tick_(){
connectStatus = CONNECT_CONNECTING;
close();
Serial.println("CONNECT_CONNECTING...");
{
for (int i = 0; i < MAX_SOCK_NUM; i++) {
uint8_t s = w5500.readSnSR(i);
String state = "";
switch (s) {
case 0x00: state = "CLOSED"; 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"; break;
case 0x18: state = "FIN_WAIT"; break;
case 0x1A: state = "CLOSING"; break;
case 0x1B: state = "TIME_WAIT"; break;
case 0x1C: state = "CLOSE_WAIT"; 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;
}
Serial.print("SOCK <- ");
Serial.print(i);
Serial.print(" State: ");
Serial.println(state);
}
}
break;
case CONNECT_CONNECTING:
if (millis() - startConnectionTime >= connectionTimeout)
@ -230,8 +262,7 @@ bool EthernetMaketClient::dataWrite(){
if(dataSize) {
lastActivityTime = millis();
if(write(dataPtr, dataSize)){
dataPtr = nullptr;
dataSize = 0; // Очищаем размер данных
clearData();
ret = true;
}
lastActivityTime = millis();
@ -242,8 +273,16 @@ bool EthernetMaketClient::dataWrite(){
return ret;
}
void EthernetMaketClient::clearData(){
this->dataPtr = nullptr;
this->dataSize = 0;
}
bool EthernetMaketClient::isDataEmpty() const{
return this->dataPtr == nullptr;
}
void EthernetMaketClient::dataWrite(uint8_t* data, uint16_t dataSize, bool override) {
if (this->dataSize == 0 || override) {
if (this->dataPtr == nullptr || override) {
this->dataPtr = data;
this->dataSize = dataSize;
activityUpdate();