mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-07 00:09:51 +03:00
comments
This commit is contained in:
@@ -23,7 +23,6 @@ class MsgPackDeserializer {
|
||||
_stringStorage(stringStorage),
|
||||
_error(DeserializationError::Ok) {}
|
||||
|
||||
// TODO: add support for filter
|
||||
DeserializationError parse(VariantData &variant, AllowAllFilter,
|
||||
NestingLimit nestingLimit) {
|
||||
parseVariant(variant, nestingLimit);
|
||||
|
||||
@@ -114,7 +114,6 @@ size_t AsyncTCPbuffer::write(const uint8_t *data, size_t len) {
|
||||
|
||||
// add new buffer since we have more data
|
||||
if (_TXbufferWrite->full() && bytesLeft > 0) {
|
||||
|
||||
// to less ram!!!
|
||||
if (ESP.getFreeHeap() < 4096) {
|
||||
DEBUG_ASYNC_TCP("[A-TCP] run out of Heap can not send all Data!\n");
|
||||
@@ -138,7 +137,6 @@ size_t AsyncTCPbuffer::write(const uint8_t *data, size_t len) {
|
||||
}
|
||||
|
||||
return len;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -241,7 +239,6 @@ bool AsyncTCPbuffer::connected() {
|
||||
}
|
||||
|
||||
void AsyncTCPbuffer::stop() {
|
||||
|
||||
if (!_client) {
|
||||
return;
|
||||
}
|
||||
@@ -279,7 +276,8 @@ void AsyncTCPbuffer::_attachCallbacks() {
|
||||
}
|
||||
DEBUG_ASYNC_TCP("[A-TCP] attachCallbacks\n");
|
||||
|
||||
_client->onPoll([](void *obj, AsyncClient* c) {
|
||||
_client->onPoll(
|
||||
[](void * obj, AsyncClient * c) {
|
||||
(void)c;
|
||||
AsyncTCPbuffer * b = ((AsyncTCPbuffer *)(obj));
|
||||
if ((b->_TXbufferRead != NULL) && !b->_TXbufferRead->empty()) {
|
||||
@@ -288,17 +286,21 @@ void AsyncTCPbuffer::_attachCallbacks() {
|
||||
// if(!b->_RXbuffer->empty()) {
|
||||
// b->_handleRxBuffer(NULL, 0);
|
||||
// }
|
||||
}, this);
|
||||
},
|
||||
this);
|
||||
|
||||
_client->onAck([](void *obj, AsyncClient* c, size_t len, uint32_t time) {
|
||||
_client->onAck(
|
||||
[](void * obj, AsyncClient * c, size_t len, uint32_t time) {
|
||||
(void)c;
|
||||
(void)len;
|
||||
(void)time;
|
||||
DEBUG_ASYNC_TCP("[A-TCP] onAck\n");
|
||||
((AsyncTCPbuffer *)(obj))->_sendBuffer();
|
||||
}, this);
|
||||
},
|
||||
this);
|
||||
|
||||
_client->onDisconnect([](void *obj, AsyncClient* c) {
|
||||
_client->onDisconnect(
|
||||
[](void * obj, AsyncClient * c) {
|
||||
DEBUG_ASYNC_TCP("[A-TCP] onDisconnect\n");
|
||||
AsyncTCPbuffer * b = ((AsyncTCPbuffer *)(obj));
|
||||
b->_client = NULL;
|
||||
@@ -310,20 +312,25 @@ void AsyncTCPbuffer::_attachCallbacks() {
|
||||
if (del) {
|
||||
delete b;
|
||||
}
|
||||
}, this);
|
||||
},
|
||||
this);
|
||||
|
||||
_client->onData([](void *obj, AsyncClient* c, void *buf, size_t len) {
|
||||
_client->onData(
|
||||
[](void * obj, AsyncClient * c, void * buf, size_t len) {
|
||||
(void)c;
|
||||
AsyncTCPbuffer * b = ((AsyncTCPbuffer *)(obj));
|
||||
b->_rxData((uint8_t *)buf, len);
|
||||
}, this);
|
||||
},
|
||||
this);
|
||||
|
||||
_client->onTimeout([](void *obj, AsyncClient* c, uint32_t time){
|
||||
_client->onTimeout(
|
||||
[](void * obj, AsyncClient * c, uint32_t time) {
|
||||
(void)obj;
|
||||
(void)time;
|
||||
DEBUG_ASYNC_TCP("[A-TCP] onTimeout\n");
|
||||
c->close();
|
||||
}, this);
|
||||
},
|
||||
this);
|
||||
|
||||
DEBUG_ASYNC_TCP("[A-TCP] attachCallbacks Done.\n");
|
||||
}
|
||||
@@ -339,7 +346,6 @@ void AsyncTCPbuffer::_sendBuffer() {
|
||||
}
|
||||
|
||||
while (connected() && (_client->space() > 0) && (_TXbufferRead->available() > 0) && _client->canSend()) {
|
||||
|
||||
available = _TXbufferRead->available();
|
||||
|
||||
if (available > _client->space()) {
|
||||
@@ -377,7 +383,6 @@ void AsyncTCPbuffer::_sendBuffer() {
|
||||
|
||||
delete out;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -414,7 +419,6 @@ void AsyncTCPbuffer::_rxData(uint8_t *buf, size_t len) {
|
||||
}
|
||||
|
||||
if (len > 0) {
|
||||
|
||||
if (_RXbuffer->room() < len) {
|
||||
// to less space
|
||||
DEBUG_ASYNC_TCP("[A-TCP] _rxData buffer full try resize\n");
|
||||
@@ -440,7 +444,6 @@ void AsyncTCPbuffer::_rxData(uint8_t *buf, size_t len) {
|
||||
if (_RXbuffer->empty() && _RXbuffer->room() != 100) {
|
||||
_RXbuffer->resize(100);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -466,7 +469,7 @@ size_t AsyncTCPbuffer::_handleRxBuffer(uint8_t *buf, size_t len) {
|
||||
if (BufferAvailable > 0) {
|
||||
uint8_t * b = new (std::nothrow) uint8_t[BufferAvailable];
|
||||
if (b == NULL) {
|
||||
panic(); //TODO: What action should this be ?
|
||||
panic();
|
||||
}
|
||||
_RXbuffer->peek((char *)b, BufferAvailable);
|
||||
r = _cbRX(b, BufferAvailable);
|
||||
@@ -512,8 +515,7 @@ size_t AsyncTCPbuffer::_handleRxBuffer(uint8_t *buf, size_t len) {
|
||||
return newReadCount;
|
||||
|
||||
} else if (_RXmode == ATB_RX_MODE_TERMINATOR) {
|
||||
// TODO implement read terminator non string
|
||||
|
||||
//
|
||||
} else if (_RXmode == ATB_RX_MODE_TERMINATOR_STRING) {
|
||||
if (_rxReadStringPtr == NULL || _cbDone == NULL) {
|
||||
return 0;
|
||||
|
||||
@@ -38,18 +38,10 @@
|
||||
|
||||
|
||||
|
||||
typedef enum {
|
||||
ATB_RX_MODE_NONE,
|
||||
ATB_RX_MODE_FREE,
|
||||
ATB_RX_MODE_READ_BYTES,
|
||||
ATB_RX_MODE_TERMINATOR,
|
||||
ATB_RX_MODE_TERMINATOR_STRING
|
||||
} atbRxMode_t;
|
||||
typedef enum { ATB_RX_MODE_NONE, ATB_RX_MODE_FREE, ATB_RX_MODE_READ_BYTES, ATB_RX_MODE_TERMINATOR, ATB_RX_MODE_TERMINATOR_STRING } atbRxMode_t;
|
||||
|
||||
class AsyncTCPbuffer : public Print {
|
||||
|
||||
public:
|
||||
|
||||
typedef std::function<size_t(uint8_t * payload, size_t length)> AsyncTCPbufferDataCb;
|
||||
typedef std::function<void(bool ok, void * ret)> AsyncTCPbufferDoneCb;
|
||||
typedef std::function<bool(AsyncTCPbuffer * obj)> AsyncTCPbufferDisconnectCb;
|
||||
@@ -69,14 +61,12 @@ class AsyncTCPbuffer: public Print {
|
||||
|
||||
void readStringUntil(char terminator, String * str, AsyncTCPbufferDoneCb done);
|
||||
|
||||
// TODO implement read terminator non string
|
||||
//void readBytesUntil(char terminator, char *buffer, size_t length, AsyncTCPbufferDoneCb done);
|
||||
//void readBytesUntil(char terminator, uint8_t *buffer, size_t length, AsyncTCPbufferDoneCb done);
|
||||
|
||||
void readBytes(char * buffer, size_t length, AsyncTCPbufferDoneCb done);
|
||||
void readBytes(uint8_t * buffer, size_t length, AsyncTCPbufferDoneCb done);
|
||||
|
||||
// TODO implement
|
||||
// void setTimeout(size_t timeout);
|
||||
|
||||
void onData(AsyncTCPbufferDataCb cb);
|
||||
@@ -112,7 +102,6 @@ class AsyncTCPbuffer: public Print {
|
||||
void _on_close();
|
||||
void _rxData(uint8_t * buf, size_t len);
|
||||
size_t _handleRxBuffer(uint8_t * buf, size_t len);
|
||||
|
||||
};
|
||||
|
||||
#endif /* ESPASYNCTCPBUFFER_H_ */
|
||||
|
||||
Reference in New Issue
Block a user