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: Cayenne-MQTT-mbed mbed Servo X_NUCLEO_IDW01M1v2 NetworkSocketAPI HCSR04
Diff: main.cpp
- Revision:
- 2:445f09de09bd
- Parent:
- 1:a2d8aec2bb92
- Child:
- 3:4056f1cd4c47
--- a/main.cpp Thu Oct 20 22:57:56 2016 +0000
+++ b/main.cpp Wed Oct 26 23:01:03 2016 +0000
@@ -14,12 +14,12 @@
// Cayenne authentication info. This should be obtained from the Cayenne Dashboard.
char* username = "MQTT_USERNAME";
+char* password = "MQTT_PASSWORD";
char* clientID = "CLIENT_ID";
-char* password = "MQTT_PASSWORD";
SpwfSAInterface interface(D8, D2); // TX, RX
MQTTNetwork<SpwfSAInterface> network(interface);
-Cayenne::MQTTClient<MQTTNetwork<SpwfSAInterface>, MQTTTimer> mqttClient(network);
+CayenneMQTT::MQTTClient<MQTTNetwork<SpwfSAInterface>, MQTTTimer> mqttClient(network, username, password, clientID);
DigitalOut led1(LED1);
@@ -27,7 +27,7 @@
* Print the message info.
* @param[in] message The message received from the Cayenne server.
*/
-void outputMessage(Cayenne::MessageData& message)
+void outputMessage(CayenneMQTT::MessageData& message)
{
switch (message.topic) {
case COMMAND_TOPIC:
@@ -48,11 +48,11 @@
printf(" type=%s", message.type);
}
for (size_t i = 0; i < message.valueCount; ++i) {
- if (message.values[i].value) {
- printf(" value=%s", message.values[i].value);
+ if (message.getValue(i)) {
+ printf(" value=%s", message.getValue(i));
}
- if (message.values[i].unit) {
- printf(" unit=%s", message.values[i].unit);
+ if (message.getUnit(i)) {
+ printf(" unit=%s", message.getUnit(i));
}
}
if (message.id) {
@@ -65,7 +65,7 @@
* Handle messages received from the Cayenne server.
* @param[in] message The message received from the Cayenne server.
*/
-void messageArrived(Cayenne::MessageData& message)
+void messageArrived(CayenneMQTT::MessageData& message)
{
int error = 0;
// Add code to process the message. Here we just ouput the message data.
@@ -75,9 +75,9 @@
switch(message.channel) {
case 0:
// Set the onboard LED state
- led1 = atoi(message.values[0].value);
+ led1 = atoi(message.getValue());
// Publish the updated LED state
- if ((error = mqttClient.publishData(DATA_TOPIC, message.channel, NULL, NULL, message.values[0].value)) != CAYENNE_SUCCESS) {
+ if ((error = mqttClient.publishData(DATA_TOPIC, message.channel, NULL, NULL, message.getValue())) != CAYENNE_SUCCESS) {
printf("Publish LED state failure, error: %d\n", error);
}
break;
@@ -105,7 +105,7 @@
wait(2);
}
- if ((error = mqttClient.connect(username, clientID, password)) != MQTT::SUCCESS) {
+ if ((error = mqttClient.connect()) != MQTT::SUCCESS) {
printf("MQTT connect failed, error: %d\n", error);
return error;
}
@@ -122,8 +122,8 @@
// Send device info. Here we just send some example values for the system info. These should be changed to use actual system data, or removed if not needed.
mqttClient.publishData(SYS_VERSION_TOPIC, CAYENNE_NO_CHANNEL, NULL, NULL, CAYENNE_VERSION);
mqttClient.publishData(SYS_MODEL_TOPIC, CAYENNE_NO_CHANNEL, NULL, NULL, "mbedDevice");
- mqttClient.publishData(SYS_CPU_MODEL_TOPIC, CAYENNE_NO_CHANNEL, NULL, NULL, "CPU Model");
- mqttClient.publishData(SYS_CPU_SPEED_TOPIC, CAYENNE_NO_CHANNEL, NULL, NULL, "1000000000");
+ //mqttClient.publishData(SYS_CPU_MODEL_TOPIC, CAYENNE_NO_CHANNEL, NULL, NULL, "CPU Model");
+ //mqttClient.publishData(SYS_CPU_SPEED_TOPIC, CAYENNE_NO_CHANNEL, NULL, NULL, "1000000000");
return CAYENNE_SUCCESS;
}