https://github.com/RozenAstrayChen/MQTT-IDW01M1

Dependencies:   MQTT NetworkSocketAPI X_NUCLEO_IDW01M1v2 mbed

Files at this revision

API Documentation at this revision

Comitter:
rozendhyan@gmail.com
Date:
Tue Oct 31 23:56:09 2017 +0800
Parent:
0:80c7778c82b8
Commit message:
add subscribe

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r 80c7778c82b8 -r 2ee9e5685a1e main.cpp
--- a/main.cpp	Tue Oct 31 18:41:30 2017 +0800
+++ b/main.cpp	Tue Oct 31 23:56:09 2017 +0800
@@ -13,6 +13,7 @@
 #define MQTT_PORT 1883
 //MQTT use Topic 
 #define TOPIC "temp"
+#define SUB_TOPIC "LED"
 
 
 //Wifi network
@@ -37,16 +38,26 @@
 MQTTString TopicName={TOPIC};
 MQTT::MessageData MsgData(TopicName, message);
 
+void subscribe_LED(char* msg){
+	int value = atoi(msg);
+	//printf("value = %d\n", value);
+	if(value ==1){
+		myled = !myled;
+	}
+	
+}
+
 
 void subscribe_cb(MQTT::MessageData & msgMQTT) {
     char msg[MQTT_MAX_PAYLOAD_SIZE];
     msg[0]='\0';
     strncat (msg, (char*)msgMQTT.message.payload, msgMQTT.message.payloadlen);
     printf ("--->>> subscribe_cb msg: %s\n\r", msg);
+    subscribe_LED(msg);
 }
 int subscribe(MQTT::Client<MQTTWiFi, Countdown, MQTT_MAX_PACKET_SIZE>* client, MQTTWiFi* ipstack)
 {
-    char* pubTopic = TOPIC;    
+    char* pubTopic = SUB_TOPIC;    
     return client->subscribe(pubTopic, MQTT::QOS1, subscribe_cb);
 }
 
@@ -89,9 +100,9 @@
     if((rc = client->connect(data)) == 0){
     	connected = true;
     	printf("--->MQTT Connected\n\r");
-#ifdef SUBSCRIBE
-        if (!subscribe(client, ipstack)) printf ("--->>>MQTT subscribed to: %s\n\r",TOPIC);
-#endif 
+//#ifdef SUBSCRIBE
+        if (!subscribe(client, ipstack)) printf ("--->>>MQTT subscribed to: %s\n\r",SUB_TOPIC);
+//#endif 
     }else {
         WARN("MQTT connect returned %d\n", rc);        
     }
@@ -172,7 +183,7 @@
 	MQTT::Client<MQTTWiFi, Countdown, MQTT_MAX_PACKET_SIZE> client(ipstack);
 	attemptConnect(&client, &ipstack);
 
-	myled=1;         
+	   
    int count = 0;    
 //    tyeld.start();    
     while (true)
@@ -180,9 +191,9 @@
         if (++count == 100)
         {               // Publish a message every second
             if (publish(&client, &ipstack) != 0) { 
-                myled=0;
+               
                 attemptConnect(&client, &ipstack);   // if we have lost the connection                
-            } else myled=1;
+            }
             count = 0;
         }        
 //        int start = tyeld.read_ms();