Visual Basic .NET/ Visual C# (.NET8、.NET Framework)

SerialPortクラスのRtsEnableメソッドはBOOL値(True/Falseの2値)でしか設定できないためWin32APIのRTS_CONTROL_TOGGLE(0x3)のような設定ができません。
このため、SerialPortクラスでは、RTS出力信号を利用した半二重設定をサポートしておりません。

 

SerialPortクラスで、RTS出力信号を利用した半二重通信を行う場合は、
デバイスマネージャー経由のプロパティ設定内で、「半二重設定」のチェックボックスをオンにしてください。

この変更により、DCB構造体の「fRtsControl」に対し、強制的に「RTS_CONTROL_TOGGLE」を設定した状態となります。
プログラムで「RTS_CONTROL_TOGGLE」を指定しなくても、半二重通信設定となり半二重通信が可能となります。