mbed OS5に対応したMilkcocoaライブラリのテストバージョンです。
Fork of mbed-os-example-mbed5-blinky by
Diff: main.cpp
- Revision:
- 24:6ba1245bf049
- Parent:
- 22:af9dcf379926
--- a/main.cpp Tue Jan 17 11:00:04 2017 +0000 +++ b/main.cpp Tue Jan 24 13:41:36 2017 +0000 @@ -1,13 +1,66 @@ #include "mbed.h" +#include "MQTTInterface.h" +#include "MQTTClient.h" +#include "Milkcocoa.h" +#include "MClient.h" +#include "EthernetInterface.h" + +EthernetInterface eth; +Serial pc(USBTX,USBRX); + +/************************* Your Milkcocoa Setup *********************************/ -DigitalOut led1(LED1); +#define MILKCOCOA_APP_ID "teaidsirehz" +#define MILKCOCOA_DATASTORE "mbed_lan" + +/************* Milkcocoa Setup (you don't need to change this!) ******************/ + +#define MILKCOCOA_SERVERPORT 1883 + +/************ Global State (you don't need to change this!) ******************/ +const char MQTT_SERVER[] = MILKCOCOA_APP_ID ".mlkcca.com"; +const char MQTT_CLIENTID[] = __TIME__ MILKCOCOA_APP_ID; + +extern void onpush(MQTT::MessageData& md); -// main() runs in its own thread in the OS -// (note the calls to wait below for delays) int main() { - while (true) { - led1 = !led1; - wait(0.5); + + pc.baud(9600); + pc.printf("Milkcocoa mbed os ver demo\n\r\n\r\n\r"); + + int ret = eth.connect(); + if (ret != 0) { + printf("\r\nConnection error\r\n"); + return -1; + } + pc.printf("\n\rEthernet connected\n\r"); + + MQTTInterface* ipstack = new MQTTInterface(ð); + MClient* client = new MClient(ipstack); + Milkcocoa* milkcocoa = new Milkcocoa(client, MQTT_SERVER, MILKCOCOA_SERVERPORT, MILKCOCOA_APP_ID, MQTT_CLIENTID); + + milkcocoa->connect(); + + pc.printf("%d\n\r",milkcocoa->on(MILKCOCOA_DATASTORE, "push", onpush)); + + milkcocoa->start(); + + while(1) { + + DataElement elem = DataElement(); + elem.setValue("v", 1); + + milkcocoa->push(MILKCOCOA_DATASTORE, elem); + pc.printf("PUSH\n\r"); + Thread::wait(500); + } } +void onpush(MQTT::MessageData& md) +{ + MQTT::Message &message = md.message; + DataElement de = DataElement((char*)message.payload); + pc.printf("onpush\n\r"); + pc.printf("%d\n\r",de.getInt("v")); +} \ No newline at end of file