@@ -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
285286int 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
290291int 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+
798804int MqttClient::connectError () const
799805{
800806 return _connectError;
0 commit comments