Screen root
Screen files are served from the screen runtime directory shown on the Screen Files page. Linux defaults to /opt/hqcontrol/screens/assets; Windows uses the screens\assets directory under the install root. Besides uploading and publishing from the page, you can also delete or replace screen files directly in this directory on disk; both work.
Popup template scope
PPT-exported page and popup scope is JSON and uses the same "device.group" format as menus, popups, and alarm sound: tags, plcCodes, functionGroupCodes, deviceGroupCodes, and signalGroupCodes. Except plcCodes (device code only), tags and every group are bound to a specific device, written as "device-code.group-code". An empty array means that dimension adds no scope, not all tags.
{
"showWindow": true,
"tags": [],
"plcCodes": [],
"functionGroupCodes": [],
"deviceGroupCodes": [],
"signalGroupCodes": []
}
Popup template file
Each popup template is its own JSON file under configs/popup-templates/, named by template ID (for example 1.json); the file content is that single template object. Fields include id, code, name, description, popupType, component, defaultTab, width, height, signalCategories, signalSuffixes, focusTagNames, sections, and enabled. An older single popup-templates.json is split into one file per template on upgrade, and the original is renamed as a backup.
- One template per file, named by template ID (e.g.
1.json); editing one template touches only its own file.
code must stay unique in the current project.
signalSuffixes and focusTagNames must match the current project's tag naming.
- To migrate a popup template from another project, copy its JSON file into
configs/popup-templates/.
- Copy the whole template file; do not copy only
sections or a few partial fields.
- A template file is configuration, not a database table or runtime settings file.
{
"id": 1,
"code": "...",
"name": "...",
"description": "...",
"popupType": "...",
"component": "...",
"defaultTab": "...",
"width": 960,
"height": 640,
"signalCategories": [],
"signalSuffixes": [],
"focusTagNames": [],
"sections": [],
"enabled": true
}