mbed_example
/
cellular-example
Cellular example 1
main.cpp@0:fb873be06e31, 2017-09-07 (annotated)
- Committer:
- mab5449
- Date:
- Thu Sep 07 19:41:20 2017 +0000
- Revision:
- 0:fb873be06e31
Initial commit
Who changed what in which revision?
User | Revision | Line number | New 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 | } |