vote controller implementatie van Jonas De Rynck

Dependencies:   MQTT

Fork of PGO6_VoteController_template by Jens de hoog

Committer:
jonasdr
Date:
Mon Oct 30 16:43:58 2017 +0000
Revision:
2:5f2104244c27
Jonas De Rynck - embedded vote controller

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jonasdr 2:5f2104244c27 1 #ifndef __MAGIC_CONNECT_H__
jonasdr 2:5f2104244c27 2 #define __MAGIC_CONNECT_H__
jonasdr 2:5f2104244c27 3
jonasdr 2:5f2104244c27 4 #include "mbed.h"
jonasdr 2:5f2104244c27 5
jonasdr 2:5f2104244c27 6 Serial output(USBTX, USBRX);
jonasdr 2:5f2104244c27 7
jonasdr 2:5f2104244c27 8 #define ETHERNET 1
jonasdr 2:5f2104244c27 9 #define WIFI_ESP8266 2
jonasdr 2:5f2104244c27 10 #define MESH_LOWPAN_ND 3
jonasdr 2:5f2104244c27 11 #define MESH_THREAD 4
jonasdr 2:5f2104244c27 12
jonasdr 2:5f2104244c27 13 #if MBED_CONF_APP_NETWORK_INTERFACE == WIFI_ESP8266
jonasdr 2:5f2104244c27 14 #include "ESP8266Interface.h"
jonasdr 2:5f2104244c27 15
jonasdr 2:5f2104244c27 16 #ifdef MBED_CONF_APP_ESP8266_DEBUG
jonasdr 2:5f2104244c27 17 ESP8266Interface esp(MBED_CONF_APP_ESP8266_TX, MBED_CONF_APP_ESP8266_RX, MBED_CONF_APP_ESP8266_DEBUG);
jonasdr 2:5f2104244c27 18 #else
jonasdr 2:5f2104244c27 19 ESP8266Interface esp(MBED_CONF_APP_ESP8266_TX, MBED_CONF_APP_ESP8266_RX);
jonasdr 2:5f2104244c27 20 #endif
jonasdr 2:5f2104244c27 21
jonasdr 2:5f2104244c27 22 #elif MBED_CONF_APP_NETWORK_INTERFACE == ETHERNET
jonasdr 2:5f2104244c27 23 #include "EthernetInterface.h"
jonasdr 2:5f2104244c27 24 EthernetInterface eth;
jonasdr 2:5f2104244c27 25 #elif MBED_CONF_APP_NETWORK_INTERFACE == MESH_LOWPAN_ND
jonasdr 2:5f2104244c27 26 #define MESH
jonasdr 2:5f2104244c27 27 #include "NanostackInterface.h"
jonasdr 2:5f2104244c27 28 LoWPANNDInterface mesh;
jonasdr 2:5f2104244c27 29 #elif MBED_CONF_APP_NETWORK_INTERFACE == MESH_THREAD
jonasdr 2:5f2104244c27 30 #define MESH
jonasdr 2:5f2104244c27 31 #include "NanostackInterface.h"
jonasdr 2:5f2104244c27 32 ThreadInterface mesh;
jonasdr 2:5f2104244c27 33 #else
jonasdr 2:5f2104244c27 34 #error "No connectivity method chosen. Please add 'config.network-interfaces.value' to your mbed_app.json (see README.md for more information)."
jonasdr 2:5f2104244c27 35 #endif
jonasdr 2:5f2104244c27 36
jonasdr 2:5f2104244c27 37 #if defined(MESH)
jonasdr 2:5f2104244c27 38 #if MBED_CONF_APP_MESH_RADIO_TYPE == ATMEL
jonasdr 2:5f2104244c27 39 #include "NanostackRfPhyAtmel.h"
jonasdr 2:5f2104244c27 40 NanostackRfPhyAtmel rf_phy(ATMEL_SPI_MOSI, ATMEL_SPI_MISO, ATMEL_SPI_SCLK, ATMEL_SPI_CS,
jonasdr 2:5f2104244c27 41 ATMEL_SPI_RST, ATMEL_SPI_SLP, ATMEL_SPI_IRQ, ATMEL_I2C_SDA, ATMEL_I2C_SCL);
jonasdr 2:5f2104244c27 42 #elif MBED_CONF_APP_MESH_RADIO_TYPE == MCR20
jonasdr 2:5f2104244c27 43 #include "NanostackRfPhyMcr20a.h"
jonasdr 2:5f2104244c27 44 NanostackRfPhyMcr20a rf_phy(MCR20A_SPI_MOSI, MCR20A_SPI_MISO, MCR20A_SPI_SCLK, MCR20A_SPI_CS, MCR20A_SPI_RST, MCR20A_SPI_IRQ);
jonasdr 2:5f2104244c27 45 #endif //MBED_CONF_APP_RADIO_TYPE
jonasdr 2:5f2104244c27 46 #endif //MESH
jonasdr 2:5f2104244c27 47
jonasdr 2:5f2104244c27 48 #ifndef MESH
jonasdr 2:5f2104244c27 49 // This is address to mbed Device Connector
jonasdr 2:5f2104244c27 50 #define MBED_SERVER_ADDRESS "coap://api.connector.mbed.com:5684"
jonasdr 2:5f2104244c27 51 #else
jonasdr 2:5f2104244c27 52 // This is address to mbed Device Connector
jonasdr 2:5f2104244c27 53 #define MBED_SERVER_ADDRESS "coaps://[2607:f0d0:2601:52::20]:5684"
jonasdr 2:5f2104244c27 54 #endif
jonasdr 2:5f2104244c27 55
jonasdr 2:5f2104244c27 56 NetworkInterface* easy_connect(bool log_messages = false) {
jonasdr 2:5f2104244c27 57 NetworkInterface* network_interface = 0;
jonasdr 2:5f2104244c27 58 int connect_success = -1;
jonasdr 2:5f2104244c27 59 #if MBED_CONF_APP_NETWORK_INTERFACE == WIFI_ESP8266
jonasdr 2:5f2104244c27 60 if (log_messages) {
jonasdr 2:5f2104244c27 61 output.printf("[EasyConnect] Using WiFi (ESP8266) \r\n");
jonasdr 2:5f2104244c27 62 output.printf("[EasyConnect] Connecting to WiFi..\r\n");
jonasdr 2:5f2104244c27 63 }
jonasdr 2:5f2104244c27 64 connect_success = esp.connect(MBED_CONF_APP_ESP8266_SSID, MBED_CONF_APP_ESP8266_PASSWORD);
jonasdr 2:5f2104244c27 65 network_interface = &esp;
jonasdr 2:5f2104244c27 66 #elif MBED_CONF_APP_NETWORK_INTERFACE == ETHERNET
jonasdr 2:5f2104244c27 67 if (log_messages) {
jonasdr 2:5f2104244c27 68 output.printf("[EasyConnect] Using Ethernet\r\n");
jonasdr 2:5f2104244c27 69 }
jonasdr 2:5f2104244c27 70 connect_success = eth.connect();
jonasdr 2:5f2104244c27 71 network_interface = ð
jonasdr 2:5f2104244c27 72 #endif
jonasdr 2:5f2104244c27 73 #ifdef MESH
jonasdr 2:5f2104244c27 74 if (log_messages) {
jonasdr 2:5f2104244c27 75 output.printf("[EasyConnect] Using Mesh\r\n");
jonasdr 2:5f2104244c27 76 output.printf("[EasyConnect] Connecting to Mesh..\r\n");
jonasdr 2:5f2104244c27 77 }
jonasdr 2:5f2104244c27 78 connect_success = mesh.connect();
jonasdr 2:5f2104244c27 79 network_interface = &mesh;
jonasdr 2:5f2104244c27 80 #endif
jonasdr 2:5f2104244c27 81 if(connect_success == 0) {
jonasdr 2:5f2104244c27 82 if (log_messages) {
jonasdr 2:5f2104244c27 83 output.printf("[EasyConnect] Connected to Network successfully\r\n");
jonasdr 2:5f2104244c27 84 }
jonasdr 2:5f2104244c27 85 } else {
jonasdr 2:5f2104244c27 86 if (log_messages) {
jonasdr 2:5f2104244c27 87 output.printf("[EasyConnect] Connection to Network Failed %d!\r\n", connect_success);
jonasdr 2:5f2104244c27 88 }
jonasdr 2:5f2104244c27 89 return NULL;
jonasdr 2:5f2104244c27 90 }
jonasdr 2:5f2104244c27 91 if (log_messages) {
jonasdr 2:5f2104244c27 92 const char *ip_addr = network_interface->get_ip_address();
jonasdr 2:5f2104244c27 93 if (ip_addr) {
jonasdr 2:5f2104244c27 94 output.printf("[EasyConnect] IP address %s\r\n", ip_addr);
jonasdr 2:5f2104244c27 95 } else {
jonasdr 2:5f2104244c27 96 output.printf("[EasyConnect] No IP address\r\n");
jonasdr 2:5f2104244c27 97 }
jonasdr 2:5f2104244c27 98 }
jonasdr 2:5f2104244c27 99 return network_interface;
jonasdr 2:5f2104244c27 100 }
jonasdr 2:5f2104244c27 101
jonasdr 2:5f2104244c27 102 #endif // __MAGIC_CONNECT_H__