Skip to content

Commit 43c1253

Browse files
authored
Merge pull request #44 from Kacp3r3/master
Possibility to change tx_payload_buffer_size
2 parents 0f5983b + 79f512f commit 43c1253

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
@@ -79,7 +79,8 @@ MqttClient::MqttClient(Client* client) :
7979
_willBuffer(NULL),
8080
_willBufferIndex(0),
8181
_willMessageIndex(0),
82-
_willFlags(0x00)
82+
_willFlags(0x00),
83+
_tx_payload_buffer_size(TX_PAYLOAD_BUFFER_SIZE)
8384
{
8485
setTimeout(0);
8586
}
@@ -284,7 +285,7 @@ int MqttClient::beginWill(const String& topic, unsigned short size, bool retain,
284285

285286
int MqttClient::beginWill(const char* topic, bool retain, uint8_t qos)
286287
{
287-
return beginWill(topic, TX_PAYLOAD_BUFFER_SIZE, retain, qos);
288+
return beginWill(topic, _tx_payload_buffer_size, retain, qos);
288289
}
289290

290291
int MqttClient::beginWill(const String& topic, bool retain, uint8_t qos)
@@ -655,12 +656,12 @@ size_t MqttClient::write(const uint8_t *buf, size_t size)
655656
return clientWrite(buf, size);
656657
}
657658

658-
if ((_txPayloadBufferIndex + size) >= TX_PAYLOAD_BUFFER_SIZE) {
659-
size = (TX_PAYLOAD_BUFFER_SIZE - _txPayloadBufferIndex);
659+
if ((_txPayloadBufferIndex + size) >= _tx_payload_buffer_size) {
660+
size = (_tx_payload_buffer_size - _txPayloadBufferIndex);
660661
}
661662

662663
if (_txPayloadBuffer == NULL) {
663-
_txPayloadBuffer = (uint8_t*)malloc(TX_PAYLOAD_BUFFER_SIZE);
664+
_txPayloadBuffer = (uint8_t*)malloc(_tx_payload_buffer_size);
664665
}
665666

666667
memcpy(&_txPayloadBuffer[_txPayloadBufferIndex], buf, size);
@@ -795,6 +796,11 @@ void MqttClient::setConnectionTimeout(unsigned long timeout)
795796
_connectionTimeout = timeout;
796797
}
797798

799+
void MqttClient::setTxPayloadSize(unsigned short size)
800+
{
801+
_tx_payload_buffer_size = size;
802+
}
803+
798804
int MqttClient::connectError() const
799805
{
800806
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)