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
