Subscribe
Subscribe (with Variant) - Subscribe
Since 6.2.0:
If you are expecting structured data, use the subscribe overload that takes a handler with a Variant.
// EXAMPLE
void myHandler(const char* name, Variant data) {
Log.info("a=%d b=%s", data.get("a").toInt(), data.get("b").toString().c_str());
}
void setup() {
Particle.subscribe("myEvent", myHandler);
}
If you publish this JSON:
{"a":123,"b":"testing"}
For example, with the Particle CLI:
particle publish myEvent '{"a":123,"b":"testing"}'
The USB serial debug log will show something like:
0000013271 [app] INFO: a=123 b=testing
The prototypes for subscribing to events with a Variant are:
// PROTOTYPES
bool subscribe(const char* name, particle::EventHandlerWithVariant handler);
bool subscribe(const char* name, particle::EventHandlerWithVariantFn handler);
// Handler definitions
typedef void (*EventHandlerWithVariant)(const char* name, EventData data);
typedef std::function<void(const char* name, EventData data)> EventHandlerWithVariantFn;
// EventHandlerWithVariant handler function prototype
void myHandler(const char* name, EventData data);
void myHandler(const char* name, Variant data);
// EventData definition
typedef Variant EventData;
The Variant
overload does not have a ContentType
because Variant data is always CBOR over-the-air and JSON via webhooks and SSE.