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 Aug 13 03:14:30 2014 -0700
Revision:
13:2b51f5267c92
Parent:
11:ea484e1b7fc4
Child:
26:8067e3d463d3
doc updates

Who changed what in which revision?

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