私はarduinoからのシリアルデータを読み込もうとしていますが、プログラムを実行すると、バッファ内のすべてのデータが読み込まれます。そして、私は次のエラーで終了します。ブーストasioシリアルポート "end of file"
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::system::system_error> >'
what(): read: End of file
Aborted (core dumped)
私はまたしても、プログラムが実行される前からのデータを望んでいません。ここに私のC++コードは次のようになります。私の知る限り、それは次の入力を待つように、read関数は、右、ブロッキングする必要があります知っているように
#include <iostream>
#include <stdint.h>
#include <boost/asio.hpp>
#include <boost/asio/serial_port.hpp>
using namespace boost;
int main() {
asio::io_service io;
asio::serial_port port(io);
port.open("/dev/ttyUSB0");
port.set_option(asio::serial_port_base::baud_rate(115200));
char d;
while (true) {
asio::read(port, asio::buffer(&d, 1));
std::cout << d << std::endl;
}
port.close();
}
?それでは、どうすれば "ファイル"の終わりに到達できますか?
こんにちは、私は同じ問題を抱えています。さらに悪いことに、昨日働いた*バイナリ*は今日あなたと同じ問題をもたらします。タイムアウトの設定が原因である可能性があります。 –
今日はまったく同じコードをやり直しました。コンパイルのプロセスはまったく同じですが、今は魔法のように動作します... –