@@ -226,6 +226,9 @@ uint16_t Adafruit_MQTT::processPacketsUntil(uint8_t *buffer,
226
226
uint8_t waitforpackettype,
227
227
uint16_t timeout) {
228
228
uint16_t len;
229
+ DEBUG_PRINTLN (" call: processPacketsUntil()" );
230
+ DEBUG_PRINT (" Looking for packetType: " );
231
+ DEBUG_PRINTLN (waitforpackettype);
229
232
230
233
while (true ) {
231
234
len = readFullPacket (buffer, MAXBUFFERSIZE, timeout);
@@ -239,7 +242,31 @@ uint16_t Adafruit_MQTT::processPacketsUntil(uint8_t *buffer,
239
242
return len;
240
243
} else {
241
244
if (packetType == MQTT_CTRL_PUBLISH) {
242
- handleSubscriptionPacket (len);
245
+
246
+ Adafruit_MQTT_Subscribe *sub = handleSubscriptionPacket (len);
247
+ if (sub) {
248
+ DEBUG_PRINTLN (" processPacketsUntil got subscription!" );
249
+ if (sub->callback_uint32t != NULL ) {
250
+ // huh lets do the callback in integer mode
251
+ uint32_t data = 0 ;
252
+ data = atoi ((char *)sub->lastread );
253
+ sub->callback_uint32t (data);
254
+ } else if (sub->callback_double != NULL ) {
255
+ // huh lets do the callback in doublefloat mode
256
+ double data = 0 ;
257
+ data = atof ((char *)sub->lastread );
258
+ sub->callback_double (data);
259
+ } else if (sub->callback_buffer != NULL ) {
260
+ // huh lets do the callback in buffer mode
261
+ DEBUG_PRINTLN (" processPacketsUntil called the callback_buffer!" );
262
+ sub->callback_buffer ((char *)sub->lastread , sub->datalen );
263
+ } else if (sub->callback_io != NULL ) {
264
+ // huh lets do the callback in io mode
265
+ ((sub->io_mqtt )->*(sub->callback_io ))((char *)sub->lastread ,
266
+ sub->datalen );
267
+ }
268
+ }
269
+
243
270
} else {
244
271
ERROR_PRINTLN (F (" Dropped a packet" ));
245
272
}
@@ -477,8 +504,10 @@ void Adafruit_MQTT::processPackets(int16_t timeout) {
477
504
uint32_t elapsed = 0 , endtime, starttime = millis ();
478
505
479
506
while (elapsed < (uint32_t )timeout) {
507
+ DEBUG_PRINTLN (" L480: readSubscription() called by processPackets()" );
480
508
Adafruit_MQTT_Subscribe *sub = readSubscription (timeout - elapsed);
481
509
if (sub) {
510
+ DEBUG_PRINTLN (" processPackets got subscription!" );
482
511
if (sub->callback_uint32t != NULL ) {
483
512
// huh lets do the callback in integer mode
484
513
uint32_t data = 0 ;
@@ -491,6 +520,7 @@ void Adafruit_MQTT::processPackets(int16_t timeout) {
491
520
sub->callback_double (data);
492
521
} else if (sub->callback_buffer != NULL ) {
493
522
// huh lets do the callback in buffer mode
523
+ DEBUG_PRINTLN (" processPackets callback_buffer!" );
494
524
sub->callback_buffer ((char *)sub->lastread , sub->datalen );
495
525
} else if (sub->callback_io != NULL ) {
496
526
// huh lets do the callback in io mode
0 commit comments