Added support for the WNC M14A2A Cellular LTE Data Module.

Dependencies:   WNC14A2AInterface

Easy Connect

Easily add all supported connectivity methods to your mbed OS project

This project is derived from https://developer.mbed.org/teams/sandbox/code/simple-mbed-client-example/file/dd6231df71bb/easy-connect.lib. It give user the ability to switch between connectivity methods and includes support for the WNC14A2A Data Module. The `NetworkInterface` API makes this easy, but you still need a mechanism for the user to select the connection method, The selection is made by modifying the `mbed_app.json` file and using `easy_connect()` from your application.

Specifying connectivity method

To add support for the WNC14A2A, add the following to your ``mbed_app.json`` file:

mbed_app.json

{
    "config": {
        "network-interface":{
            "help": "options are ETHERNET,WIFI_ESP8266,WIFI_ODIN,MESH_LOWPAN_ND,MESH_THREAD,WNC14A2A",
            "value": "WNC14A2A"
        }
    },
}

After you choose `WNC14A2A` you'll also need to indicate if you want debug output or not by Enabling (true) or Disabling (false) WNC_DEBUG.

If WNC_DEBUG is enabled, there are 3 different levels of debug output (selected via bit settings). These debug levels are set using the following values:

ValueDescription
1Basic WNC driver debug output
2Comprehensive WNC driver debug output
4Network Layer debug output

You can have any combination of these three bit values for a total value of 0 – 7.

WNC Debug Settings

    "config": {
        "WNC_DEBUG": {
            "value": false
        },
        "WNC_DEBUG_SETTING": {
            "value": 4
        },
    }

Using Easy Connect from your application

Easy Connect has just one function which will either return a `NetworkInterface`-pointer or `NULL`:

Sample Code

#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
}

Tested on

  • K64F with Ethernet.
  • AT&T Cellular IoT Starter Kit with WNC M14A2A Cellular Data Module

The WNCInterface class currently supports the following version(s):

  • MPSS: M14A2A_v11.50.164451 APSS: M14A2A_v11.53.164451

License

This library is released under the Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License and may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Committer:
group-Avnet
Date:
Wed Apr 19 01:08:11 2017 +0000
Revision:
0:478cfd88041f
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
group-Avnet 0:478cfd88041f 1 #!/bin/sh
group-Avnet 0:478cfd88041f 2 #
group-Avnet 0:478cfd88041f 3 # An example hook script to verify what is about to be committed.
group-Avnet 0:478cfd88041f 4 # Called by "git commit" with no arguments. The hook should
group-Avnet 0:478cfd88041f 5 # exit with non-zero status after issuing an appropriate message if
group-Avnet 0:478cfd88041f 6 # it wants to stop the commit.
group-Avnet 0:478cfd88041f 7 #
group-Avnet 0:478cfd88041f 8 # To enable this hook, rename this file to "pre-commit".
group-Avnet 0:478cfd88041f 9
group-Avnet 0:478cfd88041f 10 if git rev-parse --verify HEAD >/dev/null 2>&1
group-Avnet 0:478cfd88041f 11 then
group-Avnet 0:478cfd88041f 12 against=HEAD
group-Avnet 0:478cfd88041f 13 else
group-Avnet 0:478cfd88041f 14 # Initial commit: diff against an empty tree object
group-Avnet 0:478cfd88041f 15 against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
group-Avnet 0:478cfd88041f 16 fi
group-Avnet 0:478cfd88041f 17
group-Avnet 0:478cfd88041f 18 # If you want to allow non-ascii filenames set this variable to true.
group-Avnet 0:478cfd88041f 19 allownonascii=$(git config hooks.allownonascii)
group-Avnet 0:478cfd88041f 20
group-Avnet 0:478cfd88041f 21 # Redirect output to stderr.
group-Avnet 0:478cfd88041f 22 exec 1>&2
group-Avnet 0:478cfd88041f 23
group-Avnet 0:478cfd88041f 24 # Cross platform projects tend to avoid non-ascii filenames; prevent
group-Avnet 0:478cfd88041f 25 # them from being added to the repository. We exploit the fact that the
group-Avnet 0:478cfd88041f 26 # printable range starts at the space character and ends with tilde.
group-Avnet 0:478cfd88041f 27 if [ "$allownonascii" != "true" ] &&
group-Avnet 0:478cfd88041f 28 # Note that the use of brackets around a tr range is ok here, (it's
group-Avnet 0:478cfd88041f 29 # even required, for portability to Solaris 10's /usr/bin/tr), since
group-Avnet 0:478cfd88041f 30 # the square bracket bytes happen to fall in the designated range.
group-Avnet 0:478cfd88041f 31 test $(git diff --cached --name-only --diff-filter=A -z $against |
group-Avnet 0:478cfd88041f 32 LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0
group-Avnet 0:478cfd88041f 33 then
group-Avnet 0:478cfd88041f 34 echo "Error: Attempt to add a non-ascii file name."
group-Avnet 0:478cfd88041f 35 echo
group-Avnet 0:478cfd88041f 36 echo "This can cause problems if you want to work"
group-Avnet 0:478cfd88041f 37 echo "with people on other platforms."
group-Avnet 0:478cfd88041f 38 echo
group-Avnet 0:478cfd88041f 39 echo "To be portable it is advisable to rename the file ..."
group-Avnet 0:478cfd88041f 40 echo
group-Avnet 0:478cfd88041f 41 echo "If you know what you are doing you can disable this"
group-Avnet 0:478cfd88041f 42 echo "check using:"
group-Avnet 0:478cfd88041f 43 echo
group-Avnet 0:478cfd88041f 44 echo " git config hooks.allownonascii true"
group-Avnet 0:478cfd88041f 45 echo
group-Avnet 0:478cfd88041f 46 exit 1
group-Avnet 0:478cfd88041f 47 fi
group-Avnet 0:478cfd88041f 48
group-Avnet 0:478cfd88041f 49 # If there are whitespace errors, print the offending file names and fail.
group-Avnet 0:478cfd88041f 50 exec git diff-index --check --cached $against --