Topcon Manual
Topcon Manual
Table of Contents 2
2. User Interface 27
2.1 Convert Project ............................................................................................................ 36
2.2 Copy & Paste ................................................................................................................ 38
2.3 Drag and Drop ............................................................................................................. 39
2.4 Image Library ............................................................................................................... 42
2.5 Import Variables .......................................................................................................... 50
2.6 ISOBUS Application ..................................................................................................... 53
2.7 Licensing ....................................................................................................................... 57
2.8 Options ......................................................................................................................... 59
2.9 Sample Projects ........................................................................................................... 65
2.10 Start Page ..................................................................................................................... 68
2.11 Symbol Library ............................................................................................................. 68
2.12 Variable View ............................................................................................................... 75
2.12.1 Find Variable Usages ............................................................................................. 77
2.13 Z-Order ......................................................................................................................... 80
3. Variables 82
3.1 Variable Owner Menus ............................................................................................... 89
3.2 Variable Menus ............................................................................................................ 94
3.3 Pre-Defined Variables ................................................................................................ 103
4. CAN 226
4.1 CANFreestyle .............................................................................................................. 228
4.2 CANopen .................................................................................................................... 248
4.3 J1939 ........................................................................................................................... 262
4.3.1 J1939 Basic Settings ............................................................................................ 264
4.3.2 J1939 ECUs and Variables ................................................................................... 269
4.3.3 J1939 PGN Mappings ........................................................................................... 280
4.3.4 J1939 DM1 and DM2 ........................................................................................... 290
4.4 Import DBC File .......................................................................................................... 302
4.5 Visual CAN Mapping .................................................................................................. 312
Toolchain Manual
Table of Contents 3
6. Visibility 359
7. Alarms 367
8. Object Reference 372
8.1 Common Object Properties ...................................................................................... 376
8.2 Events and Actions .................................................................................................... 391
8.3 General Objects ......................................................................................................... 403
8.3.1 Page Object ......................................................................................................... 403
8.3.2 Alarms .................................................................................................................. 403
8.3.3 Virtual Keyboards ................................................................................................ 406
8.3.4 Softkey Frame ...................................................................................................... 408
8.3.5 Softkey ................................................................................................................. 409
8.4 Palette Objects .......................................................................................................... 410
8.4.1 2D Graph .............................................................................................................. 410
8.4.1.1 Graph History Tool .............................................................................................................................. 419
8.4.2 Arched Bargraph .................................................................................................. 421
8.4.3 Button .................................................................................................................. 423
8.4.4 Container ............................................................................................................. 426
8.4.5 Frame ................................................................................................................... 427
8.4.6 Gauges ................................................................................................................. 427
8.4.7 Lamp .................................................................................................................... 433
8.4.8 Linear Bargraph ................................................................................................... 435
8.4.9 List ....................................................................................................................... 437
8.4.10 Meter ................................................................................................................... 440
8.4.11 Multimedia Player ............................................................................................... 443
8.4.12 Numeric Field ....................................................................................................... 454
8.4.13 Picture Graphic .................................................................................................... 455
8.4.14 Power Switch ....................................................................................................... 458
8.4.15 Push Switch .......................................................................................................... 460
8.4.16 Rocker Switch ...................................................................................................... 462
8.4.17 String Field ........................................................................................................... 463
8.4.18 Table .................................................................................................................... 464
8.5 Object Themes ........................................................................................................... 467
8.6 Video Properties ........................................................................................................ 472
9. Simulations 475
9.1 Simulation Settings ................................................................................................... 476
9.1.1 Expert Simulation Settings ................................................................................... 477
Toolchain Manual
Table of Contents 4
Toolchain Manual
Table of Contents 5
Toolchain Manual
Quick Start Tutorial
Quick Start Tutorial 7
This quick start tutorial demonstrates the basic steps to create a display project. Start with
creating a project 7 .
The New Project window opens. Stay on the General category and click the Next button (2)
After you finished the tutorial, you are invited to check out some of the sample projects that
you can access in this dialog.
Toolchain Manual
Quick Start Tutorial 8
Toolchain Manual
Quick Start Tutorial 9
9
Continue with designing page content .
For certain device types the option Use ISOBUS Application can be activated. Read the
chapter ISOBUS Application 53 for more information.
1.2 Designing Page Content
A new project always comes with a page having a default page name. By following the next
steps the page name can be changed.
· Double click on project name (7)
· Double click on "Pages" (7)
· Double click the Home Page in the project tree. (8)
· The Home Page Editor opens. (9)
· In the Properties window change the page name into Gauges Page. (10)
Toolchain Manual
Quick Start Tutorial 10
In this tutorial, the basic page layout is given by a background image. To add a background
image, open the Image Library tab (11), and use the Browse button (12) to add the folder
where the tutorial images were saved. Then select the image Training Background1.png (13)
and drag & drop it onto the gray frame in the virtual device (14). Select the Frame 1 and then
Background Image.
Note that the image now has a suffix _480_272 in the file name . A new instance of the image
in this resolution is automatically created.
Toolchain Manual
Quick Start Tutorial 11
Now change the following properties of the Meter in the Properties window (for the
min/max values use the exact order as listed here):
Make sure that the Meter object is selected in the scene!
· Select the Theme Template "modern_bright"
· X Location: 181
· Y Location: 51
· Width: 118
· Height: 118 (will be set automatically when you set the width)
· Check Transparent
· Max Value: 100
· Absolute Max Value: 100
· Min Value: 0
· Absolute Min Value: 0
· Start Angle: 325
· End Angle: 215
· Uncheck Draw Ticks
Here is what the result looks like:
Toolchain Manual
Quick Start Tutorial 12
To be able to change the value shown by the meter, you need to create a variable and
attach it to the meter:
· Click the Add New Variable button (17) of the Variable View.
· A new variable with name New Variable_1 is created.
· Change the Variable Name of New Variable_1 into kmh (18).
To make it easier to work with variables you have created, there are two possibilities to
reduce the amount of variables shown in the Variable View:
· One option is to check the Hide pre-defined variables check box (19).
· A second option is to enter a search sting (e.g. the variable name kmh) in the
search area (20).
· In both cases, the amount of visible variables is reduced.
Toolchain Manual
Quick Start Tutorial 13
Later we will simulate the project. To be able to easily simulate the correct variable
values, we have to set the minimum and maximum values of the kmh variable:
· Select the kmh variable in the Variable View (24).
· Open the right click context menu of the kmh variable and choose Edit in
Variable Manager (25).
Toolchain Manual
Quick Start Tutorial 14
Toolchain Manual
Quick Start Tutorial 15
Toolchain Manual
Quick Start Tutorial 16
After configuring the CAN port, the CAN protocol and a communication partner, e.g. an
ECU, must be defined:
· Click the Terminal and Owner ECU(s) Configuration... entry in the
Communication menu (33).
Toolchain Manual
Quick Start Tutorial 17
Now it's time to create a CAN mapping for the CAN message and add the kmh variable
to this message:
· Click on the CANFreestyle shortcut button in the toolbar or, alternatively, go to the
menu Communication -> Protocols -> CANFreestyle -> Configure
Mappings... in the Communication menu.
The CANFreestyle Configure Mappings dialog appears. Make the following settings:
· Enter MessageFromMyECU as the message name (41).
· Choose Receive to create a message that is received by the display (42).
· Click the Add button to create the receive message (43).
· Select MessageFromMyECU (44).
· Change the CAN ID Type to 29 Bit (45).
· Enter the message CAN ID 0x4711 (46).
· Switch to Visual CAN Mapping (47).
Toolchain Manual
Quick Start Tutorial 18
· In the search field on the right (47) type the name of the variable, kmh.
· Select the variable (23) and drag & drop it into Bit 1, Byte 1 of the CAN mapping
(49).
· Close the window by clicking OK button.
Now you have created a CAN message with CAN ID 0x4711 (Hex) that transmits 4 Byte
of data. The data is used as value for variable kmh.
Whenever this message is received, the value of kmh variable is updated. Because the
meter references the kmh variable, the meter needle will immediately show the received
Toolchain Manual
Quick Start Tutorial 19
value. It's important to remember that the message length has to be the same for the
display and the ECU. If only parts of the message are needed, use a constant with mask
set to 0 to extend the message.
In a next step a new page is added. Further the navigation between the two pages is
defined.
· To create a new page use the right click context menu and choose New Page (50).
· A new page with name Page 1 is created (51).
· A new editor tab is opened showing the new page Page 1 (52).
9
As you did in the first page :
· In the Properties window of the page change the name into Configuration (53).
· Add the training background 2 image from the Image Library and add it as a
background image for the frame (54).
· The new page now has the selected background picture (55).
Toolchain Manual
Quick Start Tutorial 20
The eight keys at the left and right screen border are called softkeys. You can place icons
close to the softkeys into the Softkey Frame on the screen to describe the function of each
softkey. The function can be triggered by pressing the appropriate key or by pressing the
icon on the screen, if a touch screen is available.
Softkeys will be used for the navigation between the pages.
The Softkey Frames for the row of softkeys at the left and right screen border were
created automatically. But you still need to create a softkey level to configure the keys. We
will start with the Configuration page:
· Open the right click context menu of Softkey Frame Left and choose Create
Softkey Level (56)
· Alternatively you can right-click on the Softkey Frame itself and select Create
Softkey Level (57)
Toolchain Manual
Quick Start Tutorial 21
By switching the state of the Pressed State check box (62) you are able to view both
softkey states in the editor. Make sure that the property is unchecked at the end.
Next step is to define a softkey event. The event should change to the Gauges page when
the user presses (or rather, releases) the Softkey you just configured graphically:
· Select Softkey 1 in the Projects tree (63).
· Open the Events tab by clicking Events in the Properties window (64).
Toolchain Manual
Quick Start Tutorial 22
That's all for the page switch from the Configuration Page to the Gauges page.
We added two images, one for press and one for non-pressed state of the softkey. Further
we defined the jump to page action for the softkey on the OnRelease event.
Toolchain Manual
Quick Start Tutorial 23
For the navigation from the Gauges Page to the Configuration Page please follow the
same steps (56 to 69) to configure one of the softkeys of the Configuration page. The
result should look like this:
The display user shall be able to change the display backlight intensity. Here is what needs
to be done:
· Drag the Linear Bargraph from the Palette (70) to the page editor (71).
Toolchain Manual
Quick Start Tutorial 24
· Check Transparent
· Check Set As Input
· Uncheck Draw Target Line
· Uncheck Draw Ticks
To use the Linear Bargraph to change the display backlight intensity, we need to create a
reference from the Linear Bargraph to the pre-defined variable
@DispBacklightIntensity:
· Uncheck Hide pre-defined variables in the Variable View (72).
· In the Variable View search filed enter: disp (73).
· Drag the variable @DispBacklightIntensity from Variable View (74) and drop it on
the Linear Bargraph (75). Alternatively, you could drop it on the Linear Bargraph
entry in the project tree (77)
· A context menu appears. In the first level, select the Linear Bargraph 1 object. In the
second level, choose Variable Reference (76).
· You can now check in the Properties of the object that the variable is set as the
Variable Reference (78).
When running the project on a real display device, the user can use the encoder to change
the display backlight intensity. The intensity is changed immediately when the user changes
the value of the Linear Bargraph.
24
Continue simulating and downloading the project
1.3 Simulate the Project
478
You can simulate the project on the PC without a device, using our PClient simulation .
To do that, enable the checkboxes for both the PClient and the Variable simulation and then
start by clicking the button (Re)Start.
Toolchain Manual
Quick Start Tutorial 25
Open the Gauges Page in the PClient simulation, then follow these steps in the Variable
Simulation:
· Enter kmh in the search filter (1).
· Select the kmh variable (2).
· Move the slider (3) and you will see how the meter in the PClient simulation will move
(4).
Toolchain Manual
Quick Start Tutorial 26
First you have to make sure that the software on the device is on the same level as the PC
software. If in doubt, perform an update on your device (there is a manual on how to update
your device here).
To download the project to the device, connect a USB stick (FAT 32 formatted) to your
computer. There can be other files on the stick, they will be ignored.
Use the Project Update button in the toolbar, choose the drive letter of the USB stick and click
"Transfer" to download the project to the USB stick.
Once the download has finished, remove the USB stick from the PC and connect it to the
(running) device. The project will automatically be installed and started.
Toolchain Manual
User Interface
User Interface 28
2 User Interface
This chapter describes the main elements of the user interface:
Toolchain Manual
User Interface 29
Menu Description
Cut: Cut the currently selected object(s). Note that paste after
cutting only works if the parent of the cut object changes.
Copy: Copy the currently selected object(s).
Paste -> Paste: Paste the currently selected object(s). The
Edit parent object of the source object has to be selected. Read
more 38 .
Paste -> Paste as Reference: Paste the currently selected
object(s) as references. All properties are identical. The parent
object of the source object has to be selected. Read more 38 .
Paste -> Shallow Paste: Paste the currently selected object(s).
Children objects will be reference copies. The parent object of
the source object has to be selected. Read more 38 .
Paste from History: Only for the JavaScript Editor. Opens a
popup with the last copied texts for pasting.
Paste as Lines: Only for the JavaScript Editor. Pastes multi-
line copied text to one line per multi-cursor.
Delete: Delete the currently selected object(s). There will be a
confirmation dialog.
Tutorial Select All: Only for the JavaScript Editor. Marks all text in the
video about copy & paste currently opened JavaScript file.
https://www.youtube.com/watc Find in Projects...: Only for the JavaScript Editor. Opens a
h?v=2YMmZkwBMwI dialog with which all opened JavaScript files can be searched
for a certain text phrase.
Replace in Projects: Only for the JavaScript Editor. Opens a
dialog with which all opened JavaScript files can be searched
for a certain text phrase to replace it with another one.
Simulation
478
Start PClient Simulation: Starts the PClient Simulation .
480
Update 497
Project Update: Opens the Project Updater Dialog .
PClient / OS Update: Opens the PClient / OS Update
529
Dialog
Toolchain Manual
User Interface 30
Menu Description
Show Indent Guide Lines: Only for the JavaScript Editor.
Enables or disables vertical indent lines in the code view.
Show Only Editor: Maximizes the currently selected editor
window.
Full Screen: Switches to Full Screen view.
Variable Manager...: Opens the Variable Manager.
Variable Group Configuration...: Opens the dialog to
manage and add variable groups.
Terminal and Owner ECU(s) Configuration...: Opens the
dialog to add / remove and configure CAN protocols for the
project.
Port Configuration...: Opens the dialog to configure the bus
speeds of the CAN ports for the project.
Protocols ->
-CANFreestyle->
--Configure Mappings: Opens the Mapping Configuration
237
dialog for CANFreestyle. Read more.
--Transmit Sequences...: Opens the dialog to configure
245
Transmit Sequences. Read more.
Communication --CAN ID Masks...: Opens the dialog to add / remove and
235
configure CAN ID masks. Read more.
-CANopen ->
--Configure Mappings: Opens the Mapping Configuration
248
dialog for CANopen. Read more. 248
--Generate EDS File: Creates an EDS file. Read more.
-J1939 ->
--Configure Mappings: Opens the Mapping Configuration
280
dialog for J1939. Read more.
--DM1/DM2 Settings...: Opens the dialog to configure DM1 /
290
DM2 support. Read more.
Import->
-Import Variables: Opens the dialog to import variables from
another project or from a .CSV file. Read more. 50
-Import DBC File: Opens the dialog to import a DBC file. Read
302
more.
Options ->
-Data type definitions...: Create and manage variable data
types.
-Process Configuration...: Create and manage processes as
variable owners (only for additional C/C++ applications).
Generate Key File: Generate a key file to obtain a license file.
Load License File: Load a license file to unlock the full version.
Default Password: Opens the dialog to set a default password
Tools that will be used to unlock projects.
Reinstall Components: Opens the dialog to reinstall different
external components of the tool.
-Camera ->
Toolchain Manual
User Interface 31
Menu Description
Toolbar (2)
Icon Description
Create a new project.
Open a project.
Save selected project.
Save all open projects.
497
Opens the Project Updater Dialog. Read more.
Toolchain Manual
User Interface 32
Icon Description
529
Opens the PClient / OS Update Dialog. Read more.
Enable/disable automatic save operation. Configuration of the
save interval. The interval can only be changed when backup is
turned off.
228
Shortcuts to mapping dialogs for CANfreestyle ,
248 262
CANopen & J1939 .
Opens the variable manager.
348
Change the language shown in editors.
348
Change the unit shown in editor.
476
Starting PClient and/or variable simulation .
Change the theme used for newly created objects
Toolchain Manual
User Interface 33
Green - This object has been created since the last save
Blue - This object has been modified since the last save (or a child object has been added)
Orange - There is a problem with the properties for object. Select the object and then the
colored property or event to see a description of the problem.
Toolchain Manual
User Interface 34
The colors will be passed to the parent objects up to the project name. Note that with a new
object, only the object itself will be marked green. All parents will be marked blue, since for
the parents the new object is a change, but they themselves are not new.
In case there is both a problem and an object modification, the problem will be shown in the
project tree with higher priority.
Objects can be renamed in the project tree by selecting them and pressing F2, or clicking
on them again after selecting them.
Toolchain Manual
User Interface 35
Menu Description
Move the selected object one step
closer to the background (changes z-
order).
Move the selected object one step
closer to the foreground (changes z-
order).
When resizing an object, child
objects are not resized.
When resizing an object, children are
resized too.
Switch "Snap to grid" on / off
Shows/hides a horizontal and a
vertical ruler.
Allows configuration of the grid width.
Furthermore snap to grid can be
enabled and disabled.
Shows a list of the last undo steps.
Disabled for this version.
Shows a list of the possible redo
steps. Disabled for this version.
Palette (7)
373
The palette contains all the graphical objects that can be dragged & dropped into the
editor.
Output (9)
The output window provides information and warnings that occur while using the tool. They
might help finding the root cause if you run into trouble.
Toolchain Manual
User Interface 36
Step 1
Toolchain Manual
User Interface 37
First, you can set the name of the converted project (1).
Next, you can choose the new device type that you want to convert to (2).
Below that, you have three options to scale the page contents (3):
· without scale (keep the object sizes as they are) -> only available for some device types,
since content for a larger device can't be displayed on a smaller device without scaling
them
· use target aspect ratio (scale objects to the full screen, independent of the existing
aspect ratio -> This will make content full screen, but it might look less good because the
aspect ratio changes
· keep aspect ratio (scale objects to the full screen, but keeping the existing aspect ratio ->
This will make content full screen, but with a bar on the bottom or side. The aspect ratio
will be kept.
You can see an example preview of how the page content will be scaled in the Device
preview (6).
Next, there is the option for the auto scaling of texts. This is not available if "without scale"
has been selected above. A preview of how test will be scaled can be seen in the lower
right (9).
Below that are options for the handling of the soft keys (5):
· auto set soft key (soft keys will be spread to the new layout automatically) -> Please note
that when converting from a device with more soft keys to a device with less soft keys,
several soft key levels will be created
Toolchain Manual
User Interface 38
· set shift button (if several soft key levels are created, shift up and shift down buttons will
be added to be able to shift between the soft key levels)
· apply options to all pages (the Next button (7) will change to Convert, and the project can
be converted with one click, skipping Step 2.
Pressing Cancel (8) cancels the conversion process and all settings are lost.
Step 3 - Finish
In the final step, you can choose if you want to overwrite the existing project or create a new
one. Pressing Cancel at this stage brings up the previous conversion step, keeping all
settings.
Please note: The conversion does currently not work for ISOBUS projects.
2.2 Copy & Paste
There are three types of copy & paste in the Projektor: Normal, reference and shallow.
Normal Paste
Objects can be copied and pasted by either right-clicking on the selected object(s) and
selecting "Copy" and then right-click in the target parent object and select "Paste", or by
pressing CTRL+C with the object(s) selected and pressing CTRL+V with the target parent
object selected.
Toolchain Manual
User Interface 39
Please note: Pressing CTRL+C and then directly CTRL+V will not do anything. For a
successful paste the parent object where the pasted object shall go into has to be selected,
e.g. you select a button, press CTRL+C, then you select the frame that the button is in and
then press CTRL+V.
Reference Paste
Instead of a normal paste there is also a reference paste. The difference is that with the
normal paste, a new object will be created, with a new ID, its own set of properties and
events etc. With reference paste, a carbon copy of the source object is created. The new
object has the same ID as the source object and is identical in any way. Any change to one
of the objects will reflect in the other, as well, with the exception of the position of the object
in the parent object.
This type of paste is to be used if you want the same content on several pages, e.g. a clock
somewhere in a corner.
Shallow Paste
The last type of paste is called shallow paste. It only makes sense for objects that have
child objects. The copied parent object will be a normal copy, whereas the child objects will
be reference copies. This type of paste is useful e.g. for list objects with a set of images,
like a set of warning / error icons. The list object will be a normal copy, so the copied one
can show a different image than the source, but the images in the list should be identical for
both lists.
If shallow paste is used with an object without children, the result will be a normal copy of
the object.
A new object will be created if it can be created as a child object at that place. Otherwise a
"forbidden" symbol will be displayed.
68
Symbols from the Symbol Library can be dropped
Toolchain Manual
User Interface 40
42
Images from the Image Library can be dropped
For variables, symbols, images and scripts, there is a two-level context menu when they are
dropped somewhere. Because of the tree-like structure of the objects, it is not always obvious
where the dragged element should be placed, e.g. with a List object containing a String Field.
A symbol could be placed into the String Field or into the List object.
In the first level the user can select in which object the symbol should be used. In the second
level the user can specify in which way the symbol should be added to the object.
The same goes for JavaScripts. The first level of the context menu shows the object selection
with the child object and, if applicable, the parent object, the second level will show the
available events for the selected object.
Toolchain Manual
User Interface 41
Similarly, when a variable is dropped from the Variable View, the first level of the context
menu shows the object selection with the child object and, if applicable, the parent object, the
second level will show the available Variable Reference options for the selected object.
Toolchain Manual
User Interface 42
Please note that the context menu only covers the the child object and the first parent, i.e. the
parent of the list object itself is not included anymore.
Objects that don't have the possibility to add the dropped element, will not be displayed in the
first level of the context menu.
2.4 Image Library
The image library can be used to quickly access images from folders, skipping the step to
455
manually load images one by one with Picture Graphic objects.
The image library can be accessed in the toolbar on the right side (in the default view).
Toolchain Manual
User Interface 43
Toolchain Manual
User Interface 44
In the image above a folder named Training pictures was loaded. Several image folders can
be loaded, they will be shown in tabs (1). Please note that when adding many ordners with
many images (especially high-res), showing the image library for the first time will take a while
to cache the preview images.
Each image will be shown in a small squared symbol.
The opened image folders can be searched (2). The search will filter live, searching for the
entered term in the file name of all images in all opened image folder tabs.
Found images will be shown in an automatically created Search tab.
Toolchain Manual
User Interface 45
Note that the Search tab can't be closed directly. To close the Search tab, remove the search
word from the Search field
A new folder can be added with the Browse button (3). Browse to a folder that contains
images and confirm by clicking Open.
Note that folders aren't added recursively, i.e. only images directly in the selected folder will
be added.
If the images in the currently selected folders have changed or new ones have been added,
press the Refresh button (4) to refresh the preview.
To quickly add the original images folder of the currently selected project, click the Add
Project Folder button (5).
Note that all opened folders will be visible no matter which project is selected in the program.
With the zoom slider (6) the size of the preview images can be modified. Dragging it to the left
means more, but smaller preview images, dragging it to the right means fewer, but larger
preview images.
Toolchain Manual
User Interface 46
Toolchain Manual
User Interface 47
Toolchain Manual
User Interface 48
Uncheck the Show Resolution checkbox (7) to remove the resolution bar under the preview
images.
The complete folder path will be shown as a tool tip when hovering on the folder tab.
Hovering over the images will show the file name of the image.
Folder tabs can be closed by pressing the X icon next to the folder name in the tab, except for
Favourites and Search tab.
Alternatively, with a right-click on one of the tabs, a context menu with the following options
opens
Toolchain Manual
User Interface 49
Close All Other Categories - closes all tabs but the one that was right-clicked on
Note that the Favourites and Search Tabs cannot be closed that way. The Search tab closes
when the search field is emptied, the Favourites tab is removed when no images are selected
as favourites.
Images can be dragged and dropped on objects in the Page Editor or in the project tree. See
Drag and Drop 39 for details.
The preview image symbols provide a context menu which can be accessed with a right-click.
Open With Default Application (1) will open the current image with the application that is
set as default in the PC operating system.
Open Containing Folder (2) will open the OS file manager with the current image folder.
Add to Favourites (3) will create a new tab called Favourites, where images can be
collected that are used often.
Note that the images are not copied, there is no actual Favourites folder on the file system,
the images are linked and only exist in their respective image folders.
To remove an image from the Favourites tab, right-click and select Remove from
Favourites (4). This entry is only available in the Favourites tab.
The images in the Favourites tab and the opened folder tabs will still be available after closing
and re-opening the program.
437
It is possible to select several images at once, to create a list with them. To do this, press
the CTRL key and click on the images you want to put in the list.
The images will be marked with a yellow overlay. They also get a number which represents
the order in which they will be put into the list.
Toolchain Manual
User Interface 50
This order can be changed by scrolling the mouse wheel while hovering over one of the
selected images.
This multi selection can also be used to select several images as favourites or to quickly
empty (and thus close) the favourites tab.
Toolchain Manual
User Interface 51
In the first dialog, a file can be chosen to import variables from. This can be
- a project.xml file from another project (located in the sub-folder \terminal_files of the
project folder)
- a .CSV file containing variable information
Project.xml import
When variables are imported from a project.xml file, the Imported Variables step will be
next.
CSV import
Toolchain Manual
User Interface 52
Press the button Next... to continue. Press Cancel to stop the process.
Imported Variables
In this dialog it can be specified which variables from the source should be imported.
In the Tree view you can select the variables or variable groups for import.
In the Table view tab you can see an overview of the variables with the most important
properties.
In the Filter variable section you can search for variable names live.
With the "ECU(s)..." button you can open the dialog to add ECUs / owners to the project.
Additionally you can modify the owner that the variables are assigned to.
Toolchain Manual
User Interface 53
If there are conflicts with existing variables in the project, those conflicts will be shown in a
dialog and the import process will be stopped. Solve the conflicts and restart the import
process.
To create an ISOBUS application, choose the according Panel type and activate the check
box Use ISOBUS Application.
Toolchain Manual
User Interface 54
Please note that only Landscape versions can be used as ISOBUS applications. Portrait
projects cannot run as an ISOBUS application.
For the OPUS A6 G2, the only change in comparison to the normal work flow is that an
443
ISOBUS application does not support the Multimedia Player object.
For the OPUS A8, the page layout looks a bit different.
The large portion of the screen will be the normal page, as it will be integrated as a main
screen in the OPUS ISOBUS solution.
The MiniView Window will be used as the small version of the page.
By default, the MiniView will be scaled automatically from the big page.
Toolchain Manual
User Interface 55
It is also possible to create a custom MiniView page. This is done by right-clicking the
Miniview Pages entry in the project tree and clicking New Miniview Page.
Toolchain Manual
User Interface 56
The mini page can be designed in any way like a big page.
Every normal page in the project has a Property Miniview Page ID.
Then the MiniView Page will be shown in the normal page view.
Toolchain Manual
User Interface 57
The ISOBUS functionality can be enabled and disabled in the project properties.
2.7 Licensing
Projects that exceed these limitations can be opened and modified, but they cannot be
downloaded to the device / USB stick.
68
The license can also unlock all >2400 ISO symbols to be used in the program and the DBC
302
file import feature .
Toolchain Manual
User Interface 58
In the dialog, choose a filename (1) and select where the key file should be stored (2) by
pressing the Browse button (3) and choosing a path.
Confirm and close the dialog to create a key file with OK (4). Cancel (5) cancels the process
and closes the dialog.
To get a license file, first the license needs to be purchased from your vendor. Then you can
send the key file to your vendor and they will send you back a license file.
After the license file was received, open the menu Tools -> Load License File
Toolchain Manual
User Interface 59
In the dialog, browse to the location of the license file, select it and confirm by clicking Select
License File.
A confirmation dialog is shown. The dialog will also inform if the ISO symbols or the DBC
import functionality were unlocked.
Close it by clicking OK. Now the program is fully licensed.The title of the program in the title
bar should have changed from Demo to Licensed.
2.8 Options
This chapter describes the available options that can be reached via the menu Tools ->
Options.
General
In the General tab the Web Browser used to open this HTML help can be selected.
594
Additionally, proxy settings can be made for the online update connection..
Editor
Toolchain Manual
User Interface 60
In the Editor tab the behavior of the JavaScript editor can be modified in great detail.
Please refer to a Netbeans documentation for details.
Toolchain Manual
User Interface 61
In the Fonts & Colors tab the appearance of the JavaScript editor can be modified in detail.
Please refer to a Netbeans documentation for details.
Scene
Toolchain Manual
User Interface 62
In the Scene tab the option to highlight components in the page editor when the mouse
hovers over them can be activated. Also, for ISOBUS projects, the Miniview Preview can
be enabled or disabled. 467
For a description of the Object Themes please refer to the Object Themes chapter.
Appearance
Toolchain Manual
User Interface 63
In the Appearance tab one of the available skins can be selected. The skins will be shown
with a preview image.
Note that the tool has to be restarted for the new skin to be activated.
Java Runtime
Toolchain Manual
User Interface 64
In the Java Runtime tab the Java Runtime that will be used by the tool can be selected. This
is relevant especially if a new Java version is installed on the PC.
The tool should always be run with the most recent Java version.
Note that you need a 64 bit Java version if you are running a 64 bit Windows.
Projects
Toolchain Manual
User Interface 65
In the Projects tab the list of recent projects in the Welcome Page can be cleared.
Users can also create their own sample projects as a starting point for new project.
To create a sample project, select a project in the project tree and click the menu File ->
Create Sample
Toolchain Manual
User Interface 66
In the dialog, choose one of the sample project slots, give a name and, optionally, a
description, and click Create.
Toolchain Manual
User Interface 67
If a custom sample project slot is already used, the dialog will warn that the old sample project
will be overwritten.
Now, a Custom folder is displayed in the new project dialog that contains the custom sample
projects.
Please note: Depending on the exact version of the program, it is possible that a backup of
the project is made when a sample project is created. This backup is created because of
technical reasons. It can be deleted.
Toolchain Manual
User Interface 68
Toolchain Manual
User Interface 69
Toolchain Manual
User Interface 70
General
You can access the symbols by opening the Symbol Library toolbar on the right side (in the
default view).
Toolchain Manual
User Interface 71
You can also (re-)open the window by clicking the menu Window -> Symbol
When the library is opened for the first time after the tool was started, it takes a while to
load the preview images.
You will see a loading pop-up
Toolchain Manual
User Interface 72
and you can see the loading progress in the lower right corner of the program.
Once the previews are loaded, they are instantly available as long as the tool stays open.
Changing the zoom level may require a reloading of the preview symbols.
UI elements
In the bottom of the symbol library window there are some UI elements
1 - Search bar. Here you can enter search words to filter the symbols. The symbols will be
filtered live and all images containing the words will be shown in a new tab called Search.
Toolchain Manual
User Interface 73
2 - Zoom slider. Here you can change the zoom level of the preview images in the symbol
library window. Sliding to the left shows more smaller preview images, sliding to the right
shows less larger preview images.
3 - Image size. Here you can set the size of the image in pixels, with which the image will
be created. The image will be square, so the size will be X times X. This is only true if the
image is not used within another object, e.g. as a background image. Then the size of the
parent object determines the size of the image.
4 - Blend colors. Here you can set 4 different blend colors for the creation of the images in
your project. The first color is the color of the object in most cases. See here 68 for the use
of the other colors.
Frame:
Buttons:
Add Picture Graphic Object - This will create a new Picture Graphic Object with the symbol
image as the Image To Display
Background Image - This will use the image as the background image of the object that it
was dropped on
Toolchain Manual
User Interface 74
Border Image - This will use the image as the border image of the object that it was
dropped on
Video Image - This will use the image as the placeholder image for a video frame
Needle Image - This will use the image as the needle image of the object that it was
dropped on
Pressed Image - This will use the image as the pressed state image of the button that it
was dropped on
Released Image - This will use the image as the released state image of the button that it
was dropped on
Add Picture Graphic(s) Into New List
When dropping a symbol image on a frame or container, the option Add Picture
Graphic(s) Into New List is offered.
Opening the sub context menu shows 3 different options:
437
These options will create a new list object with 2 to 4 instances of the symbol with up
to 4 different colors. The colors can be set in the UI interface of the symbol library
window by clicking on one of the 4 color fields and choosing a color.
Please note that the blend colors are project-independent and will be saved and kept
even after the tool was closed.
Toolchain Manual
User Interface 75
This will create a new tab Favourites where this and all other images set to favourites are
displayed.
Images can also be removed from this tab by right-clicking and choosing Remove from
Favourites.
Please note that the favourites are project-independent and will be saved and kept even
after the tool was closed.
2.12 Variable View
The variable view is meant for an overview of all variables in a project, quickly adding a
variable to the variable list and assigning a variable via drag and drop to a user interface
object.
Full live search field. You can search for "Group Name", "Name", "Index" and "SubIndex".
1
Results will be filtered live as you type
Add a variable quickly. If you press this button a variable is added with a default name with
2
increasing name index and the default owner is "PClient"
Delete a variable. First you have to choose a variable or more variables and than delete
3 103
Toolchain Manual
User Interface 76
Full live search field. You can search for "Group Name", "Name", "Index" and "SubIndex".
1
Results will be filtered live as you type
Main list. If you click on the header of the columns you set the order of the entries. Please
7
note that you can only sort by one column.
8 Hide / Show pre-defined variables.
If you have selected a variable within the list and click right you will get the following context
menu.
New The same like you press the add variable icon
Delete The same like the delete icon
Edit in Variable Here is the quick jump to the variable manager where you can do more
Manager detailed settings for the variable
Find Usages of Select a variable and look for the connected GUI Elemets and CAN
Variable Mappings.
Customize
The same as you where clicking the additional columns icon.
Table View
Variable View Config
The variable view configuration is mainly for setting up the quick adding of variables. You
can define a prefix (1) which is filled up with a number. This is causing names like "New
Variable1", "New Variable2" and so on. The number count can be reset by pressing the
button "Reset Variable Count". This reset has nothing to do with the variable id or other
indexes. Within the next section you can define how to deal with the index. Fill Index gaps
(2) enables the creation of variables with free indices between already existing indices. Fill
Toolchain Manual
User Interface 77
SubIndex gaps (3) enables the creation of variables with free sub indices between already
existing sub indices. for a given index. SubIndex start from: sets the starting sub index when
a variable with a new index is created. Please note that the index and subindex is needed
by the tool and the runtime on the display, but with these default settings you do not really
need to take care about this. (4) with this check box it is possible to enable/disable the
tooltip of the Variable View.
Common
The Find Variable Usages will allow the user to see all the usages of a variable at a single
place. A variable can be used in the protocols, mappings and DDOs.
When starting the designer tool you should already find a find usage window beside the
project tree window (1).
If you can not see this window you can enable this window through the window menu. With
this menu you can hide the find usage window too.
Toolchain Manual
User Interface 78
Now the view on the left top side changes. Beginning with the root node of the project (1)
you can see the complete tree down to the leafs (3,4).
Toolchain Manual
User Interface 79
If the hierachy of the project is too deep you have the option to flatten the view (2). This
results in:
Toolchain Manual
User Interface 80
To jump directly to the found page double click directly on the object (2) in the tree (1). This
results in opening the page and selecting the correct object (3).
Known issue: In this version, the double click for the objects that are connected with the
variables is disabled. Please use the project tree to browse to the object manually.
2.13 Z-Order
Objects have a certain order in each page.
The order is represented by the order in the project tree:
The bottom of a level in the project tree represents the foreground, the top represents the
background.
Newly created objects are always put at the bottom of the project tree / in the foreground of the
scene.
1.
Toolchain Manual
User Interface 81
By right-clicking the object in the project tree or in the scene and choosing the category Z-
Order.
2.
By using the Level Down and Level Up buttons in the page editor.
3.
By dragging and dropping an object in the project tree.
The Z-Order in a page also influences the order that input objects are selected with the
encoder.
There is a property called "Roll Over" that can be accessed with JavaScript. If set to true for
input objects like Numeric Fields, turning the encoder beyond the absolute value limit will roll
the value over to the absolute minimum value. For frames, it will switch from the "last" object
on the page back to the first one.
Toolchain Manual
Variables
Variables 83
3 Variables
The main approach followed in the GUI definition tool is to create pages and the navigation
between them which is a more static definition.
The dynamic comes in with variables changing their values. Other tools use the term "signal"
instead of "variable" to describe the same thing. A CANopen "object" also describes what we
call a "variable" here. The same is true for J1939 "Suspect Parameter Numbers (SPNs)".
This page provides and overview of the general concept behind the variables.
There are follow-up pages explaining the menus and dialogs to create and manage variables
owners 89 and variables 94.
Owner Concept
Every variable in the GUI designer has to have an owner assigned. The owner is the only
one controlling the value of the variable.
If somebody else tries to write the value of the variable this is considered a write request
which is forwarded to the owner of the variable.
Only if the owner confirms the new value by providing an update of the variable it is
considered changed.
If the variable is expected to be frequently updated by the owner e.g. via CAN bus
message then they can also be considered invalid if the update does not arrive in time.
Types of Owners
PClient as Owner
If PClient itself is the owner of a variable generally the same rules apply as for other
owners. PClient has no built-in knowledge about which values of a variable are
acceptable and which are not - except for the absolute minimum and maximum values.
Therefore PClient basically accepts and confirms all write requests to its variables.
Since PClient is active as long as the GUI is shown, PClient variables are valid if they
ever got a valid value.
Which Owner should be assigned to a variable?
Generally the idea is to assign the variable to the owner knowing the system's limits and
measuring its state. This means that e.g. engine coolant temperature should be owned
by engine ECU.
On the other hand there may be some setpoints and GUI internal variables which should
be owned by PClient.
A decision has to be made if a variable has to be considered a measured value as well
as a setpoint.
Toolchain Manual
Variables 84
Assume engine speed is a measured value coming from engine ECU but at the same
time the operator can set a new desired engine speed by applying a new value to the
engine speed variable.
Then there are (at least) two different sources for new values of the same variable.
If engine ECU is the owner of engine speed in this example, then the following will
happen:
Toolchain Manual
Variables 85
If flickering back to last known value is not acceptable and the GUI can make sure that all
settings made are valid then PClient could become the owner which would mean that
any value of the variable is valid and variable will stay valid at any point of time.
If display should forward the value owned by PClient to different busses it will forward
each and every value modification made by anyone - because it considers all
modifications valid.
Remanent Variables
Remanent variables keep their values over power cycles. They get re-initialized whenever a
new PClient is installed on the display.
Remanent variables are intended for operator settings and other values which will change
but whose last value should be remembered when PClient is started again.
Predefined Variables
103
On the display there is a variety of predefined variables you can directly use in your GUI.
They provide e.g. hardware states such as I/O values for digital and analog ports or CAN
bus status as well as display specific properties e.g. the part number and serial number.
Predefined variables are also used to e.g. configure camera interfaces, display backlight
or beeper activity and obtain and set current time as provided by real time clock (RTC).
Other predefined variables provide information specific to your GUI, e.g. dealing with virtual
keyboards and alarms and visibility. There are also variables showing the recent pages
visited and the time a page was active.
ISO-VT Variables
There is a range of indices reserved for ISO-VT. These variables are not existing by default
but you can create them as they are defined in the variable table.
This approach allows to save the resources if you don't use ISO-VT on your display while
still providing the information in a standardized manner not interfering with your user
defined variables.
Data Types
Every variable has to have a type. By default character strings and numeric types are
supported.
Numeric types are either signed or unsigned and have a length in bits.
In order to support the minimum requirements of CANopen there are a few predefined data
types which can not be deleted or modified.
Additionally both two bit types are provided which are used for some predefined variables
representing booleans with an additional "undefined / unknown / don't care" state required
e.g. for J1939 protocol.
Note: String variables are intended to carry readable strings. Therefore their value is
considered to end where a "\0" character occurs.
Note: If string values should be shown on display they are interpreted as UTF-8 format
which is the same as ASCII for the first 127 characters only.
Organizing principles
GUI setup tool provides two separate means of variable organization:
Toolchain Manual
Variables 86
· Variable groups are only maintained in the PC tool and are supposed to support the
designer in keeping variables where he will find them again.
· Index and subindex are used to identify a variable even on display side. This concept
was mainly introduced for CANopen support but is used for all variables.
Variable Groups
It is suggested to create variable groups for all variables belonging together in one way
or the other. One option would be to create one variable group per ECU. Another would
be to find variables belonging to a certain subject and create a group for them.
Anyways each variable has to belong to exactly one variable group and if you don't
create your own groups all your variables will end up in "common" group.
Note: In main screen variables can be handled and searched using variable view 75 but
when choosing a variable in a dialog it can really be helpful to have them ordered in
meaningful groups.
Index and Subindex
CANopen organizes all variables as "objects" in its "object dictionary". From this object
dictionary definition we "borrowed" the index and subindex approach. And since the
display does not follow any of the predefined CANopen "device profiles" we had to
move them all into the CANopen index range of 0x2000 ... 0x5FFF where proprietary
objects have to reside.
Within this range we reserved index 0x2000 ... 0x2FFF for our predefined variables
whereas user defined variables are located in the 0x3000 ... 0x5FFF range.
CANopen (and our tool) allow two approaches to handle subindices: Either the subindex
0 is the only variable defined for an index or subindex 0 defines the highest subindex
existing for an index.
It is recommended to use the latter approach and create subindices starting from 1. If
you really want to use CANopen the tool will calculate the correct value of subindex 0 in
this case.
Similar to variable groups you can use index as a grouping mechanism for many sub-
indices. It would probably be a good idea to store all variables with the same index in the
same variable group.
Organization of predefined variables
For the predefined variables every variable group contains exactly one index with all its
sub-indices.
Variable import
It is possible to import variables from another project or via a .csv file with parameters for
variables. This way large amounts of variables can be created quickly. The .csv file has to
look like this:
Variable;Index;Sub-
Index;Owner;Group;Property_Description;Data-
Type;Length;Access Type;Min Val;Max Value;Default
Value;Initialize Value As Invalid;Remanant;Force writing
test1;0x3011;0x01;;;;INTEGER;8;;;;;TRUE;FALSE;FALSE
test2;0x3011;0x02;;;;INTEGER;16;;;;;TRUE;FALSE;FALSE
test3;0x3011;0x03;;;;INTEGER;8;;;;;TRUE;FALSE;FALSE
Toolchain Manual
Variables 87
test4;0x3011;0x04;;;;INTEGER;16;;;;;TRUE;FALSE;FALSE
To import variables, click in the menu Communication -> Import Export Variables -> Import
Variables
In the file dialog, choose the according file type (project xml or CSV) and the file from which
you want to import the variables and click Open.
Toolchain Manual
Variables 88
In this dialog you can choose the appropriate delimiter, the row where the program should
start reading the variable data, and a table where you can tell the program which column
contains which property for the variables. If you have used the format shown above you can
use the default values and click Next...
If you haven't given all properties for all variables, the program will show dialoges and
suggest default values for these properties. After confirming these a last dialog will be
shown where you can choose which variables you actually want to import.
Toolchain Manual
Variables 89
You can select single variables or all variables. Click on the button >> to choose variables
for import. Click import to create all the chosen variables in your project.
3.1 Variable Owner Menus
On this help page the PC tool user interfaces to create and manage variable owners are
handled.
83
It is based on the general concept of variables and owners but concentrates on the specific
properties one can define for variable owners.
There is one follow-up page explaining the creation and maintenance of variable
properties 94.
Creating a Variable Owner on CAN Bus
There are two options to open the variable owner dialog:
Open Terminal and Owner ECU(s) Configuration from Menu
Toolchain Manual
Variables 90
Toolchain Manual
Variables 91
Toolchain Manual
Variables 92
1. Open"Communication" menu.
2. Select "Variable Manager...".
3. Variable Manager dialog opens which provides all the links to create and maintain
variables.
4. Press button "Processes...".
Processes Configuration
Toolchain Manual
Variables 93
3. If you didn't just add the process you have to select it here.
Name
The name of the program to communicate to. This should be the name of the
executable as you would type it on command line in order to run the program.
Toolchain Manual
Variables 94
Socket Name
This describes the interface PClient will use to communicate with the process. By
default this is the same as the program's name but located in folder "tmp".
If you should not know what a socket is: Consider it a kind of file which is used to
exchange variable values.
Description
As with all the description properties this mainly exists for your convenience
(especially when re-opening your GUI definition after a longer period of time).
So take the time to add a sensible description of what this process should do and why
it was created. Then it could be helpful for others looking into your GUI definition, e.g.
our support team.
Toolchain Manual
Variables 95
Toolchain Manual
Variables 96
Toolchain Manual
Variables 97
Initially the dialog only shows the predefined variable groups which can not be modified or
deleted.
In order to add your group(s)
1. Press "Add Group" button
2. Type the name of your group in the box that appears and press "Enter".
The new group will be moved where it belongs alphabetically in the list of variable groups.
Like that it could move out of the visible part of the list.
You can create more groups by repeating the steps above.
In order to modify the name of one of your groups, follow the instruction on the bottom of the
dialog.
Press the "Remove..." button in order to delete one of your groups. If it should already
contain variables they will be moved to "Common" group.
Variable Manager
The variable manager dialog is the main place to create and maintain variables.
Open Variable Manager Dialog
Toolchain Manual
Variables 98
Toolchain Manual
Variables 99
3. Define the index for the variable. If you should use CANopen this will be the index
published in EDS file.
4. Define subindex for the new variable. See dedicated section of variable concept 83
for recommendations on index and subindex.
5. Choose data type for your variable only for CANopen you can not reduce the size in
CAN messages. Otherwise main criteria is to make the variable big enough for all
values it should transport.
6. Select owner of the variable. See section owner concept 83 in base document for
criteria about which owner a variable should get.
7. Select a group for the new variable. See section organizing principles 83 in base
document for some recommendations on group definitions.
8. Press "Add" button to add the new variable to GUI definition. Every press on "Add"
will create a new variable - as long as name and index/subindex combination are
unique.
9. If you want to create more than one variable you can either directly modify your
settings OR press "Reset" first to get the dialog cleaned up first.
10.When you are finished creating variables, press "Close" button to leave the dialog
and return to "Variable Manager".
Maintain and Modify Variables
Variable manager provides all the properties of all variables so that you can check the
predefined ones and modify or delete your own variables.
Before actually deleting a variable it is recommended to make sure that it isn't used
anymore in variable view 75 .
Variable manager provides the following options and properties to maintain variables.
Toolchain Manual
Variables 100
The rest of this page explains properties and actions for variables.
The filters mentioned in the image above should be self-explanatory.
The configuration of CAN mappings is explained with the CAN protocols, see CAN
228 248 280
Freestyle , CANopen and J1939 .
Properties
Name
The name of a variable is used to identify the variable within the PC tool mainly. In order
to find a variable in this dialog, attach it to a DDO or use it in a script this name is
required.
Therefore it is recommended to use a logic naming convention that will support working
with variable. This will not only help you in your work but also others using it in the future -
think of maintenance and maybe even our support team helping you with this GUI
definition at some point of time.
Index
On the display side index and subindex are the main criteria to identify a variable - so it
has to be unique within the GUI definition.
If you should use CANopen this value is directly exposed in the EDS file describing the
object dictionary. Therefore the value range for index is limited to the proprietary range
of CANopen indices. Range 0x2000 ... 0x2FFF is reserved for predefined variables so
that your own variables can occupy the range 0x3000 ... 0x5FFF.
Toolchain Manual
Variables 101
Like using variable groups proper selection of index and subindex can help to keep the
GUI definition maintainable. See dedicated section of variable concept 83 for
recommendations on index and subindex.
Warning: Although one can change index and subindex here they render all references
to this variable useless. I.e. if you have to modify index or subindex after assigning the
variable anywhere (DDO, mapping, action ...) you have to re-visit all these assignments
and assign them again.
SubIndex
Subindex is directly tied to index - every subindex can only occur for one variable per
index.
If you set subindex to 0 then this is the only variable for this index. If you skip subindex 0
you can define up to 254 (0x01 ... 0xFE) subindices per variable thus using the index like
a group definition containing subindices that also belong together logically.
See property "index" above and dedicated section of variable concept 83 for
recommendations on index and subindex.
Owner
Every variable needs an owner and only the owner is allowed to actually change the
value of the variable. Here you can assign either one of the predefined or your self
defined owners.
There is an extra page for creation and maintenance of owners 89 . Recommendations
about owner assignment can be found on general variable page 83 .
Description
This property exists for documentation and maintenance - please take the time to
provide a short comment about the purpose and specific use of this variable.
Like that this property can make it easier to understand the GUI definition - especially for
persons not involved in its development, e.g. maintainers or our support team.
Data Type
For CANopen this is how the variable will be maintained in object dictionary, mapped to
PDOs and published in EDS. For other protocols or internal use you should choose a
format covering the variable's purpose while avoiding to waste space in CAN
messages.
Internally all numeric variables are stored as 32 bit anyways - so if in doubt and not using
CANopen "INTEGER32" or "UNSIGNED32" should work for most applications. When
adding the variable to mappings you may have to reduce its mapped size because
default is to reserve the amount of bits defined here.
Custom data type creation is explained at the top of this page 94 .
Maximum Length (in bits/bytes)
For numeric data types the length in bits is part of the data type and just shown here - i.e.
this property is not editable for numeric types.
For strings this property defines the maximum length in bytes. This length is only
enforced for user input in the GUI design tool as well as on the device. Otherwise longer
strings can be written to and read from string variables.
Please note that the display internally uses UTF-8 encoding which uses up to four bytes
for special characters e.g. used in Russian or Asian language. So if you want the string
to contain such characters you should make sure there is enough room. If you stick to
Toolchain Manual
Variables 102
basic ASCII encoding (values 0 ... 127) then UTF-8 is the same as ASCII and every
character takes exactly one byte.
Access Type
This property allows some optimization and is required for CANopen support.
Generally the owner of a variable has full access and can modify its value whenever he
needs to. Access type describes what others can do with the variable: If you e.g. set the
variable as "ReadOnly" then a write request will not even be sent to the owner but the
attempt to write will directly fail.
Full access to the variable is provided with access type "ReadWrite" - so if the variable
should not need limitations this is the value to choose.
Default Value
The variable is initialized with this value - depending on "Initialize Value As Invalid" below
you may never actually see this value on screen.
Initialize Value as Invalid
Set this property to consider the variable value invalid until a first value is provided by the
owner. DDOs typically appear disabled (grey mask on top) while the value is invalid.
If you want to consider the "Default Value" above a valid value of the variable even
though it was not set by the owner you should uncheck this property.
Remanent
Set this property if variable value should persist over power cycles. This property only
actually modifies user defined variables owned by PClient. For predefined variables it's
an information about what the owner does.
Force Writing
Normally there is some optimization in place which only forwards "new" variable values if
the value was modified. I.e. PClient only forwards write requests to the variable owner if
the value is different from the current one. The other way around it only forwards the
"new" value sent by the owner if the value differs from the last one received.
This is helpful in most cases where e.g. the value is periodically transferred in a CAN
message.
There are use cases though where every update or write request has to be forwarded
i.e. the write itself is more meaningful than the value it transports. An example from the
predefined variables is "@BeeperRepetitions" which should start a beeper sequence
which could have the same amount as repetitions as the last one. For these cases
"Force Writing" should be checked.
Protocol Specific
Based on the CAN protocol use to communicate with variable owner there could be
additional properties required. These properties would appear here.
One example for these additional properties is index/subindex of the variable in the
owner's object dictionary. This is currently only used if the owner is a CANopen ECU.
Protocol specific properties are explained on the pages of the protocols, see CAN
248 262
228
Freestyle , CANopen and J1939 .
Events
The "Events" tab allows to assign actions to specific events. By default no actions are
assigned.
Toolchain Manual
Variables 103
OnValueChangeByOwner
This event is triggered whenever the owner of the variable changes its value i.e. really
sends a different value or "Force Writing" is true.
If you should see any "Event Options" for this event - ignore them like PClient does.
Possible actions that can be assigned are
· "No Action" which is the default
· "Set Value" to assign a constant value to another variable, e.g. to reset a counter
or trigger something attached to a variable where "Force Writing" is true.
· "Scale Value" allows modifying the new variable value before it is distributed within
the display. The following calculation will be applied using integer arithmetics:
variable_value = ((( received_value + offset1 ) * multiplier ) / divisor ) +
offset2
· "Execute Script" allows to execute a script and provides additional parameter
"Execute on every Xth Event" so that it is possible to execute the script only for e.g.
every third variable update. This action should only be used for variables which are
rarely updated since otherwise it could slow down PClient.
OnValueChangeRequest
This event is triggered whenever an entity that is NOT the owner of the variable tries to
write a value to the variable. The event is only triggered if the value differs from the one
the variable currently has or "Force Writing" is true for the variable.
If you should see any "Event Options" for this event - ignore them like PClient does.
Possible actions that can be assigned are
· "No Action" which is the default
· "Set Value" to assign a constant value to another variable, e.g. to reset a counter
or trigger something attached to a variable where "Force Writing" is true.
· "Scale Value" allows modifying the value to be written before it is forwarded to the
owner. The following calculation will be applied using integer arithmetics:
value_to_forward_to_owner = ((( requested_value +
offset1 ) * multiplier ) / divisor ) + offset2
· "Execute Script" allows to execute a script and provides additional parameter
"Execute on every Xth Event" so that it is possible to execute the script only for e.g.
every sixth write request to the variable. This action should only be used for
variables where write requests are applied rarely since otherwise it could slow
down PClient.
@TerminalHardware_NoOfEntries
"Number of entries in this group"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Value
Toolchain Manual
Variables 104
Invali
d
0x200 0x0 Integer 8 Bit Read disabl disabl enable 6 6 6
0 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Terminal
"Type of Terminal"
Either the terminal this PClient was compiled for or that was detected / configured.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x200 0x3 String 255 Read disabl disabl enable NO
0 Byte Only ed ed d VALU
E
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@PartNumber
"Vendor Part Number"
32 byte string as stored in EEPROM
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x200 0x4 String 255 Read disabl disabl enable NO
0 Byte Only ed ed d VALU
E
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@BrandOwnerPartNumber
"Brand Owner's Part Number"
32 byte string as stored in EEPROM
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Value
Toolchain Manual
Variables 105
Invali
d
0x200 0x5 String 255 Read disabl disabl enable NO
0 Byte Only ed ed d VALU
E
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@SerialNumber
"Serial number of the terminal"
12 byte string as stored in EEPROM. Format is usually YYWWNNNHH where YY is the
manufacturing year, WW is the manufacturing calendar week NNN the sequence number in
that week and HH the hardware revision.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x200 0x6 String 255 Read disabl disabl enable NO
0 Byte Only ed ed d VALU
E
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@SystemOperatingTime
"Operating Time of the device"
The operating time of the device in seconds. The time is only updated every 6 minutes.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x200 0x7 Integer 32 Bit Read disabl disabl enable -1 -1 21474
0 Only ed ed d 83647
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@SDUSB_NoOfEntries
"Number of entries in this group"
Toolchain Manual
Variables 106
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x201 0x0 Integer 8 Bit Read disabl disabl enable 12 12 12
0 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@USBMemStatus
Check status of USB memory stick.Write 0 to this variable to trigger unmounting USB stick.
Wait until variable reads as '0' before actually removing the stick.
Bit 0:
1 = memory stick inserted
0 = no memory stick present
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x201 0x9 Integer 8 Bit Read/ disabl disabl enable -1 -1 1
0 Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@USBMemSize
"Memory size of first partition of USB stick inserted."
Resolution: 1 MB (e.g. 512 refers to a 512 MB card)
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x201 0xa Integer 32 Bit Read disabl disabl enable -1 -1 21474
0 Only ed ed d 83647
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@USBMemUsed
"Memory size used for files on first partition of USB stick inserted."
Resolution: 1 MB (e.g. 51 refers to a 51 MB used on card)
Toolchain Manual
Variables 107
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x201 0xb Integer 32 Bit Read disabl disabl enable -1 -1 21474
0 Only ed ed d 83647
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@USBMountPath
"Filesystem path to where the USB stick is mounted"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x201 0xc String 255 Read disabl disabl enable NO
0 Byte Only ed ed d VALU
E
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
Terminal Software
@TerminalSoftware_NoOfEntries
"Number of entries in this group"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x202 0x0 Integer 8 Bit Read disabl disabl enable 16 16 16
0 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@SystemUptime
"Time elapsed since Terminal was started"
Time in ms since Terminal was started.
Toolchain Manual
Variables 108
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x202 0x1 Integer 32 Bit Read disabl disabl enable -1 -1 21474
0 Only ed ed d 83647
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@EnableServiceMode
0: Service Mode Disabled1: Enable service Mode (after reboot OS update process will be
started)
With this variable the OS update process can be started. Write a 1 to it to enable service
mode. Service mode will only start after the device was rebooted (write value 0xb007 to
@PWR_CurrentPowerMode). Note that the service mode can only be exited by a)
installing something or b) disconnecting Ignition (clamp 15).
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x202 0x4 Integer 2 Bit Read/ disabl disabl enable 0 -1 1
0 Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@OSKernelVersion
"Kernel version active in this terminal as reported by OS."
Complete Linux Kernel version as a string.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x202 0x8 String 255 Read disabl disabl enable NO
0 Byte Only ed ed d VALU
E
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
Power Modes
Toolchain Manual
Variables 109
@PowerModes_NoOfEntries
"Number of entries in this group"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x203 0x0 Integer 8 Bit Read disabl disabl enable 19 19 19
0 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@PWR_TimeToSleepMode
"Define time in low power mode after which terminal switches to sleep mode (processor
off, only RAM refreshed)"
Time in seconds.
Terminal switches to sleep mode after it spent this time in low power mode.
In low power mode processor keeps running, only a configurable set of components (e.g.
display, backlights) can be switched off.
In sleep mode only the RAM gets refreshed while the rest of the processor is switched off.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x203 0x1 Integer 32 Bit Read/ enable disabl enable 60 -1 23328
0 Write d ed d 00
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@PWR_TimeToPowerOff
"Define time in sleep mode after which terminal is switched off. "
Time in seconds.
Terminal switches off after it spent this time in sleep mode.
In sleep mode only the RAM gets refreshed while the rest of the processor is switched off.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x203 0x2 Integer 32 Bit Read/ enable disabl enable 120 -1 23328
0 Write d ed d 00
Supported on CPU Platforms:
Toolchain Manual
Variables 110
i.MX 35 i.MX 6
Yes Yes
@PWR_LowPowerDisplayState
"State of the display in low power mode."
0: Off
1: On
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x203 0x3 Integer 8 Bit Read/ enable disabl enable 0 -1 1
0 Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@PWR_LowPowerDisplayBacklightState
"State of the display backlight in low power mode."
0: Off
1: On
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x203 0x4 Integer 8 Bit Read/ enable disabl enable 0 -1 1
0 Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@PWR_LowPowerKeypadBacklightState
"State of the keypad backlight in low power mode."
0: Off
1: On
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x203 0x5 Integer 8 Bit Read/ enable disabl enable 0 -1 1
0 Write d ed d
Supported on CPU Platforms:
Toolchain Manual
Variables 111
i.MX 35 i.MX 6
Yes Yes
@PWR_LowPower_RGB_LED_State
"State of the multi color RGB LED functionality in low power mode."
0: Off
1: On
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x203 0x7 Integer 8 Bit Read/ enable disabl enable 0 -1 1
0 Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@PWR_LowPowerBeeperState
"State of the Beeper functionality in low power mode."
0: Off
1: On
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x203 0x8 Integer 8 Bit Read/ enable disabl enable 0 -1 1
0 Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes No
@PWR_LowPowerKeypadState
"State of the Keypad in low power mode."
0: Off
1: On
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x203 0x9 Integer 8 Bit Read/ enable disabl enable 0 -1 1
0 Write d ed d
Supported on CPU Platforms:
Toolchain Manual
Variables 112
i.MX 35 i.MX 6
Yes Yes
@PWR_LowPowerEncoderState
"State of the Encoder in low power mode."
0: Off
1: On
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x203 0xa Integer 8 Bit Read/ enable disabl enable 0 -1 1
0 Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@PWR_LowPowerTouchState
"State of the touch screen in low power mode."
0: Off
1: On
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x203 0xb Integer 8 Bit Read/ enable disabl enable 0 -1 1
0 Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@PWR_LowPowerConsoleState
"State of the serial console in low power mode."
0: Off
1: On
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x203 0xc Integer 8 Bit Read/ enable disabl enable 1 -1 1
0 Write d ed d
Supported on CPU Platforms:
Toolchain Manual
Variables 113
i.MX 35 i.MX 6
Yes Yes
@PWR_LowPowerOutput1State
"State of the 1st digital output in low power mode."
0: Off
1: On
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x203 0xd Integer 8 Bit Read/ enable disabl enable 0 -1 1
0 Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@PWR_LowPowerOutput2State
"State of the 2nd digital output in low power mode."
0: Off
1: On
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x203 0xe Integer 8 Bit Read/ enable disabl enable 0 -1 1
0 Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@PWR_LowPowerOutput3State
"State of the 3rd digital output in low power mode."
0: Off
1: On
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x203 0xf Integer 8 Bit Read/ enable disabl enable 0 -1 1
0 Write d ed d
Supported on CPU Platforms:
Toolchain Manual
Variables 114
i.MX 35 i.MX 6
Yes Yes
@PWR_LowPowerCamOutputState
"State of the camera supply voltage in low power mode."
0: Off
1: On
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x203 0x10 Integer 8 Bit Read/ enable disabl enable 0 -1 1
0 Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes No
@PWR_LowPowerVideoState
"State of the video decoder in low power mode. Note that on devices with an i.MX6 based
CPU only the 1st and 3rd video input is suspended."
0: Off
1: On
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x203 0x11 Integer 8 Bit Read/ enable disabl enable 0 -1 1
0 Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@PWR_CurrentPowerMode
"Current Power Mode. See detailed description."
0: On. Can only be set if Ignition (clamp 15) is connected.
1: Low Power Mode. WARNING: Timer for going into sleep mode will only start if Ignition
(clamp 15) is disconnected!
0xb007: Reboot. This does a complete cold reboot of the device (decimal value: 45063)
0x4a17: Halt the device (decimal value 18967). The device will shut down but the power
supplies are not switched off as long as ignition is on.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Value
Toolchain Manual
Variables 115
Invali
d
0x203 0x12 Integer 32 Bit Read/ disabl enable enable 0 -1 45063
0 Write ed d d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@PWR_SleepModePropagationTime
"This time in seconds is added to the @PWR_TimeToSleepMode before going into sleep
mode. Currently there is no need to change this variable."
With this variable it is possible to delay going into sleep mode so that the application can
do something (e.g. sending special CAN messages before sleep). Since currently the
application will not handle the event that signals going into sleep mode there is no need to
change the propagation time.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x203 0x13 Integer 8 Bit Read/ enable enable enable 0 0 30
0 Write d d d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@PWR_LowPowerEncoderBacklightState
"State of the encoder backlight in low power mode."
0: Off
1: On
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x203 0x14 Integer 8 Bit Read/ enable disabl enable 0 -1 1
0 Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
No Yes
LEDs
@LED_NoOfEntries
Toolchain Manual
Variables 116
For more details see user manual: FAQ -> How can I use the multicolor LED?
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x204 0x2 Integer 32 Bit Read/ disabl disabl enable 0 -1 16777
0 Write ed ed d 215
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@LEDMultiColorRepetitions
"Number of repetitions of @LEDMultiColorPattern"
Number of intervals to perform. For more details see user manual: FAQ -> How can I
use the multicolor LED?
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x204 0xd Integer 32 Bit Read/ disabl disabl enable 0 0 21474
0 Write ed ed d 83647
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@LEDMultiColorPattern
"Run a blink pattern on MultiColorLED"
Toolchain Manual
Variables 117
When setting a value to this variable, a blink pattern is played on the device's multi color
LED. The pattern is bitwise encoded into the value of this variable (20 values for on and
off).
This pattern will be played with color set in @LED_MultiColor
e.g.: value is 5, bitwise: 00000000000000000101 resulting blink pattern:
100ms on
100ms off
100ms on
1700ms off
For more details see user manual: FAQ -> How can I use the multicolor LED?
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x204 0xe Integer 32 Bit Read/ disabl disabl enable 0 0 21474
0 Write ed ed d 83647
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
Sensors
@Sensors_NoOfEntries
"Number of entries in this group"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x205 0x0 Integer 8 Bit Read disabl disabl enable 6 6 6
0 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@SensorTerminalTempC
"get estimated °C temperature inside terminal"
°C value as measured by internal temperature sensor. Value is in °C.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
Toolchain Manual
Variables 118
0x205 0x1 Integer 32 Bit Read disabl disabl enable -1 -2000 2000
0 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@SensorAmbientLight
"Standardized ambient light value"
Percentage of ambient light intensity in 10th of % (0: complete darknes (0.0%), 1000: full
brightness (100.0%))
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x205 0x3 Integer 32 Bit Read disabl disabl enable -1 -1 1000
0 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@SensorSupplyVoltage
"Input voltage of power supply in mV"
Input voltage on permanent power supply (clamp 30) in mV e.g. 13294 means 13.294V
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x205 0x5 Integer 32 Bit Read disabl disabl enable -1 -1 60000
0 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
Digital Inputs
@DigitalInputs_NoOfEntries
"Number of entries in this group"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
Toolchain Manual
Variables 119
Toolchain Manual
Variables 120
@DigitalInput04
"Get state of digital input 04"
Only valid for terminals equipped with such an input
0: low voltage on input pin
1: high voltage on input pin
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x208 0x5 Integer 2 Bit Read disabl disabl enable -1 -1 1
0 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
Analog Inputs
@AnalogInputs_NoOfEntries
"Number of entries in this group"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x209 0x0 Integer 8 Bit Read disabl disabl enable 10 10 10
0 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@AnalogInput01
"Get value of analog input 01"
Only valid for terminals equipped with such an input.
Software supports voltage on the respective input in 10 millivolts, e.g. a value of 1234
corresponds to 12,34 V.
Toolchain Manual
Variables 121
Please refere to the hardware documentation to find out which value range and precision is
supported by a specific hardware.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x209 0x1 Integer 32 Bit Read disabl disabl enable -1 -1 21474
0 Only ed ed d 83647
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@AnalogInput02
"Get value of analog input 02"
Only valid for terminals equipped with such an input.
Software supports voltage on the respective input in 10 millivolts, e.g. a value of 1234
corresponds to 12,34 V.
Please refere to the hardware documentation to find out which value range and precision is
supported by a specific hardware.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x209 0x2 Integer 32 Bit Read disabl disabl enable -1 -1 21474
0 Only ed ed d 83647
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@AnalogInput03
"Get value of analog input 03"
Only valid for terminals equipped with such an input.
Software supports voltage on the respective input in 10 millivolts, e.g. a value of 1234
corresponds to 12,34 V.
Please refere to the hardware documentation to find out which value range and precision is
supported by a specific hardware.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x209 0x3 Integer 32 Bit Read disabl disabl enable -1 -1 21474
0 Only ed ed d 83647
Supported on CPU Platforms:
Toolchain Manual
Variables 122
i.MX 35 i.MX 6
Yes Yes
@AnalogInput04
"Get value of analog input 04"
Only valid for terminals equipped with such an input.
Software supports voltage on the respective input in 10 millivolts, e.g. a value of 1234
corresponds to 12,34 V.
Please refere to the hardware documentation to find out which value range and precision is
supported by a specific hardware.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x209 0x4 Integer 32 Bit Read disabl disabl enable -1 -1 21474
0 Only ed ed d 83647
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
FrequencyInputs
@FrequencyInputs_NoOfEntries
"Number of entries in this group"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x209 0x0 Integer 8 Bit Read disabl disabl enable 1 1 1
1 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
No Yes
@FrequencyInput01
Measured frequency of input 1 in Hz
This variable represents the measured frequency of input 1 in Hz.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
Toolchain Manual
Variables 123
Input Configuration
@Inputconfiguration_NoOfEntries
"Number of entries in this group"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x209 0x0 Integer 8 Bit Read disabl disabl enable 22 22 22
5 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@InputConfiguration01
"Configure input 01 for digital/analog (voltage sensor) or for current sensor operation."
Configure input 01 for digital/analog (voltage sensor) or for current sensor operation. Value
0 and 1: digital and analog operation (measured value in @DigitalInput01 and
@AnalogInput01); Value 2: current sensor operation (measured value in @AnalogInput01).
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x209 0x1 Integer 8 Bit Read/ enable disabl enable 0 -1 2
5 Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
No Yes
@InputConfiguration02
"Configure input 02 for digital/analog (voltage sensor) or for current sensor operation."
Configure input 02 for digital/analog (voltage sensor) or for current sensor operation. Value
0 and 1: digital and analog operation (measured value in @DigitalInput02 and
@AnalogInput02); Value 2: current sensor operation (measured value in @AnalogInput02).
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Toolchain Manual
Variables 124
@InputConfiguration03
"Configure input 03 for digital/analog (voltage sensor) or for current sensor operation."
Configure input 03 for digital/analog (voltage sensor) or for current sensor operation. Value
0 and 1: digital and analog operation (measured value in @DigitalInput03 and
@AnalogInput03); Value 2: current sensor operation (measured value in @AnalogInput03).
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x209 0x3 Integer 8 Bit Read/ enable disabl enable 0 -1 2
5 Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
No Yes
@InputConfiguration04
"Configure input 04 for digital/analog (voltage sensor) or for current sensor operation."
Configure input 04 for digital/analog (voltage sensor) or for current sensor operation. Value
0 and 1: digital and analog operation (measured value in @DigitalInput04 and
@AnalogInput04); Value 2: current sensor operation (measured value in @AnalogInput04).
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x209 0x4 Integer 8 Bit Read/ enable disabl enable 0 -1 2
5 Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
No Yes
@Input1hysterese
"On devices with i.MX 35 CPU one step is approx. 11mv. On devices with i.MX 6 CPU one
step is 1mV."
The hysteresis when the analog input shall signal a value change.
For devices with i.MX 35 CPU: This is a digital value of the 10Bit A/D converter betwenn 0
Toolchain Manual
Variables 125
Toolchain Manual
Variables 126
i.MX 35 i.MX 6
Yes Yes
@Input4hysterese
"On devices with i.MX 35 CPU one step is approx. 11mv. On devices with i.MX 6 CPU one
step is 1mV."
The hysteresis when the analog input shall signal a value change.
For devices with i.MX 35 CPU: This is a digital value of the 10Bit A/D converter betwenn 0
and 1023. One step is about 11mV.
For devices with i.MX 6 CPU: The value represents 1mV directly.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x209 0x14 Integer 16 Bit Read/ enable disabl enable 1 -1 1023
5 Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
Digital Outputs
@DigitalOutputs_NoOfEntries
"Number of entries in this group"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20a 0x0 Integer 8 Bit Read disabl disabl enable 10 10 10
0 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@DigitalOutput01
"Set state of digital output 1"
Only valid for terminals equipped with such an output.
The output is an open drain / open collector output. This means that when the output is set
to 1, ground is connected to the output. If set to 0, the output is disconnected.
0: disconnect output
1: connect to ground
Toolchain Manual
Variables 127
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20a 0x1 Integer 2 Bit Read/ disabl disabl enable 0 -1 1
0 Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@DigitalOutput02
"Set state of digital output 02"
Only valid for terminals equipped with such an output.
The output is an open drain / open collector output. This means that when the output is set
to 1, ground is connected to the output. If set to 0, the output is disconnected.
0: disconnect output
1: connect to ground
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20a 0x2 Integer 2 Bit Read/ disabl disabl enable 0 -1 1
0 Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@DigitalOutput03
"Set state of digital output 03"
Only valid for terminals equipped with such an output.
The output is an open drain / open collector output. This means that when the output is set
to 1, ground is connected to the output. If set to 0, the output is disconnected.
0: disconnect output
1: connect to ground
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20a 0x3 Integer 2 Bit Read/ disabl disabl enable 0 -1 1
0 Write ed ed d
Toolchain Manual
Variables 128
Toolchain Manual
Variables 129
i.MX 35 i.MX 6
No Yes
@DigitalOutputFailure01
Shows if digital output 1 has detected a failure (set value != loopback value)
If the value of @DigitalOutput0x and @DigitalOutputLoopback0x is not the same, this
variable signals the failure.
0: No failure
1: Failure detected
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20a 0x20 Unsign 8 Bit Read disabl disabl enable 0 0 255
0 ed Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
No Yes
@DigitalOutputFailure02
Shows if digital output 2 has detected a failure (set value != loopback value)
If the value of @DigitalOutput0x and @DigitalOutputLoopback0x is not the same, this
variable signals the failure.
0: No failure
1: Failure detected
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20a 0x21 Unsign 8 Bit Read disabl disabl enable 0 0 255
0 ed Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
No Yes
@DigitalOutputFailure03
Shows if digital output 3 has detected a failure (set value != loopback value)
If the value of @DigitalOutput0x and @DigitalOutputLoopback0x is not the same, this
variable signals the failure.
0: No failure
1: Failure detected
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Toolchain Manual
Variables 130
Display Backlight
@DisplayBacklight_NoOfEntries
"Number of entries in this group"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20b 0x0 Integer 8 Bit Read disabl disabl enable 17 17 17
0 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@DispBacklightIntensity
"Set display backlight intensity directly or activate automatic mode"
0 ... 100: set backlight intensity constant to this percentage
else: Automatic backlight algorithm is active
To make it clear: To activate the automatic backlight dimming based on the ambient light:
Set a value that is NOT between 0 and 100 (e.g. -1). To deactivate the auto backlight
dimming simply set the static value between 0 and 100.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20b 0x1 Integer 8 Bit Read/ enable disabl enable 80 -1 101
0 Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@DispBacklightAmbientLowPassed
"Value calculated from @SensorAmbientLight using @DispBacklightTimeConstant and
@DispBacklightFilterFactor. "
Toolchain Manual
Variables 131
Toolchain Manual
Variables 132
@DispBacklightIntensity0
"Intensity of display backlight when @DispBacklightAmbient-LowPassed == 0%"
Display backlight intensity between specified values is linearly interpolated.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20b 0x5 Integer 8 Bit Read/ enable disabl enable 10 -1 100
0 Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@DispBacklightIntensity10
"Intensity of display backlight when @DispBacklightAmbient-LowPassed == 10%"
Display backlight intensity between specified values is linearly interpolated.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20b 0x6 Integer 8 Bit Read/ enable disabl enable 15 -1 100
0 Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@DispBacklightIntensity20
"Intensity of display backlight when @DispBacklightAmbient-LowPassed == 20%"
Display backlight intensity between specified values is linearly interpolated.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20b 0x7 Integer 8 Bit Read/ enable disabl enable 20 -1 100
0 Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@DispBacklightIntensity30
"Intensity of display backlight when @DispBacklightAmbient-LowPassed == 30%"
Display backlight intensity between specified values is linearly interpolated.
Toolchain Manual
Variables 133
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20b 0x8 Integer 8 Bit Read/ enable disabl enable 30 -1 100
0 Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@DispBacklightIntensity40
"Intensity of display backlight when @DispBacklightAmbient-LowPassed == 40%"
Display backlight intensity between specified values is linearly interpolated.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20b 0x9 Integer 8 Bit Read/ enable disabl enable 40 -1 100
0 Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@DispBacklightIntensity50
"Intensity of display backlight when @DispBacklightAmbient-LowPassed == 50%"
Display backlight intensity between specified values is linearly interpolated.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20b 0xa Integer 8 Bit Read/ enable disabl enable 50 -1 100
0 Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@DispBacklightIntensity60
"Intensity of display backlight when @DispBacklightAmbient-LowPassed == 60%"
Display backlight intensity between specified values is linearly interpolated.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Value
Toolchain Manual
Variables 134
Invali
d
0x20b 0xb Integer 8 Bit Read/ enable disabl enable 60 -1 100
0 Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@DispBacklightIntensity70
"Intensity of display backlight when @DispBacklightAmbient-LowPassed == 70%"
Display backlight intensity between specified values is linearly interpolated.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20b 0xc Integer 8 Bit Read/ enable disabl enable 70 -1 100
0 Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@DispBacklightIntensity80
"Intensity of display backlight when @DispBacklightAmbient-LowPassed == 80%"
Display backlight intensity between specified values is linearly interpolated.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20b 0xd Integer 8 Bit Read/ enable disabl enable 80 -1 100
0 Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@DispBacklightIntensity90
"Intensity of display backlight when @DispBacklightAmbient-LowPassed == 90%"
Display backlight intensity between specified values is linearly interpolated.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
Toolchain Manual
Variables 135
Toolchain Manual
Variables 136
Keyboard Backlight
@KeyboardBacklight_NoOfEntries
"Number of entries in this group"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20c 0x0 Integer 8 Bit Read disabl disabl enable 1 1 17
0 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@KeybBacklightIntensity
"Manually set Keyboard Backlight intensity."
0 ... 100: set keyboard backlight intensity constant to this percentage
Automatic keyboard backlight dimming is not supported.
On devices that support @KeyBacklightColor, this variable will dimm the selected color
linearily.
Toolchain Manual
Variables 137
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20c 0x1 Integer 8 Bit Read/ enable disabl enable 100 -1 100
0 Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@KeyBacklightColor
Change color of display keyboard backlight
New device generations support the changing of the color of the keyboard backlight. Any
RGB value can be set here to change the color. This will then be treated as the master
color which cann be dimmed with @KybBacklightIntensity.
Value examples:
0xffffff: white
0xff0000: red
0x00ff00: green
0x0000ff: blue
0x00ffff: cyan
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20c 0x2 Unsign 32 Bit Read/ enable disabl enable 16777 0 16777
0 ed Write d ed d 215 215
Supported on CPU Platforms:
i.MX 35 i.MX 6
No Yes
@EncoderBacklightIntensity
"Manually set Encoder Backlight intensity."
0 ... 100: set keyboard backlight intensity constant to this percentage
Automatic encoder backlight dimming is not supported.
On devices that support @EncoderBacklightColor, this variable will dimm the selected
color linearily.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20c 0x3 Integer 8 Bit Read/ enable disabl enable 100 -1 100
0 Write d ed d
Supported on CPU Platforms:
Toolchain Manual
Variables 138
i.MX 35 i.MX 6
No Yes
@EncoderBacklightColor
Change color of encoder backlight
New device generations support the changing of the color of the encoder backlight. Any
RGB value can be set here to change the color. This will then be treated as the master
color which cann be dimmed with @EncoderBacklightIntensity.
Value examples:
0xffffff: white
0xff0000: red
0x00ff00: green
0x0000ff: blue
0x00ffff: cyan
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20c 0x4 Unsign 32 Bit Read/ enable disabl enable 16777 0 16777
0 ed Write d ed d 215 215
Supported on CPU Platforms:
i.MX 35 i.MX 6
No Yes
@KeyBacklightStartupIntensity
"Keypad Intensity that is set by the bootloader at cold boot until hardware daemon is
started. This value is directly stored in the EEPROM of the device."
Keyboard Backlight Intensity that is set by the bootloader at cold boot until hardware
daemon is started. This value is directly stored in the EEPROM of the device.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20c 0x12 Integer 8 Bit Read/ disabl disabl enable 100 0 100
0 Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes No
@KeyBacklightStartupColor
Change color AND intensity of keyboard backlight at cold boot.
New device generations support the changing of the color of the keyboard backlight at cold
boot. The value that is set represents a 24Bit RGB value for color AND intensity. After
application startup the variables @KeyBacklightColor, @KeyBacklightIntensity,
Toolchain Manual
Variables 139
Beeper
@Beeper_NoOfEntries
"Number of entries in this group"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20d 0x0 Integer 8 Bit Read disabl disabl enable 17 17 18
0 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@BeeperMaxVolume
"Maximum volume to be used for any beep. Also applied as maximum volume for ISO-VT."
Percentage of maximum volume the beeper can provideto be used in combination with
@BeeperClickVolume and @BeeperAlarmVolume. Typically set by end user based on
ambient noise and personal preferences.
0: beeper completely deactivated
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20d 0x1 Integer 8 Bit Read/ enable disabl enable 40 -1 100
0 Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
Toolchain Manual
Variables 140
@BeeperClickVolume
"Volume to be used to acknowledge keypresses with a short beep"
Percentage of @BeeperMaxVolume to be used to when a key is pressed.
0: no beep on key click
If the value is greater 0, a click sound will appear whenever a hard-/softkey or the touch
screen is pressed.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20d 0x2 Integer 8 Bit Read/ enable enable enable 0 -1 100
0 Write d d d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@BeeperAlarmVolume
"Volume to be used for alarm beeps"
Percentage of @BeeperMaxVolume to be used to alarm user. Typically set at runtime
based on severity of an alarm.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20d 0x3 Integer 8 Bit Read/ enable enable enable 100 -1 100
0 Write d d d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@BeeperEventVolume
"Volume to be used for beep pattern assigned to events"
Percentage of @BeeperMaxVolume to be used to when a beep pattern of an event is
played.
This could be a user setting or a variable settting in the script triggered by the event.
0: no beep on events
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20d 0x4 Integer 8 Bit Read/ enable enable enable 100 -1 100
0 Write d d d
Supported on CPU Platforms:
Toolchain Manual
Variables 141
i.MX 35 i.MX 6
Yes Yes
@BeeperMinEmergencyAlarmVolume
"Require minimum alarm volume for emergency alarms"
Percentage of maximum volume the beeper can provide. If an emergency alarm with a
sound attached occurs, the beeper volume is the maximum of this value and the one
calculated from @BeeperMaxVolume and @BeeperAlarmVolume.
Set this value to 0 to have full control about the alarm volume with the variables mentioned
above.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20d 0x5 Integer 8 Bit Read/ enable enable enable 0 -1 100
0 Write d d d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@BeeperOnTime
"On time in one beeper interval"
Time in interval where beeper is switched on [ms]
One interval consists of @BeeperOnTime + @BeeperOffTime
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20d 0x7 Integer 16 Bit Read/ disabl enable enable 0 -1 32767
0 Write ed d d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@BeeperOffTime
"Off time in one beeper interval"
Time in interval where beeper is switched off [ms]
One interval consists of @BeeperOnTime + @BeeperOffTime
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
Toolchain Manual
Variables 142
The click sound can be enabled by setting this variable to 1 with the volume set in
@BeeperClickVolume. But only if it was not turned on by a higher priority before (higher
priorities are: event -> VT -> Alarm).
The sound will automatically be switched off after 200ms (this variable will be reset to 0).
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20d 0xa Integer 2 Bit Read/ disabl enable enable 0 -1 1
0 Write ed d d
Supported on CPU Platforms:
Toolchain Manual
Variables 143
i.MX 35 i.MX 6
Yes Yes
@BeeperAlarmOn
"Switch beeper on or of for an alarm"
Setting to 1 will switch the beeper with volume @BeeperAlarmVolume on. Switching this
variable to one will turn all other "@BeeperXXXOn" variables to 0.
Setting 0 to this variable will switch the beeper off.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20d 0xb Integer 2 Bit Read/ disabl enable enable 0 -1 1
0 Write ed d d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@BeeperEventOn
"Switch beeper on or of for an event"
Setting to 1 will switch the beeper with volume @BeeperEventVolume on, but only if it was
not turned on by a higher priority before (higher priorities are: VT -> Alarm).
Setting 0 to this variable will switch the beeper off (if no higher priority variable is == 1).
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20d 0xc Integer 2 Bit Read/ disabl enable enable 0 -1 1
0 Write ed d d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@BeeperVariableVolume
"Set beeper volume to be used by @BeeperRepetitions"
Percentage of @BeeperMaxVolume to be used for @BeeperRepetitions
0: no beep on repetitions
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20d 0xd Integer 8 Bit Read/ enable enable enable 0 -1 100
0 Write d d d
Toolchain Manual
Variables 144
Toolchain Manual
Variables 145
i.MX 35 i.MX 6
Yes Yes
@BeeperAlarmRepetitions
"Writing: Number of intervals to perform. Reading: Beeper active/non-active"
Defines how often @BeeperAlarmPattern will be repeated.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20d 0x10 Integer 16 Bit Read/ disabl enable enable 0 -1 32767
0 Write ed d d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@BeeperEventRepetitions
"Writing: Number of intervals to perform. Reading: Beeper active/non-active"
Defines how often @BeeperEventPattern will be repeated.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20d 0x11 Integer 16 Bit Read/ disabl enable enable 0 -1 32767
0 Write ed d d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@BeeperIsActive
"Provides the current state of the beeper processing."
Returns:
-1: Read Error
0: Beeper not active
1: AlarmPattern active
2: AlarmOn active
3: Repetition active
4: EventPattern active
5: EventOn active
6: ClickOn active
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Value
Toolchain Manual
Variables 146
Invali
d
0x20d 0x12 Integer 8 Bit Read disabl disabl enable 0 -1 6
0 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@VolumeLevelSpeaker
Set the master volume of the internal speaker.
Use this variable to set the master volume level of the internal speaker (0% to 100%).
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20d 0x13 Integer 8 Bit Read/ enable enable enable 100 0 100
0 Write d d d
Supported on CPU Platforms:
i.MX 35 i.MX 6
No Yes
@VolumeLevelLineOut
Set the master volume of the audio line out.
Use this variable to set the master volume level of the line out channel (0% to 100%).
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20d 0x14 Integer 8 Bit Read/ enable enable enable 100 0 100
0 Write d d d
Supported on CPU Platforms:
i.MX 35 i.MX 6
No Yes
RTC
@RTC_NoOfEntries
"Number of entries in this group"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Value
Toolchain Manual
Variables 147
Invali
d
0x210 0x0 Integer 8 Bit Read disabl disabl enable 7 7 11
0 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@RTC_Year
"Local date: Year"
Current year from the device's RTC chip.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x210 0x1 Integer 16 Bit Read/ disabl disabl enable -1 -1 2200
0 Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@RTC_Month
"Local date: Month"
Current month from the device's RTC chip.
1: January
2: February
...
12: December
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x210 0x2 Integer 8 Bit Read/ disabl disabl enable -1 -1 12
0 Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@RTC_Day
"Local date: Day"
Toolchain Manual
Variables 148
@RTC_Minutes
"Local time: Minutes"
Current minute from the device's RTC chip.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x210 0x6 Integer 8 Bit Read/ disabl disabl enable -1 -1 59
0 Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@RTC_Seconds
"Local time: Seconds"
Current second from the device's RTC chip.
Toolchain Manual
Variables 149
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x210 0x7 Integer 8 Bit Read/ disabl disabl enable -1 -1 59
0 Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@RTC_HoursAMPM
"Same as @RTC_Hours, but in am/pm format"
Current hour in AMPM format from the device's RTC chip.
CAN 1 Controller
@CAN1Controller_NoOfEntries
Toolchain Manual
Variables 150
Toolchain Manual
Variables 151
Yes Yes
@CAN1_MsgSent
"Messages sent by terminal in last second."
Counter of massages sent to the bus by the PClient during the last second.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x212 0x3 Integer 32 Bit Read disabl disabl enable -1 -1 21474
0 Only ed ed d 83647
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@CAN1_Bitrate
Read or set the CAN bitrate of CAN Port 1. The value is in Bit per second.
If the bitrate is changed while the CAN controller is running, it will be shut down and the new
bitrate will be set. If this was successful, the CAN controller will be started again with the
new bitrate.
If the new bitrate could not be set, the old bitrate will be set again.
If the CAN controller is off when setting the new bitrate, it will not be started after setting the
bitrate.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x212 0x4 Unsign 32 Bit Read/ disabl enable enable 25000 20000 10000
0 ed Write ed d d 0 00
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
CAN 2 Controller
@CAN2Controller_NoOfEntries
"Number of entries in this group"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x212 0x0 Integer 32 Bit Read disabl disabl enable 0 0 0
1 Only ed ed d
Toolchain Manual
Variables 152
Toolchain Manual
Variables 153
@CAN2_Bitrate
Read or set the CAN bitrate of CAN Port 2. The value is in Bit per second.
If the bitrate is changed while the CAN controller is running, it will be shut down and the new
bitrate will be set. If this was successful, the CAN controller will be started again with the
new bitrate.
If the new bitrate could not be set, the old bitrate will be set again.
If the CAN controller is off when setting the new bitrate, it will not be started after setting the
bitrate.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x212 0x4 Unsign 32 Bit Read/ disabl enable enable 25000 20000 10000
1 ed Write ed d d 0 00
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
Filesystem
@Filesystem_NoOfEntries
"Number of entries in this group"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x213 0x0 Integer 8 Bit Read disabl disabl enable 8 8 8
0 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@CurrentDirectory
"Currently selected directory (full qualified file path)"
Toolchain Manual
Variables 154
e.g.: "/opt/user_files/"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x213 0x1 String 255 Read/ enable enable enable NO
0 Byte Write d d d VALU
E
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@CurrentFile
"Currently selected file (file name only)"
e.g.: "test.txt"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x213 0x2 String 255 Read/ enable enable enable NO
0 Byte Write d d d VALU
E
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@DestinationDirectory
"The destination directory where @CurrentDirectory and @CurrentFile can be copied or
moved to"
e.g.: "/disk/usbsda1/".
Should not be written manually unless it's secured that the directory exists.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x213 0x3 String 255 Read/ enable enable enable NO
0 Byte Write d d d VALU
E
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
Toolchain Manual
Variables 155
@CopyFileOrFolder
Copy or move directory or file.Also use '@USBMemStatus' variable if USB stick is
involved.
0: No action
1: Copy @CurrentDirectory/@CurrentFile to @DestinationDirectory
2: Move @CurrentDirectory/@CurrentFile to @DestinationDirectory
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x213 0x4 Integer 8 Bit Read/ disabl disabl enable 0 -1 2
0 Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@FileSystemPath
"A valid full qualified file system path"
e.g.: "/opt/user_files/"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x213 0x5 String 255 Read/ enable disabl enable NO
0 Byte Write d ed d VALU
E
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@UsedMemoryPartition
"Shows the used memory in kilobytes of the partition on which @FileSystemPath is
located"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x213 0x6 Integer 32 Bit Read disabl disabl enable -1 -1 21474
0 Only ed ed d 83647
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
Toolchain Manual
Variables 156
@FreeMemoryPartition
"Shows the free memory in kilobytes of the partition on which @FileSystemPath is located"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x213 0x7 Integer 32 Bit Read disabl disabl enable -1 -1 21474
0 Only ed ed d 83647
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@CurrentFileSize
"Shows the file size of @CurrentFile in kilobytes"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x213 0x8 Integer 32 Bit Read disabl disabl enable -1 -1 21474
0 Only ed ed d 83647
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
Ethernet
@Ethernet_NoOfEntries
"Number of entries in this group"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x214 0x0 Integer 8 Bit Read disabl disabl enable 21 21 23
0 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Ethernet0_IPAddress
Currently set IpAddress (default 192.168.135.6).
Toolchain Manual
Variables 157
Toolchain Manual
Variables 158
@Ethernet0_UpAtStart
"Should the adapter be started at device startup? 1 = yes 0 = no; Default = 0"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x214 0x4 Integer 2 Bit Read/ enable disabl enable 0 -1 1
0 Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Ethernet1_IPAddress
"Currently set IpAddress (default 192.168.135.2)"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x214 0x5 String 15 Read/ enable disabl enable 192.16
0 Byte Write d ed d 8.135.
2
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Ethernet1_Netmask
"Currently set Netmask, can be set via Variable (default 255.255.255.0)"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x214 0x6 String 15 Read/ enable disabl enable 255.25
0 Byte Write d ed d 5.255.
0
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Ethernet1_Gateway
"Currently set Gateway for Internet Connections (default 192.168.135.1)"
Toolchain Manual
Variables 159
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x214 0x7 String 15 Read/ enable disabl enable 192.16
0 Byte Write d ed d 8.135.
1
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Ethernet1_UpAtStart
"Should the adapter be started at startup? 1 = yes 0 = no; Default = 0"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x214 0x8 Integer 2 Bit Read/ enable disabl enable 0 -1 1
0 Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Ethernet0_applynstart
"Allows applying Ethernet settings"
If set to 1 the 'new' or 'currently' available values in ip, netmask and gateway variables are
applied to the network adapter. The adapter is started and the variable is set back to 0.
Default is 0.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x214 0x14 Integer 2 Bit Read/ disabl disabl enable 0 -1 1
0 Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Ethernet1_applynstart
"Allows applying Ethernet settings"
If set to 1 the 'new' or 'currently' available values in ip, netmask and gateway variables are
applied to the network adapter. The adapter is started and the variable is set back to 0.
Default is 0.
Toolchain Manual
Variables 160
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x214 0x15 Integer 2 Bit Read/ disabl disabl enable 0 -1 1
0 Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
RS232
@RS232_NoOfEntries
Number of variables in this group
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x215 0x0 Integer 8 Bit Read disabl disabl enable 1 0 1
0 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@ConsoleMode
Change the Linux console mode of the device (new mode is active after reboot).
Possible values:
0: Console on RS232
1: Console disabled
2: Console on first USB serial adapter (use Null-Modem Cable)
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x215 0x1 Unsign 8 Bit Read/ disabl enable enable 0 0 2
0 ed Write ed d d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
PClient
Toolchain Manual
Variables 161
User Inputs
@UserInputs_NoOfEntries
"Number of entries in this group"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x207 0x0 Unsign 8 Bit Read disabl disabl enable 15 15 15
0 ed Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@UserEncoder1Clicks
"Amount of encoder clicks since last reset."
Counts encoder clicks
+1: encoder turned one click clockwise
-1: encoder turned one click anti-clockwise
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x207 0x1 Integer 32 Bit Read/ disabl disabl enable 0 - 21474
0 Write ed ed d 21474 83647
83647
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@UserButtonPressed
"Keycode of button currently pressed. -1 if no button is pressed"
Please note that not all keys are available on all devices.
Key codes:
0 - ESC
1 - Home
2 - Three Arrow Key
3 - Enter (Encoder)
6 - Stop
200 - Left Key 1
201 - Left Key 2
202 - Left Key 3
203 - Left Key 4
204 - Left Key 5
205 - Left Key 6
Toolchain Manual
Variables 162
If multiple buttons are pressed at the same time, this variable only shows the last pressed
key code. To handle multiple keys at the same time, use variable @UserMultiPressed_XX
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x207 0x4 Integer 32 Bit Read disabl disabl enable -1 -1 21474
0 Only ed ed d 83647
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@UserButtonDoubleClick
"Keycode of last button double clicked."
Keycodes: see @UserButtonPressed
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x207 0x6 Unsign 32 Bit Read disabl disabl enable 0 0 21474
0 ed Only ed ed d 83647
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@UserButtonReleased
"Keycode of last button released."
Keycodes: see @UserButtonPressed
-1 if there is at least one button pressed.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x207 0x7 Integer 32 Bit Read disabl disabl enable -1 -1 21474
0 Only ed ed d 83647
Toolchain Manual
Variables 163
Toolchain Manual
Variables 164
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x207 0xa Unsign 32 Bit Read disabl disabl enable 0 0 0
0 ed Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@UserTouchPressedX
"X coordinate where touch screen was pressed last time"
Coordinates are given in display coordinates starting with (0, 0) in the upper left corner
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x207 0xc Unsign 16 Bit Read disabl disabl enable 0 0 1023
0 ed Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@UserTouchPressedY
"Y coordinate where touch screen was pressed last time"
Coordinates are given in display coordinates starting with (0, 0) in the upper left corner
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x207 0xd Unsign 16 Bit Read disabl disabl enable 0 0 1023
0 ed Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@UserTouchReleasedX
"X coordinate where touch screen was released last time"
Coordinates are given in display coordinates starting with (0, 0) in the upper left corner
Toolchain Manual
Variables 165
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x207 0xe Unsign 16 Bit Read disabl disabl enable 0 0 1023
0 ed Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@UserTouchReleasedY
"Y coordinate where touch screen was released last time"
Coordinates are given in display coordinates starting with (0, 0) in the upper left corner
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x207 0xf Unsign 16 Bit Read disabl disabl enable 0 0 1023
0 ed Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
Camera1
@Camera1_NoOfEntries
"Number of entries in this group"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20e 0x0 Integer 8 Bit Read disabl disabl enable 10 10 10
0 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Cam1Brightness
"brightness setting"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Toolchain Manual
Variables 166
@Cam1Contrast
"contrast setting"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20e 0x2 Integer 16 Bit Read/ enable disabl disabl 127 -1 255
0 Write d ed ed
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Cam1Saturation
"color saturation setting"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20e 0x3 Integer 16 Bit Read/ enable disabl disabl 127 -1 255
0 Write d ed ed
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Cam1Hue
"hue setting"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20e 0x4 Integer 8 Bit Read/ enable disabl disabl 0 -127 127
0 Write d ed ed
Supported on CPU Platforms:
Toolchain Manual
Variables 167
i.MX 35 i.MX 6
Yes No
@Cam1Interface
"Path to device file that is used for video input 1. Default value is device dependent"
Names of the interface is terminal dependent. On terminals with only one camera input this
variable is ignored.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20e 0x5 String 255 Read enable disabl disabl /dev/vi
0 Byte Only d ed ed deo0
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Cam1Name
"Name of camera position"
e.g. "rearview", "left sweeper"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20e 0x6 String 255 Read/ enable disabl disabl Camer
0 Byte Write d ed ed a1
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Cam1Rotation
"Rotation of the video in degrees.Possible values are 0 or 90 degree. Any other value will
have no effect. Other rotation values can only be achieved in combination with
@Cam1Mirror."
Set the video rotation. Possible values:
0, 90
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20e 0xc Integer 16 Bit Read/ disabl enable disabl 0 0 90
0 Write ed d ed
Supported on CPU Platforms:
Toolchain Manual
Variables 168
i.MX 35 i.MX 6
Yes Yes
@Cam1Mirror
"Set/Get Mirror settings for camera"
Possible values:
0: No mirroring
1: Horizontal mirroring
2: Vertival mirroring
3: Horizontal and Vertical mirroring
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20e 0xd Integer 8 Bit Read/ disabl enable disabl 0 0 3
0 Write ed d ed
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Cam1XPosition
"Get or set the X position of the video image"
This variables controls the X position on the screen of the video image for this camera
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20e 0xe Integer 16 Bit Read/ disabl enable disabl 0 0 65535
0 Write ed d ed
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Cam1YPosition
"Get or set the Y position of the video image"
This variables controls the Y position on the screen of the video image for this camera
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20e 0xf Integer 16 Bit Read/ disabl enable disabl 0 0 65535
0 Write ed d ed
Supported on CPU Platforms:
Toolchain Manual
Variables 169
i.MX 35 i.MX 6
Yes Yes
@Cam1Width
"Get or set the width of the video image."
This variables controls the width of the video image for this camera. On i.MX35 devices:
Any value that is not a multiple of 8 might be truncated to the next smaller multiple of 8 by
the hardware interface. On i.MX6 devices there is no restriction.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20e 0x10 Integer 16 Bit Read/ disabl enable disabl 8 8 65535
0 Write ed d ed
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Cam1Height
"Get or set the height of the video image."
This variables controls the height of the video image for this camera. On i.MX35 devices:
Any value that is not a multiple of 8 might be truncated to the next smaller multiple of 8 by
the hardware interface. On i.MX6 devices there is no restriction.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20e 0x11 Integer 16 Bit Read/ disabl enable disabl 8 8 65535
0 Write ed d ed
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
Camera2
@Camera2_NoOfEntries
"Number of entries in this group"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
Toolchain Manual
Variables 170
Toolchain Manual
Variables 171
@Cam2Hue
"hue setting"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20e 0x4 Integer 8 Bit Read/ enable disabl disabl 0 -127 127
1 Write d ed ed
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Cam2Interface
"Path to device file that is used for video input 2. Default value is device dependent"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20e 0x5 String 255 Read enable disabl disabl /dev/vi
1 Byte Only d ed ed deo0
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Cam2Name
"Name of camera position"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20e 0x6 String 255 Read/ enable disabl disabl Camer
1 Byte Write d ed ed a2
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Cam2Rotation
"Rotation of the video in degrees.Possible values are 0 or 90 degree. Any other value will
have no effect. Other rotation values can only be achieved in combination with
@Cam2Mirror."
Toolchain Manual
Variables 172
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20e 0xc Integer 16 Bit Read/ disabl enable disabl 0 0 90
1 Write ed d ed
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Cam2Mirror
"Set/Get Mirror settings for camera"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20e 0xd Integer 8 Bit Read/ disabl enable disabl 0 0 3
1 Write ed d ed
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Cam2XPosition
"Get or set the X position of the video image"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20e 0xe Integer 16 Bit Read/ disabl enable disabl 0 0 65535
1 Write ed d ed
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Cam2YPosition
"Get or set the Y position of the video image"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
Toolchain Manual
Variables 173
Camera3
@Camera3_NoOfEntries
"Number of entries in this group"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Toolchain Manual
Variables 174
@Cam3Brightness
"brightness setting"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20e 0x1 Integer 8 Bit Read/ enable disabl disabl 0 -127 127
2 Write d ed ed
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Cam3Contrast
"contrast setting"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20e 0x2 Integer 16 Bit Read/ enable disabl disabl 127 -1 255
2 Write d ed ed
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Cam3Saturation
"color saturation setting"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20e 0x3 Integer 16 Bit Read/ enable disabl disabl 127 -1 255
2 Write d ed ed
Supported on CPU Platforms:
Toolchain Manual
Variables 175
i.MX 35 i.MX 6
Yes Yes
@Cam3Hue
"hue setting"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20e 0x4 Integer 8 Bit Read/ enable disabl disabl 0 -127 127
2 Write d ed ed
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes No
@Cam3Interface
"Path to device file that is used for video input 3. Default value is device dependent"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20e 0x5 String 255 Read enable disabl disabl /dev/vi
2 Byte Only d ed ed deo0
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Cam3Name
"Name of camera position"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20e 0x6 String 255 Read/ enable disabl disabl Camer
2 Byte Write d ed ed a3
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Cam3Rotation
"Rotation of the video in degrees.Possible values are 0 or 90 degree. Any other value will
have no effect. Other rotation values can only be achieved in combination with
Toolchain Manual
Variables 176
@Cam3Mirror."
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20e 0xc Integer 16 Bit Read/ disabl enable disabl 0 0 90
2 Write ed d ed
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Cam3Mirror
"Set/Get Mirror settings for camera"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20e 0xd Integer 8 Bit Read/ disabl enable disabl 0 0 3
2 Write ed d ed
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Cam3XPosition
"Get or set the X position of the video image"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20e 0xe Integer 16 Bit Read/ disabl enable disabl 0 0 65535
2 Write ed d ed
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Cam3YPosition
"Get or set the Y position of the video image"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
Toolchain Manual
Variables 177
CameraControl
@CameraControl_NoOfEntries
"Number of entries in this group"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Toolchain Manual
Variables 178
@ActiveCamera
"Number of active camera as bit field."
Number of active camera as a bitfield:
Bit 1: Analog Camera 1 (0x1)
Bit 2: Analog Camera 2 (0x2)
Bit 3: Analog Camera 3 (0x4)
Bit 4: H264 Ethernet Camera (0x8)
On i.MX6 devices it is possible to show video of camera 1 and 2 or 2 and 3 at the same
time. Camera 1 and 3 is not possible due to hardware limitations. A H264 video frame can
be displayed any time. Note that a camera frame or page that was configured for camera 1
can not show the video of camera 2 when changing this variable and vice versa. Only a
switch from camera 1 to camera 3 and back is possible (only applies to i.MX6 devices).
On i.MX35 devices only one camera (and no H264) can be shown at the same time. A
switch from camera 1 to 2 to 3 and back is possible (mind the size and position variables
for each camera).
Invalid combinations and values set for this variable will not be accepted. Invalid values are
for i.MX6 devices: 0x5, 0x7, 0xd and any value greater 0xe or less than 0x0. For i.MX35
devices: anything not equal to 0x0, 0x1, 0x2 or 0x4.
If @VideoStatus is 1 when changing this variable, the new camera will be active. If
@VideoStatus is 0 when changing this variable, the new camera will not be active,
@VideoStatus has to be set to 1 then.
This variable does NOT need to be used (and should not be used) if the application (e.g.
PClient) handles video frames or pages automatically. This variable can in this case be
seen as a debug tool.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20ef 0x1 Integer 8 Bit Read/ disabl enable enable 0 0 14
Write ed d d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
Toolchain Manual
Variables 179
@VideoStatus
"Global analog video status"
0: video completely off
1: video overlay active of at least 1 camera
Use this variable to manually switch video on or completely off in combination with
@ActiveCamera
This variable does NOT need to be used if the application (e.g. PClient) handles video
frames or pages automatically.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x20ef 0x2 Integer 2 Bit Read/ disabl enable enable 0 0 1
Write ed d d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@LanguageUnits_NoOfEntries
"Number of entries in this group"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x220 0x0 Integer 8 Bit Read disabl disabl enable 13 13 13
0 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@SettingsLanguageEnum
"Number of language currently selected. (Set the current language with this variable)"
Enumeration is defined in the Project; directly affects @SettingsLanguageCode
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x220 0x1 Unsign 8 Bit Read/ enable disabl enable 0 0 127
0 ed Write d ed d
Toolchain Manual
Variables 180
Toolchain Manual
Variables 181
2: mmyyyydd
3: mmddyyyy
4: yyyymmdd
5: yyyyddmm
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x220 0x4 Unsign 8 Bit Read/ enable disabl enable 0 0 5
0 ed Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@SettingsTimeFormat
"time format to be used"
similar to ISO 11783-7, A.23.4
0: 24 h
1: 12 h, am/pm
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x220 0x5 Unsign 2 Bit Read/ enable disabl enable 0 0 1
0 ed Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@SettingsDistanceUnits
"type of distance units to be used"
similar to ISO 11783-7, A.23.5.2
0: metric [mm, m, km]
1: imperial [in, ft, mls]
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x220 0x6 Unsign 2 Bit Read/ enable disabl enable 0 0 1
0 ed Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
Toolchain Manual
Variables 182
@SettingsAreaUnits
"type of area units to be used"
similar to ISO 11783-7, A.23.5.3
0: metric [m², ha (hectares)]
1: imperial [sqare feet, acres]
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x220 0x7 Unsign 2 Bit Read/ enable disabl enable 0 0 1
0 ed Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@SettingsVolumeUnits
"type of volume units to be used"
similar to ISO 11783-7, A.23.5.4
0: metric [mm³, m³, l]
1: imperial [ga (gallon)]
2: US [ga (gallon)]
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x220 0x8 Unsign 2 Bit Read/ enable disabl enable 0 0 2
0 ed Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@SettingsMassUnits
"type of mass units to be used"
similar to ISO 11783-7, A.23.5.5
0: metric [g, kg, t]
1: imperial [long tonnes (UK), pounds]
2: US [short tonnes (US), pounds]
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x220 0x9 Unsign 2 Bit Read/ enable disabl enable 0 0 2
0 ed Write d ed d
Toolchain Manual
Variables 183
Toolchain Manual
Variables 184
System Settings
@SystemSettings_NoOfEntries
"Number of entries in this group"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x224 0x0 Unsign 8 Bit Read disabl disabl enable 15 15 15
0 ed Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@EnableUpdater
"Enable/Disable the ClientUpdater for e.g. updating the project on the device."
Bitwise coding:
Toolchain Manual
Variables 185
Example: 7 enables all three ways to update. 5 enables USB and ETH. 2 enables CAN
only. 0 disables all update possibilities.
After setting this variable the interfaces are immediately enabled. No restart is required.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x224 0x1 Unsign 8 Bit Read/ enable enable disabl 1 0 255
0 ed Write d d ed
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@UpdaterCANPort
Sets the CAN Port for updates of the ClientUpdater.
0: CAN Port 1 is used
1: CAN Port 2 is used.
WARNING:
This setting is only temporary. After a restart of the ClientUpdater or a device restart the
settings in the loaded project will be restored.
When a new CAN Port is set, the Clientupdater will change to the new Port directly. Please
check also that the baudrate of the new CAN Port is configured properly.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x224 0x2 Unsign 8 Bit Read/ disabl disabl disabl 1 0 255
0 ed Write ed ed ed
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
Projekt
@Projekt_NoOfEntries
"Number of entries in this group"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
Toolchain Manual
Variables 186
Toolchain Manual
Variables 187
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x240 0x3 Integer 32 Bit Read/ disabl disabl enable -1 -1 21474
0 Write ed ed d 83647
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@ProjektHistoryPage01
"get page that was current page before the one listed in @ProjektCurrentPage"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x240 0x4 Integer 32 Bit Read disabl disabl enable -1 -1 21474
0 Only ed ed d 83647
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@ProjektHistoryPage02
"get page that was current page before the one listed in @ProjektHistoryPage01"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x240 0x5 Integer 32 Bit Read disabl disabl enable -1 -1 21474
0 Only ed ed d 83647
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@ProjektHistoryPage03
"get page that was current page before the one listed in @ProjektHistoryPage02"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
Toolchain Manual
Variables 188
Toolchain Manual
Variables 189
Yes Yes
@ProjektTimePage
"Time elapsed since PClient switched to current page"
Time in ms since this page was initialized to be shown.
Could be used to control some animation.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x240 0xc Integer 32 Bit Read disabl disabl enable 0 -1 21474
0 Only ed ed d 83647
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@ProjektTakeScreenshot
"If this varaible is set to 1, a screenshot will be generated. Will automatically set back to 0."
The resulting screenshots will be saved on the device in the folder /opt/screenshots/
Reading this variable does not make sense.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x240 0xe Unsign 2 Bit Read/ disabl disabl enable 1 0 1
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@PClientVersion
"Version of the PClient"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x240 0xf String 255 Read disabl disabl enable NO
0 Byte Only ed ed d VALU
E
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
Toolchain Manual
Variables 190
@PClientSimulationMode
"Enable or disable PClient simulation mode"
Enable or disable PClient simulation mode (when enabled, variable simulation can connect
to PClient via Ethernet), see also @PClientSimulationPort
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x240 0x10 Unsign 2 Bit Read/ disabl disabl disabl 0 0 1
0 ed Write ed ed ed
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@PClientSimulationPort
"The TCP/IP port that shall be used for simulation applications."
The IP address for the TCP/IP connection is taken from @Ethernet0_IPAddress
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x240 0x11 Unsign 16 Bit Read/ enable disabl disabl 1337 256 9999
0 ed Write d ed ed
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@ChangeSoftkeyLevel
"Use this variable to trigger the change of the softkey level on the current page. See
detailed description for allowed values."
The following values are accepted:
100: Right softkey frame level down
101: Right softkey frame level up
200: Left softkey frame level down
201: Left softkey frame level up
300: Top softkey frame level down
301: Top softkey frame level up
400: Bottom softkey frame level down
401: Bottom softkey frame level up
The value will be reverted back to 0 directly after writing.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
Toolchain Manual
Variables 191
Variable Logging
@VariableLogging_NoOfEntries
"Number of entries in this group"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x241 0x0 Integer 8 Bit Read disabl disabl enable 12 12 12
0 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
Toolchain Manual
Variables 192
@LogLevel
"Select Level of data currently logged."
Set loglevel so that data is logged according to this level defined in project.
0: Logging switched off
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x241 0x1 Unsign 8 Bit Read/ enable disabl enable 0 0 10
0 ed Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@LogPath
"Path to folder where logging files are stored."
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x241 0x2 String 255 Read/ enable disabl enable /opt/pc
0 Byte Write d ed d lient/lo
gfiles
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@LogCopyPath
"Path where folder with logging files shall be copied/moved"
This path is intended to point to a removable media or remote computer where data is
copied on demand e.g. at the end of each day
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x241 0x4 String 255 Read/ enable disabl enable /disk/u
0 Byte Write d ed d sbsda
1
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
Toolchain Manual
Variables 193
@LogCopyNow
"Trigger copying / moving current log file and start a new file."
0: Do nothing
1: Copy log file from @LogPath to @LogCopyPath
2: Move log file from @LogPath to @LogCopyPath
Value is reset to 0 when copying/moving is finished
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x241 0x5 Unsign 8 Bit Read/ disabl disabl enable 0 0 2
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@LogCopyProgress
"Show progress of copying / moving log data."
Progress from 0 ... 100 percent.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x241 0x6 Unsign 8 Bit Read disabl disabl enable 0 0 100
0 ed Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@LogCopyAllNow
"Trigger copying / moving of all files inside @LogPath and start a new file."
0: Do nothing
1: Copy all log files from @LogPath to @LogCopyPath
2: Move all log files from @LogPath to @LogCopyPath
Value is reset to 0 when copying/moving is finished
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x241 0x7 Unsign 8 Bit Read/ disabl disabl enable 0 0 2
0 ed Write ed ed d
Supported on CPU Platforms:
Toolchain Manual
Variables 194
i.MX 35 i.MX 6
Yes Yes
@LogCurrentLogFileName
"Name of the current log file without the leading path"
The name of the log file as configured in Projektor. Contained tags are replaced (see
Projektor variable logging documentation)
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x241 0x8 String 255 Read disabl disabl enable NO
0 Byte Only ed ed d VALU
E
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@LogCurrentLogFileSize
"The current file size of the log file in kilobytes"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x241 0x9 Unsign 32 Bit Read disabl disabl enable 0 0 21474
0 ed Only ed ed d 83647
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@LogMaximumLogFileSize
"The maximum log file size in kilobytes"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x241 0xa Integer 32 Bit Read/ enable disabl enable -1 -1 10000
0 Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
Toolchain Manual
Variables 195
@LogCopyError
"Error Number 0 = OK"
If the copy / move feature fails in some way, you can see the error code here.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x241 0xb Unsign 32 Bit Read/ enable disabl enable 0 0 21474
0 ed Write d ed d 83647
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@LogCopyFinished
"0 = in Progress 1 = finished"
If you started the copy / move process you can determine if the process is finished. If the
process is finished and @LogCopyProgress < 100 you can read out @LogCopyError
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x241 0xc Unsign 1 Bit Read/ enable disabl enable 0 0 1
0 ed Write d ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
Visibility
@Visibility_NoOfEntries
"Number of entries in this group"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x0 Integer 8 Bit Read disabl disabl enable 66 66 66
0 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
Toolchain Manual
Variables 196
@VisibilityStore
"Store visibility of one or all visibility variable(s) remanently and overwrite the initial setting"
-1: do nothing
XX == 00 ... 63: store @VisibilityXX remanently.
0xa5a5: All visibility variables are stored.
When storing is finished, value is reset to -1.
Reading this variable will always return -1
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x1 Integer 16 Bit Read/ disabl disabl enable -1 -1 42405
0 Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@VisibilityReadRemanent
"Reload visibility of one or all visibility variable(s) from remanently stored value and
overwrite the current setting"
-1: do nothing
XX == 00 ... 63: overwrite @VisibilityXX with remanently stored value.
0xa5a5: All visibility variables are restored from remanently stored values.
When overwriting is finished, value is reset to -1.
Reading will always return -1
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x2 Integer 16 Bit Read/ disabl disabl enable -1 -1 42405
0 Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility00
"Represents Visibility group 00"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
Toolchain Manual
Variables 197
0x242 0x3 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility01
"Represents Visibility group 01"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x4 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility02
"Represents Visibility group 02"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x5 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility03
"Represents Visibility group 03"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
Toolchain Manual
Variables 198
0x242 0x6 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility04
"Represents Visibility group 04"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x7 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility05
"Represents Visibility group 05"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x8 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility06
"Represents Visibility group 06"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
Toolchain Manual
Variables 199
0x242 0x9 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility07
"Represents Visibility group 07"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0xa Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility08
"Represents Visibility group 08"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0xb Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility09
"Represents Visibility group 09"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
Toolchain Manual
Variables 200
0x242 0xc Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility10
"Represents Visibility group 10"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0xd Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility11
"Represents Visibility group 11"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0xe Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility12
"Represents Visibility group 12"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
Toolchain Manual
Variables 201
0x242 0xf Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility13
"Represents Visibility group 13"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x10 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility14
"Represents Visibility group 14"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x11 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility15
"Represents Visibility group 15"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
Toolchain Manual
Variables 202
0x242 0x12 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility16
"Represents Visibility group 16"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x13 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility17
"Represents Visibility group 17"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x14 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility18
"Represents Visibility group 18"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
Toolchain Manual
Variables 203
0x242 0x15 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility19
"Represents Visibility group 19"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x16 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility20
"Represents Visibility group 20"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x17 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility21
"Represents Visibility group 21"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
Toolchain Manual
Variables 204
0x242 0x18 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility22
"Represents Visibility group 22"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x19 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility23
"Represents Visibility group 23"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x1a Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility24
"Represents Visibility group 24"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
Toolchain Manual
Variables 205
0x242 0x1b Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility25
"Represents Visibility group 25"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x1c Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility26
"Represents Visibility group 26"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x1d Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility27
"Represents Visibility group 27"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
Toolchain Manual
Variables 206
0x242 0x1e Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility28
"Represents Visibility group 28"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x1f Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility29
"Represents Visibility group 29"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x20 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility30
"Represents Visibility group 30"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
Toolchain Manual
Variables 207
0x242 0x21 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility31
"Represents Visibility group 31"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x22 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility32
"Represents Visibility group 32"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x23 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility33
"Represents Visibility group 33"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
Toolchain Manual
Variables 208
0x242 0x24 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility34
"Represents Visibility group 34"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x25 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility35
"Represents Visibility group 35"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x26 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility36
"Represents Visibility group 36"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
Toolchain Manual
Variables 209
0x242 0x27 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility37
"Represents Visibility group 37"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x28 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility38
"Represents Visibility group 38"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x29 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility39
"Represents Visibility group 39"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
Toolchain Manual
Variables 210
0x242 0x2a Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility40
"Represents Visibility group 40"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x2b Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility41
"Represents Visibility group 41"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x2c Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility42
"Represents Visibility group 42"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
Toolchain Manual
Variables 211
0x242 0x2d Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility43
"Represents Visibility group 43"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x2e Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility44
"Represents Visibility group 44"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x2f Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility45
"Represents Visibility group 45"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
Toolchain Manual
Variables 212
0x242 0x30 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility46
"Represents Visibility group 46"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x31 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility47
"Represents Visibility group 47"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x32 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility48
"Represents Visibility group 48"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
Toolchain Manual
Variables 213
0x242 0x33 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility49
"Represents Visibility group 49"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x34 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility50
"Represents Visibility group 50"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x35 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility51
"Represents Visibility group 51"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
Toolchain Manual
Variables 214
0x242 0x36 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility52
"Represents Visibility group 52"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x37 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility53
"Represents Visibility group 53"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x38 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility54
"Represents Visibility group 54"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
Toolchain Manual
Variables 215
0x242 0x39 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility55
"Represents Visibility group 55"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x3a Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility56
"Represents Visibility group 56"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x3b Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility57
"Represents Visibility group 57"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
Toolchain Manual
Variables 216
0x242 0x3c Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility58
"Represents Visibility group 58"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x3d Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility59
"Represents Visibility group 59"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x3e Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility60
"Represents Visibility group 60"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
Toolchain Manual
Variables 217
0x242 0x3f Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility61
"Represents Visibility group 61"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x40 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility62
"Represents Visibility group 62"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x242 0x41 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@Visibility63
"Represents Visibility group 63"
Where a bit is set (1) the objects assigned to it are visible.
Default is "all objects visible"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
Toolchain Manual
Variables 218
0x242 0x42 Unsign 16 Bit Read/ disabl disabl enable 65535 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
Alarms
@Alarms_NoOfEntries
"Number of entries in this group"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x243 0x0 Integer 8 Bit Read disabl disabl enable 5 5 5
0 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@AlarmShow
"Alarm to be raised or removed. This is a queued variable, so reading it is not sensible."
Alarm number: Remove this alarm.
0x8000 & Alarm number: Engage alarm.
E.g. engage alarm 10: 0x800a ==32778;
remove alarm 10: 0x000a == 10
Engaging an undefined alarm will show a default informational alarm identifying the number
(removed by ACK)
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x243 0x1 Unsign 16 Bit Read/ disabl disabl enable 0 0 65535
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@AlarmCurrent
"Alarm currently shown on screen"
Alarm number of alarm currently shown on screen.
Additionally bit 15 is set when the alarm is acknowledged by the user.
To be requested by ECRR to receive user ACK.
Toolchain Manual
Variables 219
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x243 0x2 Unsign 16 Bit Read disabl disabl enable 0 0 36863
0 ed Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@IsAlarmEnqueued
"Ask if alarm number is stored in alarm queue"
Write alarm number to this variable to request if it is stored in queue.
Response has to be read from @AlarmEnqueued
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x243 0x3 Unsign 16 Bit Read/ disabl disabl enable 0 0 32767
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@AlarmEnqueued
"Response to writing @IsAlarmEnqueued"
Alarm number requested by writing to @IsAlarmEnqueued, bit 15 NOT set if it is enqueued.
E.g. writing 10 to @IsAlarmQueued may set this variable to 0x800a (is not enqueued) or
0x000a (is enqueued)
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x243 0x4 Unsign 16 Bit Read disabl disabl enable 0 0 36863
0 ed Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@AlarmCurrentPriority
"Priority of the currently visible alarm"
Alarm properties are as followed (n is the number of defined alarm priorities, maximum is
9):
Toolchain Manual
Variables 220
Virtual Keyboard
@VKB_NoOfEntries
"Number of entries in this group"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x244 0x0 Integer 8 Bit Read disabl disabl enable 6 6 6
0 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@VKB_EditedValue
"Value being edited by the VirtualKeyboard"
This variable stores the Value being edited by the Virtual Keyboard. This is always a string
value and appropriate casting is required for the Numeric DDO.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x244 0x1 String 255 Read/ disabl disabl enable NO
0 Byte Write ed ed d VALU
E
Supported on CPU Platforms:
i.MX 35 i.MX 6
Toolchain Manual
Variables 221
Yes Yes
@VKB_KeyPressed
"Value of the Last Key pressed on the Virtual Keyboard"
Stores the Last key that was pressed by the user in then VKB. This variable is updated on
the Key press event of the VKBButtonDDO
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x244 0x2 String 255 Read/ disabl disabl enable NO
0 Byte Write ed ed d VALU
E
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@VKB_Current
"Virtual Keyboard currently being Displayed"
VKB DDO to be displayed.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x244 0x3 Integer 32 Bit Read/ disabl disabl enable -1 -1 21474
0 Write ed ed d 83647
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@VKB_CurrentLayer
"Layer of the Active/Currently displayed VKB to be displayed"
ID of the Layer(Container Object) to be displayed for the current VKB.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x244 0x4 Unsign 32 Bit Read/ disabl disabl enable 0 0 21474
0 ed Write ed ed d 83647
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
Toolchain Manual
Variables 222
@VKB_OkCancel
"Indicates whether the OK or Cancel button was pressed"
This variable is updated on the Key Release event of the VKBButtonDDO.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x244 0x5 Unsign 8 Bit Read/ disabl disabl enable 0 0 3
0 ed Write ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@VKB_EditedDDO
"ID of the DDO being edited by the VKB."
This variable is updated on the Open For Input Event of the DDO, i.e when the VKB is to be
displayed for editing the ddo, with the ID of the DDO.
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x244 0x6 Integer 32 Bit Read/ disabl disabl enable -1 -1 21474
0 Write ed ed d 83647
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
J1939
@J1939_NoOfEntries
"Number of entries in this group"
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x245 0x0 Integer 8 Bit Read disabl disabl enable 8 8 8
0 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
Toolchain Manual
Variables 223
@MalfunctionIndicatorLampStatus
"Combined status and flash information of the DM1 Malfunction Indicator Lamp (calculated
value from all ECUs)"
See online manual J1939 => DM1/DM2 help page
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x245 0x1 Integer 8 Bit Read disabl disabl enable 0 0 15
0 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@RedStopLampStatus
"Combined status and flash information of the DM1 Red Stop Lamp (calculated value from
all ECUs)"
See online manual J1939 => DM1/DM2 help page
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x245 0x2 Integer 8 Bit Read disabl disabl enable 0 0 15
0 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@AmberWarningLampStatus
"Combined status and flash information of the DM1 Amber Warning Lamp (calculated
value from all ECUs)"
See online manual J1939 => DM1/DM2 help page
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x245 0x3 Integer 8 Bit Read disabl disabl enable 0 0 15
0 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
Toolchain Manual
Variables 224
@ProtectLampStatus
"Combined status and flash information of the DM1 Protect Lamp (calculated value from all
ECUs)"
See online manual J1939 => DM1/DM2 help page
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x245 0x4 Integer 8 Bit Read disabl disabl enable 0 0 15
0 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@MalfunctionIndicatorLampFlashing
"Calculated value from all flashing and status information for the Malfunction Indicator lamp.
The variable is either 0 or or will automatically flash slowly or fast."
See online manual J1939 => DM1/DM2 help page
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x245 0x5 Integer 8 Bit Read disabl disabl enable 0 0 1
0 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@RedStopLampFlashing
"Calculated value from all flashing and status information for the Red Stop lamp. The
variable is either 0 or or will automatically flash slowly or fast."
See online manual J1939 => DM1/DM2 help page
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x245 0x6 Integer 8 Bit Read disabl disabl enable 0 0 1
0 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
Toolchain Manual
Variables 225
@AmberWarningLampFlashing
"Calculated value from all flashing and status information for the Amber Warning lamp. The
variable is either 0 or or will automatically flash slowly or fast."
See online manual J1939 => DM1/DM2 help page
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x245 0x7 Integer 8 Bit Read disabl disabl enable 0 0 1
0 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
@ProtectLampFlashing
"Calculated value from all flashing and status information for the Protect lamp. The variable
is either 0 or or will automatically flash slowly or fast."
See online manual J1939 => DM1/DM2 help page
Index Subin Stora Lengt Acces Rema Force Initiali Defaul Min Max
dex ge h s nent Writin ze as t Value Value
Type Type g Invali Value
d
0x245 0x8 Integer 8 Bit Read disabl disabl enable 0 0 1
0 Only ed ed d
Supported on CPU Platforms:
i.MX 35 i.MX 6
Yes Yes
Toolchain Manual
CAN
CAN 227
4 CAN
The communication between the terminal and other devices is realized with the help of CAN
protocols. Each kind of protocol supported has its special properties to be configured
according to the requirements.
· CANopen
248
· CANFreestyle
228
(proprietary)
Firstly, you always need to set up the bit rate that you want to use. Open the menu
Communication -> Port Configuration...
In the dialog, choose the CAN port you want to use (1) and then the bit rate / baud rate / bus
speed that you want to use in your project for that port (2).
Toolchain Manual
CAN 228
4.1 CANFreestyle
General Introduction
CANFreestyle is a simple proprietary protocol, without e.g. the complexity of a transport
protocol. So this protocol is very easy to use.
Anyway you can modify CAN values that you want to send on the bus as well as the CAN
values that you received from the CAN bus. The modifiers are the same as for J1939.
Actually CANFreestyle provides a way to emulate other CAN protocols that are not
supported natively. To prevent confusion, CANFreestyle will be treated as a protocol in the
manual.
Additionally you can create a sequence of several CAN messages which can be sent
periodically.
To configure the port that shall be used for the communication select main menu tab
[Communication][Port Configuration...] . A new dialog 'Port Configuration' will
be opened. Depending on the Selected Port the Bus Speed should be set.
Toolchain Manual
CAN 229
ECU Configuration
Once the port is configured the protocol itself has to be assigned to it.
Toolchain Manual
CAN 230
ECUs are configured in the same "Terminal and Owner ECU(s) Configuration" dialog
that was used above to activate CANFreestyle protocol and to configure the display's
address. ECUs are configured in the lower part of this dialog:
Then the new ECU will automatically be selected and one can modify the other
parameters:
3. Provide a description that could help others to understand better which ECU is
meant here
4. In case the ECU is not needed anymore it can be deleted again. If it already owns
any variables, the owner will be changed to the display (PClient) when you delete
it.
Knowing that we could end up with a lot of variables per ECU it's a good idea to create
one variable group per ECU. Of course you are free to organize variables in groups
however you prefer.
Toolchain Manual
CAN 231
Toolchain Manual
CAN 232
5. Once you pressed "Enter" to confirm the new group name it will move according to
alphabetical order of all groups.
6. Press "close" once you're finished creating or deleting variable groups.
Creating CANFreestyle variables
Toolchain Manual
CAN 233
1. Open the "Communication" menu and choose "Variable Manager ..." entry
2. Variable Manager dialog opens (which can be used as shortcut to all variable
related tasks)
3. Press "Create a new Variable ..." button
4. "Add new variable" dialog opens
Toolchain Manual
CAN 234
If the variables was created successfully the above message will be shown at the lower
left box of the dialog.
Now you can either create more variables by editing the settings with or without "Reset"
or leave the dialog with "Close".
After closing the "Add New Variable" dialog you can modify all the properties of the
variable(s) just created or already existing in "Variable Manager" dialog:
Toolchain Manual
CAN 235
For a detailed description of all the variable properties and events please refer to
variable view 75.
Warning: If you type a group name that was not defined yet, a new variable group will be
created.
Warning: Depending on your sorting option the variable can "disappear" whenever a
modification is confirmed.
More details on this option can be found in variable view 75 .
So the recommendation is to create variables following the first option and use variable
view to manage and modify existing variables.
Toolchain Manual
CAN 236
1. If you want to edit CAN ID Masks you can find it in the main menu like shown above.
A new dialog CAN ID Mask will be open.
2. For performance reasons you can only define 6 CAN ID Masks
3. Two masks are predefined."Full 11 bit ID 1" and "Full 29 bit ID 2". So if you don't
need to filter the CAN ID you can use the predefined ones.
4. If you want to add your own proprietary mask you have to press the "Add" button
If the "Add" button is pressed a new line will be added at the table which is editable.
5. Here you can specify a name for the newly created mask.
6. You have to specify if the mask should be used for 11 or 29 bit CAN Identifiers.
7. In the field ID Masks you can specify the bits which should be evaluated for the CAN
Identifier in hexadecimal format.
Toolchain Manual
CAN 237
8. Deletes the currently selected mask. NOTE: The predefined mask can not be
deleted.
9. To save the settings you have to press the "OK" button
239
The created Masks can be used here .
Toolchain Manual
CAN 238
General
ID
Is the object ID created internally which can not be modified.
Name
The name of the mapping as used during creation. This name can be edited here.
Type
"Receive" or "Transmit" - this property can not be modified. If this needs to be changed
you have to delete and recreate the mapping.
Toolchain Manual
CAN 239
Description
Should be a valid description of the mapping which helps understanding its purpose and
context in future.
Mapping Variable Type
CANFreestyle only supports one type:
· Length based mappings find every variable (or constant) by position and length
within the CAN message. If length based mappings are less than 8 bytes long,
their variables or constants can be placed at any position. If they shall be longer,
the variables and constants have to be byte aligned.
Receive from / Transmit to
For receive mappings: Select the ECU which will send the Mapping where the variable
should be extracted.
For transmit mappings this property describes the destination address to be used (i.e.
the ECU that shall receive the values).
Little Endian/Big Endian
CANFreestyle values are transferred least significant byte first (Little Endian) by default.
Here you can change this to most significant byte first (Big Endian). If you have a
Mapping which contains Little and Big Endian values you have to create two separate
mappings.
This setting only applies to numeric values. Strings are expected to be "big endian" i.e.
the first byte of the word or sentence is the first one on the bus.
Mapping Length
Enter the length of the message you want to configure. The length has to be between 0
and 8 bytes.
Object Status
With Object Status Active the mapping is working, i.e. it is processing received
messages or sending them. With Object Status Inactive the mapping is not working. This
558
property can be switched at run time with the setProperty JavaScript function to
enable / disable CAN mappings.
CAN ID Type
This setting defines whether an '11 Bit Identifier' or '29 Bit Identifier' should be used for
the CAN ID.
CAN ID (0x)
This defines a CAN ID for the appropriate Mapping. The ID is not unique so it is
possible do define several mappings with the same ID e.g. if a multiplexer is used.
CAN ID Mask
If not all bits of the Identifier should be evaluated it is possible to define a CAN ID Mask
which only evaluate the needed bits of the CAN ID.
235
NOTE: You can define your own CAN ID Mask here .
Request Settings
Toolchain Manual
CAN 240
These settings define if and when the display sends a request (for receive mappings) or
answers a request for a transmit mapping.
The only pre-requisite is that the ECU sending the request is "known", i.e. defined in the
229
ECU Configuration .
Enable Request
For receive mappings this means that the display will send out a request to get the
Mapping based on the following settings.
For transmit mappings this means that the request defined in the following properties will
be recognized and answered with the transmit mapping.
Request message
This allows definition of a Message with fixed data section which will be sent out in order
to get the receive mapping based on the following triggers.
Request Message Transmission Period
This is only enabled for receive mappings. It defines the interval in milliseconds the
display will send requests for the mapping. Set to 0 if no periodic request is required.
Send Request On
· "Specific Variable Change" allows triggering the request based on the value
change of any variable in the project.
· "None" means there is no trigger besides the time based one.
Select Variable (Rx)
Only enabled if this is a receive mapping, request is enabled and "Send Request On" is
set to "Specific Variable Change". This allows setting the variable whose value change
should trigger sending the request.
Receive Settings
Receive Timeout
This is intended for receive mappings which are expected to arrive periodically - either
by default or by periodic request. If the mapping is not received in as many milliseconds
as defined here all variable values of the mapping are considered invalid and hence all
DDOs showing them will also be disabled (i.e. numeric fields shown with dashes, meters
and such grayed out).
Transmit Settings
Toolchain Manual
CAN 241
Please note that all other values in the mapping will be the ones provided by their
respective owners and even the new setpoint will in the next message be replaced by
the last measured value provided by the owner.
If you should want to write to the same variable from many sites you should consider
"PClient" as the variable owner which will accept all write requests but whose variables
will never become invalid again once they have a value.
Send Value On
· None: Mapping is only sent time based (if configured) and on request.
· Any Variable Change: Whenever one of the mapped variables changes its value
the mapping is sent out.
· Specific Variable Change: The mapping is sent out if the variable specified in
the following property changes its value.
Select Variable (Tx)
Choose the variable whose value change should trigger sending out the mapping. This
variable can be part of the mapping but doesn't have to be.
Transmission Period (in ms)
Defines the interval between messages for this transmit mapping. Set to 0 if time based
sending is not desired.
Defining Data Section of CANFreestyle Mapping
After setting all the general properties of the mapping now the data part has to be
defined.
Some general rules apply:
· All variable's and constant's positions define the position of the least significant bit
(for little and big endian)
· Transmit mappings have to be defined completely - we can not send "gaps" on the
bus.
· Receive mappings can have gaps - as long as the length can be determined.
· Receive mappings are recognized if all the following conditions are true:
Note: It is allowed to leave gaps in the data section of receive mappings. However, the
message length has to be configured correctly in the Mapping Length property
Note: The last condition allows covering multiplexed Mappings by defining a separate
mapping for each value of the multiplexer
To do this, use a constant value from the "Constants" group and adjust it to the length of
the multiplexer region in your system.
Then map this constant to the appropriate byte/bit position. Fill the rest with the variables
needed.
Toolchain Manual
CAN 242
Create the mapping multiple times with different constant values. Each mapping will only
react if its constant value equals the incoming message. The variables should match the
message structure for the according multiplexer value.
Events
This tab allows adding actions to mapping related events. It only appears for receive
mappings.
The configured actions for the events are executed directly in the CAN thread when the
event happens.
The CAN stacks will wait until the actions are executed.
OnReceiveTimeOutAction
This event is triggered if a receive mapping is not received within the period defined as
"Transmission Period". If this happens all the variables mapped to the PGN are
automatically considered invalid and additionally the action is executed.
If you should see any "Event Options" for this event - ignore them like the PClient does.
Possible actions that can be assigned are
· "No Action" which is the default
· "Set Value" to assign a constant value to a variable, e.g. to reset a counter, raise
an alarm or trigger something attached to a variable where "Force Writing" is true.
· "Execute Script" allows to execute a script and provides additional parameter
"Execute on every Xth Event" so that it is possible to execute the script only for e.g.
every third timeout.
OnReceiveTimeOutResolvedAction
This event is triggered if a receive mapping which time out before is received again. If
this happens all the variables mapped to the PGN are automatically considered valid
again (assuming the PGN received really contained a value for them) and additionally
the action is executed.
If you should see any "Event Options" for this event - ignore them like the PClient does.
Possible actions that can be assigned are
· "No Action" which is the default
Toolchain Manual
CAN 243
· "Set Value" to assign a constant value to a variable, e.g. to reset a counter, raise
an alarm or trigger something attached to a variable where "Force Writing" is true.
· "Execute Script" allows to execute a script and provides additional parameter
"Execute on every Xth Event" so that it is possible to execute the script only for e.g.
every third timeout.
OnMappingReceived
The action for this event is executed EVERY TIME the mapping is received (regardles of
value changes).
When a script action is executed, the variables used in the mapping will already have
been updated with the values from the CAN message.
Do NOT execute complex scripts at this event if the mapping is received very often!
Monitor the performance on the device with a realistic cycle time of all CAN messages.
Monitor the cycle time of transmit messages (the CAN stack has to wait until the
received action is over before taking care of other tasks like sending out transmit
mappings).
If you should see any "Event Options" for this event - ignore them like the PClient does.
Possible actions that can be assigned are
· "No Action" which is the default
· "Set Value" to assign a constant value to a variable, e.g. to reset a counter, raise
an alarm or trigger something attached to a variable where "Force Writing" is true.
· "Execute Script" allows to execute a script and provides additional parameter
"Execute on every Xth Event" so that it is possible to execute the script only for e.g.
every third timeout.
The following settings can be made for each variable added to the mapping:
Byte Bit Position
Position is shown as byte#:bit# where byte 1 is the byte closest to the CAN identifier and
bit 1 is the least significant bit of a byte. I.e. full CAN message starts with byte 1 directly
behind the CAN ID and ends with byte 8. In a byte with value 1 bit 1 is set, in a byte with
value 128 bit 8 is set.
These enumeration scheme matches the one used in J1939 standard documents so that
you can directly copy the position. Engine coolant temperature is defined as the first byte
- so set start position to 1:1.
Alternatively one can type the bit position directly: 1 refers to the bit closest to the CAN
identifier and 64 is the bit at the end of the CAN message.
Warning: This input does not always behave as expected when typing position by hand.
Finally the displayed "byte:bit" value is relevant.
The mapping is filled correctly if there are no gaps i.e. the whole message gets filled with
values.
Please refer to the following image for byte and bit enumeration within a CAN message.
This enumeration is valid for little and big endian variables since it only refers to the CAN
message itself.
Toolchain Manual
CAN 244
Length
Defines the size of the mapped numeric variable or constant in bits. If a string is mapped
this defines the length of the string in bytes.
Mapped length can be shorter than the length defined for the variable but not longer. By
default the variable length is used.
Is Constant
Enable this checkbox to define a constant. Depending on the mask constants can be
used to fill gaps or recognize multiplexers in receive mappings. In transmit mappings
constants are required for every part of the message not filled with a variable.
Uncheck this property to map a variable.
Constant Value
Although appearance does not change this property is only valid and editable for
constants i.e. lines where "Is Constant" property is set.
If valid this defines the numeric value of the constant. Please note that constants are
always expected to be numeric - there is no option to define string constants.
Group
Variable group containing the variable to be mapped. Does not apply to constants.
Variable
The variable to be mapped.
Mask
Variable or constant are bitwise ANDed with mask before they are applied.
239
See receive condition on how this can be used to receive multiplexed mappings.
245
See section mapping calculations for details about how this property applies to
receive and transmit mappings.
Mask is not used for String variables.
Offset1
Offset1 is a floating point value applied to the received value after mask and shift factor
but before scale and offset 2.
245
See section mapping calculations for details about how this property applies to
receive and transmit mappings.
Offset 1 is not used for String variables.
Values can be entered in decimal form or in scientific notation / floating-point
representation.
Shift X Bits
Shift received value to the right by as many bits as defined here. Negative values shift to
the left.
This value is applied after the mask but before offset and scale.
245
See section mapping calculations for details about how this property applies to
receive and transmit mappings.
Shift is not used for String variables.
Scale
Toolchain Manual
CAN 245
Floating point value to scale the received value before applying it to the mapped
variable. Is applied after mask, shift and offset 1 but before offset 2.
Scale is not used for String variables.
Values can be entered in decimal form or in scientific notation / floating-point
representation.
Offset2
Floating point value applied after all the other calculations are done.
245
See section mapping calculations for details about how this property applies to
receive and transmit mappings.
Offset2 is not used for String variables.
Values can be entered in decimal form or in scientific notation / floating-point
representation.
Empty Field
This a simple information field. It shows a "Warning" icon if e.g a variable is not
completely mapped.
242
In the example(4) a 16 bit variable is mapped only with 8 bits, so the warning is
shown.
Mapping calculations
The calculations applied to a mapping are defined mainly for receive mappings
For transmit mappings all calculations are inverted so that the same values can be
applied to receive and transmit mappings.
The formula converting a mapped area of a CAN message into the variable value is as
follows:
variable_value = (((( CAN_value >> shift ) & mask ) + offset1 ) * scale ) +
offset2
Consequently the calculation applied to transmit mappings inverts the above:
CAN_value = (((( variable_value - offset2 ) / scale ) - offset1 ) & mask ) <<
shift
Note: For constants only "shift" and "mask" are applied.
Note: Currently signed/unsigned calculation is performed based on variable definition. If
variable is signed this means the CAN_value is considered negative if the most
significant bit of the mapped area is set.
Sequences
Sequences can be used to send several transmit mappings periodically. For example it
can be used as a simple kind of transport protocol.
Create Sequences
Before you can create Sequences you have to define transmit mappings. For more
237
information please have a look at chapter Defining Variable Mappings
If transmit mappings are already defined please select in the main menu "Transmit
Sequences..." as shown below:
Toolchain Manual
CAN 246
Toolchain Manual
CAN 247
4. Combo box where you can select the sequence you want to edit.
5. Deletes the current selected sequence.
6. Name of the transmit sequence which is currently selected
7. Here you can add a description for the sequence
8. Target owner which should receive the sequence.
9. The "Sequence ID" is a unique internal ID, which is not editable.
10.The "Period" (in ms) defines the cycle for sending the sequence. NOTE: This is
the only way to trigger the sequence.
Toolchain Manual
CAN 248
13.If a mapping was mapped by mistake you can select the mapping and remove it
again with the "<< Remove" button
14.The list box contains the transmit mapping which should be transmitted via the
sequence
15.With the help of the buttons "Move Up" and "Move Down" you can change the
order of the transmit mapping at the sequence
Finally the dialog should be confirmed with "OK" to save the sequences.
4.2 CANopen
Introduction
Aside from CANFreestyle and J1939 protocol, it is possible to connect the device into a
CANopen network.
The CANopen stack is implemented on the standard CIA 301 4.2.0 and support the
following features:
· SDO Communication (Server and Client implementation)
o Download and Upload for expedited and segmented protocol
Toolchain Manual
CAN 249
Objects
0x1000 – Device Type
0x1001 – Error Register
0x1002 – Manufacturer Status Register
0x1003 – Pre-Defined Error field
0x1005 – COB-ID Sync message
0x1008 – Manufacturer Device Name
0x1009 – Manufacturer Hardware Version
0x100a – Manufacturer Software version
0x1012 – COB-ID Time Stamp Object
0x1014 – COB-ID Emergency Object
0x1016 – Consumer heartbeat time
0x1017 – Producer Heartbeat time
0x1018 – Identity Object
0x1200 – 0x127f – Server SDO parameter
0x1280 – 0x12ff – Client SDO Parameter
0x1400 – 0x15ff – Receive PDO Communication
Parameter
0x1600 – 0x17ff – Receive PDO Mapping Parameter
0x1800 – 0x19ff – Transmit PDO Communication
Parameter
0x1a00 – 0x1bff – Transmit PDO Mapping Parameter
Toolchain Manual
CAN 250
Then the user can choose the protocol CANopen on the desired CAN port
Toolchain Manual
CAN 251
Toolchain Manual
CAN 252
Default values /
Properties values / Range
Information
Name max 255 characters
Description max. 255 characters
Node ID 0x1 -0x7F 0x2
HeartBeat Timer (ms)
0-65535 0
(Object 1016 Sub1 - 127)
These COB-IDs are used if
the ECU requests a value
from the display device. The
ECU requests a value from
PClient SDO Server
the display (Client -> Server
Channel (object 1201-127F)
(rx from the view of the
device)) and the display
answers (Server -> Client (tx
from the view of the device))
0x600 + ${Node-ID} of panel
COB-ID Client ->Server (rx) 0x601 - 0x699 on
the selected CAN Port
0x580 + ${Node-ID} of panel
COB-ID Server->Client (tx) 0x581 - 0x599 on
the selected CAN Port
These COB-IDs are used if
the display requests a value
from the ECU. The display
requests a value from the
PClient SDO Client Channel
ECU (Client -> Server (tx
(object 1280-12FF)
from the view of the device))
and the ECU answers
(Server -> Client (tx from the
view of the device))
COB-ID Client ->Server (tx) 0x601 - 0x699 0x0
COB-ID Server->Client (rx) 0x581 - 0x599 0x0
Toolchain Manual
CAN 253
User can delete a whole CANopen protocol instance from the project. All CANopen
variables will be assigned to the owner PClient. PDO configuration will be completely
deleted.
User can delete a CANopen ECU node. All related variable will be assigned to the
PClient owner
Toolchain Manual
CAN 254
Toolchain Manual
CAN 255
Step 2: By pressing Add the new variable will be created with selected configuration
assuming that no issue is existing
Step 3: By pressing Close, the dialog Add a new Variable will be closed.
Alternative Step 2: By pressing Reset, all default values will be displayed.
Step 4: Once closed, other properties/ events can be updated using the variable manager
properties / events views.
The last created variable will be displayed. User can select an other variable by selection
Owner/Group/Variable
Toolchain Manual
CAN 256
Toolchain Manual
CAN 257
For each CANopen variable, user can configure the Index and Subindex of the
manufacturer object on his own device with properties ECU Variable Index and ECU
Variable Subindex.
The device can also send an SDO Download Write Request to the CANopenECU
using this setting and PClient Client Channel as defined in the Terminal and Owner
ECU(s) Configuration
Example:
The user wants to communicate via SDO Communication between his own CANopen
ECU and device. By updating a CANopen variable on the device using Java Script or
Encoder, a SDO
Download Write Request will be sent to the CANopen ECU.
User creates a CANopen Variable with CANopenVar with index 0x3000,0x1 and set
the ECU Variable Index to 0x4500 and ECU Variable Subindex 0xdd (as defined on his
own ECU). Other properties are set to default .
User assigns the variable into a numeric field as input for example. On the device, the
variable will be be updated using the Encoder to value 0x2. The following SDO
Download message will be sent by the device
[602|8| 2B 00 45 DD 02 00 00 00 ]
As soon as the answer is received from device, the value will be updated in the DDO.
[582|8| 60 03 24 01 00 00 00 00 ]
SDO Client/ Server of CANopen ECU
Since version 1.12 the CANopen stack does support SDO Upload Requests (read a
value from a CANopen ECU's object dictionary).
Preconditions for using SDO Upload Requests:
· The variable which shall be read via SDO Upload request needs to be owned by a
CANopen ECU
· The PClient SDO Client Channel COB-IDs of the CANopen ECU need to be
configured
· The ECU Variable Index and ECU Variable Subindex in the Protocol Specific
section of the variable properties need to contain the index and subindex of the
variable in the ECU's object dictionary.
The only way to trigger the sending of a SDO Upload Request is the new JavaScript
568
function requestVariableValueFromOwner .
Rules that apply for SDO Upload Requests:
Toolchain Manual
CAN 258
· There may be only one active SDO Upload Request. If more Upload Requests are
triggered via requestVariableValueFromOwner, they will be queued until either a
timeout happens (see below) or the ECU answers with a SDO Upload Response.
· The ECU has to answer to an SDO Upload Request within 100ms. If the answer
takes longer or is not answered at all, an SDOAbort message will be sent (with
error code SDO Protocol Timeout).
· The CANopen stack will only react to SDO Upload Responses if an SDO Upload
Request has been sent before (simulating a request with e.g. CANFreestyle will
not work).
Toolchain Manual
CAN 259
Toolchain Manual
CAN 260
The user enters a name for the PDO and selects the PDO type Receive or Transmit.
By pressing Add , the PDO will be created and appears as selected in the field Select
Mapping Object.
Toolchain Manual
CAN 261
Events
This tab allows adding actions to mapping related events. It only appears for receive
mappings.
The configured actions for the events are executed directly in the CAN thread when the
event happens.
The CAN stacks will wait until the actions are executed.
OnReceiveTimeOutAction
This event is triggered if a receive mapping is not received within the period defined as
"Transmission Period". If this happens all the variables mapped to the PGN are
automatically considered invalid and additionally the action is executed.
If you should see any "Event Options" for this event - ignore them like the PClient does.
Possible actions that can be assigned are
· "No Action" which is the default
· "Set Value" to assign a constant value to a variable, e.g. to reset a counter, raise an
alarm or trigger something attached to a variable where "Force Writing" is true.
· "Execute Script" allows to execute a script and provides additional parameter
"Execute on every Xth Event" so that it is possible to execute the script only for e.g.
every third timeout.
OnReceiveTimeOutResolvedAction
This event is triggered if a receive mapping which time out before is received again. If this
happens all the variables mapped to the PGN are automatically considered valid again
(assuming the PGN received really contained a value for them) and additionally the action
is executed.
If you should see any "Event Options" for this event - ignore them like the PClient does.
Possible actions that can be assigned are
· "No Action" which is the default
· "Set Value" to assign a constant value to a variable, e.g. to reset a counter, raise an
alarm or trigger something attached to a variable where "Force Writing" is true.
· "Execute Script" allows to execute a script and provides additional parameter
"Execute on every Xth Event" so that it is possible to execute the script only for e.g.
every third timeout.
Toolchain Manual
CAN 262
In the Configure Mapping tab, by pressing on Add, a new variable can be configured into
312
the variable mapping. Alternatively, the Visual CAN Mapping (5) can be used.
Once created, a PDO can be deleted by pressing the Delete button.
The user selects the group and then a variable. The PDO has a maximum length of 8 Bytes.
For Saving the PDO, user click on OK. By pressing on Cancel, all changes will be
cancelled.
The assignment of Variable into a PDO is depending on the access type of the variables
and the owner of the Variable
For variables which belongs to same owner as PDO or PClient, the following rules are
implemented:
Under
After few seconds depending on the number of PDO and variables, one or several EDS
Files (one per CAN instance) will be generated under the directory of the project.
4.3 J1939
General Introduction
J1939 is a CAN protocol defined by SAE (Society of Automotive Engineers) and is the
basis for some other standards such as NMEA2000 for GPS data on CAN and ISO 11783
in agricultural machinery. It is also widely used in "off-the-shelf" Diesel engines.
The protocol consists of the following main elements:
· unique identification of each participant on the bus
· standardized message and number format for many automotive use cases
· means to transfer data > 8 bytes (i.e. longer than one CAN message)
These main components are described in the following sections.
Toolchain Manual
CAN 263
Message Format
J1939 describes each signal (i.e. each value to be transmitted) as an SPN (Suspect
Parameter Number).
Many SPNs are combined into a PGN (Parameter Group Number) which gets a unique
number and describes what is actually transmitted on CAN bus.
Each PGN can be identified by the CAN identifier which has the following format (source:
http://de.wikipedia.org/w/index.php?title=Datei:J1939_Aufsplittung_CAN-Identifier.png)
The last byte of this CAN ID always lists the source address of the message i.e. it identifies
the ECU which sent this message.
The first three bits are always considered priority based on CAN interpretation i.e. the
lower value indicates higher priority.
Located between these two is the 18 bit PGN value consisting of
1. Bit 25 was "reserved" in the past but is meanwhile considered "Extended Data
Page" (0 for most predefined PGNs)
2. Bit 24 defines the "data page"
Extended Data Description
data page bit page bit
0 0 SAE J1939 Page 0 Parameter Groups
0 1 SAE J1939 Page 1 Parameter Groups (NMEA2000 ®)*
1 0 SAE J1939 reserved *
1 1 ISO 15765-3 defined*
*not supported by our devices
3. Bits 23 ... 16 define the "PDU Format": If "PDU format" is less than 240 then "PDU
specific" is 0 in the PGN definition and is replaced by the destination address in the
CAN identifier (PDU1). If "PDU format" is greater or equal to 240 then "PDU
specific" just extends the PGN number.
Toolchain Manual
CAN 264
4. Bits 15 ... 8 are "PDU specific" and either define the destination address (PDU1) of
the message or just extend the PGN number (PDU2).
Please note that the definitions above limit the number of valid PGNs:
PGN 0x000712 (==1810) is invalid since 0x07 == 7 is less than 240 and therefore the last
byte has to be 0.
A valid PGN would be 0x000700.
Another side effect of the above definitions is that all PGNs with "PDU format" >= 240 are
broadcasts because there is no room for a destination address in their CAN identifier.
Number Formats
J1939 typically transmits all values as unsigned with offset in metric units e.g. most
temperatures are transferred in one byte with -40°C offset and 1°C/bit resolution. This
means 50 is sent on CAN to indicate +10°C.
For most number formats the higher range is reserved and in almost every case "all bits
set" indicates "invalid" or "don't care". I.e. in the example above one could not transfer
temperature 215°C since the respective value on CAN would be 255 == 0xFF where all
bits are set.
Value transmission of all standardized PGNs happens in "little endian" format i.e. "least
significant byte first". Nevertheless some manufacturers use "big endian" format in their
proprietary messages.
Address Arbitration
Every ECU on a J1939 network has to claim its own address. The address consists of one
byte and either uses predefined suggestion from SAE, e.g. 0x00 for the engine ECU or is
dynamically negotiated at runtime.
In static networks addresses can be pre-configured but should nevertheless be claimed.
The tool allows to configure ECUs with static addresses where only the address is defined.
Alternatively addresses can be claimed dynamically i.e. each ECU claims an address and
if there should be conflicts the one with the lower J1939 name wins.
J1939 name is a 64 bit number which is supposed to uniquely identify each ECU (at least
on the network they are all connected to). It is sent as the data bytes of the address claim
PGN 0x00EE00 == 60928. Since the fields of this 64 bit number are not byte aligned the
address claim PGN can be considered a "worst case" scenario for little endian
transmission.
Transport Protocol
J1939 transport protocol is used whenever the amount of data exceeds 8 bytes so that
more than one CAN message is required to transfer them. J1939 transport protocol
supports transferring up to 1785 bytes.
Our toolchain automatically handles transport protocol but requires all data transferred to
be byte aligned in this case.
4.3.1 J1939 Basic Settings
262
This page is a follow-up of the general introduction into J1939 .
Here the general setup required to use J1939 is described. 269
There are two more pages describing setup of J1939 ECU and variable definitions
280
and
J1939 PGN mappings .
Toolchain Manual
CAN 265
Once the port is configured the protocol itself has to be assigned to it:
Toolchain Manual
CAN 266
Toolchain Manual
CAN 267
1. Select J1939 on the CAN port configured before - in our example we configured it for
CAN 1.
2. Type a valid name and description - these are mainly for your convenience and may
help others to understand the GUI configuration in future.
3. Choose "static" if you know all ECUs on your network in advance and want the
display to always claim the preferred address (or none if another ECU with a higher
priority claims the same address). Choose "dynamic" if the display should only start
with the preferred address but is allowed to use another address.
4. Select a "preferred source address". For static address claiming this will be the
display's address. For dynamic address claim the display will try to claim this
Toolchain Manual
CAN 268
address but use another one if forced to do so by an ECU with higher priority. The
default 0x54 == 84 is reserved for "Cab Display #2" in the main J1939 document.
5. Configure the display's J1939 name after pressing the button with the three dots.
This dialog is divided into three sections all showing the same J1939 in different formats:
· On top one can edit the sections of the name as defined in J1939-81. This sections
allows entering values in decimal (displayed in tooltip) and hexadecimal format
(displayed).
Toolchain Manual
CAN 269
· The second section shows the bytes as they will appear in the display's address
claim message on CAN bus. This section can only be edited in hexadecimal format.
· The lower section shows the resulting J1939 as 64 bit number. Like the section
above this one can only be edited in hexadecimal format.
In the following we describe the J1939 name configuration based on the fields as shown in
the upper section. If desired it could also be done in the other sections and all three will
always be synchronized.
1. The "Arbitrary Address Capable" bit is automatically set according to your selection
of "static" or "dynamic" address claim in the dialog before.
2. "Industry Group" 0 is applicable to all industries. More specific groups can be found
in table B1 of the main J1939 document.
3. "Vehicle System Instance" is defined in J1939-81 as "Vehicle System Instance is a
4-bit field that is used to identify a particular occurrence of a particular
Vehicle System within a connected network." and 0 refers to the first instance.
4. "Vehicle System" could e.g. identify "tractor" or "trailer"; 0 refers to "Non-specific
System" according to main J1939 document.
5. "Function" 0x3c == 60 refers to "Cab Display". Other options can be found in table
B11 and B12 of the main J1939 document.
6. "Function Instance" differentiates ECUs implementing the same function. 0 refers to
the first instance.
7. "ECU Instance" allows separating different ECUs belonging to the same function and
function instance. 0 refers to the first ECU instance.
8. "Manufacturer Code" has a default value. Other codes can be found in table B10 of
the main J1939 document.
9. "Identity Number" should allow differentiating two similar devices connected to the
same network. One can keep this as "0x00" since the display will automatically fill it
with a 21 bit number calculated from device part number and serial number.
Finally press "OK" to confirm the setting and close the dialog.
4.3.2 J1939 ECUs and Variables
262
This page is a follow-up of the general introduction into J1939 and the general setup
264
required to use J1939 .
Here we create J1939 ECUs and their variables. 280
ECUs are configured in the same "Terminal and Owner ECU(s) Configuration" dialog
that was used above to activate J1939 protocol and to configure the display's address.
Toolchain Manual
CAN 270
Toolchain Manual
CAN 271
3. Provide a description that could help others to understand better which ECU is
meant here.
4. Select "Static" since we want to configure an ECU with a static address here
(ECUs with dynamic addresses are handled below).
5. Type the source address this ECU will use. This can be done in decimal or
hexadecimal format. Anyways hexadecimal is shown.
6. In case the ECU is not needed anymore it can be deleted again. If it should
already own any variable all these will be owned by the display afterwards.
Creating an ECU with dynamic Address
The first steps are the same as for the ECU with static address described above - with
the exception of the "Address Claim" field which has to be set to "dynamic" and then the
"J1939 ECU Name" field becomes unlocked:
Toolchain Manual
CAN 272
Toolchain Manual
CAN 273
268
The fields of the J1939 name are explained here .
One could find out the name of an ECU with a CAN tool the name is the data part of the
address claim message looking like this in a CAN tool:
18EAFFFE 3 00 EE 00
18EEFF4D 8 23 47 E0 FF FF 00 FE FF
The first line shows a "request for address claimed" which you could send from your
CAN tool to get the response in the second line.
This second PGN 0x00EE00 is the address claim coming from ECU with source
address 0x4D and having the name we have as default in the dialog.
The most convenient way to enter this name obtained with a CAN tool is provided in the
center of the dialog.
Note: In our CAN example the bytes belonging to the "Identity Number" field are "23 47"
whereas the tool default is "00 00" because we expect them to be ignored anyways.
Toolchain Manual
CAN 274
The message above shows the J1939 name of one specific ECU. The challenge now is
to decide which parts of the name are relevant for the display to recognize this ECU on
the bus.
Masks are used to ignore those parts of the J1939 name which change from ECU
instance to ECU instance while evaluating the rest. Masks are applied via a bit-wise
AND so that a bit set to 0 on the masks means to ignore the respective bit of the name.
By default every bit of the configured name is considered - with the exception of the
"Identity Number" field which should be derived from the ECU's serial number.
Note: It seems the default mask for "Function" is 0x01 and not 0xFF as it should be.
Knowing that we could end up with a lot of variables per ECU it's a good idea to create
one variable group per ECU. Of course you are free to organize variables in groups
however you prefer.
Toolchain Manual
CAN 275
Toolchain Manual
CAN 276
5. Once you pressed "Enter" to confirm the new group name it will move according to
alphabetical order of all groups.
6. Press "close" once you're finished creating or deleting variable groups.
If you delete a variable group that is not empty, all the remaining variables of the deleted
group will be moved to group "Common" which is the default for all user defined
variables.
Toolchain Manual
CAN 277
Toolchain Manual
CAN 278
9. Select signed or unsigned data type at least as wide as the variable will be in
CAN message.
10.Change owner from default "PClient" to the newly created J1939 ECU. Note: If
you keep "PClient" you could handle the variable also but would not notice if the
ECU is not available anymore.
11.Select the newly created variable group for the variable.
12.Press "Add" to finally create the new variable with the settings made above.
Once you did all that the dialog could look like this:
Now you can either create more variables by editing the settings with or without "Reset"
or leave the dialog with "Close".
After closing the "Add New Variable" dialog you can modify all the properties of the
variable(s) just created or already existing in "Variable Manager" dialog:
Toolchain Manual
CAN 279
As you may have noticed the "Description" was added and the variable type was
modified from "INTEGER8" to "UNSIGNED8".
For a detailed description of all the variable properties and events please refer to
variables menu description 99 .
Toolchain Manual
CAN 280
Warning: Depending on your sorting option the variable can "disappear" whenever a
modification is confirmed.
More details on this option can be found in variable view 75 .
So the recommendation is to create variables following the first option and use the
variable view to manage and modify existing variables.
Toolchain Manual
CAN 281
Toolchain Manual
CAN 282
The dialog will populate with the default setting for the new mapping object which have to
be modified according to your intentions:
General
ID
Is the object ID internally created which can not be modified.
Name
The name of the mapping as used during creation. This name can be edited here.
Type
"Receive" or "Transmit" - this property can not be modified. If this needs to be changed you
have to delete and recreate the mapping.
Description
Should be a valid description of the mapping which helps understanding its purpose and
context in future.
Mapping
Variable Type
There are two types of mappings in this context:
Toolchain Manual
CAN 283
· Length based mappings find every variable (or constant) by position and length
within the CAN message. If length based mappings are less than 8 bytes long their
variables or constants can be placed at any position. If they should be longer the
variables and constants have to be byte aligned.
· Delimiter based mappings look for a dedicated separator character placed between
the variables and find the variable based on count of these delimiters. Delimiter
based mappings are typically bigger than one CAN message and have to be byte
aligned. If a string variable is mapped the value is fully written to the variable even if it
should be longer than the length defined for the variable.
Delimiter
Only gets enabled if "Delimiter" is chosen in "Mapping Variable Type" above. Then you can
set the separator char to be found in the message.
Receive from / Transmit to
For receive mappings/PGNs: Select the ECU who has to send the PGN where the variable
should be extracted. "Any ECU" is a wildcard meaning "don't care for the source address
and accept this PGN from anyone".
For transmit mappings this property describes the destination address to be used in the
PGN. Please note that some PGNs are broadcasts by definition so that this property will be
262
ignored for them. See also message format .
Little Endian
J1939 values are transferred least significant byte first (little endian) by default. Since some
manufacturers opt for big endian format in their proprietary J1939 messages you can
configure this here for the whole mapping. If you should have a PGN which contains both
types you have to create two separate mappings.
This setting only applies to numeric values. Strings are expected to be "big endian" i.e. the
first byte of the word or sentence is the first one on the bus.
Mapping Length
Enter the data length of the message you want to configure. The length has to be between 0
and 1785 bytes. Between 0 and 8 bytes, the data length of the mapping and the incoming
message are compared. Only if they match, the data will be put into the mapped variables.
Object Status
With Object Status Active the mapping is working, i.e. it is processing received messages
or sending them. With Object Status Inactive the mapping is not working. This property can
558
be switched at run time with the setProperty JavaScript function to enable / disable CAN
mappings.
PGN
Enter the PGN number in decimal of hexadecimal format (starting with "0x"). The value will
anyways be displayed in hexadecimal format. In our example PGN 65262 is displayed as
0xFEEE.
PGN Priority
For receive mappings this is ignored. For transmit mappings this priority is used when
sending the message. Priority can be any value between 0 (highest) and 7 (lowest). See
262
also message format .
Toolchain Manual
CAN 284
Request Settings
These settings define if and when the display sends a request (for receive mappings) or
answers a request with a transmit mapping.
In any case the display answers the "request for PGN" if it has a transmit mapping
configured for the requested PGN. The only pre-requisite is that the ECU sending the
request is "known" i.e. it claimed an address before or is listed as owner ECU in the GUI
definition.
Enable Request
For receive mappings this means that the display will send out a request to get the PGN
based on the following settings.
For transmit mappings this means that the request defined in the following properties will
be recognized and answered with the transmit mapping. Enabling this is only required if
there is a request to be recognized that is NOT the PGN 0x00EA00 == 59904 == "request
for PGN" as defined in J1939 standard.
Use standard request
Only appears for receive mappings. If enabled the display will send out a "request for PGN"
based on the following triggers.
Request message
Is only enabled for receive mappings where "use standard request" is not set. This allows
definition of a PGN with fixed data section which will be sent out in order to get the receive
mapping based on the triggers below. Depending on the "Receive from" setting this PGN
will be sent to the ECU who should provide the mapping or as a broadcast. One can select
all three proprietary types of PGNs for this request. 262
Note: PGNs 0xff00 ... 0xffff are broadcast by definition. See also message format .
Request Message Transmission Period
Is only enabled for receive mappings. This defines the interval in milliseconds the display
will send requests for the mapping. Set to 0 if no periodic request is required.
Send Request On
· "Specific Variable Change" allows triggering the request based on any variable in
GUI definition.
· "None" means there is no trigger besides the time based one.
Select Variable (Rx)
Only enabled if this is a receive mapping, request is enabled and "Send Request On" is set
to "Specific Variable Change". This allows setting the variable whose value change should
trigger sending the request.
Receive Settings
Receive Timeout
This is intended for receive mappings which are expected to arrive periodically - either by
default or by periodic request. If the mapping is not received in as many milliseconds as
defined here all variable values of the mapping are considered invalid and hence all DDOs
showing them will also be disabled.
Toolchain Manual
CAN 285
Transmit Settings
Events
This tab allows adding actions to mapping related events. It only appears for receive
mappings.
The configured actions for the events are executed directly in the CAN thread when the
event happens.
The CAN stacks will wait until the actions are executed.
OnReceiveTimeOutAction
This event is triggered if a receive mapping is not received within the period defined as
"Transmission Period". If this happens all the variables mapped to the PGN are
automatically considered invalid and additionally the action is executed.
If you should see any "Event Options" for this event - ignore them like the PClient does.
Possible actions that can be assigned are
· "No Action" which is the default
· "Set Value" to assign a constant value to a variable, e.g. to reset a counter, raise an
alarm or trigger something attached to a variable where "Force Writing" is true.
Toolchain Manual
CAN 286
OnMappingReceived
The action for this event is executed EVERY TIME the mapping is received (regardles of
value changes).
When a script action is executed, the variables used in the mapping will already have been
updated with the values from the CAN message.
Do NOT execute complex scripts at this event if the mapping is received very often!
Monitor the performance on the device with a realistic cycle time of all CAN messages.
Monitor the cycle time of transmit messages (the CAN stack has to wait until the received
action is over before taking care of other tasks like sending out transmit mappings).
If you should see any "Event Options" for this event - ignore them like the PClient does.
Possible actions that can be assigned are
· "No Action" which is the default
· "Set Value" to assign a constant value to a variable, e.g. to reset a counter, raise an
alarm or trigger something attached to a variable where "Force Writing" is true.
· "Execute Script" allows to execute a script and provides additional parameter
"Execute on every Xth Event" so that it is possible to execute the script only for e.g.
every third timeout.
Toolchain Manual
CAN 287
Note: The last condition allows covering multiplexed PGNs by defining a separate
mapping for each value of the multiplexer
Note: Message length is only compared if less than 8 bytes are defined. For messages
with flexible size or other reason to ignore length, make sure configure the length of the
message to a value >8.
Assume we want to complete the definition of our "Engine Temperatures 1" PGN so that
we can get the coolant temperature from it.
We only have to add the definition of the "engine coolant temperature" value. The length of
the message is defined in the message length property.
Toolchain Manual
CAN 288
behind the CAN ID and ends with byte 8. In a byte with value 1 bit 1 is set, in a byte with
value 128 bit 8 is set.
These enumeration scheme matches the one used in J1939 standard documents so that
you can directly copy the position. Engine coolant temperature is defined as the first byte -
so set start position to 1:1.
Alternatively one can type the bit position directly: 1 refers to the bit closest to the CAN
identifier and 64 is the bit at the end of the CAN message.
Warning: This input does not always behave as expected when typing position by hand.
Finally the displayed "byte:bit" value is relevant.
The mapping is filled correctly if there are no gaps i.e. the whole message gets filled with
values.
Please refer to the following image for byte and bit enumeration within a CAN message.
This enumeration is valid for little and big endian variables since it only refers to the CAN
message itself.
Length
Defines the size of the mapped numeric variable or constant in bits. If a string is mapped
this defines the length of the string in bytes.
Mapped length can be shorter than the length defined for the variable but not longer. By
default the variable length is used.
Is Constant
Enable this checkbox to define a constant. Depending on the mask constants can be used
to fill gaps or recognize multiplexers in receive mappings. In transmit mappings constants
are required for every part of the message not filled with a variable.
Uncheck this property to map a variable.
Constant Value
Although appearance does not change this property is only valid and editable for constants
i.e. lines where "Is Constant" property is set.
If valid this defines the numeric value of the constant. Please note that constants are always
expected to be numeric - there is no option to define string constants.
Group
Variable group containing the variable to be mapped. Does not apply to constants.
Variable
The variable to be mapped.
Mask
Variable or constant are bitwise ANDed with mask before they are applied.
280
See receive condition on how this can be used to receive multiplexed PGNs.
289
See section mapping calculations for details about how this property applies to receive
and transmit mappings.
Offset1
Offset 1 is a decimal value applied to the received value after mask and shift factor but
before scale and offset 2. 289
See section mapping calculations for details about how this property applies to receive
and transmit mappings.
Toolchain Manual
CAN 289
Example
Coming back to the example of "Engine Temperatures 1" PGN we would set the following
values:
Toolchain Manual
CAN 290
This will correctly provide temperatures from 0 ... 210 °C since we defined the variable as
"unsigned". CAN values 0 ... 39 will be converted into high unsigned values by Offset1.
Alternatively we could have defined the variable as "signed" so that temperatures of -40 ...
87 °C would be displayed correctly. Then higher values would be interpreted as negative
and the offset of -40 would make them even more negative.
It is planned to solve this by defining the CAN format independent of the variable format.
Until this works one could either live with the limitations described above or as a
workaround use the signed variable type and map one more bit than transmitted and then
reduce it with the mask to the correct size. This would require one unused bit next to the
variable though.
4.3.4 J1939 DM1 and DM2
For receiving and displaying the contents of DM1 and DM2 messages various settings can
be made.
To open the settings dialog use the main menu tab Communication | Protocols | J1939 |
DM1 / DM2 Settings.
Toolchain Manual
CAN 291
Select the CAN port for which you want to configure the DM settings. Only CAN ports
that have a J1939 protocol attached are available. When changing the CAN port you can
choose to apply the settings you have made for the current CAN port.
Select Translation File
Using a translation file can make the viewing of the trouble codes easier. In the
translation file the following translations can be made:
· ECU Address to ECU Name
· SPN to SPN Description
· FMI to FMI Description (general or SPN specific)
Example content of a translation file (for one language):
#ECU address to ECU Name translation
# syntax: ECU;ECUAddress;Translation
ECU;0x00;EMS
ECU;0x03;TECU
ECU;0x0b;EBS
ECU;0x33;TPMS
Toolchain Manual
CAN 292
#SPN translation
# syntax: SPN;Number;Translation
SPN;110;Coolant Temp.
SPN;1119;Exh. Oxygen
SPN;161;Shaft Speed
SPN;177;Oil Temp.
SPN;521;Pedal Pos.
SPN;1091;Pressure
SPN;258856;Tire F_L
SPN;258857;Tire F_R
SPN;258866;Tire R_F_L
SPN;258876;Tire R_R_L
SPN;258867;Tire R_F_R
SPN;258877;Tire R_R_R
The Translation File is valid for both DM1 and DM2 messages.
If the project is a multi-language project, other language translations can be added to the
existing lines. Here are some examples for two languages:
Toolchain Manual
CAN 293
#SPN translation
# syntax:
SPN;Number;TranslationLanguage0;TranslationLanguage1
SPN;110;Coolant Temp.;Kuehltemperatur
SPN;177;Oil Temp.;Oel Temperatur
SPN;1091;Pressure;Druck
DM1 Settings
With this checkbox the DM1 support can be enabled or completely disabled.
Log DM1 Messages To File
It is possible to log all DM1 DTCs to a file. Just enable the checkbox and enter a log file
name. If you choose .csv as suffix, it is easy to open that log file in Excel or in another
spreadsheet application.
Every DTC will be logged in a separate line. A date- and timestamp will be placed
before each DTC. If you have selected a translation file, the DTC components will be
translated.
Which DTC components will be logged, you can decide with the “ExtractXXX” settings
(see below)
The log file will be stored on the device in the directory /opt/logfiles/. The variables
@CurrentDirectory, @CurrentFile, @DestinationDirectory and @CopyFileOrFolder can
be used to copy or move the log file to an USB stick.
Note: There is currently no restriction in the size of the log file. Please consider deleting
or moving the log file to a USB stick at a regular basis (or if it becomes too big).
Toolchain Manual
CAN 294
If the “Open Alarm On Change” checkbox is enabled, the Alarm Number of an existing
Alarm can be entered in the text field.
Now whenever a new or changed DTC arrives in a DM message this Alarm will pop up
and the currently active DTCs can be presented to the user.
Advise: place a table object inside the alarm to show all active DTCs (see below for
table object settings).
Screenshot of an Alarm displaying DM1 Trouble codes in a table (with a valid translation
file configured):
When the checkbox “Update Table with extracted DM 1 Data” is enabled, the ID of an
existing Table Object can be entered in the filed “Enter ID of the Table Object”.
The DTCs of a DM1 message will be extracted and passed as data to the Table Object.
You can select which components of the DTC shall be passed to the Table Object by
enabling or disabling the “Extract ECU Name”, “Extract SPN”, “Extract OC” and “Extract
FMI” checkboxes.
If the Table Object shall only show ECU, SPN and FMI, select those three and deselect
“Extract OC” (recommended for DM1 since OC is always 1 in DM1 messages). The
Table Object should then be configured to have three columns.
Configure ECUs to track
In this section you can chose if you want to track the DM1 messages of all ECUs on the
selected CAN port or if you want to only handle a selection of ECUs.
If you want to track all ECUs and do no filtering you can just select “Track All ECUs” in
the bottom right.
If you want that not all ECU’s DM1 messages are handled, you have to disable “Track All
ECUs”. After that you can click the “Add ECU” button to add a new ECU to the list of
handled ECUs. Once the ECU was added, the address of the ECU can be changed by
clicking in the cell in the table.
To remove an ECU from the white-list, you can just select one and hit “Remove selected
ECU”.
Each ECU can then be configured if all SPNs shall be handled or only the configured
ones. Furthermore it can be selected if the DM1 message of one ECU shall be passed
Toolchain Manual
CAN 295
to a specific table object. To do the settings for each ECU, click the “…” button in the
“Settings” column to open the ECU settings dialog:
In this dialog it can be configured if all SPNs of one ECU shall be extracted or if only the
configured ones shall be handled. Furthermore it can be specified if an alarm shall be
triggered if a certain SPN is received in a DM1 message.
If all SPNs shall be extracted, the “Extract Errors of all SPNs” checkbox has to be
enabled.
If only some SPNs shall be handled, disable the “Extract Errors of all SPNs” checkbox.
Then just write the SPNs in the “Add SPN” text field and click Add or hit <Enter> on the
keyboard.
The new SPN will appear in the table on the left.
If you want to remove one or more SPNs, just select it/them and click the “Remove
Selected SPN” button.
After a SPN was added to the table it can be configured if a dedicated alarm shall be
engaged when the SPN is included in the DM1 message. For that, the alarm number
needs to be entered in the in the "Alarm" cell. The default value for that cell is -1 which
means: engage no alarm.
Additionally it can be configured if the alarm shall only be engaged for a certain FMI
number. Just write the FMI into the cell. The default value for the FMI cell is -1 which
means: engage the alarm for any FMI.
To trigger different alarms for different FMIs, the same SPN can be added several times
to the table and different FMIs and alarms can be configured.
For example take the screenshot above. It has the following SPN FMI Alarm settings:
110 -1 -1
116 0 16
116 1 17
177 -1 24
521 -1 -1
Toolchain Manual
CAN 296
110 -1 -1
1119 -1 -1
That means:
· Track SPNs 110, 116, 177, 521 and 1119
· Don’t engage an alarm for SPN 110 (FMI and Alarm are -1)
· Engage alarm 16 for SPN 116 if FMI is 0 (FMI is 0, Alarm is 16)
· Engage alarm 17 for SPN 116 if FMI is 1 (FMI is 1, Alarm is 17)
· Engage alarm 24 for SPN 177 and don’t care for FMI (FMI is -1, Alarm is 24)
· Don’t engage alarm for SPNs 521 and 1119 (FMI and Alarm is -1)
In the lower part of the dialog, it can be selected if the DM1 message entries of the
selected ECU shall be passed to a specific table object. The settings in this dialog
correspond to those in the parent dialog.
By clicking the “OK” button, all settings will be saved. When clicking “Cancel” all settings
will be discarded.
DM2 Settings
The only settings that can be made for DM2 messages is to enable or disable it and
“Update Table with extracted DM 2 Data” setting. This setting is the same as for DM1
messages. You can enter a different Table Object ID in the “Enter ID of the Table Object”
field than for the DM1 Table so that you can have different tables for both message types.
DM2 Messages are only sent on request. They can be either requested for single ECUs
or a global request can be sent. The following example shows how to make a global
request for all ECUs to send the DM2 messages.
First you have to create an internal variable (Communication | Variable Manager... |
button Create A New Variable) to which we can write. In this example it is called
j1939_dm2_trigger, the owner is PClient and the data type is UNSIGNED8. You are free
to choose index and subindex and the variable group:
Toolchain Manual
CAN 297
Now add two entries in the Configure mappings of variables for selected mapping
object section of the dialog by pressing the Add button twice. Make the same settings
as in the screenshot below:
Important is that the first 16 bit entry is constant with Mask 0xffff and the Constant Value
of 0xfecb. The following byte is our j1939_dm2_trigger variable. Here the Mask has to
be 0x0. Click OK on both dialogs.
Toolchain Manual
CAN 298
//overflow prevention
if (value >= 0x7fff)
{
value = 0;
}
value++;
setVariableValue(“j1939_dm2_trigger”, value);
Now every time the button/softkey is pressed and released, the DM2 request will be
sent. You can also attach this action e.g. to the “Page Init” event of the page where the
table is displayed.
Screenshots from an example DM2 Table Object running on adevice:
First without a translation file:
Toolchain Manual
CAN 299
Preconditions: Enable DM1 support. Enable “Log DM 1 Messages To File” and enter a
file name. Disable “ExtractOC”.
First create a Table Object. This table should have 5 columns.
The Table Heading should be: “Date;Time;ECU;SPN;FMI”.
For updating the table with the logged DTCs, a Script has to be executed. Assign an
“Execute Script” action to either a softkey’s/button’s “OnRelease” event or to the page’s
“Page Init” event.
The Script has to look like this:
//Create an Array to store each line of the log file:
var logFile = new Array();
//create a string with the name of the log file (the same
that was configured in DM1 Settings)
var logFileName = “j1939_DM1_log_file.csv”;
Toolchain Manual
CAN 300
Note: You can scroll through the table if “Set As Input” property of the table is enabled.
Note 2: The JavaScript readFile function is currently limited to only read the first 2MB of
a file. If the log file is larger than that, the rest of the content is not shown. Consider
deleting the log file if the size of it gets too big.
DM1 Lamps
The standard SAE J1939-73 defines four lamps:
- Malfunction Indicator Lamp
- Red Stop Lamp
- Amber Warning Lamp
- Protect Lamp
The status of these lamps is transmitted in the DM1 messages of each ECU in bytes 1 and
2. Each lamp has a status value (byte 1):
Malfunction
bits 8-7 Indicator
Lamp Status
Red Stop
bits 6-5
Lamp Status
Amber
bits 4-3 Warning
Lamp Status
Protect
bits 2-1
Lamp Status
and a flashing indicator (byte 2):
Toolchain Manual
CAN 301
Flash
bits 8-7 Malfunction
Indicator
Flash Red
bits 6-5
Stop Lamp
Flash Amber
bits 4-3 Warning
Lamp
Flash
bits 2-1 Protect
Lamp
There are 8 predefined internal variables available that represent these values (read-only).
The variables are available in the group J1939 and are named
· @MalfunctionIndicatorLampStatus
· @RedStopLampStatus
· @AmberWarningLampStatus
· @ProtectLampStatus
· @MalfunctionIndicatorLampFlashing
· @RedStopLampFlashing
· @AmberWarningLampFlashing
· @ProtectLampFlashing
The @XXXLampStatus contains the combined information of the status and flashing bits in
the DM1 message with 16 possible combinations. The @XXXLampFlashing variable
contains the direct "is it on or not?" information, when the lamp is flashing, it will change
value between 0 and 1, if the lamp should glow, it will stay 1. So normally only the
@XXXLampFlashing variable is needed to display the lamps by creating a list object with
two images (an on and an off lamp image) and connecting it with the @XXXLampFlashing
variable.
The following table shows the possible values of the DM1 message bytes and our
variables. The calculation is the same for all the four variables:
Value for Status read Value for Flashing
value of value of
from DM1 messages read from DM1
@XXXLampStatus @XXXLampFlashing
(Byte 1) messages (Byte 2)
0 0 0 0: Lamp Off
0 1 1 0: Lamp Off
0 2 2 0: Lamp Off
0 3 3 0: Lamp Off
1 0 4 0/1: Flashing 1Hz
1 1 5 0/1: Flashing 2Hz
1 2 6 0: Lamp Off
1 3 7 1: Lamp On
2 0 8 0: Lamp Off
2 1 9 0: Lamp Off
2 2 10 0: Lamp Off
2 3 11 0: Lamp Off
3 0 12 0: Lamp Off
Toolchain Manual
CAN 302
As can be seen in the table above the status 2 and 3 for the lamp status and value 2 for
flashing will always switch off the flashing variable. If the used ECUs support these states, a
custom handling of these values needs to be developed manually by using the value of the
@XXXLampStatus variables.
If multiple ECUs send DM1 messages, the lamp stati and flashing information will be
combined from all messages. The priority (highest to lowest) is: Fast Flashing, Slow
Flashing, On, Off.
To enable the calculations for the lamp variables DM1 support needs to be enabled.
4.4 Import DBC File
Please note that this feature has to be bought first. Contact your vendor to obtain a license.
Without a license, it is not possible to import the content of a DBC file.
Disclaimer!
Please always validate your DBC file in Vector before importing it. This will ensure
that the import works and the functionality is as expected.
If you have problems importing a DBC file and you don't think it's a problem in the
file, please send the file to your vendor for analysis.
Toolchain Manual
CAN 303
To start the import, open the dialog under the menu Communication -> Import -> Import DBC
File.
Note that the dialog can only be opened with an opened project.
In the first step, a CAN protocol needs to be chosen and a DBC file is selected.
In the second step, the CAN messages and variables to be imported are selected.
Toolchain Manual
CAN 304
If no CAN protocol has been added to the project, an import of a DBC file isn't possible, so
first at least one CAN protocol has to be added.
The Configure ECU(s) dialog can be reached with the button "Configure ECU(s)...".
If there are several protocols in the project, one has to be chosen for the DBC import, i.e. in
which protocol should the CAN mappings be added.
When a protocol has been added and / or chosen, a DBC file can be loaded.
The program will check the integrity of the DBC file. If there is a problem parsing the file, an
error message will be shown, indicating the problem with the file.
In this case the parsing failed with an error in the Message_3 of Signal_9. The hint
[NumberFormatExceoption] shows the root cause for this issue. In the example the Factor
1g could not be parsed.
Toolchain Manual
CAN 305
In this case the parsing failed with an error in the Message_3. The hint
[ParameterExceoption] shows the root cause for this issue. In the example a parameter
Message-Length is missing.
NOTE: Please validate the DBC-File with Help of Vector CANdb++ Editor and solve all
warnings before importing the DBC-File.
When the DBC file is loaded successfully, at first the ECU(s) used in the DBC file can be
mapped to (an) existing ECU(s).
If no ECU is chosen (<no assignment>), the ECU will be created for the selected protocol. If
an ECU with the same name already exists, the ECU name is marked in red. Then the
ECU needs to be mapped to an existing ECU, since there can't be two ECU's with the
same name.
Toolchain Manual
CAN 306
For the CAN-Protocol CANopen the COB-ID oft the ECU must be unique. In case that the
COB-ID already exists the ECU can not be imported.
To solve the error either the COB-ID in the DBC-File must be updated or the COB-ID of the
already existing ECU must be updated.
Toolchain Manual
CAN 307
In the second step of the dialog the CAN messages and variables for import can be
selected. To select a CAN message for import, activate the check box in the Select column
in the upper table of the dialog. With Select/deselect all CAN Messages, all messages can
be selected or deselected at once.
If a CAN message in the DBC file is not compatible with the selected CAN protocol (e.g. a
J1939 message with > 8 bytes is defined in the DBC file, but the CAN Freestyle protocol
has been selected to be used), the CAN message will be displayed with a red error icon
and cannot be selected.
Toolchain Manual
CAN 308
The direction type (Receive or Transmit) can be set in the column Type. The name of the
CAN mapping can also be changed from what is given in the DBC file. Finally, the owner
can be changed in the column Owner to specify from which ECU the message will be sent.
When a CAN message is selected for import, the according variables are automatically
selected for import, as well.
The table below the CAN messages shows the mapped variables of the currently selected
CAN message.
The variable name, index, sub index and owner can be changed in this table. When the
name, index and sub index is changed, it is checked if there is a conflict with existing
variables. If there is, the according variable will be marked in red and an import is not
possible.
Toolchain Manual
CAN 309
Only when there are no conflicts, the import process can be finished.
If a variable is already existent in the project and the data type matches the variable in the
DBC file, the variable will be used. In the Mapped Variable table, such variables will be
shown with a gray background. No properties of such variables can be changed (since the
variable is already created in the project).
Toolchain Manual
CAN 310
In the bottom of the dialog an overview of the CAN messages and variables in the DBC file
and the ones selected for import are shown.
In the Variables tab all variables in the DBC file are shown. In this tab, variables can be
selected and deselected for import.
Please note: If a variable is deselected in this tab, this will lead to the deselection of all
CAN messages where this variable is mapped.
Variables can be imported without the CAN messages, but CAN messages can not be
imported without the according variables.
In the upper part of the dialog the search field can be used to filter the currently displayed
variables / CAN messages.
Below the search field the current view can be filtered for
Toolchain Manual
CAN 311
Additionally, regular expressions can be used to search in the DBC file data.
The search can also be used to specifically search in certain data fields:
Note: The term CAN-ID is used for all protocols, i.e. for CANopen it searches COB-IDs and
for J1939 PGNs.
Variables tab:
· Column Import [boolean] => #Import=false/true => true if Object is selected for import
· Column GroupName [String] => #GroupName=<GroupName>
· Column Name [String] => #Name=<VariableName>
· Column Length [Integer] => #Length=8 or #Length<=4
· Column Index [Integer] => #Index=0x3000
· Column SubIndex [Integer] => #SubIndex=0x01
· Column Owner [String] => #Owner=<OwnerName>
· Column CANMessage [String] => #CANMessages=<MessageName>
#Messages=<MessageName>
Other searchable Properties are:
· Description [Sring] => #Description=<Text>
· CanImport [boolean] => #CanImport=false/true => false shows all Variables which can
not be imported! e.g. Length of Variable is >32bit
Examples:
Toolchain Manual
CAN 312
#Name=engine searches for all mappings that contain the character sequence "engine"
anywhere in the mapping name or variable name
Note: Search terms can be combined (AND) by typing them one after another:
#CAN-ID=0x7e5 #Name=engine searches for all mappings with ID 0x7e5 that have
engine in the mapping name or variable name
Note: Invalid search terms will be ignored, e.g. the upper search term combination in the
Variables tab will ignore the #CAN-ID search term.
Note: The search terms are case-sensitive.
Only when there are no conflicts, the import process can be finished by clicking Finish.
Then a dialog will be shown with an overview of what has been imported.
Toolchain Manual
CAN 313
Toolchain Manual
CAN 314
Alternatively, you can use the three shortcuts in the tool bar.
VCM Toolpanel
(1) Button panel for add, delete, move variable mappings. The buttons will be
disabled/enabled depending on the state of the VCM table.
(2) Search field to search after variables
(3) Variables tree with all variables which can be mapped to current mapping object. The
variable tree will be update automatically when the search field changes.
Adding Variables
Toolchain Manual
CAN 315
1a Add variable
By clicking on "Add" (1) a new dialog will be opened. In the dialog you can select a
variable which is allowed to map to the current mapping object.
By clicking "OK" the selected variable will be added to the current mapping object.
Toolchain Manual
CAN 316
If you want to add a constant you have to select the check box "Constant" (1). All other
fields will become disabled.
By clicking "Add" a constant will be added to the current mapping object.
Note 1:
If a variable is selected the new variable/constant will be added at the start bit of the
selected variable. All other variables will be moved as much as the length of the added
variable.
If no variable is selected the new variable will be added after the last mapped variable.
If there is not enough space for the original length of the variable the mapped length will
be reduced.
If the mapping object is full mapped the add button will be disabled. When it is tried to
drag and drop a variable from variable tree the variable will not be added to the mapping
object.
2b. Add constants via drag and drop from variable tree.
If you want to add a constant from variable tree you can select a constant form group
"Constants" (only for CANFreestyle and J1939). For CANopen the group "Constants" is
replaced with the group "Dummy Variables".
It works as same as for variables (see above 2a.).
Toolchain Manual
CAN 317
Note 2:
Constants are not available for CANopen mappings and J1939 delimiter mappings.
The length of the constant can be changed by clicking on the constant at the VCM table.
Afterwards you can update the length at the VCM Configure Mapping table.
312
For more information about the VCM Configure Mapping table look here .
Deleting variables
Like with adding a variable there are also several ways to delete a variable:
If a variable is moved down and behind the current variable is another variable, the
variables switch there positions.
If there is no other variable behind the current selected on the variables moved by 1 bit.
Toolchain Manual
CAN 318
Note:
If the current variable starts at bit 1. The button "Move Up" is disabled.
If the mapping object is full mapped and the last variable is selected the button "Move
Down" is disabled.
If the last bit of mapping is mapped (e.g. bit 64 for CANFreestyle mapping) the
mapping object is full mapped.
Variable tree
1. Structure
The variable tree contains all variables which can be mapped for the current mapping
object.
Toolchain Manual
CAN 319
The variable tree (2) will be updated in real time after the first input at the search field.
Only variables which hit the search text will be shown.
To add a variable to the VCM table drag a varaible (3) and move it to the VCM table.
After dropping the variable, it will be visible at the table.
2. Variable icons
With the help of the variable icons it can be seen if the variable is already mapped in one
of the mappings of the current protocol.
There are 4 icons:
In this example it is displayed that the variable "Engine OiI" is mapped at one
- Receive Mapping => "Rx: Engine_Rx"
and it is mapped at one
Toolchain Manual
CAN 320
Note:
If a variable is opened at the variable manager which is already mapped, the variable is
not complete editable. Properties like "Name", "Index", "SubIndex", "Data Type" and
"Length" are not editable.
Once the variable is not mapped anymore, the variable will complete editable again.
VCM Table
Toolchain Manual
CAN 321
Overview
- The column titles shows the bit number of the current byte and the row titles shows the
appropriate byte.
- The table starts in the upper right corner with bit index 1, which represents the first bit
of a mapping.
- At the end and start bit the name of mapped variable / constant is shown.
- Each mapped variable has its own color. Altogether there are 16 colors for variables
and 4 grey colors for constants.
- Each variable (when selected) can be moved or removed at the table.
- Selected variables are shown with a bold black border and the color is lightly
highlighted.
- It is possible to select several mapped variables by selecting the first one and then
press "Shift" and selecting afterwards another variable.All variables between are
selected too.
- Selected variables are a variable block which can only be moved together.
- As long as you stay at the view "Visual CAN Mapping" all add, remove, move steps
and property changes can be reverted. If you want to undo the last step you can press
"Ctrl + z" or "Ctrl + y" to redo the last step.
Moving variables
To move a variable via drag and drop, you can drag the first bit of the of a variable ("Bit
1" "Engine_Speed") and then move the mouse to "Bit 9")
If you drop the variable on "Bit 9" the variable "Engine Speed" and the "Constant"
switch their positions.
Toolchain Manual
CAN 322
After dropping the variable "Engine_Speed" at "Bit 9" they switch the position
Now you can move the variable "Engine_Speed" to "Bit 17". If you try this you will get
following picture (1):
The variables "Engine_Speed" and "Engine_Temp" can not switch their positions,
because variable "Engine_Temp" has a length of 16 bits but the gap (Bit 9 - Bit 16) is
only 8 bits.
For that reason the moved variable "Engine_Speed" is turned to red color, which
means that the current position of the variable is not valid. If you try to drop the variable at
"Bit 17",
the variable will go back to its last valid position at "Bit 9".
If you drop the variable "Engine Speed" at "Bit 25", "Engine Speed" and
"Engine_Temp" will switch their positions (1).
Note:
Every time if the moved variable(s) can not be dropped on the current mouse position
the variables will be turned to red color to demonstrate that the current position is invalid.
The variable(s) can only be moved if the gap is big enough to switch the variables.
If you want to move the variables e.g. to add a gap you have to select all variables and
move them together.
Deleting variables
If you want to delete some variables from the VCM table, you can select (1) them and
then drop them outside of the table.
Toolchain Manual
CAN 323
The variables will turn red if they are dragged out of the table. If you drop them outside
they will be deleted.
The position of the other variables will not be changed after the deleting. (Except for
CANopen (CANopen does not allow gaps): For CANopen the other variables will be
moved to the beginning of the table.
VCM table context menu
(1) Delete
The selected variable(s) will be deleted.
Toolchain Manual
CAN 324
Note:
The colors of mapped variables will not be stored.
If the tool is closed and started again, it could be that colors of mapped variables
changes.
VCM table tool tip
If the mouse hovers over a variable at the variable tree, a tool tip will be shown with the
useful information
If a variable is mapped to a mapping object and afterwards the length is reduced, the
mapped variable gets an attention symbol ((1,2) ).
This should help to identify mapped variables with a wrong length. If everything is fine,
the attention icon can be ignored.
Toolchain Manual
CAN 325
At the tool tip (3) you can see the original length (16 bit) and the mapped length (8
bit).
You can easily change the values at the VCM Configure Mapping Table like at the view
"Configure Mapping".
If the "Byte Bit Position" (2) is changed the VCM table view will updated in real time. The
same happens if the "Length" is updated.
It is also possible to make a current variable to a constant or change the variable.
For more information about the fields "Mask", "Offset1", ... please have a look at the
227
appropriate protocols .
Toolchain Manual
Project Properties
Project Properties 327
5 Project Properties
This chapter describes the various properties of a project.
The project properties can be opened in two ways:
· Using the Properties entry of the right click context menu of the project node in the
Projects tree window.
· Using the Project Properties entry in the File menu.
General Properties
The version number of the project can be set here. The version can be displayed in the
103
project with the variable @ProjektVersion .
Project Date (3)
Toolchain Manual
Project Properties 328
The project date (e.g. release date) can be set here. This date can be displayed in the
103
project with the variable @ProjektReleaseDate
Home Page (4)
The selected page will be used as project home page. The project home page is the
page which opens when the display starts. The Home Page can also be set via context
menu in the project tree.
Here the default path for images can be set. Whenever you open an image browser for
opening an image, the browser starts using this path.
Loading Screen Image (6)
The loading screen image is an image that will be displayed while the project is being
loaded on the terminal. Showing a progress bar is possible.
The loading screen image should have the same resolution as the target device display
and must be an image in PNG file format.
When selecting an image, the image will be renamed to 'loading_screen.png' and
placed in the terminal_files/additional_files directory in the project folder.
How to Show a Progress Bar
To create a progress bar you only need to make parts of the loading screen
transparent. the progress bar will become visible automatically. The only constraint is
that the progress bar runs from the left to right of the display. It starts at 10% of the
display resolution and ends at 90% of the display resolution. Example:
Toolchain Manual
Project Properties 329
The image above shows an example loading screen image. The shaded area is
transparent in the image and will be filled with a loading bar when the project
loads. It provides a positive feedback for the end user that something is happening.
The progress bar will be drawn in black, filling a white area. So the colors of the
loading screen image should be chosen accordingly.
The following image shows the progress bar using the above loading screen image.
Toolchain Manual
Project Properties 330
The selected boot logo image will be directly displayed after the cold start displayed.
First the project should be updated on the device. By pressing on "Deselect logo", the
image will be removed.
Note that the deselected boot logo will not be removed from the device upon the next
installation of the
Project Icon Image (8)
The project icon will be used on the applications running on the target device e.g. sunrise
or
for PClient- and variables simulation applications running on windows operating system.
By pressing on "Deselect icon", the selected image will be removed.
Hide Cursor (9)
On display devices running X-Server, the mouse cursor is hidden when this property is
enabled.
Panel Name (10)
Toolchain Manual
Project Properties 331
Enter the serial or article number your project is allowed to run on.
Note: The serial number is device specific. When using a serial number, you have to
update your project for each device the project shall run on. Using the article number, the
project runs on all devices having the same article number. Note that this only makes
sense if you have a specific article number, otherwise the project will run on all devices
with the same article number.
Article Number (13)
327
If you enable this property, the Article / Serial Number (12) is treated as an article
number. When disabled, it is treated as a serial number.
Select Copyright Protection Image (14)
You can customize the image that is shown if a copyright violation is detected.
· Select an image file for using a customized image.
· Deselect the customized image and use the default copy protection warning .
To prohibit "hackers" extracting your project from a device and changing it (e.g. remove
the copy protection), you can enable the password protection.
If password protection is enabled, you have to enter the password whenever you try to
open the project.
If Password Protected (15) is enabled, you have to enter the password to use here.
Language Properties
348
Unit Properties
Toolchain Manual
Project Properties 332
348
The Units chapter describes these properties.
Object Properties
This property changes the default setting for accepting variable changes. There are two
possibilities available:
· Send Value Directly
· Send Value on Enter
Here is an example that describes the difference between them:
Lets assume your project uses an numeric field. The value of this numeric field is 1. The
variable attached to the numeric field is called FanSpeed. The user uses the encoder to
navigate to the numeric filed. Then he presses the encoder to open the numeric filed for
editing. Now he rotates the encoder. The value shown in the numeric changes
..2..3..4..5..6..7..8..9..10. When reaching value 10, the user ends editing of the value by
pressing encoder again.
Now the difference between the two possibilities is:
Send Value Directly: The variable value of variable FanSpeed changes nine times: 2,
3, 4, 5, 6, 7, 8, 9, 10. If the variable was mapped to a transmit CAN message which is
sent on any value change, this message would be sent nine times, too. Another example:
Toolchain Manual
Project Properties 333
Here you can change the default softkey frame width for landscape display orientation or
height for portrait display orientation. whenever you create a new page, the default
width / height is used for the softkey frames.
Key Properties (3)
When you enable this property, the user can use the encoder to navigate through the
softkeys in the softkey frames.
Softkey frame Fadeout Time (6)
This value defines the delay time until the softkey frames are faded out (i.e. hidden).
Softkey frames are shown again, when the user presses a softkey or if a java script
shows them again.
A value of zero means: Disable fade out.
Duration for "Long Press / Release" Event
This time defines the time how long a user needs to press a key or touch the screen for
triggering a long press event. The long release event will be executed immediately when
a long press event was triggered and the user releases a key.
Toolchain Manual
Project Properties 334
Unused.
Select Home Key Designator (9)
Unused.
Allows changing the transparent border color. The color which is selected here will not
be drawn on the screen, it will be drawn transparent.
It's also possible to disable transparent border color by clicking No Color button. Note:
To get rid of the blue border around all objects that are created on the screen, set this
property to blue (0,0,255).
Size of List Object Scrollbar (11)
When a list object contains more elements than can be displayed at once, a scrollbar
appears. This property defines the scrollbar width.
Default Border Profile (12)
This property allows changing the border color profile. By clicking the button, the
following window appears:
Toolchain Manual
Project Properties 335
Alarm Properties
368
The Alarms chapter describes these properties.
Toolchain Manual
Project Properties 336
color. Only the combinations you have created as Font Attributes are available when
creating your project pages. When designing your project pages you can use all the font
attributes you have defined and combine them with the available fonts. Whenever you need
a new combination of size, style and color, you need to create a new Font Attribute. This
allows you to quickly change e.g. the size of the text for all String Fields that use the same
Font Attribute.
Toolchain Manual
Project Properties 337
To create a new Font Attribute, enter a new font attribute name in (4) and click the Add
button. The name entered here will be used to select a Font Attribute while creating the
project pages. Afterwards you can configure the new Font Attribute as described
below.
To change the properties of an existing Font Attribute select the Font Attribute (5).
Then change the size (6), style (7) and color (8) according to your needs.
To delete a Font Attribute select the Font Attribute to delete (5) and click the Delete
button.
To make new font styles available you can import True Type Fonts here.
You also can delete fonts, because each font increases the size of the projects.
Note: It is highly recommended to delete unused custom fonts.
Note: Please be aware of the copyright situation of fonts.
Note: Font files have a lot of name metadata. The font file will only be used successfully
if the font name is the same in as many places as possible. You can check and change
these settings with a font editor like FontForge:
Toolchain Manual
Project Properties 338
Preview (3)
You can use the preview to see how the selected font looks with the selected font
attribute. The background will change color between black and white depending on the
brightness of the set font color so it is always visible.
Toolchain Manual
Project Properties 339
410
In this category line attributes for the 2D Graph can be created and modified.
To create a new line attribute, enter a name in the Line Attribute Name field and press Add.
A line attribute consists of:
- a color - click on the color bar and select a color
- a width - enter a width or change the value with the up/down buttons. Line widths between
1 and 255 pixels are allowed.
- a "Line Art", i.e. a dash pattern - click on the squares to change the dash pattern
There is a preview field showing the result of the settings made.
Visibility Properties
360
The Visibility chapter describes these properties.
Toolchain Manual
Project Properties 340
To delete an existing Input Character Attribute choose the one to delete (1) and click
Delete button.
To create a new Input Character Attribute enter a name for the new attribute and click
Add button. The name is used in the editor while creating project pages to make a string
object use the Input Character Attribute.
To change the characters available for an Input Character Attribute choose the attribute
to change (1). Then you can choose any of the fonts defined in the tool (3).
Now you can start selecting characters by clicking them in the table (6). The table shows
the characters in Unicode (UTF-8 encoding form) code pages.
For faster selection of code pages, you can select the subset (4) (it contains a list of
character blocks) and click Select all characters button. Using the same procedure, you
can also unselect code pages by clicking the Select all characters button again.
Furthermore there are buttons available for fast selection of typical character ranges (7).
They can also be used to unselect characters by pressing the buttons again.
The selected characters are further shown in the bottom of the window (8).
Note: For a complete listing of the normative character blocks in the Unicode Standard,
see http://www.unicode.org/charts/
Virtual Keyboard
When your project uses virtual keyboards for entering values you should configure, which
virtual keyboards have to be used for which language. Because the character set used by
languages are very different, you most likely need to create one virtual keyboard per
language used in your project.
Toolchain Manual
Project Properties 341
First you need to create the virtual keyboards. Then open the virtual Keyboard section of
the project properties and select the virtual keyboards that have to be used for each
language.
Images
Here it is possible to clean up the folders "original_images" and "terminal_files" to delete
unused images.
1. If an image is added to a project the original image will be added to "original_files"
folder. Additionally the scaled or modified image is added to "terminal_files" folder.
When the project is updated (objects are deleted) it could be that images will be removed
from "terminal_files" folder and the original image is not used anymore.
In this case it could be helpful to delete unused original images.
2. Normally the "terminal_files" folder is automatically cleaned up. But if images have been
manually copied to this folder, the user has the possibility to remove them.
NOTE: Please never manually copy images to "terminal_files" folder. This folder is
completely maintained by the application.
If you do anyway please be aware that the files will not be used by the application and disk
space is lost on the target device when project is downloaded.
HINT:
Original Files: On clicking "Clean up" (1) all unused images with file extension (jpg, jpeg,
bmp, png, gif, svg) will be deleted in "original_images" folder.
Toolchain Manual
Project Properties 342
Terminal Files: On clicking "Clean up" (2) all unused images with file extension (png, gif,
svg) will be deleted.
342
For more information about "Image Handling" please refer to the Image Handling
Chapter.
ISOBUS
For OPUS A6G2 and OPUS A8, ISOBUS projects can be created, see here 53 .
The ISOBUS functionality can be toggled in this category.
Graphical and mapping objects that are problematic will be deactivated when the option is
activated for an existing project.
Please note that the new page layout and the miniview will only be available when the
project is saved, closed and re-opened.
Same goes for deactivating the ISOBUS functionality. The page layout will be reset and the
miniviews will be removed by saving, closing and re-opening.
Toolchain Manual
Project Properties 343
"Original Image" means the image which is added to the project via "Image chooser"
dialog. This image will be copied to "original_images" folder and will never be modified by
the tool.
"Scaled Image" means the image which is created from "Original Image" with e.g. modified
height and witdh. This image is saved in "terminal_files" folder.
Overview
The new Image Handling was introduced in the tool version (1.9.x).
For the Image Handling there is a separat file "image_list.xml" which stores all
informations about the images in a project. The file is saved in the project folder.
During working on the project the Tool creates an temporary file called "image_list.tmp"
which saves all image changes in the project. When project is saved the "image_list.tmp"
file is saved to "image_list.xml" and the temporary file will be deleted.
All original and scaled image infomrations are stored in these file. Each image name is
stored with the according MD5 checksum. The MD5 checksum is used to recognize if there
are duplicate images. Additionally the "image_list.xml" file stores the assignment between
image property and Object.
Purpose
The Image Handling shall help to avoid duplicate images in the project. The device has
restricted resources and they should not be wasted with duplicate images.
This helps to keep the performance on the device (by loading the project) and save
restricted disk space.
Image Naming
This chapter shall describe how the naming of images works in the Tool.
Original Image Naming
Toolchain Manual
Project Properties 344
The scaled image contains the name of the original image with the extension of "Width"
and "Height" and optional "Color of Transparency".
Example:
Original Image Name: test.png
2. For original images files with extension GIF or SVG the SAME image will be used for
original and scaled images. For these image formats the "Transparency Color" is NOT
available.
Example:
Original Image Name: test.svg
Scaled Image Name: test.svg
ATTENTION:
The name of the images will be modified only when project is saved. That means if an
image (test.png) is assigned to an Picture Graphic Object with Width = 100 and Height =
80 the Scaled Image Name is "test_100_80.png".
The name is immediately updated. BUT if now the size of the Picture Graphic is
updated. e.g. to Width = 60 and Height = 40 the image name will not be updated to
"test_60_40.png" until project is saved.
(2) The Image Chooser dialog is open with the currently configured image.
Toolchain Manual
Project Properties 345
Toolchain Manual
Project Properties 346
Toolchain Manual
Project Properties 347
(11) When property "Height" and "Width" are changed, a new scaled image is created with
new name "ireland_100_100.png".
NOTE: The image name of property "Image To Display" is not changed until "Save" is
performed.
Now, if a new Picture Graphic object is created with same "Height" and "Width" and the
same original image is assigned again, the Image Handling recognizes that the scaled
image is already used and doesn't create it again. The already existing scaled image is
also used for the new Picture Graphic object.
Toolchain Manual
Project Properties 348
If the tool Version > 1.9.x is used and a project with a lower version (< 1.9.x) is opened the
project is automatically converted for new Image Handling.
After the conversion of the project, all scaled images will be recreated and renamed. This
step is necessary to avoid duplicate images.
For recreating the scaled images the original images must be available. By missing of the
original images, the old scaled images are used but they will be renamed in any cases to
343
new format according rules described in Image Naming Chapter.
Note:
If it is not desired that the scaled images are recreated, you can delete all images in the
"original_images" folder before converting the project. Then all old scaled images are not
recreated.
For performance reason, this step it is not recommended!
Consistency Check
The new Image Handling has a "Consistency Check" which is performed after every
"Save" and "Load" actions. This Check ensures that all images which are used in the
project are stored in "terminal_files" folder. If images are missing they will be created
again. But the "Consistency Check" can only be performed properly if the original images
are available in "original_images" folder. If a scaled image is not available in
"terminal_files" folder, it will not be visible in the tool.
5.2 Languages
5.3 Units
This feature is always a little bit misleading. The tool and the run time on the device do not
offer any pre-defined calculations like Celsius to Fahrenheit and vice versa. You can see the
groups of units in the project properties in the Unit category.
Toolchain Manual
Project Properties 349
What you see here are possible groups of units which you can use. There are no automatic
calculations done in the background. They all have to be defined within the tool and the
properties of the objects. The current unit settings for the different unit categories (1) and the
general unit setting (2) are only for the development phase. Setting the default unit system (3)
does currently not have an effect.
To enable this feature for an object you have to change the dependency property of an object.
Change the dependency from "None" to "Unit" and you will see that some properties will get
"..." buttons.
This is an example for a numeric object. These properties differ depending on the object
selected (please see object reference for details). Usually you can enter only one value in
"Offset", "Scale" or "No of Decimals". Now with the Unit dependency you can click the "..."
button and get a new dialog.
Toolchain Manual
Project Properties 350
This is the example for the "Scale". Here can now enter the values which shall be used for the
scale depending on the unit which is currently chosen for the unit group.
For example: You choose the unit group "Force Units". Per default this group is selected as
metric, so the scale value entered in the metric field is used. To change this you can make
use of two mechanisms. First you can set the "Current Unit System" within the project
properties (this will only have an effect in the designer, not at run time). The second is that you
can change it during run time with the @SettingsForceUnits variable. Please note that you can
103
not choose all unit systems for all variables. Please see the variables for details. For the
force unit group you can choose, for example, only: similar to ISO 11783-7, A.23.5.8
So what this feature does, in the end, is switch between different offset and scaling value sets
for objects displaying numerics directly or graphically, and texts for String Fields.
5.4 Variable logging
Important note: If you have selected variables inside the variable logging dialog and
delete them outside (e.g. variable list), the variables are not automatically updated. If
you have deleted variables for example with the variable list, please go one time
inside the variable logging dialog and save the project afterwards. Now the lists are
up to date. Do not worry if any variable which is not available at runtime is still in the
list, this is anyway handled at runtime of the device.
Variable Logging provides the possibility to capture valuable process and sensor data, giving
the insight into past process upsets and events. To configure the Variable Logging use the
main menu tab File | Project Properties and select the Variable Logging category.
Toolchain Manual
Project Properties 351
The tab provides you an overview of the current available variables (1). Now you can add (3)
and remove (4) the variables which you like to log with the according labelled buttons. All
selected variables you will find in the right tree view (2). Variables are written to a file. How the
variables are written is defined by the method of logging. You basically have two choices
"fixed time based logging" and "event based logging".
General Options
Changes to older versions: Log path and Copy/Move path can be set during runtime with
the variables @LogPath and @LogCopyPath. The defaults are mentioned below.
Variable Default
@LogPat
/opt/pclient/logfiles
h
@LogCo
/disk/usbsda1
pyPath
Toolchain Manual
Project Properties 352
After finishing the input, use the OK button to store the log file header or the Cancel button
350
to discard all changes. To see all tag options go to Allowed tags for file header .
Define Line Prefix (2)
Right besides the label Define Line Prefix (2), enter a string with which every line of the log
file will begin. On the right side of the line edit field a button Reset Line Prefix is lo-cated.
Clicking this button will set the following default text to the line edit field:
<YYYY>-<MM>-<DD>_<hh>-<mm>-<ss>.<s/10>
Define Delimiter Character (6)
On the right side of the label Delimiter Character, enter one character that will be inserted
between each variable value (time based) or between variable name, event and value
(event based). It is possible to enter only one character.
"Fixed Time Based Logging" or "Event Based Logging" (7)
You can choose the option which is right for you. The time based option writes all selected
variables in one line. This makes it easy to transfer the data into a spreadsheet. The
variable entries are sorted in the order you defined inside the time based logging tab.
The event based option writes one line per variable per event. By default it includes the
variable name and the event when the variable is written. If you like to have shorter entries
350
please refer to the chapter Event based logging .
Toolchain Manual
Project Properties 353
File settings
It is possible to select between two options that will effect the creation of new log files:
· Continuous Logging
· New File at Restart
The user can select one of the options by clicking one of the radio buttons with the
respective labeling. When selecting continues logging only two files are created. You can
see this at the log file name it changed to
To define the maximum file size of one logging file, enter the size in kilobytes right besides
the label Maximum File Size (2). A Size of 0 will stop logging when no more disk space is
available. Default value is set to 1000 kilobyte. During runtime it is possible to adjust the
maximum file size with the variable @LogMaximumLogFileSize. Please note that this
variable is also checked at runtime. You can only set the file size between the
range of 100 kilobyte up to 10000 kilobyte. Please note too that this variable is
remanent. That means that the value on the device always overwrites the value
coming from the project. To reinitialize all variables please re-install the runtime on
the device.
"Continuous Logging" and "New File at restart" (1). Both options have main impact on the
file based ringbuffer of the logging mechanism. For both options you can set the maximum
filesize (2). If you do that the maximum filesize on the device is calculated (4). The image
above shows the second option. With "Continuous Logging" you have a maximum of two
files of the file size in the memory, which you can see above. The number of files field is not
changed accordingly, it is only changed by the "new file at restart" option.
Toolchain Manual
Project Properties 354
"New file at restart" opens new options (as seen in the screenshot). Now the option
"Number of files" is enabled and you can set the number of files in the ringbuffer. Please
note that this is a file based ringbuffer not a variable based one. As you can see here the
maximum filesize is calculated with Number of files + 1. The reason is because we open a
new file and delete afterwards.
For variable logging you can use half of the available mass storage of your device. The
usage is indicated by two fields. One is the current disk usage (4) and the two color coded
fields with the 512MB and 1GB label (5). These are in first place indicators. At runtime the
real available space is checked. If the space is not sufficent older data is overwritten. This
is shown by the error variable @LogCopyError (codes 20 and 25).
Here is only one option for the time based logging. It is a timer value (1) that can be defined
in the line edit field besides the Logging Interval label. The lowest number, the user can
enter shall be 500. You can sort the variables by drag and drop. The shown order will be the
order in the log file. The header columns can not be used for sorting.
Toolchain Manual
Project Properties 355
Log Level must be switched at runtime between the 0 (no logging), and 1 to 9 (logging the
variable up to the defined level only) with the internal variable @LogLevel. The default value
of the @LogLevel is set to 0 on the terminal, so it shall be changed to activate the logging.
To change the log level variable you can use a numeric field or set the variable via Java
Script. The rest columns define the trigger for logging the selected variable. By clicking the
editable cells they are marked as selected (like a check box). Multi select is possible.
Please note: If @LogCopyPath do not exist, the copy / move feature is not creating a
folder.
Please note: The runtime is running on a full featured Linux system. In some cases the
mount point of the external devices (SD, USB, etc.) are different from the default. In those
cases it is needed to change the @LogCopyPath. The @LogCopyPath is not updated
automatically when plug in an USB stick. If you plug a USB after the device is powered on
you have to set the @LogCopyPath accordingly.
Variab
Default
le
@Log
/opt/pclient/logfiles
Path
Toolchain Manual
Project Properties 356
Variab
Default
le
@Log
CopyP /disk/usbsda1
ath
Use the @LogCopyProgress to show the overall progress when copy / move the log files to
an external memory. Connect this variable to a linear bargraph and you have a nice pro-
gress bar.
To copy and move files, we are using a sync write to avoid data loss, when the user un-plug
an external storage. This is more secure than a usual write, but is slower, too. The reason
why using sync write is simple: If the progress bar shows 100% you can be sure that the
write progress is nearly finished. Please wait for 2 seconds before unplugging the external
memory.
The second variable shows an error code. If everything is ok the Error Code is 0. The error
350
code table show the detailed codes.
Everything OK:
Variable Expected value
@LogCo
pyProgre 100
ss
@LogCo
pyFinish 1
ed
@LogCo
0
pyError
Something went wrong:
Variable Expected Value
@LogC
opyProg <= 100
ress
@LogC
opyFinis 1
hed
@LogC
>0
opyError
Please note: After the copy process is finished the external device is not unmounted from
the file system, but you can unplug without an explicit unmount or eject. Please wait for 2
seconds after the copy/move finished.
To make sure the USB stick is mounted correctly, you can use a Java Script like this for
your copy/move event:
Toolchain Manual
Project Properties 357
if (usb_mounted == 1)
{
var usb_path = getVariableValue("@USBMountPath"); //get
path of mounted usb stick
setVariableValue("@LogCopyPath",usb_path); // Set the
path of the USB stick
setVariableValue("@LogCopyAllNow",1); // Copy LogData to
the selected path (move is 2 instead of 1)
}
Error codes
Co
Explanation
de
File Error. Can happen in two ways. First a file was not found or something went
16
wrong during writing on external storage
The already used disk space plus the new file will exceed the reserved disk space
20
(half partition). The oldest File will be deleted. (only for "new file at restart")
The available disk space is not sufficient for the next new logFile. The oldest File will
25
be deleted. (only for "new file at restart")
Toolchain Manual
Project Properties 358
Co
Explanation
de
No Directory. This happens if one of the directories set for copy / move are wrong or
41 do not exist. Or if target and destination are the same. Note: Directories are not
created if they are not existing!
42 Directory empty. Nothing to copy, because source directory is empty.
This code shall not occur in normal operation. If you see this code it could be that the
43
operation is started twice. In that case the operation is terminated.
Toolchain Manual
Visibility
Visibility 360
6 Visibility
With the OPUS Projektor 2019, the Visibility system has been extended to make things
easier. Now every variable can be used as a visibility variable for objects.
To do this, drag & drop 39 a variable from the Variable View 75 onto the object. In the context
menu, select the object first, and in the second level, select "Use as Visibility variable".
This activates the property Visibility for the object and sets the variable as the Visibility
variable for the object.
Then open the Visibility dialog by pressing the three-dot button in the Visibility Bit property.
Toolchain Manual
Visibility 361
First, check the check box next to "Select Variable". Then choose a variable below by filtering
by owner and/or group. After choosing the variable you want to use, click OK to save the
setting. The variable will be displayed in the Visibility Bit property.
If variables are initialized as invalid, their default value will be used to determine the visibility
status, i.e. if a variable is configured to be initialized as invalid and with default value 5, the
according object will still be visible, even when the variable has not been set to a valid value.
Note that a variable can be used for several objects, i.e. one variable can make any number
of objects visible / invisible at the same time.
Note that String variables cannot be used as visibility variables. Any other data type that is
offered can be used.
Also note that the pre-defined Visibility variables (see below) can't be used for the new
visibility system.
Alternatively to the new system described above, Visibility variables are provided by the
program. Every project contains a set of 64 Visibility variables. All of them have 16 Visibility
bits, which can be assigned to any graphical object(s). Each bit is a flag to hide or show
373
Toolchain Manual
Visibility 362
category Visibility .
This dialog provides the fields to add new Visibility variables. The 'Index' of the variables
defines what internal Visibility variable should be used. So @Visibility00 variable could be
names' . Therefore a new dialog called 'Modify bit names' will be opened:
Toolchain Manual
Visibility 363
Please select the Visibility variable which you want to configure . Now you can define
for each of the 16 bis (Bit 0 - Bit 15) the correspondent visibility name .
After defining names for the Visibility bits please confirm both dialogs with 'OK'.
Now the Visibility variables is configured properly and it can be used in the project.
NOTE:
Each entry in both tables should be committed with 'Enter' key.
@Visibility00
Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Na tech adm
user
me nical in
Val
ue
Dec 327 163 819 409 204 102
512 256 128 64 32 16 8 4 2 1
imal 68 84 2 6 8 4
Toolchain Manual
Visibility 364
If you want to show all objects which are corresponding with the first bit of the Visibility
variable (user), the value of the variable @Visibility00 should be set to '1' (value in
decimal)
@Visibility00
Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Na
user
me
Val
X
ue
Dec
1
imal
If you want to show all objects which are corresponding with the 3rd bit of the Visibility
variable (technical), the value of the variable @Visibility00 should be set to '4' (value in
decimal)
@Visibility00
Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Na tech
me nical
Val
X
ue
Dec
4
imal
If you want to show all objects which are corresponding from the 1st - 3rd bit of the Visibility
variable(user, admin and technical), the value of the variable @Visibility00 should be set
to '7' (value in decimal)
@Visibility00
Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Na tech adm
user
me nical in
Val
X X X
ue
Dec
4 2 1
imal
Toolchain Manual
Visibility 365
· Navigate to 'Properties'
376
window
o Enable checkbox at property 'Visibility'
o Click on 'Value not set' at property 'Visibility Bit'
· Select Visibility variable and Visibility bit at the dialog 'Visibility Bit'
Toolchain Manual
Visibility 366
Now the Visibility variable @Visibility00 can be updated by setting the value of the
454
'Numeric Field' .
Toolchain Manual
Alarms
Alarms 368
7 Alarms
This chapter describes the concept of alarms.
Alarms are popup pages or frames that can be shown to indicate certain events.
Alarm templates can be defined in the project properties.
Alarm Properties
Alarms are characterized through the following properties:
· Priority: This property decides which alarm is shown in front if several alarms with
different priorities are shown
· Alarm: A name for the alarm template. There are 3 pre-configured alarm templates,
Emergency, Med and Low
· Type: Alarms can be shown in a full screen or as a popup above the currently
displayed page
· Timeout: Enter a time in milliseconds after which an alarm of the selected type will
disappear by itself. 0 means the alarm does not disappear by itself. Cannot be set for
the alarm behaviors Emergency and Warning
· Behaviour: Emergency alarms can only be cleared by setting the @AlarmShow
variable. Warning alarms can be cleared by setting the @AlarmShow variable and
also by pressing the "Escape" key. Informational alarms can be cleared by setting the
@AlarmShow variable, by pressing the "Escape" key and by a timeout (see above)
· Minimal Display Time: An alarm can only be cleared (by pressing the "Escape" key)
after this time (in milliseconds)
· X,Y: Coordinates for the position of the alarm on the display. Fixed to 0,0 if the type
of the alarm is set to full page
· Width, Height: Width and height of the alarm on the display. Fixed to the resolution
of the display if the type of the alarm is set to full page
· Sound pattern: Here you can define a pattern that will be played when the alarm is
shown (only if the target device is equipped with a beeper only and has no audio
output). This sound pattern will then be played back with the beeper each time the
event occurs. The volume of the beeps is dependent on what event happened (event
103
or alarm) and the value of the beeper volume variables . A sound pattern consists
Toolchain Manual
Alarms 369
of the number of of repetitions and a bit coded pattern of on/off states. In the dialog
that pops up when changing this property, the pattern can be defined by clicking on
the boxes.
Each box represents 100ms of Beeper on or off.
In the screenshot above, the pattern 0xffc00 was defined. In binary this is
11111111110000000000. This will switch the beeper on for one second and then off.
100ms ON, 100ms ON, 100ms ON, 100ms ON, 100ms ON, 100ms ON, 100ms ON,
100ms ON, 100ms ON, 100ms ON,
100ms OFF, 100ms OFF, 100ms OFF, 100ms OFF, 100ms OFF, 100ms OFF,
100ms OFF, 100ms OFF, 100ms OFF, 100ms OFF
The sound pattern can also be directly entered as a hexadecimal value.
· Audio Output: Here you can configure an audio file that will be played when the
alarm is shown (only if the target device is equipped with an internal sound card
(internal speaker and/or line-out)). For a detailed description of the Audio Output
393
configuration see Events and Actions
You can define a new alarm template by clicking the "New" button. A new alarm template
with a pre-set name will be created. You can change all the above properties for that alarm.
You can change the priorities of alarm templates. If several alarms are active at the same
time, alarms with a higher priority are shown in front. For alarms with the same priority
showing at the same time, you can set at "Queue Organisation" whether the older or the
newer alarms are shown in front.
You can also define which key shall be used as the "Escape" key.
Alarm Log
The device can log alarms. To enable alarm logging, click on "Enable Alarm Log". You can
then set which events you want to log. You can also set whether you want to log all alarms or
us a ring buffer. If you use a ring buffer, you can set the number of alarm events that you
want to log.
Note: Alarm logging is only enabled when the variable @LogLevel is set to a value > 0.
Note: Logging for each alarm instance can be enabled or disabled. Simply enable or
disable the property "Log this Alarm" in the properties of the alarm.
The following options are available for alarm logging:
· Enable Alarm Log: Enable or diasable logging of alarms.
Toolchain Manual
Alarms 370
· Use Ring Buffer: Enable this to log alarms into a binary ring buffer and select how
much entries the ring buffer shall use. If the ring buffer is full, the oldest entries are
overwritten. The ring buffer can be read and cleared with the JavaScript functions
561 562
getAlarmLogRingBufferContent and deleteAlarmLogRingBufferContent .
If this is disabled, the alarms will be logged into a text file located in the path stored in
@LogPath
· Log Alarm Variable Values: If this is enabled, the values of the variables
@AlarmShow, @AlarmCurrent and @AlarmCurrentPriority are written into the log
with each entry.
· Log Alarm Enqueuement: If this is enabled a log entry is done when the alarm is
put into the alarm queue.
· Log Showing of Alarm: If this is enabled a log entry is done when the alarm is
shown on the screen.
· Log Alarm Confirmation: If this is enabled a log entry is done when the alarm is
confirmed (e.g. user pressed escape key).
· Log Hiding of Alarm: If this is enabled a log entry is done when the alarm is closed
and not shown anymore.
Creating an alarm
After you have created or configured alarm templates, you can add an alarm to your
project. To do this, right-click on "Alarms()" in the project tree, go to "New Alarm Type" and
choose the desired alarm template.
Then a dialog window appears where you have to enter a unique number (in decimal form)
for that alarm. Numbers that were already used are displayed in the lower part of that
dialog.
Toolchain Manual
Alarms 371
Press OK to create the alarm. The alarm will be listed in the project tree under "Alarms()".
To edit it, double click on the alarm in the project tree. A tab will be opened where you can
create a layout for the alarm similar to a page layout.
Active alarms will stay hidden behind other applications such as PDF reader on i.MX 6
based devices.
Toolchain Manual
Object Reference
Object Reference 373
8 Object Reference
The design tool provides various objects that can be used to design a project.
We can divide the objects in two main categories: General (or tree) objects and palette
objects.
General Objects
The general objects are the "root" objects and can be found in the project tree. The
following general objects are available:
· Page
· Alarm
403
· Virtual Keyboard
· Softkey
409
· Softkey Frame
408
Palette Objects
Palette objects are "child" objects that can be dragged from a palette into root objects or
other palette objects to create object hierarchy.
The palette objects contain again two categories: Containers and the objects that are to be
placed inside a container:
Container Objects
427
Frame
Container
426
Common Controls
423
Button
String 463
Field
Numeric
454
Field
Picture 455
Graphic
Toolchain Manual
Object Reference 374
464
Table
437
List
Measurement Controls
440
Meter
Gauge
463
Gauge 427
270
Gauge 427
180
Gauge 427
90
Arched
Bargrap
421
h
Linear
Bargrap
435
h
410
Graph
Toolchain Manual
Object Reference 375
433
Lamp
Power 458
Switch
Push
460
Switch
Rocker
Switch
Horizontal
462
Rocker
462
Switch
Special Controls
Multimedia
443
Player
Toolchain Manual
Object Reference 376
Sub Type ID
The Type ID is a numeric representation of the object sub type. It can not be changed. The
sub type ID is only existent for objects belonging to one parent Type ID.
Toolchain Manual
Object Reference 377
Name
A string containing the name of an object. It is automatically created but it is strongly
recommended that the name should be changed to match the purpose of the object. This
makes the content of the project more clear and helps to find objects better. The object
name is by default not used on the device (although it can be read by JavaScript).
Default value: Automatically generated name for the respective object type followed by a
number
Possible values: Any string
Objects can be renamed in the project tree by selecting them and pressing F2, or clicking
on them again after selecting them.
X Location
The X location of the object relative to it's parent object. The position of an object can be
changed with this property.
Not applicable to the page, alarm and virtual keyboard objects since their position is
always at X = 0 and Y = 0
Default value: Position of the object where it was dropped on parent object in the designer
area or 0 when dropped to parent object in object tree.
Possible values:
· Minimum:
o - object width
o exceptions:
§ objects that contain other objects (Frame, Container, Button, List): They can't be
moved out of it's parent.
§ Softkey Frame top or bottom. X is always 0.
§ Softkey. Fixed position inside a softkey frame
· Maximum:
o parent width
o exceptions:
§ objects that contain other objects (Frame, Container, Button, List): They can't be
moved out of it's parent.
§ Softkey Frame top or bottom. X is always 0.
§ Softkey. Fixed position inside a softkey frame
Y Location
The Y location of the object relative to it's parent object. The position of an object can be
changed with this property.
Not applicable to the page, alarm and virtual keyboard objects since their position is
always at X = 0 and Y = 0
Toolchain Manual
Object Reference 378
Default value: Position of the object where it was dropped on parent object in the designer
area or 0 when dropped to parent object in object tree.
Possible values:
· Minimum:
o - object height
o exceptions:
§ objects that contain other objects (Frame, Container, Button, List): They can't be
moved out of it's parent.
§ Softkey Frame left or right. Y is always 0.
§ Softkey. Fixed position inside a softkey frame
· Maximum:
o parent height
o exceptions:
§ objects that contain other objects (Frame, Container, Button, List): They can't be
moved out of it's parent.
§ Softkey Frame left or right. Y is always 0.
§ Softkey. Fixed position inside a softkey frame
Width
The width of an object. The width can be changed for any object except for pages, alarms,
virtual keyboards, softkeys (always same as softkey frame width in a left or right softkey
frame) and top or bottom softkey frames.
The width of a meter is always the same as it's height (always square).
Default value: object type dependent
Possible values:
· 0 ... 32767 pixel
· 0 ... half page width for left or right softkey frames
Height
The height of an object. The height can be changed for any object except for pages,
alarms, virtual keyboards, softkeys (always same as softkey frame height in a top or bottom
softkey frame) and left or right softkey frames.
The height of a meter is always the same as it's width (always square).
Default value: object type dependent
Possible values:
· 0 ... 32767 pixel
· The height of a List object can only be set with it's property Item Height
· 0 ... half page height for a top or bottom softkey frame
Dependency
An object can either be language or unit dependent or not at all.
The following objects do NOT support dependency: Alarm, Button, Container, Frame, List,
Page, Table, Virtual Keyboard. 348
For more about language dependency see here .
348
Toolchain Manual
Object Reference 379
Variable References
For most of the objects one or more references to a variable can be created. The object
will then show the value of the variable at runtime (or shows a invalid state if the referenced
variable is invalid) or the max or min value of a DDO can be adjusted with variables. See
below for a description of the possible Variable Reference properties.
Variable Reference
The Variable Reference property is used to reference to a variable that shall deliver the
value of the selected object.
A integer variable can be assigned as variable reference to the following objects:
· Button (value 0 for button release, any other value for button press)
· Softkey (value 0 for softkey release, any other value for softkey press)
· Arched Bargraph (fill the bargraph or move the value line)
· Linear Bargraph (fill the bargraph or move the value line)
· Meter (move the needle)
· Numeric Field (show the value as a number, see object specific properties for how it
can be formatted)
· Table (scroll the table)
· List (select index to be shown)
A string variable can only be assigned to a String Field object.
All other objects do not support variable references.
Default value: None
Possible Values: Either any integer or string variable depending on object type
Min Value Variable Reference
When selecting a variable for this property, the value of the variable controls the Min Value
of that object.
This property is supported by the following objects:
· Arched Bargraph
· Linear Bargraph
· Meter
· Numeric Field
Default value: None
Possible Values: Any integer variable
Toolchain Manual
Object Reference 380
The Absolute Min Value can also be changed through the JavaScript function
558
setProperty.
Max Value Variable Reference
When selecting a variable for this property, the value of the variable controls the Max Value
of that object.
This property is supported by the following objects:
· Arched Bargraph
· Linear Bargraph
· Meter
· Numeric Field
Default value: None
Possible Values: Any integer variable
The Absolute Max Value can also be changed through the JavaScript function
558
setProperty.
Target Value Variable Reference
When selecting a variable for this property, the value of the variable controls the Target
Value of that object.
This property is supported by the following objects:
· Arched Bargraph
· Linear Bargraph
Default value: None
Possible Values: Any integer variable
Bit Mask
With this property a Bit Mask can be applied to the incoming variable value. This makes it
possible to only pass certain bits from the variable's value to the object.
For example: A 16Bit variable is referenced to the object but only the value 0 or 1 from the
last bit is of interest for the object. In this case a mask of 0x1 can be set, if the last 4Bits
shall be used, the mask 0xf can be set.
When changing the property by clicking on the ... button besides the bit mask value, a
dialog will appear that makes it easy to set the mask. The number of bits and their position
can be chosen in that dialog.
Toolchain Manual
Object Reference 381
Skin Properties
The Skin Properties influence the look of the objects. Most of these properties are shared
for almost all objects. The one exception is the Container object. It is not visible and
therefore has no Skin Properties.
Background Color
As the name of this property implies, the background color of the selected object can be
changed.
Any 24Bit RGB color can be chosen in the color picker dialog that pops up when clicking
the ... button besides the color values. It is also possible to enter the three values for ref,
green and blue directly without using the color picker (e.g. 255,0,0 for full red).
Default value: Object type dependent
Possible values: any 24Bit RGB color
Note: If you choose a (partly) transparent background image (see below), the background
color will be visible in the transparent parts of the background image. If you don't want to
see the background color, enable property Transparent (see below).
Background Image
A background image can be set for an object suing this property.
Any supported image type can be selected in the image chooser dialog that pops up when
clicking the ... button of the property.
A chosen image will be automatically scaled to the size of the object and converted into the
lossless png format (except for SVG image types, they will not be changed).
Default value: no image
Possible values: any image in the supported format (BMP, JPEG, PNG, GIF, SVG)
Note: If you choose a (partly) transparent background image, the background color (see
above) will be visible in the transparent parts of the background image. If you don't want to
see the background color, enable property Transparent (see below).
Draw Border
With this property the drawing of the border of an object can be enabled or disabled. The
look of the border can be changed with the other border properties below.
Note: If the object is part of the navigation (e.g. an input), the drawing of the border should
be enabled so that the user can distinguish between being selected or open for input.
Default value: enabled
Possible values: enabled or disabled
Border Width
The width of the border of the object can be set with this property. See also properties
Border Image and Border State properties for how to define the look of the border.
Note: If you don't want any border, disable it with property Draw Border
Default value: 3
Possible values: 1 ... 15
Border Image
It is possible to display a border image for an object. However, the border profile will be
painted over the border image. Be sure to check the property Border Width and the border
profile (see above) so that the border has the desired size and is still visible with the border
profile.
Toolchain Manual
Object Reference 382
Toolchain Manual
Object Reference 383
==>
Toolchain Manual
Object Reference 384
The Transparent property can be used to make the background of an object invisible. If the
property is disabled, the Background Color will be drawn as the background of the object. If
the property is enabled, no background color will be drawn.
Note: If a Background Image is assigned, it will be shown also if the transparent property is
enabled. This property only affects the background color.
Known Issue: Currently this property has no effect on Gauge objects if the property Draw
Boundary Bar is activated.
Default value: disabled
Possible values: enabled or disabled
Corner Radius
The corner radius property can be used to give Numeric Fields and String Fields a
rounded corner. With a value of 0 the objects will be rectangular. With a value of 1000 the
maximum roundness is set.
Default value: 50
Possible values: 0 - 1000
Please note that even though the objects don't have a rectangular shape anymore, the
objects themselves are still rectangular, and so are the borders for the objects.
Visibility
The visibility of an object can be configured with the visibility properties. Objects can be
made visible or invisible during runtime.
360
For more information about visibility see here .
Visibility
Enable or disable visibility for the selected object.
Default value: Disabled
Possible values: Enabled or disabled
Visibility Bit
With this property it can be defined to which bit of which visibility variable this object listens
or, alternatively, which variable should be used as a visibility switch.
360
For more information see here .
Default value: Value not set
Possible values: A configured visibility bit of a visibility variable or a variable name.
Input Configuration
Set As Input
Setting the Set As Input attribute to enabled makes an object editable by the user. How the
object reacts to inputs can then be configured in the other input properties below.
This property is only available for objects that can reference a variable. It is not available for
Page, Frame, Container, Virtual Keyboard, Softkey Frame, Softkey.
Default value:
· Enabled for button objects
· Disabled for all other objects
Possible values: Enabled or disabled
Connect To Encoder
Toolchain Manual
Object Reference 385
An object can directly connected to the encoder. This means that the user does not need to
select the object and make it open for input.
The consequence of enabling this property is, that this object is the only input object on the
current page.
The following dialog will pop up when enabling this property:
When clicking OK, the Set As Input property of all other objects on the current page will be
disabled. Clicking cancel will keep the Connect To Encoder Property disabled.
Default value: Disabled
Possible values: Enabled or disabled
Note that the Send Value Directly property (see below) should also be enabled when
enabling the Connect To Encoder property.
The property is only available if Set As Input for this object is enabled.
Send Value Directly
If Send Value Directly is enabled, the value that the user enters via encoder is transmitted
to the variable (and possibly CAN bus) with every value change the user does.
If this property is disabled, the value will be set only after the user has finished editing (e.g.
pressing encoder).
Send Value Directly could also be called Live Editing. Enable this if you want to have every
value change by the user be reflected in an action (e.g. setting a value that's result can
directly be seen, e.g. moving something physically at the vehicle, changing display
backlight intensity, etc.). Disable the property if you are only interested in the final value that
the user sets.
Default value: Enabled
Possible values: Enabled or disabled.
This property is only available for objects that work with integer values.
The property is only available if Set As Input for this object is enabled.
Encoder Movement
There are two options available:
· Linear:
Every encoder click results in a value change of 1 (or -1 depending on direction)
· Dynamic
Based on the speed of the encoder turns, the value increment or decrement is
dynamically accelerated.
Use dynamic encoder movement if a very high value range is set for the object.
The amount of dynamic encoder acceleration can be configured with the Value Change
Factor property (see below).
Default value: Linear
Possible values: Linear or Dynamic
The property is only available if Set As Input for this object is enabled.
Value Change Factor
Toolchain Manual
Object Reference 386
This property only has influence if the Encoder Movement property (see above) is set to
Dynamic. The Value Change Factor controls the amount of acceleration for dynamic
encoder movement.
The higher the value, the more the value change by encoder is accelerated.
Rule of thumb: The higher the value range of an object is, the higher the Value Change
Factor should be set.
Note: When simulating the project with the PClient simulation on the development PC, you
can test the effect of this property using the mouse wheel.
Default value: 1000
Possible values: 1 ... 32767
The property is only available if Set As Input for this object is enabled.
Input Character Attribute
This property is only available for the string field object. With the Input Character Attribute it
can be defined what characters are available when the user edits the value of the string
field.
It is possible to restrict the user input to certain characters defined in the selected Input
Character Attribute.
327
How an Input Character Attribute can be defined can be seen here .
If no Character Input Attribute is selected, the default ASCII character set will be available
as input characters for the user.
Default value: None 327
Possible values: Any Input Character Attribute defined in the project properties .
The property is only available if Set As Input for this object is enabled.
Inplace Editor
The Inplace Editor property is only available for String Field and Numeric Field objects.
With this property it can be chosen if the value of the object shall be changeable via
406
encoder or by using a virtual keyboard .
Default value: Encoder
Possible values: Encoder or Virtual Keyboard
The property is only available if Set As Input for this object is enabled.
Value Related
Except for Preview Value, all value related properties are only available for objects
working with numeric values.
Absolute Max Value
As the name implies, the Absolute Max Value is the highest value that a user can set to an
object (Max Value is not, see below).
This property is available only for Arched Bargraph, Linear Bargraph, Meter and Numeric
Field objects.
Following rule applies: Absolute Max Value needs to be greater or equal to Max Value.
Default value: depends on object:
· Arched Bargraph and Meter: 360
· Linear Bargraph and Numeric Field: 100
Possible values: Anything greater or equal to Max Value but not more than 2147483647
(Absolute Min Value <= Min Value <= Max Value <= Absolute Max Value)
Color Above Maximum
Toolchain Manual
Object Reference 387
This property defines the color of the object if the value of the object is greater than Max
Value (see below).
Color Above Max Value is available for the following objects with the following appearance
effect:
· Arched Bargraph: Fill color of the bargraph or value line color
· Linear Bargraph: Fill color of the bargraph or value line color
· Meter: Needle color
· Numeric Field: Color of the displayed number
Default value: object specific
Possible values: Any 24Bit RGB color
Max Value
The Max Value property is a threshold for doing the color change to Color Above
Maximum when the value of the object is greater than the value of Max Value.
This property is available only for Arched Bargraph, Linear Bargraph, Meter and Numeric
Field objects.
Default value: depends on object:
· Arched Bargraph and Meter: 300
· Linear Bargraph: 80
· Numeric Field: 90
Possible values: Any value greater than or equal to Min Value and less than or equal to
Absolute Max Value (Absolute Min Value <= Min Value <= Max Value <= Absolute Max
Value)
Font Attribute Above Max Value
This property defines the Font Attribute that is used when the value of the object is above
Max Value.
This property is only available for the Numeric Field object.
327
To learn more about Font Attribute Objects see here .
Default value: Default_DejaVu Sans 327
Possible values: Any Font Attribute Object defined in project properties .
Min Value
The Min Value property is a threshold for doing the color change to Color Below
Minimum when the value of the object is less than the value of Min Value.
This property is available only for Arched Bargraph, Linear Bargraph, Meter and Numeric
Field objects.
Default value: depends on object:
· Arched Bargraph, Linear Bargraph and Meter: 20
· Numeric Field: 10
Possible values: Any value greater than or equal to Absolute Min Value and less than or
equal to Max Value (Absolute Min Value <= Min Value <= Max Value <= Absolute Max
Value)
Font Attribute Below Min Value
This property defines the Font Attribute that is used when the value of the object is below
Min Value.
This property is only available for the Numeric Field object.
327
To learn more about Font Attribute Objects see here .
Default value: Default_DejaVu Sans
Toolchain Manual
Object Reference 388
327
Possible values: Any Font Attribute Object defined in project properties .
Absolute Min Value
As the name implies, the Absolute Min Value is the lowest value that a user can set to an
object (Min Value is not, see above).
This property is available only for Arched Bargraph, Linear Bargraph, Meter and Numeric
Field objects.
Following rule applies: Absolute Max Value needs to be greater or equal to Max Value.
Default value: 0
Possible values: Anything less or equal to Min Value but not less than -2147483648
(Absolute Min Value <= Min Value <= Max Value <= Absolute Max Value)
Color Below Minimum
This property defines the color of the object if the value of the object is less than Min Value
(see below).
Color Below Min Value is available for the following objects with the following appearance
effect:
· Arched Bargraph: Fill color of the bargraph or value line color
· Linear Bargraph: Fill color of the bargraph or value line color
· Meter: Needle color
· Numeric Field: Color of the displayed number
Default value: object specific
Possible values: Any 24Bit RGB color
Preview Value
With the Preview Value property, the value of the object in the designer area can be
previewed. If no variable is referenced to the object, the Preview Value will also be the
value that is displayed at the object at runtime.
The Preview Value property is available for all objects except for the button object (use
Pressed State button property for preview).
Default Value: object specific
Possible values:
· String field: Any string that is shorter than Max String Length (characters)
· Integer objects: A value greater than or equal to Absolute Min Value and less than or
equal to Absolute Max Value (Absolute Min Value <= Preview Value <= Absolute
Max Value)
Target Value
The Target Value property is only available for Arsched Bargraph and Linear Bargraph
objects. If the Draw Target Line property for these objects is enabled, a line will be drawn at
the Target Value position.
Default value: 80
Possible values: A value greater than or equal to Absolute Min Value and less than or equal
to Absolute Max Value (Absolute Min Value <= Target Value <= Absolute Max Value)
Activate Low Pass Filter
With this property a low pass filter for the selected object can be activated. A low pass filter
makes the displayed value changes more smooth and can reduce flickering of values.
To adjust the strength of the filter use the property Filter Factor (see below).
The formula for the low pass filter is:
Toolchain Manual
Object Reference 389
Formatting
Font Attribute
A Font Attribute provides the size color and style (standard, bold, italic) of how a font shall
327
Toolchain Manual
Object Reference 390
Horizontal Alignment
With the Horizontal Alignment property it can be controlled if the text is aligned left, right or
centered.
Default value: Center
Possible values: Left, Center, Right
This property is only available for Numeric Field, String Field and Table object.
Vertical Alignment
With the Vertical Alignment property it can be controlled if the text is aligned on top, bottom
or centered.
Default value: Center
Possible values: Top, Center, Bottom
This property is only available for Numeric Field, String Field and Table object.
Font Outlined
This property is deprecated and currently has no effect. It will be removed in a future
release.
List
440
Meter
454
Numeric Field
403
Page
455
Picture Graphic
408
Softkey Frame
409
Softkey
463
String Field
464
Table
Toolchain Manual
Object Reference 391
406
Virtual Keybard
Then press the ... button of the event that shall be configured.
Note: Events that are specific to CAN protocols are explained in the protocol's manual
chapter.
Event Options
For some events a repeat period can be configured (e.g. OnProjektRepeat or
OnPageRepeat).
Toolchain Manual
Object Reference 392
This period is always a multiple of 100 milliseconds (which means that the fastest period is
100ms). It is not guaranteed that the actions can be triggered exactly in the specified
period, a slight deviation is possible (based on CPU load and other circumstances at
runtime). A value has to be entered in this field for the periodic execution to work.
If a device is equipped with an internal sound card (speaker and/or line-out), an audio file
can be played back when certain events happen.
Toolchain Manual
Object Reference 393
Audio Output
The Audio Output dialog allows to assign an audio file that will be played back when the
event occurs.
The following elements of the dialog can be used for configuration:
· Select Audio File: Use the Browse button to select an audio file from the file system
(There are different default audio files pre-configured for an event or alarms that can
be directly used)
· No Audio button: Press this button if no audio shall be played for the event.
· Size of Audio File: This shows the size of the selected audio file
Toolchain Manual
Object Reference 394
(very large files might add a delay before they are played and increase the size of the
project package that needs to be transfered to the device)
· Volume: Select the desired volume with the slider. Note that the final volume is
103
dependent on the values of the beeper volume variables .
· Repetition Count: How often the audio file shall be repeated can be configured here
(1 means that the audio file is played once). Please note that the file is not saved if
the repetition count is set to 0.
· Playback Delay: If a repetition count greater than 1 is defined (see above), a
playback gap can be configured. Enter a time in milliseconds that defines the gap
(pause) between each repetition.
The following audio codecs have been verified on the device:
· MPEG AAC Audio (mp4a) (usually the file extension is .m4a or .aac, but .mp4 also
works, if there is no video stream)
· MPEG Audio layer 1/2/3 (mpga) (usually the file extension is .mp3)
· Vorbis Audio (vorb) (usually the file extension is .oga or .ogg)
· Raw wave files in different format (tested: PCM S16 LE (araw), PCM U8 (araw))
(usually the file extension is .wav)
Windows Media Audio (.wma) is currently NOT supported.
Media files that include a video stream do NOT work for these events. Please use a
443
Multimedia Player for this.
Please note that the Audio Output settings are not saved if no event is configured for the
according action.
Events
OnProjektInit
This event is only triggered once when the project is loaded before any other event.
Allowed actions:
· Execute Script
OnProjektExit
This event is only triggered once when the PClient is exited on the device. This will normally
not happen during normal operation, only when updating the project on the device.
Allowed actions:
· Execute Script
OnProjektRepeat
This event is triggered repeatedly with a configurable period. This is the only repeat event
that is triggered regardless of the active page (see OnPageRepeat).
Allowed Actions:
· Execute Script
OnPowerOn
This event is triggered as soon as the device enters the On (normal operation) state but
only if it was in low power or sleep mode before (switch ignition on). If the device just did a
cold boot, this event is not triggered.
Allowed actions:
· Execute Script
Toolchain Manual
Object Reference 395
· Set Value
OnLowPower
This event is triggered as soon as the ignition is switched off and the device enters low
power mode.
Allowed actions:
· Execute Script
· Set Value
OnSleep
This event is triggered as soon as the device awakes from sleep mode (not before going
into sleep).
Allowed actions:
· Execute Script
· Set Value
OnPageInit
This event is triggered as soon as a new page is loaded.
Allowed actions:
· Execute Script
OnPageExit
This event is triggered as soon as a page is left.
Allowed actions:
· Execute Script
OnPageRepeat
This event is periodically triggered when the page is loaded.
Allowed actions:
· Execute Script
OnPress
This event is triggered either if an object on screen is pressed via touchscreen or encoder
or if a softkey is pressed.
Allowed actions:
· Execute Script
· Jump To Page
· Set Value (Not for Frame object)
· Next Softkey Level (Softkey object only)
· Previous Softkey Level (Softkey object only)
· Navigate Up (Softkey and function key object only)
· Navigate Down (Softkey and function key object only)
· Navigate Confirm (Softkey and function key object only)
· Open PDF Reader (Not for Frame object)
· Set Media Player Command (only for devices that support the playback of audio /
video)
OnRelease
This event is triggered either if an object on screen was pressed via touchscreen or if a
softkey was pressed via physical keys and has now been released.
Toolchain Manual
Object Reference 396
Allowed actions:
· Execute Script
· Jump To Page
· Set Value (Not for Frame object)
· Next Softkey Level (Softkey object only)
· Previous Softkey Level (Softkey object only)
· Navigate Up (Softkey and function key object only)
· Navigate Down (Softkey and function key object only)
· Navigate Confirm (Softkey and function key object only)
· Open For Input (Softkey and Button object only)
· Open PDF Reader (Not for Frame object)
· Set Media Player Command (only for devices that support the playback of audio /
video)
425
Please note that this event behaves differently depending on the state of the Latching
property of the according object.
If latching is activated, this event will not be executed on a release after a press, but instead
on the second press after a first press has activated the pressed state of the object. In this
case, the release of the object will never execute an event.
OnLongPress
This event is triggered either if an object on screen is pressed via touchscreen or if a
softkey is pressed via physical keys for longer than the configured Long Press Time (see
327
project properties ).
Allowed actions:
· Execute Script
· Jump To Page
· Set Value (Not for Frame object)
· Next Softkey Level (Softkey object only)
· Previous Softkey Level (Softkey object only)
· Navigate Up (Softkey and function key object only)
· Navigate Down (Softkey and function key object only)
· Navigate Confirm (Softkey and function key object only)
· Open PDF Reader (Not for Frame object)
· Set Media Player Command (only for devices that support the playback of audio /
video)
OnLongRelease
This event is triggered either if an object on screen is pressed via touchscreen or if a
softkey is pressed via physical keys for longer than the configured Long Press Time (see
327
project properties ) and was released again.
Allowed actions:
· Execute Script
· Jump To Page
· Set Value (Not for Frame object)
· Next Softkey Level (Softkey object only)
Toolchain Manual
Object Reference 397
OnDblClick
This event is triggered either if an object on screen is pressed via touchscreen or if a
softkey is pressed via physical keys twice within the double click time (300ms).
Allowed actions:
· Execute Script
· Jump To Page
· Set Value (Not for Frame object)
· Next Softkey Level (Softkey object only)
· Previous Softkey Level (Softkey object only)
· Navigate Up (Softkey and function key object only)
· Navigate Down (Softkey and function key object only)
· Navigate Confirm (Softkey and function key object only)
· Open PDF Reader (Not for Frame object)
· Set Media Player Command (only for devices that support the playback of audio /
video)
425
Please note that this event behaves differently depending on the state of the Latching
property of the according object.
If latching is activated, this event will never be executed.
Here are the possible scenarios for press/release events when using a button or softkey
with latching deactivated:
· Short press, then release -> OnPress and OnRelease are executed
· Long press, then release -> OnPress, then OnLongPress, then OnLongRelease AND
OnRelease are executed
· Double click -> OnPress, then OnRelease, then OnDblClick, then again Release are
executed
Here are the scenarios for press/release events when using a button or softkey with
latching activated:
· Short press, then release -> OnPress is executed on the first press, OnRelease is
executed the second press. No actions for the release of the button / softkey.
Toolchain Manual
Object Reference 398
· Long press, then release -> OnPress, then OnLongPress on the first press.
OnLongRelease on the first release. OnRelease on the second press. No action for the
second release.
· Double click -> Double click behaves like a short press and release. No double click
event will be executed with latching activated.
OnEnabledWithoutFocus
This event is triggered when the object has lost focus (it was either enabled with focus or
open for input before).
Allowed actions:
· Execute Script
· Jump To Page
· Set Value
· Set Media Player Command (only for devices that support the playback of audio /
video) (only for buttons and softkeys)
OnEnabledWithFocus
This event is triggered when the user navigates to this object so that it gets into the
EnabledWithFocus navigation border state. It only has focus but is not open for input.
Allowed actions:
· Execute Script
· Jump To Page
· Set Value
· Set Media Player Command (only for devices that support the playback of audio /
video) (only for buttons and softkeys)
OnOpenForInput
This event is triggered as soon as an object is made for open for input to edit it's value.
Allowed actions:
· Execute Script
· Jump To Page
· Set Value
OnValueChange
This event is triggered as soon as the value that the object displays is changed (either by
user or by a referenced variable).
Allowed actions:
· Execute Script
· Jump To Page
· Set Value
OnEnterNewValue
This event is triggered after the user has entered a new value for the object (not the same
value).
Note: This event is only fired for objects that have the property "Send Value Directly"
disabled. If "Send Value Directly" is enabled, the event will not occur and the assigned
action will not be executed.
Allowed actions:
Toolchain Manual
Object Reference 399
· Execute Script
· Jump To Page
· Set Value
OnEnterValue
This event is triggered after the user has finished editing the value of the object regardless
if the value has changed or not.
Allowed actions:
· Execute Script
· Jump To Page
· Set Value
OnEscape
The OnEscape event is triggered if an object is open for input and the user pressed the
Escape key to cancel the input.
Allowed actions:
· Execute Script
· Jump To Page
· Set Value
OnGetValue
This event is currently not supported.
OnValueChangeByOwner
This is a variable event. It is triggered as soon as the owner of the variable writes a new
value to the variable. This event can be set in the Variable Manager 94
Allowed actions:
· Set Value
· Scale Value
· Execute Script
OnValueChangeRequest
This is a variable event. It is triggered as soon as anyone that is not the owner of the
variable tries to set a new value.
Allowed actions:
· Set Value
· Scale Value
· Execute Script
Actions
Various actions can be assigned to an event. See above for what action can be configured
for which event.
No Action
This is the default setting for any event. To select an action, open the drop-down menu and
select one of the available actions. To disable the current action, choose No Action.
Please note that when No Action is selected, all settings of the previously selected action
are removed.
Toolchain Manual
Object Reference 400
Execute Script
The execute script action can trigger the execution of a JavaScript file. See the JavaScript
535
documentation for more information.
Properties:
· Script File
The JavaScript file that shall be executed
· New Script File
Not really a property, rather a short-cut which will open the new script dialog.
· Import Script File
Not really a property, rather a short-cut to import an existing script file from another
location
· Edit selected Script File
Not really a property, rather a short-cut to open the JavaScript editor with the currently
selected script file.
· Execute on every Xth Event
This property allows the execution of the JavaScript to not happen every time the
event is triggered but only at e.g. every 5th event: This can act as kind of a low-pass
filter for value change events.
Jump To Page
The jump to page action triggers a change to another page in the project.
Properties:
· Jump To
Select the page from the drop down list to which the project shall change
Set Value
With the set value action a fixed value can be set to a variable.
Properties:
· Variable
Select the variable that's value shall be set
· Value
Either a number or a string depending on the variable type
Scale Value
With this action a value of a variable can be scaled. The following formula is used for that:
scaledValue = (((Value + Offset1) * Multiplier) / Divisor) + Offset2
Properties:
· Offset1
Toolchain Manual
Object Reference 401
· Multiplier
· Divisor
· Offset2
Next Softkey Level
With this action the next softkey level in a softkey frame can be shown.
Properties: None
Previous Softkey Level
With this action the previous softkey level in a softkey frame can be shown.
Properties: None
Navigate Up
This action simulates one click of the encoder. It moves the focus frame one position up in
the object hierarchy.
Properties: None
Navigate Down
This action simulates one click of the encoder. It moves the focus frame one position down
in the object hierarchy.
Properties: None
Navigate Confirm
This action simulates an encoder press. It opens an object for input or confirms the value
when the object is already open for input.
Properties: None
Set Media Player Command
Properties:
· Media Player ID
The ID of the Media Player object that shall be controlled.
· Command
The command that shall be executed. The following commands are available:
§ play
§ stop
§ pause
§ previous
§ mute
§ unmute
§ set volume
§ set position
§ shuffle
Toolchain Manual
Object Reference 402
§ loop
443
A description of the commands can be found in the chapter Multimedia Player .
· Value
A value can be set for the set volume and set position command.
Open For Input
With the open for input action it is possible to open one object on the current page for input
so that the user can directly edit it without the need to navigate to it.
Properties:
· Object ID
The ID of the object that shall be made open for input
Open PDF Reader
It is possible to show PDF documents in a separate application. With this action the
external PDF reader can be opened.
Consequently the PDF reader has to be closed before one can see the project again. Even
alarms will be hidden behind the PDF reader on i.MX 6 based devices.
Properties:
· PDF File To Open
A PDF file can be selected that will be copied to <project
directory>/terminal_files/additional_files. The PDF reader on the device will then
show this file when opening.
· Show file open button
The PDF reader can show a "File Open Button" that enables the user to open other
PDF files from the file system or external media. If this button shall be shown, this
property has to enabled. This property only has an effect if the PDF reader is opened
with a file. If it is opened without a PDF file, the "File Open Button" is always shown.
Notes about viewing PDFs:
Handling of PDFs may need a lot of CPU power and may consume a lot of memory
(especially when loading a new page). To improve the user experience the following points
should be taken into consideration:
· All fonts used in the PDF should be embedded in the document so the PDF reader
does not have to search for a matching system font.
· If the PDF document contains embedded graphics, they should be saved in the same
resolution (DPI) as the display of the target device.
· The whole PDF document should already have the correct size to display at 100% on
the target device so that the user does not need to zoom in or out.
· If your system needs very fast response times on the CAN bus, it should be tested if
these response times can be kept while displaying a PDF or switching pages in the
PDF reader.
Set Media Player Command
565
The available actions for the Media Player are described here.
Toggle Video Display
This action is currently not supported and has no effect at runtime.
Temporarily Display Video
This action is currently not supported and has no effect at runtime.
Toolchain Manual
Object Reference 403
When changing Softkey levels it is possible to switch a level of each Softkey Frame
separately or to connect all Softkey Frames. When the Softkey Frames are connected,
changing the level of one Softkey Frame will also change the level of the other.
Default value: Enabled
Possible values: Enabled or Disabled
472
For Video Properties please see here .
Events
The following events can be configured for the page:
· OnPageInit
· OnPageExit
· OnPageRepeat
391
See here for the descriptions of all event and possible actions that can be assigned.
8.3.2 Alarms
For a description of the alarm settings in project properties and for how to create an alarm
368
see here .
Alarms share some properties with other objects. For a description of the common properties
376
see here .
Alarm Specific Properties
Alarm Number
This property shows the alarm number of the alarm as defined when creating the alarm.
This number can be changed but needs to stay unique.
Default value: Alarm number specified when creating the alarm
Possible values: 1 ... 32767 (but needs to be a unique alarm number)
Alarm Type Name
The type of the alarm is defined when creating it. It can not be changed after the alarm was
created.
Default value: Alarm type chosen when creating the alarm
Possible values: Not editable
Connect All Softkey Frames
Toolchain Manual
Object Reference 404
When changing Softkey levels it is possible to switch a level of each Softkey Frame
separately or to connect all Softkey Frames. When the Softkey Frames are connected,
changing the level of one Softkey Frame will also change the level of the other.
Default value: Enabled
Possible values: Enabled or Disabled
Note: This property is only available for Page alarms. Frame alarms do not support
softkeys.
Timeout
368
The timeout of the alarm as configured in project properties for the alarm type.
This property can not be changed after the alarm was created.
Sound Pattern
When an alarm is created, the sound pattern as defined in the project properties is set for
the alarm. This sound pattern can be changed for each alarm individually.
403
For a detailed description of the sound pattern, refer to Alarms
Audio Output
When an alarm is created, the audio output options as defined in the project properties is
set for the alarm. This audio output configuration can be changed for each alarm
individually. 393
For a detailed description of the audio output configuration, refer to Events and Actions
Min Display Time
The minimal display time is the time that the alarm that the alarm is at least visible on the
screen. Only after this time the alarm can be acknowledged.
368
The value for the Min Display Time can only be set in the project properties for each
alarm type and can not be changed for each alarm.
Log this Alarm
368
When the alarm log is enabled in project properties , this property can be used to choose
if this particular alarm shall be logged or not.
Default value: Enabled
Possible values: Enabled or disabled.
If this property is enabled, it only has an effect if the alarm log is also enabled in project
properties.
Alarm Log Delay
With this property it can be configured if this alarm shall be logged directly when the alarm
is engaged or only after a certain amount of time. This can be helpful if an alarm shall only
be logged if it was engaged for a longer time.
Default value: 0 seconds (log this alarm directly without delay)
Possible values: 0 seconds to 2147483647 seconds
The value of this property only has an effect if Log this Alarm is enabled and the alarm log
368
is enabled in project properties .
Alarm Log Text
For this property a text can be entered that is used in the alarm log. This text can not be
automatically translated (it is not language dependent).
Default value: no value
Possible value: any string
Toolchain Manual
Object Reference 405
LED Properties
The LED properties allow to configure the behavior of the multi color LED when entering
the selected page.
LED Options
This property defines the behavior of the LED when entering the page.
Default value: LED off
Possible values:
· LED off (LED is off when entering page)
· Always On (LED is always on on that page)
· Blinking (LED is blinking)
Notes:
· The LED behavior can also be controlled via the variables in the LEDs variable
group. This provides more customization possibilities.
· The settings made in this property will be overwritten by the values set to the
variables in LEDs variable group.
Led Color
Define the color that the multi color LED emits when on or blinking.
Default value: Yellow (255, 255, 0)
Possible values: Any 24Bit RGB color
Blink Pattern
If the LED Options property is set to Blinking, a blink pattern can be configured.
A blink pattern consists of the number of of repetitions and a bit coded pattern of on/off
states. In the dialog that pops up when changing this property, the pattern can be defined
by clicking on the boxes.
Each box represents 100ms of LED on or off.
In the screenshot above the blink pattern 0xccf33 was defined. In binary this is
11001100111100110011
· 100ms ON
· 100ms ON
Toolchain Manual
Object Reference 406
· 100ms OFF
· 100ms OFF
· 100ms ON
· 100ms ON
· 100ms OFF
· 100ms OFF
· 100ms ON
· 100ms ON
· 100ms OFF
· 100ms OFF
· 100ms ON
· 100ms ON
· 100ms OFF
· 100ms OFF
· 100ms ON
· 100ms ON
· 100ms OFF
· 100ms OFF
Internal Variables
If Connected to LED internal variable, this property is enabled and any variable can be
selected that then controls the on/off state of the LED.
This property is not supported at runtime on all devices.
It is recommended to use the predefined internal variables in the LEDs variable group to
control the LED via variables (e.g. in a PageInit script).
8.3.3 Virtual Keyboards
Virtual keyboards assist the user in entering text or numbers. Two types of virtual keyboards
exist:
· Layered Keyboards for text input (portrait or landscape version)
· Numeric Keyboard for number input
To operate a virtual keyboard, the keyboards contain a special version of the button object.
See below for special properties of the virtual keyboard buttons. 327
For virtual keyboard settings in the project properties see here .
To create a virtual keyboard do a right click on Virtual Keyboards in the project tree and
select the virtual keyboard type that shall be created.
Virtual Keyboard Layer Specific properties
Virtual keyboard properties are same for layered and numeric keyboards.
Select Layer
Here the layer of the virtual keyboard can be selected. A layer contains a set of keys. On a
layered keyboard there are three layers available:
· Layer 1: Lower case characters
· Layer 2: Upper case characters
· Layer 3: Numbers and special characters
A numeric keyboard only has one layer with the numbers.
Toolchain Manual
Object Reference 407
Toolchain Manual
Object Reference 408
When pressing this button, the layer of the keyboard will be switched. The target layer
can be selected with the Switch To Layer property (see below).
· OK
The OK button confirms the edited value and closes the virtual keyboard
· Cancel
The cancel button closes the virtual keyboard without confirming the new value (it will
be reverted to the value before opening the virtual keyboard)
· Delete
The delete key deletes the last character or number that was entered
· Toggle Sign
The Toggle Sign button should only be used on numeric keyboards. It can be used to
toggle the edited value from positive to negative and vise versa.
Display Text
This language dependent property defines the character displayed on the button. It can be
different for each language.
Character Values
This language dependent property defines the value that is added to the edited value when
the button is pressed. It can be different for each language.
Switch To Layer
This property is only available if Button Type (see above) was set to Layer Switch.
Possible values: Any available layer of the virtual keyboard.
8.3.4 Softkey Frame
Softkey frames are (at default) invisible containers for softkey levels. Softkey levels contain
409
the softkeys .
A Softkey frame can have up to 4 softkey levels. Softkey levels can be used if there is not
enough space on the screen to show all softkeys. At runtime it is possible to switch to another
softkey level to show different softkeys.
Create Softkey Frames and Levels
At default two softkey frames frames are created for each page automatically each
containing one softkey level.
To create a new softkey frame open the page from project tree and do a right click on the
DataMask object of the page in the project tree and select Create Softkey Frame XXX
(XXX is either Left or Right for landscape devices or Bottom or Top for portrait devices). If
all softkey frames for the page already exist, this option will not be available on right click.
After softkey frame contains one default softkey level. To create more levels do a right click
on the softkey frame in the project tree and select Create Softkey Level. The new created
level will then directly be shown.
To switch between the levels in the designer, the level that shall be shown can also be
selected via right click on the softkey frame in the project tree.
To switch between softkey levels at runtime, the actions Next Softkey Level or Previous
Softkey Level can be attached to a softkey.
Toolchain Manual
Object Reference 409
For a list of other common properties of a softkey frame that are shared with other objects
376
see here .
Softkey Width
As default softkeys have a calculated size so that no gaps exist between the softkeys. With
this properties it is possible to make the softkey width smaller in a bottom or top softkey
frame so that gaps between the softkeys are possible.
Default value: Calculated based on device
Possible values: Anything smaller than the calculated value
This property can only be changed for top or bottom softkey frames. For left or right softkey
frames the width of the softkeys is directly connected to the width of the softkey frame.
Softkey Height
As default softkeys have a calculated size so that no gaps exist between the softkeys. With
this properties it is possible to make the softkey height smaller in a left or right softkey
frame so that gaps between the softkeys are possible.
Default value: Calculated based on device
Possible values: Anything smaller than the calculated value
This property can only be changed for left or right softkey frames. For top or bottom softkey
frames the height of the softkeys is directly connected to the height of the softkey frame.
Current Softkey Level
The Current Softkey Level property is not visible in the designer tool and can only be
accessed at runtime via JavaScript.
With this property the currently shown softkey level can be changed.
Note: it is also possible to change the softkey levels via the variable
@ChangeSoftkeyLevel (see variable table for description).
Events
The following events can be configured for the softkey frame:
· OnPress
· OnRelease
Note: These events are only triggered if there are no input objects on the page. Otherwise
navigation scheme uses the touch events for input objects only and the softkey frame is not
considered an input object.
391
See here for the descriptions of all event and possible actions that can be assigned.
8.3.5 Softkey
Softkeys are an easy and convenient way to add functionality to a hardware key but also can
be used on devices without keys (via touchscreen).
423
Softkeys are very similar to buttons (they only lack the Draw Shadow property. 376
Softkeys also share a lot of their properties with other objects. See here for a description
of the common properties.
How to add pressed or released objects to the softkey
423
It is the same as for the button object. Click here for a description.
Toolchain Manual
Object Reference 410
Key Number
This is a property that can not be changed. Each hardware key gets a specific number. The
value of this property is based on the softkey frame in which the softkey is in and the
position inside the softkey frame. This number is used in the variable
@UserButtonPressed which indicates the last key that has been pressed and, accordingly,
@UserButtonReleased.
Latching
Latching means: When a softkey is pressed and released, it stays in the pressed state until
it is pressed again.
With this property this behavior can be enabled.
Default value: Disabled
Possible values: Enabled or Disabled
Pressed State
Switch between the release or pressed state of the softkey. This is important for having a
preview of the object and also for adding pressed/released objects for the softkey (see
423
here ).
This property has no influence to runtime behavior.
Default value: Disabled
Possible values:
· Enabled (softkey is in pressed state)
· Disabled (softkey is in released state)
Pressed Object ID
The ID of the object that represents the pressed object of the softkey. 423
Will be automatically set when adding a pressed state object to the softkey (see here ).
Can't be edited by hand.
Released Object ID
The ID of the object that represents the released object of the softkey. 423
Will be automatically set when adding a released state object to the softkey (see here ).
Can't be edited by hand.
Events
The following events can be configured for the softkey:
· OnPress
· OnRelease
· OnLongPress
· OnLongRelease
· OnDblClick
391
See here for the descriptions of all event and possible actions that can be assigned.
8.4 Palette Objects
8.4.1 2D Graph
Toolchain Manual
Object Reference 411
· All data points are logged to the non-volatile memory of the device so that they are
still available after reboot.
·
416
Maximum value of Number of Samples to Record reduced from 10,000,000 to
1,000,000
· Maximum number of value points visible for each variable when showing the 2D
Graph set to 699050 (see graph description below for details)
· Introduced a maximum "Number of Samples to Record" for all graphs in a project
(number is device dependent)
· Each variable can be logged either time based or at every value change (see Log
Trigger 417)
· Possible to configure if data shall be logged in low power mode or not with new
414
property Log Data in Low-Power Mode
· Introduced new variable reference for showing the progress of copying the graph's
413 418
history. See Copy Progress Variable and Process 2D Graph Data on a PC
· Introduced two new JavaScript functions to save (copy) or delete the graph's value
568 568
history (save2DGraphHistory , delete2DGraphHistory )
The graph object is designed to show the value history of one or more variables in a line
graph.
For each variable that shall be displayed in the graph it can be configured if logging of a value
417
shall happen for every value change or time based (see Log Trigger ).
Each logged data point consists of a time stamp and the value at that time stamp. All entries
are saved to the non-volatile memory of the device in a ring buffer so that the value history is
still available after shutting down and re-booting the device. Logging is active even if the 2D
graph object is not visible on the screen.
WARNING:If power is completely removed from the device without properly shutting it down
using the ignition, it is possible that the last 1% of data in the ring buffer gets lost! Always
power down the device using the ignition and the integrated power management!
To save RAM on the device only the data points that are currently shown on the screen are
loaded from the hard drive. This means that one can experience slight delays when changing
the currently visible time span or the offset because the data needs to be loaded from disk.
To make sure that the non-volatile memory of the device does not get filled up with graph
history data, the number of data points that are logged for all graphs in a project is limited
(device dependent: on devices with i.MX6 CPU: 34952533 samples (about 400MB on the
non-volatile memory), on devices with i.MX35 CPU: 8947848 (about 100MB on the non-
volatile memory) ).
Drawing the graph's value lines can be very CPU heavy. The value lines are a polygon that
consists of many points. To improve drawing performance, this polygon will be simplyfied if it
consists of too many points (current threshold: ~1000 samples). While this improves the
drawing performance it may reduce the accuracy of the drawn polygon but may keep the
display still usable if too many samples shall be drawn.
The logged history of each graph can be copied from the device and then be converted to a
418
CSV file that in turn can be processed by a spreadsheet application. See here for
instructions.
The complete value history can be reset (deleted) with the JavaScript
568
delete2DGraphHistory function.
Displaying the logged data at run time needs some CPU time. To improve performance of the
2D Graph, the object is not redrawn at each variable change but automatically redraws itself
Toolchain Manual
Object Reference 412
with the latest values in a fixed interval (currently about every second). If there are still
performance issues the following measures can improve it:
· Reduce the numbers of shown variables in the graph
· Reduce the number of samples for each variable in the graph (see Number of Samples
416
to Record )
· Scale the X axis so that less data points are visible at once
· Consider changing the Log Trigger
417
for each variable to Time Based with an
appropriate timer value.
· If all of the above is not feasable for you application, think about upgrading to a newer
device generation with more CPU power
Variable References
Each variable can either be attached via the dialog that pops up when the ... button is
pressed in the property table for property "Variables To Draw" or by dragging a variable
from the Variable View onto the graph in the designer area.
X Axis Time Variable
With a variable attached to this property the time span of the X axis can be scaled. If no
variable is attached, the default time span is 10 seconds.
At run time the scaling is done every time the variable value is changed. The value of the
variable represents the time span of the X axis in seconds.
Variable values less than 1 are not considered.
Default value: None
Possible values: Any integer variable
X Axis Offset Variable
When a variable is attached to this property, it is possible to move in the history of the
graph. For each increment of the variable, the graph will move one second into it's history
and shows "old" values. Values less than 0 are not considered. If the value 0 is set, the
graph shows "live updates" of the values.
Default value: None
Possible values: Any integer variable
Cursor Position Variable
It is possible to move a cursor line in the graph. With this cursor line it is possible show the
values of each variable at the time where the cursor is. The cursor position represents the
distance in pixel from the right side of the 2D Graph.
When a variable is attached to this property the cursor can be activated by setting a value
greater or equal to 0 (0 shows the latest values).
Toolchain Manual
Object Reference 413
Toolchain Manual
Object Reference 414
Default value: 3
Possible values:
· 3 (three horizontal and three vertical grid lines will be drawn)
· 1 (one horizontal and one vertical grid line will be drawn)
Number of Grid Lines
With this property the existence and position of the Y axis can be configured. It either can
be on the left or on the right or completely disabled.
The main purpose of the Y axis is to show the (current) minimum and maximum values of
the variables shown in the graph (configure this for each variable with the property Show
Value Labels at Y Axis in the Variables To Draw dialog, see below).
Default value: Right
Possible values:
· Right
· Left
· Don't draw at all
Axis Line Attribute
Select the line attribute object that shall be used for drawing the X and Y axis lines.
Default value: Solid Black
Possible values: Any Line Attribute Object defined in project properties.
X Axis Labels
The X axis can show either full time stamps (format hh:mm:ss, eg. 09:42:37) or relative
timestamps (e.g. -15.0s, 0s, etc.). The X axis labels can also be completely disabled.
Default value: Full Time Stamps
Possible values:
· Full Time Stamps
· Relative Time Stamps
· None
Axis Font Attribute
The look of the labels of the X and Y axis can be configured with a font attribute. The color
of the font attribute only has influence on the X axis labels. The values at Y axis will be
shown in the color of the line attribute object of the configured variable (see Line Attribute
property for each variable in the Variables To Draw dialog).
Default value: Default_DejaVu Serif
Possible values: Any existing font attribute object
Log Data in Low-Power Mode
Configure if data shall be logged if ignition is off and the device is in low power mode.
Default value: Enabled
Possible values Enabled or Disabled
Variables To Draw
The Variables To Draw are the variables that are recorded and shown by the graph.
Variables can either be added by dragging them from the Variable View onto the graph in
the designer area or by clicking the ... button on this property. When clicking the ... button
the following dialog will pop up in which various settings for each variable can be made:
Toolchain Manual
Object Reference 415
The top part of the dialog is designated for selecting the variables that the graph object
shall draw.
On the left the tree with all variables available in the current project is displayed. On the right
there is the tree showing the variables that are already assigned to the graph.
To add a variable to the graph, select one in the left tree and click the Add >> button.
To remove a variable from the graph, select one in the right graph and click the << Remove
button.
It is also possible to add or remove complete groups.
Toolchain Manual
Object Reference 416
Note: There is a limit of variables that can be added to the graph. This limit is device
specific. On the bottom of the dialog the limit is shown and how much variables can be
added.
Note: Adding many variables might make the graph confusing.
After a variable was added, the following options can be set for each variable:
Name
The Name of the variable. This can't be edited here.
Min Value
The minimum value for the variable that shall be used for the graph. This defines the lowest
value of the Y axis and together with Max Value the range of the Y axis.
If Show Value Labels at Y Axis is enabled, the value of Min Value will be shown at the
bottom of the Y axis.
Min Value will not be considered if Auto Fit Y Axis is enabled.
Default value: Configured minimum value of the selected variable
Possible values: Any integer value that is less than Max Value
MaxValue
The maximum value for the variable that shall be used for the graph. This defines the
highest value of the Y axis and together with Min Value the range of the Y axis.
If Show Value Labels at Y Axis is enabled, the value of Max Value will be shown at the top
of the Y axis.
Max Value will not be considered if Auto Fit Y Axis is enabled.
Default value: Configured maximum value of the selected variable
Possible values: Any integer value that is greater than Min Value
Auto Fit Y Axis
If this property is disabled, the value range of the Y axis for this variable is fixed from Min
Value to Max Value.
If this property is enabled, the graph will automatically calculate the range of the Y axis
based on all values of the variable currently visible in the graph. Min and Max Value will not
be considered.
Default value: Disabled
Possible values: Disabled or Enabled
Line Attribute
To change the look of the value line that is drawn for this variable, a line attribute object can
be selected here. Line width, color and line pattern can be defined.
Each variable should get a different line attribute so that they can be distinguished in the
graph.
Default value: Solid Black
Possible values: Any line attribute object defined in the project properties.
Number of Samples to Record
To improve performance, the number of value changes that are recorded by the graph can
be limited. This should be done especially if no long history is required (e.g. only the latest
100 values are of interest).
As soon as the number of samples are reached during run time, the oldest values recorded
will be deleted.
Default value: 10000
Toolchain Manual
Object Reference 417
Toolchain Manual
Object Reference 418
With this property the trigger for logging a value can be configured. It can either be time
based (every value change is logged) or time based (a value sample is recorded cyclacly.
If Time Based is selected, the Timer Value can be used to configure the log period for the
selected variable.
Default value: Event Based
Possible values: Event Based or Time Based
Log Trigger
Configure the log period in milliseconds for the selected variable if Log Trigger is set to
Time Based
Default value: 500ms
Possible values: 500ms ... 2147483647ms
Timer Value
The recorded log data can be copied to a PC and then be processed by a tool to make it
readable by e.g. a spreadsheet application.
Toolchain Manual
Object Reference 419
Toolchain Manual
Object Reference 420
After data has been imported, press the Export button to show the export settings
dialog.
OEM documentation
Toolchain Manual
Object Reference 421
here .
Angles
Toolchain Manual
Object Reference 422
The angles of the arched bargraph can be changed with the Start Angle and End Angle
properties (see below). Some screenshots with examples follow here:
· Start Angle 0, End Angle 360:
Start Angle
The start angle of the arched bargraph can be defined with this property.
The start angle's 0° position is at 3 o clock.
Default value: 0°
Possible values: 0° ... 360°
See examples above
End Angle
The end angle of the arched bargraph can be defined with this property.
The start angle's 0° position is at 3 o clock.
Toolchain Manual
Object Reference 423
Default value: 0°
Possible values: 0° ... 360°
See examples above
Draw Target Line
388
When enabling this property, a line will be drawn at the position of the Target Value
property value.
Default value: Enabled
Possible values Enabled or disabled.
Target Line Color
The color in which the target line (see above) will be drawn.
Default value:black (RGB 0, 0, 0)
Possible values: Any 24Bit RGB color
Deflection Direction
The deflection direction defines how the value grows in an arched bargraph. Either
clockwise or anti clockwise.
Default value: ClockWise
Possible values: ClockWise or AntiClockWise
Bar Graph Width
Since the Width property only defines the width of the bounding box of the arched bargraph
it is possible to define the width (or thickness) of the arched bargraph with the Bar Graph
Width property.
Default value: 20 pixel
Possible values: 1 ... (height of the object divided by 2 or width of the object divided by 2,
whatever is smaller)
Fill Mode
If Fill Mode is enabled, the value will be shown as a filled area in the bargraph. If Fill Mode
is disabled only a line will be drawn at the value's position.
Default value: Enabled
Possible values: Enabled or disabled.
Events
The following events can be configured for the arched bargraph object:
· OnOpenForInput
· OnEnabledWithFocus
· OnEnabledWithoutFocus
· OnValueChange
· OnEnterValue
· OnEnterNewValue
· OnEscape
391
See here for the descriptions of all event and possible actions that can be assigned.
8.4.3 Button
The button object can display two states: Pressed or released.
To change the look & feel of the button, it can be configured with its properties.
Toolchain Manual
Object Reference 424
376
For common object properties refer to this page . Here only the button specific properties
are described.
Example project: Download this project to see the different button events in action.
Draw Shadow
A button shadow can be drawn around the button that changes according to pressed or
released state of the button. This is a visual help for the user to determine if the button is
just pressed or not.
Toolchain Manual
Object Reference 425
Disable this property if the design of the button is completely custom and the press/release
state is distinguishable using the pressed and released objects (see above).
If this property is enabled, a small region between button background (or object inside
button) and border of the button is reserved for the shadow. If it is disabled, the background
of the button (or object inside the button) goes directly to the border.
Default value: Enabled
Possible value: Enabled or Disabled
Shadow Color
If "Draw Shadow" is enabled one can define the shadow color used to draw the shadow.
The background color of the shadow is the button background color which includes that. the
background of the shadow is transparent if the button is configured as transparent.
The button shadow consists of two areas where one is drawn in the opaque color selected
and the other is drawn in a half-transparent version of the same color.
Both colors are switched when button is pressed to simulate a kind of 3D effect of the
pressed/released button.
Default value: Black.
Possible value: Any color allowed by standard color chooser.
Latching
Latching means: When a button is pressed and released, it toggles state and stays in the
toggled state until it is pressed again.
Like that a latching button resembles a light switch whereas a non-latching button
resembles a door-bell switch.
With this property this behavior can be enabled.
Default value: Disabled
Possible values: Enabled or Disabled
Please note that this property affects the behavior of the press and release events of the
objects.
Pressed State
Switch between the release or pressed state of the button. This is important for having a
preview of the object and also for adding pressed/released objects for the button (see
above).
Note: If only one child is assigned to the button the other state will be shown as empty on
PC tool but on the device this one child will show permanently - button shadow should be
used to show button state in this scenario.
This property has no influence to runtime behavior.
Default value: Disabled
Possible values:
· Enabled (button is in pressed state)
· Disabled (button is in released state)
Pressed Object ID
The ID of the object that represents the pressed object of the button.
Will be automatically set when adding a pressed state object to the button (see above).
Can't be edited by hand.
Released Object ID
The ID of the object that represents the released object of the button.
Toolchain Manual
Object Reference 426
Will be automatically set when adding a released state object to the button (see above).
Can't be edited by hand.
Pressed Image
Alternatively to putting one or two Picture Graphic objects into the button, this property can
be used to add an image to the button. The image set in this property will be used as the
pressed image. If no image is set for the Released Image property but for the Pressed
Image property, the button will only show an image when it is pressed. Both properties
should be set with an image.
Released Image
Alternatively to putting one or two Picture Graphic objects into the button, this property can
be used to add an image to the button. The image set in this property will be used as the
released image. If no image is set for the Pressed Image property but for the Released
Image property, the button will only show an image when it is released. Both properties
should be set with an image.
Events
The following events can be configured for the button object:
· OnPress
· OnRelease
· OnLongPress
· OnLongRelease
· OnDblClick
· OnOpenForInput
· OnEnabledWithFocus
· OnEnabledWithoutFocus
· OnValueChange
391
See here for the descriptions of all event and possible actions that can be assigned.
8.4.4 Container
The container object is only a "container" for other objects. It is not visible at runtime.
A container can be used to group other objects and add a deeper hierarchy in the project
tree.
360
The Visibility property can be used to make all objects inside the container visible or
invisible with just one command and no need to assign visibility properties to each object in
the container. Also, moving a set of objects is easier when they are in a container.
To put an object into a container, drag and drop the object into the container in the project
tree.
Toolchain Manual
Object Reference 427
When putting existing objects into a container, please note that the position of the object
relative to the parent object will be used to position the object in the container.
I.e. if the object is in a frame that starts at position 0,0 then the container should also start at
that position, otherwise the object will be moved to position + container position.
To put an existing layout of objects into a container and keep all positions, put the top left
edge of the container at the top left edge of the page and re-size the container so that the
objects you want to put in are within the container boundaries.
Attention!
Please do not try to override limitations of the Projektor objects by using containers,
i.e. by putting a container inside of a button and then a button inside of the container
in the button. Such combinations are not supported or tested and will most likely
lead to unexpected behavior. Also, don't put containers inside of other containers.
8.4.5 Frame
The frame is the basic object that should be at least once on a page (maybe except a video
page).
A frame needs to be placed on a page so that objects can be added to it. When creating a
new page, a full screen frame will automatically be created.
Frames can be used to display a video from the device's analog video input (see property
description below).
376
As many other objects, the frame has a lot of common properties. See here for a
description. Only frame specific properties will be described on this page.
Frame Specific Properties
Frame Type
This property has no effect and will be changed or removed in a future release.
472
For Video Properties please see here .
Events
The following events can be configured for the frame object:
· OnPress
· OnRelease
391
See here for the descriptions of all event and possible actions that can be assigned.
8.4.6 Gauges
The gauge object can be used to design gauges or other instruments requiring a needle
(indicator).
376
The gauge shares many properties with other objects. Find a description of them here .
Angle
Toolchain Manual
Object Reference 428
Start Angle
The start angle of the meter can be defined with this property.
The start angle's 0° position is at 3 o clock.
Default value: 0°
Possible values: 0° ... 360°
See examples above
End Angle
The end angle of the meter can be defined with this property.
The start angle's 0° position is at 3 o clock.
Default value: 0°
Possible values: 0° ... 360°
See examples above
Deflection Direction
The deflection direction defines how the value grows in the gauge. Either clockwise or anti
clockwise.
Default value: ClockWise
Possible values: ClockWise or AntiClockWise
Needle Color
With this property the color of needle can be defined.
Note: This property has no effect if a Needle Image is used.
Note: See also common properties Color Above Maximum and Color Below Minimum
which also have an influence on the needle color.
Default value: White (RGB 255,255, 255, 255)
Possible values: Any 24Bit ARGB color
Needle Image
Instead of the automatically drawn needle, a needle image can be assigned to the gauge to
show a different kind of indicator.
The needle image should have the same size as the gauge and the needle in the image
should always point to the 3 o'clock position.
Note that the image will be rotated around its center, so place the needle accordingly.
Example needle image:
Toolchain Manual
Object Reference 429
Toolchain Manual
Object Reference 430
Toolchain Manual
Object Reference 431
Draw Values
Values can be drawn at the end of the ticks around the gauge. With this property the
drawing of the values can be enabled or disabled.
Default value: Enabled
Possible values: Enabled or disabled
Values Distance Factor
The distance of the values from the ticks can be modified. The reference value (which
equals a factor of 1) is the radius of the gauge object.
Default value: 0.12
Possible values: 0.0 ... 1.0
Font Auto Scaling
With this property the automatic scaling of the values next to the ticks can be enabled or
disabled. If enabled, the Font size will increase with the size of the object. Please note that
327
the size defined in the Font Attribute is disregarded for the font scaling if this property is
enabled.
Default value: Enabled
Possible values: Enabled or disabled.
Font Scaling Factor
The scaling factor of the values can be modified. The reference value (which equals a
factor of 1) is the radius of the gauge object. Please note that the size defined in the Font
327
Attribute is disregarded for the font scaling.
Default value: 0.09
Possible values: 0.0 ... 1.0
Toolchain Manual
Object Reference 432
scale:
Default value: 1
Possible values: -2147483648.0 ... 2147483647.0
Toolchain Manual
Object Reference 433
The width of the digital value box inside the gauge can be modified. The reference value
(which equals a factor of 1) is the radius of the gauge object.
Default value: 0.45
Possible values: 0.0 ... 2.0
Digital Value Background Height Factor
The width of the digital value box inside the gauge can be modified. The reference value
(which equals a factor of 1) is the radius of the gauge object.
Default value: 0.3
Possible values: 0.0 ... 2.0
Events
The following events can be configured for the gauge object:
· OnOpenForInput
· OnEnabledWithFocus
· OnEnabledWithoutFocus
· OnValueChange
· OnEnterValue
· OnEnterNewValue
· OnEscape
391
See here for the descriptions of all events and possible actions that can be assigned.
8.4.7 Lamp
423
The lamp object is based on the button object . It can display two states: On or off / lit or not
lit.
The lamp can be turned on or off by a variable reference. 0 or false equals off, 1 or true equals
on.
In difference to the button object, the images for the lamp are not included as separate Picture
Graphic objects.
Instead, there are two new parameters, Pressed Image and Released Image.
376
For common object properties of the object refer to this page . Here only the lamp specific
properties are described.
Please note that the "Set as Input" property for the lamp object is disabled by default, as it is
rather an indicator than a button. But it can still be enabled to be used like a button.
Lamp Specific Properties
Draw Shadow
A button shadow can be drawn around the button that changes according to pressed or
released state of the button. This is a visual help for the user to determine if the button is
just pressed or not.
Disable this property if the design of the button is completely custom and the press/release
state is distinguishable using the pressed and released objects (see above).
If this property is enabled, a small region between button background (or object inside
button) and border of the button is reserved for the shadow. If it is disabled, the background
of the button (or object inside the button) goes directly to the border.
Note: Even though the lamp is a round object visually, the button is still rectangle, and so is
the shadow, if this property is enabled.
Default value: Disabled
Toolchain Manual
Object Reference 434
Toolchain Manual
Object Reference 435
The image set in this property will be used as the released image. By default, this will be
set to the standard lamp released image.
Events
The following events can be configured for the button object:
· OnPress
· OnRelease
· OnLongPress
· OnLongRelease
· OnDblClick
· OnOpenForInput
· OnEnabledWithFocus
· OnEnabledWithoutFocus
· OnValueChange
391
See here for the descriptions of all event and possible actions that can be assigned.
8.4.8 Linear Bargraph
The linear bargraph is an object for showing a numerical value in a graph. 376
The linear bargraph shares a lot of common properties with other objects. See here for a
description. Here only the linear bargraph specific properties are described.
Download this project to see an example how to use the linear bargraph. A PDF is included
which explains how the project works.
Direction
The direction of the fill or value line of the bargraph.
For vertical bargraphs a positive direction means that the value grows from bottom to top.
A negative direction means that the value grows from top to bottom.
For horizontal bargraphs a positive direction means that the value grows from left to right. A
negative direction means that the value grows from right to left.
Default value: Positive
Possible values: Positive or Negative
Axis Orientation
A bargraph can either be vertical or horizontal. Depending on this property the drawing of
the bargraph itself and the value changes accordingly.
Default value: Vertical
Possible values: Vertical or Horizontal
Draw Target Line
388
When enabling this property, a line will be drawn at the position of the Target Value
property value.
Default value: Enabled
Possible values Enabled or disabled.
Toolchain Manual
Object Reference 436
Events
The following events can be configured for the linear bargraph object:
· OnOpenForInput
· OnEnabledWithFocus
· OnEnabledWithoutFocus
· OnValueChange
· OnEnterValue
· OnEnterNewValue
Toolchain Manual
Object Reference 437
· OnEscape
391
See here for the descriptions of all event and possible actions that can be assigned.
8.4.9 List
The list object is a useful object to show other objects based on a value (e.g. two icons in a list
showing a different state).
A list always contains other objects. It is possible to either display only one object at a time or
multiple objects, this can even be defined for the different navigation states of the list (see
properties Items Visible (Normal Mode) and Items Visible (Editing Mode)). This makes it
possible to show something like a drop down menu (1 item visible in normal mode, more
visible in editing mode).
Note: At runtime the list object's height is automatically calculated based on the number of
currently displayed child items (and their item height). This also means that a list that has no
child items will NOT be displayed at all. In the designer the list is always shown in full height
based on the properties Items Visible (Normal Mode) or Items Visible (Editing Mode) even
if no or less children are present.
As with all other objects there are some common object properties that are also used by the
376
list object. Se here for a description of the common properties.
The list specific properties are listed below.
List Specific Properties
Item Height
The height of a list object can not be changed via the common Height property. The height
of the list is defined by a combination of the Item Height property, the Border Width (and
Draw Border) and the number of visible items items in the list (see Items Visible (Normal
Mode) and Items Visible (Editing Mode) below).
Use this property to define the height of each item (other object) in the list.
Default value: 30 pixel
Possible values: 1 ... 1280 pixel
List Item Mode
This property is only a preview for the two list modes that are available (normal or editing). It
has no effect on runtime behavior.
Note: This property can only be changed if the property Open For Input is enabled.
Default value: Normal
Possible values: Normal or Editing
Items Visible (Normal Mode)
With this property it can be defined how many items (or objects) are visible in normal mode
of the list (when it is currently not edited (not open for input)).
Default value: 1
Possible values: 1 ... 255
Toolchain Manual
Object Reference 438
Toolchain Manual
Object Reference 439
Click the Add multiple Images button on the right. A file dialog will appear. In this file dialog
open as many images (from the same directory) as wanted.
For each selected image a new picture graphic object will automatically created (with
default settings) and added to the list.
-Change the order of the items
The table in the dialog shows all items in the list. The one of the top is the one that will be
shown when setting value 0 the list. The one on the bottom of the list is the one that is
shown when the highest value is set.
To change the order simply select one item in the table and then click either the Up or
Down button on the right side of the dialog.
-Number Of List Items
This property can not be edited. It just shows the number of items inside the list.
FAQ
Events
The following events can be configured for the list object:
· OnOpenForInput
· OnEnabledWithFocus
· OnEnabledWithoutFocus
· OnValueChange
· OnGetValue
· OnEnterValue
· OnEnterNewValue
· OnEscape
391
See here for the descriptions of all event and possible actions that can be assigned.
Toolchain Manual
Object Reference 440
8.4.10 Meter
The meter can be used to design gauges or other instruments requiring a needle (indicator).
376
The meter shares many properties with other objects. Find a description of them here .
Angles
The angles of a meter can be changed with the Start Angle and End Angle properties (see
below).
The spanning direction for the meter is always counterclockwise:
Toolchain Manual
Object Reference 441
Start Angle
The start angle of the meter can be defined with this property.
The start angle's 0° position is at 3 o clock.
Default value: 0°
Possible values: 0° ... 360°
See examples above
End Angle
The end angle of the meter can be defined with this property.
The start angle's 0° position is at 3 o clock.
Default value: 0°
Possible values: 0° ... 360°
See examples above
Deflection Direction
The deflection direction defines how the value grows in the meter. Either clockwise or anti
clockwise.
Default value: ClockWise
Possible values: ClockWise or AntiClockWise
Needle Color
With this property the color of needle can be defined.
Note: This property has no effect if a Needle Image is used.
Note: Ses also common properties Color Above Maximum and Color Below Minimum
which also have influence on the needle color.
Default value: Signal blue (RGB 0, 51, 255)
Possible values: Any 24Bit RGB color
Toolchain Manual
Object Reference 442
Needle Image
Instead of the automatically drawn needle, a needle image can be assigned to the meter to
show a more beautiful indicator.
The needle image should have the same size as the meter and the needle in the image
should always point to 3 o'clock position.
Example needle image:
Toolchain Manual
Object Reference 443
Events
The following events can be configured for the meter object:
· OnOpenForInput
· OnEnabledWithFocus
· OnEnabledWithoutFocus
· OnValueChange
· OnEnterValue
· OnEnterNewValue
· OnEscape
391
See here for the descriptions of all event and possible actions that can be assigned.
8.4.11 Multimedia Player
Download this project to see a basic implementation of the Multimedia Player in a project.
The multimedia player is a complex object which contains other basic objects. Each basic
object is registered in the player itself and takes a special function. The player represents a
predefined construction kit which is fully customizable.
A media player can be placed on a frame and is used for playing audio or video files. As 376
many other objects, the multimedia player has a lot of common properties. See here for a
description. Only multimedia player specific properties will be described on this page.
Hint: The Multimedia Player object is only available for device panels with audio capabilities.
Otherwise you won't see this object in the palette.
Please note:
If you want to use the MP3 or MP4 formats in your project it is necessary that you purchase a
license at http://www.mpegla.com/main/default.aspx or http://mp3licensing.com/.
For MP4 you need to license “MPEG-4 Visual (Part 2)” and “AVC/H.264 (MPEG-4 Part 10)”
in order to use both formats. If you only want to playback MP4 video files the H.264 license
should be enough.
If you have any further questions or need any assistance please contact the support team, we
are happy to help you.
Multimedia Player Controls / Components
Toolchain Manual
Object Reference 444
Toolchain Manual
Object Reference 445
Toolchain Manual
Object Reference 446
Toolchain Manual
Object Reference 447
Toolchain Manual
Object Reference 448
Toolchain Manual
Object Reference 449
care about the positioning and sizing of all included objects in design time. The layout
manager has no effect at runtime.
Resizing is only done when the object size is changed.
Toolchain Manual
Object Reference 450
Possible values:
· Disabled: Removes the volume increase / decrease buttons).
· Enabled: Add's the volume increase / decrease buttons.
Full Path In Title
This property shows the full path of the played media file in the title string field at runtime
instead of only the file name.
Playlist Width
This value adjusts the width of the playlist if it is shown. The state of this property is
depending on the value of the “Show Playlist” property.
Toolchain Manual
Object Reference 451
The id of deleted control objects will be set to "-1.” Of course it is also possible to add /
register a control object again.
- Only objects which are included in the multimedia player component can be registered.
- The object which is to be registered must contain all required events, because the default
events/actions will be registered again.
(e.g. it is also possible to register an arched bargraph object as volume bar instead the
default linear bargraph object, because both objects have the "OnValueChange" event)
Hint: If the assignment of the new control object fails, the last valid id will retain
Events
The following events can be configured for the multimedia player object:
· OnPress
· OnRelease
391
See here for the descriptions of all event and possible actions that can be assigned.
FAQ
Video
The following video codecs have been verified on the device:
· H264 - MPEG-4 AVC (part 10) (avc1)
· MPEG-1/2 Video (mpgv)
· Motion JPEG Video (MJPG)
· Google/On2's VP8 Video (VP80)
Toolchain Manual
Object Reference 452
The following video codecs are currently NOT SUPPORTED on the device:
· Theora Video
· MPEG-4 Video (DX50) => DIVX version 5
· Any Windows media format in an AFS container (VC1, WMV)
Audio
The following audio codecs have been verified on the device:
· MPEG AAC Audio (mp4a)
· MPEG Audio layer 1/2/3 (mpga)
· Vorbis Audio (vorb)
· Raw wave files in different format (tested: PCM S16 LE (araw), PCM U8 (araw))
Why should VLC be installed?
For using the multimedia player object it is NOT neccessary that VLC is installed on your
PC but it can help in the following topics:
· Check what codecs are used by specific media file
· Convert (transcode) a media file to a supported codec
VLC can be downloaded here: http://www.videolan.org/. It is open source software and can
be installed without charge (please consider a donation :) ).
What is the suggested video and audio codec and how to convert my video?
We suggest to use .mp4 files with "H264 - MPEG-4 AVC (part 10) (avc1)" as video codec
and "MPEG AAC Audio (mp4a)" as audio codec.
To convert to a supported codec, VLC (see above) can be used. Here is a short manual:
https://wiki.videolan.org/Transcode/
What is the difference between the multimedia playback on Windows simulation
and on the device
The frontend for playing back media files with the MultimediaPlayer object is the same on
both platforms. However, the backend is completely different. On the Windows PC the
simulation uses the capabilities of the operating system and the installed software codecs.
On the device the hardware decoding functions of the CPU are directly used to minimize
CPU load.
Because of this difference, the playback can be different on both platforms. One of the
biggest differences can be that a media file that can be played back in the simulation on
the Windows PC cannot be played back on the device. This can happen if a codec is
installed on the PC but is not supported by the CPU on the device. Other differences that
may appear are different timings when executing a multimedia action or (e.g. when going
to the next file in the playlist the total time of the next file might appear faster on one
platform than on the other).
We strongly recommend that testing is not only done with the Windows simulation but also
directly on the device!
Why is my media file not playing in the Windows simulation?
There might be a codec missing. The K-Lite Codec Pack supports all the codecs
supported on the device (and many more). After installing this codec pack, restart the
simulation and try again.
Download it here: http://www.codecguide.com/download_kl.htm (the basic version should
be enough)
Toolchain Manual
Object Reference 453
Toolchain Manual
Object Reference 454
The numeric field object is designed to show numbers on the screen. It can be customized
like any other object using it's properties.
376
The numeric field has a lot of common properties. See here for a description of them. Here
only the numeric field specific properties are described.
Numeric Field Specific Properties
Format
Choose between normal decimal representation of the displayed number or a scientific
exponential representation.
Examples:
Decimal value: 15, scientific notation / floating-point representation: 1.5e+1
Decimal value: 0.1, scientific notation / floating-point representation: 1.0e-1
Decimal value: 32767, scientific notation / floating-point representation: 3.2767e+4
Toolchain Manual
Object Reference 455
This could be useful if e.g. only a deviation shall be displayed but nothing if the value is right
at target.
Default value: Disabled
Possible values: Enabled or Disabled
Offset, Scale, Offset 2
Two offsets and a scale value can be defined that will be used in the following way:
displayed value = (original value + Offset 1) * scale + Offset 2
offsets:
Default value: 0.0
Possible values: -2147483648.0 ... 2147483647.0
scale:
Default value: 1.0
Possible values: -2147483648.0 ... 2147483647.0
Events
The following events can be configured for the numeric field object:
· OnOpenForInput
· OnEnabledWithFocus
· OnEnabledWithoutFocus
· OnValueChange
· OnEnterValue
· OnEnterNewValue
· OnEscape
391
See here for the descriptions of all event and possible actions that can be assigned.
8.4.13 Picture Graphic
The Picture Graphic object is a simple object to display static images on the screen.
It is also capable of displaying animated GIF images that makes it possible to show small
movies and animations. See GIF properties below.
Toolchain Manual
Object Reference 456
376
The picture graphic shares some common properties with other objects.
This section only describes the properties that are Picture Graphic specific or differ with the
common properties.
Picture Graphic Specific properties
Image To Display
To choose the image that shall be displayed in a Picture Graphic use this property.
Any supported image file can be selected from the file system. Supported formats are:
· Bitmap Windows Bitmap (*.bmp)
· JPEG Joint Photographic Experts Group (*.jpg, *.jpeg, *.jpe)
· PNG Portable Network Graphics (*.png)
· GIF Graphics Interchange Forrmat (*.gif)
· SVG Scalable Vector Graphics (*.svg)
In general all images are scaled to size of the Picture Graphic object and converted to PNG
format when saving the project.
Two exceptions exist:
· GIF images will neither be scaled nor converted. They will be saved 1:1 to the device
so that GIF animations can be replayed.
· SVG images are also not scaled or converted when saving the project. They will be
scaled directly on the target.
In general, please use images in the exact resolution that they will be displayed in on the
device. Higher resolutions don't improve the quality, they lead to a higher memory demand
and the scaling can produce a lower image quality.
Fit To Image Size
Enable this property to change the size of the Picture Graphic object to the size of the
image selected with Image To Display property.
Default value: Enabled
Possible values:
· Disabled: Image will be scaled to size of Picture Graphic
· Enabled: Picture Graphic will be scaled to image size
Toolchain Manual
Object Reference 457
· 1 (Play)
· 2 (Pause)
Example for how to use this property in a JavaScript:
var objectID = 42;
//Enable looping:
setProperty(objectID, "GIF Loops", true);
GIF Frame Number
Toolchain Manual
Object Reference 458
It is possible to jump to a certain frame number of the GIF animation. Like this an animation
can be played frame by frame or jump to a special frame.
Default value: 0
Possible values: 0 (first frame) ... number of frames of the GIF animation
If a number greater than the actual number of frames of the animation is set, it will be
ignored.
Example:
var objectID = 42;
//Jump to frame 5
setProperty(objectID, "GIF Frame Number", 5);
Note: Frame counting starts at 0.
8.4.14 Power Switch
423
The power switch object is based on the button object . It can display two states: On or off.
The power switch can be turned on or off by a variable reference. 0 or false equals off, 1 or
true equals on.
In difference to the button object, the images for the power switch are not included as
separate Picture Graphic objects.
Instead, there are two new parameters, Pressed Image and Released Image.
376
For common object properties of the object refer to this page . Here only the power switch
specific properties are described.
Please note that for this object the "Latching" property is activated by default, since a power
switch is usually used like that.
Power Switch Specific Properties
Draw Shadow
A button shadow can be drawn around the button that changes according to pressed or
released state of the button. This is a visual help for the user to determine if the button is
just pressed or not.
Disable this property if the design of the button is completely custom and the press/release
state is distinguishable using the pressed and released objects (see above).
If this property is enabled, a small region between button background (or object inside
button) and border of the button is reserved for the shadow. If it is disabled, the background
of the button (or object inside the button) goes directly to the border.
Note: Even though the lamp is a round object visually, the button is still rectangle, and so is
the shadow, if this property is enabled.
Default value: Disabled
Possible value: Enabled or Disabled
Shadow Color
If "Draw Shadow" is enabled one can define the shadow color used to draw the shadow.
The background color of the shadow is the button background color which includes that. the
background of the shadow is transparent if the button is configured as transparent.
The button shadow consists of two areas where one is drawn in the opaque color selected
and the other is drawn in a half-transparent version of the same color.
Both colors are switched when button is pressed to simulate a kind of 3D effect of the
pressed/released button.
Default value: Black.
Toolchain Manual
Object Reference 459
Pressed Object ID
Not used for this object type.
Released Object ID
Not used for this object type.
Toggle Background Image
With this property the usage of the Pressed Image and Released Image can be turned on
or off.
Pressed Image
The image set in this property will be used as the pressed image. By default, this will be set
to the standard power switch pressed image.
Released Image
The image set in this property will be used as the released image. By default, this will be
set to the standard power switch released image.
Events
The following events can be configured for the button object:
· OnPress
· OnRelease
· OnLongPress
· OnLongRelease
· OnDblClick
Toolchain Manual
Object Reference 460
·OnOpenForInput
·OnEnabledWithFocus
·OnEnabledWithoutFocus
·OnValueChange
391
See here for the descriptions of all event and possible actions that can be assigned.
8.4.15 Push Switch
423
The push switch object is based on the button object . It can display two states: On or off.
The push switch can be turned on or off by a variable reference. 0 or false equals off, 1 or true
equals on.
In difference to the button object, the images for the push switch are not included as separate
Picture Graphic objects.
Instead, there are two new parameters, Pressed Image and Released Image.
376
For common object properties of the object refer to this page . Here only the push switch
specific properties are described.
Push Switch Specific Properties
Draw Shadow
A button shadow can be drawn around the button that changes according to pressed or
released state of the button. This is a visual help for the user to determine if the button is
just pressed or not.
Disable this property if the design of the button is completely custom and the press/release
state is distinguishable using the pressed and released objects (see above).
If this property is enabled, a small region between button background (or object inside
button) and border of the button is reserved for the shadow. If it is disabled, the background
of the button (or object inside the button) goes directly to the border.
Note: Even though the lamp is a round object visually, the button is still rectangle, and so is
the shadow, if this property is enabled.
Default value: Disabled
Possible value: Enabled or Disabled
Shadow Color
If "Draw Shadow" is enabled one can define the shadow color used to draw the shadow.
The background color of the shadow is the button background color which includes that. the
background of the shadow is transparent if the button is configured as transparent.
The button shadow consists of two areas where one is drawn in the opaque color selected
and the other is drawn in a half-transparent version of the same color.
Both colors are switched when button is pressed to simulate a kind of 3D effect of the
pressed/released button.
Default value: Black.
Possible value: Any color allowed by standard color chooser.
Latching
Latching means: When a button is pressed and released, it toggles state and stays in the
toggled state until it is pressed again.
Like that a latching button resembles a light switch whereas a non-latching button
resembles a door-bell switch.
With this property this behavior can be enabled.
Default value: Disabled
Toolchain Manual
Object Reference 461
Pressed Object ID
Not used for this object type.
Released Object ID
Not used for this object type.
Toggle Background Image
With this property the usage of the Pressed Image and Released Image can be turned on
or off.
Pressed Image
The image set in this property will be used as the pressed image. By default, this will be set
to the standard push switch pressed image.
Released Image
The image set in this property will be used as the released image. By default, this will be
set to the standard push switch released image.
Events
The following events can be configured for the button object:
· OnPress
· OnRelease
· OnLongPress
· OnLongRelease
· OnDblClick
· OnOpenForInput
· OnEnabledWithFocus
· OnEnabledWithoutFocus
· OnValueChange
391
See here for the descriptions of all event and possible actions that can be assigned.
Toolchain Manual
Object Reference 462
Note that the Rocker Switch comes in horizontal and vertical. They are identical except for the
orientation of the rocker switch images.
Rocker Switch Specific Properties
Draw Shadow
A button shadow can be drawn around the button that changes according to pressed or
released state of the button. This is a visual help for the user to determine if the button is
just pressed or not.
Disable this property if the design of the button is completely custom and the press/release
state is distinguishable using the pressed and released objects (see above).
If this property is enabled, a small region between button background (or object inside
button) and border of the button is reserved for the shadow. If it is disabled, the background
of the button (or object inside the button) goes directly to the border.
Note: The shadow will not be painted for this object, it doesn't make sense to enable it.
Default value: Disabled
Possible value: Enabled or Disabled
Shadow Color
If "Draw Shadow" is enabled one can define the shadow color used to draw the shadow.
The background color of the shadow is the button background color which includes that. the
background of the shadow is transparent if the button is configured as transparent.
The button shadow consists of two areas where one is drawn in the opaque color selected
and the other is drawn in a half-transparent version of the same color.
Both colors are switched when button is pressed to simulate a kind of 3D effect of the
pressed/released button.
Default value: Black.
Possible value: Any color allowed by standard color chooser.
Latching
Latching means: When a button is pressed and released, it toggles state and stays in the
toggled state until it is pressed again.
Like that a latching button resembles a light switch whereas a non-latching button
resembles a door-bell switch.
With this property this behavior can be enabled.
Default value: Disabled
Possible values: Enabled or Disabled
Toolchain Manual
Object Reference 463
Pressed State
Switch between the release or pressed state of the button. This is important for having a
preview of the object and also for adding pressed/released objects for the button (see
above).
Note: If only one child is assigned to the button the other state will be shown as empty on
PC tool but on the device this one child will show permanently - button shadow should be
used to show button state in this scenario.
This property has no influence to runtime behavior.
Default value: Disabled
Possible values:
· Enabled (button is in pressed state)
· Disabled (button is in released state)
Pressed Object ID
Not used for this object type.
Released Object ID
Not used for this object type.
Pressed Image
The image set in this property will be used as the pressed image. By default, this will be set
to the standard rocker switch pressed image.
Released Image
The image set in this property will be used as the released image. By default, this will be
set to the standard rocker switch released image.
Events
The following events can be configured for the button object:
· OnPress
· OnRelease
· OnLongPress
· OnLongRelease
· OnDblClick
· OnOpenForInput
· OnEnabledWithFocus
· OnEnabledWithoutFocus
· OnValueChange
391
See here for the descriptions of all event and possible actions that can be assigned.
8.4.17 String Field
The string field object is designed to show text on the screen. It can be customized like any
other object using it's properties. 376
The string field has a lot of common properties. See here for a description of them. Here
only the string field specific properties are described.
String Field Specific Properties
Toolchain Manual
Object Reference 464
Auto Wrap
When Auto Wrap is enabled, the text inside the string field will be automatically wrapped to
the next line if the text does not fit inside the string field. If possible, wrapping will leave the
words in the text complete. If the string field is to narrow to display even a single word, the
single word will be splited.
If Auto Wrap is disabled, text that does not fit in the string field will be clipped.
Default value: Disabled
Possible values: Disabled or Enabled
Max String Length (Characters)
The maximum length of the text displayed in the string field can be adjusted with this
property.
Note that the value of a referenced variable or the Preview Value of the string field may
have more characters but they are just not displayed if it's more than Max String Length.
Default value: 32
Possible values: 0 ... 255
Events
The following events can be configured for the string field object:
· OnOpenForInput
· OnEnabledWithFocus
· OnEnabledWithoutFocus
· OnValueChange
· OnEnterValue
· OnEnterNewValue
· OnEscape
391
See here for the descriptions of all event and possible actions that can be assigned.
8.4.18 Table
A table can be used to display multiple lines of text. Each line of this text consist of the table
cell values delimited by a configurable delimiting character.
Example text for a table with ; as delimiter character:
Line1Column1;Line1Column2;Line1Column3;Line1Column4
Line2Column1;Line2Column2;Line2Column3;Line2Column4
Line3Column1;Line3Column2;Line3Column3;Line3Column4
The source for the text can either be automatic (e.g. from J1939 DM settings) or set manually
via a JavaScript (set the text directly (with setProperty and property "Table Data") or read e.g.
559
a log file, see JavaScript readFile function for an example).
It is not possible to give a preview of the text in the designer tool. The text will be only available
at runtime.
Properties of the table
General
The table shares the same general properties with all other objects.
Toolchain Manual
Object Reference 465
Variable Reference
Here a number variable can be assigned to the table. With this variable the table can be
scrolled if the content can not be dsiplayed completely. Set value 0 to scroll to top, any
other value will scroll the value down (depending on number of lines in the table).
Default: No Variable
Possible Values: Any number variable
Bit Mask
Same as for other objects.
Skin Properties
Skin properties are the same as for other objects.
Visibility
Visibility properties are the same as for other objects.
Input Configuration
The input configuration properties are the same as for other objects. Like with an assigned
variable it is possible to manually scroll through the table if the property Set As Input is
enabled.
Value Related
The Preview Value property will have no influence on the table in the tool. With JavaScript
you could set that property to scroll through the table but it is recommended to just set the
property Set As Input or attach a variable for scrolling.
Formatting
Font Attribute
Same as for other objects. The font attribute selected here will be applied to the text shown
in the table.
Font
Same as for other objects. The font selected here is used as the font for the table's text.
Horizontal Alignment
Same as for other objects. All text in the table will be aligned either center, left or right.
Vertical Alignment
Same as for other objects. All text in the table will be aligned either center, top or bottom.
Table Specific
Grid Color
This represents the color of the "grid" (the inner border) of the table.
NOTE: If you want to change this property via JavaScript, the property name "Foreground
Color" needs to be used instead of "Grid Color".
Default: black (0, 0 ,0)
Possible values: any color
Toolchain Manual
Object Reference 466
Language dependancy is not possible for table heading texts. If you need language
dependant headings, please use String Fields, put them above the table and configure
them as language dependant.
Show Table Heading
Show or hide the heading of the table. See other heading properties above.
Default: disabled
Possible values: enabled or disabled
Number of Table Columns
This property displays the current number of columns of the table.
The value will automatically set by enter the Table Column Spacing property below.
Table Column Spacing
With this property the number of columns and their spacing can be configured. To do this
the spacing value in percent of each column needs to be entered delimited by the Table
Data Delimiter.
Default: 25;25;25;25 (each column uses 25% of the table width)
Possible values: any combination that's sum is 100%
NOTE:
If the sum is not 100%, the last column will increased to fit the 100%
Toolchain Manual
Object Reference 467
If the sum is over 100%, the value will reverted to the last valid
This property has an effect to other properties that use that value: Table Heading Text and
Number of Table Columns
Highlighted Row
This property is not visible in the designer and can only be accessed via JavaScript's
getProperty() and setProperty() functions.
It is possible to highlight a row in the table. Row counting starts at 0. If a row is highlighted,
the font and background color will be shown inverted. If a row is highlighted that is currently
not visible, the table will automatically scroll to that row.
Default: -1 (no row highlighted)
Possible values: -1 (no row highlighted) ... row count of the table
Events
The following events can be configured for the table object:
· OnOpenForInput
· OnEnabledWithFocus
· OnEnabledWithoutFocus
· OnValueChange
· OnEnterValue
· OnEnterNewValue
· OnEscape
391
See here for the descriptions of all event and possible actions that can be assigned.
Modern bright
Toolchain Manual
Object Reference 468
Modern dark
Classic
Toolchain Manual
Object Reference 469
For each palette object, certain properties are "theme-dependent", i.e. they will be used
when a new object with that theme is created or when the theme is applied to an object or
to a whole project.
To see which properties are changed by a theme, go to the dialog reached over the menu
Options -> Scene -> Object Themes, choose a theme and select one of the objects. In the
"Properties" window on the right side of the dialog, the affected properties and their
settings for the selected theme are displayed.
Toolchain Manual
Object Reference 470
Chosing themes
Themes can be chosen
· for the currently selected object in the scene, by changing the "Theme Template" property
of the object
· as the standard for new objects, by changing the "Default Theme" setting in the tool bar.
· for an existing project, by choosing a theme in the menu Tools -> Options and then Scene
-> Object Themes in the "Theme:" dropdown menu and clicking "Apply Theme to Project"
Toolchain Manual
Object Reference 471
For themes other than the pre-defined themes, some properties can be excluded from
being applied to a project.
E.g. the list object is not transparent by default, but often it is in projects. So for an custom
theme, the user can select the list object and exclude the property "Transparent" from being
applied to the project.
Editing themes
The pre-defined themes cannot be changed.
However, duplicates of these themes can be made. These duplicates can then be modified
by the user.
In the dialog reached over the menu Tools -> Options and then Scene -> Object Themes an
existing theme can be duplicated by selecting the theme and clicking "Duplicate".
A new name needs to be given to the new theme. By clicking OK, the new theme will be
created.
Theme-dependent properties of each object can then be edited in the "Properties" window
on the right side of the dialog. To apply the changes, click the "Apply changes" button.
Themes are not project-dependent, they can be used in all projects. They are saved in the
user data folder.
Toolchain Manual
Object Reference 472
Video can be displayed in a Frame or on a Page . Therefore these objects share the
following video properties:
Display Video
Toolchain Manual
Object Reference 473
· Both
Enable video, mirror it horizontally and vertically (only analog video will be mirrored)
Note that the camera preview image in the tool changes with the different mirror settings.
Video Type
Here the type of the video can be chosen between analog video input or digital H.264
stream over Ethernet:
· Analog Video Input
One of the device's analog video inputs shall be used (select which with Video
Camera property below)
· H.264 Ethernet Stream
Show a H.264 video stream received via Ethernet (see below for requirements and
limitations)
UDP Port
473
If the Video Type was set to H.264 Ethernet stream, the UDP port used by the
camera can be configured here.
Video Rotation
The camera image can be displayed rotated in 90° steps. This is useful if the camera is
e.g. mounted sideways. Please note that an automatic rotation is added when running
the device in portrait orientation.
Note the camera preview image changes with different rotation settings.
Video Camera
473
This property only has an effect if Video Type is set to Analog Video Input. Select one
of the 3 video inputs of the device.
Video Alignment
This property only has an effect if Video Type is set to Analog Video Input. Generally the
device tries to fill the frame or page completely with the video image. Since we maintain
the aspect ratio of 4:3 with analog cameras, it is not always possible to fill the whole
object (especially a page on a 16:10 display). Use this property to position the video
image either centered or in one of the corners. If the video is displayed in a frame, keep
the frame size in a 4:3 format to avoid blank spaces.
Note that H264 video always fills the complete object. If the stream is in a 16:9 format,
give the frame the same format to avoid distortions.
Scaling Factor
This property currently has no effect. Analog video will always be scaled so that the
whole image is shown in a 4:3 format. H264 video will always be scaled to fill the whole
object (adjust object size to stream format, to avoid distortions).
Toolchain Manual
Object Reference 474
To further customize the look of the video image, the camera variables 103 can be used.
Note that these only have an effect on the analog camera inputs.
The properties above are all applied as soon as the application switches to the page that
103
contains the video frame. Other settings that were made with the camera variables are
overwritten.
The program has a tool included with which Ethernet cameras can be configured. It can be
630
accessed via the menu Tools -> See here .
Toolchain Manual
Simulations
Simulations 476
9 Simulations
Two types of simulations are available (click the links for details):
· PClient Simulation
478
· Variable Simulation
480
476
Additionaly Simulation Settings can be made
This dialog can be opened via Simulation Menu => Simulation Settings
Connection Settings
Connection settings only need to be adjusted if the PClient shall not be run as a simulation
on the local PC. If it is run as simulation don't change anything.
If a connection to a running PClient on a device via ethernet shall be used, the IP Address
481
and Port for that connection can be entered. See here for details.
Toolchain Manual
Simulations 477
JavaScript Debugging
Since May 2016 it is possible to use the QtScriptDebugger to debug JavaScript execution
535
in the Windows simulation. For a short description see here .
In the dialog three basic debugger settings can be configured:
· Off
Do not use the debugger.
· On (show debugger on error or trigger)
Open the debugger window as soon as an exception is thrown or a debugger;
statement is evaluated in a script.
· On (show debugger on startup)
The debugger window will be opened as soon as the simulation starts.
Expert Settings
The Expert Simulation Settings dialog can be opened by clicking on the Expert Settings
button on the bottom of the Simulation Settings dialog.
477
For details see Expert Simulation Settings .
9.1.1 Expert Simulation Settings
General
This dialog can be opened via Simulation Menu => Simulation Settings and then clicking
the Expert Settings button
The following settings can be made:
Toolchain Manual
Simulations 478
Under normal conditions it is not neccessary to change this path. It is set by the tool
installer.
If another PClient version shall be run with the current tool, the path of the PClient can be
chosen via the Browse button.
Panel Folder
This is the path to the directory where the hardware panel templates are installed
Under normal conditions it is not neccessary to change this path. It is set by the tool
installer.
Via the Browse button another path can be chosen.
If the PClient simulation does not show the housing of the device, make sure that
this path is correct.
Revert to Default
With the "Revert to Default" button at the lower left of the dialog all settings made in this
dialog can be set to the default setting.
9.2 PClient Simulation
What is the PClient Simulation?
The PClient is the application that reads and runs the saved project.
The PClient Simulation was developed to make it easy to test small changes in a project
without having to transfer the project to the device. It allows to run a version of the PClient
directly on the Windows PC with the currently active project from the tool.
The PClient Simulation shares a lot of it's code with the version installed on the devices but
since the simulation is run on a very different hardware and operating system it can not run
100% the same as on the device. Please keep this in mind and don't forget to test
everything on the final hardware. Especially file operations that contain absolute paths or
relative paths outside the project directory will not work on a Windows PC (e.g. changing
images in JavaScript with the setProperty() functions).
Additionally it is possible to start a simulation mode on the PClient running on the device. In
480
this mode, it is possible for applications like the Variable Simulation to connect to a
476
PClient running on the device. See Simulation Settings for details about how to enable
that mode.
Before the simulation is started, it should be checked if the simulation settings are correct.
476
To do that open the Simulation Menu on Simulation Settings :
Toolchain Manual
Simulations 479
Important Notes:
· The PClient simulation will always use the last saved version of the active project. So
make sure that the project you want to simulate contains no unsaved changes.
· Starting PClient Simulation on PC is not possible if the connection settings are not
set to "Local PC"
· Starting PClient the first time may take several seconds. Please be patient until it
shows up. All following starts will be significantly faster.
Starting from Simulation Toolbar
· Select the project you want to simulate from the project tree.
· Make sure that the PClient checkbox is set.
· After that just hit the (Re)Start button.
· Select the project you want to simulate from the project tree.
· Open the Simulation menu and click on Start PClient Simulation.
Note: If the connection mode of the PClient was configured to connect via ethernet to a
running PClient on a device, the local PClient simulation cannot be started (checkmark
in the simulation toolbar is disabled).
Toolchain Manual
Simulations 480
All painted elements will react to mouse clicks like they would on touches on the real
hardware. Input objects and Softkeys can be clicked and the assigned actions will be
executed.
Additionally the keys directly on the housing will react like the real hardware keys: The
softkeys on the sides, ESC, 3-Arrow and Home key on the housing can be clicked.
Above: A running PClient simulation on the device with the click areas on the housing
marked with red rectangles and the associated keyboard keys.
Navigation via keys
Toolchain Manual
Simulations 481
Please Note:
· A variable simulation without a running PClient simulation is useless.
· A project needs to be open and active in the tool before the simulations can be
started.
Connecting to local PClient simulation
To connect to a local PClient simulation the following settings have to be made in the
476
Simulation Settings dialog (these are the default settings):
· Connection Settings
o PClient runs: On local PC
o IP Address and Port: will be set automatically
Toolchain Manual
Simulations 482
1. IP Address
The IP address that PClient uses is stored in the variable
@Ethernet0_IPAddress. This address can be changed to fit to the Network of
the connecting PC. Also check the other variables in the Ethernet variable group
if they need adjusting (like netmask @Ethernet0_Netmask). Contact the local
network admin if there is a doubt about the correct IP settings.
2. Port
The port that is used for simulation can be changed if it collides with other
applications in the network. Use the variable @PClientSimulationPort in the
Projekt variable group to change the port.
3. Enable Ethernet
To start the ethernet interface the value 1 needs to be written to the variable
@Ethernet0_applynstart. After that the network interface should be running.
This only has to be done if the value of variable @Ethernet0_UpAtStart is not
set.
To enable ethernet automatically at each cold boot use the variable
@Ethernet0_UpAtStart. Set value 1 to this variable if the ethernet interface
shall be automatically started. If value 0 is set, the variable
@Ethernet0_applynstart has to be set (see above).
4. Enable or disable simulation mode
To enable simulation mode write the value 1 to the variable
@PClientSimulationMode in the Projekt variable group. After that the PClient
will listen to connection attempts from variable simulation on ethernet.
Steps 1 to 3 only have to be done only once since PClient remembers those settings.
A common way to enable simulation mode is:
· Set the variable values from step 1 to 3 in a script (e.g. project init)
· Create a kind of service page were the simulation mode can be enabled (e.g.
with a latching button)
Troubleshooting
Toolchain Manual
Simulations 483
· Contact the local network admin to get help about the correct IP address and
port that should be used in the network.
Ethernet settings for the variable simulation
Toolchain Manual
Simulations 484
The variable simulation basically consists of the following parts (for detailed descriptions
click the respective link):
485
1. The tool bar 486
Default settings
The default settings for a project are loaded automatically when starting the variable
simulation and a connection to PClient was successful. The default settings will be saved
individually for each project.
Toolchain Manual
Simulations 485
Each time a setting was changed and the variable simulation is closed, the user will be
asked if the changed settings shall be saved. This close operation can then be
cancelled, the settings discarded or saved.
The current settings can also be stored as default settings via File -> Save as Default.
The default settings can also be loaded manually via File -> Load Last Default.
Note: When starting the variable simulation again from within the tool, it will be restarted
and any changed setting will be lost!
Saving settings as a file and loading from a file
It is possible to save the current settings in a file via File -> Save Settings As. A file
dialog will appear where the save directory can be chosen and a file name for the
settings file can be specified. Name and suffix of the file are not important.
A saved settings file can be loaded by File -> Load Settings. A file dialog appears in
which the settings file that shall be loaded can be selected.
If a settings file is loaded that was saved from another project, a warning will be
displayed.
FAQ
495
For frequently asked questions click here .
9.3.1 Variable Simulation Toolbar
The tool bar of the variable simulation contains the following elements:
Toolchain Manual
Simulations 486
The variable view shows all variables that are configured for the currently simulated project.
The data is obtained by the running PClient simulation.
The variable tree
The variables are shown in a tree. The top level node of that tree are the variable owners.
Below the owners are the variable groups as configured in the project. The groups again
contain the variables.
The tree is sorted alphabetically.
To go to a deeper level of the tree simply click the symbol of a node in the tree or double-
click the node itself. To collapse a node click the symbol or double-click the node.
Toolchain Manual
Simulations 487
The whole tree can be expanded or collapsed with the "Expand All" and "Collapse All"
buttons at the bottom of the variable view.
Favorites
Toolchain Manual
Simulations 488
A project contains a lot of pre-defined variables that might render the variable tree a little
confusing. To hide the pre-defined variables and only show user created variables set the
checkmark in the "Hide Pre-Defined Variables" checkbox.
Filter / Search
To filter the variable tree or to search for a certain variable, a part of the variable name can
be entered in the filter field above the variable tree.
The search is case insensitive: It makes no difference if you search e.g. for CAN, Can,
CaN, cAn, etc.
Wildcards (like *) are not supported in the search.
The following screenshots shows all variables that contain "can" in their name:
To show all variables again just remove any text from the filter field.
Common
In the value operations view the value of a selected variable can be changed in various
ways.
Toolchain Manual
Simulations 489
On top of the view the name of the selected variable is shown (right besides "Editing value
of:").
Below that the checkbox "Overwrite Owner's value" is located. This is an important
setting for each variable whose owner is not the PClient:
· If the owner of that variable is running and connected to the PClient
o checkmark is not set:
A request to update the value of the variable is sent to the owner and the owner
decides if the value is valid and accepts or declines it
o checkmark is set
No request will be sent to the owner but internal variable value will be overwritten.
E.g. the value of a variable owned by a CAN ECU will be overwritten with the
configured value in the simulation regardles of what was received over CAN bus.
· If the owner of the variable is not running
o checkmark is not set:
Changing the value in the simulation will have no effect
o checkmark is set:
Toolchain Manual
Simulations 490
Toolchain Manual
Simulations 491
Note: The settings made for automatic variable change can be saved and loaded along
with other settings.
Note: Automatic value change generators are not available for string variables.
Value Range Generator
The value range generator changes the value of a variable within a given range. The
value is incremented or decremented within a configured period.
Use the following elements to configure the value range generator:
· buttons
Pause or resume the generator (make sure that the rest of the configuration is
correct)
· Start Value field
The starting value of the value range. This value needs to be less than End Value
· End Value field
The end value of the value range. This needs to be greater than Start Value
· Steps field
The current value of the variable will be incremented or decremented by this value.
Use positive values to increment and negative values to decrement.
· Increment every field
This is the period after which every increment/decrement happens. The period is in
milliseconds and may not be below 10ms.
· Repeat checkbox
When the range was completed, repeat the sequence. See also the two buttons
below that checkbox
· button
When the end of the range is reached, the generator will start over with the start of
the range
· button
When the end of the range is reached, the generator will run backwards to the start
of the range
Value Switch Generator
The value switch generator is a simple generator that allows switching between two
values in a given period.
Use the following elements to configure the value switch generator:
· buttons
Pause or resume the generator (make sure that the rest of the configuration is
correct)
· Switch between fields
Enter the two values that shall be switched in these two fields
· every field
Enter the period with which the values shall be switched. The period is in
milliseconds and may not be below 10ms.
Value List Generator
Toolchain Manual
Simulations 492
The value list generator can be used to set certain distinctive values to a variable in a
defined sequence and at defined times.
Use the following elements to configure the value list generator:
· buttons
Pause or resume the generator (make sure that the rest of the configuration is
correct)
· button
Move the selected row up in the value list
· button
Add a new row to the value list
· button
Remove the selected row from the value list
· button
Move the selected row down in the value list
· The value list itself
To change the value in the list just double click a cell in the left column of the list.
To change the amount of time that a value stays, just double click a cell in the right
column of the list.
· Repeat checkbox
If the end of the list is reached, the generator will begin again at the top of the list
Random Generator
Toolchain Manual
Simulations 493
The random value generator can be used to set random values within a defined range to
a variable.
Use the following elements to configure the random value generator:
· buttons
Pause or resume the generator (make sure that the rest of the configuration is
correct)
· Generate a random value between fields
Use these two fields to define a range for the random values.
· Generate new random value every field
Enter the period in milliseconds in which the random value shall be generated
(may not be below 10ms)
The property table shows the variable properties as they were configured in the tool.
9.3.5 Variable Simulation - Initialization Lists
The initialization lists are part of the advanced view. The advanced view can be shown or
485
hidden via the tool bar .
Toolchain Manual
Simulations 494
Initialization lists are meant to provide an easy way to set values of several variables at once.
This can be helpful for initialization purposes, end of line programming or just to test certain
scenarios with different value sets.
Note: All initialization lists and their settings will be saved when the Variable Simulation
settings are saved.
Toolchain Manual
Simulations 495
Just double-click the value in the table that shall be changed and enter the new value.
Why is the current value of a variable not updated after changing the
value in the simulation?
The reason is a possible wrong setting of the "Overwrite Owner's Value" checkbox in the
489
value operations view. See here for a detailed description.
Toolchain Manual
Device Software Update
Device Software Update 497
Updater Wizard
When the Updater icon in the toolbar is pressed, the Updater will be opened, which helps
you to transfer the project. It guides you step by step.
First the Start Page (Wizard 1/3) is shown, where you can choose the transfer mode.
· ETH update
497
Start Page
Toolchain Manual
Device Software Update 498
Legend:
(1) The application title shows you the name of the project which will be transferred
(Please do always check if the correct project is chosen)
(2) Start USB update
(3) Start CAN update
(4) Start Ethernet update
(5) Exit application
NOTE:
The Start Page (Wizard 1/3) will only be shown the first time you opened the
Updater.
Once a transfer via CAN/Ethernet or USB has successfully finished, the Start Page
will be skipped the next time you open the Updater and it will start with the mode you
have selected the last time. You can always go back in the dialog to change to a
different mode.
USB Update
Toolchain Manual
Device Software Update 499
If the USB button is clicked on the Start Page, the USB Settings
523
Page is shown. Here you can set the USB drive to transfer the Project Package to.
Legend:
(1) The text box shows the path or USB drive name, the Project Package will
transferred to. If the application is started for the first time, the standard path "C:\" is
shown. You can edit the text box or choose a path via 'Browse...' button.
NOTE:
Please always select the root directory (5, 6) of the USB drive (e.g. "E:\")
otherwise the ClientUpdater application on the device won't be able to install the
project package.
Do NOT create or select any folder on the USB drive.
Afterwards accept the dialog with the button "Choose Folder" (7).
Toolchain Manual
Device Software Update 500
(2) The combo box contains all connected devices of the computer and is
automatically selected. So you can easily selected the one you want transfer the
project. (The selected device will be saved in the 'MainSettings.ini' file of the updater.
For all other projects the device will be chosen, too)
When the device is available at program start the 'green check' is visible, otherwise a
red cross is shown.
(3) The dialog has an USB auto-detection, so whenever a new USB drive is plugged-
in the new device will be automatically chosen in the device combo box.
(4) Opens the 'Add User Files' page. The page helps to add separate files which
shall be transfered to the device.
(5) Go back to the Start Page
(6) Start USB Transfer.
These settings are important if the CAN or Ethernet update shall be enabled. Please
524
have a look at the CAN Checklist in this case.
Please have also a detailed look at the chapter How to configure CAN
509
parameters
Legend:
Toolchain Manual
Device Software Update 501
(1) If the checkboxes are checked, the tab "Device CAN Settings" and/or "Device
Ethernet Settings" are opened.
(2) In these tabs it is possible to edit the CAN/Ethernet settings for the device.
When the Transfer button is pressed, this page appears and shows the current USB
transfer progress and its result.
The USB Transfer is divided in 3 steps.
1. Creating Project Package,
2. Connecting to the USB drive and
3. Transferring the project.
Legend:
Toolchain Manual
Device Software Update 502
NOTE 1:
If the project package was successfully transferred to the USB drive, a new
directory "updater" has been created. It contains 2 files, a file called
"mmscript.xml" and the project package file, here called "MyProject.ud4".
Once the Project Package was transferred to the USB drive successfuly, the
USB drive has to be plugged into the USB port of the device to update the project
on the device.
523
The project will only be installed on the device if the variable @enableUpdater
is set to 0x1 or 0x3. The default value is 0x1.
NOTE 2:
The next time you open the Updater for the same project, the last used path or
USB drive will be set again. 522
The USB drive is not unmounted when the project is transferred to the USB
drive.
If the USB Transfer has not finished properly, an Error Code with Error Message
is shown on the USB Transfer Page. This shall help to identify the issue quickly.
Toolchain Manual
Device Software Update 503
Legend:
(1) Step 2: The Transfer to USB drive failed.
(2) The Error Code (here: -201) is shown under the progress bar. After the code the
appropriate Error Message is shown (here: DEST DIR CREATION FAILED).
In this case the Updater could not write the Project Package to USB drive. Possible
reason for this error is:
· USB drive was disconnected during transfer.
2. Unable to write file on USB drive
Toolchain Manual
Device Software Update 504
Legend:
(1) Step 2: The Transfer to USB drive failed.
(2) The Error Code (here: -207) is shown under the progress bar. After the code the
appropriate Error Message is shown (here:
ERR_MMFT_DEST_FILE_CLOSE_FAILED).
Additionally an detailed message is shown what exaclty went wrong: Could not
write file: E:\updater\MyProject.ud4
In this case the Updater could not write the Project Package to USB drive. Possible
reason for this error is:
· USB drive has not enough disk space left.
CAN Update
If the CAN button is clicked on the Start Page, the CAN Settings
Page is shown. Here you can modify the CAN settings for the project transfer.
Afterwards you can start the transfer.
Toolchain Manual
Device Software Update 505
The CAN Update mode is a little more complex than the USB Update mode. Many
things have to be considered. Otherwise the transfer won't work or the CAN network
can be damaged.
1. The ClientUpdater uses as default CAN Port 2 on the device. If you want to
497
use instead CAN Port 1 you can change the port here .
If the ClientUpdater uses the same CAN Port as a CAN Protocol in the
project, please always check that the Baud rate for the ClientUpdater is the
same as the one in the used CAN Protocol in the project.
2. To transfer the project between HostUpdater and ClientUpdater, 4 CAN IDs
will be used. These 4 CAN IDs are neccesary and will all be used.
497
The IDs can be changed here . Please check, in case another protocol is
running on the same CAN Port, that the CAN IDs won't be used by any other
entity connected to the port.
3. The ClientUpdater only enables the CAN Interface if the value of the pre-
523
defined variable @EnableUpdater has been set to 0x2 or 0x3. So check if
the variable is set properly in the project (e.g. in a script for the event
OnProjektInit).
498
4. The first project update has to be done via the USB drive . With this update
the new CAN Settings for the device will be set. Only then the CAN interface
can be enabled and will not damage your CAN network.
Please follow these steps carefully.
The CAN Disclaimer Page is only shown once in a Tool session when the CAN
button on Start Page is clicked.
Toolchain Manual
Device Software Update 506
Legend:
(1) When the agree checkbox is checked, the Proceed button will be enabled.
(2) If Proceed button is pressed you will see the CAN Settings Page.
(3) With Cancel you get back to Start Page.
NOTE:
When the Tool is started and you want to transfer a project via CAN bus you have
497
to accept the CAN Disclaimer once.
The next time in this Tool session the CAN Disclaimer will not be visible again.
These settings will be used for the current project transfer. The settings shown here
have to be same as they were configured for the device, otherwise the transfer will not
work.
Toolchain Manual
Device Software Update 507
Legend:
(1) With the Tabs you can choose between PC and Device CAN Settings.
(2) Show communication parameters (expert settings) shows the communication
parameters (3).
(4) Edit PC settings enables the settings mask. If it is checked, all parameters can
now be edited (5).
(6) Back button to go back to Start Page.
(7) Starts CAN Transfer with current settings.
PC CAN Parameter
1. Common Settings
oCAN Port
§ Port Number of the CAN dongle. Currently only PEAK CAN dongles are
supported on Port 1/2.
oCAN Baud Rate
§ Baud Rate in [kbit/s]. The Project Package will be transmitted with this
Baud Rate
§ Allowed Baud Rates are (20, 50 , 83.333, 100 , 111.11, 125, 250 ,500
,1000)
1. Expert Settings
o CAN ID Type
§ Setting CAN ID Type for IDs. Either 11 Bit or 29 Bit.
oCommand Len ID
Toolchain Manual
Device Software Update 508
o Command ID
o Stream Len ID
o Stream ID
§ These for IDs will be used for CAN communication between HostUpdater
on PC and ClientUpdater on device.
§ It is important that these IDs are set properly, otherwise the connection or
transfer can not be established.
§ Each ID has to be in the valid range and must be unique.
NOTE (DANGER):
Please make sure that the CAN IDs which will be used for the CAN Transfer are
not used in the project and are not used from any other entity on the CAN
bus.
These settings will be transmitted to the device in this transfer session. The
transmitted settings are available after the update has successfully finished.
Legend:
(1) With the Tabs you can choose between PC and Device CAN Settings.
(2) Show communication parameters (expert settings) shows the communication
parameters (3).
Toolchain Manual
Device Software Update 509
(4) Edit device settings enables settings mask. If it is checked all parameters can
now be edited (5).
(6) Back button to go back to Start Page.
(7) Starts CAN Transfer with current settings.
NOTE:
The CAN Settings (PC and device) are saved when the project transfer has
successfully finished.
Next time you open the Updater for the same project, the last used CAN Settings
will set again.
522
The CAN Settings are saved in HostSettings.ini file.
When the Updater is started for a project the first time the default values will be set
for the CAN Parameters:
Toolchain Manual
Device Software Update 510
The Updater usually should always set the baud rate for PC and device properly
and it is not necessary to set them manually. So please be careful if you change the
baud rate.
If the Updater uses a CAN Port which is not used by other protocols, the baud rate is
set to 250 kbit/s as default, but in this case you can set a preferred Baud rate by
yourself.
Please check the CAN IDs after updating the CAN ID Type.
CAN ID settings (Command Length ID, Command ID, Stream Length ID and
Stream ID)
These IDs will be used for the CAN communication between the HostUpdater and
ClientUpdater.
Each ID has to be valid (in the range of the CAN ID Type) and unique.
It is very important that the configured IDs won't be used by other entities which also
use the same CAN bus, otherwise the project update process won't work properly
and/or other entities won't work properly.
With the button "Restore..." you can restore the CAN parameters for PC or Device
Toolchain Manual
Device Software Update 511
The CAN Transfer Page shows the current transfer progress and if the current transfer
finished successfully or with an error.
Legend:
(1) On the left side you can see the current step which is permformed. Last Step with
black font color => current performed step (here Transferring Project), grey font color
steps which have not be performed yet.
(2) Shows the current CAN BUS State (States are: BUS_OK, BUS_LIGHT,
BUS_HEAVY and BUS_OFF)
(3) Transferred Bytes and Project Package size. (4) Progress bar with transferred
bytes in percentage.
(5) Shows the result of the Transfer. If the transfer fails, an error code and error
message are shown.
(6) Back button which is disable during active transfer. When transfer finishes, the
button is enabled.
(7) Exit/Cancel button. During transfer button is renamed to "Cancel". When the
transfer finishes, the button is renamed to "Exit".
Toolchain Manual
Device Software Update 512
If the application is closed via the "X" button during active transfer, a dialog is
shown with a warning that the current transfer will be aborted.
Toolchain Manual
Device Software Update 513
If the CAN Transfer does not work properly, an Error Code with Error Message is
shown on the CAN Transfer Page. This shall help to identify the issue quickly.
In this example, the Step 2: Connecting device runs into a time out:
Legend:
(1) Step 1: The connection process failed and a red x icon is shown.
(2) The Error Code (here: -304) is shown under the progress bar. After the code, the
appropriate Error Message is shown (here: OS ERROR TIMEOUT).
In this case the HostUpdater gets no response from the ClientUpdater. Possible
reasons for this error are:
· The ClientUpdater is not running on device
· Pre-defined variable @EnableUpdater is not set properly
· CAN IDs are not set properly.
· NOTE: Bus State shows BUS OK which indicates that the baud rate is set
properly. If Bus State shows BUS HEAVY, BUS_LIGHT or BUS OFF it
indicates that the baudrate is not set properly.
Toolchain Manual
Device Software Update 514
Ethernet Update
The Ethernet Update mode is a little more complex than the USB Update mode.
Many things have to be considered. Otherwise the transfer won't work.
1. To transfer the project between HostUpdater and ClientUpdater, 2 Ports will
be used and must be configured properly.
2. The ClientUpdater only enables the Ethernet Interface if the value of the pre-
523
defined variable @EnableUpdater has been set to a value between 0x4
and 0x7. So check if the variable is set properly in the project (e.g. in a script
for the event OnProjektInit).
498
3. The first project update has to be done via the USB drive . With this update
the new Ethernet Settings for the device will be set.
Please follow these steps carefully.
These settings will be used for the current project transfer. The settings shown here
have to be same as for the connected device, otherwise the transfer will not work.
Toolchain Manual
Device Software Update 515
Legend:
(1) When the ethernet interface of an device is activated, it is possible to scan the
network for that device. For the communication between Host and Client the
'Broadcast Port' is used. When Host and Client are using diffrent ports the
communication won't work.
(2) When the correct 'Broatcast Port' is configured, it is possible to search after
devices with the button 'Scan Network'
(3) The list box shows all available devices in the network with some details.
PC Ethernet Parameter
Toolchain Manual
Device Software Update 516
1. Broadcast Settings:
o Broadcast Port
§ Port Number for Broadcast message to find connected devices.
o Select PC LAN Adapter
§ When the PC has more than 1 LAN Adapter you can select the Adapter
(Device Net), where the Broadcast messages should be sent to.
2. Selected Device Settings
o Device IP-Address
§ Here you can configure the IP-Address of the device, where the project
package shall be sent to.
§ If a device from the Connected Devices List is chosen, the IP-Address
will be set automatically.
o Command Port
o Stream Port
§ These Ports will be used for Ethernet communication between
HostUpdater on PC and ClientUpdater on device.
§ If a device from the Connected Devices List is chosen, the Ports will be
set automatically.
§ Only the Command Port can be edited, the Stream Port will be set
automatically. (Command Port + 1)
Device Ethernet Parameter
Toolchain Manual
Device Software Update 517
The Ethernet Transfer Page shows the current transfer progress and if the current
transfer finished successfully or with an error.
Toolchain Manual
Device Software Update 518
Legend:
(1) On the left side you can see the current step which is permformed. Last Step with
black font color => current performed step (here Transferring Project), grey font color
steps which have not be performed yet.
(2) Transferred Bytes and Project Package size. (3) Progress bar with transferred
bytes in percentage, Elapsed Time, Transfer-Speed and Time Remaing.
(4) Shows the result of the Transfer. If the transfer fails, an error code and error
message are shown.
(6) Back button which is disabled during active transfer. When transfer finishes, the
button is enabled.
(7) Exit/Cancel button. During transfer button is renamed to "Cancel". When the
transfer finishes, the button is renamed to "Exit".
If the application is closed via "X" button during active transfer, a dialog is shown
with a warning that the current transfer will be aborted.
Toolchain Manual
Device Software Update 519
Toolchain Manual
Device Software Update 520
Legend:
(1) Add.. button opens a file browser to selecte a file which shall be added to the project
package.
NOTE:
The user is responsible to delete unused
files manually (by console or by using the
"post-/preinstallscript.sh")
(2) Remove button removes selected files from the list. (Only activated if at least one file is
selected in the list).
(3/4) Opens the Pre/Post-Install scripts in the default application for shell scripts.
(5) If the file list is not updated properly, you can refresh the view manually with Refresh
button.
(6) Back goes back to the last settings page.
Add Files
When the Add... button is clicked, a File Chooser dialog is opend where you can select a
file which shall be added to the user files folder.
Toolchain Manual
Device Software Update 521
Legend:
(1) Select a file which shall be added to project package.
(2) Click on Open to add the file.
(3) The file list view shows all files which are added to the user_files folder.
(4) The green check shows that the file could be copied to the folder, and below the size of
all files shown.
Remove Files
Legend:
(1) Select a file which shall be removed from user_files folder.
(2) Click on Remove button.
(3) A dialog Delete File(s) is shown, where you have to confirm the delete operation.
(4) If the dialog shall not be shown again you can check the checkbox Don't show dialog
again.
(5) With click on Yes the file will be deleted, click on No closes the dialog without an action.
(6) After click on Yes, the file will be deleted and the files view is updated.
NOTE:
Toolchain Manual
Device Software Update 522
NOTE:
With the postinstall_script.sh you can, it is
possible to edit the file after download
process.
Setting Files
PC (HostSettings.ini)
The HostSettings.ini file saves the settings (USB Settings, Device CAN Settings
and Device Ethernet Settings) which can be changed in the Updater application.
BUT the settings will only be saved if the Transfer (to USB drive, or via CAN/Ethernet
was successful). 522
The HostSettings.ini file is saved in the folder updater of the project directory.
Whenever a project is transferred to a USB drive or to the device via CAN bus, the
ClientSetting.ini will be created. The file is saved to the project package (e.g.
MyProject.ud4) which will be transmitted.
The ClientSetting.ini file contains the project name and the Device CAN/ETH
497
Settings .
The ClientUpdater on the device reads this file set up the CAN Interface appropriate.
Updater Folder
The subfolder updater which is located in the project directory, contains the following
files:
· HostSettings.ini
o This file contains the USB and Device CAN Settings.
· preinstall_script.js (included in Project Package )
523
o This script is executed during Install step on the device before the project is
installed.
o This file can be edited by the user.
· postinstall_script.js (included in Project Package )
523
o This script is executed during the Install step on the device after the project was
installed.
o This file can be edited by the user.
· folder user_files (include in Project Package )
523
o All files in this folder will be added to the Project Package and will be transmitted
to the device.
o The files will be copied during the project install step to the following location on the
device:
- /opt/pclient/projekte/default_prj/
Toolchain Manual
Device Software Update 523
Do not delete any of these files or folders, otherwise no Project Package can be
created anymore:
· preinstall_script.js
· postinstall_script.js
· folder updater
Project Package
For each transfer, a Project Package (*.ud4) file is created, which contains all the
important files for a project update.
The Project Package contains:
· Project archive (terminal_files.zip)
· Preinstall_script.js
· Postinstall_script.js
· ClientSettings.xml
· files from user_files folder in Updater folder .
522 522
Variable @EnableUpdater
With this variable the ClientUpdater on the device can be enabled or disabled.
Additionally, you can set the active interfaces, which allows you to update the project on
the device.
The following values can be set:
· Updater is disabled
· 0x0 => NO project update can be performed.
· Updater is enabled (Single Inteface)
· 0x1 => Project update can ONLY be performed via USB drive.
· 0x2 => Project update can ONLY be performed via CAN bus.
· 0x4 => Project update can ONLY be performed via Ethernet.
· Updater is enabled (Multiple Intefaces)
· 0x3 => Update possible via USB drive or CAN bus.
· 0x5 => Update possible via USB drive or Ethernet.
· 0x6 => Update possible via CAN bus or Ethernet.
· 0x7 => Update possible via USB drive, CAN bus or Ethernet.
Toolchain Manual
Device Software Update 524
NOTE (DANGER):
Please be aware, if you set the pre-defined variable to '0x0', the Updater on the
device is disabled and NO project update is possible anymore. Please always add a
possibility to change the value of the pre-defined variable in your project.
If you want to activate update over CAN please follow these steps:
1. Common:
497
a. The first project update has to be done via USB update . Here you have to
check or edit the CAN settings you want to use.
b. Transfer project to USB drive
c. Update device via USB.
Now the ClientUpdater on the device should be enabled for CAN and the CAN
504
Update mode can be used for future project updates.
Toolchain Manual
Device Software Update 525
(1) By pressing on the warning icon in bottom left corner a dialog appears with detailed
information.
(2) A dialog is shown that the user shall check the Baud Rate in the CAN Settings for
Device and PC.
Toolchain Manual
Device Software Update 526
CAN Settings
Toolchain Manual
Device Software Update 527
PC Empty CAN ID
CAN IDs must have valid values, otherwise the CAN communication does not work
properly. If an error occurs, the Transfer button is disabled.
This error is only shown on CAN Settings Page.
USB Settings
Invalid drive
If the USB drive is not available anymore, this error message will appear and the
Transfer button gets disabled.
The currently chosen drive is checked continuously, which means if the drive is available
again the message will disappear and the Transfer button gets enabled.
Toolchain Manual
Device Software Update 528
FAQ
How can I figure out which CAN settings the ClientUpdater uses on the device?
The settings for the ClientUpdater are stored in the the file ClientSetting.ini in the
folder /opt/ud4/bin/
Why does the CAN Transfer not work?
o 524
Please first read the CAN Transfer Checklist before you try to transfer a
project via CAN mode.
o
If all steps are done and the CAN Interface on the device is enabled, please check
the CAN network:
1. Check if the device is connected to the CAN network (check if CAN Port 1
and/or CAN Port 2 is connected).
2. Check if the baud rate of the ClientUpdater is set properly.
3. Check the bus status of CAN network.
4. Check the ID settings of the Updater (Client and Host)
o
Check if the ClientUpdater is running on the device and/or restart device.
Is it possible to update more than 1 device parallel via CAN?
No, it is not possible. Please connect only 1 device to CAN network when a project
update is performed.
Why is the project not updated on the device via USB drive?
Toolchain Manual
Device Software Update 529
1. Please check if the the folder "updater" is created on the USB drive properly as
498
described here .
523
2. Please check the value of the predefined variable @EnableUpdater .
Afterwards the USB drive can be plugged into the device. When device is booted in service
mode, the new OS version and/or PClient version will be installed automatically. The dialog to
create a bootable USB drive is located in Menu - Update - Update PClient / OS.
Toolchain Manual
Device Software Update 530
Legend:
(1) The combo box shows all available devices which can be updated.
NOTE: If no device is shown, please install the desired PClient module and/or the needed
OS module(s) in the Plugin Center.
(2) Here you can choose the components which you want to update on the device.
Additionally, the respective versions of PClient and OS for the chosen device are displayed
(3) This combo box shows the destination drive where the update files will be copied to.
Please select the appropriate USB drive.
NOTE: If a USB drive is mounted, it will be selected automatically.
(4) When the device and the components are chosen (1-3), you can start the copy process
with the button 'Create Bootable USB Drive'.
Toolchain Manual
Device Software Update 531
This feature provides a USB auto detection. Newly inserted usb mass storage drives will
be selected automatically.
You can also select your desired device manually.
Copy Process
Toolchain Manual
Device Software Update 532
Legend:
(1) When the button 'Create Bootable USB Drive' is clicked, the current copy state is shown
here.
(2) During copy progress, the progress bar is running.
(3) When the copy process starts, the button 'Create Bootable USB Drive' will be disabled.
To abort the copy process, please press 'Abort'.
Copy process successfully
Legend:
When the copy process is finished successfully, the green check icon is visible.
(2) Here you can open the destination folder directly, after the copy process is finished.
(3) After the copy process, the button 'Create Bootable USB Drive' is enabled again.
Toolchain Manual
Device Software Update 533
NOTE:
The copy process fails e.g. if disk space is to low, or USB device is removed during the
copy process.
Toolchain Manual
JavaScript
JavaScript 535
11 JavaScript
Please Note the following changes in May 2016:
Due to some problems experienced with the old Google v8 JavaScript engine, the engine
was replaced with QtScript. The new script engine solves all issues currently known to us and
has some more advanteges (like a debugger that can be used with the Windows simulation,
535
see here ).
One importand difference to the old engine is that global variables are handled differently
which might make changes in existing script neccessary:
In the old engine a variable that was declared as "var myGlobalVariable = 0;" in script A could
be used in script B after script A was run once. THIS WILL NOT WORK ANYMORE!
myGlobalVariable will not be accessible in script B with the new engine.
If it is really neccessary to use global variables, you can declare them as "myGlobalVariable =
0;" in script A and then use it in script B after script A was run once. Note the missing "var"
keyword!
The same goes for functions. You need to declare functions without the keyword "function" to
use them in other scripts.
We anyway do not recommend to use global JavaScript variables. It is far more reliable and
secure to store importand variable values that are needed in more than one script in a
551 551
dedicated toolchain variable (use setVariableValue and getVariableValue functions).
Other than that, the new JavaScript engine should not make any more changes in existing
scripts neccessary.
JavaScript can be used to introduce highly-dynamic aspects into the project. It serves as a
powerful, yet easy to use scripting language that enhances the possibilities of the tool.
Seamlessly integrating into the architecture, it offers access to all the events and variables
that can occur.
Do not use Java Scripts for extensive calculations! Also a frequent call of scripts is bad idea.
This will slow down the complete terminal; instead the scripts should be small and fast.
If your desired functionality can not be realized with a small script or with other methods
provided, please contact the support team. Most often there are other ways to get the result
you want.
Debugging
Since May 2016, the new JavaScript engine provides a way to debug JavaScripts with the
476
Windows Simulation. Here you can configure if the debugger shall be off, on (open on
exception) or on (open on start).
The complete documentation of the used debugger can be found here: QtScriptDebugger
Manual. There you can learn how the debugger can be used and e.g. how breakpoints can be
set.
Some quick notes:
Toolchain Manual
JavaScript 536
The only way to debug JavaScripts on the device is to check the outputs on the serial console.
550
Debug outputs can be added with the print function.
Since the toolchain version 1.12.X a new JavaScript editor is integrated and provides many
new features.
Create a new script file
JavaScript files can be created by right clicking on the JavaScripts node (1) insides the
project tree and clicking New File... (2). Already existing scripts can also be used with Import
File... (3). This functions copies the selected script file into the "terminal_files\scripts" folder of
the corresponding project. Scripts from other projects can copied to the target project by
using Paste (4)
Toolchain Manual
JavaScript 537
A wizard for creating a new file will be appear. In the category JavaScript an empty
JavaScript file can be created. The category JavaScript Samples includes different
templates. These templates can help to understand the basics of the JavaScript programming
language or show best practices for different use cases.
On the next page the wizard shows some information about the location of the new file. The
folder "terminal_files\scripts" shouldn't be changed. Only scripts in this folder will be displayed
in the JavaScipts node inside the project tree. The absolute path of the file is shown in the
Created File text field (1). The name of the JavaScript file can be changed in the File Name
section.
After clicking Finish (2), the new file will be created.
Toolchain Manual
JavaScript 538
Editing a script
A script file can be edited by double clicking the corresponding file (1) insides the
JavaScripts node. A new JavaScript editor tab (2) will be opened. In our example we have
created an "Hello World" application with an template. The script file includes a function call
"helloWorld()" and the definition of the function which prints out a String.
To edit a script just write your source code in the content area (2). Syntax highlighting is
supported. A summary of all functions will displayed in the Navigator View (3).
Toolchain Manual
JavaScript 539
To help writing a script with variable interactions, the Variable View can be used to get / set
the value of all variables that exist in the current project. They are sorted by variable group. A
variable can by dragged into the context area by DnD (Drag & Drop).
Also objects can be dragged into the context area by DnD (Drag & Drop).
Auto Completion
Auto Completion is a feature in which an application predicts the rest of a word a developer is
typing. Developers can easily press CTRL+SPACE to see one or more suggestion(s) and
can use the arrow keys or mouse to accept one of several. Autocomplete speeds up human-
computer interactions enormous.
The new powerful auto completion feature supports the whole JavaScript programming
language syntax.
Toolchain Manual
JavaScript 540
For example, we have only typed "fo" in the content area and press CTRL+SPACE. A context
menu pops up with the keyword completion "for" and additional suggestions for whole "for
loop" templates.
Note that not all expressions offered in the CTRL + Space popup are supported by our
devices.
Auto Format
Another nice feature is the possibility to Format (1) the JavaScript code in the content area
by default rules to get a pretty human readable code.
Toolchain Manual
JavaScript 541
Toolchain Manual
JavaScript 542
Toolchain Manual
JavaScript 543
Toolchain Manual
JavaScript 544
The encoding can also be changed by pressing this place. Normally there is no reason to use
any other encoding than UTF-8.
Additionally it is possible to load and save a file in a certain format. There are entries in the
menu File called Open in Encoding... and Save in Encoding... where a format can be chosen
in which the selected file will be interpreted.
11.2 Assign a JavaScript file to an Event
Java Scripts can be configured to be executed at certain events. You can easily drag an
existing JavaScript file to an object on scene and can select the desired event.
Toolchain Manual
JavaScript 545
The assigned event will be displayed at the events tab of the Object (1). You can configure
such an Execute Script Action by clicking on the button (2). Here you can choose an
existing Script File (3) for execution or create a New Script File (4). Already existing
JavaScripts can also be used in the project by using the function Import Script File (4). Files
can be modified by clicking Edit selected Script File (5). After selecting the script file it is
possible to configure how often the script shall be executed using the Execute on every Xth
Event field.
If the script shall be executed for the OnPageRepeat or OnProjectRepeat events, the
Period (100 ms) property also needs to be set in the event options. This property defines
how often the script will be called.
Please note that the execution time for repeat actions is a multiple of 100ms. We can not
guarantee that we will always be exact in executing the repeat events. The scripts should not
depend on an exact execution time.
11.3 JavaScript Basics
The devices can execute any standard JavaScript code that is not related to HTML or
browser functions (like document object, location object, etc.). It is possible to use loops
(do/while, while, for), conditions (if, switch) and standard JS objects (Array, Date, Math,
Number, String). The syntax is very easy to learn and use. A good starting point for learning
JavaScript is http://www.w3schools.com/js/
Comments
Like many other programming languages, comments start with a double slash "//"
Toolchain Manual
JavaScript 546
//This is a comment
Note that every command in a JavaScript should end with a semicolon ";".
JavaScript Variables
JavaScript is a weakly typed scripting language which means that no type declaration is
needed when creating variables and differently typed variables can be assigned to each
other.
//To create a variable use the keywork "var":
//Creates an integer variable with value 1
var numberVariable = 1;
//Creates a string variable with value "myString"
var stringVariable = "myString";
// Creates an array with the size of 4
var myArray = new Array(4);
Please note that the initialization "var variablename" leads to the deletion of the variable after
the script was processed. For JavaScript variables to be used globally, they need to be
initialized without the keyword var. It is preferred to use PClient variables to store important
data. JavaScript variables should not be used for that.
Operators
Opera
Example Result Comment
tor
42
12 + 30
"Java
+ "Java" +
Script
"Script"
"
- 69 - 27 42
* 16 * 3 42
/ 126 / 3 42
3%2 1
% Modulo operator
4%2 0
i = 41;
++ 42 increment
i++, ++i
i = 43;
-- 42 decrement
i--, --i
== 3 == 2 false
== 42 == "42" true weak compare
== 42 == 43 true
Toolchain Manual
JavaScript 547
Opera
Example Result Comment
tor
=== 42 === 42 true
strong compare
=== 42 === "42" false
42 < 43 true
< less than
"w" < "W" false
42 <= 42 true
<= less or equal
42 <= 43 true
> 42 > 43 false greater than
>= 42 >= 43 false greater or equal
Value 42 is assigned to
= i = 42
variable i
+= i += 1 43 i = i + 1;
-= i -= 1 42 i = i - 1;
*= i *= 2 84 i = i * 2;
/= i /= 2 42 i = i / 2;
%= i %= 2 0 i = i % 2;
i = 2; j = 5;
(i <= 2) && both statements need to be
&& true
(j < 7) true (AND)
(i%2 == 0) || only one statement need to
|| true
(j%2 == 0) be true (OR)
(i ==2) && ! negation of a statement
! true
(j%2 == 0) (NOT)
i = 2; j = 7;
Check if bit is set. In binary:
& i&j 2
0010 & 0111 = 0010
Set a bit. In binary: 0010 |
| i |j 7
0111 = 0111
Toggle a bit. In binary: 0010
^ i^j 5
& 0111 = 0101
Shift bits to the left. In binary:
<< 2 << 1 4
0010 << 1 = 0100
Shift bits to the right. In
>> 2 >> 1 1
binary: 0010 >> 1 = 0001
i = 10; Shift right and fill with zeros.
>>> 2
i >>> 2 In binary: 1010 >>> 2 = 0010
WARNING: Loops should and can NOT be used to "wait" within a JavaScript program. You
Toolchain Manual
JavaScript 548
can NOT "spend time" within one JavaScript. If you need to time something, use the repeated
execution of scripts, so instead of a for loop, just write x := x + 1; and after 10 repetitions the
appropriate code can be executed.
Three different loop types are available:
· The while loop. It only begins if the condition is true and stops as soon as the condition
is not true anymore:
//Example: loop 10 times:
var i = 0;
while (i < 10)
{
i = i + 1; //same as i++;
}
· The do while loop. This kind of loop will execute the code inside the loop at least once.
Only after this the break condition is evaluated:
var k = 11;
do
{
k = k + 1;
} while (k < 10);
//now k is == 12
· The for loop. This loop is used to run the code inside for specified number of times.
The for loop statement includes 3 statements. The first is normally used to initialize a
(counter) variable. The second statement is the break condition (when the loop will end)
and the third is a statement that will be executed after each loop (normally to increment
the counter):
for (var x = 0; x < 10; x++)
{
//do something
//x will have the values 0..9
}
To exit a loop inside a loop, the command break; can be used. To skip the current loop
iteration and directly start with the next iteration, the command continue; can be used.
Conditions
Two condition statements exist in JavaScript that allow code execution if one or more
conditions are true.
· The if condition statement. If the condition inside the "if" clause is true, the line behind
(or the code block inside the brackets) gets executed. To execute special code if the
condition is not true, an "else" clause can be added behind the code of the "if" clause.
Both can be combined using else if.
var i = 42;
if (i < 42)
{
//execute this code if i is less than 42
}
else if (i === 42)
{
//execute this code if i is equal to 42
}
Toolchain Manual
JavaScript 549
else
{
//execute this code if none of the above conditions were
true (in this case i is greater than 42)
}
· The switch statement. The switch statement makes it easy to check the value of exactly
one variable without the need to write complex if-else statements:
var i = 42;
switch(i)
{
case 1:
//do something if i is equal to 1;
break;
case 2:
//do something if i is equal to 2;
break;
case 42:
//do something if i is equal to 42;
break;
case 48:
case 50:
//do something if i is equal to 48 or 50;
break;
default:
//do something if none of the above cases was true
break;
}
Note the break; statement in every case. If this is missing, the next case will also be
executed even if the case condition is not true (for values 48 and 50 the same code will
be executed). It is good practice to have a default case at the end of the switch. This
gets executed if no other case matched.
Data types
JavaScript also provides the typeof operator. With this the data type of a variable can be
checked:
var myNumber = 42;
var myString = "Hello World";
print("My number is of type " + (typeof myNumber) + ", my
string has type " + (typeof myString));
Toolchain Manual
JavaScript 550
Various custom functions exist that help JavaScript interact with project variables and objects.
By pressing CTRL+SPACE in the JavaScript editor content area (1), a list with auto complete
suggestions will appear. On the top of the list are functions from the category Custom
Functions (2). A Tooltip (3) for the selected function shows a short description and gives
informations about the parameter(s) / return types.
Examples:
var result = 21 * 2;
Toolchain Manual
JavaScript 551
Please note that the print function also works with the PClient simulation on the PC. The
output will be written in the file
%USER%\AppData\Roaming\%program version%
\extracted_components\pclient\simulation\console_output.txt
getVariableValue - retrieve the value of a project variable
In a project a lot of variables are used to store runtime data and you can configure your own
variables in a project. To retrieve the value of such a variable the getVariableValue function
can be used.
Prototype:
var result = getVariableValue(string nameOfVariable);
The returned value of that function contains the value of the variable. This can be either a
string or a number depending on the variable type.
Examples:
var backlightValue =
getVariableValue("@DisplayBacklightIntensity");
// result is a number representing the backlight intensity
print("Value of backlight is: " + backlightValue);
Example:
var worked = setVariableValue("@DisplayBacklightIntensity",
50);
if (worked === true)
{
print("Setting display backlight to 50% worked!");
}
else
{
Toolchain Manual
JavaScript 552
The returned value of that function contains the information about the variable.
Examples:
var result = getVariableValid("Speed");
if (result === true)
print("The variable has a valid value.");
else if (result === false)
print("The variable does NOT have a valid value.");
else
print("The variable does not exist or the function was
called inappropriately.");
getProperty - retrieve a property value of a DDO
All graphical objects (DDO => Display Data Object) in a project have a lot of properties. In
some cases these properties can be of interest during runtime in a JavaScript. To retrieve the
value of such a property the function getProperty can be used.
Prototype:
var value = getProperty(number DDO-ID, string propertyName);
The return value of the getProperty function will be either the value of the property or
undefined if something did not work. Since the properties of a DDO consist of various data
types, the returned property value can also be a different data type depending on the property.
Here is a list of all the properties that can be read and/or changed through JavaScript.
Javascript Ge
Data type SetObject type(s) Remarks
propertyName t
Numeric Fields
Absolute Max Value Integer x x Bargraphs
Meter object
Numeric Fields
Absolute Min Value Integer x x Bargraphs
Meter object
Pages where this is set to false
will not be added to the
Add To Page
Boolean x x Pages browsing history (they will not be
History
accessable by pressing the
escape key)
Alarm Number Integer x Alarm objects
Toolchain Manual
JavaScript 553
Javascript Ge
Data type SetObject type(s) Remarks
propertyName t
0 - left aligned
String Fields
Alignment Integer x x 1 - center aligned
Numeric Fields
2 - right aligned
Array object containing 4 values
Arc Color Color x x Bargraphs
(RGBAlpha)
Text wraps and new lines are
Auto Wrap Boolean x x String Fields created automatically if set to
true
All objects except Array object containing 4 values
Background Color Color x x
container (RGBA)
All objects except
absolute path to the image on
Background Image String x x container and virtual
the device
keyboards
0 - Emergency
Behaviour Integer x Alarm objects 1 - Warning
2 - Informational
Bargraphs
Bit Mask Integer x x Meter objects
Numeric Fields
All objects except
container, virtual
Border Image String x x
keyboards and
pages
All objects except
container, virtual
Border Width Integer x x
keyboards and
pages
Numeric Fields
Color Above Array object containing 4 values
Color x x Bargraphs
Maximum (RGBA)
Meter object
Numeric Fields
Color Below Array object containing 4 values
Color x x Bargraphs
Minimum (RGBA)
Meter object
Use the page ID as the object ID
and set to TRUE or FALSE
Connect All Softkey TRUE - softkey level changes
Boolean x x Softkey Frames
Frames happen on both sides equally
FALSE - softkey level changes
are independent on both sides
Current Softkey
Integer x x Softkey Frames
Level
ID of the decimal button in the
DecimalButtonID Integer x Virtual keyboards
virtual keyboard
Meter objects
Deflection Direction Integer x x
Arched bargraphs
All objects except
Dependency Integer x
container, virtual
Toolchain Manual
JavaScript 554
Javascript Ge
Data type SetObject type(s) Remarks
propertyName t
keyboards and
pages
The number corresponds to the
Display Video Integer x x Frames
video input
Display Zeros As
Boolean x x Numeric Fields
Blank
ID of the Done button in the
DoneButtonID Integer x Virtual keyboards
virtual keyboard
Draw Arc Boolean x x Meter objects
All objects except
container, virtual
Draw Border Boolean x x
keyboards and
pages
Draw Target Line Boolean x x Bargraphs
Bargraphs
Draw Ticks Boolean x x
Meter objects
Bargraphs
Meter objects 0 - linear
Encoder Movement Integer x x Numeric Fields
1 - dynamic
Tables
List objects
Arched bargraphs
End Angle Integer x x
Meter objects
Fadeout Boolean x x Softkey frames
TRUE - bargraph is filled
Bargraphs
Fill Mode Boolean x x FALSE - bargraph is not filled
Arched Bargraphs
(just a line at value position)
Bargraphs First bit that is used for the bit
FirstSetBit Integer x x Meter objects mask (correlates with "Choose
Numeric Fields number of bits" in the tool GUI)
All objects except
container, frames, lets objects flash with a given
Flashing Boolean x x
virtual keyboards frequency (see below)
and pages
All objects except
container, frames,
Flashing Cycle Integer x x min 100 ms, max 5000 ms
virtual keyboards
and pages
Numeric Fields
Font String x String Fields
Tables
Numeric Fields
Font Attribute Integer x x String Fields
Tables
Numeric Fields Hexadecimal value
Font Color Color x String Fields 0xRRGGBBAA (red, green,
Tables blue, alpha)
Toolchain Manual
JavaScript 555
Javascript Ge
Data type SetObject type(s) Remarks
propertyName t
Array object containing 4 values
Bargraphs (RGBA). For table objects this
Foreground Color Color x x
Tables will change the "Grid Color"
property.
Format Integer x x
Animated GIF
GIF Frame Number Integer x x
images
Animated GIF
GIF Loops Boolean x x
images
Animated GIF
GIF Speed Integer x x
images
Animated GIF
GIF State Integer x x
images
All objects except
Height Integer x pages and virtual
keyboards
Highlighted Row Integer x x Table
0 - left aligned
Horizontal Numeric Fields
Integer x x 1 - center aligned
Alignment String Fields
2 - right aligned
ID Integer x All objects
Picture graphic absolute path to the image on
Image To Display String x x
objects the device
Item Height Integer x List objects
Items Visible
Integer x x List objects
(Normal Mode)
will be cropped to the maximum
Items Visible
Integer x x List objects number of items that can be
(Editing Mode)
displayed with next edit
Key Number Integer x Virtual keyboards
Key Pressed
String x Virtual keyboards
Bitmap
Leading Zeros Boolean x x Numeric Fields
Level Integer x Softkey frames
List Highlighted
Integer x List objects
Position
Max String Length
Integer x x String Fields
(Characters)
Numeric Fields
Max Value Integer x x Bargraphs
Meter object
Min Display Time Integer x x Alarm objects
Numeric Fields
Min Value Integer x x Bargraphs
Meter object
Toolchain Manual
JavaScript 556
Javascript Ge
Data type SetObject type(s) Remarks
propertyName t
Name String x x All objects
Array object containing 4 values
Needle Color Color x x Meter objects
(RGBA)
Meter objects
absolute path to the image on
Needle Image String x x Gauge objects
the device
Bargraphs
No Of Decimals Integer x x Numeric Fields
Number Of List
Integer x List objects
Items
Bargraphs
Number Of Ticks Integer x x Meter objects
Gauge objects
If set to true, the mapping is
CAN Freestyle /
Object Status Boolean x x active, if false, the mapping is
J1939 mappings
not active.
Offset / Offset 2 Float x x Numeric Fields
Periods Integer x x
Buttons
Pressed State Boolean x x
Softkeys
Bargraphs
Gauge objects
Integer / List objects
Preview Value x x
String Meter objects
Numeric Fields
String Fields
For frames: When choosing
objects to edit with the encoder,
the focus jumps from the last to
the first if this is set to true
Roll Over Boolean x x All editable objects For other objects: When
reaching the abs. maximum
value of the object, the value
jumps to the abs. minimum value
of the object
Scale Double x x Numeric Fields
Only applicable if Display Video
Scaling Factor Integer x x Frames
is >0
Bargraphs
List objects
Send Value Boolean x x Meter objects Equals "Send value directly"
Numeric Fields
Tables
Set As Input Boolean x x All editable objects
Show Unused
Boolean x x Softkey frames
Levels
Sound Pattern Integer x x Alarm objects
Toolchain Manual
JavaScript 557
Javascript Ge
Data type SetObject type(s) Remarks
propertyName t
Arched bargraphs
Start Angle Integer x x
Meter objects
Step Width Integer x x Numeric Fields
String array with one element
per line, semicolon (;) as a
Table Data Array x x Tables
default delimiter per column (can
be changed in table properties)
Array object containing 4 values
Target Line Color Color x x Bargraphs
(RGBA)
Target Value Integer x x Bargraphs
Array object containing 4 values
Tick Color Color x x Bargraphs
(RGBA)
Timeout Integer x x Alarm objects
Paints a gray border around the
Touch Input Boolean x x List objects list object when it's being edited
if this is set to true
TRUE - object background is not
All objects except
painted
Transparent Boolean x x container and
FALSE - object background is
pages
painted
Transparent Border All objects that have Array object containing 4 values
Color x x
Color a border (RGBA)
0 - Page
Type Integer x Alarm objects
1 - Frame
Type ID Integer x Alarm objects Alarm type ID
All objects except
pages, list objects
Unit Group String x
and virtual
keyboards
Integer / Numeric Fields Integer for numeric fields, string
Value x
String String Fields for string fields
Bargraphs
Gauge objects
Value Change List objects
Integer x x
Factor Meter objects
Numeric Fields
Tables
0 - top aligned
Numeric Fields
Vertical Alignment Integer x x 1 - center aligned
String Fields
2 - bottom aligned
Only applicable if Display Video
is >0
0 - not mirrored
Video Alignment Integer x x Frames 1 - mirrored horizontally
2 - mirrored vertically
3 - mirrored horizontally and
vertically
Toolchain Manual
JavaScript 558
Javascript Ge
Data type SetObject type(s) Remarks
propertyName t
Only applicable if Display Video
is >0
Can only be set to 0, 90, 180 or
Video Rotation Integer x x Frames
270. This will change
@CamXRotation and
@CamXMirror accordingly.
All objects except
Visibility Boolean x x pages and virtual
keyboards
All objects except
Visibility Bit Integer x x pages and virtual
keyboards
All objects except
Visibility Variable
Integer x containers and
Index
virtual keyboards
All objects except
Visibility Variable
Integer x containers and
Subindex
virtual keyboards
All objects except
Visible Boolean x x containers and
virtual keyboards
All objects except
Width Integer x pages and virtual
keyboards
All objects except Always relative to its direct
X Location Integer (x)* pages and virtual parent
562
keyboards *Use the function moveDDO
All objects except Always relative to its direct
Y Location Integer (x)* pages and virtual parent
562
keyboards *Use the function moveDDO
Toolchain Manual
JavaScript 559
Prototypes:
var result = setProperty(number DDO-ID, string propertyName,
integer value);
var result = setProperty(number DDO-ID, string propertyName,
double value);
var result = setProperty(number DDO-ID, string propertyName,
bool value);
var result = setProperty(number DDO-ID, string propertyName,
string value);
var result = setProperty(number DDO-ID, string propertyName,
Array array);
Examples:
var DDOID = 42;
var myColor = new Array(4);
// Define a full red color
myColor[0] = 255;
myColor[1] = 0;
myColor[2] = 0;
myColor[3] = 255; //Alpha channel: completely opaque
Toolchain Manual
JavaScript 560
Example:
//read the contents of the file /proc/cpuinfo
var myData = readFile("/proc/cpuinfo");
//check if successful:
if (undefined == myData)
{
//reading failed!
print("Error reading file /proc/cpuinfo");
}
else
{
//reading successful, myData is now an array
//print contents to console:
for (var i = 0; i < myData.length; i++)
{
print("Line " + (i + 1) + ": " + myData[i]);
}
}
To display the contents of the retreived vector the Table Object can be used:
setProperty(TableID, "Table Data", myData);
For details see the manual chapter for the table object.
writeToFile - write a string to a file on the file system
With the writeToFile function it is possible to write strings to a file.
For security reasons the file can only be located on a connected USB stick or on a dedicated
folder of the device. If the filePath provided is not on the connected USB stick, the file is
automatically created in the device's dedicated directory (on the device this is usually in
"/opt/user_files/", on the windows simulation this directory is in the designer's install path
(pclient/user_files/). Note that a file is automatically created if it does not exist yet (this will fail
if the path contains directories that do not exist).
If the file is located on a USB stick, the size of the file is not restricted (write will fail if there is
no space left on the device). If the file is located on the file system of the device, the memory
that is available in the /opt/user_files directory is limited to 10MB (you can create many
smaller files but not more than 10MB in the directory). Writing will fail if this limit is reached.
The stringToWrite parameter may contain any string. No line breaks are added at the end of
each write, these need to be added to the stringToWrite if desired (add "\n" for a line break). If
the string only consists of one line, a line break has to be added at the end.
The option parameter can either be "append" or "replace". If the string is appended, the
string will just be added at the end of the file. If the string is replaced, the whole content of the
file is discarded before writing the new string to the file. If any other string is provided as
option parameter the writeToFile function will fail.
The optional sync parameter can be set to true if the file shall be directly written to disk
(reduce the risk of corrupt files at total power loss). The sync to disk will be done after the
content was written to the file. If the sync parameter is set to true the writeToFile function will
Toolchain Manual
JavaScript 561
not return until synchronization is finished! If the sync parameter is omitted or set to false,
the synchronization will be done by the operating system after some time or when the device
is shut down.
The return value of the writeToFile function is either true if writing to the file (and optional
sanchronization) was successful or false if writing or synchronizing to disk failed.
Prototype:
var result = writeToFile(string filePath, string stringToWrite,
string option, bool sync);
Example:
var usbMountPath = getVariableValue("@USBMountPath");
var filePath = usbMountPath + "/myFile.txt";
var myTextWithLineBreak = "Hello, this is line 1.\nAndThis is
line 2.\n";
var doSync = false;
var result = writeToFile(filePath, myTextWithLineBreak,
"append", doSync);
if (result == true)
{
print("Writing into file was successful!");
}
else
{
print("Writing into file FAILED!");
}
getAlarmLogRingBufferContent - Read the alarm log ring buffer
The ring buffer alarm log data can be similarly retrieved as the contents of a file. There will
also be a vector returned which contains each alarm log entry. Additionally a format string and
a delimiter character can be provided to get a formatted result. The format string can contain
several keywords delimited by the delimiter character. The keywords that can be used are:
· timestamp: The date and time when the alarm was logged in seconds since 1970-01-
01 00:00
· timestring: The date and time when the alarm was logged as a formatted text. The
format is "DayOfWeek Month DayOfMonth Hour:Minute:Second Year", e.g. "Mon Sep 3
13:42:00 2012"
· alarmtext: The text that was configured for the logged alarm in the property "Alarm Log
Text" of the alarm object.
· alarmevent: The event that caused the alarm log entry (either "Enqueued", "Shown",
"Confirmed" or "Removed")
· alarmvariables: The values of the variables @AlarmShow, @AlarmCurrent and
@AlarmCurrentPriority at the time of the logging entry. Each value in hex delimited by
the delimiter character.
Example format string: "timestring;alarmtext;alarmevent"
Delimiter character: ";"
This would cause one entry of the returned vector to look like this: "Mon Sep 3 13:42:00
2012;Engine Oil Pressure too high;Shown"
Prototype:
Toolchain Manual
JavaScript 562
Example:
//create a new array and retrieve the ring buffer content
var myLog = new Array();
myLog = getAlarmLogRingBufferContent ("timestring;alarmtext",
";");
//check if successful:
if (myLog.length == 0)
{
//reading failed! No entries in the buffer?
print("Error reading Alarm Log Ring Buffer content");
}
else
{
//reading successful, myLog is now an array
//print contents to console:
print("Alarm log:");
for (var i = 0; i < myLog.length; i++)
{
print(myLog[i]);
}
}
Note: The returned array can be easily passed to a table object so it can be shown on screen
( setProperty(IDofTableObject, "Table Data", arrayWithLogContent); )
Note 2: If the formatting of the date and time is not what is desired, the timestring can be used
to create a JavaScript Date object which provides easy access to each part of the date and
time:
//assume that we already have an array filled with log data and
that the timestamp is the first part of each entry
var i = 0;
//extract the timestamp from the log entry
var timestampAsString = myLog[i].substr(0,
myLog[i].indexOf(";"));
Var timestamp = parseInt(timestampAsString);
var myDate = new Date(timestamp * 1000);
//now each part of the date/time can be accessed separately:
//e.g. myDate.getDate() <-- day of month
//or myDate.getSeconds() <-- seconds and so on...
deleteAlarmLogRingBufferContent - clear an alarm log ring buffer
Simply use the following function to delete the complete alarm log ring buffer:
deleteAlarmLogRingBufferContent();
moveDDO - move an object on the screen
The moveDDO function can be used to move an object to a new position. Please use this
function with care, this can lead to a very high system load if this function is abused to e.g.
create complex animations.
Toolchain Manual
JavaScript 563
Prototype:
var result = moveDDO(number ParentObjectID, number
ObjectIDtoBeMoved, number newX, number newY);
The first parameter is the object ID of the parent of the object that shall be moved (check
project tree to find the parent). The second parameter is the ID of the object that shall be
moved. The third and fourth parameters are the new coordinates inside the parent.
Example:
//Move the picture graphic DDO 42. The parent of this ddo is
frame 21
var pictureDDO = 42;
var frameDDO = 21;
Example project: Download this project to see how the MoveDDO function can be used.
showSoftkeyFrames - show faded-out softkey frames
If the fadeout time for softkey frames was set in project properties, the softkey frames will be
hidden after that time. To show them again, a physical key needs to be pressed. If the softkey
frames shall be shown again by some other event, the showSoftkeyFrames function can be
used.
Prototype:
var result = showSoftkeyFrames();
Toolchain Manual
JavaScript 564
number Byte7,
number Byte8);
Description of the parameters:
· CAN-Port: Number of the CAN port that shall be used for sending the message (numbering
starts with 1)
· CAN-ID: The CAN messages CAN ID
· DLC: Data length code: how many data bytes shall be sent
· Byte1...Byte8: The data bytes of the CAN message
Example:
//send CAN message with ID 0x601 and 8 data bytes on port 1:
var result = sendCANMessage(1, 0x601, 8, 0xde, 0xad, 0xbe,
0xef, 0xb0, 0x0b, 0xaf, 0xfe);
if (result)
{
print("CAN message sent successfully!");
}
else
{
print("Failed to send CAN messge!");
}
includeFile - include another JavaScript file
With this command it is possible to execute a JavaScript file from within another JavaScript
file.
Example:
includeFile("example.js")
The included file will be executed as if the source code was written in the source file (except
when it's a function). This is useful if you have a part of code that you need to execute in many
different places.
function - use functions in JavaScript
It is possible to use functions in JavaScript. To create a function, use the following syntax:
Example:
function function_name (input variables)
{
<code>
return return_value;
}
The input variables as well as the return value are optional. The input variables will be
forwardef from the calling JavaScript. Executing the function looks like this:
Example:
var result = function (input variables);
You can combine this with the includeFile function to create a set of multi purpose JavaScript
functions that you can use in different places in your project (Note that you need to declare the
functions globally for them to stay alive).
Please note that for a function to be declared once and stay "alive, it needs to be declared
like this:
Toolchain Manual
JavaScript 565
Toolchain Manual
JavaScript 566
Toolchain Manual
JavaScript 567
Toolchain Manual
JavaScript 568
The result of this function is true if the variable is a CANopen variable and the Upload
Request was accepted by CANopen. It returns false if either the settings of the variable were
not correct (e.g. if it was no CANopen variable) or if the CANopen stack was not correctly
Toolchain Manual
JavaScript 569
configured (e.g. no appropriate SDO Client Channel settings were made for the CANopen
ECU).
startTouchscreenCalibration - Start calibration of resistive touchscreen
Use this function to start the calibration process of a resistive touchscreen. Capacitive
touchscreens do not need calibration.
When this function is called, the calibration process is displayed but PClient will continue to
run (e.g. cyclic scripts, cyclic CAN messages) but won't accept touch events and will not paint
anymore until calibration is finished.
Prototype:
var result = startTouchscreenCalibration();
The result of this function is true if the touch calibration process was started successfully and
false if it is either not supported on the current device or an error occurred.
Important Notes:
· On devices with capacitive touch the calibration process might start but will have no
effect. Capacitive touchscreens do not need calibration.
· On devices with I.MX35 CPU, the new calibration values are directly used after the
calibration has finished. On devices with I.MX6 CPU, the new calibration values will only
have an effect after a cold boot (write 0xb007 to variable @PWR_CurrentPowerMode).
writeEEPROM - Write a value to the EEPROM
The writeEEPROM function allows writing values to EEPROM. The values in EEPROM are
very save and will survive a complete a software update as well as unexpected power losses
(except during the writing process).
Note: The number of EEPROM write cycles is limited (device dependent). Do not
write to EEPROM too often (e.g. not in a cyclic script or CAN message)!
The maximum usabe EEPROM size for all devices is 28672 bytes.
Prototype:
var result = writeEEPROM (number EEPROM_ADDRESS, number LENGTH,
number/bool/string VALUE);
Parameters:
· EEPROM_ADDRESS: The start address in the EEPROM to write the data to
· LENGTH: The data length. The following rules apply:
? If writing a bool, the length needs to be set to 1
? If writing a number, the length needs to be 1, 2, 3 or 4
? If writing a string, the area starting at the address will be reset to 0 in EEPROM and after
that the string will be written (if a string is shorter than the provided length, still the whole
length is reset to 0 before the shorter string is written). If a string is longer than length, only
the given number of bytes will be written to EEPROM.
? EEPROM_ADDRESS + LENGTH may not be greater than the maximum EEPROM size
(28672)
Toolchain Manual
JavaScript 570
· VALUE: Currently the following JavaScript data types are supported: number, string and
bool. If e.g. an array object is provided as value parameter, the writeEEPROM function will
fail.
· Return value (result): If the provided value was written successfully, the number of bytes that
were written are returned. If writing the value to EEPROM failed, undefined will be returned
(observe console error messages when testing the project).
Note: The EEPROM functions will only work on the device, not in the PClient
simulation.
Examples:
Prototype:
var value = readEEPROM(number EEPROM_ADDRESS, number LENGTH,
string OPTIONAL_DATATYPE);
Parameters:
Toolchain Manual
JavaScript 571
· EEPROM_ADDRESS: The start address in the EEPROM to read the data from
· LENGTH: The data length. The following rules apply:
? If reading a bool, the length will be ignored and 1 is always used
? If reading a number, the length needs to be 1, 2, 3 or 4
? EEPROM_ADDRESS + length may not be greater than max EEPROM size (28672)
· OPTIONAL_DATATYPE: This is a hint about the type of data that shall be read. The
readEEPROM function will try to use the correct data type as its return value. If this
parameter is ommited or a non supported value is used, a byte array will be used as return
type (see Return value below)
? Possible values:
? “bool”
? “number”
? “string”
· Return value (value): In case reading failed, undefined will be returned (observe console
error messages when testing the project). If reading worked, the value that was read from
EEPROM will be returned. The data type of the returned value depends on
OPTIONAL_DATATYPE parameter. If this parameter was omitted, a byte array object is
returned that contains the single data bytes of the EEPROM (as numbers).
Note: The written and returned numbers are treated as signed 32Bit integers
regardless of the actual data length! If e.g. -1 is written with a length of 1 and then
read again, 255 will be returned (see example below)! The handling of such data is up
to the script programmer!
Why -559038801?
0xdeadbeef in binary is 1101 1110 1010 1101 1011 1110 1010 1111 (32 bits).
According to the note above, the 1 in the highest bit is interpreted as the sign.
1101 1110 1010 1101 1011 1110 1010 1111 as a 32 bit signed number is -559038801
Toolchain Manual
JavaScript 572
Why 255? -1 in binary is, in 32 bit, 1111 1111 1111 1111 1111 1111 1111 1111).
But only 1 byte is stored. 1111 1111 equals 255.
Toolchain Manual
JavaScript 573
Why was this long array returned? No data type was given in the read command, so the bytes
are returned as a JavaScript array.
Please note: Numbers are stored LSB first, Strings are stored linearly from beginning to end.
getCallerID - Retrieve the ID of the object/variable that triggered the script
With this function the ID of the object (graphical object or CAN mapping) or the name of the
variable that triggered the execution of the current script.
Prototype:
var result = getCallerID();
result will contain the ID of the object if the script was triggered by a graphical object or a CAN
mapping, or the name of the variable if the script was triggered by a variable.
If neither is the case (only theoretical, should never happen), the result will be undefined.
createUSBDirectory - Create a directory on the USB stick or in user_files
This function can be used to create a directory on a USB stick or in the /opt/user_files
directory on the device itself.
provide a directory name or hierarchy as a parameter. If the path starts with /opt/user_files,
the directory hierarchy is created inside the user_files directory. If the path is not
below /opt/user_files, the current USB mount path is automatically prepended to the path and
the directory is created on the USB stick.
The path may not contain a ".." or "*".
Prototype:
The result of the function will be true if creating the directory was successful (or the directory
already exists) or false if
-the path contains a ".." or "*"
-the path is not inside of /opt/user_files and no USB stick is inserted
-creating the directory failed for unknown reasons
getDirectoryContent - Get the contents of a directory
With this function the contents of a directory can be read.
The first parameter is the path to the directory that shall be read. The second parameter is
optional and can be used to filter the result to contain only files or only directories. Use
"DIRECTORIES_ONLY" or "FILES_ONLY" as filter options. If the second parameter is
omitted or has an other value than the two filter options, files and directories will be returned.
Prototype:
The function will return undefined if the contents of the provided directory could not be read. If
the contents were read successfully, an array of strings will be returned that contains all file
and/or directory names inside of the provided directory path.
Toolchain Manual
JavaScript 574
Prototype:
The function returns true if the directory or file(s) were deleted successfully. It returns false if
the file(s) or directory could not be deleted.
setFocus - Set navigation focus to certain object
This function sets navigation focus to object identified by DDO-ID and even opens it for input if
the second parameter is 'true' or '1'.
The second parameter can be skipped - then the object will not be opened for input.
The function throws exceptions if the parameters are not correct or if the object cannot be
found in project.
Return value is 'true' if all preconditions are met and focus change gets triggered. Even in this
case it may fail if the object is not shown on current page.
Return value is false (and nothing is triggered) if
•The object is not an input.
•A button should be opened for input.
•The object is disabled.
•An object is currently 'open for input' i.e. operator is currently changing some value.
Prototype:
Example:
574
Toolchain Manual
JavaScript 575
The approach requires instantiating an 'RS232Handler' object which represents one RS 232
interface.
Currently this uses the one port provided on the device.
If more than one port should exist in the future, then one instance per port would have to be
created.
Once the object is created, all function calls have to be done for this object.
Note that this interface was designed mainly for serial printers - that's why the 'read'
functionality is rather limited for now.
Example:
// Generate a global RS232 handler
myRS232_handler = new RS232Handler();
Toolchain Manual
JavaScript 576
57600
115200
230400
460800
500000
576000
921600
1000000
1152000
1500000
Every other value will result in a setting of 115200 bit/s.
The wait time means that the read function will wait for that time if the RS232 buffer is empty.
This can be used when communicating with a device that needs some time to deliver an
answer to a write.
The wait time can be set in steps of 100 from 0 to 25500 ms.
Prototype:
var result = <RS232Handler instance>.init(number
newBaudrate,number waitTime);
Examples:
// Open an RS232 interface with the default settings of 115200
baud / s and 100 ms wait time)
myRS232.init();
Return values:
Big5
Big5-HKSCS
CP949
Toolchain Manual
JavaScript 577
EUC-JP
EUC-KR
GB18030
HP-ROMAN8
IBM 850
IBM 866
IBM 874
ISO 2022-JP
ISO 8859-1 to 10
ISO 8859-13 to 16
Iscii-Bng, Dev, Gjr, Knd, Mlm, Ori, Pnj, Tlg, and Tml
KOI8-R
KOI8-U
Macintosh
Shift-JIS
TIS-620
TSCII
UTF-8
UTF-16
UTF-16BE
UTF-16LE
UTF-32
UTF-32BE
UTF-32LE
Windows-1250 to 1258
Prototype:
myRS232.encoding = STRING <encoding name>;
Example:
// Change the encoding to Windows 1252
myRS232.encoding = "Windows-1252";
Note that this method can't actually read the current baud rate. It returns the saved value of the
last baud rate that has been set successfully with the .init method.
Toolchain Manual
JavaScript 578
Example:
// Retrieve the filepath and device name of the RS232 port
var myPort = myRS232.getPort();
print("RS 232 port used : '" + myPort + "'.");
It accepts a character string as well as an array of numbers as buffer to be sent via serial
interface.
Strings will be converted to UTF-8 format used everywhere in PClient if
'RS232Handler.encoding' is not modified.
As a second parameter, one can provide the number of bytes to send from the buffer i.e. this
allows to use a buffer which could contain more than one wants to send currently.
If an array of numbers is provided, the size is limited to the size of the array - even if a greater
number is provided in 'bytesToSend'.
If a string is provided, the size is considered to be characters. Depending on the desired
encoding the number of bytes sent can differ.
If the buffer is provided as string, the 'encoding' property of 'RS232Handler' is used to convert
the string before sending (see examples).
Prototype:
var errorCode = RS232Handler.writeFromBuffer(<String or number
array>, optional number charactersToSend);
Examples:
// Since UTF-8 is used for character encoding in PClient the
special characters are sent as two or more bytes by default
// which in the following example can result in unprintable
characters.
// Special characters in this example are sent as two bytes
each (for default UTF-8).
myRS232.writeFromBuffer("Special characters: 'ÄÖÜ äöü'\r\n");
Toolchain Manual
JavaScript 579
myRS232.encoding = "Windows-1252";
// Now even the special characters will only be sent as one
byte:
myRS232.writeFromBuffer("Special characters: 'ÄÖÜ äöü'\r\n");
Return values:
0 - write successful
2 - port is not opened yet
6 - writing failed
If no data is available, an empty array will be returned after the set wait time.
This method entirely relies on the buffering of the underlying driver.
Note that this is a very simple interface intended to e.g. read some configuration data from a
printer.
It is by no means designed to frequently read data e.g. from a GPS receiver or other similar
source.
If this warning should not prevent you from trying anyways: Expect lag in the PClient (drawing)
performance (as both share the same thread) and be aware that you have to manage getting
the data at the right time and in the right amount somehow without blocking the PClient with
'busy waiting'.
Prototype:
var number[] = RS232Handler.readIntoBuffer(number bytesToRead);
Example:
//Read the RS232 interface
var readArray = myRS232.readIntoBuffer();
//convert the numeric array into a String
var arrayAsString = String.fromCharCode.apply(null, readArray);
// show data received in String Field [57]:
setProperty(57, "Preview Value", arrayAsString);
11.5 Programming Guidelines
In this chapter we want to provide some general programming guidelines for JavaScript
programming with our devices.
There is no absolute truth, no one best way, but avoiding the worst ways is a good start.
Toolchain Manual
JavaScript 580
No time in a script
It is not possible to spend any "time" in a script, i.e. wait for a certain event. You cannot set a
variable, then wait 5 seconds for the outcome of the change, then continue in the script. If you
need a time component for e.g. a gradual value change, you need to use a cyclic script, e.g.
on the event OnPageRepeat, and increment a variable with each run.
setVariableValue(“test”,(getVariableValue(“test”)+1);
In a million runs this might crash the PClient one time. Don't program like that, it does not save
any resources over spreading it out like this:
The Visual Programming plugin provides an alternative view for JavaScript files and
enables the creation of new JavaScripts or the modification of existing JavaScripts in a
Toolchain Manual
JavaScript 581
simple graphical way. The plugin is intended to assist the user in creating program
sequences to avoid syntax and some semantic errors.
Attention: Visual Programming is an experimental plugin in Beta version!
We have configured the view read only by default, that no existing scripts will be modified
by changing between the both views. To make changes on existing scripts with Visual
Programming you must uncheck the Read Only (5) checkbox.
To enable the developers to work with the JavaScript Editor or the Visual Programming
plugin, the two editors are dynamically linked through the tabs Source (2) / Visual (3) on
the top. Each created code can be displayed in both editors. The JavaScript Editor shows
the source code (1) of the script file and the Visual Programming plugin displays a visual
representation (4) of it.
Usage
The surface of the Visual Programming plugin is divided into 3 main parts. The left part
includes the toolbox (1). The toolbox contains all the structures, such as loops or
functions, which are needed to create a software.
Toolchain Manual
JavaScript 582
The workbench (2) is placed in the middle of the Visual Programming plugin. On the
workbench various constructs can be put together to generate meaningful code. Objects
that are no longer needed can be removed by dragging the object to the recycle bin (5).
On the right part is the orientation bar (3) placed. All created constructs are displayed in
a tree to get an compact overview.
Structure
In the "Structures" tab of the toolbox are the most common control structures of the
JavaScript programming language. The structures can placed on the workbench by
using drag and drop.The structures can be cascaded as desired.
For understanding the basic control structres, please have a look at the chapter
"JavaScript Basics" from the JavaScript reference.
Toolchain Manual
JavaScript 583
Variables
In the tab variables you can declare variables for Visual Programming. A distinction is
made between global and local variables. To create a global variable, press the button
Add global, to create a local variable press the button Add local. A variable with no
name appears in the Variables in current context tab in the respective window (3) /
(4). Before the variable can used on the workbench, a name must be set. To initialize the
variable, drag and drop the desired variable into the workbench and assign a value to it
by editing the text field. Variables that are no longer required can also be removed by
drag & drop it to the recycle bin.
Note: Variables names should be meaningful in order to find and understand them later
in the context.
Toolchain Manual
JavaScript 584
Functions
The purpose of the User-Defined functions is to give the user the possibility to
generate their own functionalities. These functions can be created via the toolbox by
pressing the Add Function button (1). A new function appears in the toolbox panel.
By default, the function name "user_defined_Function" is given with the sequence
number of the functions. In order to use the function, it can be dragged and dropped
onto the workbench into the desired construct. The Edit button (2) can be used to
configure the corresponding function.
Toolchain Manual
JavaScript 585
A new workbench (2) specially designed for this function appears. Here you can
specify parameters (1) / return type (3) and the function logic itself. For the definition of
the function logic, all constructs like Structures (4) can be used.
Toolchain Manual
JavaScript 586
Function
This section contains some helpful predefined Math and Date functions which are
often used .
Toolchain Manual
JavaScript 587
Toolchain Manual
JavaScript 588
Custom Functions
Please have a look at the chapter "Custom JavaScript functions for device specific
functionality" from the JavaScript reference.
Toolchain Manual
JavaScript 589
Arrays
An array represents a data structure or a field that encapsulates different types of data in
a container. New created arrays with Array() are initialized with the default name "array"
and the serial number (number of created arrays). A foreach loop is a construct that is
used to iterate value by value through a created array. The getArrayValue() function
returns the value at the input position to the variable which is already initialized by the
function. The setArrayValue() function has the ability to write any value to a selected
array.
Toolchain Manual
JavaScript 590
The Workbench
The workbench of the Visual Programming plugin is used to create the visual code.
Structures, variables or functions can now be combined in the workbench to generate
the code required for the respective purpose. With the drag and drop function of the
elements, these can be plcaced on the workbench as required. The elements are then
freely movable and can change their positions as desired. If elements are no longer
needed, they can be dragged into the recycle bin and removed from the workbench.
Toolchain Manual
JavaScript 591
McCabe Complexity
To ensure that programs do not become too large, the visual representation of the McCabe
complexity was integrated. Here, the user is warned when the program becomes too
complex.
Toolchain Manual
JavaScript 592
Toolchain Manual
Online Update
Online Update 594
12 Online Update
With this version we are introducing the possibility to receive online updates of the program.
These can be bug-fixes, new features or updates of the device software.
Please note: The update is modular, but it always comes in one package, i.e. you cannot
update only some of the parts that are updated, either you keep the version you have or you
update to the new one available.
Please note: If OS or PClient files are updated, they will overwrite the existing files. If you still
need the old versions, please create a backup for yourself. The OS and PClient files can be
found in the user folder under the program name, then in extracted components and then os /
pclient.
Please note: During deinstallation of the program, the version shown will be the version
originally installed, not the version reached through the online updates.
Please note: Files that were downloaded for the online updates will not be deleted during
deinstallation, as they were not part of the original installation. If needed, delete these files
yourself.
Settings
All relevant settings can be made in the menu Tools -> Plugins.
In the Settings tab, the URL for the update check is set. Normally this setting should not be
modified by the user.
In the bottom, the interval for the check of available updates can be changed. By default, the
program will check for updates at every startup.
Toolchain Manual
Online Update 595
If you don't want to receive notifications about updates, set this to Never.
Please note that you should never deactivate or uninstall modules in the Installed tab. This
will break the functionality of the program.
Update Process
When an update is available, you will be notified with this symbol in the lower right corner:
Additionally, an information bubble will be shown when the update is first recognized:
Toolchain Manual
Online Update 596
If you close the bubble, you will not be notified again until the set check interval occurs.
Click the link in the bubble to see the content of the update.
Alternatively, you can check for updates yourself in the dialog Tools -> Plugins in the tab
Updates and click the button Check for Updates. Click the button Update to start the
update process.
In the next screen you can see the list of modules, i.e. parts of the OPUS Projektor, that are
updated. Cancel stops the update process and you will not be notified again about this
update until the set check interval occurs. Click Next to continue.
Toolchain Manual
Online Update 597
In the next screen you might see a license agreement for each module (depending on
whether a new update is already available at the time of the original installation). In most
cases these will be identical for all modules. Cancel stops the update process.
Toolchain Manual
Online Update 598
Click the check box to accept the license agreements and then click Update to continue
with the update.
If you have started the update from the bubble, it will be downloaded in the background, so
you can continue to work. The download progress will be shown in the bottom right.
Clicking the X symbol stops the download of the update content.
If you have started the update from the Plugins dialog, you will see a popup with information
about the download. If you activate the check box Run In Background, the popup will be
closed and the download will be shown in the status bar in the bottom right.
Toolchain Manual
Online Update 599
Once downloading has finished, a dialog with the module certificate verification pops up.
Toolchain Manual
Online Update 600
- Signed and Valid - This will not be used by us since we can't let our modules be validated
externally
- Self Signed - This is where our modules will be. We have signed them ourselves
- Unsigned - Our modules will never be unsigned. If you ever have an unsigned module
listed here, contact us with a screenshot and don't install the update
You can check the certificate for each module by selecting a module and clicking Show
details.
Toolchain Manual
Online Update 601
In the certificate verification dialog, press Continue to progress in the update installation.
Cancel stops the update process. Click Next to start downloading the update.
After the verification, a bubble will show up that asks you to restart the program to complete
the installation.
Click the balloon to restart the program and finish the update installation.
Toolchain Manual
Online Update 602
Alternatively, if you started the update from the Plugins Dialog, you will see a confirmation
dialog that asks you to restart the program. Cancel stops the update process. Select
Restart Now and then click Finish to install the update. Select Restart Later to continue
working and restart later. The bubble shown above will pop up in the status bar in the
bottom. Click the bubble to restart the program. You can also close the Projektor Tool
manually and at the next start, the update will be finished.
You will first see a screen with the update progress and information what is installed.
Afterwards the OPUS Projektor will start again and the update is finished.
Please note that it might take a while until the splash screen pops up.
After the program has opened, check the release notes in the Start Page for information
about the update.
Toolchain Manual
Online Update 603
Toolchain Manual
How To
How To 605
13 How To
Here you will find some quick short solutions for common use cases. Feel free to contact us if
something you think should be there is missing.
13.1 How to create switch buttons with changing colors
You want to create buttons that activate and deactivate certain settings (like a switch). The
background color of the button should indicate if the setting is activated or not.
If the button background color shouldn't change directly when the button is pressed but instead
after a confirmation message from the CAN bus, put the script on the
OnValueChangeByOwner event of the related variable.
13.2 How to use one script for several buttons
You want to have a set of buttons that should basically perform a similar action, but a bit
different depending on which of the buttons has been pressed.
Toolchain Manual
How To 606
· Set the variable @DispBacklightIntensity to a value outside of its normal value region 0 to
100, e.g. -1 or 101
· To disable the automatic backlight mode, set the variable @DispBacklightIntensity back to
a value between 0 and 100
· The ambient brightness is readable in the variable @DispBacklightAmbient-LowPassed
· The brightness at different ambient brightness levels can be set with the variables
@DispBacklightIntensity0 to @DispBacklightIntensity100. You set e.g.
@DispBacklightIntensity0 to 20, then the display brightness will be set to 20 when
@DispBacklightAmbient-LowPassed has a value of 0 (%). Set @DispBacklightIntensity10
to 30, then the display brightness will be set to 30 when @DispBacklightAmbient-
LowPassed has a value of 10 (%). Values in-between will be interpolated linearly
· The variable @DispBacklightAmbient-LowPassed will be calculated from
@SensorAmbientLight using @DispBacklightFilterFactor. The formula is:
In words, the lower @DispBacklightFilterFactor is, the faster changing ambient brightness
values will influence the display brightness.
This formula will be calculated every @DispBacklightTimeConstant milliseconds.
13.5 How to set up SDO communication
You want to
a) request a value from an ECU / sensor
b) read a value with the ECU from the display device
c) write a value with the ECU to the display device
248 227
- include the CANopen protocol for the CAN port you want to use
- set up IDs for PClient SDO Server Channel and PClient SDO Client Channel in the Terminal
248
COB-ID Client ->Server (tx) is the ID that the display device uses to read a value from the
ECU (used for a))
COB-ID Server->Client (rx) is the ID that the ECU uses to respond a read request from the
display device (used for a))
Toolchain Manual
How To 607
a)
- create the variable you want to read from the ECU (data type must match!)
- open the Variable Manager 94
- set the ECU as the owner of the variable
- set the ECU index and ECU sub index of the variable according to the index / sub index the
variable has in the ECU 568
- use the JavaScript function requestVariableValueFromOwner to request the value of the
variable from the ECU
b)
- create the variable that the ECU wants to read (here the internal index / sub index are used)
- the ECU needs to send a read request message for the variable
c)
- create the variable that the ECU wants to read (here the internal index / sub index are used)
- the ECU needs to send a write request message for the variable
13.6 How to remember variable values when the device is
powered off
You want to remember variable values when the device is shut down and use them when it is
started again.
94
The most important setting is the property Remanent in the Variable Manager .
The property can only be activated for user-defined variables with the PClient as the owner 83 .
For pre-defined variables or variables with an owner other than the PClient this setting is not
possible.
Remanent variable values will be saved on the file system automatically, whenever their value
changes.
Removing power completely (disconnect clamp 15) directly after a value change might lead to
the loss of the last change.
Please note: When a project update with the same name is downloaded to the device, the
remanent variable values will be kept.
If a project with a different name is installed on the device, the remanent variable values from
the old project are not used. However, they will still be stored on the device, so if the old
project (i.e. a project with the old name) is installed, the remanent variable values are used.
13.7 How to use the power management
You want to be able to use the power management in your system to save power and / or shut
down the device safely.
Toolchain Manual
How To 608
In Low Power mode the device is basically functional, all scripts, CAN messages etc. are still
running.
Some elements of the devices can be turned off to save power and / or give the user the
illusion that the device is already off:
After a time that can be set with @PWR_TimeToSleepMode (anywhere from 0 to 2332800
seconds (27 days)) the device goes into Sleep mode.
In Sleep mode the device is basically not running anymore, no CAN, no scripts, nothing.
Toolchain Manual
How To 609
After another time, set with @PWR_TimeToPowerOff (again between 0 and 2332800
seconds), the device turns Off.
Here is a rough overview how much power the devices draw in which mode.
Only in Sleep or Off mode it's safe to remove clamp 30 (power plus). Disconnecting clamp 30
in On or Low Power is not good and can damage data.
When returning to On mode, the starting time is highly reduced when starting from Low
Power or Sleep mode.
Toolchain Manual
How To 610
When returning from Low Power or Sleep mode, the device will continue where it was
instead of starting freshly.
Toolchain Manual
How To 611
The external VCC and the power source of the display device can be the same.
The grounds have to be connected (i.e. have to be the same).
The LED in the image is only an example, it is not limited to LEDs.
13.9 How to process CAN messages with a multiplexer bit
You need to process CAN messages from an ECU that uses one CAN-ID and a multiplexer
bit to differentiate the data.
The best way to do that is to create the "same" CAN mapping several times, i.e. with the
same CAN-ID, length etc.
In the Visual CAN Mapping, put a constant into the multiplexer byte and set this constant to the
first relevant value, e.g. 1.
The other bytes you fill with variables that should contain the data from the CAN message with
multiplexer byte set to 1.
The next mapping with identical settings you put a constant into the multiplexer byte and set
this to 2, and you put in the variables that should receive those data, and so on.
Toolchain Manual
Welcome Projects
Welcome Projects 613
14 Welcome Projects
When you install a PClient on a device, you will see the following welcome project (the
versions shown on the display may differ).
By pressing the Updater Settings button (1) you can navigate to the Updater Settings page.
On this page you can enable / disable the project download over USB (2), CAN (3) and ETH
(Ethernet) (4) by pressing the according buttons. Pressing them again will inverse the current
setting. By pressing the CAN Settings button (5), you can navigate to the CAN Settings
page. By pressing the ETH Settings button (6), you can navigate to the Ethernet Settings
Toolchain Manual
Welcome Projects 614
page. Both settings buttons will only be visible when the according transfer medium is
enabled. With the Back button (7), you can go back to the main welcome page.
On the CAN Settings page you can set the CAN port (8) that should be used for the project
download and the Bitrate (9) for the project download for that port.
With the Back button (10) you can go back to the Updater Settings page.
On the Ethernet Settings page you can set the IP Address (10) and Netmask (11) that the
device should have in the network. With the Back button (12) you can go back to the Updater
Settings page.
Toolchain Manual
Welcome Projects 615
Please note: All settings made in this project are temporary and only valid for the first project
transfer. All settings will be overwritten by settings in the transferred project.
You should make the according settings in the project you want to transfer to the device:
Toolchain Manual
FAQ
FAQ 617
15 FAQ
I have a terminal with CoDeSys and would like to work with the
PClient toolchain now. What should I do on the terminal side?
Just install the PClient with the normal update procedure. Codesys will be removed with
this. If you want to work with Codesys again, you can re-install it.
Power Management variables are available, please refer to the pre-defined variable list .
PLEASE NOTE: The maximum value for a timeout setting is 27 days.
Three events are defined for the project to which actions can be assigned: OnPowerOn,
OnLowPower and OnSleep. Actions can be assigned to these events by clicking on the
project name in the project tree and then select “Events” in the property pane.
The OnPowerOn Event is executed as soon as the device wakes up from sleep mode or
from LowPower mode (Ignition is plugged in again), but NOT when starting with a cold
boot.
Toolchain Manual
FAQ 618
How can I show a screen with progress bar while the project is
loaded?
The loading screen image should have the same resolution as the target device (e.g.
480x272, 800x480 or 1024x768)
PClient will display the loading screen image as soon as it starts on the device.
@DispBacklightStartupIntensity
@KeyBacklightStartupIntensity
Toolchain Manual
FAQ 619
Both variables take values from 0 to 100, representing the percentage of the backlight
intensity. For security reasons the lowest accepted value for the display backlight inten-sity
is 5%.
Please make sure to not write too frequently to these variables since the value is directly
stored in the devices EEPROM.
Toolchain Manual
FAQ 620
Function Key (three arrow key): You can use the events of that key for every page. When
using ISO-VT, this key is fixed to switch between the ISO-VT pool(s) and PClient project.
Escape Key: This key has a fixed function to go back one page in the project.
Home Key: This key has a fixed function to go back to the home page in the project.
Toolchain Manual
FAQ 621
Sound Pattern
The beeper volume when playing an alarm sound pattern is calculated like this:
beeperVolume = (@BeeperAlarmVolume * @BeeperMaxVolume) / 100
if (@BeeperMinEmergencyAlarmVolume > beeperVolume)
{
beeperVolume = @BeeperMinEmergencyAlarmVolume
}
Audio Output
The sound volume when playing an alarm audio file is calculated like this:
soundVolume = (configuredVolume * ((@BeeperAlarmVolume *
@BeeperMaxVolume) / 100)) / 100
if (@BeeperMinEmergencyAlarmVolume > soundVolume)
{
soundVolume = @BeeperMinEmergencyAlarmVolume
}
393
While configuredVolume is the volume that was configured in the Audio Output settings .
Note that the final volume also still depends on @VolumeLevelSpeaker and
620
@VolumeLevelLineOut (see above ).
Event Volume
The following variables have an influence on the volume of an event sound pattern or audio
file:
· @BeeperMaxVolume
· @BeeperEventVolume
Sound Pattern
The beeper volume when playing an event sound pattern is calculated like this:
beeperVolume = (@BeeperEventVolume * @BeeperMaxVolume) / 100
Audio Output
The sound volume when playing an event audio file is calculated like this:
soundVolume = (configuredVolume * ((@BeeperEventVolume *
@BeeperMaxVolume) / 100)) / 100
393
While configuredVolume is the volume that was configured in the Audio Output settings .
Note that the final volume also still depends on @VolumeLevelSpeaker and
620
Toolchain Manual
FAQ 622
· @BeeperMaxVolume
The sound volume when playing back multimedia contents is calculated like this:
volume = (currentMediaPlayerVolume * @BeeperMaxVolume) / 100
While currentMediaPlayerVolume is the volume that is currently set for the
443
MultimediaPlayer object.
Note that the final volume also still depends on @VolumeLevelSpeaker and
620
@VolumeLevelLineOut (see above ).
Please note:
- no slash before or after the file name
- @CurrentDirectory needs to be set before @CurrentFile
Toolchain Manual
FAQ 623
Please note that the project will be stored in the path that is written in the Folder name
field, so the new project name has to be added after the existing path with a \ in front, e.g.:
C:\projects is the existing path, then the Folder name field needs to be C:
\projects\new_project_name.
The second way is to right-click on the project name in the project tree and select Rename
in the context menu. This will keep the project location and just change the project name
(and thus the project folder).
Please note: Manually changing the project folder name does not rename the project, and it
will lead to problems. Only use one of the methods described here.
How can I change the order in which the Encoder navigates between
objects?
The order is dependent on the Z-Order 80 of the objects. By changing the Z-Order you can
modify in which order objects are selected.
Please note: For i.MX 6 device projects, when changing from a landscape to a portrait
project on the device, a restart is necessary to apply the setting.
Toolchain Manual
FAQ 624
2. The UDP output port of the camera needs to be set in the video frame/page properties
3. Even when all camera settings are correct and the project is set up correctly, it's
important to remember that Ethernet needs to be activated, this does not happen
automatically with an Ethernet Camera configured and connected. Set
103 103
@Ethernet0_UpAtStart and/or @Ethernet0_applynstart to 1 to enable Ethernet.
How can I make changes to the file system when loading the project?
Sometimes you may want to make certain changes to the file system upon project
installation. An example would be the creation of the path /opt/user_files or to copy some
518
external files somewhere. You can add files in the project update process . There you
can also edit the post-installation script which can be modified to add necessary
commands (e.g. mkdir /opt/user_files).
Toolchain Manual
Tutorial Videos
Tutorial Videos 626
16 Tutorial Videos
We have created a number of tutorial videos about the Projektor Tool and its usage. Some of
them are linked within the topics of this manual.
For a complete list, please visit the Topcon Electronics Projektor Tool tutorial video page.
Toolchain Manual
Software Versions Overview
Software Versions Overview 628
Note: Since version 1.12 the version numbers of all components of the program are the same
(PC program/PClient/Downloader/etc.)
Note: When the hardware of a device has to be changed, it might be necessary to release a
new OS for that device family. The table below reflects the latest OS versions that can run on
all series versions of the devices (newest and oldest).
Please Note: All PClient versions lower than 2.13.40 were not explicitly tested for I.MX35 OS
version 1.4.4. They are likely to run on devices with this OS but validation needs to be done by
the vehicle manufacturer / system integrator.
Toolchain Manual
Tools
Tools 630
19 Tools
630
The ISO 17215 ethernet camera configuration tool is a small desktop application that allows
configuration of ethernet cameras that support ISO 17215. It is intended for end of line
configuration.
To open the tool, select Tools => Camera => ISO 17215 Camera Configuration.
The tool allows retrieving and setting of some of the standardized mandatory settings and
also camera manufacturer specific settings if available.
To be able to change camera settings, the tool has to be licensed. A license can be obtained
free of charge for direct customers. See Licensing chapter below for more details.
Toolchain Manual
Tools 631
The Broadcast Address field will automatically be filled with the matching IPv4 broadcast
address of the chosen interface but can be changed manually if needed. Note that the
network address of the interface has to be configured so it matches the network of the
camera (e.g. if the camera has the address 192.168.135.16, the interface on the PC
should also have an address in the 192.168.135.X network (where X needs to be an
unused number, typically 1)).
Toolchain Manual
Tools 632
If the IP address of your network interface can't be changed, consider using a second
network card / USB-Ethernet interface.
The Camera Port field needs to contain the UDP communication port number on which the
camera listens. This is not the port for the actual video stream but the one for the ISO
17215 communication. Typical values are 17215 (ISO 17215), 30490 (SOME/IP-SD) or
30391 (SOME/IP).
The Local Listen Port field contains the UDP port to which the camera will send its
answers (the port on which the PC tool will listen). Typically this is Camera Port + 1.
Refer to the manufacturer documentation of the camera to get the matching addresses and
port numbers.
When hitting the Scan button, a service discovery broadcast message is sent on the
selected network. If one or more camera answer the request, they will be listed in the
Detected Cameras list.
The data set of the camera will automatically be requested and the information is
presented in the Device Information tab.
Device Information
The Device Identification typically shows the name and/or type of camera along with
manufacturer and hardware software revisions. The content of this field is manufacturer
specific.
The Standard Version field contains the supported ISO 17215 standard version.
The Usable Resolution Fields represent the horizontal and vertical resolution of the
camera's sensor.
The Regions of Interest field contains the number of available regions of interest that
can be configured (see below).
Regions of Interest
Toolchain Manual
Tools 633
The Select Region of Interest drop down box lets you select one of the available ROIs
of the camera. The current setting of each ROI will be downloaded from the camera
when changing the selection.
To change the camera sensor geometry, two points on the sensor surface can be
changed (P1 and P2). The points form a rectangle on the sensor surface where P1 is the
top left point of the rectangle and P2 is the lower right point of the rectangle. The
orientation of the points can also be changed to create a horizontal and/or vertical
mirroring of the camera image (e.g. if P2 is moved to the left and above P1, the image
will be horizontally and vertically mirrored). The rectangle defined by P1 and P2 define
the resolution of the captured image.
The Output Resolution fields define the resolution of the actual video stream. If the
sensor resolution is different to the output resolution, the camera will scale the image
accordingly. Choose the lowest possible output resolution to save bandwith (e.g. if your
Toolchain Manual
Tools 634
WARNING: A certain combination of sensor geometry and output resolution may not be
supported by the camera. This is a manufacturer specific limit and can not be checked.
Please check camera documentation and error output!
In the Video Compression drop down box the type of video compression can be
selected. Select the type that is supported by the display.
The Max. Bitrate field defines the maximum bit rate used by the camera. The lower the
value, the higher the compression and the lower the used bandwidth will be:
· Low Bitrate: High compression, worse picture quality, better display performance
· High Bitrate: Low compression, better picture quality, worse display performance
Select a bitrate limit that gives the best compromise in picture quality and performance.
To save the settings for the selected ROI, hit the Apply the above settings of the
selected ROI to Camera button. If the check box Subscribe to this ROI is enabled, the
camera will directly use this ROI for video streaming. If the checkmark is not enabled, the
ROI settings will be saved but the camera will still stream with the settings of the
previously selected ROI (only if another ROI than the currently selected was active).
To make the settings of sensor geometry and output resolution more intuitive, a ROI
Configuration Wizard is available. Hit the ROI Configuration Wizard button to open it.
Toolchain Manual
Tools 635
Use the Mirror Horizontally (left will be right, right will be left) and Mirror Vertically (up
will be down, down will be up) check boxes to configure mirroring of the camera. The
preview image will change according to the mirror settings.
Use the Sensor Resolution Presets drop down box to select a region of the camera
sensor.
Use the Output Resolution Presets drop down box to select the resolution of the video
stream.
If the resolution selected in Sensor Resolution Presets does not cover the full sensor
area, the red rectangle in the Image Preview can be positioned with the mouse to
select the desired region of the camera sensor that shall be used.
The resulting ROI properties (P1/P2 and output resolution) are displayed at the bottom.
Toolchain Manual
Tools 636
Note: The sensor and output resolution presets are currently designed to work with an
Orlaco Emos camera. Not all presets can be combined with this camera. A warning will
be displayed if a resolution combination will not work for that camera. Other cameras
might support that combination so it is still possible to apply this to the camera. Note the
error output in the Log window for error messages.
When pressing the OK button, the ROI settings from the wizard will update the settings in
the Regions of Interest tab of the tool itself. Press the Apply... button to save it to the
camera.
Manufacturer Specific
The Manufacturer Specific tab contains settings for a certain camera manufacturer.
The settings that can be made here are not part of the ISO 17215 standard. Therefore
special implementations for every camera manufacturer and even model need to be
implemented.
Currently only settings specific to an Orlaco EMOS camera are supported. If
manufacturer settings for other brands and models are needed please contact support.
Warning: These settings should only be changed if the meaning of the settings
are very clear and match the target / configuration platform. Setting a wrong
value here might make the camera unresponsive and not being able to work or
be configured after that! Changing settings here is on your own risk. The
provider of this tool is not responsible for any harm that a misconfiguration may
cause!
Orlaco EMOS
Only change the settings in this tab if an Orlaco EMOS camera is connected and
selected. When enabling the I am sure that this is an Orlaco EMOS camera check
box, the current settings are downloaded from the camera and can be changed. Every
setting needs to be changed separately with the matching Set button. After the Set
button was clicked, the field will be cleared and the new setting will be downloaded from
the camera. Watch the Log section for error messages.
Note that some of the settings will only have an effect after switching the camera off and
on again.
Toolchain Manual
Tools 637
Static IP Address
The static IPv4 address of the camera. Change this to an address that matches the
target system network. DHCP can also be enabled.
Toolchain Manual
Tools 638
MAC Address
The MAC address of the camera. This setting is read-only and can not be changed.
DHCP
Select if DHCP shall be used or not. If DHCP is enabled, the camera will only work if a
DHCP server is available in the network. If DHCP is disabled, the static IP address and
mask will be used.
HDR
Enable or disable the HDR (High Dynamic Range) setting of the camera. If enabled the
camera can produce pictures with different light conditions better.
Overlay
Toolchain Manual
Tools 639
If enabled, two rotating arcs are overlaid to the video stream. This helps the user to
detect video freezes and is a safety feature.
LED Mode
LED Mode can be either enabled, disabled or set to auto. The effect of this setting is
currently unknown.
Stream Protocol
Select RTP or AVB for setting the stream protocol. Many displays only support RTP.
Flash Mode
This property can be set to normal, flash or flashed. The purpose of this is unknown.
VLAN ID
Here the ID (tag) of a VLAN can be set. Set to 0 to disable VLAN tagging. Any other
value will tag the ethernet stream packages with the configured VALN ID.
Stream ID
Here the name or ID of the stream can be set. This is for identification purposes only
(e.g. set the name of the camera to be able to identify it later in the vehicle: frontCAM,
backR, backL, etc.). Max. 8 characters.
LED Percentage
The current camera LED brightness in %. Read only.
Selected ROI
The currently selected ROI. This can also be changed in the Regions of Interest tab.
Toolchain Manual
Tools 640
No Stream at Boot
Select stream or no stream. If stream is selected, the camera will begin streaming the
video directly after connecting it to power. If no stream is selected, the camera will only
stream after someone subscribed to a ROI.
Log
Check the Log window for message with the tool and the camera. Error messages are
shown in red color. Reception messages are shown in blue. Sent messages in green.
Licensing
If the tool is not licensed, settings from cameras can be read but no changes can be sent to
the camera.
Please contact your vendor to obtain a license for the tool.
If a license was already obtained and the tool is started from within the toolchain, the
existing license file will automatically be provided to the tool.
If this tool shall be used as a stand-alone version, existing customers may also send a
license request to the vendor. This request needs to contain the key file which can be
generated via Licensing => Generate Key File. The vendor will return a license file which
can be loaded via Licensing => Load License File. The location of the license file will be
remembered and only needs to be done once (or whenever the license file is moved on the
file system).
Toolchain Manual