Sophie

Sophie

distrib > Mandriva > current > i586 > media > main-updates > by-pkgid > ed376d6842ea322c25405e7c23b3bc12 > files > 321

libcommoncpp-devel-1.8.0-5.1mdv2010.1.i586.rpm

<!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"/>
<title>GNU CommonC++: ost::Serial Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="classes.html"><span>Class&nbsp;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="namespaceost.html">ost</a>::<a class="el" href="classost_1_1_serial.html">Serial</a>
  </div>
</div>
<div class="contents">
<h1>ost::Serial Class Reference</h1><!-- doxytag: class="ost::Serial" -->
<p>The <a class="el" href="classost_1_1_serial.html" title="The Serial class is used as the base for all serial I/O services under APE.">Serial</a> class is used as the base for all serial I/O services under APE.  
<a href="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="serial_8h_source.html">serial.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ost::Serial:</div>
<div class="dynsection">
 <div class="center">
  <img src="classost_1_1_serial.png" usemap="#ost::Serial_map" alt=""/>
  <map id="ost::Serial_map" name="ost::Serial_map">
<area href="classost_1_1_serial_port.html" alt="ost::SerialPort" shape="rect" coords="0,56,101,80"/>
<area href="classost_1_1_t_t_y_stream.html" alt="ost::TTYStream" shape="rect" coords="111,56,212,80"/>
<area href="classost_1_1_t_t_y_session.html" alt="ost::TTYSession" shape="rect" coords="55,112,156,136"/>
<area href="classost_1_1ttystream.html" alt="ost::ttystream" shape="rect" coords="166,112,267,136"/>
</map>
 </div>
</div>

<p><a href="classost_1_1_serial-members.html">List of all members.</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Public Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497">Error</a> { <br/>
&nbsp;&nbsp;<a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497a40d28eb35e78818af6d54350c3fd597d">errSuccess</a> =  0, 
<a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497adea5750f4c5d011d5c543b373a2cf230">errOpenNoTty</a>, 
<a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497aef0ca060f94b5db0608bf3ceeaaedbee">errOpenFailed</a>, 
<a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497a5fa6a9e68cb29ec15f600c22fb424c9a">errSpeedInvalid</a>, 
<br/>
&nbsp;&nbsp;<a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497a936c7e7aedb62d8c3654192f96b0c1b5">errFlowInvalid</a>, 
<a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497adc409d6ffee22d17e7646bfce2d50b8e">errParityInvalid</a>, 
<a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497a280b96416b3ad39f1142f6918267bf5f">errCharsizeInvalid</a>, 
<a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497a5b6b13043d4c239acbdbcfb0b53ece92">errStopbitsInvalid</a>, 
<br/>
&nbsp;&nbsp;<a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497a56ec86c7748b88f2e61e7cb2aa6313d0">errOptionInvalid</a>, 
<a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497aac71caec475b2c8e77061d486f000b04">errResourceFailure</a>, 
<a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497a461e080df6f82ec6017226cba19a92b2">errOutput</a>, 
<a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497a3f81ba432a4ff8864033a355bd1ffccd">errInput</a>, 
<br/>
&nbsp;&nbsp;<a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497ac64e00c5dee4d6ac546856dc8135ccd9">errTimeout</a>, 
<a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497a71b4964c5c550da322e19ae8fdb0b190">errExtended</a>
<br/>
 }</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#a269fc64928cd10bae2fe8a2eefab6303">Flow</a> { <a class="el" href="classost_1_1_serial.html#a269fc64928cd10bae2fe8a2eefab6303a200f49e5ec47a4060706a210148af629">flowNone</a>, 
<a class="el" href="classost_1_1_serial.html#a269fc64928cd10bae2fe8a2eefab6303a40e097623df09f0aa335e2316eba1893">flowSoft</a>, 
<a class="el" href="classost_1_1_serial.html#a269fc64928cd10bae2fe8a2eefab6303a7b1222095085ca00a08988a849c0d78f">flowHard</a>, 
<a class="el" href="classost_1_1_serial.html#a269fc64928cd10bae2fe8a2eefab6303a74c00e3f9dd79bb8493f5fc87bd73b81">flowBoth</a>
 }</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#a54bdc2b3ce16dbf3542785ef69188f7c">Parity</a> { <a class="el" href="classost_1_1_serial.html#a54bdc2b3ce16dbf3542785ef69188f7cac6e7991c8940f35aed8d547ac1455e0c">parityNone</a>, 
<a class="el" href="classost_1_1_serial.html#a54bdc2b3ce16dbf3542785ef69188f7cab31e527b4644ba0f4b08f14a016e54c2">parityOdd</a>, 
<a class="el" href="classost_1_1_serial.html#a54bdc2b3ce16dbf3542785ef69188f7cac99c7fdd2af17159f785e878edd1f221">parityEven</a>
 }</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#a74fbabfe1dcbaebf6e484af11dd6d8b7">Pending</a> { <a class="el" href="classost_1_1_serial.html#a74fbabfe1dcbaebf6e484af11dd6d8b7a252411555c5a7db1682c762f3acc5ad5">pendingInput</a>, 
<a class="el" href="classost_1_1_serial.html#a74fbabfe1dcbaebf6e484af11dd6d8b7aa13e15f4121356d33e5b9c7485b6a6b5">pendingOutput</a>, 
<a class="el" href="classost_1_1_serial.html#a74fbabfe1dcbaebf6e484af11dd6d8b7ad738f8c83dd497aeff2d639ba86bb84c">pendingError</a>
 }</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497">Error</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#a1955d3954338199da7165a4beb7c9703">Error</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="classost_1_1_serial.html#a269fc64928cd10bae2fe8a2eefab6303">Flow</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#a032e8d67ca5a8f64a5cd348e1cba423d">Flow</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="classost_1_1_serial.html#a54bdc2b3ce16dbf3542785ef69188f7c">Parity</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#af7aab47de333eecc51d76a551dcd81db">Parity</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="classost_1_1_serial.html#a74fbabfe1dcbaebf6e484af11dd6d8b7">Pending</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#a7acdd43b4d1766daa58bbb49352dd942">Pending</a></td></tr>
<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#aa62d1da910fb5454abb936a1c1b362c7">~Serial</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The serial base class may be "thrown" as a result on an error, and the "catcher" may then choose to destory the object.  <a href="#aa62d1da910fb5454abb936a1c1b362c7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classost_1_1_serial.html">Serial</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#a1afd56643caecf083babbffc5ed13b97">operator=</a> (const <a class="el" href="classost_1_1_serial.html">Serial</a> &amp;from)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classost_1_1_serial.html" title="The Serial class is used as the base for all serial I/O services under APE.">Serial</a> ports may also be duplecated by the assignment operator.  <a href="#a1afd56643caecf083babbffc5ed13b97"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497">Error</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#ac7f91aed2cc1f843d8ece7200fe55df4">setSpeed</a> (unsigned long speed)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set serial port speed for both input and output.  <a href="#ac7f91aed2cc1f843d8ece7200fe55df4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497">Error</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#ae1c79b3d42f3b21700f270c0300377ea">setCharBits</a> (int bits)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set character size.  <a href="#ae1c79b3d42f3b21700f270c0300377ea"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497">Error</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#a5aca9ba379188e65978eb04d298985ab">setParity</a> (<a class="el" href="classost_1_1_serial.html#a54bdc2b3ce16dbf3542785ef69188f7c">Parity</a> parity)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set parity mode.  <a href="#a5aca9ba379188e65978eb04d298985ab"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497">Error</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#aeea4eb6923c07efe9c4be85f826c452e">setStopBits</a> (int bits)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set number of stop bits.  <a href="#aeea4eb6923c07efe9c4be85f826c452e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497">Error</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#a5ce3b5a9498490a1cc753fb69f114c75">setFlowControl</a> (<a class="el" href="classost_1_1_serial.html#a269fc64928cd10bae2fe8a2eefab6303">Flow</a> flow)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set flow control.  <a href="#a5ce3b5a9498490a1cc753fb69f114c75"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#a420bf5d2edc4bf8bce52149afd7b0bfb">toggleDTR</a> (<a class="el" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> millisec)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the DTR mode off momentarily.  <a href="#a420bf5d2edc4bf8bce52149afd7b0bfb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#ae33c36f64a9debb8ac54712c31313938">sendBreak</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Send the "break" signal.  <a href="#ae33c36f64a9debb8ac54712c31313938"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497">Error</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#ac8d9a9eedecf7dc42f53e8c852e9e6d3">getErrorNumber</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Often used by a "catch" to fetch the last error of a thrown serial.  <a href="#ac8d9a9eedecf7dc42f53e8c852e9e6d3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#a0d67fb60e34c7a725f4494adaa11c0c9">getErrorString</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Often used by a "catch" to fetch the user set error string of a thrown serial.  <a href="#a0d67fb60e34c7a725f4494adaa11c0c9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#ae6d478bbdac8593181fc64eb66106815">getBufferSize</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the "buffer" size for buffered operations.  <a href="#ae6d478bbdac8593181fc64eb66106815"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#a80501f19b1e225c87f2de484b220f737">isPending</a> (<a class="el" href="classost_1_1_serial.html#a74fbabfe1dcbaebf6e484af11dd6d8b7">Pending</a> pend, <a class="el" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> timeout=TIMEOUT_INF)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the status of pending operations.  <a href="#a80501f19b1e225c87f2de484b220f737"></a><br/></td></tr>
<tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#aab0033a3ce6c142a4882f05187ff2749">open</a> (const char *fname)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Opens the serial device.  <a href="#aab0033a3ce6c142a4882f05187ff2749"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#ab58a9efec4fffc41b7f0618734a549e0">close</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Closes the serial device.  <a href="#ab58a9efec4fffc41b7f0618734a549e0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#aa7054a38f90bed8943c8bf4ac63b09da">aRead</a> (char *Data, const int Length)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reads from serial device.  <a href="#aa7054a38f90bed8943c8bf4ac63b09da"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#a0a5f8409773d746095a959e636c50e46">aWrite</a> (const char *Data, const int Length)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Writes to serial device.  <a href="#a0a5f8409773d746095a959e636c50e46"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497">Error</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#a2b2d756a0e1c789c4cb3c49e85f5a77b">error</a> (<a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497">Error</a> error, char *errstr=NULL)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This service is used to throw all serial errors which usually occur during the serial constructor.  <a href="#a2b2d756a0e1c789c4cb3c49e85f5a77b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#aa27ac2ed46bf90a4bab62ecbc19febb6">error</a> (char *err)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This service is used to thow application defined serial errors where the application specific error code is a string.  <a href="#aa27ac2ed46bf90a4bab62ecbc19febb6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#a1d6cbc8147a6f77c01f3b2b7cb5a39d1">setError</a> (bool enable)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This method is used to turn the error handler on or off for "throwing" execptions by manipulating the thrown flag.  <a href="#a1d6cbc8147a6f77c01f3b2b7cb5a39d1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#afb14afa31f6d737cabc0c336198c3d88">setPacketInput</a> (int size, unsigned char btimer=0)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set packet read mode and "size" of packet read buffer.  <a href="#afb14afa31f6d737cabc0c336198c3d88"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#a8d239a3a6ab2cb7253e3eb3fe0618bd3">setLineInput</a> (char newline=13, char nl1=0)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set "line buffering" read mode and specifies the newline character to be used in seperating line records.  <a href="#a8d239a3a6ab2cb7253e3eb3fe0618bd3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#a024e1b908a4e77f392292a8fe5bb6236">restore</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Restore serial device to the original settings at time of open.  <a href="#a024e1b908a4e77f392292a8fe5bb6236"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#a1c5990d5a0f551835809a975a51fb985">flushInput</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Used to flush the input waiting queue.  <a href="#a1c5990d5a0f551835809a975a51fb985"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#acda1f30842b905cb2d624332c58702be">flushOutput</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Used to flush any pending output data.  <a href="#acda1f30842b905cb2d624332c58702be"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#ad70726a0a7513c758036ade5241a8ddd">waitOutput</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Used to wait until all output has been sent.  <a href="#ad70726a0a7513c758036ade5241a8ddd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#af318b426ad5f606f86b2c39bee5889b4">endSerial</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Used as the default destructor for ending serial I/O services.  <a href="#af318b426ad5f606f86b2c39bee5889b4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#a64916fc49030cc114f4785ad4c33166d">initConfig</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Used to initialize a newly opened serial file handle.  <a href="#a64916fc49030cc114f4785ad4c33166d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#a2cc577c5c283fa23edf6efeaf5617829">Serial</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This allows later ttystream class to open and close a serial device.  <a href="#a2cc577c5c283fa23edf6efeaf5617829"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#ab34bbb6966918cb639e1003b7c1f2cb1">Serial</a> (const char *name)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A serial object may be constructed from a named file on the file system.  <a href="#ab34bbb6966918cb639e1003b7c1f2cb1"></a><br/></td></tr>
<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="serial_8h.html#a069bb8cb95b0528d5ce0304bb5561a40">HANDLE</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#a0f2dc5d07e275ab632df9630d4d7ad45">dev</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#a6b974da21c9bdaf38d745c7cb533bd4c">bufsize</a></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>The <a class="el" href="classost_1_1_serial.html" title="The Serial class is used as the base for all serial I/O services under APE.">Serial</a> class is used as the base for all serial I/O services under APE. </p>
<p>A serial is a system serial port that is used either for line or packet based data input. <a class="el" href="classost_1_1_serial.html" title="The Serial class is used as the base for all serial I/O services under APE.">Serial</a> ports may also be "streamable" in a derived form.</p>
<p>Common C++ serial I/O classes are used to manage serial devices and implement serial device protocols. From the point of view of Common C++, serial devices are supported by the underlying Posix specified "termios" call interface.</p>
<p>The serial I/O base class is used to hold a descriptor to a serial device and to provide an exception handling interface for all serial I/O classes. The base class is also used to specify serial I/O properties such as communication speed, flow control, data size, and parity. The "Serial" base class is not itself directly used in application development, however.</p>
<p>Common C++ <a class="el" href="classost_1_1_serial.html" title="The Serial class is used as the base for all serial I/O services under APE.">Serial</a> I/O is itself divided into two conceptual modes; frame oriented and line oriented I/O. Both frame and line oriented I/O makes use of the ability of the underlying tty driver to buffer data and return "ready" status from when select either a specified number of bytes or newline record has been reached by manipulating termios c_cc fields appropriately. This provides some advantage in that a given thread servicing a serial port can block and wait rather than have to continually poll or read each and every byte as soon as it appears at the serial port.</p>
<dl class="author"><dt><b>Author:</b></dt><dd>David Sugar &lt;<a href="mailto:dyfet@ostel.com">dyfet@ostel.com</a>&gt; base class for all serial I/O services. </dd></dl>
<hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="a1955d3954338199da7165a4beb7c9703"></a><!-- doxytag: member="ost::Serial::Error" ref="a1955d3954338199da7165a4beb7c9703" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef enum <a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497">Error</a> <a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497">ost::Serial::Error</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a032e8d67ca5a8f64a5cd348e1cba423d"></a><!-- doxytag: member="ost::Serial::Flow" ref="a032e8d67ca5a8f64a5cd348e1cba423d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef enum <a class="el" href="classost_1_1_serial.html#a269fc64928cd10bae2fe8a2eefab6303">Flow</a> <a class="el" href="classost_1_1_serial.html#a269fc64928cd10bae2fe8a2eefab6303">ost::Serial::Flow</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="af7aab47de333eecc51d76a551dcd81db"></a><!-- doxytag: member="ost::Serial::Parity" ref="af7aab47de333eecc51d76a551dcd81db" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef enum <a class="el" href="classost_1_1_serial.html#a54bdc2b3ce16dbf3542785ef69188f7c">Parity</a> <a class="el" href="classost_1_1_serial.html#a54bdc2b3ce16dbf3542785ef69188f7c">ost::Serial::Parity</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a7acdd43b4d1766daa58bbb49352dd942"></a><!-- doxytag: member="ost::Serial::Pending" ref="a7acdd43b4d1766daa58bbb49352dd942" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef enum <a class="el" href="classost_1_1_serial.html#a74fbabfe1dcbaebf6e484af11dd6d8b7">Pending</a> <a class="el" href="classost_1_1_serial.html#a74fbabfe1dcbaebf6e484af11dd6d8b7">ost::Serial::Pending</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<hr/><h2>Member Enumeration Documentation</h2>
<a class="anchor" id="a2f1bcf165447d5ed96093b6c8a346497"></a><!-- doxytag: member="ost::Serial::Error" ref="a2f1bcf165447d5ed96093b6c8a346497" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497">ost::Serial::Error</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a2f1bcf165447d5ed96093b6c8a346497a40d28eb35e78818af6d54350c3fd597d"></a><!-- doxytag: member="errSuccess" ref="a2f1bcf165447d5ed96093b6c8a346497a40d28eb35e78818af6d54350c3fd597d" args="" -->errSuccess</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a2f1bcf165447d5ed96093b6c8a346497adea5750f4c5d011d5c543b373a2cf230"></a><!-- doxytag: member="errOpenNoTty" ref="a2f1bcf165447d5ed96093b6c8a346497adea5750f4c5d011d5c543b373a2cf230" args="" -->errOpenNoTty</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a2f1bcf165447d5ed96093b6c8a346497aef0ca060f94b5db0608bf3ceeaaedbee"></a><!-- doxytag: member="errOpenFailed" ref="a2f1bcf165447d5ed96093b6c8a346497aef0ca060f94b5db0608bf3ceeaaedbee" args="" -->errOpenFailed</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a2f1bcf165447d5ed96093b6c8a346497a5fa6a9e68cb29ec15f600c22fb424c9a"></a><!-- doxytag: member="errSpeedInvalid" ref="a2f1bcf165447d5ed96093b6c8a346497a5fa6a9e68cb29ec15f600c22fb424c9a" args="" -->errSpeedInvalid</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a2f1bcf165447d5ed96093b6c8a346497a936c7e7aedb62d8c3654192f96b0c1b5"></a><!-- doxytag: member="errFlowInvalid" ref="a2f1bcf165447d5ed96093b6c8a346497a936c7e7aedb62d8c3654192f96b0c1b5" args="" -->errFlowInvalid</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a2f1bcf165447d5ed96093b6c8a346497adc409d6ffee22d17e7646bfce2d50b8e"></a><!-- doxytag: member="errParityInvalid" ref="a2f1bcf165447d5ed96093b6c8a346497adc409d6ffee22d17e7646bfce2d50b8e" args="" -->errParityInvalid</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a2f1bcf165447d5ed96093b6c8a346497a280b96416b3ad39f1142f6918267bf5f"></a><!-- doxytag: member="errCharsizeInvalid" ref="a2f1bcf165447d5ed96093b6c8a346497a280b96416b3ad39f1142f6918267bf5f" args="" -->errCharsizeInvalid</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a2f1bcf165447d5ed96093b6c8a346497a5b6b13043d4c239acbdbcfb0b53ece92"></a><!-- doxytag: member="errStopbitsInvalid" ref="a2f1bcf165447d5ed96093b6c8a346497a5b6b13043d4c239acbdbcfb0b53ece92" args="" -->errStopbitsInvalid</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a2f1bcf165447d5ed96093b6c8a346497a56ec86c7748b88f2e61e7cb2aa6313d0"></a><!-- doxytag: member="errOptionInvalid" ref="a2f1bcf165447d5ed96093b6c8a346497a56ec86c7748b88f2e61e7cb2aa6313d0" args="" -->errOptionInvalid</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a2f1bcf165447d5ed96093b6c8a346497aac71caec475b2c8e77061d486f000b04"></a><!-- doxytag: member="errResourceFailure" ref="a2f1bcf165447d5ed96093b6c8a346497aac71caec475b2c8e77061d486f000b04" args="" -->errResourceFailure</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a2f1bcf165447d5ed96093b6c8a346497a461e080df6f82ec6017226cba19a92b2"></a><!-- doxytag: member="errOutput" ref="a2f1bcf165447d5ed96093b6c8a346497a461e080df6f82ec6017226cba19a92b2" args="" -->errOutput</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a2f1bcf165447d5ed96093b6c8a346497a3f81ba432a4ff8864033a355bd1ffccd"></a><!-- doxytag: member="errInput" ref="a2f1bcf165447d5ed96093b6c8a346497a3f81ba432a4ff8864033a355bd1ffccd" args="" -->errInput</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a2f1bcf165447d5ed96093b6c8a346497ac64e00c5dee4d6ac546856dc8135ccd9"></a><!-- doxytag: member="errTimeout" ref="a2f1bcf165447d5ed96093b6c8a346497ac64e00c5dee4d6ac546856dc8135ccd9" args="" -->errTimeout</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a2f1bcf165447d5ed96093b6c8a346497a71b4964c5c550da322e19ae8fdb0b190"></a><!-- doxytag: member="errExtended" ref="a2f1bcf165447d5ed96093b6c8a346497a71b4964c5c550da322e19ae8fdb0b190" args="" -->errExtended</em>&nbsp;</td><td>
</td></tr>
</table>
</dd>
</dl>

</div>
</div>
<a class="anchor" id="a269fc64928cd10bae2fe8a2eefab6303"></a><!-- doxytag: member="ost::Serial::Flow" ref="a269fc64928cd10bae2fe8a2eefab6303" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classost_1_1_serial.html#a269fc64928cd10bae2fe8a2eefab6303">ost::Serial::Flow</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a269fc64928cd10bae2fe8a2eefab6303a200f49e5ec47a4060706a210148af629"></a><!-- doxytag: member="flowNone" ref="a269fc64928cd10bae2fe8a2eefab6303a200f49e5ec47a4060706a210148af629" args="" -->flowNone</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a269fc64928cd10bae2fe8a2eefab6303a40e097623df09f0aa335e2316eba1893"></a><!-- doxytag: member="flowSoft" ref="a269fc64928cd10bae2fe8a2eefab6303a40e097623df09f0aa335e2316eba1893" args="" -->flowSoft</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a269fc64928cd10bae2fe8a2eefab6303a7b1222095085ca00a08988a849c0d78f"></a><!-- doxytag: member="flowHard" ref="a269fc64928cd10bae2fe8a2eefab6303a7b1222095085ca00a08988a849c0d78f" args="" -->flowHard</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a269fc64928cd10bae2fe8a2eefab6303a74c00e3f9dd79bb8493f5fc87bd73b81"></a><!-- doxytag: member="flowBoth" ref="a269fc64928cd10bae2fe8a2eefab6303a74c00e3f9dd79bb8493f5fc87bd73b81" args="" -->flowBoth</em>&nbsp;</td><td>
</td></tr>
</table>
</dd>
</dl>

</div>
</div>
<a class="anchor" id="a54bdc2b3ce16dbf3542785ef69188f7c"></a><!-- doxytag: member="ost::Serial::Parity" ref="a54bdc2b3ce16dbf3542785ef69188f7c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classost_1_1_serial.html#a54bdc2b3ce16dbf3542785ef69188f7c">ost::Serial::Parity</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a54bdc2b3ce16dbf3542785ef69188f7cac6e7991c8940f35aed8d547ac1455e0c"></a><!-- doxytag: member="parityNone" ref="a54bdc2b3ce16dbf3542785ef69188f7cac6e7991c8940f35aed8d547ac1455e0c" args="" -->parityNone</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a54bdc2b3ce16dbf3542785ef69188f7cab31e527b4644ba0f4b08f14a016e54c2"></a><!-- doxytag: member="parityOdd" ref="a54bdc2b3ce16dbf3542785ef69188f7cab31e527b4644ba0f4b08f14a016e54c2" args="" -->parityOdd</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a54bdc2b3ce16dbf3542785ef69188f7cac99c7fdd2af17159f785e878edd1f221"></a><!-- doxytag: member="parityEven" ref="a54bdc2b3ce16dbf3542785ef69188f7cac99c7fdd2af17159f785e878edd1f221" args="" -->parityEven</em>&nbsp;</td><td>
</td></tr>
</table>
</dd>
</dl>

</div>
</div>
<a class="anchor" id="a74fbabfe1dcbaebf6e484af11dd6d8b7"></a><!-- doxytag: member="ost::Serial::Pending" ref="a74fbabfe1dcbaebf6e484af11dd6d8b7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classost_1_1_serial.html#a74fbabfe1dcbaebf6e484af11dd6d8b7">ost::Serial::Pending</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a74fbabfe1dcbaebf6e484af11dd6d8b7a252411555c5a7db1682c762f3acc5ad5"></a><!-- doxytag: member="pendingInput" ref="a74fbabfe1dcbaebf6e484af11dd6d8b7a252411555c5a7db1682c762f3acc5ad5" args="" -->pendingInput</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a74fbabfe1dcbaebf6e484af11dd6d8b7aa13e15f4121356d33e5b9c7485b6a6b5"></a><!-- doxytag: member="pendingOutput" ref="a74fbabfe1dcbaebf6e484af11dd6d8b7aa13e15f4121356d33e5b9c7485b6a6b5" args="" -->pendingOutput</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a74fbabfe1dcbaebf6e484af11dd6d8b7ad738f8c83dd497aeff2d639ba86bb84c"></a><!-- doxytag: member="pendingError" ref="a74fbabfe1dcbaebf6e484af11dd6d8b7ad738f8c83dd497aeff2d639ba86bb84c" args="" -->pendingError</em>&nbsp;</td><td>
</td></tr>
</table>
</dd>
</dl>

</div>
</div>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a2cc577c5c283fa23edf6efeaf5617829"></a><!-- doxytag: member="ost::Serial::Serial" ref="a2cc577c5c283fa23edf6efeaf5617829" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ost::Serial::Serial </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This allows later ttystream class to open and close a serial device. </p>

</div>
</div>
<a class="anchor" id="ab34bbb6966918cb639e1003b7c1f2cb1"></a><!-- doxytag: member="ost::Serial::Serial" ref="ab34bbb6966918cb639e1003b7c1f2cb1" args="(const char *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ost::Serial::Serial </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A serial object may be constructed from a named file on the file system. </p>
<p>This named device must be "isatty()".</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>of file. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa62d1da910fb5454abb936a1c1b362c7"></a><!-- doxytag: member="ost::Serial::~Serial" ref="aa62d1da910fb5454abb936a1c1b362c7" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual ost::Serial::~Serial </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The serial base class may be "thrown" as a result on an error, and the "catcher" may then choose to destory the object. </p>
<p>By assuring the socket base class is a virtual destructor, we can assure the full object is properly terminated. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="aa7054a38f90bed8943c8bf4ac63b09da"></a><!-- doxytag: member="ost::Serial::aRead" ref="aa7054a38f90bed8943c8bf4ac63b09da" args="(char *Data, const int Length)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int ost::Serial::aRead </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>Data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>Length</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reads from serial device. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>Data</em>&nbsp;</td><td>Point to character buffer to receive data. Buffers MUST be at least Length + 1 bytes in size. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>Length</em>&nbsp;</td><td><a class="el" href="classost_1_1_number.html" title="A number manipulation class.">Number</a> of bytes to read. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0a5f8409773d746095a959e636c50e46"></a><!-- doxytag: member="ost::Serial::aWrite" ref="a0a5f8409773d746095a959e636c50e46" args="(const char *Data, const int Length)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int ost::Serial::aWrite </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>Data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>Length</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Writes to serial device. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>Data</em>&nbsp;</td><td>Point to character buffer containing data to write. Buffers MUST </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>Length</em>&nbsp;</td><td><a class="el" href="classost_1_1_number.html" title="A number manipulation class.">Number</a> of bytes to write. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ab58a9efec4fffc41b7f0618734a549e0"></a><!-- doxytag: member="ost::Serial::close" ref="ab58a9efec4fffc41b7f0618734a549e0" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ost::Serial::close </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Closes the serial device. </p>

<p>Reimplemented in <a class="el" href="classost_1_1ttystream.html#a4c27b39599ec7550606bd6e3cdcbb6d7">ost::ttystream</a>.</p>

</div>
</div>
<a class="anchor" id="af318b426ad5f606f86b2c39bee5889b4"></a><!-- doxytag: member="ost::Serial::endSerial" ref="af318b426ad5f606f86b2c39bee5889b4" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ost::Serial::endSerial </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Used as the default destructor for ending serial I/O services. </p>
<p>It will restore the port to it's original state. </p>

</div>
</div>
<a class="anchor" id="aa27ac2ed46bf90a4bab62ecbc19febb6"></a><!-- doxytag: member="ost::Serial::error" ref="aa27ac2ed46bf90a4bab62ecbc19febb6" args="(char *err)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ost::Serial::error </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>err</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This service is used to thow application defined serial errors where the application specific error code is a string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>err</em>&nbsp;</td><td>string or message to pass. </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="serial_8h_source.html#l00209">error()</a>.</p>

<p>Referenced by <a class="el" href="serial_8h_source.html#l00209">error()</a>.</p>

</div>
</div>
<a class="anchor" id="a2b2d756a0e1c789c4cb3c49e85f5a77b"></a><!-- doxytag: member="ost::Serial::error" ref="a2b2d756a0e1c789c4cb3c49e85f5a77b" args="(Error error, char *errstr=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497">Error</a> ost::Serial::error </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497">Error</a>&nbsp;</td>
          <td class="paramname"> <em>error</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>errstr</em> = <code>NULL</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This service is used to throw all serial errors which usually occur during the serial constructor. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>defined serial error id. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>errstr</em>&nbsp;</td><td>string or message to optionally pass. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1c5990d5a0f551835809a975a51fb985"></a><!-- doxytag: member="ost::Serial::flushInput" ref="a1c5990d5a0f551835809a975a51fb985" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ost::Serial::flushInput </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Used to flush the input waiting queue. </p>

</div>
</div>
<a class="anchor" id="acda1f30842b905cb2d624332c58702be"></a><!-- doxytag: member="ost::Serial::flushOutput" ref="acda1f30842b905cb2d624332c58702be" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ost::Serial::flushOutput </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Used to flush any pending output data. </p>

</div>
</div>
<a class="anchor" id="ae6d478bbdac8593181fc64eb66106815"></a><!-- doxytag: member="ost::Serial::getBufferSize" ref="ae6d478bbdac8593181fc64eb66106815" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ost::Serial::getBufferSize </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the "buffer" size for buffered operations. </p>
<p>This can be used when setting packet or line read modes to determine how many bytes to wait for in a given read call.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of bytes used for buffering. </dd></dl>

</div>
</div>
<a class="anchor" id="ac8d9a9eedecf7dc42f53e8c852e9e6d3"></a><!-- doxytag: member="ost::Serial::getErrorNumber" ref="ac8d9a9eedecf7dc42f53e8c852e9e6d3" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497">Error</a> ost::Serial::getErrorNumber </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Often used by a "catch" to fetch the last error of a thrown serial. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>error numbr of last Error. </dd></dl>

</div>
</div>
<a class="anchor" id="a0d67fb60e34c7a725f4494adaa11c0c9"></a><!-- doxytag: member="ost::Serial::getErrorString" ref="a0d67fb60e34c7a725f4494adaa11c0c9" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* ost::Serial::getErrorString </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Often used by a "catch" to fetch the user set error string of a thrown serial. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>string for error message. </dd></dl>

</div>
</div>
<a class="anchor" id="a64916fc49030cc114f4785ad4c33166d"></a><!-- doxytag: member="ost::Serial::initConfig" ref="a64916fc49030cc114f4785ad4c33166d" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ost::Serial::initConfig </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Used to initialize a newly opened serial file handle. </p>
<p>You should set serial properties and DTR manually before first use. </p>

</div>
</div>
<a class="anchor" id="a80501f19b1e225c87f2de484b220f737"></a><!-- doxytag: member="ost::Serial::isPending" ref="a80501f19b1e225c87f2de484b220f737" args="(Pending pend, timeout_t timeout=TIMEOUT_INF)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool ost::Serial::isPending </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classost_1_1_serial.html#a74fbabfe1dcbaebf6e484af11dd6d8b7">Pending</a>&nbsp;</td>
          <td class="paramname"> <em>pend</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a>&nbsp;</td>
          <td class="paramname"> <em>timeout</em> = <code>TIMEOUT_INF</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the status of pending operations. </p>
<p>This can be used to examine if input or output is waiting, or if an error has occured on the serial device.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if ready, false if timeout. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>pend</em>&nbsp;</td><td>ready check to perform. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>timeout</em>&nbsp;</td><td>in milliseconds. </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented in <a class="el" href="classost_1_1_t_t_y_stream.html#a59694c06c96e9febb3b88cbd4984f4bf">ost::TTYStream</a>.</p>

</div>
</div>
<a class="anchor" id="aab0033a3ce6c142a4882f05187ff2749"></a><!-- doxytag: member="ost::Serial::open" ref="aab0033a3ce6c142a4882f05187ff2749" args="(const char *fname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ost::Serial::open </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>fname</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Opens the serial device. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fname</em>&nbsp;</td><td>Pathname of device to open </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented in <a class="el" href="classost_1_1ttystream.html#a9cd5bb27aace9c143b78af37330179e8">ost::ttystream</a>.</p>

</div>
</div>
<a class="anchor" id="a1afd56643caecf083babbffc5ed13b97"></a><!-- doxytag: member="ost::Serial::operator=" ref="a1afd56643caecf083babbffc5ed13b97" args="(const Serial &amp;from)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classost_1_1_serial.html">Serial</a>&amp; ost::Serial::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classost_1_1_serial.html">Serial</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>from</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p><a class="el" href="classost_1_1_serial.html" title="The Serial class is used as the base for all serial I/O services under APE.">Serial</a> ports may also be duplecated by the assignment operator. </p>

</div>
</div>
<a class="anchor" id="a024e1b908a4e77f392292a8fe5bb6236"></a><!-- doxytag: member="ost::Serial::restore" ref="a024e1b908a4e77f392292a8fe5bb6236" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ost::Serial::restore </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Restore serial device to the original settings at time of open. </p>

</div>
</div>
<a class="anchor" id="ae33c36f64a9debb8ac54712c31313938"></a><!-- doxytag: member="ost::Serial::sendBreak" ref="ae33c36f64a9debb8ac54712c31313938" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ost::Serial::sendBreak </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Send the "break" signal. </p>

</div>
</div>
<a class="anchor" id="ae1c79b3d42f3b21700f270c0300377ea"></a><!-- doxytag: member="ost::Serial::setCharBits" ref="ae1c79b3d42f3b21700f270c0300377ea" args="(int bits)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497">Error</a> ost::Serial::setCharBits </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>bits</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set character size. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>bits</em>&nbsp;</td><td>character size to use (usually 7 or 8). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1d6cbc8147a6f77c01f3b2b7cb5a39d1"></a><!-- doxytag: member="ost::Serial::setError" ref="a1d6cbc8147a6f77c01f3b2b7cb5a39d1" args="(bool enable)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ost::Serial::setError </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>enable</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This method is used to turn the error handler on or off for "throwing" execptions by manipulating the thrown flag. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>enable</em>&nbsp;</td><td>true to enable handler. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a5ce3b5a9498490a1cc753fb69f114c75"></a><!-- doxytag: member="ost::Serial::setFlowControl" ref="a5ce3b5a9498490a1cc753fb69f114c75" args="(Flow flow)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497">Error</a> ost::Serial::setFlowControl </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classost_1_1_serial.html#a269fc64928cd10bae2fe8a2eefab6303">Flow</a>&nbsp;</td>
          <td class="paramname"> <em>flow</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set flow control. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>flow</em>&nbsp;</td><td>control mode. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a8d239a3a6ab2cb7253e3eb3fe0618bd3"></a><!-- doxytag: member="ost::Serial::setLineInput" ref="a8d239a3a6ab2cb7253e3eb3fe0618bd3" args="(char newline=13, char nl1=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ost::Serial::setLineInput </td>
          <td>(</td>
          <td class="paramtype">char&nbsp;</td>
          <td class="paramname"> <em>newline</em> = <code>13</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char&nbsp;</td>
          <td class="paramname"> <em>nl1</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set "line buffering" read mode and specifies the newline character to be used in seperating line records. </p>
<p>isPending can then be used to wait for an entire line of input.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>newline</em>&nbsp;</td><td>newline character. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>nl1</em>&nbsp;</td><td>EOL2 control character. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>size of conical input buffer. </dd></dl>

</div>
</div>
<a class="anchor" id="afb14afa31f6d737cabc0c336198c3d88"></a><!-- doxytag: member="ost::Serial::setPacketInput" ref="afb14afa31f6d737cabc0c336198c3d88" args="(int size, unsigned char btimer=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ost::Serial::setPacketInput </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&nbsp;</td>
          <td class="paramname"> <em>btimer</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set packet read mode and "size" of packet read buffer. </p>
<p>This sets VMIN to x. VTIM is normally set to "0" so that "isPending()" can wait for an entire packet rather than just the first byte.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>actual buffer size set. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>of packet read request. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>btimer</em>&nbsp;</td><td>optional inter-byte data packet timeout. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a5aca9ba379188e65978eb04d298985ab"></a><!-- doxytag: member="ost::Serial::setParity" ref="a5aca9ba379188e65978eb04d298985ab" args="(Parity parity)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497">Error</a> ost::Serial::setParity </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classost_1_1_serial.html#a54bdc2b3ce16dbf3542785ef69188f7c">Parity</a>&nbsp;</td>
          <td class="paramname"> <em>parity</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set parity mode. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>parity</em>&nbsp;</td><td>mode. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ac7f91aed2cc1f843d8ece7200fe55df4"></a><!-- doxytag: member="ost::Serial::setSpeed" ref="ac7f91aed2cc1f843d8ece7200fe55df4" args="(unsigned long speed)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497">Error</a> ost::Serial::setSpeed </td>
          <td>(</td>
          <td class="paramtype">unsigned long&nbsp;</td>
          <td class="paramname"> <em>speed</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set serial port speed for both input and output. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>speed</em>&nbsp;</td><td>to select. 0 signifies modem "hang up". </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aeea4eb6923c07efe9c4be85f826c452e"></a><!-- doxytag: member="ost::Serial::setStopBits" ref="aeea4eb6923c07efe9c4be85f826c452e" args="(int bits)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classost_1_1_serial.html#a2f1bcf165447d5ed96093b6c8a346497">Error</a> ost::Serial::setStopBits </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>bits</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set number of stop bits. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 on success. </dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>bits</em>&nbsp;</td><td>stop bits. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a420bf5d2edc4bf8bce52149afd7b0bfb"></a><!-- doxytag: member="ost::Serial::toggleDTR" ref="a420bf5d2edc4bf8bce52149afd7b0bfb" args="(timeout_t millisec)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ost::Serial::toggleDTR </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="thread_8h.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a>&nbsp;</td>
          <td class="paramname"> <em>millisec</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the DTR mode off momentarily. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>millisec</em>&nbsp;</td><td>number of milliseconds. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ad70726a0a7513c758036ade5241a8ddd"></a><!-- doxytag: member="ost::Serial::waitOutput" ref="ad70726a0a7513c758036ade5241a8ddd" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ost::Serial::waitOutput </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Used to wait until all output has been sent. </p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a6b974da21c9bdaf38d745c7cb533bd4c"></a><!-- doxytag: member="ost::Serial::bufsize" ref="a6b974da21c9bdaf38d745c7cb533bd4c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classost_1_1_serial.html#a6b974da21c9bdaf38d745c7cb533bd4c">ost::Serial::bufsize</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a0f2dc5d07e275ab632df9630d4d7ad45"></a><!-- doxytag: member="ost::Serial::dev" ref="a0f2dc5d07e275ab632df9630d4d7ad45" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="serial_8h.html#a069bb8cb95b0528d5ce0304bb5561a40">HANDLE</a> <a class="el" href="classost_1_1_serial.html#a0f2dc5d07e275ab632df9630d4d7ad45">ost::Serial::dev</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="afb17fb6c08d2405281f473a037891aaf"></a><!-- doxytag: member="ost::Serial::linebuf" ref="afb17fb6c08d2405281f473a037891aaf" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classost_1_1_serial.html#afb17fb6c08d2405281f473a037891aaf">ost::Serial::linebuf</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a08089082dbf6e6095257b7835624ea20"></a><!-- doxytag: member="ost::Serial::thrown" ref="a08089082dbf6e6095257b7835624ea20" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classost_1_1_serial.html#a08089082dbf6e6095257b7835624ea20">ost::Serial::thrown</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="serial_8h_source.html">serial.h</a></li>
</ul>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Nov 12 09:55:47 2010 for GNU CommonC++ by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>