• No : 918
  • 公開日時 : 2010/03/25 20:17
  • 更新日時 : 2024/10/30 18:26
  • 印刷

SerialPortクラスで半二重通信を行う方法

SerialPortクラスで半二重通信を行う方法

カテゴリー : 

回答

対象製品型式:
 COM-2PD(PCI)H、COM-4PD(PCI)H、COM-1PD(LPCI)H、COM-2PD(LPCI)H、
 COM-2DL-PCI、COM-4DL-PCI、COM-2PD-PE、COM-4PD-PE、COM-1PD(CB)H、  
 などのPCI Express、PCI、CardBus対応のRS-422/485用シリアル通信デバイス 
 
関連情報: 
 SerialPortクラスでは、半二重設定はサポートされていません。 
 
 SerialPortクラスのRtsEnableメソッドはBOOL値(True/Falseの2値)でしか設定できないため
 Win32APIのRTS_CONTROL_TOGGLE(0x3)のような設定ができません。 
 
 SerialPortクラスでは、半二重設定を行うことはできませんが、
 PCI, PCI-Express, CardBusの弊社シリアル製品では下記設定を行うことで半二重として動作可能となります。 
  
 1:デバイスマネージャを起動。 
 2:ポート(COMとLPT)より[Contec Communication Port]のプロパティを選択。 
 3:「ポートの設定」から「詳細」ボタンを押す。 
 4:半二重設定をチェックして「OK」を押す。 

 デバイスマネージャーを閉じOSを再起動すると、無条件に半二重設定となります。 

 この変更により、Win32APIでの DCB構造体「fRtsControl」に対し、強制的に「RTS_CONTROL_TOGGLE」
 を設定した状態となります。 
 従って、アプリケーション側で「RTS_CONTROL_TOGGLE」を指定せずとも半二重通信設定となり、
 半二重通信が可能となります。