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: mbed Servo X_NUCLEO_IKS01A2 X_NUCLEO_IDW01M1v2 NetworkSocketAPI NDefLib MQTT
Diff: main.cpp
- Revision:
- 24:a59eb8bdc431
- Parent:
- 23:43f9e34781f2
- Child:
- 25:d7f1e43736cf
--- a/main.cpp Wed Oct 26 15:28:35 2016 +0000
+++ b/main.cpp Thu Nov 24 13:22:03 2016 +0000
@@ -31,7 +31,6 @@
//------------------------------------
Serial pc(SERIAL_TX, SERIAL_RX);
DigitalOut myled(LED1);
-SpwfSAInterface spwf(D8, D2, false);
bool quickstartMode = true;
#define ORG_QUICKSTART // comment to connect to play.internetofthings.ibmcloud.com
@@ -109,7 +108,7 @@
char hostname[strlen(org) + strlen(iot_ibm) + 1];
sprintf(hostname, "%s%s", org, iot_ibm);
SpwfSAInterface& WiFi = ipstack->getWiFi();
- ip_addr = WiFi.get_ip_address();
+// ip_addr = WiFi.get_ip_address();
// Construct clientId - d:org:type:id
char clientId[strlen(org) + strlen(type) + strlen(id) + 5];
sprintf(clientId, "d:%s:%s:%s", org, type, id);
@@ -121,10 +120,10 @@
LOG("Nucleo IP ADDRESS: %s\n\r", WiFi.get_ip_address());
LOG("Nucleo MAC ADDRESS: %s\n\r", WiFi.get_mac_address());
LOG("Server Hostname: %s port: %d\n\r", hostname, IBM_IOT_PORT);
-// for(int i = 0; clientId[i]; i++){
-// clientId[i] = tolower(clientId[i]);
+// for(int i = 0; clientId[i]; i++){ // set lowercase mac
+// clientId[i] = tolower(clientId[i]);
// }
- LOG("Client ID: %s id: %s\n\r", clientId, id);
+ LOG("Client ID: %s\n\r", clientId);
LOG("Topic: %s\n\r",TOPIC);
LOG("Subscription URL: %s\n\r", subscription_url);
LOG("=====================================\n\r");
@@ -218,7 +217,8 @@
message.payload = (void*)buf;
message.payloadlen = strlen(buf);
- LOG("Publishing %s\n\r", buf);
+// LOG("Publishing %s\n\r", buf);
+ printf("Publishing %s\n\r", buf);
return client->publish(pubTopic, message);
}
@@ -226,9 +226,10 @@
{
const char * ssid = SSID; // Network must be visible otherwise it can't connect
const char * seckey = PASSW;
+ SpwfSAInterface spwf(D8, D2, false);
// Timer tyeld;
-
+ myled=0;
DevI2C *i2c = new DevI2C(I2C_SDA, I2C_SCL);
i2c->frequency(400000);
@@ -245,17 +246,16 @@
MQTTWiFi ipstack(spwf, ssid, seckey, NSAPI_SECURITY_WPA2);
MQTT::Client<MQTTWiFi, Countdown, MQTT_MAX_PACKET_SIZE> client(ipstack);
if (quickstartMode){
- char mac[50];
+ char mac[50]; // remove all : from mac
char *digit=NULL;
sprintf (id,"%s", "");
sprintf (mac,"%s",ipstack.getWiFi().get_mac_address());
- strcpy (mac, ipstack.getWiFi().get_mac_address());
digit = strtok (mac,":");
while (digit != NULL)
{
strcat (id, digit);
digit = strtok (NULL, ":");
- }
+ }
}
attemptConnect(&client, &ipstack);
if (connack_rc == MQTT_NOT_AUTHORIZED || connack_rc == MQTT_BAD_USERNAME_OR_PASSWORD)
@@ -283,20 +283,22 @@
printf("Error Closing the session\r\n");
}
}else printf("Error open Session\r\n");
-#endif
+#endif
+ myled=1;
int count = 0;
// tyeld.start();
while (true)
{
- if (++count == /*100*/2)
+ 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();
- client.yield(/*10*/1); // allow the MQTT client to receive messages
+ client.yield(10); // allow the MQTT client to receive messages
// printf ("tyeld: %d\n\r",tyeld.read_ms()-start);
}
}