<< Click to Display Table of Contents >> Navigation: »No topics above this level« FAQ |
You can change the order of pages in the project tree by selecting a page and pressing the keyboard shortcut <ALT> + <Page Up> / <Page Down>. You can bring them to the top / bottom with <ALT> + <Pos1> / <ALT> + <End>. Note that this order has no meaning for the project on the device. |
With this version you can load projects as old as from version 1.6.x (or IDE version 3.6.x). Any older version should be opened with version 1.12.1 first. |
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. |
The starting time of the terminal is caused by the 32 bit Linux operating system involved that is similar to a normal PC. Therefore it is not possible to shorten it directly. But it is definitely possible to make the process more suitable using the power management. This contains two variables: @PWR_TimeToSleepMode – defines the time in seconds after which the terminal should go into sleep mode (maximum is 2332800 s - 27 days); @PWR_TimeToPowerOff – defines the time after which the terminal should switch off completely (maximum is 2332800 s - 27 days). |
The power management settings can only be configured using variables from the Power Modes group (Index 0x2030). Using these variables, the timeouts can be configured (when going into sleep mode and when switching off completely) and what components shall be switched on/off when entering low power mode. Please refer to the power management variables for more information. PLEASE NOTE: The configuration file /opt/etc/pm_state.conf is not considered anymore. Only the settings made with the variables will apply. |
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.
The devices support four power modes: • Off: The device is completely off, no power is consumed • On: The device is fully running • LowPower: Ignition pin (clamp 15) was pulled. The core program is running, but the device switches off configured modules to consume less power. • Sleep: When the device is in LowPower mode and a timeout expires (@PWR_Time_To_Sleep_Mode), the device enters sleep mode. In this mode only the RAM is supplied with power. Power consumption is very low.
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. The OnLowPower event is executed as soon as the ignition is pulled. The OnSleep event currently gets executed as soon as the device wakes up from sleep mode (before the OnPowerOn event). This may change in future so that the event is executed as soon as sleep mode is entered.
To each of these events one of the following actions can be assigned: • Execute Script • Set Value
Some ideas for what these events can be useful: • Jump to the home (start) page when entering LowPower mode by setting the Page ID to variable @ProjektCurrentPage. • Initialize variables with default values. • Mimic the same behavior like a cold boot when the device returns from LowPower or Sleep Mode. By using a script, the ideas mentioned above can be combined. |
The loading screen image should have the same resolution as the target device (e.g. 480x272, 800x480 or 1024x768)
Only PNG images are allowed as loading screen image.
The selected image will be renamed to 'loading_screen.png' and placed in the 'terminal_files/additional_files' directory in the project folder.
PClient will display the loading screen image as soon as it starts on the device.
How to show a progress bar: PClient automatically draws a progress bar BEHIND the loading screen image. That means if you want to show the progress bar, you have to make parts of the loading screen transparent. Through this transparent area the progress bar will be shown. The progress bar runs from left to right of the display. It starts at 10% of the display resolution and ends at 90% of the display resolution. For a device with 480x272 resolution that would mean that it runs from X = 48 to X = 432. The height of the progress bar is the complete display resolution. If no loading screen image is selected, no progress bar will be shown. |
The LSS services used for this purpose are currently not supported by the terminals. |
The default intensity for the display and the keypad backlight can be adjusted with the following variables:
@DispBacklightStartupIntensity @KeyBacklightStartupIntensity
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. |
To turn on the multicolor LED in the desired color, set the variable @LED_MultiColor to the desired color value (in hexadecimal format, 0xRRGGBB, e.g. red 0xFF0000, blue 0x00FF00, green 0x0000FF. To let the LED blink, set the @LEDMultiColorRepetitions to the desired value, then the color as explained above, and lastly set the @LEDMultiColorPattern to the desired value. Here every bit of 20 bits stands for 100ms, so setting the variable to 0xF000F will light up the LED for 400 ms, then it's 1200ms off and then again 400ms on. When this variable is set, the repetitions are counted down to 0 and the color will be set alternating to 0 and the chosen color. At the end both the repetitions and the color will be set to 0. Example project: Download this example to see how to use the multi color LED |
First you have to make sure that you are using the tiny svg format. A second cause can be that you are using shadows. If so please disable them and try again. |
There are 3 ways to use the beeper. First of all, the general beeper volume (@BeeperMaxVolume) has to be set. Then you can use: - alarm beeper (@BeeperAlarmVolume) - key beeper (@BeeperClickVolume) - general event beeper (@BeeperEventVolume) The alarm beeper will sound when an alarm with a configured beeper pattern is opened on the display. The key beeper will beep whenever the touch screen is touched by the user. The general event beeper can be used freely for any chosen events. If @BeeperEventOn is set to 1, the beeper will beep, if it is set to 0, it won't. You can also program a pattern here with @BeeperEventPattern and @BeeperEventRepetitions. |
Encoder: The encoder is automatically used for selection and editing when you set the "Set as Input" property for objects. Additionally, you can use encoder events directly by configuring the events of the encoder. You can do this for every page.
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. However, its function can be changed / removed using navigation scripts. Then the events for the key on each page can be configured. An example of that can be seen in the Welcome Project.
Home Key: This key has a fixed function to go back to the home page in the project. However, its function can be changed / removed using navigation scripts. Then the events for the key on each page can be configured. An example of that can be seen in the Welcome Project.
Power Key: This key can be configured in general in the Project Properties. Alternatively, specific settings can be made on each page.
Please note that if ANY event is configured for a specific page, NO action from the project properties will be executed while on that page, i.e. if you want a specific action OnPress but the general action OnRelease, you need to put that action into the page event configuration for the Power Key, as well.
Please note that not all keys are available on all devices. Please refer to the corresponding device manual. |
The currently shown page can be changed with JavaScript by changing the value of the variable @ProjektCurrentPage. The variable needs to be set to the ID of the page. The ID can be seen in the project tree behind the page name. |
This is described in the project conversion chapter. |
For multimedia playback questions see the FAQ of the MultimediaPlayer. For a description of event and alarm sound configuration see Events and Actions. |
In general all volume settings are made with the beeper volume variables. General volume settingsThe main variable to control the general volume level is @BeeperMaxVolume. This variable can be seen as the main volume level. It has an influence on all other volumes. The next two general volume variables are @VolumeLevelSpeaker and @VolumeLevelLineOut. These variables can be seen as mixer volume levels. If the device is equipped with an internal speaker and an audio line out, the volume level of these outputs can be adjusted (they have no influence on a device that is only equipped with a beeper). These variables directly accesses the hardware volume settings so that all other volumes will be raised or lowered when their value changes. Alarm VolumeThe following variables have an influence on the volume of an alarm sound pattern or audio file: •@BeeperMaxVolume •@BeeperAlarmVolume •@BeeperMinEmergencyAlarmVolume Sound PatternThe beeper volume when playing an alarm sound pattern is calculated like this: beeperVolume = (@BeeperAlarmVolume * @BeeperMaxVolume) / 100 if (@BeeperMinEmergencyAlarmVolume > beeperVolume) { beeperVolume = @BeeperMinEmergencyAlarmVolume } Audio OutputThe sound volume when playing an alarm audio file is calculated like this: soundVolume = (configuredVolume * ((@BeeperAlarmVolume * @BeeperMaxVolume) / 100)) / 100 if (@BeeperMinEmergencyAlarmVolume > soundVolume) { soundVolume = @BeeperMinEmergencyAlarmVolume } While configuredVolume is the volume that was configured in the Audio Output settings. Note that the final volume also still depends on @VolumeLevelSpeaker and @VolumeLevelLineOut (see above). Event VolumeThe following variables have an influence on the volume of an event sound pattern or audio file: •@BeeperMaxVolume •@BeeperEventVolume Sound PatternThe beeper volume when playing an event sound pattern is calculated like this: beeperVolume = (@BeeperEventVolume * @BeeperMaxVolume) / 100 Audio OutputThe sound volume when playing an event audio file is calculated like this: soundVolume = (configuredVolume * ((@BeeperEventVolume * @BeeperMaxVolume) / 100)) / 100 While configuredVolume is the volume that was configured in the Audio Output settings. Note that the final volume also still depends on @VolumeLevelSpeaker and @VolumeLevelLineOut (see above). Click VolumeThe following variables have an influence on the click volume: •@BeeperMaxVolume •@BeeperClickVolume The beeper/sound volume when touching the touch screen is calculated like this: volume = (@BeeperClickVolume * @BeeperMaxVolume) / 100 Note that on devices with an internal sound card the final volume also still depends on @VolumeLevelSpeaker and @VolumeLevelLineOut (see above). Multimedia VolumeThe following variable has an influence on the volume when playing back multimedia files with the MultimediaPlayer object: •@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 MultimediaPlayer object. Note that the final volume also still depends on @VolumeLevelSpeaker and @VolumeLevelLineOut (see above). |
Visual objects can be configured to blink in a certain frequency. To do this, the JavaScript setProperty function has to be used. The properties to configure are "Flashing" and "Flashing Cycle". Flashing enables or disables the blinking, while Flashing Cycle takes a time in milliseconds from 100 to 5000. The Flashing Cycle time can be changed dynamically while the object is blinking. It will then blink with the newly set frequency. |
To copy or move files on the device file system (or to / from the USB stick), you need to use 4 variables in the following form and order (example to move an alarm log file to the trash, i.e. to a folder that will be deleted upon restart):
//Set the current directory to where the log file is situated setVariableValue("@CurrentDirectory", "/opt/pclient/logfiles/"); //Set the current file name to "alarm.log", the name of the file setVariableValue("@CurrentFile", "alarm.log"); //Set the destination to a temporary folder which will be deleted after restart setVariableValue("@DestinationDirectory", "/dev/null/"); //Execute the copy/move process setVariableValue("@CopyFileOrFolder", 2);
Please note: - no slash before or after the file name - @CurrentDirectory needs to be set before @CurrentFile |
There are two ways to rename a project. One is by performing a Save As action. This menu entry can be found in the menu File -> Save As 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. |
The order is dependent on the Z-Order of the objects. By changing the Z-Order you can modify in which order objects are selected. |
All devices can be used in landscape (widescreen / horizontal) or portrait (vertical) mode. The distinction is made when creating a project. For every device type, a landscape or portrait mode project can be created. This cannot be changed later (only by converting).
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. |
A font file can only be imported if there isn't already a font file with the same name imported in the project. If a font comes with several files for bold, italic etc, it is possible that they have the same name in their meta data. If this is the case, give the fonts unique names and make sure that all name fields have the same name. Please refer to the passage Imported Fonts in the chapter Project Properties. |
You can force the interpretation of a number in JavaScript in unsigned32 by executing this code: var number_us32 = number_original >>> 0; |
To change the IP of a device while it is running, use the variable @Ethernet0_IPAdress. But this is not a permanent setting! The IP address that will be set on startup can and has to be defined in the project updater. The Ethernet port will be available as soon as the address is set. |
1. The camera needs to be set to H.264 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. |
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 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). |
Line attributes define the look of the lines in the 2D Graph. They can be modified and new attributes can be created in the project properties. |
The possible characters depend on the font supporting them. Please find free fonts for the language you need and import them in the project properties. For asian characters e.g. consult this list: https://en.wikipedia.org/wiki/List_of_CJK_fonts |
The save button is only enabled if any change to a project has been made. No changes - no need to save the project. A consequence of that is that if a project has been saved and the program is closed, no saving dialog will pop up, the program will just close. |
You can save screenshots of your project (i.e. what is currently shown on the screen) by using the variable @ProjektTakeScreenshot |
We support the GIF file format mainly because of its animation possibility. GIF files are only supported for the Image to Display property of Picture Graphics. For all other places and for inanimated images, please use one of the other supported image formats. |
Yes! We have a PDF reader included in the PClient. You can open a PDF file on the device by using button events or by using the JavaScript function openPDFReader. Note that the PDF reader doesn't work in the PClient simulation. |