<< Click to Display Table of Contents >>

Navigation:  Reference (Scripting) > Side Channels - Using Multiple Data Connections >


The DirectSend method is an alternative to SendSequence for specific applications. The syntax is similar to SendSequence syntax 2 and is used for the following purposes:

Sending data on side channels - secondary data connections opened using OpenSideChannel.

Transmitting / injecting additional data, bypassing the OnSend data queue and without adding communication window output. See Remarks and Example 2 below for a practical example.




result = DL.DirectSend channelNo, customSequence [, representation ]


The DirectSend method syntax has these parts:





channelNo = 3 - 10: Send data on a side channel (see OpenSideChannel).

channelNo = 1: Send on Docklight Channel 1 (Send/Receive or Monitoring Mode)

channelNo = 2: Send on Docklight Channel 2 (Monitoring Mode only)


Required. String containing the sequence to send. The sequence is passed in ASCII representation by default. For HEX, Decimal or Binary sequence data, use the optional representation argument described below.


Optional. String value to define the format for customSequence.  "A" = ASCII (default), "H" = HEX, "D" = Decimal or "B" = Binary.





result is true, if channelNo is valid and the data could be transmitted.


The main application for DirectSend is in combination with OpenSideChannel. In addition, DirectSend can be useful when you are monitoring a data connection, and you need to inject additional data into the data stream between the two devices. You can effectively change the "passive monitoring" approach in Docklight into a "active monitoring" where Docklight can create e.g. additional fault conditions that do not appear in the original communication.


NOTE: DirectSend does not generate any communication window output, and does not use the OnSend data queue. It just transmits your text or binary data "as is".


Example 1


' Precondition: Docklight Communication Mode = Send/Receive


' Use a UDP loopback for Channel 1

DL.SetChannelSettings "UDP:LOCALHOST:10001", 1


DL.OpenSideChannel "UDP:LOCALHOST:10002"

DL.DirectSend 1, "TX Data on Channel 1" + vbCrLf

DL.DirectSend 3, "TX Data on side channel" + vbCrLf

' and wait for the reactions

DL.Pause 100


The communication window output could look like this:


02.10.2019 11:51:26.749 [RX] - TX Data on Channel 1<CR><LF>

<Channel3>TX Data on side channel<CR><LF>



NOTE: The data only appears on the RX data display. No TX communication output is generated.


Example 2


' Precondition: Docklight Communication Mode = Monitoring


DL.SetChannelSettings "UDP:LOCALHOST:10001", 1

DL.SetChannelSettings "UDP:LOCALHOST:10002", 2


DL.DirectSend 2, "Bounce"

' and let this go on for a while

DL.Pause 1000


The communication window output could look like this:


02.10.2019 12:03:08.840 [UDP:LOCALHOST:10002] - Bounce

02.10.2019 12:03:08.840 [UDP:LOCALHOST:10001] - Bounce

02.10.2019 12:03:08.841 [UDP:LOCALHOST:10002] - Bounce

02.10.2019 12:03:08.848 [UDP:LOCALHOST:10001] - Bounce

02.10.2019 12:03:08.851 [UDP:LOCALHOST:10002] - Bounce

02.10.2019 12:03:08.864 [UDP:LOCALHOST:10001] - Bounce


NOTE: The data is repeatedly reflected between Channel 1 and Channel 2, because we use UDP loopbacks on both ends, and Docklight Monitoring Mode uses Data Forwarding by default.