fix io callback scope issue
This commit is contained in:
parent
0bfffa1571
commit
49eda71d17
@ -480,7 +480,7 @@ void Adafruit_MQTT::processPackets(int16_t timeout) {
|
|||||||
else if (sub->callback_io != NULL) {
|
else if (sub->callback_io != NULL) {
|
||||||
// huh lets do the callback in io mode
|
// huh lets do the callback in io mode
|
||||||
//serial.print("*** calling io instance callback with : "); serial.println(data);
|
//serial.print("*** calling io instance callback with : "); serial.println(data);
|
||||||
sub->*callback_io((char *)sub->lastread, sub->datalen);
|
((sub->io_feed)->*(sub->callback_io))((char *)sub->lastread, sub->datalen);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -867,6 +867,7 @@ Adafruit_MQTT_Subscribe::Adafruit_MQTT_Subscribe(Adafruit_MQTT *mqttserver,
|
|||||||
callback_buffer = 0;
|
callback_buffer = 0;
|
||||||
callback_double = 0;
|
callback_double = 0;
|
||||||
callback_io = 0;
|
callback_io = 0;
|
||||||
|
io_feed = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
Adafruit_MQTT_Subscribe::Adafruit_MQTT_Subscribe(Adafruit_MQTT *mqttserver,
|
Adafruit_MQTT_Subscribe::Adafruit_MQTT_Subscribe(Adafruit_MQTT *mqttserver,
|
||||||
@ -878,6 +879,7 @@ Adafruit_MQTT_Subscribe::Adafruit_MQTT_Subscribe(Adafruit_MQTT *mqttserver,
|
|||||||
callback_uint32t = 0;
|
callback_uint32t = 0;
|
||||||
callback_buffer = 0;
|
callback_buffer = 0;
|
||||||
callback_io = 0;
|
callback_io = 0;
|
||||||
|
io_feed = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Adafruit_MQTT_Subscribe::setCallback(SubscribeCallbackUInt32Type cb) {
|
void Adafruit_MQTT_Subscribe::setCallback(SubscribeCallbackUInt32Type cb) {
|
||||||
@ -892,8 +894,9 @@ void Adafruit_MQTT_Subscribe::setCallback(SubscribeCallbackBufferType cb) {
|
|||||||
callback_buffer = cb;
|
callback_buffer = cb;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Adafruit_MQTT_Subscribe::setCallback(SubscribeCallbackIOType cb) {
|
void Adafruit_MQTT_Subscribe::setCallback(AdafruitIO_Feed *f, SubscribeCallbackIOType cb) {
|
||||||
callback_io = cb;
|
callback_io = cb;
|
||||||
|
io_feed = f;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Adafruit_MQTT_Subscribe::removeCallback(void) {
|
void Adafruit_MQTT_Subscribe::removeCallback(void) {
|
||||||
@ -901,4 +904,5 @@ void Adafruit_MQTT_Subscribe::removeCallback(void) {
|
|||||||
callback_buffer = 0;
|
callback_buffer = 0;
|
||||||
callback_double = 0;
|
callback_double = 0;
|
||||||
callback_io = 0;
|
callback_io = 0;
|
||||||
|
io_feed = 0;
|
||||||
}
|
}
|
||||||
|
@ -288,7 +288,7 @@ class Adafruit_MQTT_Subscribe {
|
|||||||
void setCallback(SubscribeCallbackUInt32Type callb);
|
void setCallback(SubscribeCallbackUInt32Type callb);
|
||||||
void setCallback(SubscribeCallbackDoubleType callb);
|
void setCallback(SubscribeCallbackDoubleType callb);
|
||||||
void setCallback(SubscribeCallbackBufferType callb);
|
void setCallback(SubscribeCallbackBufferType callb);
|
||||||
void setCallback(SubscribeCallbackIOType callb);
|
void setCallback(AdafruitIO_Feed *io, SubscribeCallbackIOType callb);
|
||||||
void removeCallback(void);
|
void removeCallback(void);
|
||||||
|
|
||||||
const char *topic;
|
const char *topic;
|
||||||
@ -304,6 +304,8 @@ class Adafruit_MQTT_Subscribe {
|
|||||||
SubscribeCallbackBufferType callback_buffer;
|
SubscribeCallbackBufferType callback_buffer;
|
||||||
SubscribeCallbackIOType callback_io;
|
SubscribeCallbackIOType callback_io;
|
||||||
|
|
||||||
|
AdafruitIO_Feed *io_feed;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Adafruit_MQTT *mqtt;
|
Adafruit_MQTT *mqtt;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user