my customized lib

Committer:
DuyLionTran
Date:
Sun Nov 26 15:08:14 2017 +0000
Revision:
0:8094b249013c
Initial commit

Who changed what in which revision?

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