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

462 lines
22 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: MQTTClient 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_m_q_t_t_client.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_m_q_t_t_client-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">MQTTClient Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Client for simple MQTT communication.
<a href="class_m_q_t_t_client.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_m_q_t_t_8h_source.html">MQTT.h</a>&gt;</code></p>
<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:a6ecdbc80b76ae32b926e84af620dacb6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_q_t_t_client.html#a6ecdbc80b76ae32b926e84af620dacb6">MQTTClient</a> (<a class="el" href="class_transport_layer.html">TransportLayer</a> *tl, uint16_t port=1883)</td></tr>
<tr class="memdesc:a6ecdbc80b76ae32b926e84af620dacb6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. <a href="#a6ecdbc80b76ae32b926e84af620dacb6">More...</a><br /></td></tr>
<tr class="separator:a6ecdbc80b76ae32b926e84af620dacb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac15b32e89df903b20b066113bf8c4a88"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_q_t_t_client.html#ac15b32e89df903b20b066113bf8c4a88">connect</a> (const char *host, const char *clientId, const char *userName=&quot;&quot;, const char *password=&quot;&quot;, uint16_t keepAlive=60, bool cleanSession=true, const char *willTopic=&quot;&quot;, const char *willMessage=&quot;&quot;)</td></tr>
<tr class="memdesc:ac15b32e89df903b20b066113bf8c4a88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connects to MQTT broker (/server). <a href="#ac15b32e89df903b20b066113bf8c4a88">More...</a><br /></td></tr>
<tr class="separator:ac15b32e89df903b20b066113bf8c4a88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af10176e2cf67bd652823d44f3203a96e"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_q_t_t_client.html#af10176e2cf67bd652823d44f3203a96e">disconnect</a> ()</td></tr>
<tr class="memdesc:af10176e2cf67bd652823d44f3203a96e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disconnect from MQTT broker. <a href="#af10176e2cf67bd652823d44f3203a96e">More...</a><br /></td></tr>
<tr class="separator:af10176e2cf67bd652823d44f3203a96e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace3ee45313dea2f853207accf20b7c87"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_q_t_t_client.html#ace3ee45313dea2f853207accf20b7c87">publish</a> (String &amp;topic, String &amp;message)</td></tr>
<tr class="memdesc:ace3ee45313dea2f853207accf20b7c87"><td class="mdescLeft">&#160;</td><td class="mdescRight">Publish MQTT message. <a href="#ace3ee45313dea2f853207accf20b7c87">More...</a><br /></td></tr>
<tr class="separator:ace3ee45313dea2f853207accf20b7c87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab59a1174098dfdf514d8ec6d0bd9d015"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_q_t_t_client.html#ab59a1174098dfdf514d8ec6d0bd9d015">publish</a> (const char *topic, const char *message)</td></tr>
<tr class="memdesc:ab59a1174098dfdf514d8ec6d0bd9d015"><td class="mdescLeft">&#160;</td><td class="mdescRight">Publish MQTT message. <a href="#ab59a1174098dfdf514d8ec6d0bd9d015">More...</a><br /></td></tr>
<tr class="separator:ab59a1174098dfdf514d8ec6d0bd9d015"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9488df90534953c33d76e9183965a300"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_q_t_t_client.html#a9488df90534953c33d76e9183965a300">subscribe</a> (const char *topicFilter)</td></tr>
<tr class="memdesc:a9488df90534953c33d76e9183965a300"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subscribe to MQTT topic. <a href="#a9488df90534953c33d76e9183965a300">More...</a><br /></td></tr>
<tr class="separator:a9488df90534953c33d76e9183965a300"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a782158f20b289746b7b6884fd922a22c"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_q_t_t_client.html#a782158f20b289746b7b6884fd922a22c">unsubscribe</a> (const char *topicFilter)</td></tr>
<tr class="memdesc:a782158f20b289746b7b6884fd922a22c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsubscribe from MQTT topic. <a href="#a782158f20b289746b7b6884fd922a22c">More...</a><br /></td></tr>
<tr class="separator:a782158f20b289746b7b6884fd922a22c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea3fb930ed43a0b3122ccc90efebb99d"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_q_t_t_client.html#aea3fb930ed43a0b3122ccc90efebb99d">ping</a> ()</td></tr>
<tr class="memdesc:aea3fb930ed43a0b3122ccc90efebb99d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ping MQTT broker. This method can be used to keep connection open. <a href="#aea3fb930ed43a0b3122ccc90efebb99d">More...</a><br /></td></tr>
<tr class="separator:aea3fb930ed43a0b3122ccc90efebb99d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49cb16ef730ad50ba5dc472ac10d933e"><td class="memItemLeft" align="right" valign="top">int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_m_q_t_t_client.html#a49cb16ef730ad50ba5dc472ac10d933e">check</a> (void(*func)(const char *, const char *))</td></tr>
<tr class="memdesc:a49cb16ef730ad50ba5dc472ac10d933e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set function to be called when checking new messages in subscribed topics. <a href="#a49cb16ef730ad50ba5dc472ac10d933e">More...</a><br /></td></tr>
<tr class="separator:a49cb16ef730ad50ba5dc472ac10d933e"><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>Client for simple MQTT communication. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a6ecdbc80b76ae32b926e84af620dacb6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6ecdbc80b76ae32b926e84af620dacb6">&#9670;&nbsp;</a></span>MQTTClient()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">MQTTClient::MQTTClient </td>
<td>(</td>
<td class="paramtype"><a class="el" href="class_transport_layer.html">TransportLayer</a> *&#160;</td>
<td class="paramname"><em>tl</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>port</em> = <code>1883</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">explicit</span></span> </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">tl</td><td>Pointer to the wireless module providing <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> communication. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a49cb16ef730ad50ba5dc472ac10d933e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a49cb16ef730ad50ba5dc472ac10d933e">&#9670;&nbsp;</a></span>check()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int16_t MQTTClient::check </td>
<td>(</td>
<td class="paramtype">void(*)(const char *, const char *)&#160;</td>
<td class="paramname"><em>func</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set function to be called when checking new messages in subscribed topics. </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="ac15b32e89df903b20b066113bf8c4a88"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac15b32e89df903b20b066113bf8c4a88">&#9670;&nbsp;</a></span>connect()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int16_t MQTTClient::connect </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>clientId</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>userName</em> = <code>&quot;&quot;</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>password</em> = <code>&quot;&quot;</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>keepAlive</em> = <code>60</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>cleanSession</em> = <code>true</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>willTopic</em> = <code>&quot;&quot;</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>willMessage</em> = <code>&quot;&quot;</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Connects to MQTT broker (/server). </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">host</td><td>URL of the MQTT broker.</td></tr>
<tr><td class="paramname">clientId</td><td>ID of the client.</td></tr>
<tr><td class="paramname">username</td><td>Username to be used in the connection. Defaults to empty string (no username).</td></tr>
<tr><td class="paramname">password</td><td>Password to be used in the connection. Defaults to empty string (no password).</td></tr>
<tr><td class="paramname">keepAlive</td><td>Connection keep-alive period in seconds. Defaults to 60.</td></tr>
<tr><td class="paramname">cleanSession</td><td>MQTT CleanSession flag. Defaults to true.</td></tr>
<tr><td class="paramname">willTopic</td><td>MQTT will topic. Defaults to empty string (no will topic).</td></tr>
<tr><td class="paramname">willMessage</td><td>MQTT will message. Defaults to empty string (no will message).</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="af10176e2cf67bd652823d44f3203a96e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af10176e2cf67bd652823d44f3203a96e">&#9670;&nbsp;</a></span>disconnect()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int16_t MQTTClient::disconnect </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Disconnect from MQTT broker. </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="aea3fb930ed43a0b3122ccc90efebb99d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aea3fb930ed43a0b3122ccc90efebb99d">&#9670;&nbsp;</a></span>ping()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int16_t MQTTClient::ping </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Ping MQTT broker. This method can be used to keep connection open. </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="ace3ee45313dea2f853207accf20b7c87"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ace3ee45313dea2f853207accf20b7c87">&#9670;&nbsp;</a></span>publish() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int16_t MQTTClient::publish </td>
<td>(</td>
<td class="paramtype">String &amp;&#160;</td>
<td class="paramname"><em>topic</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">String &amp;&#160;</td>
<td class="paramname"><em>message</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Publish MQTT message. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">topic</td><td>MQTT topic to which the message will be published.</td></tr>
<tr><td class="paramname">message</td><td>Message to be published.</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="ab59a1174098dfdf514d8ec6d0bd9d015"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab59a1174098dfdf514d8ec6d0bd9d015">&#9670;&nbsp;</a></span>publish() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int16_t MQTTClient::publish </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>topic</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>message</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Publish MQTT message. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">topic</td><td>MQTT topic to which the message will be published.</td></tr>
<tr><td class="paramname">message</td><td>Message to be published.</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>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000017">Todo:</a></b></dt><dd>implement QoS &gt; 0 and PUBACK response checking </dd></dl>
</div>
</div>
<a id="a9488df90534953c33d76e9183965a300"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9488df90534953c33d76e9183965a300">&#9670;&nbsp;</a></span>subscribe()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int16_t MQTTClient::subscribe </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>topicFilter</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Subscribe to MQTT topic. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">topicFilter</td><td>Topic to subscribe to.</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="a782158f20b289746b7b6884fd922a22c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a782158f20b289746b7b6884fd922a22c">&#9670;&nbsp;</a></span>unsubscribe()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int16_t MQTTClient::unsubscribe </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>topicFilter</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Unsubscribe from MQTT topic. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">topicFilter</td><td>Topic to unsubscribe from.</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>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>src/protocols/MQTT/<a class="el" href="_m_q_t_t_8h_source.html">MQTT.h</a></li>
<li>src/protocols/MQTT/MQTT.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_m_q_t_t_client.html">MQTTClient</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>