多くのページをチェックしましたが、まだ答えがありません。
私の問題は次のとおりです。RS232を介してコンピューターに接続されたデバイスがあります。デバイスは、次のように1秒間に2回送信しています。
"*X;0;bbb;cc;d;eee;f\r\n"
フィールドは固定幅の数値フィールドです。1分ごとに0フラグが1に上がり、「cc」が変わります。この番号が必要です。
C#アプリケーションでは、動作させることができません。データを取得するためにrecieveイベントを使用しようとしましたが、更新された結果の処理には10秒以上かかります。これは、フラグが立てられてから10秒後に結果が得られることを意味します。さらに時間がかかる場合もあります。
最初にRecieveEventを試してみました。行がいっぱいになるまでバッファをいっぱいにしようとしましたが、やはり同じ結果になりました。次に、300ミリ秒ごとに呼び出して行を読み取るタイマーを試してみました。それでも同じ問題。
だから私の質問は、シリアルポートから最新のデータを読み取って処理する方法ですか?