What if you woke up and everything was different

Dependencies:   EthernetInterface MQTT mbed-rtos mbed

Fork of MBED-MQTT by Ryan Feeney

Revision:
3:a77ffe1d4c35
Parent:
2:005cdf4e8fb3
Child:
4:21552aa726cc
--- a/main.cpp	Mon Mar 20 17:10:21 2017 +0000
+++ b/main.cpp	Mon Mar 20 22:29:37 2017 +0000
@@ -4,7 +4,7 @@
 #include "rtos.h"
 #include "k64f.h"
 // connect options for MQTT broker
-#define BROKER "192.168.0.29"   // MQTT broker URL
+#define BROKER "192.168.1.129"   // MQTT broker URL
 #define PORT 1883                           // MQTT broker port number
 #define CLIENTID "0002F7F000"      // use K64F MAC address without colons
 #define USERNAME ""                         // not required for MQTT Dashboard public broker 
@@ -74,7 +74,7 @@
             controlLED(blue);
             wait(.1);
             controlLED(off);}
-        else if(strncmp((char*)message.payload, "new", 3)==0)
+        else if(strncmp((char*)message.payload, "sub", 3)==0)
             {controlLED(off);
             controlLED(blue);
             wait(.1);
@@ -149,17 +149,20 @@
         pc.printf("success\r\n");
         
     MQTT::Message message;
-    char buf[100];
+    int bufferSize = 128;
+    char buf[bufferSize];
     message.qos = MQTT::QOS0;
     message.retained = false;
     message.dup = false;
     message.payload = (void*)buf;
-    message.payloadlen = strlen(buf)+1;
+    message.payloadlen = bufferSize+1;
     int counter = 0;
     
+    sprintf(buf, "max:%d", thresh);
+    rc = client.publish(topic, message);
+    
     while(true) {
         osEvent switchEvent = messageQ.get(100);
-        
 
         if(flash){
             controlLED(red);
@@ -171,18 +174,16 @@
         if (switchEvent.value.v == 22 || switchEvent.value.v == 33) {
             switch(switchEvent.value.v) {
                 case 22 :
-                    if(counter == thresh){sprintf(buf, "b1o");}
-                    else{sprintf(buf, "add");}
                     counter++;
+                    if (counter > thresh) flash = true;
                     break;
                 case 33 :
-                    
-                    if(counter == (thresh+1)){sprintf(buf, "b1u");}
-                    else{sprintf(buf, "new");}
                     if(counter > 0){counter--;}
+                    if (counter <= thresh) flash = false;
                     break;
             }
-
+            sprintf(buf, "{\"type\":\"UPDATE\",\"count\":\"%d\", \"max\":\"%d\"}", counter, thresh);
+            message.payloadlen = strlen(buf)+1;
             
             pc.printf("Publishing MQTT message: %.*s\r\n", message.payloadlen, (char*)message.payload);
             rc = client.publish(topic, message);