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

Committer:
dan_ackme
Date:
Wed Nov 26 23:46:00 2014 -0800
Revision:
34:2616445d0823
added support for out-dated wifi firmware

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dan_ackme 34:2616445d0823 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
dan_ackme 34:2616445d0823 2 <html xmlns="http://www.w3.org/1999/xhtml">
dan_ackme 34:2616445d0823 3 <head>
dan_ackme 34:2616445d0823 4 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
dan_ackme 34:2616445d0823 5 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
dan_ackme 34:2616445d0823 6 <title>ACKme WiConnect Host Library</title>
dan_ackme 34:2616445d0823 7 <link rel="icon" href="favicon.ico" type="image/x-icon">
dan_ackme 34:2616445d0823 8 <link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
dan_ackme 34:2616445d0823 9 <link href="tabs.css" rel="stylesheet" type="text/css"/>
dan_ackme 34:2616445d0823 10 <script type="text/javascript" src="jquery.js"></script>
dan_ackme 34:2616445d0823 11 <script type="text/javascript" src="dynsections.js"></script>
dan_ackme 34:2616445d0823 12 <link href="navtree.css" rel="stylesheet" type="text/css"/>
dan_ackme 34:2616445d0823 13 <script type="text/javascript" src="resize.js"></script>
dan_ackme 34:2616445d0823 14 <script type="text/javascript" src="navtree.js"></script>
dan_ackme 34:2616445d0823 15 <script type="text/javascript">
dan_ackme 34:2616445d0823 16 $(document).ready(initResizable);
dan_ackme 34:2616445d0823 17 $(window).load(resizeHeight);
dan_ackme 34:2616445d0823 18 </script>
dan_ackme 34:2616445d0823 19 <link href="search/search.css" rel="stylesheet" type="text/css"/>
dan_ackme 34:2616445d0823 20 <script type="text/javascript" src="search/search.js"></script>
dan_ackme 34:2616445d0823 21 <script type="text/javascript">
dan_ackme 34:2616445d0823 22 $(document).ready(function() { searchBox.OnSelectItem(0); });
dan_ackme 34:2616445d0823 23 </script>
dan_ackme 34:2616445d0823 24 <link href="doxygen.css" rel="stylesheet" type="text/css" />
dan_ackme 34:2616445d0823 25 </head>
dan_ackme 34:2616445d0823 26 <body>
dan_ackme 34:2616445d0823 27 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
dan_ackme 34:2616445d0823 28 <div id="titlearea" style="font-family:verdana;">
dan_ackme 34:2616445d0823 29 <table border='0' cellpadding='0' cellspacing='0' width="98%">
dan_ackme 34:2616445d0823 30 <tr style="height:20px"><td>&nbsp;</td></tr>
dan_ackme 34:2616445d0823 31 <tr style="border-collapse: collapse; padding: 0;">
dan_ackme 34:2616445d0823 32 <td style="width:20px"></td>
dan_ackme 34:2616445d0823 33 <td style="padding-right:40px"><img src="ackmelogo.png" alt="ACKme Logo" /></td>
dan_ackme 34:2616445d0823 34 <td style="vertical-align:middle; text-align:left; font: bold 25px/100% Verdana, Arial, Helvetica, sans-serif;">
dan_ackme 34:2616445d0823 35 WiConnect Host Library- API Reference Guide</td>
dan_ackme 34:2616445d0823 36 <td style="width:20px"></td>
dan_ackme 34:2616445d0823 37 </tr>
dan_ackme 34:2616445d0823 38 <tr><td>&nbsp;</td></tr>
dan_ackme 34:2616445d0823 39 </table>
dan_ackme 34:2616445d0823 40 </div><!-- Generated by Doxygen 1.8.7 -->
dan_ackme 34:2616445d0823 41 <script type="text/javascript">
dan_ackme 34:2616445d0823 42 var searchBox = new SearchBox("searchBox", "search",false,'Search');
dan_ackme 34:2616445d0823 43 </script>
dan_ackme 34:2616445d0823 44 <div id="navrow1" class="tabs">
dan_ackme 34:2616445d0823 45 <ul class="tablist">
dan_ackme 34:2616445d0823 46 <li class="current"><a href="index.html"><span>Library&#160;Overview</span></a></li>
dan_ackme 34:2616445d0823 47 <li><a href="modules.html"><span>Library&#160;API</span></a></li>
dan_ackme 34:2616445d0823 48 <li><a href="examples.html"><span>API&#160;Examples</span></a></li>
dan_ackme 34:2616445d0823 49 <li><a href="annotated.html"><span>Classes</span></a></li>
dan_ackme 34:2616445d0823 50 <li><a href="http://wiconnect.ack.me/2.0/general_overview"><span>WiConnect&#160;Reference&#160;Manual</span></a></li>
dan_ackme 34:2616445d0823 51 <li><a href="http://www.ack.me/WiConnect"><span>ACKme&#160;Website</span></a></li>
dan_ackme 34:2616445d0823 52 <li><a href="http://developer.mbed.org/teams/ACKme/code/WiConnect/"><span>WiConnect&#160;Repository</span></a></li>
dan_ackme 34:2616445d0823 53 <li>
dan_ackme 34:2616445d0823 54 <div id="MSearchBox" class="MSearchBoxInactive">
dan_ackme 34:2616445d0823 55 <span class="left">
dan_ackme 34:2616445d0823 56 <img id="MSearchSelect" src="search/mag_sel.png"
dan_ackme 34:2616445d0823 57 onmouseover="return searchBox.OnSearchSelectShow()"
dan_ackme 34:2616445d0823 58 onmouseout="return searchBox.OnSearchSelectHide()"
dan_ackme 34:2616445d0823 59 alt=""/>
dan_ackme 34:2616445d0823 60 <input type="text" id="MSearchField" value="Search" accesskey="S"
dan_ackme 34:2616445d0823 61 onfocus="searchBox.OnSearchFieldFocus(true)"
dan_ackme 34:2616445d0823 62 onblur="searchBox.OnSearchFieldFocus(false)"
dan_ackme 34:2616445d0823 63 onkeyup="searchBox.OnSearchFieldChange(event)"/>
dan_ackme 34:2616445d0823 64 </span><span class="right">
dan_ackme 34:2616445d0823 65 <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
dan_ackme 34:2616445d0823 66 </span>
dan_ackme 34:2616445d0823 67 </div>
dan_ackme 34:2616445d0823 68 </li>
dan_ackme 34:2616445d0823 69 </ul>
dan_ackme 34:2616445d0823 70 </div>
dan_ackme 34:2616445d0823 71 </div><!-- top -->
dan_ackme 34:2616445d0823 72 <div id="side-nav" class="ui-resizable side-nav-resizable">
dan_ackme 34:2616445d0823 73 <div id="nav-tree">
dan_ackme 34:2616445d0823 74 <div id="nav-tree-contents">
dan_ackme 34:2616445d0823 75 <div id="nav-sync" class="sync"></div>
dan_ackme 34:2616445d0823 76 </div>
dan_ackme 34:2616445d0823 77 </div>
dan_ackme 34:2616445d0823 78 <div id="splitbar" style="-moz-user-select:none;"
dan_ackme 34:2616445d0823 79 class="ui-resizable-handle">
dan_ackme 34:2616445d0823 80 </div>
dan_ackme 34:2616445d0823 81 </div>
dan_ackme 34:2616445d0823 82 <script type="text/javascript">
dan_ackme 34:2616445d0823 83 $(document).ready(function(){initNavTree('index.html','');});
dan_ackme 34:2616445d0823 84 </script>
dan_ackme 34:2616445d0823 85 <div id="doc-content">
dan_ackme 34:2616445d0823 86 <!-- window showing the filter options -->
dan_ackme 34:2616445d0823 87 <div id="MSearchSelectWindow"
dan_ackme 34:2616445d0823 88 onmouseover="return searchBox.OnSearchSelectShow()"
dan_ackme 34:2616445d0823 89 onmouseout="return searchBox.OnSearchSelectHide()"
dan_ackme 34:2616445d0823 90 onkeydown="return searchBox.OnSearchSelectKey(event)">
dan_ackme 34:2616445d0823 91 <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
dan_ackme 34:2616445d0823 92
dan_ackme 34:2616445d0823 93 <!-- iframe showing the search results (closed by default) -->
dan_ackme 34:2616445d0823 94 <div id="MSearchResultsWindow">
dan_ackme 34:2616445d0823 95 <iframe src="javascript:void(0)" frameborder="0"
dan_ackme 34:2616445d0823 96 name="MSearchResults" id="MSearchResults">
dan_ackme 34:2616445d0823 97 </iframe>
dan_ackme 34:2616445d0823 98 </div>
dan_ackme 34:2616445d0823 99
dan_ackme 34:2616445d0823 100 <div class="header">
dan_ackme 34:2616445d0823 101 <div class="headertitle">
dan_ackme 34:2616445d0823 102 <div class="title">Library Overview </div> </div>
dan_ackme 34:2616445d0823 103 </div><!--header-->
dan_ackme 34:2616445d0823 104 <div class="contents">
dan_ackme 34:2616445d0823 105 <div class="textblock"><h1><a class="anchor" id="Overview"></a>
dan_ackme 34:2616445d0823 106 Overview</h1>
dan_ackme 34:2616445d0823 107 <p>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></p>
dan_ackme 34:2616445d0823 108 <p>The library may be downloaded from here: <a href="http://developer.mbed.org/teams/ACKme/code/WiConnect/" target="_blank">WiConnect Repository</a></p>
dan_ackme 34:2616445d0823 109 <h1><a class="anchor" id="notes"></a>
dan_ackme 34:2616445d0823 110 Important Notes</h1>
dan_ackme 34:2616445d0823 111 <ul>
dan_ackme 34:2616445d0823 112 <li>This class is implemented as a 'singleton'. This means it only needs to be instantiated once.</li>
dan_ackme 34:2616445d0823 113 <li>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</li>
dan_ackme 34:2616445d0823 114 </ul>
dan_ackme 34:2616445d0823 115 <h1><a class="anchor" id="features"></a>
dan_ackme 34:2616445d0823 116 Library Settings</h1>
dan_ackme 34:2616445d0823 117 <p>The WiConnect Library has multiple settings so as to allow for the most flexibility within a user's application.</p>
dan_ackme 34:2616445d0823 118 <p>Some of these configurations are as follows:</p><ul>
dan_ackme 34:2616445d0823 119 <li>Blocking / Non-blocking</li>
dan_ackme 34:2616445d0823 120 <li>Dynamic / Static allocation</li>
dan_ackme 34:2616445d0823 121 <li>Asynchronous Processing</li>
dan_ackme 34:2616445d0823 122 </ul>
dan_ackme 34:2616445d0823 123 <h2><a class="anchor" id="setting_blocking_modes"></a>
dan_ackme 34:2616445d0823 124 Blocking / Non-blocking Modes</h2>
dan_ackme 34:2616445d0823 125 <p>The WiConnect Library may be configured for either 'blocking' or 'non-blocking' operation:</p><ul>
dan_ackme 34:2616445d0823 126 <li>blocking - API calls do not return until they complete successfully or timeout.</li>
dan_ackme 34:2616445d0823 127 <li>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.</li>
dan_ackme 34:2616445d0823 128 </ul>
dan_ackme 34:2616445d0823 129 <h3><a class="anchor" id="setting_blocking_mode"></a>
dan_ackme 34:2616445d0823 130 Blocking Mode</h3>
dan_ackme 34:2616445d0823 131 <p>In blocking mode, an API function will block until it completes. More details to come...</p>
dan_ackme 34:2616445d0823 132 <h3><a class="anchor" id="setting_nonblocking_mode"></a>
dan_ackme 34:2616445d0823 133 Non-Blocking Mode</h3>
dan_ackme 34:2616445d0823 134 <p>In non-blocking mode, an API function returns immediately. More details to come...</p>
dan_ackme 34:2616445d0823 135 <h2><a class="anchor" id="setting_alloc"></a>
dan_ackme 34:2616445d0823 136 Dynamic / Static Allocation</h2>
dan_ackme 34:2616445d0823 137 <p>There are two cases when memory allocation is required:</p><ul>
dan_ackme 34:2616445d0823 138 <li>Buffer allocation</li>
dan_ackme 34:2616445d0823 139 <li>Class instantiation</li>
dan_ackme 34:2616445d0823 140 </ul>
dan_ackme 34:2616445d0823 141 <p>In both cases, either static or dynamic memory allocation may be used.</p>
dan_ackme 34:2616445d0823 142 <p>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.</p>
dan_ackme 34:2616445d0823 143 <p>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.</p>
dan_ackme 34:2616445d0823 144 <dl class="section note"><dt>Note</dt><dd>To use dynamic allocation the WiConnect Library must be compiled with <a class="el" href="group__api__core__macro.html#gae9cf1249b46e784aa05250e2bcbe2e02">WICONNECT_ENABLE_MALLOC</a> defined, and the Wiconnect() constructor must be supplied with pointers to malloc() and free() functions.</dd>
dan_ackme 34:2616445d0823 145 <dd>
dan_ackme 34:2616445d0823 146 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.</dd></dl>
dan_ackme 34:2616445d0823 147 <h2><a class="anchor" id="setting_async_processing"></a>
dan_ackme 34:2616445d0823 148 Asynchronous Processing</h2>
dan_ackme 34:2616445d0823 149 <p>When applicable, the WiConnect Library will asynchronously process commands in the background. When the background processing completes, the supplied callback is called.</p>
dan_ackme 34:2616445d0823 150 <p>User commands may also be executed in the background using the enqueueCommand() API function.</p>
dan_ackme 34:2616445d0823 151 <dl class="section note"><dt>Note</dt><dd>The WiConnect Library must be compiled with <a class="el" href="group__api__core__macro.html#gad466ede4f07512308e38402d777d8380">WICONNECT_ASYNC_TIMER_ENABLED</a> defined for background processing to be enabled.</dd></dl>
dan_ackme 34:2616445d0823 152 <h1><a class="anchor" id="send_command_desc"></a>
dan_ackme 34:2616445d0823 153 Sending Commands To WiFi Module</h1>
dan_ackme 34:2616445d0823 154 <p>More details to come... </p>
dan_ackme 34:2616445d0823 155 </div></div><!-- contents -->
dan_ackme 34:2616445d0823 156 </div><!-- doc-content -->
dan_ackme 34:2616445d0823 157 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
dan_ackme 34:2616445d0823 158 <ul>
dan_ackme 34:2616445d0823 159 <li class="footer">&copy; ACKme Networks 2014</li>
dan_ackme 34:2616445d0823 160 </ul>
dan_ackme 34:2616445d0823 161 </div>
dan_ackme 34:2616445d0823 162 </body>
dan_ackme 34:2616445d0823 163 </html>