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-08-12
- Revision:
- 11:ea484e1b7fc4
- Parent:
- 9:b6218dc218ad
- Child:
- 13:2b51f5267c92
File content as of revision 11:ea484e1b7fc4:
/** * @mainpage WiConnect 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. * TODO: more details here * * @subsubsection setting_nonblocking_mode Non-Blocking Mode * In non-blocking mode, an API function returns immediately. * TODO: more details here * * * * @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 * TODO: add detailed description here * * */ // ---------------------------------------------------------------------------- /** * @defgroup api_core Core API * @brief This contains all core API Library methods * * @{ */ /** * @defgroup api_core_settings Settings * @brief API getters/setters for core library settings */ /** * @defgroup api_core_send_command Send Command * @brief API methods for sending commands to WiConnect WiFi module */ /** * @defgroup api_core_misc Miscellaneous * @brief Other core API methods */ /** * @defgroup api_core_macro Macros * @brief API specific macros */ // @} // ---------------------------------------------------------------------------- /** * @defgroup api_network Network API * @brief This contains all network API Library methods * * @{ */ /** * @defgroup api_network_settings Settings * @brief API getters/setters for module network settings */ /** * @defgroup api_network_wlan WLAN * @brief API methods for joining/leaving a WLAN */ /** * @defgroup api_network_setup Web Setup * @brief API methods for enabled/disabling module web setup */ /** * @defgroup api_network_util Utilities * @brief Network utility API methods */ /** * @defgroup api_network_macros Macros * @brief API specific macros */ // @} // ---------------------------------------------------------------------------- /** * @defgroup api_socket Socket API * @brief This contains all socket API Library methods * * @{ */ /** * @defgroup api_socket_tcp TCP * @brief TCP API methods */ /** * @defgroup api_socket_udp UDP * @brief UDP API methods */ /** * @defgroup api_socket_tls TLS * @brief TLS API methods */ /** * @defgroup api_socket_http HTTP * @brief HTTP API methods */ /** * @defgroup api_socket_misc Miscellaneous * @brief Miscellaneous socket API methods */ /** * @defgroup api_socket_macro Macros * @brief API specific macros */ // @} // ---------------------------------------------------------------------------- /** * @defgroup api_file File API * @brief This contains all file API Library methods * * @{ */ /** * @defgroup api_file_macro Macros * @brief API specific macros */ // @} // ---------------------------------------------------------------------------- /** * @defgroup types Types * @brief This contains all the Library typedefs and classes (including constructors) * * @{ */ /** * @defgroup types_core Core API * @brief Core API Types */ /** * @defgroup types_network Network API * @brief Network API Types */ /** * @defgroup types_socket Socket API * @brief Socket API Types */ /** * @defgroup types_file File API * @brief File API Types */ // @} // ---------------------------------------------------------------------------- /** * @defgroup conversion_util Conversion Utilities * @brief This contains all the conversion utility static functions. * */