V-Control Designer is software that is used to create Graphical (touch) User Interfaces for V‑Control. It communicates with the Remote Panel Server via TCP, and up to 5 V‑Control Designer instances can have simultaneous access to a Remote Panel Server. The Remote Panel Server has two connections to V-Control Devices, the RemotePanelReceiver and the RemotePanelSender.
Since the Remote Panel Server, V-Control Designer and V-Control communicate via TCP, all applications can run on different computers or the same.
While V‑Control and the Remote Panel Server is multi-platform software (Windows, MAC OSX and Linux) V‑Control Designer is Windows only at the moment. Nevertheless, V‑Control Designer can operate with Remote Panel Server operating on a Linux or MAC OS and Windows.
Unzip the downloaded file and copy it to a directory with users write permissions. Then launch the exe file.
Unzip the downloaded file and copy it to a directory with users write permissions. Then run vcredist_msvc2015_x64.exe that is located in the V-Control Designer directory. Then launch the exe file.
V‑Control Designer is not open source such as V‑Control. However, the program is free to use. There are no license fees for V-Control Designer, but for the Remote Panel Server, and this server is mandatory. Therefore you need to buy a license for the Remote Panel Server to use V-Control Designer. A license is only valid for one instance of the Remote Panel Server, and only one instance can run on a computer.
The Remote Panel server runs in Demo mode without a license. That means that every 30 minutes the network connection will be closed and the software must restart. There are no other restrictions. If purchased a license, use the hardware key (USB thumb drive) and the Server will run in licensed mode.
The Remote Panel Server needs hardware dongle as license key. The dongle will be send after purchase. Alternatively use the File→License Request menu to create a license request file:
It will only work with the USB drive used for the request. Using another drive has the same result as using no key.
There is no direct communication between V-Control and V-Control Designer. The Remote Panel Server works as intermediary between the two programs.
The Remote Panel Server opens 3 server ports. The Display Server Port is used by V-Control Designer (up to 5 at the same time). V-Control Sender Port and V-Control Receiver Port are used by V-Control devices.
V-Control needs two new devices, The RemoteScreenSender and RemoteScreenReceiver. Create TCP-Client channels with the IP Address of the Remote Panel Server and the ports for Sender and Receiver.
To interact with the V-Control Designer widgets, (buttons, labels, sliders etc.) a concept of join numbers is used. Join numbers define a connection to / from a widget. There are three different types of join numbers:
Join numbers for each type can be between 1 and 999. So you have 999 digital joins, 999 integer joins and 999 string joins. All V-Control Designers connected to one Remote Panel Server share these join numbers. So if you have more then one Designer connected to the Remote Panel Server, and they show different GUI’s (Graphical User Interface), take care that the join numbers don’t overlap.
But in some cases it can be useful to share some join numbers on different GUI’s. If you have information that is needed on all displays, then you can use a single string join number and have labels on all GUI’s with this number. Then the information appears everywhere.
Below there is a button with some of its properties. Notice the second one, Digital Join. Because a button can only have the state On or Off, the digital Join represent its state.
If the button is pressed, it sends a message with its type (Digital in this case), join number and 1 as value. If the button is released it sends the same message but 0 as value.
In V-Control, there is a device RemoteScreenReceiver. Per default, this device has device variables D001..D100 for digital joins, I001-I100 for integer joins and S001..S100 for string joins. If more join numbers needed add them in the Device Editor
If V-Control Designer sends a message with a join number and a value, then the RemoteScreenReceiver updates a device variable (D013 in this example). This generates an event, and we can use this event to run a task.
A detailed description how events work in V-Control is at Events
Lets Do the other way. Below is a label with the string String Join Caption 1.
We can now use the device RemoteScreenSender to send a message to this join number. The content of this message will be shown in the label.
Maybe you notice that the label has additional string joins. String Join Back Color, String Join Border Color and String Join Text Color can receive messages to change the corresponding colors.
The RemoteScreenSender device has commands to send messages to the Remote Panel Server
The command SendString send as message to a string join, in this case join number 1 which we used for the caption join of the label. If we run this command, the label changes its caption.
More Information about RemoteScreenReceiver and RemoteScreenSender can be found at Device Drivers.
In large projects it is easy to lose track of the join numbers. For that reason, V-Control can help managing join numbers. In V-Control, click the Join List tool button.
This list is used to make notes what a join number is used for. If you have a button with join number 1, and the RemoteScreenReceivers device variable D001 change event is used to trigger a task that turns on a projector, edit the row with D001 in the following way:
It is good practice to give the widgets meaningful names. The task that handles the change event has the same name with prefixed “on”. Use the comment column for further useful information. Because the list could be very long, the Search field helps to find a row of interest. Anything typed in here that matches any row content works as a filter. Only rows that match the search field content are shown.
At the bottom of the Join List, the Create Default List button creates a default list of join numbers (D001..D100, I001..I100 and S001..S100). If more join numbers are needed enter a new one in the Join Number field. The format is D101 for a new digital join number 101. I221 creates an integer join with number 221 and S123 a new string join with number 123. Click the Add Row button to insert the new join number.
The Main Window is divided into three parts:
Click the Run menu item to switch to run mode.
Display Server IP: To establish a connection between V‑Control Designer and Remote Panel Server, you need to set up the TCP connection. Display Server IP contains the IP Address of the Remote Panel Server. If both, Remote Panel Server and V‑Control Designer running on the same system, this should be localhost (127.0.0.1). In other cases the use the real address.
Port: The TCP port that is used by Remote Panel Server to connect to Displays (Display Server Port).
Full Screen: If checked, V‑Control Designer will cover the whole screen if switched to Run mode. There will be no window decoration. To exit the run mode if full screen view, press ESC.
H Grid, V Grid: In Edit Mode, the user can display a grid that helps to position and align the widgets. H Grid and V Grid determine the distance between the grid lines.
Grid Color: Determines the color of the grid.
Show Grid: If checked, the grid is shown
Magnetic Grid: If checked, widgets will allign to the grid if you change their position by dragging them.
H Size, V Size: Determines the size of all pages in a single project. Usually this should match the Display size if you want to run in Full Screen mode.
Add Page, Delete Page V‑Control Designer can use multiple pages within one project. Here you can add new ones or delete existing ones.
Main Menu File → Settings
Default Project Press the Select button to choose a project that is loaded at startup.
Autostart Default Project If a valid project is loaded by default, enabling this check box will initiate run mode at startup.
A V‑Control Designer project consist of one or more pages. A page act as container for widgets and can use the entire screen in run mode if Full Screen is selected.
To add or delete pages switch to Project Settings.
To access the page properties select the Inspector and click on an empty area in the page. Then you can change the page Name and Back Color. The name has to be unique.
Button properties are:
Name: The name of the widget. Try to use meaningful names, this will help in complex projects to keep the overview. Edit Items: Opens an editor to edit the items in the combo box Integer Join: The join number to select an item. Back Color: The back color of the label. Color values are in the format AA,RR,GG,BB. AA = alpha (00..FF), 00 means transparent, FF full visible, RR = red (00..FF), GG= green (00..FF) and BB = blue (00..FF). All Color values are two digit hex numbers. Border Color: The border color of the label Text Color: The Text color of the label. Top, Left, Width, Height: Position and size of the button Z: The Z-Order of the button. The higher this value, the more on top the widget is displayed if overlapping with other widgets. Font: The font of the Caption Size: Font size of the caption Bold: Style of the Caption
The image properties of the slider allow custom sliders. It depends only on the graphical skills how they look.
The Ellipse is often used a background for other widgets to visualize a function group.
The Rectangle is often used a background for other widgets to visualize a function group.
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.
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.
Another way to send messages to a V-Control Designer instance is to use the SendDigital, SendInteger and SendString commands.
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.
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.