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

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers README.h Source File

README.h

00001 /**
00002  * @mainpage Library Overview
00003  *
00004  * @section Overview
00005  * The WiConnect Library runs on a host MCU and controls a
00006  * WiConnect enabled WiFi module. This library is essentially a
00007  * programming API for the WiConnect serial command set.
00008  * More infomation about the serial command set may be found here:
00009  * <a href="http://wiconnect.ack.me" target="_blank">WiConnect Reference Guide</a>
00010  *
00011  * @if mbed_sdk
00012  * The library may be downloaded from here: <a href="http://developer.mbed.org/teams/ACKme/code/WiConnect/" target="_blank">WiConnect Repository</a>
00013  * @else
00014  * The library may be downloaded from here: <a href="https://bitbucket.org/ackme/ackme_wiconnect_library/src" target="_blank">WiConnect Repository</a>
00015  * @endif
00016  *
00017  * @section notes Important Notes
00018  * - This class is implemented as a 'singleton'. This means it only needs to be
00019  *   instantiated once.
00020  * - The WiConnect library does NOT call the global 'new' or 'malloc' functions.
00021  *   All memory allocation (if required) comes from a user supplied malloc function pointer or buffer
00022  *
00023  *
00024  * @section features Library Settings
00025  * The WiConnect Library has multiple settings so as to allow
00026  * for the most flexibility within a user's application.
00027  *
00028  * Some of these configurations are as follows:
00029  * - Blocking / Non-blocking
00030  * - Dynamic / Static allocation
00031  * - Asynchronous Processing
00032  *
00033  *
00034  * @subsection setting_blocking_modes Blocking / Non-blocking Modes
00035  * The WiConnect Library may be configured for either 'blocking' or
00036  * 'non-blocking' operation:
00037  * - blocking - API calls do not return until they complete successfully or timeout.
00038  * - non-blocking - API calls return immediately. The caller should check the return code to see
00039  *                  if the command is still processing, completed, or an error occurred. The caller
00040  *                  should continue to call the API function (as often as possible) until it returns
00041  *                  either a success or error code.
00042  *
00043  * @subsubsection setting_blocking_mode Blocking Mode
00044  * In blocking mode, an API function will block until it completes.
00045  * More details to come...
00046  *
00047  * @subsubsection setting_nonblocking_mode Non-Blocking Mode
00048  * In non-blocking mode, an API function returns immediately.
00049  * More details to come...
00050  *
00051  *
00052  *
00053  * @subsection setting_alloc Dynamic / Static Allocation
00054  * There are two cases when memory allocation is required:
00055  * - Buffer allocation
00056  * - Class instantiation
00057  *
00058  * In both cases, either static or dynamic memory allocation may be used.
00059  *
00060  * In cases when memory allocation is needed, the API call requires a buffer pointer
00061  * and length parameters. If both are supplied, the library uses the supplied external buffer.
00062  * This is considered static allocation (however the buffer could have been dynamically allocated).
00063  * The caller is responsible for maintaining the supplied buffer.
00064  *
00065  * If, however, only the buffer length is supplied and the buffer pointer is NULL
00066  * the Wiconnect Library will call the user supplied malloc() function. This is considered
00067  * dynamic allocation. In this case, the library will maintain the buffer and release it
00068  * when necessary using the user supplied free() function.
00069  *
00070  * @note To use dynamic allocation the WiConnect Library must be compiled with
00071  * @ref WICONNECT_ENABLE_MALLOC defined, and the Wiconnect() constructor must be
00072  * supplied with pointers to malloc() and free() functions.
00073  *
00074  * @note The Wiconnect Library does NOT call the global 'new' operator. Classes that are
00075  *       internally instantiated overload the 'new' operator and either call the user
00076  *       supplied malloc() function or use the supplied static buffer.
00077  *
00078  *
00079  * @subsection setting_async_processing Asynchronous Processing
00080  * When applicable, the WiConnect Library will asynchronously process
00081  * commands in the background. When the background processing completes, the
00082  * supplied callback is called.
00083  *
00084  * User commands may also be executed in the background using the enqueueCommand()
00085  * API function.
00086  *
00087  * @note The WiConnect Library must be compiled with @ref WICONNECT_ASYNC_TIMER_ENABLED
00088  *       defined for background processing to be enabled.
00089  *
00090  *
00091  *
00092  * @section send_command_desc Sending Commands To WiFi Module
00093  * More details to come...
00094  *
00095  *
00096  */
00097 
00098 // ----------------------------------------------------------------------------
00099 
00100 /**
00101  * @defgroup api_core Core
00102  * @brief   This contains all core related operations
00103  *
00104  * @{
00105  */
00106 
00107 /**
00108  * @defgroup api_core_settings Settings Methods
00109  * @brief    API getters/setters for core library settings
00110  */
00111 
00112 /**
00113  * @defgroup api_core_send_command Send Command Methods
00114  * @brief    API methods for sending commands to WiConnect WiFi module
00115  */
00116 
00117 /**
00118  * @defgroup api_core_misc Miscellaneous Methods
00119  * @brief    Other core methods
00120  */
00121 
00122 /**
00123  * @defgroup api_core_types Types
00124  * @brief    Core Types
00125  */
00126 
00127 
00128 /**
00129  * @defgroup api_core_macro Macros
00130  * @brief    Core macros
00131  */
00132 
00133 /**
00134  * @defgroup api_core_examples Examples
00135  * @brief    Core examples
00136  * @if mbed_sdk
00137  * * @ref ota/example.cpp
00138  * @endif
00139  */
00140 
00141 // @}
00142 
00143 
00144 // ----------------------------------------------------------------------------
00145 
00146 /**
00147  * @defgroup api_network Network
00148  * @brief   This contains all network related operations
00149  *
00150  * @{
00151  */
00152 
00153 /**
00154  * @defgroup api_network_settings Settings Methods
00155  * @brief    API getters/setters for module network settings
00156  */
00157 
00158 /**
00159  * @defgroup api_network_wlan WLAN Methods
00160  * @brief    Methods for joining/leaving a WLAN
00161  */
00162 
00163 /**
00164  * @defgroup api_network_setup Web Setup Methods
00165  * @brief    Methods for enabled/disabling module web setup
00166  */
00167 
00168 /**
00169  * @defgroup api_network_util Utility Methods
00170  * @brief    Network utility methods
00171  */
00172 
00173 /**
00174  * @defgroup api_network_types Types
00175  * @brief    Network Types
00176  */
00177 
00178 /**
00179  * @defgroup api_network_macros Macros
00180  * @brief    Network specific macros
00181  */
00182 
00183 /**
00184  * @defgroup api_network_examples Examples
00185  * @brief Network examples
00186  * @if mbed_sdk
00187  * * @ref web_setup/example.cpp
00188  * * @ref join/example.cpp
00189  * * @ref tcp_echo_client/main.cpp
00190  * * @ref udp_echo_client/main.cpp
00191  * @elseif arduino_sdk
00192  * * @ref ConnectNoEncryption/ConnectNoEncryption.cpp
00193  * * @ref ConnectWithWPA/ConnectWithWPA.cpp
00194  * @endif
00195  */
00196 
00197 // @}
00198 
00199 
00200 // ----------------------------------------------------------------------------
00201 
00202 /**
00203  * @defgroup api_socket Socket
00204  * @brief   This contains all socket related operations
00205  *
00206  * @{
00207  */
00208 
00209 /**
00210  * @defgroup api_socket_tcp TCP Methods
00211  * @brief    TCP methods
00212  */
00213 
00214 /**
00215  * @defgroup api_socket_udp UDP Methods
00216  * @brief    UDP methods
00217  */
00218 
00219 /**
00220  * @defgroup api_socket_tls TLS Methods
00221  * @brief    TLS methods
00222  */
00223 
00224 /**
00225  * @defgroup api_socket_http HTTP Methods
00226  * @brief    HTTP methods
00227  */
00228 
00229 /**
00230  * @defgroup api_socket_misc Miscellaneous Methods
00231  * @brief    Miscellaneous socket methods
00232  */
00233 
00234 /**
00235  * @defgroup api_socket_types Types
00236  * @brief    Socket Types
00237  */
00238 
00239 /**
00240  * @defgroup api_socket_macro Macros
00241  * @brief    Socket specific macros
00242  */
00243 
00244 /**
00245  * @defgroup api_socket_examples Examples
00246  * @brief    Socket examples
00247  * @if mbed_sdk
00248  * * @ref http_get/example.cpp
00249  * * @ref tcp_server/example.cpp
00250  * @elseif arduino_sdk
00251  * * @ref SimpleWebServerWiFi/SimpleWebServerWiFi.cpp
00252  * * @ref WiFiChatServer/WiFiChatServer.cpp
00253  * * @ref WiFiUdpNtpClient/WiFiUdpNtpClient.cpp
00254  * * @ref WiFiUdpSendReceiveString/WiFiUdpSendReceiveString.cpp
00255  * * @ref WiFiWebClient/WiFiWebClient.cpp
00256  * * @ref WiFiWebClientRepeating/WiFiWebClientRepeating.cpp
00257  * * @ref WiFiWebServer/WiFiWebServer.cpp
00258  * @endif
00259  *
00260  */
00261 
00262 // @}
00263 
00264 
00265 // ----------------------------------------------------------------------------
00266 
00267 /**
00268  * @defgroup api_file File
00269  * @brief   This contains all file related operations
00270  *
00271  * @{
00272  */
00273 
00274 /**
00275  * @defgroup api_file_methods Methods
00276  * @brief    File methods
00277  */
00278 
00279 /**
00280  * @defgroup api_file_types Types
00281  * @brief    File types
00282  */
00283 
00284 /**
00285  * @defgroup api_file_macro Macros
00286  * @brief    API specific macros
00287  */
00288 
00289 /**
00290  * @defgroup api_file_examples Examples
00291  * @brief    File examples
00292  */
00293 
00294 // @}
00295 
00296 // ----------------------------------------------------------------------------
00297 
00298 /**
00299  * @defgroup api_ghm goHACK.me
00300  * @brief   This contains all goHACK.me related operations
00301  *
00302  * @{
00303  */
00304 
00305 /**
00306  * @defgroup api_ghm_activate Activation
00307  * @brief    Methods for activating/deactivating the module with http://goHACK.me
00308  */
00309 
00310 /**
00311  * @defgroup api_ghm_com Read/Write
00312  * @brief    Methods for reading & writing data from/to http://goHACK.me
00313  */
00314 
00315 /**
00316  * @defgroup api_ghm_msg Message
00317  * @brief    Methods for getting, posting, listing, deleting messages wtih http://goHACK.me
00318  */
00319 
00320 /**
00321  * @defgroup api_ghm_types Types
00322  * @brief    goHACK.me Types
00323  */
00324 
00325 /**
00326  * @defgroup api_ghm_macro Macros
00327  * @brief    API specific macros
00328  */
00329 
00330 /**
00331  * @defgroup api_ghm_examples Examples
00332  * @brief    goHACK.me examples
00333  * @if mbed_sdk
00334  * @elseif arduino_sdk
00335  * * @ref GhmLedMatrix/GhmLedMatrix.cpp
00336  * @endif
00337  */
00338 
00339 // @}
00340 
00341 // ----------------------------------------------------------------------------
00342 
00343 /**
00344  * @defgroup conversion_util Conversion Utilities
00345  * @brief   This contains all the conversion utility static functions.
00346  *
00347  */
00348 
00349