basic_serial_port and async_read_until
basic_serial_port and async_read_until
我试图将boost::shared_ptr
与async_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
)
);
相关文章:
- 使用 ImageIO.read() 生成的图像是否仍然使用传递给它的相同内存?
- std::ifstream::read 不会读取所有 512 字节,并设置 EOF 和失败位
- write() 和 read() 中几乎没有混淆
- C++ TCP 套接字通信 - 连接按预期工作,几秒钟后失败,没有收到新数据,read() 和 recv() 块
- 为什么调试器引发"read access violation. this was nullptr"异常?
- 对同一文件使用 .read 的次数是否有限制?
- Win32 API - HWND "{unused = ???} Unable to read memory"错误
- 为什么我会"Invalid read of size 8"?(瓦尔格林德)
- QDataStream read to QVector
- asio::read() 需要很长时间,使用 asio::write 没有问题
- Read OpenCV Mat 16bit to QImage 8bit Greyscale
- 如果 I/O read() 处于阻塞阶段,如何使用 Ctrl+C 退出 C++ 程序?
- 如何将 (serverClients[i].read() 传递给 ESP8266 上的字节数组
- 将 Lora.read() 转储到数组
- 无法通过 FUSE 文件系统"read"任何内容
- 指向 std::unrodered_map 中元素的指针返回'Read access violation'
- 封送指向结构异常"cannot Read or Write protected memory"的指针数组的指针数组
- C++HTTP客户端在GET请求后挂起read()调用
- 从带有 std::ifstream::read() 的文件中读取 int 遍历 char * 二进制数据
- Arduino Uno - serial.read to a struct of bits