123r
Dependencies: WNC14A2AInterface
README.md
- Committer:
- JMF
- Date:
- 2017-04-19
- Revision:
- 4:daf182af022b
- Parent:
- 0:2563b0415d1f
File content as of revision 4:daf182af022b:
# Easy Connect - Easily add all supported connectivity methods to your mbed OS project Often you want to give users of your application the choice to switch between connectivity methods. The `NetworkInterface` API makes this easy, but you'll still need a mechanism for the user to chooce the method, throw in some `#define`'s, etc. Easy Connect handles all this for you. Just declare the desired connectivity method in your `mbed_app.json` file, and call `easy_connect()` from your application. ## Specifying connectivity method Add the following to your ``mbed_app.json`` file: ```json { "config": { "network-interface":{ "help": "options are ETHERNET,WIFI_ESP8266,WIFI_ODIN,MESH_LOWPAN_ND,MESH_THREAD,WNC14A2A", "value": "ETHERNET" } }, "target_overrides": { "*": { "target.features_add": ["NANOSTACK", "LOWPAN_ROUTER", "COMMON_PAL"], "mbed-mesh-api.6lowpan-nd-channel-page": 0, "mbed-mesh-api.6lowpan-nd-channel": 12 } } } ``` >If you choose `WNC14A2A` you'll also need to indicate if you want WNC14A2A debug output or not. You >Have 3 levels of debug (via bit settings). The debug value is set with the with the value of WNC_DEBUG_SETTING. >1 - Basic WNC driver debug output >2 - Comprehensive WNC driver debug output >4 - Network Layer debug output >You can have any combination you want 0 - 7. >Turning on or off WNC_DEBUG output is set with the WNC_DEBG setting. >If you choose `WIFI_ESP8266` or `WIFI_ODIN`, you'll also need to add the WiFi SSID and password: ```json "config": { "network-interface":{ "help": "options are ETHERNET,WIFI_ESP8266,WIFI_ODIN,MESH_LOWPAN_ND,MESH_THREAD", "value": "WIFI_ESP8266" }, "esp8266-tx": { "help": "Pin used as TX (connects to ESP8266 RX)", "value": "PTD3" }, "esp8266-rx": { "help": "Pin used as RX (connects to ESP8266 TX)", "value": "PTD2" }, "esp8266-debug": { "value": true }, "wifi-ssid": { "value": "\"SSID\"" }, "WNC_DEBUG": { "value": false }, "WNC_DEBUG_SETTING": { "value": 4 }, "wifi-password": { "value": "\"Password\"" } } ``` If you use `MESH_LOWPAN_ND` or `MESH_THREAD` you will need to specify your radio module: ```json "config": { "network-interface":{ "help": "options are ETHERNET,WIFI_ESP8266,WIFI_ODIN,MESH_LOWPAN_ND,MESH_THREAD", "value": "MESH_LOWPAN_ND" }, "mesh_radio_type": { "help": "options are ATMEL, MCR20", "value": "ATMEL" } } ``` ## Using Easy Connect from your application Easy Connect has just one function which will either return a `NetworkInterface`-pointer or `NULL`: ```cpp #include "easy-connect.h" int main(int, char**) { NetworkInterface* network = easy_connect(true); /* has 1 argument, enable_logging (pass in true to log to serial port) */ if (!network) { printf("Connecting to the network failed... See serial output.\r\n"); return 1; } // Rest of your program } ``` ## CR/LF in serial output If you want to avoid using `\r\n` in your printouts and just use normal C-style `\n` instead, please specify these to your `mbed_app.json` ```json "target_overrides": { "*": { "platform.stdio-baud-rate": 115200, "platform.stdio-convert-newlines": true } } ``` ## Extra defines If you'd like to use Easy Connect with mbed Client then you're in luck. Easy Connect automatically defines the `MBED_SERVER_ADDRESS` macro depending on your connectivity method (either IPv4 or IPv6 address). Use this address to connect to the right instance of mbed Device Connector.