update espMqttClient
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
"type": "git",
|
||||
"url": "https://github.com/bertmelis/espMqttClient.git"
|
||||
},
|
||||
"version": "1.4.1",
|
||||
"version": "1.4.2",
|
||||
"frameworks": "arduino",
|
||||
"platforms": ["espressif8266", "espressif32"],
|
||||
"headers": ["espMqttClient.h", "espMqttClientAsync.h"],
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
name=espMqttClient
|
||||
version=1.4.1
|
||||
version=1.4.2
|
||||
author=Bert Melis
|
||||
maintainer=Bert Melis
|
||||
sentence=an MQTT client for the Arduino framework for ESP8266 / ESP32
|
||||
|
||||
@@ -222,9 +222,14 @@ void MqttClient::loop() {
|
||||
break;
|
||||
case State::connectingMqtt:
|
||||
#if EMC_WAIT_FOR_CONNACK
|
||||
_sendPacket();
|
||||
_checkIncoming();
|
||||
_checkPing();
|
||||
if (_transport->connected()) {
|
||||
_sendPacket();
|
||||
_checkIncoming();
|
||||
_checkPing();
|
||||
} else {
|
||||
_state = State::disconnectingTcp1;
|
||||
_disconnectReason = DisconnectReason::TCP_DISCONNECTED;
|
||||
}
|
||||
break;
|
||||
#else
|
||||
// receipt of CONNACK packet will set state to CONNECTED
|
||||
@@ -266,10 +271,11 @@ void MqttClient::loop() {
|
||||
case State::disconnectingTcp1:
|
||||
_transport->stop();
|
||||
_state = State::disconnectingTcp2;
|
||||
break;
|
||||
break; // keep break to accomodate async clients
|
||||
case State::disconnectingTcp2:
|
||||
if (_transport->disconnected()) {
|
||||
_clearQueue(0);
|
||||
_bytesSent = 0;
|
||||
_state = State::disconnected;
|
||||
if (_onDisconnectCallback) _onDisconnectCallback(_disconnectReason);
|
||||
}
|
||||
|
||||
@@ -149,7 +149,6 @@ class MqttClient {
|
||||
espMqttClientTypes::Error error(espMqttClientTypes::Error::SUCCESS);
|
||||
espMqttClientInternals::Outbox<OutgoingPacket>::Iterator it = _outbox.emplace(0, error, std::forward<Args>(args) ...);
|
||||
if (it && error == espMqttClientTypes::Error::SUCCESS) return true;
|
||||
_outbox.remove(it);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -158,7 +157,6 @@ class MqttClient {
|
||||
espMqttClientTypes::Error error(espMqttClientTypes::Error::SUCCESS);
|
||||
espMqttClientInternals::Outbox<OutgoingPacket>::Iterator it = _outbox.emplaceFront(0, error, std::forward<Args>(args) ...);
|
||||
if (it && error == espMqttClientTypes::Error::SUCCESS) return true;
|
||||
_outbox.remove(it);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -121,6 +121,7 @@ class Outbox {
|
||||
|
||||
// remove node at iterator, iterator points to next
|
||||
void remove(Iterator& it) { // NOLINT(runtime/references)
|
||||
if (!it) return;
|
||||
Node* node = it._node;
|
||||
Node* prev = it._prev;
|
||||
++it;
|
||||
|
||||
@@ -31,10 +31,6 @@ size_t ClientAsync::write(const uint8_t* buf, size_t size) {
|
||||
return client.write(reinterpret_cast<const char*>(buf), size);
|
||||
}
|
||||
|
||||
int ClientAsync::available() {
|
||||
return static_cast<int>(availableData); // availableData will never be large enough to cause an overflow
|
||||
}
|
||||
|
||||
int ClientAsync::read(uint8_t* buf, size_t size) {
|
||||
size_t willRead = std::min(size, availableData);
|
||||
memcpy(buf, bufData, std::min(size, availableData));
|
||||
|
||||
@@ -29,7 +29,6 @@ class ClientAsync : public Transport {
|
||||
bool connect(IPAddress ip, uint16_t port) override;
|
||||
bool connect(const char* host, uint16_t port) override;
|
||||
size_t write(const uint8_t* buf, size_t size) override;
|
||||
int available() override;
|
||||
int read(uint8_t* buf, size_t size) override;
|
||||
void stop() override;
|
||||
bool connected() override;
|
||||
|
||||
@@ -62,12 +62,6 @@ size_t ClientPosix::write(const uint8_t* buf, size_t size) {
|
||||
return ::send(_sockfd, buf, size, 0);
|
||||
}
|
||||
|
||||
int ClientPosix::available() {
|
||||
uint8_t buf[EMC_POSIX_PEEK_SIZE];
|
||||
int ret = ::recv(_sockfd, &buf, EMC_POSIX_PEEK_SIZE, MSG_DONTWAIT|MSG_PEEK);
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ClientPosix::read(uint8_t* buf, size_t size) {
|
||||
int ret = ::recv(_sockfd, buf, size, MSG_DONTWAIT);
|
||||
/*
|
||||
|
||||
@@ -36,7 +36,6 @@ class ClientPosix : public Transport {
|
||||
bool connect(IPAddress ip, uint16_t port) override;
|
||||
bool connect(const char* host, uint16_t port) override;
|
||||
size_t write(const uint8_t* buf, size_t size) override;
|
||||
int available() override;
|
||||
int read(uint8_t* buf, size_t size) override;
|
||||
void stop() override;
|
||||
bool connected() override;
|
||||
|
||||
@@ -50,10 +50,6 @@ size_t ClientSecureSync::write(const uint8_t* buf, size_t size) {
|
||||
return client.write(buf, size);
|
||||
}
|
||||
|
||||
int ClientSecureSync::available() {
|
||||
return client.available();
|
||||
}
|
||||
|
||||
int ClientSecureSync::read(uint8_t* buf, size_t size) {
|
||||
return client.read(buf, size);
|
||||
}
|
||||
|
||||
@@ -22,7 +22,6 @@ class ClientSecureSync : public Transport {
|
||||
bool connect(IPAddress ip, uint16_t port) override;
|
||||
bool connect(const char* host, uint16_t port) override;
|
||||
size_t write(const uint8_t* buf, size_t size) override;
|
||||
int available() override;
|
||||
int read(uint8_t* buf, size_t size) override;
|
||||
void stop() override;
|
||||
bool connected() override;
|
||||
|
||||
@@ -50,10 +50,6 @@ size_t ClientSync::write(const uint8_t* buf, size_t size) {
|
||||
return client.write(buf, size);
|
||||
}
|
||||
|
||||
int ClientSync::available() {
|
||||
return client.available();
|
||||
}
|
||||
|
||||
int ClientSync::read(uint8_t* buf, size_t size) {
|
||||
return client.read(buf, size);
|
||||
}
|
||||
|
||||
@@ -22,7 +22,6 @@ class ClientSync : public Transport {
|
||||
bool connect(IPAddress ip, uint16_t port) override;
|
||||
bool connect(const char* host, uint16_t port) override;
|
||||
size_t write(const uint8_t* buf, size_t size) override;
|
||||
int available() override;
|
||||
int read(uint8_t* buf, size_t size) override;
|
||||
void stop() override;
|
||||
bool connected() override;
|
||||
|
||||
@@ -19,7 +19,6 @@ class Transport {
|
||||
virtual bool connect(IPAddress ip, uint16_t port) = 0;
|
||||
virtual bool connect(const char* host, uint16_t port) = 0;
|
||||
virtual size_t write(const uint8_t* buf, size_t size) = 0;
|
||||
virtual int available() = 0;
|
||||
virtual int read(uint8_t* buf, size_t size) = 0;
|
||||
virtual void stop() = 0;
|
||||
virtual bool connected() = 0;
|
||||
|
||||
Reference in New Issue
Block a user