Мне нужно знать, как читать (синхронизация или асинхронность не имеет значения) с таймаутом. Я хочу проверить, связано ли устройство с последовательным портом или нет.
Для этого я использую asio::write
, а затем жду ответа на устройство.
Если устройство подключено asio::read(serial, boost::asio::buffer(&r,1))
работает нормально, но если нет устройства, программа останавливается, и именно поэтому мне нужен тайм-аут
Я знаю, что мне нужен deadline_timer
, но я не знаю, как использовать его в функции async_read
.
Пример того, как это работает, будет действительно полезным.
Я знаю, что существует много похожих потоков, и я много читаю, но не могу найти решение, помогающее мне решить мою проблему.