特定のシリアルポートをリッスンし、受信中のデータを処理するプログラムを.NETで作成しました。com0com(ヌルモデムエミュレーター)を使用してテストプログラムを作成しましたが、プログラムは正常に機能していました。ハイパーターミナルでテストしたところ、うまく機能しているようでした。
ただし、ソフトウェアを元のデバイス(制御システムから受信した出力)とインターフェイスすると、受信したデータが文字化けしていました。特殊文字が含まれていました。同じデバイスをハイパーターミナルに接続すると、目的の出力が生成されました。ボーレート、パリティなどを変更しましたが、受信したデータは同じガベージ文字のセットでした。
SerialPortコンポーネントのDataReceivedイベントを使用し、次のコード行を使用してデータをキャプチャしました。
文字列データ=portRecieve.ReadExisting();
誰かが私がどこを逃しているのか教えてもらえますか?現在の環境では、デバイスからの出力は、ポートで受信したものをすべて印刷するドットマトリックスプリンターに直接接続されています。プリンターは送信されているものをキャッチしているようですが、私のコードはキャッチできませんでした。
同様のシナリオに遭遇したことがある場合は、調査結果を共有してください。
ありがとう