| ■No93144 (たれパンダ さん) に返信 > 他にやったことを補足させていただきます > シリアルポートに対して以下のような設定をしても RTSが無視されるようです > > SerialPort serialPort1 = new SerialPort("COM1", 4800, Parity.None, 8, StopBits.One); > serialPort1.Handshake = Handshake.RequestToSend; > > 古い DOSプログラムだと問題なく通信ができるので > ケーブルの結線などには問題がないようです。 >
ケーブルの配線などに問題がないようですなどどいうような 貴方の解釈ではなく、CTS,RTS,DTR,DSR の制御が使える配線になっている信号ケーブルなのかを示して下さい。
次に DTR,DSR が互いのPCで使える設定になってるのかも示して下さい。
相手の DTR を無視するというのは垂れ流しなので、相手が受信可能(電源が入っていて通信可能)だと確実にわかっている場合に 用いる方式です。 相手の装置が生きていることを確認したうえで送信側は CTS/RTS を使って通信可能なことを相手に知らせ、 相手が受信可能なことを確かめた上で、初めて送受信開始できる状態だと知るのが普通だと私は思っています
なので、これらの信号線がどうつながっているのかが分からないとプログラムのコードから判断するのは 無理があると考えます
また、相手の装置がモデムの振りをする場合(制御線の使い方です)は RI,DCD も見た方がいい場合があります。 |