Simple app demonstrating network join feature of WiConnect Host Library.

Dependencies:   WiConnect mbed

Committer:
dan_ackme
Date:
Thu Nov 27 00:01:37 2014 -0800
Revision:
16:03409d4f1643
Parent:
9:ba592b3a5c64
Child:
17:218e96a88188
added warning about outdated fw

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dan_ackme 1:b4e1870b6daa 1 /**
dan_ackme 1:b4e1870b6daa 2 * @example join/example.cpp
dan_ackme 1:b4e1870b6daa 3 *
dan_ackme 1:b4e1870b6daa 4 * This is an example of using the join network API to
dan_ackme 1:b4e1870b6daa 5 * join a WiFi network.
dan_ackme 1:b4e1870b6daa 6 *
dan_ackme 1:b4e1870b6daa 7 * It works as follows:
dan_ackme 1:b4e1870b6daa 8 * 1. Instantiate the WiConnect Library
dan_ackme 1:b4e1870b6daa 9 * 2. Initiate Communication with WiFi Module
dan_ackme 1:b4e1870b6daa 10 * 3. Join a network using the specified parameters
dan_ackme 3:15daf72c279c 11 * 4. That's it!
dan_ackme 1:b4e1870b6daa 12 *
dan_ackme 1:b4e1870b6daa 13 *
dan_ackme 1:b4e1870b6daa 14 */
dan_ackme 1:b4e1870b6daa 15
dan_ackme 1:b4e1870b6daa 16
dan_ackme 1:b4e1870b6daa 17 /******************************************************************************
dan_ackme 1:b4e1870b6daa 18 * Example Variables
dan_ackme 1:b4e1870b6daa 19 */
dan_ackme 1:b4e1870b6daa 20
dan_ackme 1:b4e1870b6daa 21 // This is the name of your WiFi network
dan_ackme 1:b4e1870b6daa 22 // Look for this name in your WiFi settings
dan_ackme 1:b4e1870b6daa 23 // (e.g. your phone's list of WiFi networks in the WiFi settings menu)
dan_ackme 1:b4e1870b6daa 24 // tip: add double-quotes around SSID to add spaces to name
dan_ackme 1:b4e1870b6daa 25 #define NETWORK_SSID "\"<YOUR NETWORK NAME HERE>\""
dan_ackme 1:b4e1870b6daa 26
dan_ackme 1:b4e1870b6daa 27 // This is the password of your WiFi network
dan_ackme 1:b4e1870b6daa 28 // Leave as empty string (e.g "") to connect to OPEN network
dan_ackme 1:b4e1870b6daa 29 #define NETWORK_PASSWORD "\"<YOUR NETWORK PASSWORD HERE>\""
dan_ackme 1:b4e1870b6daa 30
dan_ackme 1:b4e1870b6daa 31
dan_ackme 1:b4e1870b6daa 32
dan_ackme 1:b4e1870b6daa 33
dan_ackme 1:b4e1870b6daa 34 /******************************************************************************
dan_ackme 1:b4e1870b6daa 35 * Includes
dan_ackme 1:b4e1870b6daa 36 */
dan_ackme 1:b4e1870b6daa 37
dan_ackme 1:b4e1870b6daa 38 // include C library headers
dan_ackme 1:b4e1870b6daa 39 #include <stdio.h> // needed for printf
dan_ackme 1:b4e1870b6daa 40
dan_ackme 1:b4e1870b6daa 41 // include target specific defines
dan_ackme 1:b4e1870b6daa 42 #include "target_config.h"
dan_ackme 1:b4e1870b6daa 43 // include the Wiconnect Host Library API header
dan_ackme 1:b4e1870b6daa 44 #include "Wiconnect.h"
dan_ackme 1:b4e1870b6daa 45
dan_ackme 1:b4e1870b6daa 46
dan_ackme 1:b4e1870b6daa 47
dan_ackme 1:b4e1870b6daa 48 /******************************************************************************
dan_ackme 1:b4e1870b6daa 49 * Global Defines
dan_ackme 1:b4e1870b6daa 50 */
dan_ackme 1:b4e1870b6daa 51
dan_ackme 1:b4e1870b6daa 52
dan_ackme 1:b4e1870b6daa 53 // Serial used for printfs to terminal (i.e. NOT used for WiConnect)
dan_ackme 1:b4e1870b6daa 54 static Serial consoleSerial(STDIO_UART_TX, STDIO_UART_RX);
dan_ackme 1:b4e1870b6daa 55
dan_ackme 1:b4e1870b6daa 56
dan_ackme 1:b4e1870b6daa 57
dan_ackme 1:b4e1870b6daa 58
dan_ackme 1:b4e1870b6daa 59 /******************************************************************************
dan_ackme 1:b4e1870b6daa 60 * Starting point of application
dan_ackme 1:b4e1870b6daa 61 */
dan_ackme 1:b4e1870b6daa 62 int main(int argc, char **argv)
dan_ackme 1:b4e1870b6daa 63 {
dan_ackme 1:b4e1870b6daa 64 consoleSerial.baud(115200); // console terminal to 115200 baud
dan_ackme 1:b4e1870b6daa 65
dan_ackme 1:b4e1870b6daa 66 //-------------------------------------------------------------------------
dan_ackme 1:b4e1870b6daa 67 // STEP 1: Instantiate WiConnect Library
dan_ackme 1:b4e1870b6daa 68 //-------------------------------------------------------------------------
dan_ackme 1:b4e1870b6daa 69
dan_ackme 1:b4e1870b6daa 70 // Setup wiconnect serial interface configuration
dan_ackme 1:b4e1870b6daa 71 // Here we only specify the rx buffer size and not rx buffer pointer, this means
dan_ackme 1:b4e1870b6daa 72 // The serial RX buffer will be dynamically allocated
dan_ackme 1:b4e1870b6daa 73 SerialConfig serialConfig(WICONNECT_RX_PIN, WICONNECT_TX_PIN, 256, NULL);
dan_ackme 1:b4e1870b6daa 74
dan_ackme 1:b4e1870b6daa 75 // Instantiate the Wiconnect library
dan_ackme 1:b4e1870b6daa 76 // Here we only specify the buffer size and not buffer pointer, this means
dan_ackme 1:b4e1870b6daa 77 // The internal buffer will be dynamically allocated
dan_ackme 1:b4e1870b6daa 78 Wiconnect wiconnect(serialConfig, 256, NULL, WICONNECT_RESET_PIN);
dan_ackme 1:b4e1870b6daa 79
dan_ackme 1:b4e1870b6daa 80
dan_ackme 1:b4e1870b6daa 81 //-------------------------------------------------------------------------
dan_ackme 1:b4e1870b6daa 82 // STEP 2: Initiate Communication with WiFi Module
dan_ackme 1:b4e1870b6daa 83 //-------------------------------------------------------------------------
dan_ackme 1:b4e1870b6daa 84
dan_ackme 1:b4e1870b6daa 85 printf("Initializing WiConnect Library...\r\n");
dan_ackme 1:b4e1870b6daa 86
dan_ackme 1:b4e1870b6daa 87 // Initialize communication with WiFi module
dan_ackme 1:b4e1870b6daa 88 if(wiconnect.init(true) != WICONNECT_SUCCESS)
dan_ackme 1:b4e1870b6daa 89 {
dan_ackme 16:03409d4f1643 90 if(result == WICONNECT_FIRMWARE_OUTDATED)
dan_ackme 16:03409d4f1643 91 {
dan_ackme 16:03409d4f1643 92 printf("The WiFi firmware is not supported. Run the ota example to update the firmware:\r\n");
dan_ackme 16:03409d4f1643 93 printf("https://developer.mbed.org/teams/ACKme/code/wiconnect-ota_example");
dan_ackme 16:03409d4f1643 94 }
dan_ackme 16:03409d4f1643 95 else
dan_ackme 16:03409d4f1643 96 {
dan_ackme 16:03409d4f1643 97 printf("Failed to initialize communication with WiFi module!\r\n"
dan_ackme 16:03409d4f1643 98 "Make sure the wires are connected correctly\r\n");
dan_ackme 16:03409d4f1643 99 }
dan_ackme 1:b4e1870b6daa 100 for(;;); // infinite loop
dan_ackme 1:b4e1870b6daa 101 }
dan_ackme 1:b4e1870b6daa 102
dan_ackme 1:b4e1870b6daa 103
dan_ackme 1:b4e1870b6daa 104 //-------------------------------------------------------------------------
dan_ackme 1:b4e1870b6daa 105 // STEP 3: Join a network using the specified parameters
dan_ackme 1:b4e1870b6daa 106 //-------------------------------------------------------------------------
dan_ackme 1:b4e1870b6daa 107
dan_ackme 1:b4e1870b6daa 108 printf("Joining network: %s....\r\n", NETWORK_SSID);
dan_ackme 1:b4e1870b6daa 109
dan_ackme 1:b4e1870b6daa 110 if(wiconnect.join(NETWORK_SSID, NETWORK_PASSWORD) != WICONNECT_SUCCESS)
dan_ackme 1:b4e1870b6daa 111 {
dan_ackme 1:b4e1870b6daa 112 printf("Failed to send join command\r\n");
dan_ackme 1:b4e1870b6daa 113 for(;;); // infinite loop
dan_ackme 1:b4e1870b6daa 114 }
dan_ackme 1:b4e1870b6daa 115
dan_ackme 1:b4e1870b6daa 116 //-------------------------------------------------------------------------
dan_ackme 3:15daf72c279c 117 // STEP 4: Done!
dan_ackme 1:b4e1870b6daa 118 //-------------------------------------------------------------------------
dan_ackme 1:b4e1870b6daa 119
dan_ackme 6:dd1823d63132 120 printf("IP Address: %s\r\n", wiconnect.getIpAddress());
dan_ackme 1:b4e1870b6daa 121 printf("Network join example has completed!\r\n");
dan_ackme 1:b4e1870b6daa 122
dan_ackme 7:281f96064763 123 while(true){} // infinite loop
dan_ackme 1:b4e1870b6daa 124 }
dan_ackme 1:b4e1870b6daa 125