boost::asio
シリアルポートからの読み取りに使用しています。シリアルポートから継続的に読み取り、std::cout
. しかし、いくつかの奇妙なことが起こります。
ここTimeoutSerial
からクラスを使用しています。私のコードは次のようになります。
#include <iostream>
#include "TimeoutSerial.h"
using namespace std;
int main(){
TimeoutSerial serial;
serial.open("/dev/ttyACM0", 9600 );
serial.setTimeout(boost::posix_time::seconds(1));
char c = '0';
while(true){
try{
serial.read( &c, 1 );
cout << c;
}catch( std::runtime_error err ){
cout << "Error: " << err.what()<< endl;
}
}
return 0;
}
出力が得られず、理由がわかりません。に変更cout << c;
するcout << c << endl;
と、必要な出力が得られますが、各文字が改行されているため、望ましくありません。
では、なぜこれが起こっているのか誰か教えてもらえますか?