User Tools

Site Tools


Device Drivers

The following chapters provide information for some device drivers shipped with V-Control. These drivers are used for special tasks.


The RemoteScreenSender is used to send commands and / or information to a V-Control Designer instance. V-Control Designer elements (buttons, sliders, labels etc.) are referenced by join numbers. The RemoteScreenSender can send simple messages and device variables.

Sending Device Variables

To send a device variable, the RemoteScreenSender needs to know which device and which variable. To get a list of all available devices, the RefreshDevices command is used. Switch to Run mode and press the Run Cmd button if the RefreshDevices command is selected. Nothing happens for now, but next select the RefreshDeviceVars command. The drop down box DeviceName now holds a list of all devices in the current project.

The RefreshDevices command has to be executed only once, or if devices were added or deleted from the current project. The list is stored with the project file.

Next we need to get the device variables for a selected device. Select the RefreshDeviceVars command an select a device. then switch to Run mode and push the Run Cmd button.

Again nothing seems to happen. But now select the SendDeviceVar command.

The DeviceName parameter is preselected with the device chossen with the RefreshDeviceVars command. Now select a device variable in the DeviceVar parameter box.

Next step is to choose to which join number in which format the content of the device variable is send.

One may wonder why we choose a string join number here. If we want to show the lamp hours of a projector, we usually use a label to show the information. In this case we have a label with the string join number 6 for caption. If we send this as integer, we need a widget with an integer join such as slider or progress bar.

Sending User Data

Another way to send messages to a V-Control Designer instance is to use the SendDigital, SendInteger and SendString commands.

If used in Cuelists, the only option is to enter the data direct as command parameter.

If used in Scrips, we can process the data that is send.

In the example above we want to send the Temperature value of a weather station to a progress bar. But the Temperature comes in a format such as “20,5”. If multiplied by 10, the result is 205, which is an integer value. Imagine we have a progress bar with minimum value -300 and maximum 500, then it can now show Temperatures from -30 to 50°C.

Getting Join Values

Another method to update the user variables of the RemoteScreenReceiver is to send a Get message to V-Control Designer. This is done by the GetDigital, GetInteger and GetString command. If one of these commands is sent from the RemoteScreenSender, the Designer send a message to the RemoteScreenReceiver that updates the device variable. If the variable changes, an event is fired.


The RemoteScreenReceiver does not have any commands. By default, it has the device variables D001..D100, I001..I100 and S001..S100. The RemoteScreenReceiver is only used to generate events on a variable change. How to create events is described in the Events chapter.


The System device is used to provide Time and Date information.

It has no commands and does not need a channel, because all the communication is internal.

V-Control Connectors

For some devices not direct accessible by V-Control, we provide V-Control connectors. A V-Control connector is a piece of software that controls the device native and provides a network interface to connect to other software products such as V-Control.

So the V-Control connector does all the communication with a device internally and provides a simple control protocol via network to communicate with V-Control. This also has the advantage that devices not available via network now network controllable. The V-Control connector is running on a computer where the device is connected to (typically via USB). This can be the same machine where V-Control is running, but doesn't have to.

So if you need to control a midi device for example, and this device is far away from your V-Control machine, then you can use an additional computer with a MIDI interface and the V-Control Connector software installed near the MIDI device. V-Control then opens a TCP connection to this machine and from V-Controls point of view this is the MIDI interface.


There is no native support for USB MIDI devices in V-Control, but we have a nice work workaround. The TCP MIDI Connector interfaces between V-Control and your USB MIDI Device.

Note: This also works with rtpMIDI devices if a rtpMIDI driver is installed on your system.

To connect to the TCP MIDI Connector create a channel with the following specifications:

Channel Type: TCP Client

Port: 10002

IP Addres: IP Address of the system with the TCP MIDI Connector (could be if on the same machine then V-Control)

The TCP MIDI Connector is a Java software. On Windows, we provide a package with Java included, this is the reason why the zip file is relatively big. On other platforms you must install Java first.

Launch MIDITCP. In the left dropdown box, select the MIDI input. Use the right box for MIDI output. Once a MIDI Input and Output is selected, the configuration is finished. The software remembers the Input and Output and will use these interfaces net time it starts.

On the V-Control side, now use the TCP_MIDI_Connector_v4 driver.

The driver has a couple of device variables that can be used to fire events if a MIDI message is received.

device_drivers.txt · Last modified: 2018/05/16 11:16 by admin