Lintouch Editor User's Guide

covering Lintouch Editor version 1.6.x

Lintouch Team


Table of Contents

Introduction
Lintouch
What is Lintouch?
Lintouch Architecture
Lintouch Project
Project
View
Panel
Template
Connections and Plugins
Variables
Template Bindings and IOPins
Windows within Lintouch Editor
Context aware tool windows
Paramount Tasks
Quitting the editor
Starting the editor
Working with Projects
Creating a new project
Opening an existing project
Saving a project
Closing a project
Modifying project properties
When something goes wrong
You did something you did not want
You did something you wanted but the editor responded otherwise
Drawing graphics, or templates
Adding templates
Removing templates
Moving templates
Resizing templates
Changing the common properties of templates (position, size, etc.) collectively
Changing color, text, fill, and other properties of templates
Selecting templates
Moving and copying multiple templates
Advanced template positioning
Overlaying issues
Visual enhancements for editing
Grid
Zooming
Scrolling in panel
Templates, the Lintouch Part
Template shortcuts
Tab order of templates, focusing templates
Template names
More on template libraries
External resources of template
The Preview mode
Panels and views
Adding a panel to a view
Removing a panel from a view
Renaming a panel
Changing the panel order
Adding a view to the project
Switching to another view
Removing a view from the project
Change the resolution of a view
Renaming a view
Changing the order of views
Connectivity
Tags, tagnames, and tagname lists
Using tagname lists with Lintouch
Connecting Lintouch to the real world
Connecting the real world to Lintouch
Binding the template inputs and outputs
Testing the binding
Online mode for testing the project
Creating a connection
Renaming a connection
Modifying the connection properties
Removing a connection
Creating a variable
Renaming a variable
Modifying the variable properties
Removing a variable
Glossary

Introduction

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.

Figure 1. Lintouch Editor

Lintouch Editor

Lintouch

What is Lintouch?

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 Architecture

Figure 2. Lintouch Architecture

Lintouch Architecture

Lintouch consists of two principal parts (see Figure 2, “Lintouch Architecture” for details):

Lintouch Server

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.

Lintouch Runtime

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.

Lintouch Project

Project

On the global scale, you work with Lintouch Projects in the editor. A project is represented by a project window.

Figure 3. Lintouch Editor Project Window

Lintouch Editor 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).

View

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.

Figure 4. Changing the current view

Changing the current view

Initially, an empty project contains one view.

Panel

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.

Figure 5. Changing the current panel

Changing the current panel

Initially, an empty view contains one panel.

Template

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.

Figure 6. Template Palette

Template 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.

Connections and Plugins

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.

Figure 7. Connections and plugins

Connections and plugins

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:

Figure 8. Connections properties (filled in properties of ModBusTCP plugin)

Connections properties (filled in properties of ModBusTCP plugin)

Variables

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.

Figure 9. Variable

Variable

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.

Figure 10. Variable properties (filled in properties of ModBusTCP plugin?)

Variable properties (filled in properties of ModBusTCP plugin?)

Template Bindings and IOPins

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.

Figure 11. Receiving data by IOPins

Receiving data by IOPins

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.

Figure 12. Sending data by IOPins

Sending data by IOPins

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.

Windows within Lintouch Editor

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

Context aware tool windows

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.

Figure 13. Editing properties of a template

Editing properties of a template

Figure 14. The selection has changed

The selection has changed

Paramount Tasks

Quitting the editor

Choose Quit from the File menu to quit the lintouch editor. You will be asked to confirm the exit when there are unsaved projects.

Starting the editor

In addition to starting the lintouch editor by clicking the corresponding icon or from the command line, you can tell the editor to open project(s) after starting up. Pass the file name(s) of the project(s) as the parameters to the editor.

Working with Projects

Creating a new project

  • To create a new project, choose New from the File menu of the main window.

  • Alternatively, you can choose New from the File 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 Editor Preferences... of the File.

Opening an existing project

  • To open an existing project, choose Open... from the File menu of the main window.

  • Alternatively, you can choose Open... from the File 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 Open Recent menu of the File 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.

Saving a project

  • To save the current project, choose Save from the File 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 Save As... from the File context menu of the project window.

The modified flag

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.

Figure 15. Project Window Status bar

Project Window Status bar

The time-stamp checking

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.

Closing a project

You stop working with a project by closing the project window or by choosing Close from the File 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.

Modifying project properties

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.

Figure 16. Changind the project properties

Changind the project properties

Specifying the default project properties

You can specify project properties that every new project will have when it is created. Choose Editor Preferences... from the File menu of the main window. Go to Project Defaults tab.

Changing the project properties

Choose Project Properties from the Dialogs context menu of the project window to edit the project properties.

When something goes wrong

You did something you did not want

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 Undo from the Edit 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 Redo from the Edit context menu of the project window.

To revert all the changes that have been made since the last save or since editing started, choose Revert to Saved from the File context menu.

You did something you wanted but the editor responded otherwise

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 Logger from the File menu of the main window.

Figure 17. Analyzing a file open error

Analyzing a file open error

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: Debug, Info, Warning, Error, and Fatal Error. The right button of a button means only more severe messages remains in the logger.

Drawing graphics, or templates

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 Open... or New from the File of the main window.

Adding templates

To place a template on a panel:

  1. Choose the template library from the dropdown list of the available template libraries in the main window. More on the libraries futher on.

    Figure 18. Select a template library

    Select a template library

    Below the selection you will see the buttons representing all the templates from the library - the palette.

  2. Select a template by clicking on its button. The button will depress and stay so to indicate this template is selected.

    Figure 19. Select a template from the palette

    Select a template from the palette

  3. 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:

      1. press the button on the panel in the position of the upper left corner and,

      2. keep the button pushed and move the mouse to the position of the bottom right corner.

    Figure 20. Template added to panel

    Template added to panel

And that is all there is to it. You have added a template to a panel.

Removing templates

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.

Moving templates

You can freely drag a template across a panel to change its position within the panel.

  1. Press down the mouse button when the cursor is above the template.

  2. Hold down the mouse button and move the mouse to drag the template to the desired position.

  3. 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.

Resizing templates

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.

Figure 21. Resizing templates

Resizing templates

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.

Changing the common properties of templates (position, size, etc.) collectively

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.

Figure 22. General Template Properties

General Template Properties

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.

Changing color, text, fill, and other properties of templates

To change properties of a template, double click on it. The Template Properties dialog will appear.

Figure 23. Changing Template Properties

Changing Template Properties

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.

Figure 24. Keep the Template Properties dialog open and select another template

Keep the Template Properties dialog open and select another template

Selecting templates

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.

Figure 25. Template selection

Template selection

Removing 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 Unselect All from the Edit context menu of the project window.

Initiating a selection

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.

Replacing a selection

See Initiating a selection.

Extending a selection

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.

Shrinking a selection

To remove a template from the selection, hold down the Shift key and click on the template.

Moving and copying multiple templates

All the operations in this section of the manual work on selections. To learn how to work with selections, review the previous section.

Copying templates

To create a copy of templates within a panel, select the templates and choose Duplicate from the Edit context menu of the project window.

To copy templates from the current panel to another, or within the same panel:

  1. Select the templates on the panel.

  2. Copy the selection to the clipboard by Copy from the Edit context menu of the project window.

  3. Switch to the panel of your choice.

  4. Paste the selection from the clipboard by Paste from the Edit context menu of the project window.

Moving templates

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:

  1. Select the templates on the panel.

  2. Move the selection to the clipboard by Cut from the Edit context menu of the project window.

  3. Switch to the panel of your choice.

  4. Paste the selection from the clipboard by Paste from the Edit context menu of the project window.

Advanced template positioning

Aligning templates to left, right, top, center, etc.

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 Left from the Align menu under the context menu Selection of the project window. All the templates shift leftwards so that their left position is the same as the leftmost template of this group.

Figure 26. Before the alignment

Before the alignment

Figure 27. After the alignment

After the alignment

You can align templates to right, center, top, middle, or bottom by selecting the appropriate from the same menu Align from the Selection context menu of the project window.

Distributing templates evenly

To place the templates so that they equally occupy the space from the beginning of the group to its end, choose Lay Out Horizontally or Lay Out Vertically from the Align menu of the Selection context menu of the project window.

Figure 28. Before the layout

Before the layout

Figure 29. After the layout

After the layout

Placing templates next to each other

To place templates next to each other horizontally or vertically, choose Adjacent or Stacked respectively, from the Selection of the Selection context menu of the project window.

Figure 30. Before stacking up

Before stacking up

Figure 31. After stacking up

After stacking up

Overlaying issues

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.

Bringing templates to front

To bring up a template (or a selection of templates) in front of others, choose One Layer Up from the Selection 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.

Figure 32. Before the Layer-Up command

Before the Layer-Up command

Figure 33. After the Layer-Up command

After the Layer-Up command

To bring the selection of templates to the most front position, choose Bring to Front from the Selection context menu of the project window.

Sending templates to back

To send the selection of templates behind of others, choose One Layer Down from the Selection 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 Send to Back from the Selection context menu of the project window.

Specifying the z-order directly

Double click on the template to open up the Template Properties dialog. Enter the desired z-order in the field Layer. This can help when the template has been lost due to excessive manipulation with the functions above, for example.

Visual enhancements for editing

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.

Grid

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.

Turning the grid on/off

To turn the visibility of the grid off or on, choose Grid Settings... from the View 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 Editor Properties... of the File of the main window. Click on the Project Defaults tab and un/check the corresponding checkbox.

Changing the grid color or its dimensions

To change the color of the grid or its spacings, go to Grid Settings dialog by choosing Grid Settings... from the View context menu of the project window.

You can change this properties of the grid for projects to come. Go to Editor Preferences... of the File and select the Grid tab.

Aligning with the grid, or snapping to grid

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 Grid Settings... from the View 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.

Figure 34. Snap to grid option

Snap to grid option

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 Editor Properties... of the File of the main window. Click on the Project Defaults tab and un/check the corresponding checkbox.

Zooming

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.

Zooming in, or magnifying a the panel

To zoom in, choose Zoom In from the View 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 Zoom in the toolbar of the main window. Then, click onto the part of the panel that you want to enlarge.

Figure 35. Zooming tool

Zooming tool

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.

Figure 36. Zooming factor

Zooming factor

Or you can pick the factor from the Zoom of the View context menu of the project window.

Zooming out, or view from distance

To zoom out, choose Zoom Out from the View context menu of the project window.

You can zoom out by using the mouse too.by using the zoom mode. Click on the Zoom 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.

Zooming just about right

To zoom in or out so that the entire area of the panel is visible and not more, choose Fit to Window from the View context menu of the project window.

Remembering zoom from one session to another

To specify the default zooming factor, go to Editor Properties... of the File of the main window. Then, select Project Defaults tab and specify the value under Zoom level.

Scrolling in panel

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 Pan button on the toolbar of the main window. The cursor changes to reflect the mode.

Figure 37. Panning tool

Panning tool

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.

Templates, the Lintouch Part

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.

Template shortcuts

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.

Assigning a shortcut to a template

To assign a shortcut to a template:

  1. Select it. Although, strictly speaking, you can select it later on too.

  2. Then, bring up the Templates dialog by choosing Templates from the Dialogs context menu of the project window.

  3. Double click the current selected line in the dialog in the Shortcut column.

    Figure 38. Assigning shortcut

    Assigning shortcut

  4. 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.

Removing or changing a shortcut to a template

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.

Trying out template shortcuts

To check if and how the template shortcuts work, switch to the Preview mode in the editor. To turn this mode on, click on the Preview button on the toolbar of the main window.

Figure 39. Preview mode

Preview mode

You will not be able to edit templates in the preview mode.

Tab order of templates, focusing templates

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.

Changing the tab order

To change the tab order of the templates within a panel, choose Templates from the Dialogs 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 Move Up button or Move Down button, respectively.

Testing the tab order of templates

To try out the tab order of the templates within a panel, activate the preview mode as discussed earlier by clicking on the Preview 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.

Template names

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.

Renaming a template

To change a template name:

Double click on the template to bring up the Template Properties dialog.

Figure 40. Changing a template name

Changing a template name

Switch to the tab General if not selected, and edit the field Name.

Renaming several templates

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:

  1. Open up the Templates dialog by choosing Templates from the Dialogs context menu of the project window.

  2. 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.

    Figure 41. Changing a template name

    Changing a template name

    Press Enter when done with the editing.

More on template libraries

A template library is a collection of templates. It is represented as a dynamic loading library (DLL) aka a shared library (SO).

Library locations

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.

Figure 42. Template Libraries

Template Libraries

Loading 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 Template Libraries from the File 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.

External resources of template

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.

Adding a resource to project

To add a file to the project's resources, bring up the Resources dialog by choosing Resources from the Dialogs context menu of the project window. There, press the New button. Browse for the file, select it and press the button Open.

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.

Removing a resource from project

To remove a resource, bring up the Resources dialog by choosing Resources from the Dialogs context menu of the project window. There, press the New button. Next, highlight the the resource name by clicking on it and press the Delete 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.

Renaming a resource

To rename a resource, bring up the Resources dialog by choosing Resources from the Dialogs 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.

Figure 43. Renaming a resource

Renaming a resource

Updating a resource

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 Resources from the Dialogs context menu of the project window. Then, select the resource name by clicking on it. Next, press the Reimport 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.

The Preview mode

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.

Turning the preview mode on and off

To turn the preview mode on, click on the Preview 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.

Figure 44. Preview mode

Preview mode

Clicking the Preview toolbutton again will not turn off the preview mode. Instead, it will show the Preview dialog. More on the dialog later.

Checking how templates respond to input

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 Preview 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 0 or 1 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.

Figure 45. Simulating a real connection

Simulating a real connection

Verifying shortcuts to templates

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.

Verifying the tab order of templates

The preview mode lets you check the tab order of the templates within a panel. Turn on the preview mode, switch to the project window and start experimenting with the Shift+Tab and Tab keys.

Panels and views

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.

Adding a panel to a view

To add a panel to the current view, open up the Panels dialog by choosing Panels from the Dialogs context menu of the project window.

Figure 46. Adding a panel

Adding a panel

Now, you can add an empty panel, or duplicate an existing one.

  • To add an empty panel, simply press the button New.

  • To duplicate an existing panel, click the panel you want to duplicate. Then, click the button Duplicate. All the templates will be copied to the new panel.

Removing a panel from a view

To remove a panel from the current view, open up the Panels dialog by choosing Panels from the Dialogs context menu of the project window. Then, select the panel to remove and press the Delete button.

Renaming a panel

To rename a panel, open up the Panels dialog by choosing Panels from the Dialogs 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.

Changing the panel order

To change the order of the panel tabs within the current view, open up the Panels dialog by choosing Panels from the Dialogs 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 Up or Down to move the panel tab left or right, respectively.

Adding a view to the project

To add a view to the project, bring up the Views dialog by choosing Views from the Dialogs context menu of the project window.

Figure 47. Adding a view

Adding a view

Now, as with the panels, you have two options:

  • To add an empty view , simply press the button New.

  • To duplicate an existing view, click the view you want to duplicate. Then, click the button Duplicate. All the panels and their content will be copied to the new view.

Switching to another 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.

Figure 48. Changing the current view

Changing the current view

Removing a view from the project

To remove a view from the current project, open up the Views dialog by choosing Views from the Dialogs context menu of the project window. Then click the line with the view you want to remove and press the Delete button.

Change the resolution of a view

To change a resolution of a view, first open up the Views dialog by choosing Views from the Dialogs context menu of the project window. Next, click the line with the view you want to remove and press the Resize button. In the dialog appearing next, specify the new values for the all the panels of the view.

Figure 49. Resizing a view

Resizing a 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 Apply or Ok. All the panels of the view will change its size, removing each the template that is positioned beyond the new dimensions.

Renaming a view

To rename a view, open up the Views dialog by choosing Views from the Dialogs 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.

Changing the order of views

To change the order of views as appeared in every list in Lintouch, open up the Views dialog by choosing Views from the Dialogs 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 Up or Down to move the selected view up or down, respectively.

Connectivity

Tags, tagnames, and tagname lists

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.

Using tagname lists with Lintouch

Format of tagname list

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
        
  1. 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.

  2. 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
                
  3. 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.

Importing tagname lists into Lintouch

To import a tagname list into Lintouch, open the Connections dialog by choosing Connections from Dialogs context menu of the project window. Or, just click the button Edit in the Variables dialog if the dialog is up.

Then, press the button Import 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.

Exporting tagname list from Lintouch

To export a tag name list, or the variable name list of a connection, first open the Connections dialog by choosing Connections from Dialogs context menu of the project window.

Next, select the connection that you want to export. Then, press the button Export. Pick the name of the file for the export and confirm the selection.

Updating the tagname list

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 Connections from Dialogs context menu of the project window.

Select the connection you want to update and press the Reimport.

Connecting Lintouch to the real world

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.

Connecting the real world to Lintouch

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.

Binding the template inputs and outputs

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 Properties from the Selection context menu of the project window.

Figure 50. Binding IOPins

Binding IOPins

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.

Testing the binding

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 Preview 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.

Figure 51. Previewing Variables

Previewing Variables

Online mode for testing the project

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 Go Online in the main window.

Figure 52. Online mode

Online mode

Creating a connection

To create a connection, bring up the Connections dialog by choosing Connections from Dialogs context menu of the project window. Or, just click the button Edit in the Variables dialog if the dialog is up.

Figure 53. Creating a connection

Creating a connection

Press the button New to bring up the Connection Properties dialog.

Figure 54. New connection properties

New connection properties

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 Ok. You can modify these connection properties later if you wish.

Renaming a connection

To rename a connection, open up the Connections dialog box by choosing Connections from the Dialogs 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.

Figure 55. Renaming a connection

Renaming a connection

Modifying the connection properties

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 Connections from the Dialogs context menu of the project window. Double-click on the desired connection or select it and press the button Properties. This will open the Connection Properties dialog box.

Figure 56. Connection properties

Connection properties

When done, press the button Ok. 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.

Removing a connection

To remove a connection from the project, open up the Connections dialog box by choosing Connections from the Dialogs context menu of the project window. Then, select the connection to remove and press the Delete button. When you remove the connection from the project, all the corresponding variables and bindings will be removed too of course.

Creating a variable

To create a variable, bring up the Variables dialog by choosing Variables from Dialogs context menu of the project window.

Figure 57. Creating a variable

Creating a variable

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 Edit to open the Connections dialog and define the connection there.

Then, Push the button New to bring up the Variable Properties dialog.

Figure 58. New variable properties

New variable properties

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 Ok. Unlike the type, you will be able to modify these variable properties later.

Renaming a variable

To rename a variable, open up the Variables dialog box by choosing Variables from the Dialogs 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.

Figure 59. Renaming a variable

Renaming a variable

Modifying the variable properties

To change the properties of a variable, bring up the Variables dialog by choosing Variables from Dialogs 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 Properties to open the Variable Properties dialog.

Figure 60. Variable properties

Variable properties

Edit the variable properties and confirm with the button Ok. 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.

Removing a variable

To remove a variable from a connection, choose Connections from the Dialogs context menu of the project window. Then, find the connection in the Connection dropdown list. Now select the variable and press the Delete button. Of course, all the corresponding bindings will be removed after you remove the variable.

Glossary

Home Panel

The Panel that is displayed automatically when its View is selected.

See Also Panel, View.

Lintouch Project

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.

Lintouch Runtime

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.

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.

Monitored System

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.

Monitored Variable

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.

Panel

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.

Server Plugin

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.

Server Connection

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.

Template

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.

Template IOPin

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.

Template Library

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.

Template Property

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.

View

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.