Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Canvas also includes an easy-to-use feature that allows the user to create lists of actions commands to be completed without the use of scripting. These action command lists can be tied to the change in a tag value, opening and closing the page, and other actions, similar to a script.

...

  • Global Commands: This command type can be created using the Script Editor or Command Editor in the Action property for an object, and can be used by any object in the project. Editing the commands will affect all objects that use the script.

  • Local Commands:This command type can only be created using the Command Editor for an object Action property and can only be used by the object where the command is being created. Copying and pasting the object will create a new copy of the local commands. Editing local commands will only affect the object that the commands belong to.

At runtime, command lists are treated like regular scripts. You can view the generated JavaScript code by double-clicking a command list in the Script Editor.

Global Commands

Method #1

Click Tools > Script Editor… > click + icon > Create New Commands.

...

Click an object > Action tab > click the Action drop-down menu > select Create New Commands. In the Command Editor, click the Local Commands drop-down > select Global Commands.

...

Local Commands

Click an object > Action tab > click Action drop-down menu > select Create New Commands.

...

The Command Editor Window

Creating or editing a command list will bring up the Command Editor window. Here, the user can add or remove commands from the list, and individual commands can be edited.

...

Commands

Functions

Description

Open Page

Code Block
languagejs
page.open("Page Name");

Opens the selected page. Users can select the page by name or by its unique index.

Close Page

Code Block
languagejs
page.close("Page Name");

Closes the selected page. Users can select the page by name or by its unique index.

Set Tag Value

Code Block
languagejs
tag.write("Tag Name", 7);
Code Block
languagejs
tag.write("Tag Name", tag.read("Other Tag Name"));

Sets the selected tag to a specified value. Users can select a constant value to write to the tag, or write another tag’s value to the selected tag.

Example 1: Write a specific value (7) to a tag (“Tag Name”).

Example 2: Write the value of another tag (“Other Tag“) to a tag (“Tag Name”).

Toggle Tag Value

Code Block
languagejs
tag.write(“Tag Name”, !tag.read(“Tag Name”));

Toggles the selected tags' value between 1 and 0.

Enter Tag Value

Code Block
languagejs
keyboard.launchKeypad("ANA", {
    "header": "Header Title",
    "subheader": "Subheader Title",
    "x": 0,
    "y": 0,
    "min": 0.0,
    "max": 100.0,
    "format": "H,HHH"
});

Open a pop-up keyboard that allows the user to enter a value to be written to the selected tag. Users can write numeric or string values to a tag, though the tag must be the correct type to support the entered data. Ex: The tag must be a ‘STRING’ type for a text entry.Lines 1-3: Launch keypad requesting for a

Line 1: Launch a keypad requesting user input that will be stored to the “ANA” tag.

Lines 2-3:  Keypad will have a header and subheader title if assigned. This can be used to tell the operator what value is being requested.

Lines 4-5: Set the location for the keypad on the Xpanel screen.

Lines 6-7: Set the minimum and maximum values a user can enter.

Line 8: The value entered will appear in a chosen format. “H,HHH” is for the hexadecimal formatting, and “#,###” is for the decimal formatting.

Call Script

Code Block
languagejs
system.importScript("Script Name");
system.runScript("Script Name");

Runs the selected script.

If the “Run on separate thread” options is selected, the script will be run on a separate thread (system.runScript). If the option is unselected, the script will be run on the same thread (system.importScript).

Leave the “Run on separate thread” option unchecked if you want scripts to execute in the specified order.

Line 1: When the box is unchecked, the selected script will run in the current thread. This will pause the calling script until the imported scripts has completed. The order of execution is guaranteed.

Line 2: When the box is checked, the selected script will run in a new thread. This will not interrupt the operation of currently running scripts. The order of execution is not guaranteed.

Enable/Disable Schedule

Code Block
languagejs
schedule.setEnable("Schedule Name", true);
schedule.setEnable("Schedule Name", false);

Enables or disables the selected runtime schedule.

Line 1: Enabled the selected schedule.

Line 2: Disables the selected schedule.

Save Alarm CSV

Code Block
alarm.createAllCsv(Storage.Local);
alarm.createCsv("Group A", Storage.Local);

Saves a log of all alarm events to a CSV. Users can select to save the file locally on the Xpanel, to a USB, or to an SD card.

You may choose where the CSV will be stored to: Local (on the device’s hard drive), USB, or SD Card.

The default CSV locations are as follows:
/run/media/mmcblk3p4/cimon/gateway/alarm_csv/ (Local)
<root directory>/alarm_csv/ (USB/SD Card)

Users can also delegate a specific alarm label to be saved in the CSV, in which case all other labels will not be included in the CSV.

Line 1: Saves a CSV for all alarm labels.

Line 2: Saves a CSV for alarms that have the specified label.

Save Data Log CSV

Code Block
languagejs
datalog.createCsv("Data Logger Name", Storage.Local);

Saves the selected Data Log to a CSV file.

You may choose where the CSV will be stored to: Local (on the device’s hard drive), USB, or SD Card.

The default CSV locations are as follows:
/run/media/mmcblk3p4/cimon/gateway/datalogger_csv/ (Local)
<root directory>/datalogger_csv/ (USB/SD Card)

You may also choose how far back in time the CSV should cover. Options include (All, Past Hour, Past Day, Past Week, Past Month, and Past Year).

Start/Stop Data Log

Code Block
languagejs
datalog.start("Data Logger Name");
datalog.stop("Data Logger Name");

Starts or stops a data log model. This function does not directly create an entry into the log; it only enables entries to be added via other triggers.

Line 1: Start the Data Logging actions

Line 12: Stop the Data Loggers action

Add Row to Data Log

Code Block
languagejs
datalog.addRow("Data Logger Name");

Adds a new entry to the Data Log.

Open Login Window

Code Block
system.openLoginWindow();

Opens the built-in IAM login window.

Logout User

Code Block
languagejs
system.logout();

Logs out the current user from the IAM system.

Press Key

Code Block
keyboard.sendKeyEvent(0x01000004);

Enters the user specified keystroke. Function codes are used to enter specific key strokes, those key codes can be found at the following link:

Qt Namespace | Qt Core 5.15.10

Send Screen Notification

Code Block
languagejs
notification.send("Welcome to CIMON!");

In the runtime, notification window will appear on the Xpanel screen.

Exit Project

Code Block
languagejs
system.exit();

Exits the project and canvas runtime.

Open Config Menu

Code Block
languagejs
system.openConfig();

Opens the Xpanel Settings menu.

Set Translation Language

Code Block
languagejs
system.setLanguage("English");

Sets the language according to the one specified in the Action List.

...