gpt4 book ai didi

c++ - basic_serial_port 和 async_read_until

转载 作者:行者123 更新时间:2023-11-28 05:46:03 24 4
gpt4 key购买 nike

我正在尝试使用 boost::shared_ptrasync_read_until并且无法让它工作。这是我的简化代码:

标题

boost::asio::io_service io_service;
typedef boost::shared_ptr<boost::asio::serial_port> serial_port_ptr;
serial_port_ptr serial_port;
boost::asio::streambuf response_data;
char delimiter = '\n';
boost::system::error_code error;

连接

serial_port = serial_port_ptr(new boost::asio::serial_port(io_service));
serial_port->open("/dev/ttyS0", error);

阅读

boost::asio::async_read_until(
serial_port.get(), response_data, delimiter,
boost::bind(
&serial_comm::data_received,
this, boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred
)
);

我得到的错误是 no type named 'type' in 'struct std::enable_if<false, void>' .谢谢。

最佳答案

您提供了一个指针作为 boost::asio::async_read_until 的输入,而不是引用。应该这样重写:

boost::asio::async_read_until(
*serial_port, response_data, delimiter,
boost::bind(
&serial_comm::data_received,
this, boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred
)
);

关于c++ - basic_serial_port 和 async_read_until,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36188124/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com