Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: EthernetInterface MQTT mbed-rtos mbed
Fork of MBED-MQTT by
Diff: main.cpp
- Revision:
- 2:005cdf4e8fb3
- Parent:
- 1:9e3ca45e51b5
- Child:
- 3:a77ffe1d4c35
--- a/main.cpp Sat Mar 18 19:54:58 2017 +0000
+++ b/main.cpp Mon Mar 20 17:10:21 2017 +0000
@@ -3,9 +3,8 @@
#include "MQTTEthernet.h"
#include "rtos.h"
#include "k64f.h"
-
// connect options for MQTT broker
-#define BROKER "broker.hivemq.com" // MQTT broker URL
+#define BROKER "192.168.0.29" // 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
@@ -13,7 +12,8 @@
#define TOPIC "testeroo" // MQTT topic
Queue<uint32_t, 6> messageQ;
-
+bool flash = false;
+int thresh = 3;
// LED color control function
void controlLED(color_t led_color) {
switch(led_color) {
@@ -50,19 +50,37 @@
MQTT::Message &message = md.message;
pc.printf("Receiving MQTT message: %.*s\r\n", message.payloadlen, (char*)message.payload);
- if (message.payloadlen == 3) {
+ // if (message.payloadlen == 3) {
if (strncmp((char*)message.payload, "red", 3) == 0)
controlLED(red);
- else if(strncmp((char*)message.payload, "grn", 3) == 0)
+ else if(strncmp((char*)message.payload, "add", 3) == 0)
+ {controlLED(off);
controlLED(green);
+ wait(.1);
+ controlLED(off);}
else if(strncmp((char*)message.payload, "blu", 3) == 0)
controlLED(blue);
else if(strncmp((char*)message.payload, "off", 3) == 0)
controlLED(off);
- }
+
+ else if(strncmp((char*)message.payload, "b1o", 3) == 0)
+ flash = true;
+ else if(strncmp((char*)message.payload, "b1u", 3) == 0)
+ {flash = false;
+ controlLED(off);
+ controlLED(blue);
+ wait(.1);
+ controlLED(off);}
+ else if(strncmp((char*)message.payload, "new", 3)==0)
+ {controlLED(off);
+ controlLED(blue);
+ wait(.1);
+ controlLED(off);}
+
+ // }
}
int main() {
@@ -103,6 +121,8 @@
else
pc.printf("success\r\n");
+
+ //client starts building connection request to the broker
MQTTPacket_connectData data = MQTTPacket_connectData_initializer;
data.MQTTVersion = 3;
data.clientID.cstring = CLIENTID;
@@ -135,26 +155,43 @@
message.dup = false;
message.payload = (void*)buf;
message.payloadlen = strlen(buf)+1;
+ int counter = 0;
while(true) {
osEvent switchEvent = messageQ.get(100);
+
+ if(flash){
+ controlLED(red);
+ wait(.25);
+ controlLED(off);
+ wait(.25);
+ }
+
if (switchEvent.value.v == 22 || switchEvent.value.v == 33) {
switch(switchEvent.value.v) {
case 22 :
- sprintf(buf, "sw2");
+ if(counter == thresh){sprintf(buf, "b1o");}
+ else{sprintf(buf, "add");}
+ counter++;
break;
case 33 :
- sprintf(buf, "sw3");
+
+ if(counter == (thresh+1)){sprintf(buf, "b1u");}
+ else{sprintf(buf, "new");}
+ if(counter > 0){counter--;}
break;
}
+
+
pc.printf("Publishing MQTT message: %.*s\r\n", message.payloadlen, (char*)message.payload);
rc = client.publish(topic, message);
client.yield(100);
+
}
else {
client.yield(100);
}
}
-}
+}
\ No newline at end of file
