Table of Contents
Welcome to Lintouch Editor, a visual tool that lets you create and manage Lintouch Projects. Lintouch Project defines the look and behavior of the control panel(s) in Lintouch. And Lintouch, it is is an open-source real-time visual control center. Lintouch lets you control and monitor details of processes such in manufacturing, security, mass transit and any other environment that requires analysis and monitoring.
With Lintouch Editor, you can work with the Lintouch objects just like in other graphics and diagram editors or studios. Some of the editor's many features include accurate positioning and mass operation with pre-defined controls, context aware tool windows, and the ability to preview the whole project - just like it will appear in the real working environment.
Lintouch is an open-source real-time visual control center application. It has been designed with easy extensibility in mind. The main features of Lintouch are the server-client architecture and the extensibility: using Server Plugins on the server side, and using Templates on the client side.
Lintouch consists of two principal parts (see Figure 2, “Lintouch Architecture” for details):
An application running on a dedicated computer (such as a low-profile Motorola CPU) and monitoring your system as specified by the instructions defined in the Lintouch Project.
An application running on an industrial PC with touch screen, a handheld computer or another device with TCP/IP connectivity. It obtains the Lintouch Project from the server it is connected to and visualizes the state of your system the way the project defines.
The behavior of Lintouch Server is controlled by Lintouch Project (a .zip file with .ltp extension containing configuration for the Runtime and the Server). Lintouch Server sets up the connections that read/write actual data from/to the monitored system. Every such connection is handled by an appropriate Server Plugin (SNMP Plugin, ModBUS/TCP Plugin or another).
Lintouch Runtime connects to a specific Lintouch Server. It downloads the project from the server and visualizes the data handled by the Lintouch Server. The data are visualized by displaying one or more Panels. Every panel displays one or more Templates (Lamps, Buttons, Input fields) reflecting the real state of the system.
Templates are integrated into Template Libraries and can perform various tasks. Lamp Template typically visualizes the state of a monitored variable from your system. A Button Template, on the other hand, can change the value of amonitored variable of your system when activated by a mouse button or touch screen. This way you can alter the state of your system.
On the global scale, you work with Lintouch Projects in the editor. A project is represented by a project window.
You can have multiple projects open at once. So it is, you can have several project windows in the lintouch editor. Every project window updates its caption to the name of the project it holds.
From the persistency point of view, a project is represented by a file. When satisfied with the look of the project, you will upload this file to the reach of the lintouch server and let the lintouch server start with this project. Finally, you will connect to the server using the lintouch runtime(s).
Every project consists of Views. A view is nothing more than a collection of panels. In addition, every view has a name and a resolution. To skip ahead a little, all the panels within a view have that resolution.
To switch among the views of the project, use the dropdown list at the bottom right hand corner of the project window.
Initially, an empty project contains one view.
Each view consists of Panels. A panel is a surface that can contains Templates - LEDs, lamps, images, switches, buttons, and all other controls.
You can switch among panels of a view by clicking on the panels tab within the project window.
Initially, an empty view contains one panel.
Template is the basic organizational unit within Lintouch. It represents a real world control switch, button, LED, lamp, sensor, etc. Templates are contained within template libraries.
The template to use are located in the template palette, a visual filling most of the main window. In addition, the templates within the palette are grouped by the template libraries - the dropdown list just above the palette.
Lintouch comes with a few pre-defined templates. You can design and implement templates of your own. The details of this process are beyond scope of this document and may be found at the lintouch homepage at http://lintouch.org.
To connect the real device to Lintouch, you have to create a connection. Connection is an abstraction that refers to a device, a PLC, a set of devices, or anything that another entity, called the server plugin, defines.
For example, the plugin ModBusTCP, shipped with Lintouch, implements the protocol ModBus over TCP and lets you access the remote device from Lintouch. Or, the plugin Generator simulates a device that regularly changes its output. In fact, there is no limit as to what a server plugin can handle.
This way, the server plugin tells Lintouch what to send or receive with the particular connection and thus acts as the type of that connection. To put it another way, a connection is an instance of a server plugin.
Lintouch contains only a couple of plugins meant for testing or demo purposes. Usually, you will write your own plugins for your specific devices or let someone do the task for you. The interface to those are open and can be found at the lintouch homepage at http://lintouch.org Be aware of the fact, the real world plugins may be as complex as the real world itself is and sometimes it may take weeks to complete them!
Once you have written a complex plugin, it is more than likely you would like it to work for other instances as well. You decide it is only some addresses, or other parameters that you need to feed to your plugin to make it work again. This is the time when the user should set the properties for the corresponding connection. In fact, almost every plugin comes with a set of properties that are different from one instance of plugin (i.e. connection) to another:
Lintouch variable represents the measured or monitored quantity within connection, such as voltage, wind speed, limit check, or the status of a server. Some people refer to variable as tag. The meaning of variable is defined by the plugin that handles the corresponding connection. This plugin also defines, expects, and sends the variable values as of one of the three types:
bit
number
string
For example, the weather plugin may be grabbing the temperature from one of the connected thermometers. So, the variables of this connection are temperatures and are of the type number.
Of course, the variables have to be distinguished one from another, so each variable has a name. In addition, some scenarios require variables to have additional information associated with them, such as bus address, credentials, or IP address. This additional information is called the variable properties.
A template connects to a variable by one of its IOPins to receive and process the data coming in from the real devices, or to send some data out to the world (for example, when a user presses a button).
When connected (the state also referred to as the IOPin bound to a variable), Lintouch receives the data from the real device by a server plugin; this sets the variable of the corresponding connection and the value is delivered to the connected IOPins. Then, it is up to the template to decide how to react to the received value.
The other way around, when a template decides to send out a signal (or a number, etc.), it does so by setting its IOPins. It may be so that it reacts to the user's press of a button, text input, timer event, etc. Then, the signal propagates through the bound variables to the plugin via a connection. Last, the plugin decides to send the signal out and finally translates the event to the protocol of the connected device.
If you thought about templates as LEDs, simple displays, buttons, etc., IOPins would be the interface between the template and the outside world.
For example, there is a LED monitoring a status of a device. This LED is sitting on a bus, that meaning two wires are going to the LED's pins. If you thought about the two wires as a variable, the LED's pins as an IOPin of the LED, the LED as a template, and the bus as a connection, you would get what the Lintouch is about.
As you may already know, there are many windows within the lintouch editor. They are:
the main window - containing the main menu, the main toolbar, and the palette
a project window - representing a project
a tool window - modeless dialogs for managing views, panels, properties, templates, resources, etc.
a modal dialog - dialogs requiring immediate action and/or blocking the rest of the editor
One of the nice features of the editor that makes it stand out is the context aware way of operation.
Every tool window is modeless. That means you can work with the rest of the editor while this window stays open. In addition, when the selection, panel, or view changes, this tool window is updated to reflect the current situation changed - when applies.
For example, you have opened the Template Properties dialog to edit the properties of the selected template. When you shift the focus to another panel, view, or even a project, the Template Properties dialog repaints itself to the properties of the new selection.
Choose from the menu to quit the lintouch editor. You will be asked to confirm the exit when there are unsaved projects.
To create a new project, choose from the menu of the main window.
Alternatively, you can choose from the context menu of a project window (this means a project has to be open).
A new project will set its properties, view sizes, etc. as specified by the menu item of the .
To open an existing project, choose from the menu of the main window.
Alternatively, you can choose from the context menu of a project window (this means a project has to be open).
Or, you can pass the file name of the project as an argument to the editor on the command line when the editor starts.
Last, you can open a project from the menu of the menu of the main window. This menu contains recent projects that you have been working on (opened or saved projects). The number of the remembered projects can be adjusted from the Editor Preferences... menu of the File menu.
To save the current project, choose from the context menu of the project window. If a new project has not yet been saved, you will be asked its name. If the project has been saved, you will not be prompted and it will be saved immediately.
To save the current project under a different file name, choose from the context menu of the project window.
You can see whether a project has been modified and needs saving in order to preserve the modified data by looking at the status bar of the project window; it may read Project is unsaved.
Whenever you are about to save a project preliminary checks are being made. One of them is the time-stamp checking. Before the project file is updated, the editor checks if the file has been modified by another project window, or another process. If it is so, a confirmation to continue is required.
You stop working with a project by closing the project window or by choosing from the context menu of the project window.
Before the attempt to close the project is carried out, the editor checks whether the project has been modified and asks to continue if so.
Besides the control and view information, every project contains optional information, structured into
author
version
creation date
short description
long description
These fields can contain almost any information and are optional. They are referred to as the Project Properties collectively and server no other than informative purpose. They show at the runtime.
You can specify project properties that every new project will have when it is created. Choose from the menu of the main window. Go to Project Defaults tab.
To revert a change you did while editing a project, such as moving a template, removing a template, adding a panel, or renaming a view, you can use the unlimited undo feature. To revert a change, choose from the context menu of the project window.
Note: you will more likely be using the shortcut to this action, Ctrl+Z. Beware of the fact, the same as for other shortcuts within the lintouch editor, the corresponding project window must be active (have focus) in order to carry out the action.
To revert a reverted change, choose from the context menu of the project window.
To revert all the changes that have been made since the last save or since editing started, choose from the context menu.
When this happens, the editor pops up a message stating briefly what went wrong. To see details about the error, you are to consult the logger. To bring up the logger, choose from the menu of the main window.
The logger is a window that keeps track of all the events that happened within the editor (or of last a thousand events, to be accurate). You can filter out some less important events by clicking on the appropriate button: , , , , and . The right button of a button means only more severe messages remains in the logger.
Now we get to explain the most interesting part of the editor; working with the basic elements of Lintouch: templates. Templates can be thought of controlling or monitoring units on control panel, such as thermometers, LEDs, buttons, or switches.
Before reading on, make sure you have opened or created a project by or from the of the main window.
To place a template on a panel:
Choose the template library from the dropdown list of the available template libraries in the main window. More on the libraries futher on.
Below the selection you will see the buttons representing all the templates from the library - the palette.
Select a template by clicking on its button. The button will depress and stay so to indicate this template is selected.
Move the mouse over the panel. You will immediately see the cursor has change to cross - the template placement mode. Now you have two options:
Click in the panel. The new template will be added to the panel, with its upper left hand corner in the position you indicated with the default size.
To place a template with the size that is on your mind, drag a rectangle on the canvas now:
press the button on the panel in the position of the upper left corner and,
keep the button pushed and move the mouse to the position of the bottom right corner.
And that is all there is to it. You have added a template to a panel.
To remove a template or templates from a panel, you have to select them first. To select a template, just simple single click on it. Read on to find out more on the selections. Then, just press Delete to remove the template.
You can of course use the undo if you have accidentally placed template on a panel.
You can freely drag a template across a panel to change its position within the panel.
Press down the mouse button when the cursor is above the template.
Hold down the mouse button and move the mouse to drag the template to the desired position.
Release the mouse button.
In addition, you can use the arrow keys to move the selected template one pixel in that direction (or one grid unit when the snap to grid option is on).
Alternatively, you can modify the X and Y values in the Template Properties dialog to pin point the upper left hand corner of the template (later in this section). This lets you move the template that has become inaccessible by other means, for example.
To change the size of a template, first select it by clicking on it. A frame with small red rectangles appears around the template. Then, drag one of the red rectangles to change the size of the template in the respective direction.
Also, you can modify the Width and Height values in the Template Properties dialog to specify the exact size of the template (later in this section). This lets you move the templates that have become too large to handle by the method above, for example.
Every template has a set of properties akin to all templates. They are:
position
size
name
z-order aka layer
To change any of these, double click on the template to bring up the Template Properties dialog. Then, look for the first tab General.
The same as for the other properties, the changes in this dialog occur immediately and are context sensitive. Read the next section to find out more.
To change properties of a template, double click on it. The Template Properties dialog will appear.
As you change a property of a template, the change will immediately take effect. There is no need to confirm that change.
To edit properties of several templates at the time, keep the Template Properties dialog open. Then, just single click on the template that you want to edit. The dialog will update its content to that of the selected template. Edit its properties and click on another one.
Many operations of the lintouch editor work on selections. Read on to learn and master selecting templates within the lintouch editor.
The templates in the current selection have a frame with eight small rectangles outside the template corners and the middle of each edge. The small rectangles of one template within the selection are red, the rectangles of the other templates are green.
The red selection rectangles mark the current template. The current template is part of the selection. In addition, all operations working on the current template are carried out with this template.
The green selection rectangles mark other templates within the selection.
To get rid of the selection, click in the panel to a place with no templates. No template will get selected.
Alternatively, you may choose from the context menu of the project window.
To make a selection contain just one template, just click on the template. The current selection will be lost and the new selection will contain the template.
To add a template to the current selection, hold down the Shift key and click on the template. You will see the selection box appear around the template. In addition, this template will become the current template.
All the operations in this section of the manual work on selections. To learn how to work with selections, review the previous section.
To create a copy of templates within a panel, select the templates and choose from the context menu of the project window.
To copy templates from the current panel to another, or within the same panel:
Select the templates on the panel.
Copy the selection to the clipboard by from the context menu of the project window.
Switch to the panel of your choice.
Paste the selection from the clipboard by from the context menu of the project window.
To move templates within the current panel, select them and drag them across the panel. All the templates within the selection will move.
To move templates from the current panel to another, or within the same panel:
Select the templates on the panel.
Move the selection to the clipboard by from the context menu of the project window.
Switch to the panel of your choice.
Paste the selection from the clipboard by from the context menu of the project window.
To align a group of templates left so that each template starts at the same position (meaning it has the same x-coordinate), select the templates, and choose from the menu under the context menu of the project window. All the templates shift leftwards so that their left position is the same as the leftmost template of this group.
You can align templates to right, center, top, middle, or bottom by selecting the appropriate from the same menu from the context menu of the project window.
To place the templates so that they equally occupy the space from the beginning of the group to its end, choose or from the menu of the context menu of the project window.
Every template remembers its z-order position. To simplify, it keeps track behind which templates and in front of which templates it is situated. So it is, every template is in a layer. When you manipulate with the overlaying, you are actually manipulating with the template's layer.
To bring up a template (or a selection of templates) in front of others, choose from the context menu of the project window.
Note however, this only changes the layer position of the selection; it brings the templates one layer to the front. This may not be enough for the templates to be visible, if the other templates are high on the layer stack. You may have to repeat this command to achieve what you wanted. Read on.
To bring the selection of templates to the most front position, choose from the context menu of the project window.
To send the selection of templates behind of others, choose from the context menu of the project window.
The group of templates will get shifted towards the surface of the panel, meaning it will decrease on the layer stack. To send the templates back behind all the templates, choose from the context menu of the project window.
The features discussed in this section do not affect the way the project will be rendered or used in the runtime - when it is used in the real environment. The allow for more convenient editing.
The grid allows you for better aligning and positioning templates within the panel. Every project window has its own grid and grid properties. Panels within a project window share the grid and its properties.
To turn the visibility of the grid off or on, choose from the context menu of the project window. Un/check the Show grid to turn the it off or on.
To always start a new project with the grid on or off, choose of the of the main window. Click on the Project Defaults tab and un/check the corresponding checkbox.
To change the color of the grid or its spacings, go to Grid Settings dialog by choosing from the context menu of the project window.
You can change this properties of the grid for projects to come. Go to of the and select the Grid tab.
When snapping to grid is turned on, moving a template does not place it directly where you left it but shift it to the nearest grid edge.
To turn the the snapping to grid off or on, choose from the context menu of the project window. There, un/check the option Snap to grid to turn the snapping off or on.
Alternatively, you can click into the Snap to grid checkbox, located at the bottom of the project window.
Beware of the fact that the snapping is entirely free of the grid's visibility. You can have the grid invisible and still be able to snap to it; even though you cannot see it. Or, you can have the snapping turned off while the grid is visible.
To always start a new project with the snapping turned on or off, choose of the of the main window. Click on the Project Defaults tab and un/check the corresponding checkbox.
Zooming in and out lets you view and edit the project just like under a magnifying glass. The panel dimensions will not change but everything will get big so you can command the detail or it will get small so you can overview the whole panel.
To zoom in, choose from the context menu of the project window.
You can zoom a specific portion of the panel so that you can see the part you want by using the zoom mode. Click on the in the toolbar of the main window. Then, click onto the part of the panel that you want to enlarge.
Alternatively, you can specify the zooming factor directly by picking up the ratio or entering it directly in in the bottom of the project window.
Or you can pick the factor from the of the context menu of the project window.
To zoom out, choose from the context menu of the project window.
You can zoom out by using the mouse too.by using the zoom mode. Click on the in the toolbar of the main window. Then, hold down the Shift while clicking into the panel simultaneously.
Or, you can specify the zooming factor directly by picking up the ratio or entering it directly in in the bottom of the project window.
To zoom in or out so that the entire area of the panel is visible and not more, choose from the context menu of the project window.
Moving about in a panel can be a pain, especially when you have zoomed in by a great factor. To ease the task for you, we have developed a tool called the panning. To activate panning, push the button on the toolbar of the main window. The cursor changes to reflect the mode.
In the panning mode, you can scroll freely along the panel. Hold down the mouse button and move the mouse in the project window. You will see the panel scrolls in the direction the mouse is moving.
Of course, you can use the scrollbars of the project window as usual to scroll the panel in the desired direction.
You will learn how to work with templates when Lintouch comes in in this section. In other words, this section talks about the tasks that are specific to Lintouch connections, bindings, panels, etc.
Some templates can respond to keyboard events. In order to access the templates by keyboard, i.e. to focus them, one can use the template shortcut, or the Tab key to shift focus to that template.
Every template can have a key shortcut to it. When a real project is run, one can switch among templates on the panel using keys.
To assign a shortcut to a template:
Select it. Although, strictly speaking, you can select it later on too.
Then, bring up the Templates dialog by choosing from the context menu of the project window.
Double click the current selected line in the dialog in the Shortcut column.
Press the shortcut keys to assign the shortcut. To cancel this mode, press Escape or click into another dialog, the main window, or the project window.
You have assigned a shortcut to the current template. You should see the shortcut name in the Shortcut column next to the template name.
To remove a shortcut to a template, follow the instructions as in Assigning a shortcut to a template except press Escape when asked for the key combination.
To change a shortcut to a template, follow the instructions as in Assigning a shortcut to a template.
Some templates can respond to keyboard events. In order to access the templates by keyboard, i.e. to focus them, one can use the template shortcut, or the Tab key to shift focus to from one template to another.
To change the tab order of the templates within a panel, choose from the context menu of the project window. The Templates dialog appears.
In this dialog, the order of listing of the template names is the tab order of templates. To move a template up or down the tab order, click on the template name and press the button or button, respectively.
To try out the tab order of the templates within a panel, activate the preview mode as discussed earlier by clicking on the button on the toolbar of the main window.
Note however, you will not be able to see the focus changed to a particular template when the template has not been implemented to respond to the keyboard events or the focus change.
In Lintouch, every template has its name. This name is unique within a panel and servers as an identification of the template instance. It is used in various ways, one of them being the linking to another panel feature.
To change a template name:
Double click on the template to bring up the Template Properties dialog.
Switch to the tab General if not selected, and edit the field Name.
You can use the method described above. Remember, clicking on another template with the Template Properties dialog open will update the content of the dialog, thus letting you rename several templates effectively. There are times though when you would like to review all the template names and change their names when needed. Unlike all the other template properties, the name is not visible and therefore cannot be double checked by overlooking the panel.
To review and change the template name, you can also use the following method:
Open up the Templates dialog by choosing from the context menu of the project window.
Click in the current selected line in the dialog in the Name column. You will enter the in-place edit mode that will let you edit the template name.
Press Enter when done with the editing.
A template library is a collection of templates. It is represented as a dynamic loading library (DLL) aka a shared library (SO).
The editor tries to find and load all the template libraries on the startup. The template libraries to use must be installed into standard locations (using the provided installers, for example). The editor then enumerates all the files in those locations and tries to load and treat them as template libraries.
You can view extra information on the loaded libraries as well as on those that were tried in the Template Libraries dialog. To bring up that dialog, choose from the menu of the main window.
Last, you can view the logger to find out more on the loading process. For example, you may find out why loading a template library has failed.
Some templates refer to filenames. For example, the Image template from Common Templates displays an image file that is part of the project. When a file is part of the project's resources, you can refer to it by its filename only - or by the name you have assigned it.
The lintouch editor takes the burden of the resources management off your shoulders. It lets you add, rename, and remove resource files from the project.
To add a file to the project's resources, bring up the Resources dialog by choosing from the context menu of the project window. There, press the button. Browse for the file, select it and press the button .
Finally, the file will be copied to the project's resources and assigned a unique filename. This name is the name portion of the filename by default but can be different if another resource of that name exists.
To remove a resource, bring up the Resources dialog by choosing from the context menu of the project window. There, press the button. Next, highlight the the resource name by clicking on it and press the button.
After that, the resource will be removed from the project. You can no longer refer to it, by templates for example.
Note that every action within the lintouch editor can be reverted. So it is, the filename is actually moved to a temporary trash so you can undo the removal. This trash will be destroyed after you close the project.
To rename a resource, bring up the Resources dialog by choosing from the context menu of the project window. Then, select the resource name by clicking on it. Next, click on the name once again to switch to the in-place editing mode. Change the name and confirm by the Enter key.
Sometimes, the resource you have been working with is updated in its original location. For example, you may be editing an image with your favorite photo editor. Then, you would like to make sure the resource in the lintouch project gets updated too.
Or, you decide to use another resource file for the same resource and you want to keep the association between all the templates using that resource and the resource.
To refresh or change a resource, bring up the Resources dialog by choosing from the context menu of the project window. Then, select the resource name by clicking on it. Next, press the button to open the file dialog box.
If the original resource still exists, it will be highlighted, so you can just confirm the refresh by pressing the Enter.
If the resource has been deleted, or you would just like to use another file, pick the file of your choice and confirm.
After the resource has been re-read or changed, all the templates using the resources will update.
You can view how the project will look like in the runtime, i.e. how the controls will look like and how they will respond to the mouse and keyboard in the preview mode.
To turn the preview mode on, click on the button on the toolbar of the main window. To turn in off, click on another button in the toolbar or select a template to add to a panel.
Clicking the Preview toolbutton again will not turn off the preview mode. Instead, it will show the Preview dialog. More on the dialog later.
To check how a template respond to the events within Lintouch, turn on the preview mode and be sure the Preview dialog is visible. If that is not so, click on the button on the toolbar of the main window.
Then, select the tab Templates/IOPins and find the template you want to test by name in the dialog. Next, decide which input (aka IOPin) you want to simulate to change. Then, depending on what type the IOPin is of,
click on the or to set the bit of the input off or on, or
enter a number in the column Number to set the IOPin to that number, or
enter a string into the column String to set the IOPin to the string.
Last, the template will act as if its IOPin were changed in runtime. For example, a lamp might change its color when its bit input changed its value.
The preview mode lets you test if the shortcuts to the templates have been assigned accordingly. Just turn on the preview mode, switch to the project window and start experimenting.
You have learned to work with templates within a panel. For big projets however, you will operate with several panels, each of them possibly controlling or monitoring different parts of the connected device or even several different devices.
In addition, some panels might be controlled via special devices, such as handhelds or proprietary devices. For those devices, one will operate in a very different resolutions - that when the View business comes handy.
This way, a project consists of views. Each view contains panels. And panels contain templates. Initially, every new project contains a view and a panel within that view.
To add a panel to the current view, open up the Panels dialog by choosing from the context menu of the project window.
Now, you can add an empty panel, or duplicate an existing one.
To add an empty panel, simply press the button .
To duplicate an existing panel, click the panel you want to duplicate. Then, click the button . All the templates will be copied to the new panel.
To remove a panel from the current view, open up the Panels dialog by choosing from the context menu of the project window. Then, select the panel to remove and press the button.
To rename a panel, open up the Panels dialog by choosing from the context menu of the project window. Then, click the line with the panel name. Next, click it again to enter the in-place edit mode which lets you change the name. Last, confirm the name with the key Enter.
To change the order of the panel tabs within the current view, open up the Panels dialog by choosing from the context menu of the project window. Then, click the panel you want to move in the panel tabs left or right. Next, push the button or to move the panel tab left or right, respectively.
To add a view to the project, bring up the Views dialog by choosing from the context menu of the project window.
Now, as with the panels, you have two options:
To add an empty view , simply press the button .
To duplicate an existing view, click the view you want to duplicate. Then, click the button . All the panels and their content will be copied to the new view.
To work with the panels of another view, select the view in the dropdown Views at the bottom right hand corner of the project window.
To remove a view from the current project, open up the Views dialog by choosing from the context menu of the project window. Then click the line with the view you want to remove and press the button.
To change a resolution of a view, first open up the Views dialog by choosing from the context menu of the project window. Next, click the line with the view you want to remove and press the button. In the dialog appearing next, specify the new values for the all the panels of the view.
With the checkbox Keep aspect ratio on, specify one of the coordinates - the other will be computed to maintain the same portion of the horizontal and vertical size as the current size.
When done, confirm the changes by clicking the button or . All the panels of the view will change its size, removing each the template that is positioned beyond the new dimensions.
To rename a view, open up the Views dialog by choosing from the context menu of the project window. Click the view name you want to change and click it again to enter the in-place editing mode that lets you edit the view name. When done, pres the key Enter.
To change the order of views as appeared in every list in Lintouch, open up the Views dialog by choosing from the context menu of the project window. Then, select the view you want to raise or lower within the list of views. Then, press the button or to move the selected view up or down, respectively.
If you are coming from the industry world of PLCs and such, you may have been wondering how tagnames fit into Lintouch. It is easy as
tag is variable in Lintouch
tagname is the name of the variable
tagname list is roughly represented by a connection and its import and export facilities.
In addition to ordinary tags, variables in Lintouch may have properties associated with them. This allows for an easy configuration of the connection parameters and leaves the interpreting tag name lists in the realm of crossword puzzles. Anyhow, you are not lost even with tag name lists with Lintouch.
There are lots of formats used for tagname lists. Lintouch uses the simple and proven, good old comma separated, or CSV format. You will have to prepare the file aforehand in a spreadsheet such as Excel, Gnumeric, or even a plain text editor. The preparation is very easy however. Here is an example of the CSV that will import into Lintouch:
Connection,Type,latency
ChemicalSet,Loopback,0
Variable,Type
Catalysator,BIT
Acid,BIT
Variable,Type
Temperature,NUMBER
Here, Catalysator, Acid, and Temperature are tag names. You will very likely add like thousand such lines for the real world application. BIT, and NUMBER denote the type of the input/output.
The last thing you can see is the header. The very first line always begins with Connection,Type and is followed by the names of the connection parameters. Sor for ModbusTCP Master, for example, this will be
Connection,Type,host,port,refresh
The second line contains the name of the connection, type of the connection (the plugin name), and the values of the respective parameters on the first line.
And that is all there is to it. If you still fear the formats, just create a connection with a few tags within Lintouch Editor, export it, edit in a spreadsheet, and import it back.
To import a tagname list into Lintouch, open the Connections dialog by choosing from context menu of the project window. Or, just click the button in the Variables dialog if the dialog is up.
Then, press the button and browse for the CVS file. The format of the file is described in the previous section. Do not worry, you can always export an example, or a stub connection, and then edit it in your favorite spreadsheet in order to satisfy the lintouch editor import parser.
To export a tag name list, or the variable name list of a connection, first open the Connections dialog by choosing from context menu of the project window.
Next, select the connection that you want to export. Then, press the button . Pick the name of the file for the export and confirm the selection.
There might be times when you want to update an existing connection by incorporating changes from the last import of a tag name list. Bring up the Connections dialog by choosing from context menu of the project window.
Select the connection you want to update and press the .
This situation implies you have your templates ready and want to seem them respond to the events that come from the outer devices. Then you need to
Bind the templates, or better, their IOPins to the variables. Prior to that, as you can see, you will have to create those variables.
Create the variables. As you can see, again, you are to have a connection that is to contain those variables.
Create the connection. This is actually the place where you would have started if you had known the facts. Do not worry though, Lintouch will lead you through the whole process so you do not have to memorize the succession of the steps.
If you are starting from this point, you may be just looking at the empty project with the idea of the device to connect to. This is okay too, as it is easy to enter into Lintouch what is already on your mind:
Create a connection. That is, specify the properties of the device to connect to: the way you connect (the connection type) and the properties of that connection.
Next, add variables to the connection. Those are actually the data entities, quantities, or measured features of the device. A variable corresponds to the single flow of data from Lintouch to the device and/or the other way around. The meaning of the variable data is up to you to interpret: were it for voltage, temperature, pressure, simple check, or the handle position, button, or lever.
Then, you need to get these variables displayed. This act is also known as binding the variables to the IOPins of templates. So, now create some templates that can display or alter the variables.
Finally, bind the IOPins, or input and outputs, of the templates to the variables you have created.
To bind the template's inputs and/or outputs (IOPins) to variables, double-click on the template. The template properties dialog appears. Alternatively, you may choose from the context menu of the project window.
Find the IOPin group containing the IOPin to bind in the left part of the dialog and click it. Now find your IOPin among the IOPins and select the connection and the variable to bind to.
The instant you bind the IOPin, you can try out how the template responds to the changing variable in the Preview mode.
To turn the preview mode on, click on the button on the toolbar of the main window. To turn in off, click on another button in the toolbar or select a template to add to a panel.
In the Preview dialog, click on the Used Variables tab and find the variable that you want to test. You can see how the template responds to or affects the connected variables. Note the dialog contains only the variables that have been bound.
There is no testing the project like running it for real. By invoking the online mode, you create the instance of Lintouch Server and Lintouch Runtime that operate on the current project.
Of course, the environment is the same so you have to have the real devices connected and up for the online mode to work. If you cannot fulfill this requirement, you can always test the project in the Preview mode.
To go to the online mode, click on the toolbar button in the main window.
To create a connection, bring up the Connections dialog by choosing from context menu of the project window. Or, just click the button in the Variables dialog if the dialog is up.
Press the button to bring up the Connection Properties dialog.
Now, specify the type of the connection. Note that you will not be able to change the type of the connection after you close the dialog.
Fill in the properties of the connection and press . You can modify these connection properties later if you wish.
To rename a connection, open up the Connections dialog box by choosing from the context menu of the project window. Click the connection name you want to change and click it again to enter the in-place editing mode that lets you edit the connection. Press Enter when done. You can also enter the in-place editing mode by pressing the key F2.
Most connections have properties associated with them. You can edit the properties when creating the connection or you can change them later: first, bring up the Connections dialog box by choosing from the context menu of the project window. Double-click on the desired connection or select it and press the button . This will open the Connection Properties dialog box.
When done, press the button . Note the connection type has been disabled and you cannot change it. To change the type of the connection, you have to delete it and create it again.
To remove a connection from the project, open up the Connections dialog box by choosing from the context menu of the project window. Then, select the connection to remove and press the button. When you remove the connection from the project, all the corresponding variables and bindings will be removed too of course.
To create a variable, bring up the Variables dialog by choosing from context menu of the project window.
From the dropdown list, select the connection for which you want to create the variable. If no connections are defined, or you want to create a variable for yet an inexisting connection, press the button to open the Connections dialog and define the connection there.
Then, Push the button to bring up the Variable Properties dialog.
Select the type of the variable from the dropdown list. Note you will not be able to change the type of the variable after you exit this dialog. Fill in the properties of the variable and press . Unlike the type, you will be able to modify these variable properties later.
To rename a variable, open up the Variables dialog box by choosing from the context menu of the project window.
Select the connection that contains the variable from the dropdown list. Then, click the variable to select it and then click it again to enter the in-place editing mode that lets you modify the variable name. When done, pres Enter. You can also press the key F2 to enter the in-place editing mode.
To change the properties of a variable, bring up the Variables dialog by choosing from context menu of the project window.
Find the connection with the variable in the Connection dropdown box. Then, select the variable and press the button to open the Variable Properties dialog.
Edit the variable properties and confirm with the button . Note that you cannot change the type of the variable. You can do this only when creating a variable. To change the type of the variable, you have to delete it and create it again.
To remove a variable from a connection, choose from the context menu of the project window. Then, find the connection in the Connection dropdown list. Now select the variable and press the button. Of course, all the corresponding bindings will be removed after you remove the variable.
The Panel that is displayed automatically when its View is selected.
An effort to build an open-source real-time visual control center application suite which can be used to monitor/control various systems in the real time. More information can be found at the http://lintouch.org website.
Set of XML configuration files packed together into a .zip archive that define how your monitored system should be accessed and how its various states should be visualized.
Every Project usually defines one or more connections to your monitored system and one or more views which define the look and feel of your visual control center. This look and feel uses templates loaded from the specified template libraries for the interaction with the user.
See Also Server Connection, View, Template Library.
An application that serves as a visual control center for your monitored system. It can connect to a specific Lintouch Server, download the Project from it and interact (via the Lintouch Server) with your monitored system.
How the state of your system is visualized is defined by a Project - which is downloaded from the Server.
See Also Lintouch Project, Lintouch Server.
An application that serves as a monitoring/controlling proxy between your monitored system and instances of Lintouch Runtime that allow you to control your system. It reads values of the monitored variables and changes them according to user requirements performed through instances of Lintouch Runtime.
How to forward the requests is defined by a Lintouch Project that the server is running. A Lintouch Server can only run one Lintouch Project at a time and can serve it to several Lintouch Runtimes simultaneously.
See Also Lintouch Project, Lintouch Runtime.
The system that you monitor and control. It can be a part of the production line in a factory, key machines in your company's network, etc.
Monitoring and controlling a system is carried out by reading/writing the values of the monitored variables.
See Also Monitored Variable, Server Connection.
Elementary piece of data that you want to monitor/control within your system. Could be for example a position of an elevator, temperature in a server room, speed of a motor or anything else.
A variable can be of type BIT (true/false), NUMBER (4 bytes signed integer) or STRING (utf-8 encoded message of virtually unlimited length).
Variables define the state of your monitored system.
How exactly the value of a specific variable is read/written is defined by the Server Plugin handling the connection that contains this variable.
See Also Monitored System, Server Plugin, Server Connection.
A rectangular area displayed by the Lintouch Runtime that contains templates which represent parts of your monitored system.
Only one panel can be visible on-screen at a time.
Every panel can contain hyperlinks to other panels in the same view. For example, you may want to create a panel that displays the overall state of your monitored system and that contains links to the other panels that focus on specific parts of the system.
See Also Home Panel, View.
A piece of code that defines how the data (monitored variables) from a monitored system should be obtained and how they could be altered.
One can think of a Server Plugin that connects to the system being monitored by SNMP (Simple Network Management Protocol), Modbus/TCP protocol, etc.
A Plugin can run in more instances on the server; each instance represents one connection to the monitored system.
See Also Monitored Variable.
A process that monitors (reads from and/or writes to) a set of logically coherent monitored variables.
The reading/writing variables' values is defined by the respective Server Plugin.
See Also Server Plugin.
A visualization, monitoring and controlling primitive. It represents a piece of your monitored system (such as Elevator, Computer, Conveyor, etc.). It can display the status of the piece it represents and might control it. A Template paints itself in a rectangular area on a Panel and can react to the mouse events occurring in the area.
Templates interact with the Lintouch Server through a set of iopins (Input/Output Pins) which carry the values of the monitored variables.
The visual appearance and the logical behavior of a Template can be altered by changing the values of the properties defined by the Template.
Templates are wrapped in and distributed with template libraries.
See Also Template IOPin, Template Property, Template Library.
A Pin (akin to an electrical chip) that carries in and out the value of a monitored variable. Templates use their iopins for the communication with the monitored system.
Each iopin of a template can be connected to one monitored variable.
Every monitored variable can be connected to zero, one or more iopins of zero, one or more templates.
The connection between templates' iopins and monitored variables is defined by a Project running at the Server.
See Also Template, Lintouch Project, Monitored Variable.
A collection of logically coherent templates. Examples: a template library of network monitoring templates (Host, Router, Server, Service, etc.), a template library of transportation systems (Elevator, Conveyor, etc.).
See Also Template.
A typed variable whose value is set by a Project. The value can control how the template should be painted, how it should react to mouse clicks, etc.
The author of a template decides what properties to create and which to make available to the user for customization.
Template properties can define which font should be used to draw text, what should be the color of the text, what should happen when the user clicks with the mouse on the template, etc.
See Also Template.
A collection of panels that usually represents a consistent view of the monitored system.
A Project can define several views. For example, one has been created for devices with small screen resolutions, another one for overall monitoring of the system, and yet another one for very experienced operators.
When a specific view is selected (opened) its home panel will be displayed automatically.
See Also Panel, Home Panel, Monitored System.