Skip to content

Commit 79f512f

Browse files
committed
Added function to extend default size of tx_payload_buffer
1 parent e74cc1a commit 79f512f

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

src/MqttClient.cpp

+11-5
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,8 @@ MqttClient::MqttClient(Client* client) :
7777
_willBuffer(NULL),
7878
_willBufferIndex(0),
7979
_willMessageIndex(0),
80-
_willFlags(0x00)
80+
_willFlags(0x00),
81+
_tx_payload_buffer_size(TX_PAYLOAD_BUFFER_SIZE)
8182
{
8283
setTimeout(0);
8384
}
@@ -282,7 +283,7 @@ int MqttClient::beginWill(const String& topic, unsigned short size, bool retain,
282283

283284
int MqttClient::beginWill(const char* topic, bool retain, uint8_t qos)
284285
{
285-
return beginWill(topic, TX_PAYLOAD_BUFFER_SIZE, retain, qos);
286+
return beginWill(topic, _tx_payload_buffer_size, retain, qos);
286287
}
287288

288289
int MqttClient::beginWill(const String& topic, bool retain, uint8_t qos)
@@ -653,12 +654,12 @@ size_t MqttClient::write(const uint8_t *buf, size_t size)
653654
return clientWrite(buf, size);
654655
}
655656

656-
if ((_txPayloadBufferIndex + size) >= TX_PAYLOAD_BUFFER_SIZE) {
657-
size = (TX_PAYLOAD_BUFFER_SIZE - _txPayloadBufferIndex);
657+
if ((_txPayloadBufferIndex + size) >= _tx_payload_buffer_size) {
658+
size = (_tx_payload_buffer_size - _txPayloadBufferIndex);
658659
}
659660

660661
if (_txPayloadBuffer == NULL) {
661-
_txPayloadBuffer = (uint8_t*)malloc(TX_PAYLOAD_BUFFER_SIZE);
662+
_txPayloadBuffer = (uint8_t*)malloc(_tx_payload_buffer_size);
662663
}
663664

664665
memcpy(&_txPayloadBuffer[_txPayloadBufferIndex], buf, size);
@@ -793,6 +794,11 @@ void MqttClient::setConnectionTimeout(unsigned long timeout)
793794
_connectionTimeout = timeout;
794795
}
795796

797+
void MqttClient::setTxPayloadSize(unsigned short size)
798+
{
799+
_tx_payload_buffer_size = size;
800+
}
801+
796802
int MqttClient::connectError() const
797803
{
798804
return _connectError;

src/MqttClient.h

+2
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ class MqttClient : public Client {
9696

9797
void setKeepAliveInterval(unsigned long interval);
9898
void setConnectionTimeout(unsigned long timeout);
99+
void setTxPayloadSize(unsigned short size);
99100

100101
int connectError() const;
101102
int subscribeQoS() const;
@@ -142,6 +143,7 @@ class MqttClient : public Client {
142143

143144
unsigned long _keepAliveInterval;
144145
unsigned long _connectionTimeout;
146+
unsigned short _tx_payload_buffer_size;
145147

146148
int _connectError;
147149
bool _connected;

0 commit comments

Comments
 (0)