Virtual bridges created by Virtual Serial Ports (both local and remote) support custom “wiring” inside a virtual "cable". You may specify which pins are sending data to which other pins, both on local or remote socket. Below is a default configuration used:
If you are using the Configuration Utility, use Create New Bridge Wizard to configure custom wiring, or select an existing bridge and change its configuration appropriately. Currently, you cannot specify custom pin-out configuration before creating a remote bridge, but you still may change it on already created bridge.
If you want to configure pin-outs from API, first create a bridge and then use the IVirtualSerialDevice.localSocket and IVirtualSerialDevice.remoteSocket properties to get pins for both local and remote socket. Then reference individual pins on either of this object and use the IPin.sendTo method to add new virtual “wires”.
Virtual Serial Ports automatically validates the applied configuration and if it is invalid, you get an error from API.
Below is a table that shows you valid configuration for each pin:
|Source Pin||Allowed Destinations|
|DTR (Data Terminal Ready)||DSR, DCD, CTS, RI|
|DSR (Data Set Ready)||DTR, RTS|
|DCD (Data Carrier Detect)||DTR, RTS|
|RTS (Request To Send)||DSR, DCD, CTS, RI|
|CTS (Clear To Send)||DTR, RTS|
|RxD (Received Data)||None|
|TxD (Transmitted Data)||RxD (only remote)|
In all cases (except TxD) if connection is allowed, it can be established both to the local or remote socket, effectively allowing the user to create loops.