vote controller implementatie van Jonas De Rynck
Fork of PGO6_VoteController_template by
easy-connect.h@2:5f2104244c27, 2017-10-30 (annotated)
- 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?
User | Revision | Line number | New 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__ |