What if you woke up and everything was different
Dependencies: EthernetInterface MQTT mbed-rtos mbed
Fork of MBED-MQTT by
Diff: main.cpp
- 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);