Yield function call with timeout works, there was an issue with blockant socket.

Dependencies:   C12832 MQTT

Fork of HelloMQTT by MQTT

Revision:
7:3de634f2d40c
Parent:
5:4a257f6ac09a
Parent:
6:e4c690c45021
Child:
8:a3e3113054a1
--- a/main.cpp	Fri May 09 23:06:43 2014 +0000
+++ b/main.cpp	Sun May 11 19:17:05 2014 +0000
@@ -45,34 +45,12 @@
     lcd.puts((char*)message->payload);
 }
 
-int connect(MQTT::Client<IPStack, Countdown>::connectionLostInfo* info)
-{
-    char* hostname = "m2m.eclipse.org";
-    int port = 1883;
-    
-    lcd.cls();
-    lcd.locate(0,3);
-    lcd.printf("%s:%d\n", hostname, port);
-    printf("Connecting to %s:%d\n", hostname, port);
-    int rc = info->network->connect(hostname, port);
-    lcd.printf("TCP connect = %d\n", rc);
-    printf("rc from TCP connect is %d\n", rc);
- 
-    MQTTPacket_connectData data = MQTTPacket_connectData_initializer;       
-    data.MQTTVersion = 3;
-    data.clientID.cstring = "mbed-icraggs";
-    rc = info->client->connect(&data);
-    lcd.printf("MQTT connect = %d\n", rc);
-    printf("rc from MQTT connect is %d\n", rc);
-    
-    return rc;
-}
 
 
 int main(int argc, char* argv[])
 {   
     IPStack ipstack = IPStack();
-    float version = 0.3;
+    float version = 0.43;
     char* topic = "mbed-sample";
     
     lcd.printf("Version is %f\n", version);
@@ -80,10 +58,19 @@
               
     MQTT::Client<IPStack, Countdown> client = MQTT::Client<IPStack, Countdown>(ipstack);
     
-    client.setConnectionLostHandler(connect);
-
-    MQTT::Client<IPStack, Countdown>::connectionLostInfo info = {&client, &ipstack};
-    int rc = connect(&info);
+    char* hostname = "m2m.eclipse.org";
+    int port = 1883;
+    lcd.printf("Connecting to %s:%d\n", hostname, port);
+    int rc = ipstack.connect(hostname, port);
+    if (rc != 0)
+        lcd.printf("rc from TCP connect is %d\n", rc);
+ 
+    MQTTPacket_connectData data = MQTTPacket_connectData_initializer;       
+    data.MQTTVersion = 3;
+    data.clientID.cstring = "mbed-icraggs";
+    rc = client.connect(&data);
+    if (rc != 0)
+        lcd.printf("rc from MQTT connect is %d\n", rc);
     
     rc = client.subscribe(topic, MQTT::QOS1, messageArrived);   
     if (rc != 0) {