1
0
mirror of https://github.com/wjwwood/serial.git synced 2026-01-22 19:54:57 +08:00
serial/docs/v0.2/classserial_1_1_serial.html
2012-06-09 19:35:49 -05:00

1348 lines
67 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"/>
<title>serial: serial::Serial Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">serial
&#160;<span id="projectnumber">1.0</span>
</div>
<div id="projectbrief">Cross-platformserialportlibraryforC++</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.8.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</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 id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
<li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
</ul>
</div>
<!-- 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>Data Structures</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>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Defines</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 id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceserial.html">serial</a> </li>
<li class="navelem"><a class="el" href="classserial_1_1_serial.html">Serial</a> </li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#pub-methods">Public Member Functions</a> </div>
<div class="headertitle">
<div class="title">serial::Serial Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="serial_8h_source.html">serial.h</a>&gt;</code></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_serial_1_1_scoped_read_lock.html">ScopedReadLock</a></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_serial_1_1_scoped_write_lock.html">ScopedWriteLock</a></td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a9222791dd26285a594cfc594f0879b10"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#a9222791dd26285a594cfc594f0879b10">Serial</a> (const std::string &amp;port=&quot;&quot;, unsigned long baudrate=9600, long timeout=0, <a class="el" href="namespaceserial.html#a00b3281fa11cea770c0b0c8a106080f8">bytesize_t</a> bytesize=<a class="el" href="namespaceserial.html#a00b3281fa11cea770c0b0c8a106080f8a47f14d952cf9bed6c3f7ae5985161990">eightbits</a>, <a class="el" href="namespaceserial.html#a8f45d26bf7c9a06659e75b5004a50481">parity_t</a> parity=<a class="el" href="namespaceserial.html#a8f45d26bf7c9a06659e75b5004a50481a31cbb2b3cf0870d1a089d66295918416">parity_none</a>, <a class="el" href="namespaceserial.html#af5b116611d6628a3aa8f788fdc09f469">stopbits_t</a> stopbits=<a class="el" href="namespaceserial.html#af5b116611d6628a3aa8f788fdc09f469ab70806555a14cb43e5cc43f6f3d01157">stopbits_one</a>, <a class="el" href="namespaceserial.html#a93ef57a314b4e562f9eded6c15d34351">flowcontrol_t</a> flowcontrol=<a class="el" href="namespaceserial.html#a93ef57a314b4e562f9eded6c15d34351a083bc02a6e8e7c6540a28654c0f95bb0">flowcontrol_none</a>)</td></tr>
<tr class="memitem:a5b32c394c0ff923a4ef1c13cfb20a6ba"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#a5b32c394c0ff923a4ef1c13cfb20a6ba">~Serial</a> ()</td></tr>
<tr class="memitem:af3644ed1a9d899b70e9d63bb9b808d62"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#af3644ed1a9d899b70e9d63bb9b808d62">open</a> ()</td></tr>
<tr class="memitem:af9895af496189f7f0aba7c097f5fa9c1"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#af9895af496189f7f0aba7c097f5fa9c1">isOpen</a> () const </td></tr>
<tr class="memitem:afbe59407e718bc3d22ea4a67b304db6c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#afbe59407e718bc3d22ea4a67b304db6c">close</a> ()</td></tr>
<tr class="memitem:afafe25b2f3bb0809550abdc72c51a234"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#afafe25b2f3bb0809550abdc72c51a234">available</a> ()</td></tr>
<tr class="memitem:a2bcd2c76cdacf64928fcd7e9ec279ff1"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#a2bcd2c76cdacf64928fcd7e9ec279ff1">read</a> (unsigned char *buffer, size_t size)</td></tr>
<tr class="memitem:aa1f8933e86e7f37781c186b11a763221"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#aa1f8933e86e7f37781c186b11a763221">read</a> (std::vector&lt; unsigned char &gt; &amp;buffer, size_t size=1)</td></tr>
<tr class="memitem:ac47576244e34abc2e460ba99684c351f"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#ac47576244e34abc2e460ba99684c351f">read</a> (std::string &amp;buffer, size_t size=1)</td></tr>
<tr class="memitem:a6c71ad1cbacf86cead4d38b48c548405"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#a6c71ad1cbacf86cead4d38b48c548405">read</a> (size_t size=1)</td></tr>
<tr class="memitem:a010b18ec545dfe1a7bb1c95be4bdaa54"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#a010b18ec545dfe1a7bb1c95be4bdaa54">readline</a> (std::string &amp;buffer, size_t size=65536, std::string eol=&quot;\n&quot;)</td></tr>
<tr class="memitem:a04177f637cc02f92ec0492d377528b2a"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#a04177f637cc02f92ec0492d377528b2a">readline</a> (size_t size=65536, std::string eol=&quot;\n&quot;)</td></tr>
<tr class="memitem:a99f77b9bbdc128b6704cc59db77686c5"><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#a99f77b9bbdc128b6704cc59db77686c5">readlines</a> (size_t size=65536, std::string eol=&quot;\n&quot;)</td></tr>
<tr class="memitem:acd98ae129db624b664a5dd51f352d8f7"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#acd98ae129db624b664a5dd51f352d8f7">write</a> (const unsigned char *data, size_t size)</td></tr>
<tr class="memitem:a280abb1b73ac368591d79badf23776bf"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#a280abb1b73ac368591d79badf23776bf">write</a> (const std::vector&lt; unsigned char &gt; &amp;data)</td></tr>
<tr class="memitem:a7c92c0307b86a935f6623953eec66460"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#a7c92c0307b86a935f6623953eec66460">write</a> (const std::string &amp;data)</td></tr>
<tr class="memitem:acecb0a5102ae0c944fe4b78e4adf839a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#acecb0a5102ae0c944fe4b78e4adf839a">setPort</a> (const std::string &amp;port)</td></tr>
<tr class="memitem:ae95cd057e90258b1b3203ff8972a3567"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#ae95cd057e90258b1b3203ff8972a3567">getPort</a> () const </td></tr>
<tr class="memitem:ab6ad13f872e31b9cf0af8cbeb9117cb0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#ab6ad13f872e31b9cf0af8cbeb9117cb0">setTimeout</a> (long timeout)</td></tr>
<tr class="memitem:a345cd91d7bd366e990e295f756d51112"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#a345cd91d7bd366e990e295f756d51112">getTimeout</a> () const </td></tr>
<tr class="memitem:aec535895c800e3fd7c52d60b9f6b08a5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#aec535895c800e3fd7c52d60b9f6b08a5">setBaudrate</a> (unsigned long baudrate)</td></tr>
<tr class="memitem:acd0e5a25e4484d6f08fe02c1911ab5e0"><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#acd0e5a25e4484d6f08fe02c1911ab5e0">getBaudrate</a> () const </td></tr>
<tr class="memitem:adba430fd704f6898a5a1d99fd39a94fa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#adba430fd704f6898a5a1d99fd39a94fa">setBytesize</a> (<a class="el" href="namespaceserial.html#a00b3281fa11cea770c0b0c8a106080f8">bytesize_t</a> bytesize)</td></tr>
<tr class="memitem:a4fce90ef7a9a46525efa373a94a1bfbd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceserial.html#a00b3281fa11cea770c0b0c8a106080f8">bytesize_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#a4fce90ef7a9a46525efa373a94a1bfbd">getBytesize</a> () const </td></tr>
<tr class="memitem:a1e1896aa59ec35ac5bd263b87614ef01"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#a1e1896aa59ec35ac5bd263b87614ef01">setParity</a> (<a class="el" href="namespaceserial.html#a8f45d26bf7c9a06659e75b5004a50481">parity_t</a> parity)</td></tr>
<tr class="memitem:a89d876e1d3f0afadb0d6c21b08ed8931"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceserial.html#a8f45d26bf7c9a06659e75b5004a50481">parity_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#a89d876e1d3f0afadb0d6c21b08ed8931">getParity</a> () const </td></tr>
<tr class="memitem:ab72284b5aab723b81013fb560bd6acc5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#ab72284b5aab723b81013fb560bd6acc5">setStopbits</a> (<a class="el" href="namespaceserial.html#af5b116611d6628a3aa8f788fdc09f469">stopbits_t</a> stopbits)</td></tr>
<tr class="memitem:a42887bb76243bf6bbb3f69ff60f9792e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceserial.html#af5b116611d6628a3aa8f788fdc09f469">stopbits_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#a42887bb76243bf6bbb3f69ff60f9792e">getStopbits</a> () const </td></tr>
<tr class="memitem:ade41650d6bfe91b6432e5a0a60c03969"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#ade41650d6bfe91b6432e5a0a60c03969">setFlowcontrol</a> (<a class="el" href="namespaceserial.html#a93ef57a314b4e562f9eded6c15d34351">flowcontrol_t</a> flowcontrol)</td></tr>
<tr class="memitem:acdc6da48a5434b936b1db20f36caf41f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceserial.html#a93ef57a314b4e562f9eded6c15d34351">flowcontrol_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#acdc6da48a5434b936b1db20f36caf41f">getFlowcontrol</a> () const </td></tr>
<tr class="memitem:a63b7abf172cad25bfc998b3b1f98310f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#a63b7abf172cad25bfc998b3b1f98310f">flush</a> ()</td></tr>
<tr class="memitem:afa2c1f9114a37b7d140fc2292d1499b9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#afa2c1f9114a37b7d140fc2292d1499b9">flushInput</a> ()</td></tr>
<tr class="memitem:a256ee4bb93ab0e79d7a66b50f08dce53"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#a256ee4bb93ab0e79d7a66b50f08dce53">flushOutput</a> ()</td></tr>
<tr class="memitem:ade90ff8f03525ea6d7b702fcd0f336de"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#ade90ff8f03525ea6d7b702fcd0f336de">sendBreak</a> (int duration)</td></tr>
<tr class="memitem:a2a27912b1ca5cdad4a4aba7b9ddbc206"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#a2a27912b1ca5cdad4a4aba7b9ddbc206">setBreak</a> (bool level=true)</td></tr>
<tr class="memitem:ab43ddc05e5d69ff2778f698aa7062370"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#ab43ddc05e5d69ff2778f698aa7062370">setRTS</a> (bool level=true)</td></tr>
<tr class="memitem:ac9b0bbf613a5fe68f05d1d40181a1bb3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#ac9b0bbf613a5fe68f05d1d40181a1bb3">setDTR</a> (bool level=true)</td></tr>
<tr class="memitem:a809f048546c4c72b74e205139b97648c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#a809f048546c4c72b74e205139b97648c">getCTS</a> ()</td></tr>
<tr class="memitem:a6b9a0c485e1fe599dbb5e9e15b1a65d6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#a6b9a0c485e1fe599dbb5e9e15b1a65d6">getDSR</a> ()</td></tr>
<tr class="memitem:afb96e6968f040c4bff7576095f4ba6e7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#afb96e6968f040c4bff7576095f4ba6e7">getRI</a> ()</td></tr>
<tr class="memitem:a9795a3e83e6745a14c64f657e68061fb"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classserial_1_1_serial.html#a9795a3e83e6745a14c64f657e68061fb">getCD</a> ()</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Class that provides a portable serial port interface. </p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a9222791dd26285a594cfc594f0879b10"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classserial_1_1_serial.html#a9222791dd26285a594cfc594f0879b10">serial::Serial::Serial</a> </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>port</em> = <code>&quot;&quot;</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned long&#160;</td>
<td class="paramname"><em>baudrate</em> = <code>9600</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">long&#160;</td>
<td class="paramname"><em>timeout</em> = <code>0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceserial.html#a00b3281fa11cea770c0b0c8a106080f8">bytesize_t</a>&#160;</td>
<td class="paramname"><em>bytesize</em> = <code><a class="el" href="namespaceserial.html#a00b3281fa11cea770c0b0c8a106080f8a47f14d952cf9bed6c3f7ae5985161990">eightbits</a></code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceserial.html#a8f45d26bf7c9a06659e75b5004a50481">parity_t</a>&#160;</td>
<td class="paramname"><em>parity</em> = <code><a class="el" href="namespaceserial.html#a8f45d26bf7c9a06659e75b5004a50481a31cbb2b3cf0870d1a089d66295918416">parity_none</a></code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceserial.html#af5b116611d6628a3aa8f788fdc09f469">stopbits_t</a>&#160;</td>
<td class="paramname"><em>stopbits</em> = <code><a class="el" href="namespaceserial.html#af5b116611d6628a3aa8f788fdc09f469ab70806555a14cb43e5cc43f6f3d01157">stopbits_one</a></code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceserial.html#a93ef57a314b4e562f9eded6c15d34351">flowcontrol_t</a>&#160;</td>
<td class="paramname"><em>flowcontrol</em> = <code><a class="el" href="namespaceserial.html#a93ef57a314b4e562f9eded6c15d34351a083bc02a6e8e7c6540a28654c0f95bb0">flowcontrol_none</a></code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Constructor, creates a SerialPortBoost object and opens the port.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">port</td><td>A std::string containing the address of the serial port, which would be something like 'COM1' on Windows and '/dev/ttyS0' on Linux.</td></tr>
<tr><td class="paramname">baudrate</td><td>An integer that represents the buadrate</td></tr>
<tr><td class="paramname">timeout</td><td>A long that represents the time (in milliseconds) until a timeout on reads occur. Setting this to zero (0) will cause reading to be non-blocking, i.e. the available data will be returned immediately, but it will not block to wait for more. Setting this to a number less than zero (-1) will result in infinite blocking behaviour, i.e. the serial port will block until either size bytes have been read or an exception has occured.</td></tr>
<tr><td class="paramname">bytesize</td><td>Size of each byte in the serial transmission of data, default is eightbits, possible values are: fivebits, sixbits, sevenbits, eightbits</td></tr>
<tr><td class="paramname">parity</td><td>Method of parity, default is parity_none, possible values are: parity_none, parity_odd, parity_even</td></tr>
<tr><td class="paramname">stopbits</td><td>Number of stop bits used, default is stopbits_one, possible values are: stopbits_one, stopbits_one_point_five, stopbits_two</td></tr>
<tr><td class="paramname">flowcontrol</td><td>Type of flowcontrol used, default is flowcontrol_none, possible values are: flowcontrol_none, flowcontrol_software, flowcontrol_hardware</td></tr>
<tr><td class="paramname">buffer_size</td><td>The maximum size of the internal buffer, defaults to 256 bytes (2^8).</td></tr>
</table>
</dd>
</dl>
<dl class="exception"><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classserial_1_1_port_not_opened_exception.html">PortNotOpenedException</a></td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a5b32c394c0ff923a4ef1c13cfb20a6ba"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classserial_1_1_serial.html#a5b32c394c0ff923a4ef1c13cfb20a6ba">Serial::~Serial</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td><code> [virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Destructor </p>
<div class="fragment"><pre class="fragment">{
<span class="keyword">delete</span> pimpl_;
}
</pre></div>
</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="afafe25b2f3bb0809550abdc72c51a234"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t <a class="el" href="classserial_1_1_serial.html#afafe25b2f3bb0809550abdc72c51a234">Serial::available</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Return the number of characters in the buffer. </p>
<div class="fragment"><pre class="fragment">{
<span class="keywordflow">return</span> pimpl_-&gt;<a class="code" href="classserial_1_1serial_1_1_serial_1_1_serial_impl.html#aec474ec54cb40a4191939aacb80c5ea2">available</a> ();
}
</pre></div>
</div>
</div>
<a class="anchor" id="afbe59407e718bc3d22ea4a67b304db6c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classserial_1_1_serial.html#afbe59407e718bc3d22ea4a67b304db6c">Serial::close</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Closes the serial port. </p>
<div class="fragment"><pre class="fragment">{
pimpl_-&gt;<a class="code" href="classserial_1_1serial_1_1_serial_1_1_serial_impl.html#a38af5b9c8b676ffaef15c84fb303d6f7">close</a> ();
}
</pre></div>
</div>
</div>
<a class="anchor" id="a63b7abf172cad25bfc998b3b1f98310f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classserial_1_1_serial.html#a63b7abf172cad25bfc998b3b1f98310f">Serial::flush</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Flush the input and output buffers </p>
<div class="fragment"><pre class="fragment">{
ScopedReadLock(this-&gt;pimpl_);
ScopedWriteLock(this-&gt;pimpl_);
pimpl_-&gt;<a class="code" href="classserial_1_1serial_1_1_serial_1_1_serial_impl.html#a7dc1818234ab3f5ae3ebd67bc79d8511">flush</a> ();
read_cache_.clear ();
}
</pre></div>
</div>
</div>
<a class="anchor" id="afa2c1f9114a37b7d140fc2292d1499b9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classserial_1_1_serial.html#afa2c1f9114a37b7d140fc2292d1499b9">Serial::flushInput</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Flush only the input buffer </p>
<div class="fragment"><pre class="fragment">{
ScopedReadLock(this-&gt;pimpl_);
pimpl_-&gt;<a class="code" href="classserial_1_1serial_1_1_serial_1_1_serial_impl.html#a28003745a26c0924fc1d305e947bc3bf">flushInput</a> ();
}
</pre></div>
</div>
</div>
<a class="anchor" id="a256ee4bb93ab0e79d7a66b50f08dce53"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classserial_1_1_serial.html#a256ee4bb93ab0e79d7a66b50f08dce53">Serial::flushOutput</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Flush only the output buffer </p>
<div class="fragment"><pre class="fragment">{
ScopedWriteLock(this-&gt;pimpl_);
pimpl_-&gt;<a class="code" href="classserial_1_1serial_1_1_serial_1_1_serial_impl.html#a5b2c81540ca1e1eb962249ca8f538299">flushOutput</a> ();
read_cache_.clear ();
}
</pre></div>
</div>
</div>
<a class="anchor" id="acd0e5a25e4484d6f08fe02c1911ab5e0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned long <a class="el" href="classserial_1_1_serial.html#acd0e5a25e4484d6f08fe02c1911ab5e0">Serial::getBaudrate</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Gets the baudrate for the serial port.</p>
<dl class="section return"><dt>Returns:</dt><dd>An integer that sets the baud rate for the serial port.</dd></dl>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="classserial_1_1_serial.html#aec535895c800e3fd7c52d60b9f6b08a5">Serial::setBaudrate</a></dd></dl>
<dl class="exception"><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname">InvalidConfigurationException</td><td></td></tr>
</table>
</dd>
</dl>
<div class="fragment"><pre class="fragment">{
<span class="keywordflow">return</span> pimpl_-&gt;<a class="code" href="classserial_1_1serial_1_1_serial_1_1_serial_impl.html#af04d2d662a302d446bf8a99151e7a229">getBaudrate</a> ();
}
</pre></div>
</div>
</div>
<a class="anchor" id="a4fce90ef7a9a46525efa373a94a1bfbd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceserial.html#a00b3281fa11cea770c0b0c8a106080f8">bytesize_t</a> <a class="el" href="classserial_1_1_serial.html#a4fce90ef7a9a46525efa373a94a1bfbd">Serial::getBytesize</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Gets the bytesize for the serial port.</p>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="classserial_1_1_serial.html#adba430fd704f6898a5a1d99fd39a94fa">Serial::setBytesize</a></dd></dl>
<dl class="exception"><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname">InvalidConfigurationException</td><td></td></tr>
</table>
</dd>
</dl>
<div class="fragment"><pre class="fragment">{
<span class="keywordflow">return</span> pimpl_-&gt;<a class="code" href="classserial_1_1serial_1_1_serial_1_1_serial_impl.html#aafeff74e9aed67a996735dbb46323b25">getBytesize</a> ();
}
</pre></div>
</div>
</div>
<a class="anchor" id="a9795a3e83e6745a14c64f657e68061fb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classserial_1_1_serial.html#a9795a3e83e6745a14c64f657e68061fb">Serial::getCD</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<div class="fragment"><pre class="fragment">{
<span class="keywordflow">return</span> pimpl_-&gt;<a class="code" href="classserial_1_1serial_1_1_serial_1_1_serial_impl.html#a6f2a8d7ff955fc3f061b513c095859e1">getCD</a> ();
}
</pre></div>
</div>
</div>
<a class="anchor" id="a809f048546c4c72b74e205139b97648c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classserial_1_1_serial.html#a809f048546c4c72b74e205139b97648c">Serial::getCTS</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<div class="fragment"><pre class="fragment">{
<span class="keywordflow">return</span> pimpl_-&gt;<a class="code" href="classserial_1_1serial_1_1_serial_1_1_serial_impl.html#a0801d20b6e906369ad232e460b741d7b">getCTS</a> ();
}
</pre></div>
</div>
</div>
<a class="anchor" id="a6b9a0c485e1fe599dbb5e9e15b1a65d6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classserial_1_1_serial.html#a6b9a0c485e1fe599dbb5e9e15b1a65d6">Serial::getDSR</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<div class="fragment"><pre class="fragment">{
<span class="keywordflow">return</span> pimpl_-&gt;<a class="code" href="classserial_1_1serial_1_1_serial_1_1_serial_impl.html#a15d1d986dad6ec754919bb38c3470362">getDSR</a> ();
}
</pre></div>
</div>
</div>
<a class="anchor" id="acdc6da48a5434b936b1db20f36caf41f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceserial.html#a93ef57a314b4e562f9eded6c15d34351">flowcontrol_t</a> <a class="el" href="classserial_1_1_serial.html#acdc6da48a5434b936b1db20f36caf41f">Serial::getFlowcontrol</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Gets the flow control for the serial port.</p>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="classserial_1_1_serial.html#ade41650d6bfe91b6432e5a0a60c03969">Serial::setFlowcontrol</a></dd></dl>
<dl class="exception"><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname">InvalidConfigurationException</td><td></td></tr>
</table>
</dd>
</dl>
<div class="fragment"><pre class="fragment">{
<span class="keywordflow">return</span> pimpl_-&gt;<a class="code" href="classserial_1_1serial_1_1_serial_1_1_serial_impl.html#af1b3fe4ea4d075b76b0c243d4ed768ec">getFlowcontrol</a> ();
}
</pre></div>
</div>
</div>
<a class="anchor" id="a89d876e1d3f0afadb0d6c21b08ed8931"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceserial.html#a8f45d26bf7c9a06659e75b5004a50481">parity_t</a> <a class="el" href="classserial_1_1_serial.html#a89d876e1d3f0afadb0d6c21b08ed8931">Serial::getParity</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Gets the parity for the serial port.</p>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="classserial_1_1_serial.html#a1e1896aa59ec35ac5bd263b87614ef01">Serial::setParity</a></dd></dl>
<dl class="exception"><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname">InvalidConfigurationException</td><td></td></tr>
</table>
</dd>
</dl>
<div class="fragment"><pre class="fragment">{
<span class="keywordflow">return</span> pimpl_-&gt;<a class="code" href="classserial_1_1serial_1_1_serial_1_1_serial_impl.html#aa7cc3b7bd62ad98d25f2e2e0f27d3b42">getParity</a> ();
}
</pre></div>
</div>
</div>
<a class="anchor" id="ae95cd057e90258b1b3203ff8972a3567"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">string <a class="el" href="classserial_1_1_serial.html#ae95cd057e90258b1b3203ff8972a3567">Serial::getPort</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Gets the serial port identifier.</p>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="classserial_1_1_serial.html#acecb0a5102ae0c944fe4b78e4adf839a">Serial::setPort</a></dd></dl>
<dl class="exception"><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname">InvalidConfigurationException</td><td></td></tr>
</table>
</dd>
</dl>
<div class="fragment"><pre class="fragment">{
<span class="keywordflow">return</span> pimpl_-&gt;<a class="code" href="classserial_1_1serial_1_1_serial_1_1_serial_impl.html#a1f881c2cf8bfc92a7836ee0dd554ec44">getPort</a> ();
}
</pre></div>
</div>
</div>
<a class="anchor" id="afb96e6968f040c4bff7576095f4ba6e7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classserial_1_1_serial.html#afb96e6968f040c4bff7576095f4ba6e7">Serial::getRI</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<div class="fragment"><pre class="fragment">{
<span class="keywordflow">return</span> pimpl_-&gt;<a class="code" href="classserial_1_1serial_1_1_serial_1_1_serial_impl.html#a0ee5f4cd897bc177a179ec4f0ba8c561">getRI</a> ();
}
</pre></div>
</div>
</div>
<a class="anchor" id="a42887bb76243bf6bbb3f69ff60f9792e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceserial.html#af5b116611d6628a3aa8f788fdc09f469">stopbits_t</a> <a class="el" href="classserial_1_1_serial.html#a42887bb76243bf6bbb3f69ff60f9792e">Serial::getStopbits</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Gets the stopbits for the serial port.</p>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="classserial_1_1_serial.html#ab72284b5aab723b81013fb560bd6acc5">Serial::setStopbits</a></dd></dl>
<dl class="exception"><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname">InvalidConfigurationException</td><td></td></tr>
</table>
</dd>
</dl>
<div class="fragment"><pre class="fragment">{
<span class="keywordflow">return</span> pimpl_-&gt;<a class="code" href="classserial_1_1serial_1_1_serial_1_1_serial_impl.html#af52b7b4b1d78b9fc98f7150587ddc8b6">getStopbits</a> ();
}
</pre></div>
</div>
</div>
<a class="anchor" id="a345cd91d7bd366e990e295f756d51112"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">long <a class="el" href="classserial_1_1_serial.html#a345cd91d7bd366e990e295f756d51112">Serial::getTimeout</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Gets the timeout for reads in seconds.</p>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="classserial_1_1_serial.html#ab6ad13f872e31b9cf0af8cbeb9117cb0">Serial::setTimeout</a> </dd></dl>
<div class="fragment"><pre class="fragment"> {
<span class="keywordflow">return</span> pimpl_-&gt;<a class="code" href="classserial_1_1serial_1_1_serial_1_1_serial_impl.html#ae79177ed275c9cb5af7e5617644818f9">getTimeout</a> ();
}
</pre></div>
</div>
</div>
<a class="anchor" id="af9895af496189f7f0aba7c097f5fa9c1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classserial_1_1_serial.html#af9895af496189f7f0aba7c097f5fa9c1">Serial::isOpen</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Gets the open status of the serial port.</p>
<dl class="section return"><dt>Returns:</dt><dd>Returns true if the port is open, false otherwise. </dd></dl>
<div class="fragment"><pre class="fragment">{
<span class="keywordflow">return</span> pimpl_-&gt;<a class="code" href="classserial_1_1serial_1_1_serial_1_1_serial_impl.html#a189fe759d2119a6513d5981575a91b8e">isOpen</a> ();
}
</pre></div>
</div>
</div>
<a class="anchor" id="af3644ed1a9d899b70e9d63bb9b808d62"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classserial_1_1_serial.html#af3644ed1a9d899b70e9d63bb9b808d62">Serial::open</a> </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Opens the serial port as long as the portname is set and the port isn't alreay open.</p>
<p>If the port is provided to the constructor then an explicit call to open is not needed.</p>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="classserial_1_1_serial.html#a9222791dd26285a594cfc594f0879b10">Serial::Serial</a></dd></dl>
<dl class="exception"><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname">std::invalid_argument</td><td></td></tr>
<tr><td class="paramname"><a class="el" href="classserial_1_1_serial_execption.html">serial::SerialExecption</a></td><td></td></tr>
<tr><td class="paramname"><a class="el" href="classserial_1_1_i_o_exception.html">serial::IOException</a></td><td></td></tr>
</table>
</dd>
</dl>
<div class="fragment"><pre class="fragment">{
pimpl_-&gt;<a class="code" href="classserial_1_1serial_1_1_serial_1_1_serial_impl.html#abc447d3fefa173392f5d7b641ffef1ed">open</a> ();
}
</pre></div>
</div>
</div>
<a class="anchor" id="a2bcd2c76cdacf64928fcd7e9ec279ff1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t <a class="el" href="classserial_1_1_serial.html#a2bcd2c76cdacf64928fcd7e9ec279ff1">Serial::read</a> </td>
<td>(</td>
<td class="paramtype">unsigned char *&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Read a given amount of bytes from the serial port.</p>
<p>If a timeout is set it may return less characters than requested. With no timeout it will block until the requested number of bytes have been read or until an exception occurs.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">size</td><td>A size_t defining how many bytes to be read.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>A std::string containing the data read. </dd></dl>
<div class="fragment"><pre class="fragment">{
ScopedReadLock (this-&gt;pimpl_);
<span class="keywordflow">return</span> this-&gt;pimpl_-&gt;<a class="code" href="classserial_1_1serial_1_1_serial_1_1_serial_impl.html#ab38e31999f75db98b45e74e9b8f66343">read</a> (buffer, size);
}
</pre></div>
</div>
</div>
<a class="anchor" id="aa1f8933e86e7f37781c186b11a763221"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t <a class="el" href="classserial_1_1_serial.html#a2bcd2c76cdacf64928fcd7e9ec279ff1">Serial::read</a> </td>
<td>(</td>
<td class="paramtype">std::vector&lt; unsigned char &gt; &amp;&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em> = <code>1</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<div class="fragment"><pre class="fragment">{
ScopedReadLock (this-&gt;pimpl_);
<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buffer_ = <span class="keyword">new</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>[size];
<span class="keywordtype">size_t</span> bytes_read = this-&gt;pimpl_-&gt;<a class="code" href="classserial_1_1serial_1_1_serial_1_1_serial_impl.html#ab38e31999f75db98b45e74e9b8f66343">read</a> (buffer_, size);
buffer.insert (buffer.end (), buffer_, buffer_+bytes_read);
<span class="keyword">delete</span>[] buffer_;
<span class="keywordflow">return</span> bytes_read;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ac47576244e34abc2e460ba99684c351f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t <a class="el" href="classserial_1_1_serial.html#a2bcd2c76cdacf64928fcd7e9ec279ff1">Serial::read</a> </td>
<td>(</td>
<td class="paramtype">std::string &amp;&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em> = <code>1</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<div class="fragment"><pre class="fragment">{
ScopedReadLock (this-&gt;pimpl_);
<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buffer_ = <span class="keyword">new</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>[size];
<span class="keywordtype">size_t</span> bytes_read = this-&gt;pimpl_-&gt;<a class="code" href="classserial_1_1serial_1_1_serial_1_1_serial_impl.html#ab38e31999f75db98b45e74e9b8f66343">read</a> (buffer_, size);
buffer.append (reinterpret_cast&lt;const char*&gt;(buffer_), bytes_read);
<span class="keyword">delete</span>[] buffer_;
<span class="keywordflow">return</span> bytes_read;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a6c71ad1cbacf86cead4d38b48c548405"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">string <a class="el" href="classserial_1_1_serial.html#a2bcd2c76cdacf64928fcd7e9ec279ff1">Serial::read</a> </td>
<td>(</td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em> = <code>1</code></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<div class="fragment"><pre class="fragment">{
std::string buffer;
this-&gt;<a class="code" href="classserial_1_1_serial.html#a2bcd2c76cdacf64928fcd7e9ec279ff1">read</a> (buffer, size);
<span class="keywordflow">return</span> buffer;
}
</pre></div>
</div>
</div>
<a class="anchor" id="a010b18ec545dfe1a7bb1c95be4bdaa54"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t <a class="el" href="classserial_1_1_serial.html#a010b18ec545dfe1a7bb1c95be4bdaa54">serial::Serial::readline</a> </td>
<td>(</td>
<td class="paramtype">std::string &amp;&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em> = <code>65536</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string&#160;</td>
<td class="paramname"><em>eol</em> = <code>&quot;\n&quot;</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Reads in a line or until a given delimiter has been processed</p>
<p>Reads from the serial port until a single line has been read.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">size</td><td>A maximum length of a line, defaults to 65536 (2^16) </td></tr>
<tr><td class="paramname">eol</td><td>A string to match against for the EOL.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>A std::string containing the line. </dd></dl>
</div>
</div>
<a class="anchor" id="a04177f637cc02f92ec0492d377528b2a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string <a class="el" href="classserial_1_1_serial.html#a010b18ec545dfe1a7bb1c95be4bdaa54">serial::Serial::readline</a> </td>
<td>(</td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em> = <code>65536</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string&#160;</td>
<td class="paramname"><em>eol</em> = <code>&quot;\n&quot;</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="a99f77b9bbdc128b6704cc59db77686c5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">vector&lt; string &gt; <a class="el" href="classserial_1_1_serial.html#a99f77b9bbdc128b6704cc59db77686c5">Serial::readlines</a> </td>
<td>(</td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em> = <code>65536</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string&#160;</td>
<td class="paramname"><em>eol</em> = <code>&quot;\n&quot;</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Reads in multiple lines until the serail port times out.</p>
<p>This requires a timeout &gt; 0 before it can be run. It will read until a timeout occurs and return a list of strings.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">size</td><td>A maximum length of combined lines, defaults to 65536 (2^16)</td></tr>
<tr><td class="paramname">eol</td><td>A string to match against for the EOL.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>A vector&lt;string&gt; containing the lines. </dd></dl>
<div class="fragment"><pre class="fragment">{
ScopedReadLock (this-&gt;pimpl_);
std::vector&lt;std::string&gt; lines;
<span class="keywordtype">size_t</span> eol_len = eol.length ();
<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buffer_ = <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*<span class="keyword">&gt;</span>
(alloca (size * <span class="keyword">sizeof</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)));
<span class="keywordtype">size_t</span> read_so_far = 0;
<span class="keywordtype">size_t</span> start_of_line = 0;
<span class="keywordflow">while</span> (read_so_far &lt; size) {
<span class="keywordtype">size_t</span> bytes_read = this-&gt;read_ (buffer_+read_so_far, 1);
read_so_far += bytes_read;
<span class="keywordflow">if</span> (bytes_read == 0) {
<span class="keywordflow">if</span> (start_of_line != read_so_far) {
lines.push_back (
<span class="keywordtype">string</span> (reinterpret_cast&lt;const char*&gt; (buffer_ + start_of_line),
read_so_far - start_of_line));
}
<span class="keywordflow">break</span>; <span class="comment">// Timeout occured on reading 1 byte</span>
}
<span class="keywordflow">if</span> (<span class="keywordtype">string</span> (reinterpret_cast&lt;const char*&gt;
(buffer_ + read_so_far - eol_len), eol_len) == eol) {
<span class="comment">// EOL found</span>
lines.push_back(
<span class="keywordtype">string</span>(reinterpret_cast&lt;const char*&gt; (buffer_ + start_of_line),
read_so_far - start_of_line));
start_of_line = read_so_far;
}
<span class="keywordflow">if</span> (read_so_far == size) {
<span class="keywordflow">if</span> (start_of_line != read_so_far) {
lines.push_back(
<span class="keywordtype">string</span>(reinterpret_cast&lt;const char*&gt; (buffer_ + start_of_line),
read_so_far - start_of_line));
}
<span class="keywordflow">break</span>; <span class="comment">// Reached the maximum read length</span>
}
}
<span class="keywordflow">return</span> lines;
}
</pre></div>
</div>
</div>
<a class="anchor" id="ade90ff8f03525ea6d7b702fcd0f336de"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classserial_1_1_serial.html#ade90ff8f03525ea6d7b702fcd0f336de">Serial::sendBreak</a> </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>duration</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<div class="fragment"><pre class="fragment">{
pimpl_-&gt;<a class="code" href="classserial_1_1serial_1_1_serial_1_1_serial_impl.html#a3f738264b8236e271d79835f0ec08bf3">sendBreak</a> (duration);
}
</pre></div>
</div>
</div>
<a class="anchor" id="aec535895c800e3fd7c52d60b9f6b08a5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classserial_1_1_serial.html#aec535895c800e3fd7c52d60b9f6b08a5">Serial::setBaudrate</a> </td>
<td>(</td>
<td class="paramtype">unsigned long&#160;</td>
<td class="paramname"><em>baudrate</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Sets the baudrate for the serial port.</p>
<p>Possible baudrates depends on the system but some safe baudrates include: 110, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 56000, 57600, 115200 Some other baudrates that are supported by some comports: 128000, 153600, 230400, 256000, 460800, 921600</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">baudrate</td><td>An integer that sets the baud rate for the serial port.</td></tr>
</table>
</dd>
</dl>
<dl class="exception"><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname">InvalidConfigurationException</td><td></td></tr>
</table>
</dd>
</dl>
<div class="fragment"><pre class="fragment">{
pimpl_-&gt;<a class="code" href="classserial_1_1serial_1_1_serial_1_1_serial_impl.html#a9773deb112bc756a7512930ec4bf23b3">setBaudrate</a> (baudrate);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a2a27912b1ca5cdad4a4aba7b9ddbc206"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classserial_1_1_serial.html#a2a27912b1ca5cdad4a4aba7b9ddbc206">Serial::setBreak</a> </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>level</em> = <code>true</code></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<div class="fragment"><pre class="fragment">{
pimpl_-&gt;<a class="code" href="classserial_1_1serial_1_1_serial_1_1_serial_impl.html#aff11802f071e95c0e88ef6d0fa3bacd7">setBreak</a> (level);
}
</pre></div>
</div>
</div>
<a class="anchor" id="adba430fd704f6898a5a1d99fd39a94fa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classserial_1_1_serial.html#adba430fd704f6898a5a1d99fd39a94fa">Serial::setBytesize</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespaceserial.html#a00b3281fa11cea770c0b0c8a106080f8">bytesize_t</a>&#160;</td>
<td class="paramname"><em>bytesize</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Sets the bytesize for the serial port.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">bytesize</td><td>Size of each byte in the serial transmission of data, default is eightbits, possible values are: fivebits, sixbits, sevenbits, eightbits</td></tr>
</table>
</dd>
</dl>
<dl class="exception"><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname">InvalidConfigurationException</td><td></td></tr>
</table>
</dd>
</dl>
<div class="fragment"><pre class="fragment">{
pimpl_-&gt;<a class="code" href="classserial_1_1serial_1_1_serial_1_1_serial_impl.html#ac7bde1547ae13c2bbb09126ae7082661">setBytesize</a> (bytesize);
}
</pre></div>
</div>
</div>
<a class="anchor" id="ac9b0bbf613a5fe68f05d1d40181a1bb3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classserial_1_1_serial.html#ac9b0bbf613a5fe68f05d1d40181a1bb3">Serial::setDTR</a> </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>level</em> = <code>true</code></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<div class="fragment"><pre class="fragment">{
pimpl_-&gt;<a class="code" href="classserial_1_1serial_1_1_serial_1_1_serial_impl.html#a741dbda555f51bb7be361a602f72358c">setDTR</a> (level);
}
</pre></div>
</div>
</div>
<a class="anchor" id="ade41650d6bfe91b6432e5a0a60c03969"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classserial_1_1_serial.html#ade41650d6bfe91b6432e5a0a60c03969">Serial::setFlowcontrol</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespaceserial.html#a93ef57a314b4e562f9eded6c15d34351">flowcontrol_t</a>&#160;</td>
<td class="paramname"><em>flowcontrol</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Sets the flow control for the serial port.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">flowcontrol</td><td>Type of flowcontrol used, default is flowcontrol_none, possible values are: flowcontrol_none, flowcontrol_software, flowcontrol_hardware</td></tr>
</table>
</dd>
</dl>
<dl class="exception"><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname">InvalidConfigurationException</td><td></td></tr>
</table>
</dd>
</dl>
<div class="fragment"><pre class="fragment">{
pimpl_-&gt;<a class="code" href="classserial_1_1serial_1_1_serial_1_1_serial_impl.html#a70f3aaa863c4d11c226a983377a37e43">setFlowcontrol</a> (flowcontrol);
}
</pre></div>
</div>
</div>
<a class="anchor" id="a1e1896aa59ec35ac5bd263b87614ef01"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classserial_1_1_serial.html#a1e1896aa59ec35ac5bd263b87614ef01">Serial::setParity</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespaceserial.html#a8f45d26bf7c9a06659e75b5004a50481">parity_t</a>&#160;</td>
<td class="paramname"><em>parity</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Sets the parity for the serial port.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">parity</td><td>Method of parity, default is parity_none, possible values are: parity_none, parity_odd, parity_even</td></tr>
</table>
</dd>
</dl>
<dl class="exception"><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname">InvalidConfigurationException</td><td></td></tr>
</table>
</dd>
</dl>
<div class="fragment"><pre class="fragment">{
pimpl_-&gt;<a class="code" href="classserial_1_1serial_1_1_serial_1_1_serial_impl.html#a2619123d52d075967bdb35247f40e51b">setParity</a> (parity);
}
</pre></div>
</div>
</div>
<a class="anchor" id="acecb0a5102ae0c944fe4b78e4adf839a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classserial_1_1_serial.html#acecb0a5102ae0c944fe4b78e4adf839a">Serial::setPort</a> </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>port</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Sets the serial port identifier.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">port</td><td>A const std::string reference containing the address of the serial port, which would be something like 'COM1' on Windows and '/dev/ttyS0' on Linux.</td></tr>
</table>
</dd>
</dl>
<dl class="exception"><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname">InvalidConfigurationException</td><td></td></tr>
</table>
</dd>
</dl>
<div class="fragment"><pre class="fragment">{
ScopedReadLock(this-&gt;pimpl_);
ScopedWriteLock(this-&gt;pimpl_);
<span class="keywordtype">bool</span> was_open = pimpl_-&gt;<a class="code" href="classserial_1_1serial_1_1_serial_1_1_serial_impl.html#a189fe759d2119a6513d5981575a91b8e">isOpen</a> ();
<span class="keywordflow">if</span> (was_open) <a class="code" href="classserial_1_1_serial.html#afbe59407e718bc3d22ea4a67b304db6c">close</a>();
pimpl_-&gt;<a class="code" href="classserial_1_1serial_1_1_serial_1_1_serial_impl.html#aeb3006e2ff05d5bbaa518bb788eebcda">setPort</a> (port);
<span class="keywordflow">if</span> (was_open) <a class="code" href="classserial_1_1_serial.html#af3644ed1a9d899b70e9d63bb9b808d62">open</a> ();
}
</pre></div>
</div>
</div>
<a class="anchor" id="ab43ddc05e5d69ff2778f698aa7062370"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classserial_1_1_serial.html#ab43ddc05e5d69ff2778f698aa7062370">Serial::setRTS</a> </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>level</em> = <code>true</code></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<div class="fragment"><pre class="fragment">{
pimpl_-&gt;<a class="code" href="classserial_1_1serial_1_1_serial_1_1_serial_impl.html#aa6f543e9fb4517fa00835eee15fa5ffa">setRTS</a> (level);
}
</pre></div>
</div>
</div>
<a class="anchor" id="ab72284b5aab723b81013fb560bd6acc5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classserial_1_1_serial.html#ab72284b5aab723b81013fb560bd6acc5">Serial::setStopbits</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespaceserial.html#af5b116611d6628a3aa8f788fdc09f469">stopbits_t</a>&#160;</td>
<td class="paramname"><em>stopbits</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Sets the stopbits for the serial port.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">stopbits</td><td>Number of stop bits used, default is stopbits_one, possible values are: stopbits_one, stopbits_one_point_five, stopbits_two</td></tr>
</table>
</dd>
</dl>
<dl class="exception"><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname">InvalidConfigurationException</td><td></td></tr>
</table>
</dd>
</dl>
<div class="fragment"><pre class="fragment">{
pimpl_-&gt;<a class="code" href="classserial_1_1serial_1_1_serial_1_1_serial_impl.html#a697da32867459d1c4e527c3ec468062e">setStopbits</a> (stopbits);
}
</pre></div>
</div>
</div>
<a class="anchor" id="ab6ad13f872e31b9cf0af8cbeb9117cb0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classserial_1_1_serial.html#ab6ad13f872e31b9cf0af8cbeb9117cb0">Serial::setTimeout</a> </td>
<td>(</td>
<td class="paramtype">long&#160;</td>
<td class="paramname"><em>timeout</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Sets the timeout for reads in milliseconds.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">timeout</td><td>A long that represents the time (in milliseconds) until a timeout on reads occur. Setting this to zero (0) will cause reading to be non-blocking, i.e. the available data will be returned immediately, but it will not block to wait for more. Setting this to a number less than zero (-1) will result in infinite blocking behaviour, i.e. the serial port will block until either size bytes have been read or an exception has occured. </td></tr>
</table>
</dd>
</dl>
<div class="fragment"><pre class="fragment">{
pimpl_-&gt;<a class="code" href="classserial_1_1serial_1_1_serial_1_1_serial_impl.html#aa1eb04036c3ed8ad67e243164760bba6">setTimeout</a> (timeout);
}
</pre></div>
</div>
</div>
<a class="anchor" id="acd98ae129db624b664a5dd51f352d8f7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t <a class="el" href="classserial_1_1_serial.html#acd98ae129db624b664a5dd51f352d8f7">serial::Serial::write</a> </td>
<td>(</td>
<td class="paramtype">const unsigned char *&#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>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Write a string to the serial port.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">data</td><td>A const reference containg the data to be written to the serial port.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>A size_t representing the number of bytes actually written to the serial port. </dd></dl>
</div>
</div>
<a class="anchor" id="a280abb1b73ac368591d79badf23776bf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t <a class="el" href="classserial_1_1_serial.html#acd98ae129db624b664a5dd51f352d8f7">serial::Serial::write</a> </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; unsigned char &gt; &amp;&#160;</td>
<td class="paramname"><em>data</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="a7c92c0307b86a935f6623953eec66460"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t <a class="el" href="classserial_1_1_serial.html#acd98ae129db624b664a5dd51f352d8f7">serial::Serial::write</a> </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>data</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>include/serial/<a class="el" href="serial_8h_source.html">serial.h</a></li>
<li>src/<a class="el" href="serial_8cc.html">serial.cc</a></li>
</ul>
</div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jun 9 2012 18:39:48 for serial by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.0
</small></address>
</body>
</html>