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

doc/mbed/html/index.html

Committer:
dan_ackme
Date:
2014-11-26
Revision:
34:2616445d0823

File content as of revision 34:2616445d0823:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>ACKme WiConnect Host Library</title>
<link rel="icon" href="favicon.ico" type="image/x-icon">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea" style="font-family:verdana;">
    <table border='0' cellpadding='0' cellspacing='0' width="98%">
      <tr style="height:20px"><td>&nbsp;</td></tr>
      <tr style="border-collapse: collapse; padding: 0;">
        <td style="width:20px"></td>
        <td style="padding-right:40px"><img src="ackmelogo.png" alt="ACKme Logo" /></td>
        <td style="vertical-align:middle; text-align:left; font: bold 25px/100% Verdana, Arial, Helvetica, sans-serif;">
        WiConnect Host Library- API Reference Guide</td>
        <td style="width:20px"></td>
      </tr>
      <tr><td>&nbsp;</td></tr>
    </table>
</div><!-- Generated by Doxygen 1.8.7 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li class="current"><a href="index.html"><span>Library&#160;Overview</span></a></li>
      <li><a href="modules.html"><span>Library&#160;API</span></a></li>
      <li><a href="examples.html"><span>API&#160;Examples</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="http://wiconnect.ack.me/2.0/general_overview"><span>WiConnect&#160;Reference&#160;Manual</span></a></li>
      <li><a href="http://www.ack.me/WiConnect"><span>ACKme&#160;Website</span></a></li>
      <li><a href="http://developer.mbed.org/teams/ACKme/code/WiConnect/"><span>WiConnect&#160;Repository</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('index.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<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>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">Library Overview </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><h1><a class="anchor" id="Overview"></a>
Overview</h1>
<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>
<p>The library may be downloaded from here: <a href="http://developer.mbed.org/teams/ACKme/code/WiConnect/" target="_blank">WiConnect Repository</a></p>
<h1><a class="anchor" id="notes"></a>
Important Notes</h1>
<ul>
<li>This class is implemented as a 'singleton'. This means it only needs to be instantiated once.</li>
<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>
</ul>
<h1><a class="anchor" id="features"></a>
Library Settings</h1>
<p>The WiConnect Library has multiple settings so as to allow for the most flexibility within a user's application.</p>
<p>Some of these configurations are as follows:</p><ul>
<li>Blocking / Non-blocking</li>
<li>Dynamic / Static allocation</li>
<li>Asynchronous Processing</li>
</ul>
<h2><a class="anchor" id="setting_blocking_modes"></a>
Blocking / Non-blocking Modes</h2>
<p>The WiConnect Library may be configured for either 'blocking' or 'non-blocking' operation:</p><ul>
<li>blocking - API calls do not return until they complete successfully or timeout.</li>
<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>
</ul>
<h3><a class="anchor" id="setting_blocking_mode"></a>
Blocking Mode</h3>
<p>In blocking mode, an API function will block until it completes. More details to come...</p>
<h3><a class="anchor" id="setting_nonblocking_mode"></a>
Non-Blocking Mode</h3>
<p>In non-blocking mode, an API function returns immediately. More details to come...</p>
<h2><a class="anchor" id="setting_alloc"></a>
Dynamic / Static Allocation</h2>
<p>There are two cases when memory allocation is required:</p><ul>
<li>Buffer allocation</li>
<li>Class instantiation</li>
</ul>
<p>In both cases, either static or dynamic memory allocation may be used.</p>
<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>
<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>
<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>
<dd>
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>
<h2><a class="anchor" id="setting_async_processing"></a>
Asynchronous Processing</h2>
<p>When applicable, the WiConnect Library will asynchronously process commands in the background. When the background processing completes, the supplied callback is called.</p>
<p>User commands may also be executed in the background using the enqueueCommand() API function.</p>
<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>
<h1><a class="anchor" id="send_command_desc"></a>
Sending Commands To WiFi Module</h1>
<p>More details to come... </p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">&copy; ACKme Networks 2014</li>
  </ul>
</div>
</body>
</html>