Сообщение Re[10]: boost::serial_port и мозговой секс от 26.10.2014 20:43
Изменено 26.10.2014 20:53 HolyNick
В принципе такой вариант работает:
Возможно, этого достаточно.
boost::asio::io_service service;
std::shared_ptr<boost::asio::serial_port> port(new boost::asio::serial_port(service));
port->open("COM3"); //OK
char buffer;
boost::asio::async_read(*port, boost::asio::buffer(&buffer, 1),
[port](boost::system::error_code error, std::size_t bytes_transferred)
{
});
char buffer2;
boost::asio::async_read(*port, boost::asio::buffer(&buffer2, 1),
[port](boost::system::error_code error, std::size_t bytes_transferred)
{
});
port->close();
service.poll(); //оба обработчика вызываются с некоторой ошибкой
try
{
port->open("COM3"); //OK, порт открывается повторно
}
catch (...)
{
}
Возможно, этого достаточно.
Re[10]: boost::serial_port и мозговой секс
В принципе такой вариант работает:
boost::asio::io_service service;
std::shared_ptr<boost::asio::serial_port> port(new boost::asio::serial_port(service));
port->open("COM3"); //OK
char buffer;
boost::asio::async_read(*port, boost::asio::buffer(&buffer, 1),
[port](boost::system::error_code error, std::size_t bytes_transferred)
{
});
char buffer2;
boost::asio::async_read(*port, boost::asio::buffer(&buffer2, 1),
[port](boost::system::error_code error, std::size_t bytes_transferred)
{
});
port->close();
service.poll(); //оба обработчика вызываются с некоторой ошибкой
try
{
port->open("COM3"); //OK, порт открывается повторно
}
catch (...)
{
}