ほぼ同じでも正しくない場合、.NET シリアル ポート オブジェクトはエラーを表示しない場合があります (つまり、何か壊滅的な事態が発生するまで)。
最も一般的なシリアル ポート通信障害は、ボー レートの不一致が原因で発生します。「エコー」が得られることがわかっているメッセージがある場合は、ハンドシェイクの一環としてそれを試してください。接続しているデバイスに「ステータス」メッセージが表示されている可能性があります。リクエストしても害はなく、コミュニケーションが正しく流れているかどうかがわかります。
ソフトウェア ハンドシェイク (xon xoff) の場合、正しく構成されているかどうかを検出するためにできることはほとんどありません。シリアル ポート オブジェクトは、基になるシリアル ポート ドライバーの実装に応じて、完全に無視することから、スレッド例外エラーを発生させることまで、あらゆることを行うことができます。xon/xoff を完全に無視し、文字をプログラムに直接渡すシリアル ポート ドライバーを使用しました。
ハードウェア ハンドシェイクの場合、デバイスの動作方法によっては、ボー レートの基本的なエコー戦略が機能する場合があります。ハードウェア ハンドシェイクを行うことがわかっている場合は、それを検出して有効にすることができます。デバイスがハードウェア ハンドシェイクを必要としていて、それがオンになっていない場合、何も得られない可能性があります。逆の場合も同様です。
めったに使用されないもう 1 つの設定は、DTR ピン (データ端末の準備完了) です。一部のシリアル デバイスでは、データの送信を開始する時期であることを示すために、これをアサート (つまり、true に設定) する必要があります。デフォルトでは false に設定されています。回転させてください。
シリアル ポート オブジェクトは ... 扱いにくいことに注意してください。必ずしも必要ではありませんが、変更を加える前にポートを閉じることを検討してください。
編集:
コメントのおかげで、これがあなたのデバイスのようです。デフォルト設定は次のようにする必要があります。
- 1200ボー
- 奇数パリティ
- 1ストップビット
- ハードウェア ハンドシェイク
データ ビット数は指定されていませんが、デバイスは 7 と 8 をサポートしていると言っています。両方とも試してみたいと思います。また、600、1200、2400、4800、9600、および 19200 ボーをサポートしていると述べています。
ハードウェア ハンドシェークをオンにし、DTR (別のもの) を有効にして、さまざまなボー レートをすべて循環させた場合、それが自分の設定ではない可能性が高くなります。使用されているシリアル ケーブルがデバイスに正しく配線されていない可能性があります。一部のシリアル ケーブルは「パススルー」ケーブルで、片側の 1 ~ 9 ピンがもう一方の 1 ~ 9 ピンと正確に一致します。次に、「TX」ケーブルと「RX」ケーブルが切り替えられる「クロスオーバー」ケーブルがあります(一方が送信すると、もう一方が受信する、非常に便利なケーブルです)。
そこのマニュアルの後ろにあるコマンド表を見ることを検討してください。何らかのタイプのエコーを返すために発行できる「ソフトウェアバージョンの印刷」コマンドがあります。