User Interface
HSYCO allows the interaction with the system through a custom user interface. We can identify three entities:
- Project: a single interface
- Pages: a project contains pages
- UI Objects: a page contains objects
A project is defined by a subdirectory inside www that contains an index.hsm file.
Whenever HSYCO detects any change to the files in www and in its subdirectories, it forces the reload of all the projects on the connected browsers.
For each sub-directory in www in which the file index.hsm exists, you can access the page with the following URL:
https://<name server>/<URLKey>/<subdirectory name>
URL Query Parameters
Some aspects of the user interface can be overridden by specifying query parameters in the URL.
These parameters are appended to the URL after a ?
character, and separated by the &
character.
They are specific to the tab or browser window in which the URL is loaded.
The complete URL format is:
https://<name server>/<URLKey>/<subdirectory name>?<parameters>
The following parameters are available:
Parameter | Description |
---|---|
fullwindow | Toggles fullwindow mode, as opposed to fullscreen. When an object (e.g. camerapanel, datalogger) switches to fullscreen mode, it will occupy the whole browser's window instead of actually going fullscreen |
gohome=<seconds> | After <seconds> seconds of inactivity, shows the home page, or the page set with the page=<page name> parameter |
kiosk=true | Forces kiosk mode |
landscape | Shows the landscape user interface |
nocamstream | Disables MJPEG streaming to the Web browser, even if the browser supports this format |
nobuttonfeedback | Disables the graphical feedback of buttons (over, pressed...). Useful for hiding button presses on the login page, for example |
notouch | Disables touch events, enabling standard mouse events. Used for touch devices that don't recognize touch events |
page=<page name> | When the user interface is initially loaded by the browser, displays the specified page instead of the menu |
portrait | Shows the portrait user interface |
scale=<value> | Overrides the project's scale attribute. Can be "fit" or a decimal positive number |
screensaver=N | Automatically enters screensaver mode after N seconds of inactivity (see the Screensaver page for more details) |
noconnectionlostpopup | Disables the popup that appears when the connection to the server is lost |
Project's Syntax
Projects are described through a custom markup language that defines pages, objects and various directives that apply to the project (skin, language, size...).
The syntax for every object is described in the corresponding section.
index.hsm files can be viewed from the Project Editor(tools > source) and edited from the Editor in the File Manager.
When errors are detected, the page is not served to the Web browser. File parsing stops at the first error, so only the first line with errors is reported in the log file.
Each type of graphic object could require one or more parameters, separated by the ;
character. Empty lines or blank spaces are ignored.
Changes to index.hsm cause an automatic page reload on the connected Web browsers.
You can insert comment lines, which are ignored. A comment line starts with the #
character at the beginning of the line.
Names in index.hsm are case sensitive, small and capital letters are significant; all objects defined in the standard skin have names with lower-case letters.
Some objects support a variant called identified version to allow the !id dynamic modification of the text, visibility, color several other attributes with the uiSet() Java method or the UISET action.
The User Interface Configuration Database
The graphical representation of user interface objects that are directly associated with I/O servers data points is defined in a file named systemtopo.txt.
This file is usually created and updated automatically by the I/O servers, but can also be edited manually. It also contains location information for the WiFi location services.
The systemtopo.txt file is only used by the Project Editor, to list the user interface data points in the address field of device objects, and in the run-time user interface, for the graphic representation of each object.
The systemtopo.txt file is not required for any other core function. If your HSYCO server does not have a user interface, but only application logic implemented with the various programming APIs, systemtopo.txt would be useless and could be ignored or even removed.
See systemtopo.txt section for detailed information on systemtopo.txt.