
Simple app demonstrating the HTTP GET feature of the WiConnect Host Library.
Revision 1:40ed62996887, committed 2014-08-13
- Comitter:
- dan_ackme
- Date:
- Wed Aug 13 04:41:33 2014 -0700
- Parent:
- 0:cc6ec9345a81
- Child:
- 2:fd707697ab7e
- Child:
- 3:2bfba274568c
- Commit message:
- renamed file
Changed in this revision
example.cpp | Show annotated file Show diff for this revision Revisions of this file |
main.cpp | Show diff for this revision Revisions of this file |
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example.cpp Wed Aug 13 04:41:33 2014 -0700 @@ -0,0 +1,135 @@ +/** + * @example http_get/example.cpp + * + * This is an example of using the http socket API to + * download a webpage. + * + * It works as follows: + * 1. Instantiate the WiConnect Library + * 2. Initiate Communication with WiFi Module + * 3. Issue a HTTP GET request (Note: The module must have valid network credentials See @ref web_setup/example.cpp) + * 4. Read the HTTP page and print + * 5. That's it! + * + */ + + +/****************************************************************************** + * Example Variables + */ + +// the URL of the webpage to GET +#define HTTP_URL "http://ack.me" + + + + + +/****************************************************************************** + * Includes + */ + +// include C library headers +#include <stdio.h> // needed for printf + +// include target specific defines +#include "target_config.h" +// include the Wiconnect Host Library API header +#include "Wiconnect.h" + + + + +/****************************************************************************** + * Global Defines + */ + + +// Serial used for printfs to terminal (i.e. NOT used for WiConnect) +static Serial consoleSerial(STDIO_UART_TX, STDIO_UART_RX); + + + +/****************************************************************************** + * Starting point of application + */ +int main(int argc, char **argv) +{ + consoleSerial.baud(115200); // console terminal to 115200 baud + + //------------------------------------------------------------------------- + // STEP 1: Instantiate WiConnect Library + //------------------------------------------------------------------------- + + // Setup wiconnect serial interface configuration + // Here we only specify the rx buffer size and not rx buffer pointer, this means + // The serial RX buffer will be dynamically allocated + SerialConfig serialConfig(WICONNECT_RX_PIN, WICONNECT_TX_PIN, 256, NULL); + + // Instantiate and initialize the Wiconnect library + // Here we only specify the buffer size and not buffer pointer, this means + // The internal buffer will be dynamically allocated + Wiconnect wiconnect(serialConfig, 256, NULL, WICONNECT_RESET_PIN); + + // set the default timeout to 15s as some websites take awhile to respond + wiconnect.setCommandDefaultTimeout(15000); + + //------------------------------------------------------------------------- + // STEP 2: Initiate Communication with WiFi Module + //------------------------------------------------------------------------- + + printf("Initializing WiConnect Library...\r\n"); + + // Initialize communication with WiFi module + if(wiconnect.init(true) != WICONNECT_SUCCESS) + { + printf("Failed to initialize communication with WiFi module!\r\n" + "Make sure the wires are connected correctly\r\n"); + for(;;); // infinite loop + } + + + //------------------------------------------------------------------------- + // STEP 3: Issue a HTTP GET request + //------------------------------------------------------------------------- + + // Initiate a socket with an RX buffer of 256 bytes + // We're not specifying the rx buffer pointer so that means it's dynamically allocated + Socket socket(256); + + + printf("Issuing HTTP Request: %s\r\n", HTTP_URL); + + // Issue HTTP request + // NOTE: the module must have valid network credentials + if(wiconnect.httpGet(socket, HTTP_URL) != WICONNECT_SUCCESS) + { + printf("Failed to issue HTTP request. Does the module have valid network credentials?\r\n"); + for(;;); // infinite loop + } + + //------------------------------------------------------------------------- + // STEP 4: Read the HTTP page and print + //------------------------------------------------------------------------- + + uint8_t *dataPtr; + uint16_t dataLength; + + // while there's data to read, retreive and print it + while(socket.read(&dataPtr, &dataLength) == WICONNECT_SUCCESS) + { + fwrite(dataPtr, 1, dataLength, stdout); + } + + //------------------------------------------------------------------------- + // STEP 5: Done! + //------------------------------------------------------------------------- + + printf("HTTP GET example has completed!\r\n"); + + for(;;); // infinite loop + + return 0; +} + +
--- a/main.cpp Wed Aug 13 10:35:40 2014 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,135 +0,0 @@ -/** - * @example http_get/example.cpp - * - * This is an example of using the http socket API to - * download a webpage. - * - * It works as follows: - * 1. Instantiate the WiConnect Library - * 2. Initiate Communication with WiFi Module - * 3. Issue a HTTP GET request (Note: The module must have valid network credentials See @ref web_setup/example.cpp) - * 4. Read the HTTP page and print - * 5. That's it! - * - */ - - -/****************************************************************************** - * Example Variables - */ - -// the URL of the webpage to GET -#define HTTP_URL "http://ack.me" - - - - - -/****************************************************************************** - * Includes - */ - -// include C library headers -#include <stdio.h> // needed for printf - -// include target specific defines -#include "target_config.h" -// include the Wiconnect Host Library API header -#include "Wiconnect.h" - - - - -/****************************************************************************** - * Global Defines - */ - - -// Serial used for printfs to terminal (i.e. NOT used for WiConnect) -static Serial consoleSerial(STDIO_UART_TX, STDIO_UART_RX); - - - -/****************************************************************************** - * Starting point of application - */ -int main(int argc, char **argv) -{ - consoleSerial.baud(115200); // console terminal to 115200 baud - - //------------------------------------------------------------------------- - // STEP 1: Instantiate WiConnect Library - //------------------------------------------------------------------------- - - // Setup wiconnect serial interface configuration - // Here we only specify the rx buffer size and not rx buffer pointer, this means - // The serial RX buffer will be dynamically allocated - SerialConfig serialConfig(WICONNECT_RX_PIN, WICONNECT_TX_PIN, 256, NULL); - - // Instantiate and initialize the Wiconnect library - // Here we only specify the buffer size and not buffer pointer, this means - // The internal buffer will be dynamically allocated - Wiconnect wiconnect(serialConfig, 256, NULL, WICONNECT_RESET_PIN); - - // set the default timeout to 15s as some websites take awhile to respond - wiconnect.setCommandDefaultTimeout(15000); - - //------------------------------------------------------------------------- - // STEP 2: Initiate Communication with WiFi Module - //------------------------------------------------------------------------- - - printf("Initializing WiConnect Library...\r\n"); - - // Initialize communication with WiFi module - if(wiconnect.init(true) != WICONNECT_SUCCESS) - { - printf("Failed to initialize communication with WiFi module!\r\n" - "Make sure the wires are connected correctly\r\n"); - for(;;); // infinite loop - } - - - //------------------------------------------------------------------------- - // STEP 3: Issue a HTTP GET request - //------------------------------------------------------------------------- - - // Initiate a socket with an RX buffer of 256 bytes - // We're not specifying the rx buffer pointer so that means it's dynamically allocated - Socket socket(256); - - - printf("Issuing HTTP Request: %s\r\n", HTTP_URL); - - // Issue HTTP request - // NOTE: the module must have valid network credentials - if(wiconnect.httpGet(socket, HTTP_URL) != WICONNECT_SUCCESS) - { - printf("Failed to issue HTTP request. Does the module have valid network credentials?\r\n"); - for(;;); // infinite loop - } - - //------------------------------------------------------------------------- - // STEP 4: Read the HTTP page and print - //------------------------------------------------------------------------- - - uint8_t *dataPtr; - uint16_t dataLength; - - // while there's data to read, retreive and print it - while(socket.read(&dataPtr, &dataLength) == WICONNECT_SUCCESS) - { - fwrite(dataPtr, 1, dataLength, stdout); - } - - //------------------------------------------------------------------------- - // STEP 5: Done! - //------------------------------------------------------------------------- - - printf("HTTP GET example has completed!\r\n"); - - for(;;); // infinite loop - - return 0; -} - -