我使用boost asio串行端口。当串行端口打开时,我可以设置奇偶校验,例如:
boost::asio::serial_port_base::parity::even
然后我开始读取一个串行端口:
serialPort_.async_read_some(boost::asio::buffer(serialPortData_),
boost::bind(&MySerialPort::readComplete, this,
boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred));
奇偶校验失败时会发生什么情况?readComplete 是否调用特定错误(哪个?)和 bytes_transferred = 0?
Boost 只是将系统错误包装在error_code
实例中。
因此,它是底层系统调用(如::tcsendbreak
)返回的任何错误代码。
出错时,大多数异步操作bytes_transferred
未指定(除非显然另有指定)。