我在 Win32 上使用 QextSerialPort 和 Qt 4.8.1。当设置“轮询”查询模式,并使用 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
我希望它会在读取指定的数量或字节或超时到期后立即返回 - 这首先发生。
这应该工作还是我误解了这个界面?有没有办法在轮询模式下实现预期的行为。