Sophie

Sophie

distrib > Mandriva > 2007.0 > i586 > by-pkgid > ad1ba1135a9c9eeffc2e538163e00373 > files > 270

libCommonC++2_1.4-devel-1.4.1-1mdv2007.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>GNU CommonC++: ost::Serial Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<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 id="current"><a href="classes.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
  </ul></div>
<div class="tabs">
  <ul>
    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
    <li><a href="annotated.html"><span>Class&nbsp;List</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="nav">
<a class="el" href="namespaceost.html">ost</a>::<a class="el" href="classost_1_1_serial.html">Serial</a></div>
<h1>ost::Serial Class Reference</h1><!-- doxytag: class="ost::Serial" -->The <a class="el" href="classost_1_1_serial.html">Serial</a> class is used as the base for all serial I/O services under APE.base class for all serial I/O services.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="serial_8h-source.html">serial.h</a>&gt;</code>
<p>
<p>Inheritance diagram for ost::Serial:
<p><center><img src="classost_1_1_serial.png" usemap="#ost::Serial_map" border="0" alt=""></center>
<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>
<a href="classost_1_1_serial-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef enum <a class="el" href="classost_1_1_serial.html#1955d3954338199da7165a4beb7c9703">Error</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#1955d3954338199da7165a4beb7c9703">Error</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef enum <a class="el" href="classost_1_1_serial.html#032e8d67ca5a8f64a5cd348e1cba423d">Flow</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#032e8d67ca5a8f64a5cd348e1cba423d">Flow</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef enum <a class="el" href="classost_1_1_serial.html#f7aab47de333eecc51d76a551dcd81db">Parity</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#f7aab47de333eecc51d76a551dcd81db">Parity</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef enum <a class="el" href="classost_1_1_serial.html#7acdd43b4d1766daa58bbb49352dd942">Pending</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#7acdd43b4d1766daa58bbb49352dd942">Pending</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#2f1bcf165447d5ed96093b6c8a346497">Error</a> { <br>
&nbsp;&nbsp;<a class="el" href="classost_1_1_serial.html#2f1bcf165447d5ed96093b6c8a34649740d28eb35e78818af6d54350c3fd597d">errSuccess</a> =  0, 
<a class="el" href="classost_1_1_serial.html#2f1bcf165447d5ed96093b6c8a346497dea5750f4c5d011d5c543b373a2cf230">errOpenNoTty</a>, 
<a class="el" href="classost_1_1_serial.html#2f1bcf165447d5ed96093b6c8a346497ef0ca060f94b5db0608bf3ceeaaedbee">errOpenFailed</a>, 
<a class="el" href="classost_1_1_serial.html#2f1bcf165447d5ed96093b6c8a3464975fa6a9e68cb29ec15f600c22fb424c9a">errSpeedInvalid</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="classost_1_1_serial.html#2f1bcf165447d5ed96093b6c8a346497936c7e7aedb62d8c3654192f96b0c1b5">errFlowInvalid</a>, 
<a class="el" href="classost_1_1_serial.html#2f1bcf165447d5ed96093b6c8a346497dc409d6ffee22d17e7646bfce2d50b8e">errParityInvalid</a>, 
<a class="el" href="classost_1_1_serial.html#2f1bcf165447d5ed96093b6c8a346497280b96416b3ad39f1142f6918267bf5f">errCharsizeInvalid</a>, 
<a class="el" href="classost_1_1_serial.html#2f1bcf165447d5ed96093b6c8a3464975b6b13043d4c239acbdbcfb0b53ece92">errStopbitsInvalid</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="classost_1_1_serial.html#2f1bcf165447d5ed96093b6c8a34649756ec86c7748b88f2e61e7cb2aa6313d0">errOptionInvalid</a>, 
<a class="el" href="classost_1_1_serial.html#2f1bcf165447d5ed96093b6c8a346497ac71caec475b2c8e77061d486f000b04">errResourceFailure</a>, 
<a class="el" href="classost_1_1_serial.html#2f1bcf165447d5ed96093b6c8a346497461e080df6f82ec6017226cba19a92b2">errOutput</a>, 
<a class="el" href="classost_1_1_serial.html#2f1bcf165447d5ed96093b6c8a3464973f81ba432a4ff8864033a355bd1ffccd">errInput</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="classost_1_1_serial.html#2f1bcf165447d5ed96093b6c8a346497c64e00c5dee4d6ac546856dc8135ccd9">errTimeout</a>, 
<a class="el" href="classost_1_1_serial.html#2f1bcf165447d5ed96093b6c8a34649771b4964c5c550da322e19ae8fdb0b190">errExtended</a>
<br>
 }</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#269fc64928cd10bae2fe8a2eefab6303">Flow</a> { <a class="el" href="classost_1_1_serial.html#269fc64928cd10bae2fe8a2eefab6303200f49e5ec47a4060706a210148af629">flowNone</a>, 
<a class="el" href="classost_1_1_serial.html#269fc64928cd10bae2fe8a2eefab630340e097623df09f0aa335e2316eba1893">flowSoft</a>, 
<a class="el" href="classost_1_1_serial.html#269fc64928cd10bae2fe8a2eefab63037b1222095085ca00a08988a849c0d78f">flowHard</a>, 
<a class="el" href="classost_1_1_serial.html#269fc64928cd10bae2fe8a2eefab630374c00e3f9dd79bb8493f5fc87bd73b81">flowBoth</a>
 }</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#54bdc2b3ce16dbf3542785ef69188f7c">Parity</a> { <a class="el" href="classost_1_1_serial.html#54bdc2b3ce16dbf3542785ef69188f7cc6e7991c8940f35aed8d547ac1455e0c">parityNone</a>, 
<a class="el" href="classost_1_1_serial.html#54bdc2b3ce16dbf3542785ef69188f7cb31e527b4644ba0f4b08f14a016e54c2">parityOdd</a>, 
<a class="el" href="classost_1_1_serial.html#54bdc2b3ce16dbf3542785ef69188f7cc99c7fdd2af17159f785e878edd1f221">parityEven</a>
 }</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#74fbabfe1dcbaebf6e484af11dd6d8b7">Pending</a> { <a class="el" href="classost_1_1_serial.html#74fbabfe1dcbaebf6e484af11dd6d8b7252411555c5a7db1682c762f3acc5ad5">pendingInput</a>, 
<a class="el" href="classost_1_1_serial.html#74fbabfe1dcbaebf6e484af11dd6d8b7a13e15f4121356d33e5b9c7485b6a6b5">pendingOutput</a>, 
<a class="el" href="classost_1_1_serial.html#74fbabfe1dcbaebf6e484af11dd6d8b7d738f8c83dd497aeff2d639ba86bb84c">pendingError</a>
 }</td></tr>

<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#a62d1da910fb5454abb936a1c1b362c7">~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="#a62d1da910fb5454abb936a1c1b362c7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap 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#1afd56643caecf083babbffc5ed13b97">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">Serial</a> ports may also be duplecated by the assignment operator.  <a href="#1afd56643caecf083babbffc5ed13b97"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classost_1_1_serial.html#1955d3954338199da7165a4beb7c9703">Error</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#c7f91aed2cc1f843d8ece7200fe55df4">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="#c7f91aed2cc1f843d8ece7200fe55df4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classost_1_1_serial.html#1955d3954338199da7165a4beb7c9703">Error</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#e1c79b3d42f3b21700f270c0300377ea">setCharBits</a> (int bits)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set character size.  <a href="#e1c79b3d42f3b21700f270c0300377ea"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classost_1_1_serial.html#1955d3954338199da7165a4beb7c9703">Error</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#5aca9ba379188e65978eb04d298985ab">setParity</a> (<a class="el" href="classost_1_1_serial.html#f7aab47de333eecc51d76a551dcd81db">Parity</a> parity)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set parity mode.  <a href="#5aca9ba379188e65978eb04d298985ab"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classost_1_1_serial.html#1955d3954338199da7165a4beb7c9703">Error</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#eea4eb6923c07efe9c4be85f826c452e">setStopBits</a> (int bits)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set number of stop bits.  <a href="#eea4eb6923c07efe9c4be85f826c452e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classost_1_1_serial.html#1955d3954338199da7165a4beb7c9703">Error</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#5ce3b5a9498490a1cc753fb69f114c75">setFlowControl</a> (<a class="el" href="classost_1_1_serial.html#032e8d67ca5a8f64a5cd348e1cba423d">Flow</a> flow)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set flow control.  <a href="#5ce3b5a9498490a1cc753fb69f114c75"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#420bf5d2edc4bf8bce52149afd7b0bfb">toggleDTR</a> (<a class="el" href="thread_8h.html#f412159e5cef839836a5e7b19ee75d1c">timeout_t</a> millisec)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the DTR mode off momentarily.  <a href="#420bf5d2edc4bf8bce52149afd7b0bfb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#e33c36f64a9debb8ac54712c31313938">sendBreak</a> (void)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Send the "break" signal.  <a href="#e33c36f64a9debb8ac54712c31313938"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classost_1_1_serial.html#1955d3954338199da7165a4beb7c9703">Error</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#c8d9a9eedecf7dc42f53e8c852e9e6d3">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="#c8d9a9eedecf7dc42f53e8c852e9e6d3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#0d67fb60e34c7a725f4494adaa11c0c9">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="#0d67fb60e34c7a725f4494adaa11c0c9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#e6d478bbdac8593181fc64eb66106815">getBufferSize</a> (void)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the "buffer" size for buffered operations.  <a href="#e6d478bbdac8593181fc64eb66106815"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#80501f19b1e225c87f2de484b220f737">isPending</a> (<a class="el" href="classost_1_1_serial.html#7acdd43b4d1766daa58bbb49352dd942">Pending</a> pend, <a class="el" href="thread_8h.html#f412159e5cef839836a5e7b19ee75d1c">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="#80501f19b1e225c87f2de484b220f737"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#ab0033a3ce6c142a4882f05187ff2749">open</a> (const char *fname)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Opens the serial device.  <a href="#ab0033a3ce6c142a4882f05187ff2749"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#b58a9efec4fffc41b7f0618734a549e0">close</a> (void)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Closes the serial device.  <a href="#b58a9efec4fffc41b7f0618734a549e0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#a7054a38f90bed8943c8bf4ac63b09da">aRead</a> (char *Data, const int Length)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reads from serial device.  <a href="#a7054a38f90bed8943c8bf4ac63b09da"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#0a5f8409773d746095a959e636c50e46">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="#0a5f8409773d746095a959e636c50e46"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classost_1_1_serial.html#1955d3954338199da7165a4beb7c9703">Error</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#2b2d756a0e1c789c4cb3c49e85f5a77b">error</a> (<a class="el" href="classost_1_1_serial.html#1955d3954338199da7165a4beb7c9703">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="#2b2d756a0e1c789c4cb3c49e85f5a77b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#a27ac2ed46bf90a4bab62ecbc19febb6">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="#a27ac2ed46bf90a4bab62ecbc19febb6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#1d6cbc8147a6f77c01f3b2b7cb5a39d1">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="#1d6cbc8147a6f77c01f3b2b7cb5a39d1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#fb14afa31f6d737cabc0c336198c3d88">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="#fb14afa31f6d737cabc0c336198c3d88"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#8d239a3a6ab2cb7253e3eb3fe0618bd3">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="#8d239a3a6ab2cb7253e3eb3fe0618bd3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#024e1b908a4e77f392292a8fe5bb6236">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="#024e1b908a4e77f392292a8fe5bb6236"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#1c5990d5a0f551835809a975a51fb985">flushInput</a> (void)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Used to flush the input waiting queue.  <a href="#1c5990d5a0f551835809a975a51fb985"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#cda1f30842b905cb2d624332c58702be">flushOutput</a> (void)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Used to flush any pending output data.  <a href="#cda1f30842b905cb2d624332c58702be"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#d70726a0a7513c758036ade5241a8ddd">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="#d70726a0a7513c758036ade5241a8ddd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#f318b426ad5f606f86b2c39bee5889b4">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="#f318b426ad5f606f86b2c39bee5889b4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#64916fc49030cc114f4785ad4c33166d">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="#64916fc49030cc114f4785ad4c33166d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#2cc577c5c283fa23edf6efeaf5617829">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="#2cc577c5c283fa23edf6efeaf5617829"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#b34bbb6966918cb639e1003b7c1f2cb1">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="#b34bbb6966918cb639e1003b7c1f2cb1"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="serial_8h.html#069bb8cb95b0528d5ce0304bb5561a40">HANDLE</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#0f2dc5d07e275ab632df9630d4d7ad45">dev</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#6b974da21c9bdaf38d745c7cb533bd4c">bufsize</a></td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
The <a class="el" href="classost_1_1_serial.html">Serial</a> class is used as the base for all serial I/O services under APE.base class for all serial I/O services. 
<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">Serial</a> ports may also be "streamable" in a derived form.<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>
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>
Common C++ <a class="el" href="classost_1_1_serial.html">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 compact><dt><b>Author:</b></dt><dd>David Sugar &lt;<a href="mailto:dyfet@ostel.com">dyfet@ostel.com</a>&gt; </dd></dl>

<p>
<hr><h2>Member Typedef Documentation</h2>
<a class="anchor" name="1955d3954338199da7165a4beb7c9703"></a><!-- doxytag: member="ost::Serial::Error" ref="1955d3954338199da7165a4beb7c9703" args="" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">typedef enum <a class="el" href="classost_1_1_serial.html#1955d3954338199da7165a4beb7c9703">Error</a> <a class="el" href="classost_1_1_serial.html#1955d3954338199da7165a4beb7c9703">ost::Serial::Error</a>          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<a class="anchor" name="032e8d67ca5a8f64a5cd348e1cba423d"></a><!-- doxytag: member="ost::Serial::Flow" ref="032e8d67ca5a8f64a5cd348e1cba423d" args="" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">typedef enum <a class="el" href="classost_1_1_serial.html#032e8d67ca5a8f64a5cd348e1cba423d">Flow</a> <a class="el" href="classost_1_1_serial.html#032e8d67ca5a8f64a5cd348e1cba423d">ost::Serial::Flow</a>          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<a class="anchor" name="f7aab47de333eecc51d76a551dcd81db"></a><!-- doxytag: member="ost::Serial::Parity" ref="f7aab47de333eecc51d76a551dcd81db" args="" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">typedef enum <a class="el" href="classost_1_1_serial.html#f7aab47de333eecc51d76a551dcd81db">Parity</a> <a class="el" href="classost_1_1_serial.html#f7aab47de333eecc51d76a551dcd81db">ost::Serial::Parity</a>          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<a class="anchor" name="7acdd43b4d1766daa58bbb49352dd942"></a><!-- doxytag: member="ost::Serial::Pending" ref="7acdd43b4d1766daa58bbb49352dd942" args="" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">typedef enum <a class="el" href="classost_1_1_serial.html#7acdd43b4d1766daa58bbb49352dd942">Pending</a> <a class="el" href="classost_1_1_serial.html#7acdd43b4d1766daa58bbb49352dd942">ost::Serial::Pending</a>          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<hr><h2>Member Enumeration Documentation</h2>
<a class="anchor" name="2f1bcf165447d5ed96093b6c8a346497"></a><!-- doxytag: member="ost::Serial::Error" ref="2f1bcf165447d5ed96093b6c8a346497" args="" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">enum <a class="el" href="classost_1_1_serial.html#1955d3954338199da7165a4beb7c9703">ost::Serial::Error</a>          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="2f1bcf165447d5ed96093b6c8a34649740d28eb35e78818af6d54350c3fd597d"></a><!-- doxytag: member="errSuccess" ref="2f1bcf165447d5ed96093b6c8a34649740d28eb35e78818af6d54350c3fd597d" args="" -->errSuccess</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="2f1bcf165447d5ed96093b6c8a346497dea5750f4c5d011d5c543b373a2cf230"></a><!-- doxytag: member="errOpenNoTty" ref="2f1bcf165447d5ed96093b6c8a346497dea5750f4c5d011d5c543b373a2cf230" args="" -->errOpenNoTty</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="2f1bcf165447d5ed96093b6c8a346497ef0ca060f94b5db0608bf3ceeaaedbee"></a><!-- doxytag: member="errOpenFailed" ref="2f1bcf165447d5ed96093b6c8a346497ef0ca060f94b5db0608bf3ceeaaedbee" args="" -->errOpenFailed</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="2f1bcf165447d5ed96093b6c8a3464975fa6a9e68cb29ec15f600c22fb424c9a"></a><!-- doxytag: member="errSpeedInvalid" ref="2f1bcf165447d5ed96093b6c8a3464975fa6a9e68cb29ec15f600c22fb424c9a" args="" -->errSpeedInvalid</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="2f1bcf165447d5ed96093b6c8a346497936c7e7aedb62d8c3654192f96b0c1b5"></a><!-- doxytag: member="errFlowInvalid" ref="2f1bcf165447d5ed96093b6c8a346497936c7e7aedb62d8c3654192f96b0c1b5" args="" -->errFlowInvalid</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="2f1bcf165447d5ed96093b6c8a346497dc409d6ffee22d17e7646bfce2d50b8e"></a><!-- doxytag: member="errParityInvalid" ref="2f1bcf165447d5ed96093b6c8a346497dc409d6ffee22d17e7646bfce2d50b8e" args="" -->errParityInvalid</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="2f1bcf165447d5ed96093b6c8a346497280b96416b3ad39f1142f6918267bf5f"></a><!-- doxytag: member="errCharsizeInvalid" ref="2f1bcf165447d5ed96093b6c8a346497280b96416b3ad39f1142f6918267bf5f" args="" -->errCharsizeInvalid</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="2f1bcf165447d5ed96093b6c8a3464975b6b13043d4c239acbdbcfb0b53ece92"></a><!-- doxytag: member="errStopbitsInvalid" ref="2f1bcf165447d5ed96093b6c8a3464975b6b13043d4c239acbdbcfb0b53ece92" args="" -->errStopbitsInvalid</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="2f1bcf165447d5ed96093b6c8a34649756ec86c7748b88f2e61e7cb2aa6313d0"></a><!-- doxytag: member="errOptionInvalid" ref="2f1bcf165447d5ed96093b6c8a34649756ec86c7748b88f2e61e7cb2aa6313d0" args="" -->errOptionInvalid</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="2f1bcf165447d5ed96093b6c8a346497ac71caec475b2c8e77061d486f000b04"></a><!-- doxytag: member="errResourceFailure" ref="2f1bcf165447d5ed96093b6c8a346497ac71caec475b2c8e77061d486f000b04" args="" -->errResourceFailure</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="2f1bcf165447d5ed96093b6c8a346497461e080df6f82ec6017226cba19a92b2"></a><!-- doxytag: member="errOutput" ref="2f1bcf165447d5ed96093b6c8a346497461e080df6f82ec6017226cba19a92b2" args="" -->errOutput</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="2f1bcf165447d5ed96093b6c8a3464973f81ba432a4ff8864033a355bd1ffccd"></a><!-- doxytag: member="errInput" ref="2f1bcf165447d5ed96093b6c8a3464973f81ba432a4ff8864033a355bd1ffccd" args="" -->errInput</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="2f1bcf165447d5ed96093b6c8a346497c64e00c5dee4d6ac546856dc8135ccd9"></a><!-- doxytag: member="errTimeout" ref="2f1bcf165447d5ed96093b6c8a346497c64e00c5dee4d6ac546856dc8135ccd9" args="" -->errTimeout</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="2f1bcf165447d5ed96093b6c8a34649771b4964c5c550da322e19ae8fdb0b190"></a><!-- doxytag: member="errExtended" ref="2f1bcf165447d5ed96093b6c8a34649771b4964c5c550da322e19ae8fdb0b190" args="" -->errExtended</em>&nbsp;</td><td>
</td></tr>
</table>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="269fc64928cd10bae2fe8a2eefab6303"></a><!-- doxytag: member="ost::Serial::Flow" ref="269fc64928cd10bae2fe8a2eefab6303" args="" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">enum <a class="el" href="classost_1_1_serial.html#032e8d67ca5a8f64a5cd348e1cba423d">ost::Serial::Flow</a>          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="269fc64928cd10bae2fe8a2eefab6303200f49e5ec47a4060706a210148af629"></a><!-- doxytag: member="flowNone" ref="269fc64928cd10bae2fe8a2eefab6303200f49e5ec47a4060706a210148af629" args="" -->flowNone</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="269fc64928cd10bae2fe8a2eefab630340e097623df09f0aa335e2316eba1893"></a><!-- doxytag: member="flowSoft" ref="269fc64928cd10bae2fe8a2eefab630340e097623df09f0aa335e2316eba1893" args="" -->flowSoft</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="269fc64928cd10bae2fe8a2eefab63037b1222095085ca00a08988a849c0d78f"></a><!-- doxytag: member="flowHard" ref="269fc64928cd10bae2fe8a2eefab63037b1222095085ca00a08988a849c0d78f" args="" -->flowHard</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="269fc64928cd10bae2fe8a2eefab630374c00e3f9dd79bb8493f5fc87bd73b81"></a><!-- doxytag: member="flowBoth" ref="269fc64928cd10bae2fe8a2eefab630374c00e3f9dd79bb8493f5fc87bd73b81" args="" -->flowBoth</em>&nbsp;</td><td>
</td></tr>
</table>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="54bdc2b3ce16dbf3542785ef69188f7c"></a><!-- doxytag: member="ost::Serial::Parity" ref="54bdc2b3ce16dbf3542785ef69188f7c" args="" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">enum <a class="el" href="classost_1_1_serial.html#f7aab47de333eecc51d76a551dcd81db">ost::Serial::Parity</a>          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="54bdc2b3ce16dbf3542785ef69188f7cc6e7991c8940f35aed8d547ac1455e0c"></a><!-- doxytag: member="parityNone" ref="54bdc2b3ce16dbf3542785ef69188f7cc6e7991c8940f35aed8d547ac1455e0c" args="" -->parityNone</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="54bdc2b3ce16dbf3542785ef69188f7cb31e527b4644ba0f4b08f14a016e54c2"></a><!-- doxytag: member="parityOdd" ref="54bdc2b3ce16dbf3542785ef69188f7cb31e527b4644ba0f4b08f14a016e54c2" args="" -->parityOdd</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="54bdc2b3ce16dbf3542785ef69188f7cc99c7fdd2af17159f785e878edd1f221"></a><!-- doxytag: member="parityEven" ref="54bdc2b3ce16dbf3542785ef69188f7cc99c7fdd2af17159f785e878edd1f221" args="" -->parityEven</em>&nbsp;</td><td>
</td></tr>
</table>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="74fbabfe1dcbaebf6e484af11dd6d8b7"></a><!-- doxytag: member="ost::Serial::Pending" ref="74fbabfe1dcbaebf6e484af11dd6d8b7" args="" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">enum <a class="el" href="classost_1_1_serial.html#7acdd43b4d1766daa58bbb49352dd942">ost::Serial::Pending</a>          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="74fbabfe1dcbaebf6e484af11dd6d8b7252411555c5a7db1682c762f3acc5ad5"></a><!-- doxytag: member="pendingInput" ref="74fbabfe1dcbaebf6e484af11dd6d8b7252411555c5a7db1682c762f3acc5ad5" args="" -->pendingInput</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="74fbabfe1dcbaebf6e484af11dd6d8b7a13e15f4121356d33e5b9c7485b6a6b5"></a><!-- doxytag: member="pendingOutput" ref="74fbabfe1dcbaebf6e484af11dd6d8b7a13e15f4121356d33e5b9c7485b6a6b5" args="" -->pendingOutput</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="74fbabfe1dcbaebf6e484af11dd6d8b7d738f8c83dd497aeff2d639ba86bb84c"></a><!-- doxytag: member="pendingError" ref="74fbabfe1dcbaebf6e484af11dd6d8b7d738f8c83dd497aeff2d639ba86bb84c" args="" -->pendingError</em>&nbsp;</td><td>
</td></tr>
</table>
</dl>
    </td>
  </tr>
</table>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="2cc577c5c283fa23edf6efeaf5617829"></a><!-- doxytag: member="ost::Serial::Serial" ref="2cc577c5c283fa23edf6efeaf5617829" args="()" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">ost::Serial::Serial           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [inline, protected]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
This allows later ttystream class to open and close a serial device. 
<p>
    </td>
  </tr>
</table>
<a class="anchor" name="b34bbb6966918cb639e1003b7c1f2cb1"></a><!-- doxytag: member="ost::Serial::Serial" ref="b34bbb6966918cb639e1003b7c1f2cb1" args="(const char *name)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">ost::Serial::Serial           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>name</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [protected]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
A serial object may be constructed from a named file on the file system. 
<p>
This named device must be "isatty()".<p>
<dl compact><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>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="a62d1da910fb5454abb936a1c1b362c7"></a><!-- doxytag: member="ost::Serial::~Serial" ref="a62d1da910fb5454abb936a1c1b362c7" args="()" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">virtual ost::Serial::~Serial           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [virtual]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<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>
By assuring the socket base class is a virtual destructor, we can assure the full object is properly terminated.     </td>
  </tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="a7054a38f90bed8943c8bf4ac63b09da"></a><!-- doxytag: member="ost::Serial::aRead" ref="a7054a38f90bed8943c8bf4ac63b09da" args="(char *Data, const int Length)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">virtual int ost::Serial::aRead           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">char *&nbsp;</td>
          <td class="mdname" nowrap> <em>Data</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const int&nbsp;</td>
          <td class="mdname" nowrap> <em>Length</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [protected, virtual]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Reads from serial device. 
<p>
<dl compact><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">Number</a> of bytes to read. </td></tr>
  </table>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="0a5f8409773d746095a959e636c50e46"></a><!-- doxytag: member="ost::Serial::aWrite" ref="0a5f8409773d746095a959e636c50e46" args="(const char *Data, const int Length)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">virtual int ost::Serial::aWrite           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>Data</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const int&nbsp;</td>
          <td class="mdname" nowrap> <em>Length</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [protected, virtual]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Writes to serial device. 
<p>
<dl compact><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">Number</a> of bytes to write. </td></tr>
  </table>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="b58a9efec4fffc41b7f0618734a549e0"></a><!-- doxytag: member="ost::Serial::close" ref="b58a9efec4fffc41b7f0618734a549e0" args="(void)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void ost::Serial::close           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [protected]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Closes the serial device. 
<p>

<p>
Reimplemented in <a class="el" href="classost_1_1ttystream.html#4c27b39599ec7550606bd6e3cdcbb6d7">ost::ttystream</a>.    </td>
  </tr>
</table>
<a class="anchor" name="f318b426ad5f606f86b2c39bee5889b4"></a><!-- doxytag: member="ost::Serial::endSerial" ref="f318b426ad5f606f86b2c39bee5889b4" args="(void)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void ost::Serial::endSerial           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [protected]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Used as the default destructor for ending serial I/O services. 
<p>
It will restore the port to it's original state.     </td>
  </tr>
</table>
<a class="anchor" name="a27ac2ed46bf90a4bab62ecbc19febb6"></a><!-- doxytag: member="ost::Serial::error" ref="a27ac2ed46bf90a4bab62ecbc19febb6" args="(char *err)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void ost::Serial::error           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">char *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>err</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [inline, protected]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
This service is used to thow application defined serial errors where the application specific error code is a string. 
<p>
<dl compact><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>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="2b2d756a0e1c789c4cb3c49e85f5a77b"></a><!-- doxytag: member="ost::Serial::error" ref="2b2d756a0e1c789c4cb3c49e85f5a77b" args="(Error error, char *errstr=NULL)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"><a class="el" href="classost_1_1_serial.html#1955d3954338199da7165a4beb7c9703">Error</a> ost::Serial::error           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="classost_1_1_serial.html#1955d3954338199da7165a4beb7c9703">Error</a>&nbsp;</td>
          <td class="mdname" nowrap> <em>error</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>char *&nbsp;</td>
          <td class="mdname" nowrap> <em>errstr</em> = <code>NULL</code></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [protected]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
This service is used to throw all serial errors which usually occur during the serial constructor. 
<p>
<dl compact><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>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="1c5990d5a0f551835809a975a51fb985"></a><!-- doxytag: member="ost::Serial::flushInput" ref="1c5990d5a0f551835809a975a51fb985" args="(void)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void ost::Serial::flushInput           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [protected]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Used to flush the input waiting queue. 
<p>
    </td>
  </tr>
</table>
<a class="anchor" name="cda1f30842b905cb2d624332c58702be"></a><!-- doxytag: member="ost::Serial::flushOutput" ref="cda1f30842b905cb2d624332c58702be" args="(void)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void ost::Serial::flushOutput           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [protected]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Used to flush any pending output data. 
<p>
    </td>
  </tr>
</table>
<a class="anchor" name="e6d478bbdac8593181fc64eb66106815"></a><!-- doxytag: member="ost::Serial::getBufferSize" ref="e6d478bbdac8593181fc64eb66106815" args="(void)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">int ost::Serial::getBufferSize           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [inline]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get the "buffer" size for buffered operations. 
<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 compact><dt><b>Returns:</b></dt><dd>number of bytes used for buffering. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="c8d9a9eedecf7dc42f53e8c852e9e6d3"></a><!-- doxytag: member="ost::Serial::getErrorNumber" ref="c8d9a9eedecf7dc42f53e8c852e9e6d3" args="(void)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"><a class="el" href="classost_1_1_serial.html#1955d3954338199da7165a4beb7c9703">Error</a> ost::Serial::getErrorNumber           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [inline]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Often used by a "catch" to fetch the last error of a thrown serial. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>error numbr of last Error. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="0d67fb60e34c7a725f4494adaa11c0c9"></a><!-- doxytag: member="ost::Serial::getErrorString" ref="0d67fb60e34c7a725f4494adaa11c0c9" args="(void)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">char* ost::Serial::getErrorString           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [inline]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Often used by a "catch" to fetch the user set error string of a thrown serial. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>string for error message. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="64916fc49030cc114f4785ad4c33166d"></a><!-- doxytag: member="ost::Serial::initConfig" ref="64916fc49030cc114f4785ad4c33166d" args="(void)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void ost::Serial::initConfig           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [protected]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Used to initialize a newly opened serial file handle. 
<p>
You should set serial properties and DTR manually before first use.     </td>
  </tr>
</table>
<a class="anchor" name="80501f19b1e225c87f2de484b220f737"></a><!-- doxytag: member="ost::Serial::isPending" ref="80501f19b1e225c87f2de484b220f737" args="(Pending pend, timeout_t timeout=TIMEOUT_INF)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">virtual bool ost::Serial::isPending           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="classost_1_1_serial.html#7acdd43b4d1766daa58bbb49352dd942">Pending</a>&nbsp;</td>
          <td class="mdname" nowrap> <em>pend</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap><a class="el" href="thread_8h.html#f412159e5cef839836a5e7b19ee75d1c">timeout_t</a>&nbsp;</td>
          <td class="mdname" nowrap> <em>timeout</em> = <code>TIMEOUT_INF</code></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [virtual]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get the status of pending operations. 
<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 compact><dt><b>Returns:</b></dt><dd>true if ready, false if timeout. </dd></dl>
<dl compact><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>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ab0033a3ce6c142a4882f05187ff2749"></a><!-- doxytag: member="ost::Serial::open" ref="ab0033a3ce6c142a4882f05187ff2749" args="(const char *fname)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void ost::Serial::open           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>fname</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [protected]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Opens the serial device. 
<p>
<dl compact><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>
</dl>

<p>
Reimplemented in <a class="el" href="classost_1_1ttystream.html#9cd5bb27aace9c143b78af37330179e8">ost::ttystream</a>.    </td>
  </tr>
</table>
<a class="anchor" name="1afd56643caecf083babbffc5ed13b97"></a><!-- doxytag: member="ost::Serial::operator=" ref="1afd56643caecf083babbffc5ed13b97" args="(const Serial &amp;from)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"><a class="el" href="classost_1_1_serial.html">Serial</a>&amp; ost::Serial::operator=           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="classost_1_1_serial.html">Serial</a> &amp;&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>from</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<a class="el" href="classost_1_1_serial.html">Serial</a> ports may also be duplecated by the assignment operator. 
<p>
    </td>
  </tr>
</table>
<a class="anchor" name="024e1b908a4e77f392292a8fe5bb6236"></a><!-- doxytag: member="ost::Serial::restore" ref="024e1b908a4e77f392292a8fe5bb6236" args="(void)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void ost::Serial::restore           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [protected]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Restore serial device to the original settings at time of open. 
<p>
    </td>
  </tr>
</table>
<a class="anchor" name="e33c36f64a9debb8ac54712c31313938"></a><!-- doxytag: member="ost::Serial::sendBreak" ref="e33c36f64a9debb8ac54712c31313938" args="(void)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void ost::Serial::sendBreak           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Send the "break" signal. 
<p>
    </td>
  </tr>
</table>
<a class="anchor" name="e1c79b3d42f3b21700f270c0300377ea"></a><!-- doxytag: member="ost::Serial::setCharBits" ref="e1c79b3d42f3b21700f270c0300377ea" args="(int bits)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"><a class="el" href="classost_1_1_serial.html#1955d3954338199da7165a4beb7c9703">Error</a> ost::Serial::setCharBits           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>bits</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Set character size. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success. </dd></dl>
<dl compact><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>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="1d6cbc8147a6f77c01f3b2b7cb5a39d1"></a><!-- doxytag: member="ost::Serial::setError" ref="1d6cbc8147a6f77c01f3b2b7cb5a39d1" args="(bool enable)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void ost::Serial::setError           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">bool&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>enable</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [inline, protected]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
This method is used to turn the error handler on or off for "throwing" execptions by manipulating the thrown flag. 
<p>
<dl compact><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>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="5ce3b5a9498490a1cc753fb69f114c75"></a><!-- doxytag: member="ost::Serial::setFlowControl" ref="5ce3b5a9498490a1cc753fb69f114c75" args="(Flow flow)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"><a class="el" href="classost_1_1_serial.html#1955d3954338199da7165a4beb7c9703">Error</a> ost::Serial::setFlowControl           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="classost_1_1_serial.html#032e8d67ca5a8f64a5cd348e1cba423d">Flow</a>&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>flow</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Set flow control. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success. </dd></dl>
<dl compact><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>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="8d239a3a6ab2cb7253e3eb3fe0618bd3"></a><!-- doxytag: member="ost::Serial::setLineInput" ref="8d239a3a6ab2cb7253e3eb3fe0618bd3" args="(char newline=13, char nl1=0)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">int ost::Serial::setLineInput           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">char&nbsp;</td>
          <td class="mdname" nowrap> <em>newline</em> = <code>13</code>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>char&nbsp;</td>
          <td class="mdname" nowrap> <em>nl1</em> = <code>0</code></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [protected]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Set "line buffering" read mode and specifies the newline character to be used in seperating line records. 
<p>
isPending can then be used to wait for an entire line of input.<p>
<dl compact><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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>size of conical input buffer. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="fb14afa31f6d737cabc0c336198c3d88"></a><!-- doxytag: member="ost::Serial::setPacketInput" ref="fb14afa31f6d737cabc0c336198c3d88" args="(int size, unsigned char btimer=0)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">int ost::Serial::setPacketInput           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname" nowrap> <em>size</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>unsigned char&nbsp;</td>
          <td class="mdname" nowrap> <em>btimer</em> = <code>0</code></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [protected]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Set packet read mode and "size" of packet read buffer. 
<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 compact><dt><b>Returns:</b></dt><dd>actual buffer size set. </dd></dl>
<dl compact><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>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="5aca9ba379188e65978eb04d298985ab"></a><!-- doxytag: member="ost::Serial::setParity" ref="5aca9ba379188e65978eb04d298985ab" args="(Parity parity)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"><a class="el" href="classost_1_1_serial.html#1955d3954338199da7165a4beb7c9703">Error</a> ost::Serial::setParity           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="classost_1_1_serial.html#f7aab47de333eecc51d76a551dcd81db">Parity</a>&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>parity</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Set parity mode. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success. </dd></dl>
<dl compact><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>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="c7f91aed2cc1f843d8ece7200fe55df4"></a><!-- doxytag: member="ost::Serial::setSpeed" ref="c7f91aed2cc1f843d8ece7200fe55df4" args="(unsigned long speed)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"><a class="el" href="classost_1_1_serial.html#1955d3954338199da7165a4beb7c9703">Error</a> ost::Serial::setSpeed           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">unsigned long&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>speed</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Set serial port speed for both input and output. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success. </dd></dl>
<dl compact><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>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="eea4eb6923c07efe9c4be85f826c452e"></a><!-- doxytag: member="ost::Serial::setStopBits" ref="eea4eb6923c07efe9c4be85f826c452e" args="(int bits)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"><a class="el" href="classost_1_1_serial.html#1955d3954338199da7165a4beb7c9703">Error</a> ost::Serial::setStopBits           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>bits</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Set number of stop bits. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success. </dd></dl>
<dl compact><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>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="420bf5d2edc4bf8bce52149afd7b0bfb"></a><!-- doxytag: member="ost::Serial::toggleDTR" ref="420bf5d2edc4bf8bce52149afd7b0bfb" args="(timeout_t millisec)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void ost::Serial::toggleDTR           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="thread_8h.html#f412159e5cef839836a5e7b19ee75d1c">timeout_t</a>&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>millisec</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Set the DTR mode off momentarily. 
<p>
<dl compact><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>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="d70726a0a7513c758036ade5241a8ddd"></a><!-- doxytag: member="ost::Serial::waitOutput" ref="d70726a0a7513c758036ade5241a8ddd" args="(void)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void ost::Serial::waitOutput           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [protected]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Used to wait until all output has been sent. 
<p>
    </td>
  </tr>
</table>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="6b974da21c9bdaf38d745c7cb533bd4c"></a><!-- doxytag: member="ost::Serial::bufsize" ref="6b974da21c9bdaf38d745c7cb533bd4c" args="" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">int <a class="el" href="classost_1_1_serial.html#6b974da21c9bdaf38d745c7cb533bd4c">ost::Serial::bufsize</a><code> [protected]</code>          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<a class="anchor" name="0f2dc5d07e275ab632df9630d4d7ad45"></a><!-- doxytag: member="ost::Serial::dev" ref="0f2dc5d07e275ab632df9630d4d7ad45" args="" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"><a class="el" href="serial_8h.html#069bb8cb95b0528d5ce0304bb5561a40">HANDLE</a> <a class="el" href="classost_1_1_serial.html#0f2dc5d07e275ab632df9630d4d7ad45">ost::Serial::dev</a><code> [protected]</code>          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<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></ul>
<hr size="1"><address style="align: right;"><small>Generated on Mon Jun 19 10:50:56 2006 for GNU CommonC++ by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
</body>
</html>