📄 classqextbasetype.html
字号:
<div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">bool QextSerialBase::atEnd </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const<code> [virtual, inherited]</code></td> </tr> </table></div><div class="memdoc"><p>This function will return true if the input buffer is empty (or on error), and false otherwise. Call <a class="el" href="classQextSerialBase.html#e4029cb49127422b7e76586930366b05">QextSerialBase::lastError()</a> for error information. <div class="fragment"><pre class="fragment"><a name="l00187"></a>00187 {<a name="l00188"></a>00188 <span class="keywordflow">if</span> (<a class="code" href="classQextSerialBase.html#86fc9d6239b7d136a9d80b93a727e093">size</a>()) {<a name="l00189"></a>00189 <span class="keywordflow">return</span> <span class="keyword">true</span>;<a name="l00190"></a>00190 }<a name="l00191"></a>00191 <span class="keywordflow">return</span> <span class="keyword">false</span>;<a name="l00192"></a>00192 }</pre></div><p></div></div><p><a class="anchor" name="6d6eeab48cad2fa2adbebb23920c661a"></a><!-- doxytag: member="QextBaseType::baudRate" ref="6d6eeab48cad2fa2adbebb23920c661a" args="() const " --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="qextserialbase_8h.html#6f031169a6a9b150b5af707bb23cf010">BaudRateType</a> QextSerialBase::baudRate </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const<code> [virtual, inherited]</code></td> </tr> </table></div><div class="memdoc"><p>Returns the baud rate of the serial port. For a list of possible return values see the definition of the enum BaudRateType. <div class="fragment"><pre class="fragment"><a name="l00126"></a>00126 {<a name="l00127"></a>00127 <span class="keywordflow">return</span> <a class="code" href="classQextSerialBase.html#2d796e3080f78ff63e821f528439db57">Settings</a>.<a class="code" href="structPortSettings.html#be617f3545d6be4587e1a0700a0b0e5b">BaudRate</a>;<a name="l00128"></a>00128 }</pre></div><p></div></div><p><a class="anchor" name="6d593fe4f4623e93537a531d2c6157b7"></a><!-- doxytag: member="QextBaseType::bytesAvailable" ref="6d593fe4f4623e93537a531d2c6157b7" args="()" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">qint64 Posix_QextSerialPort::bytesAvailable </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"><code> [virtual, inherited]</code></td> </tr> </table></div><div class="memdoc"><p>Returns the number of bytes waiting in the port's receive queue. This function will return 0 if the port is not currently open, or -1 on error. Error information can be retrieved by calling Posix_QextSerialPort::getLastError(). <p>Implements <a class="el" href="classQextSerialBase.html#7e130a0ba5a0a9ba95ce5f75a5e2c526">QextSerialBase</a>.<div class="fragment"><pre class="fragment"><a name="l00909"></a>00909 {<a name="l00910"></a>00910 LOCK_MUTEX();<a name="l00911"></a>00911 <span class="keywordflow">if</span> (<a class="codeRef" doxygen="qiodevice.tag:http://doc.trolltech.com/" href="http://doc.trolltech.com/qiodevice.html#isOpen">isOpen</a>()) {<a name="l00912"></a>00912 <span class="keywordtype">int</span> bytesQueued;<a name="l00913"></a>00913 fd_set fileSet;<a name="l00914"></a>00914 FD_ZERO(&fileSet);<a name="l00915"></a>00915 FD_SET(<a class="code" href="classPosix__QextSerialPort.html#c4fcc5ae9850c3bc9952a13e4ef82273">Posix_File</a>->handle(), &fileSet);<a name="l00916"></a>00916 <a name="l00917"></a>00917 <span class="comment">/*on Linux systems the Posix_Timeout structure will be altered by the select() call.</span><a name="l00918"></a>00918 <span class="comment"> Make sure we use the right timeout values*/</span><a name="l00919"></a>00919 <span class="comment">//memcpy(&Posix_Timeout, &Posix_Copy_Timeout, sizeof(struct timeval));</span><a name="l00920"></a>00920 <a class="code" href="classPosix__QextSerialPort.html#0a876397917fbf082b56ae43ab2b4b7b">Posix_Timeout</a> = <a class="code" href="classPosix__QextSerialPort.html#e5813ea1fd76c8c5a8948c4085d3e84e">Posix_Copy_Timeout</a>;<a name="l00921"></a>00921 <span class="keywordtype">int</span> n=select(<a class="code" href="classPosix__QextSerialPort.html#c4fcc5ae9850c3bc9952a13e4ef82273">Posix_File</a>->handle()+1, &fileSet, NULL, &fileSet, &Posix_Timeout);<a name="l00922"></a>00922 <span class="keywordflow">if</span> (!n) {<a name="l00923"></a>00923 <a class="code" href="classQextSerialBase.html#31816951ba89902fa1dfdb6f18b80f41">lastErr</a>=E_PORT_TIMEOUT;<a name="l00924"></a>00924 UNLOCK_MUTEX();<a name="l00925"></a>00925 <span class="keywordflow">return</span> -1;<a name="l00926"></a>00926 }<a name="l00927"></a>00927 <span class="keywordflow">if</span> (n==-1 || ioctl(<a class="code" href="classPosix__QextSerialPort.html#c4fcc5ae9850c3bc9952a13e4ef82273">Posix_File</a>->handle(), FIONREAD, &bytesQueued)==-1) {<a name="l00928"></a>00928 <a class="code" href="classPosix__QextSerialPort.html#a099923f1360a08c6b7072254fd056e6">translateError</a>(errno);<a name="l00929"></a>00929 UNLOCK_MUTEX();<a name="l00930"></a>00930 <span class="keywordflow">return</span> -1;<a name="l00931"></a>00931 }<a name="l00932"></a>00932 <a class="code" href="classQextSerialBase.html#31816951ba89902fa1dfdb6f18b80f41">lastErr</a>=E_NO_ERROR;<a name="l00933"></a>00933 UNLOCK_MUTEX();<a name="l00934"></a>00934 <span class="keywordflow">return</span> bytesQueued + <a class="codeRef" doxygen="qiodevice.tag:http://doc.trolltech.com/" href="http://doc.trolltech.com/qiodevice.html#bytesAvailable">QIODevice::bytesAvailable</a>();<a name="l00935"></a>00935 }<a name="l00936"></a>00936 UNLOCK_MUTEX();<a name="l00937"></a>00937 <span class="keywordflow">return</span> 0;<a name="l00938"></a>00938 }</pre></div><p></div></div><p><a class="anchor" name="8c76fa901fd01f97f57addad088c3e2c"></a><!-- doxytag: member="QextBaseType::bytesAvailable" ref="8c76fa901fd01f97f57addad088c3e2c" args="()" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">qint64 Win_QextSerialPort::bytesAvailable </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"><code> [virtual, inherited]</code></td> </tr> </table></div><div class="memdoc"><p>Returns the number of bytes waiting in the port's receive queue. This function will return 0 if the port is not currently open, or -1 on error. Error information can be retrieved by calling Win_QextSerialPort::getLastError(). <p>Implements <a class="el" href="classQextSerialBase.html#7e130a0ba5a0a9ba95ce5f75a5e2c526">QextSerialBase</a>.<div class="fragment"><pre class="fragment"><a name="l00229"></a>00229 {<a name="l00230"></a>00230 LOCK_MUTEX();<a name="l00231"></a>00231 <span class="keywordflow">if</span> (<a class="codeRef" doxygen="qiodevice.tag:http://doc.trolltech.com/" href="http://doc.trolltech.com/qiodevice.html#isOpen">isOpen</a>()) {<a name="l00232"></a>00232 DWORD Errors;<a name="l00233"></a>00233 COMSTAT Status;<a name="l00234"></a>00234 <span class="keywordtype">bool</span> success=ClearCommError(<a class="code" href="classWin__QextSerialPort.html#f6dae6bb1c6b51e766e551bc11f1721d">Win_Handle</a>, &Errors, &Status);<a name="l00235"></a>00235 <a class="code" href="classWin__QextSerialPort.html#bf215448e265ab0bc8d06cb05e0f7778">translateError</a>(Errors);<a name="l00236"></a>00236 <span class="keywordflow">if</span> (success) {<a name="l00237"></a>00237 <a class="code" href="classQextSerialBase.html#31816951ba89902fa1dfdb6f18b80f41">lastErr</a>=E_NO_ERROR;<a name="l00238"></a>00238 UNLOCK_MUTEX();<a name="l00239"></a>00239 <span class="keywordflow">return</span> Status.cbInQue + <a class="codeRef" doxygen="qiodevice.tag:http://doc.trolltech.com/" href="http://doc.trolltech.com/qiodevice.html#bytesAvailable">QIODevice::bytesAvailable</a>();<a name="l00240"></a>00240 }<a name="l00241"></a>00241 UNLOCK_MUTEX();<a name="l00242"></a>00242 <span class="keywordflow">return</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)-1;<a name="l00243"></a>00243 }<a name="l00244"></a>00244 UNLOCK_MUTEX();<a name="l00245"></a>00245 <span class="keywordflow">return</span> 0;<a name="l00246"></a>00246 }</pre></div><p></div></div><p><a class="anchor" name="3a7ddf86a867770c88777c3e78545cb0"></a><!-- doxytag: member="QextBaseType::close" ref="3a7ddf86a867770c88777c3e78545cb0" args="()" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">void Posix_QextSerialPort::close </td>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -