Host library for controlling a WiConnect enabled Wi-Fi module.
Dependents: wiconnect-ota_example wiconnect-web_setup_example wiconnect-test-console wiconnect-tcp_server_example ... more
README.h
- Committer:
- dan_ackme
- Date:
- 2014-10-23
- Revision:
- 26:8067e3d463d3
- Parent:
- 21:17bb3eddcbae
File content as of revision 26:8067e3d463d3:
/** * @mainpage Library Overview * * @section Overview * The WiConnect Library runs on a host MCU and controls a * WiConnect enabled WiFi module. This library is essentially a * programming API for the WiConnect serial command set. More infomation * about the serial command set may be found here: * <a href="http://wiconnect.ack.me" target="_blank">WiConnect Reference Guide</a> * * @section notes Important Notes * - This class is implemented as a 'singleton'. This means it only needs to be * instantiated once. * - The WiConnect library does NOT call the global 'new' or 'malloc' functions. * All memory allocation (if required) comes from a user supplied malloc function pointer or buffer * * * @section features Library Settings * The WiConnect Library has multiple settings so as to allow * for the most flexibility within a user's application. * * Some of these configurations are as follows: * - Blocking / Non-blocking * - Dynamic / Static allocation * - Asynchronous Processing * * * @subsection setting_blocking_modes Blocking / Non-blocking Modes * The WiConnect Library may be configured for either 'blocking' or * 'non-blocking' operation: * - blocking - API calls do not return until they complete successfully or timeout. * - non-blocking - API calls return immediately. The caller should check the return code to see * if the command is still processing, completed, or an error occurred. The caller * should continue to call the API function (as often as possible) until it returns * either a success or error code. * * @subsubsection setting_blocking_mode Blocking Mode * In blocking mode, an API function will block until it completes. * More details to come... * * @subsubsection setting_nonblocking_mode Non-Blocking Mode * In non-blocking mode, an API function returns immediately. * More details to come... * * * * @subsection setting_alloc Dynamic / Static Allocation * There are two cases when memory allocation is required: * - Buffer allocation * - Class instantiation * * In both cases, either static or dynamic memory allocation may be used. * * In cases when memory allocation is needed, the API call requires a buffer pointer * and length parameters. If both are supplied, the library uses the supplied external buffer. * This is considered static allocation (however the buffer could have been dynamically allocated). * The caller is responsible for maintaining the supplied buffer. * * If, however, only the buffer length is supplied and the buffer pointer is NULL * the Wiconnect Library will call the user supplied malloc() function. This is considered * dynamic allocation. In this case, the library will maintain the buffer and release it * when necessary using the user supplied free() function. * * @note To use dynamic allocation the WiConnect Library must be compiled with * @ref WICONNECT_ENABLE_MALLOC defined, and the Wiconnect() constructor must be * supplied with pointers to malloc() and free() functions. * * @note The Wiconnect Library does NOT call the global 'new' operator. Classes that are * internally instantiated overload the 'new' operator and either call the user * supplied malloc() function or use the supplied static buffer. * * * @subsection setting_async_processing Asynchronous Processing * When applicable, the WiConnect Library will asynchronously process * commands in the background. When the background processing completes, the * supplied callback is called. * * User commands may also be executed in the background using the enqueueCommand() * API function. * * @note The WiConnect Library must be compiled with @ref WICONNECT_ASYNC_TIMER_ENABLED * defined for background processing to be enabled. * * * * @section send_command_desc Sending Commands To WiFi Module * More details to come... * * */ // ---------------------------------------------------------------------------- /** * @defgroup api_core Core * @brief This contains all core methods * * @{ */ /** * @defgroup api_core_settings Settings Methods * @brief API getters/setters for core library settings */ /** * @defgroup api_core_send_command Send Command Methods * @brief API methods for sending commands to WiConnect WiFi module */ /** * @defgroup api_core_misc Miscellaneous Methods * @brief Other core methods */ /** * @defgroup api_core_types Types * @brief Core Types */ /** * @defgroup api_core_macro Macros * @brief Core macros */ /** * @defgroup api_core_examples Examples * @brief Core examples * * @ref ota/example.cpp */ // @} // ---------------------------------------------------------------------------- /** * @defgroup api_network Network * @brief This contains all network methods * * @{ */ /** * @defgroup api_network_settings Settings Methods * @brief API getters/setters for module network settings */ /** * @defgroup api_network_wlan WLAN Methods * @brief Methods for joining/leaving a WLAN */ /** * @defgroup api_network_setup Web Setup Methods * @brief Methods for enabled/disabling module web setup */ /** * @defgroup api_network_util Utility Methods * @brief Network utility methods */ /** * @defgroup api_network_types Types * @brief Network Types */ /** * @defgroup api_network_macros Macros * @brief Network specific macros */ /** * @defgroup api_network_examples Examples * @brief Network examples * * @ref web_setup/example.cpp * * @ref join/example.cpp */ // @} // ---------------------------------------------------------------------------- /** * @defgroup api_socket Socket * @brief This contains all socket methods * * @{ */ /** * @defgroup api_socket_tcp TCP Methods * @brief TCP methods */ /** * @defgroup api_socket_udp UDP Methods * @brief UDP methods */ /** * @defgroup api_socket_tls TLS Methods * @brief TLS methods */ /** * @defgroup api_socket_http HTTP Methods * @brief HTTP methods */ /** * @defgroup api_socket_misc Miscellaneous Methods * @brief Miscellaneous socket methods */ /** * @defgroup api_socket_types Types * @brief Socket Types */ /** * @defgroup api_socket_macro Macros * @brief Socket specific macros */ /** * @defgroup api_socket_examples Examples * @brief Socket examples * * @ref http_get/example.cpp * * @ref tcp_server/example.cpp * */ // @} // ---------------------------------------------------------------------------- /** * @defgroup api_file File * @brief This contains all file methods * * @{ */ /** * @defgroup api_file_methods Methods * @brief File Types */ /** * @defgroup api_file_types Types * @brief File Types */ /** * @defgroup api_file_macro Macros * @brief API specific macros */ /** * @defgroup api_file_examples Examples * @brief File examples */ // @} // ---------------------------------------------------------------------------- /** * @defgroup conversion_util Conversion Utilities * @brief This contains all the conversion utility static functions. * */