RadioLibSmol/class_e_s_p8266.html
2020-08-22 08:35:55 +00:00

548 lines
25 KiB
HTML

<!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"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>RadioLib: ESP8266 Class Reference</title>
<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="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></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">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">RadioLib
</div>
<div id="projectbrief">Universal wireless communication library for Arduino</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></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('class_e_s_p8266.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)">
</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="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="class_e_s_p8266-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">ESP8266 Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Control class for ESP8266 module. Implements <a class="el" href="class_transport_layer.html" title="Provides common interface for protocols that run on modules with Internet connectivity, such as HTTP or MQTT. Because this class is used mainly as interface, all of its virtual members must be implemented in the module class. ">TransportLayer</a> methods.
<a href="class_e_s_p8266.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_e_s_p8266_8h_source.html">ESP8266.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ESP8266:</div>
<div class="dyncontent">
<div class="center">
<img src="class_e_s_p8266.png" usemap="#ESP8266_map" alt=""/>
<map id="ESP8266_map" name="ESP8266_map">
<area href="class_transport_layer.html" title="Provides common interface for protocols that run on modules with Internet connectivity, such as HTTP or MQTT. Because this class is used mainly as interface, all of its virtual members must be implemented in the module class. " alt="TransportLayer" shape="rect" coords="0,0,99,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ac0adb20130a378b8b99fcb9101823636"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_e_s_p8266.html#ac0adb20130a378b8b99fcb9101823636">ESP8266</a> (<a class="el" href="class_module.html">Module</a> *module)</td></tr>
<tr class="memdesc:ac0adb20130a378b8b99fcb9101823636"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. <a href="#ac0adb20130a378b8b99fcb9101823636">More...</a><br /></td></tr>
<tr class="separator:ac0adb20130a378b8b99fcb9101823636"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae25a6901976a548443e2b7d49ca94d9b"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_e_s_p8266.html#ae25a6901976a548443e2b7d49ca94d9b">begin</a> (long speed)</td></tr>
<tr class="memdesc:ae25a6901976a548443e2b7d49ca94d9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialization method. <a href="#ae25a6901976a548443e2b7d49ca94d9b">More...</a><br /></td></tr>
<tr class="separator:ae25a6901976a548443e2b7d49ca94d9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee0279b476a83a55f54ab22e6d8f3904"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_e_s_p8266.html#aee0279b476a83a55f54ab22e6d8f3904">reset</a> ()</td></tr>
<tr class="memdesc:aee0279b476a83a55f54ab22e6d8f3904"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resets module using AT command. <a href="#aee0279b476a83a55f54ab22e6d8f3904">More...</a><br /></td></tr>
<tr class="separator:aee0279b476a83a55f54ab22e6d8f3904"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb39d205464bc4789c87120564258432"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_e_s_p8266.html#abb39d205464bc4789c87120564258432">join</a> (const char *ssid, const char *password)</td></tr>
<tr class="memdesc:abb39d205464bc4789c87120564258432"><td class="mdescLeft">&#160;</td><td class="mdescRight">Joins access point. <a href="#abb39d205464bc4789c87120564258432">More...</a><br /></td></tr>
<tr class="separator:abb39d205464bc4789c87120564258432"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a535f4b7a8ef104b208753f9361568d20"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_e_s_p8266.html#a535f4b7a8ef104b208753f9361568d20">openTransportConnection</a> (const char *host, const char *protocol, uint16_t port, uint16_t tcpKeepAlive=0) override</td></tr>
<tr class="memdesc:a535f4b7a8ef104b208753f9361568d20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Open transport layer connection. <a href="#a535f4b7a8ef104b208753f9361568d20">More...</a><br /></td></tr>
<tr class="separator:a535f4b7a8ef104b208753f9361568d20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa71846340d1a679a12ddb9b9597f8f91"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_e_s_p8266.html#aa71846340d1a679a12ddb9b9597f8f91">closeTransportConnection</a> () override</td></tr>
<tr class="memdesc:aa71846340d1a679a12ddb9b9597f8f91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Close transport layer connection. <a href="#aa71846340d1a679a12ddb9b9597f8f91">More...</a><br /></td></tr>
<tr class="separator:aa71846340d1a679a12ddb9b9597f8f91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1caaa537edd52d1c2b7a0a25ef69c1c9"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_e_s_p8266.html#a1caaa537edd52d1c2b7a0a25ef69c1c9">send</a> (const char *data) override</td></tr>
<tr class="memdesc:a1caaa537edd52d1c2b7a0a25ef69c1c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send string-based data. <a href="#a1caaa537edd52d1c2b7a0a25ef69c1c9">More...</a><br /></td></tr>
<tr class="separator:a1caaa537edd52d1c2b7a0a25ef69c1c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f34474953b7dbe4d057c8e3f65e0dc4"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_e_s_p8266.html#a2f34474953b7dbe4d057c8e3f65e0dc4">send</a> (uint8_t *data, size_t len) override</td></tr>
<tr class="memdesc:a2f34474953b7dbe4d057c8e3f65e0dc4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send arbitrary binary data. <a href="#a2f34474953b7dbe4d057c8e3f65e0dc4">More...</a><br /></td></tr>
<tr class="separator:a2f34474953b7dbe4d057c8e3f65e0dc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa79f841de9ae9c5d6057e89a9f1721ea"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_e_s_p8266.html#aa79f841de9ae9c5d6057e89a9f1721ea">receive</a> (uint8_t *data, size_t len, uint32_t timeout=10000) override</td></tr>
<tr class="memdesc:aa79f841de9ae9c5d6057e89a9f1721ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Receive data. <a href="#aa79f841de9ae9c5d6057e89a9f1721ea">More...</a><br /></td></tr>
<tr class="separator:aa79f841de9ae9c5d6057e89a9f1721ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac463b6a80cdc52e7db50b1f6760cec3f"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_e_s_p8266.html#ac463b6a80cdc52e7db50b1f6760cec3f">getNumBytes</a> (uint32_t timeout=10000, size_t minBytes=10) override</td></tr>
<tr class="memdesc:ac463b6a80cdc52e7db50b1f6760cec3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get number of received bytes. <a href="#ac463b6a80cdc52e7db50b1f6760cec3f">More...</a><br /></td></tr>
<tr class="separator:ac463b6a80cdc52e7db50b1f6760cec3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Control class for ESP8266 module. Implements <a class="el" href="class_transport_layer.html" title="Provides common interface for protocols that run on modules with Internet connectivity, such as HTTP or MQTT. Because this class is used mainly as interface, all of its virtual members must be implemented in the module class. ">TransportLayer</a> methods. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ac0adb20130a378b8b99fcb9101823636"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac0adb20130a378b8b99fcb9101823636">&#9670;&nbsp;</a></span>ESP8266()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ESP8266::ESP8266 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="class_module.html">Module</a> *&#160;</td>
<td class="paramname"><em>module</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Default constructor. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">mod</td><td>Instance of <a class="el" href="class_module.html" title="Implements all common low-level SPI/UART/I2C methods to control the wireless module. Every module class contains one private instance of this class. ">Module</a> that will be used to communicate with the radio. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ae25a6901976a548443e2b7d49ca94d9b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae25a6901976a548443e2b7d49ca94d9b">&#9670;&nbsp;</a></span>begin()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int16_t ESP8266::begin </td>
<td>(</td>
<td class="paramtype">long&#160;</td>
<td class="paramname"><em>speed</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialization method. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">speed</td><td>Baud rate to use for UART interface.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__status__codes.html">Status Codes</a> </dd></dl>
</div>
</div>
<a id="aa71846340d1a679a12ddb9b9597f8f91"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa71846340d1a679a12ddb9b9597f8f91">&#9670;&nbsp;</a></span>closeTransportConnection()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int16_t ESP8266::closeTransportConnection </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Close transport layer connection. </p>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__status__codes.html">Status Codes</a> </dd></dl>
<p>Implements <a class="el" href="class_transport_layer.html#a82fc1c71a0f6d0aac1be7f6c184a0021">TransportLayer</a>.</p>
</div>
</div>
<a id="ac463b6a80cdc52e7db50b1f6760cec3f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac463b6a80cdc52e7db50b1f6760cec3f">&#9670;&nbsp;</a></span>getNumBytes()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t ESP8266::getNumBytes </td>
<td>(</td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>timeout</em> = <code>10000</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>minBytes</em> = <code>10</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get number of received bytes. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">timeout</td><td>Reception timeout in ms. Defaults to 10000.</td></tr>
<tr><td class="paramname">minBytes</td><td>Minimum required number of bytes that must be received.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Number of received bytes, or 0 on timeout. </dd></dl>
<p>Implements <a class="el" href="class_transport_layer.html#a730e6671632844b1effc114e5c7d95c8">TransportLayer</a>.</p>
</div>
</div>
<a id="abb39d205464bc4789c87120564258432"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abb39d205464bc4789c87120564258432">&#9670;&nbsp;</a></span>join()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int16_t ESP8266::join </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>ssid</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>password</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Joins access point. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ssid</td><td>Access point SSID.</td></tr>
<tr><td class="paramname">password</td><td>Access point password. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a535f4b7a8ef104b208753f9361568d20"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a535f4b7a8ef104b208753f9361568d20">&#9670;&nbsp;</a></span>openTransportConnection()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int16_t ESP8266::openTransportConnection </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>host</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>protocol</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>port</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>tcpKeepAlive</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Open transport layer connection. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">host</td><td>Host to connect to.</td></tr>
<tr><td class="paramname">protocol</td><td>Transport protocol to use. Usually "TCP" or "UDP".</td></tr>
<tr><td class="paramname">port</td><td>to be used for the connection.</td></tr>
<tr><td class="paramname">tcpKeepAlive</td><td>TCP keep alive interval. Defaults to 0.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__status__codes.html">Status Codes</a> </dd></dl>
<p>Implements <a class="el" href="class_transport_layer.html#a36b1ceebca3643fb475607d3d92f5d63">TransportLayer</a>.</p>
</div>
</div>
<a id="aa79f841de9ae9c5d6057e89a9f1721ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa79f841de9ae9c5d6057e89a9f1721ea">&#9670;&nbsp;</a></span>receive()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t ESP8266::receive </td>
<td>(</td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>timeout</em> = <code>10000</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Receive data. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">data</td><td>Pointer to array to save the received data.</td></tr>
<tr><td class="paramname">len</td><td>Number of bytes to read.</td></tr>
<tr><td class="paramname">timeout</td><td>Reception timeout in ms. Defaults to 10000.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__status__codes.html">Status Codes</a> </dd></dl>
<p>Implements <a class="el" href="class_transport_layer.html#a846492348f71d7328834076c9046dc3f">TransportLayer</a>.</p>
</div>
</div>
<a id="aee0279b476a83a55f54ab22e6d8f3904"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aee0279b476a83a55f54ab22e6d8f3904">&#9670;&nbsp;</a></span>reset()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int16_t ESP8266::reset </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Resets module using AT command. </p>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__status__codes.html">Status Codes</a> </dd></dl>
</div>
</div>
<a id="a1caaa537edd52d1c2b7a0a25ef69c1c9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1caaa537edd52d1c2b7a0a25ef69c1c9">&#9670;&nbsp;</a></span>send() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int16_t ESP8266::send </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>data</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Send string-based data. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">string</td><td>String data to be sent.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__status__codes.html">Status Codes</a> </dd></dl>
<p>Implements <a class="el" href="class_transport_layer.html#a1d9cb76640868aa0338b52808e4f022d">TransportLayer</a>.</p>
</div>
</div>
<a id="a2f34474953b7dbe4d057c8e3f65e0dc4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f34474953b7dbe4d057c8e3f65e0dc4">&#9670;&nbsp;</a></span>send() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int16_t ESP8266::send </td>
<td>(</td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>len</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Send arbitrary binary data. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">data</td><td>Data to be sent.</td></tr>
<tr><td class="paramname">len</td><td>Number of bytes to send.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__status__codes.html">Status Codes</a> </dd></dl>
<p>Implements <a class="el" href="class_transport_layer.html#afb001c6348bc19694090532cc5f00e52">TransportLayer</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>src/modules/ESP8266/<a class="el" href="_e_s_p8266_8h_source.html">ESP8266.h</a></li>
<li>src/modules/ESP8266/ESP8266.cpp</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_e_s_p8266.html">ESP8266</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>
</div>
</body>
</html>