1
私はシリアルポートの通信ブーストストリームバッファと書き込みには、奇妙な行動
io_service io;
serial_port sp(io);
sp.open("COM4");
sp.set_option(serial_port_base::baud_rate(115200));
sp.set_option(serial_port_base::character_size(8));
sp.set_option(serial_port_base::stop_bits(serial_port_base::stop_bits::one) );
sp.set_option(serial_port_base::parity(serial_port_base::parity::none));
sp.set_option(serial_port_base::flow_control(serial_port_base::flow_control::none) );
boost::asio::streambuf buffer;
// Fill buffer here
auto size = buffer.size();
std::cout << boost::format("Buffer size: %d") % size << std::endl;
boost::asio::write(sp, buffer);
size = buffer.size();
std::cout << boost::format("Buffer size: %d") % size << std::endl;
出力用のストレージとしてstreambufを使用していますか?
バッファを書き出した後に、ゼロ以外のサイズがあると思われる理由を詳しく説明できますか? –
@マークB私は、シリアルポートまたはソケットの書き込み操作でストレージバッファが変更されないと予想しています。通常、書き込みメソッドはソースを変更しません。多分私はsreambufが間違っていると解釈しているのでしょうか? – Jeka