<!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 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 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 List</span></a></li> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class 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 <<a class="el" href="serial_8h-source.html">serial.h</a>></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> </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> </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> </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> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#2f1bcf165447d5ed96093b6c8a346497">Error</a> { <br> <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> <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> <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> <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 </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 </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 </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#a62d1da910fb5454abb936a1c1b362c7">~Serial</a> ()</td></tr> <tr><td class="mdescLeft"> </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> & </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> &from)</td></tr> <tr><td class="mdescLeft"> </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> </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"> </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> </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"> </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> </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"> </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> </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"> </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> </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"> </td><td class="mdescRight">Set flow control. <a href="#5ce3b5a9498490a1cc753fb69f114c75"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </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"> </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 </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"> </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> </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"> </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 * </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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> </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_serial.html#2cc577c5c283fa23edf6efeaf5617829">Serial</a> ()</td></tr> <tr><td class="mdescLeft"> </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"> </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"> </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> </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 </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 <<a href="mailto:dyfet@ostel.com">dyfet@ostel.com</a>> </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> </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> </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> </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> </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> </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> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="2f1bcf165447d5ed96093b6c8a346497dea5750f4c5d011d5c543b373a2cf230"></a><!-- doxytag: member="errOpenNoTty" ref="2f1bcf165447d5ed96093b6c8a346497dea5750f4c5d011d5c543b373a2cf230" args="" -->errOpenNoTty</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="2f1bcf165447d5ed96093b6c8a346497ef0ca060f94b5db0608bf3ceeaaedbee"></a><!-- doxytag: member="errOpenFailed" ref="2f1bcf165447d5ed96093b6c8a346497ef0ca060f94b5db0608bf3ceeaaedbee" args="" -->errOpenFailed</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="2f1bcf165447d5ed96093b6c8a3464975fa6a9e68cb29ec15f600c22fb424c9a"></a><!-- doxytag: member="errSpeedInvalid" ref="2f1bcf165447d5ed96093b6c8a3464975fa6a9e68cb29ec15f600c22fb424c9a" args="" -->errSpeedInvalid</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="2f1bcf165447d5ed96093b6c8a346497936c7e7aedb62d8c3654192f96b0c1b5"></a><!-- doxytag: member="errFlowInvalid" ref="2f1bcf165447d5ed96093b6c8a346497936c7e7aedb62d8c3654192f96b0c1b5" args="" -->errFlowInvalid</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="2f1bcf165447d5ed96093b6c8a346497dc409d6ffee22d17e7646bfce2d50b8e"></a><!-- doxytag: member="errParityInvalid" ref="2f1bcf165447d5ed96093b6c8a346497dc409d6ffee22d17e7646bfce2d50b8e" args="" -->errParityInvalid</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="2f1bcf165447d5ed96093b6c8a346497280b96416b3ad39f1142f6918267bf5f"></a><!-- doxytag: member="errCharsizeInvalid" ref="2f1bcf165447d5ed96093b6c8a346497280b96416b3ad39f1142f6918267bf5f" args="" -->errCharsizeInvalid</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="2f1bcf165447d5ed96093b6c8a3464975b6b13043d4c239acbdbcfb0b53ece92"></a><!-- doxytag: member="errStopbitsInvalid" ref="2f1bcf165447d5ed96093b6c8a3464975b6b13043d4c239acbdbcfb0b53ece92" args="" -->errStopbitsInvalid</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="2f1bcf165447d5ed96093b6c8a34649756ec86c7748b88f2e61e7cb2aa6313d0"></a><!-- doxytag: member="errOptionInvalid" ref="2f1bcf165447d5ed96093b6c8a34649756ec86c7748b88f2e61e7cb2aa6313d0" args="" -->errOptionInvalid</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="2f1bcf165447d5ed96093b6c8a346497ac71caec475b2c8e77061d486f000b04"></a><!-- doxytag: member="errResourceFailure" ref="2f1bcf165447d5ed96093b6c8a346497ac71caec475b2c8e77061d486f000b04" args="" -->errResourceFailure</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="2f1bcf165447d5ed96093b6c8a346497461e080df6f82ec6017226cba19a92b2"></a><!-- doxytag: member="errOutput" ref="2f1bcf165447d5ed96093b6c8a346497461e080df6f82ec6017226cba19a92b2" args="" -->errOutput</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="2f1bcf165447d5ed96093b6c8a3464973f81ba432a4ff8864033a355bd1ffccd"></a><!-- doxytag: member="errInput" ref="2f1bcf165447d5ed96093b6c8a3464973f81ba432a4ff8864033a355bd1ffccd" args="" -->errInput</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="2f1bcf165447d5ed96093b6c8a346497c64e00c5dee4d6ac546856dc8135ccd9"></a><!-- doxytag: member="errTimeout" ref="2f1bcf165447d5ed96093b6c8a346497c64e00c5dee4d6ac546856dc8135ccd9" args="" -->errTimeout</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="2f1bcf165447d5ed96093b6c8a34649771b4964c5c550da322e19ae8fdb0b190"></a><!-- doxytag: member="errExtended" ref="2f1bcf165447d5ed96093b6c8a34649771b4964c5c550da322e19ae8fdb0b190" args="" -->errExtended</em> </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> </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> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="269fc64928cd10bae2fe8a2eefab630340e097623df09f0aa335e2316eba1893"></a><!-- doxytag: member="flowSoft" ref="269fc64928cd10bae2fe8a2eefab630340e097623df09f0aa335e2316eba1893" args="" -->flowSoft</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="269fc64928cd10bae2fe8a2eefab63037b1222095085ca00a08988a849c0d78f"></a><!-- doxytag: member="flowHard" ref="269fc64928cd10bae2fe8a2eefab63037b1222095085ca00a08988a849c0d78f" args="" -->flowHard</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="269fc64928cd10bae2fe8a2eefab630374c00e3f9dd79bb8493f5fc87bd73b81"></a><!-- doxytag: member="flowBoth" ref="269fc64928cd10bae2fe8a2eefab630374c00e3f9dd79bb8493f5fc87bd73b81" args="" -->flowBoth</em> </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> </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> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="54bdc2b3ce16dbf3542785ef69188f7cb31e527b4644ba0f4b08f14a016e54c2"></a><!-- doxytag: member="parityOdd" ref="54bdc2b3ce16dbf3542785ef69188f7cb31e527b4644ba0f4b08f14a016e54c2" args="" -->parityOdd</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="54bdc2b3ce16dbf3542785ef69188f7cc99c7fdd2af17159f785e878edd1f221"></a><!-- doxytag: member="parityEven" ref="54bdc2b3ce16dbf3542785ef69188f7cc99c7fdd2af17159f785e878edd1f221" args="" -->parityEven</em> </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> </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> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="74fbabfe1dcbaebf6e484af11dd6d8b7a13e15f4121356d33e5b9c7485b6a6b5"></a><!-- doxytag: member="pendingOutput" ref="74fbabfe1dcbaebf6e484af11dd6d8b7a13e15f4121356d33e5b9c7485b6a6b5" args="" -->pendingOutput</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="74fbabfe1dcbaebf6e484af11dd6d8b7d738f8c83dd497aeff2d639ba86bb84c"></a><!-- doxytag: member="pendingError" ref="74fbabfe1dcbaebf6e484af11dd6d8b7d738f8c83dd497aeff2d639ba86bb84c" args="" -->pendingError</em> </td><td> </td></tr> </table> </dl> </td> </tr> </table> <hr><h2>Constructor & 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">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline, protected]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </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">( </td> <td class="md" nowrap valign="top">const char * </td> <td class="mdname1" valign="top" nowrap> <em>name</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [protected]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </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> </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">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [virtual]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </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">( </td> <td class="md" nowrap valign="top">char * </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 </td> <td class="mdname" nowrap> <em>Length</em></td> </tr> <tr> <td class="md"></td> <td class="md">) </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> </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> </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> </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">( </td> <td class="md" nowrap valign="top">const char * </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 </td> <td class="mdname" nowrap> <em>Length</em></td> </tr> <tr> <td class="md"></td> <td class="md">) </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> </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> </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> </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">( </td> <td class="md" nowrap valign="top">void </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [protected]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </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">( </td> <td class="md" nowrap valign="top">void </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [protected]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </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">( </td> <td class="md" nowrap valign="top">char * </td> <td class="mdname1" valign="top" nowrap> <em>err</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline, protected]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </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> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="classost_1_1_serial.html#1955d3954338199da7165a4beb7c9703">Error</a> </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 * </td> <td class="mdname" nowrap> <em>errstr</em> = <code>NULL</code></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"><code> [protected]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </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> </td><td>defined serial error id. </td></tr> <tr><td valign="top"></td><td valign="top"><em>errstr</em> </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">( </td> <td class="md" nowrap valign="top">void </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [protected]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </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">( </td> <td class="md" nowrap valign="top">void </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [protected]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </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">( </td> <td class="md" nowrap valign="top">void </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </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">( </td> <td class="md" nowrap valign="top">void </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </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">( </td> <td class="md" nowrap valign="top">void </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </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">( </td> <td class="md" nowrap valign="top">void </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [protected]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="classost_1_1_serial.html#7acdd43b4d1766daa58bbb49352dd942">Pending</a> </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> </td> <td class="mdname" nowrap> <em>timeout</em> = <code>TIMEOUT_INF</code></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"><code> [virtual]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </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> </td><td>ready check to perform. </td></tr> <tr><td valign="top"></td><td valign="top"><em>timeout</em> </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">( </td> <td class="md" nowrap valign="top">const char * </td> <td class="mdname1" valign="top" nowrap> <em>fname</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [protected]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </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> </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 &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>& ost::Serial::operator= </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="classost_1_1_serial.html">Serial</a> & </td> <td class="mdname1" valign="top" nowrap> <em>from</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </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">( </td> <td class="md" nowrap valign="top">void </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [protected]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </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">( </td> <td class="md" nowrap valign="top">void </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </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">( </td> <td class="md" nowrap valign="top">int </td> <td class="mdname1" valign="top" nowrap> <em>bits</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </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> </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">( </td> <td class="md" nowrap valign="top">bool </td> <td class="mdname1" valign="top" nowrap> <em>enable</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline, protected]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </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> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="classost_1_1_serial.html#032e8d67ca5a8f64a5cd348e1cba423d">Flow</a> </td> <td class="mdname1" valign="top" nowrap> <em>flow</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </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> </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">( </td> <td class="md" nowrap valign="top">char </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 </td> <td class="mdname" nowrap> <em>nl1</em> = <code>0</code></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"><code> [protected]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </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> </td><td>newline character. </td></tr> <tr><td valign="top"></td><td valign="top"><em>nl1</em> </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">( </td> <td class="md" nowrap valign="top">int </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 </td> <td class="mdname" nowrap> <em>btimer</em> = <code>0</code></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"><code> [protected]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </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> </td><td>of packet read request. </td></tr> <tr><td valign="top"></td><td valign="top"><em>btimer</em> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="classost_1_1_serial.html#f7aab47de333eecc51d76a551dcd81db">Parity</a> </td> <td class="mdname1" valign="top" nowrap> <em>parity</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </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> </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">( </td> <td class="md" nowrap valign="top">unsigned long </td> <td class="mdname1" valign="top" nowrap> <em>speed</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </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> </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">( </td> <td class="md" nowrap valign="top">int </td> <td class="mdname1" valign="top" nowrap> <em>bits</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </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> </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">( </td> <td class="md" nowrap valign="top"><a class="el" href="thread_8h.html#f412159e5cef839836a5e7b19ee75d1c">timeout_t</a> </td> <td class="mdname1" valign="top" nowrap> <em>millisec</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </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> </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">( </td> <td class="md" nowrap valign="top">void </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [protected]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </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> </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> </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 <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>