Shintaro Hosoai / Mbed 2 deprecated GR-PEACH_BP3595_Milkcocoa

Dependencies:   EthernetInterface GR-PEACH_WlanBP3595STA Milkcocoa mbed-rtos mbed

Fork of GR-PEACH_WlanBP3595STA_sample by Rohm

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 /*
00002 Warning!
00003   When exporting and using it, increase the following stack size.
00004   
00005   [EthernetInterface/lwip/lwipopts.h]---------
00006   #define TCPIP_THREAD_STACKSIZE      1024
00007   ->
00008   #define TCPIP_THREAD_STACKSIZE      2048
00009   --------------------------------------------
00010 */
00011 
00012 /*
00013 This works with the following library.
00014   mbed-rtos : revision 115
00015 */
00016 
00017 #include "Milkcocoa.h"
00018 
00019 /* Please change the following macro definition to your setting. */
00020 #define WLAN_SSID               ("SSIDofYourAP")                // SSID
00021 #define WLAN_PSK                ("PSKofYourAP")                 // PSK(Pre-Shared Key)
00022 
00023 #define MILKCOCOA_APP_ID      "...YOUR_MILKCOCOA_APP_ID..."
00024 #define MILKCOCOA_DATASTORE   "mbed"
00025 #define MILKCOCOA_SERVERPORT  1883
00026 
00027 extern void onpush(MQTT::MessageData& md);
00028 
00029 const char MQTT_SERVER[]  = MILKCOCOA_APP_ID ".mlkcca.com";
00030 const char MQTT_CLIENTID[] = __TIME__ MILKCOCOA_APP_ID;
00031 
00032 DigitalOut  red_led(LED1);              // On: error
00033 DigitalOut  green_led(LED2);            // On: WLAN has been connected
00034 Serial pc(USBTX, USBRX);
00035 
00036 /** Main function
00037  *
00038  */
00039 int main() {
00040     pc.baud(9600);
00041     MQTTBP3595 *ipstack = new MQTTBP3595(WLAN_SSID, WLAN_PSK);
00042     MClient *client = new MClient(ipstack);
00043     Milkcocoa *milkcocoa = new Milkcocoa(client, MQTT_SERVER, MILKCOCOA_SERVERPORT, MILKCOCOA_APP_ID, MQTT_CLIENTID);
00044 
00045     pc.printf("Milkcocoa mbed ver demo\n\r\n\r\n\r");
00046     
00047     milkcocoa->connect();
00048     pc.printf("\n\rEther connected\n\r");
00049     
00050     pc.printf("%d\n\r",milkcocoa->on(MILKCOCOA_DATASTORE, "push", onpush));
00051 
00052     while(1) {
00053         milkcocoa->loop();
00054         
00055         DataElement elem = DataElement();
00056         elem.setValue("v", 1);
00057         
00058         milkcocoa->push(MILKCOCOA_DATASTORE, elem);
00059         wait(7.0);
00060     }
00061 }
00062 
00063 void onpush(MQTT::MessageData& md)
00064 {
00065     MQTT::Message &message = md.message;
00066     DataElement de = DataElement((char*)message.payload);
00067     pc.printf("onpush\n\r");
00068     pc.printf("%d\n\r",de.getInt("v"));
00069 }