@@ -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
283284int 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
288289int 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+
796802int MqttClient::connectError () const
797803{
798804 return _connectError;
0 commit comments