Win32 の Qt 4.8.1 で QextSerialPort を使用しています。「ポーリング」クエリ モードが設定され、QextSerialPort::setTimeout() を使用してタイムアウトが設定されている場合。QExtSerialPort::read() を呼び出すと、データが使用可能な場合でも、読み取り関数は、データを返しても、タイムアウト期間全体が経過するまで戻りません。
例えば:
m_port->setTimeout( 3000 ) ;
char data = 0 ;
int count = m_port->read( &data, 1 ) ;
// Returns after three seconds, but count is 1, and data set as expected
指定された数またはバイトが読み取られるか、タイムアウトが期限切れになるとすぐに返されると思います-どちらが先に発生するか。
これは機能するはずですか、それともこのインターフェイスを誤解していますか? ポーリング モードで期待される動作を実現する方法はありますか。