Boostasioシリアル関数を使用してシリアルポート経由でデータを送信しています。私は過去にそれを使用しました、そしてそれは私が望むように働きました。しかし、今では奇妙な動作をします。これは私がデータを送信するために使用したコードです:
int data = 97; //represents 'a'
string sendThis = "0";
sendThis[0] = (char)data;
cout<<sendThis<<" "<<data<<endl;
boost::asio::write(serial,boost::asio::buffer(sendThis,1));
ここに問題があります:128より大きいデータを送信すると、送信したものを正確に取得します。しかし、128未満の文字を送信しようとすると、反対側では、128が追加されます。これは「a」の場合は225です。この問題のため、私は常に128から255の間で取得します。さまざまな送信方法を試しましたが、結果は常に同じです。どんな提案でも大歓迎です。