タイムアウトを使用して読み取る方法を知る必要があります (同期または非同期は関係ありません)。デバイスがシリアルポートに接続されているかどうかを確認したい。
そのために私は使用asio::write
し、デバイスの応答を待ちます。
デバイスが接続されている場合は正常に動作しますが、デバイスasio::read(serial, boost::asio::buffer(&r,1))
がない場合はプログラムが停止するため、タイムアウトが必要です
が必要であることはわかっていますdeadline_timer
が、関数でそれを使用する方法がわかりませんasync_read
。
それがどのように機能するかの例は本当に役に立ちます。
似たようなスレッドがたくさんあることは知っており、それらをたくさん読みましたが、問題を解決するのに役立つ解決策が見つかりません!