SE-TP2/libs/Firmata/docs/html/classfirmata_1_1_firmata_marshaller.html
2025-05-10 16:33:54 +01:00

739 lines
36 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.16"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Firmata firmware for Arduino: firmata::FirmataMarshaller 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="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">Firmata firmware for Arduino
</div>
<div id="projectbrief">Firmata is a protocol for communicating with microcontrollers from software on a host computer</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.16 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- 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 id="nav-path" class="navpath">
<ul>
<li class="navelem"><b>firmata</b></li><li class="navelem"><a class="el" href="classfirmata_1_1_firmata_marshaller.html">FirmataMarshaller</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="classfirmata_1_1_firmata_marshaller-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">firmata::FirmataMarshaller Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<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:ad1a42532bdf77088c47c1a62f5a03829"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfirmata_1_1_firmata_marshaller.html#ad1a42532bdf77088c47c1a62f5a03829">FirmataMarshaller</a> ()</td></tr>
<tr class="separator:ad1a42532bdf77088c47c1a62f5a03829"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5be18ca3658875dbe5580c2254071c76"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfirmata_1_1_firmata_marshaller.html#a5be18ca3658875dbe5580c2254071c76">begin</a> (Stream &amp;s)</td></tr>
<tr class="separator:a5be18ca3658875dbe5580c2254071c76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab856434fc577b1e069cba51c39daf1de"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfirmata_1_1_firmata_marshaller.html#ab856434fc577b1e069cba51c39daf1de">end</a> ()</td></tr>
<tr class="separator:ab856434fc577b1e069cba51c39daf1de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af954bcf09b77458b3c4f032897d14697"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfirmata_1_1_firmata_marshaller.html#af954bcf09b77458b3c4f032897d14697">queryFirmwareVersion</a> (void) const</td></tr>
<tr class="separator:af954bcf09b77458b3c4f032897d14697"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a488fbbd372c894ec78ebb99e0faf5167"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfirmata_1_1_firmata_marshaller.html#a488fbbd372c894ec78ebb99e0faf5167">queryVersion</a> (void) const</td></tr>
<tr class="separator:a488fbbd372c894ec78ebb99e0faf5167"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2668d1332704bbf9938f386e247a8f30"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfirmata_1_1_firmata_marshaller.html#a2668d1332704bbf9938f386e247a8f30">reportAnalogDisable</a> (uint8_t pin) const</td></tr>
<tr class="separator:a2668d1332704bbf9938f386e247a8f30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67b3db7232143acf63bd48b765fcc4db"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfirmata_1_1_firmata_marshaller.html#a67b3db7232143acf63bd48b765fcc4db">reportAnalogEnable</a> (uint8_t pin) const</td></tr>
<tr class="separator:a67b3db7232143acf63bd48b765fcc4db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa00582e6e014605a65a8953f8275a5ad"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfirmata_1_1_firmata_marshaller.html#aa00582e6e014605a65a8953f8275a5ad">reportDigitalPortDisable</a> (uint8_t portNumber) const</td></tr>
<tr class="separator:aa00582e6e014605a65a8953f8275a5ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a608c28cdc966c33d0cc2239d9465ef7c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfirmata_1_1_firmata_marshaller.html#a608c28cdc966c33d0cc2239d9465ef7c">reportDigitalPortEnable</a> (uint8_t portNumber) const</td></tr>
<tr class="separator:a608c28cdc966c33d0cc2239d9465ef7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d9f2d3bb058237404dfe433cfe7571a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfirmata_1_1_firmata_marshaller.html#a4d9f2d3bb058237404dfe433cfe7571a">sendAnalog</a> (uint8_t pin, uint16_t value) const</td></tr>
<tr class="separator:a4d9f2d3bb058237404dfe433cfe7571a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c987a534cc8dd197eb2f2a728bdacb3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfirmata_1_1_firmata_marshaller.html#a1c987a534cc8dd197eb2f2a728bdacb3">sendAnalogMappingQuery</a> (void) const</td></tr>
<tr class="separator:a1c987a534cc8dd197eb2f2a728bdacb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f1c5ce29ba4488306c9a1e3f158b781"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfirmata_1_1_firmata_marshaller.html#a1f1c5ce29ba4488306c9a1e3f158b781">sendCapabilityQuery</a> (void) const</td></tr>
<tr class="separator:a1f1c5ce29ba4488306c9a1e3f158b781"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d90627f0543b6298be71f7d903399b3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfirmata_1_1_firmata_marshaller.html#a2d90627f0543b6298be71f7d903399b3">sendDigital</a> (uint8_t pin, uint8_t value) const</td></tr>
<tr class="separator:a2d90627f0543b6298be71f7d903399b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a346dcb4487a51efaa95de42d292ad951"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfirmata_1_1_firmata_marshaller.html#a346dcb4487a51efaa95de42d292ad951">sendDigitalPort</a> (uint8_t portNumber, uint16_t portData) const</td></tr>
<tr class="separator:a346dcb4487a51efaa95de42d292ad951"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed71d62cc41f2e0bf3f161894b91be7c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfirmata_1_1_firmata_marshaller.html#aed71d62cc41f2e0bf3f161894b91be7c">sendFirmwareVersion</a> (uint8_t major, uint8_t minor, size_t bytec, uint8_t *bytev) const</td></tr>
<tr class="separator:aed71d62cc41f2e0bf3f161894b91be7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95d58949e32ad285088705dbe5680b29"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfirmata_1_1_firmata_marshaller.html#a95d58949e32ad285088705dbe5680b29">sendVersion</a> (uint8_t major, uint8_t minor) const</td></tr>
<tr class="separator:a95d58949e32ad285088705dbe5680b29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36b6cc103609d900cce36149a239f221"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfirmata_1_1_firmata_marshaller.html#a36b6cc103609d900cce36149a239f221">sendPinMode</a> (uint8_t pin, uint8_t config) const</td></tr>
<tr class="separator:a36b6cc103609d900cce36149a239f221"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc378ab4a39c843d4419acdee944972b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfirmata_1_1_firmata_marshaller.html#afc378ab4a39c843d4419acdee944972b">sendPinStateQuery</a> (uint8_t pin) const</td></tr>
<tr class="separator:afc378ab4a39c843d4419acdee944972b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a483ac2dea885ab3472dc38b99bfdec2f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfirmata_1_1_firmata_marshaller.html#a483ac2dea885ab3472dc38b99bfdec2f">sendString</a> (const char *string) const</td></tr>
<tr class="separator:a483ac2dea885ab3472dc38b99bfdec2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade4f4592877ec0b9f8d6c74e909bad8e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfirmata_1_1_firmata_marshaller.html#ade4f4592877ec0b9f8d6c74e909bad8e">sendSysex</a> (uint8_t command, size_t bytec, uint8_t *bytev) const</td></tr>
<tr class="separator:ade4f4592877ec0b9f8d6c74e909bad8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb8f4c79dd8a0dbee3f5e04c587ae20c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfirmata_1_1_firmata_marshaller.html#abb8f4c79dd8a0dbee3f5e04c587ae20c">setSamplingInterval</a> (uint16_t interval_ms) const</td></tr>
<tr class="separator:abb8f4c79dd8a0dbee3f5e04c587ae20c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a585937f94b1f9e51797e5950a33206"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfirmata_1_1_firmata_marshaller.html#a3a585937f94b1f9e51797e5950a33206">systemReset</a> (void) const</td></tr>
<tr class="separator:a3a585937f94b1f9e51797e5950a33206"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:a5c93a0c3b726fc5e47058f5ec4853aaa"><td class="memItemLeft" align="right" valign="top"><a id="a5c93a0c3b726fc5e47058f5ec4853aaa"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>FirmataClass</b></td></tr>
<tr class="separator:a5c93a0c3b726fc5e47058f5ec4853aaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ad1a42532bdf77088c47c1a62f5a03829"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad1a42532bdf77088c47c1a62f5a03829">&#9670;&nbsp;</a></span>FirmataMarshaller()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">FirmataMarshaller::FirmataMarshaller </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>The <a class="el" href="classfirmata_1_1_firmata_marshaller.html">FirmataMarshaller</a> class. </p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a5be18ca3658875dbe5580c2254071c76"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5be18ca3658875dbe5580c2254071c76">&#9670;&nbsp;</a></span>begin()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FirmataMarshaller::begin </td>
<td>(</td>
<td class="paramtype">Stream &amp;&#160;</td>
<td class="paramname"><em>s</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Reassign the Firmata stream transport. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">s</td><td>A reference to the Stream transport object. This can be any type of transport that implements the Stream interface. Some examples include Ethernet, WiFi and other UARTs on the board (Serial1, Serial2, etc). </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ab856434fc577b1e069cba51c39daf1de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab856434fc577b1e069cba51c39daf1de">&#9670;&nbsp;</a></span>end()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FirmataMarshaller::end </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Closes the <a class="el" href="classfirmata_1_1_firmata_marshaller.html">FirmataMarshaller</a> stream by setting its stream reference to <code>(Stream *)NULL</code> </p>
</div>
</div>
<a id="af954bcf09b77458b3c4f032897d14697"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af954bcf09b77458b3c4f032897d14697">&#9670;&nbsp;</a></span>queryFirmwareVersion()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FirmataMarshaller::queryFirmwareVersion </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Query the target's firmware name and version </p>
</div>
</div>
<a id="a488fbbd372c894ec78ebb99e0faf5167"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a488fbbd372c894ec78ebb99e0faf5167">&#9670;&nbsp;</a></span>queryVersion()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FirmataMarshaller::queryVersion </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Query the target's Firmata protocol version </p>
</div>
</div>
<a id="a2668d1332704bbf9938f386e247a8f30"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2668d1332704bbf9938f386e247a8f30">&#9670;&nbsp;</a></span>reportAnalogDisable()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FirmataMarshaller::reportAnalogDisable </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>pin</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Halt the stream of analog readings from the Firmata host application. The range of pins is limited to [0..15] when using the REPORT_ANALOG. The maximum result of the REPORT_ANALOG is limited to 14 bits (16384). To increase the pin range or value, see the documentation for the EXTENDED_ANALOG message. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">pin</td><td>The analog pin for which to request the value (limited to pins 0 - 15). </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a67b3db7232143acf63bd48b765fcc4db"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a67b3db7232143acf63bd48b765fcc4db">&#9670;&nbsp;</a></span>reportAnalogEnable()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FirmataMarshaller::reportAnalogEnable </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>pin</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Request a stream of analog readings from the Firmata host application. The range of pins is limited to [0..15] when using the REPORT_ANALOG. The maximum result of the REPORT_ANALOG is limited to 14 bits (16384). To increase the pin range or value, see the documentation for the EXTENDED_ANALOG message. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">pin</td><td>The analog pin for which to request the value (limited to pins 0 - 15). </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="aa00582e6e014605a65a8953f8275a5ad"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa00582e6e014605a65a8953f8275a5ad">&#9670;&nbsp;</a></span>reportDigitalPortDisable()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FirmataMarshaller::reportDigitalPortDisable </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>portNumber</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Halt an 8-bit port stream from the Firmata host application (protocol v2 and later). Send 14-bits in a single digital message (protocol v1). </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">portNumber</td><td>The port number for which to request the value. Note that this is not the same as a "port" on the physical microcontroller. Ports are defined in order per every 8 pins in ascending order of the Arduino digital pin numbering scheme. Port 0 = pins D0 - D7, port 1 = pins D8 - D15, etc. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a608c28cdc966c33d0cc2239d9465ef7c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a608c28cdc966c33d0cc2239d9465ef7c">&#9670;&nbsp;</a></span>reportDigitalPortEnable()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FirmataMarshaller::reportDigitalPortEnable </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>portNumber</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Request an 8-bit port stream from the Firmata host application (protocol v2 and later). Send 14-bits in a single digital message (protocol v1). </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">portNumber</td><td>The port number for which to request the value. Note that this is not the same as a "port" on the physical microcontroller. Ports are defined in order per every 8 pins in ascending order of the Arduino digital pin numbering scheme. Port 0 = pins D0 - D7, port 1 = pins D8 - D15, etc. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a4d9f2d3bb058237404dfe433cfe7571a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4d9f2d3bb058237404dfe433cfe7571a">&#9670;&nbsp;</a></span>sendAnalog()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FirmataMarshaller::sendAnalog </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>pin</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Send an analog message to the Firmata host application. The range of pins is limited to [0..15] when using the ANALOG_MESSAGE. The maximum value of the ANALOG_MESSAGE is limited to 14 bits (16384). To increase the pin range or value, see the documentation for the EXTENDED_ANALOG message. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">pin</td><td>The analog pin to which the value is sent. </td></tr>
<tr><td class="paramname">value</td><td>The value of the analog pin (0 - 1024 for 10-bit analog, 0 - 4096 for 12-bit, etc). </td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>The maximum value is 14-bits (16384). </dd></dl>
</div>
</div>
<a id="a1c987a534cc8dd197eb2f2a728bdacb3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1c987a534cc8dd197eb2f2a728bdacb3">&#9670;&nbsp;</a></span>sendAnalogMappingQuery()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FirmataMarshaller::sendAnalogMappingQuery </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Send an analog mapping query to the Firmata host application. The resulting sysex message will have an ANALOG_MAPPING_RESPONSE command byte, followed by a list of pins [0-n]; where each pin will specify its corresponding analog pin number or 0x7F (127) if not applicable. </p>
</div>
</div>
<a id="a1f1c5ce29ba4488306c9a1e3f158b781"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1f1c5ce29ba4488306c9a1e3f158b781">&#9670;&nbsp;</a></span>sendCapabilityQuery()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FirmataMarshaller::sendCapabilityQuery </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Send a capability query to the Firmata host application. The resulting sysex message will have a CAPABILITY_RESPONSE command byte, followed by a list of byte tuples (mode and mode resolution) for each pin; where each pin list is terminated by 0x7F (127). </p>
</div>
</div>
<a id="a2d90627f0543b6298be71f7d903399b3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2d90627f0543b6298be71f7d903399b3">&#9670;&nbsp;</a></span>sendDigital()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FirmataMarshaller::sendDigital </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>pin</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Send a single digital pin value to the Firmata host application. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">pin</td><td>The digital pin to send the value of. </td></tr>
<tr><td class="paramname">value</td><td>The value of the pin. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a346dcb4487a51efaa95de42d292ad951"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a346dcb4487a51efaa95de42d292ad951">&#9670;&nbsp;</a></span>sendDigitalPort()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FirmataMarshaller::sendDigitalPort </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>portNumber</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>portData</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Send an 8-bit port in a single digital message (protocol v2 and later). Send 14-bits in a single digital message (protocol v1). </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">portNumber</td><td>The port number to send. Note that this is not the same as a "port" on the physical microcontroller. Ports are defined in order per every 8 pins in ascending order of the Arduino digital pin numbering scheme. Port 0 = pins D0 - D7, port 1 = pins D8 - D15, etc. </td></tr>
<tr><td class="paramname">portData</td><td>The value of the port. The value of each pin in the port is represented by a bit. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="aed71d62cc41f2e0bf3f161894b91be7c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aed71d62cc41f2e0bf3f161894b91be7c">&#9670;&nbsp;</a></span>sendFirmwareVersion()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FirmataMarshaller::sendFirmwareVersion </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>major</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>minor</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>bytec</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>bytev</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Sends the firmware name and version to the Firmata host application. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">major</td><td>The major verison number </td></tr>
<tr><td class="paramname">minor</td><td>The minor version number </td></tr>
<tr><td class="paramname">bytec</td><td>The length of the firmware name </td></tr>
<tr><td class="paramname">bytev</td><td>The firmware name array </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a36b6cc103609d900cce36149a239f221"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a36b6cc103609d900cce36149a239f221">&#9670;&nbsp;</a></span>sendPinMode()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FirmataMarshaller::sendPinMode </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>pin</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>config</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Send the pin mode/configuration. The pin configuration (or mode) in Firmata represents the current function of the pin. Examples are digital input or output, analog input, pwm, i2c, serial (uart), etc. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">pin</td><td>The pin to configure. </td></tr>
<tr><td class="paramname">config</td><td>The configuration value for the specified pin. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="afc378ab4a39c843d4419acdee944972b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afc378ab4a39c843d4419acdee944972b">&#9670;&nbsp;</a></span>sendPinStateQuery()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FirmataMarshaller::sendPinStateQuery </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>pin</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Send a pin state query to the Firmata host application. The resulting sysex message will have a PIN_STATE_RESPONSE command byte, followed by the pin number, the pin mode and a stream of bits to indicate any <em>data</em> written to the pin (pin state). </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">pin</td><td>The pin to query </td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>The pin state is any data written to the pin (i.e. pin state != pin value) </dd></dl>
</div>
</div>
<a id="a483ac2dea885ab3472dc38b99bfdec2f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a483ac2dea885ab3472dc38b99bfdec2f">&#9670;&nbsp;</a></span>sendString()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FirmataMarshaller::sendString </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>string</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Send a string to the Firmata host application. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">string</td><td>A pointer to the char string </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ade4f4592877ec0b9f8d6c74e909bad8e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ade4f4592877ec0b9f8d6c74e909bad8e">&#9670;&nbsp;</a></span>sendSysex()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FirmataMarshaller::sendSysex </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>command</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>bytec</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>bytev</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Send a sysex message where all values after the command byte are packet as 2 7-bit bytes (this is not always the case so this function is not always used to send sysex messages). </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">command</td><td>The sysex command byte. </td></tr>
<tr><td class="paramname">bytec</td><td>The number of data bytes in the message (excludes start, command and end bytes). </td></tr>
<tr><td class="paramname">bytev</td><td>A pointer to the array of data bytes to send in the message. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a95d58949e32ad285088705dbe5680b29"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a95d58949e32ad285088705dbe5680b29">&#9670;&nbsp;</a></span>sendVersion()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FirmataMarshaller::sendVersion </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>major</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>minor</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Send the Firmata protocol version to the Firmata host application. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">major</td><td>The major verison number </td></tr>
<tr><td class="paramname">minor</td><td>The minor version number </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="abb8f4c79dd8a0dbee3f5e04c587ae20c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abb8f4c79dd8a0dbee3f5e04c587ae20c">&#9670;&nbsp;</a></span>setSamplingInterval()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FirmataMarshaller::setSamplingInterval </td>
<td>(</td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>interval_ms</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>The sampling interval sets how often analog data and i2c data is reported to the client. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">interval_ms</td><td>The interval (in milliseconds) at which to sample </td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>The default sampling interval is 19ms </dd></dl>
</div>
</div>
<a id="a3a585937f94b1f9e51797e5950a33206"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3a585937f94b1f9e51797e5950a33206">&#9670;&nbsp;</a></span>systemReset()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FirmataMarshaller::systemReset </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Perform a software reset on the target. For example, StandardFirmata.ino will initialize everything to a known state and reset the parsing buffer. </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="_firmata_marshaller_8h_source.html">FirmataMarshaller.h</a></li>
<li>FirmataMarshaller.cpp</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16
</small></address>
</body>
</html>