PGO6

Dependencies:   MQTT

Revision:
0:fd29cd85e75e
Child:
1:34e76c0cbe5a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Oct 26 07:33:07 2017 +0000
@@ -0,0 +1,48 @@
+#define APP_VERSION     0.6f
+#define MQTT_VERSION    3
+#define BROKER_NAME     "broker.hivemq.com"
+#define BROKER_PORT     1883
+
+#include "debounce_button.h"
+#include "EthernetInterface.h"
+#include "MQTTNetwork.h"
+#include "MQTTmbed.h"
+#include "MQTTClient.h"
+
+char* topic;
+
+/**
+    TODO
+    ----
+    -   Check if the button has been pressed. If so, print the amount of clicks to a serial terminal.
+    -   Make an MQTT-service which:
+        -   starts up a network using EthernetInterface. Make sure the development board requests its address via DHCP.
+        -   makes a client and connects it to the broker using a client ID and credentials (username & password).
+        -   sends messages at the same topic as the smartphone app from PGO 2. Feel free to choose which Quality of Service
+            you are going to use. Make a separate function which handles the sending procedure. Therefore, this function
+            can be called each time we want to send a certain message.
+    -   When the button is pressed once, we send an upvote. When pressed twice, a downvote is sent. By pressing 4 times,
+        the program disconnects from the broker and terminates.
+        
+    Extra
+    -----
+    -   Subscribe to the topic on which the song data is published. Display this received message on the serial terminal.
+    -   Test this controller in the complete system of PGO 2. Use these controllers instead of the smartphones.
+    
+    Tips & tricks
+    -------------
+    -   To generate an interrupt on the press of a button, use:
+            InterruptIn button(USER_BUTTON);
+            ...
+            button.fall(callback(someFunction));
+    -   Before implementing MQTT, test the multiclick feature first.
+    -   Have a look at the MQTT-library for Mbed and the HelloMQTT-example.
+    -   To have a uniform message sending procedure, use the following function usage:
+            sendMessage(&client, topic, buf, qos, retained, duplicate)
+*/
+
+int main(int argc, char* argv[])
+{
+
+    return 0;
+}