Cellular example 1

Committer:
mab5449
Date:
Thu Sep 07 19:41:20 2017 +0000
Revision:
0:fb873be06e31
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mab5449 0:fb873be06e31 1 #include "mbed.h"
mab5449 0:fb873be06e31 2 #include "OnboardCellularInterface.h"
mab5449 0:fb873be06e31 3
mab5449 0:fb873be06e31 4 /* SIM pin code goes here */
mab5449 0:fb873be06e31 5 #define PIN_CODE "1234"
mab5449 0:fb873be06e31 6
mab5449 0:fb873be06e31 7 /* Network credentials like APN go here, e.g.,
mab5449 0:fb873be06e31 8 "apn, username, password" */
mab5449 0:fb873be06e31 9 #define CREDENTIALS "internet"
mab5449 0:fb873be06e31 10
mab5449 0:fb873be06e31 11 /* Number of retries */
mab5449 0:fb873be06e31 12 #define RETRY_COUNT 3
mab5449 0:fb873be06e31 13
mab5449 0:fb873be06e31 14 OnboardCellularInterface iface;
mab5449 0:fb873be06e31 15
mab5449 0:fb873be06e31 16 nsapi_error_t do_connect()
mab5449 0:fb873be06e31 17 {
mab5449 0:fb873be06e31 18 nsapi_error_t retcode;
mab5449 0:fb873be06e31 19 bool disconnected = false;
mab5449 0:fb873be06e31 20 uint8_t retry_counter = 0;
mab5449 0:fb873be06e31 21
mab5449 0:fb873be06e31 22 while (!iface.is_connected()) {
mab5449 0:fb873be06e31 23
mab5449 0:fb873be06e31 24 retcode = iface.connect();
mab5449 0:fb873be06e31 25 if (retcode == NSAPI_ERROR_AUTH_FAILURE) {
mab5449 0:fb873be06e31 26 printf("\n\nAuthentication Failure. Exiting application\n");
mab5449 0:fb873be06e31 27 return retcode;
mab5449 0:fb873be06e31 28 } else if (retcode != NSAPI_ERROR_OK) {
mab5449 0:fb873be06e31 29 printf("\n\nCouldn't connect: %d, will retry\n", retcode);
mab5449 0:fb873be06e31 30 retry_counter++;
mab5449 0:fb873be06e31 31 continue;
mab5449 0:fb873be06e31 32 } else if (retcode != NSAPI_ERROR_OK && retry_counter > RETRY_COUNT) {
mab5449 0:fb873be06e31 33 printf("\n\nFatal connection failure: %d\n", retcode);
mab5449 0:fb873be06e31 34 return retcode;
mab5449 0:fb873be06e31 35 }
mab5449 0:fb873be06e31 36
mab5449 0:fb873be06e31 37 break;
mab5449 0:fb873be06e31 38 }
mab5449 0:fb873be06e31 39
mab5449 0:fb873be06e31 40 printf("\n\nConnection Established.\n");
mab5449 0:fb873be06e31 41
mab5449 0:fb873be06e31 42 return NSAPI_ERROR_OK;
mab5449 0:fb873be06e31 43 }
mab5449 0:fb873be06e31 44
mab5449 0:fb873be06e31 45 int main()
mab5449 0:fb873be06e31 46 {
mab5449 0:fb873be06e31 47 /* Set Pin code for SIM card */
mab5449 0:fb873be06e31 48 iface.set_sim_pin(PIN_CODE);
mab5449 0:fb873be06e31 49
mab5449 0:fb873be06e31 50 /* Set network credentials here, e.g., APN*/
mab5449 0:fb873be06e31 51 iface.set_credentials(CREDENTIALS);
mab5449 0:fb873be06e31 52
mab5449 0:fb873be06e31 53 printf("\n\nmbed-os-example-cellular, Connecting...\n");
mab5449 0:fb873be06e31 54
mab5449 0:fb873be06e31 55 /* Attempt to connect to a cellular network */
mab5449 0:fb873be06e31 56 if (do_connect() == NSAPI_ERROR_OK) {
mab5449 0:fb873be06e31 57 printf("\n\nSuccess. Exiting \n\n");
mab5449 0:fb873be06e31 58 return 0;
mab5449 0:fb873be06e31 59 }
mab5449 0:fb873be06e31 60
mab5449 0:fb873be06e31 61 printf("\n\nFailure. Exiting \n\n");
mab5449 0:fb873be06e31 62 return -1;
mab5449 0:fb873be06e31 63 }