diff --git a/.resources/002b7221d230af4734e860a74cb003fe122016c1fbbcf3e1000c04cf89081298 b/.resources/002b7221d230af4734e860a74cb003fe122016c1fbbcf3e1000c04cf89081298
new file mode 100644
index 00000000..a2dd6629
--- /dev/null
+++ b/.resources/002b7221d230af4734e860a74cb003fe122016c1fbbcf3e1000c04cf89081298
@@ -0,0 +1,1092 @@
+{
+ "custom": {},
+ "params": {
+ "titleExtra": "0 rows",
+ "usesTimewidget": true
+ },
+ "propConfig": {
+ "params.titleExtra": {
+ "paramDirection": "output",
+ "persistent": true
+ },
+ "params.usesTimewidget": {
+ "binding": {
+ "config": {
+ "expression": "true"
+ },
+ "type": "expr"
+ },
+ "paramDirection": "output",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 324,
+ "width": 1600
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "LaneStatus"
+ },
+ "position": {
+ "height": "100%",
+ "width": "100%"
+ },
+ "propConfig": {
+ "props.data": {
+ "binding": {
+ "config": {
+ "parameters": {
+ "endDate": "{session.custom.timewidget.endDate}",
+ "startDate": "{session.custom.timewidget.startDate}",
+ "where": "1\u003d1"
+ },
+ "queryPath": "Status/LaneStatus"
+ },
+ "transforms": [
+ {
+ "code": "\tcou \u003d utils.getRowCount(value)\n\tast \u003d \"*\" if cou \u003e\u003d 2000 else \"\"\n\tself.view.params.titleExtra \u003d \"{:n}{} rows\".format(cou, ast)\n\t# Return data\n\treturn value",
+ "type": "script"
+ }
+ ],
+ "type": "query"
+ }
+ }
+ },
+ "props": {
+ "cells": {
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "1px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "1px",
+ "color": "#000",
+ "fontFamily": "Helvetica",
+ "fontSize": "14px"
+ }
+ },
+ "columns": [
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "start_timestamp",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Start Timestamp"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 150
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "end_timestamp",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "End Timestamp"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": "value"
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 150
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "sorter",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Sorter"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": false,
+ "width": 80
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "lane",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Lane"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 110
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "available_count",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Available (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 110
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "disabled_count",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Disabled (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 110
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "full_count",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Full (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 100
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "full_warn_count",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "50% Full (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 110
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "jam_count",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Jam (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 100
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "faulted_count",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Faulted (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 100
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "available_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Available Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "disabled_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Disabled Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "full_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Full Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "full_warn_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "50% Full Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "jam_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Jam Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "faulted_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Faulted Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ }
+ ],
+ "filter": {
+ "enabled": true
+ },
+ "pager": {
+ "bottom": false
+ },
+ "rows": {
+ "highlight": {
+ "enabled": false
+ },
+ "striped": {
+ "enabled": false
+ },
+ "style": {
+ "classes": "table/highlight"
+ }
+ },
+ "style": {
+ "fontFamily": "Helvetica",
+ "fontSize": "14px",
+ "fontWeight": "bold"
+ }
+ },
+ "scripts": {
+ "customMethods": [],
+ "extensionFunctions": null,
+ "messageHandlers": [
+ {
+ "messageType": "export-data",
+ "pageScope": true,
+ "script": "\tutils.downloadCSV(self, \"Lane Status\")",
+ "sessionScope": false,
+ "viewScope": false
+ }
+ ]
+ },
+ "type": "ia.display.table"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/01d66e4c21b2de528f75f2acf8db420845bf639833006fe5177c216aa6c8e43d b/.resources/01d66e4c21b2de528f75f2acf8db420845bf639833006fe5177c216aa6c8e43d
new file mode 100644
index 00000000..a698d92e
--- /dev/null
+++ b/.resources/01d66e4c21b2de528f75f2acf8db420845bf639833006fe5177c216aa6c8e43d
@@ -0,0 +1,10031 @@
+{
+ "custom": {},
+ "params": {},
+ "props": {
+ "defaultSize": {
+ "height": 1080,
+ "width": 1920
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "children": [
+ {
+ "meta": {
+ "name": "MCM02"
+ },
+ "position": {
+ "grow": 1
+ },
+ "propConfig": {
+ "props.source": {
+ "binding": {
+ "config": {
+ "expression": "\"http://127.0.0.1:5500/MCM02.svg?var\" + toMillis(now(1000))"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "fit": {
+ "mode": "fill"
+ }
+ },
+ "type": "ia.display.image"
+ }
+ ],
+ "meta": {
+ "name": "FlexContainer"
+ },
+ "position": {
+ "height": 1,
+ "width": 1
+ },
+ "props": {
+ "direction": "column",
+ "style": {
+ "overflow": "hidden",
+ "pointerEvents": "none"
+ }
+ },
+ "type": "ia.container.flex"
+ },
+ {
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "page": "/mcm01"
+ },
+ "scope": "C",
+ "type": "nav"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button"
+ },
+ "position": {
+ "height": 0.0333,
+ "width": 0.0646,
+ "x": 0.0177,
+ "y": 0.6167
+ },
+ "props": {
+ "primary": false,
+ "text": "MCM01 - FLUID INBOUND"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL1"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.1724,
+ "y": 0.4556
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL2"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.1891,
+ "y": 0.4389
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL3"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.1891,
+ "y": 0.463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL4"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.2099,
+ "y": 0.463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL5"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.2099,
+ "y": 0.4398
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL6"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.2307,
+ "y": 0.463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL7"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.2307,
+ "y": 0.4398
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL8"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.2516,
+ "y": 0.463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL9"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.2516,
+ "y": 0.4398
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL10"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.2724,
+ "y": 0.463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL11"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.2724,
+ "y": 0.4398
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL12"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.2901,
+ "y": 0.463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL13"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.2901,
+ "y": 0.4398
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL14"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.3073,
+ "y": 0.463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL15"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.3073,
+ "y": 0.4398
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL16"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.3281,
+ "y": 0.4713
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL17"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.3281,
+ "y": 0.45
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL18"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.3453,
+ "y": 0.4713
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL19"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.3453,
+ "y": 0.45
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL20"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.3661,
+ "y": 0.463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL21"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.3661,
+ "y": 0.4398
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL22"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.387,
+ "y": 0.463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL23"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.387,
+ "y": 0.4398
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL24"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.4078,
+ "y": 0.463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL25"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.4078,
+ "y": 0.4398
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL26"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.4286,
+ "y": 0.463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL27"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.4286,
+ "y": 0.4398
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL28"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.4531,
+ "y": 0.463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL29"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.4531,
+ "y": 0.4398
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL30"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.4724,
+ "y": 0.463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL31"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.4724,
+ "y": 0.4398
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL32"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.4932,
+ "y": 0.463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL33"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.4932,
+ "y": 0.4398
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL34"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.5141,
+ "y": 0.463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL35"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.5141,
+ "y": 0.4398
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL36"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.5349,
+ "y": 0.463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL37"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.5349,
+ "y": 0.4398
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL38"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.5521,
+ "y": 0.463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL39"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.5521,
+ "y": 0.4398
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL40"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.5698,
+ "y": 0.463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL41"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.5698,
+ "y": 0.4398
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL42"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.5906,
+ "y": 0.463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL43"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.5906,
+ "y": 0.4398
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL44"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.5906,
+ "y": 0.463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL45"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.5906,
+ "y": 0.4398
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL46"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.6115,
+ "y": 0.4713
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL47"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.6115,
+ "y": 0.45
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL48"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.6323,
+ "y": 0.4713
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL49"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.6323,
+ "y": 0.45
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL50"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.649,
+ "y": 0.463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL51"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.649,
+ "y": 0.4398
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL52"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.6661,
+ "y": 0.463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL53"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.6661,
+ "y": 0.4398
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL54"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.687,
+ "y": 0.463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL55"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.687,
+ "y": 0.4398
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL56"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.7078,
+ "y": 0.463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL57"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.7078,
+ "y": 0.4398
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL58"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.7286,
+ "y": 0.463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL59"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.7286,
+ "y": 0.4398
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL60"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.7495,
+ "y": 0.463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL61"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.7495,
+ "y": 0.4398
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL62"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.7703,
+ "y": 0.463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL63"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.7703,
+ "y": 0.4398
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL64"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.7911,
+ "y": 0.463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL65"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.7911,
+ "y": 0.4398
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL66"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.812,
+ "y": 0.463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL67"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.812,
+ "y": 0.4398
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL68"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.8328,
+ "y": 0.463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL69"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.8328,
+ "y": 0.4398
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL70"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.8536,
+ "y": 0.463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL71"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.8536,
+ "y": 0.4398
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL72"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.8536,
+ "y": 0.463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL73"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.8536,
+ "y": 0.4398
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL74"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.8703,
+ "y": 0.4398
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL75"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.8703,
+ "y": 0.463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL77"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.887,
+ "y": 0.463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL78"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.9036,
+ "y": 0.4537
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SOL76"
+ },
+ "position": {
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.887,
+ "y": 0.4389
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Solenoid"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_12_EPC2"
+ },
+ "position": {
+ "height": 0.0278,
+ "width": 0.0156,
+ "x": 0.0109,
+ "y": 0.5028
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/EPC"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_12_EPC1"
+ },
+ "position": {
+ "height": 0.0278,
+ "width": 0.0156,
+ "x": 0.0099,
+ "y": 0.3926
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/EPC"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_1_FIOM1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.1906,
+ "y": 0.5065
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Field_IO"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_14_SIO1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.137,
+ "y": 0.3787
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Safety_IO"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SS1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.9281,
+ "y": 0.4019
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "System/MCM01/Station/SSPB/UL6_1_SS1",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/SS_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH101_PRX1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.2146,
+ "y": 0.3944
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "Camera"
+ },
+ "position": {
+ "height": 0.0278,
+ "width": 0.0208,
+ "x": 0.9688,
+ "y": 0.5074
+ },
+ "props": {
+ "params": {
+ "directionLeft": true,
+ "forceFaultStatus": null,
+ "forceRunningStatus": null,
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Camera"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_12_JR2"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.0792,
+ "y": 0.5
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_12_JR1"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.0802,
+ "y": 0.3991
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_12_VFD1"
+ },
+ "position": {
+ "height": 0.0241,
+ "width": 0.0135,
+ "x": 0.063,
+ "y": 0.3981
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/VFD"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_13_VFD1"
+ },
+ "position": {
+ "height": 0.0241,
+ "width": 0.0135,
+ "x": 0.1068,
+ "y": 0.3981
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/VFD"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_14_VFD1"
+ },
+ "position": {
+ "height": 0.0241,
+ "width": 0.0135,
+ "x": 0.1411,
+ "y": 0.3981
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/VFD"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_13_SIO1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.1031,
+ "y": 0.3787
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Safety_IO"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_12_SIO1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.0417,
+ "y": 0.4
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Safety_IO"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_12_BCN1_A"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.0818,
+ "y": 0.3778
+ },
+ "props": {
+ "params": {
+ "name": "amber",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_13_ENW1"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.1057,
+ "y": 0.4546
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Encoder"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_14_ENW1"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.137,
+ "y": 0.4546
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Encoder"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_1_FIOM2"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.2635,
+ "y": 0.5065
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Field_IO"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_1_FIOM3"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.3172,
+ "y": 0.5065
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Field_IO"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_1_FIOM5"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.5078,
+ "y": 0.5278
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Field_IO"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_1_FIOM4"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.4,
+ "y": 0.525
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Field_IO"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_1_FIOM6"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.5797,
+ "y": 0.5269
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Field_IO"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_1_FIOM7"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.6552,
+ "y": 0.5259
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Field_IO"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_1_FIOM8"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.7302,
+ "y": 0.5259
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Field_IO"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_1_FIOM9"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.8021,
+ "y": 0.525
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Field_IO"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH101_EN1"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.2323,
+ "y": 0.2296
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH103_EN1"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.2698,
+ "y": 0.2296
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH105_EN1"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.3057,
+ "y": 0.2296
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH107_EN1"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.3688,
+ "y": 0.2296
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH109_EN1"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.4063,
+ "y": 0.2296
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH111_EN1"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.4432,
+ "y": 0.2296
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH113_EN1"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.5177,
+ "y": 0.2296
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH115_EN1"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.5521,
+ "y": 0.2296
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH117_EN1"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.5896,
+ "y": 0.2296
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH119_EN1"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.6589,
+ "y": 0.2296
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH121_EN1"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.6958,
+ "y": 0.2296
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH123_EN1"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.7349,
+ "y": 0.2296
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH125_EN1"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.8036,
+ "y": 0.2296
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH127_EN1"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.8443,
+ "y": 0.2296
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH129_EN1"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.8818,
+ "y": 0.2296
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH130_EN1"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.8812,
+ "y": 0.6722
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH128_EN1"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.8422,
+ "y": 0.6722
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH126_EN1"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.8057,
+ "y": 0.6722
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH124_EN1"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.7297,
+ "y": 0.6722
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH122_EN1"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.6885,
+ "y": 0.6722
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH120_EN1"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.6542,
+ "y": 0.6722
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH118_EN1"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.5813,
+ "y": 0.6722
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH116_EN1"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.549,
+ "y": 0.6722
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH114_EN1"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.5115,
+ "y": 0.6722
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH112_EN1"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.4437,
+ "y": 0.6722
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH110_EN1"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.4068,
+ "y": 0.6722
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH108_EN1"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.3682,
+ "y": 0.6722
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH108_BNC1_G"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.3589,
+ "y": 0.6009
+ },
+ "props": {
+ "params": {
+ "name": "green",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH108_BNC1_A"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.3589,
+ "y": 0.5843
+ },
+ "props": {
+ "params": {
+ "name": "amber",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH108_BNC1_B"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.3589,
+ "y": 0.5676
+ },
+ "props": {
+ "params": {
+ "name": "blue",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH110_BNC1_G"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.3964,
+ "y": 0.5954
+ },
+ "props": {
+ "params": {
+ "name": "green",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH110_BNC1_B"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.3964,
+ "y": 0.5769
+ },
+ "props": {
+ "params": {
+ "name": "blue",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH112_BNC1_G"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.4333,
+ "y": 0.5972
+ },
+ "props": {
+ "params": {
+ "name": "green",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH112_BNC1_B"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.4333,
+ "y": 0.5787
+ },
+ "props": {
+ "params": {
+ "name": "blue",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH114_BNC1_G"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.5021,
+ "y": 0.6
+ },
+ "props": {
+ "params": {
+ "name": "green",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH114_BNC1_A"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.5021,
+ "y": 0.5833
+ },
+ "props": {
+ "params": {
+ "name": "amber",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH114_BNC1_B"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.5021,
+ "y": 0.5667
+ },
+ "props": {
+ "params": {
+ "name": "blue",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH116_BNC1_G"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.5401,
+ "y": 0.5981
+ },
+ "props": {
+ "params": {
+ "name": "green",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH116_BNC1_B"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.5401,
+ "y": 0.5796
+ },
+ "props": {
+ "params": {
+ "name": "blue",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH118_BNC1_G"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.5771,
+ "y": 0.5963
+ },
+ "props": {
+ "params": {
+ "name": "green",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH118_BNC1_B"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.5771,
+ "y": 0.5787
+ },
+ "props": {
+ "params": {
+ "name": "blue",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH120_BNC1_B"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.6484,
+ "y": 0.5667
+ },
+ "props": {
+ "params": {
+ "name": "blue",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH120_BNC1_A"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.6484,
+ "y": 0.5833
+ },
+ "props": {
+ "params": {
+ "name": "amber",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH120_BNC1_G"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.6484,
+ "y": 0.6
+ },
+ "props": {
+ "params": {
+ "name": "green",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH122_BNC1_B"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.6859,
+ "y": 0.5806
+ },
+ "props": {
+ "params": {
+ "name": "blue",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH122_BNC1_G"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.6859,
+ "y": 0.5972
+ },
+ "props": {
+ "params": {
+ "name": "green",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH124_BNC1_B"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.724,
+ "y": 0.5796
+ },
+ "props": {
+ "params": {
+ "name": "blue",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH124_BNC1_G"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.724,
+ "y": 0.5972
+ },
+ "props": {
+ "params": {
+ "name": "green",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH126_BNC1_B"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.7948,
+ "y": 0.563
+ },
+ "props": {
+ "params": {
+ "name": "blue",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH126_BNC1_A"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.7948,
+ "y": 0.5796
+ },
+ "props": {
+ "params": {
+ "name": "amber",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH126_BNC1_G"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.7948,
+ "y": 0.5963
+ },
+ "props": {
+ "params": {
+ "name": "green",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH128_BNC1_B"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.8318,
+ "y": 0.5787
+ },
+ "props": {
+ "params": {
+ "name": "blue",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH128_BNC1_G"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.8318,
+ "y": 0.5981
+ },
+ "props": {
+ "params": {
+ "name": "green",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH130_BNC1_B"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.8693,
+ "y": 0.5759
+ },
+ "props": {
+ "params": {
+ "name": "blue",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH130_BNC1_G"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.8693,
+ "y": 0.5954
+ },
+ "props": {
+ "params": {
+ "name": "green",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH101_BNC1_B"
+ },
+ "position": {
+ "height": 0.0176,
+ "width": 0.0104,
+ "x": 0.2146,
+ "y": 0.3083
+ },
+ "props": {
+ "params": {
+ "name": "blue",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH101_BNC1_A"
+ },
+ "position": {
+ "height": 0.0176,
+ "width": 0.0104,
+ "x": 0.2146,
+ "y": 0.3242
+ },
+ "props": {
+ "params": {
+ "name": "amber",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH103_BNC1_B"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.2536,
+ "y": 0.3157
+ },
+ "props": {
+ "params": {
+ "name": "blue",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH101_BNC1_G"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.2146,
+ "y": 0.338
+ },
+ "props": {
+ "params": {
+ "name": "green",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH103_BNC1_G"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.2536,
+ "y": 0.3343
+ },
+ "props": {
+ "params": {
+ "name": "green",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH105_BNC1_G"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.2911,
+ "y": 0.3315
+ },
+ "props": {
+ "params": {
+ "name": "green",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH105_BNC1_B"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.2911,
+ "y": 0.313
+ },
+ "props": {
+ "params": {
+ "name": "blue",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH107_BNC1_B"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.3589,
+ "y": 0.3065
+ },
+ "props": {
+ "params": {
+ "name": "blue",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH107_BNC1_A"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.3589,
+ "y": 0.3231
+ },
+ "props": {
+ "params": {
+ "name": "amber",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH109_BNC1_B"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.3964,
+ "y": 0.3139
+ },
+ "props": {
+ "params": {
+ "name": "blue",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH107_BNC1_G"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.3589,
+ "y": 0.3398
+ },
+ "props": {
+ "params": {
+ "name": "green",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH109_BNC1_G"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.3964,
+ "y": 0.3324
+ },
+ "props": {
+ "params": {
+ "name": "green",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH111_BNC1_G"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.4333,
+ "y": 0.3352
+ },
+ "props": {
+ "params": {
+ "name": "green",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH111_BNC1_B"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.4333,
+ "y": 0.3167
+ },
+ "props": {
+ "params": {
+ "name": "blue",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH113_BNC1_B"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.5,
+ "y": 0.3065
+ },
+ "props": {
+ "params": {
+ "name": "blue",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH113_BNC1_A"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.5,
+ "y": 0.3231
+ },
+ "props": {
+ "params": {
+ "name": "amber",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH115_BNC1_B"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.5401,
+ "y": 0.3157
+ },
+ "props": {
+ "params": {
+ "name": "blue",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH113_BNC1_G"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.5,
+ "y": 0.3398
+ },
+ "props": {
+ "params": {
+ "name": "green",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH115_BNC1_G"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.5401,
+ "y": 0.3343
+ },
+ "props": {
+ "params": {
+ "name": "green",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH117_BNC1_G"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.5771,
+ "y": 0.3343
+ },
+ "props": {
+ "params": {
+ "name": "green",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH117_BNC1_B"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.5771,
+ "y": 0.3157
+ },
+ "props": {
+ "params": {
+ "name": "blue",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH119_BNC1_B"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.6484,
+ "y": 0.3074
+ },
+ "props": {
+ "params": {
+ "name": "blue",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH119_BNC1_A"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.6484,
+ "y": 0.3241
+ },
+ "props": {
+ "params": {
+ "name": "amber",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH121_BNC1_B"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.6865,
+ "y": 0.3176
+ },
+ "props": {
+ "params": {
+ "name": "blue",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH119_BNC1_G"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.6484,
+ "y": 0.3407
+ },
+ "props": {
+ "params": {
+ "name": "green",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH121_BNC1_G"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.6865,
+ "y": 0.3361
+ },
+ "props": {
+ "params": {
+ "name": "green",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH123_BNC1_G"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.724,
+ "y": 0.3361
+ },
+ "props": {
+ "params": {
+ "name": "green",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH123_BNC1_B"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.724,
+ "y": 0.3176
+ },
+ "props": {
+ "params": {
+ "name": "blue",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH125_BNC1_B"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.7937,
+ "y": 0.3074
+ },
+ "props": {
+ "params": {
+ "name": "blue",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH125_BNC1_A"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.7937,
+ "y": 0.3241
+ },
+ "props": {
+ "params": {
+ "name": "amber",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH127_BNC1_B"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.8333,
+ "y": 0.3222
+ },
+ "props": {
+ "params": {
+ "name": "blue",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH125_BNC1_G"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.7937,
+ "y": 0.3407
+ },
+ "props": {
+ "params": {
+ "name": "green",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH127_BNC1_G"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.8333,
+ "y": 0.3407
+ },
+ "props": {
+ "params": {
+ "name": "green",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH129_BNC1_G"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.8708,
+ "y": 0.3407
+ },
+ "props": {
+ "params": {
+ "name": "green",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH129_BNC1_B"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.8708,
+ "y": 0.3222
+ },
+ "props": {
+ "params": {
+ "name": "blue",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_EPC1"
+ },
+ "position": {
+ "height": 0.0278,
+ "width": 0.0156,
+ "x": 0.9091,
+ "y": 0.3968
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/EPC"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_EPC2"
+ },
+ "position": {
+ "height": 0.0278,
+ "width": 0.0156,
+ "x": 0.9096,
+ "y": 0.5023
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/EPC"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "Beacon_63"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.9115,
+ "y": 0.3731
+ },
+ "props": {
+ "params": {
+ "name": "amber",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_BNC1_R"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.9115,
+ "y": 0.3565
+ },
+ "props": {
+ "params": {
+ "name": "red",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_BNC1_H"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.9115,
+ "y": 0.3398
+ },
+ "props": {
+ "params": {
+ "name": "horn",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_1_JR1"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.1927,
+ "y": 0.3824
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_1_JR3"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.3391,
+ "y": 0.3852
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_1_JR5"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.475,
+ "y": 0.388
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_1_JR7"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.6208,
+ "y": 0.3907
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_1_JR9"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.7698,
+ "y": 0.3907
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_1_JR4"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.3422,
+ "y": 0.5157
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_1_JR6"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.4854,
+ "y": 0.5139
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_1_JR8"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.6312,
+ "y": 0.513
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_1_JR10"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.7766,
+ "y": 0.5111
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/JR_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH103_FIOM1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.2625,
+ "y": 0.3722
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Field_IO"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH109_FIOM1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.4005,
+ "y": 0.3722
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Field_IO"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH115_FIOM1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.5432,
+ "y": 0.3722
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Field_IO"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH121_FIOM1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.6542,
+ "y": 0.3741
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Field_IO"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH127_FIOM1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.837,
+ "y": 0.3741
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Field_IO"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_1_FIOM10"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.8698,
+ "y": 0.525
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Field_IO"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_1_LRPE1"
+ },
+ "position": {
+ "height": 0.0315,
+ "width": 0.1307,
+ "x": 0.2018,
+ "y": 0.4046
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_1_LRPE3"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.1307,
+ "x": 0.345,
+ "y": 0.4009
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_1_LRPE5"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.1307,
+ "x": 0.4898,
+ "y": 0.4009
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_1_LRPE7"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.1307,
+ "x": 0.6357,
+ "y": 0.4009
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_1_LRPE9"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.1307,
+ "x": 0.7815,
+ "y": 0.4009
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_1_LRPE4"
+ },
+ "position": {
+ "height": 0.0296,
+ "width": 0.1307,
+ "x": 0.3476,
+ "y": 0.4852
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_1_LRPE6"
+ },
+ "position": {
+ "height": 0.0306,
+ "width": 0.1323,
+ "x": 0.4893,
+ "y": 0.4852
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_1_LRPE8"
+ },
+ "position": {
+ "height": 0.0324,
+ "width": 0.1323,
+ "x": 0.6331,
+ "y": 0.4852
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_1_LRPE10"
+ },
+ "position": {
+ "height": 0.0306,
+ "width": 0.1349,
+ "x": 0.7815,
+ "y": 0.4833
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH101_PE1"
+ },
+ "position": {
+ "height": 0.0352,
+ "width": 0.0573,
+ "x": 0.2026,
+ "y": 0.3454
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH103_PE1"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.2391,
+ "y": 0.3435
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "Photoeye_1"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.2781,
+ "y": 0.3435
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH105_PE1"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.2781,
+ "y": 0.3435
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH107_PE1"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.3432,
+ "y": 0.3435
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH111_PE1"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.4188,
+ "y": 0.3435
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH109_PE1"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.3797,
+ "y": 0.3435
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH113_PE1"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.4839,
+ "y": 0.3435
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH117_PE1"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.5594,
+ "y": 0.3435
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH115_PE1"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.5203,
+ "y": 0.3435
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH119_PE1"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.6318,
+ "y": 0.3435
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH121_PE1"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.6682,
+ "y": 0.3435
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH123_PE1"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.7073,
+ "y": 0.3435
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH125_PE1"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.7766,
+ "y": 0.3435
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH127_PE1"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.813,
+ "y": 0.3435
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH129_PE1"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.8521,
+ "y": 0.3435
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH120_PE1"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.6323,
+ "y": 0.5389
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH122_PE1"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.6682,
+ "y": 0.5389
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH124_PE1"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.7073,
+ "y": 0.5389
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH114_PE1"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.4854,
+ "y": 0.5389
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH116_PE1"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.5219,
+ "y": 0.5389
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH118_PE1"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.5604,
+ "y": 0.5389
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH108_PE1"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.3406,
+ "y": 0.5389
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH110_PE1"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.3771,
+ "y": 0.5389
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH112_PE1"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.4161,
+ "y": 0.5389
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH126_PE1"
+ },
+ "position": {
+ "height": 0.038,
+ "width": 0.0557,
+ "x": 0.7797,
+ "y": 0.5389
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH128_PE1"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.8146,
+ "y": 0.5389
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH130_PE1"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.8536,
+ "y": 0.5389
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "Camera_0"
+ },
+ "position": {
+ "height": 0.0278,
+ "width": 0.0208,
+ "x": 0.9688,
+ "y": 0.5074
+ },
+ "props": {
+ "params": {
+ "directionLeft": true,
+ "forceFaultStatus": null,
+ "forceRunningStatus": null,
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Camera"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SS2"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.9297,
+ "y": 0.5046
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "System/MCM01/Station/SSPB/UL6_1_SS1",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/SS_Button"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_SIO1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.9102,
+ "y": 0.5333
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Safety_IO"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_VFD1"
+ },
+ "position": {
+ "height": 0.0241,
+ "width": 0.0135,
+ "x": 0.9104,
+ "y": 0.5546
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/VFD"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH103_PRX1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.2542,
+ "y": 0.3944
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_Ch105_PRX1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.2911,
+ "y": 0.3944
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_Ch107_PRX1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.3599,
+ "y": 0.3944
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_Ch109_PRX1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.3964,
+ "y": 0.3944
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH111_PRX1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.4328,
+ "y": 0.3944
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH113_PRX1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.501,
+ "y": 0.3944
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH115_PRX1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.5401,
+ "y": 0.3944
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH117_PRX1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.5781,
+ "y": 0.3944
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH119_PRX1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.6495,
+ "y": 0.3944
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH121_PRX1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.6875,
+ "y": 0.3944
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH123_PRX1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.725,
+ "y": 0.3944
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH125_PRX1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.7943,
+ "y": 0.3944
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH127_PRX1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.8323,
+ "y": 0.3944
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH129_PRX1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.8698,
+ "y": 0.3944
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH108_PRX1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.3594,
+ "y": 0.5037
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH110_PRX1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.3958,
+ "y": 0.5037
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH112_PRX1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.4328,
+ "y": 0.5037
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH114_PRX1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.5021,
+ "y": 0.5046
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH116_PRX1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.5401,
+ "y": 0.5046
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH118_PRX1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.576,
+ "y": 0.5046
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH120_PRX1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.6495,
+ "y": 0.5037
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH122_PRX1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.6859,
+ "y": 0.5037
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH124_PRX1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.724,
+ "y": 0.5037
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH126_PRX1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.7958,
+ "y": 0.5037
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH128_PRX1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.8339,
+ "y": 0.5037
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH130_PRX1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.8703,
+ "y": 0.5037
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "MCM02"
+ },
+ "position": {
+ "height": 0.0278,
+ "width": 0.0219,
+ "x": 0.2437,
+ "y": 0.5519
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/MCM"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_DPM1"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.0156,
+ "x": 0.3363,
+ "y": 0.4278
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/DPM"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NCS1_1_DPM2"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.0156,
+ "x": 0.6222,
+ "y": 0.4278
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/DPM"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH110_FIOM1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.3984,
+ "y": 0.5574
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Field_IO"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH116_FIOM1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.5432,
+ "y": 0.5574
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Field_IO"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH122_FIOM1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.6896,
+ "y": 0.5574
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Field_IO"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH128_FIOM1"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.8349,
+ "y": 0.5574
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Field_IO"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH101_PRX2"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.2307,
+ "y": 0.3944
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH103_PRX2"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.2703,
+ "y": 0.3944
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_Ch105_PRX2"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.3073,
+ "y": 0.3944
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_Ch107_PRX2"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.376,
+ "y": 0.3944
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_Ch109_PRX2"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.4125,
+ "y": 0.3944
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH111_PRX2"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.449,
+ "y": 0.3944
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH113_PRX2"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.5172,
+ "y": 0.3944
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH115_PRX2"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.5563,
+ "y": 0.3944
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH117_PRX2"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.5943,
+ "y": 0.3944
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH119_PRX2"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.6656,
+ "y": 0.3944
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH121_PRX2"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.7036,
+ "y": 0.3944
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH123_PRX2"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.7411,
+ "y": 0.3944
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH125_PRX2"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.8104,
+ "y": 0.3944
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH127_PRX2"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.8484,
+ "y": 0.3944
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH129_PRX2"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.8859,
+ "y": 0.3944
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH108_PRX2"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.3755,
+ "y": 0.5037
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH110_PRX2"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.412,
+ "y": 0.5037
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH112_PRX2"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.449,
+ "y": 0.5037
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH114_PRX2"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.5182,
+ "y": 0.5046
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH116_PRX2"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.5563,
+ "y": 0.5046
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH118_PRX2"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.5922,
+ "y": 0.5046
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH120_PRX2"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.6656,
+ "y": 0.5037
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH122_PRX2"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.7021,
+ "y": 0.5037
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH124_PRX2"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.7401,
+ "y": 0.5037
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH126_PRX2"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.812,
+ "y": 0.5037
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH128_PRX2"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.85,
+ "y": 0.5037
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH130_PRX2"
+ },
+ "position": {
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.8865,
+ "y": 0.5037
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/ProxSwitch"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH101_PE2"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.2026,
+ "y": 0.2778
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH103_PE2"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.2391,
+ "y": 0.2778
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH105_PE2"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.2781,
+ "y": 0.2778
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH107_PE2"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.3432,
+ "y": 0.2778
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH109_PE2"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.3797,
+ "y": 0.2778
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH111_PE2"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.4188,
+ "y": 0.2778
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH113_PE2"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.4839,
+ "y": 0.2778
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH115_PE2"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.5203,
+ "y": 0.2778
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH117_PE2"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.5594,
+ "y": 0.2778
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH119_PE2"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.6318,
+ "y": 0.2778
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH121_PE2"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.6682,
+ "y": 0.2778
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH123_PE2"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.7073,
+ "y": 0.2778
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH125_PE2"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.7766,
+ "y": 0.2778
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH127_PE2"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.813,
+ "y": 0.2778
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH129_PE2"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.8521,
+ "y": 0.2778
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH108_PE2"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.3406,
+ "y": 0.6083
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH110_PE2"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.3771,
+ "y": 0.6083
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH112_PE2"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.4161,
+ "y": 0.6083
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH114_PE2"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.4854,
+ "y": 0.6083
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH116_PE2"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.5219,
+ "y": 0.6083
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH118_PE2"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.5604,
+ "y": 0.6083
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH120_PE2"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.6323,
+ "y": 0.6083
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH122_PE2"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.6682,
+ "y": 0.6083
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH124_PE2"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.7073,
+ "y": 0.6083
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH126_PE2"
+ },
+ "position": {
+ "height": 0.038,
+ "width": 0.0557,
+ "x": 0.7797,
+ "y": 0.6083
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH128_PE2"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.8146,
+ "y": 0.6083
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_CH130_PE2"
+ },
+ "position": {
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.8536,
+ "y": 0.6083
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long (1)"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "S03_1_LRPE11"
+ },
+ "position": {
+ "height": 0.0306,
+ "width": 0.1349,
+ "x": 0.7815,
+ "y": 0.4833
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Photoeye_Long"
+ },
+ "type": "ia.display.view"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "mode": "percent",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/08381443ad380f515be7f2569d998f874aab8701beb5aafc2766b467934c1001 b/.resources/08381443ad380f515be7f2569d998f874aab8701beb5aafc2766b467934c1001
new file mode 100644
index 00000000..70b24ca8
--- /dev/null
+++ b/.resources/08381443ad380f515be7f2569d998f874aab8701beb5aafc2766b467934c1001
@@ -0,0 +1,289 @@
+{
+ "custom": {
+ "disconnected": true,
+ "plc": "",
+ "searchId": "value",
+ "state": 1,
+ "string": "Running"
+ },
+ "params": {
+ "name": "amber",
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "propConfig": {
+ "custom.disconnected": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "0": "{view.params.tagProps[0]}",
+ "fc": "{session.custom.fc}"
+ },
+ "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE"
+ },
+ "transforms": [
+ {
+ "expression": "!isGood({value})",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ },
+ "persistent": true
+ },
+ "custom.plc": {
+ "binding": {
+ "config": {
+ "path": "view.params.tagProps[0]"
+ },
+ "transforms": [
+ {
+ "expression": "split({value}, \"/\")[0]",
+ "type": "expression"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.searchId": {
+ "binding": {
+ "config": {
+ "path": "session.custom.searchId"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.state": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "0": "{view.params.tagProps[0]}",
+ "fc": "{session.custom.fc}"
+ },
+ "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value},{view.params.forceFaultStatus},0)",
+ "type": "expression"
+ },
+ {
+ "fallback": null,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": 1
+ },
+ {
+ "input": 0,
+ "output": 0
+ },
+ {
+ "input": 2,
+ "output": 2
+ },
+ {
+ "input": 3,
+ "output": 3
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ },
+ "persistent": true
+ },
+ "custom.string": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "fallback": "Starting",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": "Running"
+ },
+ {
+ "input": 2,
+ "output": "EStop or Faulted"
+ },
+ {
+ "input": 3,
+ "output": "Gridlock Prevention"
+ },
+ {
+ "input": 4,
+ "output": "Full"
+ },
+ {
+ "input": 5,
+ "output": "Jammed"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "params.name": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.tagProps": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 20,
+ "width": 20
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Label"
+ },
+ "position": {
+ "height": 1,
+ "width": 1
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "expression": "substring({view.params.name}, 0, 1)"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "textStyle": {
+ "fontSize": "20px",
+ "textAlign": "center",
+ "textTransform": "uppercase"
+ }
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tsystem.perspective.openDock(\u0027Docked-East-JR\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})"
+ },
+ "scope": "G",
+ "type": "script"
+ },
+ "onMouseEnter": {
+ "config": {
+ "script": "\tfrom time import sleep\n\t\n\talarm \u003d []\n\tmessage \u003d None\n\t\n\tsleep(0.5)\n\t\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "root",
+ "tooltip": {
+ "enabled": true
+ }
+ },
+ "propConfig": {
+ "meta.tooltip.text": {
+ "binding": {
+ "config": {
+ "expression": "\"Source Id: \" + {view.params.tagProps[0]} + \", Status: \" + {view.custom.string}\n"
+ },
+ "type": "expr"
+ }
+ },
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "session.custom.alarm_filter.show_beacons"
+ },
+ "type": "property"
+ }
+ },
+ "props.style.backgroundColor": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "fallback": "#808080",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": "#00FF00"
+ },
+ {
+ "input": 2,
+ "output": "#FF0000"
+ },
+ {
+ "input": 3,
+ "output": "#FF00FF"
+ },
+ {
+ "input": 4,
+ "output": "#0000D9"
+ },
+ {
+ "input": 5,
+ "output": "#FF8C00"
+ }
+ ],
+ "outputType": "color",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "mode": "percent",
+ "style": {
+ "borderStyle": "solid",
+ "cursor": "pointer",
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/086a6effd72f2eaf808a75695349c003328391ed923af2573be296fdf63304aa b/.resources/086a6effd72f2eaf808a75695349c003328391ed923af2573be296fdf63304aa
new file mode 100644
index 00000000..7146a086
--- /dev/null
+++ b/.resources/086a6effd72f2eaf808a75695349c003328391ed923af2573be296fdf63304aa
@@ -0,0 +1,3 @@
+SELECT DISTINCT sorter
+FROM package_history
+ORDER BY sorter ASC;
\ No newline at end of file
diff --git a/.resources/0ad8358a46168e951108455cdf8c94a398d124d5416513117ace4498c1a56947 b/.resources/0ad8358a46168e951108455cdf8c94a398d124d5416513117ace4498c1a56947
new file mode 100644
index 00000000..d934726c
--- /dev/null
+++ b/.resources/0ad8358a46168e951108455cdf8c94a398d124d5416513117ace4498c1a56947
@@ -0,0 +1,46 @@
+WITH SORTERS AS (
+ SELECT
+ DATE_FORMAT(MIN(s04_timestamp), "%Y-%m-%d %H:00") AS start_timestamp,
+ CONCAT("H",
+ CAST(
+ TIMESTAMPDIFF(
+ HOUR,
+ DATE_FORMAT(MIN(s04_timestamp), "%Y-%m-%d %H:00:00"),
+ DATE_FORMAT(LEAST(CURRENT_TIMESTAMP(), :endDate), "%Y-%m-%d %H:00:00")
+ ) AS CHAR
+ )
+ ) AS hour,
+ COUNT(*) AS total,
+ SUM(sort_code="Success") AS success,
+ SUM(sort_code IN ("Dest Invalid", "Dest None", "Underutilized")) AS awcs,
+ SUM(sort_code IN ("Dest Disabled", "Dest Full", "Dim Error", "Unexpected", "Weight Err")) AS operational,
+ SUM(sort_code IN ("Dest Fault", "Div Fail", "Gap Err", "Lost", "Rate High", "Track Err", "Unknown", "Unsafe")) AS machine,
+ SUM(sort_code IN ("No Read", "No Code", "Multi Label")) AS scanner
+ FROM package_history
+ WHERE s04_timestamp BETWEEN :startDate AND :endDate
+ AND sorter=:sorter
+ GROUP BY DATE_FORMAT(s04_timestamp, "%Y-%m-%d %H:00")
+)
+SELECT
+ start_timestamp AS time,
+ hour,
+ /* Counts: */
+ success AS success_count,
+ awcs AS awcs_issues_count,
+ operational AS operational_issues_count,
+ machine AS machine_issues_count,
+ scanner AS scanner_issues_count,
+ /* PPH: */
+ success AS success_pph,
+ awcs AS awcs_issues_pph,
+ operational AS operational_issues_pph,
+ machine AS machine_issues_pph,
+ scanner AS scanner_issues_pph,
+ /* Percents: */
+ ROUND(success/total, 4) AS success_percent,
+ ROUND(awcs/total, 4) AS awcs_issues_percent,
+ ROUND(operational/total, 4) AS operational_issues_percent,
+ ROUND(machine/total, 4) AS machine_issues_percent,
+ ROUND(scanner/total, 4) AS scanner_issues_percent
+FROM SORTERS
+ORDER BY start_timestamp;
\ No newline at end of file
diff --git a/.resources/0af5e1f2e43aa7be3ef3b2cd809c0ff97d6fad94dc8004656fc2d0106ee6e801 b/.resources/0af5e1f2e43aa7be3ef3b2cd809c0ff97d6fad94dc8004656fc2d0106ee6e801
new file mode 100644
index 00000000..4b2e1414
--- /dev/null
+++ b/.resources/0af5e1f2e43aa7be3ef3b2cd809c0ff97d6fad94dc8004656fc2d0106ee6e801
@@ -0,0 +1,393 @@
+{
+ "custom": {},
+ "params": {
+ "enableTooltip": true,
+ "label": null,
+ "tagPath": "",
+ "tagPathControl": "",
+ "view": ""
+ },
+ "propConfig": {
+ "params.enableTooltip": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.label": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.tagPath": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.tagPathControl": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.view": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 40,
+ "width": 135
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tself.parent.openWindow()"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Status"
+ },
+ "position": {
+ "height": "100%",
+ "width": "100%"
+ },
+ "propConfig": {
+ "props.style.backgroundColor": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}.jsonValues"
+ },
+ "transforms": [
+ {
+ "expression": "try(\r\n\tif(jsonGet({value}, \"Estop_Active\") \u0026\u0026 {[default]Gateway/ToggleTag},\r\n\t\t\"#F00\",\t\t// Estop\r\n\t\tif(jsonGet({value}, \"bStarted\"),\r\n\t\t\t\"#0F0\",\t// Running\r\n\t\t\t\"#AAA\"\t// Stopped\r\n\t\t)\r\n\t),\r\n\t\"#808080\" // Unknown\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": 1
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tself.parent.openWindow()"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Text"
+ },
+ "position": {
+ "height": "calc(100% - 10px)",
+ "width": "calc(100% - 10px)",
+ "x": 5,
+ "y": 5
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.LabelFull"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({view.params.label}, {value}, \"Unknown\")",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#FFF",
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": 1,
+ "fontSize": "12px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "paddingLeft": "5px",
+ "textOverflow": "ellipsis",
+ "textTransform": "uppercase",
+ "user-select": "none",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tself.parent.openWindow()"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "TooltipOverlay"
+ },
+ "position": {
+ "height": "100%",
+ "width": "100%"
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "view.params.enableTooltip"
+ },
+ "type": "property"
+ }
+ },
+ "props.status.tooltip": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "expression": "if(isGood({value}),\r\n\tjsonGet({value}, \"tooltip\"),\r\n\t\"Tooltip not configured\"\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "status": {}
+ },
+ "type": "dex.display.tooltipoverlay"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\ttagPath \u003d self.view.params.tagPathControl\n\tif tagPath \u003c\u003e \"\":\n\t\ttags \u003d [tagPath + \"/SetStart\"]\n\t\tvalues \u003d [1]\n\t\tsystem.tag.writeAsync(tags, values)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Start"
+ },
+ "position": {
+ "height": 25,
+ "width": 25,
+ "x": "calc(100% - 60px)",
+ "y": "calc(50% - 12.5px)"
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPathControl": "{view.params.tagPathControl}"
+ },
+ "tagPath": "{tagPathControl}/SetStart"
+ },
+ "transforms": [
+ {
+ "expression": "isGood({value})",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.textStyle.color": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPathControl": "{view.params.tagPathControl}"
+ },
+ "tagPath": "{tagPathControl}/Alarms/bStarted"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, false)",
+ "type": "expression"
+ },
+ {
+ "fallback": "#888888",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "#32CD32"
+ }
+ ],
+ "outputType": "color",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "â–º",
+ "textStyle": {
+ "fontFamily": "Arial",
+ "fontSize": "14px"
+ }
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\ttagPath \u003d self.view.params.tagPathControl\n\tif tagPath \u003c\u003e \"\":\n\t\ttags \u003d [tagPath + \"/SetStop\"]\n\t\tvalues \u003d [1]\n\t\tsystem.tag.writeAsync(tags, values)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Stop"
+ },
+ "position": {
+ "height": 25,
+ "width": 25,
+ "x": "calc(100% - 32.5px)",
+ "y": "calc(50% - 12.5px)"
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPathControl": "{view.params.tagPathControl}"
+ },
+ "tagPath": "{tagPathControl}/SetStop"
+ },
+ "transforms": [
+ {
+ "expression": "isGood({value})",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.textStyle.color": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPathControl": "{view.params.tagPathControl}"
+ },
+ "tagPath": "{tagPathControl}/Alarms/bStarted"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, true)",
+ "type": "expression"
+ },
+ {
+ "fallback": "#888888",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": false,
+ "output": "#FF0000"
+ }
+ ],
+ "outputType": "color",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "â– ",
+ "textStyle": {
+ "fontFamily": "monospace",
+ "fontSize": "14px"
+ }
+ },
+ "type": "ia.input.button"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "cursor": "pointer"
+ }
+ },
+ "scripts": {
+ "customMethods": [
+ {
+ "name": "openWindow",
+ "params": [],
+ "script": "\tview \u003d self.view.params.view\n\tif view in [\"\", None]:\n\t\tview \u003d \"Windows/Graphics/\"+self.getChild(\"Text\").props.text.replace(\" \", \"_\")\n\t# Open window:\n\twindow \u003d \"Windows/GraphicsWrapper\"\n\tparams \u003d {\"view\": view}\n\tsystem.perspective.navigate(\"/\")\n\tsystem.perspective.navigate(view\u003dwindow, params\u003dparams)"
+ }
+ ],
+ "messageHandlers": []
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/0b0d00ed6ff37b82d0b9b46681a5edfc74084d02fb48f2b25262a050ff67c586 b/.resources/0b0d00ed6ff37b82d0b9b46681a5edfc74084d02fb48f2b25262a050ff67c586
new file mode 100644
index 00000000..ee4066a0
--- /dev/null
+++ b/.resources/0b0d00ed6ff37b82d0b9b46681a5edfc74084d02fb48f2b25262a050ff67c586
@@ -0,0 +1,327 @@
+{
+ "custom": {},
+ "params": {
+ "meta": {
+ "name": "S1-CH1"
+ },
+ "props": {
+ "config": {
+ "alwaysShowAll": true,
+ "isClickable": false,
+ "isRightOfSorter": false,
+ "mirror": false
+ },
+ "status": {
+ "tagPath": "[default]MCP03/S01/S01_CH01"
+ }
+ }
+ },
+ "propConfig": {
+ "params.meta": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.meta.name": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.config.alwaysShowAll": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.config.isRightOfSorter": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.config.mirror": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 349,
+ "width": 500
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "ChuteLabel"
+ },
+ "position": {
+ "height": 30,
+ "width": 100,
+ "x": 198,
+ "y": 298.8
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "path": "view.params.props.status.tagPath"
+ },
+ "transforms": [
+ {
+ "code": "\treturn utils.prettyName(value.split(\"/\")[-1])",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "textAlign": "center"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Chute"
+ },
+ "position": {
+ "height": 20,
+ "width": 60,
+ "x": 220,
+ "y": 195
+ },
+ "propConfig": {
+ "props.params": {
+ "binding": {
+ "config": {
+ "struct": {
+ "alwaysShowAll": true,
+ "isClickable": false,
+ "isRightOfSorter": "{view.params.props.config.isRightOfSorter}",
+ "mirror": "{view.params.props.config.mirror}",
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "waitOnAll": true
+ },
+ "type": "expr-struct"
+ }
+ }
+ },
+ "props": {
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "transform": "scale(3) rotate(90deg)"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\ttagPath \u003d self.view.params.props.status.tagPath\n\ttags \u003d [tagPath + \"/CH/SetEnable\"]\n\tvalues \u003d [1]\n\tsystem.tag.writeAsync(tags, values)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Enable"
+ },
+ "position": {
+ "height": 40,
+ "width": 120,
+ "x": 120,
+ "y": 20.3
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/CH/SetEnable"
+ },
+ "enabled": false,
+ "transforms": [
+ {
+ "expression": "isGood({value})",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.style.classes": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/CH/SetEnable"
+ },
+ "transforms": [
+ {
+ "fallback": "Buttons/Grey",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "Buttons/Green"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ },
+ {
+ "expression": "if(isGood({value}),\r\n\t{value},\r\n\t\"Buttons/Grey\"\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {},
+ "text": "Enable"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\ttagPath \u003d self.view.params.props.status.tagPath\n\ttags \u003d [tagPath + \"/CH/SetEnable\"]\n\tvalues \u003d [0]\n\tsystem.tag.writeAsync(tags, values)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Disable"
+ },
+ "position": {
+ "height": 40,
+ "width": 120,
+ "x": 260,
+ "y": 20.3
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/CH/SetEnable"
+ },
+ "enabled": false,
+ "transforms": [
+ {
+ "expression": "isGood({value})",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.style.classes": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/CH/SetEnable"
+ },
+ "transforms": [
+ {
+ "fallback": "Buttons/Grey",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": false,
+ "output": "Buttons/Red"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ },
+ {
+ "expression": "if(isGood({value}),\r\n\t{value},\r\n\t\"Buttons/Grey\"\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {},
+ "text": "Disable"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "ChuteLabel_0"
+ },
+ "position": {
+ "height": 35,
+ "width": 260,
+ "x": 120,
+ "y": 63
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/CH/StatusText"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ }
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "background-color": "#CFCFCF"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/0c85cabab848f164ec5916d87947a5b6aeb45687b70fcfa869c3c3b363bb4d36 b/.resources/0c85cabab848f164ec5916d87947a5b6aeb45687b70fcfa869c3c3b363bb4d36
new file mode 100644
index 00000000..d8fbcb47
Binary files /dev/null and b/.resources/0c85cabab848f164ec5916d87947a5b6aeb45687b70fcfa869c3c3b363bb4d36 differ
diff --git a/.resources/0d5e6d571ad9b699e26369135f1e0b0aa2c855318f6205a2382c8296c307a6e9 b/.resources/0d5e6d571ad9b699e26369135f1e0b0aa2c855318f6205a2382c8296c307a6e9
new file mode 100644
index 00000000..88063614
--- /dev/null
+++ b/.resources/0d5e6d571ad9b699e26369135f1e0b0aa2c855318f6205a2382c8296c307a6e9
@@ -0,0 +1,7 @@
+{
+ "base": {
+ "style": {
+ "color": "#FF0000"
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/0f529dd3b96ad8d11b38e1ee17111d89976750a3f44ad21352a708d2769be144 b/.resources/0f529dd3b96ad8d11b38e1ee17111d89976750a3f44ad21352a708d2769be144
new file mode 100644
index 00000000..3ae30422
--- /dev/null
+++ b/.resources/0f529dd3b96ad8d11b38e1ee17111d89976750a3f44ad21352a708d2769be144
@@ -0,0 +1,63 @@
+################################################################
+################################################################
+## Version: 1.0 / Author: Dillon Uzar
+##
+## DESC: For use in WCS Sorting Lane Lookup & Recording
+## WARN: Modifying code may cause system to function incorrectly
+################################################################
+################################################################
+
+import time
+
+#######################################################
+#######################################################
+#######################################################
+#### Constants
+#######################################################
+
+# Logger:
+LOG = system.util.logger("PE BreakCount Handler")
+
+# For inserting data into database:
+CONFIRM_INSERT_QUERY = "INSERT IGNORE INTO pe_history (lane_id,count) VALUES (?,?)"
+
+#######################################################
+#######################################################
+#######################################################
+#### Parsing Utils
+#######################################################
+
+def logTime(title, trackID, seconds):
+ millisec = round(seconds * 1000, 1)
+ if millisec > 4:
+ LOG.info("%s[ID=%s] took longer than expected (%sms to process)" % (title, trackID, millisec))
+
+#######################################################
+#######################################################
+#######################################################
+#### PLC Event Handling
+#######################################################
+
+def processBreak(laneID, count):
+ # This function handles confirm events, and logs the event in SQL
+ # Ensure ID is valid
+ if count > 0:
+ start_time = time.time()
+ # Log confirm event in SQL:
+ # Insert into Package History:
+ system.db.runPrepUpdate(CONFIRM_INSERT_QUERY, [laneID, count])
+ logTime("PE_BREAK[DB_INSERT]", laneID, time.time() - start_time)
+
+def processBreakAsync(laneID, count):
+ # This function handles confirm events, and logs the event in SQL
+ # Ensure ID is valid
+ if count > 0:
+ def processConfirmInner():
+ start_time = time.time()
+ # Log confirm event in SQL:
+ # Insert into Package History:
+ system.db.runPrepUpdate(CONFIRM_INSERT_QUERY, [laneID, count])
+ logTime("PE_BREAK[DB_INSERT]", laneID, time.time() - start_time)
+
+ system.util.invokeAsynchronous(processConfirmInner)
+
\ No newline at end of file
diff --git a/.resources/11e8c8b078a1b6f6c885c959ed71ec339a04816bd7fe8112c1a0ce43903c4225 b/.resources/11e8c8b078a1b6f6c885c959ed71ec339a04816bd7fe8112c1a0ce43903c4225
new file mode 100644
index 00000000..4cd97f3d
--- /dev/null
+++ b/.resources/11e8c8b078a1b6f6c885c959ed71ec339a04816bd7fe8112c1a0ce43903c4225
@@ -0,0 +1,36 @@
+{
+ "base": {
+ "style": {
+ "backgroundImage": "linear-gradient(180deg, rgba(245,245,245,1) 0%, rgba(235,235,235,1) 70%, rgba(208,208,208,1) 100%);",
+ "borderColor": "#555",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "color": "#000",
+ "textTransform": "uppercase"
+ }
+ },
+ "variants": [
+ {
+ "pseudo": "hover",
+ "style": {
+ "backgroundImage": "linear-gradient(0deg, rgba(245,245,245,1) 0%, rgba(235,235,235,1) 70%, rgba(208,208,208,1) 100%);",
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "color": "#000",
+ "cursor": "pointer"
+ }
+ },
+ {
+ "pseudo": "disabled",
+ "style": {
+ "backgroundImage": "linear-gradient(180deg, rgba(208,208,208,1) 0%, rgba(208,208,208,1) 100%);",
+ "borderColor": "#555",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "color": "#555555",
+ "cursor": "not-allowed"
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.resources/121f6e33f2e5bf6adbbca771915c07ed4bf254913a47341867b452ef12ec8540 b/.resources/121f6e33f2e5bf6adbbca771915c07ed4bf254913a47341867b452ef12ec8540
new file mode 100644
index 00000000..a4139cb2
--- /dev/null
+++ b/.resources/121f6e33f2e5bf6adbbca771915c07ed4bf254913a47341867b452ef12ec8540
@@ -0,0 +1,907 @@
+{
+ "custom": {},
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/So01_CH01"
+ },
+ "propConfig": {
+ "params.alwaysShowAll": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.isClickable": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.isRightOfSorter": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.mirror": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.tagPath": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 20,
+ "width": 60
+ },
+ "loading": {
+ "mode": "blocking"
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tself.parent.openPopup()"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Conveyor"
+ },
+ "position": {
+ "height": 20,
+ "width": 38,
+ "x": 22
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/CH/IsChuteMode"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "coalesce({value}, true)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "showLabel": false,
+ "type": "bar"
+ },
+ "status": {
+ "color": "#FFF"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tself.parent.openPopup()"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Gaylord"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 22,
+ "y": 2
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "expression": "try( tag({view.params.tagPath}+\"/CH/IsCartMode\")\r\n\t||tag({view.params.tagPath}+\"/CH/IsGLLMode\"),\r\n\ttrue\r\n)"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ }
+ },
+ "type": "dex.display.gaylord"
+ },
+ {
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tself.parent.openPopup()"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Chute"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 23
+ },
+ "propConfig": {
+ "props.config.isClickable": {
+ "binding": {
+ "config": {
+ "expression": "!{view.params.isClickable}"
+ },
+ "type": "expr"
+ }
+ },
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/CH/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "LS1"
+ },
+ "position": {
+ "height": 6,
+ "width": 6,
+ "x": 19,
+ "y": 14
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/LS1/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "jsonSet({value}, \"tooltip\", replace(jsonGet({value}, \"tooltip\"), \"\u003cbr\u003e\", \" (GR Presence)\u003cbr\u003e\"))",
+ "type": "expression"
+ },
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.limitswitch"
+ },
+ {
+ "meta": {
+ "name": "BCN1_GRN"
+ },
+ "position": {
+ "height": 5,
+ "rotate": {
+ "angle": "-90deg"
+ },
+ "width": 5,
+ "x": 10,
+ "y": 15
+ },
+ "propConfig": {
+ "position.x": {
+ "binding": {
+ "config": {
+ "expression": "if({../BCN1_AMB.meta.visible}, 10, 5)"
+ },
+ "type": "expr"
+ },
+ "persistent": true
+ },
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/BCN1/GRN/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.style.transform": {
+ "binding": {
+ "config": {
+ "path": "view.params.mirror"
+ },
+ "transforms": [
+ {
+ "fallback": null,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "scale(-1, 1)"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "BCN1_AMB"
+ },
+ "position": {
+ "height": 5,
+ "rotate": {
+ "angle": "-90deg"
+ },
+ "width": 5,
+ "x": 5,
+ "y": 15
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/BCN1/AMB/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "isGood({value})",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ },
+ "persistent": true
+ },
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/BCN1/AMB/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.style.transform": {
+ "binding": {
+ "config": {
+ "path": "view.params.mirror"
+ },
+ "transforms": [
+ {
+ "fallback": null,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "scale(-1, 1)"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "BCN1_BLU"
+ },
+ "position": {
+ "height": 5,
+ "rotate": {
+ "angle": "-90deg"
+ },
+ "width": 5,
+ "y": 15
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/BCN1/BLU/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.style.transform": {
+ "binding": {
+ "config": {
+ "path": "view.params.mirror"
+ },
+ "transforms": [
+ {
+ "fallback": null,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "scale(-1, 1)"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "GS1_ENABLE"
+ },
+ "position": {
+ "height": 6,
+ "width": 6,
+ "x": 38,
+ "y": 14
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/GS1/Enable/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PE3"
+ },
+ "position": {
+ "height": 6,
+ "rotate": {
+ "anchor": "0 50%"
+ },
+ "width": 8,
+ "x": 3,
+ "y": 2
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/PE3/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "jsonSet({value}, \"tooltip\", replace(jsonGet({value}, \"tooltip\"), \"\u003cbr\u003e\", \" (GL 100% Full)\u003cbr\u003e\"))",
+ "type": "expression"
+ },
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "diffuse"
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PE4"
+ },
+ "position": {
+ "height": 6,
+ "rotate": {
+ "anchor": "0 50%",
+ "angle": "-45deg"
+ },
+ "width": 8,
+ "x": 5,
+ "y": 10
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/PE4/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "jsonSet({value}, \"tooltip\", replace(jsonGet({value}, \"tooltip\"), \"\u003cbr\u003e\", \" (GL Presence)\u003cbr\u003e\"))",
+ "type": "expression"
+ },
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "diffuse"
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PE2"
+ },
+ "position": {
+ "height": 6,
+ "width": 28,
+ "x": 13,
+ "y": 7
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/PE2/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "jsonSet({value}, \"tooltip\", replace(jsonGet({value}, \"tooltip\"), \"\u003cbr\u003e\", \" (GR 50% Full)\u003cbr\u003e\"))",
+ "type": "expression"
+ },
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "diffuse"
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PE1B"
+ },
+ "position": {
+ "height": 6,
+ "rotate": {
+ "anchor": "0 50%"
+ },
+ "width": 20,
+ "x": 15
+ },
+ "propConfig": {
+ "position.rotate.angle": {
+ "binding": {
+ "config": {
+ "path": "view.params.isRightOfSorter"
+ },
+ "transforms": [
+ {
+ "fallback": "-45deg",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "45deg"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "position.y": {
+ "binding": {
+ "config": {
+ "path": "view.params.isRightOfSorter"
+ },
+ "transforms": [
+ {
+ "fallback": 14,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": 0
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/PE1B/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "jsonSet({value}, \"tooltip\", replace(jsonGet({value}, \"tooltip\"), \"\u003cbr\u003e\", \" (GR 100% Full)\u003cbr\u003e\"))",
+ "type": "expression"
+ },
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "diffuse"
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PE1A"
+ },
+ "position": {
+ "height": 6,
+ "rotate": {
+ "anchor": "0 50%"
+ },
+ "width": 20,
+ "x": 15
+ },
+ "propConfig": {
+ "position.rotate.angle": {
+ "binding": {
+ "config": {
+ "path": "view.params.isRightOfSorter"
+ },
+ "transforms": [
+ {
+ "fallback": "45deg",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "-45deg"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "position.y": {
+ "binding": {
+ "config": {
+ "path": "view.params.isRightOfSorter"
+ },
+ "transforms": [
+ {
+ "fallback": 0,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": 14
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/PE1A/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "jsonSet({value}, \"tooltip\", replace(jsonGet({value}, \"tooltip\"), \"\u003cbr\u003e\", \" (GR 100% Full)\u003cbr\u003e\"))",
+ "type": "expression"
+ },
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "diffuse"
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RS1_RESTART"
+ },
+ "position": {
+ "height": 6,
+ "width": 6,
+ "x": 44,
+ "y": 14
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/RS1/Restart/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "FIO1"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 50,
+ "y": 15
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/FIO1/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "propConfig": {
+ "props.style.transform": {
+ "binding": {
+ "config": {
+ "path": "view.params.mirror"
+ },
+ "transforms": [
+ {
+ "fallback": null,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "scale(1, -1)"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "scripts": {
+ "customMethods": [
+ {
+ "name": "openPopup",
+ "params": [],
+ "script": "\tif self.view.params.isClickable:\n\t\tid \u003d \"FlexChute|\" + self.view.params.tagPath\n\t\ttitle \u003d utils.prettyName(self.view.params.tagPath.split(\"/\")[-1])\n\t\tparams \u003d { \n\t\t\t\"deviceType\": \"chutedestination\",\n\t\t\t\"props\": { \n\t\t\t\t\"config\": {\n\t\t\t\t\t\"alwaysShowAll\": self.view.params.alwaysShowAll,\n\t\t\t\t\t\"isClickable\": self.view.params.isClickable,\n\t\t\t\t\t\"isRightOfSorter\": self.view.params.isRightOfSorter,\n\t\t\t\t\t\"mirror\": self.view.params.mirror\n\t\t\t\t},\n\t\t\t\t\"status\": {\n\t\t\t\t\t\"tagPath\": self.view.params.tagPath\n\t\t\t\t}\n\t\t \t},\n\t\t \t\"tabs\": [\"Controls\", \"Alarm History\", \"Devices\"]\t\t\n\t\t}\n\t\tsystem.perspective.openPopup(id, \"Popups/DeviceWrapper\", params, title, resizable \u003d True)"
+ }
+ ],
+ "extensionFunctions": null,
+ "messageHandlers": []
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/129159bc082aefdfb2ab2462ba326e1bbb2827530cea8bc9db3a356a3e07179c b/.resources/129159bc082aefdfb2ab2462ba326e1bbb2827530cea8bc9db3a356a3e07179c
new file mode 100644
index 00000000..138c3b1c
--- /dev/null
+++ b/.resources/129159bc082aefdfb2ab2462ba326e1bbb2827530cea8bc9db3a356a3e07179c
@@ -0,0 +1,160 @@
+{
+ "custom": {},
+ "params": {},
+ "props": {
+ "defaultSize": {
+ "height": 400,
+ "width": 1600
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Label"
+ },
+ "position": {
+ "height": 40,
+ "width": "100%"
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "expression": "try(\r\n\tproperty(\"../TabContainer.props.tabs[\"+{../TabContainer.props.currentTabIndex}+\"]\"),\r\n\t\"No Configs\"\r\n)"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#1A4A5E",
+ "borderBottomColor": "#000000",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "2px",
+ "color": "#fff",
+ "fontFamily": "Helvetica",
+ "fontSize": 20,
+ "fontWeight": "bold",
+ "textAlign": "center"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tsystem.perspective.sendMessage(\"export-data\")"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button"
+ },
+ "position": {
+ "height": 30,
+ "width": 100,
+ "x": "calc(100% - 105px)",
+ "y": 5
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Export"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "TabContainer"
+ },
+ "position": {
+ "height": "calc(100% - 40px)",
+ "width": "100%",
+ "y": 40
+ },
+ "propConfig": {
+ "props.tabs": {
+ "binding": {
+ "config": {
+ "struct": {
+ "auth": "{session.props.auth.user.roles}",
+ "tabs": "{[default]Gateway/ConfigTabs}"
+ },
+ "waitOnAll": true
+ },
+ "transforms": [
+ {
+ "code": "\troles \u003d [\"Administrator\", \"Developer\", \"Supervisor\"]\n\tauth \u003d value.auth\n\ttabs \u003d value.tabs\n\tisNotAuth \u003d (auth \u003d\u003d None or len(auth) \u003d\u003d 0 or len([i for i in auth if i in roles]) \u003d\u003d 0)\n\treturn [v[\"title\"] for v in utils.datasetToJSON(tabs) if v[\"isVisible\"] and not (v[\"isSupervisor\"] and isNotAuth)]",
+ "type": "script"
+ }
+ ],
+ "type": "expr-struct"
+ }
+ }
+ },
+ "props": {
+ "menuStyle": {
+ "backgroundColor": "#225E77"
+ },
+ "tabSize": {
+ "width": 140
+ },
+ "tabStyle": {
+ "active": {
+ "backgroundColor": "#2D7D9F",
+ "color": "#FFF",
+ "fontWeight": "bold"
+ },
+ "inactive": {
+ "backgroundColor": "#389CC7",
+ "color": "#FFF"
+ }
+ }
+ },
+ "type": "ia.container.tab"
+ },
+ {
+ "meta": {
+ "name": "EmbeddedView"
+ },
+ "position": {
+ "height": "calc(100% - 75px)",
+ "width": "100%",
+ "y": 75
+ },
+ "propConfig": {
+ "props.path": {
+ "binding": {
+ "config": {
+ "expression": " \"Windows/Configs/\"\r\n+replace(\r\n\tproperty(\"../TabContainer.props.tabs[\"+{../TabContainer.props.currentTabIndex}+\"]\"),\r\n\t\" \",\r\n\t\"\"\r\n)"
+ },
+ "type": "expr"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "path": "Windows/Configs/Shifts"
+ },
+ "type": "ia.display.view"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "min-width": "1000px"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/12d005f2a35ff8534d3fe732de2734d7b675c828d0b3279b9d9818265c8ae343 b/.resources/12d005f2a35ff8534d3fe732de2734d7b675c828d0b3279b9d9818265c8ae343
new file mode 100644
index 00000000..34dce851
--- /dev/null
+++ b/.resources/12d005f2a35ff8534d3fe732de2734d7b675c828d0b3279b9d9818265c8ae343
@@ -0,0 +1,59 @@
+{
+ "custom": {},
+ "params": {},
+ "props": {
+ "defaultSize": {
+ "height": 820
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "OXD_Inbound"
+ },
+ "position": {
+ "height": 800,
+ "width": 636,
+ "x": 10,
+ "y": 10
+ },
+ "props": {
+ "path": "Windows/Graphics/Templates/OXD_Inbound",
+ "style": {
+ "classes": "painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NavButton_OXD_Singulator"
+ },
+ "position": {
+ "height": 40,
+ "width": 128,
+ "x": 630,
+ "y": 79
+ },
+ "props": {
+ "params": {
+ "enableTooltip": true,
+ "label": null,
+ "tagPath": "[default]OXDSingulatorStatus",
+ "view": ""
+ },
+ "path": "Templates/Buttons/NavButton",
+ "style": {
+ "transform": "scale(1.5)"
+ }
+ },
+ "type": "ia.display.view"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/1320254589a36f136e1f8896c6c0bbe93e0836493b6a8c48c63fd0e2656575c0 b/.resources/1320254589a36f136e1f8896c6c0bbe93e0836493b6a8c48c63fd0e2656575c0
new file mode 100644
index 00000000..5d17949f
--- /dev/null
+++ b/.resources/1320254589a36f136e1f8896c6c0bbe93e0836493b6a8c48c63fd0e2656575c0
@@ -0,0 +1,19 @@
+WITH INDUCTS AS (
+ SELECT
+ DATE_FORMAT(MIN(timestamp), "%Y-%m-%d %H:%i:00") AS time,
+ SUM(count) AS total
+ FROM pe_history
+ WHERE timestamp BETWEEN :startDate AND :endDate
+ AND lane_id = :induct
+ GROUP BY DATE_FORMAT(timestamp, "%Y-%m-%d %H:%i:00")
+ ORDER BY DATE_FORMAT(timestamp, "%Y-%m-%d %H:%i:00")
+)
+SELECT
+ time,
+ /* Counts: */
+ total AS total_count,
+ /* PPH: */
+ ROUND(total*60) AS total_pph,
+ /* Percents: */
+ ROUND(total/total, 4) AS total_percent
+FROM INDUCTS;
\ No newline at end of file
diff --git a/.resources/186d77e9c77aebef6e716fb91a8c780fceabf3816ae56c29a6d561f5e2bb4b19 b/.resources/186d77e9c77aebef6e716fb91a8c780fceabf3816ae56c29a6d561f5e2bb4b19
new file mode 100644
index 00000000..29a285e2
--- /dev/null
+++ b/.resources/186d77e9c77aebef6e716fb91a8c780fceabf3816ae56c29a6d561f5e2bb4b19
@@ -0,0 +1,5 @@
+{
+ "base": {
+ "style": {}
+ }
+}
\ No newline at end of file
diff --git a/.resources/19e66b3f5221b50bde9f0bfd8261b337e9bb89a3092cee1a185f13d8ceaeb0bb b/.resources/19e66b3f5221b50bde9f0bfd8261b337e9bb89a3092cee1a185f13d8ceaeb0bb
new file mode 100644
index 00000000..03181be6
--- /dev/null
+++ b/.resources/19e66b3f5221b50bde9f0bfd8261b337e9bb89a3092cee1a185f13d8ceaeb0bb
@@ -0,0 +1,4283 @@
+{
+ "custom": {},
+ "params": {},
+ "props": {
+ "defaultSize": {
+ "height": 650,
+ "width": 1450
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "children": [
+ {
+ "children": [
+ {
+ "meta": {
+ "name": "Label"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0897,
+ "x": 0.0097,
+ "y": 0.0123
+ },
+ "props": {
+ "style": {
+ "fontSize": 20,
+ "fontWeight": "bold",
+ "textAlign": "center",
+ "textDecoration": "underline"
+ },
+ "text": "Conveyor"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_0"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.069,
+ "x": 0.0862,
+ "y": 0.0123
+ },
+ "props": {
+ "style": {
+ "fontSize": 20,
+ "fontWeight": "bold",
+ "textAlign": "center",
+ "textDecoration": "underline"
+ },
+ "text": "Chute"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_1"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.069,
+ "x": 0.16,
+ "y": 0.0123
+ },
+ "props": {
+ "style": {
+ "fontSize": 20,
+ "fontWeight": "bold",
+ "textAlign": "center",
+ "textDecoration": "underline"
+ },
+ "text": "Status"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_2"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.2207,
+ "x": 0.16,
+ "y": 0.1077
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "EStop or Faulted"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_12"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.069,
+ "x": 0.0869,
+ "y": 0.64
+ },
+ "props": {
+ "style": {
+ "fontSize": 20,
+ "fontWeight": "bold",
+ "textAlign": "center",
+ "textDecoration": "underline"
+ },
+ "text": "Beacons"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_13"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.069,
+ "x": 0.0869,
+ "y": 0.6892
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "center"
+ },
+ "text": "Horn"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_18"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0759,
+ "x": 0.38,
+ "y": 0.8277
+ },
+ "props": {
+ "style": {
+ "fontSize": 20,
+ "fontWeight": "bold",
+ "textAlign": "center",
+ "textDecoration": "underline"
+ },
+ "text": "EIP Status"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_19"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0414,
+ "x": 0.0559,
+ "y": 0.6892
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "OFF"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_20"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0414,
+ "x": 0.1421,
+ "y": 0.6892
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "right"
+ },
+ "text": "ON"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_33"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.1028,
+ "x": 0.2269,
+ "y": 0.6892
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Starting"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_34"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0414,
+ "x": 0.4228,
+ "y": 0.8769
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "OK"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_36"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0828,
+ "x": 0.5669,
+ "y": 0.2892
+ },
+ "props": {
+ "style": {
+ "fontSize": 20,
+ "fontWeight": "bold",
+ "textAlign": "center",
+ "textDecoration": "underline"
+ },
+ "text": "EPC Status"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_37"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0414,
+ "x": 0.6014,
+ "y": 0.3385
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Idle"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_39"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.1172,
+ "x": 0.3821,
+ "y": 0.2892
+ },
+ "props": {
+ "style": {
+ "fontSize": 20,
+ "fontWeight": "bold",
+ "textAlign": "center",
+ "textDecoration": "underline"
+ },
+ "text": "Photoeye Status"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_40"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.1724,
+ "x": 0.4317,
+ "y": 0.3346
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Clear"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_46"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0414,
+ "x": 0.6355,
+ "y": 0.8731
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "OK"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_47"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.1103,
+ "x": 0.5834,
+ "y": 0.8277
+ },
+ "props": {
+ "style": {
+ "fontSize": 20,
+ "fontWeight": "bold",
+ "textAlign": "center",
+ "textDecoration": "underline"
+ },
+ "text": "Scanner Status"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_52"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.1724,
+ "x": 0.4076,
+ "y": 0.6292
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "OK"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_53"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.1034,
+ "x": 0.3703,
+ "y": 0.58
+ },
+ "props": {
+ "style": {
+ "fontSize": 20,
+ "fontWeight": "bold",
+ "textAlign": "center",
+ "textDecoration": "underline"
+ },
+ "text": "VFD Status"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_55"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.1103,
+ "x": 0.469,
+ "y": 0.8277
+ },
+ "props": {
+ "style": {
+ "fontSize": 20,
+ "fontWeight": "bold",
+ "textAlign": "center",
+ "textDecoration": "underline"
+ },
+ "text": "Encoder Status"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_56"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.1586,
+ "x": 0.4731,
+ "y": 0.0123
+ },
+ "props": {
+ "style": {
+ "fontSize": 20,
+ "fontWeight": "bold",
+ "textAlign": "center",
+ "textDecoration": "underline"
+ },
+ "text": "Control Station Status"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_57"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0966,
+ "x": 0.4076,
+ "y": 0.0615
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Start"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Conveyor"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0552,
+ "x": 0.0276,
+ "y": 0.1154
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "showLabel": false
+ },
+ "status": {
+ "color": "#F00",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "Conveyor_0"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0345,
+ "x": 0.1034,
+ "y": 0.1154
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "showLabel": false
+ },
+ "status": {
+ "color": "#F00",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "Conveyor_1"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0552,
+ "x": 0.0276,
+ "y": 0.1615
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "showLabel": false
+ },
+ "status": {
+ "color": "#FF8C00",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "Conveyor_2"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0345,
+ "x": 0.1034,
+ "y": 0.1615
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "showLabel": false
+ },
+ "status": {
+ "color": "#FF8C00",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "Label_63"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.2207,
+ "x": 0.16,
+ "y": 0.1538
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Jammed"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Conveyor_3"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0552,
+ "x": 0.0276,
+ "y": 0.2538
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "showLabel": false
+ },
+ "status": {
+ "color": "#00F",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "Conveyor_4"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0345,
+ "x": 0.1034,
+ "y": 0.2538
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "showLabel": false
+ },
+ "status": {
+ "color": "#00F",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "Label_64"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.2207,
+ "x": 0.16,
+ "y": 0.2462
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Full"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_66"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.2207,
+ "x": 0.16,
+ "y": 0.2923
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "50% Full"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Conveyor_5"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0345,
+ "x": 0.1034,
+ "y": 0.3
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "showLabel": false
+ },
+ "status": {
+ "color": "#FF0",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "Conveyor_6"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0552,
+ "x": 0.0276,
+ "y": 0.3
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "showLabel": false
+ },
+ "status": {
+ "color": "#FF0",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "Conveyor_7"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0552,
+ "x": 0.0276,
+ "y": 0.3462
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "showLabel": false
+ },
+ "status": {
+ "color": "limegreen",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "Conveyor_8"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0345,
+ "x": 0.1034,
+ "y": 0.3462
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "showLabel": false
+ },
+ "status": {
+ "color": "limegreen",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "Label_67"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.2207,
+ "x": 0.16,
+ "y": 0.3385
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Running"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Conveyor_9"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0552,
+ "x": 0.0276,
+ "y": 0.3923
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "showLabel": false
+ },
+ "status": {
+ "color": "#87CEFA",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "Label_73"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.2207,
+ "x": 0.16,
+ "y": 0.3846
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Energy Management"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Conveyor_10"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0552,
+ "x": 0.0276,
+ "y": 0.4385
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "showLabel": false
+ },
+ "status": {
+ "color": "#CCFFCC",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "Conveyor_11"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0345,
+ "x": 0.1034,
+ "y": 0.4385
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "showLabel": false
+ },
+ "status": {
+ "color": "#CCFFCC",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "Label_74"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.2207,
+ "x": 0.16,
+ "y": 0.4308
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Enabled, Not Running"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Conveyor_12"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0552,
+ "x": 0.0276,
+ "y": 0.4846
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "showLabel": false
+ },
+ "status": {
+ "color": "#D3D3D3",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "Label_75"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.2207,
+ "x": 0.16,
+ "y": 0.4769
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Off (Inactive)"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Conveyor_13"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0552,
+ "x": 0.0276,
+ "y": 0.0692
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "showLabel": false
+ },
+ "status": {
+ "color": "#808080",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "Conveyor_14"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0345,
+ "x": 0.1034,
+ "y": 0.0692
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "showLabel": false
+ },
+ "status": {
+ "color": "#808080",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "Label_76"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.2207,
+ "x": 0.16,
+ "y": 0.0615
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "No Comm or Disabled by HMI / PLC"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Conveyor_15"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0552,
+ "x": 0.0276,
+ "y": 0.5769
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "showLabel": false
+ },
+ "status": {
+ "color": "#FFF",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "Conveyor_16"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0345,
+ "x": 0.1034,
+ "y": 0.5769
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "showLabel": false
+ },
+ "status": {
+ "color": "#FFF",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "Label_77"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.2207,
+ "x": 0.16,
+ "y": 0.5692
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Non Powered Equipment"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "BCN_OFF_HRN"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.0276,
+ "y": 0.6969
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "BCN_ON_HRN"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.2014,
+ "y": 0.6969
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": "#888",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "Label_78"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.1028,
+ "x": 0.2269,
+ "y": 0.7349
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "EStop or Faulted"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "BCN_ON_RED"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.2014,
+ "y": 0.7431
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": "#F00",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "Label_79"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0414,
+ "x": 0.1421,
+ "y": 0.7349
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "right"
+ },
+ "text": "ON"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_80"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.069,
+ "x": 0.0859,
+ "y": 0.7349
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "center"
+ },
+ "text": "Red"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_81"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0414,
+ "x": 0.0559,
+ "y": 0.7349
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "OFF"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "BCN_OFF_RED"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.0276,
+ "y": 0.7431
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "Label_82"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.1028,
+ "x": 0.2269,
+ "y": 0.8279
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Full"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_83"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0414,
+ "x": 0.1421,
+ "y": 0.8279
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "right"
+ },
+ "text": "ON"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_84"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.069,
+ "x": 0.0859,
+ "y": 0.8295
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "center"
+ },
+ "text": "Blue"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "BCN_ON_PUR"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.2014,
+ "y": 0.7892
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": "#D900D9",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "Label_85"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0414,
+ "x": 0.0559,
+ "y": 0.7822
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "OFF"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "BCN_OFF_PUR"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.0276,
+ "y": 0.7892
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "Label_86"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.1028,
+ "x": 0.2269,
+ "y": 0.8736
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Jammed"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_87"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0414,
+ "x": 0.1421,
+ "y": 0.8736
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "right"
+ },
+ "text": "ON"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_88"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.069,
+ "x": 0.0859,
+ "y": 0.8752
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "center"
+ },
+ "text": "Amber"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_89"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0414,
+ "x": 0.0559,
+ "y": 0.8279
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "OFF"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "BCN_ON_AMB"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.2014,
+ "y": 0.8815
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": "#FF8C00",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "BCN_OFF_BLU"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.0276,
+ "y": 0.8354
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "Label_90"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.1028,
+ "x": 0.2269,
+ "y": 0.9209
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Running"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_91"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0414,
+ "x": 0.1421,
+ "y": 0.9209
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "right"
+ },
+ "text": "ON"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_92"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.069,
+ "x": 0.0859,
+ "y": 0.9225
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "center"
+ },
+ "text": "Green"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_93"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0414,
+ "x": 0.0559,
+ "y": 0.8752
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "OFF"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "BCN_ON_GRN"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.2014,
+ "y": 0.9276
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": "#0F0",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "BCN_OFF_AMB"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.0276,
+ "y": 0.8815
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "ON_EIP"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0276,
+ "x": 0.3862,
+ "y": 0.8846
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": "#0F0",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "Label_94"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0414,
+ "x": 0.4228,
+ "y": 0.9231
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Fault"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "OFF_EIP"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0276,
+ "x": 0.3862,
+ "y": 0.9308
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": "#F00",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "Estop"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.5772,
+ "y": 0.3462
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "Label_38"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0628,
+ "x": 0.6014,
+ "y": 0.3846
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Actuated"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Estop_0"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.5772,
+ "y": 0.3923
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": {
+ "button": "#F00"
+ },
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "Encoder"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.4979,
+ "y": 0.8846
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": "#0F0",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.encoder"
+ },
+ {
+ "meta": {
+ "name": "Label_54"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0414,
+ "x": 0.5207,
+ "y": 0.8769
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "OK"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_95"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0414,
+ "x": 0.5207,
+ "y": 0.9231
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Fault"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Encoder_0"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.4979,
+ "y": 0.9308
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": "#F00",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.encoder"
+ },
+ {
+ "meta": {
+ "name": "Scanner"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.0207,
+ "x": 0.609,
+ "y": 0.8846
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": "#0F0",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.scanner"
+ },
+ {
+ "meta": {
+ "name": "Label_50"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0414,
+ "x": 0.6355,
+ "y": 0.9192
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Fault"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Scanner_0"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.0207,
+ "x": 0.609,
+ "y": 0.9308
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": "#F00",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.scanner"
+ },
+ {
+ "meta": {
+ "name": "PushButton"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.3841,
+ "y": 0.0692
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": {
+ "button": "#CFC"
+ },
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "Label_58"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0966,
+ "x": 0.5317,
+ "y": 0.0615
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Stop"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "PushButton_0"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.5083,
+ "y": 0.0692
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": {
+ "button": "#FCC"
+ },
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "Label_59"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0966,
+ "x": 0.6559,
+ "y": 0.0615
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Restart"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "PushButton_1"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.6324,
+ "y": 0.0692
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": {
+ "button": "#BBB"
+ },
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "Label_96"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0966,
+ "x": 0.5317,
+ "y": 0.1077
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Stop Pressed"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_97"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0966,
+ "x": 0.6559,
+ "y": 0.1077
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Restart Pressed"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "PushButton_2"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.6324,
+ "y": 0.1154
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": {
+ "base": "#000",
+ "button": "#BBB"
+ },
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PushButton_3"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.5083,
+ "y": 0.1154
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": {
+ "base": "#000",
+ "button": "#FCC"
+ },
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "Label_98"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0966,
+ "x": 0.4076,
+ "y": 0.1077
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Start Pressed"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "PushButton_4"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.3841,
+ "y": 0.1154
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": {
+ "base": "#000",
+ "button": "#CFC"
+ },
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "Label_99"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0966,
+ "x": 0.5317,
+ "y": 0.1538
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Stop Illuminated"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_100"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.1083,
+ "x": 0.6559,
+ "y": 0.1538
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Restart Illuminated"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_101"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0966,
+ "x": 0.4076,
+ "y": 0.1538
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Start Illuminated"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "PushButton_5"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.6324,
+ "y": 0.1615
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": {
+ "button": "#FFF"
+ },
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PushButton_6"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.5083,
+ "y": 0.1615
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": {
+ "button": "#F00"
+ },
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PushButton_7"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.3841,
+ "y": 0.1615
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "Label_102"
+ },
+ "position": {
+ "height": 0.0923,
+ "width": 0.0966,
+ "x": 0.6559,
+ "y": 0.2077
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Restart Pressed / Illuminted"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "PushButton_8"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.6324,
+ "y": 0.2077
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": {
+ "base": "#000",
+ "button": "#FFF"
+ },
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "Label_103"
+ },
+ "position": {
+ "height": 0.0923,
+ "width": 0.0966,
+ "x": 0.5317,
+ "y": 0.2077
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Stop Pressed / Illuminted"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "PushButton_9"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.5083,
+ "y": 0.2077
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": {
+ "base": "#000",
+ "button": "#F00"
+ },
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "Label_104"
+ },
+ "position": {
+ "height": 0.0923,
+ "width": 0.0966,
+ "x": 0.4076,
+ "y": 0.2077
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Start Pressed / Illuminted"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "PushButton_10"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.3841,
+ "y": 0.2077
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": {
+ "base": "#000"
+ },
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PhotoEye"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.0352,
+ "x": 0.3834,
+ "y": 0.3462
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": "#0F0",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "Label_45"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.1724,
+ "x": 0.4317,
+ "y": 0.3808
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Blocked"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "PhotoEye_0"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.0352,
+ "x": 0.3834,
+ "y": 0.3923
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": "#000",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "Label_60"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.1724,
+ "x": 0.4317,
+ "y": 0.4269
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Disabled"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "PhotoEye_1"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.0352,
+ "x": 0.3834,
+ "y": 0.4385
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": "#00F",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "Label_61"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.1724,
+ "x": 0.48,
+ "y": 0.4731
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "(Flashing) Jammed / Clear"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "PhotoEye_2"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.0352,
+ "x": 0.3834,
+ "y": 0.4846
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": "#F00",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PhotoEye_3"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.0352,
+ "x": 0.4317,
+ "y": 0.4846
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": "#0F0",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "Label_62"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.1724,
+ "x": 0.48,
+ "y": 0.5192
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "(Flashing) Jammed / Blocked"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "PhotoEye_4"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.0352,
+ "x": 0.4317,
+ "y": 0.5308
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": "#000",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PhotoEye_5"
+ },
+ "position": {
+ "height": 0.0231,
+ "width": 0.0352,
+ "x": 0.3834,
+ "y": 0.5308
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": "#F00",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "VFD"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.3834,
+ "y": 0.6369
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": {
+ "right": "#0F0"
+ },
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "Label_65"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.1724,
+ "x": 0.4076,
+ "y": 0.6754
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Disconnect"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "VFD_0"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.3834,
+ "y": 0.6831
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "Label_68"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.1724,
+ "x": 0.4352,
+ "y": 0.7215
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "(Flashing) Faulted / OK"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "VFD_1"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.3834,
+ "y": 0.7292
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": {
+ "right": "#F00"
+ },
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "VFD_2"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.411,
+ "y": 0.7292
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": {
+ "right": "#0F0"
+ },
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "Label_69"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.1828,
+ "x": 0.4352,
+ "y": 0.7677
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "(Flashing) Faulted / Disconnect"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "VFD_3"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.411,
+ "y": 0.7754
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "VFD_4"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.3834,
+ "y": 0.7754
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": {
+ "right": "#F00"
+ },
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "Label_105"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.2207,
+ "x": 0.16,
+ "y": 0.5231
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Manual / Maintenance Mode"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Conveyor_18"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0552,
+ "x": 0.0276,
+ "y": 0.5308
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "showLabel": false
+ },
+ "status": {
+ "color": "#AC5F00",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "Conveyor_19"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0552,
+ "x": 0.0276,
+ "y": 0.2077
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "showLabel": false
+ },
+ "status": {
+ "color": "#D900D9",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "Label_70"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.2207,
+ "x": 0.16,
+ "y": 0.2
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Anti-Gridlock Prevention Mode"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "DivertPaddle"
+ },
+ "position": {
+ "height": 0.0308,
+ "rotate": {
+ "angle": "180deg"
+ },
+ "width": 0.0345,
+ "x": 0.7945,
+ "y": 0.0692
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "paddleThickness": "20%"
+ }
+ },
+ "type": "dex.display.divertpaddle"
+ },
+ {
+ "meta": {
+ "name": "LimitSwitch"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.6972,
+ "y": 0.3462
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "showLabel": "PX"
+ },
+ "status": {
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.limitswitch"
+ },
+ {
+ "meta": {
+ "name": "MCP"
+ },
+ "position": {
+ "height": 0.0369,
+ "width": 0.0414,
+ "x": 0.7062,
+ "y": 0.8846
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": "#0F0",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.mcp"
+ },
+ {
+ "meta": {
+ "name": "Label_48"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.1103,
+ "x": 0.6883,
+ "y": 0.8277
+ },
+ "props": {
+ "style": {
+ "fontSize": 20,
+ "fontWeight": "bold",
+ "textAlign": "center",
+ "textDecoration": "underline"
+ },
+ "text": "MCP Status"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_49"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0414,
+ "x": 0.7541,
+ "y": 0.88
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "OK"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_51"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0414,
+ "x": 0.7541,
+ "y": 0.9262
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Fault"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "MCP "
+ },
+ "position": {
+ "height": 0.0369,
+ "width": 0.0414,
+ "x": 0.7062,
+ "y": 0.9308
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": "#F00",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.mcp"
+ },
+ {
+ "meta": {
+ "name": "Label_71"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.1103,
+ "x": 0.6834,
+ "y": 0.526
+ },
+ "props": {
+ "style": {
+ "fontSize": 20,
+ "fontWeight": "bold",
+ "textAlign": "center",
+ "textDecoration": "underline"
+ },
+ "text": "Gaylord Status"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_72"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.1103,
+ "x": 0.7862,
+ "y": 0.0123
+ },
+ "props": {
+ "style": {
+ "fontSize": 20,
+ "fontWeight": "bold",
+ "textAlign": "center",
+ "textDecoration": "underline"
+ },
+ "text": "Divert Status"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_106"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0828,
+ "x": 0.8437,
+ "y": 0.0615
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Retracted"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_107"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0828,
+ "x": 0.8437,
+ "y": 0.1141
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Extended"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "DivertPaddle_0"
+ },
+ "position": {
+ "height": 0.0308,
+ "rotate": {
+ "angle": "180deg"
+ },
+ "width": 0.0345,
+ "x": 0.7945,
+ "y": 0.1234
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "paddleThickness": "20%"
+ },
+ "status": {
+ "color": "#0F0",
+ "isExtended": true,
+ "isRetracted": false
+ }
+ },
+ "type": "dex.display.divertpaddle"
+ },
+ {
+ "meta": {
+ "name": "Label_108"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0828,
+ "x": 0.8437,
+ "y": 0.1618
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Fault"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "DivertPaddle_1"
+ },
+ "position": {
+ "height": 0.0308,
+ "rotate": {
+ "angle": "180deg"
+ },
+ "width": 0.0345,
+ "x": 0.7945,
+ "y": 0.1615
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "paddleThickness": "20%"
+ },
+ "status": {
+ "color": "#F00"
+ }
+ },
+ "type": "dex.display.divertpaddle"
+ },
+ {
+ "meta": {
+ "name": "Label_110"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.069,
+ "x": 0.7207,
+ "y": 0.3385
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Inactive"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_111"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.1379,
+ "x": 0.6676,
+ "y": 0.2892
+ },
+ "props": {
+ "style": {
+ "fontSize": 20,
+ "fontWeight": "bold",
+ "textAlign": "center",
+ "textDecoration": "underline"
+ },
+ "text": "Prox Switch Status"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_112"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.069,
+ "x": 0.7207,
+ "y": 0.3846
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Actuated"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "LimitSwitch_0"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.6972,
+ "y": 0.3923
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "showLabel": "PX"
+ },
+ "status": {
+ "color": [
+ "#0F0"
+ ],
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.limitswitch"
+ },
+ {
+ "meta": {
+ "name": "Label_115"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.1241,
+ "x": 0.7186,
+ "y": 0.5753
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Not Present"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Gaylord_1"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.6965,
+ "y": 0.583
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": {
+ "inner": "#AAA"
+ },
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.gaylord"
+ },
+ {
+ "meta": {
+ "name": "Label_118"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.1241,
+ "x": 0.7186,
+ "y": 0.6214
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Present"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Gaylord_4"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.6965,
+ "y": 0.6291
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": {
+ "inner": "#AAA",
+ "outer": "#0F0"
+ },
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.gaylord"
+ },
+ {
+ "meta": {
+ "name": "Label_119"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.1241,
+ "x": 0.7186,
+ "y": 0.6676
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Present / Enabled"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Gaylord_5"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.6965,
+ "y": 0.6753
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": {
+ "inner": "#0F0",
+ "outer": "#0F0"
+ },
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.gaylord"
+ },
+ {
+ "meta": {
+ "name": "Label_121"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.1241,
+ "x": 0.7186,
+ "y": 0.7138
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Full"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Gaylord_7"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.6965,
+ "y": 0.7215
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": {
+ "inner": "#00F",
+ "outer": "#0F0"
+ },
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.gaylord"
+ },
+ {
+ "meta": {
+ "name": "LimitSwitch_1"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.6972,
+ "y": 0.4387
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "showLabel": "PX"
+ },
+ "status": {
+ "color": [
+ "#F00"
+ ],
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.limitswitch"
+ },
+ {
+ "meta": {
+ "name": "Label_113"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.069,
+ "x": 0.7207,
+ "y": 0.431
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Faulted"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_114"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.1814,
+ "x": 0.8139,
+ "y": 0.2892
+ },
+ "props": {
+ "style": {
+ "fontSize": 20,
+ "fontWeight": "bold",
+ "textAlign": "left",
+ "textDecoration": "underline"
+ },
+ "text": "Nav Button Icons (Footer)"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Alarm_Icon"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.8199,
+ "y": 0.3462
+ },
+ "props": {
+ "color": "#FFF",
+ "path": "material/notifications_active",
+ "style": {
+ "backgroundColor": "#000000"
+ }
+ },
+ "type": "ia.display.icon"
+ },
+ {
+ "meta": {
+ "name": "Label_116"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.109,
+ "x": 0.8401,
+ "y": 0.3385
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "General Alarm"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Emergency_Icon"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.8199,
+ "y": 0.3951
+ },
+ "props": {
+ "color": "#FFF",
+ "path": "material/all_out",
+ "style": {
+ "backgroundColor": "#FF0000"
+ }
+ },
+ "type": "ia.display.icon"
+ },
+ {
+ "meta": {
+ "name": "Label_117"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.109,
+ "x": 0.8401,
+ "y": 0.3874
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Estop Alarm"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_120"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.109,
+ "x": 0.8401,
+ "y": 0.4363
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Jam Alarm"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Jam_Icon"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.8199,
+ "y": 0.444
+ },
+ "props": {
+ "color": "#FFF",
+ "path": "material/skip_next",
+ "style": {
+ "backgroundColor": "#FF8C00"
+ }
+ },
+ "type": "ia.display.icon"
+ },
+ {
+ "meta": {
+ "name": "Label_122"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.109,
+ "x": 0.8401,
+ "y": 0.4852
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Full Alarm"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Full_Icon"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.8199,
+ "y": 0.4929
+ },
+ "props": {
+ "color": "#FFF",
+ "path": "material/skip_next",
+ "style": {
+ "backgroundColor": "#0000FF"
+ }
+ },
+ "type": "ia.display.icon"
+ },
+ {
+ "meta": {
+ "name": "Manual_Icon"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.8199,
+ "y": 0.5418
+ },
+ "props": {
+ "color": "#FFF",
+ "path": "material/build",
+ "style": {
+ "backgroundColor": "#AC5F00"
+ }
+ },
+ "type": "ia.display.icon"
+ },
+ {
+ "meta": {
+ "name": "Label_123"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.109,
+ "x": 0.8401,
+ "y": 0.5341
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Manual Mode"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_109"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.1228,
+ "x": 0.2269,
+ "y": 0.7822
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "Gridlock Prevention "
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "BCN_ON_BLU"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.2014,
+ "y": 0.8354
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": "#00F",
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "Label_124"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0414,
+ "x": 0.1421,
+ "y": 0.7822
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "right"
+ },
+ "text": "ON"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_125"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.069,
+ "x": 0.0859,
+ "y": 0.7822
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "center"
+ },
+ "text": "Purple"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_126"
+ },
+ "position": {
+ "height": 0.0462,
+ "width": 0.0414,
+ "x": 0.0559,
+ "y": 0.9225
+ },
+ "props": {
+ "style": {
+ "fontSize": 18,
+ "textAlign": "left"
+ },
+ "text": "OFF"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "BCN_OFF_GRN"
+ },
+ "position": {
+ "height": 0.0308,
+ "width": 0.0138,
+ "x": 0.0276,
+ "y": 0.9276
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.beacon"
+ }
+ ],
+ "meta": {
+ "name": "Legend"
+ },
+ "props": {
+ "mode": "percent",
+ "style": {
+ "classes": "window",
+ "min-width": 1450
+ }
+ },
+ "type": "ia.container.coord"
+ },
+ {
+ "children": [
+ {
+ "events": {
+ "dom": {
+ "onDoubleClick": {
+ "config": {
+ "script": "\tif len(self.props.selectionData) \u003d\u003d 1:\n\t\tselected \u003d self.props.selectionData[0]\n\t\tvalue \u003d self.props.selection[0]\n\t\t# Check if valid file:\n\t\tif selected.value !\u003d \"\":\n\t\t\t# Is file, so update viewer:\n\t\t\tself.getSibling(\"DocumentViewer\").props.src \u003d \"/documents/\"+selected.value\n\t\t\t# Update header:\n\t\t\titem \u003d self.props\n\t\t\tfor part in selected.itemPath.split(\"/\"):\n\t\t\t\titem \u003d item.items[int(part)]\n\t\t\tself.getSibling(\"Header\").props.text \u003d item.label\n\t\telse:\n\t\t\t# Isn\u0027t file, so must be directory. Expand it:\n\t\t\titem \u003d self.props\n\t\t\tfor part in selected.itemPath.split(\"/\"):\n\t\t\t\titem \u003d item.items[int(part)]\n\t\t\t# Expand it:\n\t\t\titem.expanded \u003d not item.expanded"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ },
+ "system": {
+ "onStartup": {
+ "config": {
+ "script": "\tself.refreshList()"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Tree"
+ },
+ "position": {
+ "height": "calc(100% - 95px)",
+ "width": 300,
+ "y": 25
+ },
+ "propConfig": {
+ "position.height": {
+ "binding": {
+ "config": {
+ "expression": "if({../Button_Background.meta.visible},\r\n\t\"calc(100% - 95px)\",\r\n\t\"calc(100% - 25px)\"\r\n)"
+ },
+ "type": "expr"
+ },
+ "persistent": true
+ },
+ "props.style.borderBottomWidth": {
+ "binding": {
+ "config": {
+ "expression": "if({../Button_Background.meta.visible},\r\n\t2,\r\n\t0\r\n)"
+ },
+ "type": "expr"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "appearance": {
+ "defaultNodeIcons": {
+ "collapsed": {
+ "path": "material/folder"
+ },
+ "empty": {
+ "path": "material/stop"
+ },
+ "expanded": {
+ "path": "material/folder_open"
+ }
+ },
+ "expandIcons": {
+ "collapsed": {
+ "path": "material/arrow_right"
+ },
+ "expanded": {
+ "path": "material/arrow_drop_down"
+ }
+ }
+ },
+ "style": {
+ "backgroundColor": "#FFF",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": 2,
+ "borderRightColor": "#000",
+ "borderRightStyle": "solid",
+ "borderRightWidth": 2,
+ "user-select": "none"
+ }
+ },
+ "scripts": {
+ "customMethods": [
+ {
+ "name": "refreshList",
+ "params": [],
+ "script": "\tself.props.items \u003d documents.getDocuments()\n\tif self.getSibling(\"DocumentViewer\").props.src \u003d\u003d \"\":\n\t\tfor i, item in enumerate(self.props.items):\n\t\t\tif item.label \u003d\u003d \"Description of Operations.pdf\":\n\t\t\t\tself.getSibling(\"DocumentViewer\").props.src \u003d \"/documents/Description of Operations.pdf\"\n\t\t\t\tself.getSibling(\"Header\").props.text \u003d item.label\n\t\t\t\tself.props.selection \u003d [str(i)]\n\t\t\t\tbreak"
+ },
+ {
+ "name": "getPath",
+ "params": [
+ "path"
+ ],
+ "script": "\timport os\n\t\n\tpaths \u003d path.split(\"/\")\n\tfullPath \u003d \"\"\n\titems \u003d self.props.items\n\tfor i in range(len(paths)):\n\t\tpath \u003d int(paths[i])\n\t\tif len(items) \u003e path:\n\t\t\tfullPath \u003d os.path.join(fullPath, items[path].label)\n\t\t\titems \u003d items[path].items\n\t\n\treturn fullPath"
+ }
+ ],
+ "extensionFunctions": null,
+ "messageHandlers": [
+ {
+ "messageType": "custom-documents-refreshlist",
+ "pageScope": true,
+ "script": "\tself.refreshList()",
+ "sessionScope": false,
+ "viewScope": false
+ }
+ ]
+ },
+ "type": "ia.display.tree"
+ },
+ {
+ "meta": {
+ "name": "Label"
+ },
+ "position": {
+ "height": 25,
+ "width": 300
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#808080",
+ "borderBottomColor": "#000",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": 2,
+ "borderRightColor": "#000",
+ "borderRightStyle": "solid",
+ "borderRightWidth": 2,
+ "color": "#FFF",
+ "fontSize": "16px",
+ "fontWeight": "bold",
+ "textAlign": "center",
+ "user-select": "none"
+ },
+ "text": "Documents"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "DocumentViewer"
+ },
+ "position": {
+ "height": "calc(100% - 25px)",
+ "width": "calc(100% - 300px)",
+ "x": 300,
+ "y": 25
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "expression": "{this.props.src} !\u003d \"\" \u0026\u0026 {this.props.src} !\u003d None"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "allowFullScreen": true
+ },
+ "type": "ia.display.iframe"
+ },
+ {
+ "meta": {
+ "name": "Header"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 300
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#808080",
+ "borderBottomColor": "#000",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": 2,
+ "color": "#FFF",
+ "fontSize": "16px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverflow": "ellipsis",
+ "user-select": "none",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Button_Background"
+ },
+ "position": {
+ "height": 70,
+ "width": 300,
+ "y": "calc(100% - 70px)"
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "expression": "({session.props.device.type} \u003d \"designer\" || isAuthorized(\r\n\tfalse,\r\n\t\u0027Authenticated/Roles/Administrator\u0027,\r\n\t\u0027Authenticated/Roles/Developer\u0027\r\n))"
+ },
+ "type": "expr"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#AAA",
+ "borderRightColor": "#000",
+ "borderRightStyle": "solid",
+ "borderRightWidth": 2,
+ "color": "#FFF",
+ "user-select": "none"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": [
+ {
+ "config": {
+ "draggable": false,
+ "id": "sOoyBhnt",
+ "modal": true,
+ "overlayDismiss": true,
+ "resizable": false,
+ "showCloseIcon": true,
+ "title": "Upload Custom Document",
+ "type": "open",
+ "viewPath": "Popups/CustomDocuments/PDFUpload"
+ },
+ "enabled": false,
+ "scope": "C",
+ "type": "popup"
+ },
+ {
+ "config": {
+ "script": "\tdata \u003d self.getSibling(\"Tree\").props.selectionData\n\tif len(data) \u003d\u003d 0 or (len(data) \u003d\u003d 1 and data[0].value \u003d\u003d \"\"):\n\t\tid \u003d \"sOoyBhnt\"\n\t\tview \u003d \"Popups/CustomDocuments/PDFUpload\"\n\t\ttitle \u003d \"Upload Custom Document\"\n\t\tparams \u003d {\n\t\t\t\"parentFolder\": self.getSibling(\"Tree\").getPath(data[0].itemPath) if len(data) \u003d\u003d 1 else \"\"\n\t\t}\n\t\tsystem.perspective.openPopup(id, view, params, title, showCloseIcon\u003dTrue, draggable\u003dFalse, resizable\u003dFalse, modal\u003dTrue, overlayDismiss\u003dTrue)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ ]
+ }
+ },
+ "meta": {
+ "name": "Button_UploadDocument"
+ },
+ "position": {
+ "height": 32,
+ "width": 146,
+ "x": 2,
+ "y": "calc(100% - 33px)"
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "../Button_Background.meta.visible"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "path": "../Tree.props.selectionData"
+ },
+ "transforms": [
+ {
+ "code": "\treturn len(value) \u003d\u003d 0 or (len(value) \u003d\u003d 1 and value[0].value \u003d\u003d \"\")",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Upload"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tdata \u003d self.getSibling(\"Tree\").props.selectionData\n\tfilenames \u003d [self.getSibling(\"Tree\").getPath(data[i].itemPath) for i in range(len(data))]\n\tid \u003d \"YCx5ripz\"\n\tview \u003d \"Popups/CustomDocuments/DeleteConfirmation\"\n\ttitle \u003d \"Delete Confirmation\"\n\tparams \u003d {\n\t\t\"filenames\": filenames\n\t}\n\tsystem.perspective.openPopup(id, view, params, title, showCloseIcon\u003dTrue, draggable\u003dFalse, resizable\u003dFalse, modal\u003dTrue, overlayDismiss\u003dTrue)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button_DeleteDocument"
+ },
+ "position": {
+ "height": 32,
+ "width": 146,
+ "x": 150,
+ "y": "calc(100% - 33px)"
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "../Button_Background.meta.visible"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "path": "../Tree.props.selection"
+ },
+ "transforms": [
+ {
+ "code": "\treturn len(value)\u003e0",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "enabled": false,
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Delete"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tdata \u003d self.getSibling(\"Tree\").props.selectionData\n\tif len(data) \u003d\u003d 0 or (len(data) \u003d\u003d 1 and data[0].value \u003d\u003d \"\"):\n\t\tid \u003d \"NU5O9skq\"\n\t\tview \u003d \"Popups/CustomDocuments/CreateFolder\"\n\t\ttitle \u003d \"Create Documents Folder\"\n\t\tparams \u003d {\n\t\t\t\"parentFolder\": self.getSibling(\"Tree\").getPath(data[0].itemPath) if len(data) \u003d\u003d 1 else \"\"\n\t\t}\n\t\tsystem.perspective.openPopup(id, view, params, title, showCloseIcon\u003dTrue, draggable\u003dFalse, resizable\u003dFalse, modal\u003dTrue, overlayDismiss\u003dTrue)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button_CreateFolder"
+ },
+ "position": {
+ "height": 32,
+ "width": 294,
+ "x": 2,
+ "y": "calc(100% - 68px)"
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "../Button_Background.meta.visible"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "path": "../Tree.props.selectionData"
+ },
+ "transforms": [
+ {
+ "code": "\treturn len(value) \u003d\u003d 0 or (len(value) \u003d\u003d 1 and value[0].value \u003d\u003d \"\")",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Create Folder"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tself.getSibling(\"Tree\").props.selection \u003d []"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button_UnselectAll"
+ },
+ "position": {
+ "height": 20,
+ "width": 95,
+ "x": 202,
+ "y": 2
+ },
+ "propConfig": {
+ "meta.visible": {
+ "persistent": true
+ }
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey",
+ "fontSize": "11px"
+ },
+ "text": "Unselect All"
+ },
+ "type": "ia.input.button"
+ }
+ ],
+ "meta": {
+ "name": "Documents"
+ },
+ "position": {
+ "tabIndex": 1
+ },
+ "type": "ia.container.coord"
+ }
+ ],
+ "meta": {
+ "name": "TabContainer"
+ },
+ "position": {
+ "height": "100%",
+ "width": "100%"
+ },
+ "props": {
+ "menuStyle": {
+ "backgroundColor": "#225E77"
+ },
+ "tabSize": {
+ "width": 250
+ },
+ "tabStyle": {
+ "active": {
+ "backgroundColor": "#2D7D9F",
+ "color": "#FFF",
+ "fontWeight": "bold"
+ },
+ "inactive": {
+ "backgroundColor": "#389CC7",
+ "color": "#FFF"
+ }
+ },
+ "tabs": [
+ "Legend",
+ "Documents"
+ ]
+ },
+ "type": "ia.container.tab"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "position": {
+ "x": 0,
+ "y": 0
+ },
+ "props": {
+ "style": {
+ "classes": "window",
+ "min-width": 1450
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/1a14099eb1a73658132ba28a1bb1604312364452f944490e33c723cea3be8b84 b/.resources/1a14099eb1a73658132ba28a1bb1604312364452f944490e33c723cea3be8b84
new file mode 100644
index 00000000..fed42469
--- /dev/null
+++ b/.resources/1a14099eb1a73658132ba28a1bb1604312364452f944490e33c723cea3be8b84
@@ -0,0 +1,706 @@
+{
+ "custom": {
+ "class": 2
+ },
+ "params": {
+ "classDropdownValue": [
+ "Error"
+ ],
+ "titleExtra": "0 rows"
+ },
+ "propConfig": {
+ "custom.class": {
+ "binding": {
+ "config": {
+ "path": "view.params.classDropdownValue"
+ },
+ "transforms": [
+ {
+ "code": "\tvalue \u003d list(value)\n\tif \"Message\" in value:\n\t\treturn 0\n\telif \"Warning\" in value:\n\t\treturn 1\n\telif \"Error\" in value:\n\t\treturn 2\n\telse:\n\t\treturn 0",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "params.classDropdownValue": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.classDropdownValue[0]": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.titleExtra": {
+ "paramDirection": "output",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 324,
+ "width": 1600
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "events": {
+ "component": {
+ "onRowDoubleClick": {
+ "config": {
+ "script": "\tscreen \u003d alarms.resolveScreenBySource(event.value.source)\n\tif screen \u003c\u003e \"\":\n\t\twindow \u003d \"Windows/GraphicsWrapper\"\n\t\tparams \u003d {\"view\": screen}\n\t\tsystem.perspective.navigate(\"/\")\n\t\tsystem.perspective.navigate(view\u003dwindow, params\u003dparams)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Table"
+ },
+ "position": {
+ "height": "100%",
+ "width": "100%"
+ },
+ "propConfig": {
+ "props.data": {
+ "binding": {
+ "config": {
+ "parameters": {
+ "class": "{view.custom.class}",
+ "endDate": "{session.custom.timewidget.endDate}",
+ "priority": "if({view.custom.class} \u003e 0, 1, 0)",
+ "startDate": "{session.custom.timewidget.startDate}"
+ },
+ "queryPath": "Alarms/History"
+ },
+ "transforms": [
+ {
+ "code": "\tcou \u003d utils.getRowCount(value)\n\tast \u003d \"*\" if cou \u003e\u003d 2000 else \"\"\n\tself.view.params.titleExtra \u003d \"{:n}{} rows\".format(cou, ast)\n\t# Return data\n\treturn value",
+ "type": "script"
+ },
+ {
+ "code": "\toutput_json \u003d []\n\t# Transform dataset into json:\n\tfor row in range(value.getRowCount()):\n\t\trow_object \u003d {\"value\": {}}\n\t\t# Populate row values:\n\t\tfor col in range(value.getColumnCount()):\n\t\t\trow_object[\"value\"][value.getColumnName(col)] \u003d value.getValueAt(row, col)\n\t\t\t# Check if endtime isn\u0027t reached:\n\t\t\tif value.getColumnName(col) \u003d\u003d \u0027endtime\u0027 and value.getValueAt(row, col) in [None, \"\"]:\n\t\t\t\trow_object[\u0027style\u0027] \u003d {\"background\": \"#F4B084\"}\n\t\t# Append to json output:\n\t\toutput_json.append(row_object)\n\t# Return as json:\n\treturn output_json",
+ "type": "script"
+ }
+ ],
+ "type": "query"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "cells": {
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "1px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "1px",
+ "fontFamily": "Helvetica",
+ "fontSize": "16px"
+ }
+ },
+ "columns": [
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "id",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Number (ID)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 125
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "starttime",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Start Timestamp"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 175
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "endtime",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "End Timestamp"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 175
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "duration",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 125
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "class",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Class"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 125
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "device",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Location"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "description",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Description"
+ },
+ "justify": "auto",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "plctag",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Tag"
+ },
+ "justify": "auto",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "source",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "justify": "auto",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": false,
+ "width": ""
+ }
+ ],
+ "filter": {
+ "enabled": true
+ },
+ "pager": {
+ "bottom": false
+ },
+ "rows": {
+ "highlight": {
+ "enabled": false
+ },
+ "striped": {
+ "enabled": false
+ },
+ "style": {
+ "classes": "table/highlight"
+ }
+ },
+ "style": {
+ "fontFamily": "Helvetica",
+ "fontSize": "16px",
+ "fontWeight": "bold",
+ "zoom": 1
+ }
+ },
+ "scripts": {
+ "customMethods": [],
+ "extensionFunctions": null,
+ "messageHandlers": [
+ {
+ "messageType": "export-data",
+ "pageScope": true,
+ "script": "\tutils.downloadCSV(self, \"Alarm History\")",
+ "sessionScope": false,
+ "viewScope": false
+ }
+ ]
+ },
+ "type": "ia.display.table"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/1bade7893f8557a49e3f1c0cf688ee58f4caa117427dabde4682f87cd9259a76 b/.resources/1bade7893f8557a49e3f1c0cf688ee58f4caa117427dabde4682f87cd9259a76
new file mode 100644
index 00000000..a8988884
--- /dev/null
+++ b/.resources/1bade7893f8557a49e3f1c0cf688ee58f4caa117427dabde4682f87cd9259a76
@@ -0,0 +1,43 @@
+WITH SORTERS AS (
+ SELECT
+ DATE_FORMAT(MIN(s04_timestamp), "%Y-%m-%d %H:%i:00") AS time,
+ COUNT(*) AS total,
+ /* PPH Data */
+ SUM(sort_code="Success") AS success,
+ SUM(sort_code IN ("Dest Invalid", "Dest None", "Underutilized")) AS awcs,
+ SUM(sort_code IN ("Dest Disabled", "Dest Full", "Dim Error", "Unexpected", "Weight Err")) AS operational,
+ SUM(sort_code IN ("Dest Fault", "Div Fail", "Gap Err", "Lost", "Rate High", "Track Err", "Unknown", "Unsafe")) AS machine,
+ SUM(sort_code IN ("No Read", "No Code", "Multi Label")) AS scanner,
+ /* Problem Solve Data */
+ SUM(sort_code="No Read") AS no_read,
+ SUM(sort_code="No Code") AS no_code,
+ SUM(sort_code="Multi Label") AS multi_label,
+ /* Sorter Error Data */
+ SUM(sort_code="Gap Err") AS gap_err,
+ SUM(sort_code="Div Fail") AS div_fail,
+ SUM(sort_code="Dest None") AS dest_none,
+ SUM(sort_code="Lost") AS lost
+ FROM package_history
+ WHERE s04_timestamp BETWEEN :startDate AND :endDate
+ AND sorter = :sorter
+ GROUP BY DATE_FORMAT(s04_timestamp, "%Y-%m-%d %H:%i:00")
+ ORDER BY DATE_FORMAT(s04_timestamp, "%Y-%m-%d %H:%i:00")
+), DATA AS (
+SELECT
+ total,
+ /* PPH: */
+ ROUND((SUM((total - machine - scanner)*60) OVER w)/(:movAvgMin+1)) AS total_pph,
+ /* Problem Solve Percents: */
+ no_read+no_code+multi_label AS scanner,
+ /* Sorter Error Percents: */
+ gap_err+div_fail+dest_none+lost AS sorter
+FROM SORTERS
+WINDOW w AS (ORDER BY STR_TO_DATE(time, "%Y-%m-%d %H:%i:00") RANGE BETWEEN INTERVAL :movAvgMin MINUTE PRECEDING AND CURRENT ROW)
+)
+SELECT
+ MAX(total_pph) AS total_pph,
+ /* Problem Solve Percents: */
+ ROUND(SUM(scanner)/SUM(total), 4) AS scanner,
+ /* Sorter Error Percents: */
+ ROUND(SUM(sorter)/SUM(total), 4) AS sorter
+FROM DATA;
\ No newline at end of file
diff --git a/.resources/1ce69fd3e546bdb830be2ee98bd9f4947f2079cb276fd5882f41a6be9a2ea76e b/.resources/1ce69fd3e546bdb830be2ee98bd9f4947f2079cb276fd5882f41a6be9a2ea76e
new file mode 100644
index 00000000..9dcb2379
--- /dev/null
+++ b/.resources/1ce69fd3e546bdb830be2ee98bd9f4947f2079cb276fd5882f41a6be9a2ea76e
@@ -0,0 +1,291 @@
+{
+ "custom": {},
+ "params": {
+ "meta": {
+ "name": "S1-CH1"
+ },
+ "props": {
+ "config": {
+ "alwaysShowAll": true,
+ "isClickable": false,
+ "mirror": false,
+ "rotate": false
+ },
+ "status": {
+ "tagPath": "[default]MCP06/PS04/PS04_17CH"
+ }
+ }
+ },
+ "propConfig": {
+ "params.meta": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.meta.name": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.config.alwaysShowAll": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.config.mirror": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.config.rotate": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 349,
+ "width": 500
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "ChuteLabel"
+ },
+ "position": {
+ "height": 35,
+ "width": 260,
+ "x": 120,
+ "y": 63
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Conv/StatusText"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\ttagPath \u003d self.view.params.props.status.tagPath\n\ttags \u003d [tagPath + \"/Conv/SetEnable\"]\n\tvalues \u003d [1]\n\tsystem.tag.writeAsync(tags, values)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Enable"
+ },
+ "position": {
+ "height": 40,
+ "width": 120,
+ "x": 120,
+ "y": 20.3
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Conv/SetEnable"
+ },
+ "transforms": [
+ {
+ "expression": "isGood({value})",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.style.classes": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Conv/SetEnable"
+ },
+ "transforms": [
+ {
+ "fallback": "Buttons/Grey",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "Buttons/Green"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ },
+ {
+ "expression": "if(isGood({value}),\r\n\t{value},\r\n\t\"Buttons/Grey\"\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {},
+ "text": "Enable"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\ttagPath \u003d self.view.params.props.status.tagPath\n\ttags \u003d [tagPath + \"/Conv/SetEnable\"]\n\tvalues \u003d [0]\n\tsystem.tag.writeAsync(tags, values)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Disable"
+ },
+ "position": {
+ "height": 40,
+ "width": 120,
+ "x": 260,
+ "y": 20.3
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Conv/SetEnable"
+ },
+ "transforms": [
+ {
+ "expression": "isGood({value})",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.style.classes": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Conv/SetEnable"
+ },
+ "transforms": [
+ {
+ "fallback": "Buttons/Grey",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": false,
+ "output": "Buttons/Red"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ },
+ {
+ "expression": "if(isGood({value}),\r\n\t{value},\r\n\t\"Buttons/Grey\"\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {},
+ "text": "Disable"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "SpiralChute"
+ },
+ "position": {
+ "height": 92,
+ "width": 94,
+ "x": 203.775,
+ "y": 154.5
+ },
+ "propConfig": {
+ "props.params": {
+ "binding": {
+ "config": {
+ "struct": {
+ "alwaysShowAll": true,
+ "isClickable": false,
+ "mirror": "{view.params.props.config.mirror}",
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "waitOnAll": true
+ },
+ "type": "expr-struct"
+ },
+ "persistent": false
+ }
+ },
+ "props": {
+ "path": "Templates/Areas/RRChute",
+ "style": {
+ "transform": "scale(2)"
+ }
+ },
+ "type": "ia.display.view"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "background-color": "#CFCFCF"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/1d8501163f1388a4681dafd83d7b05fbab2b455cfb4dbff40a1b0f75d9d83fb6 b/.resources/1d8501163f1388a4681dafd83d7b05fbab2b455cfb4dbff40a1b0f75d9d83fb6
new file mode 100644
index 00000000..9cd0fca2
--- /dev/null
+++ b/.resources/1d8501163f1388a4681dafd83d7b05fbab2b455cfb4dbff40a1b0f75d9d83fb6
@@ -0,0 +1,297 @@
+{
+ "custom": {},
+ "params": {
+ "meta": {
+ "name": "PE1"
+ },
+ "props": {
+ "config": {
+ "enableHighlight": true,
+ "isClickable": false,
+ "type": "reflector"
+ },
+ "status": {
+ "color": "#aaa",
+ "showAlways": true,
+ "tagPath": "",
+ "tooltip": ""
+ }
+ }
+ },
+ "propConfig": {
+ "params.meta": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.meta.name": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 105,
+ "width": 500
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "PhotoEye"
+ },
+ "position": {
+ "height": 30,
+ "width": 102,
+ "x": 48.5,
+ "y": 20
+ },
+ "propConfig": {
+ "props.config.type": {
+ "binding": {
+ "config": {
+ "path": "view.params.props.config.type"
+ },
+ "overlayOptOut": true,
+ "type": "property"
+ }
+ },
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "expression": "try(\r\n\tjsonSet({value}, \"showAlways\", true),\r\n\t{view.params.props.status}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "lbStatus"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 40
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "code": "\treturn utils.extractStatus(value)",
+ "type": "script"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbName"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 5
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.LabelFull"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \u0027\u0027)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_1"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 5
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Name: "
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_11"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 40
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Status:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_12"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 75
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Panel:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbStatus_0"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 75
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.OPC_Server"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \"Unknown\")",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "background-color": "#CFCFCF"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/1d90ce28583965db4844eebba8ffc73397ca5ddc41377ac4381f9c030f1229a4 b/.resources/1d90ce28583965db4844eebba8ffc73397ca5ddc41377ac4381f9c030f1229a4
new file mode 100644
index 00000000..40b8cdfa
--- /dev/null
+++ b/.resources/1d90ce28583965db4844eebba8ffc73397ca5ddc41377ac4381f9c030f1229a4
@@ -0,0 +1,193 @@
+{
+ "custom": {},
+ "params": {
+ "parentFolder": ""
+ },
+ "propConfig": {
+ "params.parentFolder": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 300,
+ "width": 400
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Markdown"
+ },
+ "position": {
+ "height": "calc(100% - 150px)",
+ "width": "calc(100% - 50px)",
+ "x": 25,
+ "y": 60
+ },
+ "propConfig": {
+ "props.source": {
+ "binding": {
+ "config": {
+ "struct": {
+ "folderName": "{../TextField.props.text}",
+ "parentFolder": "{view.params.parentFolder}"
+ },
+ "waitOnAll": true
+ },
+ "transforms": [
+ {
+ "code": "\timport os\n\t\n\ttext \u003d \"Are you sure you would like to create the following folder:\\n\"\n\ttext +\u003d \"\\n* \"+os.path.join(value.parentFolder, value.folderName)\n\treturn text",
+ "type": "script"
+ }
+ ],
+ "type": "expr-struct"
+ }
+ }
+ },
+ "type": "ia.display.markdown"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\timport os\n\t\n\tparentFolder \u003d self.view.params.parentFolder\n\tfolderName \u003d self.getSibling(\"TextField\").props.text\n\tdocuments.createFolder(os.path.join(parentFolder, folderName))\n\tsystem.perspective.sendMessage(\"custom-documents-refreshlist\", {})\n\tsystem.perspective.closePopup(\"\")"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button_Yes"
+ },
+ "position": {
+ "height": 55,
+ "width": 100,
+ "x": 25,
+ "y": 235
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "path": "../TextField.props.text"
+ },
+ "transforms": [
+ {
+ "code": "\tif value \u003d\u003d \"\":\n\t\treturn False\n\t# Only support alphanumeric folder names:\n\treturn \"\".join([c for c in value if c.isalpha() or c.isdigit() or c\u003d\u003d\u0027 \u0027]).strip() \u003d\u003d value",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Yes"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tsystem.perspective.closePopup(\"\")"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button_No"
+ },
+ "position": {
+ "height": 55,
+ "width": 100,
+ "x": "calc(100% - 125px)",
+ "y": 235
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "No"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "TextField"
+ },
+ "position": {
+ "height": 32,
+ "width": "calc(100% - 125px)",
+ "x": 115,
+ "y": 10
+ },
+ "props": {
+ "deferUpdates": false
+ },
+ "type": "ia.input.text-field"
+ },
+ {
+ "meta": {
+ "name": "Label"
+ },
+ "position": {
+ "height": 32,
+ "width": 110,
+ "y": 10
+ },
+ "props": {
+ "style": {
+ "textAlign": "right"
+ },
+ "text": "Folder Name:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_BadFolderName"
+ },
+ "position": {
+ "height": 12,
+ "width": 250,
+ "x": 120,
+ "y": 42
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "expression": "!{../Button_Yes.props.enabled}"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "color": "red",
+ "fontSize": "12px"
+ },
+ "text": "* Empty or contains invalid characters"
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/1eb2749f075f5c971d7c1f38dc87308891e1b5754e3eb578298eb615368ef2ad b/.resources/1eb2749f075f5c971d7c1f38dc87308891e1b5754e3eb578298eb615368ef2ad
new file mode 100644
index 00000000..8654f2c3
--- /dev/null
+++ b/.resources/1eb2749f075f5c971d7c1f38dc87308891e1b5754e3eb578298eb615368ef2ad
@@ -0,0 +1,84 @@
+{
+ "custom": {},
+ "params": {},
+ "props": {
+ "defaultSize": {
+ "height": 1993,
+ "width": 4243
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "HSS_Sorter"
+ },
+ "position": {
+ "height": 1973,
+ "width": 4223,
+ "x": 10,
+ "y": 10
+ },
+ "props": {
+ "path": "Windows/Graphics/Templates/HSS_Sorter",
+ "style": {
+ "classes": "painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NavButton_HSS_Singulator"
+ },
+ "position": {
+ "height": 40,
+ "width": 125,
+ "x": 170,
+ "y": 720
+ },
+ "props": {
+ "params": {
+ "enableTooltip": true,
+ "label": null,
+ "tagPath": "[default]HSSSingulatorStatus",
+ "view": ""
+ },
+ "path": "Templates/Buttons/NavButton",
+ "style": {
+ "transform": "scale(3)"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NavButton_Runout"
+ },
+ "position": {
+ "height": 40,
+ "width": 74,
+ "x": 3760,
+ "y": 1840
+ },
+ "props": {
+ "params": {
+ "enableTooltip": true,
+ "label": null,
+ "tagPath": "[default]RunoutStatus",
+ "view": ""
+ },
+ "path": "Templates/Buttons/NavButton",
+ "style": {
+ "transform": "scale(3)"
+ }
+ },
+ "type": "ia.display.view"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/1fbe5083340293eff7c4a91ee4f02346dd403337bd980d1ed9b2c58124b90b12 b/.resources/1fbe5083340293eff7c4a91ee4f02346dd403337bd980d1ed9b2c58124b90b12
new file mode 100644
index 00000000..580c8f0a
--- /dev/null
+++ b/.resources/1fbe5083340293eff7c4a91ee4f02346dd403337bd980d1ed9b2c58124b90b12
@@ -0,0 +1,578 @@
+{
+ "custom": {},
+ "params": {
+ "alwaysShowAll": false,
+ "chuteNum": "",
+ "isClickable": true,
+ "mirror": false,
+ "tagPath": ""
+ },
+ "propConfig": {
+ "params.alwaysShowAll": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.chuteNum": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.isClickable": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.mirror": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.tagPath": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 115,
+ "width": 95
+ },
+ "loading": {
+ "mode": "blocking"
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tself.parent.openPopup()"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Conveyor"
+ },
+ "position": {
+ "height": 48,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": -90
+ },
+ "width": 79,
+ "x": 21,
+ "y": 115
+ },
+ "propConfig": {
+ "props.config.isClickable": {
+ "binding": {
+ "config": {
+ "expression": "!{view.params.isClickable}"
+ },
+ "type": "expr"
+ }
+ },
+ "props.config.showLabel": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/Conv/Parameters.LabelFull"
+ },
+ "overlayOptOut": true,
+ "type": "tag"
+ }
+ },
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/Conv/Graphics"
+ },
+ "overlayOptOut": true,
+ "type": "tag"
+ }
+ },
+ "props.style.transform": {
+ "binding": {
+ "config": {
+ "path": "view.params.mirror"
+ },
+ "transforms": [
+ {
+ "fallback": null,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "scale(1, -1) translateY(-100%)"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "y": 67
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/BCN1/BLU/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.style.transform": {
+ "binding": {
+ "config": {
+ "path": "parent.props.style.transform"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "y": 82
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/BCN1/AMB/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.style.transform": {
+ "binding": {
+ "config": {
+ "path": "parent.props.style.transform"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "BCN1_GRN"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "y": 97
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/BCN1/GRN/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.style.transform": {
+ "binding": {
+ "config": {
+ "path": "parent.props.style.transform"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "GS1_ENABLE"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 21,
+ "y": 15
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/GS1/Enable/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "GS1_RESTART"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 40,
+ "y": 15
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/RS1/Restart/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "Full_PE"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "angle": 180
+ },
+ "width": 62,
+ "x": 17,
+ "y": 69
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/Full_PE/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "Jam_PE"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "angle": 180
+ },
+ "width": 62,
+ "x": 17,
+ "y": 99
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/Jam_PE/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "Label"
+ },
+ "position": {
+ "height": 15,
+ "width": "100%"
+ },
+ "propConfig": {
+ "props.style.transform": {
+ "binding": {
+ "config": {
+ "path": "parent.props.style.transform"
+ },
+ "type": "property"
+ }
+ },
+ "props.text": {
+ "binding": {
+ "config": {
+ "path": "view.params.chuteNum"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "fontFamily": "Arial",
+ "fontSize": "15px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Half_PE"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "angle": 180
+ },
+ "width": 62,
+ "x": 17,
+ "y": 39
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/Half_PE/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "angle": "-90deg"
+ },
+ "width": 30,
+ "x": -7,
+ "y": 43
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/FIO1/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.style.transform": {
+ "binding": {
+ "config": {
+ "path": "view.params.mirror"
+ },
+ "transforms": [
+ {
+ "fallback": null,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "scale(1, -1)"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "propConfig": {
+ "props.style.transform": {
+ "binding": {
+ "config": {
+ "path": "view.params.mirror"
+ },
+ "transforms": [
+ {
+ "fallback": null,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "scale(-1, 1)"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "scripts": {
+ "customMethods": [
+ {
+ "name": "openPopup",
+ "params": [],
+ "script": "\tif self.view.params.isClickable:\n\t\tid \u003d \"DivChute|\" + self.view.params.tagPath\n\t\ttitle \u003d utils.prettyName(self.view.params.tagPath.split(\"/\")[-1])\n\t\tparams \u003d { \n\t\t\t\"deviceType\": \"divchute\",\n\t\t\t\"props\": { \n\t\t\t\t\"config\": {\n\t\t\t\t\t\"alwaysShowAll\": self.view.params.alwaysShowAll,\n\t\t\t\t\t\"isClickable\": self.view.params.isClickable,\n\t\t\t\t\t#\"rotate\": self.view.params.rotate,\n\t\t\t\t\t\"mirror\": self.view.params.mirror\n\t\t\t\t},\n\t\t\t\t\"status\": {\n\t\t\t\t\t\"tagPath\": self.view.params.tagPath\n\t\t\t\t}\n\t\t \t},\n\t\t \t\"tabs\": [\"Controls\", \"Alarm History\", \"Devices\"]\t\t\n\t\t}\n\t\tsystem.perspective.openPopup(id, \"Popups/DeviceWrapper\", params, title, resizable \u003d True)"
+ }
+ ],
+ "extensionFunctions": null,
+ "messageHandlers": []
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/21b1c29775009050a6a3bad2db69d7f7406efeef877ce0d77602979af9373a7c b/.resources/21b1c29775009050a6a3bad2db69d7f7406efeef877ce0d77602979af9373a7c
new file mode 100644
index 00000000..d4c9a152
--- /dev/null
+++ b/.resources/21b1c29775009050a6a3bad2db69d7f7406efeef877ce0d77602979af9373a7c
@@ -0,0 +1,267 @@
+{
+ "custom": {
+ "disconnected": 0,
+ "plc": "value",
+ "priority": 0,
+ "priority_string": "No active alarms",
+ "searchId": "value",
+ "state": 0,
+ "state_string": "Normal"
+ },
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "propConfig": {
+ "custom.disconnected": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.plc": {
+ "binding": {
+ "config": {
+ "path": "view.params.tagProps[0]"
+ },
+ "transforms": [
+ {
+ "expression": "split({value}, \"/\")[0]",
+ "type": "expression"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.priority": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "fallback": 0,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": 4
+ },
+ {
+ "input": 2,
+ "output": 3
+ },
+ {
+ "input": 3,
+ "output": 2
+ },
+ {
+ "input": 4,
+ "output": 1
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.priority_string": {
+ "binding": {
+ "config": {
+ "expression": "case({view.custom.state},\r\n1, \"High\",\r\n0, \"No active alarms\",\r\n\"Unknown\")"
+ },
+ "type": "expr"
+ },
+ "persistent": true
+ },
+ "custom.searchId": {
+ "binding": {
+ "config": {
+ "path": "session.custom.searchId"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.state": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "0": "{view.params.tagProps[0]}",
+ "fc": "{session.custom.fc}"
+ },
+ "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value},0)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ },
+ "persistent": true
+ },
+ "custom.state_string": {
+ "binding": {
+ "config": {
+ "expression": "case({view.custom.state},\r\n1, \"Communication Faulted\",\r\n0, \"Normal\",\r\n\"Unknown\")"
+ },
+ "type": "expr"
+ },
+ "persistent": true
+ },
+ "params.tagProps": {
+ "paramDirection": "inout",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 30,
+ "width": 41
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Label"
+ },
+ "position": {
+ "height": 1,
+ "width": 1
+ },
+ "props": {
+ "text": "MCM",
+ "textStyle": {
+ "textAlign": "center"
+ }
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tsystem.perspective.openDock(\u0027Docked-East-DS\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})"
+ },
+ "scope": "G",
+ "type": "script"
+ },
+ "onDoubleClick": {
+ "config": {
+ "script": "\ttagProps \u003d self.view.params.tagProps\n\tsystem.perspective.openPopup(\"StatusPopUP\", \"PopUp-Views/Controller-Equipment/Information\", params \u003d{\"tagProps\":tagProps})\n\t"
+ },
+ "enabled": false,
+ "scope": "G",
+ "type": "script"
+ },
+ "onMouseEnter": {
+ "config": {
+ "script": "\tfrom time import sleep\n\t\n\talarm \u003d []\n\tmessage \u003d None\n\t\n\tsleep(0.5)\n\t\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "root",
+ "tooltip": {
+ "enabled": true,
+ "location": "top-left",
+ "style": {}
+ }
+ },
+ "propConfig": {
+ "meta.tooltip.style.classes": {
+ "binding": {
+ "config": {
+ "expression": "{view.custom.priority}"
+ },
+ "transforms": [
+ {
+ "fallback": "Alarms-Styles/NoAlarm",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": "Alarms-Styles/Diagnostic"
+ },
+ {
+ "input": 2,
+ "output": "Alarms-Styles/Low"
+ },
+ {
+ "input": 3,
+ "output": "Alarms-Styles/Medium"
+ },
+ {
+ "input": 4,
+ "output": "Alarms-Styles/High"
+ }
+ ],
+ "outputType": "style-list",
+ "type": "map"
+ }
+ ],
+ "type": "expr"
+ }
+ },
+ "meta.tooltip.text": {
+ "binding": {
+ "config": {
+ "expression": "if(\n {view.custom.disconnected} \u003d false,\n \"Source Id: \" + {view.params.tagProps[0]} + \", Priority: \" + {view.custom.priority_string} + \", State: \" + {view.custom.state_string},\n \"Device Disconnected\"\n)\n"
+ },
+ "type": "expr"
+ }
+ },
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "session.custom.alarm_filter.show_dpm_mcm"
+ },
+ "type": "property"
+ }
+ },
+ "props.style.backgroundColor": {
+ "binding": {
+ "config": {
+ "expression": "if(\r\n {view.custom.disconnected},\r\n \u0027#808080\u0027,\r\n if(\r\n {view.custom.state} \u003d 1,\r\n \u0027#FF0000\u0027,\r\n if(\r\n {view.custom.state} \u003d 0,\r\n \u0027#00D900\u0027,\r\n \u0027#fff700\u0027\r\n )\r\n )\r\n)\r\n"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "mode": "percent",
+ "style": {
+ "borderStyle": "solid",
+ "cursor": "pointer",
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/224615fb9c98d6e86e29c0fef88796373c1f8be3838e2c3284ed1bc4bc1d7e00 b/.resources/224615fb9c98d6e86e29c0fef88796373c1f8be3838e2c3284ed1bc4bc1d7e00
new file mode 100644
index 00000000..16de430d
--- /dev/null
+++ b/.resources/224615fb9c98d6e86e29c0fef88796373c1f8be3838e2c3284ed1bc4bc1d7e00
@@ -0,0 +1,36 @@
+{
+ "base": {
+ "style": {
+ "backgroundImage": "linear-gradient(180deg, rgba(255,0,0,1) 0%, rgba(245,0,0,1) 70%, rgba(208,0,0,1) 100%);",
+ "borderColor": "#555",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "color": "#000",
+ "textTransform": "uppercase"
+ }
+ },
+ "variants": [
+ {
+ "pseudo": "hover",
+ "style": {
+ "backgroundImage": "linear-gradient(0deg, rgba(255,0,0,1) 0%, rgba(245,0,0,1) 70%, rgba(208,0,0,1) 100%);",
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "color": "#000",
+ "cursor": "pointer"
+ }
+ },
+ {
+ "pseudo": "disabled",
+ "style": {
+ "backgroundImage": "linear-gradient(180deg, rgba(208,0,0,1) 0%, rgba(208,0,0,1) 100%);",
+ "borderColor": "#555",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "color": "#555555",
+ "cursor": "not-allowed"
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.resources/22ba155c31da33ace3663440ef2d87ea12f14185bf99adac0ea57db0af90bfd8 b/.resources/22ba155c31da33ace3663440ef2d87ea12f14185bf99adac0ea57db0af90bfd8
new file mode 100644
index 00000000..e5f99826
--- /dev/null
+++ b/.resources/22ba155c31da33ace3663440ef2d87ea12f14185bf99adac0ea57db0af90bfd8
@@ -0,0 +1,13 @@
+{
+ "base": {
+ "animation": {
+ "duration": "1s",
+ "keyframes": {
+ "0%": {
+ "backgroundColor": "#007EFCB3"
+ },
+ "100%": {}
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/23ccfcf82511fed8b9a7515257f517b4ff365e6ecdbb65751e05fcc13bc66881 b/.resources/23ccfcf82511fed8b9a7515257f517b4ff365e6ecdbb65751e05fcc13bc66881
new file mode 100644
index 00000000..590ba7ed
--- /dev/null
+++ b/.resources/23ccfcf82511fed8b9a7515257f517b4ff365e6ecdbb65751e05fcc13bc66881
@@ -0,0 +1,5491 @@
+{
+ "custom": {},
+ "params": {},
+ "props": {
+ "defaultSize": {
+ "height": 1601,
+ "width": 949
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "PRS03_01CH"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "-30deg"
+ },
+ "width": 120,
+ "x": 813,
+ "y": 181
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS03/PRS03_01CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PRS03_04"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 108,
+ "x": 907,
+ "y": 87
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS03/PRS03_04/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PRS03_05"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 148,
+ "x": 800,
+ "y": 87
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS03/PRS03_05/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "skew-right"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PRS03_06"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 408,
+ "x": 653,
+ "y": 87
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS03/PRS03_06/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "bar"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PRS04_01"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 430,
+ "x": 507,
+ "y": 41
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS04/PRS04_01/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PRS04_03"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 622,
+ "x": 58,
+ "y": 60.8
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS04/PRS04_03/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PRS04_04"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 600,
+ "x": 58,
+ "y": 681
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS04/PRS04_04/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS02_05"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 501,
+ "x": 112,
+ "y": 1601
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_05/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS02_06NP"
+ },
+ "position": {
+ "height": 34,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 336,
+ "x": 118,
+ "y": 766
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "showLabel": false
+ },
+ "status": {
+ "color": "#FFF",
+ "showAlways": true,
+ "tooltip": "PS2-6\u003cbr\u003eStatus: Non-Powered"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS02_06_SG01_01"
+ },
+ "position": {
+ "height": 30,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 112,
+ "y": 1101
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP11/PS02_06/SG01_01/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false,
+ "type": "skew-left"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS02_06_SG01_02"
+ },
+ "position": {
+ "height": 30,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 70,
+ "x": 112,
+ "y": 1042
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP11/PS02_06/SG01_02/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false,
+ "type": "skew-left"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS02_06_SG01_03"
+ },
+ "position": {
+ "height": 30,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 70,
+ "x": 112,
+ "y": 973
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP11/PS02_06/SG01_03/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false,
+ "type": "skew-left"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS02_06_SG01_04"
+ },
+ "position": {
+ "height": 30,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 70,
+ "x": 112,
+ "y": 904
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP11/PS02_06/SG01_04/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false,
+ "type": "skew-left"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS02_06_SG01_05"
+ },
+ "position": {
+ "height": 30,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 70,
+ "x": 112,
+ "y": 835
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP11/PS02_06/SG01_05/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false,
+ "type": "skew-left"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS02_06_SG01_06"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 70,
+ "x": 112,
+ "y": 766
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP11/PS02_06/SG01_06/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false,
+ "type": "skew-left"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS02_06_SG01_07"
+ },
+ "position": {
+ "height": 17,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 70,
+ "x": 112,
+ "y": 697
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP11/PS02_06/SG01_07/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false,
+ "type": "skew-right"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS02_06_SG01_08"
+ },
+ "position": {
+ "height": 17,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 70,
+ "x": 112,
+ "y": 628
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP11/PS02_06/SG01_08/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false,
+ "type": "skew-right"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS02_06_SG01_09"
+ },
+ "position": {
+ "height": 17,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 70,
+ "x": 112,
+ "y": 559
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP11/PS02_06/SG01_09/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false,
+ "type": "skew-right"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS02_06_SG01_10"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 70,
+ "x": 112,
+ "y": 490
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP11/PS02_06/SG01_10/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false,
+ "type": "skew-right"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS02_06_SG01_14"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 671,
+ "x": 161,
+ "y": 430
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP11/PS02_06/SG01_14/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS02_08"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 202,
+ "x": 112,
+ "y": 421
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_08/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS02_10"
+ },
+ "position": {
+ "height": 11,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 112,
+ "x": 151,
+ "y": 180
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_10/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false,
+ "type": "skew-right"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS02_10A"
+ },
+ "position": {
+ "height": 11,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 112,
+ "x": 151,
+ "y": 189
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_10A/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false,
+ "type": "skew-right"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS02_11"
+ },
+ "position": {
+ "height": 20,
+ "width": 18,
+ "x": 262,
+ "y": 180
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_11/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS02_12"
+ },
+ "position": {
+ "height": 20,
+ "width": 18,
+ "x": 279,
+ "y": 180
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_12/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS02_13"
+ },
+ "position": {
+ "height": 20,
+ "width": 18,
+ "x": 296,
+ "y": 180
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_13/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS02_14"
+ },
+ "position": {
+ "height": 20,
+ "width": 18,
+ "x": 313,
+ "y": 180
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_14/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS02_15"
+ },
+ "position": {
+ "height": 20,
+ "width": 18,
+ "x": 330,
+ "y": 180
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_15/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS02_16"
+ },
+ "position": {
+ "height": 20,
+ "width": 18,
+ "x": 347,
+ "y": 180
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_16/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS02_17"
+ },
+ "position": {
+ "height": 20,
+ "width": 118,
+ "x": 364,
+ "y": 180
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_17/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS02_18"
+ },
+ "position": {
+ "height": 20,
+ "width": 224,
+ "x": 481,
+ "y": 180
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_18/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RE03_10"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 255,
+ "x": 523,
+ "y": 302
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_10/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RE03_12"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 444,
+ "x": 250,
+ "y": 320
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_12/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RE03_13"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 633,
+ "x": 250,
+ "y": 763
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_13/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RE03_15"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 80,
+ "x": 211,
+ "y": 1435
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_15/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PRS03_02CH"
+ },
+ "position": {
+ "height": 40,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "-30deg"
+ },
+ "width": 40,
+ "x": 905,
+ "y": 105
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS03/PRS03_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "conveyorWidth": 20,
+ "side": "left",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorcurve"
+ },
+ {
+ "meta": {
+ "name": "PRS03_03CHNP"
+ },
+ "position": {
+ "height": 40,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "-120deg"
+ },
+ "width": 40,
+ "x": 906,
+ "y": 107
+ },
+ "props": {
+ "config": {
+ "angle": 60,
+ "conveyorWidth": 20,
+ "enableHighlight": false,
+ "isClickable": false,
+ "side": "left",
+ "type": "chute"
+ },
+ "status": {
+ "color": "#FFF",
+ "showAlways": true,
+ "tooltip": "PRS3-3CH\u003cbr\u003eStatus: Non-Powered"
+ }
+ },
+ "type": "dex.display.conveyorcurve"
+ },
+ {
+ "meta": {
+ "name": "PRS04_02PT"
+ },
+ "position": {
+ "height": 40,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 40,
+ "x": 78,
+ "y": 61
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS04/PRS04_02PT/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "side": "left"
+ }
+ },
+ "type": "dex.display.conveyorcurve"
+ },
+ {
+ "meta": {
+ "name": "PRS04_05CHNP"
+ },
+ "position": {
+ "height": 75,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 75,
+ "x": 113,
+ "y": 1280
+ },
+ "props": {
+ "config": {
+ "conveyorWidth": 20,
+ "enableHighlight": false,
+ "isClickable": false,
+ "side": "left"
+ },
+ "status": {
+ "color": "#FFF",
+ "showAlways": true,
+ "tooltip": "PRS4-5CH\u003cbr\u003eStatus: Non-Powered"
+ }
+ },
+ "type": "dex.display.conveyorcurve"
+ },
+ {
+ "meta": {
+ "name": "PS02_09PT"
+ },
+ "position": {
+ "height": 40,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 40,
+ "x": 112,
+ "y": 220
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_09PT/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyorcurve"
+ },
+ {
+ "meta": {
+ "name": "RE03_11PT"
+ },
+ "position": {
+ "height": 40,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 40,
+ "x": 270,
+ "y": 322
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_11PT/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "side": "left"
+ }
+ },
+ "type": "dex.display.conveyorcurve"
+ },
+ {
+ "meta": {
+ "name": "RE03_14CHNP"
+ },
+ "position": {
+ "height": 40,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 40,
+ "x": 250,
+ "y": 1395
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ },
+ "status": {
+ "color": "#FFF",
+ "showAlways": true,
+ "tooltip": "RE3-14CH\u003cbr\u003eStatus: Non-Powered"
+ }
+ },
+ "type": "dex.display.conveyorcurve"
+ },
+ {
+ "meta": {
+ "name": "MCP11"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 50,
+ "x": 160,
+ "y": 1223
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP11/MCP11/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.mcp"
+ },
+ {
+ "meta": {
+ "name": "MCP21"
+ },
+ "position": {
+ "height": 20,
+ "width": 50,
+ "x": 595,
+ "y": 120
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/MCP21/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.mcp"
+ },
+ {
+ "meta": {
+ "name": "PRS03_04_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 871,
+ "y": 50
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS03/PRS03_04/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PRS03_05_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 684,
+ "y": 50
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS03/PRS03_05/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PRS04_01_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 484,
+ "y": 3
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS04/PRS04_01/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PRS04_02PT_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 21,
+ "y": 42
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS04/PRS04_02PT/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PRS04_03_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 59,
+ "y": 560
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS04/PRS04_03/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PRS04_04_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 59,
+ "y": 1209
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS04/PRS04_04/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS02_05_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 133,
+ "y": 1275
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_05/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS02_06_SG01_01_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 95,
+ "y": 1060
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP11/PS02_06/SG01_01/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS02_06_SG01_02_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 95,
+ "y": 1001
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP11/PS02_06/SG01_02/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS02_06_SG01_03_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 95,
+ "y": 932
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP11/PS02_06/SG01_03/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS02_06_SG01_04_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 95,
+ "y": 863
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP11/PS02_06/SG01_04/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS02_06_SG01_05_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 95,
+ "y": 794
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP11/PS02_06/SG01_05/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS02_06_SG01_06_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 95,
+ "y": 725
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP11/PS02_06/SG01_06/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS02_06_SG01_07_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 95,
+ "y": 657
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP11/PS02_06/SG01_07/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS02_06_SG01_08_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 95,
+ "y": 586
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP11/PS02_06/SG01_08/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS02_06_SG01_09_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 85,
+ "y": 530
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP11/PS02_06/SG01_09/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS02_06_SG01_10_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 95,
+ "y": 445
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP11/PS02_06/SG01_10/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS02_06_SG01_14_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 162,
+ "y": 1060
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP11/PS02_06/SG01_14/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS02_08_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 133,
+ "y": 221
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_08/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS02_09PT_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 135,
+ "y": 164
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_09PT/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS02_10A_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 171,
+ "y": 201
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_10A/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS02_10_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 171,
+ "y": 163
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_10/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS02_11_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 261,
+ "y": 206
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_11/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS02_12_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 278,
+ "y": 206
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_12/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS02_13_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 295,
+ "y": 206
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_13/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS02_14_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 312,
+ "y": 206
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_14/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS02_15_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 329,
+ "y": 206
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_15/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS02_16_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 346,
+ "y": 206
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_16/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS02_17_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 363,
+ "y": 206
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_17/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS02_18_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 671,
+ "y": 163
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_18/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "RE03_10_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 487,
+ "y": 265
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_10/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "RE03_11PT_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 213,
+ "y": 303
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_11PT/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "RE03_12_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 213,
+ "y": 747
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_12/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "RE03_13_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 213,
+ "y": 1327
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_13/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "RE03_15_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 179,
+ "y": 1398
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_15/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS02_06_SG01_09_ENC"
+ },
+ "position": {
+ "height": 16,
+ "rotate": {
+ "angle": "PS02_06_SG01_09_ENC1"
+ },
+ "width": 16,
+ "x": 95,
+ "y": 495
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP11/PS02_06/SG01_09/ENC/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.encoder"
+ },
+ {
+ "meta": {
+ "name": "PRS03_05_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 701,
+ "y": 46
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS03/PRS03_05/EPC1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "PRS03_05_EPC2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 701,
+ "y": 88
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS03/PRS03_05/EPC2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "PRS03_05_EPC3"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 779,
+ "y": 46
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS03/PRS03_05/EPC3/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "PRS03_05_EPC4"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 779,
+ "y": 88
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS03/PRS03_05/EPC4/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "PRS04_03_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 17,
+ "y": 608
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS04/PRS04_03/EPC1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "PRS04_03_EPC2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 59,
+ "y": 608
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS04/PRS04_03/EPC2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "PS02_05_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 133,
+ "y": 1104
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_05/EPC1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "PS02_05_EPC2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 91,
+ "y": 1124
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_05/EPC2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "PS02_08_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 133,
+ "y": 340
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_08/EPC1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "PS02_08_EPC2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 91,
+ "y": 340
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_08/EPC2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "PS02_08_EPC3"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 133,
+ "y": 401
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_08/EPC3/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "PS02_08_EPC4"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 91,
+ "y": 401
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_08/EPC4/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "RE03_10_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 388,
+ "y": 261
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_10/EPC1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "RE03_10_EPC2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 388,
+ "y": 303
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_10/EPC2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "RE03_13_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 251,
+ "y": 1363
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_13/EPC1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "RE03_13_EPC2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 209,
+ "y": 503
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_13/EPC2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "RE03_13_EPC3"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 209,
+ "y": 442
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_13/EPC3/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "PRS03_05_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 739,
+ "y": 46
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS03/PRS03_05/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PRS03_05_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 758,
+ "y": 46
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS03/PRS03_05/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PRS03_05_SS2_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 739,
+ "y": 88
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS03/PRS03_05/SS2/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PRS03_05_SS2_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 758,
+ "y": 88
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS03/PRS03_05/SS2/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PRS04_01_RS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 117
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS04/PRS04_01/RS1/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PRS04_03_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 17,
+ "y": 629
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS04/PRS04_03/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PRS04_03_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 17,
+ "y": 648
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS04/PRS04_03/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PRS04_03_SS2_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 59,
+ "y": 629
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS04/PRS04_03/SS2/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PRS04_03_SS2_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 59,
+ "y": 648
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS04/PRS04_03/SS2/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PRS04_04_RS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 17,
+ "y": 1257
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS04/PRS04_04/RS1/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PS02_05_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 133,
+ "y": 1125
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_05/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PS02_05_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 133,
+ "y": 1144
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_05/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PS02_05_SS2_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 91,
+ "y": 1145
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_05/SS2/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PS02_05_SS2_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 91,
+ "y": 1164
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_05/SS2/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PS02_08_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 133,
+ "y": 361
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_08/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PS02_08_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 133,
+ "y": 380
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_08/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PS02_08_SS2_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 91,
+ "y": 361
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_08/SS2/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PS02_08_SS2_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 91,
+ "y": 380
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_08/SS2/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PS02_10_RS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 206,
+ "y": 159
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_10/RS1/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RE03_10_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 426,
+ "y": 261
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_10/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RE03_10_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 445,
+ "y": 261
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_10/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RE03_10_SS2_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 426,
+ "y": 303
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_10/SS2/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RE03_10_SS2_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 445,
+ "y": 303
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_10/SS2/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RE03_12_RS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 251,
+ "y": 401
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_12/RS1/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RE03_12_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 209,
+ "y": 463
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_12/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RE03_12_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 209,
+ "y": 482
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_12/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RE03_13_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 251,
+ "y": 1323
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_13/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RE03_13_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 251,
+ "y": 1342
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_13/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "SO02_01A_RS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 506,
+ "y": 159
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01A/RS1/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PRS03_04_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 812,
+ "y": 51
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS03/PRS03_04/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "PRS03_05_SIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 670,
+ "y": 88
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS03/PRS03_05/SIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "PRS04_01_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 100,
+ "y": 42
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS04/PRS04_01/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "PRS04_03_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 59,
+ "y": 607
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS04/PRS04_03/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "PRS04_03_SIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 22,
+ "y": 607
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS04/PRS04_03/SIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "PS02_05_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 133,
+ "y": 1274
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_05/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "PS02_05_SIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 96,
+ "y": 1294
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_05/SIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "PS02_08_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 133,
+ "y": 339
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_08/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "PS02_08_SIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 96,
+ "y": 339
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_08/SIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "PS02_17_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 413,
+ "y": 164
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_17/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "PS02_17_SIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 382,
+ "y": 164
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_17/SIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "PS02_18_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 658,
+ "y": 201
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_18/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RE03_10_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 357,
+ "y": 303
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_10/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RE03_10_SIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 326,
+ "y": 303
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_10/SIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RE03_12_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 251,
+ "y": 452
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_12/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RE03_13_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 214,
+ "y": 1374
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_13/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RE03_15_SIO1"
+ },
+ "position": {
+ "height": 15,
+ "width": 30,
+ "x": 148,
+ "y": 1399
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_15/SIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "PRS03_05_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 722,
+ "y": 50
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS03/PRS03_05/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PRS03_05_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 722,
+ "y": 20
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS03/PRS03_05/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PRS03_05_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 722,
+ "y": 35
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS03/PRS03_05/BCN1/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PRS03_05_BCN2_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 722,
+ "y": 88
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS03/PRS03_05/BCN2/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PRS04_01_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 100,
+ "y": 4
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS04/PRS04_01/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PRS04_03_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "y": 639
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS04/PRS04_03/BCN1/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PRS04_03_BCN2_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 80,
+ "y": 644
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS04/PRS04_03/BCN2/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PRS04_03_BCN2_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 80,
+ "y": 629
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS04/PRS04_03/BCN2/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PRS04_04_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 21,
+ "y": 1240
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS04/PRS04_04/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PS02_05_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 154,
+ "y": 1140
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_05/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PS02_05_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 154,
+ "y": 1125
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_05/BCN1/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PS02_05_BCN2_HRN"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 74,
+ "y": 1145
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_05/BCN2/HRN/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PS02_05_BCN2_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 74,
+ "y": 1160
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_05/BCN2/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PS02_05_BCN3_PUR"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 171,
+ "y": 1125
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_05/BCN3/PUR/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PS02_08_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 154,
+ "y": 341
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_08/BCN1/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PS02_08_BCN2_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 74,
+ "y": 361
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_08/BCN2/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PS02_08_BCN3_PUR"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 154,
+ "y": 364
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_08/BCN3/PUR/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PS02_10_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 189,
+ "y": 163
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_10/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RE03_10_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 409,
+ "y": 265
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_10/BCN1/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RE03_10_BCN2_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 409,
+ "y": 303
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_10/BCN2/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RE03_12_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 192,
+ "y": 463
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_12/BCN1/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RE03_12_BCN2_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 272,
+ "y": 401
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_12/BCN2/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RE03_13_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 272,
+ "y": 1338
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_13/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RE03_13_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 272,
+ "y": 1323
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_13/BCN1/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "SO02_01A_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 489,
+ "y": 163
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01A/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PRS03_01CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 67,
+ "x": 823,
+ "y": 163
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS03/PRS03_01CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PRS03_02CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 915,
+ "y": 100
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS03/PRS03_02CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PRS03_04_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 811,
+ "y": 57
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS03/PRS03_04/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PRS03_04_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 898,
+ "y": 57
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS03/PRS03_04/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PRS03_06_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 618,
+ "y": 57
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS03/PRS03_06/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PRS03_06_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 651,
+ "y": 57
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS03/PRS03_06/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PRS04_01_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 99,
+ "y": 11
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS04/PRS04_01/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PRS04_03_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 28,
+ "y": 669
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS04/PRS04_03/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PRS04_03_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 34,
+ "x": 68,
+ "y": 72
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS04/PRS04_03/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PRS04_04_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 28,
+ "y": 1229
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PRS04/PRS04_04/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS02_05_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 34,
+ "x": 142,
+ "y": 1195
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_05/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS02_05_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 102,
+ "y": 1357
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_05/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS02_05_PE3"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 102,
+ "y": 1589
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_05/PE3/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS02_06_SG01_07_PE1"
+ },
+ "position": {
+ "height": 10,
+ "width": 32,
+ "x": 102,
+ "y": 629.5
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP11/PS02_06/SG01_07/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS02_06_SG01_09_PE1"
+ },
+ "position": {
+ "height": 10,
+ "width": 32,
+ "x": 102,
+ "y": 516.5
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP11/PS02_06/SG01_09/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS02_06_SG01_09_PE2"
+ },
+ "position": {
+ "height": 10,
+ "width": 32,
+ "x": 102,
+ "y": 533.5
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP11/PS02_06/SG01_09/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS02_08_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 102,
+ "y": 237
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_08/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS02_10_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 170,
+ "y": 170
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_10/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS02_11_TPE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 273,
+ "y": 170
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_11/TPE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS02_12_TPE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 290,
+ "y": 170
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_12/TPE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS02_13_TPE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 307,
+ "y": 170
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_13/TPE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS02_14_TPE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 324,
+ "y": 170
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_14/TPE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS02_15_TPE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 341,
+ "y": 170
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_15/TPE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS02_16_TPE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 366,
+ "y": 170
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_16/TPE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS02_18_TPE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 705,
+ "y": 170
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_18/TPE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS02_17_TPE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 377,
+ "y": 170
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_17/TPE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RE03_10_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 270,
+ "y": 312
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_10/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RE03_12_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 34,
+ "x": 260,
+ "y": 363
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_12/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RE03_13_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 34,
+ "x": 260,
+ "y": 1394
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_13/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RE03_13_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 220,
+ "y": 1296
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_13/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RE03_15_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 147,
+ "y": 1405
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_15/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RE03_15_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 208,
+ "y": 1405
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_15/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RE3Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 152,
+ "y": 1440
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "RE3"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "RE3Label_Tooltip"
+ },
+ "position": {
+ "height": 25,
+ "width": 40,
+ "x": 152,
+ "y": 1440
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21_Custom/adiPPH_RE/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.tooltipoverlay"
+ },
+ {
+ "meta": {
+ "name": "PRS4Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 55,
+ "x": 42,
+ "y": 1360
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "PRS4"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "PRS4Label_Tooltip"
+ },
+ "position": {
+ "height": 25,
+ "width": 55,
+ "x": 42,
+ "y": 1360
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21_Custom/adiPPH_PRS/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.tooltipoverlay"
+ },
+ {
+ "meta": {
+ "name": "SGINLabel"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 60,
+ "x": 152,
+ "y": 1240
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "SG IN"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "SGINLabel_Tooltip"
+ },
+ "position": {
+ "height": 25,
+ "width": 60,
+ "x": 152,
+ "y": 1240
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21_Custom/adiPPH_Singulator_Input/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.tooltipoverlay"
+ },
+ {
+ "meta": {
+ "name": "SGOUTLabel"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 80,
+ "x": 152,
+ "y": 230
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "SG OUT"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "SGOUTLabel_Tooltip"
+ },
+ "position": {
+ "height": 25,
+ "width": 80,
+ "x": 152,
+ "y": 230
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21_Custom/adiPPH_Singulator_Output/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.tooltipoverlay"
+ },
+ {
+ "meta": {
+ "name": "PS02_16_TPE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 355,
+ "y": 170
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/PS02/PS02_16/TPE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/248a9ef42da6345b1b06f1dc5873d8e59f41442427c21948a2bf7deaecae7831 b/.resources/248a9ef42da6345b1b06f1dc5873d8e59f41442427c21948a2bf7deaecae7831
new file mode 100644
index 00000000..7c76b7b6
--- /dev/null
+++ b/.resources/248a9ef42da6345b1b06f1dc5873d8e59f41442427c21948a2bf7deaecae7831
@@ -0,0 +1,62 @@
+WITH range_alarm_events AS (
+ SELECT *,
+ /* Get the last time this event was active within the given time range*/
+ (
+ /* Search for the clear event (if exists) for the outer query's active event */
+ SELECT MIN(eventtime)
+ FROM alarm_events e2
+ WHERE e2.eventid = e.eventid /* eventid is unique per alarm instance */
+ AND e2.eventtime >= e.eventtime
+ AND e2.eventtype = 1 /* Look only for the clear event */
+ ORDER BY eventtime ASC
+ LIMIT 1
+ ) AS endtime
+ FROM alarm_events e
+ /* The range for both start/end allows for index optimizations */
+ WHERE eventtime BETWEEN :startDate AND :endDate
+ /* Filter out system events */
+ AND eventflags & 1 != 1
+ /* Filter priority */
+ AND priority >= :priority
+ /* Filter for Active events */
+ AND eventtype = 0
+ ORDER BY eventtime DESC
+ LIMIT 2000
+), range_alarm_events2 AS (
+ SELECT *,
+ LEAST(COALESCE(endtime, NOW()), :endDate) AS endtime_est, /* Clamp to end of time range if clear event is after end time */
+ TIMESTAMPDIFF(SECOND, eventtime, LEAST(COALESCE(endtime, NOW()), :endDate)) AS duration
+ FROM range_alarm_events
+)
+SELECT e.id,
+ e.eventtime AS starttime, e.endtime,
+ /* Translate duration to a string */
+ CAST(SEC_TO_TIME(FLOOR(e.duration)) AS CHAR) AS duration,
+ /* Retrieve data */
+ ddevice.strvalue AS device,
+ displaypath AS description,
+ e.source,
+ /* Translate priority to string */
+ dclass.strvalue AS class,
+ CASE
+ WHEN e.priority=4 THEN "Critical"
+ WHEN e.priority=3 THEN "High"
+ WHEN e.priority=2 THEN "Medium"
+ WHEN e.priority=1 THEN "Low"
+ WHEN e.priority=0 THEN "Diagnostic"
+ ELSE "N/A"
+ END AS priority,
+ /* Retrieve PLCTag */
+ dtag.strvalue AS plctag
+FROM range_alarm_events2 e
+/* Lookup PLCTag */
+JOIN alarm_event_data dtag ON e.id = dtag.id AND dtag.propname = "PLCTag"
+/* Lookup Device */
+JOIN alarm_event_data ddevice ON e.id = ddevice.id AND ddevice.propname = "Device"
+/* Lookup Class */
+JOIN alarm_event_data dclass ON e.id = dclass.id AND dclass.propname = "Class"
+WHERE CASE
+ WHEN dclass.strvalue = "Error" THEN 2
+ WHEN dclass.strvalue = "Warning" THEN 1
+ WHEN dclass.strvalue = "Message" THEN 0
+ END >= :class;
\ No newline at end of file
diff --git a/.resources/25e771e0117ab0c5bdaf4779f9db6e42b614e5c442420b3ef2bc2ce3df7830b3 b/.resources/25e771e0117ab0c5bdaf4779f9db6e42b614e5c442420b3ef2bc2ce3df7830b3
new file mode 100644
index 00000000..35f76b89
--- /dev/null
+++ b/.resources/25e771e0117ab0c5bdaf4779f9db6e42b614e5c442420b3ef2bc2ce3df7830b3
@@ -0,0 +1,1030 @@
+{
+ "custom": {},
+ "params": {},
+ "props": {
+ "defaultSize": {
+ "height": 60,
+ "width": 1600
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "events": {
+ "component": {
+ "onDexClick": {
+ "config": {
+ "script": "\twindow \u003d \"Popups/DeviceWrapper\"\n\tparams \u003d {\n\t\t\"deviceType\": event.type.split(\".\")[-1],\n\t\t\"props\": event.props,\n\t\t\"meta\": event.meta,\n\t\t\"custom\": event.custom\n\t}\n\t# Change device type if available:\n\ttry:\n\t\ttagPath \u003d \"[default]\"+params[\"props\"].status.tagPath+\"/Parameters.DeviceType\"\n\t\tvalue \u003d system.tag.readBlocking([tagPath])[0]\n\t\tif value.quality.isGood():\n\t\t\tparams[\"deviceType\"] \u003d value.value\n\texcept:\n\t\tpass\n\t# Open window, if one is specified:\n\tid \u003d event.props.status.tagPath\n\ttitle \u003d utils.extractName(event.props.status)\n\tif self.session.custom.isMobile:\n\t\tsystem.perspective.navigate(view\u003dwindow, params\u003dparams)\n\telse:\n\t\tsystem.perspective.openPopup(id, window, params, title, resizable\u003dTrue)"
+ },
+ "scope": "G",
+ "type": "script"
+ },
+ "onDexComponentClick": {
+ "config": {
+ "script": "\tparams \u003d {\n\t\t\"type\": event.type,\n\t\t\"props\": event.props,\n\t\t\"meta\": event.meta,\n\t\t\"custom\": event.custom\n\t}\n\tsystem.perspective.openPopup(event.meta.name, \"Windows/Popup/Conveyor\", params)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "DexManager"
+ },
+ "position": {
+ "height": 10,
+ "width": 10
+ },
+ "propConfig": {
+ "props.config": {
+ "binding": {
+ "config": {
+ "path": "session.custom.dexmanager.config"
+ },
+ "type": "property"
+ }
+ },
+ "props.highlight": {
+ "binding": {
+ "config": {
+ "path": "session.custom.dexmanager.highlight"
+ },
+ "enabled": false,
+ "type": "property"
+ }
+ },
+ "props.override": {
+ "binding": {
+ "config": {
+ "expression": "if({session.custom.heatmapSettings.enabled},\r\n\t{session.custom.heatmapSettings.data},\r\n\t0\r\n)"
+ },
+ "transforms": [
+ {
+ "code": "\tif value \u003d\u003d 0:\n\t\treturn {}\n\telse:\n\t\tdata \u003d value\n\t\taggregate \u003d {}\n\t\taggregate_conv \u003d {}\n\t\tmaxCount \u003d 0\n\t\t# Perform aggregates:\n\t\tfor r in range(data.getRowCount()):\n\t\t\tdevice \u003d data.getValueAt(r, \"device\")\n\t\t\tcount \u003d data.getValueAt(r, \"count\")\n\t\t\t# Add count to device:\n\t\t\taggregate[device] \u003d aggregate[device] + count if device in aggregate else count\n\t\t\t# Check if new max:\n\t\t\tmaxCount \u003d aggregate[device] if aggregate[device] \u003e maxCount else maxCount\n\t\t\t# Retrieve conveyor name:\n\t\t\tconv \u003d device.split(\".\")[0]\n\t\t\t# Add count to conveyor:\n\t\t\taggregate_conv[conv] \u003d aggregate_conv[conv] + count if conv in aggregate_conv else count\n\t\t\t# Check if new max:\n\t\t\tmaxCount \u003d aggregate_conv[conv] if aggregate_conv[conv] \u003e maxCount else maxCount\n\t\t# Convert to overrides:\n\t\tresult \u003d {}\n\t\tfor k, v in aggregate.items():\n\t\t\tresult[k] \u003d {\n\t\t\t\t\"tooltip\": k+\"\u003cbr\u003eCount: \"+str(v),\n\t\t\t\t\"color\": \"#FF\"+(format(255 - int(round(255 * v / maxCount)), \u0027x\u0027).zfill(2)*2)\n\t\t\t}\n\t\tfor k, v in aggregate_conv.items():\n\t\t\tresult[\"conveyor_\"+k] \u003d {\n\t\t\t\t\"tooltip\": k+\"\u003cbr\u003eCount: \"+str(v),\n\t\t\t\t\"color\": \"#FF\"+(format(255 - int(round(255 * v / maxCount)), \u0027x\u0027).zfill(2)*2)\n\t\t\t}\n\t\treturn result",
+ "type": "script"
+ }
+ ],
+ "type": "expr"
+ }
+ },
+ "props.overrideAll.config.enableHighlight": {
+ "binding": {
+ "config": {
+ "path": "session.custom.heatmapSettings.enabled"
+ },
+ "enabled": false,
+ "transforms": [
+ {
+ "fallback": null,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": false
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "props.overrideAll.config.isClickable": {
+ "binding": {
+ "config": {
+ "path": "session.custom.heatmapSettings.enabled"
+ },
+ "transforms": [
+ {
+ "fallback": null,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": false
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "props.overrideAll.status.color": {
+ "binding": {
+ "config": {
+ "path": "session.custom.heatmapSettings.enabled"
+ },
+ "transforms": [
+ {
+ "fallback": null,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "#FFF"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "props.overrideAll.status.tooltip": {
+ "binding": {
+ "config": {
+ "path": "session.custom.heatmapSettings.enabled"
+ },
+ "transforms": [
+ {
+ "fallback": null,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": ""
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "props.show": {
+ "binding": {
+ "config": {
+ "struct": {
+ "heatmapDevices": "{session.custom.heatmapSettings.devices}",
+ "heatmapEnabled": "{session.custom.heatmapSettings.enabled}",
+ "show": "{session.custom.dexmanager.show}"
+ },
+ "waitOnAll": true
+ },
+ "transforms": [
+ {
+ "code": "\tif value.heatmapEnabled:\n\t\tdevices \u003d [v.value for v in value.heatmapDevices]\n\t\treturn {\n\t\t\t\"Beacons\": \"Beacons\" in devices,\n\t\t\t\"ConveyorLabels\": True,\n\t\t\t\"ConveyorPatterns\": False,\n\t\t\t\"Conveyors\": True,\n\t\t\t\"DivertPaddles\": True,\n\t\t\t\"EIPs\": \"EIPs\" in devices,\n\t\t\t\"Encoders\": \"Encoders\" in devices,\n\t\t\t\"Estops\": \"Estops\" in devices,\n\t\t\t\"Gaylords\": True,\n\t\t\t\"LimitSwitches\": \"LimitSwitches\" in devices,\n\t\t\t\"MCPs\": \"MCPs\" in devices,\n\t\t\t\"PhotoEyes\": \"PhotoEyes\" in devices,\n\t\t\t\"PushButtons\": \"PushButtons\" in devices,\n\t\t\t\"Scanners\": \"Scanners\" in devices,\n\t\t\t\"VFDs\": \"VFDs\" in devices\n\t\t}\n\telse:\n\t\treturn value.show#{k: v.value for k, v in value.show.iteritems()}",
+ "type": "script"
+ }
+ ],
+ "type": "expr-struct"
+ }
+ }
+ },
+ "props": {
+ "overrideAll": {
+ "config": {
+ "enableHighlight": null
+ },
+ "status": {}
+ }
+ },
+ "type": "dex.controller.manager"
+ },
+ {
+ "meta": {
+ "name": "Label_Date"
+ },
+ "position": {
+ "height": 28,
+ "width": 90
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]Gateway/Date"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderBottomColor": "#000",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "1px",
+ "classes": "Docked/StatusText"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_Time"
+ },
+ "position": {
+ "height": 28,
+ "width": 90,
+ "y": 28
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]Gateway/Time"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderTopColor": "#000",
+ "borderTopStyle": "solid",
+ "borderTopWidth": "1px",
+ "classes": "Docked/StatusText"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_Site"
+ },
+ "position": {
+ "height": 56,
+ "width": 90,
+ "x": 88
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "expression": "{[default]Gateway/Parameters.Customer}"
+ },
+ "transforms": [
+ {
+ "code": "\treturn system.project.getProjectName() + \" \" + value",
+ "type": "script"
+ }
+ ],
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "classes": "Docked/StatusText"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_IPAddr"
+ },
+ "position": {
+ "height": 28,
+ "width": 120,
+ "x": 176
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "path": "session.props.host"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderBottomColor": "#000",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "1px",
+ "classes": "Docked/StatusText"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tif self.session.props.auth.user.userName is not None:\n\t\t#system.perspective.print(\"Logout\")\n\t\tsystem.perspective.logout()\n\telse:\n\t\t#system.perspective.print(\"Login\")\n\t\tsystem.perspective.login()"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Label_User"
+ },
+ "position": {
+ "height": 28,
+ "width": 120,
+ "x": 176,
+ "y": 28
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "expression": "coalesce({session.props.auth.user.userName}, \"LOGIN\")"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderTopColor": "#000",
+ "borderTopStyle": "solid",
+ "borderTopWidth": "1px",
+ "classes": "Docked/StatusText",
+ "cursor": "pointer"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "page": "/help"
+ },
+ "scope": "C",
+ "type": "nav"
+ }
+ }
+ },
+ "meta": {
+ "name": "Nav_Legend"
+ },
+ "position": {
+ "height": 52,
+ "width": 100,
+ "x": 988,
+ "y": 2
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Help"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": [
+ {
+ "config": {
+ "page": "/"
+ },
+ "scope": "C",
+ "type": "nav"
+ },
+ {
+ "config": {
+ "params": {
+ "view": "Windows/Graphics/Overview"
+ },
+ "view": "Windows/GraphicsWrapper"
+ },
+ "scope": "C",
+ "type": "nav"
+ }
+ ]
+ }
+ },
+ "meta": {
+ "name": "Nav_Overview"
+ },
+ "position": {
+ "height": 52,
+ "width": 100,
+ "x": 356,
+ "y": 2
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Overview"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "action": "Toggle",
+ "type": "Page"
+ },
+ "scope": "C",
+ "type": "fullscreen"
+ }
+ }
+ },
+ "meta": {
+ "name": "Nav_ToggleFull"
+ },
+ "position": {
+ "height": 52,
+ "width": 100,
+ "x": 1090,
+ "y": 2
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Fullscreen"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "Label_Status"
+ },
+ "position": {
+ "height": 56,
+ "width": 60,
+ "x": 294
+ },
+ "props": {
+ "style": {
+ "classes": "Docked/StatusText"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Status"
+ },
+ "position": {
+ "height": 40,
+ "width": 40,
+ "x": 304,
+ "y": 8
+ },
+ "propConfig": {
+ "props.elements[0].fill.paint": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]Gateway/CommStatusColor"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "elements": [
+ {
+ "cx": 20,
+ "cy": 20,
+ "fill": {},
+ "r": 19,
+ "stroke": {
+ "paint": "#000",
+ "width": 2
+ },
+ "style": {},
+ "type": "circle"
+ }
+ ],
+ "preserveAspectRatio": "none",
+ "viewBox": "0 0 40 40"
+ },
+ "type": "ia.shapes.svg"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "page": "/alarms/active"
+ },
+ "scope": "C",
+ "type": "nav"
+ }
+ }
+ },
+ "meta": {
+ "name": "Nav_ActiveAlarms"
+ },
+ "position": {
+ "height": 52,
+ "width": 100,
+ "x": 458,
+ "y": 2
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Active Alarms"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "page": "/alarms/hitlist"
+ },
+ "scope": "C",
+ "type": "nav"
+ }
+ }
+ },
+ "meta": {
+ "name": "Nav_HitList"
+ },
+ "position": {
+ "height": 25,
+ "width": 100,
+ "x": 560,
+ "y": 2
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Hit List"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "page": "/alarms/history"
+ },
+ "scope": "C",
+ "type": "nav"
+ }
+ }
+ },
+ "meta": {
+ "name": "Nav_History"
+ },
+ "position": {
+ "height": 25,
+ "width": 100,
+ "x": 560,
+ "y": 29
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "History"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "page": "/statistics"
+ },
+ "scope": "C",
+ "type": "nav"
+ }
+ }
+ },
+ "meta": {
+ "name": "Nav_Statistics"
+ },
+ "position": {
+ "height": 52,
+ "width": 100,
+ "x": 662,
+ "y": 2
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Statistics"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "page": "/status"
+ },
+ "scope": "C",
+ "type": "nav"
+ }
+ }
+ },
+ "meta": {
+ "name": "Nav_Status"
+ },
+ "position": {
+ "height": 52,
+ "width": 100,
+ "x": 764,
+ "y": 2
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Status"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "TooltipOverlay"
+ },
+ "position": {
+ "height": 40,
+ "width": 40,
+ "x": 304,
+ "y": 8
+ },
+ "propConfig": {
+ "props.status.tooltip": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]Gateway/CommStatusTooltip"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "status": {}
+ },
+ "type": "dex.display.tooltipoverlay"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "page": "/custom-reports"
+ },
+ "scope": "C",
+ "type": "nav"
+ }
+ }
+ },
+ "meta": {
+ "name": "Nav_CustomReports"
+ },
+ "position": {
+ "height": 52,
+ "width": 100,
+ "x": 1192,
+ "y": 2
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Custom Reports"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "page": "/config"
+ },
+ "scope": "C",
+ "type": "nav"
+ }
+ }
+ },
+ "meta": {
+ "name": "Nav_Config"
+ },
+ "position": {
+ "height": 52,
+ "width": 100,
+ "x": 1294,
+ "y": 2
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "path": "session.props.auth.user.roles"
+ },
+ "transforms": [
+ {
+ "code": "\troles \u003d [\"Administrator\", \"Developer\", \"Supervisor\", \"Maintenance\"]\n\treturn value !\u003d None and len(value) \u003e 0 and len([i for i in value if i in roles]) \u003e 0",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Config",
+ "visible": true
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\twindow\u003d\"Popups/Heatmap/Config\"\n\tif self.session.custom.isMobile:\n\t\tsystem.perspective.navigate(view\u003dwindow)\n\telse:\n\t\tsystem.perspective.openPopup(\"HeatmapSettings\", window, title\u003d\"Heatmap Configuration\", modal\u003dTrue, overlayDismiss\u003dTrue)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Nav_AlarmHeatmap"
+ },
+ "position": {
+ "height": 52,
+ "width": 100,
+ "x": 1498,
+ "y": 2
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "session.props.auth.user.roles"
+ },
+ "transforms": [
+ {
+ "code": "\troles \u003d [\"Administrator\", \"Developer\"]\n\treturn value !\u003d None and len(value) \u003e 0 and len([i for i in value if i in roles]) \u003e 0",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "expression": "!{session.custom.heatmapSettings.enabled}"
+ },
+ "type": "expr"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Alarm Heatmap",
+ "visible": true
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "LabelHeatMap",
+ "visible": false
+ },
+ "position": {
+ "height": 56,
+ "width": 732,
+ "x": 458
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "session.custom.heatmapSettings.enabled"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "props.style.backgroundColor": {
+ "binding": {
+ "config": {
+ "expression": "if({session.custom.heatmapSettings.enabled},\r\n\tif({[default]Gateway/ToggleTag},\r\n\t\t\"#FF0\",\r\n\t\t\"#F00\"\r\n\t),\r\n\t\"#AAA\"\r\n)"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderBottomStyle": "none",
+ "borderBottomWidth": 2,
+ "borderLeftStyle": "solid",
+ "borderLeftWidth": 2,
+ "borderRightStyle": "solid",
+ "borderRightWidth": 2,
+ "borderTopStyle": "none",
+ "borderTopWidth": 2,
+ "fontWeight": "bold",
+ "lineHeight": "16px",
+ "textAlign": "center",
+ "textTransform": "uppercase"
+ },
+ "text": "Heatmap Mode Active"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "LabelFireAlarm",
+ "visible": null
+ },
+ "position": {
+ "height": 56,
+ "width": 178
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]Gateway/FireAlarm"
+ },
+ "type": "tag"
+ },
+ "persistent": true
+ },
+ "props.style.backgroundColor": {
+ "binding": {
+ "config": {
+ "expression": "if({[default]Gateway/FireAlarm},\r\n\tif({[default]Gateway/ToggleTag},\r\n\t\t\"#FF0\",\r\n\t\t\"#F00\"\r\n\t),\r\n\t\"#AAA\"\r\n)"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderBottomStyle": "none",
+ "borderBottomWidth": 2,
+ "borderLeftStyle": "solid",
+ "borderLeftWidth": 2,
+ "borderRightStyle": "solid",
+ "borderRightWidth": 2,
+ "borderTopStyle": "none",
+ "borderTopWidth": 2,
+ "fontWeight": "bold",
+ "lineHeight": "16px",
+ "textAlign": "center",
+ "textTransform": "uppercase"
+ },
+ "text": "Building Fire Alarm"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "page": "/commission"
+ },
+ "scope": "C",
+ "type": "nav"
+ }
+ }
+ },
+ "meta": {
+ "name": "Nav_Commission"
+ },
+ "position": {
+ "height": 52,
+ "width": 100,
+ "x": 1396,
+ "y": 2
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "path": "session.props.auth.user.roles"
+ },
+ "transforms": [
+ {
+ "code": "\troles \u003d [\"Administrator\", \"Developer\", \"Supervisor\", \"Maintenance\"]\n\treturn value !\u003d None and len(value) \u003e 0 and len([i for i in value if i in roles]) \u003e 0",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Commission",
+ "visible": true
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "page": "/cameras"
+ },
+ "scope": "C",
+ "type": "nav"
+ }
+ }
+ },
+ "meta": {
+ "name": "Nav_JamCameras"
+ },
+ "position": {
+ "height": 52,
+ "width": 100,
+ "x": 866,
+ "y": 2
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Jam Cameras"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "page": "/autStand"
+ },
+ "scope": "C",
+ "type": "nav"
+ }
+ }
+ },
+ "meta": {
+ "name": "autStand"
+ },
+ "position": {
+ "height": 52,
+ "width": 117,
+ "x": 1599.67,
+ "y": 2
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Navigate to autStand"
+ },
+ "type": "ia.input.button"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "background": "#AAA",
+ "border-bottom": "2px solid #000",
+ "border-top": "2px solid #000"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/295c8403e00dabfc746e93cf216157199feb8db414bcdebb0de6dce054278dc4 b/.resources/295c8403e00dabfc746e93cf216157199feb8db414bcdebb0de6dce054278dc4
new file mode 100644
index 00000000..fb1801e0
--- /dev/null
+++ b/.resources/295c8403e00dabfc746e93cf216157199feb8db414bcdebb0de6dce054278dc4
@@ -0,0 +1,7 @@
+{
+ "base": {
+ "style": {
+ "color": "#808080"
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/296ec4f70ae24bfed7e13d578602e2b7a3b3f9e22f425f12c2382d39a5423b97 b/.resources/296ec4f70ae24bfed7e13d578602e2b7a3b3f9e22f425f12c2382d39a5423b97
new file mode 100644
index 00000000..6c665e31
--- /dev/null
+++ b/.resources/296ec4f70ae24bfed7e13d578602e2b7a3b3f9e22f425f12c2382d39a5423b97
@@ -0,0 +1,84 @@
+{
+ "custom": {},
+ "params": {},
+ "props": {
+ "defaultSize": {
+ "height": 306,
+ "width": 948
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "OXD_Problem_Solve"
+ },
+ "position": {
+ "height": 286,
+ "width": 928,
+ "x": 10,
+ "y": 10
+ },
+ "props": {
+ "path": "Windows/Graphics/Templates/OXD_Problem_Solve",
+ "style": {
+ "classes": "painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NavButton_OXD_Singulator"
+ },
+ "position": {
+ "height": 40,
+ "width": 128,
+ "x": 50,
+ "y": 247
+ },
+ "props": {
+ "params": {
+ "enableTooltip": true,
+ "label": null,
+ "tagPath": "[default]OXDSingulatorStatus",
+ "view": ""
+ },
+ "path": "Templates/Buttons/NavButton",
+ "style": {
+ "transform": "scale(1.5)"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NavButton_OXD_Sorter"
+ },
+ "position": {
+ "height": 40,
+ "width": 97,
+ "x": 760,
+ "y": 247
+ },
+ "props": {
+ "params": {
+ "enableTooltip": true,
+ "label": null,
+ "tagPath": "[default]OXDSorterStatus",
+ "view": ""
+ },
+ "path": "Templates/Buttons/NavButton",
+ "style": {
+ "transform": "scale(1.5)"
+ }
+ },
+ "type": "ia.display.view"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/2a5caa53738f67380789ee81cf37484c1271d5dc8dd1bcecd1892051c008fb30 b/.resources/2a5caa53738f67380789ee81cf37484c1271d5dc8dd1bcecd1892051c008fb30
new file mode 100644
index 00000000..9dce5720
--- /dev/null
+++ b/.resources/2a5caa53738f67380789ee81cf37484c1271d5dc8dd1bcecd1892051c008fb30
@@ -0,0 +1,24 @@
+WITH LANES AS (
+ SELECT
+ MIN(timestamp) AS start_timestamp,
+ MAX(timestamp) AS end_timestamp,
+ 3600/TIMESTAMPDIFF(SECOND, :startDate, :endDate) AS pph_multiplier,
+ lane_id AS lane,
+ SUM(count) AS total
+ FROM pe_history
+ WHERE timestamp BETWEEN :startDate AND :endDate
+ AND lane_id LIKE "CH%"
+ GROUP BY lane_id
+ ORDER BY lane_id
+)
+SELECT
+ start_timestamp,
+ end_timestamp,
+ lane,
+ /* Counts: */
+ total AS total_count,
+ /* PPH: */
+ ROUND(total*pph_multiplier) AS total_pph,
+ /* Percents: */
+ ROUND(total/total, 4) AS total_percent
+FROM LANES;
\ No newline at end of file
diff --git a/.resources/2f86ca204a5c841cacd327198b8f5e6b16a8d215aa08765e966fe6150aa94bcd b/.resources/2f86ca204a5c841cacd327198b8f5e6b16a8d215aa08765e966fe6150aa94bcd
new file mode 100644
index 00000000..0d972b24
--- /dev/null
+++ b/.resources/2f86ca204a5c841cacd327198b8f5e6b16a8d215aa08765e966fe6150aa94bcd
@@ -0,0 +1,328 @@
+{
+ "custom": {},
+ "params": {
+ "meta": {
+ "name": "Conveyor"
+ },
+ "props": {
+ "config": {
+ "enableHighlight": true,
+ "isClickable": false,
+ "showLabel": true,
+ "type": "belt"
+ },
+ "status": {
+ "color": "#aaa",
+ "isManual": false,
+ "showAlways": true,
+ "tagPath": "",
+ "tooltip": ""
+ }
+ }
+ },
+ "propConfig": {
+ "params.meta": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.meta.name": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 105,
+ "width": 500
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Conveyor"
+ },
+ "position": {
+ "height": 30,
+ "width": 150,
+ "x": 20,
+ "y": 20
+ },
+ "propConfig": {
+ "meta.name": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Label"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \u0027Conveyor\u0027)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ },
+ "persistent": true
+ },
+ "props.config.showLabel": {
+ "binding": {
+ "config": {
+ "path": "view.params.props.config.showLabel"
+ },
+ "overlayOptOut": true,
+ "type": "property"
+ }
+ },
+ "props.config.type": {
+ "binding": {
+ "config": {
+ "path": "view.params.props.config.type"
+ },
+ "overlayOptOut": true,
+ "type": "property"
+ }
+ },
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "expression": "try(\r\n\tjsonSet({value}, \"showAlways\", true),\r\n\t{view.params.props.status}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "lbName"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 5
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.LabelFull"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \u0027\u0027)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_1"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 5
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Name: "
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_11"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 40
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Status:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbStatus"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 40
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "code": "\treturn utils.extractStatus(value)",
+ "type": "script"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_12"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 75
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Panel:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbStatus_0"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 75
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.OPC_Server"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \"Unknown\")",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "background-color": "#CFCFCF"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/30a96bd63380948aab8ac8b76b10ba5cb350539f734af24cf66f8b1f8cab2bc4 b/.resources/30a96bd63380948aab8ac8b76b10ba5cb350539f734af24cf66f8b1f8cab2bc4
new file mode 100644
index 00000000..3c5cdd11
--- /dev/null
+++ b/.resources/30a96bd63380948aab8ac8b76b10ba5cb350539f734af24cf66f8b1f8cab2bc4
@@ -0,0 +1,38 @@
+WITH INDUCTS AS (
+ SELECT
+ DATE_FORMAT(MIN(s04_timestamp), "%Y-%m-%d %H:00") AS start_timestamp,
+ sorter,
+ induct,
+ CONCAT("H",
+ CAST(
+ TIMESTAMPDIFF(
+ HOUR,
+ DATE_FORMAT(MIN(s04_timestamp), "%Y-%m-%d %H:00:00"),
+ DATE_FORMAT(LEAST(CURRENT_TIMESTAMP(), :endDate), "%Y-%m-%d %H:00:00")
+ ) AS CHAR
+ )
+ ) AS hour,
+ COUNT(*) AS total
+ FROM package_history
+ WHERE s04_timestamp BETWEEN :startDate AND :endDate
+ GROUP BY sorter, induct, DATE_FORMAT(s04_timestamp, "%Y-%m-%d %H:00")
+), SORTERS AS (
+ SELECT
+ start_timestamp,
+ sorter,
+ SUM(total) AS total
+ FROM INDUCTS
+ GROUP BY sorter, start_timestamp
+)
+SELECT
+ I.start_timestamp AS time,
+ hour,
+ /* Counts: */
+ I.total AS total_count,
+ /* PPH: */
+ I.total AS total_pph,
+ /* Percents: */
+ ROUND(I.total/S.total, 4) AS 'total/sorter_percent'
+FROM INDUCTS I, SORTERS S
+WHERE induct=:induct AND I.sorter=S.sorter AND I.start_timestamp=S.start_timestamp
+ORDER BY I.start_timestamp ASC;
\ No newline at end of file
diff --git a/.resources/30afa22cb8bc2c85c801a19bdc6db97053670a8cde30245eadd98d3240685807 b/.resources/30afa22cb8bc2c85c801a19bdc6db97053670a8cde30245eadd98d3240685807
new file mode 100644
index 00000000..f14bb253
--- /dev/null
+++ b/.resources/30afa22cb8bc2c85c801a19bdc6db97053670a8cde30245eadd98d3240685807
@@ -0,0 +1,1092 @@
+{
+ "custom": {},
+ "params": {
+ "titleExtra": "0 rows",
+ "usesTimewidget": true
+ },
+ "propConfig": {
+ "params.titleExtra": {
+ "paramDirection": "output",
+ "persistent": true
+ },
+ "params.usesTimewidget": {
+ "binding": {
+ "config": {
+ "expression": "true"
+ },
+ "type": "expr"
+ },
+ "paramDirection": "output",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 324,
+ "width": 1600
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "SpiralLaneStatus"
+ },
+ "position": {
+ "height": "100%",
+ "width": "100%"
+ },
+ "propConfig": {
+ "props.data": {
+ "binding": {
+ "config": {
+ "parameters": {
+ "endDate": "{session.custom.timewidget.endDate}",
+ "startDate": "{session.custom.timewidget.startDate}",
+ "where": "\"lane LIKE \\\"CH-2%\\\"\""
+ },
+ "queryPath": "Status/LaneStatus"
+ },
+ "transforms": [
+ {
+ "code": "\tcou \u003d utils.getRowCount(value)\n\tast \u003d \"*\" if cou \u003e\u003d 2000 else \"\"\n\tself.view.params.titleExtra \u003d \"{:n}{} rows\".format(cou, ast)\n\t# Return data\n\treturn value",
+ "type": "script"
+ }
+ ],
+ "type": "query"
+ }
+ }
+ },
+ "props": {
+ "cells": {
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "1px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "1px",
+ "color": "#000",
+ "fontFamily": "Helvetica",
+ "fontSize": "14px"
+ }
+ },
+ "columns": [
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "start_timestamp",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Start Timestamp"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 150
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "end_timestamp",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "End Timestamp"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": "value"
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 150
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "sorter",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Sorter"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": false,
+ "width": 80
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "lane",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Lane"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 110
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "available_count",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Available (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 110
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "disabled_count",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Disabled (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 110
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "full_count",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Full (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 100
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "full_warn_count",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "50% Full (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 110
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "jam_count",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Jam (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 100
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "faulted_count",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Faulted (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 100
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "available_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Available Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "disabled_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Disabled Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "full_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Full Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "full_warn_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "50% Full Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "jam_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Jam Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "faulted_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Faulted Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ }
+ ],
+ "filter": {
+ "enabled": true
+ },
+ "pager": {
+ "bottom": false
+ },
+ "rows": {
+ "highlight": {
+ "enabled": false
+ },
+ "striped": {
+ "enabled": false
+ },
+ "style": {
+ "classes": "table/highlight"
+ }
+ },
+ "style": {
+ "fontFamily": "Helvetica",
+ "fontSize": "14px",
+ "fontWeight": "bold"
+ }
+ },
+ "scripts": {
+ "customMethods": [],
+ "extensionFunctions": null,
+ "messageHandlers": [
+ {
+ "messageType": "export-data",
+ "pageScope": true,
+ "script": "\tutils.downloadCSV(self, \"Spiral Lane Status\")",
+ "sessionScope": false,
+ "viewScope": false
+ }
+ ]
+ },
+ "type": "ia.display.table"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/3112d4b4bde4180f2aa3ba1508337325a3d1c1238e5edf5bd7ad801516d0c3c6 b/.resources/3112d4b4bde4180f2aa3ba1508337325a3d1c1238e5edf5bd7ad801516d0c3c6
new file mode 100644
index 00000000..c9d94602
--- /dev/null
+++ b/.resources/3112d4b4bde4180f2aa3ba1508337325a3d1c1238e5edf5bd7ad801516d0c3c6
@@ -0,0 +1,7 @@
+{
+ "base": {
+ "style": {
+ "backgroundColor": "#FFDC00"
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/322c9a5fa05fdfd83b125be19c2a764dff894e44967e652b699bc5ce9c936fe1 b/.resources/322c9a5fa05fdfd83b125be19c2a764dff894e44967e652b699bc5ce9c936fe1
new file mode 100644
index 00000000..d9655407
--- /dev/null
+++ b/.resources/322c9a5fa05fdfd83b125be19c2a764dff894e44967e652b699bc5ce9c936fe1
@@ -0,0 +1,332 @@
+{
+ "custom": {},
+ "params": {
+ "titleExtra": "5 rows",
+ "usesTimewidget": false
+ },
+ "propConfig": {
+ "params.titleExtra": {
+ "paramDirection": "output",
+ "persistent": true
+ },
+ "params.usesTimewidget": {
+ "binding": {
+ "config": {
+ "expression": "false"
+ },
+ "type": "expr"
+ },
+ "paramDirection": "output",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 324,
+ "width": 1600
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "SpiralStatus"
+ },
+ "position": {
+ "height": "100%",
+ "width": "50%"
+ },
+ "propConfig": {
+ "props.data": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]SpiralStatus"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "cells": {
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "1px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "1px",
+ "color": "#000",
+ "fontFamily": "Helvetica",
+ "fontSize": "14px"
+ }
+ },
+ "columns": [
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "status",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Status"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 160
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "count",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Count (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": "value"
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 160
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "percent",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Percentage (%)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0.##%",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 160
+ }
+ ],
+ "filter": {
+ "enabled": true
+ },
+ "pager": {
+ "bottom": false
+ },
+ "rows": {
+ "highlight": {
+ "enabled": false
+ },
+ "striped": {
+ "enabled": false
+ },
+ "style": {
+ "classes": "table/highlight"
+ }
+ },
+ "style": {
+ "fontFamily": "Helvetica",
+ "fontSize": "14px",
+ "fontWeight": "bold"
+ }
+ },
+ "scripts": {
+ "customMethods": [],
+ "extensionFunctions": null,
+ "messageHandlers": [
+ {
+ "messageType": "export-data",
+ "pageScope": true,
+ "script": "\tutils.downloadCSV(self, \"Spiral Status\")",
+ "sessionScope": false,
+ "viewScope": false
+ }
+ ]
+ },
+ "type": "ia.display.table"
+ },
+ {
+ "meta": {
+ "name": "PieChart"
+ },
+ "position": {
+ "height": "100%",
+ "width": "50%",
+ "x": "50%"
+ },
+ "propConfig": {
+ "props.data": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]SpiralStatus"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "colors": [
+ "limegreen",
+ "#FF0",
+ "#00F",
+ "#AAA",
+ "#FF8C00",
+ "#F00",
+ "#808080"
+ ],
+ "style": {
+ "borderLeftColor": "#000",
+ "borderLeftStyle": "solid",
+ "borderLeftWidth": 2
+ },
+ "threeDimensional": true,
+ "title": "Spiral Status"
+ },
+ "type": "ia.chart.pie"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/322e1238c0a626228737b6a6be571cdc581c3b83d64debee8930ca265d5813aa b/.resources/322e1238c0a626228737b6a6be571cdc581c3b83d64debee8930ca265d5813aa
new file mode 100644
index 00000000..08179f1c
--- /dev/null
+++ b/.resources/322e1238c0a626228737b6a6be571cdc581c3b83d64debee8930ca265d5813aa
@@ -0,0 +1,773 @@
+{
+ "custom": {},
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "mirror": false,
+ "rotation": 0,
+ "tagPath": "[default]MCP03/CH_20105/CH_20105"
+ },
+ "propConfig": {
+ "params.alwaysShowAll": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.isClickable": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.mirror": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.rotation": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.tagPath": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 60,
+ "width": 85
+ },
+ "loading": {
+ "mode": "blocking"
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tself.parent.openPopup()"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Gaylord_16"
+ },
+ "position": {
+ "height": 31,
+ "width": 31,
+ "x": 54,
+ "y": 29
+ },
+ "propConfig": {
+ "props.config.isClickable": {
+ "binding": {
+ "config": {
+ "expression": "!{view.params.isClickable}"
+ },
+ "type": "expr"
+ }
+ },
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/GLL/Graphics"
+ },
+ "overlayOptOut": true,
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {}
+ },
+ "type": "dex.display.gaylord"
+ },
+ {
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tself.parent.openPopup()"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "SpiralChute_241"
+ },
+ "position": {
+ "height": 60,
+ "width": 60
+ },
+ "propConfig": {
+ "props.config.isClickable": {
+ "binding": {
+ "config": {
+ "expression": "!{view.params.isClickable}"
+ },
+ "type": "expr"
+ }
+ },
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/CH/Graphics"
+ },
+ "overlayOptOut": true,
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {}
+ },
+ "type": "dex.display.spiralchute"
+ },
+ {
+ "meta": {
+ "name": "GS1"
+ },
+ "position": {
+ "height": 13,
+ "width": 13,
+ "x": 72,
+ "y": 15
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/GS1/Enable/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "BCN1_GRN",
+ "visible": false
+ },
+ "position": {
+ "height": 10,
+ "rotate": {},
+ "width": 10,
+ "x": 61
+ },
+ "propConfig": {
+ "position.rotate.angle": {
+ "binding": {
+ "config": {
+ "path": "view.params.rotation"
+ },
+ "type": "property"
+ }
+ },
+ "position.y": {
+ "binding": {
+ "config": {
+ "expression": "if({view.params.rotation} \u003d 180, 0, 18)"
+ },
+ "type": "expr"
+ }
+ },
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/BCN1/GRN/Graphics"
+ },
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "BCN1_AMB"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {},
+ "width": 10,
+ "x": 61,
+ "y": 9
+ },
+ "propConfig": {
+ "position.rotate.angle": {
+ "binding": {
+ "config": {
+ "path": "view.params.rotation"
+ },
+ "type": "property"
+ }
+ },
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/BCN1/AMB/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "Ch_Full_PE"
+ },
+ "position": {
+ "height": 7,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "315deg"
+ },
+ "width": 30,
+ "x": 1,
+ "y": 53
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/Ch_Full_PE/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RS1"
+ },
+ "position": {
+ "height": 13,
+ "width": 13,
+ "x": 72
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/RS1/Restart/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "GLL_Open_PX"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {},
+ "width": 10,
+ "x": 72,
+ "y": 49
+ },
+ "propConfig": {
+ "position.rotate.angle": {
+ "binding": {
+ "config": {
+ "path": "view.params.rotation"
+ },
+ "type": "property"
+ }
+ },
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/GLL_Open_PX/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": "PX"
+ }
+ },
+ "type": "dex.display.limitswitch"
+ },
+ {
+ "meta": {
+ "name": "GLL_Closed_PX"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {},
+ "width": 10,
+ "x": 61,
+ "y": 49
+ },
+ "propConfig": {
+ "position.rotate.angle": {
+ "binding": {
+ "config": {
+ "path": "view.params.rotation"
+ },
+ "type": "property"
+ }
+ },
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/GLL_Closed_PX/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": "PX"
+ }
+ },
+ "type": "dex.display.limitswitch"
+ },
+ {
+ "meta": {
+ "name": "BCN1_BLU"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {},
+ "width": 10,
+ "x": 61
+ },
+ "propConfig": {
+ "position.rotate.angle": {
+ "binding": {
+ "config": {
+ "path": "view.params.rotation"
+ },
+ "type": "property"
+ }
+ },
+ "position.y": {
+ "binding": {
+ "config": {
+ "expression": "if({view.params.rotation} \u003d 180, 18, 0)"
+ },
+ "type": "expr"
+ }
+ },
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/BCN1/BLU/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "Ch_Half_PE"
+ },
+ "position": {
+ "height": 7,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": 135
+ },
+ "width": 30,
+ "x": 58,
+ "y": 6
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/Ch_Half_PE/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "GLL_Cart_Full_PE"
+ },
+ "position": {
+ "height": 7,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 16,
+ "x": 81,
+ "y": 47
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/GLL_Cart_Full_PE/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "diffuse"
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "GLL_Present_PE"
+ },
+ "position": {
+ "height": 7,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 16,
+ "x": 68,
+ "y": 33
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/GLL_Present_PE/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "diffuse"
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "Ch_Jam_PE"
+ },
+ "position": {
+ "height": 7,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": 225
+ },
+ "width": 30,
+ "x": 53,
+ "y": 58
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/CH_Jam_PE/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FIO"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "angle": 270
+ },
+ "width": 20,
+ "x": -5,
+ "y": 5
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/FIO1/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "Cart_Present_PE"
+ },
+ "position": {
+ "height": 7,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 16,
+ "x": 75,
+ "y": 33
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/Cart_Present_PE/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "diffuse"
+ }
+ },
+ "type": "dex.display.photoeye"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "propConfig": {
+ "props.style.transform": {
+ "binding": {
+ "config": {
+ "path": "view.params.mirror"
+ },
+ "transforms": [
+ {
+ "fallback": null,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "scale(-1, 1)"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "scripts": {
+ "customMethods": [
+ {
+ "name": "openPopup",
+ "params": [],
+ "script": "\tif self.view.params.isClickable:\n\t\tid \u003d \"SpiralChute|\" + self.view.params.tagPath\n\t\ttitle \u003d utils.prettyName(self.view.params.tagPath.split(\"/\")[-1])\n\t\tparams \u003d { \n\t\t\t\"deviceType\": \"spiralchute\",\n\t\t\t\"props\": { \n\t\t\t\t\"config\": {\n\t\t\t\t\t\"alwaysShowAll\": self.view.params.alwaysShowAll,\n\t\t\t\t\t\"isClickable\": self.view.params.isClickable,\n\t\t\t\t\t\"rotation\": self.view.params.rotation\n\t\t\t\t},\n\t\t\t\t\"status\": {\n\t\t\t\t\t\"tagPath\": self.view.params.tagPath\n\t\t\t\t}\n\t\t \t},\n\t\t \t\"tabs\": [\"Controls\", \"Alarm History\", \"Devices\"]\t\t\n\t\t}\n\t\tsystem.perspective.openPopup(id, \"Popups/DeviceWrapper\", params, title, resizable \u003d True)"
+ }
+ ],
+ "extensionFunctions": null,
+ "messageHandlers": []
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/3335fe09460960476d91602865d47d1eaf58d541fe0fd3bdae17f5e7d041c5a0 b/.resources/3335fe09460960476d91602865d47d1eaf58d541fe0fd3bdae17f5e7d041c5a0
new file mode 100644
index 00000000..74c51aa7
--- /dev/null
+++ b/.resources/3335fe09460960476d91602865d47d1eaf58d541fe0fd3bdae17f5e7d041c5a0
@@ -0,0 +1,4 @@
+SELECT DISTINCT lane_id
+FROM pe_history
+WHERE lane_id LIKE "CH%"
+ORDER BY lane_id;
\ No newline at end of file
diff --git a/.resources/369c41092b804afad9f8d51446a6e7a3be9028fa7458c9c284aebd605409019a b/.resources/369c41092b804afad9f8d51446a6e7a3be9028fa7458c9c284aebd605409019a
new file mode 100644
index 00000000..397564ca
--- /dev/null
+++ b/.resources/369c41092b804afad9f8d51446a6e7a3be9028fa7458c9c284aebd605409019a
@@ -0,0 +1,549 @@
+{
+ "custom": {},
+ "params": {
+ "meta": {
+ "name": "MCP"
+ },
+ "props": {
+ "config": {
+ "enableHighlight": true,
+ "isClickable": false
+ },
+ "status": {
+ "color": "#aaa",
+ "showAlways": true,
+ "tagPath": "",
+ "tooltip": ""
+ }
+ }
+ },
+ "propConfig": {
+ "params.meta": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.meta.name": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 180,
+ "width": 500
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "MCP"
+ },
+ "position": {
+ "height": 40,
+ "width": 100,
+ "x": 50,
+ "y": 15
+ },
+ "propConfig": {
+ "meta.name": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Label"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \u0027MCP\u0027)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ },
+ "persistent": true
+ },
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "expression": "try(\r\n\tjsonSet({value}, \"showAlways\", true),\r\n\t{view.params.props.status}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ }
+ },
+ "type": "dex.display.mcp"
+ },
+ {
+ "meta": {
+ "name": "lbStatus"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 40
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "code": "\treturn utils.extractStatus(value)",
+ "type": "script"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbName"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 5
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.LabelFull"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \u0027\u0027)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_1"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 5
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Name: "
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_11"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 40
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Status:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_12"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 75
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Panel:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbStatus_0"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 75
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.OPC_Server"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \"Unknown\")",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "CPU_Switch"
+ },
+ "position": {
+ "height": 40,
+ "rotate": {
+ "angle": "135deg"
+ },
+ "width": 40,
+ "x": 80,
+ "y": 100
+ },
+ "propConfig": {
+ "position.rotate.angle": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/aoCPU.jsonValues"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "code": "\ttry:\n\t\tif value.Key_Run:\n\t\t\treturn \"0deg\"\n\t\telif value.Key_Rem:\n\t\t\treturn \"45deg\"\n\t\telif value.Key_Pgm:\n\t\t\treturn \"90deg\"\n\t\telse:\n\t\t\treturn \"135deg\"\n\texcept:\n\t\treturn \"135deg\"",
+ "type": "script"
+ }
+ ],
+ "type": "tag"
+ },
+ "persistent": true
+ },
+ "props.elements[0].d": {
+ "binding": {
+ "config": {
+ "expression": "if({this.position.rotate.angle}\u003d\"135deg\",\r\n\t\"M40,40L0,0\",\r\n\t\"M40,40L0,0H20M0,0V20\"\r\n)"
+ },
+ "overlayOptOut": true,
+ "type": "expr"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "elements": [
+ {
+ "d": "M40,40L0,0",
+ "fill": {
+ "paint": "none"
+ },
+ "stroke": {
+ "linecap": "square",
+ "paint": "#000",
+ "width": 5
+ },
+ "type": "path"
+ }
+ ],
+ "viewBox": "0 0 41 41"
+ },
+ "type": "ia.shapes.svg"
+ },
+ {
+ "meta": {
+ "name": "Label"
+ },
+ "position": {
+ "height": 20,
+ "width": 40,
+ "x": 40,
+ "y": 70
+ },
+ "propConfig": {
+ "props.style.borderWidth": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/aoCPU/Key_Run"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "forceQuality({value}, 192)",
+ "type": "expression"
+ },
+ {
+ "fallback": 0,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": 2
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": 0,
+ "fontSize": 11,
+ "fontWeight": "bold",
+ "textAlign": "center",
+ "user-select": "none"
+ },
+ "text": "RUN"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_0"
+ },
+ "position": {
+ "height": 20,
+ "width": 40,
+ "x": 80,
+ "y": 70
+ },
+ "propConfig": {
+ "props.style.borderWidth": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/aoCPU/Key_Rem"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "forceQuality({value}, 192)",
+ "type": "expression"
+ },
+ {
+ "fallback": 0,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": 2
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": 0,
+ "fontSize": 11,
+ "fontWeight": "bold",
+ "textAlign": "center",
+ "user-select": "none"
+ },
+ "text": "REM"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_2"
+ },
+ "position": {
+ "height": 20,
+ "width": 40,
+ "x": 120,
+ "y": 70
+ },
+ "propConfig": {
+ "props.style.borderWidth": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/aoCPU/Key_Pgm"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "forceQuality({value}, 192)",
+ "type": "expression"
+ },
+ {
+ "fallback": 0,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": 2
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": 0,
+ "fontSize": 11,
+ "fontWeight": "bold",
+ "textAlign": "center",
+ "user-select": "none"
+ },
+ "text": "PGM"
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "background-color": "#CFCFCF"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/378b924c2c2a4f8fb55da93dbf03a59158982b1d01cecec1182cb468a777d9bf b/.resources/378b924c2c2a4f8fb55da93dbf03a59158982b1d01cecec1182cb468a777d9bf
new file mode 100644
index 00000000..fa1c77fc
--- /dev/null
+++ b/.resources/378b924c2c2a4f8fb55da93dbf03a59158982b1d01cecec1182cb468a777d9bf
@@ -0,0 +1,290 @@
+{
+ "custom": {},
+ "params": {
+ "meta": {
+ "name": "VFD"
+ },
+ "props": {
+ "config": {
+ "enableHighlight": true,
+ "isClickable": false
+ },
+ "status": {
+ "color": {
+ "left": "#B3B3B3",
+ "right": "#D3D3D3"
+ },
+ "showAlways": true,
+ "tagPath": "[default]MCP03/RO02/RO02_03/VFD",
+ "tooltip": ""
+ }
+ }
+ },
+ "propConfig": {
+ "params.meta": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.meta.name": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 105,
+ "width": 500
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "VFD"
+ },
+ "position": {
+ "height": 64,
+ "width": 64,
+ "x": 67.5,
+ "y": 17.5
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "expression": "try(\r\n\tjsonSet({value}, \"showAlways\", true),\r\n\t{view.params.props.status}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "Label_15"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 40
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Status:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbStatus"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 40
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "code": "\treturn utils.extractStatus(value)",
+ "type": "script"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_1"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 5
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Name: "
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbName"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 5
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.LabelFull"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \u0027\u0027)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_12"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 75
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Panel:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbStatus_0"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 75
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.OPC_Server"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \"Unknown\")",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "background-color": "#CFCFCF"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/3968275e0d5589471426a988c7f8c82d50053c0dce0bacd4619ac7ebbf1d6792 b/.resources/3968275e0d5589471426a988c7f8c82d50053c0dce0bacd4619ac7ebbf1d6792
new file mode 100644
index 00000000..fd816f35
--- /dev/null
+++ b/.resources/3968275e0d5589471426a988c7f8c82d50053c0dce0bacd4619ac7ebbf1d6792
@@ -0,0 +1,238 @@
+{
+ "custom": {},
+ "params": {
+ "enableTooltip": true,
+ "label": null,
+ "tagPath": "",
+ "view": ""
+ },
+ "propConfig": {
+ "params.enableTooltip": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.label": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.tagPath": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.view": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 40,
+ "width": 80
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tself.parent.openWindow()"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Status"
+ },
+ "position": {
+ "height": "100%",
+ "width": "100%"
+ },
+ "propConfig": {
+ "props.style.backgroundColor": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}.jsonValues"
+ },
+ "transforms": [
+ {
+ "expression": "try(\r\n\tif(jsonGet({value}, \"Estop_Active\") \u0026\u0026 {[default]Gateway/ToggleTag},\r\n\t\t\"#F00\",\t\t// Estop\r\n\t\tif(jsonGet({value}, \"bStarted\"),\r\n\t\t\t\"#0F0\",\t// Running\r\n\t\t\t\"#AAA\"\t// Stopped\r\n\t\t)\r\n\t),\r\n\t\"#808080\" // Unknown\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": 1
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tself.parent.openWindow()"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Text"
+ },
+ "position": {
+ "height": "calc(100% - 10px)",
+ "width": "calc(100% - 10px)",
+ "x": 5,
+ "y": 5
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.LabelFull"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({view.params.label}, {value}, \"Unknown\")",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#FFF",
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": 1,
+ "fontSize": "12px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "paddingLeft": "5px",
+ "textOverflow": "ellipsis",
+ "textTransform": "uppercase",
+ "user-select": "none",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tself.parent.openWindow()"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "TooltipOverlay"
+ },
+ "position": {
+ "height": "100%",
+ "width": "100%"
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "expression": "{view.params.enableTooltip} \u0026\u0026 {view.params.tagPath} !\u003d \"\""
+ },
+ "type": "expr"
+ }
+ },
+ "props.status.tooltip": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "expression": "if(isGood({value}),\r\n\tjsonGet({value}, \"tooltip\"),\r\n\t\"Tooltip not configured\"\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "status": {}
+ },
+ "type": "dex.display.tooltipoverlay"
+ }
+ ],
+ "events": {
+ "dom": {
+ "onMouseEnter": {
+ "config": {
+ "script": "\tself.session.custom.areaHover \u003d nav.getAreas(self.view.params.view)"
+ },
+ "enabled": false,
+ "scope": "G",
+ "type": "script"
+ },
+ "onMouseLeave": {
+ "config": {
+ "script": "\tself.session.custom.areaHover \u003d []"
+ },
+ "enabled": false,
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "cursor": "pointer"
+ }
+ },
+ "scripts": {
+ "customMethods": [
+ {
+ "name": "openWindow",
+ "params": [],
+ "script": "\tview \u003d self.view.params.view\n\tif view in [\"\", None]:\n\t\tview \u003d \"Windows/Graphics/\"+self.getChild(\"Text\").props.text.replace(\" \", \"_\")\n\t# Open window:\n\twindow \u003d \"Windows/GraphicsWrapper\"\n\tparams \u003d {\"view\": view}\n\tsystem.perspective.navigate(\"/\")\n\tsystem.perspective.navigate(view\u003dwindow, params\u003dparams)"
+ }
+ ],
+ "messageHandlers": []
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/3ab807518c7993b31e38fbe98cb0acfc7550c00d097824db3473678739130ab4 b/.resources/3ab807518c7993b31e38fbe98cb0acfc7550c00d097824db3473678739130ab4
new file mode 100644
index 00000000..ea4de112
--- /dev/null
+++ b/.resources/3ab807518c7993b31e38fbe98cb0acfc7550c00d097824db3473678739130ab4
@@ -0,0 +1,10 @@
+{
+ "base": {
+ "style": {
+ "backgroundColor": "#00CC00",
+ "color": "#FFFFFF",
+ "fontFamily": "Arial",
+ "fontWeight": "bold"
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/3aec308817a72ecdad90d6061e27025b6599611fa0c031259329cc405d6934cb b/.resources/3aec308817a72ecdad90d6061e27025b6599611fa0c031259329cc405d6934cb
new file mode 100644
index 00000000..26ff5815
--- /dev/null
+++ b/.resources/3aec308817a72ecdad90d6061e27025b6599611fa0c031259329cc405d6934cb
@@ -0,0 +1,28 @@
+WITH LANES AS (
+ SELECT
+ DATE_FORMAT(MIN(timestamp), "%Y-%m-%d %H:00") AS start_timestamp,
+ CONCAT("H",
+ CAST(
+ TIMESTAMPDIFF(
+ HOUR,
+ DATE_FORMAT(MIN(timestamp), "%Y-%m-%d %H:00:00"),
+ DATE_FORMAT(LEAST(CURRENT_TIMESTAMP(), :endDate), "%Y-%m-%d %H:00:00")
+ ) AS CHAR
+ )
+ ) AS hour,
+ SUM(count) AS total
+ FROM pe_history
+ WHERE timestamp BETWEEN :startDate AND :endDate
+ AND lane_id=:lane
+ GROUP BY DATE_FORMAT(timestamp, "%Y-%m-%d %H:00")
+)
+SELECT
+ start_timestamp,
+ hour,
+ /* Counts: */
+ total AS total_count,
+ /* PPH: */
+ total AS total_pph,
+ /* Percents: */
+ ROUND(total/total, 4) AS total_percent
+FROM LANES;
\ No newline at end of file
diff --git a/.resources/3b38d1d2b51471ae53f5b4c9943b5cc0da65edcf9b49da7fd0349ee753fd6dc5 b/.resources/3b38d1d2b51471ae53f5b4c9943b5cc0da65edcf9b49da7fd0349ee753fd6dc5
new file mode 100644
index 00000000..45d20bcc
--- /dev/null
+++ b/.resources/3b38d1d2b51471ae53f5b4c9943b5cc0da65edcf9b49da7fd0349ee753fd6dc5
@@ -0,0 +1,19 @@
+WITH INDUCTS AS (
+ SELECT
+ DATE_FORMAT(MIN(timestamp), "%Y-%m-%d %H:%i:00") AS time,
+ SUM(count) AS total
+ FROM pe_history
+ WHERE timestamp BETWEEN :startDate AND :endDate
+ AND lane_id = :chute
+ GROUP BY DATE_FORMAT(timestamp, "%Y-%m-%d %H:%i:00")
+ ORDER BY DATE_FORMAT(timestamp, "%Y-%m-%d %H:%i:00")
+)
+SELECT
+ time,
+ /* Counts: */
+ total AS total_count,
+ /* PPH: */
+ ROUND(total*60) AS total_pph,
+ /* Percents: */
+ ROUND(total/total, 4) AS total_percent
+FROM INDUCTS;
\ No newline at end of file
diff --git a/.resources/3d18eaae8a62afcc2038659a5a03350a62381e42cd40a5f128d6893ba710f027 b/.resources/3d18eaae8a62afcc2038659a5a03350a62381e42cd40a5f128d6893ba710f027
new file mode 100644
index 00000000..e2287142
--- /dev/null
+++ b/.resources/3d18eaae8a62afcc2038659a5a03350a62381e42cd40a5f128d6893ba710f027
@@ -0,0 +1,290 @@
+{
+ "custom": {},
+ "params": {
+ "meta": {
+ "name": "VFD"
+ },
+ "props": {
+ "config": {
+ "enableHighlight": true,
+ "isClickable": false
+ },
+ "status": {
+ "color": {
+ "left": "#B3B3B3",
+ "right": "#D3D3D3"
+ },
+ "showAlways": true,
+ "tagPath": "[default]MCP03/RO02/RO02_03/VFD",
+ "tooltip": ""
+ }
+ }
+ },
+ "propConfig": {
+ "params.meta": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.meta.name": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 105,
+ "width": 500
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "VFD"
+ },
+ "position": {
+ "height": 64,
+ "width": 64,
+ "x": 67.5,
+ "y": 2.5
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "expression": "try(\r\n\tjsonSet({value}, \"showAlways\", true),\r\n\t{view.params.props.status}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "Label_15"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 40
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Status:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbStatus"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 40
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "code": "\treturn utils.extractStatus(value)",
+ "type": "script"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_1"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 5
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Name: "
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbName"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 5
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.LabelFull"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \u0027\u0027)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_12"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 75
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Panel:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbStatus_0"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 75
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.OPC_Server"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \"Unknown\")",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "background-color": "#CFCFCF"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/3f573caed8ff595829ea5ff2af8d9ce03f13ac90a8e9738f33d0a0d585c7de74 b/.resources/3f573caed8ff595829ea5ff2af8d9ce03f13ac90a8e9738f33d0a0d585c7de74
new file mode 100644
index 00000000..f4749ba2
--- /dev/null
+++ b/.resources/3f573caed8ff595829ea5ff2af8d9ce03f13ac90a8e9738f33d0a0d585c7de74
@@ -0,0 +1,112 @@
+{
+ "custom": {},
+ "params": {
+ "filenames": []
+ },
+ "propConfig": {
+ "params.filenames": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 300,
+ "width": 400
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Markdown"
+ },
+ "position": {
+ "height": "calc(100% - 100px)",
+ "width": "calc(100% - 50px)",
+ "x": 25,
+ "y": 25
+ },
+ "propConfig": {
+ "props.source": {
+ "binding": {
+ "config": {
+ "path": "view.params.filenames"
+ },
+ "transforms": [
+ {
+ "code": "\ttext \u003d \"Are you sure you would like to delete the following config files:\\n\"\n\tfor val in value:\n\t\ttext +\u003d \"\\n* \"+val.value\n\treturn text",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "type": "ia.display.markdown"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tfilenames \u003d [filename.value for filename in self.view.params.filenames]\n\terr \u003d reports.deleteConfigs(filenames)\n\tsystem.perspective.sendMessage(\"custom-reports-refreshlist\", {})\n\tsystem.perspective.closePopup(\"\")"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button_Yes"
+ },
+ "position": {
+ "height": 55,
+ "width": 100,
+ "x": 25,
+ "y": 235
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Yes"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tsystem.perspective.closePopup(\"\")"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button_No"
+ },
+ "position": {
+ "height": 55,
+ "width": 100,
+ "x": "calc(100% - 125px)",
+ "y": 235
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "No"
+ },
+ "type": "ia.input.button"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/406c9715212bd7420f5c110c3acf369f4f10b61b42c512db4f21ea9bd9a7b8d3 b/.resources/406c9715212bd7420f5c110c3acf369f4f10b61b42c512db4f21ea9bd9a7b8d3
new file mode 100644
index 00000000..bf380672
--- /dev/null
+++ b/.resources/406c9715212bd7420f5c110c3acf369f4f10b61b42c512db4f21ea9bd9a7b8d3
@@ -0,0 +1,11 @@
+SELECT
+ sorter,
+ scanner,
+ COUNT(*) AS count,
+ ROUND(COUNT(*)*3600/TIMESTAMPDIFF(SECOND, :startDate, :endDate)) AS rate,
+ ROUND(AVG(gap_leading/10), 1) AS avg_gap_leading,
+ ROUND(AVG(gap_trailing/10), 1) AS avg_gap_trailing,
+ ROUND(AVG(pkg_length/10), 1) AS avg_pkg_length
+FROM package_history
+WHERE s04_timestamp BETWEEN :startDate AND :endDate
+GROUP BY sorter, scanner;
\ No newline at end of file
diff --git a/.resources/409f5a51f30eacf96be24db04f44c575783e06e0c719f8558d6c6cac8b2d8fd9 b/.resources/409f5a51f30eacf96be24db04f44c575783e06e0c719f8558d6c6cac8b2d8fd9
new file mode 100644
index 00000000..11223177
--- /dev/null
+++ b/.resources/409f5a51f30eacf96be24db04f44c575783e06e0c719f8558d6c6cac8b2d8fd9
@@ -0,0 +1,34 @@
+WITH SCANNERS AS (
+ SELECT
+ DATE_FORMAT(MIN(s04_timestamp), "%Y-%m-%d %H:%i:00") AS time,
+ COUNT(*) AS total,
+ SUM(scanner_status NOT IN ("No Read", "No Code", "Multi Label")) AS good_read,
+ SUM(scanner_status = "No Read") AS no_read,
+ SUM(scanner_status = "No Code") AS no_code,
+ SUM(scanner_status = "Multi Label") AS multi_label
+ FROM package_history
+ WHERE s04_timestamp BETWEEN :startDate AND :endDate
+ AND scanner = :scanner
+ GROUP BY DATE_FORMAT(s04_timestamp, "%Y-%m-%d %H:%i:00")
+ ORDER BY DATE_FORMAT(s04_timestamp, "%Y-%m-%d %H:%i:00")
+)
+SELECT
+ time,
+ /* Counts: */
+ total AS total_count,
+ good_read AS good_read_count,
+ no_read AS no_read_count,
+ no_code AS no_code_count,
+ multi_label AS multi_label_count,
+ /* PPH: */
+ ROUND(total*60) AS total_pph,
+ ROUND(good_read*60) AS good_read_pph,
+ ROUND(no_read*60) AS no_read_pph,
+ ROUND(no_code*60) AS no_code_pph,
+ ROUND(multi_label*60) AS multi_label_pph,
+ /* Percents: */
+ ROUND(good_read/total, 4) AS good_read_percent,
+ ROUND(no_read/total, 4) AS no_read_percent,
+ ROUND(no_code/total, 4) AS no_code_percent,
+ ROUND(multi_label/total, 4) AS multi_label_percent
+FROM SCANNERS;
\ No newline at end of file
diff --git a/.resources/41e36512aef41a4810b4094209598be84b707979d4b8cabf16a6152e615b44ea b/.resources/41e36512aef41a4810b4094209598be84b707979d4b8cabf16a6152e615b44ea
new file mode 100644
index 00000000..d615c70f
--- /dev/null
+++ b/.resources/41e36512aef41a4810b4094209598be84b707979d4b8cabf16a6152e615b44ea
@@ -0,0 +1,7 @@
+{
+ "base": {
+ "style": {
+ "color": "#CCCCFF"
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/47661ee6590e5d5ffeefe03349e09ebfea92583850be43c9c64b1c40075a8909 b/.resources/47661ee6590e5d5ffeefe03349e09ebfea92583850be43c9c64b1c40075a8909
new file mode 100644
index 00000000..e01cc362
--- /dev/null
+++ b/.resources/47661ee6590e5d5ffeefe03349e09ebfea92583850be43c9c64b1c40075a8909
@@ -0,0 +1,318 @@
+{
+ "custom": {},
+ "params": {
+ "maxZoom": 8
+ },
+ "propConfig": {
+ "params.maxZoom": {
+ "binding": {
+ "config": {
+ "expression": "8"
+ },
+ "type": "expr"
+ },
+ "paramDirection": "output",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 3200,
+ "width": 8300
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Smalls"
+ },
+ "position": {
+ "height": 195,
+ "width": 755,
+ "x": 1213,
+ "y": 859
+ },
+ "props": {
+ "params": {
+ },
+ "path": "Windows/Graphics/Templates/Smalls",
+ "style": {
+ "classes": "painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "Unloads"
+ },
+ "position": {
+ "height": 1727,
+ "width": 1707,
+ "x": 180,
+ "y": 55
+ },
+ "props": {
+ "params": {
+ },
+ "path": "Windows/Graphics/Templates/Unloads",
+ "style": {
+ "classes": "painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "EastSpirals"
+ },
+ "position": {
+ "height": 1500,
+ "width": 2281,
+ "x": 1800,
+ "y": 1576
+ },
+ "props": {
+ "params": {
+ },
+ "path": "Windows/Graphics/Templates/EastSpirals",
+ "style": {
+ "classes": "painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "WestSpirals"
+ },
+ "position": {
+ "height": 1479,
+ "width": 1937,
+ "x": 133,
+ "y": 1576
+ },
+ "props": {
+ "params": {
+ },
+ "path": "Windows/Graphics/Templates/WestSpirals",
+ "style": {
+ "classes": "painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "EastLoops"
+ },
+ "position": {
+ "height": 1698,
+ "width": 1942,
+ "x": 6209,
+ "y": 1398
+ },
+ "props": {
+ "params": {
+ },
+ "path": "Windows/Graphics/Templates/EastLoops",
+ "style": {
+ "classes": "painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "WestLoops"
+ },
+ "position": {
+ "height": 1787,
+ "width": 2072,
+ "x": 4272,
+ "y": 1309
+ },
+ "props": {
+ "params": {
+ },
+ "path": "Windows/Graphics/Templates/WestLoops",
+ "style": {
+ "classes": "painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "WestLoopsNavButton"
+ },
+ "position": {
+ "height": 40,
+ "width": 120,
+ "x": 5274,
+ "y": 2101
+ },
+ "props": {
+ "params": {
+ "label": "West Loops",
+ "tagPath": "",
+ "view": "Windows/Graphics/West_Loops"
+ },
+ "path": "Templates/Buttons/NavButton",
+ "style": {
+ "transform": "scale(4)"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UpperLoopsNavButton"
+ },
+ "position": {
+ "height": 40,
+ "width": 120,
+ "x": 6088,
+ "y": 2101
+ },
+ "props": {
+ "params": {
+ "label": "Upper Loops",
+ "tagPath": "",
+ "view": "Windows/Graphics/Upper_Loops"
+ },
+ "path": "Templates/Buttons/NavButton",
+ "style": {
+ "transform": "scale(4)"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "WestSpiralsNavButton"
+ },
+ "position": {
+ "height": 40,
+ "width": 105,
+ "x": 262,
+ "y": 2540
+ },
+ "props": {
+ "params": {
+ "label": "West Spirals",
+ "tagPath": "",
+ "view": "Windows/Graphics/West_Spirals"
+ },
+ "path": "Templates/Buttons/NavButton",
+ "style": {
+ "transform": "scale(4)"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "EastSpiralsNavButton"
+ },
+ "position": {
+ "height": 40,
+ "width": 105,
+ "x": 3257,
+ "y": 1380
+ },
+ "props": {
+ "params": {
+ "label": "East Spirals",
+ "tagPath": "",
+ "view": "Windows/Graphics/East_Spirals"
+ },
+ "path": "Templates/Buttons/NavButton",
+ "style": {
+ "transform": "scale(4)"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SmallsNavButton"
+ },
+ "position": {
+ "height": 40,
+ "width": 80,
+ "x": 2200,
+ "y": 936
+ },
+ "props": {
+ "params": {
+ "label": "Smalls",
+ "tagPath": "",
+ "view": "Windows/Graphics/Smalls"
+ },
+ "path": "Templates/Buttons/NavButton",
+ "style": {
+ "transform": "scale(4)"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UnloadsNavButton"
+ },
+ "position": {
+ "height": 40,
+ "width": 80,
+ "x": 843,
+ "y": 929
+ },
+ "props": {
+ "params": {
+ "label": "Unloads",
+ "tagPath": "",
+ "view": "Windows/Graphics/Unloads"
+ },
+ "path": "Templates/Buttons/NavButton",
+ "style": {
+ "transform": "scale(4)"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "EastLoopsNavButton"
+ },
+ "position": {
+ "height": 40,
+ "width": 120,
+ "x": 7215,
+ "y": 2101
+ },
+ "props": {
+ "params": {
+ "label": "East Loops",
+ "tagPath": "",
+ "view": "Windows/Graphics/East_Loops"
+ },
+ "path": "Templates/Buttons/NavButton",
+ "style": {
+ "transform": "scale(4)"
+ }
+ },
+ "type": "ia.display.view"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/47a0bdd48c02699603ef878ecc26cdc62120caec544b2e78676112f13199e15a b/.resources/47a0bdd48c02699603ef878ecc26cdc62120caec544b2e78676112f13199e15a
new file mode 100644
index 00000000..21a3e630
--- /dev/null
+++ b/.resources/47a0bdd48c02699603ef878ecc26cdc62120caec544b2e78676112f13199e15a
@@ -0,0 +1,1092 @@
+{
+ "custom": {},
+ "params": {
+ "titleExtra": "0 rows",
+ "usesTimewidget": true
+ },
+ "propConfig": {
+ "params.titleExtra": {
+ "paramDirection": "output",
+ "persistent": true
+ },
+ "params.usesTimewidget": {
+ "binding": {
+ "config": {
+ "expression": "true"
+ },
+ "type": "expr"
+ },
+ "paramDirection": "output",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 324,
+ "width": 1600
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "ManualLaneStatus"
+ },
+ "position": {
+ "height": "100%",
+ "width": "100%"
+ },
+ "propConfig": {
+ "props.data": {
+ "binding": {
+ "config": {
+ "parameters": {
+ "endDate": "{session.custom.timewidget.endDate}",
+ "startDate": "{session.custom.timewidget.startDate}",
+ "where": "\"lane LIKE \\\"AS%CH\\\"\""
+ },
+ "queryPath": "Status/LaneStatus"
+ },
+ "transforms": [
+ {
+ "code": "\tcou \u003d utils.getRowCount(value)\n\tast \u003d \"*\" if cou \u003e\u003d 2000 else \"\"\n\tself.view.params.titleExtra \u003d \"{:n}{} rows\".format(cou, ast)\n\t# Return data\n\treturn value",
+ "type": "script"
+ }
+ ],
+ "type": "query"
+ }
+ }
+ },
+ "props": {
+ "cells": {
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "1px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "1px",
+ "color": "#000",
+ "fontFamily": "Helvetica",
+ "fontSize": "14px"
+ }
+ },
+ "columns": [
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "start_timestamp",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Start Timestamp"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 150
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "end_timestamp",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "End Timestamp"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": "value"
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 150
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "sorter",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Sorter"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": false,
+ "width": 80
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "lane",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Lane"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 110
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "available_count",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Available (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 110
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "disabled_count",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Disabled (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 110
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "full_count",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Full (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 100
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "full_warn_count",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "50% Full (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 110
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "jam_count",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Jam (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 100
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "faulted_count",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Faulted (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 100
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "available_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Available Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "disabled_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Disabled Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "full_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Full Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "full_warn_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "50% Full Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "jam_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Jam Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "faulted_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Faulted Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ }
+ ],
+ "filter": {
+ "enabled": true
+ },
+ "pager": {
+ "bottom": false
+ },
+ "rows": {
+ "highlight": {
+ "enabled": false
+ },
+ "striped": {
+ "enabled": false
+ },
+ "style": {
+ "classes": "table/highlight"
+ }
+ },
+ "style": {
+ "fontFamily": "Helvetica",
+ "fontSize": "14px",
+ "fontWeight": "bold"
+ }
+ },
+ "scripts": {
+ "customMethods": [],
+ "extensionFunctions": null,
+ "messageHandlers": [
+ {
+ "messageType": "export-data",
+ "pageScope": true,
+ "script": "\tutils.downloadCSV(self, \"Manual Lane Status\")",
+ "sessionScope": false,
+ "viewScope": false
+ }
+ ]
+ },
+ "type": "ia.display.table"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/4912c71b763616560a60666775287549eae7b53e6657483cd7fd80792d42ba21 b/.resources/4912c71b763616560a60666775287549eae7b53e6657483cd7fd80792d42ba21
new file mode 100644
index 00000000..33955d92
--- /dev/null
+++ b/.resources/4912c71b763616560a60666775287549eae7b53e6657483cd7fd80792d42ba21
@@ -0,0 +1,4 @@
+SELECT DISTINCT destination_act AS lane
+FROM package_history
+WHERE destination_act IS NOT NULL
+ORDER BY lane ASC;
\ No newline at end of file
diff --git a/.resources/4a09061ecd72294b5eeaf0e445343d97b139ac5373f0b9402295c61a3320a16c b/.resources/4a09061ecd72294b5eeaf0e445343d97b139ac5373f0b9402295c61a3320a16c
new file mode 100644
index 00000000..6ccc3441
--- /dev/null
+++ b/.resources/4a09061ecd72294b5eeaf0e445343d97b139ac5373f0b9402295c61a3320a16c
@@ -0,0 +1,32 @@
+import os
+
+LOG = system.util.logger("HMI Setup")
+
+def upload():
+ system.gui.messageBox("Please provide the file location of the Description of Operations...")
+ path = system.file.openFile('pdf')
+ if path == None:
+ system.gui.messageBox("No path given!")
+ else:
+ # Load file contents as csv:
+ tags = {}
+ try:
+ project = system.util.getProjectName()
+ print "Opening file..."
+ with open(path, 'rb') as pdf:
+ payload = { "data": pdf.read() }
+ print "Uploading file..."
+ system.util.sendMessage(project, "setup-doo", payload, "G")
+ print "Done!"
+ except:
+ # In case the csv file is corrupt or in a bad format, ignore it:
+ system.gui.messageBox("Failed to open file!")
+
+def store(data):
+ path = os.path.join(os.getcwd(), "webserver", "webapps", "main", "pdfs")
+ if not os.path.exists(path):
+ os.makedirs(path)
+ path = os.path.join(path, "Description of Operations.pdf")
+ with open(path, 'wb') as pdf:
+ pdf.write(data)
+ LOG.info("Uploaded new Description of Operations: /pdfs/Description of Operations.pdf")
diff --git a/.resources/4a71a4e6794c6fd99697d927a8f0fe496daa86b1c0599e64b7d86cb5a45d8cf0 b/.resources/4a71a4e6794c6fd99697d927a8f0fe496daa86b1c0599e64b7d86cb5a45d8cf0
new file mode 100644
index 00000000..a0fa2d7f
--- /dev/null
+++ b/.resources/4a71a4e6794c6fd99697d927a8f0fe496daa86b1c0599e64b7d86cb5a45d8cf0
@@ -0,0 +1,359 @@
+{
+ "custom": {},
+ "params": {
+ "titleExtra": "4 rows",
+ "usesTimewidget": true
+ },
+ "propConfig": {
+ "params.titleExtra": {
+ "paramDirection": "output",
+ "persistent": true
+ },
+ "params.usesTimewidget": {
+ "binding": {
+ "config": {
+ "expression": "true"
+ },
+ "type": "expr"
+ },
+ "paramDirection": "output",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 324,
+ "width": 1600
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "GaylordStatus"
+ },
+ "position": {
+ "height": "100%",
+ "width": "100%"
+ },
+ "propConfig": {
+ "props.data": {
+ "binding": {
+ "config": {
+ "parameters": {
+ "endDate": "{session.custom.timewidget.endDate}",
+ "startDate": "{session.custom.timewidget.startDate}"
+ },
+ "queryPath": "Status/GaylordStatus"
+ },
+ "transforms": [
+ {
+ "code": "\tcou \u003d utils.getRowCount(value)\n\tast \u003d \"*\" if cou \u003e\u003d 2000 else \"\"\n\tself.view.params.titleExtra \u003d \"{:n}{} rows\".format(cou, ast)\n\t# Return data\n\treturn value",
+ "type": "script"
+ }
+ ],
+ "type": "query"
+ }
+ }
+ },
+ "props": {
+ "cells": {
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "1px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "1px",
+ "color": "#000",
+ "fontFamily": "Helvetica",
+ "fontSize": "14px"
+ }
+ },
+ "columns": [
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "start_timestamp",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Start Timestamp"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 160
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "end_timestamp",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "End Timestamp"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": "value"
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 160
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "gaylord",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Gaylord"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 110
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "count",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Cycles (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 130
+ }
+ ],
+ "filter": {
+ "enabled": true
+ },
+ "pager": {
+ "bottom": false
+ },
+ "rows": {
+ "highlight": {
+ "enabled": false
+ },
+ "striped": {
+ "enabled": false
+ },
+ "style": {
+ "classes": "table/highlight"
+ }
+ },
+ "style": {
+ "fontFamily": "Helvetica",
+ "fontSize": "14px",
+ "fontWeight": "bold"
+ }
+ },
+ "scripts": {
+ "customMethods": [],
+ "messageHandlers": [
+ {
+ "messageType": "export-data",
+ "pageScope": true,
+ "script": "\tutils.downloadCSV(self, \"Gaylord Status\")",
+ "sessionScope": false,
+ "viewScope": false
+ }
+ ]
+ },
+ "type": "ia.display.table"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/4a9a483e98241b7ced748ddb6df9320e708a6bc299762e5e6e4551ca02209c8e b/.resources/4a9a483e98241b7ced748ddb6df9320e708a6bc299762e5e6e4551ca02209c8e
new file mode 100644
index 00000000..90214158
--- /dev/null
+++ b/.resources/4a9a483e98241b7ced748ddb6df9320e708a6bc299762e5e6e4551ca02209c8e
@@ -0,0 +1,37 @@
+WITH LANES AS (
+ SELECT
+ MIN(timestamp) AS start_timestamp,
+ MAX(timestamp) AS end_timestamp,
+ 3600/TIMESTAMPDIFF(SECOND, :startDate, :endDate) AS pph_multiplier,
+ lane_id AS chute,
+ SUM(count) AS total
+ FROM pe_history
+ WHERE timestamp BETWEEN :startDate AND :endDate
+ AND lane_id LIKE "RS%4CH"
+ GROUP BY lane_id
+ ORDER BY lane_id
+)
+SELECT
+ start_timestamp,
+ end_timestamp,
+ chute,
+ /*CASE chute
+ WHEN "RE5-1CH" THEN "RB49/40"
+ WHEN "RE5-2CH" THEN "RB47/48"
+ WHEN "RE5-3CH" THEN "RB45/46"
+ WHEN "RE5-4CH" THEN "RB43/44"
+ WHEN "RE5-5CH" THEN "RB41/42"
+ WHEN "RE5-6CH" THEN "RB22/21"
+ WHEN "RE5-7CH" THEN "RB24/23"
+ WHEN "RE5-8CH" THEN "RB26/25"
+ WHEN "RE5-9CH" THEN "RB28/27"
+ WHEN "RE5-10CH" THEN "RB20/29"
+ ELSE "Unknown"
+ END AS robins,*/
+ /* Counts: */
+ total AS total_count,
+ /* PPH: */
+ ROUND(total*pph_multiplier) AS total_pph,
+ /* Percents: */
+ ROUND(total/total, 4) AS total_percent
+FROM LANES;
\ No newline at end of file
diff --git a/.resources/4bac23adea4aa448b68092806e553489f813a5f4128bc147b8a175a756fd3e57 b/.resources/4bac23adea4aa448b68092806e553489f813a5f4128bc147b8a175a756fd3e57
new file mode 100644
index 00000000..47022bf0
--- /dev/null
+++ b/.resources/4bac23adea4aa448b68092806e553489f813a5f4128bc147b8a175a756fd3e57
@@ -0,0 +1,307 @@
+{
+ "custom": {},
+ "params": {
+ "meta": {
+ "name": "FIO"
+ },
+ "props": {
+ "config": {
+ "enableHighlight": true,
+ "isClickable": false
+ },
+ "status": {
+ "color": "#aaa",
+ "showAlways": true,
+ "tagPath": "",
+ "tooltip": ""
+ }
+ }
+ },
+ "propConfig": {
+ "params.meta": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.meta.name": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 105,
+ "width": 500
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "EIP"
+ },
+ "position": {
+ "height": 45,
+ "width": 90,
+ "x": 54.5,
+ "y": 12.5
+ },
+ "propConfig": {
+ "meta.name": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Label"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \u0027EIP\u0027)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ },
+ "persistent": true
+ },
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "expression": "try(\r\n\tjsonSet({value}, \"showAlways\", true),\r\n\t{view.params.props.status}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "lbStatus"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 40
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "code": "\treturn utils.extractStatus(value)",
+ "type": "script"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbName"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 5
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.LabelFull"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \u0027\u0027)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_1"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 5
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Name: "
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_11"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 40
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Status:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_12"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 75
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Panel:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbStatus_0"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 75
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.OPC_Server"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \"Unknown\")",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "background-color": "#CFCFCF"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/4bdd9a1373c775c1f848c75e73dfd6af21067986d76b1c245da21f733cb686b8 b/.resources/4bdd9a1373c775c1f848c75e73dfd6af21067986d76b1c245da21f733cb686b8
new file mode 100644
index 00000000..7df03faf
--- /dev/null
+++ b/.resources/4bdd9a1373c775c1f848c75e73dfd6af21067986d76b1c245da21f733cb686b8
@@ -0,0 +1,195 @@
+{
+ "custom": {},
+ "params": {
+ "alwaysShowAll": false,
+ "mirror": false,
+ "tagPath": "[default]MCP02/CH_20130/CH_20130"
+ },
+ "propConfig": {
+ "params.alwaysShowAll": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.mirror": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.tagPath": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 81,
+ "width": 50
+ },
+ "loading": {
+ "mode": "blocking"
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "CH"
+ },
+ "position": {
+ "height": 30,
+ "rotate": {
+ "angle": "180deg"
+ },
+ "width": "100%",
+ "y": 4
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/CH/Graphics"
+ },
+ "overlayOptOut": true,
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false,
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "CH_Jam_PE"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 43,
+ "x": 2,
+ "y": 43
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/CH_Jam_PE/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 18,
+ "y": 65
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/BCN1/AMB/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.style.transform": {
+ "binding": {
+ "config": {
+ "path": "parent.props.style.transform"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "propConfig": {
+ "props.style.transform": {
+ "binding": {
+ "config": {
+ "path": "view.params.mirror"
+ },
+ "transforms": [
+ {
+ "fallback": null,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "scale(1, -1)"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "scripts": {
+ "customMethods": [
+ {
+ "name": "openPopup",
+ "params": [],
+ "script": "\tif self.view.params.isClickable:\n\t\tid \u003d \"SpiralChute|\" + self.view.params.tagPath\n\t\ttitle \u003d utils.prettyName(self.view.params.tagPath.split(\"/\")[-1])\n\t\tparams \u003d { \n\t\t\t\"deviceType\": \"spiralchute\",\n\t\t\t\"props\": { \n\t\t\t\t\"config\": {\n\t\t\t\t\t\"alwaysShowAll\": self.view.params.alwaysShowAll,\n\t\t\t\t\t\"isClickable\": self.view.params.isClickable,\n\t\t\t\t\t\"mirror\": self.view.params.mirror\n\t\t\t\t},\n\t\t\t\t\"status\": {\n\t\t\t\t\t\"tagPath\": self.view.params.tagPath\n\t\t\t\t}\n\t\t \t},\n\t\t \t\"tabs\": [\"Controls\", \"Alarm History\", \"Devices\"]\t\t\n\t\t}\n\t\tsystem.perspective.openPopup(id, \"Popups/DeviceWrapper\", params, title, resizable \u003d True)"
+ }
+ ],
+ "extensionFunctions": null,
+ "messageHandlers": []
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/4bf17c38923dcf173637fc3316c6dd436989ca566ae4b4cfb9b9b82765ce7079 b/.resources/4bf17c38923dcf173637fc3316c6dd436989ca566ae4b4cfb9b9b82765ce7079
new file mode 100644
index 00000000..cc44d06a
--- /dev/null
+++ b/.resources/4bf17c38923dcf173637fc3316c6dd436989ca566ae4b4cfb9b9b82765ce7079
@@ -0,0 +1,251 @@
+{
+ "custom": {
+ "disconnected": true,
+ "plc": "",
+ "searchId": "value",
+ "state": 0,
+ "string": "Unknown"
+ },
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "propConfig": {
+ "custom.disconnected": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "0": "{view.params.tagProps[0]}",
+ "fc": "{session.custom.fc}"
+ },
+ "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE"
+ },
+ "transforms": [
+ {
+ "expression": "!isGood({value})",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ },
+ "persistent": true
+ },
+ "custom.plc": {
+ "binding": {
+ "config": {
+ "path": "view.params.tagProps[0]"
+ },
+ "transforms": [
+ {
+ "expression": "split({value}, \"/\")[0]",
+ "type": "expression"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.searchId": {
+ "binding": {
+ "config": {
+ "path": "session.custom.searchId"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.state": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "0": "{view.params.tagProps[0]}",
+ "fc": "{session.custom.fc}"
+ },
+ "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value},{view.params.forceFaultStatus},0)",
+ "type": "expression"
+ },
+ {
+ "fallback": null,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": 1
+ },
+ {
+ "input": 0,
+ "output": 0
+ },
+ {
+ "input": 2,
+ "output": 2
+ },
+ {
+ "input": 3,
+ "output": 3
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ },
+ "persistent": true
+ },
+ "custom.string": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "fallback": "Unknown",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": "OK"
+ },
+ {
+ "input": 2,
+ "output": "Faulted"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "params.tagProps": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 20,
+ "width": 40
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Label"
+ },
+ "position": {
+ "height": 1,
+ "width": 1
+ },
+ "props": {
+ "text": "FIO",
+ "textStyle": {
+ "fontSize": "20px",
+ "textAlign": "center",
+ "textTransform": "uppercase"
+ }
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tsystem.perspective.openDock(\u0027Docked-East-JR\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})"
+ },
+ "scope": "G",
+ "type": "script"
+ },
+ "onMouseEnter": {
+ "config": {
+ "script": "\tfrom time import sleep\n\t\n\talarm \u003d []\n\tmessage \u003d None\n\t\n\tsleep(0.5)\n\t\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "root",
+ "tooltip": {
+ "enabled": true
+ }
+ },
+ "propConfig": {
+ "meta.tooltip.text": {
+ "binding": {
+ "config": {
+ "expression": "\"Source Id: \" + {view.params.tagProps[0]} + \", Status: \" + {view.custom.string}\n"
+ },
+ "type": "expr"
+ }
+ },
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "session.custom.alarm_filter.show_fio_safety"
+ },
+ "type": "property"
+ }
+ },
+ "props.style.backgroundColor": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "fallback": "#808080",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": "#00FF00"
+ },
+ {
+ "input": 2,
+ "output": "#FF0000"
+ }
+ ],
+ "outputType": "color",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "mode": "percent",
+ "style": {
+ "borderStyle": "solid",
+ "cursor": "pointer",
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/4d58d77f732a0205c177dc7d817419977f55ce172752b64f9caa0e9630d346e6 b/.resources/4d58d77f732a0205c177dc7d817419977f55ce172752b64f9caa0e9630d346e6
new file mode 100644
index 00000000..02a2441c
--- /dev/null
+++ b/.resources/4d58d77f732a0205c177dc7d817419977f55ce172752b64f9caa0e9630d346e6
@@ -0,0 +1,236 @@
+{
+ "custom": {
+ "state_string": "OK",
+ "string": "OK"
+ },
+ "params": {
+ "tagProps": [
+ "value"
+ ]
+ },
+ "propConfig": {
+ "custom.state": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 1,
+ "mode": "indirect",
+ "references": {
+ "0": "{view.params.tagProps[0]}",
+ "fc": "{session.custom.fc}"
+ },
+ "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value},{view.params.forceFaultStatus},0)",
+ "type": "expression"
+ },
+ {
+ "fallback": 0,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": 1
+ },
+ {
+ "input": 2,
+ "output": 2
+ },
+ {
+ "input": 3,
+ "output": 3
+ },
+ {
+ "input": 4,
+ "output": 4
+ },
+ {
+ "input": 5,
+ "output": 5
+ },
+ {
+ "input": 6,
+ "output": 6
+ },
+ {
+ "input": 7,
+ "output": 7
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "custom.string": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "fallback": "Unknown",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 0,
+ "output": "OK"
+ },
+ {
+ "input": 1,
+ "output": "Fault"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 20,
+ "width": 20
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "EncoderIcon"
+ },
+ "position": {
+ "height": 1,
+ "width": 1
+ },
+ "propConfig": {
+ "props.elements[0].fill.paint": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "fallback": "#47FF47",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": "#FF0000"
+ }
+ ],
+ "outputType": "color",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "elements": [
+ {
+ "cx": 12,
+ "cy": "12",
+ "fill": {},
+ "name": "statusCircle",
+ "rx": "10",
+ "ry": "10",
+ "stroke": {
+ "paint": "#000000",
+ "width": "2"
+ },
+ "type": "ellipse"
+ },
+ {
+ "d": "M 4.6516854,13.685393 H 9.8292135",
+ "fill": {},
+ "name": "segLeft",
+ "stroke": {
+ "paint": "#000000",
+ "width": 1
+ },
+ "type": "path"
+ },
+ {
+ "d": "M 9.6000004,13.469662 V 8.2112357",
+ "fill": {},
+ "name": "segUpLeft",
+ "stroke": {
+ "paint": "#000000",
+ "width": 1
+ },
+ "type": "path"
+ },
+ {
+ "d": "M 19.829214,13.685393 H 14.651685",
+ "fill": {},
+ "name": "segRight",
+ "stroke": {
+ "paint": "#000000",
+ "width": 1
+ },
+ "type": "path"
+ },
+ {
+ "d": "M 14.880899,13.469662 V 8.211236",
+ "fill": {},
+ "name": "segUpRight",
+ "stroke": {
+ "paint": "#000000",
+ "width": 1
+ },
+ "type": "path"
+ },
+ {
+ "d": "m 9.8154019,8.4404597 4.8815551,0.013462",
+ "fill": {},
+ "name": "segTop",
+ "stroke": {
+ "paint": "#000000",
+ "width": 1
+ },
+ "type": "path"
+ }
+ ],
+ "viewBox": "0 0 24 24"
+ },
+ "type": "ia.shapes.svg"
+ }
+ ],
+ "meta": {
+ "name": "Encoder",
+ "tooltip": {
+ "enabled": true
+ }
+ },
+ "propConfig": {
+ "meta.tooltip.text": {
+ "binding": {
+ "config": {
+ "expression": "\"Source Id: \" + {view.params.tagProps[0]} + \", Status: \" + {view.custom.string}\n"
+ },
+ "type": "expr"
+ }
+ },
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "session.custom.alarm_filter.show_encoders"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "mode": "percent"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/4df21545e34eae9d00b424611007aa34d3aa577d2a41a1760d152ef180cccf98 b/.resources/4df21545e34eae9d00b424611007aa34d3aa577d2a41a1760d152ef180cccf98
new file mode 100644
index 00000000..ab882359
--- /dev/null
+++ b/.resources/4df21545e34eae9d00b424611007aa34d3aa577d2a41a1760d152ef180cccf98
@@ -0,0 +1,2727 @@
+{
+ "custom": {
+ "currentTab": 0,
+ "isHeatmap": false
+ },
+ "params": {},
+ "propConfig": {
+ "custom.currentTab": {
+ "persistent": true
+ },
+ "custom.isHeatmap": {
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 100,
+ "width": 1400
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Background"
+ },
+ "position": {
+ "height": "100%",
+ "width": 32
+ },
+ "props": {
+ "style": {
+ "background": "#808080",
+ "border-right": "2px solid #000"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tif self.view.custom.currentTab !\u003d 0:\n\t\tself.view.custom.currentTab \u003d 0"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button_Navigation"
+ },
+ "position": {
+ "height": 31,
+ "width": 28,
+ "x": 1,
+ "y": 1
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": ""
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "Icon_Navigation"
+ },
+ "position": {
+ "height": 22,
+ "width": 22,
+ "x": 4,
+ "y": 5
+ },
+ "propConfig": {
+ "props.color": {
+ "binding": {
+ "config": {
+ "path": "view.custom.currentTab"
+ },
+ "transforms": [
+ {
+ "fallback": "#AAAAAA",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 0,
+ "output": "#000000"
+ }
+ ],
+ "outputType": "color",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "color": "#000000",
+ "path": "material/navigation",
+ "style": {
+ "pointer-events": "none"
+ }
+ },
+ "type": "ia.display.icon"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tif self.view.custom.currentTab !\u003d 1:\n\t\tself.view.custom.currentTab \u003d 1"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button_Alarms"
+ },
+ "position": {
+ "height": 31,
+ "width": 28,
+ "x": 1,
+ "y": 33
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": ""
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "Icon_Alarms"
+ },
+ "position": {
+ "height": 22,
+ "width": 22,
+ "x": 4,
+ "y": 38
+ },
+ "propConfig": {
+ "props.color": {
+ "binding": {
+ "config": {
+ "expression": "if({../AlarmContainer/Table.custom.hasAlarms}\r\n \u0026\u0026 {[default]Gateway/ToggleTag},\r\n \"#F00\",\r\n if({view.custom.currentTab} \u003d 1,\r\n \"#000\",\r\n \"#AAA\"\r\n )\r\n)"
+ },
+ "type": "expr"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "color": "#AAA",
+ "path": "material/notifications_active",
+ "style": {
+ "pointer-events": "none"
+ }
+ },
+ "type": "ia.display.icon"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tif self.view.custom.currentTab !\u003d 2:\n\t\tself.view.custom.currentTab \u003d 2"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button_Options"
+ },
+ "position": {
+ "height": 31,
+ "width": 28,
+ "x": 1,
+ "y": 65
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": ""
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "Icon_Options"
+ },
+ "position": {
+ "height": 22,
+ "width": 22,
+ "x": 4,
+ "y": 70
+ },
+ "propConfig": {
+ "props.color": {
+ "binding": {
+ "config": {
+ "path": "view.custom.currentTab"
+ },
+ "transforms": [
+ {
+ "fallback": "#AAAAAA",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 2,
+ "output": "#000000"
+ }
+ ],
+ "outputType": "color",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "color": "#AAAAAA",
+ "path": "material/settings",
+ "style": {
+ "pointer-events": "none"
+ }
+ },
+ "type": "ia.display.icon"
+ },
+ {
+ "children": [
+ {
+ "meta": {
+ "name": "Label"
+ },
+ "position": {
+ "height": 24,
+ "width": 100,
+ "x": 110
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#DDD",
+ "borderBottomStyle": "solid",
+ "borderLeftStyle": "solid",
+ "borderRightStyle": "solid",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Time:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\twindow\u003d\"Popups/Heatmap/Config\"\n\tif self.session.custom.isMobile:\n\t\tsystem.perspective.navigate(view\u003dwindow)\n\telse:\n\t\tsystem.perspective.openPopup(\"HeatmapSettings\", window, title\u003d\"Heatmap Configuration\", modal\u003dTrue, overlayDismiss\u003dTrue)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "ConfigButton"
+ },
+ "position": {
+ "height": 32,
+ "width": 108,
+ "x": 1,
+ "y": 1
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "expression": "!{session.custom.heatmapSettings.enabled}"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Configure"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tdata \u003d self.getSibling(\"AlarmTable\").getChild(\"Table\")\n\tutils.downloadCSV(data, \"Heatmap\")"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "ExportButton"
+ },
+ "position": {
+ "height": 31,
+ "width": 108,
+ "x": 1,
+ "y": 34
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "path": "session.custom.heatmapSettings.enabled"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Export"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\theatmapSettings \u003d self.session.custom.heatmapSettings\n\theatmapSettings.enabled \u003d False\n\t# Clear data:\n\theatmapSettings.data \u003d system.dataset.clearDataset(heatmapSettings.data)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "ExitButton"
+ },
+ "position": {
+ "height": 31,
+ "width": 108,
+ "x": 1,
+ "y": 66
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "path": "session.custom.heatmapSettings.enabled"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "exit mode"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "Label_2"
+ },
+ "position": {
+ "height": 24,
+ "width": 350,
+ "x": 210
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "struct": {
+ "heatmapEnable": "{session.custom.heatmapSettings.enabled}",
+ "time": "{session.custom.heatmapSettings.time}"
+ },
+ "waitOnAll": true
+ },
+ "transforms": [
+ {
+ "code": "\tif value.heatmapEnable:\n\t\treturn value.time.start.value + \" to \" + value.time.end.value\n\telse:\n\t\treturn \"\"",
+ "type": "script"
+ }
+ ],
+ "type": "expr-struct"
+ }
+ }
+ },
+ "props": {
+ "alignVertical": "top",
+ "style": {
+ "backgroundColor": "#CCC",
+ "borderBottomStyle": "solid",
+ "borderRightStyle": "solid",
+ "overflow": "hidden",
+ "textOverflow": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_3"
+ },
+ "position": {
+ "height": 24,
+ "width": 100,
+ "x": 110,
+ "y": 24
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#DDD",
+ "borderBottomStyle": "solid",
+ "borderLeftStyle": "solid",
+ "borderRightStyle": "solid",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Shifts:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_4"
+ },
+ "position": {
+ "height": 24,
+ "width": 100,
+ "x": 110,
+ "y": 48
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#DDD",
+ "borderBottomStyle": "solid",
+ "borderLeftStyle": "solid",
+ "borderRightStyle": "solid",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Alarms:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_5"
+ },
+ "position": {
+ "height": 24,
+ "width": 100,
+ "x": 110,
+ "y": 72
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#DDD",
+ "borderBottomStyle": "solid",
+ "borderLeftStyle": "solid",
+ "borderRightStyle": "solid",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Devices:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_6"
+ },
+ "position": {
+ "height": 24,
+ "width": 350,
+ "x": 210,
+ "y": 24
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "expression": "if({session.custom.heatmapSettings.enabled},\r\n\t{session.custom.heatmapSettings.shiftsText},\r\n\t\"\"\r\n)"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "alignVertical": "top",
+ "style": {
+ "backgroundColor": "#CCC",
+ "borderBottomStyle": "solid",
+ "borderRightStyle": "solid",
+ "overflow": "hidden",
+ "textOverflow": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_7"
+ },
+ "position": {
+ "height": 24,
+ "width": 350,
+ "x": 210,
+ "y": 48
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "expression": "if({session.custom.heatmapSettings.enabled},\r\n\t{session.custom.heatmapSettings.alarmsText},\r\n\t\"\"\r\n)"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "alignVertical": "top",
+ "style": {
+ "backgroundColor": "#CCC",
+ "borderBottomStyle": "solid",
+ "borderRightStyle": "solid",
+ "overflow": "hidden",
+ "textOverflow": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_8"
+ },
+ "position": {
+ "height": 24,
+ "width": 350,
+ "x": 210,
+ "y": 72
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "expression": "if({session.custom.heatmapSettings.enabled},\r\n\t{session.custom.heatmapSettings.devicesText},\r\n\t\"\"\r\n)"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "alignVertical": "top",
+ "style": {
+ "backgroundColor": "#CCC",
+ "borderBottomStyle": "solid",
+ "borderRightStyle": "solid",
+ "overflow": "hidden",
+ "textOverflow": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "children": [
+ {
+ "events": {
+ "component": {
+ "onRowDoubleClick": {
+ "config": {
+ "script": "\twindow \u003d \"Windows/GraphicsWrapper\"\n\tplctag \u003d self.props.data.getValueAt(event.row, \"plctag\")\n\tscreen \u003d alarms.resolveScreen(event.value.device, plctag)\n\tparams \u003d {\"view\": screen}\n\tsystem.perspective.navigate(\"/\")\n\tsystem.perspective.navigate(view\u003dwindow, params\u003dparams)"
+ },
+ "scope": "G",
+ "type": "script"
+ },
+ "onSelectionChange": {
+ "config": {
+ "script": "\tif event.selectedRow \u003c\u003e None:\n\t\tdevice \u003d self.props.data.getValueAt(event.selectedRow, \"device\")\n\t\tself.session.custom.alarmHighlight \u003d device\n\telse:\n\t\tself.session.custom.alarmHighlight \u003d \"\""
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ },
+ "dom": {
+ "onKeyDown": {
+ "config": {
+ "script": "\tif event.key \u003d\u003d \"Escape\": # Escape key\n\t\tself.props.selection.selectedColumn \u003d None\n\t\tself.props.selection.selectedRow \u003d None"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Table"
+ },
+ "position": {
+ "height": "200%",
+ "width": "200%",
+ "x": "-50%",
+ "y": "-50%"
+ },
+ "propConfig": {
+ "custom.hasAlarms": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]Design/ActiveAlarms"
+ },
+ "transforms": [
+ {
+ "code": "\trows \u003d []\n\tfor r in range(value.getRowCount()):\n\t\tif value.getValueAt(r, \"Class\") \u003c\u003e \"Error\":\n\t\t\trows.append(r)\n\treturn system.dataset.deleteRows(value, rows).getRowCount()\u003e0",
+ "type": "script"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.data": {
+ "binding": {
+ "config": {
+ "path": "session.custom.heatmapSettings.data"
+ },
+ "type": "property"
+ },
+ "onChange": {
+ "enabled": null,
+ "script": "\tself.props.selectedColumn \u003d None\n\tself.session.custom.alarmHighlight \u003d \"\""
+ }
+ }
+ },
+ "props": {
+ "cells": {
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "2px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "2px",
+ "color": "#FF0000",
+ "fontFamily": "Helvetica",
+ "fontSize": "22px"
+ }
+ },
+ "columns": [
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "duration",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "2px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "2px",
+ "classes": "",
+ "fontSize": "26px",
+ "fontWeight": "bold"
+ },
+ "title": "Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 200
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "count",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "2px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "2px",
+ "classes": "",
+ "fontSize": "26px",
+ "fontWeight": "bold"
+ },
+ "title": "Count"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 200
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "device",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "2px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "2px",
+ "classes": "",
+ "fontSize": "26px",
+ "fontWeight": "bold"
+ },
+ "title": "Location"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "description",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "2px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "2px",
+ "classes": "",
+ "fontSize": "26px",
+ "fontWeight": "bold"
+ },
+ "title": "Description"
+ },
+ "justify": "auto",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ }
+ ],
+ "pager": {
+ "bottom": false
+ },
+ "rows": {
+ "highlight": {
+ "enabled": false
+ },
+ "striped": {
+ "enabled": false
+ },
+ "style": {
+ "classes": "table/highlight"
+ }
+ },
+ "selectedColumn": null,
+ "style": {
+ "fontFamily": "Helvetica",
+ "fontSize": "24px",
+ "fontWeight": "bold",
+ "transform": "scale(0.5)"
+ }
+ },
+ "type": "ia.display.table"
+ }
+ ],
+ "meta": {
+ "name": "AlarmTable"
+ },
+ "position": {
+ "height": "100%",
+ "width": "calc(100% - 560px)",
+ "x": 560
+ },
+ "props": {
+ "style": {
+ "min-width": "786px"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+ ],
+ "meta": {
+ "name": "HeatmapContainer",
+ "visible": false
+ },
+ "position": {
+ "height": "100%",
+ "width": "calc(100% - 32px)",
+ "x": 32
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "session.custom.heatmapSettings.enabled"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ }
+ },
+ "type": "ia.container.coord"
+ },
+ {
+ "meta": {
+ "name": "NavigationContainer"
+ },
+ "position": {
+ "height": "100%",
+ "width": "calc(100% - 32px)",
+ "x": 32
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "view.custom.currentTab"
+ },
+ "transforms": [
+ {
+ "fallback": "false",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 0,
+ "output": "{session.custom.heatmapSettings.enabled}\u003dfalse"
+ }
+ ],
+ "outputType": "expression",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "props.instances": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]Gateway/Areas"
+ },
+ "transforms": [
+ {
+ "code": "\treturn nav.genButtonsFromDataset(value)",
+ "type": "script"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "enableTransitions": false,
+ "transitionSettings": {
+ "duration": "1s",
+ "timingFunction": "linear"
+ }
+ },
+ "type": "ia.display.viewcanvas"
+ },
+ {
+ "children": [
+ {
+ "meta": {
+ "name": "Background"
+ },
+ "position": {
+ "height": "100%",
+ "width": 182
+ },
+ "props": {
+ "style": {
+ "background": "#AAA",
+ "border-right": "2px solid #000"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "page": "/alarms/active"
+ },
+ "scope": "C",
+ "type": "nav"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button_Active"
+ },
+ "position": {
+ "height": 23,
+ "width": 172,
+ "x": 4,
+ "y": 23
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Active"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "page": "/alarms/hitlist"
+ },
+ "scope": "C",
+ "type": "nav"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button_HitList"
+ },
+ "position": {
+ "height": 23,
+ "width": 172,
+ "x": 4,
+ "y": 48
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Hit List"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "page": "/alarms/history"
+ },
+ "scope": "C",
+ "type": "nav"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button_History"
+ },
+ "position": {
+ "height": 23,
+ "width": 172,
+ "x": 4,
+ "y": 73
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "History"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "Label_Alarms"
+ },
+ "position": {
+ "height": 21,
+ "width": 180
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#FF8A8A",
+ "border-bottom": "2px solid #000",
+ "fontFamily": "Helvetica",
+ "fontSize": "11px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "Showing 9 Alarms"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "component": {
+ "onRowDoubleClick": {
+ "config": {
+ "script": "\tscreen \u003d alarms.resolveScreenBySource(event.value.source)\n\tif screen \u003c\u003e \"\":\n\t\twindow \u003d \"Windows/GraphicsWrapper\"\n\t\tparams \u003d {\"view\": screen}\n\t\tsystem.perspective.navigate(\"/\")\n\t\tsystem.perspective.navigate(view\u003dwindow, params\u003dparams)"
+ },
+ "scope": "G",
+ "type": "script"
+ },
+ "onSelectionChange": {
+ "config": {
+ "script": "\tif event.selectedRow \u003c\u003e None:\n\t\tdevice \u003d self.props.data.getValueAt(event.selectedRow, \"device\")\n\t\tself.session.custom.alarmHighlight \u003d device\n\telse:\n\t\tself.session.custom.alarmHighlight \u003d \"\""
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ },
+ "dom": {
+ "onKeyDown": {
+ "config": {
+ "script": "\tif event.key \u003d\u003d \"Escape\": # Escape key\n\t\tself.props.selection.selectedColumn \u003d None\n\t\tself.props.selection.selectedRow \u003d None"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Table"
+ },
+ "position": {
+ "height": "100%",
+ "width": "calc(100% - 182px)",
+ "x": 182
+ },
+ "propConfig": {
+ "custom.hasAlarms": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]Gateway/ActiveAlarms"
+ },
+ "transforms": [
+ {
+ "code": "\tfor r in range(value.getRowCount()):\n\t\tif value.getValueAt(r, \"Class\") \u003d\u003d \"Error\":\n\t\t\treturn True\n\treturn False",
+ "type": "script"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.data": {
+ "binding": {
+ "config": {
+ "expression": "if({../AlarmContainer.meta.visible} \u0026\u0026 {page.props.primaryView} !\u003d null \u0026\u0026 {session.custom.currentGraphic} !\u003d null,\r\n\t// We return ActiveAlarms anyway, regardless of result, because we want to subscribe to the above too\r\n\t{[default]Gateway/ActiveAlarms},\r\n\t{[default]Gateway/ActiveAlarms}\r\n)"
+ },
+ "transforms": [
+ {
+ "code": "\tif self.parent.parent.getChild(\"AlarmContainer\").meta.visible:\n\t\trows \u003d []\n\t\tfor r in range(value.getRowCount()):\n\t\t\tif value.getValueAt(r, \"Class\") !\u003d \"Error\":\n\t\t\t\trows.append(r)\n\t\ta \u003d system.dataset.deleteRows(value, rows)\n\t\tscreen \u003d self.page.props.primaryView\n\t\tshownRows \u003d totalRows \u003d a.getRowCount()\n\t\tif screen \u003d\u003d \"Windows/GraphicsWrapper\":\n\t\t\ta \u003d alarms.filterAlarms(self.session.custom.currentGraphic, a)\n\t\t\tshownRows \u003d a.getRowCount()\n\t\t# Update alarm label:\n\t\talarmLabel \u003d self.parent.getChild(\"Label_Alarms\")\n\t\tif shownRows \u003c\u003e totalRows:\n\t\t\talarmLabel.props.text \u003d \u0027Showing {:n} of {:n} Alarms\u0027.format(shownRows, totalRows)\n\t\telse:\n\t\t\talarmLabel.props.text \u003d \u0027Showing {:n} Alarms\u0027.format(totalRows)\n\t\treturn a\n\telse:\n\t\treturn system.dataset.clearDataset(value)",
+ "type": "script"
+ }
+ ],
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "cells": {
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "1px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "1px",
+ "color": "#FF0000",
+ "fontFamily": "Helvetica",
+ "fontSize": "11px"
+ }
+ },
+ "columns": [
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "id",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "1px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "1px",
+ "classes": "",
+ "fontSize": "13px",
+ "fontWeight": "bold"
+ },
+ "title": "Number (ID)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 110
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "eventtime",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "1px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "1px",
+ "classes": "",
+ "fontSize": "13px",
+ "fontWeight": "bold"
+ },
+ "title": "Event Timestamp"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 135
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "duration",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "1px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "1px",
+ "classes": "",
+ "fontSize": "13px",
+ "fontWeight": "bold"
+ },
+ "title": "Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 100
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "class",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "1px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "1px",
+ "classes": "",
+ "fontSize": "13px",
+ "fontWeight": "bold"
+ },
+ "title": "Class"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 75
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "device",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "1px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "1px",
+ "classes": "",
+ "fontSize": "13px",
+ "fontWeight": "bold"
+ },
+ "title": "Location"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "description",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "1px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "1px",
+ "classes": "",
+ "fontSize": "13px",
+ "fontWeight": "bold"
+ },
+ "title": "Description"
+ },
+ "justify": "auto",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "plctag",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "1px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "1px",
+ "classes": "",
+ "fontSize": "13px",
+ "fontWeight": "bold"
+ },
+ "title": "Tag"
+ },
+ "justify": "auto",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "source",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "justify": "auto",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": false,
+ "width": ""
+ }
+ ],
+ "emptyMessage": {
+ "noData": {
+ "text": "No Alarm Data"
+ }
+ },
+ "pager": {
+ "bottom": false
+ },
+ "rows": {
+ "height": 15,
+ "highlight": {
+ "enabled": false
+ },
+ "striped": {
+ "enabled": false
+ },
+ "style": {
+ "classes": "table/highlight"
+ }
+ },
+ "style": {
+ "fontFamily": "Helvetica",
+ "fontSize": "12px",
+ "fontWeight": "bold",
+ "minWidth": "786px",
+ "transform": "scale(1)"
+ }
+ },
+ "type": "ia.display.table"
+ }
+ ],
+ "meta": {
+ "name": "AlarmContainer",
+ "visible": false
+ },
+ "position": {
+ "height": "100%",
+ "width": "calc(100% - 32px)",
+ "x": 32
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "view.custom.currentTab"
+ },
+ "transforms": [
+ {
+ "fallback": "false",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": "{session.custom.heatmapSettings.enabled}\u003dfalse"
+ }
+ ],
+ "outputType": "expression",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ }
+ },
+ "type": "ia.container.coord"
+ },
+ {
+ "children": [
+ {
+ "custom": {
+ "selectedState": "value"
+ },
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tval \u003d self.props.selected\n\tif val in [True, False]:\n\t\tfor child in self.parent.getChildren():\n\t\t\tif child.meta.name.startswith(\"Checkbox\"):\n\t\t\t\tchild.props.selected \u003d val\n\telse:\n\t\tself.props.selected \u003d False"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Show_Devices"
+ },
+ "position": {
+ "height": 24,
+ "width": 160,
+ "x": 50
+ },
+ "propConfig": {
+ "props.selected": {
+ "binding": {
+ "config": {
+ "expression": " {../Checkbox_Beacons.props.selected}\r\n||{../Checkbox_DivertPaddles.props.selected}\r\n||{../Checkbox_EIPs.props.selected}\r\n||{../Checkbox_Encoders.props.selected}\r\n||{../Checkbox_Estops.props.selected}\r\n||{../Checkbox_ProxSwitches.props.selected}\r\n||{../Checkbox_MCPs.props.selected}\r\n||{../Checkbox_PhotoEyes.props.selected}\r\n||{../Checkbox_PushButtons.props.selected}\r\n||{../Checkbox_Scanners.props.selected}\r\n||{../Checkbox_VFDs.props.selected}"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderBottomStyle": "solid",
+ "fontSize": "16px",
+ "fontWeight": "bold"
+ },
+ "text": "Show Devices"
+ },
+ "type": "ia.input.checkbox"
+ },
+ {
+ "meta": {
+ "name": "Checkbox_Beacons"
+ },
+ "position": {
+ "height": 24,
+ "width": 180,
+ "x": 50,
+ "y": 24
+ },
+ "propConfig": {
+ "props.selected": {
+ "binding": {
+ "config": {
+ "bidirectional": true,
+ "path": "session.custom.dexmanager.show.Beacons"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "text": "Beacons"
+ },
+ "type": "ia.input.checkbox"
+ },
+ {
+ "meta": {
+ "name": "Checkbox_DivertPaddles"
+ },
+ "position": {
+ "height": 24,
+ "width": 180,
+ "x": 50,
+ "y": 48
+ },
+ "propConfig": {
+ "props.selected": {
+ "binding": {
+ "config": {
+ "bidirectional": true,
+ "path": "session.custom.dexmanager.show.ConveyorLabels"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "text": "Conveyor Labels"
+ },
+ "type": "ia.input.checkbox"
+ },
+ {
+ "meta": {
+ "name": "Checkbox_EIPs"
+ },
+ "position": {
+ "height": 24,
+ "width": 180,
+ "x": 50,
+ "y": 72
+ },
+ "propConfig": {
+ "props.selected": {
+ "binding": {
+ "config": {
+ "bidirectional": true,
+ "path": "session.custom.dexmanager.show.EIPs"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "text": "EIPs"
+ },
+ "type": "ia.input.checkbox"
+ },
+ {
+ "meta": {
+ "name": "Checkbox_Encoders"
+ },
+ "position": {
+ "height": 24,
+ "width": 180,
+ "x": 220
+ },
+ "propConfig": {
+ "props.selected": {
+ "binding": {
+ "config": {
+ "bidirectional": true,
+ "path": "session.custom.dexmanager.show.Encoders"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "text": "Encoders"
+ },
+ "type": "ia.input.checkbox"
+ },
+ {
+ "meta": {
+ "name": "Checkbox_Estops"
+ },
+ "position": {
+ "height": 24,
+ "width": 180,
+ "x": 220,
+ "y": 24
+ },
+ "propConfig": {
+ "props.selected": {
+ "binding": {
+ "config": {
+ "bidirectional": true,
+ "path": "session.custom.dexmanager.show.Estops"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "text": "Estops"
+ },
+ "type": "ia.input.checkbox"
+ },
+ {
+ "meta": {
+ "name": "Checkbox_ProxSwitches"
+ },
+ "position": {
+ "height": 24,
+ "width": 180,
+ "x": 220,
+ "y": 48
+ },
+ "propConfig": {
+ "props.selected": {
+ "binding": {
+ "config": {
+ "bidirectional": true,
+ "path": "session.custom.dexmanager.show.LimitSwitches"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "text": "Prox Switches"
+ },
+ "type": "ia.input.checkbox"
+ },
+ {
+ "meta": {
+ "name": "Checkbox_MCPs"
+ },
+ "position": {
+ "height": 24,
+ "width": 180,
+ "x": 220,
+ "y": 72
+ },
+ "propConfig": {
+ "props.selected": {
+ "binding": {
+ "config": {
+ "bidirectional": true,
+ "path": "session.custom.dexmanager.show.MCPs"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "text": "MCPs"
+ },
+ "type": "ia.input.checkbox"
+ },
+ {
+ "meta": {
+ "name": "Checkbox_PhotoEyes"
+ },
+ "position": {
+ "height": 24,
+ "width": 180,
+ "x": 390
+ },
+ "propConfig": {
+ "props.selected": {
+ "binding": {
+ "config": {
+ "bidirectional": true,
+ "path": "session.custom.dexmanager.show.PhotoEyes"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "text": "Photo Eyes"
+ },
+ "type": "ia.input.checkbox"
+ },
+ {
+ "meta": {
+ "name": "Checkbox_PushButtons"
+ },
+ "position": {
+ "height": 24,
+ "width": 180,
+ "x": 390,
+ "y": 24
+ },
+ "propConfig": {
+ "props.selected": {
+ "binding": {
+ "config": {
+ "bidirectional": true,
+ "path": "session.custom.dexmanager.show.PushButtons"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "text": "Push Buttons"
+ },
+ "type": "ia.input.checkbox"
+ },
+ {
+ "meta": {
+ "name": "Checkbox_Scanners"
+ },
+ "position": {
+ "height": 24,
+ "width": 180,
+ "x": 390,
+ "y": 48
+ },
+ "propConfig": {
+ "props.selected": {
+ "binding": {
+ "config": {
+ "bidirectional": true,
+ "path": "session.custom.dexmanager.show.Scanners"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "text": "Scanners"
+ },
+ "type": "ia.input.checkbox"
+ },
+ {
+ "meta": {
+ "name": "Checkbox_VFDs"
+ },
+ "position": {
+ "height": 24,
+ "width": 180,
+ "x": 390,
+ "y": 72
+ },
+ "propConfig": {
+ "props.selected": {
+ "binding": {
+ "config": {
+ "bidirectional": true,
+ "path": "session.custom.dexmanager.show.VFDs"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "text": "VFDs"
+ },
+ "type": "ia.input.checkbox"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tgateway.setPowerSaveMin(self.props.value)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "PowerSaveMinutes"
+ },
+ "position": {
+ "height": 25,
+ "width": 170,
+ "x": 570,
+ "y": 28
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "struct": {
+ "roles": "{session.props.auth.user.roles}",
+ "type": "{session.props.device.type}"
+ },
+ "waitOnAll": true
+ },
+ "transforms": [
+ {
+ "code": "\treturn value.type \u003d\u003d \"designer\" or (value.roles \u003c\u003e None and len(value.roles))",
+ "type": "script"
+ }
+ ],
+ "type": "expr-struct"
+ }
+ },
+ "props.value": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]Gateway/PowerSaveMin"
+ },
+ "overlayOptOut": true,
+ "type": "tag"
+ }
+ }
+ },
+ "type": "ia.input.numeric-entry-field"
+ },
+ {
+ "meta": {
+ "name": "Label_PowerSave"
+ },
+ "position": {
+ "height": 24,
+ "width": 170,
+ "x": 570
+ },
+ "props": {
+ "style": {
+ "borderBottomStyle": "solid",
+ "fontSize": "16px",
+ "fontWeight": "bold"
+ },
+ "text": "Power Save Minutes"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_FMS",
+ "visible": false
+ },
+ "position": {
+ "height": 24,
+ "width": 245,
+ "x": 785
+ },
+ "props": {
+ "style": {
+ "borderBottomStyle": "solid",
+ "fontSize": "16px",
+ "fontWeight": "bold"
+ },
+ "text": "FMS Options"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Slider_ImbalanceSP",
+ "visible": false
+ },
+ "position": {
+ "height": 32,
+ "width": 120,
+ "x": 905,
+ "y": 55
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "../Label_FMS.meta.visible"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "expression": "{../Toggle_PeakMode.props.enabled} \u0026\u0026 {../Toggle_PeakMode.props.selected}"
+ },
+ "type": "expr"
+ }
+ },
+ "props.trackColor": {
+ "binding": {
+ "config": {
+ "expression": "if({parent.meta.visible},\r\n\t\"\",\r\n\t\"rgba(0,0,0,0)\"\r\n)"
+ },
+ "type": "expr"
+ },
+ "persistent": true
+ },
+ "props.value": {
+ "binding": {
+ "config": {
+ "bidirectional": true,
+ "fallbackDelay": 0.5,
+ "mode": "direct",
+ "tagPath": "[default]FMS/Peak_Mode_Imbalance_SP"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "labels": {
+ "interval": 5,
+ "show": true
+ },
+ "max": 90,
+ "min": 75,
+ "step": 5,
+ "trackColor": "rgba(0,0,0,0)"
+ },
+ "type": "ia.input.slider"
+ },
+ {
+ "meta": {
+ "name": "Toggle_PeakMode",
+ "visible": false
+ },
+ "position": {
+ "height": 32,
+ "width": 55,
+ "x": 885,
+ "y": 25
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "../Label_FMS.meta.visible"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "struct": {
+ "roles": "{session.props.auth.user.roles}",
+ "type": "{session.props.device.type}"
+ },
+ "waitOnAll": true
+ },
+ "transforms": [
+ {
+ "code": "\treturn value.type \u003d\u003d \"designer\" or (value.roles \u003c\u003e None and len(value.roles))",
+ "type": "script"
+ }
+ ],
+ "type": "expr-struct"
+ }
+ },
+ "props.selected": {
+ "binding": {
+ "config": {
+ "bidirectional": true,
+ "fallbackDelay": 0.5,
+ "mode": "direct",
+ "tagPath": "[default]FMS/Peak_Mode_Enabled"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "label": {
+ "position": "left"
+ }
+ },
+ "type": "ia.input.toggle-switch"
+ },
+ {
+ "meta": {
+ "name": "Label_PeakMode",
+ "visible": false
+ },
+ "position": {
+ "height": 25,
+ "width": 110,
+ "x": 785,
+ "y": 28
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "../Label_FMS.meta.visible"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "text": "Peak Mode:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_ImbalanceSP",
+ "visible": false
+ },
+ "position": {
+ "height": 25,
+ "width": 110,
+ "x": 785,
+ "y": 58
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "../Label_FMS.meta.visible"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "text": "Imbalance SP:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_PeakMode_0",
+ "visible": false
+ },
+ "position": {
+ "height": 25,
+ "width": 60,
+ "x": 935,
+ "y": 28
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "../Label_FMS.meta.visible"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "props.text": {
+ "binding": {
+ "config": {
+ "expression": "if({../Toggle_PeakMode.props.selected},\r\n\t\"On\",\r\n\t\"Off\"\r\n)"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "textTransform": "uppercase"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_PeakMode_1",
+ "visible": false
+ },
+ "position": {
+ "height": 25,
+ "width": 110,
+ "x": 1040,
+ "y": 28
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "../Label_FMS.meta.visible"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "text": "RE5 To PS3:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Toggle_PeakMode_0",
+ "visible": false
+ },
+ "position": {
+ "height": 32,
+ "width": 55,
+ "x": 1140,
+ "y": 25
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "../Label_FMS.meta.visible"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "struct": {
+ "enabled": " {[default]MCP03_Custom/RE05_To_PS03_HMI_Enable}\r\n\u0026\u0026{[default]MCP04_Custom/RE05_To_PS03_HMI_Enable}",
+ "roles": "{session.props.auth.user.roles}",
+ "type": "{session.props.device.type}"
+ },
+ "waitOnAll": true
+ },
+ "transforms": [
+ {
+ "code": "\treturn value.enabled and (value.type \u003d\u003d \"designer\" or (value.roles \u003c\u003e None and len(value.roles)))",
+ "type": "script"
+ }
+ ],
+ "type": "expr-struct"
+ }
+ },
+ "props.selected": {
+ "binding": {
+ "config": {
+ "bidirectional": true,
+ "fallbackDelay": 0.5,
+ "mode": "direct",
+ "tagPath": "[default]FMS/RE05_To_PS03_HMI"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "label": {
+ "position": "left"
+ }
+ },
+ "type": "ia.input.toggle-switch"
+ },
+ {
+ "meta": {
+ "name": "Label_PeakMode_2",
+ "visible": false
+ },
+ "position": {
+ "height": 25,
+ "width": 60,
+ "x": 1190,
+ "y": 28
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "../Label_FMS.meta.visible"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "props.text": {
+ "binding": {
+ "config": {
+ "expression": "try(\r\nif({[default]FMS/RE05_To_PS03_HMI},\r\n\t\"Reverse\",\r\n\t\"Forward\"\r\n),\r\n\"Unknown\"\r\n)"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "textTransform": "uppercase"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Docked_Extra"
+ },
+ "position": {
+ "height": "100%",
+ "width": "calc(100% - 775px)",
+ "x": 775
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "path": "Windows/Docked/Docked_Extra"
+ },
+ "type": "ia.display.view"
+ }
+ ],
+ "meta": {
+ "name": "OptionsContainer",
+ "visible": false
+ },
+ "position": {
+ "height": "100%",
+ "width": "calc(100% - 32px)",
+ "x": 32
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "view.custom.currentTab"
+ },
+ "transforms": [
+ {
+ "fallback": "false",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 2,
+ "output": "{session.custom.heatmapSettings.enabled}\u003dfalse"
+ }
+ ],
+ "outputType": "expression",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "style": {
+ "background": "#EEE"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "background": "#AAA",
+ "border-top": "2px solid #000"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/4e36ff0e8416ea1d19aaf2420cb3e458afbd3f91331ed14f7fe38cdc72a2cd90 b/.resources/4e36ff0e8416ea1d19aaf2420cb3e458afbd3f91331ed14f7fe38cdc72a2cd90
new file mode 100644
index 00000000..a6ba74f6
--- /dev/null
+++ b/.resources/4e36ff0e8416ea1d19aaf2420cb3e458afbd3f91331ed14f7fe38cdc72a2cd90
@@ -0,0 +1,10 @@
+{
+ "base": {
+ "style": {
+ "backgroundColor": "#FF0000",
+ "color": "#FFFFFF",
+ "fontFamily": "Arial",
+ "fontWeight": "bold"
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/4e8cd05f5087d60df1b9a2b06300087c48a921c32a351e0b20988c3b4751bfe4 b/.resources/4e8cd05f5087d60df1b9a2b06300087c48a921c32a351e0b20988c3b4751bfe4
new file mode 100644
index 00000000..f5abd78f
--- /dev/null
+++ b/.resources/4e8cd05f5087d60df1b9a2b06300087c48a921c32a351e0b20988c3b4751bfe4
@@ -0,0 +1,15 @@
+{
+ "custom": {},
+ "params": {},
+ "props": {
+ "defaultSize": {
+ "height": 100
+ }
+ },
+ "root": {
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/4fe9aa0e6014156977edfe9b57973bf88ccc364f959332151105929db06f7279 b/.resources/4fe9aa0e6014156977edfe9b57973bf88ccc364f959332151105929db06f7279
new file mode 100644
index 00000000..f2d3dfa0
--- /dev/null
+++ b/.resources/4fe9aa0e6014156977edfe9b57973bf88ccc364f959332151105929db06f7279
@@ -0,0 +1,57 @@
+WITH range_alarm_events AS (
+ SELECT e.*,
+ /* Get the last time this event was active within the given time range*/
+ (
+ /* Search for the clear event (if exists) for the outer query's active event */
+ SELECT MIN(eventtime)
+ FROM alarm_events e2
+ WHERE e2.eventid = e.eventid /* eventid is unique per alarm instance */
+ AND e2.eventtime >= e.eventtime
+ AND e2.eventtype = 1 /* Look only for the clear event */
+ ORDER BY eventtime ASC
+ LIMIT 1
+ ) AS endtime
+ FROM alarm_events e
+ /* The range for both start/end allows for index optimizations */
+ WHERE
+ /* Filter for Active events */
+ eventtype = 0
+ /* Filter priority */
+ AND priority >= :priority
+ /* Filter by tag */
+ AND source LIKE CONCAT("prov:default:/tag:", REGEXP_REPLACE(:tagPath, "\\[.*\\]|\\/Graphics", ""), "%")
+ ORDER BY eventtime DESC
+ LIMIT 50
+), range_alarm_events2 AS (
+ SELECT *,
+ COALESCE(endtime, NOW()) AS endtime_est, /* Clamp to end of time range if clear event is after end time */
+ TIMESTAMPDIFF(SECOND, eventtime, COALESCE(endtime, NOW())) AS duration
+ FROM range_alarm_events
+)
+SELECT e.id,
+ e.eventtime AS starttime, e.endtime,
+ /* Translate duration to a string */
+ CAST(SEC_TO_TIME(FLOOR(e.duration)) AS CHAR) AS duration,
+ /* Retrieve data */
+ ddevice.strvalue AS device,
+ displaypath AS description,
+ e.source,
+ /* Translate priority to string */
+ dclass.strvalue AS class,
+ CASE
+ WHEN e.priority=4 THEN "Critical"
+ WHEN e.priority=3 THEN "High"
+ WHEN e.priority=2 THEN "Medium"
+ WHEN e.priority=1 THEN "Low"
+ WHEN e.priority=0 THEN "Diagnostic"
+ ELSE "N/A"
+ END AS priority,
+ /* Retrieve PLCTag */
+ dtag.strvalue AS plctag
+FROM range_alarm_events2 e
+/* Lookup PLCTag */
+JOIN alarm_event_data dtag ON e.id = dtag.id AND dtag.propname = "PLCTag"
+/* Lookup Device */
+JOIN alarm_event_data ddevice ON e.id = ddevice.id AND ddevice.propname = "Device"
+/* Lookup Class */
+JOIN alarm_event_data dclass ON e.id = dclass.id AND dclass.propname = "Class";
\ No newline at end of file
diff --git a/.resources/50205d600c4f1edc2555df0ac560cec71a5d146de6a2fc6b9aa920f8f2c304da b/.resources/50205d600c4f1edc2555df0ac560cec71a5d146de6a2fc6b9aa920f8f2c304da
new file mode 100644
index 00000000..9eff872f
--- /dev/null
+++ b/.resources/50205d600c4f1edc2555df0ac560cec71a5d146de6a2fc6b9aa920f8f2c304da
@@ -0,0 +1,3189 @@
+{
+ "custom": {},
+ "params": {},
+ "props": {
+ "defaultSize": {
+ "height": 508,
+ "width": 1103
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "OS01_01GR"
+ },
+ "position": {
+ "height": 56,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 77,
+ "x": 852,
+ "y": 405
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/OS01/OS01_01GR/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "OS01_02CH"
+ },
+ "position": {
+ "height": 20,
+ "width": 250,
+ "x": 852,
+ "y": 309
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/OS01/OS01_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_AL0"
+ },
+ "position": {
+ "height": 7,
+ "rotate": {
+ "anchor": "0% 0%"
+ },
+ "width": 83,
+ "x": 601,
+ "y": 435
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/AL0/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_AL1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0% 0%"
+ },
+ "width": 42,
+ "x": 642,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/AL1/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false,
+ "type": "skew-right"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_AL2"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0% 0%"
+ },
+ "width": 42,
+ "x": 642,
+ "y": 455
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/AL2/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false,
+ "type": "skew-right"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_D0"
+ },
+ "position": {
+ "height": 35,
+ "rotate": {
+ "anchor": "0% 0%"
+ },
+ "width": 22,
+ "x": 361,
+ "y": 435
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/D0/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_D1"
+ },
+ "position": {
+ "height": 35,
+ "rotate": {
+ "anchor": "0% 0%"
+ },
+ "width": 22,
+ "x": 382,
+ "y": 435
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/D1/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_D2"
+ },
+ "position": {
+ "height": 35,
+ "rotate": {
+ "anchor": "0% 0%"
+ },
+ "width": 18,
+ "x": 403,
+ "y": 435
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/D2/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_D3"
+ },
+ "position": {
+ "height": 35,
+ "rotate": {
+ "anchor": "0% 0%"
+ },
+ "width": 18,
+ "x": 420,
+ "y": 435
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/D3/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_D4"
+ },
+ "position": {
+ "height": 35,
+ "rotate": {
+ "anchor": "0% 0%"
+ },
+ "width": 18,
+ "x": 437,
+ "y": 435
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/D4/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_D5"
+ },
+ "position": {
+ "height": 35,
+ "rotate": {
+ "anchor": "0% 0%"
+ },
+ "width": 18,
+ "x": 454,
+ "y": 435
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/D5/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_D6"
+ },
+ "position": {
+ "height": 35,
+ "rotate": {
+ "anchor": "0% 0%"
+ },
+ "width": 18,
+ "x": 471,
+ "y": 435
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/D6/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_DV1"
+ },
+ "position": {
+ "height": 56,
+ "rotate": {
+ "anchor": "0% 0%",
+ "angle": "270deg"
+ },
+ "width": 32,
+ "x": 755,
+ "y": 436
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/DV1/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false,
+ "type": "bar"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_DV2"
+ },
+ "position": {
+ "height": 56,
+ "rotate": {
+ "anchor": "0% 0%",
+ "angle": "270deg"
+ },
+ "width": 32,
+ "x": 852,
+ "y": 436
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/DV2/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false,
+ "type": "bar"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_F1"
+ },
+ "position": {
+ "height": 35,
+ "rotate": {
+ "anchor": "0% 0%"
+ },
+ "width": 24,
+ "x": 488,
+ "y": 435
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/F1/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_F2"
+ },
+ "position": {
+ "height": 35,
+ "rotate": {
+ "anchor": "0% 0%"
+ },
+ "width": 24,
+ "x": 511,
+ "y": 435
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/F2/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_F3"
+ },
+ "position": {
+ "height": 35,
+ "rotate": {
+ "anchor": "0% 0%"
+ },
+ "width": 24,
+ "x": 534,
+ "y": 435
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/F3/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_MG1"
+ },
+ "position": {
+ "height": 13,
+ "rotate": {
+ "anchor": "0% 0%"
+ },
+ "width": 42,
+ "x": 601,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/MG1/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false,
+ "type": "skew-left"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_MG2"
+ },
+ "position": {
+ "height": 17,
+ "rotate": {
+ "anchor": "0% 0%"
+ },
+ "width": 42,
+ "x": 601,
+ "y": 453
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/MG2/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false,
+ "type": "skew-right"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_TA1"
+ },
+ "position": {
+ "height": 35,
+ "rotate": {
+ "anchor": "0% 0%"
+ },
+ "width": 34,
+ "x": 874,
+ "y": 435
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/TA1/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_TR1"
+ },
+ "position": {
+ "height": 35,
+ "rotate": {
+ "anchor": "0% 0%"
+ },
+ "width": 18,
+ "x": 683,
+ "y": 435
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/TR1/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_TR2"
+ },
+ "position": {
+ "height": 35,
+ "rotate": {
+ "anchor": "0% 0%"
+ },
+ "width": 18,
+ "x": 700,
+ "y": 435
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/TR2/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_TR3"
+ },
+ "position": {
+ "height": 35,
+ "rotate": {
+ "anchor": "0% 0%"
+ },
+ "width": 18,
+ "x": 717,
+ "y": 435
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/TR3/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_TR4"
+ },
+ "position": {
+ "height": 35,
+ "rotate": {
+ "anchor": "0% 0%"
+ },
+ "width": 34,
+ "x": 777,
+ "y": 435
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/TR4/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_TR5"
+ },
+ "position": {
+ "height": 35,
+ "rotate": {
+ "anchor": "0% 0%"
+ },
+ "width": 22,
+ "x": 810,
+ "y": 435
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/TR5/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_VR1"
+ },
+ "position": {
+ "height": 35,
+ "rotate": {
+ "anchor": "0% 0%"
+ },
+ "width": 44,
+ "x": 734,
+ "y": 435
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/VR1/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_VR2"
+ },
+ "position": {
+ "height": 35,
+ "rotate": {
+ "anchor": "0% 0%"
+ },
+ "width": 44,
+ "x": 831,
+ "y": 435
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/VR2/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_Visicon"
+ },
+ "position": {
+ "height": 35,
+ "rotate": {
+ "anchor": "0% 0%"
+ },
+ "width": 45,
+ "x": 557,
+ "y": 435
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/Visicon/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "isClickable": false,
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RE01_01GR"
+ },
+ "position": {
+ "height": 56,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 76,
+ "x": 755,
+ "y": 405
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE01/RE01_01GR/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RE01_02"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 420,
+ "x": 811,
+ "y": 330
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE01/RE01_02/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RE01_03"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 161,
+ "x": 392,
+ "y": 330
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE01/RE01_03/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RE02_05"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 810,
+ "x": 1022,
+ "y": 38
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_05/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RE02_06"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 170,
+ "x": 213,
+ "y": 38
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_06/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RE02_08"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 379,
+ "x": 24,
+ "y": 57
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_08/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RE01_04"
+ },
+ "position": {
+ "height": 126,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 126,
+ "x": 232,
+ "y": 436
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE01/RE01_04/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "conveyorWidth": 20,
+ "side": "left"
+ }
+ },
+ "type": "dex.display.conveyorcurve"
+ },
+ {
+ "meta": {
+ "name": "RE02_07"
+ },
+ "position": {
+ "height": 40,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 40,
+ "x": 44,
+ "y": 58
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_07/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "side": "left"
+ }
+ },
+ "type": "dex.display.conveyorcurve"
+ },
+ {
+ "meta": {
+ "name": "MCP10"
+ },
+ "position": {
+ "height": 20,
+ "width": 50,
+ "x": 435,
+ "y": 387
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/MCP10/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.mcp"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_AL0_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 635,
+ "y": 418
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/AL0/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_AL1_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 666,
+ "y": 418
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/AL1/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_AL2_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 666,
+ "y": 471
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/AL2/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_D0_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 365,
+ "y": 471
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/D0/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_D1_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 385,
+ "y": 471
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/D1/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_D2_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 404,
+ "y": 471
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/D2/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_D3_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 421,
+ "y": 471
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/D3/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_D4_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 438,
+ "y": 471
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/D4/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_D5_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 455,
+ "y": 471
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/D5/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_D6_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 472,
+ "y": 471
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/D6/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_DV1_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 738,
+ "y": 418
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/DV1/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_DV2_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 909,
+ "y": 418
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/DV2/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_F1_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 491,
+ "y": 471
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/F1/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_F2_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 515,
+ "y": 471
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/F2/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_F3_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 537,
+ "y": 471
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/F3/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_MG1_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 603,
+ "y": 418
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/MG1/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_MG2_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 603,
+ "y": 471
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/MG2/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_TA1_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 884,
+ "y": 471
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/TA1/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_TR1_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 684,
+ "y": 471
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/TR1/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_TR2_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 701,
+ "y": 471
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/TR2/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_TR3_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 718,
+ "y": 471
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/TR3/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_TR4_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 785,
+ "y": 471
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/TR4/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_TR5_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 814,
+ "y": 471
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/TR5/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_VR1_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 749,
+ "y": 471
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/VR1/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_VR2_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 846,
+ "y": 471
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/VR2/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "RE01_02_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 459,
+ "y": 293
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE01/RE01_02/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "RE01_03_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 309,
+ "y": 293
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE01/RE01_03/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "RE02_05_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 561,
+ "y": 1
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_05/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "RE02_06_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 139,
+ "y": 39
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_06/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "RE02_08_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 25,
+ "y": 386
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_08/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_ESS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 684,
+ "y": 414
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/ESS1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_ESS2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 684,
+ "y": 488
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/ESS2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_ESS3"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 717,
+ "y": 414
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/ESS3/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_ESS4"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 863,
+ "y": 471
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/ESS4/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "PS01_07_ESS5"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 831,
+ "y": 414
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP10/PS01_07/ESS5/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "RE01_01GR_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 812,
+ "y": 331
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE01/RE01_01GR/EPC1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "RE01_03_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 285,
+ "y": 289
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE01/RE01_03/EPC1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "RE02_05_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 608,
+ "y": 39
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_05/EPC1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "RE02_06_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 56,
+ "y": 39
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_06/EPC1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "RE01_01GR_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 812,
+ "y": 352
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE01/RE01_01GR/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RE01_01GR_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 812,
+ "y": 371
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE01/RE01_01GR/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RE01_02_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 704,
+ "y": 331
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE01/RE01_02/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RE01_02_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 723,
+ "y": 331
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE01/RE01_02/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RE01_03_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 245,
+ "y": 289
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE01/RE01_03/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RE01_03_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 264,
+ "y": 289
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE01/RE01_03/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RE02_05_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 229,
+ "y": 39
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_05/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RE02_05_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 248,
+ "y": 39
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_05/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RE02_05_SS2_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 568,
+ "y": 39
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_05/SS2/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RE02_05_SS2_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 587,
+ "y": 39
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_05/SS2/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RE02_07_RS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 43,
+ "y": 399
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_07/RS1/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "OS01_01GR_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": 270
+ },
+ "width": 30,
+ "x": 909,
+ "y": 393
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/OS01/OS01_01GR/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RE01_02_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 631,
+ "y": 331
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE01/RE01_02/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RE01_02_SIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 451,
+ "y": 331
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE01/RE01_02/SIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RE01_03_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 244,
+ "y": 331
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE01/RE01_03/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RE02_05_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 568,
+ "y": 60
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_05/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RE02_06_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 108,
+ "y": 39
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_06/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RE02_06_SIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 77,
+ "y": 39
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_06/SIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "OS01_02CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 916,
+ "y": 345
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/OS01/OS01_02CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "OS01_02CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 916,
+ "y": 330
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/OS01/OS01_02CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RE01_01GR_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 833,
+ "y": 352
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE01/RE01_01GR/BCN1/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RE01_02_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 687,
+ "y": 346
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE01/RE01_02/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RE01_02_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 687,
+ "y": 331
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE01/RE01_02/BCN1/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RE01_03_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 245,
+ "y": 272
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE01/RE01_03/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RE01_03_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 245,
+ "y": 257
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE01/RE01_03/BCN1/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RE02_05_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 212,
+ "y": 69
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_05/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RE02_05_BCN1_HRN"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 212,
+ "y": 39
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_05/BCN1/HRN/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RE02_05_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 212,
+ "y": 54
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_05/BCN1/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RE02_05_BCN2_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 551,
+ "y": 39
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_05/BCN2/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RE02_07_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 43,
+ "y": 382
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_07/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "OS01_01GR_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "-135deg"
+ },
+ "width": 99,
+ "x": 912,
+ "y": 408
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/OS01/OS01_01GR/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "OS01_02CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 982,
+ "y": 339
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/OS01/OS01_02CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RE01_01GR_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": 45
+ },
+ "width": 99,
+ "x": 751,
+ "y": 331
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE01/RE01_01GR/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RE01_02_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 393,
+ "y": 339
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE01/RE01_02/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RE01_02_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 674,
+ "y": 339
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE01/RE01_02/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RE01_03_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 243,
+ "y": 300
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE01/RE01_03/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RE01_03_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 380,
+ "y": 339
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE01/RE01_03/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RE01_04_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 36,
+ "x": 144,
+ "y": 400
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE01/RE01_04/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RE02_05_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 485,
+ "y": 8
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_05/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RE02_06_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 45,
+ "y": 48
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_06/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RE02_08_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 34,
+ "x": 34,
+ "y": 420
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_08/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RE02_08_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 34,
+ "x": 34,
+ "y": 69
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_08/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/515cc93a636dbcce4e41de0e7ca009ee4ddd167e81be93450e0ee4e28d1b1657 b/.resources/515cc93a636dbcce4e41de0e7ca009ee4ddd167e81be93450e0ee4e28d1b1657
new file mode 100644
index 00000000..b698adfa
--- /dev/null
+++ b/.resources/515cc93a636dbcce4e41de0e7ca009ee4ddd167e81be93450e0ee4e28d1b1657
@@ -0,0 +1,32 @@
+WITH INDUCTS AS (
+ (
+ SELECT
+ DATE_FORMAT(s04_timestamp, "%Y-%m-%d %H:%i:00") AS time,
+ sorter,
+ induct,
+ COUNT(*) AS total
+ FROM package_history
+ WHERE s04_timestamp BETWEEN :startDate AND :endDate
+ GROUP BY sorter, induct, time
+ ) UNION ALL (
+ SELECT
+ DATE_FORMAT(timestamp, "%Y-%m-%d %H:%i:00") AS time,
+ "AR" AS sorter,
+ lane_id AS induct,
+ SUM(count) AS total
+ FROM pe_history
+ WHERE timestamp BETWEEN :startDate AND :endDate
+ GROUP BY sorter, induct, time
+ )
+)
+SELECT
+ time,
+ /* Counts: */
+ SUM(total) AS total_count,
+ /* PPH: */
+ ROUND(SUM(total)*60) AS total_pph,
+ /* Percents: */
+ ROUND(SUM(total)/(SUM(total) OVER(PARTITION BY sorter, time)), 4) AS 'total/sorter_percent'
+FROM INDUCTS
+WHERE induct = :induct
+GROUP BY induct, time;
\ No newline at end of file
diff --git a/.resources/5186fea8de8f5f2bd557f83b7f9f7a2018a5d733f767cb57e5e7b1f4bb2825ff b/.resources/5186fea8de8f5f2bd557f83b7f9f7a2018a5d733f767cb57e5e7b1f4bb2825ff
new file mode 100644
index 00000000..d5899447
--- /dev/null
+++ b/.resources/5186fea8de8f5f2bd557f83b7f9f7a2018a5d733f767cb57e5e7b1f4bb2825ff
@@ -0,0 +1,14 @@
+{
+ "base": {
+ "style": {
+ "backgroundColor": "#2D7D9F",
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "1px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "1px",
+ "color": "#FFF"
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/52340c1f62d299de9e3d565821025ae372a810ae421661be31a5e53ecced5b4c b/.resources/52340c1f62d299de9e3d565821025ae372a810ae421661be31a5e53ecced5b4c
new file mode 100644
index 00000000..96bed6f2
--- /dev/null
+++ b/.resources/52340c1f62d299de9e3d565821025ae372a810ae421661be31a5e53ecced5b4c
@@ -0,0 +1,274 @@
+{
+ "custom": {
+ "disconnected": true,
+ "plc": "value",
+ "searchId": "value",
+ "state": 0,
+ "string": "Unknown"
+ },
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "propConfig": {
+ "custom.disconnected": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "0": "{view.params.tagProps[0]}",
+ "fc": "{session.custom.fc}"
+ },
+ "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE"
+ },
+ "transforms": [
+ {
+ "expression": "!isGood({value})",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ },
+ "persistent": true
+ },
+ "custom.plc": {
+ "binding": {
+ "config": {
+ "path": "view.params.tagProps[0]"
+ },
+ "transforms": [
+ {
+ "expression": "split({value}, \"/\")[0]",
+ "type": "expression"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.searchId": {
+ "binding": {
+ "config": {
+ "path": "session.custom.searchId"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.state": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "0": "{view.params.tagProps[0]}",
+ "fc": "{session.custom.fc}"
+ },
+ "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value},{view.params.forceFaultStatus},0)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ },
+ "persistent": true
+ },
+ "custom.string": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "fallback": "Unknown",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": "Start"
+ },
+ {
+ "input": 2,
+ "output": "Start Pressed"
+ },
+ {
+ "input": 3,
+ "output": "Start Illuminated"
+ },
+ {
+ "input": 4,
+ "output": "Start Pressed / Illuminated"
+ },
+ {
+ "input": 5,
+ "output": "Stop"
+ },
+ {
+ "input": 6,
+ "output": "Stop Pressed"
+ },
+ {
+ "input": 7,
+ "output": "Stop Illuminated"
+ },
+ {
+ "input": 8,
+ "output": "Stop Pressed / Illuminated"
+ },
+ {
+ "input": 9,
+ "output": "Restart"
+ },
+ {
+ "input": 10,
+ "output": "Restart Pressed"
+ },
+ {
+ "input": 11,
+ "output": "Restart Illuminated"
+ },
+ {
+ "input": 12,
+ "output": "Restart Pressed / Illuminated"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "params.tagProps": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 25,
+ "width": 25
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "JR_Button"
+ },
+ "position": {
+ "height": 1,
+ "width": 1
+ },
+ "propConfig": {
+ "props.elements[0].fill.paint": {
+ "binding": {
+ "config": {
+ "expression": "if(\r\n {view.custom.state} \u003d 0, \"#a9a9a9\", // disconnected gray (DarkGray)\r\n if(\r\n {view.custom.state} % 2 \u003d 1, \"#ffffff\", // white\r\n \"#000000\" // black\r\n )\r\n)\r\n"
+ },
+ "type": "expr"
+ }
+ },
+ "props.elements[1].fill.paint": {
+ "binding": {
+ "config": {
+ "expression": "if({view.custom.state} \u003d 0, \"#a9a9a9\", // disconnected gray\r\n if({view.custom.state} \u003d 1 || {view.custom.state} \u003d 2, \"#90ee90\", // light green\r\n if({view.custom.state} \u003d 3 || {view.custom.state} \u003d 4, \"#228B22\", // softer dark green\r\n if({view.custom.state} \u003d 5 || {view.custom.state} \u003d 6, \"#ffc0cb\", // pink\r\n if({view.custom.state} \u003d 7 || {view.custom.state} \u003d 8, \"#ff0000\", // red\r\n if({view.custom.state} \u003d 9 || {view.custom.state} \u003d 10, \"#808080\", // normal gray\r\n if({view.custom.state} \u003d 11 || {view.custom.state} \u003d 12, \"#ffffff\", \"\") // white\r\n )\r\n )\r\n )\r\n )\r\n )\r\n)\r\n"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "elements": [
+ {
+ "d": "M 0,0 H 20 V 20 H 0 Z",
+ "fill": {},
+ "name": "path",
+ "stroke": {
+ "paint": "#000000",
+ "width": "1.5"
+ },
+ "type": "path"
+ },
+ {
+ "d": "m 17,10.5 a 7,7 0 0 1 -7,7 7,7 0 0 1 -7,-7 7,7 0 0 1 7,-7 7,7 0 0 1 7,7 z",
+ "fill": {},
+ "name": "path",
+ "stroke": {
+ "paint": "#000000",
+ "width": "1"
+ },
+ "type": "path"
+ }
+ ],
+ "viewBox": "0 0 20 20"
+ },
+ "type": "ia.shapes.svg"
+ }
+ ],
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tsystem.perspective.openDock(\u0027Docked-East-JR\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})"
+ },
+ "scope": "G",
+ "type": "script"
+ },
+ "onMouseEnter": {
+ "config": {
+ "script": "\tfrom time import sleep\n\t\n\talarm \u003d []\n\tmessage \u003d None\n\t\n\tsleep(0.5)\n\t\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "root",
+ "tooltip": {
+ "enabled": true
+ }
+ },
+ "propConfig": {
+ "meta.tooltip.text": {
+ "binding": {
+ "config": {
+ "expression": "\"Source Id: \" + {view.params.tagProps[0]} + \", Status: \" + {view.custom.string}\n"
+ },
+ "type": "expr"
+ }
+ },
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "session.custom.alarm_filter.show_buttons"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "mode": "percent",
+ "style": {
+ "cursor": "pointer"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/55cb77098cb1791a316acb0c1a6cc51f9044c8a6090e14da86d7bc6e33b37152 b/.resources/55cb77098cb1791a316acb0c1a6cc51f9044c8a6090e14da86d7bc6e33b37152
new file mode 100644
index 00000000..750ff130
--- /dev/null
+++ b/.resources/55cb77098cb1791a316acb0c1a6cc51f9044c8a6090e14da86d7bc6e33b37152
@@ -0,0 +1,36 @@
+{
+ "base": {
+ "style": {
+ "backgroundImage": "linear-gradient(180deg, rgba(0,164,255,1) 0%, rgba(0,157,245,1) 70%, rgba(0,134,208,1) 100%);",
+ "borderColor": "#555",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "color": "#000",
+ "textTransform": "uppercase"
+ }
+ },
+ "variants": [
+ {
+ "pseudo": "hover",
+ "style": {
+ "backgroundImage": "linear-gradient(0deg, rgba(0,164,255,1) 0%, rgba(0,157,245,1) 70%, rgba(0,134,208,1) 100%);",
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "color": "#000",
+ "cursor": "pointer"
+ }
+ },
+ {
+ "pseudo": "disabled",
+ "style": {
+ "backgroundImage": "linear-gradient(180deg, rgba(0,134,208,1) 0%, rgba(0,134,208,1) 100%);",
+ "borderColor": "#555",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "color": "#555555",
+ "cursor": "not-allowed"
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.resources/560f423574a3690f0eab47372a016ce7a371d53e1d373ba7c283272ee12825a9 b/.resources/560f423574a3690f0eab47372a016ce7a371d53e1d373ba7c283272ee12825a9
new file mode 100644
index 00000000..f79ee95f
--- /dev/null
+++ b/.resources/560f423574a3690f0eab47372a016ce7a371d53e1d373ba7c283272ee12825a9
@@ -0,0 +1,13 @@
+{
+ "base": {
+ "animation": {
+ "duration": "1s",
+ "keyframes": {
+ "0%": {
+ "backgroundColor": "#FF0000"
+ },
+ "100%": {}
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/5612e8ceaeb36017686fa929749142983079448cc4bea35f68b705f67e0fca07 b/.resources/5612e8ceaeb36017686fa929749142983079448cc4bea35f68b705f67e0fca07
new file mode 100644
index 00000000..edb41695
--- /dev/null
+++ b/.resources/5612e8ceaeb36017686fa929749142983079448cc4bea35f68b705f67e0fca07
@@ -0,0 +1,16 @@
+SELECT s01_timestamp AS induct_timestamp,
+ s04_timestamp AS confirm_timestamp,
+ sorter, trackid, scanner,
+ bcr_imgid AS imgid, s01_barcode AS barcode, scanner_status,
+ pkg_length/10 AS pkg_length, /* In inches */
+ gap_leading/10 AS gap_leading, /* In inches */
+ gap_trailing/10 AS gap_trailing, /* In inches */
+ carriers AS trays,
+ assignments, divert_status,
+ destination_req AS requested_dest,
+ destination_act AS diverted_dest,
+ sort_code
+FROM package_history
+WHERE s04_timestamp BETWEEN :startDate AND :endDate
+ORDER BY s04_timestamp DESC
+{limit};
\ No newline at end of file
diff --git a/.resources/57fe1cd3b9819c30321b7858c95c24c835a7634ee6d2521d16906f20a974e5cc b/.resources/57fe1cd3b9819c30321b7858c95c24c835a7634ee6d2521d16906f20a974e5cc
new file mode 100644
index 00000000..36519a25
--- /dev/null
+++ b/.resources/57fe1cd3b9819c30321b7858c95c24c835a7634ee6d2521d16906f20a974e5cc
@@ -0,0 +1,109 @@
+WITH SORTERS AS (
+ SELECT
+ DATE_FORMAT(MIN(s04_timestamp), "%Y-%m-%d %H:00") AS start_timestamp,
+ CONCAT("H",
+ CAST(
+ TIMESTAMPDIFF(
+ HOUR,
+ DATE_FORMAT(MIN(s04_timestamp), "%Y-%m-%d %H:00:00"),
+ DATE_FORMAT(LEAST(CURRENT_TIMESTAMP(), :endDate), "%Y-%m-%d %H:00:00")
+ ) AS CHAR
+ )
+ ) AS hour,
+ COUNT(*) AS total,
+ SUM(sort_code="Success") AS success,
+ SUM(sort_code="Unknown") AS unknown,
+ SUM(sort_code="Unexpected") AS unexpected,
+ SUM(sort_code="Track Err") AS track_err,
+ SUM(sort_code="Gap Err") AS gap_err,
+ SUM(sort_code="Dest Full") AS dest_full,
+ SUM(sort_code="Dest Fault") AS dest_fault,
+ SUM(sort_code="Dest Invalid") AS dest_invalid,
+ SUM(sort_code="No Read") AS no_read,
+ SUM(sort_code="No Code") AS no_code,
+ SUM(sort_code="Multi Label") AS multi_label,
+ SUM(sort_code="Dest Disabled") AS dest_disabled,
+ SUM(sort_code="Rate High") AS rate_high,
+ SUM(sort_code="Div Fail") AS div_fail,
+ SUM(sort_code="Dest None") AS dest_none,
+ SUM(sort_code="Lost") AS lost,
+ SUM(sort_code="Dim Err") AS dim_err,
+ SUM(sort_code="Weight Err") AS weight_err,
+ SUM(sort_code="Underutilized") AS underutilized,
+ SUM(sort_code="Unsafe") AS unsafe
+ FROM package_history
+ WHERE s04_timestamp BETWEEN :startDate AND :endDate
+ AND sorter=:sorter
+ GROUP BY DATE_FORMAT(s04_timestamp, "%Y-%m-%d %H:00")
+)
+SELECT
+ start_timestamp,
+ hour,
+ /* Counts: */
+ total AS total_count,
+ success AS success_count,
+ unknown AS unknown_count,
+ unexpected AS unexpected_count,
+ track_err AS track_err_count,
+ gap_err AS gap_err_count,
+ dest_full AS dest_full_count,
+ dest_fault AS dest_fault_count,
+ dest_invalid AS dest_invalid_count,
+ no_read AS no_read_count,
+ no_code AS no_code_count,
+ multi_label AS multi_label_count,
+ dest_disabled AS dest_disabled_count,
+ rate_high AS rate_high_count,
+ div_fail AS div_fail_count,
+ dest_none AS dest_none_count,
+ lost AS lost_count,
+ dim_err AS dim_err_count,
+ weight_err AS weight_err_count,
+ underutilized AS underutilized_count,
+ unsafe AS unsafe_count,
+ /* PPH: */
+ total AS total_pph,
+ success AS success_pph,
+ unknown AS unknown_pph,
+ unexpected AS unexpected_pph,
+ track_err AS track_err_pph,
+ gap_err AS gap_err_pph,
+ dest_full AS dest_full_pph,
+ dest_fault AS dest_fault_pph,
+ dest_invalid AS dest_invalid_pph,
+ no_read AS no_read_pph,
+ no_code AS no_code_pph,
+ multi_label AS multi_label_pph,
+ dest_disabled AS dest_disabled_pph,
+ rate_high AS rate_high_pph,
+ div_fail AS div_fail_pph,
+ dest_none AS dest_none_pph,
+ lost AS lost_pph,
+ dim_err AS dim_err_pph,
+ weight_err AS weight_err_pph,
+ underutilized AS underutilized_pph,
+ unsafe AS unsafe_pph,
+ /* Percents: */
+ ROUND(total/total, 4) AS total_percent,
+ ROUND(success/total, 4) AS success_percent,
+ ROUND(unknown/total, 4) AS unknown_percent,
+ ROUND(unexpected/total, 4) AS unexpected_percent,
+ ROUND(track_err/total, 4) AS track_err_percent,
+ ROUND(gap_err/total, 4) AS gap_err_percent,
+ ROUND(dest_full/total, 4) AS dest_full_percent,
+ ROUND(dest_fault/total, 4) AS dest_fault_percent,
+ ROUND(dest_invalid/total, 4) AS dest_invalid_percent,
+ ROUND(no_read/total, 4) AS no_read_percent,
+ ROUND(no_code/total, 4) AS no_code_percent,
+ ROUND(multi_label/total, 4) AS multi_label_percent,
+ ROUND(dest_disabled/total, 4) AS dest_disabled_percent,
+ ROUND(rate_high/total, 4) AS rate_high_percent,
+ ROUND(div_fail/total, 4) AS div_fail_percent,
+ ROUND(dest_none/total, 4) AS dest_none_percent,
+ ROUND(lost/total, 4) AS lost_percent,
+ ROUND(dim_err/total, 4) AS dim_err_percent,
+ ROUND(weight_err/total, 4) AS weight_err_percent,
+ ROUND(underutilized/total, 4) AS underutilized_percent,
+ ROUND(unsafe/total, 4) AS unsafe_percent
+FROM SORTERS
+ORDER BY start_timestamp;
\ No newline at end of file
diff --git a/.resources/5875fb704c0899784be0b722c0017a8be722a720bccb621eb0e7eec997605172 b/.resources/5875fb704c0899784be0b722c0017a8be722a720bccb621eb0e7eec997605172
new file mode 100644
index 00000000..9524973c
--- /dev/null
+++ b/.resources/5875fb704c0899784be0b722c0017a8be722a720bccb621eb0e7eec997605172
@@ -0,0 +1,322 @@
+{
+ "custom": {
+ "plc": "value",
+ "searchId": "value",
+ "state": 0,
+ "string": "Clear"
+ },
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "propConfig": {
+ "custom.plc": {
+ "binding": {
+ "config": {
+ "path": "view.params.tagProps[0]"
+ },
+ "transforms": [
+ {
+ "expression": "split({value}, \"/\")[0]",
+ "type": "expression"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.searchId": {
+ "binding": {
+ "config": {
+ "path": "session.custom.searchId"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.state": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 1,
+ "mode": "indirect",
+ "references": {
+ "0": "{view.params.tagProps[0]}",
+ "fc": "{session.custom.fc}"
+ },
+ "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value},{view.params.forceFaultStatus},0)",
+ "type": "expression"
+ },
+ {
+ "fallback": 0,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": 1
+ },
+ {
+ "input": 2,
+ "output": 2
+ },
+ {
+ "input": 3,
+ "output": 3
+ },
+ {
+ "input": 4,
+ "output": 4
+ },
+ {
+ "input": 5,
+ "output": 5
+ },
+ {
+ "input": 6,
+ "output": 6
+ },
+ {
+ "input": 7,
+ "output": 7
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ },
+ "persistent": true
+ },
+ "custom.string": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "fallback": "Clear",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": "Clear"
+ },
+ {
+ "input": 2,
+ "output": "Blocked"
+ },
+ {
+ "input": 3,
+ "output": "Disabled"
+ },
+ {
+ "input": 4,
+ "output": "Jammed"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "params.tagProps": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 40,
+ "width": 200
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Photoeye"
+ },
+ "position": {
+ "height": 1,
+ "width": 1
+ },
+ "propConfig": {
+ "props.elements[0].fill.paint": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "fallback": "#00FF00",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 0,
+ "output": "#00FF00"
+ },
+ {
+ "input": 2,
+ "output": "#000000"
+ },
+ {
+ "input": 3,
+ "output": "#800080"
+ },
+ {
+ "input": 4,
+ "output": "#FF0000"
+ }
+ ],
+ "outputType": "color",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "props.elements[2].fill.paint": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "fallback": "#00FF00",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 0,
+ "output": "#00FF00"
+ },
+ {
+ "input": 2,
+ "output": "#000000"
+ },
+ {
+ "input": 3,
+ "output": "#800080"
+ },
+ {
+ "input": 4,
+ "output": "#FF0000"
+ }
+ ],
+ "outputType": "color",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "elements": [
+ {
+ "d": "m 28.763932,20 -20,10 V 10 Z",
+ "fill": {},
+ "name": "path",
+ "stroke": {
+ "paint": "#000000",
+ "width": "2"
+ },
+ "type": "path"
+ },
+ {
+ "stroke": {
+ "paint": "#000000",
+ "width": "2"
+ },
+ "stroke-dasharray": "4,4",
+ "type": "line",
+ "x1": "30",
+ "x2": "95%",
+ "y1": "20",
+ "y2": "20"
+ },
+ {
+ "fill": {},
+ "height": "20",
+ "stroke": {
+ "paint": "#000000",
+ "width": "2"
+ },
+ "type": "rect",
+ "width": "6",
+ "x": "95%",
+ "y": "10"
+ }
+ ],
+ "viewBox": "0 0 300 40"
+ },
+ "type": "ia.shapes.svg"
+ }
+ ],
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tsystem.perspective.openDock(\u0027Docked-East-Photoeye\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})"
+ },
+ "scope": "G",
+ "type": "script"
+ },
+ "onMouseEnter": {
+ "config": {
+ "script": "\tfrom time import sleep\n\n\talarm \u003d []\n\tmessage \u003d None\n\n\tsleep(0.5)\n\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "root",
+ "tooltip": {
+ "enabled": true
+ }
+ },
+ "propConfig": {
+ "meta.tooltip.text": {
+ "binding": {
+ "config": {
+ "expression": "\"Source Id: \" + {view.params.tagProps[0]} + \", Status: \" + {view.custom.string}\n"
+ },
+ "type": "expr"
+ }
+ },
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "session.custom.alarm_filter.show_photoeyes"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "mode": "percent",
+ "style": {
+ "cursor": "pointer"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/58af92c1d4d4d6485761cc37d4b2bf663960af70869d03356bf08a5913ce4482 b/.resources/58af92c1d4d4d6485761cc37d4b2bf663960af70869d03356bf08a5913ce4482
new file mode 100644
index 00000000..17e41011
--- /dev/null
+++ b/.resources/58af92c1d4d4d6485761cc37d4b2bf663960af70869d03356bf08a5913ce4482
@@ -0,0 +1,556 @@
+{
+ "custom": {},
+ "params": {
+ "titleExtra": "1 rows",
+ "usesTimewidget": true
+ },
+ "propConfig": {
+ "params.titleExtra": {
+ "paramDirection": "output",
+ "persistent": true
+ },
+ "params.usesTimewidget": {
+ "binding": {
+ "config": {
+ "expression": "true"
+ },
+ "type": "expr"
+ },
+ "paramDirection": "output",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 324,
+ "width": 1600
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "ScannerSummary"
+ },
+ "position": {
+ "height": "100%",
+ "width": "100%"
+ },
+ "propConfig": {
+ "custom.timewidget": {
+ "binding": {
+ "config": {
+ "path": "session.custom.timewidget"
+ },
+ "type": "property"
+ },
+ "onChange": {
+ "enabled": null,
+ "script": "\tself.forceRefresh()"
+ }
+ }
+ },
+ "props": {
+ "cells": {
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "1px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "1px",
+ "color": "#000",
+ "fontFamily": "Helvetica",
+ "fontSize": "14px"
+ }
+ },
+ "columns": [
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "sorter",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Sorter"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 80
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "scanner",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Scanner"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 90
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "count",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Total"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 100
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "rate",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Rate (PPH)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 160
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "avg_gap_trailing",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Avg Gap Trailing (Avg)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 120
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "avg_gap_leading",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Avg Gap Leading (in)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 120
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "avg_pkg_length",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Avg Package Length (in)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 150
+ }
+ ],
+ "data": [
+ {
+ "avg_gap_leading": 35.6,
+ "avg_gap_trailing": 29,
+ "avg_pkg_length": 12.4,
+ "count": 73765,
+ "rate": 3074,
+ "scanner": "S01aa",
+ "sorter": "S01"
+ }
+ ],
+ "filter": {
+ "enabled": true
+ },
+ "pager": {
+ "bottom": false
+ },
+ "rows": {
+ "highlight": {
+ "enabled": false
+ },
+ "striped": {
+ "enabled": false
+ },
+ "style": {
+ "classes": "table/highlight"
+ }
+ },
+ "style": {
+ "fontFamily": "Helvetica",
+ "fontSize": "14px",
+ "fontWeight": "bold"
+ }
+ },
+ "scripts": {
+ "customMethods": [
+ {
+ "name": "forceRefresh",
+ "params": [],
+ "script": "\tRED \u003d lambda x: { \"value\": x, \"style\": { \"background\": \"#FEA3AA\" } }\n\tYELLOW \u003d lambda x: { \"value\": x, \"style\": { \"background\": \"#FAF884\" } }\n\t\n\t# Run query:\n\tdata \u003d system.db.runNamedQuery(\"Status/PackageSummary\", {\n\t\t\"startDate\": self.session.custom.timewidget.startDate,\n\t\t\"endDate\": self.session.custom.timewidget.endDate,\n\t})\n\t# Convert to JSON:\n\tfilteredData \u003d utils.datasetToJSON(data)\n\t# Set title extra:\n\tcou \u003d utils.getRowCount(filteredData)\n\tast \u003d \"*\" if cou \u003e\u003d 4000 else \"\"\n\tself.view.params.titleExtra \u003d \"{:n}{} rows\".format(cou, ast)\n\t# Set data\n\tself.props.data \u003d filteredData"
+ }
+ ],
+ "extensionFunctions": null,
+ "messageHandlers": [
+ {
+ "messageType": "export-data",
+ "pageScope": true,
+ "script": "\tutils.downloadCSV(self, \"Scanner Summary\")",
+ "sessionScope": false,
+ "viewScope": false
+ }
+ ]
+ },
+ "type": "ia.display.table"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/58cf0f73055a24cbe4afd01d525e591205c9363d4671ac73c4cdbdcccffc6eae b/.resources/58cf0f73055a24cbe4afd01d525e591205c9363d4671ac73c4cdbdcccffc6eae
new file mode 100644
index 00000000..683fd7fb
--- /dev/null
+++ b/.resources/58cf0f73055a24cbe4afd01d525e591205c9363d4671ac73c4cdbdcccffc6eae
@@ -0,0 +1,214 @@
+{
+ "dataTypes": {
+ "Int1": [
+ "ia.display.cylindrical-tank",
+ "ia.chart.gauge",
+ "ia.display.label",
+ "ia.display.led-display",
+ "ia.display.progress",
+ "ia.chart.simple-gauge",
+ "ia.input.slider",
+ "ia.display.thermometer",
+ "ia.input.oneshotbutton"
+ ],
+ "Int2": [
+ "ia.display.cylindrical-tank",
+ "ia.chart.gauge",
+ "ia.display.label",
+ "ia.display.led-display",
+ "ia.display.progress",
+ "ia.chart.simple-gauge",
+ "ia.input.slider",
+ "ia.display.thermometer",
+ "ia.input.oneshotbutton"
+ ],
+ "Int4": [
+ "ia.display.cylindrical-tank",
+ "ia.chart.gauge",
+ "ia.display.label",
+ "ia.display.led-display",
+ "ia.display.progress",
+ "ia.chart.simple-gauge",
+ "ia.input.slider",
+ "ia.display.thermometer",
+ "ia.input.oneshotbutton"
+ ],
+ "Int8": [
+ "ia.display.cylindrical-tank",
+ "ia.chart.gauge",
+ "ia.display.label",
+ "ia.display.led-display",
+ "ia.display.progress",
+ "ia.chart.simple-gauge",
+ "ia.input.slider",
+ "ia.display.thermometer",
+ "ia.input.oneshotbutton"
+ ],
+ "Float4": [
+ "ia.display.cylindrical-tank",
+ "ia.chart.gauge",
+ "ia.display.label",
+ "ia.display.led-display",
+ "ia.display.progress",
+ "ia.chart.simple-gauge",
+ "ia.input.slider",
+ "ia.display.thermometer"
+ ],
+ "Float8": [
+ "ia.display.cylindrical-tank",
+ "ia.chart.gauge",
+ "ia.display.label",
+ "ia.display.led-display",
+ "ia.display.progress",
+ "ia.chart.simple-gauge",
+ "ia.input.slider",
+ "ia.display.thermometer"
+ ],
+ "Boolean": [
+ "ia.input.checkbox",
+ "ia.input.toggle-switch"
+ ],
+ "String": [
+ "ia.display.label",
+ "ia.display.markdown"
+ ],
+ "DataSet": [
+ "ia.display.table"
+ ]
+ },
+ "bindings": {
+ "ia.input.oneshotbutton": [
+ {
+ "tagProperty": "value",
+ "propertyPath": "props.value",
+ "bidirectional": true
+ }
+ ],
+ "ia.display.table": [
+ {
+ "tagProperty": "value",
+ "propertyPath": "props.data",
+ "bidirectional": false
+ }
+ ],
+ "ia.display.markdown": [
+ {
+ "tagProperty": "value",
+ "propertyPath": "props.source",
+ "bidirectional": false
+ }
+ ],
+ "ia.chart.simple-gauge": [
+ {
+ "tagProperty": "value",
+ "propertyPath": "props.value",
+ "bidirectional": false
+ }
+ ],
+ "ia.display.progress": [
+ {
+ "tagProperty": "value",
+ "propertyPath": "props.value",
+ "bidirectional": false
+ }
+ ],
+ "ia.input.numeric-entry-field": [
+ {
+ "tagProperty": "value",
+ "propertyPath": "props.value",
+ "bidirectional": true
+ }
+ ],
+ "ia.input.password-field": [
+ {
+ "tagProperty": "value",
+ "propertyPath": "props.text",
+ "bidirectional": true
+ }
+ ],
+ "ia.input.toggle-switch": [
+ {
+ "tagProperty": "value",
+ "propertyPath": "props.selected",
+ "bidirectional": true
+ }
+ ],
+ "ia.display.label": [
+ {
+ "tagProperty": "value",
+ "propertyPath": "props.text",
+ "bidirectional": false
+ }
+ ],
+ "rad.display.messenger": [
+ {
+ "tagProperty": "jsonValues",
+ "propertyPath": "messageConfig",
+ "bidirectional": true
+ }
+ ],
+ "ia.input.checkbox": [
+ {
+ "tagProperty": "value",
+ "propertyPath": "props.selected",
+ "bidirectional": true
+ }
+ ],
+ "ia.display.cylindrical-tank": [
+ {
+ "tagProperty": "value",
+ "propertyPath": "props.value",
+ "bidirectional": false
+ }
+ ],
+ "ia.input.text-area": [
+ {
+ "tagProperty": "value",
+ "propertyPath": "props.text",
+ "bidirectional": true
+ }
+ ],
+ "ia.display.led-display": [
+ {
+ "tagProperty": "value",
+ "propertyPath": "props.value",
+ "bidirectional": false
+ }
+ ],
+ "ia.input.barcodescannerinput": [
+ {
+ "tagProperty": "value",
+ "propertyPath": "props.data",
+ "bidirectional": true
+ }
+ ],
+ "ia.chart.gauge": [
+ {
+ "tagProperty": "value",
+ "propertyPath": "props.value",
+ "bidirectional": false
+ }
+ ],
+ "ia.display.thermometer": [
+ {
+ "tagProperty": "value",
+ "propertyPath": "props.value",
+ "bidirectional": false
+ }
+ ],
+ "ia.input.slider": [
+ {
+ "tagProperty": "value",
+ "propertyPath": "props.value",
+ "bidirectional": true
+ }
+ ],
+ "ia.input.text-field": [
+ {
+ "tagProperty": "value",
+ "propertyPath": "props.text",
+ "bidirectional": true
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/.resources/59309a6d0ceac828b9e66194f0522d5b86f2c42e78b21b234af3076462250b4e b/.resources/59309a6d0ceac828b9e66194f0522d5b86f2c42e78b21b234af3076462250b4e
new file mode 100644
index 00000000..86f9c1d6
--- /dev/null
+++ b/.resources/59309a6d0ceac828b9e66194f0522d5b86f2c42e78b21b234af3076462250b4e
@@ -0,0 +1,222 @@
+{
+ "custom": {
+ "state": 1,
+ "state_string": "Device Disconnected",
+ "string": "Device Disconnected"
+ },
+ "params": {
+ "tagProps": [
+ "value"
+ ]
+ },
+ "propConfig": {
+ "custom.string": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "fallback": "Unknown",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 0,
+ "output": "OK"
+ },
+ {
+ "input": 1,
+ "output": "Device Disconnected"
+ },
+ {
+ "input": 2,
+ "output": "Faulted"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 26,
+ "width": 26
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "VFD"
+ },
+ "position": {
+ "height": 1,
+ "width": 1
+ },
+ "propConfig": {
+ "props.elements[1].fill.paint": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "fallback": "#C2C2C2",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 0,
+ "output": "url(#splitGreenGrey)"
+ },
+ {
+ "input": 1,
+ "output": "#C2C2C2"
+ },
+ {
+ "input": 2,
+ "output": "url(#splitRedGrey)"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "elements": [
+ {
+ "elements": [
+ {
+ "elements": [
+ {
+ "offset": "0%",
+ "stop-color": "#C2C2C2",
+ "type": "stop"
+ },
+ {
+ "offset": "49.5%",
+ "stop-color": "#C2C2C2",
+ "type": "stop"
+ },
+ {
+ "offset": "50.5%",
+ "stop-color": "#00FF00",
+ "type": "stop"
+ },
+ {
+ "offset": "100%",
+ "stop-color": "#00FF00",
+ "type": "stop"
+ }
+ ],
+ "gradientUnits": "userSpaceOnUse",
+ "id": "splitGreenGrey",
+ "type": "linearGradient",
+ "x1": "0",
+ "x2": "24",
+ "y1": "0",
+ "y2": "24"
+ },
+ {
+ "elements": [
+ {
+ "offset": "0%",
+ "stop-color": "#C2C2C2",
+ "type": "stop"
+ },
+ {
+ "offset": "49.5%",
+ "stop-color": "#C2C2C2",
+ "type": "stop"
+ },
+ {
+ "offset": "50.5%",
+ "stop-color": "#FF0000",
+ "type": "stop"
+ },
+ {
+ "offset": "100%",
+ "stop-color": "#FF0000",
+ "type": "stop"
+ }
+ ],
+ "gradientUnits": "userSpaceOnUse",
+ "id": "splitRedGrey",
+ "type": "linearGradient",
+ "x1": "0",
+ "x2": "24",
+ "y1": "0",
+ "y2": "24"
+ }
+ ],
+ "type": "defs"
+ },
+ {
+ "cx": "12",
+ "cy": "12",
+ "fill": {},
+ "rx": "10",
+ "ry": "10",
+ "stroke": {
+ "paint": "#000000",
+ "width": "2"
+ },
+ "type": "ellipse"
+ },
+ {
+ "d": "M 6,18 L 18,6",
+ "fill": {},
+ "stroke": {
+ "linecap": "round",
+ "paint": "#000000",
+ "width": "2"
+ },
+ "type": "path"
+ }
+ ],
+ "viewBox": "0 0 24 24"
+ },
+ "type": "ia.shapes.svg"
+ }
+ ],
+ "meta": {
+ "name": "VFD",
+ "tooltip": {
+ "enabled": true
+ }
+ },
+ "propConfig": {
+ "meta.tooltip.text": {
+ "binding": {
+ "config": {
+ "expression": "\"Source Id: \" + {view.params.tagProps[0]} + \", Status: \" + {view.custom.string}\n"
+ },
+ "type": "expr"
+ }
+ },
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "session.custom.alarm_filter.show_VFD"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "mode": "percent",
+ "style": {
+ "cursor": "pointer"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/597068b20095b58444dfd835a85c31b8c4b8c7c638804fd9e6b6da0cc993725e b/.resources/597068b20095b58444dfd835a85c31b8c4b8c7c638804fd9e6b6da0cc993725e
new file mode 100644
index 00000000..7b36e1d6
--- /dev/null
+++ b/.resources/597068b20095b58444dfd835a85c31b8c4b8c7c638804fd9e6b6da0cc993725e
@@ -0,0 +1,10 @@
+{
+ "base": {
+ "style": {
+ "backgroundColor": "#FF6000B3",
+ "color": "#000000",
+ "fontFamily": "Arial",
+ "fontWeight": "bold"
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/5ad3e4281e8c6d233aa13123d8b0e1ebdc95b090ac45ef18720edc345fa1e226 b/.resources/5ad3e4281e8c6d233aa13123d8b0e1ebdc95b090ac45ef18720edc345fa1e226
new file mode 100644
index 00000000..ffedc635
--- /dev/null
+++ b/.resources/5ad3e4281e8c6d233aa13123d8b0e1ebdc95b090ac45ef18720edc345fa1e226
@@ -0,0 +1,75 @@
+WITH ALARM_TIMELAPSES AS (
+ /* Group related active & clear events into a single row */
+ SELECT
+ id, /* Unique to each row in alarm_events, used to look up metadata in alarm_event_data */
+ source, /* Unique alarm path in Ignition */
+ eventtime AS starttime,
+ displaypath, /* Get description */
+ /* Get the last time this event was active within the given time range*/
+ CAST(LEAST(COALESCE((
+ /* Search for the clear event (if exists) for the outer query's active event */
+ SELECT MIN(eventtime)
+ FROM alarm_events e2
+ WHERE e2.eventid = e.eventid /* eventid is unique per alarm instance */
+ AND e2.eventtime >= e.eventtime
+ AND e2.eventtype = 1 /* Look only for the clear event */
+ ORDER BY eventtime ASC
+ ), NOW()), :endDate) AS DATETIME) AS endtime, /* Clamp to end of time range if clear event is after end time */
+ priority
+ FROM alarm_events e
+ /* The range for both start/end allows for index optimizations */
+ WHERE eventtime BETWEEN :startDate AND :endDate
+ /* Filter priority */
+ AND priority >= :priority
+ /* Filter out system events and active events only */
+ AND eventflags & 1 != 1 AND eventtype = 0
+), HITLIST AS (
+ /* Group the same type of alarms together to get hit counts and total durations */
+ SELECT
+ MAX(id) AS id, /* Use latest id to get the latest metadata */
+ MIN(starttime) AS firsttime, /* Get the earliest it's been active in the given time range */
+ MAX(endtime) AS lasttime, /* Get the latest it's been active in the given time range */
+ MIN(displaypath) AS displaypath, /* Get one of the displaypaths associated with source */
+ source,
+ MAX(priority) AS priority,
+ COUNT(*) AS count,
+ SUM(TIME_TO_SEC(TIMEDIFF(endtime, starttime))) AS duration
+ FROM ALARM_TIMELAPSES
+ GROUP BY source
+ ORDER BY count DESC
+ LIMIT 2000
+)
+/* Finally, merge metadata into hitlist */
+SELECT e.id,
+ e.firsttime, e.lasttime,
+ /* Translate duration to a string */
+ CAST(SEC_TO_TIME(FLOOR(e.duration)) AS CHAR) AS duration,
+ /* Retrieve instance count and total duration */
+ e.count,
+ ddevice.strvalue AS device,
+ displaypath AS description,
+ e.source,
+ /* Translate priority to string */
+ dclass.strvalue AS class,
+ CASE
+ WHEN e.priority=4 THEN "Critical"
+ WHEN e.priority=3 THEN "High"
+ WHEN e.priority=2 THEN "Medium"
+ WHEN e.priority=1 THEN "Low"
+ WHEN e.priority=0 THEN "Diagnostic"
+ ELSE "N/A"
+ END AS priority,
+ /* Retrieve PLCTag */
+ dtag.strvalue AS plctag
+FROM HITLIST e
+/* Lookup PLCTag */
+JOIN alarm_event_data dtag ON e.id = dtag.id AND dtag.propname = "PLCTag"
+/* Lookup Device */
+JOIN alarm_event_data ddevice ON e.id = ddevice.id AND ddevice.propname = "Device"
+/* Lookup Class */
+JOIN alarm_event_data dclass ON e.id = dclass.id AND dclass.propname = "Class"
+WHERE CASE
+ WHEN dclass.strvalue = "Error" THEN 2
+ WHEN dclass.strvalue = "Warning" THEN 1
+ WHEN dclass.strvalue = "Message" THEN 0
+ END >= :class;
\ No newline at end of file
diff --git a/.resources/5b6402b0856cc9b3e7f42df52674de423e01f14299efec0d85e5c67a1fa0e351 b/.resources/5b6402b0856cc9b3e7f42df52674de423e01f14299efec0d85e5c67a1fa0e351
new file mode 100644
index 00000000..01905f0a
--- /dev/null
+++ b/.resources/5b6402b0856cc9b3e7f42df52674de423e01f14299efec0d85e5c67a1fa0e351
@@ -0,0 +1,246 @@
+{
+ "custom": {},
+ "params": {
+ "deviceType": "beacon",
+ "meta": {
+ "name": ""
+ },
+ "props": {
+ "config": {
+ "alwaysShowAll": true,
+ "enableHighlight": true,
+ "isClickable": false,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "originSide": "left",
+ "paddleThickness": 10,
+ "showLabel": true,
+ "type": "belt"
+ },
+ "status": {
+ "color": "#aaa",
+ "isExtended": true,
+ "isManual": false,
+ "isRetracted": false,
+ "showAlways": true,
+ "showLabel": "B",
+ "tagPath": "",
+ "tooltip": ""
+ }
+ },
+ "tabs": [
+ "Status",
+ "Alarm History",
+ "Devices",
+ "Controls"
+ ]
+ },
+ "propConfig": {
+ "params.deviceType": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.meta": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.meta.name": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.config": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.config.alwaysShowAll": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.config.isRightOfSorter": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.config.mirror": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.config.originSide": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.config.paddleThickness": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.config.showLabel": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.config.type": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.status": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.status.background": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.status.isExtended": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.status.isFaulted": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.status.isManual": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.status.isRetracted": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.status.showLabel": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.status.tooltip": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.tabs": {
+ "paramDirection": "inout",
+ "persistent": true
+ },
+ "params.tabs[0]": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.tabs[1]": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.tabs[2]": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.tabs[3]": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 569,
+ "width": 900
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Label_0"
+ },
+ "position": {
+ "height": 35,
+ "width": "100%"
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#1A4A5E",
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "1px",
+ "color": "#FFF",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "paddingLeft": 5
+ },
+ "text": "Oiler"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "TabContainer"
+ },
+ "position": {
+ "height": "calc(100% - 35px)",
+ "width": "100%",
+ "y": 35
+ },
+ "propConfig": {
+ "custom.key": {
+ "binding": {
+ "config": {
+ "path": "session.props.auth.user.roles"
+ },
+ "transforms": [
+ {
+ "code": "\troles \u003d [\"Administrator\", \"Developer\"]\n\treturn value !\u003d None and len(value) \u003e 0 and len([i for i in value if i in roles]) \u003e 0",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "menuStyle": {
+ "backgroundColor": "#225E77"
+ },
+ "tabSize": {
+ "height": 35,
+ "width": 150
+ },
+ "tabStyle": {
+ "active": {
+ "backgroundColor": "#2D7D9F",
+ "color": "#FFF",
+ "fontWeight": "bold"
+ },
+ "inactive": {
+ "backgroundColor": "#389CC7",
+ "color": "#FFF"
+ }
+ },
+ "tabs": [
+ "Controls"
+ ]
+ },
+ "type": "ia.container.tab"
+ },
+ {
+ "meta": {
+ "name": "EmbeddedView"
+ },
+ "position": {
+ "height": "calc(100% - 69px)",
+ "width": "100%",
+ "y": 69
+ },
+ "props": {
+ "path": "Popups/Device/Controls/oiler"
+ },
+ "type": "ia.display.view"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "classes": "window"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/5c5e7b3aaefcab42416ac34f275e3ad2ed3cef7d9d797635e1a4880a7f16bc9d b/.resources/5c5e7b3aaefcab42416ac34f275e3ad2ed3cef7d9d797635e1a4880a7f16bc9d
new file mode 100644
index 00000000..5717a39e
--- /dev/null
+++ b/.resources/5c5e7b3aaefcab42416ac34f275e3ad2ed3cef7d9d797635e1a4880a7f16bc9d
@@ -0,0 +1,24 @@
+WITH LANES AS (
+ SELECT
+ MIN(timestamp) AS start_timestamp,
+ MAX(timestamp) AS end_timestamp,
+ 3600/TIMESTAMPDIFF(SECOND, :startDate, :endDate) AS pph_multiplier,
+ lane_id AS induct,
+ SUM(count) AS total
+ FROM pe_history
+ WHERE timestamp BETWEEN :startDate AND :endDate
+ AND lane_id LIKE "UL%"
+ GROUP BY lane_id
+ ORDER BY lane_id
+)
+SELECT
+ start_timestamp,
+ end_timestamp,
+ induct,
+ /* Counts: */
+ total AS total_count,
+ /* PPH: */
+ ROUND(total*pph_multiplier) AS total_pph,
+ /* Percents: */
+ ROUND(total/total, 4) AS total_percent
+FROM LANES;
\ No newline at end of file
diff --git a/.resources/5c8fc404417622a301b77571939df400d97b581c8ab7c8e8eec87677b38efa12 b/.resources/5c8fc404417622a301b77571939df400d97b581c8ab7c8e8eec87677b38efa12
new file mode 100644
index 00000000..620ea935
--- /dev/null
+++ b/.resources/5c8fc404417622a301b77571939df400d97b581c8ab7c8e8eec87677b38efa12
@@ -0,0 +1,60 @@
+{
+ "custom": {},
+ "params": {},
+ "props": {
+ "defaultSize": {
+ "height": 671,
+ "width": 1707
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "HSS_Inbound"
+ },
+ "position": {
+ "height": 651,
+ "width": 1687,
+ "x": 10,
+ "y": 10
+ },
+ "props": {
+ "path": "Windows/Graphics/Templates/HSS_Inbound",
+ "style": {
+ "classes": "painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NavButton_HSS_Singulator"
+ },
+ "position": {
+ "height": 40,
+ "width": 125,
+ "x": 100,
+ "y": 150
+ },
+ "props": {
+ "params": {
+ "enableTooltip": true,
+ "label": null,
+ "tagPath": "[default]HSSSingulatorStatus",
+ "view": ""
+ },
+ "path": "Templates/Buttons/NavButton",
+ "style": {
+ "transform": "scale(2)"
+ }
+ },
+ "type": "ia.display.view"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/5fd2a17201ab199dcdc0ae4439f1fd837d721335d5a66314792da691add3da8b b/.resources/5fd2a17201ab199dcdc0ae4439f1fd837d721335d5a66314792da691add3da8b
new file mode 100644
index 00000000..7c5aa79f
--- /dev/null
+++ b/.resources/5fd2a17201ab199dcdc0ae4439f1fd837d721335d5a66314792da691add3da8b
@@ -0,0 +1,63 @@
+################################################################
+################################################################
+## Version: 1.0 / Author: Dillon Uzar
+##
+## DESC: For use in WCS Sorting Lane Lookup & Recording
+## WARN: Modifying code may cause system to function incorrectly
+################################################################
+################################################################
+
+import time
+
+#######################################################
+#######################################################
+#######################################################
+#### Constants
+#######################################################
+
+# Logger:
+LOG = system.util.logger("GL BreakCount Handler")
+
+# For inserting data into database:
+CONFIRM_INSERT_QUERY = "INSERT IGNORE INTO gl_history (gaylord_id,count) VALUES (?,?)"
+
+#######################################################
+#######################################################
+#######################################################
+#### Parsing Utils
+#######################################################
+
+def logTime(title, trackID, seconds):
+ millisec = round(seconds * 1000, 1)
+ if millisec > 4:
+ LOG.info("%s[ID=%s] took longer than expected (%sms to process)" % (title, trackID, millisec))
+
+#######################################################
+#######################################################
+#######################################################
+#### PLC Event Handling
+#######################################################
+
+def processBreak(gaylordID, count):
+ # This function handles confirm events, and logs the event in SQL
+ # Ensure ID is valid
+ if count > 0:
+ start_time = time.time()
+ # Log confirm event in SQL:
+ # Insert into Package History:
+ system.db.runPrepUpdate(CONFIRM_INSERT_QUERY, [gaylordID, count])
+ logTime("GL_BREAK[DB_INSERT]", gaylordID, time.time() - start_time)
+
+def processBreakAsync(gaylordID, count):
+ # This function handles confirm events, and logs the event in SQL
+ # Ensure ID is valid
+ if count > 0:
+ def processConfirmInner():
+ start_time = time.time()
+ # Log confirm event in SQL:
+ # Insert into Package History:
+ system.db.runPrepUpdate(CONFIRM_INSERT_QUERY, [gaylordID, count])
+ logTime("GL_BREAK[DB_INSERT]", gaylordID, time.time() - start_time)
+
+ system.util.invokeAsynchronous(processConfirmInner)
+
\ No newline at end of file
diff --git a/.resources/61045eb8fb7420134e78bfe2c7f152765a6cd713a73d39afa47f4d5ef5b96499 b/.resources/61045eb8fb7420134e78bfe2c7f152765a6cd713a73d39afa47f4d5ef5b96499
new file mode 100644
index 00000000..b9337b55
--- /dev/null
+++ b/.resources/61045eb8fb7420134e78bfe2c7f152765a6cd713a73d39afa47f4d5ef5b96499
@@ -0,0 +1,10 @@
+{
+ "base": {
+ "style": {
+ "backgroundColor": "#CCCCFF",
+ "color": "#000000",
+ "fontFamily": "Arial",
+ "fontWeight": "bold"
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/63321feefd488902852bebcf28d4072fbef065693f8d9802229d271bcd48c6ad b/.resources/63321feefd488902852bebcf28d4072fbef065693f8d9802229d271bcd48c6ad
new file mode 100644
index 00000000..f5a06ad5
--- /dev/null
+++ b/.resources/63321feefd488902852bebcf28d4072fbef065693f8d9802229d271bcd48c6ad
@@ -0,0 +1,36 @@
+{
+ "base": {
+ "style": {
+ "backgroundImage": "linear-gradient(180deg, rgba(0,255,0,1) 0%, rgba(0,245,0,1) 70%, rgba(0,208,0,1) 100%);",
+ "borderColor": "#555",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "color": "#000",
+ "textTransform": "uppercase"
+ }
+ },
+ "variants": [
+ {
+ "pseudo": "hover",
+ "style": {
+ "backgroundImage": "linear-gradient(0deg, rgba(0,255,0,1) 0%, rgba(0,245,0,1) 70%, rgba(0,208,0,1) 100%);",
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "color": "#000",
+ "cursor": "pointer"
+ }
+ },
+ {
+ "pseudo": "disabled",
+ "style": {
+ "backgroundImage": "linear-gradient(180deg, rgba(0,208,0,1) 0%, rgba(0,208,0,1) 100%);",
+ "borderColor": "#555",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "color": "#555555",
+ "cursor": "not-allowed"
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.resources/6511bf15e1367fd94d08c69ef2017afda6b8abf75bff84826bca79e61a3acecb b/.resources/6511bf15e1367fd94d08c69ef2017afda6b8abf75bff84826bca79e61a3acecb
new file mode 100644
index 00000000..c20d2a12
--- /dev/null
+++ b/.resources/6511bf15e1367fd94d08c69ef2017afda6b8abf75bff84826bca79e61a3acecb
@@ -0,0 +1,14895 @@
+{
+ "custom": {},
+ "params": {},
+ "props": {
+ "defaultSize": {
+ "height": 1973,
+ "width": 4223
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "RO16_05"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 1588,
+ "x": 3953,
+ "y": 385
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO16/RO16_05/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RO01_03GRNP"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 320,
+ "x": 593,
+ "y": 465
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "type": "bar"
+ },
+ "status": {
+ "color": "#FFF",
+ "showAlways": true,
+ "tooltip": "RO1-3GR\u003cbr\u003eStatus: Non-Powered"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RO02_03GRNP"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 320,
+ "x": 816,
+ "y": 465
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "type": "bar"
+ },
+ "status": {
+ "color": "#FFF",
+ "showAlways": true,
+ "tooltip": "RO2-3GR\u003cbr\u003eStatus: Non-Powered"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RO03_03GRNP"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 320,
+ "x": 1039,
+ "y": 465
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "type": "bar"
+ },
+ "status": {
+ "color": "#FFF",
+ "showAlways": true,
+ "tooltip": "RO3-3GR\u003cbr\u003eStatus: Non-Powered"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RO04_03GRNP"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 320,
+ "x": 1339,
+ "y": 465
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "type": "bar"
+ },
+ "status": {
+ "color": "#FFF",
+ "showAlways": true,
+ "tooltip": "RO4-3GR\u003cbr\u003eStatus: Non-Powered"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RO05_03GRNP"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 320,
+ "x": 1496,
+ "y": 465
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "type": "bar"
+ },
+ "status": {
+ "color": "#FFF",
+ "showAlways": true,
+ "tooltip": "RO5-3GR\u003cbr\u003eStatus: Non-Powered"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RO06_03GRNP"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 320,
+ "x": 1719,
+ "y": 465
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "type": "bar"
+ },
+ "status": {
+ "color": "#FFF",
+ "showAlways": true,
+ "tooltip": "RO6-3GR\u003cbr\u003eStatus: Non-Powered"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RO07_03GRNP"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 320,
+ "x": 1942,
+ "y": 465
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "type": "bar"
+ },
+ "status": {
+ "color": "#FFF",
+ "showAlways": true,
+ "tooltip": "RO7-3GR\u003cbr\u003eStatus: Non-Powered"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RO08_03GRNP"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 320,
+ "x": 2242,
+ "y": 465
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "type": "bar"
+ },
+ "status": {
+ "color": "#FFF",
+ "showAlways": true,
+ "tooltip": "RO8-3GR\u003cbr\u003eStatus: Non-Powered"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RO09_03GRNP"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 320,
+ "x": 2464,
+ "y": 465
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "type": "bar"
+ },
+ "status": {
+ "color": "#FFF",
+ "showAlways": true,
+ "tooltip": "RO9-3GR\u003cbr\u003eStatus: Non-Powered"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RO10_03GRNP"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 320,
+ "x": 2686,
+ "y": 465
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "type": "bar"
+ },
+ "status": {
+ "color": "#FFF",
+ "showAlways": true,
+ "tooltip": "RO10-3GR\u003cbr\u003eStatus: Non-Powered"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RO11_03GRNP"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 320,
+ "x": 2908,
+ "y": 465
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "type": "bar"
+ },
+ "status": {
+ "color": "#FFF",
+ "showAlways": true,
+ "tooltip": "RO11-3GR\u003cbr\u003eStatus: Non-Powered"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RO12_03GRNP"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 320,
+ "x": 3130,
+ "y": 465
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "type": "bar"
+ },
+ "status": {
+ "color": "#FFF",
+ "showAlways": true,
+ "tooltip": "RO12-3GR\u003cbr\u003eStatus: Non-Powered"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RO13_03GRNP"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 320,
+ "x": 3352,
+ "y": 465
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "type": "bar"
+ },
+ "status": {
+ "color": "#FFF",
+ "showAlways": true,
+ "tooltip": "RO13-3GR\u003cbr\u003eStatus: Non-Powered"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RO14_03GRNP"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 320,
+ "x": 3574,
+ "y": 465
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "type": "bar"
+ },
+ "status": {
+ "color": "#FFF",
+ "showAlways": true,
+ "tooltip": "RO14-3GR\u003cbr\u003eStatus: Non-Powered"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RO15_03GRNP"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 320,
+ "x": 3796,
+ "y": 465
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "type": "bar"
+ },
+ "status": {
+ "color": "#FFF",
+ "showAlways": true,
+ "tooltip": "RO15-3GR\u003cbr\u003eStatus: Non-Powered"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL01_02CH"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 110,
+ "x": 486,
+ "y": 387
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL01/FL01_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL01_03CHNP"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 110,
+ "x": 486,
+ "y": 278
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "type": "ball"
+ },
+ "status": {
+ "color": "#FFF",
+ "showAlways": true,
+ "tooltip": "FL1-3CH\u003cbr\u003eStatus: Non-Powered"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL01_04CH"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 85,
+ "x": 486,
+ "y": 169
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL01/FL01_04CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL01_05"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 85,
+ "x": 486,
+ "y": 85
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL01/FL01_05/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL02_02CH"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 110,
+ "x": 709,
+ "y": 387
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL02/FL02_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL02_03CHNP"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 110,
+ "x": 709,
+ "y": 278
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "type": "ball"
+ },
+ "status": {
+ "color": "#FFF",
+ "showAlways": true,
+ "tooltip": "FL2-3CH\u003cbr\u003eStatus: Non-Powered"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL02_04CH"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 85,
+ "x": 709,
+ "y": 169
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL02/FL02_04CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL02_05"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 85,
+ "x": 709,
+ "y": 85
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL02/FL02_05/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL03_02CH"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 110,
+ "x": 932,
+ "y": 387
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL03/FL03_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL03_03CHNP"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 110,
+ "x": 932,
+ "y": 278
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "type": "ball"
+ },
+ "status": {
+ "color": "#FFF",
+ "showAlways": true,
+ "tooltip": "FL3-3CH\u003cbr\u003eStatus: Non-Powered"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL03_04CH"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 85,
+ "x": 932,
+ "y": 169
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL03/FL03_04CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL03_05"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 85,
+ "x": 932,
+ "y": 85
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL03/FL03_05/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL04_02CH"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 110,
+ "x": 1612,
+ "y": 387
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL04/FL04_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL04_03CHNP"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 110,
+ "x": 1612,
+ "y": 278
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "type": "ball"
+ },
+ "status": {
+ "color": "#FFF",
+ "showAlways": true,
+ "tooltip": "FL4-3CH\u003cbr\u003eStatus: Non-Powered"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL04_04CH"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 85,
+ "x": 1612,
+ "y": 169
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL04/FL04_04CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL04_05"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 85,
+ "x": 1612,
+ "y": 85
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL04/FL04_05/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL05_02CH"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 110,
+ "x": 1835,
+ "y": 387
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL05/FL05_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL05_03CHNP"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 110,
+ "x": 1835,
+ "y": 278
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "type": "ball"
+ },
+ "status": {
+ "color": "#FFF",
+ "showAlways": true,
+ "tooltip": "FL5-3CH\u003cbr\u003eStatus: Non-Powered"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL05_04CH"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 85,
+ "x": 1835,
+ "y": 169
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL05/FL05_04CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL05_05"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 85,
+ "x": 1835,
+ "y": 85
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL05/FL05_05/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL06_02CH"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 110,
+ "x": 2358,
+ "y": 387
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL06/FL06_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL06_03CHNP"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 110,
+ "x": 2358,
+ "y": 278
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "type": "ball"
+ },
+ "status": {
+ "color": "#FFF",
+ "showAlways": true,
+ "tooltip": "FL6-3CH\u003cbr\u003eStatus: Non-Powered"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL06_04CH"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 85,
+ "x": 2358,
+ "y": 169
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL06/FL06_04CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL06_05"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 85,
+ "x": 2358,
+ "y": 85
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL06/FL06_05/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL07_02CH"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 110,
+ "x": 2580,
+ "y": 387
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL07/FL07_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL07_03CHNP"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 110,
+ "x": 2580,
+ "y": 278
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "type": "ball"
+ },
+ "status": {
+ "color": "#FFF",
+ "showAlways": true,
+ "tooltip": "FL7-3CH\u003cbr\u003eStatus: Non-Powered"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL07_04CH"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 85,
+ "x": 2580,
+ "y": 169
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL07/FL07_04CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL07_05"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 85,
+ "x": 2580,
+ "y": 85
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL07/FL07_05/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL08_02CH"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 110,
+ "x": 2802,
+ "y": 387
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL08/FL08_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL08_03CHNP"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 110,
+ "x": 2802,
+ "y": 278
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "type": "ball"
+ },
+ "status": {
+ "color": "#FFF",
+ "showAlways": true,
+ "tooltip": "FL8-3CH\u003cbr\u003eStatus: Non-Powered"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL08_04CH"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 85,
+ "x": 2802,
+ "y": 169
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL08/FL08_04CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL08_05"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 85,
+ "x": 2802,
+ "y": 85
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL08/FL08_05/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL09_02CH"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 110,
+ "x": 3024,
+ "y": 387
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL09/FL09_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL09_03CHNP"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 110,
+ "x": 3024,
+ "y": 278
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "type": "ball"
+ },
+ "status": {
+ "color": "#FFF",
+ "showAlways": true,
+ "tooltip": "FL9-3CH\u003cbr\u003eStatus: Non-Powered"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL09_04CH"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 85,
+ "x": 3024,
+ "y": 169
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL09/FL09_04CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL09_05"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 85,
+ "x": 3024,
+ "y": 85
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL09/FL09_05/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL10_02CH"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 110,
+ "x": 3246,
+ "y": 387
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL10/FL10_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL10_03CHNP"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 110,
+ "x": 3246,
+ "y": 278
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "type": "ball"
+ },
+ "status": {
+ "color": "#FFF",
+ "showAlways": true,
+ "tooltip": "FL10-3CH\u003cbr\u003eStatus: Non-Powered"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL10_04CH"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 85,
+ "x": 3246,
+ "y": 169
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL10/FL10_04CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL10_05"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 85,
+ "x": 3246,
+ "y": 85
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL10/FL10_05/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL11_02CH"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 110,
+ "x": 3468,
+ "y": 387
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL11/FL11_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL11_03CHNP"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 110,
+ "x": 3468,
+ "y": 278
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "type": "ball"
+ },
+ "status": {
+ "color": "#FFF",
+ "showAlways": true,
+ "tooltip": "FL11-3CH\u003cbr\u003eStatus: Non-Powered"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL11_04CH"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 85,
+ "x": 3468,
+ "y": 169
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL11/FL11_04CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL11_05"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 85,
+ "x": 3468,
+ "y": 85
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL11/FL11_05/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL12_02CH"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 110,
+ "x": 3690,
+ "y": 387
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL12/FL12_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL12_03CHNP"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 110,
+ "x": 3690,
+ "y": 278
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "type": "ball"
+ },
+ "status": {
+ "color": "#FFF",
+ "showAlways": true,
+ "tooltip": "FL12-3CH\u003cbr\u003eStatus: Non-Powered"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL12_04CH"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 85,
+ "x": 3690,
+ "y": 169
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL12/FL12_04CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL12_05"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 85,
+ "x": 3690,
+ "y": 85
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL12/FL12_05/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL13_02CH"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 110,
+ "x": 3912,
+ "y": 387
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL13/FL13_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL13_03CHNP"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 110,
+ "x": 3912,
+ "y": 278
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "type": "ball"
+ },
+ "status": {
+ "color": "#FFF",
+ "showAlways": true,
+ "tooltip": "FL13-3CH\u003cbr\u003eStatus: Non-Powered"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL13_04CH"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 85,
+ "x": 3912,
+ "y": 169
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL13/FL13_04CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "FL13_05"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 85,
+ "x": 3912,
+ "y": 85
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL13/FL13_05/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RE03_03"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 334,
+ "x": 4147,
+ "y": 593
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_03/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RE03_04"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 452,
+ "x": 3815,
+ "y": 593
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_04/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RE03_05"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 592,
+ "x": 3365,
+ "y": 593
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_05/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RE03_06"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 522,
+ "x": 2775,
+ "y": 593
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_06/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RE03_07"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 665,
+ "x": 2255,
+ "y": 593
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_07/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RE03_08"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 844,
+ "x": 1591,
+ "y": 593
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_08/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RE03_09"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 749,
+ "x": 749,
+ "y": 593
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_09/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RO16_03CH"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 78,
+ "x": 4049,
+ "y": 367
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO16/RO16_03CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "SO02_01"
+ },
+ "position": {
+ "height": 20,
+ "width": 3955,
+ "x": 192,
+ "y": 471
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RE03_01PT"
+ },
+ "position": {
+ "height": 62,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 62,
+ "x": 4146,
+ "y": 471
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_01PT/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "conveyorWidth": 20
+ }
+ },
+ "type": "dex.display.conveyorcurve"
+ },
+ {
+ "meta": {
+ "name": "RE03_02PT"
+ },
+ "position": {
+ "height": 62,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 62,
+ "x": 4208,
+ "y": 531
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_02PT/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "conveyorWidth": 20
+ }
+ },
+ "type": "dex.display.conveyorcurve"
+ },
+ {
+ "meta": {
+ "name": "RO16_02CH"
+ },
+ "position": {
+ "height": 40,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 40,
+ "x": 4048,
+ "y": 387
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO16/RO16_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "side": "left",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorcurve"
+ },
+ {
+ "meta": {
+ "name": "RO16_04CH"
+ },
+ "position": {
+ "height": 40,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 40,
+ "x": 3973,
+ "y": 387
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO16/RO16_04CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "side": "left",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorcurve"
+ },
+ {
+ "meta": {
+ "name": "FL01_01CH"
+ },
+ "position": {
+ "height": 88,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 134,
+ "x": 372,
+ "y": 385
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL01/FL01_01CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M0.5,86.5l34,0l74,-42.5a50,50,0,0,0,25,-43l-19,0a30,30,0,0,1,-15,25z",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "FL02_01CH"
+ },
+ "position": {
+ "height": 88,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 134,
+ "x": 595,
+ "y": 385
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL02/FL02_01CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M0.5,86.5l34,0l74,-42.5a50,50,0,0,0,25,-43l-19,0a30,30,0,0,1,-15,25z",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "FL03_01CH"
+ },
+ "position": {
+ "height": 88,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 134,
+ "x": 818,
+ "y": 385
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL03/FL03_01CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M0.5,86.5l34,0l74,-42.5a50,50,0,0,0,25,-43l-19,0a30,30,0,0,1,-15,25z",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "FL04_01CH"
+ },
+ "position": {
+ "height": 88,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 134,
+ "x": 1498,
+ "y": 385
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL04/FL04_01CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M0.5,86.5l34,0l74,-42.5a50,50,0,0,0,25,-43l-19,0a30,30,0,0,1,-15,25z",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "FL05_01CH"
+ },
+ "position": {
+ "height": 88,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 134,
+ "x": 1721,
+ "y": 385
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL05/FL05_01CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M0.5,86.5l34,0l74,-42.5a50,50,0,0,0,25,-43l-19,0a30,30,0,0,1,-15,25z",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "FL06_01CH"
+ },
+ "position": {
+ "height": 88,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 134,
+ "x": 2244,
+ "y": 385
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL06/FL06_01CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M0.5,86.5l34,0l74,-42.5a50,50,0,0,0,25,-43l-19,0a30,30,0,0,1,-15,25z",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "FL07_01CH"
+ },
+ "position": {
+ "height": 88,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 134,
+ "x": 2466,
+ "y": 385
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL07/FL07_01CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M0.5,86.5l34,0l74,-42.5a50,50,0,0,0,25,-43l-19,0a30,30,0,0,1,-15,25z",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "FL08_01CH"
+ },
+ "position": {
+ "height": 88,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 134,
+ "x": 2688,
+ "y": 385
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL08/FL08_01CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M0.5,86.5l34,0l74,-42.5a50,50,0,0,0,25,-43l-19,0a30,30,0,0,1,-15,25z",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "FL09_01CH"
+ },
+ "position": {
+ "height": 88,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 134,
+ "x": 2910,
+ "y": 385
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL09/FL09_01CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M0.5,86.5l34,0l74,-42.5a50,50,0,0,0,25,-43l-19,0a30,30,0,0,1,-15,25z",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "FL10_01CH"
+ },
+ "position": {
+ "height": 88,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 134,
+ "x": 3132,
+ "y": 385
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL10/FL10_01CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M0.5,86.5l34,0l74,-42.5a50,50,0,0,0,25,-43l-19,0a30,30,0,0,1,-15,25z",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "FL11_01CH"
+ },
+ "position": {
+ "height": 88,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 134,
+ "x": 3354,
+ "y": 385
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL11/FL11_01CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M0.5,86.5l34,0l74,-42.5a50,50,0,0,0,25,-43l-19,0a30,30,0,0,1,-15,25z",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "FL12_01CH"
+ },
+ "position": {
+ "height": 88,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 134,
+ "x": 3576,
+ "y": 385
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL12/FL12_01CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M0.5,86.5l34,0l74,-42.5a50,50,0,0,0,25,-43l-19,0a30,30,0,0,1,-15,25z",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "FL13_01CH"
+ },
+ "position": {
+ "height": 88,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 134,
+ "x": 3798,
+ "y": 385
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL13/FL13_01CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M0.5,86.5l34,0l74,-42.5a50,50,0,0,0,25,-43l-19,0a30,30,0,0,1,-15,25z",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "RO01_01CH"
+ },
+ "position": {
+ "height": 88,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 134,
+ "x": 438,
+ "y": 385
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO01/RO01_01CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M0.5,86.5l34,0l74,-42.5a50,50,0,0,0,25,-43l-19,0a30,30,0,0,1,-15,25z",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "RO01_02CH"
+ },
+ "position": {
+ "height": 80,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 182,
+ "x": 552,
+ "y": 466
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO01/RO01_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M80,0.5\nl62,0\na39,39,0,0,1,0,79\nl-62,0\nL0.5,40.5\nl0,-19\nL80,60.5\nl63,0\na20,20,0,1,0,0,-41\nL80,19.5\nZ",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "RO02_01CH"
+ },
+ "position": {
+ "height": 88,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 134,
+ "x": 661,
+ "y": 385
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO02/RO02_01CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M0.5,86.5l34,0l74,-42.5a50,50,0,0,0,25,-43l-19,0a30,30,0,0,1,-15,25z",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "RO02_02CH"
+ },
+ "position": {
+ "height": 80,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 182,
+ "x": 775,
+ "y": 466
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO02/RO02_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M80,0.5\nl62,0\na39,39,0,0,1,0,79\nl-62,0\nL0.5,40.5\nl0,-19\nL80,60.5\nl63,0\na20,20,0,1,0,0,-41\nL80,19.5\nZ",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "RO03_01CH"
+ },
+ "position": {
+ "height": 88,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 134,
+ "x": 884,
+ "y": 385
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO03/RO03_01CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M0.5,86.5l34,0l74,-42.5a50,50,0,0,0,25,-43l-19,0a30,30,0,0,1,-15,25z",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "RO03_02CH"
+ },
+ "position": {
+ "height": 80,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 182,
+ "x": 998,
+ "y": 466
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO03/RO03_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M80,0.5\nl62,0\na39,39,0,0,1,0,79\nl-62,0\nL0.5,40.5\nl0,-19\nL80,60.5\nl63,0\na20,20,0,1,0,0,-41\nL80,19.5\nZ",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "RO04_01CH"
+ },
+ "position": {
+ "height": 88,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 134,
+ "x": 1184,
+ "y": 385
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO04/RO04_01CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M0.5,86.5l34,0l74,-42.5a50,50,0,0,0,25,-43l-19,0a30,30,0,0,1,-15,25z",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "RO04_02CH"
+ },
+ "position": {
+ "height": 80,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 182,
+ "x": 1298,
+ "y": 466
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO04/RO04_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M80,0.5\nl62,0\na39,39,0,0,1,0,79\nl-62,0\nL0.5,40.5\nl0,-19\nL80,60.5\nl63,0\na20,20,0,1,0,0,-41\nL80,19.5\nZ",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "RO05_01CH"
+ },
+ "position": {
+ "height": 88,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 134,
+ "x": 1341,
+ "y": 385
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO05/RO05_01CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M0.5,86.5l34,0l74,-42.5a50,50,0,0,0,25,-43l-19,0a30,30,0,0,1,-15,25z",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "RO05_02CH"
+ },
+ "position": {
+ "height": 80,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 182,
+ "x": 1455,
+ "y": 466
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO05/RO05_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M80,0.5\nl62,0\na39,39,0,0,1,0,79\nl-62,0\nL0.5,40.5\nl0,-19\nL80,60.5\nl63,0\na20,20,0,1,0,0,-41\nL80,19.5\nZ",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "RO06_01CH"
+ },
+ "position": {
+ "height": 88,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 134,
+ "x": 1564,
+ "y": 385
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO06/RO06_01CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M0.5,86.5l34,0l74,-42.5a50,50,0,0,0,25,-43l-19,0a30,30,0,0,1,-15,25z",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "RO06_02CH"
+ },
+ "position": {
+ "height": 80,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 182,
+ "x": 1678,
+ "y": 466
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO06/RO06_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M80,0.5\nl62,0\na39,39,0,0,1,0,79\nl-62,0\nL0.5,40.5\nl0,-19\nL80,60.5\nl63,0\na20,20,0,1,0,0,-41\nL80,19.5\nZ",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "RO07_01CH"
+ },
+ "position": {
+ "height": 88,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 134,
+ "x": 1787,
+ "y": 385
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO07/RO07_01CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M0.5,86.5l34,0l74,-42.5a50,50,0,0,0,25,-43l-19,0a30,30,0,0,1,-15,25z",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "RO07_02CH"
+ },
+ "position": {
+ "height": 80,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 182,
+ "x": 1901,
+ "y": 466
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO07/RO07_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M80,0.5\nl62,0\na39,39,0,0,1,0,79\nl-62,0\nL0.5,40.5\nl0,-19\nL80,60.5\nl63,0\na20,20,0,1,0,0,-41\nL80,19.5\nZ",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "RO08_01CH"
+ },
+ "position": {
+ "height": 88,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 134,
+ "x": 2087,
+ "y": 385
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO08/RO08_01CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M0.5,86.5l34,0l74,-42.5a50,50,0,0,0,25,-43l-19,0a30,30,0,0,1,-15,25z",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "RO08_02CH"
+ },
+ "position": {
+ "height": 80,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 182,
+ "x": 2201,
+ "y": 466
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO08/RO08_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M80,0.5\nl62,0\na39,39,0,0,1,0,79\nl-62,0\nL0.5,40.5\nl0,-19\nL80,60.5\nl63,0\na20,20,0,1,0,0,-41\nL80,19.5\nZ",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "RO09_01CH"
+ },
+ "position": {
+ "height": 88,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 134,
+ "x": 2309,
+ "y": 385
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO09/RO09_01CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M0.5,86.5l34,0l74,-42.5a50,50,0,0,0,25,-43l-19,0a30,30,0,0,1,-15,25z",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "RO09_02CH"
+ },
+ "position": {
+ "height": 80,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 182,
+ "x": 2423,
+ "y": 466
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO09/RO09_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M80,0.5\nl62,0\na39,39,0,0,1,0,79\nl-62,0\nL0.5,40.5\nl0,-19\nL80,60.5\nl63,0\na20,20,0,1,0,0,-41\nL80,19.5\nZ",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "RO10_01CH"
+ },
+ "position": {
+ "height": 88,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 134,
+ "x": 2531,
+ "y": 385
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO10/RO10_01CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M0.5,86.5l34,0l74,-42.5a50,50,0,0,0,25,-43l-19,0a30,30,0,0,1,-15,25z",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "RO10_02CH"
+ },
+ "position": {
+ "height": 80,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 182,
+ "x": 2645,
+ "y": 466
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO10/RO10_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M80,0.5\nl62,0\na39,39,0,0,1,0,79\nl-62,0\nL0.5,40.5\nl0,-19\nL80,60.5\nl63,0\na20,20,0,1,0,0,-41\nL80,19.5\nZ",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "RO11_01CH"
+ },
+ "position": {
+ "height": 88,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 134,
+ "x": 2753,
+ "y": 385
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO11/RO11_01CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M0.5,86.5l34,0l74,-42.5a50,50,0,0,0,25,-43l-19,0a30,30,0,0,1,-15,25z",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "RO11_02CH"
+ },
+ "position": {
+ "height": 80,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 182,
+ "x": 2867,
+ "y": 466
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO11/RO11_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M80,0.5\nl62,0\na39,39,0,0,1,0,79\nl-62,0\nL0.5,40.5\nl0,-19\nL80,60.5\nl63,0\na20,20,0,1,0,0,-41\nL80,19.5\nZ",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "RO12_01CH"
+ },
+ "position": {
+ "height": 88,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 134,
+ "x": 2975,
+ "y": 385
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO12/RO12_01CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M0.5,86.5l34,0l74,-42.5a50,50,0,0,0,25,-43l-19,0a30,30,0,0,1,-15,25z",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "RO12_02CH"
+ },
+ "position": {
+ "height": 80,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 182,
+ "x": 3089,
+ "y": 466
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO12/RO12_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M80,0.5\nl62,0\na39,39,0,0,1,0,79\nl-62,0\nL0.5,40.5\nl0,-19\nL80,60.5\nl63,0\na20,20,0,1,0,0,-41\nL80,19.5\nZ",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "RO13_01CH"
+ },
+ "position": {
+ "height": 88,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 134,
+ "x": 3197,
+ "y": 385
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO13/RO13_01CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M0.5,86.5l34,0l74,-42.5a50,50,0,0,0,25,-43l-19,0a30,30,0,0,1,-15,25z",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "RO13_02CH"
+ },
+ "position": {
+ "height": 80,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 182,
+ "x": 3311,
+ "y": 466
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO13/RO13_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M80,0.5\nl62,0\na39,39,0,0,1,0,79\nl-62,0\nL0.5,40.5\nl0,-19\nL80,60.5\nl63,0\na20,20,0,1,0,0,-41\nL80,19.5\nZ",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "RO14_01CH"
+ },
+ "position": {
+ "height": 88,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 134,
+ "x": 3419,
+ "y": 385
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO14/RO14_01CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M0.5,86.5l34,0l74,-42.5a50,50,0,0,0,25,-43l-19,0a30,30,0,0,1,-15,25z",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "RO14_02CH"
+ },
+ "position": {
+ "height": 80,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 182,
+ "x": 3533,
+ "y": 466
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO14/RO14_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M80,0.5\nl62,0\na39,39,0,0,1,0,79\nl-62,0\nL0.5,40.5\nl0,-19\nL80,60.5\nl63,0\na20,20,0,1,0,0,-41\nL80,19.5\nZ",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "RO15_01CH"
+ },
+ "position": {
+ "height": 88,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 134,
+ "x": 3641,
+ "y": 385
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO15/RO15_01CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M0.5,86.5l34,0l74,-42.5a50,50,0,0,0,25,-43l-19,0a30,30,0,0,1,-15,25z",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "RO15_02CH"
+ },
+ "position": {
+ "height": 80,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 182,
+ "x": 3755,
+ "y": 466
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO15/RO15_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M80,0.5\nl62,0\na39,39,0,0,1,0,79\nl-62,0\nL0.5,40.5\nl0,-19\nL80,60.5\nl63,0\na20,20,0,1,0,0,-41\nL80,19.5\nZ",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "RO16_01CH"
+ },
+ "position": {
+ "height": 88,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 134,
+ "x": 3954,
+ "y": 385
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO16/RO16_01CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "path": "M0.5,86.5l34,0l74,-42.5a50,50,0,0,0,25,-43l-19,0a30,30,0,0,1,-15,25z",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorpath"
+ },
+ {
+ "meta": {
+ "name": "MCP03"
+ },
+ "position": {
+ "height": 20,
+ "width": 50,
+ "x": 1968,
+ "y": 620
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/MCP03/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.mcp"
+ },
+ {
+ "meta": {
+ "name": "RE03_01PT_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 4207,
+ "y": 506
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_01PT/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "RE03_02PT_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 4151,
+ "y": 593
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_02PT/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "RE03_03_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3977,
+ "y": 556
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_03/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "RE03_04_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3459,
+ "y": 556
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_04/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "RE03_05_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2998,
+ "y": 556
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_05/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "RE03_06_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2488,
+ "y": 556
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_06/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "RE03_07_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1989,
+ "y": 556
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_07/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "RE03_08_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1048,
+ "y": 556
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_08/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "RE03_09_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 278,
+ "y": 556
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_09/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "RO16_05_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3954,
+ "y": 1794
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO16/RO16_05/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 4129,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "RE03_03_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 4031,
+ "y": 552
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_03/EPC1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "RE03_03_EPC2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 4031,
+ "y": 594
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_03/EPC2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "RE03_07_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 2006,
+ "y": 552
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_07/EPC1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "RE03_07_EPC2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 2006,
+ "y": 594
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_07/EPC2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "RE03_07_EPC3"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 2067,
+ "y": 552
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_07/EPC3/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "RE03_07_EPC4"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 2067,
+ "y": 594
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_07/EPC4/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "RE03_09_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 86,
+ "y": 552
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_09/EPC1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "RE03_09_EPC2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 86,
+ "y": 594
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_09/EPC2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "RE03_09_EPC3"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 164,
+ "y": 552
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_09/EPC3/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "RE03_09_EPC4"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 164,
+ "y": 594
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_09/EPC4/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 4108,
+ "y": 450
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/EPC1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_EPC10"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1163,
+ "y": 492
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/EPC10/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_EPC11"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1102,
+ "y": 450
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/EPC11/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_EPC12"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1102,
+ "y": 492
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/EPC12/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_EPC2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 4108,
+ "y": 492
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/EPC2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_EPC3"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 4030,
+ "y": 450
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/EPC3/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_EPC4"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 4030,
+ "y": 492
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/EPC4/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_EPC5"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 2066,
+ "y": 450
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/EPC5/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_EPC6"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 2066,
+ "y": 492
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/EPC6/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_EPC7"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 2005,
+ "y": 450
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/EPC7/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_EPC8"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 2005,
+ "y": 492
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/EPC8/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_EPC9"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1163,
+ "y": 450
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/EPC9/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "FL01_02CH_RS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 465,
+ "y": 364
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL01/FL01_02CH/RS1/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "FL02_02CH_RS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 688,
+ "y": 367
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL02/FL02_02CH/RS1/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "FL03_02CH_RS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 911,
+ "y": 364
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL03/FL03_02CH/RS1/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "FL04_02CH_RS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1591,
+ "y": 364
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL04/FL04_02CH/RS1/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "FL05_02CH_RS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1814,
+ "y": 364
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL05/FL05_02CH/RS1/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "FL06_02CH_RS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 2337,
+ "y": 364
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL06/FL06_02CH/RS1/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "FL07_02CH_RS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 2559,
+ "y": 364
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL07/FL07_02CH/RS1/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "FL08_02CH_RS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 2781,
+ "y": 364
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL08/FL08_02CH/RS1/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "FL09_02CH_RS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 3003,
+ "y": 364
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL09/FL09_02CH/RS1/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "FL10_02CH_RS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 3225,
+ "y": 364
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL10/FL10_02CH/RS1/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "FL11_02CH_RS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 3447,
+ "y": 364
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL11/FL11_02CH/RS1/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "FL12_02CH_RS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 3669,
+ "y": 364
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL12/FL12_02CH/RS1/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "FL13_02CH_RS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 3891,
+ "y": 364
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL13/FL13_02CH/RS1/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RE03_03_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 4069,
+ "y": 552
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_03/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RE03_03_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 4088,
+ "y": 552
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_03/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RE03_03_SS2_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 4069,
+ "y": 594
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_03/SS2/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RE03_03_SS2_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 4088,
+ "y": 594
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_03/SS2/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RE03_07_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 2027,
+ "y": 552
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_07/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RE03_07_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 2046,
+ "y": 552
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_07/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RE03_07_SS2_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 2027,
+ "y": 594
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_07/SS2/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RE03_07_SS2_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 2046,
+ "y": 594
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_07/SS2/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RE03_09_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 124,
+ "y": 552
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_09/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RE03_09_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 143,
+ "y": 552
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_09/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RE03_09_SS2_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 124,
+ "y": 594
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_09/SS2/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RE03_09_SS2_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 143,
+ "y": 594
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_09/SS2/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RO01_02CH_RS2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 643,
+ "y": 280
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO01/RO01_02CH/RS2/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RO02_02CH_RS2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 866,
+ "y": 280
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO02/RO02_02CH/RS2/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RO03_02CH_RS2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1089,
+ "y": 280
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO03/RO03_02CH/RS2/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RO04_02CH_RS2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1389,
+ "y": 280
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO04/RO04_02CH/RS2/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RO05_02CH_RS2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1546,
+ "y": 280
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO05/RO05_02CH/RS2/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RO06_02CH_RS2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1769,
+ "y": 280
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO06/RO06_02CH/RS2/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RO07_02CH_RS2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1992,
+ "y": 280
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO07/RO07_02CH/RS2/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RO08_02CH_RS2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 2292,
+ "y": 280
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO08/RO08_02CH/RS2/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RO09_02CH_RS2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 2514,
+ "y": 280
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO09/RO09_02CH/RS2/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RO10_02CH_RS2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 2736,
+ "y": 280
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO10/RO10_02CH/RS2/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RO11_02CH_RS2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 2958,
+ "y": 280
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO11/RO11_02CH/RS2/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RO12_02CH_RS2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 3180,
+ "y": 280
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO12/RO12_02CH/RS2/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RO13_02CH_RS2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 3402,
+ "y": 280
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO13/RO13_02CH/RS2/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RO14_02CH_RS2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 3624,
+ "y": 280
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO14/RO14_02CH/RS2/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RO15_02CH_RS2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 3846,
+ "y": 280
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO15/RO15_02CH/RS2/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RO16_04CH_RS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 3964,
+ "y": 325
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO16/RO16_04CH/RS1/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 4068,
+ "y": 450
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 4087,
+ "y": 450
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_SS2_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 4068,
+ "y": 492
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/SS2/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_SS2_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 4087,
+ "y": 492
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/SS2/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_SS3_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 2026,
+ "y": 450
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/SS3/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_SS3_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 2045,
+ "y": 450
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/SS3/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_SS4_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 2026,
+ "y": 492
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/SS4/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_SS4_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 2045,
+ "y": 492
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/SS4/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_SS5_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1123,
+ "y": 450
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/SS5/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_SS5_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1142,
+ "y": 450
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/SS5/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_SS6_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1123,
+ "y": 492
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/SS6/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_SS6_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1142,
+ "y": 492
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/SS6/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "FL01_04CH_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 507,
+ "y": 116
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL01/FL01_04CH/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "FL02_04CH_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 730,
+ "y": 116
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL02/FL02_04CH/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "FL03_04CH_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 953,
+ "y": 116
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL03/FL03_04CH/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "FL04_04CH_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 1633,
+ "y": 116
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL04/FL04_04CH/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "FL05_04CH_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 1856,
+ "y": 116
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL05/FL05_04CH/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "FL06_04CH_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 2379,
+ "y": 116
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL06/FL06_04CH/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "FL07_04CH_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 2601,
+ "y": 116
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL07/FL07_04CH/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "FL08_04CH_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 2823,
+ "y": 116
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL08/FL08_04CH/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "FL09_04CH_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 3045,
+ "y": 116
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL09/FL09_04CH/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "FL10_04CH_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 3267,
+ "y": 116
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL10/FL10_04CH/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "FL11_04CH_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 3489,
+ "y": 116
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL11/FL11_04CH/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "FL12_04CH_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 3711,
+ "y": 116
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL12/FL12_04CH/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "FL13_04CH_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 3933,
+ "y": 116
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL13/FL13_04CH/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RE03_03_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "width": 30,
+ "x": 4000,
+ "y": 594
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_03/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RE03_03_SIO1"
+ },
+ "position": {
+ "height": 15,
+ "width": 30,
+ "x": 3969,
+ "y": 594
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_03/SIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RE03_07_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 1975,
+ "y": 594
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_07/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RE03_07_SIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 1944,
+ "y": 594
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_07/SIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RE03_09_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 24,
+ "y": 594
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_09/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RE03_09_SIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 55,
+ "y": 594
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_09/SIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RO01_02CH_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 596,
+ "y": 349
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO01/RO01_02CH/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RO02_02CH_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 819,
+ "y": 349
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO02/RO02_02CH/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RO03_02CH_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 1042,
+ "y": 349
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO03/RO03_02CH/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RO04_02CH_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 1342,
+ "y": 349
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO04/RO04_02CH/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RO05_02CH_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 1499,
+ "y": 349
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO05/RO05_02CH/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RO06_02CH_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 1722,
+ "y": 349
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO06/RO06_02CH/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RO07_02CH_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 1945,
+ "y": 349
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO07/RO07_02CH/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RO08_02CH_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 2245,
+ "y": 349
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO08/RO08_02CH/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RO09_02CH_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 2467,
+ "y": 349
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO09/RO09_02CH/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RO10_02CH_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 2689,
+ "y": 349
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO10/RO10_02CH/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RO11_02CH_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 2911,
+ "y": 349
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO11/RO11_02CH/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RO12_02CH_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 3133,
+ "y": 349
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO12/RO12_02CH/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RO13_02CH_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 3355,
+ "y": 349
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO13/RO13_02CH/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RO14_02CH_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 3577,
+ "y": 349
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO14/RO14_02CH/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RO15_02CH_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 3799,
+ "y": 349
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO15/RO15_02CH/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RO16_05_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 3970,
+ "y": 433
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO16/RO16_05/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RO16_05_SIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 3954,
+ "y": 433
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO16/RO16_05/SIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "width": 30,
+ "x": 4068,
+ "y": 434
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_FIO2"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 1974,
+ "y": 492
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/FIO2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_FIO3"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 1071,
+ "y": 492
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/FIO3/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_SIO1"
+ },
+ "position": {
+ "height": 15,
+ "width": 30,
+ "x": 4099,
+ "y": 434
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/SIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_SIO2"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 1943,
+ "y": 492
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/SIO2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_SIO3"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 1040,
+ "y": 492
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/SIO3/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "FL01_02CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 469,
+ "y": 347
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL01/FL01_02CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL01_02CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 469,
+ "y": 332
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL01/FL01_02CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL01_04CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 469,
+ "y": 117
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL01/FL01_04CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL01_04CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 469,
+ "y": 102
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL01/FL01_04CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL01_04CH_BCN2_PUR"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 507,
+ "y": 117
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL01/FL01_04CH/BCN2/PUR/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL02_02CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 692,
+ "y": 350
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL02/FL02_02CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL02_02CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 692,
+ "y": 335
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL02/FL02_02CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL02_04CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 692,
+ "y": 117
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL02/FL02_04CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL02_04CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 692,
+ "y": 102
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL02/FL02_04CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL03_02CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 915,
+ "y": 347
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL03/FL03_02CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL03_02CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 915,
+ "y": 332
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL03/FL03_02CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL03_04CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 915,
+ "y": 117
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL03/FL03_04CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL03_04CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 915,
+ "y": 102
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL03/FL03_04CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL04_02CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1595,
+ "y": 347
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL04/FL04_02CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL04_02CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1595,
+ "y": 332
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL04/FL04_02CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL04_04CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1595,
+ "y": 117
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL04/FL04_04CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL04_04CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1595,
+ "y": 102
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL04/FL04_04CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL05_02CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1818,
+ "y": 347
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL05/FL05_02CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL05_02CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1818,
+ "y": 332
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL05/FL05_02CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL05_04CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1818,
+ "y": 117
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL05/FL05_04CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL05_04CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1818,
+ "y": 102
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL05/FL05_04CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL05_04CH_BCN2_PUR"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1856,
+ "y": 117
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL05/FL05_04CH/BCN2/PUR/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL06_02CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2341,
+ "y": 347
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL06/FL06_02CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL06_02CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2341,
+ "y": 332
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL06/FL06_02CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL06_04CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2341,
+ "y": 117
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL06/FL06_04CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL06_04CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2341,
+ "y": 102
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL06/FL06_04CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL07_02CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2563,
+ "y": 347
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL07/FL07_02CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL07_02CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2563,
+ "y": 332
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL07/FL07_02CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL07_04CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2563,
+ "y": 117
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL07/FL07_04CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL07_04CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2563,
+ "y": 102
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL07/FL07_04CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL08_02CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2785,
+ "y": 347
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL08/FL08_02CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL08_02CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2785,
+ "y": 332
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL08/FL08_02CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL08_04CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2785,
+ "y": 117
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL08/FL08_04CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL08_04CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2785,
+ "y": 102
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL08/FL08_04CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL09_02CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3007,
+ "y": 347
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL09/FL09_02CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL09_02CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3007,
+ "y": 332
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL09/FL09_02CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL09_04CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3007,
+ "y": 117
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL09/FL09_04CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL09_04CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3007,
+ "y": 102
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL09/FL09_04CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL09_04CH_BCN2_PUR"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3045,
+ "y": 117
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL09/FL09_04CH/BCN2/PUR/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL10_02CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3229,
+ "y": 347
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL10/FL10_02CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL10_02CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3229,
+ "y": 332
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL10/FL10_02CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL10_04CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3229,
+ "y": 117
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL10/FL10_04CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL10_04CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3229,
+ "y": 102
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL10/FL10_04CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL11_02CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3451,
+ "y": 347
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL11/FL11_02CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL11_02CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3451,
+ "y": 332
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL11/FL11_02CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL11_04CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3451,
+ "y": 117
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL11/FL11_04CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL11_04CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3451,
+ "y": 102
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL11/FL11_04CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL12_02CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3673,
+ "y": 347
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL12/FL12_02CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL12_02CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3673,
+ "y": 332
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL12/FL12_02CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL12_04CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3673,
+ "y": 117
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL12/FL12_04CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL12_04CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3673,
+ "y": 102
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL12/FL12_04CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL13_02CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3895,
+ "y": 347
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL13/FL13_02CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL13_02CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3895,
+ "y": 332
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL13/FL13_02CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL13_04CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3895,
+ "y": 117
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL13/FL13_04CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL13_04CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3895,
+ "y": 102
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL13/FL13_04CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL13_04CH_BCN2_PUR"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3933,
+ "y": 117
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL13/FL13_04CH/BCN2/PUR/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RE03_01PT_BCN1_PUR"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 4146,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_01PT/BCN1/PUR/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RE03_03_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 4052,
+ "y": 556
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_03/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RE03_03_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 4052,
+ "y": 541
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_03/BCN1/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RE03_03_BCN2_HRN"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 4052,
+ "y": 594
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_03/BCN2/HRN/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RE03_03_BCN2_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 4052,
+ "y": 609
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_03/BCN2/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RE03_07_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2027,
+ "y": 535
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_07/BCN1/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RE03_07_BCN2_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2028,
+ "y": 615
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_07/BCN2/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RE03_09_BCN1_HRN"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 107,
+ "y": 541
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_09/BCN1/HRN/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RE03_09_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 107,
+ "y": 556
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_09/BCN1/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RE03_09_BCN2_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 107,
+ "y": 594
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_09/BCN2/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO01_02CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 633,
+ "y": 350
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO01/RO01_02CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO01_02CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 633,
+ "y": 335
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO01/RO01_02CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO01_02CH_BCN2_PUR"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 595,
+ "y": 350
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO01/RO01_02CH/BCN2/PUR/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO01_02CH_BCN3_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 626,
+ "y": 284
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO01/RO01_02CH/BCN3/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO01_02CH_BCN3_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 626,
+ "y": 269
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO01/RO01_02CH/BCN3/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO02_02CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 856,
+ "y": 350
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO02/RO02_02CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO02_02CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 856,
+ "y": 335
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO02/RO02_02CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO02_02CH_BCN2_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 849,
+ "y": 284
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO02/RO02_02CH/BCN2/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO02_02CH_BCN2_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 849,
+ "y": 269
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO02/RO02_02CH/BCN2/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO03_02CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1079,
+ "y": 350
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO03/RO03_02CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO03_02CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1079,
+ "y": 335
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO03/RO03_02CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO03_02CH_BCN2_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1072,
+ "y": 284
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO03/RO03_02CH/BCN2/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO03_02CH_BCN2_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1072,
+ "y": 269
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO03/RO03_02CH/BCN2/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO04_02CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1379,
+ "y": 350
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO04/RO04_02CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO04_02CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1379,
+ "y": 335
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO04/RO04_02CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO04_02CH_BCN2_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1372,
+ "y": 284
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO04/RO04_02CH/BCN2/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO04_02CH_BCN2_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1372,
+ "y": 269
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO04/RO04_02CH/BCN2/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO05_02CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1536,
+ "y": 350
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO05/RO05_02CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO05_02CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1536,
+ "y": 335
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO05/RO05_02CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO05_02CH_BCN2_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1529,
+ "y": 284
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO05/RO05_02CH/BCN2/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO05_02CH_BCN2_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1529,
+ "y": 269
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO05/RO05_02CH/BCN2/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO06_02CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1759,
+ "y": 350
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO06/RO06_02CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO06_02CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1759,
+ "y": 335
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO06/RO06_02CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO06_02CH_BCN2_PUR"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1721,
+ "y": 350
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO06/RO06_02CH/BCN2/PUR/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO06_02CH_BCN3_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1752,
+ "y": 284
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO06/RO06_02CH/BCN3/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO06_02CH_BCN3_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1752,
+ "y": 269
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO06/RO06_02CH/BCN3/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO07_02CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1982,
+ "y": 350
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO07/RO07_02CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO07_02CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1982,
+ "y": 335
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO07/RO07_02CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO07_02CH_BCN2_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1975,
+ "y": 284
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO07/RO07_02CH/BCN2/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO07_02CH_BCN2_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1975,
+ "y": 269
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO07/RO07_02CH/BCN2/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO08_02CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2282,
+ "y": 350
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO08/RO08_02CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO08_02CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2282,
+ "y": 335
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO08/RO08_02CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO08_02CH_BCN2_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2275,
+ "y": 284
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO08/RO08_02CH/BCN2/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO08_02CH_BCN2_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2275,
+ "y": 269
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO08/RO08_02CH/BCN2/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO09_02CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2504,
+ "y": 350
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO09/RO09_02CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO09_02CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2504,
+ "y": 335
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO09/RO09_02CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO09_02CH_BCN2_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2497,
+ "y": 284
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO09/RO09_02CH/BCN2/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO09_02CH_BCN2_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2497,
+ "y": 269
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO09/RO09_02CH/BCN2/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO10_02CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2726,
+ "y": 350
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO10/RO10_02CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO10_02CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2726,
+ "y": 335
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO10/RO10_02CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO10_02CH_BCN2_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2719,
+ "y": 284
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO10/RO10_02CH/BCN2/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO10_02CH_BCN2_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2719,
+ "y": 269
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO10/RO10_02CH/BCN2/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO11_02CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2948,
+ "y": 350
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO11/RO11_02CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO11_02CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2948,
+ "y": 335
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO11/RO11_02CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO11_02CH_BCN2_PUR"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2910,
+ "y": 350
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO11/RO11_02CH/BCN2/PUR/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO11_02CH_BCN3_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2941,
+ "y": 284
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO11/RO11_02CH/BCN3/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO11_02CH_BCN3_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2941,
+ "y": 269
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO11/RO11_02CH/BCN3/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO12_02CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3170,
+ "y": 350
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO12/RO12_02CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO12_02CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3170,
+ "y": 335
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO12/RO12_02CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO12_02CH_BCN2_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3163,
+ "y": 284
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO12/RO12_02CH/BCN2/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO12_02CH_BCN2_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3163,
+ "y": 269
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO12/RO12_02CH/BCN2/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO13_02CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3392,
+ "y": 350
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO13/RO13_02CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO13_02CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3392,
+ "y": 335
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO13/RO13_02CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO13_02CH_BCN2_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3385,
+ "y": 284
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO13/RO13_02CH/BCN2/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO13_02CH_BCN2_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3385,
+ "y": 269
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO13/RO13_02CH/BCN2/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO14_02CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3614,
+ "y": 350
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO14/RO14_02CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO14_02CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3614,
+ "y": 335
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO14/RO14_02CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO14_02CH_BCN2_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3607,
+ "y": 284
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO14/RO14_02CH/BCN2/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO14_02CH_BCN2_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3607,
+ "y": 269
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO14/RO14_02CH/BCN2/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO15_02CH_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3836,
+ "y": 350
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO15/RO15_02CH/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO15_02CH_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3836,
+ "y": 335
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO15/RO15_02CH/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO15_02CH_BCN2_PUR"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3798,
+ "y": 350
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO15/RO15_02CH/BCN2/PUR/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO15_02CH_BCN3_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3829,
+ "y": 284
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO15/RO15_02CH/BCN3/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO15_02CH_BCN3_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3829,
+ "y": 269
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO15/RO15_02CH/BCN3/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO16_04CH_BCN2_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3947,
+ "y": 329
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO16/RO16_04CH/BCN2/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO16_04CH_BCN2_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3947,
+ "y": 314
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO16/RO16_04CH/BCN2/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO16_05_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 3961,
+ "y": 434
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO16/RO16_05/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 4051,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 4051,
+ "y": 439
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/BCN1/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_BCN2_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 4051,
+ "y": 507
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/BCN2/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_BCN2_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 4051,
+ "y": 492
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/BCN2/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_BCN3_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2026,
+ "y": 433
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/BCN3/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_BCN4_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 2027,
+ "y": 513
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/BCN4/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_BCN5_HRN"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1123,
+ "y": 418
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/BCN5/HRN/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_BCN5_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1123,
+ "y": 433
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/BCN5/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_BCN6_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1123,
+ "y": 513
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/BCN6/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_BCN7_PUR"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 203,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/BCN7/PUR/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "FL01_01CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 64,
+ "x": 380,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL01/FL01_01CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL01_02CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 476,
+ "y": 320
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL01/FL01_02CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL01_04CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 476,
+ "y": 155
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL01/FL01_04CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL02_01CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 64,
+ "x": 603,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL02/FL02_01CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL02_02CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 699,
+ "y": 320
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL02/FL02_02CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL02_04CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 699,
+ "y": 155
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL02/FL02_04CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL03_01CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 64,
+ "x": 826,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL03/FL03_01CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL03_02CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 922,
+ "y": 320
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL03/FL03_02CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL03_04CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 922,
+ "y": 155
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL03/FL03_04CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL04_01CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 64,
+ "x": 1506,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL04/FL04_01CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL04_02CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 1602,
+ "y": 320
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL04/FL04_02CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL04_04CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 1602,
+ "y": 155
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL04/FL04_04CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL05_01CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 64,
+ "x": 1729,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL05/FL05_01CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL05_02CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 1825,
+ "y": 320
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL05/FL05_02CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL05_04CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 1825,
+ "y": 155
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL05/FL05_04CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL06_01CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 64,
+ "x": 2252,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL06/FL06_01CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL06_02CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 2348,
+ "y": 320
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL06/FL06_02CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL06_04CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 2348,
+ "y": 155
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL06/FL06_04CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL07_01CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 64,
+ "x": 2474,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL07/FL07_01CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL07_02CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 2570,
+ "y": 320
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL07/FL07_02CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL07_04CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 2570,
+ "y": 155
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL07/FL07_04CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL08_01CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 64,
+ "x": 2696,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL08/FL08_01CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL08_02CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 2792,
+ "y": 320
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL08/FL08_02CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL08_04CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 2792,
+ "y": 155
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL08/FL08_04CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL09_01CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 64,
+ "x": 2918,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL09/FL09_01CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL09_02CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 3014,
+ "y": 320
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL09/FL09_02CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL09_04CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 3014,
+ "y": 155
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL09/FL09_04CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL10_01CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 64,
+ "x": 3140,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL10/FL10_01CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL10_02CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 3236,
+ "y": 320
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL10/FL10_02CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL10_04CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 3236,
+ "y": 155
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL10/FL10_04CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL11_01CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 64,
+ "x": 3362,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL11/FL11_01CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL11_02CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 3458,
+ "y": 320
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL11/FL11_02CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL11_04CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 3458,
+ "y": 155
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL11/FL11_04CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL12_01CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 64,
+ "x": 3584,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL12/FL12_01CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL12_02CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 3680,
+ "y": 320
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL12/FL12_02CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL12_04CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 3680,
+ "y": 155
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL12/FL12_04CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL13_01CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 64,
+ "x": 3806,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL13/FL13_01CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL13_02CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 3902,
+ "y": 320
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL13/FL13_02CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "FL13_04CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 3902,
+ "y": 155
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/FL13/FL13_04CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RE03_01PT_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 34,
+ "x": 4217,
+ "y": 533
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_01PT/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RE03_03_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 3816,
+ "y": 603
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_03/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RE03_03_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 4132,
+ "y": 603
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_03/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RE03_04_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 3366,
+ "y": 603
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_04/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RE03_05_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 2775,
+ "y": 603
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_05/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RE03_06_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 2256,
+ "y": 603
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_06/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RE03_07_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 1633,
+ "y": 603
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_07/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RE03_08_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 749,
+ "y": 603
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_08/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RE03_09_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 13,
+ "y": 603
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/RE03/RE03_09/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO01_01CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 64,
+ "x": 445,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO01/RO01_01CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO01_02CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 598,
+ "y": 274
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO01/RO01_02CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO01_02CH_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 37,
+ "x": 576,
+ "y": 434
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO01/RO01_02CH/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO02_01CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 64,
+ "x": 668,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO02/RO02_01CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO02_02CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 821,
+ "y": 274
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO02/RO02_02CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO02_02CH_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 37,
+ "x": 799,
+ "y": 434
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO02/RO02_02CH/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO03_01CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 64,
+ "x": 891,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO03/RO03_01CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO03_02CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 1044,
+ "y": 274
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO03/RO03_02CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO03_02CH_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 37,
+ "x": 1022,
+ "y": 434
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO03/RO03_02CH/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO04_01CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 64,
+ "x": 1191,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO04/RO04_01CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO04_02CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 1343,
+ "y": 274
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO04/RO04_02CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO04_02CH_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 37,
+ "x": 1322,
+ "y": 434
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO04/RO04_02CH/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO05_01CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 64,
+ "x": 1348,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO05/RO05_01CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO05_02CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 1500,
+ "y": 274
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO05/RO05_02CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO05_02CH_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 37,
+ "x": 1479,
+ "y": 434
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO05/RO05_02CH/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO06_01CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 64,
+ "x": 1571,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO06/RO06_01CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO06_02CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 1723,
+ "y": 274
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO06/RO06_02CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO06_02CH_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 37,
+ "x": 1702,
+ "y": 434
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO06/RO06_02CH/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO07_01CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 64,
+ "x": 1794,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO07/RO07_01CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO07_02CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 1946,
+ "y": 274
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO07/RO07_02CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO07_02CH_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 37,
+ "x": 1925,
+ "y": 434
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO07/RO07_02CH/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO08_01CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 64,
+ "x": 2095,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO08/RO08_01CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO08_02CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 2246,
+ "y": 274
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO08/RO08_02CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO08_02CH_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 37,
+ "x": 2225,
+ "y": 434
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO08/RO08_02CH/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO09_01CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 64,
+ "x": 2317,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO09/RO09_01CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO09_02CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 2468,
+ "y": 274
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO09/RO09_02CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO09_02CH_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 37,
+ "x": 2447,
+ "y": 434
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO09/RO09_02CH/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO10_01CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 64,
+ "x": 2539,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO10/RO10_01CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO10_02CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 2690,
+ "y": 274
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO10/RO10_02CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO10_02CH_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 37,
+ "x": 2669,
+ "y": 434
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO10/RO10_02CH/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO11_01CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 64,
+ "x": 2761,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO11/RO11_01CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO11_02CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 2912,
+ "y": 274
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO11/RO11_02CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO11_02CH_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 37,
+ "x": 2891,
+ "y": 434
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO11/RO11_02CH/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO12_01CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 64,
+ "x": 2983,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO12/RO12_01CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO12_02CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 3134,
+ "y": 274
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO12/RO12_02CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO12_02CH_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 37,
+ "x": 3113,
+ "y": 434
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO12/RO12_02CH/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO13_01CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 64,
+ "x": 3205,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO13/RO13_01CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO13_02CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 3356,
+ "y": 274
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO13/RO13_02CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO13_02CH_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 37,
+ "x": 3335,
+ "y": 434
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO13/RO13_02CH/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO14_01CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 64,
+ "x": 3427,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO14/RO14_01CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO14_02CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 3578,
+ "y": 274
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO14/RO14_02CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO14_02CH_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 37,
+ "x": 3557,
+ "y": 434
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO14/RO14_02CH/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO15_01CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 64,
+ "x": 3649,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO15/RO15_01CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO15_02CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 3800,
+ "y": 274
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO15/RO15_02CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO15_02CH_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 37,
+ "x": 3779,
+ "y": 434
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO15/RO15_02CH/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO16_01CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 64,
+ "x": 3962,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO16/RO16_01CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO16_04CH_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 4015,
+ "y": 337
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO16/RO16_04CH/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO16_05_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 37,
+ "x": 3964,
+ "y": 1934
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO16/RO16_05/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO16_05_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 37,
+ "x": 3923,
+ "y": 434
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP03/RO16/RO16_05/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "SO201Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 65,
+ "x": 274,
+ "y": 493
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "SO201"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "SO202Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 65,
+ "x": 349,
+ "y": 493
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "SO202"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "SO203Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 65,
+ "x": 415,
+ "y": 493
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "SO203"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "SO204Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 65,
+ "x": 595,
+ "y": 493
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "SO204"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "SO205Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 65,
+ "x": 662,
+ "y": 493
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "SO205"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "SO206Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 65,
+ "x": 818,
+ "y": 493
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "SO206"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "SO207Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 65,
+ "x": 885,
+ "y": 493
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "SO207"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "SO208Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 65,
+ "x": 1185,
+ "y": 493
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "SO208"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "SO209Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 65,
+ "x": 1341,
+ "y": 493
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "SO209"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "SO210Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 65,
+ "x": 1498,
+ "y": 493
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "SO210"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "SO211Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 65,
+ "x": 1565,
+ "y": 493
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "SO211"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "SO212Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 65,
+ "x": 1721,
+ "y": 493
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "SO212"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "SO213Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 65,
+ "x": 1788,
+ "y": 493
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "SO213"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "SO214Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 65,
+ "x": 2088,
+ "y": 493
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "SO214"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "SO215Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 65,
+ "x": 2243,
+ "y": 493
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "SO215"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "SO217Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 65,
+ "x": 2466,
+ "y": 493
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "SO217"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "SO216Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 65,
+ "x": 2310,
+ "y": 493
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "SO216"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "SO219Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 65,
+ "x": 2688,
+ "y": 493
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "SO219"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "SO218Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 65,
+ "x": 2533,
+ "y": 493
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "SO218"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "SO221Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 65,
+ "x": 2909,
+ "y": 493
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "SO221"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "SO220Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 65,
+ "x": 2755,
+ "y": 493
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "SO220"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "SO223Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 65,
+ "x": 3132,
+ "y": 493
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "SO223"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "SO222Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 65,
+ "x": 2976,
+ "y": 493
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "SO222"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "SO229Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 65,
+ "x": 3797,
+ "y": 493
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "SO229"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "SO228Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 65,
+ "x": 3643,
+ "y": 493
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "SO228"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "SO227Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 65,
+ "x": 3576,
+ "y": 493
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "SO227"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "SO226Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 65,
+ "x": 3421,
+ "y": 493
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "SO226"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "SO225Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 65,
+ "x": 3355,
+ "y": 493
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "SO225"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "SO224Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 65,
+ "x": 3199,
+ "y": 493
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "SO224"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "SO230Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 65,
+ "x": 3955,
+ "y": 493
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "SO230"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "FL1DoorLabel"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 444,
+ "y": 3
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 326
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "RO1DoorLabel"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 532,
+ "y": 753
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 325
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "FL2DoorLabel"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 667,
+ "y": 3
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 324
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "RO2DoorLabel"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 754,
+ "y": 753
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 323
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "FL3DoorLabel"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 889,
+ "y": 3
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 322
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "FL4DoorLabel"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 1570,
+ "y": 3
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 320
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "RO6DoorLabel"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 1657,
+ "y": 753
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 319
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "FL5DoorLabel"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 1793,
+ "y": 3
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 318
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "RO7DoorLabel"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 1880,
+ "y": 753
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 317
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "RO8DoorLabel"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 2180,
+ "y": 753
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 316
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "FL6DoorLabel"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 2315,
+ "y": 3
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 315
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "RO9DoorLabel"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 2402,
+ "y": 753
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 314
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "FL7DoorLabel"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 2537,
+ "y": 3
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 313
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "RO10DoorLabel"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 2624,
+ "y": 753
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 312
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "FL8DoorLabel"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 2759,
+ "y": 3
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 311
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "RO11DoorLabel"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 2846,
+ "y": 753
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 310
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "FL9DoorLabel"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 2981,
+ "y": 3
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 309
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "FL10DoorLabel"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 3203,
+ "y": 3
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 308
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "RO13DoorLabel"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 3290,
+ "y": 753
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 307
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "FL11DoorLabel"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 3425,
+ "y": 3
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 306
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "RO14DoorLabel"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 3512,
+ "y": 753
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 305
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "RO15DoorLabel"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 3734,
+ "y": 753
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 303
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "FL12DoorLabel"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 3647,
+ "y": 3
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 304
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "FL13DoorLabel"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 3870,
+ "y": 3
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 302
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "draggable": true,
+ "id": "sbxxr6Kp",
+ "modal": false,
+ "overlayDismiss": false,
+ "resizable": true,
+ "showCloseIcon": true,
+ "title": "Oiler",
+ "type": "open",
+ "viewPath": "Popups/Oiler",
+ "viewportBound": false
+ },
+ "scope": "C",
+ "type": "popup"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button"
+ },
+ "position": {
+ "height": 34,
+ "width": 80,
+ "x": 4043,
+ "y": 235
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey",
+ "transform": "scale(3)"
+ },
+ "text": "Oiler"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "SO2INLabel"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 80,
+ "x": 183,
+ "y": 500
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "SO2 IN"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "SO2INLabel_Tooltip"
+ },
+ "position": {
+ "height": 25,
+ "width": 80,
+ "x": 183,
+ "y": 500
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21_Custom/adiPPH_Sorter_Induct/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.tooltipoverlay"
+ },
+ {
+ "meta": {
+ "name": "SO2OTELabel"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 90,
+ "x": 4083,
+ "y": 520
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "SO2 OTE"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "SO2OTELabel_Tooltip"
+ },
+ "position": {
+ "height": 25,
+ "width": 90,
+ "x": 4083,
+ "y": 520
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21_Custom/adiPPH_Sorter_OTE/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.tooltipoverlay"
+ },
+ {
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "draggable": true,
+ "id": "sbxxr6Kp",
+ "modal": false,
+ "overlayDismiss": false,
+ "resizable": false,
+ "showCloseIcon": true,
+ "title": "Wireless Pendant",
+ "type": "open",
+ "viewPath": "Popups/Device/Controls/pendant",
+ "viewportBound": false
+ },
+ "scope": "C",
+ "type": "popup"
+ }
+ }
+ },
+ "meta": {
+ "name": "PendantButton"
+ },
+ "position": {
+ "height": 34,
+ "width": 80,
+ "x": 4043.4,
+ "y": 114
+ },
+ "propConfig": {
+ "props.textStyle.color": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21_Custom/Pendant/pendantEnableIND"
+ },
+ "transforms": [
+ {
+ "fallback": "#000",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "FF0000"
+ },
+ {
+ "input": false,
+ "output": "#000"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey",
+ "transform": "scale(3)"
+ },
+ "text": "pendant"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 235,
+ "y": 461
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/TPE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "SO02_01_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 4020,
+ "y": 501
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/TPE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/66f7fcdb6fc442dac30292bb0d87cfc0b7cc2acef452fd1ed16e642bed1ddff7 b/.resources/66f7fcdb6fc442dac30292bb0d87cfc0b7cc2acef452fd1ed16e642bed1ddff7
new file mode 100644
index 00000000..5458795e
--- /dev/null
+++ b/.resources/66f7fcdb6fc442dac30292bb0d87cfc0b7cc2acef452fd1ed16e642bed1ddff7
@@ -0,0 +1,98 @@
+WITH SORTERS AS (
+ SELECT
+ DATE_FORMAT(MIN(s04_timestamp), "%Y-%m-%d %H:%i:00") AS time,
+ COUNT(*) AS total,
+ SUM(sort_code="Success") AS success,
+ SUM(sort_code="Unknown") AS unknown,
+ SUM(sort_code="Unexpected") AS unexpected,
+ SUM(sort_code="Track Err") AS track_err,
+ SUM(sort_code="Gap Err") AS gap_err,
+ SUM(sort_code="Dest Full") AS dest_full,
+ SUM(sort_code="Dest Fault") AS dest_fault,
+ SUM(sort_code="Dest Invalid") AS dest_invalid,
+ SUM(sort_code="No Read") AS no_read,
+ SUM(sort_code="No Code") AS no_code,
+ SUM(sort_code="Multi Label") AS multi_label,
+ SUM(sort_code="Dest Disabled") AS dest_disabled,
+ SUM(sort_code="Rate High") AS rate_high,
+ SUM(sort_code="Div Fail") AS div_fail,
+ SUM(sort_code="Dest None") AS dest_none,
+ SUM(sort_code="Lost") AS lost,
+ SUM(sort_code="Dim Err") AS dim_err,
+ SUM(sort_code="Weight Err") AS weight_err,
+ SUM(sort_code="Underutilized") AS underutilized,
+ SUM(sort_code="Unsafe") AS unsafe
+ FROM package_history
+ WHERE s04_timestamp BETWEEN :startDate AND :endDate
+ AND sorter = :sorter
+ GROUP BY DATE_FORMAT(s04_timestamp, "%Y-%m-%d %H:%i:00")
+ ORDER BY DATE_FORMAT(s04_timestamp, "%Y-%m-%d %H:%i:00")
+)
+SELECT
+ time,
+ /* Counts: */
+ total AS total_count,
+ success AS success_count,
+ unknown AS unknown_count,
+ unexpected AS unexpected_count,
+ track_err AS track_err_count,
+ gap_err AS gap_err_count,
+ dest_full AS dest_full_count,
+ dest_fault AS dest_fault_count,
+ dest_invalid AS dest_invalid_count,
+ no_read AS no_read_count,
+ no_code AS no_code_count,
+ multi_label AS multi_label_count,
+ dest_disabled AS dest_disabled_count,
+ rate_high AS rate_high_count,
+ div_fail AS div_fail_count,
+ dest_none AS dest_none_count,
+ lost AS lost_count,
+ dim_err AS dim_err_count,
+ weight_err AS weight_err_count,
+ underutilized AS underutilized_count,
+ unsafe AS unsafe_count,
+ /* PPH: */
+ ROUND(total*60) AS total_pph,
+ ROUND(success*60) AS success_pph,
+ ROUND(unknown*60) AS unknown_pph,
+ ROUND(unexpected*60) AS unexpected_pph,
+ ROUND(track_err*60) AS track_err_pph,
+ ROUND(gap_err*60) AS gap_err_pph,
+ ROUND(dest_full*60) AS dest_full_pph,
+ ROUND(dest_fault*60) AS dest_fault_pph,
+ ROUND(dest_invalid*60) AS dest_invalid_pph,
+ ROUND(no_read*60) AS no_read_pph,
+ ROUND(no_code*60) AS no_code_pph,
+ ROUND(multi_label*60) AS multi_label_pph,
+ ROUND(dest_disabled*60) AS dest_disabled_pph,
+ ROUND(rate_high*60) AS rate_high_pph,
+ ROUND(div_fail*60) AS div_fail_pph,
+ ROUND(dest_none*60) AS dest_none_pph,
+ ROUND(lost*60) AS lost_pph,
+ ROUND(dim_err*60) AS dim_err_pph,
+ ROUND(weight_err*60) AS weight_err_pph,
+ ROUND(underutilized*60) AS underutilized_pph,
+ ROUND(unsafe*60) AS unsafe_pph,
+ /* Percents: */
+ ROUND(success/total, 4) AS success_percent,
+ ROUND(unknown/total, 4) AS unknown_percent,
+ ROUND(unexpected/total, 4) AS unexpected_percent,
+ ROUND(track_err/total, 4) AS track_err_percent,
+ ROUND(gap_err/total, 4) AS gap_err_percent,
+ ROUND(dest_full/total, 4) AS dest_full_percent,
+ ROUND(dest_fault/total, 4) AS dest_fault_percent,
+ ROUND(dest_invalid/total, 4) AS dest_invalid_percent,
+ ROUND(no_read/total, 4) AS no_read_percent,
+ ROUND(no_code/total, 4) AS no_code_percent,
+ ROUND(multi_label/total, 4) AS multi_label_percent,
+ ROUND(dest_disabled/total, 4) AS dest_disabled_percent,
+ ROUND(rate_high/total, 4) AS rate_high_percent,
+ ROUND(div_fail/total, 4) AS div_fail_percent,
+ ROUND(dest_none/total, 4) AS dest_none_percent,
+ ROUND(lost/total, 4) AS lost_percent,
+ ROUND(dim_err/total, 4) AS dim_err_percent,
+ ROUND(weight_err/total, 4) AS weight_err_percent,
+ ROUND(underutilized/total, 4) AS underutilized_percent,
+ ROUND(unsafe/total, 4) AS unsafe_percent
+FROM SORTERS;
\ No newline at end of file
diff --git a/.resources/6993ce855a4083afa7738be88ff4847cd2c7b3e5b67a55aaf19efbbec4299a47 b/.resources/6993ce855a4083afa7738be88ff4847cd2c7b3e5b67a55aaf19efbbec4299a47
new file mode 100644
index 00000000..a2e08ae5
--- /dev/null
+++ b/.resources/6993ce855a4083afa7738be88ff4847cd2c7b3e5b67a55aaf19efbbec4299a47
@@ -0,0 +1,1810 @@
+{
+ "custom": {},
+ "params": {
+ "meta": {
+ "name": "S1-CH1"
+ },
+ "props": {
+ "config": {
+ "alwaysShowAll": true,
+ "isClickable": false,
+ "rotation": 0
+ },
+ "status": {
+ "tagPath": "[default]MCP04/CH_20116/CH_20116"
+ }
+ }
+ },
+ "propConfig": {
+ "params.meta": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.meta.name": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.config.alwaysShowAll": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.config.rotation": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 509,
+ "width": 645
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Instructions"
+ },
+ "position": {
+ "height": 288,
+ "width": 423,
+ "x": 34,
+ "y": 176
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#FF0",
+ "borderStyle": "solid"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Instructions_Label"
+ },
+ "position": {
+ "height": 32,
+ "width": 240,
+ "x": 125.5,
+ "y": 144
+ },
+ "props": {
+ "style": {
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "Divert Jog Procedure"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Instructions_Text"
+ },
+ "position": {
+ "height": 315,
+ "width": 423,
+ "x": 20.5,
+ "y": 185.78
+ },
+ "props": {
+ "markdown": {
+ "escapeHtml": false
+ },
+ "source": "1. Press and secure \"Maintenance Mode\" button on the MCP\u003cbr\u003e\u003cbr\u003e\n2. Press \"ENABLE\" button on wireless pendant\u003cbr\u003e\u003cbr\u003e\n3. Input diverter number on HMI\u003cbr\u003e\u003cbr\u003e\n4. Verify pendant is in range of receiver\u003cbr\u003e\u003cbr\u003e\n5. Hold down \"JOG\" button on wireless pendant\u003cbr\u003e\u003cbr\u003e\n6. Hold down \"DIVERT\" button on wireless pendant\u003cbr\u003e\u003cbr\u003e",
+ "style": {
+ "textAlign": "center"
+ }
+ },
+ "type": "ia.display.markdown"
+ },
+ {
+ "meta": {
+ "name": "Diverter_Selection_Label"
+ },
+ "position": {
+ "height": 28,
+ "width": 159,
+ "x": 465.3,
+ "y": 291.75
+ },
+ "props": {
+ "style": {
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Diverter Selection:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "NumericEntryField"
+ },
+ "position": {
+ "height": 34,
+ "width": 79.99999999999994,
+ "x": 504.3,
+ "y": 318.25
+ },
+ "propConfig": {
+ "props.value": {
+ "binding": {
+ "config": {
+ "bidirectional": true,
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21_Custom/Pendant/divertID_INP"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "containerStyle": {
+ "borderBottomLeftRadius": 5,
+ "borderBottomRightRadius": 5,
+ "borderStyle": "inset",
+ "borderTopLeftRadius": 5,
+ "borderTopRightRadius": 5
+ },
+ "format": "0,0",
+ "inputBounds": {
+ "invalidStyle": {
+ "backgroundColor": "#FF0000"
+ },
+ "maximum": 30,
+ "minimum": 0
+ },
+ "placeholder": "0 to 30"
+ },
+ "type": "ia.input.numeric-entry-field"
+ },
+ {
+ "meta": {
+ "name": "StsMaintLight"
+ },
+ "position": {
+ "height": 112,
+ "width": 107,
+ "x": 5,
+ "y": 7
+ },
+ "propConfig": {
+ "custom.color": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21_Custom/Pendant/maintModeIND"
+ },
+ "transforms": [
+ {
+ "fallback": "#808080",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": false,
+ "output": "#FF0000"
+ },
+ {
+ "input": true,
+ "output": "#008000"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.elements[4].elements[0].fill.paint": {
+ "binding": {
+ "config": {
+ "path": "this.custom.color"
+ },
+ "type": "property"
+ }
+ },
+ "props.elements[4].elements[1].fill.paint.stops[1].style.stopColor": {
+ "binding": {
+ "config": {
+ "path": "this.custom.color"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "elements": [
+ {
+ "elements": [
+ {
+ "d": "M102.228,66.313l-0.091-8.881l0.226-1.352l4.954-3.604l0.338-2.027 l-3.604-44.368l-1.013-3.153l-2.479-2.252l-3.152-0.675H10.135L6.982,0.677L4.729,2.93L3.716,6.083L0,50.451l0.338,2.027 l4.842,3.604l0.45,1.352l-0.295,9.635c0.111,0.456,0.164,0.929,0.16,1.401h96.032C101.609,67.706,101.842,66.965,102.228,66.313z",
+ "fill": {
+ "paint": "#A8A8A8"
+ },
+ "name": "path",
+ "stroke": {
+ "paint": "#000000",
+ "width": "0.25"
+ },
+ "type": "path"
+ },
+ {
+ "d": "M102.153,65.247c0,26.094-21.67,47.253-48.401,47.253 c-26.731,0-48.4-21.159-48.4-47.253",
+ "fill": {
+ "paint": "#A8A8A8"
+ },
+ "name": "path",
+ "stroke": {
+ "paint": "#000000",
+ "width": "0.25"
+ },
+ "type": "path"
+ }
+ ],
+ "name": "Group_BackplateBevel",
+ "type": "group"
+ },
+ {
+ "elements": [
+ {
+ "d": "M98.195,56.081l1.914-4.054l3.153-3.041L99.884,6.42l-0.787-1.689l-1.689-0.789H10.135L8.671,4.731L7.77,6.42L4.167,48.649 l3.378,3.041l2.027,4.054L98.195,56.081z",
+ "name": "path",
+ "type": "path"
+ }
+ ],
+ "name": "Group_Bannet_Assembly",
+ "type": "group"
+ },
+ {
+ "elements": [
+ {
+ "d": "M99.078,65.416c0-24.938-20.311-45.158-45.365-45.158c-25.054,0-45.364,20.22-45.364,45.158 c0,24.943,20.31,45.169,45.364,45.169C78.768,110.585,99.078,90.359,99.078,65.416z",
+ "fill": {
+ "paint": "#6E6E6E"
+ },
+ "name": "path",
+ "type": "path"
+ }
+ ],
+ "name": "Group_Backplate",
+ "type": "group"
+ },
+ {
+ "elements": [
+ {
+ "fill": {
+ "paint": {
+ "gradientUnits": "userSpaceOnUse",
+ "stops": [
+ {
+ "offset": "0",
+ "style": {
+ "stopColor": "#808080"
+ }
+ },
+ {
+ "offset": "0.5",
+ "style": {
+ "stopColor": "#DEDEDE"
+ }
+ },
+ {
+ "offset": "1",
+ "style": {
+ "stopColor": "#808080"
+ }
+ }
+ ],
+ "type": "linear",
+ "x1": "47.5767",
+ "x2": "59.8506",
+ "y1": "23.6792",
+ "y2": "23.6792"
+ }
+ },
+ "height": "6.312",
+ "name": "rect",
+ "type": "rect",
+ "width": "12.274",
+ "x": "47.577",
+ "y": "20.523"
+ },
+ {
+ "d": "M93.85,65.31c0-22.063-17.969-39.952-40.136-39.952c-22.166,0-40.135,17.889-40.135,39.952 c0,22.068,17.969,39.963,40.135,39.963C75.881,105.272,93.85,87.378,93.85,65.31z",
+ "fill": {
+ "paint": {
+ "gradientUnits": "userSpaceOnUse",
+ "stops": [
+ {
+ "offset": "0",
+ "style": {
+ "stopColor": "#808080"
+ }
+ },
+ {
+ "offset": "0.5",
+ "style": {
+ "stopColor": "#DEDEDE"
+ }
+ },
+ {
+ "offset": "1",
+ "style": {
+ "stopColor": "#808080"
+ }
+ }
+ ],
+ "type": "linear",
+ "x1": "13.5791",
+ "x2": "93.8496",
+ "y1": "65.3145",
+ "y2": "65.3145"
+ }
+ },
+ "name": "path",
+ "type": "path"
+ }
+ ],
+ "name": "Group_Bannet_Nut",
+ "type": "group"
+ },
+ {
+ "elements": [
+ {
+ "d": "M87.835,65.132c0-18.84-15.276-34.12-34.121-34.12 c-18.844,0-34.121,15.28-34.121,34.12c0,18.841,15.277,34.121,34.121,34.121C72.559,99.253,87.835,83.973,87.835,65.132z",
+ "fill": {},
+ "name": "path",
+ "stroke": {
+ "paint": "#000000",
+ "width": "0.25"
+ },
+ "type": "path"
+ },
+ {
+ "cx": "44.489",
+ "cy": "55.25",
+ "fill": {
+ "paint": {
+ "cx": "43.7754",
+ "cy": "54.0874",
+ "gradientTransform": "matrix(1.3614 0 0 1.3614 -15.1075 -18.3842)",
+ "gradientUnits": "userSpaceOnUse",
+ "r": "14.0759",
+ "stops": [
+ {
+ "offset": "0",
+ "style": {
+ "stopColor": "#D1D1D1"
+ }
+ },
+ {
+ "offset": "1",
+ "style": {}
+ }
+ ],
+ "type": "radial"
+ }
+ },
+ "name": "ellipse",
+ "rx": "19.163",
+ "ry": "18.177",
+ "type": "ellipse"
+ }
+ ],
+ "name": "Group_Pilot_Light_Red",
+ "type": "group"
+ }
+ ],
+ "viewBox": "0 0 107.654 112.5"
+ },
+ "type": "ia.shapes.svg"
+ },
+ {
+ "meta": {
+ "name": "StsMaintLabel"
+ },
+ "position": {
+ "height": 32,
+ "width": "auto",
+ "x": 15.5,
+ "y": 3
+ },
+ "props": {
+ "style": {
+ "color": "#FFFFFF",
+ "fontSize": 8,
+ "fontWeight": "bold",
+ "textTransform": "uppercase"
+ },
+ "text": "Maintenance Mode"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "StsPendantLight"
+ },
+ "position": {
+ "height": 112,
+ "width": 107,
+ "x": 137,
+ "y": 7
+ },
+ "propConfig": {
+ "custom.color": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21_Custom/Pendant/pendantEnableIND"
+ },
+ "transforms": [
+ {
+ "fallback": "#808080",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": false,
+ "output": "#FF0000"
+ },
+ {
+ "input": true,
+ "output": "#008000"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.elements[4].elements[0].fill.paint": {
+ "binding": {
+ "config": {
+ "expression": "if({[default]MCP21_Custom/Pendant/maintModeIND}\u003dtrue,{this.custom.color},\"#808080\")"
+ },
+ "type": "expr"
+ }
+ },
+ "props.elements[4].elements[1].fill.paint.stops[1].style.stopColor": {
+ "binding": {
+ "config": {
+ "expression": "if({[default]MCP21_Custom/Pendant/maintModeIND}\u003dtrue,{this.custom.color},\"#808080\")"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "elements": [
+ {
+ "elements": [
+ {
+ "d": "M102.228,66.313l-0.091-8.881l0.226-1.352l4.954-3.604l0.338-2.027 l-3.604-44.368l-1.013-3.153l-2.479-2.252l-3.152-0.675H10.135L6.982,0.677L4.729,2.93L3.716,6.083L0,50.451l0.338,2.027 l4.842,3.604l0.45,1.352l-0.295,9.635c0.111,0.456,0.164,0.929,0.16,1.401h96.032C101.609,67.706,101.842,66.965,102.228,66.313z",
+ "fill": {
+ "paint": "#A8A8A8"
+ },
+ "name": "path",
+ "stroke": {
+ "paint": "#000000",
+ "width": "0.25"
+ },
+ "type": "path"
+ },
+ {
+ "d": "M102.153,65.247c0,26.094-21.67,47.253-48.401,47.253 c-26.731,0-48.4-21.159-48.4-47.253",
+ "fill": {
+ "paint": "#A8A8A8"
+ },
+ "name": "path",
+ "stroke": {
+ "paint": "#000000",
+ "width": "0.25"
+ },
+ "type": "path"
+ }
+ ],
+ "name": "Group_BackplateBevel",
+ "type": "group"
+ },
+ {
+ "elements": [
+ {
+ "d": "M98.195,56.081l1.914-4.054l3.153-3.041L99.884,6.42l-0.787-1.689l-1.689-0.789H10.135L8.671,4.731L7.77,6.42L4.167,48.649 l3.378,3.041l2.027,4.054L98.195,56.081z",
+ "name": "path",
+ "type": "path"
+ }
+ ],
+ "name": "Group_Bannet_Assembly",
+ "type": "group"
+ },
+ {
+ "elements": [
+ {
+ "d": "M99.078,65.416c0-24.938-20.311-45.158-45.365-45.158c-25.054,0-45.364,20.22-45.364,45.158 c0,24.943,20.31,45.169,45.364,45.169C78.768,110.585,99.078,90.359,99.078,65.416z",
+ "fill": {
+ "paint": "#6E6E6E"
+ },
+ "name": "path",
+ "type": "path"
+ }
+ ],
+ "name": "Group_Backplate",
+ "type": "group"
+ },
+ {
+ "elements": [
+ {
+ "fill": {
+ "paint": {
+ "gradientUnits": "userSpaceOnUse",
+ "stops": [
+ {
+ "offset": "0",
+ "style": {
+ "stopColor": "#808080"
+ }
+ },
+ {
+ "offset": "0.5",
+ "style": {
+ "stopColor": "#DEDEDE"
+ }
+ },
+ {
+ "offset": "1",
+ "style": {
+ "stopColor": "#808080"
+ }
+ }
+ ],
+ "type": "linear",
+ "x1": "47.5767",
+ "x2": "59.8506",
+ "y1": "23.6792",
+ "y2": "23.6792"
+ }
+ },
+ "height": "6.312",
+ "name": "rect",
+ "type": "rect",
+ "width": "12.274",
+ "x": "47.577",
+ "y": "20.523"
+ },
+ {
+ "d": "M93.85,65.31c0-22.063-17.969-39.952-40.136-39.952c-22.166,0-40.135,17.889-40.135,39.952 c0,22.068,17.969,39.963,40.135,39.963C75.881,105.272,93.85,87.378,93.85,65.31z",
+ "fill": {
+ "paint": {
+ "gradientUnits": "userSpaceOnUse",
+ "stops": [
+ {
+ "offset": "0",
+ "style": {
+ "stopColor": "#808080"
+ }
+ },
+ {
+ "offset": "0.5",
+ "style": {
+ "stopColor": "#DEDEDE"
+ }
+ },
+ {
+ "offset": "1",
+ "style": {
+ "stopColor": "#808080"
+ }
+ }
+ ],
+ "type": "linear",
+ "x1": "13.5791",
+ "x2": "93.8496",
+ "y1": "65.3145",
+ "y2": "65.3145"
+ }
+ },
+ "name": "path",
+ "type": "path"
+ }
+ ],
+ "name": "Group_Bannet_Nut",
+ "type": "group"
+ },
+ {
+ "elements": [
+ {
+ "d": "M87.835,65.132c0-18.84-15.276-34.12-34.121-34.12 c-18.844,0-34.121,15.28-34.121,34.12c0,18.841,15.277,34.121,34.121,34.121C72.559,99.253,87.835,83.973,87.835,65.132z",
+ "fill": {},
+ "name": "path",
+ "stroke": {
+ "paint": "#000000",
+ "width": "0.25"
+ },
+ "type": "path"
+ },
+ {
+ "cx": "44.489",
+ "cy": "55.25",
+ "fill": {
+ "paint": {
+ "cx": "43.7754",
+ "cy": "54.0874",
+ "gradientTransform": "matrix(1.3614 0 0 1.3614 -15.1075 -18.3842)",
+ "gradientUnits": "userSpaceOnUse",
+ "r": "14.0759",
+ "stops": [
+ {
+ "offset": "0",
+ "style": {
+ "stopColor": "#D1D1D1"
+ }
+ },
+ {
+ "offset": "1",
+ "style": {}
+ }
+ ],
+ "type": "radial"
+ }
+ },
+ "name": "ellipse",
+ "rx": "19.163",
+ "ry": "18.177",
+ "type": "ellipse"
+ }
+ ],
+ "fill": "#FF0000",
+ "name": "Group_Pilot_Light_Red",
+ "type": "group"
+ }
+ ],
+ "viewBox": "0 0 107.654 112.5"
+ },
+ "type": "ia.shapes.svg"
+ },
+ {
+ "meta": {
+ "name": "StsPendantLabel"
+ },
+ "position": {
+ "height": 32,
+ "width": "auto",
+ "x": 151.5,
+ "y": 3
+ },
+ "props": {
+ "style": {
+ "color": "#FFFFFF",
+ "fontSize": 8,
+ "fontWeight": "bold",
+ "textTransform": "uppercase"
+ },
+ "text": "Pendant Enabled"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "StsPendantLight_0"
+ },
+ "position": {
+ "height": 112,
+ "width": 107,
+ "x": 269,
+ "y": 7
+ },
+ "propConfig": {
+ "custom.color": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21_Custom/Pendant/jogSlowIND"
+ },
+ "transforms": [
+ {
+ "fallback": "#808080",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": false,
+ "output": "#FF0000"
+ },
+ {
+ "input": true,
+ "output": "#008000"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.elements[4].elements[0].fill.paint": {
+ "binding": {
+ "config": {
+ "expression": "if({[default]MCP21_Custom/Pendant/maintModeIND}\u003dtrue,{this.custom.color},\"#808080\")"
+ },
+ "type": "expr"
+ }
+ },
+ "props.elements[4].elements[1].fill.paint.stops[1].style.stopColor": {
+ "binding": {
+ "config": {
+ "expression": "if({[default]MCP21_Custom/Pendant/maintModeIND}\u003dtrue,{this.custom.color},\"#808080\")"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "elements": [
+ {
+ "elements": [
+ {
+ "d": "M102.228,66.313l-0.091-8.881l0.226-1.352l4.954-3.604l0.338-2.027 l-3.604-44.368l-1.013-3.153l-2.479-2.252l-3.152-0.675H10.135L6.982,0.677L4.729,2.93L3.716,6.083L0,50.451l0.338,2.027 l4.842,3.604l0.45,1.352l-0.295,9.635c0.111,0.456,0.164,0.929,0.16,1.401h96.032C101.609,67.706,101.842,66.965,102.228,66.313z",
+ "fill": {
+ "paint": "#A8A8A8"
+ },
+ "name": "path",
+ "stroke": {
+ "paint": "#000000",
+ "width": "0.25"
+ },
+ "type": "path"
+ },
+ {
+ "d": "M102.153,65.247c0,26.094-21.67,47.253-48.401,47.253 c-26.731,0-48.4-21.159-48.4-47.253",
+ "fill": {
+ "paint": "#A8A8A8"
+ },
+ "name": "path",
+ "stroke": {
+ "paint": "#000000",
+ "width": "0.25"
+ },
+ "type": "path"
+ }
+ ],
+ "name": "Group_BackplateBevel",
+ "type": "group"
+ },
+ {
+ "elements": [
+ {
+ "d": "M98.195,56.081l1.914-4.054l3.153-3.041L99.884,6.42l-0.787-1.689l-1.689-0.789H10.135L8.671,4.731L7.77,6.42L4.167,48.649 l3.378,3.041l2.027,4.054L98.195,56.081z",
+ "name": "path",
+ "type": "path"
+ }
+ ],
+ "name": "Group_Bannet_Assembly",
+ "type": "group"
+ },
+ {
+ "elements": [
+ {
+ "d": "M99.078,65.416c0-24.938-20.311-45.158-45.365-45.158c-25.054,0-45.364,20.22-45.364,45.158 c0,24.943,20.31,45.169,45.364,45.169C78.768,110.585,99.078,90.359,99.078,65.416z",
+ "fill": {
+ "paint": "#6E6E6E"
+ },
+ "name": "path",
+ "type": "path"
+ }
+ ],
+ "name": "Group_Backplate",
+ "type": "group"
+ },
+ {
+ "elements": [
+ {
+ "fill": {
+ "paint": {
+ "gradientUnits": "userSpaceOnUse",
+ "stops": [
+ {
+ "offset": "0",
+ "style": {
+ "stopColor": "#808080"
+ }
+ },
+ {
+ "offset": "0.5",
+ "style": {
+ "stopColor": "#DEDEDE"
+ }
+ },
+ {
+ "offset": "1",
+ "style": {
+ "stopColor": "#808080"
+ }
+ }
+ ],
+ "type": "linear",
+ "x1": "47.5767",
+ "x2": "59.8506",
+ "y1": "23.6792",
+ "y2": "23.6792"
+ }
+ },
+ "height": "6.312",
+ "name": "rect",
+ "type": "rect",
+ "width": "12.274",
+ "x": "47.577",
+ "y": "20.523"
+ },
+ {
+ "d": "M93.85,65.31c0-22.063-17.969-39.952-40.136-39.952c-22.166,0-40.135,17.889-40.135,39.952 c0,22.068,17.969,39.963,40.135,39.963C75.881,105.272,93.85,87.378,93.85,65.31z",
+ "fill": {
+ "paint": {
+ "gradientUnits": "userSpaceOnUse",
+ "stops": [
+ {
+ "offset": "0",
+ "style": {
+ "stopColor": "#808080"
+ }
+ },
+ {
+ "offset": "0.5",
+ "style": {
+ "stopColor": "#DEDEDE"
+ }
+ },
+ {
+ "offset": "1",
+ "style": {
+ "stopColor": "#808080"
+ }
+ }
+ ],
+ "type": "linear",
+ "x1": "13.5791",
+ "x2": "93.8496",
+ "y1": "65.3145",
+ "y2": "65.3145"
+ }
+ },
+ "name": "path",
+ "type": "path"
+ }
+ ],
+ "name": "Group_Bannet_Nut",
+ "type": "group"
+ },
+ {
+ "elements": [
+ {
+ "d": "M87.835,65.132c0-18.84-15.276-34.12-34.121-34.12 c-18.844,0-34.121,15.28-34.121,34.12c0,18.841,15.277,34.121,34.121,34.121C72.559,99.253,87.835,83.973,87.835,65.132z",
+ "fill": {},
+ "name": "path",
+ "stroke": {
+ "paint": "#000000",
+ "width": "0.25"
+ },
+ "type": "path"
+ },
+ {
+ "cx": "44.489",
+ "cy": "55.25",
+ "fill": {
+ "paint": {
+ "cx": "43.7754",
+ "cy": "54.0874",
+ "gradientTransform": "matrix(1.3614 0 0 1.3614 -15.1075 -18.3842)",
+ "gradientUnits": "userSpaceOnUse",
+ "r": "14.0759",
+ "stops": [
+ {
+ "offset": "0",
+ "style": {
+ "stopColor": "#D1D1D1"
+ }
+ },
+ {
+ "offset": "1",
+ "style": {}
+ }
+ ],
+ "type": "radial"
+ }
+ },
+ "name": "ellipse",
+ "rx": "19.163",
+ "ry": "18.177",
+ "type": "ellipse"
+ }
+ ],
+ "name": "Group_Pilot_Light_Red",
+ "type": "group"
+ }
+ ],
+ "viewBox": "0 0 107.654 112.5"
+ },
+ "type": "ia.shapes.svg"
+ },
+ {
+ "meta": {
+ "name": "StsPendantLabel_0"
+ },
+ "position": {
+ "height": 32,
+ "width": "auto",
+ "x": 311.5,
+ "y": 3
+ },
+ "props": {
+ "style": {
+ "color": "#FFFFFF",
+ "fontSize": 8,
+ "fontWeight": "bold",
+ "textTransform": "uppercase"
+ },
+ "text": "jog 1"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "StsPendantLight_1"
+ },
+ "position": {
+ "height": 112,
+ "width": 107,
+ "x": 401,
+ "y": 7
+ },
+ "propConfig": {
+ "custom.color": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21_Custom/Pendant/jogFastIND"
+ },
+ "transforms": [
+ {
+ "fallback": "#808080",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": false,
+ "output": "#FF0000"
+ },
+ {
+ "input": true,
+ "output": "#008000"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.elements[4].elements[0].fill.paint": {
+ "binding": {
+ "config": {
+ "expression": "if({[default]MCP21_Custom/Pendant/maintModeIND}\u003dtrue,{this.custom.color},\"#808080\")"
+ },
+ "type": "expr"
+ }
+ },
+ "props.elements[4].elements[1].fill.paint.stops[1].style.stopColor": {
+ "binding": {
+ "config": {
+ "expression": "if({[default]MCP21_Custom/Pendant/maintModeIND}\u003dtrue,{this.custom.color},\"#808080\")"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "elements": [
+ {
+ "elements": [
+ {
+ "d": "M102.228,66.313l-0.091-8.881l0.226-1.352l4.954-3.604l0.338-2.027 l-3.604-44.368l-1.013-3.153l-2.479-2.252l-3.152-0.675H10.135L6.982,0.677L4.729,2.93L3.716,6.083L0,50.451l0.338,2.027 l4.842,3.604l0.45,1.352l-0.295,9.635c0.111,0.456,0.164,0.929,0.16,1.401h96.032C101.609,67.706,101.842,66.965,102.228,66.313z",
+ "fill": {
+ "paint": "#A8A8A8"
+ },
+ "name": "path",
+ "stroke": {
+ "paint": "#000000",
+ "width": "0.25"
+ },
+ "type": "path"
+ },
+ {
+ "d": "M102.153,65.247c0,26.094-21.67,47.253-48.401,47.253 c-26.731,0-48.4-21.159-48.4-47.253",
+ "fill": {
+ "paint": "#A8A8A8"
+ },
+ "name": "path",
+ "stroke": {
+ "paint": "#000000",
+ "width": "0.25"
+ },
+ "type": "path"
+ }
+ ],
+ "name": "Group_BackplateBevel",
+ "type": "group"
+ },
+ {
+ "elements": [
+ {
+ "d": "M98.195,56.081l1.914-4.054l3.153-3.041L99.884,6.42l-0.787-1.689l-1.689-0.789H10.135L8.671,4.731L7.77,6.42L4.167,48.649 l3.378,3.041l2.027,4.054L98.195,56.081z",
+ "name": "path",
+ "type": "path"
+ }
+ ],
+ "name": "Group_Bannet_Assembly",
+ "type": "group"
+ },
+ {
+ "elements": [
+ {
+ "d": "M99.078,65.416c0-24.938-20.311-45.158-45.365-45.158c-25.054,0-45.364,20.22-45.364,45.158 c0,24.943,20.31,45.169,45.364,45.169C78.768,110.585,99.078,90.359,99.078,65.416z",
+ "fill": {
+ "paint": "#6E6E6E"
+ },
+ "name": "path",
+ "type": "path"
+ }
+ ],
+ "name": "Group_Backplate",
+ "type": "group"
+ },
+ {
+ "elements": [
+ {
+ "fill": {
+ "paint": {
+ "gradientUnits": "userSpaceOnUse",
+ "stops": [
+ {
+ "offset": "0",
+ "style": {
+ "stopColor": "#808080"
+ }
+ },
+ {
+ "offset": "0.5",
+ "style": {
+ "stopColor": "#DEDEDE"
+ }
+ },
+ {
+ "offset": "1",
+ "style": {
+ "stopColor": "#808080"
+ }
+ }
+ ],
+ "type": "linear",
+ "x1": "47.5767",
+ "x2": "59.8506",
+ "y1": "23.6792",
+ "y2": "23.6792"
+ }
+ },
+ "height": "6.312",
+ "name": "rect",
+ "type": "rect",
+ "width": "12.274",
+ "x": "47.577",
+ "y": "20.523"
+ },
+ {
+ "d": "M93.85,65.31c0-22.063-17.969-39.952-40.136-39.952c-22.166,0-40.135,17.889-40.135,39.952 c0,22.068,17.969,39.963,40.135,39.963C75.881,105.272,93.85,87.378,93.85,65.31z",
+ "fill": {
+ "paint": {
+ "gradientUnits": "userSpaceOnUse",
+ "stops": [
+ {
+ "offset": "0",
+ "style": {
+ "stopColor": "#808080"
+ }
+ },
+ {
+ "offset": "0.5",
+ "style": {
+ "stopColor": "#DEDEDE"
+ }
+ },
+ {
+ "offset": "1",
+ "style": {
+ "stopColor": "#808080"
+ }
+ }
+ ],
+ "type": "linear",
+ "x1": "13.5791",
+ "x2": "93.8496",
+ "y1": "65.3145",
+ "y2": "65.3145"
+ }
+ },
+ "name": "path",
+ "type": "path"
+ }
+ ],
+ "name": "Group_Bannet_Nut",
+ "type": "group"
+ },
+ {
+ "elements": [
+ {
+ "d": "M87.835,65.132c0-18.84-15.276-34.12-34.121-34.12 c-18.844,0-34.121,15.28-34.121,34.12c0,18.841,15.277,34.121,34.121,34.121C72.559,99.253,87.835,83.973,87.835,65.132z",
+ "fill": {},
+ "name": "path",
+ "stroke": {
+ "paint": "#000000",
+ "width": "0.25"
+ },
+ "type": "path"
+ },
+ {
+ "cx": "44.489",
+ "cy": "55.25",
+ "fill": {
+ "paint": {
+ "cx": "43.7754",
+ "cy": "54.0874",
+ "gradientTransform": "matrix(1.3614 0 0 1.3614 -15.1075 -18.3842)",
+ "gradientUnits": "userSpaceOnUse",
+ "r": "14.0759",
+ "stops": [
+ {
+ "offset": "0",
+ "style": {
+ "stopColor": "#D1D1D1"
+ }
+ },
+ {
+ "offset": 1,
+ "style": {}
+ }
+ ],
+ "type": "radial"
+ }
+ },
+ "name": "ellipse",
+ "rx": "19.163",
+ "ry": "18.177",
+ "type": "ellipse"
+ }
+ ],
+ "name": "Group_Pilot_Light_Red",
+ "type": "group"
+ }
+ ],
+ "viewBox": "0 0 107.654 112.5"
+ },
+ "type": "ia.shapes.svg"
+ },
+ {
+ "meta": {
+ "name": "StsPendantLabel_1"
+ },
+ "position": {
+ "height": 32,
+ "width": "auto",
+ "x": 443.5,
+ "y": 3
+ },
+ "props": {
+ "style": {
+ "color": "#FFFFFF",
+ "fontSize": 8,
+ "fontWeight": "bold",
+ "textTransform": "uppercase"
+ },
+ "text": "jog 2"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "StsPendantLight_2"
+ },
+ "position": {
+ "height": 112,
+ "width": 107,
+ "x": 533,
+ "y": 7
+ },
+ "propConfig": {
+ "custom.color": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21_Custom/Pendant/oilerIND"
+ },
+ "transforms": [
+ {
+ "fallback": "#808080",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": false,
+ "output": "#FF0000"
+ },
+ {
+ "input": true,
+ "output": "#008000"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.elements[4].elements[0].fill.paint": {
+ "binding": {
+ "config": {
+ "expression": "if({[default]MCP21_Custom/Pendant/maintModeIND}\u003dtrue,{this.custom.color},\"#808080\")"
+ },
+ "type": "expr"
+ }
+ },
+ "props.elements[4].elements[1].fill.paint.stops[1].style.stopColor": {
+ "binding": {
+ "config": {
+ "expression": "if({[default]MCP21_Custom/Pendant/maintModeIND}\u003dtrue,{this.custom.color},\"#808080\")"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "elements": [
+ {
+ "elements": [
+ {
+ "d": "M102.228,66.313l-0.091-8.881l0.226-1.352l4.954-3.604l0.338-2.027 l-3.604-44.368l-1.013-3.153l-2.479-2.252l-3.152-0.675H10.135L6.982,0.677L4.729,2.93L3.716,6.083L0,50.451l0.338,2.027 l4.842,3.604l0.45,1.352l-0.295,9.635c0.111,0.456,0.164,0.929,0.16,1.401h96.032C101.609,67.706,101.842,66.965,102.228,66.313z",
+ "fill": {
+ "paint": "#A8A8A8"
+ },
+ "name": "path",
+ "stroke": {
+ "paint": "#000000",
+ "width": "0.25"
+ },
+ "type": "path"
+ },
+ {
+ "d": "M102.153,65.247c0,26.094-21.67,47.253-48.401,47.253 c-26.731,0-48.4-21.159-48.4-47.253",
+ "fill": {
+ "paint": "#A8A8A8"
+ },
+ "name": "path",
+ "stroke": {
+ "paint": "#000000",
+ "width": "0.25"
+ },
+ "type": "path"
+ }
+ ],
+ "name": "Group_BackplateBevel",
+ "type": "group"
+ },
+ {
+ "elements": [
+ {
+ "d": "M98.195,56.081l1.914-4.054l3.153-3.041L99.884,6.42l-0.787-1.689l-1.689-0.789H10.135L8.671,4.731L7.77,6.42L4.167,48.649 l3.378,3.041l2.027,4.054L98.195,56.081z",
+ "name": "path",
+ "type": "path"
+ }
+ ],
+ "name": "Group_Bannet_Assembly",
+ "type": "group"
+ },
+ {
+ "elements": [
+ {
+ "d": "M99.078,65.416c0-24.938-20.311-45.158-45.365-45.158c-25.054,0-45.364,20.22-45.364,45.158 c0,24.943,20.31,45.169,45.364,45.169C78.768,110.585,99.078,90.359,99.078,65.416z",
+ "fill": {
+ "paint": "#6E6E6E"
+ },
+ "name": "path",
+ "type": "path"
+ }
+ ],
+ "name": "Group_Backplate",
+ "type": "group"
+ },
+ {
+ "elements": [
+ {
+ "fill": {
+ "paint": {
+ "gradientUnits": "userSpaceOnUse",
+ "stops": [
+ {
+ "offset": "0",
+ "style": {
+ "stopColor": "#808080"
+ }
+ },
+ {
+ "offset": "0.5",
+ "style": {
+ "stopColor": "#DEDEDE"
+ }
+ },
+ {
+ "offset": "1",
+ "style": {
+ "stopColor": "#808080"
+ }
+ }
+ ],
+ "type": "linear",
+ "x1": "47.5767",
+ "x2": "59.8506",
+ "y1": "23.6792",
+ "y2": "23.6792"
+ }
+ },
+ "height": "6.312",
+ "name": "rect",
+ "type": "rect",
+ "width": "12.274",
+ "x": "47.577",
+ "y": "20.523"
+ },
+ {
+ "d": "M93.85,65.31c0-22.063-17.969-39.952-40.136-39.952c-22.166,0-40.135,17.889-40.135,39.952 c0,22.068,17.969,39.963,40.135,39.963C75.881,105.272,93.85,87.378,93.85,65.31z",
+ "fill": {
+ "paint": {
+ "gradientUnits": "userSpaceOnUse",
+ "stops": [
+ {
+ "offset": "0",
+ "style": {
+ "stopColor": "#808080"
+ }
+ },
+ {
+ "offset": "0.5",
+ "style": {
+ "stopColor": "#DEDEDE"
+ }
+ },
+ {
+ "offset": "1",
+ "style": {
+ "stopColor": "#808080"
+ }
+ }
+ ],
+ "type": "linear",
+ "x1": "13.5791",
+ "x2": "93.8496",
+ "y1": "65.3145",
+ "y2": "65.3145"
+ }
+ },
+ "name": "path",
+ "type": "path"
+ }
+ ],
+ "name": "Group_Bannet_Nut",
+ "type": "group"
+ },
+ {
+ "elements": [
+ {
+ "d": "M87.835,65.132c0-18.84-15.276-34.12-34.121-34.12 c-18.844,0-34.121,15.28-34.121,34.12c0,18.841,15.277,34.121,34.121,34.121C72.559,99.253,87.835,83.973,87.835,65.132z",
+ "fill": {},
+ "name": "path",
+ "stroke": {
+ "paint": "#000000",
+ "width": "0.25"
+ },
+ "type": "path"
+ },
+ {
+ "cx": "44.489",
+ "cy": "55.25",
+ "fill": {
+ "paint": {
+ "cx": "43.7754",
+ "cy": "54.0874",
+ "gradientTransform": "matrix(1.3614 0 0 1.3614 -15.1075 -18.3842)",
+ "gradientUnits": "userSpaceOnUse",
+ "r": "14.0759",
+ "stops": [
+ {
+ "offset": "0",
+ "style": {
+ "stopColor": "#D1D1D1"
+ }
+ },
+ {
+ "offset": "1",
+ "style": {}
+ }
+ ],
+ "type": "radial"
+ }
+ },
+ "name": "ellipse",
+ "rx": "19.163",
+ "ry": "18.177",
+ "type": "ellipse"
+ }
+ ],
+ "name": "Group_Pilot_Light_Red",
+ "type": "group"
+ }
+ ],
+ "viewBox": "0 0 107.654 112.5"
+ },
+ "type": "ia.shapes.svg"
+ },
+ {
+ "meta": {
+ "name": "StsPendantLabel_2"
+ },
+ "position": {
+ "height": 32,
+ "width": "auto",
+ "x": 574.5,
+ "y": 3
+ },
+ "props": {
+ "style": {
+ "color": "#FFFFFF",
+ "fontSize": 8,
+ "fontWeight": "bold",
+ "textTransform": "uppercase"
+ },
+ "text": "Oiler"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "StsPendantLight_3"
+ },
+ "position": {
+ "height": 112,
+ "width": 107,
+ "x": 491.3,
+ "y": 175.75
+ },
+ "propConfig": {
+ "custom.color": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21_Custom/Pendant/divertIND"
+ },
+ "transforms": [
+ {
+ "fallback": "#808080",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": false,
+ "output": "#FF0000"
+ },
+ {
+ "input": true,
+ "output": "#008000"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.elements[4].elements[0].fill.paint": {
+ "binding": {
+ "config": {
+ "expression": "if({[default]MCP21_Custom/Pendant/maintModeIND}\u003dtrue,{this.custom.color},\"#808080\")"
+ },
+ "type": "expr"
+ }
+ },
+ "props.elements[4].elements[1].fill.paint.stops[1].style.stopColor": {
+ "binding": {
+ "config": {
+ "expression": "if({[default]MCP21_Custom/Pendant/maintModeIND}\u003dtrue,{this.custom.color},\"#808080\")"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "elements": [
+ {
+ "elements": [
+ {
+ "d": "M102.228,66.313l-0.091-8.881l0.226-1.352l4.954-3.604l0.338-2.027 l-3.604-44.368l-1.013-3.153l-2.479-2.252l-3.152-0.675H10.135L6.982,0.677L4.729,2.93L3.716,6.083L0,50.451l0.338,2.027 l4.842,3.604l0.45,1.352l-0.295,9.635c0.111,0.456,0.164,0.929,0.16,1.401h96.032C101.609,67.706,101.842,66.965,102.228,66.313z",
+ "fill": {
+ "paint": "#A8A8A8"
+ },
+ "name": "path",
+ "stroke": {
+ "paint": "#000000",
+ "width": "0.25"
+ },
+ "type": "path"
+ },
+ {
+ "d": "M102.153,65.247c0,26.094-21.67,47.253-48.401,47.253 c-26.731,0-48.4-21.159-48.4-47.253",
+ "fill": {
+ "paint": "#A8A8A8"
+ },
+ "name": "path",
+ "stroke": {
+ "paint": "#000000",
+ "width": "0.25"
+ },
+ "type": "path"
+ }
+ ],
+ "name": "Group_BackplateBevel",
+ "type": "group"
+ },
+ {
+ "elements": [
+ {
+ "d": "M98.195,56.081l1.914-4.054l3.153-3.041L99.884,6.42l-0.787-1.689l-1.689-0.789H10.135L8.671,4.731L7.77,6.42L4.167,48.649 l3.378,3.041l2.027,4.054L98.195,56.081z",
+ "name": "path",
+ "type": "path"
+ }
+ ],
+ "name": "Group_Bannet_Assembly",
+ "type": "group"
+ },
+ {
+ "elements": [
+ {
+ "d": "M99.078,65.416c0-24.938-20.311-45.158-45.365-45.158c-25.054,0-45.364,20.22-45.364,45.158 c0,24.943,20.31,45.169,45.364,45.169C78.768,110.585,99.078,90.359,99.078,65.416z",
+ "fill": {
+ "paint": "#6E6E6E"
+ },
+ "name": "path",
+ "type": "path"
+ }
+ ],
+ "name": "Group_Backplate",
+ "type": "group"
+ },
+ {
+ "elements": [
+ {
+ "fill": {
+ "paint": {
+ "gradientUnits": "userSpaceOnUse",
+ "stops": [
+ {
+ "offset": "0",
+ "style": {
+ "stopColor": "#808080"
+ }
+ },
+ {
+ "offset": "0.5",
+ "style": {
+ "stopColor": "#DEDEDE"
+ }
+ },
+ {
+ "offset": "1",
+ "style": {
+ "stopColor": "#808080"
+ }
+ }
+ ],
+ "type": "linear",
+ "x1": "47.5767",
+ "x2": "59.8506",
+ "y1": "23.6792",
+ "y2": "23.6792"
+ }
+ },
+ "height": "6.312",
+ "name": "rect",
+ "type": "rect",
+ "width": "12.274",
+ "x": "47.577",
+ "y": "20.523"
+ },
+ {
+ "d": "M93.85,65.31c0-22.063-17.969-39.952-40.136-39.952c-22.166,0-40.135,17.889-40.135,39.952 c0,22.068,17.969,39.963,40.135,39.963C75.881,105.272,93.85,87.378,93.85,65.31z",
+ "fill": {
+ "paint": {
+ "gradientUnits": "userSpaceOnUse",
+ "stops": [
+ {
+ "offset": "0",
+ "style": {
+ "stopColor": "#808080"
+ }
+ },
+ {
+ "offset": "0.5",
+ "style": {
+ "stopColor": "#DEDEDE"
+ }
+ },
+ {
+ "offset": "1",
+ "style": {
+ "stopColor": "#808080"
+ }
+ }
+ ],
+ "type": "linear",
+ "x1": "13.5791",
+ "x2": "93.8496",
+ "y1": "65.3145",
+ "y2": "65.3145"
+ }
+ },
+ "name": "path",
+ "type": "path"
+ }
+ ],
+ "name": "Group_Bannet_Nut",
+ "type": "group"
+ },
+ {
+ "elements": [
+ {
+ "d": "M87.835,65.132c0-18.84-15.276-34.12-34.121-34.12 c-18.844,0-34.121,15.28-34.121,34.12c0,18.841,15.277,34.121,34.121,34.121C72.559,99.253,87.835,83.973,87.835,65.132z",
+ "fill": {},
+ "name": "path",
+ "stroke": {
+ "paint": "#000000",
+ "width": "0.25"
+ },
+ "type": "path"
+ },
+ {
+ "cx": "44.489",
+ "cy": "55.25",
+ "fill": {
+ "paint": {
+ "cx": "43.7754",
+ "cy": "54.0874",
+ "gradientTransform": "matrix(1.3614 0 0 1.3614 -15.1075 -18.3842)",
+ "gradientUnits": "userSpaceOnUse",
+ "r": "14.0759",
+ "stops": [
+ {
+ "offset": "0",
+ "style": {
+ "stopColor": "#D1D1D1"
+ }
+ },
+ {
+ "offset": "1",
+ "style": {}
+ }
+ ],
+ "type": "radial"
+ }
+ },
+ "name": "ellipse",
+ "rx": "19.163",
+ "ry": "18.177",
+ "type": "ellipse"
+ }
+ ],
+ "name": "Group_Pilot_Light_Red",
+ "type": "group"
+ }
+ ],
+ "viewBox": "0 0 107.654 112.5"
+ },
+ "type": "ia.shapes.svg"
+ },
+ {
+ "meta": {
+ "name": "StsPendantLabel_3"
+ },
+ "position": {
+ "height": 32,
+ "width": "auto",
+ "x": 530.3,
+ "y": 171.75
+ },
+ "props": {
+ "style": {
+ "color": "#FFFFFF",
+ "fontSize": 8,
+ "fontWeight": "bold",
+ "textTransform": "uppercase"
+ },
+ "text": "Divert"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Diverter_Selection_Label_0"
+ },
+ "position": {
+ "height": 28,
+ "width": "auto",
+ "x": 479.3,
+ "y": 385
+ },
+ "props": {
+ "style": {
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Jog Speed (RPM)"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "LedDisplay"
+ },
+ "position": {
+ "height": 32,
+ "width": 115.99999999999994,
+ "x": 486.3,
+ "y": 413.5
+ },
+ "propConfig": {
+ "props.value": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21/SO02/SO02_01/VFD/RPM"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "numberFormat": "#,##0"
+ },
+ "type": "ia.display.led-display"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "background-color": "#CFCFCF"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/69a0f1c8c1174057096fab6e75610beeca0680a26be26a9033336cbedcacbfd0 b/.resources/69a0f1c8c1174057096fab6e75610beeca0680a26be26a9033336cbedcacbfd0
new file mode 100644
index 00000000..d894dfea
--- /dev/null
+++ b/.resources/69a0f1c8c1174057096fab6e75610beeca0680a26be26a9033336cbedcacbfd0
@@ -0,0 +1,41 @@
+WITH SCANNERS AS (
+ SELECT
+ MIN(s04_timestamp) AS start_timestamp,
+ MAX(s04_timestamp) AS end_timestamp,
+ 3600/TIMESTAMPDIFF(SECOND, :startDate, :endDate) AS pph_multiplier,
+ sorter,
+ scanner,
+ COUNT(*) AS total,
+ SUM(scanner_status NOT IN ("No Read", "No Code", "Multi Label")) AS good_read,
+ SUM(scanner_status = "No Read") AS no_read,
+ SUM(scanner_status = "No Code") AS no_code,
+ SUM(scanner_status = "Multi Label") AS multi_label
+ FROM package_history
+ WHERE s04_timestamp BETWEEN :startDate AND :endDate
+ GROUP BY sorter, scanner
+ ORDER BY sorter, scanner
+)
+SELECT
+ start_timestamp,
+ end_timestamp,
+ sorter AS sorter,
+ scanner AS scanner,
+ /* Counts: */
+ total AS total_count,
+ good_read AS good_read_count,
+ no_read AS no_read_count,
+ no_code AS no_code_count,
+ multi_label AS multi_label_count,
+ /* PPH: */
+ ROUND(total*pph_multiplier) AS total_pph,
+ ROUND(good_read*pph_multiplier) AS good_read_pph,
+ ROUND(no_read*pph_multiplier) AS no_read_pph,
+ ROUND(no_code*pph_multiplier) AS no_code_pph,
+ ROUND(multi_label*pph_multiplier) AS multi_label_pph,
+ /* Percents: */
+ ROUND(total/total, 4) AS total_percent,
+ ROUND(good_read/total, 4) AS good_read_percent,
+ ROUND(no_read/total, 4) AS no_read_percent,
+ ROUND(no_code/total, 4) AS no_code_percent,
+ ROUND(multi_label/total, 4) AS multi_label_percent
+FROM SCANNERS;
\ No newline at end of file
diff --git a/.resources/6ae7e10baf7e57a00159b5f36371e7276433097292e3685a0cd25ad7901519a0 b/.resources/6ae7e10baf7e57a00159b5f36371e7276433097292e3685a0cd25ad7901519a0
new file mode 100644
index 00000000..c8fa9292
--- /dev/null
+++ b/.resources/6ae7e10baf7e57a00159b5f36371e7276433097292e3685a0cd25ad7901519a0
@@ -0,0 +1,1075 @@
+{
+ "custom": {},
+ "params": {
+ "titleExtra": "0 rows",
+ "usesTimewidget": true
+ },
+ "propConfig": {
+ "params.titleExtra": {
+ "paramDirection": "output",
+ "persistent": true
+ },
+ "params.usesTimewidget": {
+ "binding": {
+ "config": {
+ "expression": "true"
+ },
+ "type": "expr"
+ },
+ "paramDirection": "output",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 324,
+ "width": 1600
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "ScannerHistory"
+ },
+ "position": {
+ "height": "100%",
+ "width": "100%"
+ },
+ "propConfig": {
+ "custom.timewidget": {
+ "binding": {
+ "config": {
+ "path": "session.custom.timewidget"
+ },
+ "type": "property"
+ },
+ "onChange": {
+ "enabled": null,
+ "script": "\tself.forceRefresh()"
+ }
+ }
+ },
+ "props": {
+ "cells": {
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "1px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "1px",
+ "color": "#000",
+ "fontFamily": "Helvetica",
+ "fontSize": "14px"
+ }
+ },
+ "columns": [
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "induct_timestamp",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Induct Timestamp"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": false,
+ "width": 160
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "confirm_timestamp",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Confirm Timestamp"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": "value"
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 160
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "sorter",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Sorter"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 80
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "trackid",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Parcel ID"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 90
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "scanner",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Scanner"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 90
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "imgid",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Img ID"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 90
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "barcode",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Scan Label"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 160
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "scanner_status",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Scan Status"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 50
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "pkg_length",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Length (in)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 50
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "trays",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Trays (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 50
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "assignments",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Assignment"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 50
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "divert_status",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Divert Status"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 50
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "requested_dest",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Req Dest"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 40
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "diverted_dest",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Actual Dest"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 40
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "sort_code",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Sort Code"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 50
+ }
+ ],
+ "filter": {
+ "enabled": true
+ },
+ "pager": {
+ "bottom": false
+ },
+ "rows": {
+ "highlight": {
+ "enabled": false
+ },
+ "striped": {
+ "enabled": false
+ },
+ "style": {
+ "classes": "table/highlight"
+ }
+ },
+ "style": {
+ "fontFamily": "Helvetica",
+ "fontSize": "14px",
+ "fontWeight": "bold"
+ }
+ },
+ "scripts": {
+ "customMethods": [
+ {
+ "name": "forceRefresh",
+ "params": [],
+ "script": "\tRED \u003d lambda x: { \"value\": x, \"style\": { \"background\": \"#FEA3AA\" } }\n\tYELLOW \u003d lambda x: { \"value\": x, \"style\": { \"background\": \"#FAF884\" } }\n\t\n\t# Run query:\n\tdata \u003d system.db.runNamedQuery(\"Status/PackageHistory\", {\n\t\t\"startDate\": self.session.custom.timewidget.startDate,\n\t\t\"endDate\": self.session.custom.timewidget.endDate,\n\t\t\"limit\": \"LIMIT 4000\"\n\t})\n\t# Convert to JSON:\n\tfilteredData \u003d utils.datasetToJSON(data)\n\t# Apply styles:\n\tfor row in filteredData:\n\t\t# Handle sort code:\n\t\tif row[\"sort_code\"] !\u003d \"Success\":\n\t\t\trow[\"sort_code\"] \u003d RED(row[\"sort_code\"])\n\t\t# Handle barcode:\n\t\tif row[\"scanner_status\"] !\u003d \"Good Read\":\n\t\t\trow[\"scanner_status\"] \u003d RED(row[\"scanner_status\"])\n\t\t\trow[\"barcode\"] \u003d RED(row[\"barcode\"])\n\t\t# Handle destinations:\n\t\tif len(row[\"assignments\"]) \u003e 0:\n\t\t\tDESTS \u003d row[\"assignments\"].split(\",\")\n\t\t\tif row[\"requested_dest\"] not in DESTS:\n\t\t\t\trow[\"requested_dest\"] \u003d RED(row[\"requested_dest\"])\n\t\t\telif row[\"requested_dest\"] !\u003d DESTS[0]:\n\t\t\t\trow[\"requested_dest\"] \u003d YELLOW(row[\"requested_dest\"])\n\t\t\tif row[\"diverted_dest\"] not in DESTS:\n\t\t\t\trow[\"diverted_dest\"] \u003d RED(row[\"diverted_dest\"])\n\t\t\telif row[\"diverted_dest\"] !\u003d DESTS[0]:\n\t\t\t\trow[\"diverted_dest\"] \u003d YELLOW(row[\"diverted_dest\"])\n\t\telse:\n\t\t\trow[\"assignments\"] \u003d RED(row[\"assignments\"])\n\t# Set title extra:\n\tcou \u003d utils.getRowCount(filteredData)\n\tast \u003d \"*\" if cou \u003e\u003d 4000 else \"\"\n\tself.view.params.titleExtra \u003d \"{:n}{} rows\".format(cou, ast)\n\t# Set data\n\tself.props.data \u003d filteredData"
+ }
+ ],
+ "extensionFunctions": null,
+ "messageHandlers": [
+ {
+ "messageType": "export-data",
+ "pageScope": true,
+ "script": "\tutils.downloadCSV(self, \"Scanner History\")",
+ "sessionScope": false,
+ "viewScope": false
+ }
+ ]
+ },
+ "type": "ia.display.table"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tdata \u003d system.db.runNamedQuery(\"Status/PackageHistory\", {\n\t\t\"startDate\": self.session.custom.timewidget.startDate,\n\t\t\"endDate\": self.session.custom.timewidget.endDate,\n\t\t\"limit\": \" \"\n\t})\n\tutils.downloadCSV(data, \"Scanner History\")"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button"
+ },
+ "position": {
+ "height": 30,
+ "width": 100,
+ "x": "calc(100% - 105px)",
+ "y": 5
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "path": "session.props.auth.user.roles"
+ },
+ "transforms": [
+ {
+ "code": "\troles \u003d [\"Administrator\", \"Developer\", \"Supervisor\", \"Maintenance\"]\n\treturn value !\u003d None and len(value) \u003e 0 and len([i for i in value if i in roles]) \u003e 0",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Export All"
+ },
+ "type": "ia.input.button"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/6b846e67ed47e87c0171434b29407f27c18277fa031e40686aab70185c3c4efa b/.resources/6b846e67ed47e87c0171434b29407f27c18277fa031e40686aab70185c3c4efa
new file mode 100644
index 00000000..5d104cc9
--- /dev/null
+++ b/.resources/6b846e67ed47e87c0171434b29407f27c18277fa031e40686aab70185c3c4efa
@@ -0,0 +1,13 @@
+{
+ "base": {
+ "style": {}
+ },
+ "variants": [
+ {
+ "pseudo": "hover",
+ "style": {
+ "backgroundColor": "#C7DCED"
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.resources/6c3dfac11ecefcb1bdcfaa1e73341bc020a4426a4adbf382f82812887ba5417e b/.resources/6c3dfac11ecefcb1bdcfaa1e73341bc020a4426a4adbf382f82812887ba5417e
new file mode 100644
index 00000000..c4c064b6
--- /dev/null
+++ b/.resources/6c3dfac11ecefcb1bdcfaa1e73341bc020a4426a4adbf382f82812887ba5417e
@@ -0,0 +1,7 @@
+{
+ "base": {
+ "style": {
+ "backgroundColor": "#D5D5D5"
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/6ccfc01a8e64c6fbc013b201010a3273755d8d4e090a792e16ab662ef31b3031 b/.resources/6ccfc01a8e64c6fbc013b201010a3273755d8d4e090a792e16ab662ef31b3031
new file mode 100644
index 00000000..f0702a61
--- /dev/null
+++ b/.resources/6ccfc01a8e64c6fbc013b201010a3273755d8d4e090a792e16ab662ef31b3031
@@ -0,0 +1,18 @@
+WITH UNIQUE_ALARMS AS (
+SELECT
+ MAX(id) AS id,
+ source
+FROM alarm_events
+GROUP BY source
+)
+SELECT dalarm.displaypath AS description
+FROM UNIQUE_ALARMS u
+/* Lookup Alarm */
+JOIN alarm_events dalarm ON u.id = dalarm.id
+/* Lookup Class */
+JOIN alarm_event_data dclass ON u.id = dclass.id AND dclass.propname = "Class"
+/* Lookup Device */
+JOIN alarm_event_data ddevice ON u.id = ddevice.id AND ddevice.propname = "Device"
+WHERE dclass.strvalue IN ("Error", "Warning")
+ AND ddevice.strvalue NOT IN ("SorterA", "SorterB", "SorterC", "Ignition")
+GROUP BY description;
\ No newline at end of file
diff --git a/.resources/6dfb903a6a996267e77063dbbc0fb6adbf26de23ff509aedeb5d2372791fe42a b/.resources/6dfb903a6a996267e77063dbbc0fb6adbf26de23ff509aedeb5d2372791fe42a
new file mode 100644
index 00000000..32bbcdf5
--- /dev/null
+++ b/.resources/6dfb903a6a996267e77063dbbc0fb6adbf26de23ff509aedeb5d2372791fe42a
@@ -0,0 +1,1097 @@
+{
+ "custom": {},
+ "params": {
+ "meta": {
+ "name": "VFD"
+ },
+ "props": {
+ "config": {
+ "enableHighlight": true,
+ "isClickable": false
+ },
+ "status": {
+ "color": {
+ "left": "#B3B3B3",
+ "right": "#D3D3D3"
+ },
+ "showAlways": true,
+ "tagPath": "[default]MCP03/RO02/RO02_03/VFD",
+ "tooltip": ""
+ }
+ }
+ },
+ "propConfig": {
+ "params.meta": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.meta.name": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 500,
+ "width": 500
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\ttagPath \u003d self.view.params.props.status.tagPath\n\ttags \u003d [\n\t\ttagPath + \"/SetManualRun\",\n\t\ttagPath + \"/SetManualStop\",\n\t\ttagPath + \"/SetManualSlow\"\n\t]\n\tvalues \u003d [0, 1, 0]\n\tsystem.tag.writeAsync(tags, values)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "btnManualOff"
+ },
+ "position": {
+ "height": 70,
+ "width": 85,
+ "x": 348.5,
+ "y": 412.5
+ },
+ "propConfig": {
+ "meta.cActive": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/SetManualStop"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, false)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/SetManualEnable"
+ },
+ "transforms": [
+ {
+ "expression": "try({value}, false)\r\n\u0026\u0026isAuthorized(false,\r\n\t\"Authenticated/Roles/Administrator\",\r\n\t\"Authenticated/Roles/Developer\",\r\n\t\"Authenticated/Roles/Supervisor\",\r\n\t\"Authenticated/Roles/Maintenance\"\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.style.classes": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/SetManualStop"
+ },
+ "transforms": [
+ {
+ "expression": "try({value}, false)",
+ "type": "expression"
+ },
+ {
+ "fallback": "Buttons/Grey",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "Buttons/Yellow"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {},
+ "text": "OFF",
+ "textStyle": {
+ "fontSize": "17px"
+ }
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\ttagPath \u003d self.view.params.props.status.tagPath\n\ttags \u003d [\n\t\ttagPath + \"/SetManualStop\",\n\t\ttagPath + \"/SetManualRun\",\n\t\ttagPath + \"/SetManualSlow\"\n\t]\n\tvalues \u003d [0, 1, 1]\n\tsystem.tag.writeAsync(tags, values)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "btnManualSlow"
+ },
+ "position": {
+ "height": 70,
+ "width": 85,
+ "x": 259.5,
+ "y": 412.5
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/SetManualEnable"
+ },
+ "transforms": [
+ {
+ "expression": "try({value}, false)\r\n\u0026\u0026isAuthorized(false,\r\n\t\"Authenticated/Roles/Administrator\",\r\n\t\"Authenticated/Roles/Developer\",\r\n\t\"Authenticated/Roles/Supervisor\",\r\n\t\"Authenticated/Roles/Maintenance\"\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.style.classes": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/SetManualSlow"
+ },
+ "transforms": [
+ {
+ "expression": "try({value}, false)",
+ "type": "expression"
+ },
+ {
+ "fallback": "Buttons/Grey",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "Buttons/Yellow"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {},
+ "text": "SLOW",
+ "textStyle": {
+ "fontSize": "17px"
+ }
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\ttagPath \u003d self.view.params.props.status.tagPath\n\ttags \u003d [tagPath + \"/SetManualEnable\"]\n\tvalues \u003d [1]\n\tsystem.tag.writeAsync(tags, values)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "btnManual"
+ },
+ "position": {
+ "height": 70,
+ "width": 263,
+ "x": 170.5,
+ "y": 332.5
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/SetManualEnable"
+ },
+ "transforms": [
+ {
+ "expression": "try({value}\u003d{value}, false)\r\n\u0026\u0026isAuthorized(false,\r\n\t\"Authenticated/Roles/Administrator\",\r\n\t\"Authenticated/Roles/Developer\",\r\n\t\"Authenticated/Roles/Supervisor\",\r\n\t\"Authenticated/Roles/Maintenance\"\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.style.classes": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/SetManualEnable"
+ },
+ "transforms": [
+ {
+ "expression": "try({value}, false)",
+ "type": "expression"
+ },
+ {
+ "fallback": "Buttons/Grey",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "Buttons/Blue"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {},
+ "text": "MANUAL",
+ "textStyle": {
+ "fontSize": "18px"
+ }
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "Label_13"
+ },
+ "position": {
+ "height": 25,
+ "width": 190,
+ "x": 80,
+ "y": 285
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Last Fault Code:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbLastCode"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 285
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Last_Code_Text"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \u0027Unknown\u0027)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\ttagPath \u003d self.view.params.props.status.tagPath\n\ttags \u003d [\n\t\ttagPath + \"/SetManualStop\",\n\t\ttagPath + \"/SetManualRun\",\n\t\ttagPath + \"/SetManualSlow\"\n\t]\n\tvalues \u003d [0, 1, 0]\n\tsystem.tag.writeAsync(tags, values)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "btnManualOn"
+ },
+ "position": {
+ "height": 70,
+ "width": 85,
+ "x": 170.5,
+ "y": 412.5
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/SetManualEnable"
+ },
+ "transforms": [
+ {
+ "expression": "try({value}, false)\r\n\u0026\u0026isAuthorized(false,\r\n\t\"Authenticated/Roles/Administrator\",\r\n\t\"Authenticated/Roles/Developer\",\r\n\t\"Authenticated/Roles/Supervisor\",\r\n\t\"Authenticated/Roles/Maintenance\"\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.style.classes": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/SetManualRun"
+ },
+ "transforms": [
+ {
+ "expression": " try({value}, false)\r\n\u0026\u0026 {../btnManualSlow.props.style.classes} \u003d \"Buttons/Grey\"",
+ "type": "expression"
+ },
+ {
+ "fallback": "Buttons/Grey",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "Buttons/Green"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {},
+ "text": "Nominal",
+ "textStyle": {
+ "fontSize": "17px"
+ }
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "Label_11"
+ },
+ "position": {
+ "height": 25,
+ "width": 150,
+ "x": 120,
+ "y": 250
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Status Code:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbStatusCode"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 250
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Status_Code"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \u0027Unknown\u0027)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_9"
+ },
+ "position": {
+ "height": 25,
+ "width": 150,
+ "x": 120,
+ "y": 215
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Speed (RPM):"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbFrequency"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 215
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/RPM"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \u0027Unknown\u0027)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#AAAAAA",
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\ttagPath \u003d self.view.params.props.status.tagPath\n\ttags \u003d [tagPath + \"/SetManualEnable\"]\n\tvalues \u003d [0]\n\tsystem.tag.writeAsync(tags, values)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "btnAuto"
+ },
+ "position": {
+ "height": 150,
+ "width": 95,
+ "x": 66.5,
+ "y": 332.5
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/SetManualEnable"
+ },
+ "transforms": [
+ {
+ "expression": "try({value}\u003d{value}, false)\r\n\u0026\u0026isAuthorized(false,\r\n\t\"Authenticated/Roles/Administrator\",\r\n\t\"Authenticated/Roles/Developer\",\r\n\t\"Authenticated/Roles/Supervisor\",\r\n\t\"Authenticated/Roles/Maintenance\"\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.style.classes": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/SetManualEnable"
+ },
+ "transforms": [
+ {
+ "expression": "try({value}, true)",
+ "type": "expression"
+ },
+ {
+ "fallback": "Buttons/Grey",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": false,
+ "output": "Buttons/Green"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {},
+ "text": "AUTO",
+ "textStyle": {
+ "fontSize": "18px"
+ }
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "Label_7"
+ },
+ "position": {
+ "height": 25,
+ "width": 150,
+ "x": 120,
+ "y": 180
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Speed (FPM):"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbSpeed"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 180
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Speed"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \u0027Unknown\u0027)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#AAAAAA",
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_5"
+ },
+ "position": {
+ "height": 25,
+ "width": 235,
+ "x": 35,
+ "y": 145
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Motor Current (Amps):"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbAmps"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 145
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Amps"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \u0027Unknown\u0027)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#AAAAAA",
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_3"
+ },
+ "position": {
+ "height": 25,
+ "width": 125,
+ "x": 145,
+ "y": 110
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "IP Address:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbIPAddress"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 110
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/IPAddr"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \u0027Unknown\u0027)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "VFD"
+ },
+ "position": {
+ "height": 64,
+ "width": 64,
+ "x": 67.5,
+ "y": 17.5
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "expression": "try(\r\n\tjsonSet({value}, \"showAlways\", true),\r\n\t{view.params.props.status}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "Label_15"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 40
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Status:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbStatus"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 40
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "code": "\treturn utils.extractStatus(value)",
+ "type": "script"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_1"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 5
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Name: "
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbName"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 5
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.LabelFull"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \u0027\u0027)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_12"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 75
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Panel:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbStatus_0"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 75
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.OPC_Server"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \"Unknown\")",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "background-color": "#CFCFCF"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/6eb217cfaef275db08b608cd931d1ef78941e5135b59ec81ab7d4fda7612eba3 b/.resources/6eb217cfaef275db08b608cd931d1ef78941e5135b59ec81ab7d4fda7612eba3
new file mode 100644
index 00000000..c1abb0e9
--- /dev/null
+++ b/.resources/6eb217cfaef275db08b608cd931d1ef78941e5135b59ec81ab7d4fda7612eba3
@@ -0,0 +1,40 @@
+WITH SORTERS AS (
+ SELECT
+ DATE_FORMAT(MIN(s04_timestamp), "%Y-%m-%d %H:%i:00") AS time,
+ COUNT(*) AS total,
+ /* PPH Data */
+ SUM(sort_code="Success") AS success,
+ SUM(sort_code IN ("Dest Invalid", "Dest None", "Underutilized")) AS awcs,
+ SUM(sort_code IN ("Dest Disabled", "Dest Full", "Dim Error", "Unexpected", "Weight Err")) AS operational,
+ SUM(sort_code IN ("Dest Fault", "Div Fail", "Gap Err", "Lost", "Rate High", "Track Err", "Unknown", "Unsafe")) AS machine,
+ SUM(sort_code IN ("No Read", "No Code", "Multi Label")) AS scanner,
+ /* Problem Solve Data */
+ SUM(sort_code="No Read") AS no_read,
+ SUM(sort_code="No Code") AS no_code,
+ SUM(sort_code="Multi Label") AS multi_label,
+ /* Sorter Error Data */
+ SUM(sort_code="Gap Err") AS gap_err,
+ SUM(sort_code="Div Fail") AS div_fail,
+ SUM(sort_code="Dest None") AS dest_none,
+ SUM(sort_code="Lost") AS lost
+ FROM package_history
+ WHERE s04_timestamp BETWEEN :startDate AND :endDate
+ AND sorter = :sorter
+ GROUP BY DATE_FORMAT(s04_timestamp, "%Y-%m-%d %H:%i:00")
+ ORDER BY DATE_FORMAT(s04_timestamp, "%Y-%m-%d %H:%i:00")
+)
+SELECT
+ time,
+ /* PPH: */
+ ROUND((SUM((total - machine - scanner)*60) OVER w)/(:movAvgMin+1)) AS total_pph,
+ /* Problem Solve Percents: */
+ ROUND((SUM(no_read/total) OVER w)/(:movAvgMin+1), 4) AS no_read_percent,
+ ROUND((SUM(no_code/total) OVER w)/(:movAvgMin+1), 4) AS no_code_percent,
+ ROUND((SUM(multi_label/total) OVER w)/(:movAvgMin+1), 4) AS multi_label_percent,
+ /* Sorter Error Percents: */
+ ROUND((SUM(gap_err/total) OVER w)/(:movAvgMin+1), 4) AS gap_err_percent,
+ ROUND((SUM(div_fail/total) OVER w)/(:movAvgMin+1), 4) AS div_fail_percent,
+ ROUND((SUM(dest_none/total) OVER w)/(:movAvgMin+1), 4) AS dest_none_percent,
+ ROUND((SUM(lost/total) OVER w)/(:movAvgMin+1), 4) AS lost_percent
+FROM SORTERS
+WINDOW w AS (ORDER BY STR_TO_DATE(time, "%Y-%m-%d %H:%i:00") RANGE BETWEEN INTERVAL :movAvgMin MINUTE PRECEDING AND CURRENT ROW);
\ No newline at end of file
diff --git a/.resources/6f09fcfd0835066f388bfdd2f5cab0be2b1ff9b6f1c3bd9ce20ac34f6aa91784 b/.resources/6f09fcfd0835066f388bfdd2f5cab0be2b1ff9b6f1c3bd9ce20ac34f6aa91784
new file mode 100644
index 00000000..23eca822
--- /dev/null
+++ b/.resources/6f09fcfd0835066f388bfdd2f5cab0be2b1ff9b6f1c3bd9ce20ac34f6aa91784
@@ -0,0 +1,104 @@
+import os
+import shutil
+from com.inductiveautomation.ignition.common.model import ApplicationScope
+
+os_symlink = getattr(os, "symlink", None)
+if callable(os_symlink):
+ pass
+else:
+ def symlink_ms(source, link_name):
+ import ctypes
+ csl = ctypes.windll.kernel32.CreateSymbolicLinkW
+ csl.argtypes = (ctypes.c_wchar_p, ctypes.c_wchar_p, ctypes.c_uint32)
+ csl.restype = ctypes.c_ubyte
+ flags = 1 if os.path.isdir(source) else 0
+ if csl(link_name, source, flags) == 0:
+ raise ctypes.WinError()
+ os.symlink = symlink_ms
+
+#############
+### Constants
+#############
+WP = os.path.join(os.getcwd(), "webserver", "webapps", "main", "documents")
+DP = WP#"D:\\Ignition\\Documents"
+#if not os.path.exists("D:\\"):
+ # Not on actual production server, so store locally:
+ #DP = "Ignition\\Documents"
+if ApplicationScope.isGateway(ApplicationScope.getGlobalScope()) and not os.path.exists(DP):
+ os.makedirs(DP)
+ #os.symlink(DP, WP)
+ # The above symlink doesn't work on windows due to process permissions. Need to manually set up:
+ # mklink /J "C:\\Program Files\\Inductive Automation\\Ignition\\webserver\\webapps\\main\\documents" D:\\Ignition\\Documents
+
+PDF_ICON = {
+ "path": "material/picture_as_pdf",
+ "color": "#869DB1",
+ "style": {}
+}
+
+
+#######################################################
+#######################################################
+#######################################################
+#### Functions
+#######################################################
+
+def getFileTree(path, phantomPath=""):
+ files = []
+ for f in os.listdir(path):
+ filepath = os.path.join(path, f)
+ filephantompath = os.path.join(phantomPath, f)
+ # Check what type of file:
+ if os.path.isfile(filepath):
+ # Add leaf node (file) if pdf:
+ if f.endswith(".pdf"):
+ files.append({
+ "label": f,
+ "expanded": False,
+ "icon": PDF_ICON,
+ "data": filephantompath,
+ "items": []
+ })
+ elif os.path.isdir(filepath):
+ # Add folder:
+ files.append({
+ "label": f,
+ "expanded": False,
+ "data": "",
+ "items": getFileTree(filepath, filephantompath)
+ })
+ # Return list:
+ return files
+
+
+def getDocuments():
+ # Return list:
+ return getFileTree(DP)
+
+def createFolder(folderpath):
+ if not os.path.exists(folderpath):
+ os.makedirs(os.path.join(DP, folderpath))
+
+def uploadDocument(file, folder=""):
+ filename = os.path.join(DP, folder, file.name)
+ if filename[-4:].lower() <> ".pdf":
+ system.perspective("File extension not compatible!\r\nThe supported extensions are: pdf")
+ else:
+ filepath = os.path.join(DP, filename)
+ #if system.file.fileExists(filepath):
+ #return "Config file already exists!\r\nYou must delete the config before uploading over it."
+ file.copyTo(filepath)
+ #system.file.writeFile(filepath, contents, False)
+
+def deleteDocuments(filenames):
+ for filename in filenames:
+ filepath = os.path.join(DP, filename)
+ try:
+ if os.path.isfile(filepath):
+ os.remove(filepath)
+ elif os.path.isdir(filepath):
+ shutil.rmtree(filepath)
+ else:
+ pass#return "Config file doesn't exist!"
+ except:
+ system.perspective.print("Failed to delete "+filename)
\ No newline at end of file
diff --git a/.resources/6f871948781c6bee2a2a9bdf77120185f9a659920b0fbdda9819ac6b554285e4 b/.resources/6f871948781c6bee2a2a9bdf77120185f9a659920b0fbdda9819ac6b554285e4
new file mode 100644
index 00000000..83e984f7
--- /dev/null
+++ b/.resources/6f871948781c6bee2a2a9bdf77120185f9a659920b0fbdda9819ac6b554285e4
@@ -0,0 +1,535 @@
+{
+ "custom": {},
+ "params": {},
+ "props": {
+ "defaultSize": {
+ "height": 2529,
+ "width": 4892
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "HSS_Inbound"
+ },
+ "position": {
+ "height": 651,
+ "width": 1687,
+ "x": 122,
+ "y": 1868.22
+ },
+ "props": {
+ "path": "Windows/Graphics/Templates/HSS_Inbound",
+ "style": {
+ "classes": "painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "HSS_Singulator"
+ },
+ "position": {
+ "height": 1601,
+ "width": 949,
+ "x": 10,
+ "y": 301
+ },
+ "props": {
+ "path": "Windows/Graphics/Templates/HSS_Singulator",
+ "style": {
+ "classes": "painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "HSS_Sorter"
+ },
+ "position": {
+ "height": 1973,
+ "width": 4223,
+ "x": 522,
+ "y": 10
+ },
+ "props": {
+ "path": "Windows/Graphics/Templates/HSS_Sorter",
+ "style": {
+ "classes": "painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "OXD_Inbound"
+ },
+ "position": {
+ "height": 800,
+ "width": 636,
+ "x": 1802,
+ "y": 1450
+ },
+ "props": {
+ "path": "Windows/Graphics/Templates/OXD_Inbound",
+ "style": {
+ "classes": "painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "OXD_Singulator"
+ },
+ "position": {
+ "height": 508,
+ "width": 1103,
+ "x": 2076,
+ "y": 1032
+ },
+ "props": {
+ "path": "Windows/Graphics/Templates/OXD_Singulator",
+ "style": {
+ "classes": "painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "OXD_Sorter"
+ },
+ "position": {
+ "height": 517,
+ "width": 1434,
+ "x": 2983,
+ "y": 1033
+ },
+ "props": {
+ "path": "Windows/Graphics/Templates/OXD_Sorter",
+ "style": {
+ "classes": "painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "OXD_Problem_Solve"
+ },
+ "position": {
+ "height": 286,
+ "width": 928,
+ "x": 2530,
+ "y": 1125
+ },
+ "props": {
+ "path": "Windows/Graphics/Templates/OXD_Problem_Solve",
+ "style": {
+ "classes": "painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "Runout"
+ },
+ "position": {
+ "height": 1467,
+ "width": 709,
+ "x": 4172,
+ "y": 841
+ },
+ "props": {
+ "path": "Windows/Graphics/Templates/Runout",
+ "style": {
+ "classes": "painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NavButton_HSS_Inbound"
+ },
+ "position": {
+ "height": 40,
+ "width": 106,
+ "x": 1017,
+ "y": 1740
+ },
+ "props": {
+ "params": {
+ "enableTooltip": true,
+ "label": null,
+ "tagPath": "[default]HSSInboundStatus",
+ "view": ""
+ },
+ "path": "Templates/Buttons/NavButton",
+ "style": {
+ "transform": "scale(4)"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NavButton_HSS_Singulator"
+ },
+ "position": {
+ "height": 40,
+ "width": 125,
+ "x": 497,
+ "y": 920
+ },
+ "props": {
+ "params": {
+ "enableTooltip": true,
+ "label": null,
+ "tagPath": "[default]HSSSingulatorStatus",
+ "view": ""
+ },
+ "path": "Templates/Buttons/NavButton",
+ "style": {
+ "transform": "scale(4)"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NavButton_HSS_Sorter"
+ },
+ "position": {
+ "height": 40,
+ "width": 95,
+ "x": 1760,
+ "y": 120
+ },
+ "props": {
+ "params": {
+ "enableTooltip": true,
+ "label": null,
+ "tagPath": "[default]HSSSorterStatus",
+ "view": ""
+ },
+ "path": "Templates/Buttons/NavButton",
+ "style": {
+ "transform": "scale(4)"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NavButton_OXD_Inbound"
+ },
+ "position": {
+ "height": 40,
+ "width": 110,
+ "x": 2537,
+ "y": 2000
+ },
+ "props": {
+ "params": {
+ "enableTooltip": true,
+ "label": null,
+ "tagPath": "[default]OXDInboundStatus",
+ "view": ""
+ },
+ "path": "Templates/Buttons/NavButton",
+ "style": {
+ "transform": "scale(4)"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NavButton_OXD_Singulator"
+ },
+ "position": {
+ "height": 40,
+ "width": 128,
+ "x": 2797,
+ "y": 1640
+ },
+ "props": {
+ "params": {
+ "enableTooltip": true,
+ "label": null,
+ "tagPath": "[default]OXDSingulatorStatus",
+ "view": ""
+ },
+ "path": "Templates/Buttons/NavButton",
+ "style": {
+ "transform": "scale(4)"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NavButton_OXD_Sorter"
+ },
+ "position": {
+ "height": 40,
+ "width": 97,
+ "x": 3774,
+ "y": 1266
+ },
+ "props": {
+ "params": {
+ "enableTooltip": true,
+ "label": null,
+ "tagPath": "[default]OXDSorterStatus",
+ "view": ""
+ },
+ "path": "Templates/Buttons/NavButton",
+ "style": {
+ "transform": "scale(4)"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NavButton_OXD_Problem_Solve"
+ },
+ "position": {
+ "height": 40,
+ "width": 150,
+ "x": 3007,
+ "y": 910
+ },
+ "props": {
+ "params": {
+ "enableTooltip": true,
+ "label": null,
+ "tagPath": "[default]OXDProblemSolveStatus",
+ "view": ""
+ },
+ "path": "Templates/Buttons/NavButton",
+ "style": {
+ "transform": "scale(4)"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NavButton_Runout"
+ },
+ "position": {
+ "height": 40,
+ "width": 74,
+ "x": 4607,
+ "y": 1662
+ },
+ "props": {
+ "params": {
+ "enableTooltip": true,
+ "label": null,
+ "tagPath": "[default]RunoutStatus",
+ "view": ""
+ },
+ "path": "Templates/Buttons/NavButton",
+ "style": {
+ "transform": "scale(4)"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "events": {
+ "system": {
+ "onStartup": {
+ "config": {
+ "script": "\tif system.perspective.isAuthorized(True, [\u0027Authenticated/Roles/Maintenance\u0027]):\n\t\tself.meta.visible \u003d True\n\telse:\n\t\tself.meta.visible \u003d False"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "StartStopSystem",
+ "visible": false
+ },
+ "position": {
+ "height": 40,
+ "width": 125,
+ "x": 1190,
+ "y": 982
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "label": "",
+ "tagPaths": [
+ "[default]MCP01/MCP01",
+ "[default]MCP02/MCP02",
+ "[default]MCP03/MCP03",
+ "[default]MCP20/MCP20",
+ "[default]MCP21/MCP21"
+ ],
+ "view": "Windows/Graphics/Overview"
+ },
+ "path": "Templates/Buttons/StartStopSystem",
+ "style": {
+ "transform": "scale(4)"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "events": {
+ "system": {
+ "onStartup": {
+ "config": {
+ "script": "\tif system.perspective.isAuthorized(True, [\u0027Authenticated/Roles/Maintenance\u0027]):\n\t\tself.meta.visible \u003d True\n\telse:\n\t\tself.meta.visible \u003d False"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "StartStopHSS",
+ "visible": false
+ },
+ "position": {
+ "height": 40,
+ "width": 125,
+ "x": 1190,
+ "y": 1172
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "label": "",
+ "tagPath": "[default]HSSStatus",
+ "tagPaths": [
+ "[default]MCP02/MCP02",
+ "[default]MCP03/MCP03",
+ "[default]MCP21/MCP21"
+ ],
+ "view": "Windows/Graphics/Overview"
+ },
+ "path": "Templates/Buttons/StartStopSystem",
+ "style": {
+ "transform": "scale(4)"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "events": {
+ "system": {
+ "onStartup": {
+ "config": {
+ "script": "\tif system.perspective.isAuthorized(True, [\u0027Authenticated/Roles/Maintenance\u0027]):\n\t\t\tself.meta.visible \u003d True\n\telse:\n\t\t\tself.meta.visible \u003d False"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "StartStopOXD",
+ "visible": false
+ },
+ "position": {
+ "height": 40,
+ "width": 125,
+ "x": 1190,
+ "y": 1362
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "label": "",
+ "tagPath": "[default]OXDStatus",
+ "tagPaths": [
+ "[default]MCP01/MCP01",
+ "[default]MCP20/MCP20"
+ ],
+ "view": "Windows/Graphics/Overview"
+ },
+ "path": "Templates/Buttons/StartStopSystem",
+ "style": {
+ "transform": "scale(4)"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tsystem.tag.writeBlocking(\"[default]MCP21/Verify_Inspection\", 1)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button"
+ },
+ "position": {
+ "height": 144,
+ "width": 344,
+ "x": 387.5,
+ "y": 678
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "expression": "isAuthorized(true, \u0027Authenticated/Roles/Administrator\u0027) ||\r\nisAuthorized(true, \u0027Authenticated/Roles/Maintenance\u0027)"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#FF0000",
+ "color": "#FF0000"
+ },
+ "text": "Shoe Pin Fault Reset",
+ "textStyle": {
+ "backgroundColor": "#FF0000",
+ "borderColor": "#FF0000",
+ "color": "#000000",
+ "fontSize": 28,
+ "outlineColor": "#FF0000"
+ }
+ },
+ "type": "ia.input.button"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/6f8bc9136f57196c124e4a8fe1e4d1c6dbb9bbca67bb1aa721b929a0e5f4a2f2 b/.resources/6f8bc9136f57196c124e4a8fe1e4d1c6dbb9bbca67bb1aa721b929a0e5f4a2f2
new file mode 100644
index 00000000..311a0cc0
--- /dev/null
+++ b/.resources/6f8bc9136f57196c124e4a8fe1e4d1c6dbb9bbca67bb1aa721b929a0e5f4a2f2
@@ -0,0 +1,38 @@
+WITH SORTERS AS (
+ SELECT
+ DATE_FORMAT(MIN(s04_timestamp), "%Y-%m-%d %H:%i:00") AS time,
+ COUNT(*) AS total,
+ SUM(sort_code="Success") AS success,
+ SUM(sort_code IN ("Dest Invalid", "Dest None", "Underutilized")) AS awcs,
+ SUM(sort_code IN ("Dest Disabled", "Dest Full", "Dim Error", "Unexpected", "Weight Err")) AS operational,
+ SUM(sort_code IN ("Dest Fault", "Div Fail", "Gap Err", "Lost", "Rate High", "Track Err", "Unknown", "Unsafe")) AS machine,
+ SUM(sort_code IN ("No Read", "No Code", "Multi Label")) AS scanner
+ FROM package_history
+ WHERE s04_timestamp BETWEEN :startDate AND :endDate
+ AND sorter = :sorter
+ GROUP BY DATE_FORMAT(s04_timestamp, "%Y-%m-%d %H:%i:00")
+ ORDER BY DATE_FORMAT(s04_timestamp, "%Y-%m-%d %H:%i:00")
+)
+SELECT
+ time,
+ /* Counts: */
+ total AS total_count,
+ success AS success_count,
+ awcs AS awcs_issues_count,
+ operational AS operational_issues_count,
+ machine AS machine_issues_count,
+ scanner AS scanner_issues_count,
+ /* PPH: */
+ ROUND(total*60) AS total_pph,
+ ROUND(success*60) AS success_pph,
+ ROUND(awcs*60) AS awcs_issues_pph,
+ ROUND(operational*60) AS operational_issues_pph,
+ ROUND(machine*60) AS machine_issues_pph,
+ ROUND(scanner*60) AS scanner_issues_pph,
+ /* Percents: */
+ ROUND(success/total, 4) AS success_percent,
+ ROUND(awcs/total, 4) AS awcs_issues_percent,
+ ROUND(operational/total, 4) AS operational_issues_percent,
+ ROUND(machine/total, 4) AS machine_issues_percent,
+ ROUND(scanner/total, 4) AS scanner_issues_percent
+FROM SORTERS;
\ No newline at end of file
diff --git a/.resources/71a967ac9cb07505dd2dbd64f1dbb9101fc923e9ee2e137bc2b45b87f41626bd b/.resources/71a967ac9cb07505dd2dbd64f1dbb9101fc923e9ee2e137bc2b45b87f41626bd
new file mode 100644
index 00000000..90afc57c
--- /dev/null
+++ b/.resources/71a967ac9cb07505dd2dbd64f1dbb9101fc923e9ee2e137bc2b45b87f41626bd
@@ -0,0 +1,6838 @@
+{
+ "custom": {},
+ "params": {},
+ "props": {
+ "defaultSize": {
+ "height": 515,
+ "width": 1434
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "PS01_08"
+ },
+ "position": {
+ "height": 20,
+ "width": 118,
+ "y": 434
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_08/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_09"
+ },
+ "position": {
+ "height": 20,
+ "width": 18,
+ "x": 117,
+ "y": 434
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_09/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_10"
+ },
+ "position": {
+ "height": 20,
+ "width": 18,
+ "x": 134,
+ "y": 434
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_10/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_11"
+ },
+ "position": {
+ "height": 20,
+ "width": 18,
+ "x": 151,
+ "y": 434
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_11/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_12"
+ },
+ "position": {
+ "height": 20,
+ "width": 18,
+ "x": 168,
+ "y": 434
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_12/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_13"
+ },
+ "position": {
+ "height": 20,
+ "width": 18,
+ "x": 185,
+ "y": 434
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_13/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_14"
+ },
+ "position": {
+ "height": 20,
+ "width": 18,
+ "x": 202,
+ "y": 434
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_14/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_15"
+ },
+ "position": {
+ "height": 20,
+ "width": 57,
+ "x": 219,
+ "y": 434
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_15/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_16"
+ },
+ "position": {
+ "height": 20,
+ "width": 57,
+ "x": 275,
+ "y": 434
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_16/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_17"
+ },
+ "position": {
+ "height": 20,
+ "width": 18,
+ "x": 331,
+ "y": 434
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_17/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_18"
+ },
+ "position": {
+ "height": 20,
+ "width": 18,
+ "x": 348,
+ "y": 434
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_18/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_19"
+ },
+ "position": {
+ "height": 20,
+ "width": 18,
+ "x": 365,
+ "y": 434
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_19/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_20"
+ },
+ "position": {
+ "height": 20,
+ "width": 18,
+ "x": 382,
+ "y": 434
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_20/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_21"
+ },
+ "position": {
+ "height": 20,
+ "width": 18,
+ "x": 399,
+ "y": 434
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_21/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RE02_01"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 320,
+ "x": 1232,
+ "y": 376
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_01/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RE02_03"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 550,
+ "x": 1213,
+ "y": 37
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_03/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RE02_04"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 550,
+ "x": 664,
+ "y": 37
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_04/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "SO01_01"
+ },
+ "position": {
+ "height": 20,
+ "width": 997,
+ "x": 416,
+ "y": 434
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH01"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 451,
+ "y": 435
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_CH01/CH/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false,
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH68"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 1214,
+ "y": 453
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_CH68/CH/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false,
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH69"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 1232,
+ "y": 435
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_CH69/CH/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false,
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RE02_02CH"
+ },
+ "position": {
+ "height": 40,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 40,
+ "x": 1212,
+ "y": 57
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "side": "left",
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyorcurve"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH02"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 471,
+ "y": 453
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH02"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH03"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 506,
+ "y": 435
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH03"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH04"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 526,
+ "y": 453
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH04"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH05"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 527,
+ "y": 435
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH05"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH06"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 547,
+ "y": 453
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH06"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH07"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 548,
+ "y": 435
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH07"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH08"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 568,
+ "y": 453
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH08"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH09"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 569,
+ "y": 435
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH09"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH10"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 589,
+ "y": 453
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH10"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH11"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 590,
+ "y": 435
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH11"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH12"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 610,
+ "y": 453
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH12"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH13"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 611,
+ "y": 435
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH13"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH14"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 631,
+ "y": 453
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH14"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH15"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 632,
+ "y": 435
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH15"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH16"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 652,
+ "y": 453
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH16"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH17"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 653,
+ "y": 435
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH17"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH18"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 673,
+ "y": 453
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH18"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH19"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 674,
+ "y": 435
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH19"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH20"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 694,
+ "y": 453
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH20"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH21"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 695,
+ "y": 435
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH21"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH22"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 715,
+ "y": 453
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH22"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH23"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 716,
+ "y": 435
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH23"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH24"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 736,
+ "y": 453
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH24"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH25"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 737,
+ "y": 435
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH25"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH26"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 757,
+ "y": 453
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH26"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH27"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 758,
+ "y": 435
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH27"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH28"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 778,
+ "y": 453
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH28"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH29"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 779,
+ "y": 435
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH29"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH30"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 799,
+ "y": 453
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH30"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH31"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 800,
+ "y": 435
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH31"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH32"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 820,
+ "y": 453
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH32"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH33"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 821,
+ "y": 435
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH33"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH34"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 841,
+ "y": 453
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH34"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH35"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 842,
+ "y": 435
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH35"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH36"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 862,
+ "y": 453
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH36"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH37"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 863,
+ "y": 435
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH37"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH38"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 883,
+ "y": 453
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH38"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH39"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 884,
+ "y": 435
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH39"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH40"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 904,
+ "y": 453
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH40"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH41"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 905,
+ "y": 435
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH41"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH42"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 925,
+ "y": 453
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH42"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH43"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 926,
+ "y": 435
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH43"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH44"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 946,
+ "y": 453
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH44"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH45"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 947,
+ "y": 435
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH45"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH46"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 967,
+ "y": 453
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH46"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH47"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 968,
+ "y": 435
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH47"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH48"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 988,
+ "y": 453
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH48"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH49"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 989,
+ "y": 435
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH49"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH50"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 1009,
+ "y": 453
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH50"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH51"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 1010,
+ "y": 435
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH51"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH52"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 1030,
+ "y": 453
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH52"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH53"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 1031,
+ "y": 435
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH53"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH54"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 1051,
+ "y": 453
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH54"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH55"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 1052,
+ "y": 435
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH55"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH56"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 1072,
+ "y": 453
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH56"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH57"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 1073,
+ "y": 435
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH57"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH58"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 1093,
+ "y": 453
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH58"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH59"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 1094,
+ "y": 435
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH59"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH60"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 1114,
+ "y": 453
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH60"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH61"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 1115,
+ "y": 435
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH61"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH62"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 1135,
+ "y": 453
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH62"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH63"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 1136,
+ "y": 435
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH63"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH64"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 1156,
+ "y": 453
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH64"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH65"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 1157,
+ "y": 435
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH65"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH66"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 1177,
+ "y": 453
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH66"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH67"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 60,
+ "x": 1194,
+ "y": 435
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH67"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH70"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 60,
+ "x": 1252,
+ "y": 453
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "tagPath": "[default]MCP20/SO01/SO01_CH70"
+ },
+ "path": "Templates/Areas/FlexChute",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_SGT1"
+ },
+ "position": {
+ "height": 29,
+ "width": 27,
+ "x": 315,
+ "y": 381
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "tagPath": "[default]MCP20/SO01/SGT1"
+ },
+ "path": "Templates/SpecialDevices/SafetyGate",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_SGT2"
+ },
+ "position": {
+ "height": 29,
+ "width": 27,
+ "x": 423,
+ "y": 475
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "tagPath": "[default]MCP20/SO01/SGT2"
+ },
+ "path": "Templates/SpecialDevices/SafetyGate",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_SGT3"
+ },
+ "position": {
+ "height": 29,
+ "width": 27,
+ "x": 1333,
+ "y": 487
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "tagPath": "[default]MCP20/SO01/SGT3"
+ },
+ "path": "Templates/SpecialDevices/SafetyGate",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_SGT4"
+ },
+ "position": {
+ "height": 29,
+ "width": 27,
+ "x": 1360,
+ "y": 404
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "tagPath": "[default]MCP20/SO01/SGT4"
+ },
+ "path": "Templates/SpecialDevices/SafetyGate",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "SO01_SGT5"
+ },
+ "position": {
+ "height": 29,
+ "width": 27,
+ "x": 1413,
+ "y": 426
+ },
+ "props": {
+ "loading": {
+ "order": "with-parent"
+ },
+ "params": {
+ "tagPath": "[default]MCP20/SO01/SGT5"
+ },
+ "path": "Templates/SpecialDevices/SafetyGate",
+ "style": {
+ "classes": " painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "MCP20"
+ },
+ "position": {
+ "height": 20,
+ "width": 50,
+ "x": 138,
+ "y": 386
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/MCP20/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.mcp"
+ },
+ {
+ "meta": {
+ "name": "PS01_08_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 63,
+ "y": 417
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_08/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_09_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 118,
+ "y": 413
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_09/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_10_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 135,
+ "y": 413
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_10/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_11_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 152,
+ "y": 413
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_11/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_12_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 169,
+ "y": 413
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_12/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_13_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 186,
+ "y": 413
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_13/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_14_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 203,
+ "y": 413
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_14/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_15_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 237,
+ "y": 417
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_15/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_16_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 315,
+ "y": 413
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_16/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_17_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 332,
+ "y": 413
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_17/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_18_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 349,
+ "y": 413
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_18/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_19_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 366,
+ "y": 413
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_19/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_20_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 383.24,
+ "y": 413.769
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_20/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_21_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 400.24,
+ "y": 413.769
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_21/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "RE02_01_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1215,
+ "y": 251.333
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_01/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "RE02_03_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 934
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_03/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "RE02_04_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 204
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_04/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1328,
+ "y": 417
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_ENC"
+ },
+ "position": {
+ "height": 16,
+ "rotate": {
+ "angle": "270deg"
+ },
+ "width": 16,
+ "x": 1395,
+ "y": 436
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/ENC/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.encoder"
+ },
+ {
+ "meta": {
+ "name": "PS01_08_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 24,
+ "y": 455
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_08/EPC1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "PS01_08_EPC2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 80,
+ "y": 413
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_08/EPC2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "RE02_01_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1253,
+ "y": 71
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_01/EPC1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1396,
+ "y": 455
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/EPC1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "PS01_08_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 62,
+ "y": 455
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_08/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PS01_08_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 81,
+ "y": 455
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_08/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PS01_08_SS2_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 23,
+ "y": 413
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_08/SS2/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PS01_08_SS2_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 42,
+ "y": 413
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_08/SS2/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PS01_16_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 275,
+ "y": 413
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_16/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PS01_16_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 294,
+ "y": 413
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_16/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RE02_01_RS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1253,
+ "y": 343
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_01/RS1/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RE02_01_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1253,
+ "y": 92
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_01/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RE02_01_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1253,
+ "y": 111
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_01/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_RS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1284,
+ "y": 455
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/RS1/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1322,
+ "y": 466
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1341,
+ "y": 466
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PS01_08_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 55,
+ "y": 476
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_08/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "PS01_08_SIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 24,
+ "y": 476
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_08/SIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "PS01_11_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 145,
+ "y": 465
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_11/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RE02_03_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "width": 30,
+ "x": 802,
+ "y": 1
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_03/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RE02_03_SIO1"
+ },
+ "position": {
+ "height": 15,
+ "width": 30,
+ "x": 771,
+ "y": 1
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_03/SIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_0102_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 456,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_0102/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_0304_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 512,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_0304/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_0506_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 533,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_0506/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_0708_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 554,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_0708/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_0910_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 575,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_0910/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_1112_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 596,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_1112/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_1314_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 617,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_1314/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_1516_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 638,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_1516/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_1718_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 659,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_1718/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_1920_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 680,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_1920/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_2122_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 701,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_2122/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_2324_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 722,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_2324/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_2526_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 743,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_2526/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_2728_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 764,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_2728/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_2930_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 785,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_2930/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_3132_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 805,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_3132/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_3334_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 826,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_3334/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_3536_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 847,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_3536/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_3738_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 868,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_3738/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_3940_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 889,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_3940/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_4142_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 910,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_4142/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_4344_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 932,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_4344/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_4546_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 952,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_4546/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_4748_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 973,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_4748/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_4950_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 994,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_4950/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_5152_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 1015,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_5152/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_5354_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 1036,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_5354/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_5556_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 1057,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_5556/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_5758_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 1077,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_5758/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_5960_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 1098,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_5960/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_6162_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 1119,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_6162/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_6364_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 1141,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_6364/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_6566_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 1162,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_6566/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_6768_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 1200,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_6768/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_6970_SOL"
+ },
+ "position": {
+ "height": 5,
+ "width": 10,
+ "x": 1225,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_6970/SOL/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH01_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 435,
+ "y": 423
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_CH01/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH68_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 1178,
+ "y": 495
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_CH68/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH69_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 1216,
+ "y": 423
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_CH69/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "PS01_08_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 45,
+ "y": 455
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_08/BCN1/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PS01_08_BCN2_HRN"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 23,
+ "y": 381
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_08/BCN2/HRN/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PS01_08_BCN2_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 23,
+ "y": 396
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_08/BCN2/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PS01_16_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 298,
+ "y": 396
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_16/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PS01_16_BCN1_HRN"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 298,
+ "y": 366
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_16/BCN1/HRN/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PS01_16_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 298,
+ "y": 381
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_16/BCN1/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PS01_16_BCN2_PUR"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 281,
+ "y": 366
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_16/BCN2/PUR/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RE02_01_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1274,
+ "y": 107
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_01/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RE02_01_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1274,
+ "y": 92
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_01/BCN1/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_BCN1_HRN"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1379,
+ "y": 455
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/BCN1/HRN/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1379,
+ "y": 470
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/BCN1/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_BCN2_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1267,
+ "y": 455
+ },
+ "props": {
+ "status": {
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_BCN2_PUR"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1362,
+ "y": 455
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/BCN2/PUR/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_BCN3_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1305,
+ "y": 466
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/BCN3/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH01_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 472,
+ "y": 392
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_CH01/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH01_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 472,
+ "y": 377
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_CH01/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH01_BCN1_GRN"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 472,
+ "y": 407
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_CH01/BCN1/GRN/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH01_BCN2_PUR"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 489,
+ "y": 407
+ },
+ "props": {
+ "status": {
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH68_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1215,
+ "y": 482
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_CH68/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH68_BCN1_GRN"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1215,
+ "y": 497
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_CH68/BCN1/GRN/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH69_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1253,
+ "y": 396
+ },
+ "props": {
+ "status": {
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "SO01_CH69_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1253,
+ "y": 381
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_CH69/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "SCN01_01"
+ },
+ "position": {
+ "height": 12,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 24,
+ "x": 206,
+ "y": 479
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SCN01/SCN01_01/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.scanner"
+ },
+ {
+ "meta": {
+ "name": "PS01_08_TPE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 106,
+ "y": 464
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_08/TPE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS01_09_TPE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 121,
+ "y": 464
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_09/TPE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS01_10_TPE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 138,
+ "y": 464
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_10/TPE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS01_11_TPE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 155,
+ "y": 464
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_11/TPE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS01_12_TPE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 172,
+ "y": 464
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_12/TPE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS01_13_TPE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 189,
+ "y": 464
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_13/TPE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS01_15_TPE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 221,
+ "y": 464
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_15/TPE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS01_16_TPE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 318,
+ "y": 464
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_16/TPE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS01_17_TPE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 335,
+ "y": 464
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_17/TPE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS01_18_TPE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 352,
+ "y": 464
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_18/TPE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS01_19_TPE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 369,
+ "y": 464
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_19/TPE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS01_20_TPE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 386,
+ "y": 464
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_20/TPE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS01_21_TPE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 403,
+ "y": 464
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_21/TPE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RE02_01_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 34,
+ "x": 1262,
+ "y": 68
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_01/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RE02_01_PE2"
+ },
+ "position": {
+ "height": 10,
+ "width": 34,
+ "x": 1222,
+ "y": 364
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_01/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RE02_03_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 675,
+ "y": 7
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_03/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RE02_03_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 1194,
+ "y": 7
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_03/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RE02_04_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 126,
+ "y": 7
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RE02/RE02_04/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_PE01"
+ },
+ "position": {
+ "height": 5,
+ "width": 122,
+ "x": 436,
+ "y": 436
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/PE01/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "through-beam"
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_PE02"
+ },
+ "position": {
+ "height": 5,
+ "width": 122,
+ "x": 436,
+ "y": 447
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/PE02/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "through-beam"
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_PE03"
+ },
+ "position": {
+ "height": 5,
+ "width": 83,
+ "x": 559,
+ "y": 436
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/PE03/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "through-beam"
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_PE04"
+ },
+ "position": {
+ "height": 5,
+ "width": 83,
+ "x": 559,
+ "y": 447
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/PE04/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "through-beam"
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_PE05"
+ },
+ "position": {
+ "height": 5,
+ "width": 83,
+ "x": 643,
+ "y": 436
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/PE05/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "through-beam"
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_PE06"
+ },
+ "position": {
+ "height": 5,
+ "width": 83,
+ "x": 643,
+ "y": 447
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/PE06/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "through-beam"
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_PE07"
+ },
+ "position": {
+ "height": 5,
+ "width": 82,
+ "x": 727,
+ "y": 436
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/PE07/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "through-beam"
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_PE08"
+ },
+ "position": {
+ "height": 5,
+ "width": 82,
+ "x": 727,
+ "y": 447
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/PE08/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "through-beam"
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_PE09"
+ },
+ "position": {
+ "height": 5,
+ "width": 83,
+ "x": 810,
+ "y": 436
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/PE09/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "through-beam"
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_PE10"
+ },
+ "position": {
+ "height": 5,
+ "width": 83,
+ "x": 810,
+ "y": 447
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/PE10/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "through-beam"
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_PE11"
+ },
+ "position": {
+ "height": 5,
+ "width": 83,
+ "x": 894,
+ "y": 436
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/PE11/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "through-beam"
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_PE12"
+ },
+ "position": {
+ "height": 5,
+ "width": 83,
+ "x": 894,
+ "y": 447
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/PE12/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "through-beam"
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_PE13"
+ },
+ "position": {
+ "height": 5,
+ "width": 83,
+ "x": 978,
+ "y": 436
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/PE13/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "through-beam"
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_PE14"
+ },
+ "position": {
+ "height": 5,
+ "width": 83,
+ "x": 978,
+ "y": 447
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/PE14/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "through-beam"
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_PE15"
+ },
+ "position": {
+ "height": 5,
+ "width": 84,
+ "x": 1062,
+ "y": 436
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/PE15/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "through-beam"
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_PE16"
+ },
+ "position": {
+ "height": 5,
+ "width": 84,
+ "x": 1062,
+ "y": 447
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/PE16/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "through-beam"
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_PE17"
+ },
+ "position": {
+ "height": 5,
+ "width": 124,
+ "x": 1147,
+ "y": 436
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/PE17/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "through-beam"
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_PE18"
+ },
+ "position": {
+ "height": 5,
+ "width": 124,
+ "x": 1147,
+ "y": 447
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/PE18/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "through-beam"
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_TPE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 418,
+ "y": 464
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/TPE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_TPE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 1218,
+ "y": 464
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/TPE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_TPE3"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 1256,
+ "y": 464
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/TPE3/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_TPE4"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "225deg"
+ },
+ "width": 48,
+ "x": 1321,
+ "y": 465
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/TPE4/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_TPE5"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "225deg"
+ },
+ "width": 48,
+ "x": 1331,
+ "y": 465
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/TPE5/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_TPE6"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "225deg"
+ },
+ "width": 48,
+ "x": 1341,
+ "y": 465
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/TPE6/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_TPE7"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "225deg"
+ },
+ "width": 48,
+ "x": 1351,
+ "y": 465
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/TPE7/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_TREY_PE1"
+ },
+ "position": {
+ "height": 5,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 10,
+ "x": 1352,
+ "y": 436
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/TREY_PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_TREY_PE2"
+ },
+ "position": {
+ "height": 5,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 10,
+ "x": 1358,
+ "y": 436
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/TREY_PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "Overflow_at_max_lbl"
+ },
+ "position": {
+ "height": 40,
+ "width": 60,
+ "x": 1340,
+ "y": 356
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "expression": "coalesce({[default]MCP20_Custom/SO01_01_HMI_OverflowNotAvailable}, false)"
+ },
+ "type": "expr"
+ }
+ },
+ "props.style.background-color": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]Gateway/ToggleTag"
+ },
+ "transforms": [
+ {
+ "fallback": "#FF0",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "#00F"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.style.color": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]Gateway/ToggleTag"
+ },
+ "transforms": [
+ {
+ "fallback": "#000",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "#FFF"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "1px",
+ "fontSize": "10px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "OVERFLOW NOT AVAILABLE"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_LS1"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1253,
+ "y": 413
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/LS1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.limitswitch"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_DIV"
+ },
+ "position": {
+ "height": 20,
+ "width": 30,
+ "x": 1231,
+ "y": 434
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "originSide": "right"
+ },
+ "status": {
+ "color": "#FFF",
+ "isExtended": true,
+ "isRetracted": false,
+ "tooltip": "SO1-1.DIV\u003cbr\u003eStatus: Non-powered"
+ }
+ },
+ "type": "dex.display.divertpaddle"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_LS2"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1215,
+ "y": 465
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/LS2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.limitswitch"
+ },
+ {
+ "meta": {
+ "name": "SO01_01_PS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 429,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/SO01/SO01_01/PS1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": "PS"
+ }
+ },
+ "type": "dex.display.limitswitch"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/71debdaff3c573977c6dd50ab3e36aef46fff856ea293aeb0130e901b2db6d53 b/.resources/71debdaff3c573977c6dd50ab3e36aef46fff856ea293aeb0130e901b2db6d53
new file mode 100644
index 00000000..ab6958b4
--- /dev/null
+++ b/.resources/71debdaff3c573977c6dd50ab3e36aef46fff856ea293aeb0130e901b2db6d53
@@ -0,0 +1,28 @@
+WITH LANES AS (
+ SELECT
+ DATE_FORMAT(MIN(s04_timestamp), "%Y-%m-%d %H:00") AS start_timestamp,
+ CONCAT("H",
+ CAST(
+ TIMESTAMPDIFF(
+ HOUR,
+ DATE_FORMAT(MIN(s04_timestamp), "%Y-%m-%d %H:00:00"),
+ DATE_FORMAT(LEAST(CURRENT_TIMESTAMP(), :endDate), "%Y-%m-%d %H:00:00")
+ ) AS CHAR
+ )
+ ) AS hour,
+ COUNT(*) AS total
+ FROM package_history
+ WHERE s04_timestamp BETWEEN :startDate AND :endDate
+ AND destination_act = :lane
+ GROUP BY DATE_FORMAT(s04_timestamp, "%Y-%m-%d %H:00")
+)
+SELECT
+ start_timestamp AS time,
+ hour,
+ /* Counts: */
+ total AS total_count,
+ /* PPH: */
+ total AS total_pph,
+ /* Percents: */
+ ROUND(total/total, 4) AS total_percent
+FROM LANES;
\ No newline at end of file
diff --git a/.resources/7217fe8a224d6e380c577cfc47fb874e0e9973f8a0a74bf91b9d5b089e10e98a b/.resources/7217fe8a224d6e380c577cfc47fb874e0e9973f8a0a74bf91b9d5b089e10e98a
new file mode 100644
index 00000000..9b3a4534
--- /dev/null
+++ b/.resources/7217fe8a224d6e380c577cfc47fb874e0e9973f8a0a74bf91b9d5b089e10e98a
@@ -0,0 +1,509 @@
+{
+ "custom": {},
+ "params": {
+ "deviceType": "",
+ "props": {
+ "config": {
+ "enableHighlight": true,
+ "isClickable": false
+ },
+ "status": {
+ "color": "#aaa",
+ "showAlways": true,
+ "tagPath": "",
+ "tooltip": ""
+ }
+ }
+ },
+ "propConfig": {
+ "params.deviceType": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 280,
+ "width": 877
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "events": {
+ "component": {
+ "onRowDoubleClick": {
+ "config": {
+ "script": "\tscreen \u003d alarms.resolveScreenBySource(event.value.source)\n\tif screen \u003c\u003e \"\":\n\t\twindow \u003d \"Windows/GraphicsWrapper\"\n\t\tparams \u003d {\"view\": screen}\n\t\tsystem.perspective.navigate(\"/\")\n\t\tsystem.perspective.navigate(view\u003dwindow, params\u003dparams)\n\t\tsystem.perspective.closePopup(\"\")"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Table"
+ },
+ "position": {
+ "height": "100%",
+ "width": "100%"
+ },
+ "propConfig": {
+ "props.columns[3].visible": {
+ "binding": {
+ "config": {
+ "expression": " {view.params.deviceType}\u003d\"conveyor\"\r\n||{view.params.deviceType}\u003d\"conveyorycurve\"\r\n||{view.params.deviceType}\u003d\"gaylord\"\r\n||{view.params.deviceType}\u003d\"chutedestination\"\r\n||{view.params.deviceType}\u003d\"spiralchute\"\r\n||{view.params.deviceType}\u003d\"divchute\"\r\n||{view.params.deviceType}\u003d\"rrchute\"\r\n||{view.params.deviceType}\u003d\"mcp\""
+ },
+ "type": "expr"
+ }
+ },
+ "props.data": {
+ "binding": {
+ "config": {
+ "parameters": {
+ "priority": "0",
+ "tagPath": "if(\t {view.params.deviceType}\u003d\"conveyor\"\r \t||{view.params.deviceType}\u003d\"conveyorycurve\"\r \t||{view.params.deviceType}\u003d\"gaylord\"\r \t||{view.params.deviceType}\u003d\"mcp\",\r \t// Give parent folder:\r\tsubstring(\r\t\treplace({view.params.props.status.tagPath}, \"/Graphics\", \"\"),\r\t\t0,\r\t\tlastIndexOf(\r\t\t\treplace({view.params.props.status.tagPath}, \"/Graphics\", \"\"),\r\t\t\t\"/\"\r\t\t)\r\t),\r\t{view.params.props.status.tagPath}\r )\r "
+ },
+ "queryPath": "Alarms/DeviceHistory"
+ },
+ "transforms": [
+ {
+ "code": "\toutput_json \u003d []\n\t# Transform dataset into json:\n\tfor row in range(value.getRowCount()):\n\t\trow_object \u003d {\"value\": {}}\n\t\t# Populate row values:\n\t\tfor col in range(value.getColumnCount()):\n\t\t\trow_object[\"value\"][value.getColumnName(col)] \u003d value.getValueAt(row, col)\n\t\t\t# Check if endtime isn\u0027t reached:\n\t\t\tif value.getColumnName(col) \u003d\u003d \u0027endtime\u0027 and value.getValueAt(row, col) in [None, \"\"]:\n\t\t\t\trow_object[\u0027style\u0027] \u003d {\"background\": \"#F4B084\"}\n\t\t# Append to json output:\n\t\toutput_json.append(row_object)\n\t# Return as json:\n\treturn output_json",
+ "type": "script"
+ }
+ ],
+ "type": "query"
+ }
+ }
+ },
+ "props": {
+ "cells": {
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "1px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "1px",
+ "fontFamily": "Helvetica",
+ "fontSize": "16px"
+ }
+ },
+ "columns": [
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "starttime",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Start Timestamp"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 175
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "endtime",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "End Timestamp"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 175
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "duration",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 100
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "device",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Device"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "width": 175
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "description",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Description"
+ },
+ "justify": "auto",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": "",
+ "minWidth": "250px"
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 250
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "source",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "justify": "auto",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": false,
+ "width": ""
+ }
+ ],
+ "pager": {
+ "bottom": false
+ },
+ "rows": {
+ "highlight": {
+ "enabled": false
+ },
+ "striped": {
+ "enabled": false
+ },
+ "style": {
+ "classes": "table/highlight"
+ }
+ },
+ "style": {
+ "fontFamily": "Helvetica",
+ "fontSize": "16px",
+ "fontWeight": "bold",
+ "zoom": 1
+ }
+ },
+ "scripts": {
+ "customMethods": [],
+ "extensionFunctions": null,
+ "messageHandlers": [
+ {
+ "messageType": "export-data",
+ "pageScope": true,
+ "script": "\tname \u003d utils.extractName(self.view.params.props.status)\n\tutils.downloadCSV(self, \"[\"+name+\"]Alarm History\")",
+ "sessionScope": false,
+ "viewScope": false
+ }
+ ]
+ },
+ "type": "ia.display.table"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/72dce1db3100659b2d0ed960e89175d0bf4ed1ea8de999fe4538c8e2dc414f0a b/.resources/72dce1db3100659b2d0ed960e89175d0bf4ed1ea8de999fe4538c8e2dc414f0a
new file mode 100644
index 00000000..0e2bded7
--- /dev/null
+++ b/.resources/72dce1db3100659b2d0ed960e89175d0bf4ed1ea8de999fe4538c8e2dc414f0a
@@ -0,0 +1,28 @@
+WITH LANES AS (
+ SELECT
+ DATE_FORMAT(MIN(s04_timestamp), "%Y-%m-%d %H:00") AS start_timestamp,
+ CONCAT("H",
+ CAST(
+ TIMESTAMPDIFF(
+ HOUR,
+ DATE_FORMAT(MIN(s04_timestamp), "%Y-%m-%d %H:00:00"),
+ DATE_FORMAT(LEAST(CURRENT_TIMESTAMP(), :endDate), "%Y-%m-%d %H:00:00")
+ ) AS CHAR
+ )
+ ) AS hour,
+ COUNT(*) AS total
+ FROM package_history
+ WHERE s04_timestamp BETWEEN :startDate AND :endDate
+ AND destination_act = :lane
+ GROUP BY DATE_FORMAT(s04_timestamp, "%Y-%m-%d %H:00")
+)
+SELECT
+ start_timestamp,
+ hour,
+ /* Counts: */
+ total AS total_count,
+ /* PPH: */
+ total AS total_pph,
+ /* Percents: */
+ ROUND(total/total, 4) AS total_percent
+FROM LANES;
\ No newline at end of file
diff --git a/.resources/73f4f0fa3eafc761d1673eba3174e978ab55761a0912ba2c982162372227b1b4 b/.resources/73f4f0fa3eafc761d1673eba3174e978ab55761a0912ba2c982162372227b1b4
new file mode 100644
index 00000000..3fc7daed
--- /dev/null
+++ b/.resources/73f4f0fa3eafc761d1673eba3174e978ab55761a0912ba2c982162372227b1b4
@@ -0,0 +1,445 @@
+{
+ "custom": {},
+ "params": {
+ "deviceType": "",
+ "props": {
+ "config": {
+ "enableHighlight": true,
+ "isClickable": false
+ },
+ "status": {
+ "color": "#aaa",
+ "showAlways": true,
+ "tagPath": "[default]MCP01/UL01/UL01_01/Conv",
+ "tooltip": ""
+ }
+ }
+ },
+ "propConfig": {
+ "params.deviceType": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 280
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Table"
+ },
+ "position": {
+ "height": "100%",
+ "width": "100%"
+ },
+ "propConfig": {
+ "props.data": {
+ "binding": {
+ "config": {
+ "expression": "if(toBoolean(now(5000), false),\r\n\t{view.params.props.status.tagPath},\r\n\t{view.params.props.status.tagPath}\r\n)"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "code": "\tvalue \u003d tags.getOPCTags(value)\n\theaders \u003d [\"tagName\", \"tagType\", \"tagPath\", \"tagDocumentation\", \"tagValue\"]\n\tresult \u003d reports.readJsonTable(headers, value)\n\treturn result[\"data\"]",
+ "type": "script"
+ }
+ ],
+ "type": "expr"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "cells": {
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "1px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "1px",
+ "fontFamily": "Helvetica",
+ "fontSize": "16px"
+ }
+ },
+ "columns": [
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "tagName",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Name"
+ },
+ "justify": "left",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "tagType",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Type"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": "",
+ "minWidth": "250px"
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 60
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "tagPath",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "OPC Path"
+ },
+ "justify": "left",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 160
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "tagDocumentation",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Documentation"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "tagValue",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Value"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 120
+ }
+ ],
+ "data": [
+ {
+ "tagDocumentation": "",
+ "tagName": "Flt_CB",
+ "tagPath": "[MCP01]UL01_01.Fault.Flt_CB",
+ "tagType": "opc",
+ "tagValue": {
+ "style": {
+ "background": "#F88"
+ },
+ "value": "ERR: NOT FOUND"
+ }
+ },
+ {
+ "tagDocumentation": "",
+ "tagName": "Flt_CB",
+ "tagPath": "[MCP01]UL01_01.Fault.Flt_CB",
+ "tagType": "opc",
+ "tagValue": {
+ "style": {
+ "background": "#F88"
+ },
+ "value": "ERR: NOT FOUND"
+ }
+ }
+ ],
+ "pager": {
+ "bottom": false
+ },
+ "rows": {
+ "highlight": {
+ "enabled": false
+ },
+ "striped": {
+ "enabled": false
+ },
+ "style": {
+ "classes": "table/highlight"
+ }
+ },
+ "style": {
+ "fontFamily": "Helvetica",
+ "fontSize": "16px",
+ "fontWeight": "bold",
+ "zoom": 1
+ }
+ },
+ "scripts": {
+ "customMethods": [],
+ "extensionFunctions": null,
+ "messageHandlers": [
+ {
+ "messageType": "export-data",
+ "pageScope": true,
+ "script": "\tname \u003d utils.extractName(self.view.params.props.status)\n\tutils.downloadCSV(self, \"[\"+name+\"]Tags\")",
+ "sessionScope": false,
+ "viewScope": false
+ }
+ ]
+ },
+ "type": "ia.display.table"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/73f7954d7da2b23bb30a8a1651569f1779270435946e6e0e17c9b43e2998e62f b/.resources/73f7954d7da2b23bb30a8a1651569f1779270435946e6e0e17c9b43e2998e62f
new file mode 100644
index 00000000..0f027f99
--- /dev/null
+++ b/.resources/73f7954d7da2b23bb30a8a1651569f1779270435946e6e0e17c9b43e2998e62f
@@ -0,0 +1,526 @@
+{
+ "custom": {},
+ "params": {
+ "fontSize": "16px",
+ "label": null,
+ "showIcons": true,
+ "tagPath": "",
+ "view": ""
+ },
+ "propConfig": {
+ "params.fontSize": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.label": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.showIcons": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.tagPath": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.view": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 60,
+ "width": 130
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tself.parent.openWindow()"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "TooltipOverlay"
+ },
+ "position": {
+ "height": "100%",
+ "width": "100%"
+ },
+ "propConfig": {
+ "props.status.tooltip": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "expression": "if(isGood({value}),\n\tjsonGet({value}, \u0027tooltip\u0027),\n\t\"Tooltip not configured\"\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "status": {}
+ },
+ "type": "dex.display.tooltipoverlay"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tself.parent.openWindow()"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button"
+ },
+ "position": {
+ "height": "100%",
+ "width": "100%"
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey",
+ "paddingBottom": "10%"
+ },
+ "text": "",
+ "textStyle": {
+ "fontsize": "12px"
+ }
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "Label"
+ },
+ "position": {
+ "width": "100%"
+ },
+ "propConfig": {
+ "position.height": {
+ "binding": {
+ "config": {
+ "path": "view.params.showIcons"
+ },
+ "transforms": [
+ {
+ "fallback": "50%",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": false,
+ "output": "100%"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "props.alignVertical": {
+ "binding": {
+ "config": {
+ "path": "view.params.showIcons"
+ },
+ "transforms": [
+ {
+ "fallback": "bottom",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": false,
+ "output": "center"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "props.style.fontSize": {
+ "binding": {
+ "config": {
+ "path": "view.params.fontSize"
+ },
+ "type": "property"
+ }
+ },
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.LabelFull"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({view.params.label},\nif(isGood({value}),\n\t{value},\n\t\"Unknown\"\n))",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "fontWeight": "bold",
+ "pointer-events": "none",
+ "textAlign": "center",
+ "textTransform": "uppercase",
+ "user-select": "none"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "children": [
+ {
+ "meta": {
+ "name": "Alarm_Icon"
+ },
+ "position": {
+ "height": 0.6667,
+ "width": 0.1538,
+ "x": 0.0385,
+ "y": 0.1667
+ },
+ "propConfig": {
+ "props.style.backgroundColor": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/General_Alarm"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if(isGood({value}), {value}, \"\")",
+ "type": "expression"
+ },
+ {
+ "fallback": "#808080",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "#000000"
+ },
+ {
+ "input": false,
+ "output": "#DDDDDD"
+ }
+ ],
+ "outputType": "color",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "color": "#FFF",
+ "path": "material/notifications_active"
+ },
+ "type": "ia.display.icon"
+ },
+ {
+ "meta": {
+ "name": "Emergency_Icon"
+ },
+ "position": {
+ "height": 0.6667,
+ "width": 0.1538,
+ "x": 0.2308,
+ "y": 0.1667
+ },
+ "propConfig": {
+ "props.style.backgroundColor": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/Estop_Active"
+ },
+ "transforms": [
+ {
+ "expression": "if(isGood({value}), {value}, \"\")",
+ "type": "expression"
+ },
+ {
+ "fallback": "#808080",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "#FF0000"
+ },
+ {
+ "input": false,
+ "output": "#DDDDDD"
+ }
+ ],
+ "outputType": "color",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "color": "#FFF",
+ "path": "material/all_out"
+ },
+ "type": "ia.display.icon"
+ },
+ {
+ "meta": {
+ "name": "Jam_Icon"
+ },
+ "position": {
+ "height": 0.6667,
+ "width": 0.1538,
+ "x": 0.4231,
+ "y": 0.1667
+ },
+ "propConfig": {
+ "props.style.backgroundColor": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/Jam_Active"
+ },
+ "transforms": [
+ {
+ "expression": "if(isGood({value}), {value}, \"\")",
+ "type": "expression"
+ },
+ {
+ "fallback": "#808080",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "#FF8C00"
+ },
+ {
+ "input": false,
+ "output": "#DDDDDD"
+ }
+ ],
+ "outputType": "color",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "color": "#FFF",
+ "path": "material/skip_next"
+ },
+ "type": "ia.display.icon"
+ },
+ {
+ "meta": {
+ "name": "Full_Icon"
+ },
+ "position": {
+ "height": 0.6667,
+ "width": 0.1538,
+ "x": 0.6154,
+ "y": 0.1667
+ },
+ "propConfig": {
+ "props.style.backgroundColor": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/Full_Active"
+ },
+ "transforms": [
+ {
+ "expression": "if(isGood({value}), {value}, \"\")",
+ "type": "expression"
+ },
+ {
+ "fallback": "#808080",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "#0000FF"
+ },
+ {
+ "input": false,
+ "output": "#DDDDDD"
+ }
+ ],
+ "outputType": "color",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "color": "#FFF",
+ "path": "material/skip_next"
+ },
+ "type": "ia.display.icon"
+ },
+ {
+ "meta": {
+ "name": "Manual_Icon"
+ },
+ "position": {
+ "height": 0.6667,
+ "width": 0.1538,
+ "x": 0.8077,
+ "y": 0.1667
+ },
+ "propConfig": {
+ "props.style.backgroundColor": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/Manual_Active"
+ },
+ "transforms": [
+ {
+ "expression": "if(isGood({value}), {value}, \"\")",
+ "type": "expression"
+ },
+ {
+ "fallback": "#808080",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "#AC5F00"
+ },
+ {
+ "input": false,
+ "output": "#DDDDDD"
+ }
+ ],
+ "outputType": "color",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "color": "#FFF",
+ "path": "material/build"
+ },
+ "type": "ia.display.icon"
+ }
+ ],
+ "meta": {
+ "name": "Icons"
+ },
+ "position": {
+ "height": "50%",
+ "width": "100%",
+ "y": "50%"
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "view.params.showIcons"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "aspectRatio": "65:15",
+ "mode": "percent",
+ "style": {
+ "overflow": "hidden",
+ "pointer-events": "none"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "cursor": "pointer"
+ }
+ },
+ "scripts": {
+ "customMethods": [
+ {
+ "name": "openWindow",
+ "params": [],
+ "script": "\tview \u003d self.view.params.view\n\tif view in [\"\", None]:\n\t\tview \u003d \"Windows/Graphics/\"+self.getChild(\"Label\").props.text.replace(\" \", \"_\")\n\t# Open window:\n\twindow \u003d \"Windows/GraphicsWrapper\"\n\tparams \u003d {\"view\": view}\n\tsystem.perspective.navigate(\"/\")\n\tsystem.perspective.navigate(view\u003dwindow, params\u003dparams)"
+ }
+ ],
+ "extensionFunctions": null,
+ "messageHandlers": []
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/7453f79a163e8b92f338238be241f378b60d1d49c70197979bdbc8973326a90c b/.resources/7453f79a163e8b92f338238be241f378b60d1d49c70197979bdbc8973326a90c
new file mode 100644
index 00000000..b7c4ddf8
Binary files /dev/null and b/.resources/7453f79a163e8b92f338238be241f378b60d1d49c70197979bdbc8973326a90c differ
diff --git a/.resources/7535d2e816561e2a5a15dc8eea7e282beda324eacc031a1566b2c8f4683b76d0 b/.resources/7535d2e816561e2a5a15dc8eea7e282beda324eacc031a1566b2c8f4683b76d0
new file mode 100644
index 00000000..7d6c312e
--- /dev/null
+++ b/.resources/7535d2e816561e2a5a15dc8eea7e282beda324eacc031a1566b2c8f4683b76d0
@@ -0,0 +1,14 @@
+SELECT s01_timestamp AS induct_timestamp,
+ s04_timestamp AS confirm_timestamp,
+ sorter, trackid, scanner,
+ bcr_imgid AS imgid, s01_barcode AS barcode, scanner_status,
+ pkg_length/10 AS pkg_length, /* In inches */
+ carriers AS trays,
+ assignments, divert_status,
+ destination_req AS requested_dest,
+ destination_act AS diverted_dest,
+ sort_code
+FROM package_history
+WHERE s04_timestamp BETWEEN :startDate AND :endDate
+ORDER BY s04_timestamp DESC
+LIMIT 4000;
\ No newline at end of file
diff --git a/.resources/784661f0d2ba96a754becb435424fa3d38d747181b7c141aed5288e447f7e316 b/.resources/784661f0d2ba96a754becb435424fa3d38d747181b7c141aed5288e447f7e316
new file mode 100644
index 00000000..cfcac7b2
--- /dev/null
+++ b/.resources/784661f0d2ba96a754becb435424fa3d38d747181b7c141aed5288e447f7e316
@@ -0,0 +1,13 @@
+{
+ "base": {
+ "animation": {
+ "duration": "1s",
+ "keyframes": {
+ "0%": {
+ "backgroundColor": "#FF0000B3"
+ },
+ "100%": {}
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/7a71b1f3831b8d00a450fbe69923dfda1da4af1ec15f26871bc8d842f3f6a4a6 b/.resources/7a71b1f3831b8d00a450fbe69923dfda1da4af1ec15f26871bc8d842f3f6a4a6
new file mode 100644
index 00000000..e89425f4
--- /dev/null
+++ b/.resources/7a71b1f3831b8d00a450fbe69923dfda1da4af1ec15f26871bc8d842f3f6a4a6
@@ -0,0 +1,287 @@
+{
+ "custom": {},
+ "params": {
+ "meta": {
+ "name": "ENC1"
+ },
+ "props": {
+ "config": {
+ "enableHighlight": true,
+ "isClickable": false
+ },
+ "status": {
+ "color": "#aaa",
+ "showAlways": true,
+ "tagPath": "",
+ "tooltip": ""
+ }
+ }
+ },
+ "propConfig": {
+ "params.meta": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.meta.name": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 105,
+ "width": 500
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Encoder"
+ },
+ "position": {
+ "height": 48,
+ "width": 48,
+ "x": 75.5,
+ "y": 11
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "expression": "try(\r\n\tjsonSet({value}, \"showAlways\", true),\r\n\t{view.params.props.status}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ }
+ },
+ "type": "dex.display.encoder"
+ },
+ {
+ "meta": {
+ "name": "lbStatus"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 40
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "code": "\treturn utils.extractStatus(value)",
+ "type": "script"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbName"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 5
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.LabelFull"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \u0027\u0027)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_1"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 5
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Name: "
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_11"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 40
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Status:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_12"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 75
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Panel:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbStatus_0"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 75
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.OPC_Server"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \"Unknown\")",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "background-color": "#CFCFCF"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/7c2470fb6d223918b6f8d8edf50e737e37bbb9c847c851a6b93d85d34c231899 b/.resources/7c2470fb6d223918b6f8d8edf50e737e37bbb9c847c851a6b93d85d34c231899
new file mode 100644
index 00000000..b2069649
--- /dev/null
+++ b/.resources/7c2470fb6d223918b6f8d8edf50e737e37bbb9c847c851a6b93d85d34c231899
@@ -0,0 +1,36 @@
+{
+ "base": {
+ "style": {
+ "backgroundImage": "linear-gradient(180deg, rgba(255,255,0,1) 0%, rgba(245,245,0,1) 70%, rgba(208,208,0,1) 100%);",
+ "borderColor": "#555",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "color": "#000",
+ "textTransform": "uppercase"
+ }
+ },
+ "variants": [
+ {
+ "pseudo": "hover",
+ "style": {
+ "backgroundImage": "linear-gradient(0deg, rgba(255,255,0,1) 0%, rgba(245,245,0,1) 70%, rgba(208,208,0,1) 100%);",
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "color": "#000",
+ "cursor": "pointer"
+ }
+ },
+ {
+ "pseudo": "disabled",
+ "style": {
+ "backgroundImage": "linear-gradient(180deg, rgba(208,208,0,1) 0%, rgba(208,208,0,1) 100%);",
+ "borderColor": "#555",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "color": "#555555",
+ "cursor": "not-allowed"
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.resources/7d584ddfa3c0ef6496248230b334a487997c3b6635ed095b37d053604e7a9000 b/.resources/7d584ddfa3c0ef6496248230b334a487997c3b6635ed095b37d053604e7a9000
new file mode 100644
index 00000000..a404b419
--- /dev/null
+++ b/.resources/7d584ddfa3c0ef6496248230b334a487997c3b6635ed095b37d053604e7a9000
@@ -0,0 +1,322 @@
+{
+ "custom": {
+ "plc": "value",
+ "searchId": "value",
+ "state": 0,
+ "string": "Clear"
+ },
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "propConfig": {
+ "custom.plc": {
+ "binding": {
+ "config": {
+ "path": "view.params.tagProps[0]"
+ },
+ "transforms": [
+ {
+ "expression": "split({value}, \"/\")[0]",
+ "type": "expression"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.searchId": {
+ "binding": {
+ "config": {
+ "path": "session.custom.searchId"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.state": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 1,
+ "mode": "indirect",
+ "references": {
+ "0": "{view.params.tagProps[0]}",
+ "fc": "{session.custom.fc}"
+ },
+ "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value},{view.params.forceFaultStatus},0)",
+ "type": "expression"
+ },
+ {
+ "fallback": 0,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": 1
+ },
+ {
+ "input": 2,
+ "output": 2
+ },
+ {
+ "input": 3,
+ "output": 3
+ },
+ {
+ "input": 4,
+ "output": 4
+ },
+ {
+ "input": 5,
+ "output": 5
+ },
+ {
+ "input": 6,
+ "output": 6
+ },
+ {
+ "input": 7,
+ "output": 7
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ },
+ "persistent": true
+ },
+ "custom.string": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "fallback": "Clear",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": "Clear"
+ },
+ {
+ "input": 2,
+ "output": "Blocked"
+ },
+ {
+ "input": 3,
+ "output": "Disabled"
+ },
+ {
+ "input": 4,
+ "output": "Jammed"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "params.tagProps": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 40,
+ "width": 110
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Photoeye"
+ },
+ "position": {
+ "height": 1,
+ "width": 1
+ },
+ "propConfig": {
+ "props.elements[0].fill.paint": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "fallback": "#00FF00",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 0,
+ "output": "#00FF00"
+ },
+ {
+ "input": 2,
+ "output": "#000000"
+ },
+ {
+ "input": 3,
+ "output": "#800080"
+ },
+ {
+ "input": 4,
+ "output": "#FF0000"
+ }
+ ],
+ "outputType": "color",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "props.elements[2].fill.paint": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "fallback": "#00FF00",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 0,
+ "output": "#00FF00"
+ },
+ {
+ "input": 2,
+ "output": "#000000"
+ },
+ {
+ "input": 3,
+ "output": "#800080"
+ },
+ {
+ "input": 4,
+ "output": "#FF0000"
+ }
+ ],
+ "outputType": "color",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "elements": [
+ {
+ "d": "m 28.763932,20 -20,10 V 10 Z",
+ "fill": {},
+ "name": "path",
+ "stroke": {
+ "paint": "#000000",
+ "width": "2"
+ },
+ "type": "path"
+ },
+ {
+ "stroke": {
+ "paint": "#000000",
+ "width": "2"
+ },
+ "stroke-dasharray": "4,4",
+ "type": "line",
+ "x1": "30",
+ "x2": "90%",
+ "y1": "20",
+ "y2": "20"
+ },
+ {
+ "fill": {},
+ "height": "20",
+ "stroke": {
+ "paint": "#000000",
+ "width": "2"
+ },
+ "type": "rect",
+ "width": "6",
+ "x": "90%",
+ "y": "10"
+ }
+ ],
+ "viewBox": "0 0 110 40"
+ },
+ "type": "ia.shapes.svg"
+ }
+ ],
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tsystem.perspective.openDock(\u0027Docked-East-Photoeye\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})"
+ },
+ "scope": "G",
+ "type": "script"
+ },
+ "onMouseEnter": {
+ "config": {
+ "script": "\tfrom time import sleep\n\n\talarm \u003d []\n\tmessage \u003d None\n\n\tsleep(0.5)\n\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "root",
+ "tooltip": {
+ "enabled": true
+ }
+ },
+ "propConfig": {
+ "meta.tooltip.text": {
+ "binding": {
+ "config": {
+ "expression": "\"Source Id: \" + {view.params.tagProps[0]} + \", Status: \" + {view.custom.string}\n"
+ },
+ "type": "expr"
+ }
+ },
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "session.custom.alarm_filter.show_photoeyes"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "mode": "percent",
+ "style": {
+ "cursor": "pointer"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/7db5e65317e04cb83190b7f6b1ec0120b91d69fd010d796a97421ca11118abea b/.resources/7db5e65317e04cb83190b7f6b1ec0120b91d69fd010d796a97421ca11118abea
new file mode 100644
index 00000000..a041d9f9
--- /dev/null
+++ b/.resources/7db5e65317e04cb83190b7f6b1ec0120b91d69fd010d796a97421ca11118abea
@@ -0,0 +1,290 @@
+{
+ "custom": {},
+ "params": {
+ "meta": {
+ "name": "EPC1"
+ },
+ "props": {
+ "config": {
+ "enableHighlight": true,
+ "isClickable": false
+ },
+ "status": {
+ "color": {
+ "base": "#FFF",
+ "button": "#0F0"
+ },
+ "showAlways": true,
+ "tagPath": "",
+ "tooltip": ""
+ }
+ }
+ },
+ "propConfig": {
+ "params.meta": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.meta.name": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 105,
+ "width": 500
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "EPC"
+ },
+ "position": {
+ "height": 48,
+ "width": 48,
+ "x": 76,
+ "y": 11
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "expression": "try(\r\n\tjsonSet({value}, \"showAlways\", true),\r\n\t{view.params.props.status}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "lbStatus"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 40
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "code": "\treturn utils.extractStatus(value)",
+ "type": "script"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbName"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 5
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.LabelFull"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \u0027\u0027)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_1"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 5
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Name: "
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_11"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 40
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Status:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_12"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 75
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Panel:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbStatus_0"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 75
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.OPC_Server"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \"Unknown\")",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "background-color": "#CFCFCF"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/7f010c0d4439a7d002cf798216e15157c5c90216b052ad5a3b584caa91ed86d2 b/.resources/7f010c0d4439a7d002cf798216e15157c5c90216b052ad5a3b584caa91ed86d2
new file mode 100644
index 00000000..e29e0ac2
--- /dev/null
+++ b/.resources/7f010c0d4439a7d002cf798216e15157c5c90216b052ad5a3b584caa91ed86d2
@@ -0,0 +1,4 @@
+{
+ "type": "AllOf",
+ "securityLevels": []
+}
\ No newline at end of file
diff --git a/.resources/7f38f3eab888f8d3ea06ed18f9ddd07e7d6f67820a52840a06622df1c8b454a7 b/.resources/7f38f3eab888f8d3ea06ed18f9ddd07e7d6f67820a52840a06622df1c8b454a7
new file mode 100644
index 00000000..4bfcd6d7
--- /dev/null
+++ b/.resources/7f38f3eab888f8d3ea06ed18f9ddd07e7d6f67820a52840a06622df1c8b454a7
@@ -0,0 +1,7 @@
+{
+ "base": {
+ "style": {
+ "color": "#00CC00"
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/819fc9f77d8943f886e855c457bd949420be7223bdc5ce9b66bae8a56363ee21 b/.resources/819fc9f77d8943f886e855c457bd949420be7223bdc5ce9b66bae8a56363ee21
new file mode 100644
index 00000000..07b3aeae
--- /dev/null
+++ b/.resources/819fc9f77d8943f886e855c457bd949420be7223bdc5ce9b66bae8a56363ee21
@@ -0,0 +1,382 @@
+{
+ "custom": {},
+ "params": {
+ "deviceType": "",
+ "props": {
+ "config": {
+ "enableHighlight": true,
+ "isClickable": false
+ },
+ "status": {
+ "color": "#aaa",
+ "showAlways": true,
+ "tagPath": "",
+ "tooltip": ""
+ }
+ }
+ },
+ "propConfig": {
+ "params.deviceType": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 280
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "events": {
+ "component": {
+ "onRowDoubleClick": {
+ "config": {
+ "script": "\tparams \u003d {\n\t\t\"deviceType\": event.value[\"deviceType\"],\n\t\t\"props\": {\n\t\t\t\"status\": {\n\t\t\t\t\"tagPath\": event.value[\"tagPath\"]\n\t\t\t}\n\t\t},\n\t\t\"meta\": {\n\t\t\t\"name\": event.value[\"device\"]\n\t\t},\n\t\t\"tabs\": [\"Status\"]\n\t}\n\t# Close the current popup:\n\t# NOTE: We close before opening the new popup because the pageId changes when opening a new popup\n\tif not self.session.custom.isMobile:\n\t\t#system.perspective.closePopup(\"\")\n\t\tpass\n\t# Open new popup:\n\tpopups.openDevice(params, event.value[\"device\"], self.session.custom.isMobile)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Table"
+ },
+ "position": {
+ "height": "100%",
+ "width": "100%"
+ },
+ "propConfig": {
+ "custom.devices": {
+ "binding": {
+ "config": {
+ "path": "view.params.props.status.tagPath"
+ },
+ "transforms": [
+ {
+ "code": "\tif self.view.params.deviceType \u003d\u003d \"mcp\":\n\t\treturn tags.getSiblingDevices(value, [\"conveyor\", \"conveyorcurve\", \"gaylord\"])\n\telif self.view.params.deviceType \u003d\u003d \"chutedestination\":\n\t\treturn tags.getSiblingDevices(value + \"/Chute\", filterTagPath\u003dFalse)\n\telif self.view.params.deviceType \u003d\u003d \"spiralchute\":\n\t\treturn tags.getSiblingDevices(value + \"/CH\", filterTagPath\u003dFalse)\n\telif self.view.params.deviceType \u003d\u003d \"divchute\":\n\t\treturn tags.getSiblingDevices(value + \"/Conv\", filterTagPath\u003dFalse)\n\telse:\n\t\treturn tags.getSiblingDevices(value)",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "props.data": {
+ "binding": {
+ "config": {
+ "expression": "if(toBoolean(now(5000), false),\r\n\t{this.custom.devices},\r\n\t{this.custom.devices}\r\n)"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "code": "\theaders \u003d [\"device\", \"status\", \"tagPath\", \"deviceType\"]\n\tresult \u003d reports.readJsonTable(headers, value)\n\treturn result[\"data\"]",
+ "type": "script"
+ }
+ ],
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "cells": {
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "1px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "1px",
+ "fontFamily": "Helvetica",
+ "fontSize": "16px"
+ }
+ },
+ "columns": [
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "device",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Device"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 225
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "status",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Status"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": "",
+ "minWidth": "250px"
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 200
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "tagPath",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Tag"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": false,
+ "width": 150
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "deviceType",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Type"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": false,
+ "width": 150
+ }
+ ],
+ "pager": {
+ "bottom": false
+ },
+ "rows": {
+ "highlight": {
+ "enabled": false
+ },
+ "striped": {
+ "enabled": false
+ },
+ "style": {
+ "classes": "table/highlight"
+ }
+ },
+ "style": {
+ "fontFamily": "Helvetica",
+ "fontSize": "16px",
+ "fontWeight": "bold",
+ "zoom": 1
+ }
+ },
+ "scripts": {
+ "customMethods": [],
+ "messageHandlers": [
+ {
+ "messageType": "export-data",
+ "pageScope": true,
+ "script": "\tname \u003d utils.extractName(self.view.params.props.status)\n\tutils.downloadCSV(self, \"[\"+name+\"]Devices\")",
+ "sessionScope": false,
+ "viewScope": false
+ }
+ ]
+ },
+ "type": "ia.display.table"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/81f0baaff79c53ef241c49df404292d68a3bfd1b4bee66d3324d1236602be8a5 b/.resources/81f0baaff79c53ef241c49df404292d68a3bfd1b4bee66d3324d1236602be8a5
new file mode 100644
index 00000000..48d3e05a
--- /dev/null
+++ b/.resources/81f0baaff79c53ef241c49df404292d68a3bfd1b4bee66d3324d1236602be8a5
@@ -0,0 +1,7 @@
+SELECT DISTINCT induct
+FROM package_history
+UNION
+SELECT DISTINCT lane_id AS induct
+FROM pe_history
+WHERE lane_id LIKE "UL%"
+ORDER BY induct ASC;
\ No newline at end of file
diff --git a/.resources/826eff61070943343853a7c315822bef2a1f03f94e0f23e9eea6f60008db95aa b/.resources/826eff61070943343853a7c315822bef2a1f03f94e0f23e9eea6f60008db95aa
new file mode 100644
index 00000000..b9954af2
--- /dev/null
+++ b/.resources/826eff61070943343853a7c315822bef2a1f03f94e0f23e9eea6f60008db95aa
@@ -0,0 +1,415 @@
+{
+ "custom": {},
+ "params": {
+ "alwaysShowAll": false,
+ "chuteNum": "",
+ "isClickable": true,
+ "mirror": false,
+ "tagPath": "MCP05/PS01/PS01_28CH"
+ },
+ "propConfig": {
+ "params.alwaysShowAll": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.chuteNum": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.isClickable": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.mirror": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.tagPath": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 92,
+ "width": 94
+ },
+ "loading": {
+ "mode": "blocking"
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tself.parent.openPopup()"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Conveyor"
+ },
+ "position": {
+ "height": 48,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": 90
+ },
+ "width": 89,
+ "x": 69,
+ "y": 1
+ },
+ "propConfig": {
+ "props.config.isClickable": {
+ "binding": {
+ "config": {
+ "expression": "!{view.params.isClickable}"
+ },
+ "type": "expr"
+ }
+ },
+ "props.config.showLabel": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/Conv/Parameters.LabelFull"
+ },
+ "overlayOptOut": true,
+ "type": "tag"
+ }
+ },
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/Conv/Graphics"
+ },
+ "overlayOptOut": true,
+ "type": "tag"
+ }
+ },
+ "props.style.transform": {
+ "binding": {
+ "config": {
+ "path": "view.params.mirror"
+ },
+ "transforms": [
+ {
+ "fallback": null,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "scale(1, -1) translateY(-100%)"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "y": 3
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/BCN1/BLU/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.style.transform": {
+ "binding": {
+ "config": {
+ "path": "parent.props.style.transform"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "y": 18
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/BCN1/AMB/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.style.transform": {
+ "binding": {
+ "config": {
+ "path": "parent.props.style.transform"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "BCN1_GRN"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "y": 33
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/BCN1/GRN/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.style.transform": {
+ "binding": {
+ "config": {
+ "path": "parent.props.style.transform"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "Half_PE"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "angle": 180
+ },
+ "width": 62,
+ "x": 17,
+ "y": 74
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/Half_PE/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "Jam_PE"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "angle": 180
+ },
+ "width": 62,
+ "x": 17,
+ "y": 6
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/Jam_PE/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "Full_PE"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "angle": 180
+ },
+ "width": 62,
+ "x": 17,
+ "y": 36
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/Full_PE/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "if({view.params.alwaysShowAll},\r\n\tjsonSet({value}, \"showAlways\", {view.params.alwaysShowAll}),\r\n\t{value}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "propConfig": {
+ "props.style.transform": {
+ "binding": {
+ "config": {
+ "path": "view.params.mirror"
+ },
+ "transforms": [
+ {
+ "fallback": null,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "scale(-1, 1)"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "scripts": {
+ "customMethods": [
+ {
+ "name": "openPopup",
+ "params": [],
+ "script": "\tif self.view.params.isClickable:\n\t\tid \u003d \"DivChute|\" + self.view.params.tagPath\n\t\ttitle \u003d utils.prettyName(self.view.params.tagPath.split(\"/\")[-1])\n\t\tparams \u003d { \n\t\t\t\"deviceType\": \"divchute\",\n\t\t\t\"props\": { \n\t\t\t\t\"config\": {\n\t\t\t\t\t\"alwaysShowAll\": self.view.params.alwaysShowAll,\n\t\t\t\t\t\"isClickable\": self.view.params.isClickable,\n\t\t\t\t\t#\"rotate\": self.view.params.rotate,\n\t\t\t\t\t\"mirror\": self.view.params.mirror\n\t\t\t\t},\n\t\t\t\t\"status\": {\n\t\t\t\t\t\"tagPath\": self.view.params.tagPath\n\t\t\t\t}\n\t\t \t},\n\t\t \t\"tabs\": [\"Controls\", \"Alarm History\", \"Devices\"]\t\t\n\t\t}\n\t\tsystem.perspective.openPopup(id, \"Popups/DeviceWrapper\", params, title, resizable \u003d True)"
+ }
+ ],
+ "extensionFunctions": null,
+ "messageHandlers": []
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/84aedd34f0b4297bff5187ba27bc8661d271deced8bd8fabacb076fd9f842512 b/.resources/84aedd34f0b4297bff5187ba27bc8661d271deced8bd8fabacb076fd9f842512
new file mode 100644
index 00000000..7794282b
--- /dev/null
+++ b/.resources/84aedd34f0b4297bff5187ba27bc8661d271deced8bd8fabacb076fd9f842512
@@ -0,0 +1,685 @@
+{
+ "custom": {
+ "title": ""
+ },
+ "params": {},
+ "permissions": {
+ "securityLevels": [],
+ "type": "AllOf"
+ },
+ "propConfig": {
+ "custom.title": {
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 400,
+ "width": 1600
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "children": [
+ {
+ "meta": {
+ "name": "Table"
+ },
+ "position": {
+ "height": "100%",
+ "width": "100%"
+ },
+ "props": {
+ "cells": {
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "1px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "1px",
+ "color": "#000",
+ "fontFamily": "Helvetica",
+ "fontSize": "14px"
+ }
+ },
+ "columns": [
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "eventtime",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "justify": "auto",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ }
+ ],
+ "pager": {
+ "bottom": false
+ },
+ "rows": {
+ "highlight": {
+ "enabled": false
+ },
+ "striped": {
+ "enabled": false
+ },
+ "style": {
+ "classes": "table/highlight"
+ }
+ },
+ "style": {
+ "fontFamily": "Helvetica",
+ "fontSize": "14px",
+ "fontWeight": "bold"
+ }
+ },
+ "type": "ia.display.table"
+ }
+ ],
+ "meta": {
+ "name": "Table"
+ },
+ "position": {
+ "height": "calc(100% - 40px)",
+ "width": "calc(100% - 250px)",
+ "x": 250,
+ "y": 40
+ },
+ "props": {
+ "style": {
+ "border-left": "2px solid #000",
+ "min-width": "450px"
+ }
+ },
+ "type": "ia.container.coord"
+ },
+ {
+ "meta": {
+ "name": "LabelHeader"
+ },
+ "position": {
+ "height": 40,
+ "width": "100%"
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "expression": " \"Custom Reports\"\r\n+if(len({view.custom.title})\u003e0, \" - \" + {view.custom.title}, \"\")"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#1A4A5E",
+ "borderBottomColor": "#000000",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "2px",
+ "color": "#fff",
+ "fontFamily": "Helvetica",
+ "fontSize": 20,
+ "fontWeight": "bold",
+ "textAlign": "center"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\t# Grab Data:\n\ttable \u003d self.parent.getChild(\"Table\").getChild(\"Table\")\n\tdata \u003d utils.downloadCSV(table, self.view.custom.title)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button_Export"
+ },
+ "position": {
+ "height": 30,
+ "width": 100,
+ "x": "calc(100% - 105px)",
+ "y": 5
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Export"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\treportTree \u003d self.getSibling(\"ReportTree\")\n\treportTree.meta.visible \u003d not reportTree.meta.visible"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button_Mode"
+ },
+ "position": {
+ "height": 32,
+ "width": 85,
+ "x": 4,
+ "y": 4
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "expression": "if({../ReportTree.meta.visible},\r\n\t\"Files\",\r\n\t\"Reports\"\r\n)"
+ },
+ "type": "expr"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "enabled": false,
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Files"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "draggable": false,
+ "id": "PABE2XXI",
+ "modal": true,
+ "overlayDismiss": true,
+ "resizable": false,
+ "showCloseIcon": true,
+ "title": "Upload Custom Report",
+ "type": "open",
+ "viewPath": "Popups/CustomReports/ConfigUpload"
+ },
+ "scope": "C",
+ "type": "popup"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button_UploadConfig",
+ "visible": false
+ },
+ "position": {
+ "height": 32,
+ "width": 85,
+ "x": 93,
+ "y": 4
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "expression": "{../ReportTree.meta.visible}\r\n\u0026\u0026 ({session.props.device.type} \u003d \"designer\" || isAuthorized(\r\n\tfalse,\r\n\t\u0027Authenticated/Roles/Administrator\u0027,\r\n\t\u0027Authenticated/Roles/Developer\u0027\r\n))"
+ },
+ "type": "expr"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Upload"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\t# Get filenames:\n\ttree \u003d self.getSibling(\u0027ReportTree\u0027)\n\tfilenames \u003d [sel.value for sel in tree.props.selectionData]\n\t\n\terr \u003d reports.downloadConfigs(filenames)\n\n\t# Check if err:\n\tif err is not None:\n\t\tsystem.gui.messageBox(err, \"Error\")"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button_DownloadConfig",
+ "visible": false
+ },
+ "position": {
+ "height": 32,
+ "width": 95,
+ "x": 182,
+ "y": 4
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "expression": "{../ReportTree.meta.visible}\r\n\u0026\u0026 ({session.props.device.type} \u003d \"designer\" || isAuthorized(\r\n\tfalse,\r\n\t\u0027Authenticated/Roles/Administrator\u0027,\r\n\t\u0027Authenticated/Roles/Developer\u0027\r\n))"
+ },
+ "type": "expr"
+ },
+ "persistent": true
+ },
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "path": "../ReportTree.props.selection"
+ },
+ "transforms": [
+ {
+ "code": "\treturn len(value)\u003e0",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Download"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "draggable": false,
+ "id": "5QyUoYBU",
+ "modal": true,
+ "overlayDismiss": true,
+ "resizable": false,
+ "showCloseIcon": true,
+ "title": "Delete Confirmation",
+ "type": "open",
+ "viewParams": {
+ "filenames": "{/root/ReportTree.props.selectionData}"
+ },
+ "viewPath": "Popups/CustomReports/DeleteConfirmation"
+ },
+ "scope": "C",
+ "type": "popup"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button_DeleteConfig",
+ "visible": false
+ },
+ "position": {
+ "height": 32,
+ "width": 85,
+ "x": 281,
+ "y": 4
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "expression": "{../ReportTree.meta.visible}\r\n\u0026\u0026 ({session.props.device.type} \u003d \"designer\" || isAuthorized(\r\n\tfalse,\r\n\t\u0027Authenticated/Roles/Administrator\u0027,\r\n\t\u0027Authenticated/Roles/Developer\u0027\r\n))"
+ },
+ "type": "expr"
+ },
+ "persistent": true
+ },
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "path": "../ReportTree.props.selection"
+ },
+ "transforms": [
+ {
+ "code": "\treturn len(value)\u003e0",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Delete"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "FileTree",
+ "visible": false
+ },
+ "position": {
+ "height": "calc(100% - 97px)",
+ "width": 250,
+ "y": 65
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "expression": "!{../ReportTree.meta.visible}"
+ },
+ "type": "expr"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "appearance": {
+ "defaultNodeIcons": {
+ "collapsed": {
+ "color": "#5F707E",
+ "path": "material/folder"
+ },
+ "empty": {
+ "color": "#869DB1",
+ "path": "material/stop"
+ },
+ "expanded": {
+ "color": "#5F707E",
+ "path": "material/folder_open"
+ }
+ },
+ "expandIcons": {
+ "collapsed": {
+ "color": "#869DB1",
+ "path": "material/arrow_right"
+ },
+ "empty": {
+ "color": "#869DB1"
+ },
+ "expanded": {
+ "color": "#869DB1",
+ "path": "material/arrow_drop_down"
+ }
+ },
+ "selectedStyle": {
+ "backgroundColor": "#BBE0F6",
+ "color": "#000",
+ "cursor": "pointer"
+ },
+ "unselectedStyle": {
+ "classes": "Tree/hoverUnselected",
+ "cursor": "pointer"
+ }
+ }
+ },
+ "type": "ia.display.tree"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tsystem.perspective.print(self.getSibling(\"FileTree\").props.selection)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button_DownloadFiles",
+ "visible": false
+ },
+ "position": {
+ "height": 32,
+ "y": "calc(100% - 32px)"
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "../FileTree.meta.visible"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "position.width": {
+ "binding": {
+ "config": {
+ "path": "../FileTree.position.width"
+ },
+ "type": "property"
+ }
+ },
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "path": "../FileTree.props.selection"
+ },
+ "transforms": [
+ {
+ "code": "\treturn len(value)\u003e0",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Download Selected"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "dom": {
+ "onDoubleClick": {
+ "config": {
+ "script": "\tdata \u003d self.props.selectionData\n\tif len(data) \u003d\u003d 1:\n\t\tconfig \u003d data[0].value\n\t\tresults \u003d reports.readTable(config)\n\t\t# Return data table:\n\t\tif \u0027err\u0027 in results:\n\t\t\tsystem.gui.messageBox(results[\u0027err\u0027], \"Error\")\n\t\telse:\n\t\t\ttable \u003d self.getSibling(\"Table\").getChild(\"Table\")\n\t\t\ttable.props.data \u003d results[\u0027data\u0027]\n\t\t\ttable.props.columns \u003d results[\u0027columns\u0027]\n\t\t\tself.view.custom.title \u003d \".\".join(config.split(\".\")[:-1])"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ },
+ "system": {
+ "onStartup": {
+ "config": {
+ "script": "\tself.refreshList()"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "ReportTree"
+ },
+ "position": {
+ "height": "calc(100% - 65px)",
+ "width": 250,
+ "y": 65
+ },
+ "props": {
+ "appearance": {
+ "defaultNodeIcons": {
+ "collapsed": {
+ "color": "#5F707E",
+ "path": "material/folder"
+ },
+ "empty": {
+ "color": "#869DB1",
+ "path": "material/stop"
+ },
+ "expanded": {
+ "color": "#5F707E",
+ "path": "material/folder_open"
+ }
+ },
+ "expandIcons": {
+ "collapsed": {
+ "color": "#869DB1",
+ "path": "material/arrow_right"
+ },
+ "empty": {
+ "color": "#869DB1"
+ },
+ "expanded": {
+ "color": "#869DB1",
+ "path": "material/arrow_drop_down"
+ }
+ },
+ "selectedStyle": {
+ "backgroundColor": "#BBE0F6",
+ "color": "#000",
+ "cursor": "pointer",
+ "user-select": "none"
+ },
+ "unselectedStyle": {
+ "classes": "Tree/hoverUnselected",
+ "cursor": "pointer",
+ "user-select": "none"
+ }
+ }
+ },
+ "scripts": {
+ "customMethods": [
+ {
+ "name": "refreshList",
+ "params": [],
+ "script": "\ticons \u003d {\n\t\t\"csv\": {\n\t\t\t\"path\": \"material/table_chart\",\n\t\t\t\"color\": \"#869DB1\"\n\t\t},\n\t\t\"sql\": {\n\t\t\t\"path\": \"material/storage\",\n\t\t\t\"color\": \"#869DB1\"\n\t\t}\n\t}\n\t\n\tconfigs \u003d []\n\troles \u003d self.session.props.auth.user.roles\n\tfor config in reports.getConfigs(roles\u003droles):\n\t\tparts \u003d config.split(\".\")\n\t\tconfigs.append({\n\t\t\t\"label\": \".\".join(parts[:-1]),\n\t\t\t\"expanded\": False,\n\t\t\t\"icon\": icons.get(parts[-1], \"\"),\n\t\t\t\"data\": config,\n\t\t\t\"items\": []\n\t\t})\n\t\n\tself.props.items \u003d configs"
+ }
+ ],
+ "messageHandlers": [
+ {
+ "messageType": "custom-reports-refreshlist",
+ "pageScope": true,
+ "script": "\tself.refreshList()",
+ "sessionScope": false,
+ "viewScope": false
+ }
+ ]
+ },
+ "type": "ia.display.tree"
+ },
+ {
+ "meta": {
+ "name": "LabelTree"
+ },
+ "position": {
+ "height": 25,
+ "width": 250,
+ "y": 40
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "expression": "if({../ReportTree.meta.visible},\r\n\t\"On-Demand Reports\",\r\n\t\"Pre-Run Reports\"\r\n)"
+ },
+ "type": "expr"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#808080",
+ "borderBottomColor": "#000",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": 2,
+ "color": "#FFF",
+ "fontSize": "16px",
+ "fontWeight": "bold",
+ "textAlign": "center",
+ "user-select": "none"
+ },
+ "text": "On-Demand Reports"
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "min-width": "1000px"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/84f5c37c55bd967cf6a7d7276347bfc07afd5718098a6064d63fd03b56351499 b/.resources/84f5c37c55bd967cf6a7d7276347bfc07afd5718098a6064d63fd03b56351499
new file mode 100644
index 00000000..ccd23f2e
--- /dev/null
+++ b/.resources/84f5c37c55bd967cf6a7d7276347bfc07afd5718098a6064d63fd03b56351499
@@ -0,0 +1,28 @@
+WITH INDUCTS AS (
+ SELECT
+ DATE_FORMAT(MIN(s04_timestamp), "%Y-%m-%d %H:%i:00") AS time,
+ sorter,
+ induct,
+ COUNT(*) AS total,
+ SUM(carriers=1) AS single_carrier,
+ SUM(carriers=2) AS double_carrier
+ FROM package_history
+ WHERE s04_timestamp BETWEEN :startDate AND :endDate
+ GROUP BY sorter, induct, DATE_FORMAT(s04_timestamp, "%Y-%m-%d %H:%i:00")
+)
+SELECT
+ time,
+ /* Counts: */
+ total AS total_count,
+ single_carrier AS single_carrier_count,
+ double_carrier AS double_carrier_count,
+ /* PPH: */
+ ROUND(total*60) AS total_pph,
+ ROUND(single_carrier*60) AS single_carrier_pph,
+ ROUND(double_carrier*60) AS double_carrier_pph,
+ /* Percents: */
+ ROUND(total/(SUM(total) OVER(PARTITION BY induct, time)), 4) AS 'total/sorter_percent',
+ ROUND(single_carrier/total, 4) AS single_carrier_percent,
+ ROUND(double_carrier/total, 4) AS double_carrier_percent
+FROM INDUCTS
+WHERE induct = :induct;
\ No newline at end of file
diff --git a/.resources/8818577f7792c51ddd6c876ea96ec60490820c0c6d0db77128d6d98bc3ce240c b/.resources/8818577f7792c51ddd6c876ea96ec60490820c0c6d0db77128d6d98bc3ce240c
new file mode 100644
index 00000000..2aeb2280
--- /dev/null
+++ b/.resources/8818577f7792c51ddd6c876ea96ec60490820c0c6d0db77128d6d98bc3ce240c
@@ -0,0 +1,3 @@
+SELECT DISTINCT scanner
+FROM package_history
+ORDER BY scanner ASC;
\ No newline at end of file
diff --git a/.resources/892d5bd99d78c4c7f40ad2ab1fb5e70917195b101f135a777083469becff1372 b/.resources/892d5bd99d78c4c7f40ad2ab1fb5e70917195b101f135a777083469becff1372
new file mode 100644
index 00000000..6381a937
--- /dev/null
+++ b/.resources/892d5bd99d78c4c7f40ad2ab1fb5e70917195b101f135a777083469becff1372
@@ -0,0 +1,13 @@
+{
+ "base": {
+ "animation": {
+ "duration": "1s",
+ "keyframes": {
+ "0%": {
+ "backgroundColor": "#FF8000B3"
+ },
+ "100%": {}
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/896ce58342ffe4acb15f1357071f315ca507f7f7594b2f105bd49dd413fbc7e1 b/.resources/896ce58342ffe4acb15f1357071f315ca507f7f7594b2f105bd49dd413fbc7e1
new file mode 100644
index 00000000..58a0278f
--- /dev/null
+++ b/.resources/896ce58342ffe4acb15f1357071f315ca507f7f7594b2f105bd49dd413fbc7e1
@@ -0,0 +1,3 @@
+SELECT DISTINCT induct
+FROM package_history
+ORDER BY induct ASC;
\ No newline at end of file
diff --git a/.resources/89c7c14bb7a26c455c47487ed30c357a43744e508c00c68c27372c1d1cf460d8 b/.resources/89c7c14bb7a26c455c47487ed30c357a43744e508c00c68c27372c1d1cf460d8
new file mode 100644
index 00000000..033fa6ed
--- /dev/null
+++ b/.resources/89c7c14bb7a26c455c47487ed30c357a43744e508c00c68c27372c1d1cf460d8
@@ -0,0 +1,531 @@
+{
+ "pages": {
+ "/": {
+ "docks": {
+ "bottom": [
+ {
+ "anchor": "fixed",
+ "autoBreakpoint": 480,
+ "content": "push",
+ "handle": "autoHide",
+ "iconUrl": "",
+ "id": "footer",
+ "modal": false,
+ "resizable": false,
+ "show": "visible",
+ "size": 100,
+ "viewParams": {},
+ "viewPath": "Windows/Docked/Footer"
+ }
+ ],
+ "top": [
+ {
+ "anchor": "fixed",
+ "autoBreakpoint": 480,
+ "content": "push",
+ "handle": "hide",
+ "iconUrl": "",
+ "id": "header",
+ "modal": false,
+ "resizable": false,
+ "show": "visible",
+ "size": 60,
+ "viewParams": {},
+ "viewPath": "Windows/Docked/Header"
+ }
+ ]
+ },
+ "title": "",
+ "viewPath": "Windows/GraphicsWrapper"
+ },
+ "/alarms/active": {
+ "docks": {
+ "bottom": [
+ {
+ "anchor": "fixed",
+ "autoBreakpoint": 480,
+ "content": "push",
+ "handle": "autoHide",
+ "iconUrl": "",
+ "id": "footer",
+ "modal": false,
+ "resizable": false,
+ "show": "visible",
+ "size": 100,
+ "viewParams": {},
+ "viewPath": "Windows/Docked/Footer"
+ }
+ ],
+ "top": [
+ {
+ "anchor": "fixed",
+ "autoBreakpoint": 480,
+ "content": "push",
+ "handle": "autoHide",
+ "iconUrl": "",
+ "id": "header",
+ "modal": false,
+ "resizable": false,
+ "show": "visible",
+ "size": 60,
+ "viewParams": {},
+ "viewPath": "Windows/Docked/Header"
+ }
+ ]
+ },
+ "title": "",
+ "viewPath": "Windows/AlarmWrapper"
+ },
+ "/alarms/history": {
+ "docks": {
+ "bottom": [
+ {
+ "anchor": "fixed",
+ "autoBreakpoint": 480,
+ "content": "push",
+ "handle": "autoHide",
+ "iconUrl": "",
+ "id": "footer",
+ "modal": false,
+ "resizable": false,
+ "show": "visible",
+ "size": 100,
+ "viewParams": {},
+ "viewPath": "Windows/Docked/Footer"
+ }
+ ],
+ "top": [
+ {
+ "anchor": "fixed",
+ "autoBreakpoint": 480,
+ "content": "push",
+ "handle": "autoHide",
+ "iconUrl": "",
+ "id": "header",
+ "modal": false,
+ "resizable": false,
+ "show": "visible",
+ "size": 60,
+ "viewParams": {},
+ "viewPath": "Windows/Docked/Header"
+ }
+ ]
+ },
+ "viewPath": "Windows/AlarmWrapper"
+ },
+ "/alarms/hitlist": {
+ "docks": {
+ "bottom": [
+ {
+ "anchor": "fixed",
+ "autoBreakpoint": 480,
+ "content": "push",
+ "handle": "autoHide",
+ "iconUrl": "",
+ "id": "footer",
+ "modal": false,
+ "resizable": false,
+ "show": "visible",
+ "size": 100,
+ "viewParams": {},
+ "viewPath": "Windows/Docked/Footer"
+ }
+ ],
+ "top": [
+ {
+ "anchor": "fixed",
+ "autoBreakpoint": 480,
+ "content": "push",
+ "handle": "autoHide",
+ "iconUrl": "",
+ "id": "header",
+ "modal": false,
+ "resizable": false,
+ "show": "visible",
+ "size": 60,
+ "viewParams": {},
+ "viewPath": "Windows/Docked/Header"
+ }
+ ]
+ },
+ "title": "",
+ "viewPath": "Windows/AlarmWrapper"
+ },
+ "/autStand": {
+ "docks": {
+ "bottom": [
+ {
+ "anchor": "fixed",
+ "autoBreakpoint": 480,
+ "content": "cover",
+ "handle": "show",
+ "iconUrl": "",
+ "id": "autStand",
+ "modal": false,
+ "resizable": false,
+ "show": "onDemand",
+ "size": 165,
+ "viewParams": {},
+ "viewPath": "autStand/Docked_Views/Footer"
+ }
+ ],
+ "top": [
+ {
+ "anchor": "fixed",
+ "autoBreakpoint": 480,
+ "content": "auto",
+ "handle": "hide",
+ "iconUrl": "",
+ "id": "header-autStand",
+ "modal": false,
+ "resizable": false,
+ "show": "visible",
+ "size": 50,
+ "viewParams": {},
+ "viewPath": "autStand/Docked_Views/Header"
+ }
+ ]
+ },
+ "title": "",
+ "viewPath": "autStand/Overview/BNA8"
+ },
+ "/cameras": {
+ "docks": {
+ "bottom": [
+ {
+ "anchor": "fixed",
+ "autoBreakpoint": 480,
+ "content": "push",
+ "handle": "autoHide",
+ "iconUrl": "",
+ "id": "footer",
+ "modal": false,
+ "resizable": false,
+ "show": "visible",
+ "size": 100,
+ "viewParams": {},
+ "viewPath": "Windows/Docked/Footer"
+ }
+ ],
+ "top": [
+ {
+ "anchor": "fixed",
+ "autoBreakpoint": 480,
+ "content": "push",
+ "handle": "autoHide",
+ "iconUrl": "",
+ "id": "header",
+ "modal": false,
+ "resizable": false,
+ "show": "visible",
+ "size": 60,
+ "viewParams": {},
+ "viewPath": "Windows/Docked/Header"
+ }
+ ]
+ },
+ "title": "",
+ "viewPath": "Windows/JamCameras"
+ },
+ "/commission": {
+ "docks": {
+ "bottom": [
+ {
+ "anchor": "fixed",
+ "autoBreakpoint": 480,
+ "content": "push",
+ "handle": "autoHide",
+ "iconUrl": "",
+ "id": "footer",
+ "modal": false,
+ "resizable": false,
+ "show": "visible",
+ "size": 100,
+ "viewParams": {},
+ "viewPath": "Windows/Docked/Footer"
+ }
+ ],
+ "top": [
+ {
+ "anchor": "fixed",
+ "autoBreakpoint": 480,
+ "content": "push",
+ "handle": "autoHide",
+ "iconUrl": "",
+ "id": "header",
+ "modal": false,
+ "resizable": false,
+ "show": "visible",
+ "size": 60,
+ "viewParams": {},
+ "viewPath": "Windows/Docked/Header"
+ }
+ ]
+ },
+ "title": "",
+ "viewPath": "Windows/Commissioning"
+ },
+ "/config": {
+ "docks": {
+ "bottom": [
+ {
+ "anchor": "fixed",
+ "autoBreakpoint": 480,
+ "content": "push",
+ "handle": "autoHide",
+ "iconUrl": "",
+ "id": "footer",
+ "modal": false,
+ "resizable": false,
+ "show": "visible",
+ "size": 100,
+ "viewParams": {},
+ "viewPath": "Windows/Docked/Footer"
+ }
+ ],
+ "top": [
+ {
+ "anchor": "fixed",
+ "autoBreakpoint": 480,
+ "content": "push",
+ "handle": "autoHide",
+ "iconUrl": "",
+ "id": "header",
+ "modal": false,
+ "resizable": false,
+ "show": "visible",
+ "size": 60,
+ "viewParams": {},
+ "viewPath": "Windows/Docked/Header"
+ }
+ ]
+ },
+ "viewPath": "Windows/ConfigWrapper"
+ },
+ "/custom-reports": {
+ "docks": {
+ "bottom": [
+ {
+ "anchor": "fixed",
+ "autoBreakpoint": 480,
+ "content": "push",
+ "handle": "autoHide",
+ "iconUrl": "",
+ "id": "footer",
+ "modal": false,
+ "resizable": false,
+ "show": "visible",
+ "size": 100,
+ "viewParams": {},
+ "viewPath": "Windows/Docked/Footer"
+ }
+ ],
+ "top": [
+ {
+ "anchor": "fixed",
+ "autoBreakpoint": 480,
+ "content": "push",
+ "handle": "autoHide",
+ "iconUrl": "",
+ "id": "header",
+ "modal": false,
+ "resizable": false,
+ "show": "visible",
+ "size": 60,
+ "viewParams": {},
+ "viewPath": "Windows/Docked/Header"
+ }
+ ]
+ },
+ "viewPath": "Windows/CustomReports"
+ },
+ "/help": {
+ "docks": {
+ "bottom": [
+ {
+ "anchor": "fixed",
+ "autoBreakpoint": 480,
+ "content": "push",
+ "handle": "autoHide",
+ "iconUrl": "",
+ "id": "footer",
+ "modal": false,
+ "resizable": false,
+ "show": "visible",
+ "size": 100,
+ "viewParams": {},
+ "viewPath": "Windows/Docked/Footer"
+ }
+ ],
+ "top": [
+ {
+ "anchor": "fixed",
+ "autoBreakpoint": 480,
+ "content": "push",
+ "handle": "autoHide",
+ "iconUrl": "",
+ "id": "header",
+ "modal": false,
+ "resizable": false,
+ "show": "visible",
+ "size": 60,
+ "viewParams": {},
+ "viewPath": "Windows/Docked/Header"
+ }
+ ]
+ },
+ "viewPath": "Windows/Help"
+ },
+ "/mcm01": {
+ "docks": {
+ "bottom": [
+ {
+ "anchor": "fixed",
+ "autoBreakpoint": 480,
+ "content": "cover",
+ "handle": "show",
+ "iconUrl": "",
+ "id": "autStand",
+ "modal": false,
+ "resizable": false,
+ "show": "onDemand",
+ "size": 165,
+ "viewParams": {},
+ "viewPath": "autStand/Docked_Views/Footer"
+ }
+ ],
+ "top": [
+ {
+ "anchor": "fixed",
+ "autoBreakpoint": 480,
+ "content": "push",
+ "handle": "hide",
+ "iconUrl": "",
+ "id": "header-autStand",
+ "modal": false,
+ "resizable": false,
+ "show": "visible",
+ "size": 60,
+ "viewParams": {},
+ "viewPath": "autStand/Docked_Views/Header"
+ }
+ ]
+ },
+ "viewPath": "autStand/Detailed_Views/MCM01-FLUID INBOUND"
+ },
+ "/mcm02": {
+ "docks": {
+ "bottom": [
+ {
+ "anchor": "fixed",
+ "autoBreakpoint": 480,
+ "content": "push",
+ "handle": "show",
+ "iconUrl": "",
+ "id": "",
+ "modal": false,
+ "resizable": false,
+ "show": "visible",
+ "size": 165,
+ "viewParams": {},
+ "viewPath": "autStand/Docked_Views/Footer"
+ }
+ ],
+ "top": [
+ {
+ "anchor": "fixed",
+ "autoBreakpoint": 480,
+ "content": "push",
+ "handle": "hide",
+ "iconUrl": "",
+ "id": "header-autStand",
+ "modal": false,
+ "resizable": false,
+ "show": "visible",
+ "size": 60,
+ "viewParams": {},
+ "viewPath": "autStand/Docked_Views/Header"
+ }
+ ]
+ },
+ "title": "",
+ "viewPath": "autStand/Detailed_Views/MCM02-NC SORTER"
+ },
+ "/statistics": {
+ "docks": {
+ "bottom": [
+ {
+ "anchor": "fixed",
+ "autoBreakpoint": 480,
+ "content": "push",
+ "handle": "autoHide",
+ "iconUrl": "",
+ "id": "footer",
+ "modal": false,
+ "resizable": false,
+ "show": "visible",
+ "size": 100,
+ "viewParams": {},
+ "viewPath": "Windows/Docked/Footer"
+ }
+ ],
+ "top": [
+ {
+ "anchor": "fixed",
+ "autoBreakpoint": 480,
+ "content": "push",
+ "handle": "autoHide",
+ "iconUrl": "",
+ "id": "header",
+ "modal": false,
+ "resizable": false,
+ "show": "visible",
+ "size": 60,
+ "viewParams": {},
+ "viewPath": "Windows/Docked/Header"
+ }
+ ]
+ },
+ "viewPath": "Windows/Statistics"
+ },
+ "/status": {
+ "docks": {
+ "bottom": [
+ {
+ "anchor": "fixed",
+ "autoBreakpoint": 480,
+ "content": "push",
+ "handle": "autoHide",
+ "iconUrl": "",
+ "id": "footer",
+ "modal": false,
+ "resizable": false,
+ "show": "visible",
+ "size": 100,
+ "viewParams": {},
+ "viewPath": "Windows/Docked/Footer"
+ }
+ ],
+ "top": [
+ {
+ "anchor": "fixed",
+ "autoBreakpoint": 480,
+ "content": "push",
+ "handle": "autoHide",
+ "iconUrl": "",
+ "id": "header",
+ "modal": false,
+ "resizable": false,
+ "show": "visible",
+ "size": 60,
+ "viewParams": {},
+ "viewPath": "Windows/Docked/Header"
+ }
+ ]
+ },
+ "title": "",
+ "viewPath": "Windows/StatusWrapper"
+ }
+ },
+ "sharedDocks": {}
+}
\ No newline at end of file
diff --git a/.resources/8af3a0556ef5e21e769f8db0b48ed503fabf3fb3597841ac8397a64d6a61fe27 b/.resources/8af3a0556ef5e21e769f8db0b48ed503fabf3fb3597841ac8397a64d6a61fe27
new file mode 100644
index 00000000..b48a4d63
--- /dev/null
+++ b/.resources/8af3a0556ef5e21e769f8db0b48ed503fabf3fb3597841ac8397a64d6a61fe27
@@ -0,0 +1,621 @@
+{
+ "custom": {},
+ "params": {
+ "classDropdownValue": [
+ "Error"
+ ],
+ "titleExtra": "9 rows"
+ },
+ "propConfig": {
+ "params.classDropdownValue": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.titleExtra": {
+ "paramDirection": "output",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 324,
+ "width": 1600
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "events": {
+ "component": {
+ "onRowDoubleClick": {
+ "config": {
+ "script": "\tscreen \u003d alarms.resolveScreenBySource(event.value.source)\n\tif screen \u003c\u003e \"\":\n\t\twindow \u003d \"Windows/GraphicsWrapper\"\n\t\tparams \u003d {\"view\": screen}\n\t\tsystem.perspective.navigate(\"/\")\n\t\tsystem.perspective.navigate(view\u003dwindow, params\u003dparams)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Table"
+ },
+ "position": {
+ "height": "100%",
+ "width": "100%"
+ },
+ "propConfig": {
+ "props.data": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]Gateway/ActiveAlarms"
+ },
+ "transforms": [
+ {
+ "expression": "// This expression is only to subscribe to the dropdown value, which is needed to rerun on change.\r\nif({view.params.classDropdownValue}!\u003dNone,\r\n\t{value},\r\n\t{value}\r\n)",
+ "type": "expression"
+ },
+ {
+ "code": "\trows \u003d []\n\tfor r in range(value.getRowCount()):\n\t\tif value.getValueAt(r, \"Class\") not in self.view.params.classDropdownValue:\n\t\t\trows.append(r)\n\tfilteredValue \u003d system.dataset.deleteRows(value, rows)\n\tcou \u003d utils.getRowCount(filteredValue)\n\tself.view.params.titleExtra \u003d \"{:n} rows\".format(cou)\n\t# Return data\n\treturn filteredValue",
+ "type": "script"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "cells": {
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "1px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "1px",
+ "color": "#FF0000",
+ "fontFamily": "Helvetica",
+ "fontSize": "16px"
+ }
+ },
+ "columns": [
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "id",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Number (ID)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 125
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "eventtime",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Event Timestamp"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 175
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "duration",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 125
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "class",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Class"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 125
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "device",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Location"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "description",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Description"
+ },
+ "justify": "auto",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "plctag",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Tag"
+ },
+ "justify": "auto",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "source",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "justify": "auto",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": false,
+ "width": ""
+ }
+ ],
+ "filter": {
+ "enabled": true
+ },
+ "pager": {
+ "bottom": false
+ },
+ "rows": {
+ "highlight": {
+ "enabled": false
+ },
+ "striped": {
+ "enabled": false
+ },
+ "style": {
+ "classes": "table/highlight"
+ }
+ },
+ "style": {
+ "fontFamily": "Helvetica",
+ "fontSize": "16px",
+ "fontWeight": "bold",
+ "zoom": 1
+ }
+ },
+ "scripts": {
+ "customMethods": [],
+ "extensionFunctions": null,
+ "messageHandlers": [
+ {
+ "messageType": "export-data",
+ "pageScope": true,
+ "script": "\tutils.downloadCSV(self, \"Active Alarms\")",
+ "sessionScope": false,
+ "viewScope": false
+ }
+ ]
+ },
+ "type": "ia.display.table"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/8afe0f9320b1a4adbd6c1440a3eff867ab21cbc8bd240c56dbe5582dbe757665 b/.resources/8afe0f9320b1a4adbd6c1440a3eff867ab21cbc8bd240c56dbe5582dbe757665
new file mode 100644
index 00000000..ce9ca16b
--- /dev/null
+++ b/.resources/8afe0f9320b1a4adbd6c1440a3eff867ab21cbc8bd240c56dbe5582dbe757665
@@ -0,0 +1,25 @@
+WITH LANES AS (
+ SELECT
+ MIN(s04_timestamp) AS start_timestamp,
+ MAX(s04_timestamp) AS end_timestamp,
+ 3600/TIMESTAMPDIFF(SECOND, :startDate, :endDate) AS pph_multiplier,
+ sorter,
+ destination_act AS lane,
+ COUNT(*) AS total
+ FROM package_history
+ WHERE s04_timestamp BETWEEN :startDate AND :endDate
+ GROUP BY sorter, s04_act_dest
+ ORDER BY sorter, s04_act_dest
+)
+SELECT
+ start_timestamp,
+ end_timestamp,
+ sorter,
+ lane,
+ /* Counts: */
+ total AS total_count,
+ /* PPH: */
+ ROUND(total*pph_multiplier) AS total_pph,
+ /* Percents: */
+ ROUND(total/total, 4) AS total_percent
+FROM LANES;
\ No newline at end of file
diff --git a/.resources/8be3eb3237c4d98fda64b6e1f9d03137778f3eef8195498bff95525a7a3579ec b/.resources/8be3eb3237c4d98fda64b6e1f9d03137778f3eef8195498bff95525a7a3579ec
new file mode 100644
index 00000000..c56181e5
--- /dev/null
+++ b/.resources/8be3eb3237c4d98fda64b6e1f9d03137778f3eef8195498bff95525a7a3579ec
@@ -0,0 +1,83 @@
+WITH ALARM_TIMELAPSES AS (
+ /* Group related active & clear events into a single row */
+ SELECT
+ e.id, /* Unique to each row in alarm_events, used to look up metadata in alarm_event_data */
+ source, /* Unique alarm path in Ignition */
+ eventtime AS starttime,
+ displaypath, /* Get description */
+ /* Get the last time this event was active within the given time range*/
+ CAST(LEAST(COALESCE((
+ /* Search for the clear event (if exists) for the outer query's active event */
+ SELECT MIN(eventtime)
+ FROM alarm_events e2
+ WHERE e2.eventid = e.eventid /* eventid is unique per alarm instance */
+ AND e2.eventtime >= e.eventtime
+ AND e2.eventtype = 1 /* Look only for the clear event */
+ ORDER BY eventtime ASC
+ ), NOW()), :endDate) AS DATETIME) AS endtime, /* Clamp to end of time range if clear event is after end time */
+ priority
+ FROM alarm_events e
+ /* The range for both start/end allows for index optimizations */
+ WHERE e.eventtime BETWEEN :startDate AND :endDate
+ /* Filter for disabled messages, full messages, and jam messages */
+ AND e.displaypath IN ("Available", "Full", "Full Warn", "25% Full Warn", "50% Full Warn", "75% Full Warn", "HMI Chute Disabled", "Jammed", "EStop or Faulted")
+ /* Filter out system events and active events only */
+ AND e.eventflags & 1 != 1 AND e.eventtype = 0
+), HITLIST AS (
+ /* Group the same type of alarms together to get hit counts and total durations */
+ SELECT
+ MAX(id) AS id, /* Use latest id to get the latest metadata */
+ MIN(starttime) AS firsttime, /* Get the earliest it's been active in the given time range */
+ MAX(endtime) AS lasttime, /* Get the latest it's been active in the given time range */
+ MIN(displaypath) AS displaypath, /* Get one of the displaypaths associated with source */
+ MAX(priority) AS priority,
+ COUNT(*) AS count,
+ SUM(TIME_TO_SEC(TIMEDIFF(endtime, starttime))) AS duration
+ FROM ALARM_TIMELAPSES
+ GROUP BY source
+ ORDER BY count DESC
+ LIMIT 2000
+), HITLIST_DATA AS (
+/* Finally, merge metadata into hitlist */
+ SELECT e.id,
+ e.firsttime, e.lasttime,
+ SUBSTRING_INDEX(SUBSTRING_INDEX(dtag.strvalue, ']', 1), '[', -1) AS sorter,
+ SUBSTRING_INDEX(ddevice.strvalue, '.', 1) AS lane,
+ displaypath AS description,
+ /* Retrieve instance count and total duration */
+ e.count,
+ e.duration
+ FROM HITLIST e
+ /* Lookup PLCTag */
+ JOIN alarm_event_data dtag ON e.id = dtag.id AND dtag.propname = "PLCTag"
+ /* Lookup Device */
+ JOIN alarm_event_data ddevice ON e.id = ddevice.id AND ddevice.propname = "Device"
+)
+SELECT
+ DATE_FORMAT(MIN(firsttime), '%Y-%m-%d %T') AS start_timestamp,
+ DATE_FORMAT(MAX(lasttime), '%Y-%m-%d %T') AS end_timestamp,
+ lane,
+ /* Counts */
+ SUM(IF(description="Available", count, 0)) AS available_count,
+ SUM(IF(description="Full", count, 0)) AS full_count,
+ SUM(IF(description IN ("Full Warn", "50% Full Warn"), count, 0)) AS full_warn_count,
+ SUM(IF(description="25% Full Warn", count, 0)) AS full_warn_25_count,
+ SUM(IF(description IN ("Full Warn", "50% Full Warn"), count, 0)) AS full_warn_50_count,
+ SUM(IF(description="75% Full Warn", count, 0)) AS full_warn_75_count,
+ SUM(IF(description="HMI Chute Disabled", count, 0)) AS disabled_count,
+ SUM(IF(description="Jammed", count, 0)) AS jam_count,
+ SUM(IF(description="EStop or Faulted", count, 0)) AS faulted_count,
+ /* Durations, translated to strings */
+ CAST(SEC_TO_TIME(FLOOR(SUM(IF(description="Available", duration, 0)))) AS CHAR) AS available_duration,
+ CAST(SEC_TO_TIME(FLOOR(SUM(IF(description="Full", duration, 0)))) AS CHAR) AS full_duration,
+ CAST(SEC_TO_TIME(FLOOR(SUM(IF(description IN ("Full Warn", "50% Full Warn"), duration, 0)))) AS CHAR) AS full_warn_duration,
+ CAST(SEC_TO_TIME(FLOOR(SUM(IF(description="25% Full Warn", duration, 0)))) AS CHAR) AS full_warn_25_duration,
+ CAST(SEC_TO_TIME(FLOOR(SUM(IF(description IN ("Full Warn", "50% Full Warn"), duration, 0)))) AS CHAR) AS full_warn_50_duration,
+ CAST(SEC_TO_TIME(FLOOR(SUM(IF(description="75% Full Warn", duration, 0)))) AS CHAR) AS full_warn_75_duration,
+ CAST(SEC_TO_TIME(FLOOR(SUM(IF(description="HMI Chute Disabled", duration, 0)))) AS CHAR) AS disabled_duration,
+ CAST(SEC_TO_TIME(FLOOR(SUM(IF(description="Jammed", duration, 0)))) AS CHAR) AS jam_duration,
+ CAST(SEC_TO_TIME(FLOOR(SUM(IF(description="EStop or Faulted", duration, 0)))) AS CHAR) AS faulted_duration
+FROM HITLIST_DATA
+WHERE {where}
+GROUP BY lane
+ORDER BY lane;
\ No newline at end of file
diff --git a/.resources/8d545612f2b70d26dccfb947e6939262bac1052d3a7de4a79fe5d7d280339641 b/.resources/8d545612f2b70d26dccfb947e6939262bac1052d3a7de4a79fe5d7d280339641
new file mode 100644
index 00000000..92691b5a
--- /dev/null
+++ b/.resources/8d545612f2b70d26dccfb947e6939262bac1052d3a7de4a79fe5d7d280339641
@@ -0,0 +1,10 @@
+{
+ "base": {
+ "style": {
+ "backgroundColor": "#007DFA",
+ "color": "#FFFFFF",
+ "fontFamily": "Arial",
+ "fontWeight": "bold"
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/8d802b0b50228ed2565b1bdb92696ac720824686a02a09d851d26bb4f6eb8f29 b/.resources/8d802b0b50228ed2565b1bdb92696ac720824686a02a09d851d26bb4f6eb8f29
new file mode 100644
index 00000000..ce749f96
--- /dev/null
+++ b/.resources/8d802b0b50228ed2565b1bdb92696ac720824686a02a09d851d26bb4f6eb8f29
@@ -0,0 +1,290 @@
+{
+ "custom": {},
+ "params": {
+ "meta": {
+ "name": "STN_ENABLE"
+ },
+ "props": {
+ "config": {
+ "enableHighlight": true,
+ "isClickable": false
+ },
+ "status": {
+ "color": {
+ "base": "#FFF",
+ "button": "#0F0"
+ },
+ "showAlways": true,
+ "tagPath": "",
+ "tooltip": ""
+ }
+ }
+ },
+ "propConfig": {
+ "params.meta": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.meta.name": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 105,
+ "width": 500
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "PushButton"
+ },
+ "position": {
+ "height": 48,
+ "width": 48,
+ "x": 75.5,
+ "y": 11
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "expression": "try(\r\n\tjsonSet({value}, \"showAlways\", true),\r\n\t{view.params.props.status}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "lbStatus"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 40
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "code": "\treturn utils.extractStatus(value)",
+ "type": "script"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbName"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 5
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.LabelFull"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \u0027\u0027)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_1"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 5
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Name: "
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_11"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 40
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Status:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_12"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 75
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Panel:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbStatus_0"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 75
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.OPC_Server"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \"Unknown\")",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "background-color": "#CFCFCF"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/8df077407e5333e1bd70e10b0e561d01b43246d513cfaa5843443a9c22742da7 b/.resources/8df077407e5333e1bd70e10b0e561d01b43246d513cfaa5843443a9c22742da7
new file mode 100644
index 00000000..8dc85a04
--- /dev/null
+++ b/.resources/8df077407e5333e1bd70e10b0e561d01b43246d513cfaa5843443a9c22742da7
@@ -0,0 +1,8 @@
+SELECT DISTINCT destination_act AS lane
+FROM package_history
+WHERE destination_act IS NOT NULL
+UNION
+SELECT DISTINCT lane_id AS lane
+FROM pe_history
+WHERE lane_id LIKE "CH%" OR lane_id LIKE "RS%1CH"
+ORDER BY lane ASC;
\ No newline at end of file
diff --git a/.resources/8e3469fd4c640edd3064012a7b2b8c3281b08821c5391751a8a9b0fc9e012a32 b/.resources/8e3469fd4c640edd3064012a7b2b8c3281b08821c5391751a8a9b0fc9e012a32
new file mode 100644
index 00000000..1192514d
--- /dev/null
+++ b/.resources/8e3469fd4c640edd3064012a7b2b8c3281b08821c5391751a8a9b0fc9e012a32
@@ -0,0 +1,24 @@
+WITH LANES AS (
+ SELECT
+ MIN(timestamp) AS start_timestamp,
+ MAX(timestamp) AS end_timestamp,
+ 3600/TIMESTAMPDIFF(SECOND, :startDate, :endDate) AS pph_multiplier,
+ lane_id AS induct,
+ SUM(count) AS total
+ FROM pe_history FORCE INDEX (timestamp)
+ WHERE timestamp BETWEEN :startDate AND :endDate
+ AND (lane_id LIKE "UL%" OR lane_id LIKE "PRS%" OR lane_id LIKE "RE%")
+ GROUP BY lane_id
+ ORDER BY lane_id
+)
+SELECT
+ start_timestamp,
+ end_timestamp,
+ induct,
+ /* Counts: */
+ total AS total_count,
+ /* PPH: */
+ ROUND(total*pph_multiplier) AS total_pph,
+ /* Percents: */
+ ROUND(total/total, 4) AS total_percent
+FROM LANES;
\ No newline at end of file
diff --git a/.resources/8e34859d5b5ac4d11e2e056d78d79dc11ecc603c9264784419c275669036ae95 b/.resources/8e34859d5b5ac4d11e2e056d78d79dc11ecc603c9264784419c275669036ae95
new file mode 100644
index 00000000..a0e5019e
--- /dev/null
+++ b/.resources/8e34859d5b5ac4d11e2e056d78d79dc11ecc603c9264784419c275669036ae95
@@ -0,0 +1,702 @@
+{
+ "custom": {
+ "class": 2
+ },
+ "params": {
+ "classDropdownValue": [
+ "Error"
+ ],
+ "titleExtra": "0 rows"
+ },
+ "propConfig": {
+ "custom.class": {
+ "binding": {
+ "config": {
+ "path": "view.params.classDropdownValue"
+ },
+ "transforms": [
+ {
+ "code": "\tvalue \u003d list(value)\n\tif \"Message\" in value:\n\t\treturn 0\n\telif \"Warning\" in value:\n\t\treturn 1\n\telif \"Error\" in value:\n\t\treturn 2\n\telse:\n\t\treturn 0",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "params.classDropdownValue": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.titleExtra": {
+ "paramDirection": "output",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 650,
+ "width": 1600
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "events": {
+ "component": {
+ "onRowDoubleClick": {
+ "config": {
+ "script": "\tscreen \u003d alarms.resolveScreenBySource(event.value.source)\n\tif screen \u003c\u003e \"\":\n\t\twindow \u003d \"Windows/GraphicsWrapper\"\n\t\tparams \u003d {\"view\": screen}\n\t\tsystem.perspective.navigate(\"/\")\n\t\tsystem.perspective.navigate(view\u003dwindow, params\u003dparams)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Table"
+ },
+ "position": {
+ "height": "100%",
+ "width": "100%"
+ },
+ "propConfig": {
+ "props.data": {
+ "binding": {
+ "config": {
+ "parameters": {
+ "class": "{view.custom.class}",
+ "endDate": "{session.custom.timewidget.endDate}",
+ "priority": "0",
+ "startDate": "{session.custom.timewidget.startDate}"
+ },
+ "queryPath": "Alarms/HitList"
+ },
+ "transforms": [
+ {
+ "code": "\tcou \u003d utils.getRowCount(value)\n\tast \u003d \"*\" if cou \u003e\u003d 2000 else \"\"\n\tself.view.params.titleExtra \u003d \"{:n}{} rows\".format(cou, ast)\n\t# Return data\n\treturn value",
+ "type": "script"
+ }
+ ],
+ "type": "query"
+ }
+ }
+ },
+ "props": {
+ "cells": {
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "1px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "1px",
+ "fontFamily": "Helvetica",
+ "fontSize": "16px"
+ }
+ },
+ "columns": [
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "firsttime",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "First Timestamp"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 175
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "lasttime",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Last Timestamp"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 175
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "count",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Count"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 90
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "duration",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 125
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "class",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Class"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 125
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "device",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Location"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "description",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Description"
+ },
+ "justify": "auto",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "plctag",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Tag"
+ },
+ "justify": "auto",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "source",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "justify": "auto",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": false,
+ "width": ""
+ }
+ ],
+ "filter": {
+ "enabled": true
+ },
+ "pager": {
+ "bottom": false
+ },
+ "rows": {
+ "highlight": {
+ "enabled": false
+ },
+ "striped": {
+ "enabled": false
+ },
+ "style": {
+ "classes": "table/highlight"
+ }
+ },
+ "style": {
+ "fontFamily": "Helvetica",
+ "fontSize": "16px",
+ "fontWeight": "bold",
+ "zoom": 1
+ }
+ },
+ "scripts": {
+ "customMethods": [],
+ "extensionFunctions": null,
+ "messageHandlers": [
+ {
+ "messageType": "export-data",
+ "pageScope": true,
+ "script": "\tutils.downloadCSV(self, \"Alarm Hit List\")",
+ "sessionScope": false,
+ "viewScope": false
+ }
+ ]
+ },
+ "type": "ia.display.table"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/8e9985a867c191f599d77616c2a75c416f5464592df6ec57e70f6cc107fd308f b/.resources/8e9985a867c191f599d77616c2a75c416f5464592df6ec57e70f6cc107fd308f
new file mode 100644
index 00000000..a1d0bed5
--- /dev/null
+++ b/.resources/8e9985a867c191f599d77616c2a75c416f5464592df6ec57e70f6cc107fd308f
@@ -0,0 +1,4 @@
+SELECT DISTINCT lane_id
+FROM pe_history
+WHERE lane_id LIKE "RS%4CH"
+ORDER BY lane_id;
\ No newline at end of file
diff --git a/.resources/8f988db83bca2ea2ca9baff5593986509c90e51e8b26c12db018229bdf3f653e b/.resources/8f988db83bca2ea2ca9baff5593986509c90e51e8b26c12db018229bdf3f653e
new file mode 100644
index 00000000..0e2d4d71
--- /dev/null
+++ b/.resources/8f988db83bca2ea2ca9baff5593986509c90e51e8b26c12db018229bdf3f653e
@@ -0,0 +1,3306 @@
+{
+ "custom": {},
+ "params": {},
+ "props": {
+ "defaultSize": {
+ "width": 636
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "GL01_02CH"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 20,
+ "x": 247,
+ "y": 410
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL01/GL01_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false,
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "GL01_03"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 170,
+ "x": 228,
+ "y": 410
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL01/GL01_03/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "GL02_02CH"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 20,
+ "x": 247,
+ "y": 334
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL02/GL02_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false,
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "GL02_03"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 170,
+ "x": 228,
+ "y": 334
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL02/GL02_03/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "GL03_02CH"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 20,
+ "x": 247,
+ "y": 258
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL03/GL03_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "showLabel": false,
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "GL03_03"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 170,
+ "x": 228,
+ "y": 258
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL03/GL03_03/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_01"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 271,
+ "x": 39,
+ "y": 456
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/PS01/PS01_01/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_02"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 130,
+ "x": 39,
+ "y": 186
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/PS01/PS01_02/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_04"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 180,
+ "x": 78,
+ "y": 17
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_04/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_05"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 293,
+ "x": 257,
+ "y": 17
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_05/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_06"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 87,
+ "x": 549,
+ "y": 17
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_06/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS01_03CH"
+ },
+ "position": {
+ "height": 40,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 40,
+ "x": 39,
+ "y": 57
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/PS01/PS01_03CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyorcurve"
+ },
+ {
+ "meta": {
+ "name": "GL01_01"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 20,
+ "x": 266,
+ "y": 390
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL01/GL01_01/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "tipper"
+ }
+ },
+ "type": "dex.display.gaylord"
+ },
+ {
+ "meta": {
+ "name": "GL02_01"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 20,
+ "x": 266,
+ "y": 314
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL02/GL02_01/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "tipper"
+ }
+ },
+ "type": "dex.display.gaylord"
+ },
+ {
+ "meta": {
+ "name": "GL03_01"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 20,
+ "x": 266,
+ "y": 238
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL03/GL03_01/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "tipper"
+ }
+ },
+ "type": "dex.display.gaylord"
+ },
+ {
+ "meta": {
+ "name": "MCP01"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 50,
+ "x": 3,
+ "y": 218
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/MCP01/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.mcp"
+ },
+ {
+ "meta": {
+ "name": "GL01_03_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 79,
+ "y": 411
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL01/GL01_03/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "GL02_03_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 79,
+ "y": 335
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL02/GL02_03/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "GL03_03_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 79,
+ "y": 259
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL03/GL03_03/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_01_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 22,
+ "y": 281
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/PS01/PS01_01/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_02_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 60,
+ "y": 118
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/PS01/PS01_02/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_04_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 174,
+ "y": 38
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_04/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_05_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 484,
+ "y": 38
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_05/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS01_06_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 573,
+ "y": 38
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_06/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "GL01_03_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 206,
+ "y": 411
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL01/GL01_03/EPC1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "GL01_03_EPC2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 206,
+ "y": 369
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL01/GL01_03/EPC2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "GL02_03_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 206,
+ "y": 293
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL02/GL02_03/EPC1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "GL03_03_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 206,
+ "y": 217
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL03/GL03_03/EPC1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "PS01_01_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 18,
+ "y": 358
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/PS01/PS01_01/EPC1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "PS01_01_EPC2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 18,
+ "y": 419
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/PS01/PS01_01/EPC2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "PS01_05_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 406,
+ "y": 38
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_05/EPC1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "GL01_03_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 166,
+ "y": 411
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL01/GL01_03/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "GL01_03_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 185,
+ "y": 411
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL01/GL01_03/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "GL01_03_SS2_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 166,
+ "y": 369
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL01/GL01_03/SS2/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "GL01_03_SS2_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 185,
+ "y": 369
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL01/GL01_03/SS2/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "GL02_03_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 166,
+ "y": 293
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL02/GL02_03/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "GL02_03_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 185,
+ "y": 293
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL02/GL02_03/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "GL03_03_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 166,
+ "y": 217
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL03/GL03_03/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "GL03_03_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 185,
+ "y": 217
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL03/GL03_03/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PS01_01_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 18,
+ "y": 379
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/PS01/PS01_01/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PS01_01_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 18,
+ "y": 398
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/PS01/PS01_01/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PS01_02_RS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 18,
+ "y": 87
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/PS01/PS01_02/RS1/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PS01_05_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 444,
+ "y": 38
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_05/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PS01_05_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 463,
+ "y": 38
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_05/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "GL01_03_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 107,
+ "y": 374
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL01/GL01_03/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "GL01_03_SIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 107,
+ "y": 411
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL01/GL01_03/SIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "GL02_03_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 107,
+ "y": 298
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL02/GL02_03/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "GL03_03_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 107,
+ "y": 222
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL03/GL03_03/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "PS01_01_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 60,
+ "y": 443
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/PS01/PS01_01/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "PS01_01_SIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 60,
+ "y": 387
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/PS01/PS01_01/SIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "PS01_02_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 23,
+ "y": 149
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/PS01/PS01_02/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "PS01_05_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 436,
+ "y": 1
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_05/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "PS01_05_SIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 405,
+ "y": 1
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_05/SIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "GL01_03_BCN1_HRN"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 149,
+ "y": 411
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL01/GL01_03/BCN1/HRN/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "GL01_03_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 149,
+ "y": 426
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL01/GL01_03/BCN1/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "GL01_03_BCN2_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 149,
+ "y": 373
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL01/GL01_03/BCN2/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "GL01_03_BCN2_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 149,
+ "y": 358
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL01/GL01_03/BCN2/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "GL02_03_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 149,
+ "y": 297
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL02/GL02_03/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "GL02_03_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 149,
+ "y": 282
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL02/GL02_03/BCN1/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "GL03_03_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 149,
+ "y": 221
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL03/GL03_03/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "GL03_03_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 149,
+ "y": 206
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL03/GL03_03/BCN1/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PS01_01_BCN1_PUR"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 60,
+ "y": 198
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/PS01/PS01_01/BCN1/PUR/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PS01_01_BCN2_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 60,
+ "y": 215
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/PS01/PS01_01/BCN2/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PS01_01_BCN3_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1,
+ "y": 394
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/PS01/PS01_01/BCN3/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PS01_01_BCN3_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1,
+ "y": 379
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/PS01/PS01_01/BCN3/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PS01_02_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 22,
+ "y": 70
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/PS01/PS01_02/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PS01_05_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 427,
+ "y": 53
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_05/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PS01_05_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 427,
+ "y": 38
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_05/BCN1/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PS01_06_BCN1_PUR"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 618,
+ "y": 38
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_06/BCN1/PUR/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "GL01_03_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 96,
+ "y": 420
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL01/GL01_03/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "GL01_03_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 138,
+ "y": 420
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL01/GL01_03/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "GL02_03_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 96,
+ "y": 344
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL02/GL02_03/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "GL02_03_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 138,
+ "y": 344
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL02/GL02_03/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "GL03_03_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 96,
+ "y": 268
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL03/GL03_03/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "GL03_03_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 138,
+ "y": 268
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/GL03/GL03_03/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS01_01_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 34,
+ "x": 69,
+ "y": 197
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/PS01/PS01_01/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS01_01_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 34,
+ "x": 69,
+ "y": 282
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/PS01/PS01_01/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS01_01_PE3"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 34,
+ "x": 69,
+ "y": 356
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/PS01/PS01_01/PE3/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS01_01_PE4"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 34,
+ "x": 69,
+ "y": 454
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/PS01/PS01_01/PE4/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS01_02_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 29,
+ "y": 58
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP01/PS01/PS01_02/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS01_04_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 256,
+ "y": 7
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_04/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS01_04_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 90,
+ "y": 7
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_04/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS01_05_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 548,
+ "y": 7
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_05/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS01_05_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 319,
+ "y": 7
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_05/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS01_06_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 617,
+ "y": 7
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PS01/PS01_06/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "UNL13_01"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 310,
+ "x": 505,
+ "y": 799
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/UNL13/UNL13_01/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "UNL13_01_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 484,
+ "y": 751
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/UNL13/UNL13_01/EPCa/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "UNL13_01_EPC2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 526,
+ "y": 751
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/UNL13/UNL13_01/EPCb/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "UNL13_01_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 484,
+ "y": 730
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/UNL13/UNL13_01/SSa/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "UNL13_01_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 484,
+ "y": 711
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/UNL13/UNL13_01/SSa/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "UNL13_01_SS2_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 526,
+ "y": 711
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/UNL13/UNL13_01/SSb/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "UNL13_01_SS2_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 526,
+ "y": 730
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/UNL13/UNL13_01/SSb/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "UNL13_01_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 467,
+ "y": 733
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/UNL13/UNL13_01/BCNa/Red/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "UNL13_01_BCN2_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 547,
+ "y": 734
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/UNL13/UNL13_01/BCNb/Red/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "UNL13_01_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 526,
+ "y": 643
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/UNL13/UNL13_01/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "UNL13_01_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 34,
+ "x": 535,
+ "y": 710
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/UNL13/UNL13_01/PEa/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "UNL13_01_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 34,
+ "x": 535,
+ "y": 501
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/UNL13/UNL13_01/PEb/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "UNL13_02"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 88,
+ "x": 505,
+ "y": 490
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/UNL13/UNL13_02/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "UNL13_02_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 526,
+ "y": 405
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/UNL13/UNL13_02/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "UNL13_02_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 526,
+ "y": 462
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/UNL13/UNL13_02/EPB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "UNL13_02_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 526,
+ "y": 441
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/UNL13/UNL13_02/SS/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "UNL13_02_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 526,
+ "y": 422
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/UNL13/UNL13_02/SS/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "UNL13_02_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 547,
+ "y": 430
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/UNL13/UNL13_02/BCN/Red/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "UNL13_02_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 547,
+ "y": 445
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/UNL13/UNL13_02/BCN/Amber/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "UNL13_03"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 367,
+ "x": 505,
+ "y": 403
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/UNL13/UNL13_03/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "UNL13_03_SS2_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 526,
+ "y": 106
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP05/UNL13/UNL13_03/SSc/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "UNL13_03_BCN2_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 547,
+ "y": 96
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/UNL13/UNL13_03/BCNc/Red/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "UNL13_03_SS2_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 526,
+ "y": 87
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP05/UNL13/UNL13_03/SSc/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "UNL13_03_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 34,
+ "x": 535,
+ "y": 401
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/UNL13/UNL13_03/PEa/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "UNL13_03_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 526,
+ "y": 49
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/UNL13/UNL13_03/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "UNL13_03_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 34,
+ "x": 535,
+ "y": 48
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/UNL13/UNL13_03/PEb/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "UNL13_03_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 488,
+ "y": 353
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/UNL13/UNL13_03/BCNa/Amber/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "UNL13_03_BCN2_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 547,
+ "y": 110
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/UNL13/UNL13_03/BCNc/Amber/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "UNL13_03_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 467,
+ "y": 110
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/UNL13/UNL13_03/BCNb/Red/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "UNL13_03_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 484,
+ "y": 106
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP05/UNL13/UNL13_03/SSb/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "UNL13_03_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 484,
+ "y": 87
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP05/UNL13/UNL13_03/SSb/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "UNL13_03_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 484,
+ "y": 66
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/UNL13/UNL13_03/EPCa/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "UNL13_03_EPC2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 526,
+ "y": 66
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/UNL13/UNL13_03/EPCb/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "MCP05"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0 ",
+ "angle": "270deg"
+ },
+ "width": 50,
+ "x": 526,
+ "y": 274
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/MCP05/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.mcp"
+ },
+ {
+ "meta": {
+ "name": "UNL13_01_SEIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 489,
+ "y": 533
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/UNL13/UNL13_01/SEIO/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "isClickable": "SEIO"
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "UNL13_01_EIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 473,
+ "y": 533
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/UNL13/UNL13_01/EIO/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "UNL13_03_EIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 489,
+ "y": 352
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/UNL13/UNL13_03/EIOa/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "UNL13_03_EIO2"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 473,
+ "y": 212
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/UNL13/UNL13_03/EIOb/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "UNL13_03_SEIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 489,
+ "y": 212
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP05/UNL13/UNL13_03/SEIO/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "isClickable": "SEIO"
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "UNL13_02_EPC2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 547,
+ "y": 462
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP05/UNL13/UNL13_02/EGS/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/9066a25f4a84aa578bc81632185caa95c8e2acf670e1e0b26c0f47d0250c182f b/.resources/9066a25f4a84aa578bc81632185caa95c8e2acf670e1e0b26c0f47d0250c182f
new file mode 100644
index 00000000..28f843d8
--- /dev/null
+++ b/.resources/9066a25f4a84aa578bc81632185caa95c8e2acf670e1e0b26c0f47d0250c182f
@@ -0,0 +1,38 @@
+WITH INDUCTS AS (
+ SELECT
+ DATE_FORMAT(MIN(s04_timestamp), "%Y-%m-%d %H:00") AS start_timestamp,
+ sorter,
+ induct,
+ CONCAT("H",
+ CAST(
+ TIMESTAMPDIFF(
+ HOUR,
+ DATE_FORMAT(MIN(s04_timestamp), "%Y-%m-%d %H:00:00"),
+ DATE_FORMAT(LEAST(CURRENT_TIMESTAMP(), :endDate), "%Y-%m-%d %H:00:00")
+ ) AS CHAR
+ )
+ ) AS hour,
+ COUNT(*) AS total
+ FROM package_history
+ WHERE s04_timestamp BETWEEN :startDate AND :endDate
+ GROUP BY sorter, induct, DATE_FORMAT(s04_timestamp, "%Y-%m-%d %H:00")
+), SORTERS AS (
+ SELECT
+ start_timestamp,
+ sorter,
+ SUM(total) AS total
+ FROM INDUCTS
+ GROUP BY sorter, start_timestamp
+)
+SELECT
+ I.start_timestamp,
+ hour,
+ /* Counts: */
+ I.total AS total_count,
+ /* PPH: */
+ I.total AS total_pph,
+ /* Percents: */
+ ROUND(I.total/S.total, 4) AS 'total/sorter_percent'
+FROM INDUCTS I, SORTERS S
+WHERE induct=:induct AND I.sorter=S.sorter AND I.start_timestamp=S.start_timestamp
+ORDER BY start_timestamp ASC;
\ No newline at end of file
diff --git a/.resources/90f85261c8ded8ba8dd6c9827ca0438740f38536663cd8e9a84403688673b308 b/.resources/90f85261c8ded8ba8dd6c9827ca0438740f38536663cd8e9a84403688673b308
new file mode 100644
index 00000000..3e50351d
--- /dev/null
+++ b/.resources/90f85261c8ded8ba8dd6c9827ca0438740f38536663cd8e9a84403688673b308
@@ -0,0 +1,68 @@
+def getStatusColor():
+ # Check PLC statuses:
+ devices = system.device.listDevices()
+ for device in range(devices.getRowCount()):
+ if devices.getValueAt(device, "Enabled") and devices.getValueAt(device, "State") <> "Connected":
+ return "#F00"
+ # Check Database statuses:
+ databases = system.db.getConnections()
+ for database in range(databases.getRowCount()):
+ if databases.getValueAt(database, "Status") <> "Valid":
+ return "#00F"
+ # Everything is okay:
+ return "#0F0"
+
+
+def getStatusTooltip():
+ tooltip = ["Connection Status", ""]
+ # Check PLC statuses:
+ devices = system.device.listDevices()
+ devices = system.dataset.sort(devices, "Name")
+ for device in range(devices.getRowCount()):
+ name = devices.getValueAt(device, "Name")
+ status = devices.getValueAt(device, "State")
+ tooltip.append(name+": "+status)
+ # Check Database statuses:
+ databases = system.db.getConnections()
+ databases = system.dataset.sort(databases, "Name")
+ for database in range(databases.getRowCount()):
+ name = databases.getValueAt(database, "Name")
+ status = databases.getValueAt(database, "Status")
+ if status == "Valid":
+ status = "Connected"
+ tooltip.append(name+": "+status)
+ # Return tooltip:
+ return "
".join(tooltip)
+
+def getFireAlarm():
+ # Check PLC:
+ paths = []
+ devices = system.device.listDevices()
+ for device in range(devices.getRowCount()):
+ if devices.getValueAt(device, "Enabled") and devices.getValueAt(device, "State") == "Connected":
+ path = devices.getValueAt(device, "Name")
+ paths.append(path + "/" + path + "/Alarms/FireAlarm")
+ # Read values:
+ return max(v.value for v in system.tag.readBlocking(paths) if v.quality.isGood())
+
+def getPowerSaveMin():
+ # Check PLC:
+ paths = []
+ devices = system.device.listDevices()
+ for device in range(devices.getRowCount()):
+ if devices.getValueAt(device, "Enabled") and devices.getValueAt(device, "State") == "Connected":
+ path = devices.getValueAt(device, "Name")
+ paths.append(path + "/" + path + "/PowerSaveMin")
+ # Read values:
+ return min(v.value for v in system.tag.readBlocking(paths) if v.quality.isGood())
+
+def setPowerSaveMin(value):
+ # Check PLC:
+ paths = []
+ devices = system.device.listDevices()
+ for device in range(devices.getRowCount()):
+ if devices.getValueAt(device, "Enabled") and devices.getValueAt(device, "State") == "Connected":
+ path = devices.getValueAt(device, "Name")
+ paths.append(path + "/" + path + "/PowerSaveMin")
+ # Write values:
+ system.tag.writeBlocking(paths, [value]*len(paths))
\ No newline at end of file
diff --git a/.resources/93fbbd2d3b66102297e3d2c77a1bf8581befa322bbe4fbc2f0e10e8be31a422e b/.resources/93fbbd2d3b66102297e3d2c77a1bf8581befa322bbe4fbc2f0e10e8be31a422e
new file mode 100644
index 00000000..48d6ed05
--- /dev/null
+++ b/.resources/93fbbd2d3b66102297e3d2c77a1bf8581befa322bbe4fbc2f0e10e8be31a422e
@@ -0,0 +1,98 @@
+WITH DISABLE_EVENTS AS (
+ /* Group related active & clear events into a single row */
+ SELECT
+ id,
+ NOT eventtype AS eventtype,
+ IF(eventtype = 1, COALESCE(LEAD(eventid, 1) OVER w, source), eventid) AS eventid,
+ source, /* Unique alarm path in Ignition */
+ eventtime,
+ displaypath /* Get description */
+ FROM alarm_events
+ /* The range for both start/end allows for index optimizations */
+ WHERE eventtime BETWEEN (:startDate - INTERVAL 4 DAY) AND (:endDate + INTERVAL 4 DAY)
+ /* Filter for disabled messages, full messages, and jam messages */
+ AND displaypath = "HMI Chute Disabled"
+ AND (source LIKE "%MCP05/%" or source LIKE "%MCP06/%")
+ /* Filter out system events and filter for active/clear events only */
+ AND eventflags & 1 != 1 AND eventtype IN (0, 1)
+ WINDOW w AS (PARTITION BY source ORDER BY eventtime ASC)
+), ENABLES AS (
+ /* Group related active & clear events into a single row */
+ SELECT
+ eventid,
+ SUBSTRING_INDEX(ANY_VALUE(ddevice.strvalue), '.', 1) AS lane,
+ GREATEST(COALESCE(MIN(IF(eventtype=0, eventtime, NULL)), (:startDate - INTERVAL 4 DAY)), :startDate) AS starttime,
+ LEAST(COALESCE(MAX(IF(eventtype=1, eventtime, NULL)), LEAST(NOW(), (:endDate + INTERVAL 4 DAY))), :endDate) AS endtime,
+ ANY_VALUE(displaypath) AS displaypath /* Get description */
+ FROM DISABLE_EVENTS e
+ JOIN alarm_event_data ddevice ON e.id = ddevice.id AND ddevice.propname = "Device"
+ GROUP BY eventid
+ HAVING endtime >= :startDate AND starttime <= :endDate
+ ORDER BY starttime ASC
+), STATES AS (
+ /* Group related active & clear events into a single row */
+ SELECT
+ eventid,
+ SUBSTRING_INDEX(ANY_VALUE(ddevice.strvalue), '.', 1) AS lane,
+ GREATEST(COALESCE(MIN(IF(eventtype=0, eventtime, NULL)), (:startDate - INTERVAL 4 DAY)), :startDate) AS starttime,
+ LEAST(COALESCE(MAX(IF(eventtype=1, eventtime, NULL)), LEAST(NOW(), (:endDate + INTERVAL 4 DAY))), :endDate) AS endtime,
+ ANY_VALUE(displaypath) AS displaypath /* Get description */
+ FROM alarm_events e
+ JOIN alarm_event_data ddevice ON e.id = ddevice.id AND ddevice.propname = "Device"
+ /* The range for both start/end allows for index optimizations */
+ WHERE eventtime BETWEEN (:startDate - INTERVAL 4 DAY) AND (:endDate + INTERVAL 4 DAY)
+ /* Filter for disabled messages, full messages, and jam messages */
+ AND displaypath IN ("Full", "Full Warn", "25% Full Warn", "50% Full Warn", "75% Full Warn", "Jammed", "EStop or Faulted", "Extend PX Faulted", "Retract PX Faulted")
+ AND (source LIKE "%MCP05/%" or source LIKE "%MCP06/%")
+ /* Filter out system events and clear events only */
+ AND eventflags & 1 != 1 AND eventtype IN (0, 1)
+ GROUP BY eventid
+ HAVING endtime >= :startDate AND starttime <= :endDate
+), COMBINED AS (
+ SELECT
+ /* Meta */
+ MIN(LEAST(e.starttime, COALESCE(s.starttime, e.starttime))) AS firsttime, /* Get the earliest it's been active in the given time range */
+ MAX(GREATEST(e.endtime, COALESCE(s.endtime, e.endtime))) AS lasttime, /* Get the latest it's been active in the given time range */
+ MAX(e.lane) AS lane, /* Use latest id to get the latest metadata */
+ /* Durations */
+ TIME_TO_SEC(TIMEDIFF(e.endtime, e.starttime)) AS enabled_duration,
+ SUM(IF(s.displaypath="25% Full Warn", TIME_TO_SEC(TIMEDIFF(LEAST(e.endtime, s.endtime), GREATEST(e.starttime, s.starttime))), 0)) AS full25_duration,
+ SUM(IF(s.displaypath IN ("Full Warn", "50% Full Warn"), TIME_TO_SEC(TIMEDIFF(LEAST(e.endtime, s.endtime), GREATEST(e.starttime, s.starttime))), 0)) AS full50_duration,
+ SUM(IF(s.displaypath="75% Full Warn", TIME_TO_SEC(TIMEDIFF(LEAST(e.endtime, s.endtime), GREATEST(e.starttime, s.starttime))), 0)) AS full75_duration,
+ SUM(IF(s.displaypath="Full", TIME_TO_SEC(TIMEDIFF(LEAST(e.endtime, s.endtime), GREATEST(e.starttime, s.starttime))), 0)) AS full100_duration,
+ SUM(IF(s.displaypath="Jammed", TIME_TO_SEC(TIMEDIFF(LEAST(e.endtime, s.endtime), GREATEST(e.starttime, s.starttime))), 0)) AS jammed_duration,
+ SUM(IF(s.displaypath IN ("EStop or Faulted", "Extend PX Faulted", "Retract PX Faulted"), TIME_TO_SEC(TIMEDIFF(LEAST(e.endtime, s.endtime), GREATEST(e.starttime, s.starttime))), 0)) AS faulted_duration#,
+ /* Max Durations */
+ #TIME_TO_SEC(TIMEDIFF(e.endtime, e.starttime)) AS enabled_duration_max,
+ #MAX(IF(s.displaypath="25% Full Warn", TIME_TO_SEC(TIMEDIFF(LEAST(e.endtime, s.endtime), GREATEST(e.starttime, s.starttime))), 0)) AS full25_duration_max,
+ #MAX(IF(s.displaypath IN ("Full Warn", "50% Full Warn"), TIME_TO_SEC(TIMEDIFF(LEAST(e.endtime, s.endtime), GREATEST(e.starttime, s.starttime))), 0)) AS full50_duration_max,
+ #MAX(IF(s.displaypath="75% Full Warn", TIME_TO_SEC(TIMEDIFF(LEAST(e.endtime, s.endtime), GREATEST(e.starttime, s.starttime))), 0)) AS full75_duration_max,
+ #MAX(IF(s.displaypath="Full", TIME_TO_SEC(TIMEDIFF(LEAST(e.endtime, s.endtime), GREATEST(e.starttime, s.starttime))), 0)) AS full100_duration_max,
+ #MAX(IF(s.displaypath="Jammed", TIME_TO_SEC(TIMEDIFF(LEAST(e.endtime, s.endtime), GREATEST(e.starttime, s.starttime))), 0)) AS jammed_duration_max,
+ #MAX(IF(s.displaypath IN ("EStop or Faulted", "Extend PX Faulted", "Retract PX Faulted"), TIME_TO_SEC(TIMEDIFF(LEAST(e.endtime, s.endtime), GREATEST(e.starttime, s.starttime))), 0)) AS faulted_duration_max
+ FROM ENABLES e
+ LEFT JOIN STATES s ON e.lane = s.lane AND e.starttime <= s.endtime AND e.endtime >= s.starttime
+ GROUP BY e.eventid
+)
+SELECT
+ DATE_FORMAT(MIN(firsttime), '%Y-%m-%d %T') AS firsttime,
+ DATE_FORMAT(MAX(lasttime), '%Y-%m-%d %T') AS lasttime,
+ lane,
+ CAST(SEC_TO_TIME(SUM(enabled_duration)) AS CHAR) AS enabled_duration,
+ CAST(SEC_TO_TIME(SUM(enabled_duration - full100_duration - jammed_duration - faulted_duration)) AS CHAR) AS available_duration,
+ CAST(SEC_TO_TIME(SUM(enabled_duration - full25_duration - full50_duration - full75_duration - full100_duration - jammed_duration - faulted_duration)) AS CHAR) AS empty_duration,
+ CAST(SEC_TO_TIME(SUM(full25_duration)) AS CHAR) AS full25_duration,
+ CAST(SEC_TO_TIME(SUM(full50_duration)) AS CHAR) AS full50_duration,
+ CAST(SEC_TO_TIME(SUM(full75_duration)) AS CHAR) AS full75_duration,
+ CAST(SEC_TO_TIME(SUM(full100_duration)) AS CHAR) AS full100_duration,
+ CAST(SEC_TO_TIME(SUM(jammed_duration)) AS CHAR) AS jammed_duration,
+ CAST(SEC_TO_TIME(SUM(faulted_duration)) AS CHAR) AS faulted_duration,
+ /* Inbound OEE (Loop's Efficiency) wants to have 25%/50%/75%/100% full all the time ==> 100% */
+ /* (Full25 + Full50 + Full75 + Full100) / (Enabled - Jammed - Faulted) */
+ SUM(full25_duration + full50_duration + full75_duration + full100_duration) / SUM(enabled_duration - jammed_duration - faulted_duration) AS inbound_oee,
+ /* Induct OEE (Operator's Efficiency) wants to have Empty or 25%/50%/75% full all the time ==> 100%, and is penalized for the time with active jams */
+ /* (Empty + Full25 + Full50 + Full75) / (Enabled - Faulted) */
+ SUM((enabled_duration - full100_duration - jammed_duration - faulted_duration)) / SUM(enabled_duration - faulted_duration) AS induct_oee
+FROM COMBINED c
+GROUP BY lane
+ORDER BY lane;
\ No newline at end of file
diff --git a/.resources/94099e62b52428a373d483f4bd0cccf528e64f8d09a15442fd663efdfee0c333 b/.resources/94099e62b52428a373d483f4bd0cccf528e64f8d09a15442fd663efdfee0c333
new file mode 100644
index 00000000..a4b810c5
--- /dev/null
+++ b/.resources/94099e62b52428a373d483f4bd0cccf528e64f8d09a15442fd663efdfee0c333
@@ -0,0 +1,61 @@
+import copy
+
+DEFAULT_BUTTON = {
+ "position": "absolute",
+ "top": "19px",
+ "left": "15px",
+ "bottom": "auto",
+ "right": "auto",
+ "zIndex": "auto",
+ "width": "auto",
+ "height": "auto",
+ "viewPath": "Templates/Buttons/NavButtonBanner",
+ "viewParams": {
+ #"label": "System",
+ "showIcons": True,
+ #"tagPath": "[default]SystemStatus",
+ #"view": "Windows/Graphics/Overview"
+ },
+ "style": {
+ "classes": ""
+ }
+}
+
+def genButtonsFromDataset(areas):
+ buttons = []
+
+ for i in range(areas.getRowCount()):
+ # Get values from row:
+ label = areas.getValueAt(i, "Label")
+ tagPath = areas.getValueAt(i, "TagPath")
+ view = areas.getValueAt(i, "View")
+ # Clone and customize button:
+ button = copy.deepcopy(DEFAULT_BUTTON)
+ button["left"] = str(15+140*i)+"px"
+ if label <> "":
+ button["viewParams"]["label"] = label
+ if tagPath <> "":
+ button["viewParams"]["tagPath"] = tagPath
+ else:
+ button["viewParams"]["showIcons"] = False
+ if view <> "":
+ button["viewParams"]["view"] = view
+ # Add button to list:
+ buttons.append(button)
+
+ return buttons
+
+def genButtonsFromViews(areas=None):
+ if areas == None:
+ projectName = system.project.getProjectName()
+ path = os.path.join(os.getcwd(), "data", "projects", projectName, "com.inductiveautomation.perspective", "views", "Windows", "Graphics")
+ areas = [name for name in os.listdir(".") if os.path.isdir(name) and name.lower() not in ["overview", "templates"]]
+
+ buttons = []
+
+ for i, area in enumerate(areas):
+ button = copy.deepcopy(DEFAULT_BUTTON)
+ button["left"] = str(15+145*i)+"px"
+ button["viewParams"]["tagPath"] = area
+
+ return buttons
\ No newline at end of file
diff --git a/.resources/941ecaaabce15435aeb6d90b1360b0851f35a02144277c4515b6a8e4aa586011 b/.resources/941ecaaabce15435aeb6d90b1360b0851f35a02144277c4515b6a8e4aa586011
new file mode 100644
index 00000000..571f7e67
--- /dev/null
+++ b/.resources/941ecaaabce15435aeb6d90b1360b0851f35a02144277c4515b6a8e4aa586011
@@ -0,0 +1,10 @@
+{
+ "base": {
+ "style": {
+ "backgroundColor": "#F00077",
+ "color": "#FFFFFF",
+ "fontFamily": "Arial",
+ "fontWeight": "bold"
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/96b898945159ce7fbf3ed6dd3cb55421597c58866e0202a76703a2c97df2ef70 b/.resources/96b898945159ce7fbf3ed6dd3cb55421597c58866e0202a76703a2c97df2ef70
new file mode 100644
index 00000000..fcb4cbc7
--- /dev/null
+++ b/.resources/96b898945159ce7fbf3ed6dd3cb55421597c58866e0202a76703a2c97df2ef70
@@ -0,0 +1,10 @@
+{
+ "base": {
+ "style": {
+ "backgroundColor": "#FCC400",
+ "color": "#000000",
+ "fontFamily": "Arial",
+ "fontWeight": "bold"
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/973105551a2cc0a1a26e65ef0e2014c871a741065272c055d18f6eb4c0dc8232 b/.resources/973105551a2cc0a1a26e65ef0e2014c871a741065272c055d18f6eb4c0dc8232
new file mode 100644
index 00000000..298a52e8
--- /dev/null
+++ b/.resources/973105551a2cc0a1a26e65ef0e2014c871a741065272c055d18f6eb4c0dc8232
@@ -0,0 +1,18 @@
+WITH LANES AS (
+ SELECT
+ DATE_FORMAT(MIN(s04_timestamp), "%Y-%m-%d %H:%i:00") AS time,
+ COUNT(*) AS total
+ FROM package_history
+ WHERE s04_timestamp BETWEEN :startDate AND :endDate
+ AND destination_act = :lane
+ GROUP BY DATE_FORMAT(s04_timestamp, "%Y-%m-%d %H:%i:00")
+ ORDER BY DATE_FORMAT(s04_timestamp, "%Y-%m-%d %H:%i:00")
+)
+SELECT
+ time,
+ /* Counts: */
+ total AS total_count,
+ /* PPH: */
+ ROUND(total*60) AS total_pph
+ /* Percents: */
+FROM LANES;
\ No newline at end of file
diff --git a/.resources/97d6f37525c72f9c5ed23dcc2f8605c93adc6dd2738fb70e017217d9efe818fe b/.resources/97d6f37525c72f9c5ed23dcc2f8605c93adc6dd2738fb70e017217d9efe818fe
new file mode 100644
index 00000000..c934873d
--- /dev/null
+++ b/.resources/97d6f37525c72f9c5ed23dcc2f8605c93adc6dd2738fb70e017217d9efe818fe
@@ -0,0 +1,323 @@
+{
+ "custom": {
+ "forceModeRefresh": false,
+ "setDatesScript": null
+ },
+ "params": {
+ "endDate": "2021-02-11 00:00:00",
+ "refreshDelay": 30,
+ "startDate": "2021-02-10 00:00:00"
+ },
+ "propConfig": {
+ "custom.forceModeRefresh": {
+ "persistent": true
+ },
+ "custom.setDatesScript": {
+ "binding": {
+ "config": {
+ "expression": "toBoolean(now({view.params.refreshDelay}*1000))\r\n\u0026\u0026{view.custom.forceModeRefresh}"
+ },
+ "transforms": [
+ {
+ "code": "\tnow \u003d system.date.now()\n\tcurrentDay \u003d system.date.getDate(system.date.getYear(now), system.date.getMonth(now), system.date.getDayOfMonth(now))\n\tpreviousDay \u003d system.date.addDays(currentDay, -1)\n\tnextDay \u003d system.date.addDays(currentDay, 1)\n\tstartDate \u003d self.getChild(\"root\").getChild(\"StartDateTime\")\n\tendDate \u003d self.getChild(\"root\").getChild(\"EndDateTime\")\n\tvalue \u003d self.getChild(\"root\").getChild(\"Mode\").props.value\n\t\n\t# Retrieve shifts table:\n\tshifts \u003d utils.datasetToJSON(system.tag.readBlocking([\"[default]Gateway/Shifts\"])[0].value)\n\t# Filter for shifts that are enabled and for today:\n\tcurrentDayOfWeek \u003d system.date.getDayOfWeek(now)\n\tcurrentDayOfWeek \u003d \"is\" + [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"][currentDayOfWeek-1]\n\tshifts \u003d [shift for shift in shifts if shift[\"Enabled\"] and shift[currentDayOfWeek]]\n\t# Build SORTS list:\n\tSORTS \u003d [{ \"name\": shift[\"Name\"], \"start\": [shift[\"StartHour\"],shift[\"StartMinute\"]], \"actualEnd\": [shift[\"EndHour\"],shift[\"EndMinute\"]] } for shift in shifts]\n\tSORTS.sort(key\u003dlambda x: x[\"start\"])\n\t# Add end time based on next sort:\n\tfor i in range(len(SORTS) - 1):\n\t\tSORTS[i][\"end\"] \u003d SORTS[i+1][\"start\"]\n\tSORTS[-1][\"end\"] \u003d SORTS[0][\"start\"]\n\t\n\tstart \u003d startDate.props.value\n\tend \u003d endDate.props.value\n\t\n\tif value \u003d\u003d \"past30min\":\n\t\tstart \u003d system.date.addMinutes(now, -30)\n\t\tend \u003d now\n\t\n\telif value \u003d\u003d \"pastHour\":\n\t\tstart \u003d system.date.addHours(now, -1)\n\t\tend \u003d now\n\t\n\telif value \u003d\u003d \"past2Hours\":\n\t\tstart \u003d system.date.addHours(now, -2)\n\t\tend \u003d now\n\t\n\telif value \u003d\u003d \"past4Hours\":\n\t\tstart \u003d system.date.addHours(now, -4)\n\t\tend \u003d now\n\t\n\telif value \u003d\u003d \"past8Hours\":\n\t\tstart \u003d system.date.addHours(now, -8)\n\t\tend \u003d now\n\t\n\telif value \u003d\u003d \"currentDay\":\n\t\tstart \u003d currentDay\n\t\tend \u003d system.date.addDays(currentDay, 1)\n\t\n\telif value \u003d\u003d \"previousDay\":\n\t\tstart \u003d previousDay\n\t\tend \u003d currentDay\n\t\t\n\telse:\n\t\t# Resolve sort:\n\t\tif value \u003d\u003d \"currentShift\":\n\t\t\tsort \u003d SORTS[-1] # Default to last sort (assumes last sort includes midnight)\n\t\t\tfor i, s in enumerate(SORTS[::-1]):\n\t\t\t\tif system.date.isAfter(now, system.date.setTime(currentDay, s[\"start\"][0], s[\"start\"][1], 0)):\n\t\t\t\t\tsort \u003d s\n\t\t\t\t\tbreak\n\t\t\t# Apply:\n\t\t\tstart \u003d system.date.setTime(currentDay, sort[\"start\"][0], sort[\"start\"][1], 0)\n\t\t\tend \u003d system.date.setTime(currentDay, sort[\"actualEnd\"][0], sort[\"actualEnd\"][1], 0)\n\t\telif value \u003d\u003d \"previousShift\":\n\t\t\tsort \u003d SORTS[-2] # Default to second to last sort (assumes last sort includes midnight)\n\t\t\tSORTS_REV \u003d SORTS[:]\n\t\t\tSORTS_REV.sort(key\u003dlambda x: x[\"end\"])\n\t\t\tfor i, s in enumerate(SORTS_REV[::-1]):\n\t\t\t\tif system.date.isAfter(now, system.date.setTime(currentDay, s[\"end\"][0], s[\"end\"][1], 0)):\n\t\t\t\t\tsort \u003d s\n\t\t\t\t\tbreak\n\t\t\t# Apply:\n\t\t\tstart \u003d system.date.setTime(currentDay, sort[\"start\"][0], sort[\"start\"][1], 0)\n\t\t\tend \u003d system.date.setTime(currentDay, sort[\"actualEnd\"][0], sort[\"actualEnd\"][1], 0)\n\t\telse:\n\t\t\tfor s in SORTS:\n\t\t\t\tif s[\"name\"] \u003d\u003d value:\n\t\t\t\t\t# Apply:\n\t\t\t\t\tstart \u003d system.date.setTime(currentDay, s[\"start\"][0], s[\"start\"][1], 0)\n\t\t\t\t\tend \u003d system.date.setTime(currentDay, s[\"actualEnd\"][0], s[\"actualEnd\"][1], 0)\n\t\t\t\t\tbreak\n\n\t\t# Increase end if before start:\n\t\tif system.date.isAfter(start, end):\n\t\t\tend \u003d system.date.addDays(end, 1)\n\t\t# If current time is before startDate, then subtract one day to show last occurrence of that sort:\n\t\tif system.date.isBefore(now, start):\n\t\t\tstart \u003d system.date.addDays(start, -1)\n\t\t\tend \u003d system.date.addDays(end, -1)\n\t\t\t\n\t# Apply:\n\tif startDate.props.value !\u003d start or endDate.props.value !\u003d end or (system.date.isAfter(now, start) and system.date.isBefore(now, system.date.addMinutes(end, 1))):\n\t\tstartDate.props.value \u003d start\n\t\tendDate.props.value \u003d end\n\t\tself.session.custom.timewidget \u003d {\n\t\t\t\"startDate\": start,\n\t\t\t\"endDate\": end,\n\t\t\t\"mode\": value,\n\t\t\t\"update\": now\n\t\t}\n\t\n\treturn value",
+ "type": "script"
+ }
+ ],
+ "type": "expr"
+ },
+ "persistent": true
+ },
+ "params.endDate": {
+ "binding": {
+ "config": {
+ "path": "/root/EndDateTime.props.formattedValues.datetime"
+ },
+ "type": "property"
+ },
+ "paramDirection": "output",
+ "persistent": true
+ },
+ "params.refreshDelay": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.startDate": {
+ "binding": {
+ "config": {
+ "path": "/root/StartDateTime.props.formattedValues.datetime"
+ },
+ "type": "property"
+ },
+ "paramDirection": "output",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 40,
+ "width": 550
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "StartLabel"
+ },
+ "position": {
+ "height": 20,
+ "width": 40,
+ "x": 180,
+ "y": 10
+ },
+ "props": {
+ "style": {
+ "color": "#fff",
+ "fontSize": "14px",
+ "textAlign": "right"
+ },
+ "text": "Start:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\ttimewidget \u003d self.session.custom.timewidget\n\thours \u003d system.date.hoursBetween(self.props.value, timewidget.endDate)\n\tsystem.perspective.print(hours)\n\tnewVal \u003d {\n\t\t\"startDate\": self.props.value,\n\t\t\"endDate\": timewidget.endDate,\n\t\t\"mode\": timewidget.mode\n\t}\n\tif hours \u003e 7*24:\n\t\t# Cap endDate to within 7 days of startDate:\n\t\tnewVal[\"endDate\"] \u003d system.date.addDays(self.props.value, 7)\n\t# Apply changes:\n\tself.session.custom.timewidget \u003d newVal"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "StartDateTime"
+ },
+ "position": {
+ "height": 20,
+ "width": 135,
+ "x": 225,
+ "y": 10
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "path": "../Mode.props.value"
+ },
+ "transforms": [
+ {
+ "expression": "{value} \u003d \"custom\"",
+ "type": "expression"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "props.value": {
+ "binding": {
+ "config": {
+ "path": "session.custom.timewidget.startDate"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "format": "YYYY-MM-DD HH:mm:ss",
+ "formattedValue": "2022-03-04 04:00:00",
+ "formattedValues": {
+ "date": "2021-02-10",
+ "datetime": "2021-02-10 00:00:00",
+ "time": "00:00:00"
+ },
+ "inputProps": {
+ "style": {
+ "fontSize": "12px"
+ }
+ }
+ },
+ "type": "ia.input.date-time-input"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\ttimewidget \u003d self.session.custom.timewidget\n\thours \u003d system.date.hoursBetween(timewidget.startDate, self.props.value)\n\tnewVal \u003d {\n\t\t\"startDate\": timewidget.startDate,\n\t\t\"endDate\": self.props.value,\n\t\t\"mode\": timewidget.mode\n\t}\n\tif hours \u003e 7*24:\n\t\t# Cap startDate to within 7 days of endDate:\n\t\tnewVal[\"startDate\"] \u003d system.date.addDays(self.props.value, -7)\n\t# Apply changes:\n\tself.session.custom.timewidget \u003d newVal"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "EndDateTime"
+ },
+ "position": {
+ "height": 20,
+ "width": 135,
+ "x": 410,
+ "y": 10
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "path": "../Mode.props.value"
+ },
+ "transforms": [
+ {
+ "expression": "{value} \u003d \"custom\"",
+ "type": "expression"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "props.value": {
+ "binding": {
+ "config": {
+ "path": "session.custom.timewidget.endDate"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "format": "YYYY-MM-DD HH:mm:ss",
+ "formattedValue": "2022-03-05 04:00:00",
+ "formattedValues": {
+ "date": "2021-02-11",
+ "datetime": "2021-02-11 00:00:00",
+ "time": "00:00:00"
+ },
+ "inputProps": {
+ "style": {
+ "fontSize": "12px"
+ }
+ }
+ },
+ "type": "ia.input.date-time-input"
+ },
+ {
+ "meta": {
+ "name": "EndLabel"
+ },
+ "position": {
+ "height": 20,
+ "width": 40,
+ "x": 365,
+ "y": 10
+ },
+ "props": {
+ "style": {
+ "color": "#fff",
+ "fontSize": "14px",
+ "textAlign": "right"
+ },
+ "text": "End:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "ModeLabel"
+ },
+ "position": {
+ "height": 20,
+ "width": 45,
+ "x": 5,
+ "y": 10
+ },
+ "props": {
+ "style": {
+ "color": "#fff",
+ "fontSize": "14px",
+ "textAlign": "right"
+ },
+ "text": "Period:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tself.session.custom.timewidget.mode \u003d self.props.value\n\tself.view.custom.forceModeRefresh \u003d not self.view.custom.forceModeRefresh"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Mode"
+ },
+ "position": {
+ "height": 20,
+ "width": 120,
+ "x": 55,
+ "y": 10
+ },
+ "propConfig": {
+ "props.options": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]Gateway/Shifts"
+ },
+ "transforms": [
+ {
+ "code": "\t# Add default relative options:\n\toptions \u003d [\n\t { \"value\": \"past30min\", \"label\": \"Past 30min\" },\n\t { \"value\": \"pastHour\", \"label\": \"Past Hour\" },\n\t { \"value\": \"past2Hours\", \"label\": \"Past 2 Hours\" },\n\t { \"value\": \"past4Hours\", \"label\": \"Past 4 Hours\" },\n\t { \"value\": \"past8Hours\", \"label\": \"Past 8 Hours\" },\n\t { \"value\": \"currentDay\", \"label\": \"Current Day\" },\n\t { \"value\": \"previousDay\", \"label\": \"Previous Day\" },\n\t { \"value\": \"currentShift\", \"label\": \"Current Shift\" },\n\t { \"value\": \"previousShift\", \"label\": \"Previous Shift\" }\n\t]\n\t# Add shifts:\n\tshifts \u003d utils.datasetToJSON(value)\n\t# Filter for shifts that are enabled and for today:\n\tcurrentDayOfWeek \u003d system.date.getDayOfWeek(system.date.now())\n\tcurrentDayOfWeek \u003d \"is\" + [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"][currentDayOfWeek-1]\n\tshifts \u003d [shift for shift in shifts if shift[\"Enabled\"] and shift[currentDayOfWeek]]\n\t# Add shifts to options:\n\tfor shift in shifts:\n\t\tif shift[\"Enabled\"]:\n\t\t\toptions.append({ \"value\": shift[\"Name\"], \"label\": \"Shift: \" + shift[\"Name\"] })\n\t# Add custom:\n\toptions.append({ \"value\": \"custom\", \"label\": \"Custom\" })\n\t# Return options:\n\treturn options",
+ "type": "script"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.value": {
+ "binding": {
+ "config": {
+ "struct": {
+ "mode": "{session.custom.timewidget.mode}",
+ "options": "{this.props.options}"
+ },
+ "waitOnAll": true
+ },
+ "transforms": [
+ {
+ "code": "\tif value.options !\u003d None:\n\t\tfor option in value.options:\n\t\t\tif option.value \u003d\u003d value.mode:\n\t\t\t\treturn value.mode\n\t# Value isn\u0027t in options, default to currentDay:\n\treturn \"currentDay\"",
+ "type": "script"
+ }
+ ],
+ "type": "expr-struct"
+ }
+ }
+ },
+ "props": {
+ "dropdownOptionStyle": {
+ "fontSize": "11px"
+ },
+ "style": {
+ "fontSize": "10px"
+ }
+ },
+ "type": "ia.input.dropdown"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/9d6a2ea9b8dc45d3a47dc74a84b189c914940f60615ab4d397f8f7e5f5ae4186 b/.resources/9d6a2ea9b8dc45d3a47dc74a84b189c914940f60615ab4d397f8f7e5f5ae4186
new file mode 100644
index 00000000..81d3de91
--- /dev/null
+++ b/.resources/9d6a2ea9b8dc45d3a47dc74a84b189c914940f60615ab4d397f8f7e5f5ae4186
@@ -0,0 +1,334 @@
+{
+ "custom": {},
+ "params": {
+ "meta": {
+ "name": "S1-CH1"
+ },
+ "props": {
+ "config": {
+ "alwaysShowAll": true,
+ "isClickable": false,
+ "rotation": 0
+ },
+ "status": {
+ "tagPath": "[default]MCP04/CH_20116/CH_20116"
+ }
+ }
+ },
+ "propConfig": {
+ "params.meta": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.meta.name": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.config.alwaysShowAll": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.config.rotation": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 349,
+ "width": 500
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "ChuteLabel"
+ },
+ "position": {
+ "height": 30,
+ "width": 100,
+ "x": 198,
+ "y": 298.8
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "path": "view.params.props.status.tagPath"
+ },
+ "transforms": [
+ {
+ "code": "\treturn utils.prettyName(value.split(\"/\")[-1])",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "textAlign": "center"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\ttagPath \u003d self.view.params.props.status.tagPath\n\ttags \u003d [tagPath + \"/CH/SetEnable\"]\n\tvalues \u003d [1]\n\tsystem.tag.writeAsync(tags, values)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Enable"
+ },
+ "position": {
+ "height": 40,
+ "width": 120,
+ "x": 120,
+ "y": 20.3
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/CH/SetEnable"
+ },
+ "transforms": [
+ {
+ "expression": "isGood({value})",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.style.classes": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/CH/SetEnable"
+ },
+ "transforms": [
+ {
+ "fallback": "Buttons/Grey",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "Buttons/Green"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ },
+ {
+ "expression": "if(isGood({value}),\r\n\t{value},\r\n\t\"Buttons/Grey\"\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {},
+ "text": "Enable"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\ttagPath \u003d self.view.params.props.status.tagPath\n\ttags \u003d [tagPath + \"/CH/SetEnable\"]\n\tvalues \u003d [0]\n\tsystem.tag.writeAsync(tags, values)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Disable"
+ },
+ "position": {
+ "height": 40,
+ "width": 120,
+ "x": 260,
+ "y": 20.3
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/CH/SetEnable"
+ },
+ "transforms": [
+ {
+ "expression": "isGood({value})",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.style.classes": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/CH/SetEnable"
+ },
+ "transforms": [
+ {
+ "fallback": "Buttons/Grey",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": false,
+ "output": "Buttons/Red"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ },
+ {
+ "expression": "if(isGood({value}),\r\n\t{value},\r\n\t\"Buttons/Grey\"\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {},
+ "text": "Disable"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "SpiralChute"
+ },
+ "position": {
+ "height": 60,
+ "width": 85,
+ "x": 205,
+ "y": 165
+ },
+ "propConfig": {
+ "props.params": {
+ "binding": {
+ "config": {
+ "struct": {
+ "alwaysShowAll": true,
+ "isClickable": false,
+ "rotation": "{view.params.props.config.rotation}",
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "waitOnAll": true
+ },
+ "type": "expr-struct"
+ }
+ },
+ "props.style.transform": {
+ "binding": {
+ "config": {
+ "path": "view.params.props.config.rotation"
+ },
+ "transforms": [
+ {
+ "expression": "\"scale(2) rotate(\" + {value} + \"deg)\"",
+ "type": "expression"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "path": "Templates/Areas/SpiralChute",
+ "style": {
+ "transform": "scale(2) rotate(0deg)"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "ChuteLabel_0"
+ },
+ "position": {
+ "height": 35,
+ "width": 260,
+ "x": 120,
+ "y": 63
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/CH/StatusText"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ }
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "background-color": "#CFCFCF"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/9ee66303347dbd78d4cc226eaaecc343b8c77448bfd07f3e7329f70fa740824e b/.resources/9ee66303347dbd78d4cc226eaaecc343b8c77448bfd07f3e7329f70fa740824e
new file mode 100644
index 00000000..dd82e720
--- /dev/null
+++ b/.resources/9ee66303347dbd78d4cc226eaaecc343b8c77448bfd07f3e7329f70fa740824e
@@ -0,0 +1,1037 @@
+{
+ "custom": {},
+ "events": {
+ "system": {
+ "onShutdown": {
+ "config": {
+ "script": "\tactivityLog.productMetrics.callLogger(self, \u0027page\u0027)"
+ },
+ "scope": "G",
+ "type": "script"
+ },
+ "onStartup": {
+ "config": {
+ "script": "\tself.custom.activityLogger.start_time \u003d system.date.now()"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "params": {
+ "params": {},
+ "size": "medium"
+ },
+ "propConfig": {
+ "params.params": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.size": {
+ "paramDirection": "input"
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 58
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "children": [
+ {
+ "events": {
+ "dom": {
+ "onDoubleClick": {
+ "config": {
+ "page": "/Monitron"
+ },
+ "scope": "C",
+ "type": "nav"
+ }
+ }
+ },
+ "meta": {
+ "name": "Icon"
+ },
+ "position": {
+ "basis": "30px"
+ },
+ "props": {
+ "color": "#FFFFFF",
+ "path": "material/vibration",
+ "style": {
+ "classes": ""
+ }
+ },
+ "type": "ia.display.icon"
+ },
+ {
+ "meta": {
+ "name": "Label"
+ },
+ "position": {
+ "basis": "41px"
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[IEC_SCADA_TAG_PROVIDER]Monitron/monitron_data"
+ },
+ "transforms": [
+ {
+ "code": "\treturn value.getRowCount()",
+ "type": "script"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "color": "#FFFFFF",
+ "textAlign": "center"
+ }
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "meta": {
+ "name": "FlexContainer_0"
+ },
+ "position": {
+ "basis": "80px",
+ "display": false
+ },
+ "type": "ia.container.flex"
+ },
+ {
+ "children": [
+ {
+ "events": {
+ "dom": {
+ "onDoubleClick": {
+ "config": {
+ "page": "/Oil"
+ },
+ "scope": "C",
+ "type": "nav"
+ }
+ }
+ },
+ "meta": {
+ "name": "Icon"
+ },
+ "position": {
+ "basis": "30px"
+ },
+ "props": {
+ "color": "#FFFFFF",
+ "path": "material/opacity",
+ "style": {
+ "classes": ""
+ }
+ },
+ "type": "ia.display.icon"
+ },
+ {
+ "meta": {
+ "name": "Label"
+ },
+ "position": {
+ "basis": "41px"
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[IEC_SCADA_TAG_PROVIDER]Oil/oil_condition_monitoring"
+ },
+ "transforms": [
+ {
+ "code": "\treturn value.getRowCount()",
+ "type": "script"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "color": "#FFFFFF",
+ "textAlign": "center"
+ }
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "meta": {
+ "name": "FlexContainer_1"
+ },
+ "position": {
+ "basis": "80px",
+ "display": false
+ },
+ "type": "ia.container.flex"
+ },
+ {
+ "meta": {
+ "name": "Image"
+ },
+ "position": {
+ "basis": "120px"
+ },
+ "propConfig": {
+ "position.display": {
+ "binding": {
+ "config": {
+ "expression": "{view.params.size} \u003d \"large\""
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "fit": {
+ "height": 30,
+ "mode": "fill"
+ },
+ "source": "/system/images/Builtin/amazon_rme_logo.png"
+ },
+ "type": "ia.display.image"
+ },
+ {
+ "meta": {
+ "hasDelegate": true,
+ "name": "Spacer Start"
+ },
+ "position": {
+ "basis": "16px",
+ "shrink": 0
+ },
+ "props": {
+ "text": " "
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "id": "Docked-West",
+ "type": "toggle"
+ },
+ "scope": "C",
+ "type": "dock"
+ }
+ }
+ },
+ "meta": {
+ "name": "Menu Dock"
+ },
+ "position": {
+ "basis": "24px",
+ "shrink": 0
+ },
+ "propConfig": {
+ "position.display": {
+ "binding": {
+ "config": {
+ "expression": "{view.params.size} !\u003d \"large\""
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "color": "#FFFFFF",
+ "path": "material/menu",
+ "style": {
+ "classes": "Header/Icon",
+ "marginRight": "10px"
+ }
+ },
+ "type": "ia.display.icon"
+ },
+ {
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "page": "/"
+ },
+ "scope": "C",
+ "type": "nav"
+ }
+ }
+ },
+ "meta": {
+ "name": "Back",
+ "tooltip": {
+ "enabled": true,
+ "text": "Go back to DEX"
+ }
+ },
+ "position": {
+ "basis": "24px",
+ "shrink": 0
+ },
+ "props": {
+ "color": "#FFFFFF",
+ "path": "material/arrow_back",
+ "style": {
+ "classes": "Header/Icon",
+ "cursor": "pointer",
+ "marginRight": "10px"
+ }
+ },
+ "type": "ia.display.icon"
+ },
+ {
+ "children": [
+ {
+ "meta": {
+ "name": "FlexContainer"
+ },
+ "position": {
+ "basis": "550px",
+ "grow": 1
+ },
+ "type": "ia.container.flex"
+ },
+ {
+ "meta": {
+ "name": "Label"
+ },
+ "position": {
+ "basis": "300px",
+ "shrink": 0
+ },
+ "propConfig": {
+ "custom.area": {
+ "binding": {
+ "config": {
+ "expression": "if(isNull({this.custom.lookup_path}), \"\",\r\ntry(jsonGet({this.custom.plc_dict},\"Area\"),\"\"))"
+ },
+ "type": "expr"
+ }
+ },
+ "custom.lookup_path": {
+ "binding": {
+ "config": {
+ "expression": "try(if({this.custom.path}[1,0]\u003d\"DetailedView\", {this.custom.path}[2,0],\r\n\"\"), \"\")\r\n"
+ },
+ "type": "expr"
+ }
+ },
+ "custom.path": {
+ "binding": {
+ "config": {
+ "path": "page.props.path"
+ },
+ "transforms": [
+ {
+ "expression": "split({value},\"/\")",
+ "type": "expression"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "custom.path_to_display": {
+ "binding": {
+ "config": {
+ "expression": "if(len({this.custom.lookup_path})\u003c1, \"\",\r\nif(len({this.custom.area}) \u003c1, {this.custom.lookup_path},\r\nif(len({this.custom.sub_area}) \u003e 0, concat({this.custom.lookup_path} + \" / \" + {this.custom.area} + \" / \" + {this.custom.sub_area}),\r\nconcat({this.custom.lookup_path} + \" / \" + {this.custom.area}))))"
+ },
+ "type": "expr"
+ }
+ },
+ "custom.plc_dict": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "fc": "{session.custom.fc}"
+ },
+ "tagPath": "[{fc}_SCADA_TAG_PROVIDER]Configuration/PLC"
+ },
+ "transforms": [
+ {
+ "expression": "jsonGet({value},{this.custom.lookup_path})",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "custom.sub_area": {
+ "binding": {
+ "config": {
+ "expression": "if(isNull({this.custom.lookup_path}), \"\",\r\ntry(jsonGet({this.custom.plc_dict},\"SubArea\"), \"\"))"
+ },
+ "type": "expr"
+ }
+ },
+ "position.display": {
+ "binding": {
+ "config": {
+ "expression": "{view.params.size} \u003d \"large\""
+ },
+ "type": "expr"
+ }
+ },
+ "props.text": {
+ "binding": {
+ "config": {
+ "path": "this.custom.path_to_display"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "color": "#FFFFFF",
+ "fontFamily": "Arial",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "FlexContainer_0"
+ },
+ "position": {
+ "basis": "150px",
+ "grow": 1
+ },
+ "type": "ia.container.flex"
+ }
+ ],
+ "meta": {
+ "name": "Area"
+ },
+ "position": {
+ "basis": "200px",
+ "grow": 1
+ },
+ "type": "ia.container.flex"
+ },
+ {
+ "meta": {
+ "name": "Icon_1",
+ "tooltip": {
+ "enabled": true
+ }
+ },
+ "position": {
+ "basis": "30px"
+ },
+ "propConfig": {
+ "meta.tooltip.text": {
+ "binding": {
+ "config": {
+ "expression": "{[System]Gateway/Database/MariaDB/Available}"
+ },
+ "transforms": [
+ {
+ "fallback": "Database Connection Status: LOST",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "Database Connection Status: GOOD"
+ },
+ {
+ "input": false,
+ "output": "Database Connection Status: LOST"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "expr"
+ }
+ },
+ "props.color": {
+ "binding": {
+ "config": {
+ "expression": "{[System]Gateway/Database/MariaDB/Available}"
+ },
+ "transforms": [
+ {
+ "fallback": "#FF0000",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "#47FF47"
+ },
+ {
+ "input": false,
+ "output": "#FF0000"
+ }
+ ],
+ "outputType": "color",
+ "type": "map"
+ }
+ ],
+ "type": "expr"
+ },
+ "onChange": {
+ "enabled": null,
+ "script": " db_tag_path \u003d \"[System]Gateway/Database/MariaDB/Available\"\n\t\n if not (system.tag.readBlocking([db_tag_path])[0].value):\n \tsystem.perspective.openPopup(\"errorPopup\",\u0027PopUp-Views/DatabaseError\u0027, title\u003d\"Database Error\")\n\t"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "color": "#47FF47",
+ "path": "material/table_chart"
+ },
+ "type": "ia.display.icon"
+ },
+ {
+ "meta": {
+ "hasDelegate": true,
+ "name": "Spacer End_3"
+ },
+ "position": {
+ "basis": "20px",
+ "shrink": 0
+ },
+ "props": {
+ "text": " "
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "custom": {
+ "buttonid": "HeaderLegendIcon"
+ },
+ "events": {
+ "dom": {
+ "onClick": [
+ {
+ "config": {
+ "draggable": false,
+ "id": "TZyBcXB7",
+ "modal": true,
+ "overlayDismiss": true,
+ "resizable": false,
+ "showCloseIcon": false,
+ "type": "open",
+ "viewPath": "PopUp-Views/Legend_Popup/Legend-popup-view",
+ "viewportBound": true
+ },
+ "scope": "C",
+ "type": "popup"
+ },
+ {
+ "config": {
+ "script": "\tbuttonid \u003d self.custom.buttonid\n\tactivityLog.productMetrics.callLogger(self.view, \u0027click\u0027, buttonid)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ ]
+ }
+ },
+ "meta": {
+ "name": "Icon",
+ "tooltip": {
+ "delay": 250,
+ "enabled": true,
+ "sustain": 1000,
+ "text": "Legend"
+ }
+ },
+ "position": {
+ "basis": "35px"
+ },
+ "props": {
+ "color": "#FFFFFF",
+ "path": "material/legend_toggle",
+ "style": {
+ "classes": "",
+ "marginRight": 20
+ }
+ },
+ "type": "ia.display.icon"
+ },
+ {
+ "children": [
+ {
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tsystem.perspective.navigate(page \u003d \"/Real-Time\")"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Icon"
+ },
+ "position": {
+ "basis": "30px"
+ },
+ "propConfig": {
+ "props.color": {
+ "binding": {
+ "config": {
+ "path": "../Label.props.text"
+ },
+ "transforms": [
+ {
+ "code": "\t\n\treturn \"red\" if value \u003e 0 else \"#fff\"",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "path": "material/notifications_active",
+ "style": {
+ "classes": ""
+ }
+ },
+ "type": "ia.display.icon"
+ },
+ {
+ "meta": {
+ "name": "Label"
+ },
+ "position": {
+ "basis": "41px"
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "polling": {
+ "enabled": true,
+ "rate": "3"
+ },
+ "queryPath": "GetActiveAlarmsByLocationAndPriority",
+ "returnFormat": "json"
+ },
+ "transforms": [
+ {
+ "code": "\ttotal \u003d sum(row[\"Count\"] for row in value if \"Count\" in row and row[\"Count\"] is not None)\n\treturn total",
+ "type": "script"
+ }
+ ],
+ "type": "query"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "color": "#FFFFFF",
+ "textAlign": "center"
+ }
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "meta": {
+ "name": "FlexContainer",
+ "tooltip": {
+ "enabled": true
+ }
+ },
+ "position": {
+ "basis": "80px"
+ },
+ "propConfig": {
+ "meta.tooltip.text": {
+ "binding": {
+ "config": {
+ "expression": "{./Label.props.text} + \" active alarms in the system\""
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "justify": "flex-end",
+ "style": {
+ "cursor": "pointer"
+ }
+ },
+ "type": "ia.container.flex"
+ },
+ {
+ "meta": {
+ "hasDelegate": true,
+ "name": "Spacer End_2"
+ },
+ "position": {
+ "basis": "20px",
+ "shrink": 0
+ },
+ "props": {
+ "text": " "
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "custom": {
+ "covert": true
+ },
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tdevice_list \u003d tags.tag_utilities.get_devices(self.session.custom.fc)\n\ttags.tag_utilities.reset_disconnect_tags(self.session.custom.fc, device_list)\n\tAWS.wbsckt_abort.close_websckt()"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Icon_2",
+ "tooltip": {
+ "enabled": true
+ }
+ },
+ "position": {
+ "basis": "30px"
+ },
+ "propConfig": {
+ "custom.heartbeat_received": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "fc": "{session.custom.fc}"
+ },
+ "tagPath": "[{fc}_SCADA_TAG_PROVIDER]System/wbsckt_heartbeat_interval"
+ },
+ "transforms": [
+ {
+ "expression": "if(secondsBetween(todate({value}),todate(now())) \u003e 70, False, True)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "custom.wbsckt_running": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "fc": "{session.custom.fc}"
+ },
+ "tagPath": "[{fc}_SCADA_TAG_PROVIDER]System/wbsckt_running"
+ },
+ "transforms": [
+ {
+ "expression": "if({value} \u003d True \u0026\u0026 ({this.custom.heartbeat_received} \u003d True) , True, False)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "meta.tooltip.text": {
+ "binding": {
+ "config": {
+ "path": "this.custom.wbsckt_running"
+ },
+ "transforms": [
+ {
+ "fallback": "",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "websocket running"
+ },
+ {
+ "input": false,
+ "output": "websocket disconnected"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "props.color": {
+ "binding": {
+ "config": {
+ "path": "this.custom.wbsckt_running"
+ },
+ "transforms": [
+ {
+ "fallback": "#000000",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": false,
+ "output": "#FF4747"
+ },
+ {
+ "input": true,
+ "output": "#FFFFFF"
+ }
+ ],
+ "outputType": "color",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "path": "material/location_city",
+ "style": {
+ "cursor": "pointer"
+ }
+ },
+ "type": "ia.display.icon"
+ },
+ {
+ "meta": {
+ "name": "Label"
+ },
+ "position": {
+ "shrink": 0
+ },
+ "propConfig": {
+ "position.basis": {
+ "binding": {
+ "config": {
+ "expression": "len({this.props.text}) * 11 + \"px\""
+ },
+ "type": "expr"
+ }
+ },
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "Configuration/FC"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "icon": "material/building",
+ "style": {
+ "borderWidth": "0.25px",
+ "color": "#FFFFFF",
+ "textAlign": "",
+ "textIndent": 10
+ },
+ "textStyle": {
+ "lineBreak": "auto"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "hasDelegate": true,
+ "name": "Spacer End"
+ },
+ "position": {
+ "basis": "20px",
+ "shrink": 0
+ },
+ "props": {
+ "text": " "
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tif self.session.props.auth.authenticated:\n\t\tsystem.perspective.logout()\n\telse:\n\t\tsystem.perspective.login()"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "User"
+ },
+ "position": {
+ "basis": "30px",
+ "shrink": 0
+ },
+ "props": {
+ "path": "material/person",
+ "style": {
+ "classes": "Header/Icon",
+ "color": "#FFFFFF"
+ }
+ },
+ "type": "ia.display.icon"
+ },
+ {
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tif self.session.props.auth.authenticated:\n\t\tsystem.perspective.logout()\n\telse:\n\t\tsystem.perspective.login()"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "hasDelegate": true,
+ "name": "Sign In"
+ },
+ "position": {
+ "basis": "50px",
+ "shrink": 0
+ },
+ "propConfig": {
+ "position.display": {
+ "binding": {
+ "config": {
+ "expression": "{view.params.size} !\u003d \"small\""
+ },
+ "type": "expr"
+ }
+ },
+ "props.text": {
+ "binding": {
+ "config": {
+ "path": "session.props.auth.user.userName"
+ },
+ "transforms": [
+ {
+ "code": "\tif len(value) \u003d\u003d 0 or value \u003d\u003d \"null\":\n\t return \"Sign In\"\n\telse:\n\t return value.split(\"@\")[0]",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "classes": "Header/Icon",
+ "color": "#FFFFFF",
+ "cursor": "pointer",
+ "marginLeft": "4px"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "hasDelegate": true,
+ "name": "Spacer End_0"
+ },
+ "position": {
+ "basis": "20px",
+ "shrink": 0
+ },
+ "props": {
+ "text": " "
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tsystem.perspective.closeSession()"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Exit",
+ "tooltip": {
+ "enabled": true,
+ "location": "bottom-left",
+ "style": {
+ "fontFamily": "Arial",
+ "fontSize": 12
+ },
+ "tail": false,
+ "text": "Exit Application"
+ }
+ },
+ "position": {
+ "basis": "30px",
+ "shrink": 0
+ },
+ "props": {
+ "path": "material/exit_to_app",
+ "style": {
+ "classes": "Header/Icon",
+ "color": "#FFFFFF",
+ "cursor": "pointer"
+ }
+ },
+ "type": "ia.display.icon"
+ },
+ {
+ "meta": {
+ "hasDelegate": true,
+ "name": "Spacer End_1"
+ },
+ "position": {
+ "basis": "16px",
+ "shrink": 0
+ },
+ "props": {
+ "text": " "
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "justify": "flex-end",
+ "style": {
+ "background": "rgb(43,43,43)"
+ }
+ },
+ "type": "ia.container.flex"
+ }
+}
\ No newline at end of file
diff --git a/.resources/9fb35103d4f3e2a545d47d8eff91688dcff3e3be5fd50a11a1a1254e0407542b b/.resources/9fb35103d4f3e2a545d47d8eff91688dcff3e3be5fd50a11a1a1254e0407542b
new file mode 100644
index 00000000..530579f4
--- /dev/null
+++ b/.resources/9fb35103d4f3e2a545d47d8eff91688dcff3e3be5fd50a11a1a1254e0407542b
@@ -0,0 +1,1323 @@
+{
+ "custom": {},
+ "params": {},
+ "props": {
+ "defaultSize": {
+ "height": 286,
+ "width": 928
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "PRS01_01"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 210,
+ "x": 904,
+ "y": 286
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS01/PRS01_01/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PRS01_03"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 140,
+ "x": 885,
+ "y": 57
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS01/PRS01_03/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PRS01_04"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 280,
+ "x": 746,
+ "y": 57
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS01/PRS01_04/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "bar"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PRS02_01"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 360,
+ "x": 746,
+ "y": 117
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS02/PRS02_01/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PRS02_02"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 330,
+ "x": 387,
+ "y": 117
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS02/PRS02_02/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PRS02_03"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 123,
+ "x": 58,
+ "y": 97
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS02/PRS02_03/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PRS01_02CH"
+ },
+ "position": {
+ "height": 40,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 40,
+ "x": 884,
+ "y": 77
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS01/PRS01_02CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "side": "left"
+ }
+ },
+ "type": "dex.display.conveyorcurve"
+ },
+ {
+ "meta": {
+ "name": "PRS01_01_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 887,
+ "y": 216.333
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS01/PRS01_01/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PRS01_03_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 843,
+ "y": 58
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS01/PRS01_03/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PRS02_01_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 703,
+ "y": 118
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS02/PRS02_01/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PRS02_02_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 223,
+ "y": 118
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS02/PRS02_02/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PRS02_03_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 59,
+ "y": 172
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS02/PRS02_03/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PRS01_01_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 883,
+ "y": 123
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS01/PRS01_01/EPC1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "PRS01_03_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 765,
+ "y": 16
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS01/PRS01_03/EPC1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "PRS01_03_EPC2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 765,
+ "y": 58
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS01/PRS01_03/EPC2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "PRS02_02_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 154,
+ "y": 76
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS02/PRS02_02/EPC1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "PRS02_03_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 59,
+ "y": 123
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS02/PRS02_03/EPC1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "PRS01_01_RS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 883,
+ "y": 253
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS01/PRS01_01/RS1/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PRS01_01_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 883,
+ "y": 83
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS01/PRS01_01/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PRS01_01_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 883,
+ "y": 102
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS01/PRS01_01/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PRS01_03_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 803,
+ "y": 16
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS01/PRS01_03/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PRS01_03_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 822,
+ "y": 16
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS01/PRS01_03/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PRS01_03_SS2_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 803,
+ "y": 58
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS01/PRS01_03/SS2/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PRS01_03_SS2_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 822,
+ "y": 58
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS01/PRS01_03/SS2/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PRS02_02_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 114,
+ "y": 76
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS02/PRS02_02/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PRS02_02_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 133,
+ "y": 76
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS02/PRS02_02/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PRS02_03_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 17,
+ "y": 97
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS02/PRS02_03/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PRS02_03_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 17,
+ "y": 116
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS02/PRS02_03/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PRS01_01_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 888,
+ "y": 195
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS01/PRS01_01/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "PRS01_03_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 803,
+ "y": 79
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS01/PRS01_03/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "PRS01_03_SIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 803
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS01/PRS01_03/SIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "PRS02_02_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 97,
+ "y": 118
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS02/PRS02_02/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "PRS02_02_SIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 30,
+ "x": 128,
+ "y": 118
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS02/PRS02_02/SIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "PRS01_01_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 866,
+ "y": 98
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS01/PRS01_01/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PRS01_01_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 866,
+ "y": 83
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS01/PRS01_01/BCN1/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PRS01_03_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 786,
+ "y": 20
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS01/PRS01_03/BCN1/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PRS01_03_BCN2_HRN"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 786,
+ "y": 58
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS01/PRS01_03/BCN2/HRN/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PRS01_03_BCN2_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 786,
+ "y": 73
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS01/PRS01_03/BCN2/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PRS02_02_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 97,
+ "y": 80
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS02/PRS02_02/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PRS02_02_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 97,
+ "y": 65
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS02/PRS02_02/BCN1/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PRS02_03_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 21,
+ "y": 182
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS02/PRS02_03/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PRS02_03_BCN2_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "y": 112
+ },
+ "props": {
+ "status": {
+ "showAlways": true
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PRS02_03_BCN2_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "y": 97
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS02/PRS02_03/BCN2/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PRS01_01_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 894,
+ "y": 144
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS01/PRS01_01/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PRS01_01_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 894,
+ "y": 274
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS01/PRS01_01/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PRS01_03_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 757,
+ "y": 27
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS01/PRS01_03/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PRS01_03_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 860,
+ "y": 67
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS01/PRS01_03/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PRS01_03_PE3"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 874,
+ "y": 67
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS01/PRS01_03/PE3/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PRS01_04_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 744,
+ "y": 27
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS01/PRS01_04/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PRS02_01_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 388,
+ "y": 127
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS02/PRS02_01/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PRS02_02_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 34,
+ "x": 80,
+ "y": 127
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/PRS02/PRS02_02/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/a01e996ef008915f4edd4d964665d955a58204342a0a097867399b5b5051f46f b/.resources/a01e996ef008915f4edd4d964665d955a58204342a0a097867399b5b5051f46f
new file mode 100644
index 00000000..1d562681
--- /dev/null
+++ b/.resources/a01e996ef008915f4edd4d964665d955a58204342a0a097867399b5b5051f46f
@@ -0,0 +1,244 @@
+{
+ "custom": {},
+ "params": {
+ "view": "Windows/Graphics/Overview"
+ },
+ "propConfig": {
+ "params.view": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 750,
+ "width": 1450
+ },
+ "loading": {
+ "mode": "blocking"
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "children": [
+ {
+ "meta": {
+ "name": "Graphics"
+ },
+ "propConfig": {
+ "props.path": {
+ "binding": {
+ "config": {
+ "path": "view.params.view"
+ },
+ "type": "property"
+ },
+ "onChange": {
+ "enabled": null,
+ "script": "\tself.session.custom.currentGraphic \u003d currentValue\n\tself.getSibling(\"DexZoombox\").props.zoombox.current \u003d 1"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "overflow": "hidden"
+ },
+ "useDefaultViewHeight": true,
+ "useDefaultViewWidth": true
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "DexZoombox"
+ },
+ "position": {
+ "height": 10,
+ "width": 10
+ },
+ "propConfig": {
+ "props.zoombox.max": {
+ "binding": {
+ "config": {
+ "expression": "coalesce({../Graphics.props.params.maxZoom}, 4)"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "view": {
+ "height": "750px",
+ "width": "1450px"
+ },
+ "zoombox": {}
+ },
+ "type": "dex.controller.zoombox"
+ }
+ ],
+ "meta": {
+ "name": "Window"
+ },
+ "position": {
+ "height": "100%",
+ "width": "100%"
+ },
+ "type": "ia.container.coord"
+ },
+ {
+ "children": [
+ {
+ "meta": {
+ "name": "mhs"
+ },
+ "position": {
+ "height": 30,
+ "width": 100,
+ "x": "calc(100% - 110px)",
+ "y": 10
+ },
+ "props": {
+ "fit": {
+ "mode": "contain"
+ },
+ "source": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAH8AAAAgCAYAAAFMYpenAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAABrWSURBVGhD7ZsJlFXFmccfqCGJxi0qCri3oC1bv3vr3vd6AQURccEkShITt+hIkhONW6ImMeI2GhUVxyUxSmJiNBM0GhFRQZNJNHHfFxRBoIFe3tIrTXdD93vz+1fXfbxuuoE4MzmZc/KdU6fqVn31VX1LffVV3XtjEWRKSnZWXh+PH2wr/h5YZ8J8PhYb3GqSWT1n/YDHWGzq1Kk2P+qoo6YnEonPkDfpedKkSaWTJ0/++Mgjjzw6NmvWrMENFRX7RZ06w2S+3vd/ozJI80B+BcRTHIH80UcfnRcBylMpbxBerIHO9YlEhfLWeHhxR5CwxCAwf+LEiZ9W2RFoVFkESFfT/qKeC9BQWrGfK247NJtwVSqe+LcNTL06kdg964W3przk5VC/fObMmTsIR9OGjVEqiw1Gv4I0dsqUKafG1LHW90+A0Mvrg6QVpuQgAiC/A1J+2rRploAIiYAjlIO9veE//GODF/y22Q/mZX2zoBGN1AZjDwThR0IURARUFgHSKXSuhPhTFkGw3oQfdTBy1kv8PpVMluUS5fl1CFMzbCc1ecFjDjVGx7MnTJhwmHssAPVzIbw9A+wHB8+5ainjNdoOdOWHMI9GuFlzxBFHTLQIGiQVDy7IhuG0tG9WSIvzZszYrskPrtBEhNPoByvhsktlJ56NEO3QM4Pueswxx+R5zkvb4haclsrKyt2UxLU0T/1pwikMHEEXg9R55s5MvDLMxP17qBrUaII5rUxkje9b0TGprhYT1qisCZDmqyyCUVmijibAoNbkBNEE3KMF6s4lvekeZcv+I20M2E5Sji4fVH0uWSEVNNeODawIBQx6MoP8wD0WgPpHZ8yY8amqqqp9mJTtL2CgO5HSiOOPP/6zlBczmVraf++aN8G7paW7u2Is73k7yC9kDjlkuKv6vwMtg66wPJ9PVlp9o+v3ZYAbsQ3Ebg1xjTGft8gABvS+K/YCuHtaOdy9QtkuamxjT8pvqCw1IKWVMkLKf1VdbMW4cQdosCY/XL3q8PjBGNvjrMl8nTHfUnu6rHwYzq5Lk7EdAK3HYhELGKSLurdUZpBOjG+kyhK97ERlGSqqO4Xn0UzgP1QXazWJJ9pxACq3xMMftzAZGWLKmJE4yFryO+tLzd6tWt/x4EjhaQIiyoAn6pnBXyJtKJ4AdhDHIHdnAodGE3CO5GEZqp4tNPjm/ZRn1qq8nsHXw2ldZeVBKd8/P4NzTXmBNRYZZioIzlZZ1i5DcxzNYYAuCE+Gq7fVTrldg0aJZzsBD7tiks8ee+yxWhULVBdrDcJ5snyVm0xYny0zSZXlDpv9cE2T7x9UF098TWqJNitNAGvfDu5OU5mJDIHgF6IJMGgnZWu88hGahMrFoMmTDYrlhg7dsRMDbArC3Joy/wT2opMkbum83kzcm0n9Qe5VNtLTddMEVEYS+yrXBLZmA+Tv44SmIrXpkoLqLKweE4zoDJJtkoRSR5Bc1zJ+/J71ZeYYJJRjVfzOoVqA0DNkg3ueegCiBzMJa1iI/JHy8vJhKmvtMzErbuovA+djnpeRjlDdZrDW8/ZrCsMfrTOJ51iC7RkvsLuzIBWv2qc5CK5p9ILlUtEGPKgkpVXUEoQvZ73gm/T/rEPvBTI8Bh/qHrcKmjjS28M92siBSX8eQ95dZVcdwWDVqz3STATQ2F5aom2kEs8HkHZyzZugzgtOxM7WW5eAyjF6Sb4lG/evllDWh4nlzkPncQs5FsiyBhMshOlnMI/aNgTRQFs3QqF+EU71U460BQa/UmpHe8+RdnTV/QLa/J5w6bOEhWMFyqQPdat4vcoW0QHPI9SmGIy+h6sOgQ+n/wrZuuopd6gv5dxxxx0nvB/bzoImr+JyTVzMtQVhdSoej7umWNokvq4oQW1YxIZsEMxwTbEVE8ftmg6CS7Jx82U9Zzxzo3AlQEx3CYIraJAJXK5Jktu4jskUwpUIWDdy1GtJkZt7K3JZTHgUdZ30ayIdYjs4kLlTZ/tgZXbP1XLQWoXGQovUBwqWwkoc1OSbN2XSaK4JjzNG9Q1BcFq+osoyrqCA/INMSbBzC0zB3FN5BCafLavIemaupQVRopmHVKfdKxMEp6teIAG4CT1FWqQyE05FYRV1v1cdjKSZ/I1Oa28XC4C2dlIOAa4ifUhaphw6KyQApUgAWMX2lO8WHWkcnG7an4bmiX2XSYzI52UJgPCrfY2fLFddelz5kWJc65xIqJHA88mGeFC1ivCKJbCk2WjdJ/IE4mvSnv9I9YjEZ+pLJ+6Ez3hDy0hLiBDvODsAwMCRAGzkBONJJtQgrSnJKpjwTWoj/4JwyfsKoJP+baTTeaZ50hS86mTqvyzmlajrFXVFIFz6PcJY7aLNeHe6JkwXTSkGdWbeyfNZS0tKhjSxkzqU2CwcTcqUn9Pih12EC1bzOgu45lhd3HwR02+S+YtW1vN/Ketyzb0EUKwBJn0Dk1qijdVVDSgA8OwSiLaYCOQDxLwEGQmAuj0YqxA/RQDjh8ovgL+Ex03OdNUY/yA23vfk1eXMtB2hyW7ydiwhp1OBGFeAjpBe01JIe+ERG3kWrhhXXE3b2rp4POHIFoABrznhhBM08NObmWAfQKsnOdxlkRMUY5o4TG4UExbRgby82iQ0LMsuYQQ2Xc9ypuB3kTrkAJ322xFOwTo3g1QiMRFmrycsupegYG6HSd6L87u23ktUOBQLRKgjWQKz074/c228quA4/9kA4Q2VlSC8vVzV1iHvxXZQCI4Z26NtMbSM9PZo5ICi0Kxx7NgDc6NGfc41/f+FPF4za8wxLWH4AM5wBXt7ppYjomuOZYP4cW0msQCNd8nU5TS1XLImbGwLy+euMsbuv/3AIKS/twJh97xVcIH2EPeoyG9H1v2eCo5cVQHkI9TGGJsFN/IBLIWDMf1RtJdoHlT3DqKWe94uBDP3cRLYIMZ0NGEvb6tzQTkM/wSn1qm1zvpWm2VcJwc9dxNHrw/CVDpuvm4JFoHBghj8edbyDa5qi8D6NazPD5m4PeYIMN+rqXuHugt5LDhVAQxdCH21zXZVdn/n+Tz6vUG/FO1N5Gnm8AHCuFXCtIjy8mx/88WYi/zyzUG4AS//Wm0YHoBmr1JwpDbdflHfTPT3PLHCE5zTXoP5Lp1QJASEtl6RpCXsgAGHMdhKBs/h1M5w1f1CRUXFfuB/yGQxxImFnQVGfuuittt57MU8bberDUafdFUS1qUaT3QYW0e0VlKXO361aE4WMeUHsxTI6Lynk0/GNw/We2FlfWnpTnWeN6XFBN09OwHBjB8uqPF9Yzs6SMWTx2vHcPt9vtUPP24ZX7mna7bMk5YxCXncJgTQy3lGIA8P3kJNmLwbRr/hmuTF75fHpu8tPPZlfo7awIluZnYkrRUdGP05tBLkugAMRJP8F+wqQ2PZw/19mXSd3au1fv3gNkVvIlI7dMqOxAEviym1IYDF+aKDTUMQryLKkyZitabicM4JnFXZFpPl+AHzbYsERMyTbHBD/hFps0tHJnWLti6YGZB5cG7msRfztN1azDwWsyv9FeOL1mYnPC2JfD4/KIYWp3UGiQ5pDAEskbaXH8X6N+a6dDy4WYxLMK0myGbGjy8lGNo5ZczxOMMFtOVk6qvGjNlNRNN+cLV8QJusxwv+bEcCmEiBeSbT5TS7mEnaK1oB9TPRVk44MCgz7Zd58jtwbrvh5HZXUhn8u4qZh7lPQe9FF9isoXwROJufODH1szD1bhvMxIPbVLdi4v6fhqkaeXMYUtDTlfXCi9TG2j4TYVinKKEoQqxJJvdXWyaRCPAD9gic9sxq7R6qZwIR8zkmeDsTWaeJqax2aQfGW52mfgveW7IQ2gvMU3+/6sCT44pifRvvg99MfYF5AeVy6lZIKO6kuZJxr4POpkixPm6+rUhOGiNctUdAXbsy+VelVTFPnkt5wYV5ztmtY5N7NXnBO83OImzIW9UT5FSP9UfLN4h5DkCrczhS1UfMuwmWk85zjHa7Cb2tSYLzN4SyM3UvitH+mAfHLh3RUorqHO0C8wLoDCddQ3ud6DtLSEGrx+nWlfmnYqZdbr27i438oLQXLJaHt57fhMub4okr8t7MHRpM8rsdOD4OPtJ6W7MJVulWRr1YDueIcR2QEJq9exIwYIF5HNZU1TGBX2oymrwTRC3LoMRtUdqeNmNe+OQPgXcUTE1Rgp4u2h52ltSL+QjA3wOcS5jDcie4Np7HsuYTEzHvDmkRRhqqyxIl6pA2wcPtQfh6Km7OqQtDu17q4+UHYwWN2tYkrJTvX5/1/X3rRodD6yeW2hOedgtd3jYYU9jTi5lnIlZQAb6DCfxNjDOhdZFQYGJIf8xTjrz99a6qAODfULzmBwLa9wf3LY3J2GfGcqPKP0cs/5bMXlpr9MO/YMb76HRXfFNTfUhiONp+QczJGgh6lry6zz7W8+ttD23z1L9nvw/aOQAVDiH9MS+grJsbrcVLXNW2ML/VrQ4YxHj7yfG55wKA8wcxTz7TVjQQlKDJbmlfDLQE4bJ63//eWs7zsoyMCX+kvdstAR1fO9LGTG6Jl1dlPHMHzH6kE57We4/Ww03XR8BAzAuYxMGlRUIW8wjjdTFvteOA8q8dg5ttdRHz4Nh3UmKa/gsZ83HwTydirFKi/Rpw17lltmkeqXjwQ53JxZzWrF69YQ2dMNUhq5DGdZmhckOQOFd9OPnNz5dXWoGpj3YHrOiuFUVbmACGRzBgtZvgCa66X5AgwFkqD00/+6pBQN3DOu7CzE957MU8bXeqjVw3vxpve5h7dvr06dafIIhO8k75Bc0BJTwRHZkLUF/mfwPmV7cbzvEw05N64nfybphclvXDrwpXlxYccp7Il1fkNyAghPORbnctoT5A6KmXbT8jzWfy41z1gADepUxQWpvkqsTQBdQ9SZ2WQi/m0eo04YNTePVFXRJh3IcQ3iRf69IrPF/Z3+HIgu7Z0344k2jt5+wC9643ibnE/XfXBsHZes/i0CzzLdRxnr9WQU/xJeY/E6BtOdbhCHSYTn+uettB+362qmrf+spEBRHeyZm4fwHx/w0EPv+eLvNPaygrs0FOX5DDrC4rK2FXmEaf8xs8c2urSd6LJf0C/2GTLZvgFwRHdxNbXFVnzNdrCZaqSzddp/0L/sGg6NRGrAR+hACLObjV4tPWsTFssJ8iJCt0wm1nl3soOvZHkBprRmbLwotYPYtYOXX0a9dmIffR40J63Mkm19JT30YduBs7g2QLxvBByjN3p8b70xo8bxdHeougzYLlPx4rvwBrv5gU72/H+6Qwa9as7aEP2UlyS2fjP3vdqwrKy8s/h2uaQJoJ3rm4mTPIA61Ah9IvyBXpKgP8s5i/+um4M4nygLyrjd0/1FjgX0u6i7q5pF8y5lyef0q6ifR90knUlQ4dOnTg90krxo3blZ3+SxljFuDHW3Ps3orpFAlEEb1eVeglPEawTp+WrA6CcXKDzaZyJK5wNsqs1l2Pko4/0eW3gmMpmb2jC5x2yjKKDevMJiPQyUHf+wi/m/7UdXKOfLbOD0+tLvryoD+A6WEweSWCrnGvMJbC8MXsBQV3/QlBodMh0J4t2tqMeV4hoUO77+Z+KGP+pzZaFCq8TvBuVz3NvfaqYqB9BPTviPoxjjbwp+jb94JwMEYyBrrXkd6FR4srftVPeZT0HNW5YKOapL2z95WuXDT7lyHOvY/V2qyQTQqQInTMk2Ka/GA9Yd1rKPTBVJm5kS3gbHmHtRXefo3GnImS35VhKOohDrbGYs/MnIUJJF6n7uf1XuK8Gs87dm0iUbEmmSyvKTMTODrOYAu5sskkFuJl6toCd0TU2OTyMhhKK97nHmLqQNuQm3YvQBjDENaPyZdJiC7S0aufhTA97ZPsedDahb5nQuNVaHW7aCnH81uMdVbfqIm6UaTfgLNBuOA1szpvdW9ftqh8xrmN8aKITJHd49QVXk2Bsz20TgRnsdqL5lJL/ifyX4N/F/kc0h2U76Necf1LzF1fsmSov4qy/QjBghSvz2qyJvgvBL9RK10rVmHv+iDsRgmrMn5wcyYeJHTx6bpZ0Pv9lAlv0pW3DESGon4yHJTVqm0BxR6bxh26Lr1A7/7TZWXDmiord3u3dAYGWD4qE09qq3kfz6MI03qOddYgwhynyIXNGE0+trkBSPkwp0++dOFhz/xKMgJy3eLegsD0lmdAJRTBduBXQu9BBNgS0ZPQybupl/K/0degnPLvB69TygFX95e3bIvyoTlHYxQpf34f5e9K3a3grROO+KL8NHXH0tbLAzkYpOuCESNG6Jr/IHjwoHvgySefvGnOek/R6ifv6wjK19vX+c7tktpw6w9nE5UVeoeZnxHbDiUOy5SVHbZiXHhAvVdZgVH8rjUIW7TaWbl6fc/K1wnYLENR5xZ/hyUjWzk2OHBt3EzF2L7fGgTzWNFLm0zQiNe5Je1eBM2aFRust2hpL3hScYU1JAxKXgWDyIJ7T7Xvj7ZEiwDB9at8lZ0XkLAU7muP3Oz9ZgSig0AvI/8o6itl0OcTKR8FXodytrj1uFjhJ5rvFpS/E+NeC05Grt4p/yPSbPCOpF63830/ctkyEI1/BXf+V442G6VErXzc7Qbc9vzqskThJPziMSU7NycSp4P3ZleYXI3ia4jQN8q963QvF92KAbDin03FzfH6IjBPDEEc8IUWP7gNb/IC+/tqFN62HgNRTKD3wTIYYoyftSaThb0I9/4ZbQdpP9DXRHYbUFLcgFF9mImbLzrUAoh5BGGV71a79rmPSUupb5MiJTTyJoT7IMKd4LpakAKo/yK4z4Cj972RgOug8TZ5SjTAyemZ/v0qH7z7Gdv2p6yPyp6nfjYe4BKXfliUorrrwPur5hzNva/ygUHQ09dIN1BvDcDxo9TCvPR51hOkq0gnRt+YDQi6pq3zzLcaffMeSshpdSkoY9XVpuL+rMYwPMChxl7V551+eBJKXyIPEe3LKZIMpo2TQHMQPlnneSfqtKA+uu1oM8bHQG7Co6xUH61iaNitRWPJeOrj/gM1eBQ7kINMWXhY2phf6Y5ceOor48Tg1ugGlTF6uToEVlC+W3VaoQ8gxC+RK+r+M0LaWLxqaLucAOoQVtVonuVSs2pTf3DXQeNhcKbTV0bxfCRsyltTfrvwtIIjesXBWN/kxrNKVx/l0OqrfAs6wVAfkPRd+nPgas8v3OAU0cqQ/gLO9eSTtW3QvdfWM6gubs4hmHubVdkt4SpIQ8BZjOLG6EtmwazYrMHs+0fT9hcUZt/iSIFSit4B5ujH3p8iaPxV1iSO0epVv0zZhMOIJ+5k9dfpmKg+0b1/LlFh++Ip/ihXz6nBGo28Rg3P9V7weBN4cv3RFRqGszIdN18Dt9e+D4O9lC8h8vwYQrQrnHx/2m4k1UohzgD0WdsKcr3x6ZDQJETq9Pb4ImhYb4Sgp5FejwRLeYvKFy3Rh85GcOV9niX9gfpHyB+Lkp6V6LeI54/BLxgBdf0qvw8MBk8fb04j1xfmjzJnvezZqLnqZOJkIT6fpf0k8k3Hx7oyfzqu+pkOXL2Eq1VG6kLBL9SU+adK6Q41tnZMUIVXWIjiuuSyWc3dxAUftpjEr3Hd35XCOAWMUCAnr5Ii2MMYnmpn7xZtKV7bg1Z72gQv6dVfgzGX4ca/ywligvppnEZiCjzKT1sIJDUfGZr1En7QnvHNgr53CwKY6k/5+qNDW5e1eN2d4mL1Ce1C2jslaOEpOWU10+de+ujTI8u3W2n6PPeNbVE+SXu+jfahpz3/RvqUYFRDREt5lPSsxNj68n42+JGytlX5vUA09WqTvh60LoXm86Q2N+8cdBfzfLxDj8W0uuWWEW6jU6hVkFZbgxe+k/HD81eV9XwKnC4vG5Y15lso+kbc+zezY/3RuZJNH5dEoO/eWZ0XQ/cdeRJdjOv4JwNgBW/A2H63Nh6vcugF0Jd/ihcY81H6tkUnD/XXtyEYwytNxnx5adDz91ExwOyAykfAvbxEGIb6jOlCcD8QrpIEhdBOoa7XxYoE+gmU/78e7TvYlpNKAaCpGOFReIiM+wNo6oVBDx1d0NTF42Nwp/cQzDXYb1SkeLfaMIS2RhM8zz57OSuzcqAbN6342iCYBJ1ZGNBLKKxdN3n2zE8SXb0w1BcPNezn6rNs7Ni9aoKgtJ7tpN7DA/jmWSL8hijCV0whA9AxstGYl+rj8TNyHF3sgH0AxrZZ+QLq9btRApwryb+HUMa6pl7wz6J8zZf4pAo8fZBwMe3Hkvanvr9jnl5u6GJKHy7Z1+QoXyv/NfqcRnPvuTQfaj5f5wUXNrHa29j/N6A4uWe9sravuVAC7rcdhazEXb9EvgjFPklAtojyK3pv34pblsFopWrFqr8LIvX30wv1cXOG/TqsouJwto451C8Hr5O2jdZDWCW720Se3RdiNcQad9X4SSNDddPdDBDcMBi9gvxj7XVSEswvQAjT+lP+tkJJSckQaHxJQhRdrSDovotSz+6rfBShG74HGHujuwlsRdhzOEkodhpw7u6/gtul9Gju0FlA38INnz73o+6rtNnAk6SvXdL0e5tcgd0i0lOUF5H0M89qUrdoOeVneb4ZQxx4K6kuTZSwr19CgPY3lNPWlUjal7RSqlajAjUpKrrClXIjxbH3g5e0LlpfuNDWRN2fMJbv6JW/GyKmO/v2MLGgO1mR0ztR0RYdeQf1Jf5oIXh8IxUPrtctIkrf6vkVxuzKh8klMKtPhPR1+yOkqf8T5asvita3Es+hmHaELrr2hm+glY/A28DVt9UN9LuFeW1x5aP0vcC7gn719FPg2cHzY8WKcj+tjKFeV7sfwF8jqUuGIOXKaKLklC0j0hFXf+nod9gZGOe2vX18tzSxu/0t1oSXrfOT81r98D1WZZsU5RRr9/CNUjRJrprtAaUl3mJvfqDZDy7QraBWuiNpQatXXwKw7z+KIXW0BGErK/09vM0itoW78Sbf0Y9bf+9rUq0Mjk3DYdaDUV16VCKAUQhniy9VtgWgMUS0oRvI9SLE8U6QvRQqL0F9CcZSQU5mX7wM6JqLYDDz3UXGo77OvY/sa1wC1elDXmiOBm8KfU6nz/nM7VLqfqCcuvOo+wo0E8hD37FvFpf93aBvW7SC2dsPVKrz/YP0R10j5bZDEsMbx43TWXKroKOcjOL18eP3XOp+Hf8X/CMhFvtvEdz4lYWIqWMAAAAASUVORK5CYII\u003d",
+ "style": {
+ "pointer-events": "none",
+ "user-select": "none"
+ }
+ },
+ "type": "ia.display.image"
+ },
+ {
+ "meta": {
+ "name": "Label"
+ },
+ "position": {
+ "height": 20,
+ "width": 285,
+ "x": 60,
+ "y": 10
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "path": ".../Window/Graphics.props.path"
+ },
+ "transforms": [
+ {
+ "code": "\tpathParts \u003d value.split(\"/\")\n\tif len(pathParts) \u003e 0:\n\t\treturn pathParts[-1].replace(\"_\", \" \")\n\telse:\n\t\treturn \"Unknown\"",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "fontFamily": "Helvetica",
+ "fontSize": "24px",
+ "fontWeight": "bold",
+ "pointer-events": "none",
+ "user-select": "none"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tzoomBox \u003d self.parent.parent.getChild(\"Window\").getChild(\"DexZoombox\")\n\t# Set new angle:\n\tnewAngle \u003d (zoomBox.props.zoombox.rotate + 90) % 360\n\tsystem.perspective.print(\"\u003d\u003d\u003d\")\n\tsystem.perspective.print(zoomBox.props.zoombox.rotate)\n\tsystem.perspective.print(newAngle)\n\tsystem.perspective.print(\"\u003d\u003d\u003d\")\n\tzoomBox.props.zoombox.rotate \u003d newAngle"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Rotate"
+ },
+ "position": {
+ "height": 25,
+ "width": 25,
+ "x": 32,
+ "y": 8
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey",
+ "pointer-events": "all"
+ },
+ "text": "↻",
+ "textStyle": {
+ "font-size": 20,
+ "position": "relative",
+ "top": "-1px"
+ }
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "Icon"
+ },
+ "position": {
+ "height": 25,
+ "width": 25,
+ "x": 5,
+ "y": 8
+ },
+ "props": {
+ "path": "material/help_outline"
+ },
+ "type": "ia.display.icon"
+ }
+ ],
+ "meta": {
+ "name": "HUD"
+ },
+ "position": {
+ "height": 40,
+ "width": "100%"
+ },
+ "props": {
+ "style": {
+ "overflow": "visible",
+ "pointer-events": "none"
+ }
+ },
+ "type": "ia.container.coord"
+ },
+ {
+ "meta": {
+ "name": "TooltipOverlay"
+ },
+ "position": {
+ "height": 25,
+ "width": 25,
+ "x": 5,
+ "y": 8
+ },
+ "props": {
+ "status": {
+ "tooltip": "\u003cu\u003eZoom:\u003c/u\u003e\u003cbr\u003eCtrl+MouseWheel\u003cbr\u003eCtrl++/Ctrl+-\u003cbr\u003e2-finger Pinch\u003cbr\u003e\u003cbr\u003e\u003cu\u003ePan:\u003c/u\u003e\u003cbr\u003eMiddleMouse\u003cbr\u003e2-finger Pan"
+ }
+ },
+ "type": "dex.display.tooltipoverlay"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "classes": "window"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/a05e5ee1ec359b038e5d86c6df02dfb979c46c35b3d85f81e679f67c326331bd b/.resources/a05e5ee1ec359b038e5d86c6df02dfb979c46c35b3d85f81e679f67c326331bd
new file mode 100644
index 00000000..5e451534
--- /dev/null
+++ b/.resources/a05e5ee1ec359b038e5d86c6df02dfb979c46c35b3d85f81e679f67c326331bd
@@ -0,0 +1,2923 @@
+{
+ "custom": {},
+ "params": {
+ "titleExtra": "0 rows"
+ },
+ "props": {
+ "defaultSize": {
+ "height": 600,
+ "width": 1600
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Label"
+ },
+ "position": {
+ "height": 40,
+ "width": "100%"
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#1A4A5E",
+ "borderBottomColor": "#000000",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "2px",
+ "color": "#fff",
+ "fontFamily": "Helvetica",
+ "fontSize": 20,
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "Commissioning"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\ttable \u003d self.getSibling(\"ScannerHistory\")\n\tlines \u003d self.getSibling(\"LineChart\")\n\t# Force CSV download:\n\tutils.downloadCSV(table, \"Commissioning Scanner History\")\n\tutils.downloadCSV(lines.props.series[0].data, \"Commissioning Chart Data\")"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button"
+ },
+ "position": {
+ "height": 30,
+ "width": 100,
+ "x": "calc(100% - 105px)",
+ "y": 5
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Export"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "TimeWidget"
+ },
+ "position": {
+ "height": 40,
+ "width": 600
+ },
+ "propConfig": {
+ "meta.visible": {
+ "persistent": true
+ }
+ },
+ "props": {
+ "params": {
+ "endDate": "2021-02-11 00:00:00",
+ "startDate": "2021-02-10 00:00:00"
+ },
+ "path": "Templates/Widget/TimeWidget"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "ScannerHistory"
+ },
+ "position": {
+ "height": "calc((100% - 40px) / 2)",
+ "width": "100%",
+ "y": "calc((100% - 40px) / 2 + 40px)"
+ },
+ "propConfig": {
+ "custom.timewidget": {
+ "binding": {
+ "config": {
+ "path": "session.custom.timewidget"
+ },
+ "type": "property"
+ },
+ "onChange": {
+ "enabled": null,
+ "script": "\tself.forceRefresh()"
+ }
+ }
+ },
+ "props": {
+ "cells": {
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "1px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "1px",
+ "color": "#000",
+ "fontFamily": "Helvetica",
+ "fontSize": "14px"
+ }
+ },
+ "columns": [
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "induct_timestamp",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Induct Timestamp"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": false,
+ "width": 160
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "confirm_timestamp",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Confirm Timestamp"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": "value"
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 160
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "sorter",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Sorter"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 80
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "trackid",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Parcel ID"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 90
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "scanner",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Scanner"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 90
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "imgid",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Img ID"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 90
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "barcode",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Scan Label"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 160
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "scanner_status",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Scan Status"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 50
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "pkg_length",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Length (in)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 50
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "trays",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Trays (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 50
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "assignments",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Assignment"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 50
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "divert_status",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Divert Status"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 50
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "requested_dest",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Req Dest"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 40
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "diverted_dest",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Actual Dest"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 40
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "sort_code",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Sort Code"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 50
+ }
+ ],
+ "filter": {
+ "enabled": true
+ },
+ "pager": {
+ "bottom": false
+ },
+ "rows": {
+ "highlight": {
+ "enabled": false
+ },
+ "striped": {
+ "enabled": false
+ },
+ "style": {
+ "classes": "table/highlight"
+ }
+ },
+ "style": {
+ "fontFamily": "Helvetica",
+ "fontSize": "14px",
+ "fontWeight": "bold"
+ }
+ },
+ "scripts": {
+ "customMethods": [
+ {
+ "name": "forceRefresh",
+ "params": [],
+ "script": "\tRED \u003d lambda x: { \"value\": x, \"style\": { \"background\": \"#FEA3AA\" } }\n\tYELLOW \u003d lambda x: { \"value\": x, \"style\": { \"background\": \"#FAF884\" } }\n\t\n\t# Run query:\n\tdata \u003d system.db.runNamedQuery(\"Status/PackageHistory\", {\n\t\t\"startDate\": self.session.custom.timewidget.startDate,\n\t\t\"endDate\": self.session.custom.timewidget.endDate,\n\t})\n\t# Convert to JSON:\n\tfilteredData \u003d utils.datasetToJSON(data)\n\t# Apply styles:\n\tfor row in filteredData:\n\t\t# Handle sort code:\n\t\tif row[\"sort_code\"] !\u003d \"Success\":\n\t\t\trow[\"sort_code\"] \u003d RED(row[\"sort_code\"])\n\t\t# Handle barcode:\n\t\tif row[\"scanner_status\"] !\u003d \"Good Read\":\n\t\t\trow[\"scanner_status\"] \u003d RED(row[\"scanner_status\"])\n\t\t\trow[\"barcode\"] \u003d RED(row[\"barcode\"])\n\t\t# Handle destinations:\n\t\tif len(row[\"assignments\"]) \u003e 0:\n\t\t\tDESTS \u003d row[\"assignments\"].split(\",\")\n\t\t\tif row[\"requested_dest\"] not in DESTS:\n\t\t\t\trow[\"requested_dest\"] \u003d RED(row[\"requested_dest\"])\n\t\t\telif row[\"requested_dest\"] !\u003d DESTS[0]:\n\t\t\t\trow[\"requested_dest\"] \u003d YELLOW(row[\"requested_dest\"])\n\t\t\tif row[\"diverted_dest\"] not in DESTS:\n\t\t\t\trow[\"diverted_dest\"] \u003d RED(row[\"diverted_dest\"])\n\t\t\telif row[\"diverted_dest\"] !\u003d DESTS[0]:\n\t\t\t\trow[\"diverted_dest\"] \u003d YELLOW(row[\"diverted_dest\"])\n\t\telse:\n\t\t\trow[\"assignments\"] \u003d RED(row[\"assignments\"])\n\t# Set title extra:\n\tcou \u003d utils.getRowCount(filteredData)\n\tast \u003d \"*\" if cou \u003e\u003d 4000 else \"\"\n\tself.view.params.titleExtra \u003d \"{:n}{} rows\".format(cou, ast)\n\t# Set data\n\tself.props.data \u003d filteredData"
+ }
+ ],
+ "extensionFunctions": null,
+ "messageHandlers": [
+ {
+ "messageType": "export-data",
+ "pageScope": true,
+ "script": "\tutils.downloadCSV(self, \"Scanner History\")",
+ "sessionScope": false,
+ "viewScope": false
+ }
+ ]
+ },
+ "type": "ia.display.table"
+ },
+ {
+ "custom": {
+ "plot1": [
+ {
+ "axes": [
+ {
+ "alignment": "left",
+ "label": {
+ "font": {
+ "color": "",
+ "size": 12
+ },
+ "offset": 0,
+ "style": {
+ "classes": ""
+ },
+ "text": "Rate (PPH)",
+ "visible": true
+ },
+ "max": "",
+ "min": 0,
+ "name": "Rate",
+ "style": {
+ "classes": ""
+ },
+ "tick": {
+ "color": "",
+ "label": {
+ "font": {
+ "color": "",
+ "size": 10
+ },
+ "style": {
+ "classes": ""
+ }
+ },
+ "style": {
+ "classes": ""
+ }
+ },
+ "width": 60
+ },
+ {
+ "alignment": "right",
+ "label": {
+ "font": {
+ "color": "",
+ "size": 12
+ },
+ "offset": 0,
+ "style": {
+ "classes": ""
+ },
+ "text": "Percent (%)",
+ "visible": true
+ },
+ "max": 1,
+ "min": 0,
+ "name": "Percent",
+ "style": {
+ "classes": ""
+ },
+ "tick": {
+ "color": "",
+ "label": {
+ "font": {
+ "color": "",
+ "size": 10
+ },
+ "style": {
+ "classes": ""
+ }
+ },
+ "style": {
+ "classes": ""
+ }
+ },
+ "width": 60
+ }
+ ],
+ "markers": [
+ {
+ "axis": "Rate",
+ "line": {
+ "color": "",
+ "dashArray": 0,
+ "label": {
+ "font": {
+ "color": "",
+ "size": 10
+ },
+ "position": "right",
+ "style": {
+ "classes": ""
+ },
+ "text": ""
+ },
+ "opacity": 0.5,
+ "style": {
+ "classes": ""
+ },
+ "width": 1
+ },
+ "type": "line",
+ "visible": true
+ }
+ ],
+ "trends": [
+ {
+ "axis": "Rate",
+ "baselines": [],
+ "breakLine": true,
+ "columns": [
+ {
+ "color": "",
+ "key": "time",
+ "styles": {
+ "highlighted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "muted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "normal": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "selected": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ }
+ }
+ },
+ {
+ "color": "#000000",
+ "key": "total_pph",
+ "styles": {
+ "highlighted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "muted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "normal": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "selected": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ }
+ }
+ }
+ ],
+ "interpolation": "curveLinear",
+ "radius": 2,
+ "series": "Data",
+ "stack": true,
+ "type": "line",
+ "visible": true
+ },
+ {
+ "axis": "Percent",
+ "baselines": [],
+ "breakLine": true,
+ "columns": [
+ {
+ "color": "",
+ "key": "time",
+ "styles": {
+ "highlighted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "muted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "normal": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "selected": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ }
+ }
+ },
+ {
+ "color": "",
+ "key": "no_read_percent",
+ "styles": {
+ "highlighted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "muted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "normal": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "selected": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ }
+ }
+ },
+ {
+ "color": "",
+ "key": "no_code_percent",
+ "styles": {
+ "highlighted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "muted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "normal": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "selected": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ }
+ }
+ },
+ {
+ "color": "",
+ "key": "multi_label_percent",
+ "styles": {
+ "highlighted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "muted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "normal": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "selected": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ }
+ }
+ }
+ ],
+ "interpolation": "curveLinear",
+ "radius": 2,
+ "series": "Data",
+ "stack": true,
+ "type": "line",
+ "visible": true
+ },
+ {
+ "axis": "Percent",
+ "baselines": [],
+ "breakLine": true,
+ "columns": [
+ {
+ "color": "",
+ "key": "time",
+ "styles": {
+ "highlighted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "muted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "normal": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "selected": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ }
+ }
+ },
+ {
+ "color": "",
+ "key": "gap_err_percent",
+ "styles": {
+ "highlighted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "muted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "normal": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "selected": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ }
+ }
+ },
+ {
+ "color": "",
+ "key": "div_fail_percent",
+ "styles": {
+ "highlighted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "muted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "normal": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "selected": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ }
+ }
+ },
+ {
+ "color": "",
+ "key": "dest_none_percent",
+ "styles": {
+ "highlighted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "muted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "normal": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "selected": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ }
+ }
+ },
+ {
+ "color": "",
+ "key": "lost_percent",
+ "styles": {
+ "highlighted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "muted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "normal": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "selected": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ }
+ }
+ }
+ ],
+ "interpolation": "curveLinear",
+ "radius": 2,
+ "series": "Data",
+ "stack": true,
+ "type": "line",
+ "visible": true
+ }
+ ]
+ }
+ ],
+ "plot3": [
+ {
+ "axes": [
+ {
+ "alignment": "left",
+ "label": {
+ "font": {
+ "color": "",
+ "size": 12
+ },
+ "offset": 0,
+ "style": {
+ "classes": ""
+ },
+ "text": "Rate (PPH)",
+ "visible": true
+ },
+ "max": "",
+ "min": 0,
+ "name": "Rate",
+ "style": {
+ "classes": ""
+ },
+ "tick": {
+ "color": "",
+ "label": {
+ "font": {
+ "color": "",
+ "size": 10
+ },
+ "style": {
+ "classes": ""
+ }
+ },
+ "style": {
+ "classes": ""
+ }
+ },
+ "width": 60
+ }
+ ],
+ "markers": [
+ {
+ "axis": "Rate",
+ "line": {
+ "color": "",
+ "dashArray": 0,
+ "label": {
+ "font": {
+ "color": "",
+ "size": 10
+ },
+ "position": "right",
+ "style": {
+ "classes": ""
+ },
+ "text": ""
+ },
+ "opacity": 0.5,
+ "style": {
+ "classes": ""
+ },
+ "width": 1
+ },
+ "type": "line",
+ "visible": true
+ }
+ ],
+ "trends": [
+ {
+ "axis": "Rate",
+ "baselines": [],
+ "breakLine": true,
+ "columns": [
+ {
+ "color": "",
+ "key": "time",
+ "styles": {
+ "highlighted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "muted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "normal": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "selected": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ }
+ }
+ },
+ {
+ "color": "#000000",
+ "key": "total_pph",
+ "styles": {
+ "highlighted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "muted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "normal": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "selected": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ }
+ }
+ }
+ ],
+ "interpolation": "curveLinear",
+ "radius": 2,
+ "series": "Data",
+ "stack": true,
+ "type": "line",
+ "visible": true
+ }
+ ]
+ },
+ {
+ "axes": [
+ {
+ "alignment": "left",
+ "label": {
+ "font": {
+ "color": "",
+ "size": 12
+ },
+ "offset": 0,
+ "style": {
+ "classes": ""
+ },
+ "text": "Percent (%)",
+ "visible": true
+ },
+ "max": 1,
+ "min": 0,
+ "name": "Percent",
+ "style": {
+ "classes": ""
+ },
+ "tick": {
+ "color": "",
+ "label": {
+ "font": {
+ "color": "",
+ "size": 10
+ },
+ "style": {
+ "classes": ""
+ }
+ },
+ "style": {
+ "classes": ""
+ }
+ },
+ "width": 60
+ }
+ ],
+ "markers": [],
+ "trends": [
+ {
+ "axis": "Percent",
+ "baselines": [],
+ "breakLine": true,
+ "columns": [
+ {
+ "color": "",
+ "key": "time",
+ "styles": {
+ "highlighted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "muted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "normal": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "selected": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ }
+ }
+ },
+ {
+ "color": "",
+ "key": "no_read_percent",
+ "styles": {
+ "highlighted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "muted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "normal": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "selected": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ }
+ }
+ },
+ {
+ "color": "",
+ "key": "no_code_percent",
+ "styles": {
+ "highlighted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "muted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "normal": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "selected": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ }
+ }
+ },
+ {
+ "color": "",
+ "key": "multi_label_percent",
+ "styles": {
+ "highlighted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "muted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "normal": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "selected": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ }
+ }
+ }
+ ],
+ "interpolation": "curveLinear",
+ "radius": 2,
+ "series": "Data",
+ "stack": true,
+ "type": "line",
+ "visible": true
+ }
+ ]
+ },
+ {
+ "axes": [
+ {
+ "alignment": "left",
+ "label": {
+ "font": {
+ "color": "",
+ "size": 12
+ },
+ "offset": 0,
+ "style": {
+ "classes": ""
+ },
+ "text": "Percent (%)",
+ "visible": true
+ },
+ "max": 1,
+ "min": 0,
+ "name": "Percent",
+ "style": {
+ "classes": ""
+ },
+ "tick": {
+ "color": "",
+ "label": {
+ "font": {
+ "color": "",
+ "size": 10
+ },
+ "style": {
+ "classes": ""
+ }
+ },
+ "style": {
+ "classes": ""
+ }
+ },
+ "width": 60
+ }
+ ],
+ "markers": [],
+ "trends": [
+ {
+ "axis": "Percent",
+ "baselines": [],
+ "breakLine": true,
+ "columns": [
+ {
+ "color": "",
+ "key": "time",
+ "styles": {
+ "highlighted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "muted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "normal": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "selected": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ }
+ }
+ },
+ {
+ "color": "",
+ "key": "gap_err_percent",
+ "styles": {
+ "highlighted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "muted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "normal": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "selected": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ }
+ }
+ },
+ {
+ "color": "",
+ "key": "div_fail_percent",
+ "styles": {
+ "highlighted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "muted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "normal": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "selected": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ }
+ }
+ },
+ {
+ "color": "",
+ "key": "dest_none_percent",
+ "styles": {
+ "highlighted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "muted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "normal": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "selected": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ }
+ }
+ },
+ {
+ "color": "",
+ "key": "lost_percent",
+ "styles": {
+ "highlighted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "muted": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "normal": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ },
+ "selected": {
+ "fill": {
+ "color": "",
+ "opacity": null
+ },
+ "stroke": {
+ "color": "",
+ "dashArray": null,
+ "opacity": null,
+ "width": null
+ }
+ }
+ }
+ }
+ ],
+ "interpolation": "curveLinear",
+ "radius": 2,
+ "series": "Data",
+ "stack": true,
+ "type": "line",
+ "visible": true
+ }
+ ]
+ }
+ ]
+ },
+ "meta": {
+ "name": "LineChart"
+ },
+ "position": {
+ "height": "calc((100% - 40px)/2)",
+ "width": "100%",
+ "y": "40px"
+ },
+ "propConfig": {
+ "custom.plot1[0].markers[0].value": {
+ "binding": {
+ "config": {
+ "path": "../TargetRate.props.value"
+ },
+ "type": "property"
+ }
+ },
+ "custom.plot3[0].markers[0].value": {
+ "binding": {
+ "config": {
+ "path": "../TargetRate.props.value"
+ },
+ "type": "property"
+ }
+ },
+ "props.plots": {
+ "binding": {
+ "config": {
+ "expression": "if({../CheckboxSplitChart.props.selected},\r\n {this.custom.plot3},\r\n {this.custom.plot1}\r\n)"
+ },
+ "type": "expr"
+ }
+ },
+ "props.series[0].data": {
+ "binding": {
+ "config": {
+ "parameters": {
+ "endDate": "{session.custom.timewidget.endDate}",
+ "movAvgMin": "if({../CheckboxMovAvg.props.selected},\r 4,\r 0\r )",
+ "sorter": "\"S01\"",
+ "startDate": "{session.custom.timewidget.startDate}"
+ },
+ "queryPath": "Commission/StatsChart"
+ },
+ "type": "query"
+ }
+ }
+ },
+ "props": {
+ "defaultStyles": {
+ "colorScheme": "Spectral",
+ "normal": {
+ "stroke": {
+ "width": 2
+ }
+ }
+ },
+ "legend": {
+ "position": "right",
+ "visible": true
+ },
+ "series": [
+ {
+ "name": "Data"
+ }
+ ],
+ "style": {
+ "backgroundColor": "#FFF",
+ "borderTopColor": "#000",
+ "borderTopStyle": "solid",
+ "borderTopWidth": "2px"
+ },
+ "timeRange": {
+ "dateFormat": "YYYY-MM-DD",
+ "timeFormat": "HH:mm:ss"
+ },
+ "xTrace": {
+ "infoBox": {
+ "dateFormat": "YYYY-MM-DD",
+ "timeFormat": "HH:mm",
+ "width": 200
+ }
+ }
+ },
+ "scripts": {
+ "customMethods": [
+ {
+ "name": "forceRefresh",
+ "params": [],
+ "script": "\tif self.meta.visible:\n\t\t# Generate tabData\n\t\tcurrentTabIndex \u003d self.getSibling(\"TabContainer\").props.currentTabIndex\n\t\ttabData \u003d self.view.custom.tabData[currentTabIndex]\n\t\tstartDate \u003d self.session.custom.timewidget.startDate\n\t\tendDate \u003d self.session.custom.timewidget.endDate\n\t\tselected \u003d self.getSibling(\"Table\").props.selection.data\n\t\tidField \u003d tabData[\"idField\"]\n\t\tid \u003d selected[0][idField]\n\t\t\n\t\t# Apply:\n\t\t#system.perspective.print(\"Chart Check: \" + tabData.title + \"|\" + id)\n\t\tif not tabData.isBar:\n\t\t\t#system.perspective.print(\"Chart Refresh: \" + tabData.title + \"|\" + id)\n\t\t\tparams \u003d {\n\t\t\t\t\"startDate\": startDate,\n\t\t\t\t\"endDate\": endDate,\n\t\t\t\tidField: id\n\t\t\t}\n\t\t\tdata \u003d system.db.runNamedQuery(tabData.chartNamedQuery, params)\n\t\t\t# Add breaks:\n\t\t\tbreaks \u003d []\n\t\t\tfor row in range(data.getRowCount()-1):\n\t\t\t\tcurTime \u003d system.date.parse(data.getValueAt(row, \"time\"), \u0027yyyy-MM-dd HH:mm:ss\u0027)\n\t\t\t\tnextTime \u003d system.date.parse(data.getValueAt(row+1, \"time\"), \u0027yyyy-MM-dd HH:mm:ss\u0027)\n\t\t\t\tminBetween \u003d system.date.minutesBetween(curTime, nextTime)\n\t\t\t\tif minBetween \u003e 1:\n\t\t\t\t\tb \u003d []\n\t\t\t\t\tfor col in data.getColumnNames():\n\t\t\t\t\t\tif col \u003c\u003e \"time\":\n\t\t\t\t\t\t\tb.append(0)\n\t\t\t\t\t\telse:\n\t\t\t\t\t\t\tnewTime \u003d system.date.addMinutes(curTime, 1)\n\t\t\t\t\t\t\tb.append(system.date.format(newTime, \u0027yyyy-MM-dd HH:mm:ss\u0027))\n\t\t\t\t\tbreaks.append(b)\n\t\t\t\tif minBetween \u003e 2:\n\t\t\t\t\tb \u003d []\n\t\t\t\t\tfor col in data.getColumnNames():\n\t\t\t\t\t\tif col \u003c\u003e \"time\":\n\t\t\t\t\t\t\tb.append(0)\n\t\t\t\t\t\telse:\n\t\t\t\t\t\t\tnewTime \u003d system.date.addMinutes(nextTime, -1)\n\t\t\t\t\t\t\tb.append(system.date.format(newTime, \u0027yyyy-MM-dd HH:mm:ss\u0027))\n\t\t\t\t\tbreaks.append(b)\n\t\t\tdata \u003d system.dataset.addRows(data, breaks)\n\t\t\tdata \u003d system.dataset.sort(data, \"time\", True)\n\t\t\t# Update columns:\n\t\t\tfilterColumns \u003d [col for col in self.getSibling(\"Mode\").props.value]\n\t\t\tcolumns \u003d [{\"key\": name} for name in data.getColumnNames() if name.split(\"_\")[-1] not in filterColumns]\n\t\t\tself.props.plots[0].trends[0].columns \u003d columns\n\t\t\t# Return data\n\t\t\tself.props.series[0].data \u003d data"
+ }
+ ],
+ "extensionFunctions": null,
+ "messageHandlers": []
+ },
+ "type": "ia.chart.timeseries"
+ },
+ {
+ "meta": {
+ "name": "CheckboxMovAvg"
+ },
+ "position": {
+ "height": 40,
+ "width": 130,
+ "x": "calc(100% - 260px)"
+ },
+ "props": {
+ "selected": true,
+ "style": {
+ "color": "#FFF"
+ },
+ "text": "Moving Avg",
+ "textPosition": "left"
+ },
+ "type": "ia.input.checkbox"
+ },
+ {
+ "meta": {
+ "name": "CheckboxSplitChart"
+ },
+ "position": {
+ "height": 40,
+ "width": 130,
+ "x": "calc(100% - 400px)"
+ },
+ "props": {
+ "style": {
+ "color": "#FFF"
+ },
+ "text": "Split Chart",
+ "textPosition": "left"
+ },
+ "type": "ia.input.checkbox"
+ },
+ {
+ "meta": {
+ "name": "TargetRate"
+ },
+ "position": {
+ "height": 32,
+ "width": 70,
+ "x": "calc(100% - 75px)",
+ "y": "calc((100% - 40px) / 2 + 50px)"
+ },
+ "propConfig": {
+ "props.style.backgroundColor": {
+ "binding": {
+ "config": {
+ "expression": "if(toInt({parent.custom.rateIndicator}[\"total_pph\"], 0) \u003e\u003d {this.props.value},\r\n\t\"#A9D08E\",\r\n\t\"#F4B084\"\r\n)"
+ },
+ "type": "expr"
+ }
+ },
+ "props.value": {
+ "binding": {
+ "config": {
+ "bidirectional": true,
+ "fallbackDelay": 0.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20_Custom/SO01_Target_Rate"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "ia.input.numeric-entry-field"
+ },
+ {
+ "meta": {
+ "name": "Label_RateTarget"
+ },
+ "position": {
+ "height": 32,
+ "width": 100,
+ "x": "calc(100% - 180px)",
+ "y": "calc((100% - 40px) / 2 + 50px)"
+ },
+ "props": {
+ "style": {
+ "textAlign": "right"
+ },
+ "text": "Rate Target:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "TargetSorter"
+ },
+ "position": {
+ "height": 32,
+ "width": 45,
+ "x": "calc(100% - 225px)",
+ "y": "calc((100% - 40px) / 2 + 50px)"
+ },
+ "propConfig": {
+ "props.style.backgroundColor": {
+ "binding": {
+ "config": {
+ "expression": "if(toInt({parent.custom.rateIndicator}[\"sorter\"], 0) \u003e\u003d {this.props.value},\r\n\t\"#A9D08E\",\r\n\t\"#F4B084\"\r\n)"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "enabled": false,
+ "format": "0.##%",
+ "value": 0.01
+ },
+ "type": "ia.input.numeric-entry-field"
+ },
+ {
+ "meta": {
+ "name": "Label_TargetSorter"
+ },
+ "position": {
+ "height": 32,
+ "width": 110,
+ "x": "calc(100% - 340px)",
+ "y": "calc((100% - 40px) / 2 + 50px)"
+ },
+ "props": {
+ "style": {
+ "textAlign": "right"
+ },
+ "text": "Sorter Target:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "TargetScanner"
+ },
+ "position": {
+ "height": 32,
+ "width": 45,
+ "x": "calc(100% - 385px)",
+ "y": "calc((100% - 40px) / 2 + 50px)"
+ },
+ "propConfig": {
+ "props.style.backgroundColor": {
+ "binding": {
+ "config": {
+ "expression": "if(toInt({parent.custom.rateIndicator}[\"scanner\"], 0) \u003e\u003d {this.props.value},\r\n\t\"#A9D08E\",\r\n\t\"#F4B084\"\r\n)"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "enabled": false,
+ "format": "0.##%",
+ "value": 0.02
+ },
+ "type": "ia.input.numeric-entry-field"
+ },
+ {
+ "meta": {
+ "name": "Label_TargetScanner"
+ },
+ "position": {
+ "height": 32,
+ "width": 170,
+ "x": "calc(100% - 560px)",
+ "y": "calc((100% - 40px) / 2 + 50px)"
+ },
+ "props": {
+ "style": {
+ "textAlign": "right"
+ },
+ "text": "Problem Solve Target:"
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "propConfig": {
+ "custom.rateIndicator": {
+ "binding": {
+ "config": {
+ "parameters": {
+ "endDate": "{session.custom.timewidget.endDate}",
+ "movAvgMin": "4",
+ "sorter": "\"S01\"",
+ "startDate": "{session.custom.timewidget.startDate}"
+ },
+ "queryPath": "Commission/StatsConditions"
+ },
+ "type": "query"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "min-width": "1000px"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/a2f1631184ec6945bd4b214bd779f529f5a6088344754ba8064759b2648c096b b/.resources/a2f1631184ec6945bd4b214bd779f529f5a6088344754ba8064759b2648c096b
new file mode 100644
index 00000000..8586d48d
--- /dev/null
+++ b/.resources/a2f1631184ec6945bd4b214bd779f529f5a6088344754ba8064759b2648c096b
@@ -0,0 +1,13 @@
+{
+ "base": {
+ "animation": {
+ "duration": "1s",
+ "keyframes": {
+ "0%": {
+ "backgroundColor": "#FFFF00B3"
+ },
+ "100%": {}
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/a2f3525ec1ef97219c689f285c807b9d853c80e42fd08c4793bb9ca218900088 b/.resources/a2f3525ec1ef97219c689f285c807b9d853c80e42fd08c4793bb9ca218900088
new file mode 100644
index 00000000..34081a4e
--- /dev/null
+++ b/.resources/a2f3525ec1ef97219c689f285c807b9d853c80e42fd08c4793bb9ca218900088
@@ -0,0 +1,73 @@
+WITH LANES_SUCCESS AS (
+ SELECT
+ MIN(s04_timestamp) AS start_timestamp,
+ MAX(s04_timestamp) AS end_timestamp,
+ sorter,
+ destination_act AS lane,
+ COUNT(*) AS total
+ FROM package_history a
+ WHERE s04_timestamp BETWEEN :startDate AND :endDate
+ GROUP BY sorter, s04_act_dest
+), LANES_FAIL_REQ AS (
+ SELECT
+ MIN(s04_timestamp) AS start_timestamp,
+ MAX(s04_timestamp) AS end_timestamp,
+ sorter,
+ CONCAT(sorter, LPAD(s02_req_dest, 2, '0')) AS lane,
+ SUM(req_dest_reason=5) AS dest_full,
+ SUM(req_dest_reason=6) AS dest_fault,
+ SUM(req_dest_reason=12) AS dest_disabled
+ FROM package_history
+ WHERE s04_timestamp BETWEEN :startDate AND :endDate
+ AND s04_act_dest != s02_req_dest
+ GROUP BY sorter, s02_req_dest
+), LANES_FAIL_ALT AS (
+ SELECT
+ MIN(s04_timestamp) AS start_timestamp,
+ MAX(s04_timestamp) AS end_timestamp,
+ sorter,
+ CONCAT(sorter, LPAD(s02_alt_dest, 2, '0')) AS lane,
+ SUM(alt_dest_reason=5) AS dest_full,
+ SUM(alt_dest_reason=6) AS dest_fault,
+ SUM(alt_dest_reason=12) AS dest_disabled
+ FROM package_history
+ WHERE s04_timestamp BETWEEN :startDate AND :endDate
+ AND s04_act_dest != s02_alt_dest
+ GROUP BY sorter, s02_alt_dest
+), LANES AS (
+ SELECT
+ LEAST(s.start_timestamp, IFNULL(r.start_timestamp, s.start_timestamp), IFNULL(r.start_timestamp, a.start_timestamp)) AS start_timestamp,
+ GREATEST(s.end_timestamp, IFNULL(r.end_timestamp, s.end_timestamp), IFNULL(r.end_timestamp, a.end_timestamp)) AS end_timestamp,
+ 3600/TIMESTAMPDIFF(SECOND, :startDate, :endDate) AS pph_multiplier,
+ s.sorter,
+ s.lane,
+ s.total,
+ IFNULL(r.dest_full, 0)+IFNULL(a.dest_full, 0) AS dest_full,
+ IFNULL(r.dest_fault, 0)+IFNULL(a.dest_fault, 0) AS dest_fault,
+ IFNULL(r.dest_disabled, 0)+IFNULL(a.dest_disabled, 0) AS dest_disabled
+ FROM LANES_SUCCESS s
+ LEFT JOIN LANES_FAIL_REQ r ON s.sorter=r.sorter AND s.lane=r.lane
+ LEFT JOIN LANES_FAIL_ALT a ON s.sorter=a.sorter AND s.lane=a.lane
+)
+SELECT
+ start_timestamp,
+ end_timestamp,
+ sorter,
+ lane,
+ /* Counts: */
+ total AS total_count,
+ dest_full AS dest_full_count,
+ dest_fault AS dest_fault_count,
+ dest_disabled AS dest_disabled_count,
+ /* PPH: */
+ ROUND(total*pph_multiplier) AS total_pph,
+ ROUND(dest_full*pph_multiplier) AS dest_full_pph,
+ ROUND(dest_fault*pph_multiplier) AS dest_fault_pph,
+ ROUND(dest_disabled*pph_multiplier) AS dest_disabled_pph,
+ /* Percents: */
+ ROUND(total/total, 4) AS total_percent,
+ ROUND(dest_full/total, 4) AS dest_full_percent,
+ ROUND(dest_fault/total, 4) AS dest_fault_percent,
+ ROUND(dest_disabled/total, 4) AS dest_disabled_percent
+FROM LANES
+ORDER BY sorter, lane;
\ No newline at end of file
diff --git a/.resources/a428a5a22585f00356ab98547990782bb217aae572a5630c40a2507721b85b11 b/.resources/a428a5a22585f00356ab98547990782bb217aae572a5630c40a2507721b85b11
new file mode 100644
index 00000000..06fca026
--- /dev/null
+++ b/.resources/a428a5a22585f00356ab98547990782bb217aae572a5630c40a2507721b85b11
@@ -0,0 +1,10 @@
+{
+ "base": {
+ "style": {
+ "backgroundColor": "#FFFF00",
+ "color": "#000000",
+ "fontFamily": "Arial",
+ "fontWeight": "bold"
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/a48e961115578e539b88fe2bb7529b50242b68ba99553ffa4033a412cbfe8817 b/.resources/a48e961115578e539b88fe2bb7529b50242b68ba99553ffa4033a412cbfe8817
new file mode 100644
index 00000000..ee02c788
--- /dev/null
+++ b/.resources/a48e961115578e539b88fe2bb7529b50242b68ba99553ffa4033a412cbfe8817
@@ -0,0 +1,275 @@
+{
+ "custom": {
+ "plc": "value",
+ "searchId": "value",
+ "state": 0,
+ "string": "Idle"
+ },
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "propConfig": {
+ "custom.plc": {
+ "binding": {
+ "config": {
+ "path": "view.params.tagProps[0]"
+ },
+ "transforms": [
+ {
+ "expression": "split({value}, \"/\")[0]",
+ "type": "expression"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.searchId": {
+ "binding": {
+ "config": {
+ "path": "session.custom.searchId"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.state": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 1,
+ "mode": "indirect",
+ "references": {
+ "0": "{view.params.tagProps[0]}",
+ "fc": "{session.custom.fc}"
+ },
+ "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value},{view.params.forceFaultStatus},0)",
+ "type": "expression"
+ },
+ {
+ "fallback": 0,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": 1
+ },
+ {
+ "input": 2,
+ "output": 2
+ },
+ {
+ "input": 3,
+ "output": 3
+ },
+ {
+ "input": 4,
+ "output": 4
+ },
+ {
+ "input": 5,
+ "output": 5
+ },
+ {
+ "input": 6,
+ "output": 6
+ },
+ {
+ "input": 7,
+ "output": 7
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ },
+ "persistent": true
+ },
+ "custom.string": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "fallback": "Unknown",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 0,
+ "output": "Idle"
+ },
+ {
+ "input": 1,
+ "output": "Actuated"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "params.tagProps": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 30,
+ "width": 30
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "EPC"
+ },
+ "position": {
+ "height": 1,
+ "width": 1
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "session.custom.alarm_filter.show_epc"
+ },
+ "type": "property"
+ }
+ },
+ "props.elements[2].fill.paint": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "fallback": "#00FF00",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": "#FF0000"
+ }
+ ],
+ "outputType": "color",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "elements": [
+ {
+ "fill": {
+ "paint": "#FFFF00"
+ },
+ "height": "20",
+ "name": "rect",
+ "type": "rect",
+ "width": "20",
+ "x": "0",
+ "y": "0"
+ },
+ {
+ "d": "M 0,0 H 20 V 20 H 0 Z",
+ "fill": {
+ "paint": "transparent"
+ },
+ "name": "path",
+ "stroke": {
+ "paint": "#000000",
+ "width": "1.5"
+ },
+ "type": "path"
+ },
+ {
+ "d": "m 17,10.5 a 7,7 0 0 1 -7,7 7,7 0 0 1 -7,-7 7,7 0 0 1 7,-7 7,7 0 0 1 7,7 z",
+ "fill": {},
+ "name": "path",
+ "stroke": {
+ "paint": "#000000",
+ "width": "1"
+ },
+ "type": "path"
+ }
+ ],
+ "viewBox": "0 0 20 20"
+ },
+ "type": "ia.shapes.svg"
+ }
+ ],
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tsystem.perspective.openDock(\u0027Docked-East-EPC\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})"
+ },
+ "scope": "G",
+ "type": "script"
+ },
+ "onMouseEnter": {
+ "config": {
+ "script": "\tfrom time import sleep\n\t\n\talarm \u003d []\n\tmessage \u003d None\n\t\n\tsleep(0.5)\n\t\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "root",
+ "tooltip": {
+ "enabled": true
+ }
+ },
+ "propConfig": {
+ "meta.tooltip.text": {
+ "binding": {
+ "config": {
+ "expression": "\"Source Id: \" + {view.params.tagProps[0]} + \", Status: \" + {view.custom.string}\n"
+ },
+ "type": "expr"
+ }
+ },
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "session.custom.alarm_filter.show_epc"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "mode": "percent",
+ "style": {
+ "cursor": "pointer"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/a53ed87e14e0e6c8d483fb685926091fcf848ec2236629b37a9d18b0d921e357 b/.resources/a53ed87e14e0e6c8d483fb685926091fcf848ec2236629b37a9d18b0d921e357
new file mode 100644
index 00000000..fa365a11
--- /dev/null
+++ b/.resources/a53ed87e14e0e6c8d483fb685926091fcf848ec2236629b37a9d18b0d921e357
@@ -0,0 +1,64 @@
+WITH ALARM_TIMELAPSES AS (
+ /* Group related active & clear events into a single row */
+ SELECT
+ id, /* Unique to each row in alarm_events, used to look up metadata in alarm_event_data */
+ source, /* Unique alarm path in Ignition */
+ eventtime AS starttime,
+ displaypath, /* Get description */
+ /* Get the last time this event was active within the given time range*/
+ CAST(LEAST(COALESCE((
+ /* Search for the clear event (if exists) for the outer query's active event */
+ SELECT MIN(eventtime)
+ FROM alarm_events e2
+ WHERE e2.eventid = e.eventid /* eventid is unique per alarm instance */
+ AND e2.eventtime >= e.eventtime
+ AND e2.eventtype = 1 /* Look only for the clear event */
+ ORDER BY eventtime ASC
+ ), NOW()), :endDate) AS DATETIME) AS endtime, /* Clamp to end of time range if clear event is after end time */
+ priority
+ FROM alarm_events e
+ /* The range for both start/end allows for index optimizations */
+ WHERE eventtime BETWEEN :startDate AND :endDate
+ /* Filter shifts */
+ {shifts}
+ /* Filter alarm types */
+ AND displaypath IN ({alarms})
+ /* Filter out active events */
+ AND eventtype = 0
+), HITLIST AS (
+ /* Group the same type of alarms together to get hit counts and total durations */
+ SELECT
+ MAX(id) AS id, /* Use latest id to get the latest metadata */
+ MIN(starttime) AS firsttime, /* Get the earliest it's been active in the given time range */
+ MAX(endtime) AS lasttime, /* Get the latest it's been active in the given time range */
+ MIN(displaypath) AS displaypath, /* Get one of the displaypaths associated with source */
+ MAX(priority) AS priority,
+ COUNT(*) AS count,
+ SUM(TIME_TO_SEC(TIMEDIFF(endtime, starttime))) AS duration
+ FROM ALARM_TIMELAPSES
+ GROUP BY source
+ ORDER BY count DESC
+ LIMIT 2000
+)
+/* Finally, merge metadata into hitlist */
+SELECT
+ /*e.firsttime, e.lasttime,*/
+ /* Translate duration to a string */
+ CAST(SEC_TO_TIME(FLOOR(e.duration)) AS CHAR) AS duration,
+ /* Retrieve instance count and total duration */
+ e.count,
+ dtag.strvalue AS plctag,
+ ddevice.strvalue AS device,
+ displaypath AS description
+FROM HITLIST e
+/* Lookup Device */
+JOIN alarm_event_data dtag ON e.id = dtag.id AND dtag.propname = "PLCTag"
+/* Lookup Device */
+JOIN alarm_event_data ddevice ON e.id = ddevice.id AND ddevice.propname = "Device"
+/* Lookup Class */
+JOIN alarm_event_data dclass ON e.id = dclass.id AND dclass.propname = "Class"
+/* Lookup DeviceType */
+JOIN alarm_event_data dtype ON e.id = dtype.id AND dtype.propname = "DeviceType"
+WHERE dclass.strvalue IN ("Error", "Warning")
+ AND ddevice.strvalue NOT IN ("Ignition")
+ AND SUBSTRING_INDEX(dtype.strvalue, "_", 1) IN ({devices});
\ No newline at end of file
diff --git a/.resources/a6a6ba3ca5588fcf79d1266b359c653c3d482eb0272fb2869c66fa0227f2bdce b/.resources/a6a6ba3ca5588fcf79d1266b359c653c3d482eb0272fb2869c66fa0227f2bdce
new file mode 100644
index 00000000..6621a917
--- /dev/null
+++ b/.resources/a6a6ba3ca5588fcf79d1266b359c653c3d482eb0272fb2869c66fa0227f2bdce
@@ -0,0 +1,696 @@
+################################################################
+################################################################
+## DESC: For generating stats tables from csv tagpath tables
+################################################################
+################################################################
+#from __future__ import with_statement
+import codecs
+import copy
+import csv
+import os
+import re
+import StringIO
+import uuid
+import zipfile
+from contextlib import closing
+from os import listdir, makedirs
+from os.path import isfile, join
+from org.python.core import PyNone
+from sys import platform
+from zipfile import ZipFile, ZipInfo, ZIP_DEFLATED, ZIP_STORED
+from com.inductiveautomation.ignition.common.model import ApplicationScope
+
+#############
+### Constants
+#############
+CP = "D:\\Ignition\\Reports\\Config"
+DP = "D:\\Ignition\\Reports\\Data"
+TP = "D:\\Ignition\\Reports\\Temp"
+if not os.path.exists("D:\\"):
+ # Not on actual production server, so store locally:
+ CP = "Ignition\\Reports\\Config"
+ DP = "Ignition\\Reports\\Data"
+ TP = "Ignition\\Reports\\Temp"
+if ApplicationScope.isGateway(ApplicationScope.getGlobalScope()):
+ if not os.path.exists(CP):
+ makedirs(CP)
+ if not os.path.exists(DP):
+ makedirs(DP)
+ if not os.path.exists(TP):
+ makedirs(TP)
+
+defaultColumn = {
+ "field": "",
+ "visible": True,
+ "editable": False,
+ "render": "auto",
+ "justify": "center",
+ "align": "center",
+ "resizable": True,
+ "sortable": True,
+ "boolean": "checkbox",
+ "number": "value",
+ "numberFormat": "none",#"0,0.##",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "header": {
+ "justify": "center",
+ "align": "center",
+ "style": {
+ "classes": "table/column-header"#,
+ #"backgroundColor": "#60B0D2",
+ #"borderBottomColor": "#D5D5D5",
+ #"borderBottomStyle": "solid",
+ #"borderBottomWidth": "1px",
+ #"borderRightColor": "#D5D5D5",
+ #"borderRightStyle": "solid",
+ #"borderRightWidth": "1px"
+ }
+ }
+}
+
+defaultSeries = {
+ "name": "",
+ "label": {
+ "text": ""
+ },
+ "visible": True,
+ "hiddenInLegend": False,
+ "defaultState": {
+ "visible": True
+ },
+ "data": {
+ "source": "",
+ "x": "",
+ "y": ""
+ },
+ "xAxis": "",
+ "yAxis": "",
+ "zIndex": 0,
+ "tooltip": {
+ "enabled": True,
+ "text": "{name}: [bold]{valueY}[/]",
+ "cornerRadius": 3,
+ "pointerLength": 4,
+ "background": {
+ "color": "",
+ "opacity": 1
+ }
+ },
+ "render": "column",
+ "candlestick": {
+ "open": {
+ "x": "",
+ "y": ""
+ },
+ "high": {
+ "x": "",
+ "y": ""
+ },
+ "low": {
+ "x": "",
+ "y": ""
+ },
+ "appearance": {
+ "fill": {
+ "color": "",
+ "opacity": 1
+ },
+ "stroke": {
+ "color": "",
+ "opacity": 1,
+ "width": 1
+ },
+ "stacked": False,
+ "deriveFieldsFromData": {
+ "fill": {
+ "color": "",
+ "opacity": ""
+ },
+ "stroke": {
+ "color": "",
+ "opacity": "",
+ "width": ""
+ }
+ },
+ "heatRules": {
+ "enabled": False,
+ "max": "",
+ "min": "",
+ "dataField": ""
+ }
+ }
+ },
+ "column": {
+ "open": {
+ "x": "",
+ "y": ""
+ },
+ "appearance": {
+ "fill": {
+ "color": "",
+ "opacity": 1
+ },
+ "stroke": {
+ "color": "",
+ "opacity": 1,
+ "width": 1
+ },
+ "stacked": False,
+ "width": None,
+ "height": None,
+ "deriveFieldsFromData": {
+ "fill": {
+ "color": "",
+ "opacity": ""
+ },
+ "stroke": {
+ "color": "",
+ "opacity": "",
+ "width": ""
+ }
+ },
+ "heatRules": {
+ "enabled": False,
+ "max": "",
+ "min": "",
+ "dataField": ""
+ }
+ }
+ },
+ "line": {
+ "open": {
+ "x": "",
+ "y": ""
+ },
+ "appearance": {
+ "connect": True,
+ "tensionX": 1,
+ "tensionY": 1,
+ "minDistance": 0.5,
+ "stroke": {
+ "width": 3,
+ "opacity": 1,
+ "color": "",
+ "dashArray": ""
+ },
+ "fill": {
+ "opacity": 0,
+ "color": ""
+ },
+ "bullets": [
+ {
+ "enabled": False,
+ "render": "circle",
+ "width": 10,
+ "height": 10,
+ "label": {
+ "text": "{value}",
+ "position": {
+ "dx": 0,
+ "dy": 0
+ }
+ },
+ "fill": {
+ "color": "",
+ "opacity": 1
+ },
+ "stroke": {
+ "color": "",
+ "opacity": 1,
+ "width": 1
+ },
+ "rotation": 0,
+ "tooltip": {
+ "enabled": True,
+ "text": "{name}: [bold]{valueY}[/]",
+ "cornerRadius": 3,
+ "pointerLength": 4,
+ "background": {
+ "color": "",
+ "opacity": 1
+ }
+ },
+ "deriveFieldsFromData": {
+ "fill": {
+ "color": "",
+ "opacity": ""
+ },
+ "stroke": {
+ "color": "",
+ "opacity": "",
+ "width": ""
+ },
+ "rotation": ""
+ },
+ "heatRules": {
+ "enabled": False,
+ "max": 100,
+ "min": 2,
+ "dataField": ""
+ }
+ }
+ ]
+ }
+ },
+ "stepLine": {
+ "open": {
+ "x": "",
+ "y": ""
+ },
+ "appearance": {
+ "connect": True,
+ "tensionX": 1,
+ "tensionY": 1,
+ "minDistance": 0.5,
+ "stroke": {
+ "width": 3,
+ "opacity": 1,
+ "color": "",
+ "dashArray": ""
+ },
+ "fill": {
+ "opacity": 0,
+ "color": ""
+ },
+ "bullets": [
+ {
+ "enabled": True,
+ "render": "circle",
+ "width": 10,
+ "height": 10,
+ "label": {
+ "text": "{value}",
+ "position": {
+ "dx": 0,
+ "dy": 0
+ }
+ },
+ "fill": {
+ "color": "",
+ "opacity": 1
+ },
+ "stroke": {
+ "color": "",
+ "opacity": 1,
+ "width": 1
+ },
+ "rotation": 0,
+ "tooltip": {
+ "enabled": True,
+ "text": "{name}: [bold]{valueY}[/]",
+ "cornerRadius": 3,
+ "pointerLength": 4,
+ "background": {
+ "color": "",
+ "opacity": 1
+ }
+ },
+ "deriveFieldsFromData": {
+ "fill": {
+ "color": "",
+ "opacity": ""
+ },
+ "stroke": {
+ "color": "",
+ "opacity": "",
+ "width": ""
+ },
+ "rotation": ""
+ },
+ "heatRules": {
+ "enabled": False,
+ "max": 100,
+ "min": 2,
+ "dataField": ""
+ }
+ }
+ ]
+ }
+ }
+}
+
+#######################################################
+#######################################################
+#######################################################
+#### Functions
+#######################################################
+
+def checkRole(filename, roles=[]):
+ roles = [role.split("/")[-1] for role in roles]
+ if "Administrator" in roles: # Admin reports has "@" in the beginning
+ return True
+ elif filename[0] == "#" and "Maintenance" in roles:
+ return True
+ elif filename[0] not in ["@", "#"]:
+ return True
+ else:
+ return False
+def checkCompatibility(filename, extensions=[".csv", ".sql"]):
+ if filename[-4:].lower() in extensions:
+ return True
+ else:
+ return False
+
+def generateColumn(field, extra={}):
+ column = copy.deepcopy(defaultColumn)
+ column["field"] = field
+ # Convert title:
+ title = utils.prettyTitle(field)
+ column["header"]["title"] = title
+ # Apply rendering styles:
+ if title.endswith("(%)"):
+ column["numberFormat"] = "0.##%"
+ # Apply overrides:
+ for prop, value in extra.iteritems():
+ column[prop] = value
+ return column
+
+def generateSeries(field, extra={}):
+ series = copy.deepcopy(defaultSeries)
+ series["name"] = field
+ series["data"]["y"] = field
+ # Convert title:
+ series["label"]["text"] = utils.prettyTitle(field)
+ # Apply overrides:
+ for prop, value in extra.iteritems():
+ series[prop] = value
+ return series
+
+def generateZip(filenames, rootPath):
+ if len(filenames) > 2000:
+ return {'err': "Too many files! Max of 2000 allowed."}
+ # Encode filenames (since they are unicode):
+ filenames = [filename.encode('UTF-8', 'replace') for filename in filenames]
+ # Determine greatest common prefix to strip out for filenames in zip:
+ prefix = os.path.commonprefix(filenames)
+ if prefix.rfind('\\') >= 0:
+ prefix = prefix[:prefix.rfind('\\')+1]
+ else:
+ prefix = ""
+ prefixOmmit = len(prefix)
+ # Add files to zip:
+ zippath = os.path.join(TP, str(uuid.uuid4()) + ".zip")
+ with ZipFile(zippath, "w", ZIP_DEFLATED) as z:
+ for filename in filenames:
+ filepath = os.path.join(rootPath, filename)
+ try:
+ z.write(filepath, filename[prefixOmmit:])
+ except:
+ return {'err': "File doesn't exist!"}
+ # Read contents of zip:
+ content = system.file.readFileAsBytes(zippath)
+ os.remove(zippath)
+ return {'content': content}
+
+def getConfigs(configPath = CP, roles = []):
+ if roles is None:
+ roles = []
+ # Get custom reports:
+ return sorted([f for f in listdir(configPath) if isfile(join(configPath, f)) and checkRole(f, roles) and checkCompatibility(f)])
+
+def uploadConfig(filename, contents, configPath = CP):
+ filepath = join(configPath, filename)
+ #if system.file.fileExists(filepath):
+ #return "Config file already exists!\r\nYou must delete the config before uploading over it."
+ if not checkCompatibility(filename):
+ return "File extension not compatible!\r\nThe supported extensions are: csv, sql"
+ else:
+ system.file.writeFile(filepath, contents, False)
+
+def downloadConfig(filename, configPath = CP):
+ filepath = join(configPath, filename)
+ if not system.file.fileExists(filepath):
+ return {'err': "Config file doesn't exist!"}
+ else:
+ return {'contents': system.file.readFileAsString(filepath, 'UTF-8')}
+
+def downloadConfigs(filenames, configPath = CP):
+ if len(filenames) == 1:
+ filename = filenames[0]
+ filepath = join(configPath, filename)
+ if not system.file.fileExists(filepath):
+ return "Config file doesn't exist!"
+ else:
+ system.perspective.download(filename, system.file.readFileAsString(filepath, 'UTF-8'))
+ elif len(filenames) > 1:
+ result = generateZip(filenames, configPath)
+ if "err" in result:
+ return result["err"]
+ else:
+ system.perspective.download("configs.zip", result["content"])
+
+def deleteConfigs(filenames, configPath = CP):
+ for filename in filenames:
+ filepath = join(configPath, filename)
+ if not system.file.fileExists(filepath):
+ return "Config file doesn't exist!"
+ else:
+ os.remove(filepath)
+
+def getOldReports(dataPath = DP, roles = []):
+ if roles is None:
+ roles = []
+ # Get old reports:
+ reports = []
+ for root, dirs, files in os.walk(dataPath):
+ path = root[len(dataPath):].strip("\\")
+ for name in files:
+ if checkRole(name, roles) and checkCompatibility(name, extensions=[".csv"]):
+ reports.append((path, name))
+ return reports
+
+def downloadOldReport(filename, dataPath = DP):
+ filepath = join(dataPath, filename)
+ if not system.file.fileExists(filepath):
+ return {'err': "Report file doesn't exist!"}
+ else:
+ return {'contents': system.file.readFileAsString(filepath, 'UTF-8')}
+
+def downloadOldReports(filenames, dataPath = DP):
+ if len(filenames) > 2000:
+ return {'err': "Too many files! Max of 2000 allowed."}
+ # Encode filenames (since they are unicode):
+ filenames = [filename.encode('UTF-8', 'replace') for filename in filenames]
+ # Determine greatest common prefix to strip out for filenames in zip:
+ prefix = os.path.commonprefix(filenames)
+ if prefix.rfind('\\') >= 0:
+ prefix = prefix[:prefix.rfind('\\')+1]
+ else:
+ prefix = ""
+ prefixOmmit = len(prefix)
+ # Open in-memory zip:
+ zmem = StringIO.StringIO()
+ # Add files to zip:
+ with closing(ZipFile(zmem, "w", ZIP_DEFLATED)) as z:
+ for filename in filenames:
+ filepath = os.path.join(dataPath, filename)
+ z.write(filepath, filename[prefixOmmit:])
+ # Read contents of zip:
+ zmem.seek(0)
+ contents = zmem.read()
+ # Send zip:
+ return {'contents': contents}
+
+def retrieveTags(headers, values, plcTagPaths, plcTagPos, ignitionTagPaths, ignitionTagPos, configPath = CP, server = "Ignition OPC UA Server"):
+ # Retrieve values of the tag table:
+ plcResults = system.opc.readValues(server, plcTagPaths)
+ ignitionResults = system.tag.readAll(ignitionTagPaths)
+ # Retrieve values of the plc tags:
+ for i, result in enumerate(system.opc.readValues(server, plcTagPaths)):
+ (r, c) = plcTagPos[i]
+ if result.value is not None:
+ # Retrieved a value, so add it:
+ values[r][c] = result.value
+ # Retrieve values of the ignition tags:
+ for i, result in enumerate(system.tag.readAll(ignitionTagPaths)):
+ (r, c) = ignitionTagPos[i]
+ if result.value is not None:
+ # Retrieved a value, so add it:
+ val = result.value
+ try:
+ val = round(float(val), 2)
+ except:
+ pass
+ values[r][c] = val
+ # Generate columns
+ columns = []
+ for col in headers:
+ column = copy.deepcopy(defaultColumn)
+ column['field'] = col
+ columns.append(column)
+ # Return data table:
+ return {'data': values, 'columns': columns}
+
+def readDataTable(headers, rows, configPath = CP, server = "Ignition OPC UA Server"):
+ # Default results:
+ values = [{} for row in range(len(rows))]
+ # Extract tags:
+ plcTagPaths = []
+ plcTagPos = []
+ ignitionTagPaths = []
+ ignitionTagPos = []
+ for r, row in enumerate(rows):
+ for c, val in enumerate(row[:len(headers)]):
+ column = headers[c]
+ if val is not None and len(val) > 0 and val[0] == "[":
+ # Default value:
+ values[r][column] = {
+ "value": "ERR: NOT FOUND",
+ "style": { "background": "#F88" }
+ }
+ # Determine type of tag:
+ if val.lower().startswith("[ignition]"):
+ # Is an Ignition tag
+ ignitionTagPaths.append(val[10:])
+ ignitionTagPos.append((r, column))
+ else:
+ # Is a PLC tag
+ plcTagPaths.append(val)
+ plcTagPos.append((r, column))
+ elif val is not None and len(val) > 0 and val[0] == "'":
+ # Is not a tag, treat as string:
+ values[r][column] = val[1:]
+ else:
+ # Is not a tag, treat as value:
+ values[r][column] = val
+ # Retrieve and return data table:
+ return retrieveTags(headers, values, plcTagPaths, plcTagPos, ignitionTagPaths, ignitionTagPos, configPath, server)
+
+def readJsonTable(headers, json, configPath = CP, server = "Ignition OPC UA Server"):
+ # Default results:
+ values = [{} for row in range(len(json))]
+ # Extract tags:
+ plcTagPaths = []
+ plcTagPos = []
+ ignitionTagPaths = []
+ ignitionTagPos = []
+ for r, row in enumerate(values):
+ for column in headers:
+ val = json[r].get(column, None)
+ if val is not None and len(val) > 0 and val[0] == "[":
+ # Default value:
+ row[column] = {
+ "value": "ERR: NOT FOUND",
+ "style": { "background": "#F88" }
+ }
+ # Determine type of tag:
+ if val.lower().startswith("[ignition]"):
+ # Is an Ignition tag
+ ignitionTagPaths.append(val[10:])
+ ignitionTagPos.append((r, column))
+ else:
+ # Is a PLC tag
+ plcTagPaths.append(val)
+ plcTagPos.append((r, column))
+ elif val is not None and len(val) > 0 and val[0] == "'":
+ # Is not a tag, treat as string:
+ row[column] = val[1:]
+ else:
+ # Is not a tag, treat as value:
+ row[column] = val
+ # Retrieve and return data table:
+ return retrieveTags(headers, values, plcTagPaths, plcTagPos, ignitionTagPaths, ignitionTagPos, configPath, server)
+
+def readCSVTable(filename, configPath = CP, server = "Ignition OPC UA Server"):
+ # Open CSV file:
+ filepath = join(configPath, filename)
+ if system.file.fileExists(filepath):
+ with codecs.open(filepath, mode='rb', encoding='UTF-8') as csvfile:
+ rows = csv.reader(csvfile)
+ headers = rows.next()
+ rows = list(rows)
+ # Retrieve data:
+ return readDataTable(headers, rows, configPath, server)
+ return {'err': "Config file doesn't exist!"}
+
+def readSQLTable(filename, configPath = CP):
+ # Open SQL file:
+ filepath = join(configPath, filename)
+ sql = ""
+ try:
+ sql = system.file.readFileAsString(filepath, 'UTF-8')
+ except:
+ return {'err': "Config file doesn't exist!"}
+ data = None
+ values = None
+ headers = None
+ try:
+ data = system.db.runQuery(sql).getUnderlyingDataset()
+ headers = [name for name in data.getColumnNames()]
+ def parse(r, c):
+ v = data.getValueAt(r, c)
+ return v if v <> None else "null"
+ values = [{headers[c]: parse(r, c) for c in range(data.getColumnCount())} for r in range(data.getRowCount())]
+ except:
+ return {'err': "Bad SQL:\r\n"+sql}
+ # Generate columns
+ columns = []
+ for col in headers:
+ column = defaultColumn.copy()
+ column['field'] = col
+ columns.append(column)
+ # Return data table:
+ return {'data': values, 'columns': columns}
+
+def readTable(filename, configPath = CP, server = "Ignition OPC UA Server"):
+ extension = filename.split(".")[-1].lower()
+ # Check type of data:
+ if extension == "csv":
+ return readCSVTable(filename, configPath, server)
+ elif extension == "sql":
+ return readSQLTable(filename, configPath)
+ else:
+ return {'err': "File extension not compatible!\r\nThe supported extensions are: csv, sql"}
+
+#def getAlarmHitListBySystem(sys, startDate, endDate, projectName=system.util.getProjectName()):
+# # Run the Named Query
+# params = {"startDate": startDate, "endDate": endDate, "system": sys}
+# try:
+# # Gateway Scope:
+# return system.db.runNamedQuery(projectName, "AlarmHitListBySystem", params)
+# except:
+# # Project Scope:
+# return system.db.runNamedQuery("AlarmHitListBySystem", params)
+
+
+
+def importFromCSV(filename, dataPath = DP, numDefault=0, strDefault=""):
+ # Open CSV file:
+ filepath = join(dataPath, filename)
+ with codecs.open(filepath, mode='rb', encoding='UTF-8') as csvfile:
+ rows = csv.reader(csvfile)
+ headers = rows.next()
+ rows = list(rows)
+ # Create all other types:
+ values = [[str(v) for v in row] for row in rows]
+ textValues = [[""]*len(headers)]*len(values)
+ errValues = [[False]*len(headers)]*len(values)
+ isTagValues = errValues
+ # Return data table:
+ return {
+ 'values': system.dataset.toDataSet(headers, values),
+ 'text': system.dataset.toDataSet(headers, textValues),
+ 'errors': system.dataset.toDataSet(headers, errValues),
+ 'isTag': system.dataset.toDataSet(headers, isTagValues),
+ 'numDefault': numDefault, 'strDefault': strDefault
+ }
+ return {'err': "Report file doesn't exist!"}
+
+def exportToCSV(filename, dataset, text=None, numDefault=None, strDefault=None):
+ with open(filename, mode='wb') as csv_file:
+ writer = csv.writer(csv_file, quoting=csv.QUOTE_ALL)
+ writer.writerow(dataset.getColumnNames())
+ dataset = system.dataset.toPyDataSet(dataset)
+ if text is not None:
+ text = system.dataset.toPyDataSet(text)
+ else:
+ text = dataset
+ def check(v, r, c):
+ try:
+ if len(text[r][c]) > 0 or v in [numDefault, strDefault]:
+ return text[r][c]
+ except:
+ pass
+ return v
+ for row in [[check(v, r, c) for c, v in enumerate(row)] for r, row in enumerate(dataset)]:
+ writer.writerow(row)
\ No newline at end of file
diff --git a/.resources/a6ac2c3e3630f2ce032a7ffbd751876e557da860562725e6cac5d0266f5d964a b/.resources/a6ac2c3e3630f2ce032a7ffbd751876e557da860562725e6cac5d0266f5d964a
new file mode 100644
index 00000000..111ac8b3
--- /dev/null
+++ b/.resources/a6ac2c3e3630f2ce032a7ffbd751876e557da860562725e6cac5d0266f5d964a
@@ -0,0 +1,18 @@
+WITH GAYLORDS AS (
+ SELECT
+ MIN(timestamp) AS start_timestamp,
+ MAX(timestamp) AS end_timestamp,
+ gaylord_id AS gaylord,
+ SUM(count) AS count
+ FROM gl_history
+ WHERE timestamp BETWEEN :startDate AND :endDate
+ GROUP BY gaylord_id
+ ORDER BY gaylord_id
+)
+SELECT
+ start_timestamp,
+ end_timestamp,
+ gaylord,
+ /* Counts: */
+ count
+FROM GAYLORDS;
\ No newline at end of file
diff --git a/.resources/a7a51bdab4f2e795feacb82d3bd8c08d4f3facde4aecd62a8d8a4a87858b3bac b/.resources/a7a51bdab4f2e795feacb82d3bd8c08d4f3facde4aecd62a8d8a4a87858b3bac
new file mode 100644
index 00000000..198a4d1e
--- /dev/null
+++ b/.resources/a7a51bdab4f2e795feacb82d3bd8c08d4f3facde4aecd62a8d8a4a87858b3bac
@@ -0,0 +1,10 @@
+{
+ "base": {
+ "style": {
+ "backgroundColor": "#007EFC",
+ "color": "#FFFFFF",
+ "fontFamily": "Arial",
+ "fontWeight": "bold"
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/a7c485e5272f2f907fc261fe574588ebd649716d6be8a4c999d01078733369ea b/.resources/a7c485e5272f2f907fc261fe574588ebd649716d6be8a4c999d01078733369ea
new file mode 100644
index 00000000..bfcced54
--- /dev/null
+++ b/.resources/a7c485e5272f2f907fc261fe574588ebd649716d6be8a4c999d01078733369ea
@@ -0,0 +1,13 @@
+{
+ "base": {
+ "animation": {
+ "duration": "1s",
+ "keyframes": {
+ "0%": {
+ "backgroundColor": "#FCC400"
+ },
+ "100%": {}
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/a7dcacd2e0ed258203104a348a431f51dcfb6b12e96fcf6a8045b296f881a3bf b/.resources/a7dcacd2e0ed258203104a348a431f51dcfb6b12e96fcf6a8045b296f881a3bf
new file mode 100644
index 00000000..2512e968
--- /dev/null
+++ b/.resources/a7dcacd2e0ed258203104a348a431f51dcfb6b12e96fcf6a8045b296f881a3bf
@@ -0,0 +1,1387 @@
+{
+ "custom": {},
+ "params": {},
+ "props": {
+ "defaultSize": {
+ "height": 1467,
+ "width": 709
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "RO16A_01"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 240,
+ "x": 25,
+ "y": 704
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16A/RO16A_01/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RO16A_03"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 240,
+ "x": 44,
+ "y": 963
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16A/RO16A_03/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RO16_06"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 720,
+ "x": 303,
+ "y": 523
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_06/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RO16_07"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 170,
+ "x": 303,
+ "y": 1242
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_07/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RO16_09"
+ },
+ "position": {
+ "height": 20,
+ "width": 310,
+ "x": 322,
+ "y": 1431
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_09/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RO16_11"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 136,
+ "x": 651,
+ "y": 1412
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_11/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "RO16A_02CHNP"
+ },
+ "position": {
+ "height": 40,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 40,
+ "x": 45,
+ "y": 943
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "side": "left"
+ },
+ "status": {
+ "color": "#FFF"
+ }
+ },
+ "type": "dex.display.conveyorcurve"
+ },
+ {
+ "meta": {
+ "name": "RO16_08CH"
+ },
+ "position": {
+ "height": 40,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 40,
+ "x": 323,
+ "y": 1411
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_08CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "side": "left"
+ }
+ },
+ "type": "dex.display.conveyorcurve"
+ },
+ {
+ "meta": {
+ "name": "RO16_10CH"
+ },
+ "position": {
+ "height": 40,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 631,
+ "y": 1411
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_10CH/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "side": "left"
+ }
+ },
+ "type": "dex.display.conveyorcurve"
+ },
+ {
+ "meta": {
+ "name": "RO16A_01_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 26,
+ "y": 830
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16A/RO16A_01/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "RO16A_03_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 138,
+ "y": 946
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16A/RO16A_03/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "RO16_06_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 304,
+ "y": 1204
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_06/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "RO16_07_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 304,
+ "y": 1314
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_07/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "RO16_09_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 470,
+ "y": 1414
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_09/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "RO16_11_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 634,
+ "y": 1384
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_11/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "RO16A_01_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 26,
+ "y": 911
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16A/RO16A_01/EPC1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "RO16_11_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 672,
+ "y": 1323
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_11/EPC1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "RO16A_01_RS2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 26,
+ "y": 717
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16A/RO16A_01/RS2/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RO16A_01_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 26,
+ "y": 871
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16A/RO16A_01/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RO16A_01_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 26,
+ "y": 890
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16A/RO16A_01/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RO16_06_RS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 262,
+ "y": 1015
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_06/RS1/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RO16_07_RS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 304,
+ "y": 1379
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_07/RS1/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RO16_09_RS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 599,
+ "y": 1410
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_09/RS1/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RO16_11_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 672,
+ "y": 1344
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_11/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RO16_11_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 672,
+ "y": 1363
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_11/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RO16_11_SS2_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 630,
+ "y": 1344
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_11/SS2/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RO16_11_SS2_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 630,
+ "y": 1363
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_11/SS2/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "RO16A_03_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "width": 30,
+ "x": 76,
+ "y": 947
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16A/RO16A_03/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RO16A_03_SIO1"
+ },
+ "position": {
+ "height": 15,
+ "width": 30,
+ "x": 107,
+ "y": 947
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16A/RO16A_03/SIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RO16_06_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 304,
+ "y": 1077
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_06/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RO16_09_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "width": 30,
+ "x": 386,
+ "y": 1452
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_09/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RO16_09_SIO1"
+ },
+ "position": {
+ "height": 15,
+ "width": 30,
+ "x": 417,
+ "y": 1452
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_09/SIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RO16_11_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 614,
+ "y": 1374
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_11/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RO16_11_SIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 693,
+ "y": 1374
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_11/SIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "RO16A_01_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 47,
+ "y": 886
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16A/RO16A_01/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO16A_01_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 47,
+ "y": 871
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16A/RO16A_01/BCN1/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO16_06_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 266,
+ "y": 998
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_06/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO16_07_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 304,
+ "y": 1362
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_07/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO16_09_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 582,
+ "y": 1414
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_09/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO16_11_BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 672,
+ "y": 1306
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_11/BCN1/BLU/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO16_11_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 672,
+ "y": 1291
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_11/BCN1/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO16_11_BCN2_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 634,
+ "y": 1327
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_11/BCN2/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RO16A_01_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 34,
+ "x": 35,
+ "y": 942
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16A/RO16A_01/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO16A_01_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 34,
+ "x": 35,
+ "y": 716
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16A/RO16A_01/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO16A_03_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 282,
+ "y": 953
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16A/RO16A_03/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO16A_03_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 56,
+ "y": 953
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16A/RO16A_03/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO16_06_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 34,
+ "x": 313,
+ "y": 1241
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_06/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO16_06_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 34,
+ "x": 313,
+ "y": 1046
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_06/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO16_07_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 34,
+ "x": 313,
+ "y": 1410
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_07/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO16_09_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 630,
+ "y": 1421
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_09/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO16_09_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 334,
+ "y": 1421
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_09/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO16_11_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 641,
+ "y": 1278
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_11/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "RO16_11_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 34,
+ "x": 641,
+ "y": 1401
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP20/RO16/RO16_11/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/a84a4864a7b228b6dfa6a7bba07262a089752a995b189b9101aafd7d2483de02 b/.resources/a84a4864a7b228b6dfa6a7bba07262a089752a995b189b9101aafd7d2483de02
new file mode 100644
index 00000000..c0472e04
--- /dev/null
+++ b/.resources/a84a4864a7b228b6dfa6a7bba07262a089752a995b189b9101aafd7d2483de02
@@ -0,0 +1,264 @@
+{
+ "custom": {},
+ "params": {
+ "alwaysShowAll": false,
+ "isClickable": true,
+ "tagPath": ""
+ },
+ "propConfig": {
+ "params.alwaysShowAll": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.isClickable": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.tagPath": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 110,
+ "width": 66
+ },
+ "loading": {
+ "mode": "blocking"
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Conveyor"
+ },
+ "position": {
+ "height": 30,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 102,
+ "x": 56,
+ "y": 1
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/Conv/Graphics"
+ },
+ "overlayOptOut": true,
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "type": "chute"
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 5,
+ "y": 62
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/BCN1/AMB/Graphics"
+ },
+ "overlayOptOut": true,
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "RS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1,
+ "y": 82
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/RS1/Restart/Graphics"
+ },
+ "overlayOptOut": true,
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "Half_PE"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 43,
+ "x": 65,
+ "y": 79
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/Half_PE/Graphics"
+ },
+ "overlayOptOut": true,
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "BCN1_BLU"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 5,
+ "y": 47
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/BCN1/BLU/Graphics"
+ },
+ "overlayOptOut": true,
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "Full_PE"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 43,
+ "x": 65,
+ "y": 56
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/Full_PE/Graphics"
+ },
+ "overlayOptOut": true,
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "propConfig": {
+ "props.style.transform": {
+ "binding": {
+ "config": {
+ "path": "view.params.mirror"
+ },
+ "transforms": [
+ {
+ "fallback": null,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "scale(-1, 1)"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "scripts": {
+ "customMethods": [
+ {
+ "name": "openPopup",
+ "params": [],
+ "script": "\tif self.view.params.isClickable:\n\t\tid \u003d \"DivChute|\" + self.view.params.tagPath\n\t\ttitle \u003d utils.prettyName(self.view.params.tagPath.split(\"/\")[-1])\n\t\tparams \u003d { \n\t\t\t\"deviceType\": \"divchute\",\n\t\t\t\"props\": { \n\t\t\t\t\"config\": {\n\t\t\t\t\t\"alwaysShowAll\": self.view.params.alwaysShowAll,\n\t\t\t\t\t\"isClickable\": self.view.params.isClickable,\n\t\t\t\t\t#\"rotate\": self.view.params.rotate,\n\t\t\t\t\t\"mirror\": self.view.params.mirror\n\t\t\t\t},\n\t\t\t\t\"status\": {\n\t\t\t\t\t\"tagPath\": self.view.params.tagPath\n\t\t\t\t}\n\t\t \t},\n\t\t \t\"tabs\": [\"Controls\", \"Alarm History\", \"Devices\"]\t\t\n\t\t}\n\t\tsystem.perspective.openPopup(id, \"Popups/DeviceWrapper\", params, title, resizable \u003d True)"
+ }
+ ],
+ "extensionFunctions": null,
+ "messageHandlers": []
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/a8c43be0f1607c74bd78fffec0fe7b084efea8bf1bb0a77c82781fcda4375c90 b/.resources/a8c43be0f1607c74bd78fffec0fe7b084efea8bf1bb0a77c82781fcda4375c90
new file mode 100644
index 00000000..3b06f627
--- /dev/null
+++ b/.resources/a8c43be0f1607c74bd78fffec0fe7b084efea8bf1bb0a77c82781fcda4375c90
@@ -0,0 +1,17 @@
+{
+ "base": {
+ "style": {
+ "backgroundColor": "#FFF",
+ "borderLeftColor": "#000",
+ "borderLeftStyle": "solid",
+ "borderLeftWidth": "2px",
+ "borderRightColor": "#000",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "2px",
+ "fontFamily": "Helvetica",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/a99ad7c52e9d24380f63c5a041e31236c41dc9f15185928c7c3cc8f633c48c85 b/.resources/a99ad7c52e9d24380f63c5a041e31236c41dc9f15185928c7c3cc8f633c48c85
new file mode 100644
index 00000000..d9310f1d
--- /dev/null
+++ b/.resources/a99ad7c52e9d24380f63c5a041e31236c41dc9f15185928c7c3cc8f633c48c85
@@ -0,0 +1,84 @@
+{
+ "custom": {},
+ "params": {},
+ "props": {
+ "defaultSize": {
+ "height": 1621,
+ "width": 969
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "HSS_Singulator"
+ },
+ "position": {
+ "height": 1601,
+ "width": 949,
+ "x": 10,
+ "y": 10
+ },
+ "props": {
+ "path": "Windows/Graphics/Templates/HSS_Singulator",
+ "style": {
+ "classes": "painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NavButton_HSS_Inbound"
+ },
+ "position": {
+ "height": 40,
+ "width": 106,
+ "x": 240,
+ "y": 1530
+ },
+ "props": {
+ "params": {
+ "enableTooltip": true,
+ "label": null,
+ "tagPath": "[default]HSSInboundStatus",
+ "view": ""
+ },
+ "path": "Templates/Buttons/NavButton",
+ "style": {
+ "transform": "scale(2)"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NavButton_HSS_Sorter"
+ },
+ "position": {
+ "height": 40,
+ "width": 95,
+ "x": 700,
+ "y": 280
+ },
+ "props": {
+ "params": {
+ "enableTooltip": true,
+ "label": null,
+ "tagPath": "[default]HSSSorterStatus",
+ "view": ""
+ },
+ "path": "Templates/Buttons/NavButton",
+ "style": {
+ "transform": "scale(2)"
+ }
+ },
+ "type": "ia.display.view"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/aa836e4f47a5b2b0af024080cfd8736c8b16812b5aabb7490cfae33978dc35e3 b/.resources/aa836e4f47a5b2b0af024080cfd8736c8b16812b5aabb7490cfae33978dc35e3
new file mode 100644
index 00000000..914bd6ce
--- /dev/null
+++ b/.resources/aa836e4f47a5b2b0af024080cfd8736c8b16812b5aabb7490cfae33978dc35e3
@@ -0,0 +1,71 @@
+import re
+import system
+
+reSource = re.compile(r"prov\:([^:]+)\:/tag\:([^:]+)\:")
+reTagPathProvider = re.compile(r"(\[[^\]]+\])?(.+)")
+
+SUBVIEWS = {
+}
+
+def resolveScreenByTagPath(tagPath, defaultOverview="Windows/Graphics/Overview", defaultError=""):
+ try:
+ (provider, path) = reTagPathProvider.findall(tagPath)[0]
+ if provider == None:
+ provider = "[default]"
+ except:
+ return defaultError
+ pathParts = path.split("/")
+ tags = [provider+"/".join(pathParts[:i])+"/Parameters.GoToScreen" for i in range(len(pathParts), 0, -1)]
+ for value in system.tag.readBlocking(tags):
+ if value.quality.isGood():
+ value = value.getValue()
+ if value not in (None, ""):
+ return value
+ else:
+ return defaultError
+ # Couldn't find a PathToInstance parameter, default to overview:
+ return defaultOverview
+
+def resolveScreenBySource(source, defaultOverview="Windows/Graphics/Overview", defaultError=""):
+ try:
+ (provider, path) = reSource.findall(source)[0]
+ tagPath = "["+provider+"]"+path
+ except:
+ return defaultOverview
+ return resolveScreenByTagPath(tagPath, defaultOverview, defaultError)
+
+
+def filterAlarms(screen, alarms):
+ # Only filter if this isn't the overview:
+ if screen <> "Windows/Graphics/Overview":
+ # Lookup views to filter on
+ views = SUBVIEWS.get(screen, [screen]) + [""] # Include any device tags not set up yet for all views
+ badrows = [row for row in range(alarms.getRowCount()) if resolveScreenBySource(alarms.getValueAt(row, "source")) not in views]
+ # Return filtered rows:
+ return system.dataset.deleteRows(alarms, badrows)
+ else:
+ return alarms
+
+"""
+reMCP = re.compile(r"\[([^\]]+)\]")
+
+def resolveScreen(location, plctag):
+ conveyor = location.split(".")[0]
+ conveyor_parts = conveyor.split("-")
+ conveyor_num = int(conveyor_parts[1].strip(string.ascii_letters)) if len(conveyor_parts) > 1 and conveyor_parts[1].isalnum() and not conveyor_parts[1].isalpha() else 0
+ area = conveyor_parts[0]
+ area_num = int(area.strip(string.ascii_letters)) if area.isalnum() and not area.isalpha() else 0
+ mcp = reMCP.findall(plctag)[0]
+
+ return "Windows/Graphics/Overview"
+
+def filterAlarms(screen, alarms):
+ # Lookup views to filter on
+ views = SUBVIEWS.get(screen, [])
+ # Only filter if there are views we found:
+ if len(views) > 0:
+ badrows = [row for row in range(alarms.getRowCount()) if resolveScreen(alarms.getValueAt(row, "device"), alarms.getValueAt(row, "plctag")) not in views]
+ # Return filtered rows:
+ return system.dataset.deleteRows(alarms, badrows)
+ else:
+ return alarms"""
diff --git a/.resources/ac1d56d60ffc4b972bcc058477c6f2f0894e393a4a0825ff55655b4367f0ae32 b/.resources/ac1d56d60ffc4b972bcc058477c6f2f0894e393a4a0825ff55655b4367f0ae32
new file mode 100644
index 00000000..b02087ae
--- /dev/null
+++ b/.resources/ac1d56d60ffc4b972bcc058477c6f2f0894e393a4a0825ff55655b4367f0ae32
@@ -0,0 +1,13 @@
+{
+ "base": {
+ "style": {}
+ },
+ "variants": [
+ {
+ "pseudo": "hover",
+ "style": {
+ "backgroundColor": "#DBEFFA"
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.resources/ae3072a006fe8ffc01840dae90829cebb025847d277dab15e3827b7514822025 b/.resources/ae3072a006fe8ffc01840dae90829cebb025847d277dab15e3827b7514822025
new file mode 100644
index 00000000..7314cda3
--- /dev/null
+++ b/.resources/ae3072a006fe8ffc01840dae90829cebb025847d277dab15e3827b7514822025
@@ -0,0 +1,313 @@
+{
+ "custom": {},
+ "params": {
+ "tab": "Active Alarms"
+ },
+ "propConfig": {
+ "params.tab": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 400,
+ "width": 1600
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Label"
+ },
+ "position": {
+ "height": 40,
+ "width": "100%"
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "expression": " property(\"../TabContainer.props.tabs[\"+{../TabContainer.props.currentTabIndex}+\"]\")\r\n+if(len({../EmbeddedView.props.params.titleExtra})\u003e0,\r\n\t\" (\" + {../EmbeddedView.props.params.titleExtra} + \")\",\r\n\t\"\"\r\n)"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#1A4A5E",
+ "borderBottomColor": "#000000",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "2px",
+ "color": "#fff",
+ "fontFamily": "Helvetica",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Dropdown"
+ },
+ "position": {
+ "height": 20,
+ "width": 120,
+ "x": "calc(100% - 230px)",
+ "y": 10
+ },
+ "props": {
+ "options": [
+ {
+ "label": "Error",
+ "value": [
+ "Error"
+ ]
+ },
+ {
+ "label": "Warning",
+ "value": [
+ "Warning",
+ "Error"
+ ]
+ },
+ {
+ "label": "Message",
+ "value": [
+ "Message",
+ "Warning",
+ "Error"
+ ]
+ }
+ ],
+ "search": {
+ "enabled": false
+ },
+ "style": {
+ "fontSize": "14px"
+ },
+ "value": [
+ "Error"
+ ]
+ },
+ "type": "ia.input.dropdown"
+ },
+ {
+ "meta": {
+ "name": "Label_0"
+ },
+ "position": {
+ "height": 20,
+ "width": 100,
+ "x": "calc(100% - 335px)",
+ "y": 10
+ },
+ "props": {
+ "style": {
+ "color": "#fff",
+ "fontSize": "14px",
+ "textAlign": "right"
+ },
+ "text": "Min Class:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tsystem.perspective.sendMessage(\"export-data\")"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button"
+ },
+ "position": {
+ "height": 30,
+ "width": 100,
+ "x": "calc(100% - 105px)",
+ "y": 5
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Export"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "custom": {
+ "pages": [
+ "Active",
+ "History",
+ "HitList"
+ ]
+ },
+ "meta": {
+ "name": "TabContainer"
+ },
+ "position": {
+ "height": "calc(100% - 40px)",
+ "width": "100%",
+ "y": 40
+ },
+ "propConfig": {
+ "props.currentTabIndex": {
+ "binding": {
+ "config": {
+ "path": "page.props.path"
+ },
+ "transforms": [
+ {
+ "code": "\ttab \u003d self.page.props.path.split(\"/\")[-1]\n\t# Search for tab:\n\tfor i, page in enumerate(self.custom.pages):\n\t\tif page.lower() \u003d\u003d tab:\n\t\t\treturn i\n\t# Default value in case of not finding the tab\n\treturn 0",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ },
+ "onChange": {
+ "enabled": null,
+ "script": "\tpage \u003d \"/alarms/\"+self.custom.pages[self.props.currentTabIndex].lower()\n\tif previousValue \u003c\u003e currentValue and self.page.props.path.lower() \u003c\u003e page.lower():\n\t\tsystem.perspective.navigate(page)"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "menuStyle": {
+ "backgroundColor": "#225E77"
+ },
+ "tabSize": {
+ "width": 130
+ },
+ "tabStyle": {
+ "active": {
+ "backgroundColor": "#2D7D9F",
+ "color": "#FFF",
+ "fontWeight": "bold"
+ },
+ "inactive": {
+ "backgroundColor": "#389CC7",
+ "color": "#FFF"
+ }
+ },
+ "tabs": [
+ "Active Alarms",
+ "Alarm History",
+ "Alarm Hit List"
+ ]
+ },
+ "type": "ia.container.tab"
+ },
+ {
+ "meta": {
+ "name": "EmbeddedView"
+ },
+ "position": {
+ "height": "calc(100% - 76px)",
+ "width": "100%",
+ "y": 76
+ },
+ "propConfig": {
+ "props.params.classDropdownValue": {
+ "binding": {
+ "config": {
+ "path": "../Dropdown.props.value"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "props.path": {
+ "binding": {
+ "config": {
+ "expression": " \"Windows/Alarms/\"\r\n+property(\"../TabContainer.custom.pages[\"+{../TabContainer.props.currentTabIndex}+\"]\")"
+ },
+ "transforms": [
+ {
+ "code": "\t# Reset the titleExtra whenever the view is changed to prevent the numbers from showing while loading the new view:\n\tif value \u003c\u003e self.props.path:\n\t\tself.props.params.titleExtra \u003d \"\"\n\t# Return new view path:\n\treturn value",
+ "type": "script"
+ }
+ ],
+ "type": "expr"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "params": {
+ "classDropdownValue": [
+ "Error"
+ ],
+ "titleExtra": "24 rows"
+ },
+ "path": "Windows/Alarms/Active"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "TimeWidget"
+ },
+ "position": {
+ "height": 40,
+ "width": 600
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "../TabContainer.props.currentTabIndex"
+ },
+ "transforms": [
+ {
+ "fallback": false,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": true
+ },
+ {
+ "input": 2,
+ "output": true
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "params": {
+ "endDate": "2021-02-11 00:00:00",
+ "startDate": "2021-02-10 00:00:00"
+ },
+ "path": "Templates/Widget/TimeWidget"
+ },
+ "type": "ia.display.view"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "min-width": "1000px"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/ae6f15937671d219adbf9728d86fb3e70a8048bd62605655a3ed01910e20adf3 b/.resources/ae6f15937671d219adbf9728d86fb3e70a8048bd62605655a3ed01910e20adf3
new file mode 100644
index 00000000..2887093c
--- /dev/null
+++ b/.resources/ae6f15937671d219adbf9728d86fb3e70a8048bd62605655a3ed01910e20adf3
@@ -0,0 +1,10 @@
+{
+ "base": {
+ "style": {
+ "backgroundColor": "#FF8000",
+ "color": "#000000",
+ "fontFamily": "Arial",
+ "fontWeight": "bold"
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/af805333dcd041a41ed50544ed1f23151b1ef69b2ed9148a981e557346027959 b/.resources/af805333dcd041a41ed50544ed1f23151b1ef69b2ed9148a981e557346027959
new file mode 100644
index 00000000..8ddfe1be
--- /dev/null
+++ b/.resources/af805333dcd041a41ed50544ed1f23151b1ef69b2ed9148a981e557346027959
@@ -0,0 +1,7 @@
+{
+ "base": {
+ "style": {
+ "color": "#4747FF"
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/b0a81bb3dfa0a0904783d34085ada9232a8423dc4c8e0ddb4da1368387e643aa b/.resources/b0a81bb3dfa0a0904783d34085ada9232a8423dc4c8e0ddb4da1368387e643aa
new file mode 100644
index 00000000..5bf085b1
--- /dev/null
+++ b/.resources/b0a81bb3dfa0a0904783d34085ada9232a8423dc4c8e0ddb4da1368387e643aa
@@ -0,0 +1,57 @@
+{
+ "custom": {},
+ "events": {
+ "system": {
+ "onShutdown": {
+ "config": {
+ "script": "\tsystem.perspective.sendMessage(\"custom-reports-refreshlist\", {})"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "params": {},
+ "props": {
+ "defaultSize": {
+ "height": 300,
+ "width": 400
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "events": {
+ "component": {
+ "onFileReceived": {
+ "config": {
+ "script": "\treports.uploadConfig(event.file.name, event.file.getString())\n\t\n\t# Close popup:\n\t#system.perspective.closePopup(\"\")"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "FileUpload"
+ },
+ "position": {
+ "height": "100%",
+ "width": "100%"
+ },
+ "props": {
+ "maxUploads": 50,
+ "supportedFileTypes": [
+ "csv",
+ "sql"
+ ]
+ },
+ "type": "ia.input.fileupload"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/b1969eb2cf2dbea4302e342fedfe3aa3f0205500cf903a401de03a437f128fd0 b/.resources/b1969eb2cf2dbea4302e342fedfe3aa3f0205500cf903a401de03a437f128fd0
new file mode 100644
index 00000000..0360a08c
--- /dev/null
+++ b/.resources/b1969eb2cf2dbea4302e342fedfe3aa3f0205500cf903a401de03a437f128fd0
@@ -0,0 +1,233 @@
+{
+ "custom": {
+ "plc": "",
+ "searchId": "value",
+ "state": 0,
+ "string": "Inactive"
+ },
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "propConfig": {
+ "custom.plc": {
+ "binding": {
+ "config": {
+ "path": "view.params.tagProps[0]"
+ },
+ "transforms": [
+ {
+ "expression": "split({value}, \"/\")[0]",
+ "type": "expression"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.searchId": {
+ "binding": {
+ "config": {
+ "path": "session.custom.searchId"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.state": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "0": "{view.params.tagProps[0]}",
+ "fc": "{session.custom.fc}"
+ },
+ "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value},0)",
+ "type": "expression"
+ },
+ {
+ "fallback": null,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": 1
+ },
+ {
+ "input": 0,
+ "output": 0
+ },
+ {
+ "input": 2,
+ "output": 2
+ },
+ {
+ "input": 3,
+ "output": 3
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ },
+ "persistent": true
+ },
+ "custom.string": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "fallback": "Unknown",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": "Actuated"
+ },
+ {
+ "input": 2,
+ "output": "Faulted"
+ },
+ {
+ "input": 0,
+ "output": "Inactive"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "params.tagProps": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 20,
+ "width": 30
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Label"
+ },
+ "position": {
+ "height": 1,
+ "width": 1
+ },
+ "props": {
+ "text": "PX",
+ "textStyle": {
+ "fontSize": "20px",
+ "textAlign": "center",
+ "textTransform": "uppercase"
+ }
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tsystem.perspective.openDock(\u0027Docked-East-JR\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})"
+ },
+ "scope": "G",
+ "type": "script"
+ },
+ "onMouseEnter": {
+ "config": {
+ "script": "\tfrom time import sleep\n\t\n\talarm \u003d []\n\tmessage \u003d None\n\t\n\tsleep(0.5)\n\t\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "root",
+ "tooltip": {
+ "enabled": true
+ }
+ },
+ "propConfig": {
+ "meta.tooltip.text": {
+ "binding": {
+ "config": {
+ "expression": "\"Source Id: \" + {view.params.tagProps[0]} + \", Status: \" + {view.custom.string}\n"
+ },
+ "type": "expr"
+ }
+ },
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "session.custom.alarm_filter.show_beacons"
+ },
+ "type": "property"
+ }
+ },
+ "props.style.backgroundColor": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "fallback": "#808080",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": "#00FF00"
+ },
+ {
+ "input": 2,
+ "output": "#FF0000"
+ }
+ ],
+ "outputType": "color",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "mode": "percent",
+ "style": {
+ "borderStyle": "solid",
+ "cursor": "pointer",
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/b1cc309fe47cbff1d761ffb3e6112c88b1c69d9e879e50fdc3d6aed78149fe98 b/.resources/b1cc309fe47cbff1d761ffb3e6112c88b1c69d9e879e50fdc3d6aed78149fe98
new file mode 100644
index 00000000..797bdf79
--- /dev/null
+++ b/.resources/b1cc309fe47cbff1d761ffb3e6112c88b1c69d9e879e50fdc3d6aed78149fe98
@@ -0,0 +1,286 @@
+{
+ "custom": {},
+ "params": {
+ "meta": {
+ "name": "Conveyor"
+ },
+ "props": {
+ "config": {
+ "enableHighlight": true,
+ "isClickable": false,
+ "showLabel": true,
+ "type": "belt"
+ },
+ "status": {
+ "color": {
+ "inner": "#D2B48C",
+ "outer": "#C49C67"
+ },
+ "showAlways": false,
+ "tagPath": "",
+ "tooltip": ""
+ }
+ }
+ },
+ "propConfig": {
+ "params.meta": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.meta.name": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 105,
+ "width": 500
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Gaylord"
+ },
+ "position": {
+ "height": 48,
+ "width": 48,
+ "x": 76,
+ "y": 11
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "expression": "try(\r\n\tjsonSet({value}, \"showAlways\", true),\r\n\t{view.params.props.status}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.gaylord"
+ },
+ {
+ "meta": {
+ "name": "lbStatus"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 40
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "code": "\treturn utils.extractStatus(value)",
+ "type": "script"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbName"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 5
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.LabelFull"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \u0027\u0027)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_1"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 5
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Name: "
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_11"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 40
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Status:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_12"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 75
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Panel:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbStatus_0"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 75
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.OPC_Server"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \"Unknown\")",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "background-color": "#CFCFCF"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/b2329aa61c513199edddf62e45f30796c81009c5c79cf0a69a35511a1739fd8b b/.resources/b2329aa61c513199edddf62e45f30796c81009c5c79cf0a69a35511a1739fd8b
new file mode 100644
index 00000000..90d4dab7
--- /dev/null
+++ b/.resources/b2329aa61c513199edddf62e45f30796c81009c5c79cf0a69a35511a1739fd8b
@@ -0,0 +1,299 @@
+{
+ "custom": {},
+ "params": {
+ "meta": {
+ "name": "LS1"
+ },
+ "props": {
+ "config": {
+ "enableHighlight": true,
+ "isClickable": true,
+ "showLabel": true
+ },
+ "status": {
+ "color": [
+ "#AAA"
+ ],
+ "showAlways": true,
+ "tagPath": "",
+ "tooltip": ""
+ }
+ }
+ },
+ "propConfig": {
+ "params.meta": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.meta.name": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 105,
+ "width": 500
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "LimitSwitch"
+ },
+ "position": {
+ "height": 48,
+ "width": 48,
+ "x": 75.5,
+ "y": 11
+ },
+ "propConfig": {
+ "props.config.showLabel": {
+ "binding": {
+ "config": {
+ "path": "view.params.props.config.showLabel"
+ },
+ "overlayOptOut": true,
+ "type": "property"
+ }
+ },
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "expression": "try(\r\n\tjsonSet({value}, \"showAlways\", true),\r\n\t{view.params.props.status}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ }
+ },
+ "type": "dex.display.limitswitch"
+ },
+ {
+ "meta": {
+ "name": "lbStatus"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 40
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "code": "\treturn utils.extractStatus(value)",
+ "type": "script"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbName"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 5
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.LabelFull"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \u0027\u0027)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_1"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 5
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Name: "
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_11"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 40
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Status:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_12"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 75
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Panel:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbStatus_0"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 75
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.OPC_Server"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \"Unknown\")",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "background-color": "#CFCFCF"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/b4db0e9a9baa9e386a541c82db1e230e82d245e83235800ae0d156591ed75783 b/.resources/b4db0e9a9baa9e386a541c82db1e230e82d245e83235800ae0d156591ed75783
new file mode 100644
index 00000000..d34b1464
--- /dev/null
+++ b/.resources/b4db0e9a9baa9e386a541c82db1e230e82d245e83235800ae0d156591ed75783
@@ -0,0 +1,643 @@
+{
+ "custom": {},
+ "params": {},
+ "props": {
+ "defaultSize": {
+ "height": 600,
+ "width": 750
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "TitleLabel"
+ },
+ "position": {
+ "height": 35,
+ "width": "100%"
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#1A4A5E",
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "1px",
+ "color": "#FFF",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "paddingLeft": 5
+ },
+ "text": "Heatmap Options"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "ShiftLabel"
+ },
+ "position": {
+ "height": 25,
+ "width": "33%",
+ "y": 40
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#F0F0F0",
+ "borderStyle": "solid",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "Filter By Time \u0026 Shifts"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "TimeStartLabel"
+ },
+ "position": {
+ "height": 30,
+ "width": 75,
+ "y": 65
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#F0F0F0",
+ "borderLeftStyle": "solid",
+ "borderRightStyle": "solid",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Start:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tstartDate \u003d self.props\n\tendDate \u003d self.getSibling(\"TimeEndInput\").props\n\thours \u003d system.date.hoursBetween(startDate.value, endDate.value)\n\tif hours \u003e 30*24:\n\t\t# Cap endDate to within 30 days of startDate:\n\t\tendDate.value \u003d system.date.addDays(startDate.value, 30)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "TimeStartInput"
+ },
+ "position": {
+ "height": 30,
+ "width": "calc(33% - 75px)",
+ "x": 75,
+ "y": 65
+ },
+ "props": {
+ "format": "YYYY-MM-DD HH:mm:ss",
+ "formattedValue": "2021-02-13 00:00:00",
+ "formattedValues": {
+ "date": "2021-02-13",
+ "datetime": "2021-02-13 00:00:00",
+ "time": "00:00:00"
+ },
+ "value": {
+ "$": [
+ "ts",
+ 192,
+ 1613256769474
+ ],
+ "$ts": 1613192400000
+ }
+ },
+ "type": "ia.input.date-time-input"
+ },
+ {
+ "meta": {
+ "name": "TimeEndLabel"
+ },
+ "position": {
+ "height": 30,
+ "width": 75,
+ "y": 95
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#F0F0F0",
+ "borderLeftStyle": "solid",
+ "borderRightStyle": "solid",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "End:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tstartDate \u003d self.getSibling(\"TimeStartInput\").props\n\tendDate \u003d self.props\n\thours \u003d system.date.hoursBetween(startDate.value, endDate.value)\n\tif hours \u003e 30*24:\n\t\t# Cap startDate to within 30 days of endDate:\n\t\tstartDate.value \u003d system.date.addDays(endDate.value, -30)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "TimeEndInput"
+ },
+ "position": {
+ "height": 30,
+ "width": "calc(33% - 75px)",
+ "x": 75,
+ "y": 95
+ },
+ "props": {
+ "format": "YYYY-MM-DD HH:mm:ss",
+ "formattedValue": "2021-02-14 00:00:00",
+ "formattedValues": {
+ "date": "2021-02-14",
+ "datetime": "2021-02-14 00:00:00",
+ "time": "00:00:00"
+ },
+ "value": {
+ "$": [
+ "ts",
+ 192,
+ 1613256769474
+ ],
+ "$ts": 1613278800000
+ }
+ },
+ "type": "ia.input.date-time-input"
+ },
+ {
+ "meta": {
+ "name": "AlarmTypeTable"
+ },
+ "position": {
+ "height": "calc(100% - 145px)",
+ "width": "33%",
+ "x": 251.25,
+ "y": 90
+ },
+ "propConfig": {
+ "props.cells.style.backgroundColor": {
+ "binding": {
+ "config": {
+ "path": "../AlarmTypeAll.props.selected"
+ },
+ "transforms": [
+ {
+ "fallback": null,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "#888"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "props.data": {
+ "binding": {
+ "config": {
+ "queryPath": "Alarms/HeatmapUniqueAlarms"
+ },
+ "type": "query"
+ }
+ },
+ "props.selection.enableRowSelection": {
+ "binding": {
+ "config": {
+ "expression": "!{../AlarmTypeAll.props.selected}"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "enableHeader": false,
+ "pager": {
+ "bottom": false,
+ "initialOption": 5
+ },
+ "selection": {
+ "mode": "multiple interval"
+ }
+ },
+ "type": "ia.display.table"
+ },
+ {
+ "meta": {
+ "name": "AlarmTypeLabel"
+ },
+ "position": {
+ "height": 25,
+ "width": "33%",
+ "x": 251.25,
+ "y": 40
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#F0F0F0",
+ "borderStyle": "solid",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "Filter By Alarm Type"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "AlarmTypeAll"
+ },
+ "position": {
+ "height": 25,
+ "width": "33%",
+ "x": 251.25,
+ "y": 65
+ },
+ "props": {
+ "selected": true,
+ "style": {
+ "backgroundColor": "#F0F0F0",
+ "borderBottomStyle": "solid",
+ "borderLeftStyle": "solid",
+ "borderRightStyle": "solid"
+ },
+ "text": "Select All"
+ },
+ "type": "ia.input.checkbox"
+ },
+ {
+ "meta": {
+ "name": "ShiftAll"
+ },
+ "position": {
+ "height": 25,
+ "width": "33%",
+ "y": 125
+ },
+ "props": {
+ "selected": true,
+ "style": {
+ "backgroundColor": "#F0F0F0",
+ "borderStyle": "solid"
+ },
+ "text": "No Shift Filter (24/7)"
+ },
+ "type": "ia.input.checkbox"
+ },
+ {
+ "meta": {
+ "name": "ShiftTable"
+ },
+ "position": {
+ "height": "calc(100% - 205px)",
+ "width": "33%",
+ "y": 150
+ },
+ "propConfig": {
+ "props.cells.style.backgroundColor": {
+ "binding": {
+ "config": {
+ "path": "../ShiftAll.props.selected"
+ },
+ "transforms": [
+ {
+ "fallback": null,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "#888"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "props.data": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]Gateway/Shifts"
+ },
+ "transforms": [
+ {
+ "code": "\tdata \u003d [[value.getValueAt(r, \"Name\")] for r in range(value.getRowCount()) if value.getValueAt(r, \"Enabled\")]\n\tdata \u003d [r for r in data if r[0] !\u003d \"\"]\n\treturn system.dataset.toDataSet([\"description\"], data)",
+ "type": "script"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.selection.enableRowSelection": {
+ "binding": {
+ "config": {
+ "expression": "!{../ShiftAll.props.selected}"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "enableHeader": false,
+ "pager": {
+ "bottom": false,
+ "initialOption": 5
+ },
+ "selection": {
+ "mode": "multiple interval"
+ }
+ },
+ "type": "ia.display.table"
+ },
+ {
+ "meta": {
+ "name": "DeviceTypeLabel"
+ },
+ "position": {
+ "height": 25,
+ "width": "33%",
+ "x": 502.5,
+ "y": 40
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#F0F0F0",
+ "borderStyle": "solid",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "Filter By Device Type"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "DeviceTypeAll"
+ },
+ "position": {
+ "height": 25,
+ "width": "33%",
+ "x": 502.5,
+ "y": 65
+ },
+ "props": {
+ "selected": true,
+ "style": {
+ "backgroundColor": "#F0F0F0",
+ "borderBottomStyle": "solid",
+ "borderLeftStyle": "solid",
+ "borderRightStyle": "solid"
+ },
+ "text": "Select All"
+ },
+ "type": "ia.input.checkbox"
+ },
+ {
+ "meta": {
+ "name": "DeviceTypeTable"
+ },
+ "position": {
+ "height": "calc(100% - 145px)",
+ "width": "33%",
+ "x": 502.5,
+ "y": 90
+ },
+ "propConfig": {
+ "props.cells.style.backgroundColor": {
+ "binding": {
+ "config": {
+ "path": "../DeviceTypeAll.props.selected"
+ },
+ "transforms": [
+ {
+ "fallback": null,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "#888"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "props.selection.enableRowSelection": {
+ "binding": {
+ "config": {
+ "expression": "!{../DeviceTypeAll.props.selected}"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "columns": [
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "justify": "auto",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ }
+ ],
+ "data": {
+ "$": [
+ "ds",
+ 192,
+ 1597260961733
+ ],
+ "$columns": [
+ {
+ "data": [
+ "Beacons",
+ "EIPs",
+ "Encoders",
+ "Estops",
+ "Limit Switches",
+ "MCPs",
+ "Photo Eyes",
+ "Push Buttons",
+ "Scanners",
+ "VFDs",
+ "Solenoids",
+ "Conveyors"
+ ],
+ "name": "description",
+ "type": "String"
+ },
+ {
+ "data": [
+ "beacon",
+ "eip",
+ "encoder",
+ "estop",
+ "limitswitch",
+ "mcp",
+ "photoeye",
+ "pushbutton",
+ "scanner",
+ "vfd",
+ "solenoid",
+ "conveyor"
+ ],
+ "name": "type",
+ "type": "String"
+ }
+ ]
+ },
+ "enableHeader": false,
+ "pager": {
+ "bottom": false,
+ "initialOption": 5
+ },
+ "selection": {
+ "mode": "multiple interval"
+ }
+ },
+ "type": "ia.display.table"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\timport re\n\timport time\n\t\n\t# Gather Shifts:\n\tshifts \u003d []\n\tshiftsQuery \u003d []\n\tshiftsText \u003d \"None\"\n\tif not self.getSibling(\"ShiftAll\").props.selected:\n\t\t# Retrieve shift table:\n\t\tshiftTable \u003d utils.datasetToJSON(system.tag.readBlocking([\"[default]Gateway/Shifts\"])[0].value)\n\t\tshiftTable \u003d {row[\"Name\"]: row for row in shiftTable}\n\t\t# Grab selection:\n\t\tselection \u003d self.getSibling(\"ShiftTable\").props.selection.data\n\t\tshifts \u003d [dat[\"description\"] for dat in selection]\n\t\tshiftsText \u003d \", \".join(shifts)\n\t\t# Generate shift query:\n\t\tfor shift in selection:\n\t\t\tif shift[\"description\"] in shiftTable:\n\t\t\t\tshift \u003d shiftTable[shift[\"description\"]]\n\t\t\t\tline \u003d []\n\t\t\t\t# Add day filter:\n\t\t\t\tdays \u003d [str(i+1) for i, day in enumerate([\"isSunday\", \"isMonday\", \"isTuesday\", \"isWednesday\", \"isThursday\", \"isFriday\", \"isSaturday\"]) if shift[day]]\n\t\t\t\t# If no days, ignore this shift:\n\t\t\t\tif len(days) \u003c\u003d 0:\n\t\t\t\t\tshiftsQuery.append(\"false\")\n\t\t\t\t\tcontinue\n\t\t\t\t# If not all days are present, then add day filter:\n\t\t\t\tif len(days) \u003c 7:\n\t\t\t\t\tline.append(\"DAYOFWEEK(eventtime) IN (\"+\",\".join(days)+\")\")\n\t\t\t\t# If time range is incompatible (starttime \u003e\u003d endtime), then remove shift:\n\t\t\t\t# TODO: Handle time ranges that go across midnight\n\t\t\t\tif shift[\"StartHour\"]*60+shift[\"StartMinute\"] \u003e\u003d shift[\"EndHour\"]*60+shift[\"EndMinute\"]:\n\t\t\t\t\tshiftsQuery.append(\"false\")\n\t\t\t\t\tcontinue\n\t\t\t\t# Add time range:\n\t\t\t\tline.append(\"TIME(eventtime) BETWEEN \\\"{:02d}:{:02d}:00\\\" AND \\\"{:02d}:{:02d}:00\\\"\".format(shift[\"StartHour\"], shift[\"StartMinute\"], shift[\"EndHour\"], shift[\"EndMinute\"]))\n\t\t\t\t# If nothing was added to line, then treat shift as 24/7, which then we can ignore all shifts:\n\t\t\t\tif len(line) \u003c\u003d 0:\n\t\t\t\t\tshiftsQuery \u003d []\n\t\t\t\t\tbreak\n\t\t\t\t# Add shift to shifts:\n\t\t\t\tshiftsQuery.append(\" AND \".join(line))\n\t# Gather Alarms:\n\talarms \u003d []\n\talarmsText \u003d \"All\"\n\tif not self.getSibling(\"AlarmTypeAll\").props.selected:\n\t\talarms \u003d self.getSibling(\"AlarmTypeTable\").props.selection.data\n\t\talarms \u003d [dat[\"description\"] for dat in alarms]\n\t\talarmsText \u003d \", \".join(alarms)\n\tif len(alarms) \u003d\u003d 0:\n\t\talarms \u003d self.getSibling(\"AlarmTypeTable\").props.data\n\t\talarms \u003d [alarms.getValueAt(r, \"description\") for r in range(alarms.getRowCount())]\n\t# Gather Devices:\n\tdevices \u003d []\n\tdeviceTypes \u003d []\n\tdevicesText \u003d \"All\"\n\tif self.getSibling(\"DeviceTypeAll\").props.selected:\n\t\tdataset \u003d self.getSibling(\"DeviceTypeTable\").props.data\n\t\tdevices \u003d [dataset.getValueAt(row, \"description\") for row in range(dataset.getRowCount())]\n\t\tdeviceTypes \u003d [dataset.getValueAt(row, \"type\") for row in range(dataset.getRowCount())]\n\telse:\n\t\tdataset \u003d self.getSibling(\"DeviceTypeTable\").props.data\n\t\tdevices \u003d [dat[\"description\"] for dat in self.getSibling(\"DeviceTypeTable\").props.selection.data]\n\t\tdeviceTypes \u003d [dataset.getValueAt(row, \"type\") for row in range(dataset.getRowCount()) if dataset.getValueAt(row, \"description\") in devices]\n\t\tdevicesText \u003d \", \".join(devices)\n\tdevices \u003d [dat.replace(\" \", \"\") for dat in devices]\n\tif len(devices) \u003d\u003d 0:\n\t\tdevicesText \u003d \"None\"\n\t\n\t# Run report:\n\t# Sanitize:\n\talarmQuery \u003d (\u0027\"\u0027+alarm.replace(\"\\\\\", \"\\\\\\\\\").replace(\u0027\"\u0027, \u0027\\\\\"\u0027)+\u0027\"\u0027 for alarm in alarms)\n\tshiftsQuery \u003d [\"(\"+shift+\")\" for shift in shiftsQuery]\n\tparams \u003d {\n\t\t\"startDate\": self.getSibling(\"TimeStartInput\").props.formattedValue,\n\t\t\"endDate\": self.getSibling(\"TimeEndInput\").props.formattedValue,\n\t\t\"alarms\": \",\".join(alarmQuery),\n\t\t\"shifts\": \" \" if len(shiftsQuery) \u003d\u003d 0 else \"AND (\"+\" OR \".join(shiftsQuery)+\")\",\n\t\t\"devices\": \u0027\"\"\u0027 if len(deviceTypes) \u003d\u003d 0 else \",\".join([\u0027\"\u0027+device+\u0027\"\u0027 for device in deviceTypes])\n\t}\n\t#system.perspective.print(params)\n\tdata \u003d system.db.runNamedQuery(\"Alarms/Heatmap\", params)\n\t\n\t# Apply and activate heatmap:\n\tself.session.custom.heatmapSettings \u003d {\n\t\t\"enabled\": True,\n\t\t\"time\": {\n\t\t\t\"start\": params[\"startDate\"],\n\t\t\t\"end\": params[\"endDate\"]\n\t\t},\n\t\t\"shifts\": shifts,\n\t\t\"alarms\": alarms,\n\t\t\"devices\": devices,\n\t\t\"shiftsText\": shiftsText,\n\t\t\"alarmsText\": alarmsText,\n\t\t\"devicesText\": devicesText,\n\t\t\"data\": data\n\t}\n\t\n\t# Close popup:\n\tif self.session.custom.isMobile:\n\t\tsystem.perspective.navigate(page\u003d\"/\")\n\telse:\n\t\tsystem.perspective.closePopup(\"\")\n\t\t# Force client to graphics screens only:\n\t\tif self.page.props.primaryView !\u003d \"Windows/GraphicsWrapper\":\n\t\t\tsystem.perspective.navigate(page\u003d\"/\")"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "RunButton"
+ },
+ "position": {
+ "height": 50,
+ "width": "100%",
+ "y": "calc(100% - 50px)"
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "expression": " {../TimeStartInput.props.value} !\u003d null\r\n\u0026\u0026{../TimeEndInput.props.value} !\u003d null\r\n\u0026\u0026({../ShiftAll.props.selected}||{../ShiftTable.props.selection.selectedRow}!\u003dnull)\r\n\u0026\u0026({../AlarmTypeAll.props.selected}||{../AlarmTypeTable.props.selection.selectedRow}!\u003dnull)"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Run heatmap"
+ },
+ "type": "ia.input.button"
+ }
+ ],
+ "events": {
+ "system": {
+ "onStartup": {
+ "config": {
+ "script": "\tnow \u003d system.date.now()\n\tstart \u003d system.date.midnight(now)\n\tend \u003d system.date.addDays(start, 1)\n\tself.getChild(\"TimeStartInput\").props.value \u003d start\n\tself.getChild(\"TimeEndInput\").props.value \u003d end"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "classes": "window",
+ "minWidth": "750px"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/b5b39c7f1257c074180e04f0f723b59b1d618454babbdf9581a6fdae60c87eaf b/.resources/b5b39c7f1257c074180e04f0f723b59b1d618454babbdf9581a6fdae60c87eaf
new file mode 100644
index 00000000..5dcbe572
--- /dev/null
+++ b/.resources/b5b39c7f1257c074180e04f0f723b59b1d618454babbdf9581a6fdae60c87eaf
@@ -0,0 +1,495 @@
+{
+ "custom": {
+ "isMaint": false
+ },
+ "params": {
+ "titleExtra": "0 of 0"
+ },
+ "propConfig": {
+ "custom.isMaint": {
+ "binding": {
+ "config": {
+ "path": "session.props.auth.user.roles"
+ },
+ "transforms": [
+ {
+ "code": "\ttabs \u003d []\n\troles \u003d [\"Administrator\", \"Developer\", \"Supervisor\"]\n\treturn value !\u003d None and len(value) \u003e 0 and len([i for i in value if i in roles]) \u003e 0",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 324,
+ "width": 1600
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Label"
+ },
+ "position": {
+ "height": 40,
+ "width": "100%"
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#1A4A5E",
+ "borderBottomColor": "#000000",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "2px",
+ "color": "#fff",
+ "fontFamily": "Helvetica",
+ "fontSize": 20,
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "Jam Cameras"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "component": {
+ "onEditCellCommit": {
+ "config": {
+ "script": "\t# Update jam cameras:\n\tdata \u003d system.dataset.updateRow(self.props.data, event.row, {\n\t\tevent.column: event.value\n\t})\n\tsystem.tag.writeBlocking([\"[default]Gateway/JamCameras\"], [data])"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ },
+ "dom": {
+ "onKeyDown": {
+ "config": {
+ "script": "\tif event.key \u003d\u003d \"Escape\": # Escape key\n\t\tself.props.selection.selectedColumn \u003d None\n\t\tself.props.selection.selectedRow \u003d None"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "JamCameras"
+ },
+ "position": {
+ "height": "calc(100% - 40px)",
+ "width": "100%",
+ "y": 40
+ },
+ "propConfig": {
+ "props.columns[0].editable": {
+ "binding": {
+ "config": {
+ "path": "view.custom.isMaint"
+ },
+ "type": "property"
+ }
+ },
+ "props.columns[1].editable": {
+ "binding": {
+ "config": {
+ "path": "view.custom.isMaint"
+ },
+ "type": "property"
+ }
+ },
+ "props.data": {
+ "binding": {
+ "config": {
+ "bidirectional": true,
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]Gateway/JamCameras"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "cells": {
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "2px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "2px",
+ "color": "#000",
+ "fontFamily": "Helvetica",
+ "fontSize": "14px"
+ }
+ },
+ "columns": [
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "field": "Name",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": ""
+ },
+ "justify": "auto",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 120
+ },
+ {
+ "align": "center",
+ "boolean": "value",
+ "dateFormat": "MM/DD/YYYY",
+ "field": "Address",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": ""
+ },
+ "justify": "auto",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 300
+ }
+ ],
+ "filter": {
+ "enabled": true
+ },
+ "pager": {
+ "bottom": false
+ },
+ "rows": {
+ "highlight": {
+ "enabled": false
+ },
+ "striped": {
+ "enabled": false
+ },
+ "style": {
+ "classes": "table/highlight"
+ }
+ },
+ "style": {
+ "fontFamily": "Helvetica",
+ "fontSize": "14px",
+ "fontWeight": "bold"
+ }
+ },
+ "scripts": {
+ "customMethods": [],
+ "extensionFunctions": null,
+ "messageHandlers": [
+ {
+ "messageType": "export-data",
+ "pageScope": true,
+ "script": "\tutils.downloadCSV(self, \"JamCameras\")",
+ "sessionScope": false,
+ "viewScope": false
+ }
+ ]
+ },
+ "type": "ia.display.table"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tcameras \u003d self.getSibling(\"JamCameras\")\n\tnewRow \u003d [\"New Jam Camera\", \"http://localhost\"]\n\tdata \u003d system.dataset.addRow(cameras.props.data, newRow)\n\tsystem.tag.writeBlocking([\"[default]Gateway/JamCameras\"], [data])"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button_New"
+ },
+ "position": {
+ "height": 34,
+ "width": 140,
+ "x": "calc(100% - 435px)",
+ "y": 48
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "expression": " {view.custom.isMaint}\r\n\u0026\u0026 len({../JamCameras.props.data}) \u003c 32"
+ },
+ "type": "expr"
+ }
+ },
+ "props.style.classes": {
+ "binding": {
+ "config": {
+ "path": "view.custom.isMaint"
+ },
+ "transforms": [
+ {
+ "fallback": "Buttons/Grey",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "Buttons/Green"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "style": {},
+ "text": "Add New"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tcameras \u003d self.getSibling(\"JamCameras\")\n\trow \u003d cameras.props.selection.selectedRow\n\tdata \u003d system.dataset.deleteRow(cameras.props.data, row)\n\tsystem.tag.writeBlocking([\"[default]Gateway/JamCameras\"], [data])"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button_Delete"
+ },
+ "position": {
+ "height": 34,
+ "width": 140,
+ "x": "calc(100% - 290px)",
+ "y": 48
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "expression": " {view.custom.isMaint}\r\n\u0026\u0026 {../JamCameras.props.selection.selectedRow} !\u003d null"
+ },
+ "type": "expr"
+ }
+ },
+ "props.style.classes": {
+ "binding": {
+ "config": {
+ "path": "view.custom.isMaint"
+ },
+ "transforms": [
+ {
+ "fallback": "Buttons/Grey",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "Buttons/Red"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "style": {},
+ "text": "Delete Selected"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tcameras \u003d self.getSibling(\"JamCameras\")\n\turl \u003d cameras.props.data.getValueAt(cameras.props.selection.selectedRow, \"Address\")\n\tsystem.perspective.navigate(url\u003durl, newTab\u003dTrue)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button_Open"
+ },
+ "position": {
+ "height": 34,
+ "width": 140,
+ "x": "calc(100% - 145px)",
+ "y": 48
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "expression": "{../JamCameras.props.selection.selectedRow} !\u003d null"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Open Selected"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tsystem.perspective.sendMessage(\"export-data\")"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button_Export"
+ },
+ "position": {
+ "height": 30,
+ "width": 100,
+ "x": "calc(100% - 105px)",
+ "y": 5
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Export"
+ },
+ "type": "ia.input.button"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/b646c9c085c9bcbffd2d6abf9bb617aa87ec1f198cc0b145d36dac8ae49b2efa b/.resources/b646c9c085c9bcbffd2d6abf9bb617aa87ec1f198cc0b145d36dac8ae49b2efa
new file mode 100644
index 00000000..264f3b15
--- /dev/null
+++ b/.resources/b646c9c085c9bcbffd2d6abf9bb617aa87ec1f198cc0b145d36dac8ae49b2efa
@@ -0,0 +1,130 @@
+{
+ "custom": {},
+ "params": {
+ "titleExtra": "625 rows",
+ "usesTimewidget": false
+ },
+ "propConfig": {
+ "params.titleExtra": {
+ "paramDirection": "output",
+ "persistent": true
+ },
+ "params.usesTimewidget": {
+ "binding": {
+ "config": {
+ "expression": "false"
+ },
+ "type": "expr"
+ },
+ "paramDirection": "output",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 324,
+ "width": 1600
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Ethernet"
+ },
+ "position": {
+ "height": "100%",
+ "width": "100%"
+ },
+ "propConfig": {
+ "props.columns": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]Gateway/Ethernet"
+ },
+ "transforms": [
+ {
+ "expression": "jsonGet({value}, \"columns\")",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.data": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]Gateway/Ethernet"
+ },
+ "transforms": [
+ {
+ "code": "\tcou \u003d utils.getRowCount(value.data)\n\tself.view.params.titleExtra \u003d \"{:n} rows\".format(cou)\n\t# Return data\n\treturn value.data",
+ "type": "script"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "cells": {
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "2px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "2px",
+ "color": "#000",
+ "fontFamily": "Helvetica",
+ "fontSize": "14px"
+ }
+ },
+ "filter": {
+ "enabled": true
+ },
+ "pager": {
+ "bottom": false
+ },
+ "rows": {
+ "highlight": {
+ "enabled": false
+ },
+ "striped": {
+ "enabled": false
+ },
+ "style": {
+ "classes": "table/highlight"
+ }
+ },
+ "style": {
+ "fontFamily": "Helvetica",
+ "fontSize": "14px",
+ "fontWeight": "bold"
+ }
+ },
+ "scripts": {
+ "customMethods": [],
+ "messageHandlers": [
+ {
+ "messageType": "export-data",
+ "pageScope": true,
+ "script": "\tutils.downloadCSV(self, \"Ethernet\")",
+ "sessionScope": false,
+ "viewScope": false
+ }
+ ]
+ },
+ "type": "ia.display.table"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/b9096d493b10d4ac64e5363c7c378f76daf952b742df59574c55625080b2f37e b/.resources/b9096d493b10d4ac64e5363c7c378f76daf952b742df59574c55625080b2f37e
new file mode 100644
index 00000000..79f787fb
--- /dev/null
+++ b/.resources/b9096d493b10d4ac64e5363c7c378f76daf952b742df59574c55625080b2f37e
@@ -0,0 +1,323 @@
+{
+ "custom": {
+ "plc": "value",
+ "searchId": "value",
+ "state": 0,
+ "state_string": "Clear",
+ "string": "Clear"
+ },
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "propConfig": {
+ "custom.plc": {
+ "binding": {
+ "config": {
+ "path": "view.params.tagProps[0]"
+ },
+ "transforms": [
+ {
+ "expression": "split({value}, \"/\")[0]",
+ "type": "expression"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.searchId": {
+ "binding": {
+ "config": {
+ "path": "session.custom.searchId"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.state": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 1,
+ "mode": "indirect",
+ "references": {
+ "0": "{view.params.tagProps[0]}",
+ "fc": "{session.custom.fc}"
+ },
+ "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value},{view.params.forceFaultStatus},0)",
+ "type": "expression"
+ },
+ {
+ "fallback": 0,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": 1
+ },
+ {
+ "input": 2,
+ "output": 2
+ },
+ {
+ "input": 3,
+ "output": 3
+ },
+ {
+ "input": 4,
+ "output": 4
+ },
+ {
+ "input": 5,
+ "output": 5
+ },
+ {
+ "input": 6,
+ "output": 6
+ },
+ {
+ "input": 7,
+ "output": 7
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ },
+ "persistent": true
+ },
+ "custom.string": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "fallback": "Clear",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": "Clear"
+ },
+ {
+ "input": 2,
+ "output": "Blocked"
+ },
+ {
+ "input": 3,
+ "output": "Disabled"
+ },
+ {
+ "input": 4,
+ "output": "Jammed"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "params.tagProps": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 40,
+ "width": 80
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Photoeye"
+ },
+ "position": {
+ "height": 1,
+ "width": 1
+ },
+ "propConfig": {
+ "props.elements[0].fill.paint": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "fallback": "#00FF00",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 0,
+ "output": "#00FF00"
+ },
+ {
+ "input": 2,
+ "output": "#000000"
+ },
+ {
+ "input": 3,
+ "output": "#800080"
+ },
+ {
+ "input": 4,
+ "output": "#FF0000"
+ }
+ ],
+ "outputType": "color",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "props.elements[2].fill.paint": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "fallback": "#00FF00",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 0,
+ "output": "#00FF00"
+ },
+ {
+ "input": 2,
+ "output": "#000000"
+ },
+ {
+ "input": 3,
+ "output": "#800080"
+ },
+ {
+ "input": 4,
+ "output": "#FF0000"
+ }
+ ],
+ "outputType": "color",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "elements": [
+ {
+ "d": "m 28.763932,20 -20,10 V 10 Z",
+ "fill": {},
+ "name": "path",
+ "stroke": {
+ "paint": "#000000",
+ "width": "2"
+ },
+ "type": "path"
+ },
+ {
+ "stroke": {
+ "paint": "#000000",
+ "width": "2"
+ },
+ "stroke-dasharray": "4,4",
+ "type": "line",
+ "x1": "30",
+ "x2": "60",
+ "y1": "20",
+ "y2": "20"
+ },
+ {
+ "fill": {},
+ "height": "20",
+ "stroke": {
+ "paint": "#000000",
+ "width": "2"
+ },
+ "type": "rect",
+ "width": "6",
+ "x": "60",
+ "y": "10"
+ }
+ ],
+ "viewBox": "0 0 80 40"
+ },
+ "type": "ia.shapes.svg"
+ }
+ ],
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tsystem.perspective.openDock(\u0027Docked-East-Photoeye\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})"
+ },
+ "scope": "G",
+ "type": "script"
+ },
+ "onMouseEnter": {
+ "config": {
+ "script": "\tfrom time import sleep\n\n\talarm \u003d []\n\tmessage \u003d None\n\n\tsleep(0.5)\n\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "root",
+ "tooltip": {
+ "enabled": true
+ }
+ },
+ "propConfig": {
+ "meta.tooltip.text": {
+ "binding": {
+ "config": {
+ "expression": "\"Source Id: \" + {view.params.tagProps[0]} + \", Status: \" + {view.custom.string}\n"
+ },
+ "type": "expr"
+ }
+ },
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "session.custom.alarm_filter.show_photoeyes"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "mode": "percent",
+ "style": {
+ "cursor": "pointer"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/b925d000320ca364358c980500a592c59bc5d0145edb68ec7a6323754f252376 b/.resources/b925d000320ca364358c980500a592c59bc5d0145edb68ec7a6323754f252376
new file mode 100644
index 00000000..f53b8f55
--- /dev/null
+++ b/.resources/b925d000320ca364358c980500a592c59bc5d0145edb68ec7a6323754f252376
@@ -0,0 +1,319 @@
+{
+ "custom": {},
+ "params": {
+ "meta": {
+ "name": "FL01_01CH"
+ },
+ "props": {
+ "config": {
+ "alwaysShowAll": true,
+ "isClickable": false,
+ "isRightOfSorter": false,
+ "mirror": false
+ },
+ "status": {
+ "tagPath": "[default]MCP03/FL01/FL01_01CH/Conv"
+ }
+ }
+ },
+ "propConfig": {
+ "params.meta": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.meta.name": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.config.alwaysShowAll": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.config.isRightOfSorter": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.config.mirror": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 349,
+ "width": 500
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "ChuteLabel"
+ },
+ "position": {
+ "height": 30,
+ "width": 100,
+ "x": 198,
+ "y": 298.8
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "path": "view.params.meta.name"
+ },
+ "transforms": [
+ {
+ "code": "\treturn utils.prettyName(value)",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "textAlign": "center"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\ttagPath \u003d self.view.params.props.status.tagPath\n\ttags \u003d [tagPath + \"/SetEnable\"]\n\tvalues \u003d [1]\n\tsystem.tag.writeAsync(tags, values)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Enable"
+ },
+ "position": {
+ "height": 40,
+ "width": 120,
+ "x": 120,
+ "y": 20.3
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/CH/SetEnable"
+ },
+ "enabled": false,
+ "transforms": [
+ {
+ "expression": "isGood({value})",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.style.classes": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/CH/SetEnable"
+ },
+ "transforms": [
+ {
+ "fallback": "Buttons/Grey",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "Buttons/Green"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ },
+ {
+ "expression": "if(isGood({value}),\r\n\t{value},\r\n\t\"Buttons/Grey\"\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {},
+ "text": "Enable"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\ttagPath \u003d self.view.params.props.status.tagPath\n\ttags \u003d [tagPath + \"/SetEnable\"]\n\tvalues \u003d [0]\n\tsystem.tag.writeAsync(tags, values)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Disable"
+ },
+ "position": {
+ "height": 40,
+ "width": 120,
+ "x": 260,
+ "y": 20.3
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/CH/SetEnable"
+ },
+ "enabled": false,
+ "transforms": [
+ {
+ "expression": "isGood({value})",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.style.classes": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/CH/SetEnable"
+ },
+ "transforms": [
+ {
+ "fallback": "Buttons/Grey",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": false,
+ "output": "Buttons/Red"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ },
+ {
+ "expression": "if(isGood({value}),\r\n\t{value},\r\n\t\"Buttons/Grey\"\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {},
+ "text": "Disable"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "ChuteLabel_0"
+ },
+ "position": {
+ "height": 35,
+ "width": 260,
+ "x": 120,
+ "y": 63
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/StatusText"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Conveyor"
+ },
+ "position": {
+ "height": 59,
+ "width": 224,
+ "x": 136,
+ "y": 167
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "background-color": "#CFCFCF"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Footer/Footer/view.json b/.resources/b98b0c6e1aa5ba7ac2575c8990b9ef46361d857e49c5e495b1a39b5a33ba5a2e
similarity index 100%
rename from BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Footer/Footer/view.json
rename to .resources/b98b0c6e1aa5ba7ac2575c8990b9ef46361d857e49c5e495b1a39b5a33ba5a2e
diff --git a/.resources/b9d2f87f39bc63ef3bec45755e5351ca51c5c3dd1ef9d5c4c6397d3d1fc8a6a8 b/.resources/b9d2f87f39bc63ef3bec45755e5351ca51c5c3dd1ef9d5c4c6397d3d1fc8a6a8
new file mode 100644
index 00000000..e2856f54
--- /dev/null
+++ b/.resources/b9d2f87f39bc63ef3bec45755e5351ca51c5c3dd1ef9d5c4c6397d3d1fc8a6a8
@@ -0,0 +1,1062 @@
+{
+ "custom": {},
+ "params": {
+ "titleExtra": "0 rows",
+ "usesTimewidget": true
+ },
+ "propConfig": {
+ "params.titleExtra": {
+ "paramDirection": "output",
+ "persistent": true
+ },
+ "params.usesTimewidget": {
+ "binding": {
+ "config": {
+ "expression": "true"
+ },
+ "type": "expr"
+ },
+ "paramDirection": "output",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 324,
+ "width": 1700
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "LaneOEE"
+ },
+ "position": {
+ "height": "100%",
+ "width": "100%"
+ },
+ "propConfig": {
+ "props.data": {
+ "binding": {
+ "config": {
+ "parameters": {
+ "endDate": "{session.custom.timewidget.endDate}",
+ "startDate": "{session.custom.timewidget.startDate}"
+ },
+ "queryPath": "Status/LaneOEE"
+ },
+ "transforms": [
+ {
+ "code": "\tcou \u003d utils.getRowCount(value)\n\tast \u003d \"*\" if cou \u003e\u003d 2000 else \"\"\n\tself.view.params.titleExtra \u003d \"{:n}{} rows\".format(cou, ast)\n\t# Return data\n\treturn value",
+ "type": "script"
+ }
+ ],
+ "type": "query"
+ }
+ }
+ },
+ "props": {
+ "cells": {
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "1px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "1px",
+ "color": "#000",
+ "fontFamily": "Helvetica",
+ "fontSize": "14px"
+ }
+ },
+ "columns": [
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "firsttime",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Start Timestamp"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 150
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "lasttime",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "End Timestamp"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": "value"
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 150
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "sorter",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Sorter"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": false,
+ "width": 80
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "lane",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Lane"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 110
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "enabled_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Enabled Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "available_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Available Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "empty_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Empty Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "full25_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "25% Full Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "full50_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "50% Full Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "full75_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "75% Full Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "full100_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "100% Full Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 150
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "jammed_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Jammed Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "faulted_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Faulted Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "inbound_oee",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Inbound OEE"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0.00%",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 120
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "induct_oee",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Induct OEE"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0.00%",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 120
+ }
+ ],
+ "filter": {
+ "enabled": true
+ },
+ "pager": {
+ "bottom": false
+ },
+ "rows": {
+ "highlight": {
+ "enabled": false
+ },
+ "striped": {
+ "enabled": false
+ },
+ "style": {
+ "classes": "table/highlight"
+ }
+ },
+ "style": {
+ "fontFamily": "Helvetica",
+ "fontSize": "14px",
+ "fontWeight": "bold"
+ }
+ },
+ "scripts": {
+ "customMethods": [],
+ "extensionFunctions": null,
+ "messageHandlers": [
+ {
+ "messageType": "export-data",
+ "pageScope": true,
+ "script": "\tutils.downloadCSV(self, \"Manual Lane Status\")",
+ "sessionScope": false,
+ "viewScope": false
+ }
+ ]
+ },
+ "type": "ia.display.table"
+ },
+ {
+ "meta": {
+ "name": "Icon"
+ },
+ "position": {
+ "height": 30,
+ "width": 30,
+ "x": "calc(100% - 35px)",
+ "y": 5
+ },
+ "props": {
+ "path": "material/help_outline"
+ },
+ "type": "ia.display.icon"
+ },
+ {
+ "meta": {
+ "name": "TooltipOverlay"
+ },
+ "position": {
+ "height": 30,
+ "width": 30,
+ "x": "calc(100% - 35px)",
+ "y": 5
+ },
+ "props": {
+ "status": {
+ "tooltip": "\u003cb\u003e\u003cu\u003eAbout Report:\u003c/u\u003e\u003c/b\u003e\u003cbr\u003eThis report adds up the duration of each state each manual chute has entered.\u003cbr\u003eIt then computes the Inbound and Induct OEE.\u003cbr\u003e\u003cbr\u003eThis report filters the data for the time period selected in the top left.\u003cbr\u003eDurations are in the format: HH:mm:ss\u003cbr\u003eMax duration is 899:59:59\u003cbr\u003e\u003cbr\u003e\u003cb\u003e\u003cu\u003eColumns:\u003c/u\u003e\u003c/b\u003e\u003cbr\u003eStart/End Timestamp - the range of time used to compute the remaining columns for this row\u003cbr\u003eLane - the manual chute\u003cbr\u003eEnabled Duration - the total time the lane is enabled\u003cbr\u003eAvailable Duration - the total time the lane is enabled and not 100% full, jammed, or faulted\u003cbr\u003eEmpty Duration - the total time the lane is enabled and not 50% full, 100% full, jammed, or faulted\u003cbr\u003e50% Full Duration - the total time the lane is enabled and 50% full\u003cbr\u003e100% Full Duration - the total time the lane is enabled and 100% full\u003cbr\u003eJammed Duration - the total time the lane is enabled and jammed\u003cbr\u003eFaulted Duration - the total time the lane is enabled and either the divert arm or FIO is faulted\u003cbr\u003eInbound OEE - the efficiency of the FMS logic to keep the lane at 50% or 100% full, ignores jammed or faulted\u003cbr\u003eInduct OEE - the efficiency of the operators to keep the lane at empty or 50% full, ignores faulted\u003cbr\u003e\u003cbr\u003e\u003cb\u003e\u003cu\u003eInbound OEE:\u003c/u\u003e\u003c/b\u003e\u003cbr\u003eThis is the efficiency of the FMS logic to keep the lane at 50% or 100% full.\u003cbr\u003eThis calculation will ignore the time spent in the jammed or faulted state.\u003cbr\u003eThe ideal efficiency is 100%. The formula is:\u003cbr\u003e(Full50 + Full100) / (Empty + Full50 + Full100)\u003cbr\u003e\u003cbr\u003e\u003cb\u003e\u003cu\u003eInduct OEE:\u003c/u\u003e\u003c/b\u003e\u003cbr\u003eThis is the efficiency of the operators to keep the lane at empty or 50% full.\u003cbr\u003eThis calculation will ignore the time spent in the faulted state.\u003cbr\u003eThe time spent in the jammed state will negatively impact this efficiency.\u003cbr\u003eThe ideal efficiency is 100%. The formula is:\u003cbr\u003e(Empty + Full50) / (Empty + Full50 + Full100 + Jammed)"
+ }
+ },
+ "type": "dex.display.tooltipoverlay"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/bc9ab1b93c7a6e61b1ae7ea27e33dcb031811b7a628e5f5a36f4df8082312bf0 b/.resources/bc9ab1b93c7a6e61b1ae7ea27e33dcb031811b7a628e5f5a36f4df8082312bf0
new file mode 100644
index 00000000..e10f42f0
--- /dev/null
+++ b/.resources/bc9ab1b93c7a6e61b1ae7ea27e33dcb031811b7a628e5f5a36f4df8082312bf0
@@ -0,0 +1,679 @@
+{
+ "custom": {},
+ "params": {
+ "meta": {
+ "name": "S1-CH1"
+ },
+ "props": {
+ "config": {
+ "alwaysShowAll": true,
+ "isClickable": false,
+ "rotation": 0
+ },
+ "status": {
+ "tagPath": "[default]MCP04/CH_20116/CH_20116"
+ }
+ }
+ },
+ "propConfig": {
+ "params.meta": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.meta.name": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.config.alwaysShowAll": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.config.rotation": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 500,
+ "width": 900
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Commands"
+ },
+ "position": {
+ "height": 180,
+ "width": "calc(100% - 330px)",
+ "x": 10,
+ "y": 10
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#FF0",
+ "borderStyle": "solid"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Instructions"
+ },
+ "position": {
+ "height": "calc(100% - 20px)",
+ "width": 300,
+ "x": "calc(100% - 310px)",
+ "y": 10
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#FF0",
+ "borderStyle": "solid"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Instructions_Label"
+ },
+ "position": {
+ "height": 32,
+ "width": 300,
+ "x": "calc(100% - 310px)",
+ "y": 10
+ },
+ "props": {
+ "style": {
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "Oiler Procedure"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Instructions_Text"
+ },
+ "position": {
+ "height": "calc(100% - 52px)",
+ "width": 300,
+ "x": "calc(100% - 310px)",
+ "y": 42
+ },
+ "props": {
+ "markdown": {
+ "escapeHtml": false
+ },
+ "source": "1) Make sure system is stopped and press enable button\u003cbr\u003e\n2) Press \"START SORTER\" to run the sorter at 10% speed\u003cbr\u003e\n3) Press \"START OIL CYCLE\" or the start push button on the oiler start/stop switch to begin the oil cycle\u003cbr\u003e\n4) Stop the sorter once the Cycle Finished indicator appears\u003cbr\u003e\n5) Disable Oiler once system is stopped",
+ "style": {
+ "paddingLeft": 5,
+ "paddingRight": 5
+ }
+ },
+ "type": "ia.display.markdown"
+ },
+ {
+ "meta": {
+ "name": "Commands_Label"
+ },
+ "position": {
+ "height": 40,
+ "width": 140,
+ "x": 15,
+ "y": 20
+ },
+ "props": {
+ "style": {
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Oiler Commands:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\ttags \u003d [\"[default]MCP21_Custom/Oiler/Commands/MaintEnable\"]\n\tvalues \u003d [self.props.text \u003d\u003d \"Click to Enable\"]\n\tsystem.tag.writeAsync(tags, values)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "EnableCommands"
+ },
+ "position": {
+ "height": 40,
+ "width": 100,
+ "x": 160,
+ "y": 20
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "expression": "isGood({[default]MCP21_Custom/Oiler/Commands/MaintEnable})\r\n\u0026\u0026try((!{[default]MCP21_Custom/Oiler/Commands/MaintEnable}||{[default]MCP21_Custom/Oiler/Status/SorterSpeed}\u003d0), false)\r\n\u0026\u0026isAuthorized(false,\r\n\t\"Authenticated/Roles/Administrator\",\r\n\t\"Authenticated/Roles/Developer\",\r\n\t\"Authenticated/Roles/Supervisor\",\r\n\t\"Authenticated/Roles/Maintenance\"\r\n)"
+ },
+ "type": "expr"
+ }
+ },
+ "props.style.classes": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21_Custom/Oiler/Commands/MaintEnable"
+ },
+ "transforms": [
+ {
+ "expression": "try({value}, false)",
+ "type": "expression"
+ },
+ {
+ "fallback": "Buttons/Red",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": false,
+ "output": "Buttons/Green"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21_Custom/Oiler/Commands/MaintEnable"
+ },
+ "transforms": [
+ {
+ "expression": "try({value}, false)",
+ "type": "expression"
+ },
+ {
+ "fallback": "Click to Disable",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": false,
+ "output": "Click to Enable"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {}
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\ttags \u003d [\"[default]MCP21_Custom/Oiler/Commands/StartSorter\"]\n\tvalues \u003d [1]\n\tsystem.tag.writeAsync(tags, values)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "StartSorter"
+ },
+ "position": {
+ "height": 40,
+ "width": 100,
+ "x": 265,
+ "y": 20
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "expression": "try({[default]MCP21_Custom/Oiler/Commands/MaintEnable}, false)\r\n\u0026\u0026isGood({[default]MCP21_Custom/Oiler/Commands/StartSorter})\r\n\u0026\u0026isAuthorized(false,\r\n\t\"Authenticated/Roles/Administrator\",\r\n\t\"Authenticated/Roles/Developer\",\r\n\t\"Authenticated/Roles/Supervisor\",\r\n\t\"Authenticated/Roles/Maintenance\"\r\n)"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Green"
+ },
+ "text": "Start Sorter"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\ttags \u003d [\"[default]MCP21_Custom/Oiler/Commands/StopSorter\"]\n\tvalues \u003d [1]\n\tsystem.tag.writeAsync(tags, values)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "StopSorter"
+ },
+ "position": {
+ "height": 40,
+ "width": 100,
+ "x": 370,
+ "y": 20
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "expression": "try({[default]MCP21_Custom/Oiler/Commands/MaintEnable}, false)\r\n\u0026\u0026isGood({[default]MCP21_Custom/Oiler/Commands/StopSorter})\r\n\u0026\u0026isAuthorized(false,\r\n\t\"Authenticated/Roles/Administrator\",\r\n\t\"Authenticated/Roles/Developer\",\r\n\t\"Authenticated/Roles/Supervisor\",\r\n\t\"Authenticated/Roles/Maintenance\"\r\n)"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Red",
+ "color": "#FFF"
+ },
+ "text": "Stop Sorter"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\ttags \u003d [\"[default]MCP21_Custom/Oiler/Commands/StartOilCycle\"]\n\tvalues \u003d [1]\n\tsystem.tag.writeAsync(tags, values)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "StartOilCycle"
+ },
+ "position": {
+ "height": 40,
+ "width": 100,
+ "x": 475,
+ "y": 20
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "expression": "try({[default]MCP21_Custom/Oiler/Commands/MaintEnable}, false)\r\n\u0026\u0026isGood({[default]MCP21_Custom/Oiler/Commands/StartOilCycle})\r\n\u0026\u0026isAuthorized(false,\r\n\t\"Authenticated/Roles/Administrator\",\r\n\t\"Authenticated/Roles/Developer\",\r\n\t\"Authenticated/Roles/Supervisor\",\r\n\t\"Authenticated/Roles/Maintenance\"\r\n)"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Green"
+ },
+ "text": "Start Oil Cycle"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "Status_Label"
+ },
+ "position": {
+ "height": 50,
+ "width": 140,
+ "x": 15,
+ "y": 80
+ },
+ "props": {
+ "style": {
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Oiler Status:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "CycleActive"
+ },
+ "position": {
+ "height": 50,
+ "width": 100,
+ "x": 160,
+ "y": 80
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21_Custom/Oiler/Status/CycleActive"
+ },
+ "transforms": [
+ {
+ "expression": "try({value}, true)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#0F0",
+ "borderStyle": "solid",
+ "textAlign": "center"
+ },
+ "text": "Cycle Active"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "CycleFinished"
+ },
+ "position": {
+ "height": 50,
+ "width": 100,
+ "x": 265,
+ "y": 80
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21_Custom/Oiler/Status/CycleFinished"
+ },
+ "transforms": [
+ {
+ "expression": "try({value}, true)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#0F0",
+ "borderStyle": "solid",
+ "textAlign": "center"
+ },
+ "text": "Cycle Finished"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "CycleFaulted"
+ },
+ "position": {
+ "height": 50,
+ "width": 100,
+ "x": 370,
+ "y": 80
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP21_Custom/Oiler/Status/CycleFaulted"
+ },
+ "transforms": [
+ {
+ "expression": "try({value}, true)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#F00",
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "color": "#FFF",
+ "textAlign": "center"
+ },
+ "text": "Faulted"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Speed_Label"
+ },
+ "position": {
+ "height": 40,
+ "width": 140,
+ "x": 15,
+ "y": 140
+ },
+ "props": {
+ "style": {
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Sorter Speed:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Speed"
+ },
+ "position": {
+ "height": 40,
+ "width": 150,
+ "x": 160,
+ "y": 140
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "expression": "try({[default]MCP21_Custom/Oiler/Status/SorterSpeed}, \"Unknown\")"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#FFF",
+ "borderStyle": "solid",
+ "textAlign": "center"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "RuntimeBox"
+ },
+ "position": {
+ "height": "calc(100% - 210px)",
+ "width": "calc(100% - 330px)",
+ "x": 10,
+ "y": 200
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#FF0",
+ "borderStyle": "solid"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Runtime_Label"
+ },
+ "position": {
+ "height": 50,
+ "width": 140,
+ "x": 15,
+ "y": 210
+ },
+ "props": {
+ "style": {
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Runtime Till Next Oil Cycle:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Runtime"
+ },
+ "position": {
+ "height": 50,
+ "width": 150,
+ "x": 160,
+ "y": 210
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "expression": "try({[default]MCP21_Custom/Oiler/Status/RuntimeTillNextCycle}, \"Unknown\")"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#FFF",
+ "borderStyle": "solid",
+ "textAlign": "center"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\ttags \u003d [\"[default]MCP21_Custom/Oiler/Commands/ExtendTime\"]\n\tvalues \u003d [1]\n\tsystem.tag.writeAsync(tags, values)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "ExtendTime"
+ },
+ "position": {
+ "height": 50,
+ "width": 130,
+ "x": 320,
+ "y": 210
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "expression": "isGood({[default]MCP21_Custom/Oiler/Commands/ExtendTime})\r\n\u0026\u0026isAuthorized(false,\r\n\t\"Authenticated/Roles/Administrator\",\r\n\t\"Authenticated/Roles/Developer\",\r\n\t\"Authenticated/Roles/Supervisor\",\r\n\t\"Authenticated/Roles/Maintenance\"\r\n)"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Red",
+ "color": "#FFF"
+ },
+ "text": "Extend Time 168 Hours"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "RuntimeRecommended_Label"
+ },
+ "position": {
+ "height": 80,
+ "width": 250,
+ "x": 320,
+ "y": 270
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "expression": "\"Mechanical Recommended Runtime in Hours Before Oiling the Chain is \"\r\n+try({[default]MCP21_Custom/Oiler/Status/RuntimeTillNextCycle}, \"xxxx\")\r\n+\" Hours\""
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "alignVertical": "top"
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "background-color": "#CFCFCF"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/bc9c09b323a9f752f615aba7b473b5f072322bcec5dc016febcc1d3b8aac8fcd b/.resources/bc9c09b323a9f752f615aba7b473b5f072322bcec5dc016febcc1d3b8aac8fcd
new file mode 100644
index 00000000..9835e84c
--- /dev/null
+++ b/.resources/bc9c09b323a9f752f615aba7b473b5f072322bcec5dc016febcc1d3b8aac8fcd
@@ -0,0 +1,69 @@
+{
+ "custom": {},
+ "events": {
+ "system": {
+ "onShutdown": {
+ "config": {
+ "script": "\tsystem.perspective.sendMessage(\"custom-documents-refreshlist\", {})"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "params": {
+ "parentFolder": ""
+ },
+ "propConfig": {
+ "params.parentFolder": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 300,
+ "width": 400
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "events": {
+ "component": {
+ "onFileReceived": {
+ "config": {
+ "script": "\tdocuments.uploadDocument(event.file, self.view.params.parentFolder)\n\t\n\t# Close popup:\n\t#system.perspective.closePopup(\"\")"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "FileUpload"
+ },
+ "position": {
+ "height": "100%",
+ "width": "100%"
+ },
+ "props": {
+ "fileSizeLimit": 100,
+ "maxUploads": 10,
+ "supportedFileTypes": [
+ "pdf"
+ ]
+ },
+ "type": "ia.input.fileupload"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "position": {
+ "x": 3,
+ "y": -7
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/bfc21a9ec6c32f571e10c330d6d4393f4e07f0c483a6f3a2eb71882040e88585 b/.resources/bfc21a9ec6c32f571e10c330d6d4393f4e07f0c483a6f3a2eb71882040e88585
new file mode 100644
index 00000000..b16ebb22
--- /dev/null
+++ b/.resources/bfc21a9ec6c32f571e10c330d6d4393f4e07f0c483a6f3a2eb71882040e88585
@@ -0,0 +1,45 @@
+WITH INDUCTS AS (
+ SELECT
+ MIN(s04_timestamp) AS start_timestamp,
+ MAX(s04_timestamp) AS end_timestamp,
+ sorter,
+ induct,
+ COUNT(*) AS total,
+ SUM(carriers=1) AS single_carrier,
+ SUM(carriers=2) AS double_carrier,
+ AVG(pkg_length/10) AS pkg_length_avg,
+ AVG(gap_leading/10) AS gap_avg
+ FROM package_history
+ WHERE s04_timestamp BETWEEN :startDate AND :endDate
+ GROUP BY sorter, induct
+), SORTERS AS (
+ SELECT
+ sorter,
+ 3600/TIMESTAMPDIFF(SECOND, :startDate, :endDate) AS pph_multiplier,
+ SUM(total) AS total
+ FROM INDUCTS
+ GROUP BY sorter
+)
+SELECT
+ I.start_timestamp,
+ I.end_timestamp,
+ S.sorter,
+ I.induct,
+ /* Averages: */
+ ROUND(I.pkg_length_avg, 1) AS 'avg_package_length_(")',
+ ROUND(I.gap_avg, 1) AS 'avg_gap_(")',
+ /* Counts: */
+ I.total AS total_count,
+ I.single_carrier AS single_carrier_count,
+ I.double_carrier AS double_carrier_count,
+ /* PPH: */
+ ROUND(I.total*S.pph_multiplier) AS total_pph,
+ ROUND(I.single_carrier*S.pph_multiplier) AS single_carrier_pph,
+ ROUND(I.double_carrier*S.pph_multiplier) AS double_carrier_pph,
+ /* Percents: */
+ ROUND(I.total/S.total, 4) AS 'total/sorter_percent',
+ ROUND(I.single_carrier/I.total, 4) AS single_carrier_percent,
+ ROUND(I.double_carrier/I.total, 4) AS double_carrier_percent
+FROM INDUCTS I, SORTERS S
+WHERE I.sorter = S.sorter
+ORDER BY S.sorter, I.induct;
\ No newline at end of file
diff --git a/.resources/c04f510f8e9c341bb0d3485b30a4bac6f515f4a132f136ac3b2a4418b6632295 b/.resources/c04f510f8e9c341bb0d3485b30a4bac6f515f4a132f136ac3b2a4418b6632295
new file mode 100644
index 00000000..dbe7f65c
--- /dev/null
+++ b/.resources/c04f510f8e9c341bb0d3485b30a4bac6f515f4a132f136ac3b2a4418b6632295
@@ -0,0 +1,13 @@
+{
+ "base": {
+ "animation": {
+ "duration": "1s",
+ "keyframes": {
+ "0%": {
+ "backgroundColor": "#CCCCFF"
+ },
+ "100%": {}
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/c22ac63abfb9a7a635184a1f67861d19f994dc7b218a3c365fad7760cd5681bc b/.resources/c22ac63abfb9a7a635184a1f67861d19f994dc7b218a3c365fad7760cd5681bc
new file mode 100644
index 00000000..e9119a9c
--- /dev/null
+++ b/.resources/c22ac63abfb9a7a635184a1f67861d19f994dc7b218a3c365fad7760cd5681bc
@@ -0,0 +1,84 @@
+{
+ "custom": {},
+ "params": {},
+ "props": {
+ "defaultSize": {
+ "height": 1487,
+ "width": 729
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Runout"
+ },
+ "position": {
+ "height": 1467,
+ "width": 709,
+ "x": -62,
+ "y": -9
+ },
+ "props": {
+ "path": "Windows/Graphics/Templates/Runout",
+ "style": {
+ "classes": "painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NavButton_HSS_Sorter"
+ },
+ "position": {
+ "height": 40,
+ "width": 95,
+ "x": 260,
+ "y": 450
+ },
+ "props": {
+ "params": {
+ "enableTooltip": true,
+ "label": null,
+ "tagPath": "[default]HSSSorterStatus",
+ "view": ""
+ },
+ "path": "Templates/Buttons/NavButton",
+ "style": {
+ "transform": "scale(2)"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NavButton_OXD_Sorter"
+ },
+ "position": {
+ "height": 40,
+ "width": 97,
+ "x": 60,
+ "y": 630
+ },
+ "props": {
+ "params": {
+ "enableTooltip": true,
+ "label": null,
+ "tagPath": "[default]OXDSorterStatus",
+ "view": ""
+ },
+ "path": "Templates/Buttons/NavButton",
+ "style": {
+ "transform": "scale(2)"
+ }
+ },
+ "type": "ia.display.view"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/c2601e72150a6be62816682c7c4ce887fbb2e6cbae4cb12c26ed53ec3e51cd7a b/.resources/c2601e72150a6be62816682c7c4ce887fbb2e6cbae4cb12c26ed53ec3e51cd7a
new file mode 100644
index 00000000..812c3c83
--- /dev/null
+++ b/.resources/c2601e72150a6be62816682c7c4ce887fbb2e6cbae4cb12c26ed53ec3e51cd7a
@@ -0,0 +1,10 @@
+{
+ "base": {
+ "style": {
+ "backgroundColor": "#FF6000",
+ "color": "#000000",
+ "fontFamily": "Arial",
+ "fontWeight": "bold"
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/c27f57d68cfe254040fe001786c0065388a95bb25e09abd29078938c4ba2b573 b/.resources/c27f57d68cfe254040fe001786c0065388a95bb25e09abd29078938c4ba2b573
new file mode 100644
index 00000000..9740c7de
--- /dev/null
+++ b/.resources/c27f57d68cfe254040fe001786c0065388a95bb25e09abd29078938c4ba2b573
@@ -0,0 +1,2276 @@
+{
+ "custom": {
+ "tabData": [
+ {
+ "chartNamedQuery": "Statistics/Gaylords/DetailsChart",
+ "dataNamedQuery": "Statistics/Gaylords/Details",
+ "idField": "gaylord",
+ "isAdmin": false,
+ "isBar": false,
+ "isVisible": true,
+ "title": "Gaylord Details",
+ "uniqueNamedQuery": ""
+ },
+ {
+ "chartNamedQuery": "Statistics/AR/InductDetailsChart",
+ "dataNamedQuery": "Statistics/AR/InductDetails",
+ "idField": "induct",
+ "isAdmin": false,
+ "isBar": false,
+ "isVisible": true,
+ "title": "AR Induct Details",
+ "uniqueNamedQuery": ""
+ },
+ {
+ "chartNamedQuery": "Statistics/AR/RobinDetailsChart",
+ "dataNamedQuery": "Statistics/AR/RobinDetails",
+ "idField": "chute",
+ "isAdmin": false,
+ "isBar": false,
+ "isVisible": true,
+ "title": "Robin MEP Volume",
+ "uniqueNamedQuery": ""
+ },
+ {
+ "chartNamedQuery": "Statistics/AR/SorterDetailsChart",
+ "dataNamedQuery": "Statistics/AR/SorterDetails",
+ "idField": "sorter",
+ "isAdmin": true,
+ "isBar": false,
+ "isVisible": true,
+ "title": "AR Sorter Details",
+ "uniqueNamedQuery": ""
+ },
+ {
+ "chartNamedQuery": "Statistics/AR/LaneDetailsChart",
+ "dataNamedQuery": "Statistics/AR/LaneDetails",
+ "idField": "lane",
+ "isAdmin": true,
+ "isBar": false,
+ "isVisible": true,
+ "title": "AR Lane Details",
+ "uniqueNamedQuery": ""
+ },
+ {
+ "chartNamedQuery": "Statistics/AR/HourlyLaneChart",
+ "dataNamedQuery": "Statistics/AR/HourlyLane",
+ "idField": "lane",
+ "isAdmin": false,
+ "isBar": true,
+ "isVisible": true,
+ "title": "Hourly AR Induct",
+ "uniqueNamedQuery": "Statistics/AR/UniqueInducts"
+ },
+ {
+ "chartNamedQuery": "Statistics/AR/HourlyLaneChart",
+ "dataNamedQuery": "Statistics/AR/HourlyLane",
+ "idField": "lane",
+ "isAdmin": false,
+ "isBar": true,
+ "isVisible": true,
+ "title": "Hourly Robin Volume",
+ "uniqueNamedQuery": "Statistics/AR/UniqueRobins"
+ },
+ {
+ "chartNamedQuery": "Statistics/AR/HourlySorterChart",
+ "dataNamedQuery": "Statistics/AR/HourlySorter",
+ "idField": "sorter",
+ "isAdmin": true,
+ "isBar": true,
+ "isVisible": true,
+ "title": "Hourly AR Sorter",
+ "uniqueNamedQuery": "Statistics/AR/UniqueSorters"
+ },
+ {
+ "chartNamedQuery": "Statistics/AR/HourlyLaneChart",
+ "dataNamedQuery": "Statistics/AR/HourlyLane",
+ "idField": "lane",
+ "isAdmin": true,
+ "isBar": true,
+ "isVisible": true,
+ "title": "Hourly AR Lane",
+ "uniqueNamedQuery": "Statistics/AR/UniqueLanes"
+ },
+ {
+ "chartNamedQuery": "Statistics/Sorter/InductDetailsChart",
+ "dataNamedQuery": "Statistics/Sorter/InductDetails",
+ "idField": "induct",
+ "isAdmin": false,
+ "isBar": false,
+ "isVisible": true,
+ "title": "Induct Details",
+ "uniqueNamedQuery": ""
+ },
+ {
+ "chartNamedQuery": "Statistics/Sorter/ScannerDetailsChart",
+ "dataNamedQuery": "Statistics/Sorter/ScannerDetails",
+ "idField": "scanner",
+ "isAdmin": false,
+ "isBar": false,
+ "isVisible": true,
+ "title": "Scanner Details",
+ "uniqueNamedQuery": ""
+ },
+ {
+ "chartNamedQuery": "Statistics/Sorter/SorterSummaryChart",
+ "dataNamedQuery": "Statistics/Sorter/SorterSummary",
+ "idField": "sorter",
+ "isAdmin": false,
+ "isBar": false,
+ "isVisible": true,
+ "title": "Sorter Summary",
+ "uniqueNamedQuery": ""
+ },
+ {
+ "chartNamedQuery": "Statistics/Sorter/SorterDetailsChart",
+ "dataNamedQuery": "Statistics/Sorter/SorterDetails",
+ "idField": "sorter",
+ "isAdmin": false,
+ "isBar": false,
+ "isVisible": true,
+ "title": "Sorter Details",
+ "uniqueNamedQuery": ""
+ },
+ {
+ "chartNamedQuery": "Statistics/Sorter/LaneDetailsChart",
+ "dataNamedQuery": "Statistics/Sorter/LaneDetails",
+ "idField": "lane",
+ "isAdmin": false,
+ "isBar": false,
+ "isVisible": true,
+ "title": "Lane Details",
+ "uniqueNamedQuery": ""
+ }
+ ],
+ "timewidget": {
+ "endDate": {
+ "$": [
+ "ts",
+ 192,
+ 1637031280586
+ ],
+ "$ts": 1637107200000
+ },
+ "mode": "currentDay",
+ "startDate": {
+ "$": [
+ "ts",
+ 192,
+ 1637031280586
+ ],
+ "$ts": 1637020800000
+ },
+ "update": {
+ "$": [
+ "ts",
+ 192,
+ 1637031280586
+ ],
+ "$ts": 1637031280585
+ }
+ },
+ "titleExtra": "0 rows"
+ },
+ "params": {},
+ "propConfig": {
+ "custom.tabData": {
+ "binding": {
+ "config": {
+ "struct": {
+ "auth": "{session.props.auth.user.roles}",
+ "tabs": "{[default]Gateway/StatisticsTabs}"
+ },
+ "waitOnAll": true
+ },
+ "transforms": [
+ {
+ "code": "\troles \u003d [\"Administrator\", \"Developer\"]\n\tauth \u003d value.auth\n\ttabs \u003d value.tabs\n\tisNotAuth \u003d (auth \u003d\u003d None or len(auth) \u003d\u003d 0 or len([i for i in auth if i in roles]) \u003d\u003d 0)\n\treturn [v for v in utils.datasetToJSON(tabs) if v[\"isVisible\"] and not (v[\"isAdmin\"] and isNotAuth)]",
+ "type": "script"
+ }
+ ],
+ "type": "expr-struct"
+ },
+ "persistent": true
+ },
+ "custom.tabDataAdmin": {
+ "persistent": true
+ },
+ "custom.tabDataOperator": {
+ "persistent": true
+ },
+ "custom.timewidget": {
+ "binding": {
+ "config": {
+ "path": "session.custom.timewidget"
+ },
+ "type": "property"
+ },
+ "onChange": {
+ "enabled": null,
+ "script": "\tif self.custom.tabData \u003c\u003e None and len(self.custom.tabData) \u003e 0:\n\t\troot \u003d self.getChild(\"root\")\n\t\troot.getChild(\"Table\").forceRefresh()\n\t\troot.getChild(\"LineChart\").forceRefresh()\n\t\troot.getChild(\"BarChart\").forceRefresh()"
+ },
+ "persistent": true
+ },
+ "custom.titleExtra": {
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 525,
+ "width": 1600
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Label"
+ },
+ "position": {
+ "height": 40,
+ "width": "100%"
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "expression": "try(\r\n\t property(\"../TabContainer.props.tabs[\"+{../TabContainer.props.currentTabIndex}+\"]\")\r\n\t+if(len({view.custom.titleExtra})\u003e0,\r\n\t\t\" (\" + {view.custom.titleExtra} + \")\",\r\n\t\t\"\"\r\n\t),\r\n\t\"No Statistics\"\r\n)"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#1A4A5E",
+ "borderBottomColor": "#000000",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "2px",
+ "color": "#fff",
+ "fontFamily": "Helvetica",
+ "fontSize": 20,
+ "fontWeight": "bold",
+ "textAlign": "center"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\ttable \u003d self.getSibling(\"Table\")\n\tlines \u003d self.getSibling(\"LineChart\")\n\tbars \u003d self.getSibling(\"BarChart\")\n\tdropdown \u003d self.getSibling(\"Dropdown\")\n\ttabContainer \u003d self.getSibling(\"TabContainer\")\n\ttabData \u003d self.view.custom.tabData[tabContainer.props.currentTabIndex]\n\t# Create title:\n\ttitle \u003d tabData.title\n\tif len(dropdown.props.options) \u003e 0:\n\t\ttitle \u003d dropdown.props.value + \" \" + title\n\t# Force CSV download:\n\tutils.downloadCSV(table, title)\n\tif lines.meta.visible:\n\t\tutils.downloadCSV(lines.props.series[0].data, title + \" Chart\")\n\tif bars.meta.visible:\n\t\tutils.downloadCSV(bars.props.dataSources.example, title + \" Chart\")"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button"
+ },
+ "position": {
+ "height": 30,
+ "width": 100,
+ "x": "calc(100% - 105px)",
+ "y": 5
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Export"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "TimeWidget"
+ },
+ "position": {
+ "height": 40,
+ "width": 600
+ },
+ "props": {
+ "params": {
+ "endDate": "2021-02-11 00:00:00",
+ "startDate": "2021-02-10 00:00:00"
+ },
+ "path": "Templates/Widget/TimeWidget"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "TabContainer"
+ },
+ "position": {
+ "height": "calc(100% - 40px)",
+ "width": "100%",
+ "y": 40
+ },
+ "propConfig": {
+ "props.currentTabIndex": {
+ "onChange": {
+ "enabled": null,
+ "script": "\t# Reset components:\n\tlines \u003d self.getSibling(\"LineChart\")\n\tlines.meta.visible \u003d False\n\tlines.props.series[0].data \u003d system.dataset.clearDataset(lines.props.series[0].data)\n\tbars \u003d self.getSibling(\"BarChart\")\n\tbars.meta.visible \u003d False\n\tbars.props.dataSources.example \u003d system.dataset.clearDataset(bars.props.dataSources.example)\n\ttable \u003d self.getSibling(\"Table\")\n\ttable.props.data \u003d system.dataset.clearDataset(table.props.data)\n\ttable.props.selection.selectedColumn \u003d None\n\ttable.props.selection.selectedRow \u003d None\n\t#table.props.selection.data \u003d []\n\tself.getSibling(\"Dropdown\").props.value \u003d \"\"\n\t# Now update the current tab data:\n\tif len(self.props.tabs) \u003e 0:\n\t\tself.getSibling(\"Table\").forceRefresh()"
+ }
+ },
+ "props.tabs": {
+ "binding": {
+ "config": {
+ "path": "view.custom.tabData"
+ },
+ "transforms": [
+ {
+ "code": "\t# Return tab list:\n\treturn [val.title for val in value]",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "menuStyle": {
+ "backgroundColor": "#225E77"
+ },
+ "tabSize": {
+ "width": 160
+ },
+ "tabStyle": {
+ "active": {
+ "backgroundColor": "#2D7D9F",
+ "color": "#FFF",
+ "fontWeight": "bold"
+ },
+ "inactive": {
+ "backgroundColor": "#389CC7",
+ "color": "#FFF"
+ }
+ }
+ },
+ "type": "ia.container.tab"
+ },
+ {
+ "events": {
+ "component": {
+ "onSelectionChange": {
+ "config": {
+ "script": "\tlines \u003d self.getSibling(\"LineChart\")\n\tbars \u003d self.getSibling(\"BarChart\")\n\ttabIndex \u003d self.getSibling(\"TabContainer\").props.currentTabIndex\n\ttabData \u003d self.view.custom.tabData[tabIndex]\n\tif len(event.data) \u003e 0 and \"chartNamedQuery\" in tabData:\n\t\tif tabData[\"isBar\"]:\n\t\t\tlines.meta.visible \u003d False\n\t\t\tbars.meta.visible \u003d True\n\t\t\t# Apply:\n\t\t\tbars.forceRefresh()\n\t\telse:\n\t\t\tbars.meta.visible \u003d False\n\t\t\tlines.meta.visible \u003d True\n\t\t\t# Apply:\n\t\t\tlines.forceRefresh()\n\telse:\n\t\tlines.meta.visible \u003d False\n\t\tbars.meta.visible \u003d False\n\t\tlines.props.series[0].data \u003d system.dataset.clearDataset(lines.props.series[0].data)\n\t\tbars.props.dataSources.example \u003d system.dataset.clearDataset(bars.props.dataSources.example)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ },
+ "dom": {
+ "onKeyDown": {
+ "config": {
+ "script": "\tif event.key \u003d\u003d \"Escape\": # Escape key\n\t\tself.props.selection.selectedColumn \u003d None\n\t\tself.props.selection.selectedRow \u003d None"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Table"
+ },
+ "position": {
+ "height": "calc(100% - 75px)",
+ "width": "100%",
+ "y": 75
+ },
+ "propConfig": {
+ "position.height": {
+ "binding": {
+ "config": {
+ "expression": "{../LineChart.meta.visible} || {../BarChart.meta.visible}"
+ },
+ "transforms": [
+ {
+ "fallback": "calc(100% - 75px)",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "calc(40% - 75px/2)"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "expr"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "cells": {
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "1px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "1px",
+ "color": "#000",
+ "fontFamily": "Helvetica",
+ "fontSize": "14px"
+ }
+ },
+ "columns": [
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "start_timestamp",
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Start Timestamp"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "visible": true,
+ "width": 150
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "end_timestamp",
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "End Timestamp"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "visible": true,
+ "width": 150
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "gaylord",
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Gaylord"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "render": "auto",
+ "resizable": true,
+ "sortable": true,
+ "visible": true
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "cycles_count",
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Cycles (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "render": "auto",
+ "resizable": true,
+ "sortable": true,
+ "visible": true
+ }
+ ],
+ "data": {
+ "$": [
+ "ds",
+ 192,
+ 1637031280591
+ ],
+ "$columns": [
+ {
+ "data": [],
+ "name": "start_timestamp",
+ "type": "Date"
+ },
+ {
+ "data": [],
+ "name": "end_timestamp",
+ "type": "Date"
+ },
+ {
+ "data": [],
+ "name": "gaylord",
+ "type": "String"
+ },
+ {
+ "data": [],
+ "name": "cycles_count",
+ "type": "Double"
+ },
+ {
+ "data": [],
+ "name": "cycles_cph",
+ "type": "Double"
+ },
+ {
+ "data": [],
+ "name": "cycles_percent",
+ "type": "Double"
+ }
+ ]
+ },
+ "filter": {
+ "enabled": true
+ },
+ "pager": {
+ "bottom": false
+ },
+ "rows": {
+ "highlight": {
+ "enabled": false
+ },
+ "striped": {
+ "enabled": false
+ },
+ "style": {
+ "classes": "table/highlight"
+ }
+ },
+ "style": {
+ "fontFamily": "Helvetica",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "zoom": 1
+ }
+ },
+ "scripts": {
+ "customMethods": [
+ {
+ "name": "forceRefresh",
+ "params": [],
+ "script": "\t# Collect data:\n\tcurrentTabIndex \u003d self.getSibling(\"TabContainer\").props.currentTabIndex\n\ttabData \u003d self.view.custom.tabData[currentTabIndex]\n\tstartDate \u003d self.session.custom.timewidget.startDate\n\tendDate \u003d self.session.custom.timewidget.endDate\n\tid \u003d self.getSibling(\"Dropdown\").props.value\n\t\n\t# Apply:\n\t#system.perspective.print(\"Table Check: \" + tabData.title)\n\tif (tabData.uniqueNamedQuery \u003d\u003d \"\" or id \u003c\u003e \"\"):\n\t\t#system.perspective.print(\"Table Refresh: \" + tabData.title)\n\t\tparams \u003d {\n\t\t\t\"startDate\": startDate,\n\t\t\t\"endDate\": endDate\n\t\t}\n\t\tif id \u003c\u003e \"\":\n\t\t\tparams[tabData.idField] \u003d id\n\t\tdata \u003d system.db.runNamedQuery(tabData.dataNamedQuery, params)\n\t\t# Create title:\n\t\tcou \u003d utils.getRowCount(data)\n\t\tast \u003d \"*\" if cou \u003e\u003d 1000 else \"\"\n\t\tself.view.custom.titleExtra \u003d \"{:n}{} rows\".format(cou, ast)\n\t\t# Update columns:\n\t\tcolumns \u003d []\n\t\tfilterColumns \u003d self.getSibling(\"Mode\").props.value\n\t\tfor name in data.getColumnNames():\n\t\t\tif name.split(\"_\")[-1] not in filterColumns:\n\t\t\t\textra \u003d {}\n\t\t\t\tif name in [\"start_timestamp\", \"end_timestamp\"]:\n\t\t\t\t\textra[\"resizable\"] \u003d False\n\t\t\t\t\textra[\"strictWidth\"] \u003d True\n\t\t\t\t\textra[\"width\"] \u003d 150\n\t\t\t\telif name in [\"induct\", \"scanner\", \"sorter\", \"lane\"]:\n\t\t\t\t\textra[\"resizable\"] \u003d False\n\t\t\t\t\textra[\"strictWidth\"] \u003d True\n\t\t\t\t\textra[\"width\"] \u003d 80\n\t\t\t\tcolumns.append(reports.generateColumn(name, extra))\n\t\tself.props.columns \u003d columns\n\t\t# Return data\n\t\tself.props.data \u003d data"
+ }
+ ],
+ "extensionFunctions": null,
+ "messageHandlers": []
+ },
+ "type": "ia.display.table"
+ },
+ {
+ "meta": {
+ "name": "Dropdown",
+ "visible": null
+ },
+ "position": {
+ "height": 36,
+ "width": 200,
+ "x": "calc(100% - 205px)",
+ "y": 80
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "expression": "{../TabContainer.props.currentTabIndex}"
+ },
+ "transforms": [
+ {
+ "code": "\ttabData \u003d self.view.custom.tabData[value]\n\treturn tabData.uniqueNamedQuery not in [None, \"\"]",
+ "type": "script"
+ }
+ ],
+ "type": "expr"
+ },
+ "persistent": true
+ },
+ "props.options": {
+ "binding": {
+ "config": {
+ "path": "../TabContainer.props.currentTabIndex"
+ },
+ "transforms": [
+ {
+ "code": "\ttabData \u003d self.view.custom.tabData[value]\n\tquery \u003d tabData.uniqueNamedQuery\n\tif query not in [None, \"\"]:\n\t\tdata \u003d system.db.runNamedQuery(query)\n\t\tvalues \u003d [data.getValueAt(row, 0) for row in range(data.getRowCount())]\n\t\toptions \u003d []\n\t\tfor val in values:\n\t\t\toptions.append({\n\t\t\t\t\"value\": val,\n\t\t\t\t\"label\": val\n\t\t\t})\n\t\t# Select the first one if no value is selected:\n\t\tif self.props.value not in values and len(values) \u003e 0:\n\t\t\tself.props.value \u003d values[0]\n\t\t# Return list:\n\t\treturn options\n\telse:\n\t\tself.props.value \u003d \"\"\n\t\treturn []",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "props.value": {
+ "onChange": {
+ "enabled": null,
+ "script": "\tif currentValue.value \u003c\u003e \"\":\n\t\t# Apply\n\t\tself.getSibling(\"Table\").forceRefresh()\n\t\ttabIndex \u003d self.getSibling(\"TabContainer\").props.currentTabIndex\n\t\tif self.view.custom.tabData[tabIndex][\"isBar\"]:\n\t\t\tself.getSibling(\"BarChart\").forceRefresh()\n\t\telse:\n\t\t\tself.getSibling(\"LineChart\").forceRefresh()"
+ }
+ }
+ },
+ "type": "ia.input.dropdown"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tfilterColumns \u003d self.props.value\n\t# Update columns:\n\ttable \u003d self.getSibling(\"Table\")\n\tcolumns \u003d []\n\tfor name in table.props.data.getColumnNames():\n\t\tif name.split(\"_\")[-1] not in filterColumns:\n\t\t\textra \u003d {}\n\t\t\tif name in [\"start_timestamp\", \"end_timestamp\"]:\n\t\t\t\textra[\"resizable\"] \u003d False\n\t\t\t\textra[\"strictWidth\"] \u003d True\n\t\t\t\textra[\"width\"] \u003d 150\n\t\t\telif name in [\"induct\", \"scanner\", \"sorter\", \"lane\"]:\n\t\t\t\textra[\"resizable\"] \u003d False\n\t\t\t\textra[\"strictWidth\"] \u003d True\n\t\t\t\textra[\"width\"] \u003d 80\n\t\t\tcolumns.append(reports.generateColumn(name, extra))\n\ttable.props.columns \u003d columns\n\t# Update columns:\n\tlines \u003d self.getSibling(\"LineChart\")\n\tdata \u003d lines.props.series[0].data\n\tcolumns \u003d [{\"key\": name} for name in data.getColumnNames() if name.split(\"_\")[-1] not in filterColumns]\n\tlines.props.plots[0].trends[0].columns \u003d columns\n\t# Update columns:\n\tbars \u003d self.getSibling(\"BarChart\")\n\tdata \u003d bars.props.dataSources.example\n\tcolumns \u003d []\n\tfor name in data.getColumnNames():\n\t\tif name.split(\"_\")[-1] not in filterColumns and name not in [\"time\", \"hour\"]:\n\t\t\textra \u003d {\n\t\t\t\t\"xAxis\": \"hour\",\n\t\t\t\t\"yAxis\": \"count\",\n\t\t\t\t\"render\": \"column\"\n\t\t\t}\n\t\t\tseries \u003d reports.generateSeries(name, extra)\n\t\t\tseries[\"data\"][\"source\"] \u003d \"example\"\n\t\t\tseries[\"data\"][\"x\"] \u003d \"hour\"\n\t\t\tseries[\"column\"][\"appearance\"][\"stacked\"] \u003d True\n\t\t\tcolumns.append(series)\n\tbars.props.series \u003d columns"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Mode"
+ },
+ "position": {
+ "height": 20,
+ "width": 120,
+ "x": "calc(100% - 230px)",
+ "y": 10
+ },
+ "props": {
+ "options": [
+ {
+ "label": "Count",
+ "value": [
+ "pph",
+ "cph",
+ "percent"
+ ]
+ },
+ {
+ "label": "Percent",
+ "value": [
+ "count",
+ "pph",
+ "cph"
+ ]
+ },
+ {
+ "label": "Rate",
+ "value": [
+ "count",
+ "percent"
+ ]
+ }
+ ],
+ "search": {
+ "enabled": false
+ },
+ "style": {
+ "fontSize": "14px"
+ },
+ "value": [
+ "pph",
+ "cph",
+ "percent"
+ ]
+ },
+ "type": "ia.input.dropdown"
+ },
+ {
+ "meta": {
+ "name": "ModeLabel"
+ },
+ "position": {
+ "height": 20,
+ "width": 120,
+ "x": "calc(100% - 355px)",
+ "y": 10
+ },
+ "props": {
+ "style": {
+ "color": "#fff",
+ "fontSize": "14px",
+ "textAlign": "right"
+ },
+ "text": "Aggregate Mode:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "DropdownLabel",
+ "visible": null
+ },
+ "position": {
+ "height": 20,
+ "width": 120,
+ "x": "calc(100% - 330px)",
+ "y": 88
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "expression": "{../TabContainer.props.currentTabIndex}"
+ },
+ "transforms": [
+ {
+ "code": "\ttabData \u003d self.view.custom.tabData[value]\n\treturn tabData.uniqueNamedQuery not in [None, \"\"]",
+ "type": "script"
+ }
+ ],
+ "type": "expr"
+ },
+ "persistent": true
+ },
+ "props.text": {
+ "binding": {
+ "config": {
+ "path": "../TabContainer.props.currentTabIndex"
+ },
+ "transforms": [
+ {
+ "code": "\ttabData \u003d self.view.custom.tabData[value]\n\tvalue \u003d tabData.uniqueNamedQuery\n\tif value not in [None, \"\"]:\n\t\treturn tabData.idField.title() + \":\"\n\telse:\n\t\treturn \"\"",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "color": "#000",
+ "fontSize": "14px",
+ "textAlign": "right"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "LineChart",
+ "visible": false
+ },
+ "position": {
+ "height": "calc(60% - 75px/2)",
+ "width": "100%"
+ },
+ "propConfig": {
+ "position.y": {
+ "binding": {
+ "config": {
+ "expression": "if({this.meta.visible},\r\n\t\"calc(40% + 75px/2)\",\r\n\t\"200%\"\r\n)"
+ },
+ "type": "expr"
+ }
+ },
+ "props.xTrace.infoBox.dataFormat": {
+ "binding": {
+ "config": {
+ "path": "../Mode.props.value"
+ },
+ "transforms": [
+ {
+ "code": "\tif \"percent\" not in value:\n\t\treturn \"0.##%\"\n\telse:\n\t\treturn \"0,0.##\"",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "defaultStyles": {
+ "colorScheme": "Spectral",
+ "normal": {
+ "stroke": {
+ "width": 2
+ }
+ }
+ },
+ "legend": {
+ "position": "right",
+ "visible": true
+ },
+ "plots": [
+ {
+ "axes": [],
+ "markers": [],
+ "trends": [
+ {
+ "axis": "",
+ "baselines": [],
+ "breakLine": false,
+ "columns": [
+ {
+ "key": "time"
+ },
+ {
+ "key": "total_count"
+ },
+ {
+ "key": "single_carrier_count"
+ },
+ {
+ "key": "double_carrier_count"
+ }
+ ],
+ "interpolation": "curveLinear",
+ "radius": 2,
+ "series": "Boiler",
+ "stack": true,
+ "type": "line",
+ "visible": true
+ }
+ ]
+ }
+ ],
+ "series": [
+ {
+ "data": {
+ "$": [
+ "ds",
+ 192,
+ 1636690363196
+ ],
+ "$columns": [
+ {
+ "data": [],
+ "name": "time",
+ "type": "Date"
+ },
+ {
+ "data": [],
+ "name": "total_count",
+ "type": "Integer"
+ },
+ {
+ "data": [],
+ "name": "single_carrier_count",
+ "type": "Integer"
+ },
+ {
+ "data": [],
+ "name": "double_carrier_count",
+ "type": "Integer"
+ },
+ {
+ "data": [],
+ "name": "total_pph",
+ "type": "Double"
+ },
+ {
+ "data": [],
+ "name": "single_carrier_pph",
+ "type": "Double"
+ },
+ {
+ "data": [],
+ "name": "double_carrier_pph",
+ "type": "Double"
+ },
+ {
+ "data": [],
+ "name": "single_carrier/sorter_percent",
+ "type": "Double"
+ },
+ {
+ "data": [],
+ "name": "double_carrier/sorter_percent",
+ "type": "Double"
+ }
+ ]
+ },
+ "name": "Boiler"
+ }
+ ],
+ "style": {
+ "backgroundColor": "#FFF",
+ "borderTopColor": "#000",
+ "borderTopStyle": "solid",
+ "borderTopWidth": "2px"
+ },
+ "timeRange": {
+ "dateFormat": "YYYY-MM-DD",
+ "timeFormat": "HH:mm:ss"
+ },
+ "xTrace": {
+ "infoBox": {
+ "dateFormat": "YYYY-MM-DD",
+ "timeFormat": "HH:mm",
+ "width": 200
+ }
+ }
+ },
+ "scripts": {
+ "customMethods": [
+ {
+ "name": "forceRefresh",
+ "params": [],
+ "script": "\tif self.meta.visible:\n\t\t# Generate tabData\n\t\tcurrentTabIndex \u003d self.getSibling(\"TabContainer\").props.currentTabIndex\n\t\ttabData \u003d self.view.custom.tabData[currentTabIndex]\n\t\tstartDate \u003d self.session.custom.timewidget.startDate\n\t\tendDate \u003d self.session.custom.timewidget.endDate\n\t\tselected \u003d self.getSibling(\"Table\").props.selection.data\n\t\tidField \u003d tabData[\"idField\"]\n\t\tid \u003d selected[0][idField]\n\t\t\n\t\t# Apply:\n\t\t#system.perspective.print(\"Chart Check: \" + tabData.title + \"|\" + id)\n\t\tif not tabData.isBar:\n\t\t\t#system.perspective.print(\"Chart Refresh: \" + tabData.title + \"|\" + id)\n\t\t\tparams \u003d {\n\t\t\t\t\"startDate\": startDate,\n\t\t\t\t\"endDate\": endDate,\n\t\t\t\tidField: id\n\t\t\t}\n\t\t\tdata \u003d system.db.runNamedQuery(tabData.chartNamedQuery, params)\n\t\t\t# Add breaks:\n\t\t\tbreaks \u003d []\n\t\t\tfor row in range(data.getRowCount()-1):\n\t\t\t\tcurTime \u003d system.date.parse(data.getValueAt(row, \"time\"), \u0027yyyy-MM-dd HH:mm:ss\u0027)\n\t\t\t\tnextTime \u003d system.date.parse(data.getValueAt(row+1, \"time\"), \u0027yyyy-MM-dd HH:mm:ss\u0027)\n\t\t\t\tminBetween \u003d system.date.minutesBetween(curTime, nextTime)\n\t\t\t\tif minBetween \u003e 1:\n\t\t\t\t\tb \u003d []\n\t\t\t\t\tfor col in data.getColumnNames():\n\t\t\t\t\t\tif col \u003c\u003e \"time\":\n\t\t\t\t\t\t\tb.append(0)\n\t\t\t\t\t\telse:\n\t\t\t\t\t\t\tnewTime \u003d system.date.addMinutes(curTime, 1)\n\t\t\t\t\t\t\tb.append(system.date.format(newTime, \u0027yyyy-MM-dd HH:mm:ss\u0027))\n\t\t\t\t\tbreaks.append(b)\n\t\t\t\tif minBetween \u003e 2:\n\t\t\t\t\tb \u003d []\n\t\t\t\t\tfor col in data.getColumnNames():\n\t\t\t\t\t\tif col \u003c\u003e \"time\":\n\t\t\t\t\t\t\tb.append(0)\n\t\t\t\t\t\telse:\n\t\t\t\t\t\t\tnewTime \u003d system.date.addMinutes(nextTime, -1)\n\t\t\t\t\t\t\tb.append(system.date.format(newTime, \u0027yyyy-MM-dd HH:mm:ss\u0027))\n\t\t\t\t\tbreaks.append(b)\n\t\t\tdata \u003d system.dataset.addRows(data, breaks)\n\t\t\tdata \u003d system.dataset.sort(data, \"time\", True)\n\t\t\t# Update columns:\n\t\t\tfilterColumns \u003d [col for col in self.getSibling(\"Mode\").props.value]\n\t\t\tcolumns \u003d [{\"key\": name} for name in data.getColumnNames() if name.split(\"_\")[-1] not in filterColumns]\n\t\t\tself.props.plots[0].trends[0].columns \u003d columns\n\t\t\t# Return data\n\t\t\tself.props.series[0].data \u003d data"
+ }
+ ],
+ "extensionFunctions": null,
+ "messageHandlers": []
+ },
+ "type": "ia.chart.timeseries"
+ },
+ {
+ "meta": {
+ "name": "BarChart",
+ "visible": false
+ },
+ "position": {
+ "height": "calc(60% - 75px/2)",
+ "width": "100%",
+ "y": "calc(40% + 75px/2)"
+ },
+ "propConfig": {
+ "props.yAxes[0].label.text": {
+ "binding": {
+ "config": {
+ "path": "../Mode.props.value"
+ },
+ "transforms": [
+ {
+ "code": "\tif \"percent\" not in value:\n\t\treturn \"Percent\"\n\telif \"pph\" not in value:\n\t\treturn \"PPH\"\n\telse:\n\t\treturn \"Count\"",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "props.yAxes[0].value.format": {
+ "binding": {
+ "config": {
+ "path": "../Mode.props.value"
+ },
+ "transforms": [
+ {
+ "code": "\tif \"percent\" not in value:\n\t\treturn \"###.##%\"\n\telse:\n\t\treturn \"#,###.##\"",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "dataSources": {
+ "example": {
+ "$": [
+ "ds",
+ 192,
+ 1636690363197
+ ],
+ "$columns": [
+ {
+ "data": [],
+ "name": "time",
+ "type": "String"
+ },
+ {
+ "data": [],
+ "name": "hour",
+ "type": "String"
+ },
+ {
+ "data": [],
+ "name": "diverted",
+ "type": "Double"
+ },
+ {
+ "data": [],
+ "name": "lane_disabled",
+ "type": "Double"
+ },
+ {
+ "data": [],
+ "name": "lane_full",
+ "type": "Double"
+ },
+ {
+ "data": [],
+ "name": "lane_jam",
+ "type": "Double"
+ }
+ ]
+ }
+ },
+ "series": [
+ {
+ "candlestick": {
+ "appearance": {
+ "deriveFieldsFromData": {
+ "fill": {
+ "color": "",
+ "opacity": ""
+ },
+ "stroke": {
+ "color": "",
+ "opacity": "",
+ "width": ""
+ }
+ },
+ "fill": {
+ "color": "",
+ "opacity": 1
+ },
+ "heatRules": {
+ "dataField": "",
+ "enabled": false,
+ "max": "",
+ "min": ""
+ },
+ "stacked": false,
+ "stroke": {
+ "color": "",
+ "opacity": 1,
+ "width": 1
+ }
+ },
+ "high": {
+ "x": "",
+ "y": ""
+ },
+ "low": {
+ "x": "",
+ "y": ""
+ },
+ "open": {
+ "x": "",
+ "y": ""
+ }
+ },
+ "column": {
+ "appearance": {
+ "deriveFieldsFromData": {
+ "fill": {
+ "color": "",
+ "opacity": ""
+ },
+ "stroke": {
+ "color": "",
+ "opacity": "",
+ "width": ""
+ }
+ },
+ "fill": {
+ "color": "",
+ "opacity": 1
+ },
+ "heatRules": {
+ "dataField": "",
+ "enabled": false,
+ "max": "",
+ "min": ""
+ },
+ "height": null,
+ "stacked": true,
+ "stroke": {
+ "color": "",
+ "opacity": 1,
+ "width": 1
+ },
+ "width": null
+ },
+ "open": {
+ "x": "",
+ "y": ""
+ }
+ },
+ "data": {
+ "source": "example",
+ "x": "hour",
+ "y": "diverted"
+ },
+ "defaultState": {
+ "visible": true
+ },
+ "hiddenInLegend": false,
+ "label": {
+ "text": "Diverted"
+ },
+ "line": {
+ "appearance": {
+ "bullets": [
+ {
+ "deriveFieldsFromData": {
+ "fill": {
+ "color": "",
+ "opacity": ""
+ },
+ "rotation": "",
+ "stroke": {
+ "color": "",
+ "opacity": "",
+ "width": ""
+ }
+ },
+ "enabled": false,
+ "fill": {
+ "color": "",
+ "opacity": 1
+ },
+ "heatRules": {
+ "dataField": "",
+ "enabled": false,
+ "max": 100,
+ "min": 2
+ },
+ "height": 10,
+ "label": {
+ "position": {
+ "dx": 0,
+ "dy": 0
+ },
+ "text": "{value}"
+ },
+ "render": "circle",
+ "rotation": 0,
+ "stroke": {
+ "color": "",
+ "opacity": 1,
+ "width": 1
+ },
+ "tooltip": {
+ "background": {
+ "color": "",
+ "opacity": 1
+ },
+ "cornerRadius": 3,
+ "enabled": true,
+ "pointerLength": 4,
+ "text": "{name}: [bold]{valueY}[/]"
+ },
+ "width": 10
+ }
+ ],
+ "connect": true,
+ "fill": {
+ "color": "",
+ "opacity": 0
+ },
+ "minDistance": 0.5,
+ "stroke": {
+ "color": "",
+ "dashArray": "",
+ "opacity": 1,
+ "width": 3
+ },
+ "tensionX": 1,
+ "tensionY": 1
+ },
+ "open": {
+ "x": "",
+ "y": ""
+ }
+ },
+ "name": "diverted",
+ "render": "column",
+ "stepLine": {
+ "appearance": {
+ "bullets": [
+ {
+ "deriveFieldsFromData": {
+ "fill": {
+ "color": "",
+ "opacity": ""
+ },
+ "rotation": "",
+ "stroke": {
+ "color": "",
+ "opacity": "",
+ "width": ""
+ }
+ },
+ "enabled": true,
+ "fill": {
+ "color": "",
+ "opacity": 1
+ },
+ "heatRules": {
+ "dataField": "",
+ "enabled": false,
+ "max": 100,
+ "min": 2
+ },
+ "height": 10,
+ "label": {
+ "position": {
+ "dx": 0,
+ "dy": 0
+ },
+ "text": "{value}"
+ },
+ "render": "circle",
+ "rotation": 0,
+ "stroke": {
+ "color": "",
+ "opacity": 1,
+ "width": 1
+ },
+ "tooltip": {
+ "background": {
+ "color": "",
+ "opacity": 1
+ },
+ "cornerRadius": 3,
+ "enabled": true,
+ "pointerLength": 4,
+ "text": "{name}: [bold]{valueY}[/]"
+ },
+ "width": 10
+ }
+ ],
+ "connect": true,
+ "fill": {
+ "color": "",
+ "opacity": 0
+ },
+ "minDistance": 0.5,
+ "stroke": {
+ "color": "",
+ "dashArray": "",
+ "opacity": 1,
+ "width": 3
+ },
+ "tensionX": 1,
+ "tensionY": 1
+ },
+ "open": {
+ "x": "",
+ "y": ""
+ }
+ },
+ "tooltip": {
+ "background": {
+ "color": "",
+ "opacity": 1
+ },
+ "cornerRadius": 3,
+ "enabled": true,
+ "pointerLength": 4,
+ "text": "{name}: [bold]{valueY}[/]"
+ },
+ "visible": true,
+ "xAxis": "hour",
+ "yAxis": "count",
+ "zIndex": 0
+ },
+ {
+ "candlestick": {
+ "appearance": {
+ "deriveFieldsFromData": {
+ "fill": {
+ "color": "",
+ "opacity": ""
+ },
+ "stroke": {
+ "color": "",
+ "opacity": "",
+ "width": ""
+ }
+ },
+ "fill": {
+ "color": "",
+ "opacity": 1
+ },
+ "heatRules": {
+ "dataField": "",
+ "enabled": false,
+ "max": "",
+ "min": ""
+ },
+ "stacked": false,
+ "stroke": {
+ "color": "",
+ "opacity": 1,
+ "width": 1
+ }
+ },
+ "high": {
+ "x": "",
+ "y": ""
+ },
+ "low": {
+ "x": "",
+ "y": ""
+ },
+ "open": {
+ "x": "",
+ "y": ""
+ }
+ },
+ "column": {
+ "appearance": {
+ "deriveFieldsFromData": {
+ "fill": {
+ "color": "",
+ "opacity": ""
+ },
+ "stroke": {
+ "color": "",
+ "opacity": "",
+ "width": ""
+ }
+ },
+ "fill": {
+ "color": "",
+ "opacity": 1
+ },
+ "heatRules": {
+ "dataField": "",
+ "enabled": false,
+ "max": "",
+ "min": ""
+ },
+ "height": null,
+ "stacked": true,
+ "stroke": {
+ "color": "",
+ "opacity": 1,
+ "width": 1
+ },
+ "width": null
+ },
+ "open": {
+ "x": "",
+ "y": ""
+ }
+ },
+ "data": {
+ "source": "example",
+ "x": "hour",
+ "y": "lane_disabled"
+ },
+ "defaultState": {
+ "visible": true
+ },
+ "hiddenInLegend": false,
+ "label": {
+ "text": "Lane Disabled"
+ },
+ "line": {
+ "appearance": {
+ "bullets": [
+ {
+ "deriveFieldsFromData": {
+ "fill": {
+ "color": "",
+ "opacity": ""
+ },
+ "rotation": "",
+ "stroke": {
+ "color": "",
+ "opacity": "",
+ "width": ""
+ }
+ },
+ "enabled": false,
+ "fill": {
+ "color": "",
+ "opacity": 1
+ },
+ "heatRules": {
+ "dataField": "",
+ "enabled": false,
+ "max": 100,
+ "min": 2
+ },
+ "height": 10,
+ "label": {
+ "position": {
+ "dx": 0,
+ "dy": 0
+ },
+ "text": "{value}"
+ },
+ "render": "circle",
+ "rotation": 0,
+ "stroke": {
+ "color": "",
+ "opacity": 1,
+ "width": 1
+ },
+ "tooltip": {
+ "background": {
+ "color": "",
+ "opacity": 1
+ },
+ "cornerRadius": 3,
+ "enabled": true,
+ "pointerLength": 4,
+ "text": "{name}: [bold]{valueY}[/]"
+ },
+ "width": 10
+ }
+ ],
+ "connect": true,
+ "fill": {
+ "color": "",
+ "opacity": 0
+ },
+ "minDistance": 0.5,
+ "stroke": {
+ "color": "",
+ "dashArray": "",
+ "opacity": 1,
+ "width": 3
+ },
+ "tensionX": 1,
+ "tensionY": 1
+ },
+ "open": {
+ "x": "",
+ "y": ""
+ }
+ },
+ "name": "lane_disabled",
+ "render": "column",
+ "stepLine": {
+ "appearance": {
+ "bullets": [
+ {
+ "deriveFieldsFromData": {
+ "fill": {
+ "color": "",
+ "opacity": ""
+ },
+ "rotation": "",
+ "stroke": {
+ "color": "",
+ "opacity": "",
+ "width": ""
+ }
+ },
+ "enabled": true,
+ "fill": {
+ "color": "",
+ "opacity": 1
+ },
+ "heatRules": {
+ "dataField": "",
+ "enabled": false,
+ "max": 100,
+ "min": 2
+ },
+ "height": 10,
+ "label": {
+ "position": {
+ "dx": 0,
+ "dy": 0
+ },
+ "text": "{value}"
+ },
+ "render": "circle",
+ "rotation": 0,
+ "stroke": {
+ "color": "",
+ "opacity": 1,
+ "width": 1
+ },
+ "tooltip": {
+ "background": {
+ "color": "",
+ "opacity": 1
+ },
+ "cornerRadius": 3,
+ "enabled": true,
+ "pointerLength": 4,
+ "text": "{name}: [bold]{valueY}[/]"
+ },
+ "width": 10
+ }
+ ],
+ "connect": true,
+ "fill": {
+ "color": "",
+ "opacity": 0
+ },
+ "minDistance": 0.5,
+ "stroke": {
+ "color": "",
+ "dashArray": "",
+ "opacity": 1,
+ "width": 3
+ },
+ "tensionX": 1,
+ "tensionY": 1
+ },
+ "open": {
+ "x": "",
+ "y": ""
+ }
+ },
+ "tooltip": {
+ "background": {
+ "color": "",
+ "opacity": 1
+ },
+ "cornerRadius": 3,
+ "enabled": true,
+ "pointerLength": 4,
+ "text": "{name}: [bold]{valueY}[/]"
+ },
+ "visible": true,
+ "xAxis": "hour",
+ "yAxis": "count",
+ "zIndex": 0
+ },
+ {
+ "candlestick": {
+ "appearance": {
+ "deriveFieldsFromData": {
+ "fill": {
+ "color": "",
+ "opacity": ""
+ },
+ "stroke": {
+ "color": "",
+ "opacity": "",
+ "width": ""
+ }
+ },
+ "fill": {
+ "color": "",
+ "opacity": 1
+ },
+ "heatRules": {
+ "dataField": "",
+ "enabled": false,
+ "max": "",
+ "min": ""
+ },
+ "stacked": false,
+ "stroke": {
+ "color": "",
+ "opacity": 1,
+ "width": 1
+ }
+ },
+ "high": {
+ "x": "",
+ "y": ""
+ },
+ "low": {
+ "x": "",
+ "y": ""
+ },
+ "open": {
+ "x": "",
+ "y": ""
+ }
+ },
+ "column": {
+ "appearance": {
+ "deriveFieldsFromData": {
+ "fill": {
+ "color": "",
+ "opacity": ""
+ },
+ "stroke": {
+ "color": "",
+ "opacity": "",
+ "width": ""
+ }
+ },
+ "fill": {
+ "color": "",
+ "opacity": 1
+ },
+ "heatRules": {
+ "dataField": "",
+ "enabled": false,
+ "max": "",
+ "min": ""
+ },
+ "height": null,
+ "stacked": true,
+ "stroke": {
+ "color": "",
+ "opacity": 1,
+ "width": 1
+ },
+ "width": null
+ },
+ "open": {
+ "x": "",
+ "y": ""
+ }
+ },
+ "data": {
+ "source": "example",
+ "x": "hour",
+ "y": "lane_full"
+ },
+ "defaultState": {
+ "visible": true
+ },
+ "hiddenInLegend": false,
+ "label": {
+ "text": "Lane Full"
+ },
+ "line": {
+ "appearance": {
+ "bullets": [
+ {
+ "deriveFieldsFromData": {
+ "fill": {
+ "color": "",
+ "opacity": ""
+ },
+ "rotation": "",
+ "stroke": {
+ "color": "",
+ "opacity": "",
+ "width": ""
+ }
+ },
+ "enabled": false,
+ "fill": {
+ "color": "",
+ "opacity": 1
+ },
+ "heatRules": {
+ "dataField": "",
+ "enabled": false,
+ "max": 100,
+ "min": 2
+ },
+ "height": 10,
+ "label": {
+ "position": {
+ "dx": 0,
+ "dy": 0
+ },
+ "text": "{value}"
+ },
+ "render": "circle",
+ "rotation": 0,
+ "stroke": {
+ "color": "",
+ "opacity": 1,
+ "width": 1
+ },
+ "tooltip": {
+ "background": {
+ "color": "",
+ "opacity": 1
+ },
+ "cornerRadius": 3,
+ "enabled": true,
+ "pointerLength": 4,
+ "text": "{name}: [bold]{valueY}[/]"
+ },
+ "width": 10
+ }
+ ],
+ "connect": true,
+ "fill": {
+ "color": "",
+ "opacity": 0
+ },
+ "minDistance": 0.5,
+ "stroke": {
+ "color": "",
+ "dashArray": "",
+ "opacity": 1,
+ "width": 3
+ },
+ "tensionX": 1,
+ "tensionY": 1
+ },
+ "open": {
+ "x": "",
+ "y": ""
+ }
+ },
+ "name": "lane_full",
+ "render": "column",
+ "stepLine": {
+ "appearance": {
+ "bullets": [
+ {
+ "deriveFieldsFromData": {
+ "fill": {
+ "color": "",
+ "opacity": ""
+ },
+ "rotation": "",
+ "stroke": {
+ "color": "",
+ "opacity": "",
+ "width": ""
+ }
+ },
+ "enabled": true,
+ "fill": {
+ "color": "",
+ "opacity": 1
+ },
+ "heatRules": {
+ "dataField": "",
+ "enabled": false,
+ "max": 100,
+ "min": 2
+ },
+ "height": 10,
+ "label": {
+ "position": {
+ "dx": 0,
+ "dy": 0
+ },
+ "text": "{value}"
+ },
+ "render": "circle",
+ "rotation": 0,
+ "stroke": {
+ "color": "",
+ "opacity": 1,
+ "width": 1
+ },
+ "tooltip": {
+ "background": {
+ "color": "",
+ "opacity": 1
+ },
+ "cornerRadius": 3,
+ "enabled": true,
+ "pointerLength": 4,
+ "text": "{name}: [bold]{valueY}[/]"
+ },
+ "width": 10
+ }
+ ],
+ "connect": true,
+ "fill": {
+ "color": "",
+ "opacity": 0
+ },
+ "minDistance": 0.5,
+ "stroke": {
+ "color": "",
+ "dashArray": "",
+ "opacity": 1,
+ "width": 3
+ },
+ "tensionX": 1,
+ "tensionY": 1
+ },
+ "open": {
+ "x": "",
+ "y": ""
+ }
+ },
+ "tooltip": {
+ "background": {
+ "color": "",
+ "opacity": 1
+ },
+ "cornerRadius": 3,
+ "enabled": true,
+ "pointerLength": 4,
+ "text": "{name}: [bold]{valueY}[/]"
+ },
+ "visible": true,
+ "xAxis": "hour",
+ "yAxis": "count",
+ "zIndex": 0
+ },
+ {
+ "candlestick": {
+ "appearance": {
+ "deriveFieldsFromData": {
+ "fill": {
+ "color": "",
+ "opacity": ""
+ },
+ "stroke": {
+ "color": "",
+ "opacity": "",
+ "width": ""
+ }
+ },
+ "fill": {
+ "color": "",
+ "opacity": 1
+ },
+ "heatRules": {
+ "dataField": "",
+ "enabled": false,
+ "max": "",
+ "min": ""
+ },
+ "stacked": false,
+ "stroke": {
+ "color": "",
+ "opacity": 1,
+ "width": 1
+ }
+ },
+ "high": {
+ "x": "",
+ "y": ""
+ },
+ "low": {
+ "x": "",
+ "y": ""
+ },
+ "open": {
+ "x": "",
+ "y": ""
+ }
+ },
+ "column": {
+ "appearance": {
+ "deriveFieldsFromData": {
+ "fill": {
+ "color": "",
+ "opacity": ""
+ },
+ "stroke": {
+ "color": "",
+ "opacity": "",
+ "width": ""
+ }
+ },
+ "fill": {
+ "color": "",
+ "opacity": 1
+ },
+ "heatRules": {
+ "dataField": "",
+ "enabled": false,
+ "max": "",
+ "min": ""
+ },
+ "height": null,
+ "stacked": true,
+ "stroke": {
+ "color": "",
+ "opacity": 1,
+ "width": 1
+ },
+ "width": null
+ },
+ "open": {
+ "x": "",
+ "y": ""
+ }
+ },
+ "data": {
+ "source": "example",
+ "x": "hour",
+ "y": "lane_jam"
+ },
+ "defaultState": {
+ "visible": true
+ },
+ "hiddenInLegend": false,
+ "label": {
+ "text": "Lane Jam"
+ },
+ "line": {
+ "appearance": {
+ "bullets": [
+ {
+ "deriveFieldsFromData": {
+ "fill": {
+ "color": "",
+ "opacity": ""
+ },
+ "rotation": "",
+ "stroke": {
+ "color": "",
+ "opacity": "",
+ "width": ""
+ }
+ },
+ "enabled": false,
+ "fill": {
+ "color": "",
+ "opacity": 1
+ },
+ "heatRules": {
+ "dataField": "",
+ "enabled": false,
+ "max": 100,
+ "min": 2
+ },
+ "height": 10,
+ "label": {
+ "position": {
+ "dx": 0,
+ "dy": 0
+ },
+ "text": "{value}"
+ },
+ "render": "circle",
+ "rotation": 0,
+ "stroke": {
+ "color": "",
+ "opacity": 1,
+ "width": 1
+ },
+ "tooltip": {
+ "background": {
+ "color": "",
+ "opacity": 1
+ },
+ "cornerRadius": 3,
+ "enabled": true,
+ "pointerLength": 4,
+ "text": "{name}: [bold]{valueY}[/]"
+ },
+ "width": 10
+ }
+ ],
+ "connect": true,
+ "fill": {
+ "color": "",
+ "opacity": 0
+ },
+ "minDistance": 0.5,
+ "stroke": {
+ "color": "",
+ "dashArray": "",
+ "opacity": 1,
+ "width": 3
+ },
+ "tensionX": 1,
+ "tensionY": 1
+ },
+ "open": {
+ "x": "",
+ "y": ""
+ }
+ },
+ "name": "lane_jam",
+ "render": "column",
+ "stepLine": {
+ "appearance": {
+ "bullets": [
+ {
+ "deriveFieldsFromData": {
+ "fill": {
+ "color": "",
+ "opacity": ""
+ },
+ "rotation": "",
+ "stroke": {
+ "color": "",
+ "opacity": "",
+ "width": ""
+ }
+ },
+ "enabled": true,
+ "fill": {
+ "color": "",
+ "opacity": 1
+ },
+ "heatRules": {
+ "dataField": "",
+ "enabled": false,
+ "max": 100,
+ "min": 2
+ },
+ "height": 10,
+ "label": {
+ "position": {
+ "dx": 0,
+ "dy": 0
+ },
+ "text": "{value}"
+ },
+ "render": "circle",
+ "rotation": 0,
+ "stroke": {
+ "color": "",
+ "opacity": 1,
+ "width": 1
+ },
+ "tooltip": {
+ "background": {
+ "color": "",
+ "opacity": 1
+ },
+ "cornerRadius": 3,
+ "enabled": true,
+ "pointerLength": 4,
+ "text": "{name}: [bold]{valueY}[/]"
+ },
+ "width": 10
+ }
+ ],
+ "connect": true,
+ "fill": {
+ "color": "",
+ "opacity": 0
+ },
+ "minDistance": 0.5,
+ "stroke": {
+ "color": "",
+ "dashArray": "",
+ "opacity": 1,
+ "width": 3
+ },
+ "tensionX": 1,
+ "tensionY": 1
+ },
+ "open": {
+ "x": "",
+ "y": ""
+ }
+ },
+ "tooltip": {
+ "background": {
+ "color": "",
+ "opacity": 1
+ },
+ "cornerRadius": 3,
+ "enabled": true,
+ "pointerLength": 4,
+ "text": "{name}: [bold]{valueY}[/]"
+ },
+ "visible": true,
+ "xAxis": "hour",
+ "yAxis": "count",
+ "zIndex": 0
+ }
+ ],
+ "style": {
+ "backgroundColor": "#FFF",
+ "borderTopColor": "#000",
+ "borderTopStyle": "solid",
+ "borderTopWidth": "2px"
+ },
+ "xAxes": [
+ {
+ "appearance": {
+ "font": {
+ "size": "",
+ "weight": 500
+ },
+ "grid": {
+ "color": "",
+ "dashArray": "",
+ "minDistance": 60,
+ "opacity": 1,
+ "position": 0.5
+ },
+ "inside": false,
+ "labels": {
+ "color": "",
+ "opacity": 1,
+ "rotation": 0,
+ "wrap": true
+ },
+ "opposite": false
+ },
+ "category": {
+ "break": {
+ "enabled": false,
+ "endCategory": "",
+ "size": 0.05,
+ "startCategory": ""
+ }
+ },
+ "date": {
+ "baseInterval": {
+ "count": 1,
+ "enabled": false,
+ "skipEmptyPeriods": false,
+ "timeUnit": "hour"
+ },
+ "break": {
+ "enabled": false,
+ "endDate": "",
+ "size": 0.05,
+ "startDate": ""
+ },
+ "format": "kk",
+ "inputFormat": "yyyy-MM-dd kk:mm:ss",
+ "range": {
+ "max": "",
+ "min": "",
+ "useStrict": false
+ }
+ },
+ "inversed": false,
+ "label": {
+ "color": "",
+ "enabled": true,
+ "text": "Hour"
+ },
+ "name": "hour",
+ "render": "category",
+ "tooltip": {
+ "background": {
+ "color": "",
+ "opacity": 1
+ },
+ "cornerRadius": 3,
+ "enabled": true,
+ "pointerLength": 4,
+ "text": ""
+ },
+ "value": {
+ "break": {
+ "enabled": false,
+ "endValue": 100,
+ "size": 0.05,
+ "startValue": 0
+ },
+ "format": "#,###.##",
+ "logarithmic": false,
+ "range": {
+ "max": "",
+ "min": "",
+ "useStrict": false
+ }
+ },
+ "visible": true
+ }
+ ],
+ "yAxes": [
+ {
+ "appearance": {
+ "font": {
+ "size": "",
+ "weight": 500
+ },
+ "grid": {
+ "color": "",
+ "dashArray": "",
+ "minDistance": null,
+ "opacity": 1,
+ "position": 0.5
+ },
+ "inside": false,
+ "labels": {
+ "color": "",
+ "opacity": 1,
+ "rotation": 0,
+ "wrap": true
+ },
+ "opposite": false
+ },
+ "category": {
+ "break": {
+ "enabled": false,
+ "endCategory": "",
+ "size": 0.05,
+ "startCategory": ""
+ }
+ },
+ "date": {
+ "baseInterval": {
+ "count": 1,
+ "enabled": false,
+ "skipEmptyPeriods": false,
+ "timeUnit": "hour"
+ },
+ "break": {
+ "enabled": false,
+ "endDate": "",
+ "size": 0.05,
+ "startDate": ""
+ },
+ "format": "M/d/yyyy HH:mm:ss",
+ "inputFormat": "yyyy-MM-dd kk:mm:ss",
+ "range": {
+ "max": "",
+ "min": "",
+ "useStrict": false
+ }
+ },
+ "inversed": false,
+ "label": {
+ "color": "",
+ "enabled": true
+ },
+ "name": "count",
+ "render": "value",
+ "tooltip": {
+ "background": {
+ "color": "",
+ "opacity": 1
+ },
+ "cornerRadius": 3,
+ "enabled": true,
+ "pointerLength": 4,
+ "text": ""
+ },
+ "value": {
+ "break": {
+ "enabled": false,
+ "endValue": 100,
+ "size": 0.05,
+ "startValue": 0
+ },
+ "logarithmic": false,
+ "range": {
+ "max": "",
+ "min": "",
+ "useStrict": false
+ }
+ },
+ "visible": true
+ }
+ ]
+ },
+ "scripts": {
+ "customMethods": [
+ {
+ "name": "forceRefresh",
+ "params": [],
+ "script": "\tif self.meta.visible:\n\t\t# Generate tabData\n\t\tcurrentTabIndex \u003d self.getSibling(\"TabContainer\").props.currentTabIndex\n\t\ttabData \u003d self.view.custom.tabData[currentTabIndex]\n\t\tstartDate \u003d self.session.custom.timewidget.startDate\n\t\tendDate \u003d self.session.custom.timewidget.endDate\n\t\tidField \u003d tabData.idField\n\t\tid \u003d self.getSibling(\"Dropdown\").props.value\n\t\t\n\t\t# Apply:\n\t\t#system.perspective.print(\"Chart Check: \" + tabData.title + \"|\" + id)\n\t\tif id \u003c\u003e \"\" and tabData.isBar:\n\t\t\t#system.perspective.print(\"Chart Refresh: \" + tabData.title + \"|\" + id)\n\t\t\tparams \u003d {\n\t\t\t\t\"startDate\": startDate,\n\t\t\t\t\"endDate\": endDate,\n\t\t\t\tidField: id\n\t\t\t}\n\t\t\tdata \u003d system.db.runNamedQuery(tabData.chartNamedQuery, params)\n\t\t\t# Update columns:\n\t\t\tfilterColumns \u003d [col for col in self.getSibling(\"Mode\").props.value]\n\t\t\tcolumns \u003d []\n\t\t\tfor name in data.getColumnNames():\n\t\t\t\tif name.split(\"_\")[-1] not in filterColumns and name not in [\"time\", \"hour\"]:\n\t\t\t\t\textra \u003d {\n\t\t\t\t\t\t\"xAxis\": \"hour\",\n\t\t\t\t\t\t\"yAxis\": \"count\",\n\t\t\t\t\t\t\"render\": \"column\"\n\t\t\t\t\t}\n\t\t\t\t\tseries \u003d reports.generateSeries(name, extra)\n\t\t\t\t\tseries[\"data\"][\"source\"] \u003d \"example\"\n\t\t\t\t\tseries[\"data\"][\"x\"] \u003d \"hour\"\n\t\t\t\t\tseries[\"column\"][\"appearance\"][\"stacked\"] \u003d True\n\t\t\t\t\tcolumns.append(series)\n\t\t\tself.props.series \u003d columns\n\t\t\t# Return data\n\t\t\tself.props.dataSources.example \u003d data"
+ }
+ ],
+ "extensionFunctions": null,
+ "messageHandlers": []
+ },
+ "type": "ia.chart.xy"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "min-width": "1000px",
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/c37d7b84dd70a0c30bb90512e1539dd2170bc9947d9f22e959fb1b4f4348923d b/.resources/c37d7b84dd70a0c30bb90512e1539dd2170bc9947d9f22e959fb1b4f4348923d
new file mode 100644
index 00000000..a5d68c59
--- /dev/null
+++ b/.resources/c37d7b84dd70a0c30bb90512e1539dd2170bc9947d9f22e959fb1b4f4348923d
@@ -0,0 +1,10 @@
+{
+ "base": {
+ "style": {
+ "backgroundColor": "#F00077B3",
+ "color": "#000000",
+ "fontFamily": "Arial",
+ "fontWeight": "bold"
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/c4064c23b6b45cbe8774ccb47193f221dbd7772c5650a9566eb015c4266e70eb b/.resources/c4064c23b6b45cbe8774ccb47193f221dbd7772c5650a9566eb015c4266e70eb
new file mode 100644
index 00000000..6001e9e4
--- /dev/null
+++ b/.resources/c4064c23b6b45cbe8774ccb47193f221dbd7772c5650a9566eb015c4266e70eb
@@ -0,0 +1,156 @@
+################################################################
+################################################################
+## Version: 1.0 / Author: Dillon Uzar
+##
+## DESC: For use in FMS in recording Flow Management data
+## WARN: Modifying code may cause system to function incorrectly
+################################################################
+################################################################
+
+import json
+import system
+import time
+
+#######################################################
+#######################################################
+#######################################################
+#### Constants
+#######################################################
+
+# Logger:
+LOG = system.util.logger("FMS Handler")
+
+# For inserting data into database:
+INSERT_QUERY = "INSERT INTO fms_history (conveyor, segment, data) VALUES (?,?,?)"
+
+#######################################################
+#######################################################
+#######################################################
+#### Parsing Utils
+#######################################################
+
+def extractNibble(val, nibble):
+ if val is not None:
+ return (val >> (nibble*4)) & 0x0F
+
+def logTime(title, conv, seg, data, start_time):
+ millisec = round((time.time() - start_time) * 1000, 1)
+ LOG.info("%s[CONV=%s][SEG=%s][DATA=%s] took %sms to process" % (title, conv, seg, data, millisec))
+
+#######################################################
+#######################################################
+#######################################################
+#### Tag Event Handling
+#######################################################
+
+def logSegment(conveyor, segment, data):
+ # Log event in SQL:
+ # Insert into FMS History:
+ start_time = time.time()
+ INSERT_QUERY = "INSERT INTO fms_history (conveyor, segment, data) VALUES (?,?,?)"
+ system.db.runPrepUpdate(INSERT_QUERY, [conveyor, segment, data])
+ #logTime("FMS[DB_INSERT]", conveyor, segment, data, start_time)
+
+def dintOnChange(tag, tagPath, previousValue, currentValue, initialChange, missedEvents):
+ # Don't execute on startup, or if new value is bad quality:
+ if currentValue.quality.isGood():
+ # Only consider it a change if the value is different:
+ if currentValue.value <> previousValue.value:
+ id = int(tagPath.split("/")[-1].replace("DINT", ""))
+ conveyor = tag['parameters']['LabelFull']
+ # ID=0 is unique where the first nibble is the average of all segments, the 7 other segments are normal segments:
+ if id == 0:
+ # Ignore first nibble, which is the average of all segments:
+ for i in range(1, 8):
+ # Check if segment changed:
+ curVal = extractNibble(currentValue.value, i)
+ prevVal = extractNibble(previousValue.value, i)
+ if curVal <> prevVal:
+ segment = i - 1
+ logSegment(conveyor, segment, curVal)
+ else:
+ for i in range(0, 8):
+ # Check if segment changed:
+ curVal = extractNibble(currentValue.value, i)
+ prevVal = extractNibble(previousValue.value, i)
+ if curVal <> prevVal:
+ segment = i + (id-1)*8 + 7
+ logSegment(conveyor, segment, curVal)
+
+#######################################################
+#######################################################
+#######################################################
+#### Graphics Tag Scripts
+#######################################################
+
+"""
+radial-gradient(circle at 30%,
+ #f5bff5 calc((var(--conv-width) - 4px)/2*0.25),
+ #000 calc((var(--conv-width) - 4px)/2*0.25),
+ #000 calc((var(--conv-width) - 4px)/2*0.25 + 1px),
+ transparent calc((var(--conv-width) - 4px)/2*0.25 + 1px)),
+radial-gradient(circle at 50%, #d900d9 calc((var(--conv-width) - 4px)/2*1), #000 calc((var(--conv-width) - 4px)/2*1), #000 calc((var(--conv-width) - 4px)/2*1 + 1px), transparent calc((var(--conv-width) - 4px)/2*0.25 + 1px)), radial-gradient(circle at 70%, #ec7fec 7px, #000 7px, #000 8px, transparent 8px), radial-gradient(circle at 90%, #e23fe2 10px, #000 10px, #000 11px, transparent 11px), #00D900
+"""
+
+
+def genSegmentsTable(obj):
+ segments = []
+ if obj is not None and obj["Count"] is not None:
+ for i in range(1, obj["Count"]+1):
+ dint = "DINT"+str(int(i/8))
+ if obj[dint] is not None:
+ percent = extractNibble(obj[dint], i % 8) / 15.0
+ segments.append([i, percent])
+ return system.dataset.toDataSet(["segment", "fill"], segments)
+
+def genSegmentColor(data):
+ perc = (data/15.0)
+ c1 = 255 - (255 - 217)*perc
+ c2 = 255 - (255 - 0)*perc
+ return "rgb(%s, %s, %s)" % (c1, c2, c1)
+
+def genSegmentsPattern(obj):
+ if obj["Count"] is not None and obj["Count"] > 0:
+ percUnit = 100 / float(obj["Count"])
+ gradients = []
+ for i in range(1, obj["Count"]+1):
+ dint = "DINT"+str(int(i/8))
+ if obj[dint] is not None:
+ data = extractNibble(obj[dint], i % 8)
+ color = genSegmentColor(data)
+ circlePos = ((obj["Count"]-i))*percUnit + percUnit/2.0
+ perc = (data/15.0*0.5+0.5) if data > 0 else 0.0 # Make circle size between 50%-100%
+ if perc > 0.0:
+ output = "radial-gradient(circle at %s%%" % (circlePos)
+ output += ", %s calc((var(--conv-width) - 8px)/2*%s)" % (color, perc)
+ output += ", #000 calc((var(--conv-width) - 8px)/2*%s)" % (perc)
+ output += ", #000 calc((var(--conv-width) - 8px)/2*%s + 1px)" % (perc)
+ output += ", transparent calc((var(--conv-width) - 8px)/2*%s + 1px)" % (perc)
+ output += ")"
+ gradients.append(output)
+ if len(gradients) > 0:
+ return ", ".join(gradients)+","
+ return ""
+
+def genSegmentsTooltip(obj):
+ if obj["Count"] is not None and obj["Count"] > 0:
+ data = extractNibble(obj["DINT0"], 0)
+ output = "
SegmentAVG: %s%%" % (int(round(100 * data / 15.0)))
+ for i in range(1, obj["Count"]+1):
+ dint = "DINT"+str(int(i/8))
+ if obj[dint] is not None:
+ data = extractNibble(obj[dint], i % 8)
+ output += "
Segment%s: %s%%" % (i, int(round(100 * data / 15.0)))
+ return output
+ return ""
+
+def genSegmentHeatmap(obj):
+ segments = []
+ if obj["Count"] is not None and obj["Count"] > 0:
+ for i in range(1, obj["Count"]+1):
+ dint = "DINT"+str(int(i/8))
+ if obj[dint] is not None:
+ data = extractNibble(obj[dint], i % 8)
+ color = 255 * data / 15
+ segments.append("rgb(255, %s, %s)" % (color, color))
+ return json.dumps(segments)
\ No newline at end of file
diff --git a/.resources/c4b11a62c77de72749d2fac91042026636c3e6bcf2efce58c4987728e630e198 b/.resources/c4b11a62c77de72749d2fac91042026636c3e6bcf2efce58c4987728e630e198
new file mode 100644
index 00000000..c9af6be8
--- /dev/null
+++ b/.resources/c4b11a62c77de72749d2fac91042026636c3e6bcf2efce58c4987728e630e198
@@ -0,0 +1,290 @@
+{
+ "custom": {},
+ "params": {
+ "meta": {
+ "name": "SCAN"
+ },
+ "props": {
+ "config": {
+ "enableHighlight": true,
+ "isClickable": false
+ },
+ "status": {
+ "color": "#AAA",
+ "showAlways": true,
+ "tagPath": "",
+ "tooltip": ""
+ }
+ }
+ },
+ "propConfig": {
+ "params.meta": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.meta.name": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 105,
+ "width": 500
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Scanner"
+ },
+ "position": {
+ "height": 27,
+ "rotate": {
+ "angle": "90deg"
+ },
+ "width": 54,
+ "x": 72,
+ "y": 21.5
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "expression": "try(\r\n\tjsonSet({value}, \"showAlways\", true),\r\n\t{view.params.props.status}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ }
+ },
+ "type": "dex.display.scanner"
+ },
+ {
+ "meta": {
+ "name": "lbStatus"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 40
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "code": "\treturn utils.extractStatus(value)",
+ "type": "script"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbName"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 5
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.LabelFull"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \u0027\u0027)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_1"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 5
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Name: "
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_11"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 40
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Status:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_12"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 75
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Panel:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbStatus_0"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 75
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.OPC_Server"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \"Unknown\")",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "background-color": "#CFCFCF"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/c5cbebcb426fadfad2bbe3758efd63702a7eea017e71775625530923b8965af6 b/.resources/c5cbebcb426fadfad2bbe3758efd63702a7eea017e71775625530923b8965af6
new file mode 100644
index 00000000..32ee0e76
--- /dev/null
+++ b/.resources/c5cbebcb426fadfad2bbe3758efd63702a7eea017e71775625530923b8965af6
@@ -0,0 +1,9 @@
+{
+ "isIdleTimeoutEnabled": true,
+ "idleMinutes": 240,
+ "gracePeriod": 300,
+ "gracePeriodMessage": "You will be logged out due to inactivity in {seconds} seconds",
+ "timeoutAction": "UserLogout",
+ "logoutUrl": "",
+ "isCustomLogout": false
+}
\ No newline at end of file
diff --git a/.resources/cb9355f102afc2ddd48731bb559f0e3fcef841852500a9c7f414611a79d7ca6c b/.resources/cb9355f102afc2ddd48731bb559f0e3fcef841852500a9c7f414611a79d7ca6c
new file mode 100644
index 00000000..01f19e3c
--- /dev/null
+++ b/.resources/cb9355f102afc2ddd48731bb559f0e3fcef841852500a9c7f414611a79d7ca6c
@@ -0,0 +1,106 @@
+WITH SORTERS AS (
+ SELECT
+ DATE_FORMAT(MIN(s04_timestamp), "%Y-%m-%d %H:00") AS start_timestamp,
+ CONCAT("H",
+ CAST(
+ TIMESTAMPDIFF(
+ HOUR,
+ DATE_FORMAT(MIN(s04_timestamp), "%Y-%m-%d %H:00:00"),
+ DATE_FORMAT(LEAST(CURRENT_TIMESTAMP(), :endDate), "%Y-%m-%d %H:00:00")
+ ) AS CHAR
+ )
+ ) AS hour,
+ COUNT(*) AS total,
+ SUM(sort_code="Success") AS success,
+ SUM(sort_code="Unknown") AS unknown,
+ SUM(sort_code="Unexpected") AS unexpected,
+ SUM(sort_code="Track Err") AS track_err,
+ SUM(sort_code="Gap Err") AS gap_err,
+ SUM(sort_code="Dest Full") AS dest_full,
+ SUM(sort_code="Dest Fault") AS dest_fault,
+ SUM(sort_code="Dest Invalid") AS dest_invalid,
+ SUM(sort_code="No Read") AS no_read,
+ SUM(sort_code="No Code") AS no_code,
+ SUM(sort_code="Multi Label") AS multi_label,
+ SUM(sort_code="Dest Disabled") AS dest_disabled,
+ SUM(sort_code="Rate High") AS rate_high,
+ SUM(sort_code="Div Fail") AS div_fail,
+ SUM(sort_code="Dest None") AS dest_none,
+ SUM(sort_code="Lost") AS lost,
+ SUM(sort_code="Dim Err") AS dim_err,
+ SUM(sort_code="Weight Err") AS weight_err,
+ SUM(sort_code="Underutilized") AS underutilized,
+ SUM(sort_code="Unsafe") AS unsafe
+ FROM package_history
+ WHERE s04_timestamp BETWEEN :startDate AND :endDate
+ AND sorter=:sorter
+ GROUP BY DATE_FORMAT(s04_timestamp, "%Y-%m-%d %H:00")
+)
+SELECT
+ start_timestamp AS time,
+ hour,
+ /* Counts: */
+ success AS success_count,
+ unknown AS unknown_count,
+ unexpected AS unexpected_count,
+ track_err AS track_err_count,
+ gap_err AS gap_err_count,
+ dest_full AS dest_full_count,
+ dest_fault AS dest_fault_count,
+ dest_invalid AS dest_invalid_count,
+ no_read AS no_read_count,
+ no_code AS no_code_count,
+ multi_label AS multi_label_count,
+ dest_disabled AS dest_disabled_count,
+ rate_high AS rate_high_count,
+ div_fail AS div_fail_count,
+ dest_none AS dest_none_count,
+ lost AS lost_count,
+ dim_err AS dim_err_count,
+ weight_err AS weight_err_count,
+ underutilized AS underutilized_count,
+ unsafe AS unsafe_count,
+ /* PPH: */
+ success AS success_pph,
+ unknown AS unknown_pph,
+ unexpected AS unexpected_pph,
+ track_err AS track_err_pph,
+ gap_err AS gap_err_pph,
+ dest_full AS dest_full_pph,
+ dest_fault AS dest_fault_pph,
+ dest_invalid AS dest_invalid_pph,
+ no_read AS no_read_pph,
+ no_code AS no_code_pph,
+ multi_label AS multi_label_pph,
+ dest_disabled AS dest_disabled_pph,
+ rate_high AS rate_high_pph,
+ div_fail AS div_fail_pph,
+ dest_none AS dest_none_pph,
+ lost AS lost_pph,
+ dim_err AS dim_err_pph,
+ weight_err AS weight_err_pph,
+ underutilized AS underutilized_pph,
+ unsafe AS unsafe_pph,
+ /* Percents: */
+ ROUND(success/total, 4) AS success_percent,
+ ROUND(unknown/total, 4) AS unknown_percent,
+ ROUND(unexpected/total, 4) AS unexpected_percent,
+ ROUND(track_err/total, 4) AS track_err_percent,
+ ROUND(gap_err/total, 4) AS gap_err_percent,
+ ROUND(dest_full/total, 4) AS dest_full_percent,
+ ROUND(dest_fault/total, 4) AS dest_fault_percent,
+ ROUND(dest_invalid/total, 4) AS dest_invalid_percent,
+ ROUND(no_read/total, 4) AS no_read_percent,
+ ROUND(no_code/total, 4) AS no_code_percent,
+ ROUND(multi_label/total, 4) AS multi_label_percent,
+ ROUND(dest_disabled/total, 4) AS dest_disabled_percent,
+ ROUND(rate_high/total, 4) AS rate_high_percent,
+ ROUND(div_fail/total, 4) AS div_fail_percent,
+ ROUND(dest_none/total, 4) AS dest_none_percent,
+ ROUND(lost/total, 4) AS lost_percent,
+ ROUND(dim_err/total, 4) AS dim_err_percent,
+ ROUND(weight_err/total, 4) AS weight_err_percent,
+ ROUND(underutilized/total, 4) AS underutilized_percent,
+ ROUND(unsafe/total, 4) AS unsafe_percent
+FROM SORTERS
+ORDER BY start_timestamp;
\ No newline at end of file
diff --git a/.resources/cbbbf2ebe8e1ead0fd196d4aab6315f5af83ee2057937cbe430dc68b795d01ba b/.resources/cbbbf2ebe8e1ead0fd196d4aab6315f5af83ee2057937cbe430dc68b795d01ba
new file mode 100644
index 00000000..db15bce3
--- /dev/null
+++ b/.resources/cbbbf2ebe8e1ead0fd196d4aab6315f5af83ee2057937cbe430dc68b795d01ba
@@ -0,0 +1,156 @@
+{
+ "custom": {},
+ "params": {
+ "tagPath": ""
+ },
+ "propConfig": {
+ "params.tagPath": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 29,
+ "width": 27
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Estop"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1,
+ "y": 8
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/EPC/Graphics"
+ },
+ "overlayOptOut": true,
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "Icon"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 10,
+ "y": 1
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/LKD/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "jsonGet({value}, \"showAlways\") || {session.custom.dexmanager.show.Estops}",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.color": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/LKD/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "jsonGet({value}, \"color\")",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "path": "material/lock"
+ },
+ "type": "ia.display.icon"
+ },
+ {
+ "meta": {
+ "name": "TooltipOverlay"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 10,
+ "y": 1
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "../Icon.meta.visible"
+ },
+ "type": "property"
+ }
+ },
+ "props.status.tooltip": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/LKD/Graphics"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "jsonGet({value}, \"tooltip\")",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "status": {}
+ },
+ "type": "dex.display.tooltipoverlay"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/ccbf71f248b4cddc0c5774706d4957edf57c579eb68976bd5c7ef31b669713be b/.resources/ccbf71f248b4cddc0c5774706d4957edf57c579eb68976bd5c7ef31b669713be
new file mode 100644
index 00000000..4499f90e
--- /dev/null
+++ b/.resources/ccbf71f248b4cddc0c5774706d4957edf57c579eb68976bd5c7ef31b669713be
@@ -0,0 +1,178 @@
+{
+ "custom": {},
+ "params": {},
+ "props": {
+ "defaultSize": {
+ "height": 1080,
+ "width": 1920
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "overview"
+ },
+ "position": {
+ "height": 1080,
+ "width": 1920
+ },
+ "props": {
+ "fit": {
+ "mode": "fill"
+ },
+ "source": "/system/images/overview.svg"
+ },
+ "type": "ia.display.image"
+ },
+ {
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "page": "/mcm01"
+ },
+ "scope": "C",
+ "type": "nav"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button"
+ },
+ "position": {
+ "height": 36,
+ "width": 124,
+ "x": 278,
+ "y": 626
+ },
+ "props": {
+ "primary": false,
+ "text": "MCM01 - FLUID INBOUND"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "page": "/mcm02"
+ },
+ "scope": "C",
+ "type": "nav"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button_0"
+ },
+ "position": {
+ "height": 36,
+ "width": 124,
+ "x": 1052,
+ "y": 726
+ },
+ "props": {
+ "primary": false,
+ "text": "MCM02 - NC SORTER"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "Camera"
+ },
+ "position": {
+ "height": 40,
+ "width": 40,
+ "x": 8,
+ "y": 368
+ },
+ "props": {
+ "path": "autStand/Equipment/Camera",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "Camera_0"
+ },
+ "position": {
+ "height": 40,
+ "width": 40,
+ "x": 486,
+ "y": 432
+ },
+ "props": {
+ "path": "autStand/Equipment/Camera",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "Camera_1"
+ },
+ "position": {
+ "height": 40,
+ "width": 40,
+ "x": 759,
+ "y": 613
+ },
+ "props": {
+ "path": "autStand/Equipment/Camera",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "Camera_2"
+ },
+ "position": {
+ "height": 40,
+ "width": 40,
+ "x": 940,
+ "y": 408
+ },
+ "props": {
+ "path": "autStand/Equipment/Camera",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "Camera_3"
+ },
+ "position": {
+ "height": 40,
+ "width": 40,
+ "x": 1863,
+ "y": 624
+ },
+ "props": {
+ "path": "autStand/Equipment/Camera",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/d0d272fbc909e084c41f6cf5cf4192ecd6f35258cb30740dfa0062abdc92a870 b/.resources/d0d272fbc909e084c41f6cf5cf4192ecd6f35258cb30740dfa0062abdc92a870
new file mode 100644
index 00000000..0c7fb436
--- /dev/null
+++ b/.resources/d0d272fbc909e084c41f6cf5cf4192ecd6f35258cb30740dfa0062abdc92a870
@@ -0,0 +1,395 @@
+{
+ "custom": {
+ "hasControls": null,
+ "isRunning": false
+ },
+ "params": {
+ "label": "System",
+ "tagPath": "[default]SystemStatus",
+ "tagPaths": [],
+ "view": "Windows/Graphics/Overview"
+ },
+ "propConfig": {
+ "custom.hasControls": {
+ "binding": {
+ "config": {
+ "expression": "// Force refresh:\r\nif(now(1000)\u003dnow(1000),\r\n\t{view.params.tagPaths},\r\n\t{view.params.tagPaths}\r\n)"
+ },
+ "transforms": [
+ {
+ "code": "\ttags \u003d [tagPath + \"/SetStart.Quality\" for tagPath in value] + [tagPath + \"/SetStop.Quality\" for tagPath in value]\n\tqualities \u003d [v.getQuality() for v in system.tag.readBlocking(tags)]\n\tqualities \u003d [v \u003d\u003d v.Good for v in qualities]\n\treturn any(qualities) and len(qualities) \u003e 0",
+ "type": "script"
+ }
+ ],
+ "type": "expr"
+ },
+ "persistent": true
+ },
+ "custom.isRunning": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/bStarted"
+ },
+ "type": "tag"
+ },
+ "persistent": true
+ },
+ "params.label": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.tagPath": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.tagPaths": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.tagPaths[0]": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.tagPaths[1]": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.tagPaths[2]": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.tagPaths[3]": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.view": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 40,
+ "width": 125
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tself.parent.openWindow()"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Status"
+ },
+ "position": {
+ "height": "100%",
+ "width": "100%"
+ },
+ "propConfig": {
+ "props.style.backgroundColor": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}.jsonValues"
+ },
+ "transforms": [
+ {
+ "expression": "try(\r\n\tif(jsonGet({value}, \"Estop_Active\") \u0026\u0026 {[default]Gateway/ToggleTag},\r\n\t\t\"#F00\",\t\t// Estop\r\n\t\tif(jsonGet({value}, \"bStarted\"),\r\n\t\t\t\"#0F0\",\t// Running\r\n\t\t\t\"#AAA\"\t// Stopped\r\n\t\t)\r\n\t),\r\n\t\"#808080\" // Unknown\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": 1
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tself.parent.openWindow()"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Text"
+ },
+ "position": {
+ "height": "calc(100% - 10px)",
+ "width": "calc(100% - 10px)",
+ "x": 5,
+ "y": 5
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.LabelFull"
+ },
+ "transforms": [
+ {
+ "expression": "if({view.params.label} \u003d None || {view.params.label} \u003d \"\",\r\n\t{value},\r\n\t{view.params.label}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#FFF",
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": 1,
+ "fontFamily": "var(--font-NotoSans)",
+ "fontSize": "12px",
+ "fontWeight": "bold",
+ "paddingLeft": "5px",
+ "textTransform": "uppercase",
+ "user-select": "none"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tself.parent.openWindow()"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "TooltipOverlay"
+ },
+ "position": {
+ "height": "100%",
+ "width": "100%"
+ },
+ "propConfig": {
+ "props.status.tooltip": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "expression": "//\"System\u003cbr\u003eStatus: \"+if({view.custom.hasControls}, if({view.custom.isRunning}, \"Running\", \"Stopped\"), \"Unknown\")\r\njsonGet({value}, \"tooltip\")",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "status": {}
+ },
+ "type": "dex.display.tooltipoverlay"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\ttagPaths \u003d self.view.params.tagPaths\n\tif len(tagPaths) \u003e 0:\n\t\ttags \u003d [tagPath + \"/SetStart\" for tagPath in tagPaths]\n\t\tvalues \u003d [1]*len(tagPaths)\n\t\tsystem.tag.writeAsync(tags, values)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Start"
+ },
+ "position": {
+ "height": 25,
+ "width": 25,
+ "x": "calc(100% - 60px)",
+ "y": "calc(50% - 12.5px)"
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "path": "view.custom.hasControls"
+ },
+ "type": "property"
+ }
+ },
+ "props.textStyle.color": {
+ "binding": {
+ "config": {
+ "path": "view.custom.isRunning"
+ },
+ "transforms": [
+ {
+ "expression": "if(isGood({value}), {value}, \"\")",
+ "type": "expression"
+ },
+ {
+ "fallback": "#888888",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "#32CD32"
+ }
+ ],
+ "outputType": "color",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "â–º",
+ "textStyle": {
+ "fontFamily": "Arial",
+ "fontSize": "14px"
+ }
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\ttagPaths \u003d self.view.params.tagPaths\n\tif len(tagPaths) \u003e 0:\n\t\ttags \u003d [tagPath + \"/SetStop\" for tagPath in tagPaths]\n\t\tvalues \u003d [1]*len(tagPaths)\n\t\tsystem.tag.writeAsync(tags, values)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Stop"
+ },
+ "position": {
+ "height": 25,
+ "width": 25,
+ "x": "calc(100% - 32.5px)",
+ "y": "calc(50% - 12.5px)"
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "path": "view.custom.hasControls"
+ },
+ "type": "property"
+ }
+ },
+ "props.textStyle.color": {
+ "binding": {
+ "config": {
+ "path": "view.custom.isRunning"
+ },
+ "transforms": [
+ {
+ "expression": "if(isGood({value}), {value}, \"\")",
+ "type": "expression"
+ },
+ {
+ "fallback": "#888888",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": false,
+ "output": "#FF0000"
+ }
+ ],
+ "outputType": "color",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "â– ",
+ "textStyle": {
+ "fontFamily": "monospace",
+ "fontSize": "14px"
+ }
+ },
+ "type": "ia.input.button"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "cursor": "pointer"
+ }
+ },
+ "scripts": {
+ "customMethods": [
+ {
+ "name": "openWindow",
+ "params": [],
+ "script": "\tview \u003d self.view.params.view\n\tif view in [\"\", None]:\n\t\tview \u003d \"Windows/Graphics/\"+self.getChild(\"Text\").props.text.replace(\" \", \"_\")\n\t# Open window:\n\twindow \u003d \"Windows/GraphicsWrapper\"\n\tparams \u003d {\"view\": view}\n\tsystem.perspective.navigate(\"/\")\n\tsystem.perspective.navigate(view\u003dwindow, params\u003dparams)"
+ }
+ ],
+ "extensionFunctions": null,
+ "messageHandlers": []
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/d2e3aa36d1ba6b72820b4713b2caf7b05861e0bfdd21a6b7aeeee1d74c308965 b/.resources/d2e3aa36d1ba6b72820b4713b2caf7b05861e0bfdd21a6b7aeeee1d74c308965
new file mode 100644
index 00000000..497a3612
--- /dev/null
+++ b/.resources/d2e3aa36d1ba6b72820b4713b2caf7b05861e0bfdd21a6b7aeeee1d74c308965
@@ -0,0 +1,1001 @@
+{
+ "custom": {},
+ "params": {},
+ "props": {
+ "defaultSize": {
+ "height": 60,
+ "width": 1600
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "events": {
+ "component": {
+ "onDexClick": {
+ "config": {
+ "script": "\twindow \u003d \"Popups/DeviceWrapper\"\n\tparams \u003d {\n\t\t\"deviceType\": event.type.split(\".\")[-1],\n\t\t\"props\": event.props,\n\t\t\"meta\": event.meta,\n\t\t\"custom\": event.custom\n\t}\n\t# Change device type if available:\n\ttry:\n\t\ttagPath \u003d \"[default]\"+params[\"props\"].status.tagPath+\"/Parameters.DeviceType\"\n\t\tvalue \u003d system.tag.readBlocking([tagPath])[0]\n\t\tif value.quality.isGood():\n\t\t\tparams[\"deviceType\"] \u003d value.value\n\texcept:\n\t\tpass\n\t# Open window, if one is specified:\n\tid \u003d event.props.status.tagPath\n\ttitle \u003d utils.extractName(event.props.status)\n\tif self.session.custom.isMobile:\n\t\tsystem.perspective.navigate(view\u003dwindow, params\u003dparams)\n\telse:\n\t\tsystem.perspective.openPopup(id, window, params, title, resizable\u003dTrue)"
+ },
+ "scope": "G",
+ "type": "script"
+ },
+ "onDexComponentClick": {
+ "config": {
+ "script": "\tparams \u003d {\n\t\t\"type\": event.type,\n\t\t\"props\": event.props,\n\t\t\"meta\": event.meta,\n\t\t\"custom\": event.custom\n\t}\n\tsystem.perspective.openPopup(event.meta.name, \"Windows/Popup/Conveyor\", params)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "DexManager"
+ },
+ "position": {
+ "height": 10,
+ "width": 10
+ },
+ "propConfig": {
+ "props.config": {
+ "binding": {
+ "config": {
+ "path": "session.custom.dexmanager.config"
+ },
+ "type": "property"
+ }
+ },
+ "props.highlight": {
+ "binding": {
+ "config": {
+ "path": "session.custom.dexmanager.highlight"
+ },
+ "enabled": false,
+ "type": "property"
+ }
+ },
+ "props.override": {
+ "binding": {
+ "config": {
+ "expression": "if({session.custom.heatmapSettings.enabled},\r\n\t{session.custom.heatmapSettings.data},\r\n\t0\r\n)"
+ },
+ "transforms": [
+ {
+ "code": "\tif value \u003d\u003d 0:\n\t\treturn {}\n\telse:\n\t\tdata \u003d value\n\t\taggregate \u003d {}\n\t\taggregate_conv \u003d {}\n\t\tmaxCount \u003d 0\n\t\t# Perform aggregates:\n\t\tfor r in range(data.getRowCount()):\n\t\t\tdevice \u003d data.getValueAt(r, \"device\")\n\t\t\tcount \u003d data.getValueAt(r, \"count\")\n\t\t\t# Add count to device:\n\t\t\taggregate[device] \u003d aggregate[device] + count if device in aggregate else count\n\t\t\t# Check if new max:\n\t\t\tmaxCount \u003d aggregate[device] if aggregate[device] \u003e maxCount else maxCount\n\t\t\t# Retrieve conveyor name:\n\t\t\tconv \u003d device.split(\".\")[0]\n\t\t\t# Add count to conveyor:\n\t\t\taggregate_conv[conv] \u003d aggregate_conv[conv] + count if conv in aggregate_conv else count\n\t\t\t# Check if new max:\n\t\t\tmaxCount \u003d aggregate_conv[conv] if aggregate_conv[conv] \u003e maxCount else maxCount\n\t\t# Convert to overrides:\n\t\tresult \u003d {}\n\t\tfor k, v in aggregate.items():\n\t\t\tresult[k] \u003d {\n\t\t\t\t\"tooltip\": k+\"\u003cbr\u003eCount: \"+str(v),\n\t\t\t\t\"color\": \"#FF\"+(format(255 - int(round(255 * v / maxCount)), \u0027x\u0027).zfill(2)*2)\n\t\t\t}\n\t\tfor k, v in aggregate_conv.items():\n\t\t\tresult[\"conveyor_\"+k] \u003d {\n\t\t\t\t\"tooltip\": k+\"\u003cbr\u003eCount: \"+str(v),\n\t\t\t\t\"color\": \"#FF\"+(format(255 - int(round(255 * v / maxCount)), \u0027x\u0027).zfill(2)*2)\n\t\t\t}\n\t\treturn result",
+ "type": "script"
+ }
+ ],
+ "type": "expr"
+ }
+ },
+ "props.overrideAll.config.enableHighlight": {
+ "binding": {
+ "config": {
+ "path": "session.custom.heatmapSettings.enabled"
+ },
+ "enabled": false,
+ "transforms": [
+ {
+ "fallback": null,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": false
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "props.overrideAll.config.isClickable": {
+ "binding": {
+ "config": {
+ "path": "session.custom.heatmapSettings.enabled"
+ },
+ "transforms": [
+ {
+ "fallback": null,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": false
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "props.overrideAll.status.color": {
+ "binding": {
+ "config": {
+ "path": "session.custom.heatmapSettings.enabled"
+ },
+ "transforms": [
+ {
+ "fallback": null,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "#FFF"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "props.overrideAll.status.tooltip": {
+ "binding": {
+ "config": {
+ "path": "session.custom.heatmapSettings.enabled"
+ },
+ "transforms": [
+ {
+ "fallback": null,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": ""
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "props.show": {
+ "binding": {
+ "config": {
+ "struct": {
+ "heatmapDevices": "{session.custom.heatmapSettings.devices}",
+ "heatmapEnabled": "{session.custom.heatmapSettings.enabled}",
+ "show": "{session.custom.dexmanager.show}"
+ },
+ "waitOnAll": true
+ },
+ "transforms": [
+ {
+ "code": "\tif value.heatmapEnabled:\n\t\tdevices \u003d [v.value for v in value.heatmapDevices]\n\t\treturn {\n\t\t\t\"Beacons\": \"Beacons\" in devices,\n\t\t\t\"ConveyorLabels\": True,\n\t\t\t\"ConveyorPatterns\": False,\n\t\t\t\"Conveyors\": True,\n\t\t\t\"DivertPaddles\": True,\n\t\t\t\"EIPs\": \"EIPs\" in devices,\n\t\t\t\"Encoders\": \"Encoders\" in devices,\n\t\t\t\"Estops\": \"Estops\" in devices,\n\t\t\t\"Gaylords\": True,\n\t\t\t\"LimitSwitches\": \"LimitSwitches\" in devices,\n\t\t\t\"MCPs\": \"MCPs\" in devices,\n\t\t\t\"PhotoEyes\": \"PhotoEyes\" in devices,\n\t\t\t\"PushButtons\": \"PushButtons\" in devices,\n\t\t\t\"Scanners\": \"Scanners\" in devices,\n\t\t\t\"VFDs\": \"VFDs\" in devices\n\t\t}\n\telse:\n\t\treturn value.show#{k: v.value for k, v in value.show.iteritems()}",
+ "type": "script"
+ }
+ ],
+ "type": "expr-struct"
+ }
+ }
+ },
+ "props": {
+ "overrideAll": {
+ "config": {
+ "enableHighlight": null
+ },
+ "status": {}
+ }
+ },
+ "type": "dex.controller.manager"
+ },
+ {
+ "meta": {
+ "name": "Label_Date"
+ },
+ "position": {
+ "height": 28,
+ "width": 90
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]Gateway/Date"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderBottomColor": "#000",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "1px",
+ "classes": "Docked/StatusText"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_Time"
+ },
+ "position": {
+ "height": 28,
+ "width": 90,
+ "y": 28
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]Gateway/Time"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderTopColor": "#000",
+ "borderTopStyle": "solid",
+ "borderTopWidth": "1px",
+ "classes": "Docked/StatusText"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_Site"
+ },
+ "position": {
+ "height": 56,
+ "width": 90,
+ "x": 88
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "expression": "{[default]Gateway/Parameters.Customer}"
+ },
+ "transforms": [
+ {
+ "code": "\treturn system.project.getProjectName() + \" \" + value",
+ "type": "script"
+ }
+ ],
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "classes": "Docked/StatusText"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_IPAddr"
+ },
+ "position": {
+ "height": 28,
+ "width": 120,
+ "x": 176
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "path": "session.props.host"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderBottomColor": "#000",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "1px",
+ "classes": "Docked/StatusText"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tif self.session.props.auth.user.userName is not None:\n\t\t#system.perspective.print(\"Logout\")\n\t\tsystem.perspective.logout()\n\telse:\n\t\t#system.perspective.print(\"Login\")\n\t\tsystem.perspective.login()"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Label_User"
+ },
+ "position": {
+ "height": 28,
+ "width": 120,
+ "x": 176,
+ "y": 28
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "expression": "coalesce({session.props.auth.user.userName}, \"LOGIN\")"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderTopColor": "#000",
+ "borderTopStyle": "solid",
+ "borderTopWidth": "1px",
+ "classes": "Docked/StatusText",
+ "cursor": "pointer"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "page": "/help"
+ },
+ "scope": "C",
+ "type": "nav"
+ }
+ }
+ },
+ "meta": {
+ "name": "Nav_Legend"
+ },
+ "position": {
+ "height": 52,
+ "width": 100,
+ "x": 988,
+ "y": 2
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Help"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": [
+ {
+ "config": {
+ "page": "/"
+ },
+ "scope": "C",
+ "type": "nav"
+ },
+ {
+ "config": {
+ "params": {
+ "view": "Windows/Graphics/Overview"
+ },
+ "view": "Windows/GraphicsWrapper"
+ },
+ "scope": "C",
+ "type": "nav"
+ }
+ ]
+ }
+ },
+ "meta": {
+ "name": "Nav_Overview"
+ },
+ "position": {
+ "height": 52,
+ "width": 100,
+ "x": 356,
+ "y": 2
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Overview"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "action": "Toggle",
+ "type": "Page"
+ },
+ "scope": "C",
+ "type": "fullscreen"
+ }
+ }
+ },
+ "meta": {
+ "name": "Nav_ToggleFull"
+ },
+ "position": {
+ "height": 52,
+ "width": 100,
+ "x": 1090,
+ "y": 2
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Fullscreen"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "Label_Status"
+ },
+ "position": {
+ "height": 56,
+ "width": 60,
+ "x": 294
+ },
+ "props": {
+ "style": {
+ "classes": "Docked/StatusText"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Status"
+ },
+ "position": {
+ "height": 40,
+ "width": 40,
+ "x": 304,
+ "y": 8
+ },
+ "propConfig": {
+ "props.elements[0].fill.paint": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]Gateway/CommStatusColor"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "elements": [
+ {
+ "cx": 20,
+ "cy": 20,
+ "fill": {},
+ "r": 19,
+ "stroke": {
+ "paint": "#000",
+ "width": 2
+ },
+ "style": {},
+ "type": "circle"
+ }
+ ],
+ "preserveAspectRatio": "none",
+ "viewBox": "0 0 40 40"
+ },
+ "type": "ia.shapes.svg"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "page": "/alarms/active"
+ },
+ "scope": "C",
+ "type": "nav"
+ }
+ }
+ },
+ "meta": {
+ "name": "Nav_ActiveAlarms"
+ },
+ "position": {
+ "height": 52,
+ "width": 100,
+ "x": 458,
+ "y": 2
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Active Alarms"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "page": "/alarms/hitlist"
+ },
+ "scope": "C",
+ "type": "nav"
+ }
+ }
+ },
+ "meta": {
+ "name": "Nav_HitList"
+ },
+ "position": {
+ "height": 25,
+ "width": 100,
+ "x": 560,
+ "y": 2
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Hit List"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "page": "/alarms/history"
+ },
+ "scope": "C",
+ "type": "nav"
+ }
+ }
+ },
+ "meta": {
+ "name": "Nav_History"
+ },
+ "position": {
+ "height": 25,
+ "width": 100,
+ "x": 560,
+ "y": 29
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "History"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "page": "/statistics"
+ },
+ "scope": "C",
+ "type": "nav"
+ }
+ }
+ },
+ "meta": {
+ "name": "Nav_Statistics"
+ },
+ "position": {
+ "height": 52,
+ "width": 100,
+ "x": 662,
+ "y": 2
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Statistics"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "page": "/status"
+ },
+ "scope": "C",
+ "type": "nav"
+ }
+ }
+ },
+ "meta": {
+ "name": "Nav_Status"
+ },
+ "position": {
+ "height": 52,
+ "width": 100,
+ "x": 764,
+ "y": 2
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Status"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "TooltipOverlay"
+ },
+ "position": {
+ "height": 40,
+ "width": 40,
+ "x": 304,
+ "y": 8
+ },
+ "propConfig": {
+ "props.status.tooltip": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]Gateway/CommStatusTooltip"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "status": {}
+ },
+ "type": "dex.display.tooltipoverlay"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "page": "/custom-reports"
+ },
+ "scope": "C",
+ "type": "nav"
+ }
+ }
+ },
+ "meta": {
+ "name": "Nav_CustomReports"
+ },
+ "position": {
+ "height": 52,
+ "width": 100,
+ "x": 1192,
+ "y": 2
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Custom Reports"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "page": "/config"
+ },
+ "scope": "C",
+ "type": "nav"
+ }
+ }
+ },
+ "meta": {
+ "name": "Nav_Config"
+ },
+ "position": {
+ "height": 52,
+ "width": 100,
+ "x": 1294,
+ "y": 2
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "path": "session.props.auth.user.roles"
+ },
+ "transforms": [
+ {
+ "code": "\troles \u003d [\"Administrator\", \"Developer\", \"Supervisor\", \"Maintenance\"]\n\treturn value !\u003d None and len(value) \u003e 0 and len([i for i in value if i in roles]) \u003e 0",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Config",
+ "visible": true
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\twindow\u003d\"Popups/Heatmap/Config\"\n\tif self.session.custom.isMobile:\n\t\tsystem.perspective.navigate(view\u003dwindow)\n\telse:\n\t\tsystem.perspective.openPopup(\"HeatmapSettings\", window, title\u003d\"Heatmap Configuration\", modal\u003dTrue, overlayDismiss\u003dTrue)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Nav_AlarmHeatmap"
+ },
+ "position": {
+ "height": 52,
+ "width": 100,
+ "x": 1498,
+ "y": 2
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "session.props.auth.user.roles"
+ },
+ "transforms": [
+ {
+ "code": "\troles \u003d [\"Administrator\", \"Developer\"]\n\treturn value !\u003d None and len(value) \u003e 0 and len([i for i in value if i in roles]) \u003e 0",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "expression": "!{session.custom.heatmapSettings.enabled}"
+ },
+ "type": "expr"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Alarm Heatmap",
+ "visible": true
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "LabelHeatMap",
+ "visible": false
+ },
+ "position": {
+ "height": 56,
+ "width": 732,
+ "x": 458
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "session.custom.heatmapSettings.enabled"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "props.style.backgroundColor": {
+ "binding": {
+ "config": {
+ "expression": "if({session.custom.heatmapSettings.enabled},\r\n\tif({[default]Gateway/ToggleTag},\r\n\t\t\"#FF0\",\r\n\t\t\"#F00\"\r\n\t),\r\n\t\"#AAA\"\r\n)"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderBottomStyle": "none",
+ "borderBottomWidth": 2,
+ "borderLeftStyle": "solid",
+ "borderLeftWidth": 2,
+ "borderRightStyle": "solid",
+ "borderRightWidth": 2,
+ "borderTopStyle": "none",
+ "borderTopWidth": 2,
+ "fontWeight": "bold",
+ "lineHeight": "16px",
+ "textAlign": "center",
+ "textTransform": "uppercase"
+ },
+ "text": "Heatmap Mode Active"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "LabelFireAlarm",
+ "visible": false
+ },
+ "position": {
+ "height": 56,
+ "width": 178
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]Gateway/FireAlarm"
+ },
+ "type": "tag"
+ },
+ "persistent": true
+ },
+ "props.style.backgroundColor": {
+ "binding": {
+ "config": {
+ "expression": "if({[default]Gateway/FireAlarm},\r\n\tif({[default]Gateway/ToggleTag},\r\n\t\t\"#FF0\",\r\n\t\t\"#F00\"\r\n\t),\r\n\t\"#AAA\"\r\n)"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderBottomStyle": "none",
+ "borderBottomWidth": 2,
+ "borderLeftStyle": "solid",
+ "borderLeftWidth": 2,
+ "borderRightStyle": "solid",
+ "borderRightWidth": 2,
+ "borderTopStyle": "none",
+ "borderTopWidth": 2,
+ "fontWeight": "bold",
+ "lineHeight": "16px",
+ "textAlign": "center",
+ "textTransform": "uppercase"
+ },
+ "text": "Building Fire Alarm"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "page": "/commission"
+ },
+ "scope": "C",
+ "type": "nav"
+ }
+ }
+ },
+ "meta": {
+ "name": "Nav_Commission"
+ },
+ "position": {
+ "height": 52,
+ "width": 100,
+ "x": 1396,
+ "y": 2
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "path": "session.props.auth.user.roles"
+ },
+ "transforms": [
+ {
+ "code": "\troles \u003d [\"Administrator\", \"Developer\", \"Supervisor\", \"Maintenance\"]\n\treturn value !\u003d None and len(value) \u003e 0 and len([i for i in value if i in roles]) \u003e 0",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Commission",
+ "visible": true
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "page": "/cameras"
+ },
+ "scope": "C",
+ "type": "nav"
+ }
+ }
+ },
+ "meta": {
+ "name": "Nav_JamCameras"
+ },
+ "position": {
+ "height": 52,
+ "width": 100,
+ "x": 866,
+ "y": 2
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Jam Cameras"
+ },
+ "type": "ia.input.button"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "background": "#AAA",
+ "border-bottom": "2px solid #000",
+ "border-top": "2px solid #000"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/d30f506ea841278c9262ac93c281dc6306de58ca77fc5f2970cc6a9037fd2c28 b/.resources/d30f506ea841278c9262ac93c281dc6306de58ca77fc5f2970cc6a9037fd2c28
new file mode 100644
index 00000000..e5b93432
--- /dev/null
+++ b/.resources/d30f506ea841278c9262ac93c281dc6306de58ca77fc5f2970cc6a9037fd2c28
@@ -0,0 +1,13 @@
+{
+ "base": {
+ "animation": {
+ "duration": "1s",
+ "keyframes": {
+ "0%": {
+ "backgroundColor": "#00CC00"
+ },
+ "100%": {}
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/d3bc2c48f8b4977f4af45af6fb251d24446d01d9b9dcc202770a38fce731642c b/.resources/d3bc2c48f8b4977f4af45af6fb251d24446d01d9b9dcc202770a38fce731642c
new file mode 100644
index 00000000..e8c78e85
--- /dev/null
+++ b/.resources/d3bc2c48f8b4977f4af45af6fb251d24446d01d9b9dcc202770a38fce731642c
@@ -0,0 +1,1092 @@
+{
+ "custom": {},
+ "params": {
+ "titleExtra": "0 rows",
+ "usesTimewidget": true
+ },
+ "propConfig": {
+ "params.titleExtra": {
+ "paramDirection": "output",
+ "persistent": true
+ },
+ "params.usesTimewidget": {
+ "binding": {
+ "config": {
+ "expression": "true"
+ },
+ "type": "expr"
+ },
+ "paramDirection": "output",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 324,
+ "width": 1600
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "RobinLaneStatus"
+ },
+ "position": {
+ "height": "100%",
+ "width": "100%"
+ },
+ "propConfig": {
+ "props.data": {
+ "binding": {
+ "config": {
+ "parameters": {
+ "endDate": "{session.custom.timewidget.endDate}",
+ "startDate": "{session.custom.timewidget.startDate}",
+ "where": "\"lane LIKE \\\"RS%CH\\\"\""
+ },
+ "queryPath": "Status/LaneStatus"
+ },
+ "transforms": [
+ {
+ "code": "\tcou \u003d utils.getRowCount(value)\n\tast \u003d \"*\" if cou \u003e\u003d 2000 else \"\"\n\tself.view.params.titleExtra \u003d \"{:n}{} rows\".format(cou, ast)\n\t# Return data\n\treturn value",
+ "type": "script"
+ }
+ ],
+ "type": "query"
+ }
+ }
+ },
+ "props": {
+ "cells": {
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "1px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "1px",
+ "color": "#000",
+ "fontFamily": "Helvetica",
+ "fontSize": "14px"
+ }
+ },
+ "columns": [
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "start_timestamp",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Start Timestamp"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 150
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "end_timestamp",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "End Timestamp"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": "value"
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 150
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "sorter",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Sorter"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": false,
+ "width": 80
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "lane",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Lane"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 110
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "available_count",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Available (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 110
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "disabled_count",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Disabled (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 110
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "full_count",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Full (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 100
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "full_warn_count",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "50% Full (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 110
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "jam_count",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Jam (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 100
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "faulted_count",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Faulted (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 100
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "available_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Available Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "disabled_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Disabled Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "full_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Full Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "full_warn_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "50% Full Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "jam_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Jam Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "faulted_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Faulted Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ }
+ ],
+ "filter": {
+ "enabled": true
+ },
+ "pager": {
+ "bottom": false
+ },
+ "rows": {
+ "highlight": {
+ "enabled": false
+ },
+ "striped": {
+ "enabled": false
+ },
+ "style": {
+ "classes": "table/highlight"
+ }
+ },
+ "style": {
+ "fontFamily": "Helvetica",
+ "fontSize": "14px",
+ "fontWeight": "bold"
+ }
+ },
+ "scripts": {
+ "customMethods": [],
+ "extensionFunctions": null,
+ "messageHandlers": [
+ {
+ "messageType": "export-data",
+ "pageScope": true,
+ "script": "\tutils.downloadCSV(self, \"Robin Lane Status\")",
+ "sessionScope": false,
+ "viewScope": false
+ }
+ ]
+ },
+ "type": "ia.display.table"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/d3f447c13f858ee593d553f107c2454d3e96ce668900381aa1d6a19dd9d59936 b/.resources/d3f447c13f858ee593d553f107c2454d3e96ce668900381aa1d6a19dd9d59936
new file mode 100644
index 00000000..1d9eb861
--- /dev/null
+++ b/.resources/d3f447c13f858ee593d553f107c2454d3e96ce668900381aa1d6a19dd9d59936
@@ -0,0 +1,112 @@
+import re
+import system
+
+reDefault = re.compile(r'\[[^[]+\]')
+
+def _extractParameter(params, parameter, path):
+ val = params[parameter].value
+ if hasattr(val, "bindType"):
+ return system.tag.readBlocking([path+"/Parameters."+parameter])[0].value
+ else:
+ return val
+
+def _isGroupedUDT(obj):
+ for tag in obj["tags"]:
+ if tag["name"] in ["Graphics", "StatusText"]:
+ return False
+ return True
+
+def getSiblingDevices(tagPath, filterType=None, filterTagPath=True):
+ devices = []
+
+ def extractStatusText(obj, path):
+ # Scan for status text tag:
+ for tag in obj["tags"]:
+ if tag["name"] == "StatusText":
+ return "[ignition]" + reDefault.sub("", path) + "/StatusText"
+ # Couldn't find it, so return None:
+ return None
+
+ def scan(obj, parentPath):
+ if isinstance(obj, list):
+ for tag in obj:
+ scan(tag, parentPath)
+ else:
+ path = parentPath + "/" + obj["name"]
+ if str(obj["tagType"]) == "Folder" or (str(obj["tagType"]) == "UdtInstance" and (tagPath <> path or not filterTagPath) and _isGroupedUDT(obj)):
+ for tag in obj["tags"]:
+ scan(tag, path)
+ elif str(obj["tagType"]) == "UdtInstance" and (tagPath <> path or not filterTagPath):
+ params = obj["parameters"]
+ # Make sure this is a renderable device:
+ if "DeviceType" in params:
+ deviceType = _extractParameter(params, "DeviceType", path)
+ if filterType == None or deviceType in filterType:
+ labelFull = _extractParameter(params, "LabelFull", path)
+ devices.append({
+ "deviceType": deviceType,
+ "tagPath": path,
+ "device": labelFull,#"[ignition]" + reDefault.sub("", path) + "/Parameters.LabelFull",
+ "status": extractStatusText(obj, path)
+ })
+
+ # Scan devices:
+ if tagPath not in [None, ""]:
+ tagPath = reDefault.sub("", tagPath) # Remove [default] from tagpath
+ parentPath = "/".join(tagPath.split("/")[:-1])
+ config = system.tag.getConfiguration(parentPath, True)
+ #system.perspective.print(parentPath)
+ #system.perspective.print(config)
+ if len(config) > 0 and "tags" in config[0]:
+ scan(config[0]["tags"], parentPath)
+ devices.sort(key=lambda x: x["device"])
+
+ return devices
+
+def _isTagOPC(path):
+ try:
+ return system.tag.readBlocking([path+".ValueSource"])[0].value == "opc"
+ except:
+ return False
+
+def _isTagEnabled(path):
+ try:
+ return system.tag.readBlocking([path+".Enabled"])[0].value
+ except:
+ return False
+
+def getOPCTags(tagPath):
+ tags = []
+
+ def scan(obj, parentPath, relPath=""):
+ if isinstance(obj, list):
+ for tag in obj:
+ scan(tag, parentPath, relPath)
+ elif "name" in obj:
+ path = parentPath + "/" + obj["name"]
+ if "tags" in obj:
+ # Scan deeper:
+ relPath = relPath + obj["name"] + "/"
+ for tag in obj["tags"]:
+ scan(tag, path, relPath)
+ else:
+ if _isTagEnabled(path) and _isTagOPC(path):#and obj["name"] not in ["Graphics"]:
+ # Found an OPC tag:
+ tags.append({
+ "tagName": relPath + obj["name"],
+ "tagType": "opc",
+ "tagPath": "[ignition]" + path + ".OpcItemPath",
+ "tagValue": "[ignition]" + path,
+ "tagTooltip": "[ignition]" + path + ".Tooltip",
+ "tagDocumentation": "[ignition]" + path + ".Documentation"
+ })
+
+ # Scan devices:
+ if tagPath not in [None, ""]:
+ tagPath = reDefault.sub("", tagPath) # Remove [default] from tagpath
+ config = system.tag.getConfiguration(tagPath, True)
+ if len(config) > 0 and "tags" in config[0]:
+ scan(config[0]["tags"], tagPath)
+ tags.sort(key=lambda x: x["tagName"])
+
+ return tags
\ No newline at end of file
diff --git a/.resources/d6d5e1b875627a31ba89016e0e8ad3d0178879649b0a70b6a2cdc5875bed0f9b b/.resources/d6d5e1b875627a31ba89016e0e8ad3d0178879649b0a70b6a2cdc5875bed0f9b
new file mode 100644
index 00000000..40a10ef1
--- /dev/null
+++ b/.resources/d6d5e1b875627a31ba89016e0e8ad3d0178879649b0a70b6a2cdc5875bed0f9b
@@ -0,0 +1,297 @@
+{
+ "custom": {},
+ "params": {
+ "meta": {
+ "name": "BCN1_BLU"
+ },
+ "props": {
+ "config": {
+ "enableHighlight": true,
+ "isClickable": false
+ },
+ "status": {
+ "color": "#AAA",
+ "showAlways": true,
+ "showLabel": "B",
+ "tagPath": "",
+ "tooltip": ""
+ }
+ }
+ },
+ "propConfig": {
+ "params.meta": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.meta.name": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 105,
+ "width": 500
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "BCN1_BLU"
+ },
+ "position": {
+ "height": 48,
+ "width": 48,
+ "x": 76,
+ "y": 11
+ },
+ "propConfig": {
+ "meta.name": {
+ "binding": {
+ "config": {
+ "path": "view.params.meta.name"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "expression": "try(\r\n\tjsonSet({value}, \"showAlways\", true),\r\n\t{view.params.props.status}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "lbStatus"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 40
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "code": "\treturn utils.extractStatus(value)",
+ "type": "script"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbName"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 5
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.LabelFull"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \u0027\u0027)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_1"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 5
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Name: "
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_11"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 40
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Status:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_12"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 75
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Panel:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbStatus_0"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 75
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.OPC_Server"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \"Unknown\")",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "background-color": "#CFCFCF"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/d7708674a0c68b2602557b8792d5b1cce48ee495b3a66292b3625e8132a46730 b/.resources/d7708674a0c68b2602557b8792d5b1cce48ee495b3a66292b3625e8132a46730
new file mode 100644
index 00000000..0abcff0a
--- /dev/null
+++ b/.resources/d7708674a0c68b2602557b8792d5b1cce48ee495b3a66292b3625e8132a46730
@@ -0,0 +1,16 @@
+DEVICE_WINDOW = "Popups/DeviceWrapper"
+
+def openDevice(params, title, isMobile=False):
+ params["tabs"] = ["Status"]
+ # Add alarm history tab:
+ if params["deviceType"] not in ["beacon"]:
+ params["tabs"].append("Alarm History")
+ # Add devices tab:
+ if params["deviceType"] in ["conveyor", "conveyorcurve", "gaylord", "mcp"]:
+ params["tabs"].append("Devices")
+ # Open window, if one is specified:
+ id = params["props"]["status"]["tagPath"]
+ if isMobile:
+ system.perspective.navigate(view=DEVICE_WINDOW, params=params)
+ else:
+ system.perspective.openPopup(id, DEVICE_WINDOW, params, title, resizable=True)
\ No newline at end of file
diff --git a/.resources/d7f9d5faaeddecd6dd07a892910f4a4528cb612933d38d5668eaf88620b6de3e b/.resources/d7f9d5faaeddecd6dd07a892910f4a4528cb612933d38d5668eaf88620b6de3e
new file mode 100644
index 00000000..621a5925
--- /dev/null
+++ b/.resources/d7f9d5faaeddecd6dd07a892910f4a4528cb612933d38d5668eaf88620b6de3e
@@ -0,0 +1,403 @@
+{
+ "custom": {},
+ "params": {
+ "deviceType": "beacon",
+ "meta": {
+ "name": ""
+ },
+ "props": {
+ "config": {
+ "alwaysShowAll": true,
+ "enableHighlight": true,
+ "isClickable": false,
+ "isRightOfSorter": false,
+ "mirror": false,
+ "originSide": "left",
+ "paddleThickness": 10,
+ "showLabel": true,
+ "type": "belt"
+ },
+ "status": {
+ "color": "#aaa",
+ "isExtended": true,
+ "isManual": false,
+ "isRetracted": false,
+ "showAlways": true,
+ "showLabel": "B",
+ "tagPath": "",
+ "tooltip": ""
+ }
+ },
+ "tabs": [
+ "Status",
+ "Alarm History",
+ "Devices",
+ "Controls"
+ ]
+ },
+ "propConfig": {
+ "params.deviceType": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.meta": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.meta.name": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.config": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.config.alwaysShowAll": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.config.isRightOfSorter": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.config.mirror": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.config.originSide": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.config.paddleThickness": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.config.showLabel": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.config.type": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.status": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.status.background": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.status.isExtended": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.status.isFaulted": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.status.isManual": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.status.isRetracted": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.status.showLabel": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.status.tooltip": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.tabs": {
+ "paramDirection": "inout",
+ "persistent": true
+ },
+ "params.tabs[0]": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.tabs[1]": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.tabs[2]": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.tabs[3]": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 569
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Label_0"
+ },
+ "position": {
+ "height": 35,
+ "width": "100%"
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "path": "view.params.deviceType"
+ },
+ "transforms": [
+ {
+ "code": "\t# Handle special cases\n\tif(value \u003d\u003d \"eip\"):\n\t\tvalue \u003d \"Ethernet IP (EIP)\"\n\telif(value \u003d\u003d \"mcp\"):\n\t\tvalue \u003d \"Main Control Panel (MCP)\"\n\telif(value \u003d\u003d \"divertpaddle\"):\n\t\tvalue \u003d \"Divert Paddle\"\n\telif(value \u003d\u003d \"limitswitch\"):\n\t\tvalue \u003d \"Limit Switch\"\n\telif(value \u003d\u003d \"photoeye\"):\n\t\tvalue \u003d \"Photo Eye\"\n\telif(value \u003d\u003d \"pushbutton\"):\n\t\tvalue \u003d \"Push Button\"\n\telif(value.startswith(\"vfd\")):\n\t\tvalue \u003d \"Variable Frequency Drive (VFD)\"\n\telif(value \u003d\u003d \"chutedestination\"):\n\t\tvalue \u003d \"Chute Destination\"\n\telif(value \u003d\u003d \"hss_chute\"):\n\t\tvalue \u003d \"Chute Destination\"\n\telif(value \u003d\u003d \"spiralchute\"):\n\t\tvalue \u003d \"Spiral Chute\"\n\telif(value \u003d\u003d \"divchute\"):\n\t\tvalue \u003d \"Divert Chute\"\n\telif(value \u003d\u003d \"rrchute\"):\n\t\tvalue \u003d \"Round Robin Chute\"\n\telse:\n\t\t# Do proper caps for anything else\n\t\tvalue \u003d value.title()\n\treturn value",
+ "type": "script"
+ },
+ {
+ "expression": "coalesce({value}, \"Unknown\")",
+ "type": "expression"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#1A4A5E",
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "1px",
+ "color": "#FFF",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "paddingLeft": 5
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "TabContainer"
+ },
+ "position": {
+ "height": "calc(100% - 35px)",
+ "width": "100%",
+ "y": 35
+ },
+ "propConfig": {
+ "custom.key": {
+ "binding": {
+ "config": {
+ "path": "session.props.auth.user.roles"
+ },
+ "transforms": [
+ {
+ "code": "\troles \u003d [\"Administrator\", \"Developer\"]\n\treturn value !\u003d None and len(value) \u003e 0 and len([i for i in value if i in roles]) \u003e 0",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "props.tabs": {
+ "binding": {
+ "config": {
+ "struct": {
+ "deviceType": "{view.params.deviceType}",
+ "roles": "{session.props.auth.user.roles}",
+ "tagPath": "try({view.params.props.status.tagPath}, \"\")"
+ },
+ "waitOnAll": true
+ },
+ "transforms": [
+ {
+ "code": "\tcontrols \u003d [\"spiralchute\", \"divchute\", \"rrchute\", \"chutedestination\", \"hss_chute\"]\n\tdevices \u003d controls + [\"conveyor\", \"conveyorcurve\", \"gaylord\"]#, \"mcp\"]\n\troles \u003d [\"Administrator\", \"Developer\", \"Maintenance\"]\n\t\n\t# Add base tab:\n\ttabs \u003d [\"Status\" if value.deviceType not in controls else \"Controls\"]\n\t# Add alarm history tab:\n\tif value.deviceType not in [\"beacon\"]:\n\t\ttabs.append(\"Alarm History\")\n\t# Add fms:\n\tif value.tagPath not in [None, \"\"]:\n\t\ttag \u003d system.tag.getConfiguration(self.view.params.props.status.tagPath)[0]\n\t\tif \"typeId\" in tag and tag[\"typeId\"].endswith(\"_FMS\"):\n\t\t\ttabs.append(\"Flow Management\")\n\t# Add devices tab:\n\tif value.deviceType in devices:\n\t\ttabs.append(\"Devices\")\n\t# Add tags tab:\n\tif value.deviceType not in controls and value.roles !\u003d None and len([r for r in value.roles if r in roles]) \u003e 0:\n\t\ttabs.append(\"Tags\")\n\t\n\t# Return tabs:\n\treturn tabs",
+ "type": "script"
+ }
+ ],
+ "type": "expr-struct"
+ }
+ }
+ },
+ "props": {
+ "menuStyle": {
+ "backgroundColor": "#225E77"
+ },
+ "tabSize": {
+ "height": 35,
+ "width": 150
+ },
+ "tabStyle": {
+ "active": {
+ "backgroundColor": "#2D7D9F",
+ "color": "#FFF",
+ "fontWeight": "bold"
+ },
+ "inactive": {
+ "backgroundColor": "#389CC7",
+ "color": "#FFF"
+ }
+ }
+ },
+ "type": "ia.container.tab"
+ },
+ {
+ "meta": {
+ "name": "EmbeddedView"
+ },
+ "position": {
+ "height": "calc(100% - 69px)",
+ "width": "100%",
+ "y": 69
+ },
+ "propConfig": {
+ "props.params.deviceType": {
+ "binding": {
+ "config": {
+ "path": "view.params.deviceType"
+ },
+ "type": "property"
+ }
+ },
+ "props.params.meta": {
+ "binding": {
+ "config": {
+ "path": "view.params.meta"
+ },
+ "type": "property"
+ }
+ },
+ "props.params.props": {
+ "binding": {
+ "config": {
+ "path": "view.params.props"
+ },
+ "type": "property"
+ }
+ },
+ "props.path": {
+ "binding": {
+ "config": {
+ "expression": "property(\"../TabContainer.props.tabs[\"+{../TabContainer.props.currentTabIndex}+\"]\")"
+ },
+ "transforms": [
+ {
+ "fallback": "\"Popups/Device/Statuses/\" + {view.params.deviceType}",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": "Status",
+ "output": "\"Popups/Device/Statuses/\" + {view.params.deviceType}"
+ },
+ {
+ "input": "Controls",
+ "output": "\"Popups/Device/Controls/\" + {view.params.deviceType}"
+ },
+ {
+ "input": "Alarm History",
+ "output": "\"Popups/Device/AlarmHistory\""
+ },
+ {
+ "input": "Flow Management",
+ "output": "\"Popups/Device/FlowManagement\""
+ },
+ {
+ "input": "Devices",
+ "output": "\"Popups/Device/Devices\""
+ },
+ {
+ "input": "Tags",
+ "output": "\"Popups/Device/Tags\""
+ }
+ ],
+ "outputType": "expression",
+ "type": "map"
+ }
+ ],
+ "type": "expr"
+ }
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\twindow \u003d \"Windows/GraphicsWrapper\"\n\tplctag \u003d self.view.params.props.status.tagPath.replace(\"[default]\", \"\").split(\"/\")[0]\n\tplctag \u003d \"[\"+plctag+\"]\"\n\tdevice \u003d utils.extractName(self.view.params.props.status)\n\tscreen \u003d alarms.resolveScreen(device, plctag)\n\tparams \u003d {\"view\": screen}\n\tsystem.perspective.navigate(\"/\")\n\tsystem.perspective.navigate(view\u003dwindow, params\u003dparams)\n\tsystem.perspective.closePopup(\"\")"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button_GoTo"
+ },
+ "position": {
+ "height": 25,
+ "width": 80,
+ "x": "calc(100% - 85px)",
+ "y": 5
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Go To"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tsystem.perspective.sendMessage(\"export-data\")"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button_Export"
+ },
+ "position": {
+ "height": 25,
+ "width": 80,
+ "x": "calc(100% - 170px)",
+ "y": 5
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Export"
+ },
+ "type": "ia.input.button"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "classes": "window"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/d8531ce71f5d55eedf1488ea3e729e13cdb543068effa2b4749d76c052213d11 b/.resources/d8531ce71f5d55eedf1488ea3e729e13cdb543068effa2b4749d76c052213d11
new file mode 100644
index 00000000..677242c8
--- /dev/null
+++ b/.resources/d8531ce71f5d55eedf1488ea3e729e13cdb543068effa2b4749d76c052213d11
@@ -0,0 +1,13 @@
+{
+ "base": {
+ "animation": {
+ "duration": "1s",
+ "keyframes": {
+ "0%": {
+ "backgroundColor": "#007DFA"
+ },
+ "100%": {}
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/d86c9c80184cca595b562b99b76703567f16078606e1b83fb72ecdcaaa70e3c6 b/.resources/d86c9c80184cca595b562b99b76703567f16078606e1b83fb72ecdcaaa70e3c6
new file mode 100644
index 00000000..f568c225
--- /dev/null
+++ b/.resources/d86c9c80184cca595b562b99b76703567f16078606e1b83fb72ecdcaaa70e3c6
@@ -0,0 +1,151 @@
+import csv
+import re
+import StringIO
+
+reRemoveZeroes = re.compile(r'([^\d])0+([1-9])')
+reStartingDashes = re.compile(r'^([^_]+)_([^_]+)')
+reChuteDashes = re.compile(r'_CH')
+reExtraDashes = re.compile(r'_(\d+)(?=_)')
+reUnderscores = re.compile(r'_')
+reName = re.compile(r'^(.+?)(
|$)')
+reStatus = re.compile(r'Status: (.+?)(
|$)')
+
+reCount = re.compile(r'Count$')
+rePPH = re.compile(r'Pph$')
+reCPH = re.compile(r'Cph$')
+rePercent = re.compile(r'Percent$')
+
+def prettyName(name, hasDots=True):
+ # Remove zero padding:
+ name = reRemoveZeroes.sub(r"\1\2", name)
+ # Change _ to -:
+ name = reExtraDashes.sub(r"-\1", reChuteDashes.sub("-CH", reStartingDashes.sub(r"\1-\2", name)))
+ # Fix device names:
+ name = reUnderscores.sub("." if hasDots else "-", name)
+ # Return name:
+ return name
+
+def prettyTitle(title):
+ # Convert title:
+ title = title.replace("_", " ").title()
+ title = reCount.sub("(#)", title)
+ title = rePPH.sub("(pph)", title)
+ title = reCPH.sub("(cph)", title)
+ title = rePercent.sub("(%)", title)
+ return title
+
+def extractName(obj):
+ # Return status:
+ try:
+ return reName.search(obj["tooltip"]).group(1)
+ except:
+ return "Unknown"
+
+def extractStatus(obj):
+ # Return status:
+ try:
+ return reStatus.search(obj["tooltip"]).group(1)
+ except:
+ return "Unknown"
+
+def getRowCount(data):
+ if hasattr(data, 'getRowCount'):
+ return data.getRowCount()
+ else:
+ return len(data)
+
+def toCSV(headers, rows):
+ buf = StringIO.StringIO()
+ writer = csv.writer(buf, delimiter=',')
+ writer.writerows([headers] + rows)
+ return buf.getvalue()
+
+def datasetFromJson(json, columns=None):
+ hasStyling = "value" in json[0].keys()
+ fields = json[0]["value"].keys() if hasStyling else json[0].keys()
+ titles = fields
+ if columns <> None:
+ fields = columns[0]
+ titles = columns[1]
+
+ # Extract json data into 2D array:
+ datasetData = []
+ for row in json:
+ rowData = []
+ for field in fields:
+ cell = row["value"][field] if hasStyling else row[field]
+ if hasattr(cell, 'value'):
+ rowData.append(cell.value)
+ else:
+ rowData.append(cell)
+ datasetData.append(rowData)
+
+ return toCSV(titles, datasetData)
+
+def datasetFromDataset(data, columns=None):
+ fields = system.dataset.getColumnHeaders(data)
+ titles = fields
+ if columns <> None:
+ fields = columns[0]
+ titles = columns[1]
+ datasetData = [[data.getValueAt(row, col) for col in fields] for row in range(data.getRowCount())]
+
+ return toCSV(titles, datasetData)
+
+def datasetFromTable(table):
+ data = table.props.data
+ columns = table.props.columns
+ if len(columns) > 0:
+ fields = []
+ titles = []
+ for col in columns:
+ if "visible" not in col or col.visible:
+ fields.append(col.field)
+ if "header" in col and "title" in col.header and col.header.title not in [None,""]:
+ titles.append(col.header.title)
+ else:
+ titles.append(col.field)
+ if hasattr(data, 'getValueAt'):
+ return datasetFromDataset(data, [fields, titles])
+ else:
+ return datasetFromJson(data, [fields, titles])
+ else:
+ return datasetFrom(data)
+
+def datasetFrom(data):
+ t = str(type(data))
+ #system.perspective.print(t)
+ if "$ArrayWrapper" in t:# == "":
+ return datasetFromJson(data)
+ elif "$SafetyWrapper" in t:
+ return datasetFromTable(data)
+ else:
+ return datasetFromDataset(data)
+
+def datasetToJSON(data):
+ fields = system.dataset.getColumnHeaders(data)
+ return [{col:data.getValueAt(row, col) for col in fields} for row in range(data.getRowCount())]
+
+def downloadCSV(data, title):
+ csv = datasetFrom(data)
+ # Generate filename:
+ title = title.lower().replace(" ", "_")
+ datetime = system.date.format(system.date.now(), "yyyyMMdd_HHmmss")
+ filename = title + "_" + datetime + ".csv"
+ # Download:
+ system.perspective.download(filename, csv)
+
+def getScope():
+ """gets the scope that the execution is running in and returns a string indication of which scope
+
+ Returns: a string indicating with scope the function is executing in
+ """
+ from com.inductiveautomation.ignition.common.model import ApplicationScope
+ scope = ApplicationScope.getGlobalScope()
+
+ if ApplicationScope.isGateway(scope):
+ return 'gateway'
+ if ApplicationScope.isClient(scope):
+ return 'client'
+ if ApplicationScope.isDesigner(scope):
+ return 'designer'
diff --git a/.resources/d95848c2a566e004940b840802020dec56c88e9130d3346ef2014556a74f9dd3 b/.resources/d95848c2a566e004940b840802020dec56c88e9130d3346ef2014556a74f9dd3
new file mode 100644
index 00000000..66627cd5
--- /dev/null
+++ b/.resources/d95848c2a566e004940b840802020dec56c88e9130d3346ef2014556a74f9dd3
@@ -0,0 +1,13 @@
+{
+ "base": {
+ "animation": {
+ "duration": "1s",
+ "keyframes": {
+ "0%": {
+ "backgroundColor": "#FF6000"
+ },
+ "100%": {}
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/da58916084ff6d2ba3f6dca3be1445db4edfa75e884d832440cddfbbb7f18c51 b/.resources/da58916084ff6d2ba3f6dca3be1445db4edfa75e884d832440cddfbbb7f18c51
new file mode 100644
index 00000000..9f90ef8b
--- /dev/null
+++ b/.resources/da58916084ff6d2ba3f6dca3be1445db4edfa75e884d832440cddfbbb7f18c51
@@ -0,0 +1,112 @@
+{
+ "custom": {},
+ "params": {
+ "filenames": []
+ },
+ "propConfig": {
+ "params.filenames": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 300,
+ "width": 400
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Markdown"
+ },
+ "position": {
+ "height": "calc(100% - 100px)",
+ "width": "calc(100% - 50px)",
+ "x": 25,
+ "y": 25
+ },
+ "propConfig": {
+ "props.source": {
+ "binding": {
+ "config": {
+ "path": "view.params.filenames"
+ },
+ "transforms": [
+ {
+ "code": "\ttext \u003d \"Are you sure you would like to delete the following documents:\\n\"\n\tfor val in value:\n\t\ttext +\u003d \"\\n* \"+val\n\treturn text",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "type": "ia.display.markdown"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tdocuments.deleteDocuments(self.view.params.filenames)\n\tsystem.perspective.sendMessage(\"custom-documents-refreshlist\", {})\n\tsystem.perspective.closePopup(\"\")"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button_Yes"
+ },
+ "position": {
+ "height": 55,
+ "width": 100,
+ "x": 25,
+ "y": 235
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Yes"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tsystem.perspective.closePopup(\"\")"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button_No"
+ },
+ "position": {
+ "height": 55,
+ "width": 100,
+ "x": "calc(100% - 125px)",
+ "y": 235
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "No"
+ },
+ "type": "ia.input.button"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/dd587d3408d7038ad48dcdf849a25607dcfdf0c14e0823f12aaa957ccf96a22c b/.resources/dd587d3408d7038ad48dcdf849a25607dcfdf0c14e0823f12aaa957ccf96a22c
new file mode 100644
index 00000000..8fd1dd38
--- /dev/null
+++ b/.resources/dd587d3408d7038ad48dcdf849a25607dcfdf0c14e0823f12aaa957ccf96a22c
@@ -0,0 +1,130 @@
+################################################################
+################################################################
+## Version: 1.0 / Author: Dillon Uzar
+##
+## DESC: For use in WCS Sorting Lane Lookup & Recording
+## WARN: Modifying code may cause system to function incorrectly
+################################################################
+################################################################
+
+from __future__ import with_statement
+import csv
+import os
+import random
+import re
+import string
+import system
+import time
+from os import path
+
+#######################################################
+#######################################################
+#######################################################
+#### Constants
+#######################################################
+
+# Logger:
+LOG = system.util.logger("WCS Sorting Handler")
+
+# Defaults for function arguments:
+PROGRAM_PATH = ""
+CARTON_PATH = "WCS_Package"
+DEFAULT_DEVICE = "MCP20"
+DEFAULT_OPC_SERVER = "Ignition OPC UA Server"
+
+# Configuration variables:
+MAX_CARTONS = 100 # Max possible carton IDs
+MAX_BARCODE_SIZE = 82 # Max possible size of full barcode
+
+# For extracting PLC info:
+PACKAGE_DATA = [
+ #["Induct_ID", "induct"], # The induct the package was inducted from
+ #["Scanner_ID", "scanner"], # The scanner the package was scanned from
+ #["Sorter_ID", "sorter"], # The sorter the package was sorted from
+ ["BCR_Img_ID", "bcr_imgid"], # Barcode reader, sequence ID
+ ["BCR_Seq_ID", "bcr_seqid"], # Barcode reader, image ID
+ ["Length", "pkg_length"], # Package length in units of 1/10". Only populated if available, use 0 if not
+ ["Width", "pkg_width"], # Package width in units of 1/10". Only populated if available, use 0 if not
+ ["Height", "pkg_height"], # Package height in units of 1/10". Only populated if available, use 0 if not
+ ["Carriers", "carriers"], # Num of carriers (trays/shoes) on sorter that the package is occupying. Only populated if available, use 0 if not
+ ["Gap_Leading", "gap_leading"], # Leading edge gap distance in units of 1/10". Only populated if available, use 0 if not. If value exceeds INT size, cap it to the max INT value
+ ["Gap_Trailing", "gap_trailing"], # Trailing edge gap distance in units of 1/10". Only populated if available, use 0 if not. If value exceeds INT size, cap it to the max INT value
+ ["S01_Barcode", "s01_barcode"], # The barcode sent in the S01 message
+ ["S02_Req_Dest_ID", "s02_req_dest"], # The requested destination ID sent in the S02 message
+ ["S02_Alt_Dest_ID", "s02_alt_dest"], # The alternate destination ID sent in the S02 message
+ ["S04_PLC_ID", "s04_plc_id"], # Internal PLC number used to track packages and cross reference to the Host ID
+ ["S04_Host_ID", "s04_host_id"], # The PLC record number sent in the S04 message, (1 - 9999)
+ ["S04_Req_Dest_ID", "s04_req_dest"], # The requested destination ID sent in the S04 message
+ ["S04_Act_Dest_ID", "s04_act_dest"], # The actual destination ID sent in the S04 message
+ ["S04_Sort_Code", "s04_sort_code"], # The reason code sent in the S04 message
+ ["Req_Dest_Reason", "req_dest_reason"], # See Destination Reason Bit-Map sheet
+ ["Alt_Dest_Reason", "alt_dest_reason"] # See Destination Reason Bit-Map sheet
+]
+TIMESTAMP_DATA = [
+ ["S01_Timestamp_H", "s01_timestamp"], # The timestamp sent in the S01 message, Upper 32-bits, UTS in microseconds
+ ["S01_Timestamp_L", "s01_timestamp"], # The timestamp sent in the S01 message, Lower 32-bits, UTS in microseconds
+ ["S02_Timestamp_H", "s02_timestamp"], # The timestamp sent in the S02 message, Upper 32-bits, UTS in microseconds
+ ["S02_Timestamp_L", "s02_timestamp"], # The timestamp sent in the S02 message, Lower 32-bits, UTS in microseconds
+ ["S04_Timestamp_H", "s04_timestamp"], # The timestamp sent in the S04 message, Upper 32-bits, UTS in microseconds
+ ["S04_Timestamp_L", "s04_timestamp"] # The timestamp sent in the S04 message, Lower 32-bits, UTS in microseconds
+]
+# Generate array of paths to read:
+PACKAGE_PATHS = [v[0] for v in PACKAGE_DATA]
+TIMESTAMP_PATHS = [v[0] for v in TIMESTAMP_DATA]
+DATA_PATHS = PACKAGE_PATHS + TIMESTAMP_PATHS
+
+# For inserting data into database:
+PACKAGE_COLS = [v[1] for v in PACKAGE_DATA]
+PACKAGE_VALS = ["?"]*len(PACKAGE_COLS)
+TIMESTAMP_COLS = [TIMESTAMP_DATA[i][1] for i in range(len(TIMESTAMP_DATA)) if TIMESTAMP_DATA[i][1] in (v[1] for v in TIMESTAMP_DATA[:i])]
+TIMESTAMP_VALS = ["FROM_UNIXTIME(((?&(POWER(2, 32)-1))*POWER(2, 32)+(?&(POWER(2, 32)-1)))/1000000)"]*len(TIMESTAMP_COLS)
+UNIQUE_COLS = ["trackid", "induct", "scanner", "sorter"] + PACKAGE_COLS + TIMESTAMP_COLS
+UNIQUE_VALS = ["?"]*4 + PACKAGE_VALS + TIMESTAMP_VALS
+CONFIRM_INSERT_QUERY = "INSERT IGNORE INTO package_history (" + ",".join(UNIQUE_COLS) + ") VALUES (" + ",".join(UNIQUE_VALS) + ")"
+
+#######################################################
+#######################################################
+#######################################################
+#### Parsing Utils
+#######################################################
+
+def isNoRead(field):
+ return field.replace("?","") == ""
+
+def isMultiRead(field):
+ return field.replace("#","") == ""
+
+def isBadRead(field):
+ return (field == None or isNoRead(field) or isMultiRead(field))
+
+def logTime(title, trackID, seconds):
+ millisec = round(seconds * 1000, 1)
+ LOG.info("%s[ID=%s] took %sms to process" % (title, trackID, millisec))
+
+#######################################################
+#######################################################
+#######################################################
+#### PLC Event Handling
+#######################################################
+
+def processConfirmAsync(trackID, induct, scanner, sorter, program=PROGRAM_PATH, carton=CARTON_PATH, device=DEFAULT_DEVICE, opcServer=DEFAULT_OPC_SERVER):
+ # This function handles confirm events, and logs the event in SQL
+ # Ensure ID is valid
+ if trackID > 0 and trackID < MAX_CARTONS:
+ def processConfirmInner():
+ start_time = time.time()
+ # Setup carton location:
+ devicePrefix = "[" + device + "]" + program
+ cartonPrefix = devicePrefix + carton + "[" + str(trackID) + "]"
+ # Read all carton data directly:
+ tags = [cartonPrefix + "." + path for path in DATA_PATHS]
+ values = [trackID, induct, scanner, sorter] + [value.value for value in system.opc.readValues(opcServer, tags)]
+ logTime("Confirm[PLC_READ]", trackID, time.time() - start_time)
+ start_time = time.time()
+ # Log confirm event in SQL:
+ # Insert into Package History:
+ system.db.runPrepUpdate(CONFIRM_INSERT_QUERY, values)
+ logTime("Confirm[DB_INSERT]", trackID, time.time() - start_time)
+
+ system.util.invokeAsynchronous(processConfirmInner)
+
diff --git a/.resources/de3495c33eb729464cd6f23d78260cd920b2e90a71df6d3edcebef05da6980f1 b/.resources/de3495c33eb729464cd6f23d78260cd920b2e90a71df6d3edcebef05da6980f1
new file mode 100644
index 00000000..cdd6ca38
--- /dev/null
+++ b/.resources/de3495c33eb729464cd6f23d78260cd920b2e90a71df6d3edcebef05da6980f1
@@ -0,0 +1,286 @@
+{
+ "custom": {},
+ "params": {
+ "meta": {
+ "name": "S1-CH1"
+ },
+ "props": {
+ "config": {
+ "alwaysShowAll": true,
+ "isClickable": false,
+ "mirror": false
+ },
+ "status": {
+ "tagPath": "[default]MCP04/PS03/PS03_36CH"
+ }
+ }
+ },
+ "propConfig": {
+ "params.meta": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.meta.name": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.config.alwaysShowAll": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props.config.mirror": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 349,
+ "width": 500
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\ttagPath \u003d self.view.params.props.status.tagPath\n\ttags \u003d [tagPath + \"/Conv/SetEnable\"]\n\tvalues \u003d [1]\n\tsystem.tag.writeAsync(tags, values)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Enable"
+ },
+ "position": {
+ "height": 40,
+ "width": 120,
+ "x": 120,
+ "y": 20.3
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Conv/SetEnable"
+ },
+ "transforms": [
+ {
+ "expression": "isGood({value})",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.style.classes": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Conv/SetEnable"
+ },
+ "transforms": [
+ {
+ "fallback": "Buttons/Grey",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "Buttons/Green"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ },
+ {
+ "expression": "if(isGood({value}),\r\n\t{value},\r\n\t\"Buttons/Grey\"\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {},
+ "text": "Enable"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\ttagPath \u003d self.view.params.props.status.tagPath\n\ttags \u003d [tagPath + \"/Conv/SetEnable\"]\n\tvalues \u003d [0]\n\tsystem.tag.writeAsync(tags, values)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Disable"
+ },
+ "position": {
+ "height": 40,
+ "width": 120,
+ "x": 260,
+ "y": 20.3
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Conv/SetEnable"
+ },
+ "transforms": [
+ {
+ "expression": "isGood({value})",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.style.classes": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Conv/SetEnable"
+ },
+ "transforms": [
+ {
+ "fallback": "Buttons/Grey",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": false,
+ "output": "Buttons/Red"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ },
+ {
+ "expression": "if(isGood({value}),\r\n\t{value},\r\n\t\"Buttons/Grey\"\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {},
+ "text": "Disable"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "SpiralChute"
+ },
+ "position": {
+ "height": 115,
+ "width": 90,
+ "x": 205,
+ "y": 165
+ },
+ "propConfig": {
+ "props.params": {
+ "binding": {
+ "config": {
+ "struct": {
+ "alwaysShowAll": true,
+ "isClickable": false,
+ "mirror": "{view.params.props.config.mirror}",
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "waitOnAll": true
+ },
+ "type": "expr-struct"
+ },
+ "persistent": false
+ }
+ },
+ "props": {
+ "path": "Templates/Areas/DivChute",
+ "style": {
+ "transform": "scale(2)"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "ChuteLabel"
+ },
+ "position": {
+ "height": 35,
+ "width": 260,
+ "x": 120,
+ "y": 63
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Conv/StatusText"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ }
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "background-color": "#CFCFCF"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/e0745a3ffe1729baa0ee83be056dd361b374cf27fde39a43a4decc5953d29861 b/.resources/e0745a3ffe1729baa0ee83be056dd361b374cf27fde39a43a4decc5953d29861
new file mode 100644
index 00000000..8ea4d2f7
--- /dev/null
+++ b/.resources/e0745a3ffe1729baa0ee83be056dd361b374cf27fde39a43a4decc5953d29861
@@ -0,0 +1,103 @@
+WITH SORTERS AS (
+ SELECT
+ MIN(s04_timestamp) AS start_timestamp,
+ MAX(s04_timestamp) AS end_timestamp,
+ 3600/TIMESTAMPDIFF(SECOND, :startDate, :endDate) AS pph_multiplier,
+ sorter,
+ COUNT(*) AS total,
+ SUM(sort_code="Success") AS success,
+ SUM(sort_code="Unknown") AS unknown,
+ SUM(sort_code="Unexpected") AS unexpected,
+ SUM(sort_code="Track Err") AS track_err,
+ SUM(sort_code="Gap Err") AS gap_err,
+ SUM(sort_code="Dest Full") AS dest_full,
+ SUM(sort_code="Dest Fault") AS dest_fault,
+ SUM(sort_code="Dest Invalid") AS dest_invalid,
+ SUM(sort_code="No Read") AS no_read,
+ SUM(sort_code="No Code") AS no_code,
+ SUM(sort_code="Multi Label") AS multi_label,
+ SUM(sort_code="Dest Disabled") AS dest_disabled,
+ SUM(sort_code="Rate High") AS rate_high,
+ SUM(sort_code="Div Fail") AS div_fail,
+ SUM(sort_code="Dest None") AS dest_none,
+ SUM(sort_code="Lost") AS lost,
+ SUM(sort_code="Dim Err") AS dim_err,
+ SUM(sort_code="Weight Err") AS weight_err,
+ SUM(sort_code="Underutilized") AS underutilized,
+ SUM(sort_code="Unsafe") AS unsafe
+ FROM package_history
+ WHERE s04_timestamp BETWEEN :startDate AND :endDate
+ GROUP BY sorter
+ ORDER BY sorter
+)
+SELECT
+ start_timestamp,
+ end_timestamp,
+ sorter,
+ /* Counts: */
+ total AS total_count,
+ success AS success_count,
+ unknown AS unknown_count,
+ unexpected AS unexpected_count,
+ track_err AS track_err_count,
+ gap_err AS gap_err_count,
+ dest_full AS dest_full_count,
+ dest_fault AS dest_fault_count,
+ dest_invalid AS dest_invalid_count,
+ no_read AS no_read_count,
+ no_code AS no_code_count,
+ multi_label AS multi_label_count,
+ dest_disabled AS dest_disabled_count,
+ rate_high AS rate_high_count,
+ div_fail AS div_fail_count,
+ dest_none AS dest_none_count,
+ lost AS lost_count,
+ dim_err AS dim_err_count,
+ weight_err AS weight_err_count,
+ underutilized AS underutilized_count,
+ unsafe AS unsafe_count,
+ /* PPH: */
+ ROUND(total*pph_multiplier) AS total_pph,
+ ROUND(success*pph_multiplier) AS success_pph,
+ ROUND(unknown*pph_multiplier) AS unknown_pph,
+ ROUND(unexpected*pph_multiplier) AS unexpected_pph,
+ ROUND(track_err*pph_multiplier) AS track_err_pph,
+ ROUND(gap_err*pph_multiplier) AS gap_err_pph,
+ ROUND(dest_full*pph_multiplier) AS dest_full_pph,
+ ROUND(dest_fault*pph_multiplier) AS dest_fault_pph,
+ ROUND(dest_invalid*pph_multiplier) AS dest_invalid_pph,
+ ROUND(no_read*pph_multiplier) AS no_read_pph,
+ ROUND(no_code*pph_multiplier) AS no_code_pph,
+ ROUND(multi_label*pph_multiplier) AS multi_label_pph,
+ ROUND(dest_disabled*pph_multiplier) AS dest_disabled_pph,
+ ROUND(rate_high*pph_multiplier) AS rate_high_pph,
+ ROUND(div_fail*pph_multiplier) AS div_fail_pph,
+ ROUND(dest_none*pph_multiplier) AS dest_none_pph,
+ ROUND(lost*pph_multiplier) AS lost_pph,
+ ROUND(dim_err*pph_multiplier) AS dim_err_pph,
+ ROUND(weight_err*pph_multiplier) AS weight_err_pph,
+ ROUND(underutilized*pph_multiplier) AS underutilized_pph,
+ ROUND(unsafe*pph_multiplier) AS unsafe_pph,
+ /* Percents: */
+ ROUND(total/total, 4) AS total_percent,
+ ROUND(success/total, 4) AS success_percent,
+ ROUND(unknown/total, 4) AS unknown_percent,
+ ROUND(unexpected/total, 4) AS unexpected_percent,
+ ROUND(track_err/total, 4) AS track_err_percent,
+ ROUND(gap_err/total, 4) AS gap_err_percent,
+ ROUND(dest_full/total, 4) AS dest_full_percent,
+ ROUND(dest_fault/total, 4) AS dest_fault_percent,
+ ROUND(dest_invalid/total, 4) AS dest_invalid_percent,
+ ROUND(no_read/total, 4) AS no_read_percent,
+ ROUND(no_code/total, 4) AS no_code_percent,
+ ROUND(multi_label/total, 4) AS multi_label_percent,
+ ROUND(dest_disabled/total, 4) AS dest_disabled_percent,
+ ROUND(rate_high/total, 4) AS rate_high_percent,
+ ROUND(div_fail/total, 4) AS div_fail_percent,
+ ROUND(dest_none/total, 4) AS dest_none_percent,
+ ROUND(lost/total, 4) AS lost_percent,
+ ROUND(dim_err/total, 4) AS dim_err_percent,
+ ROUND(weight_err/total, 4) AS weight_err_percent,
+ ROUND(underutilized/total, 4) AS underutilized_percent,
+ ROUND(unsafe/total, 4) AS unsafe_percent
+FROM SORTERS;
\ No newline at end of file
diff --git a/.resources/e0b991fa7c4dfa142453747146578e45216dbd97ffbdaf29ca884be29ed6ac6c b/.resources/e0b991fa7c4dfa142453747146578e45216dbd97ffbdaf29ca884be29ed6ac6c
new file mode 100644
index 00000000..1efcbe06
--- /dev/null
+++ b/.resources/e0b991fa7c4dfa142453747146578e45216dbd97ffbdaf29ca884be29ed6ac6c
@@ -0,0 +1,420 @@
+{
+ "custom": {},
+ "params": {
+ "titleExtra": "4 rows",
+ "usesTimewidget": true
+ },
+ "propConfig": {
+ "params.titleExtra": {
+ "paramDirection": "output",
+ "persistent": true
+ },
+ "params.usesTimewidget": {
+ "binding": {
+ "config": {
+ "expression": "true"
+ },
+ "type": "expr"
+ },
+ "paramDirection": "output",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 324,
+ "width": 1600
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "LaneStatus"
+ },
+ "position": {
+ "height": "100%",
+ "width": "100%"
+ },
+ "propConfig": {
+ "props.data": {
+ "binding": {
+ "config": {
+ "parameters": {
+ "endDate": "{session.custom.timewidget.endDate}",
+ "startDate": "{session.custom.timewidget.startDate}"
+ },
+ "queryPath": "Status/LoopStatus"
+ },
+ "transforms": [
+ {
+ "code": "\tcou \u003d utils.getRowCount(value)\n\tast \u003d \"*\" if cou \u003e\u003d 2000 else \"\"\n\tself.view.params.titleExtra \u003d \"{:n}{} rows\".format(cou, ast)\n\t# Return data\n\treturn value",
+ "type": "script"
+ }
+ ],
+ "type": "query"
+ }
+ }
+ },
+ "props": {
+ "cells": {
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "1px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "1px",
+ "color": "#000",
+ "fontFamily": "Helvetica",
+ "fontSize": "14px"
+ }
+ },
+ "columns": [
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "start_timestamp",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Start Timestamp"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 160
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "end_timestamp",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "End Timestamp"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": "value"
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 160
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "loop",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Loop"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 110
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "no_demand_count",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "No Demand (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 130
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "no_demand_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "No Demand Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 160
+ }
+ ],
+ "filter": {
+ "enabled": true
+ },
+ "pager": {
+ "bottom": false
+ },
+ "rows": {
+ "highlight": {
+ "enabled": false
+ },
+ "striped": {
+ "enabled": false
+ },
+ "style": {
+ "classes": "table/highlight"
+ }
+ },
+ "style": {
+ "fontFamily": "Helvetica",
+ "fontSize": "14px",
+ "fontWeight": "bold"
+ }
+ },
+ "scripts": {
+ "customMethods": [],
+ "messageHandlers": [
+ {
+ "messageType": "export-data",
+ "pageScope": true,
+ "script": "\tutils.downloadCSV(self, \"Loop Status\")",
+ "sessionScope": false,
+ "viewScope": false
+ }
+ ]
+ },
+ "type": "ia.display.table"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/e0e7e09a9c43cc199b14ee9afce64f8e03919ebd66a057831e5635acbf8c4450 b/.resources/e0e7e09a9c43cc199b14ee9afce64f8e03919ebd66a057831e5635acbf8c4450
new file mode 100644
index 00000000..02587298
--- /dev/null
+++ b/.resources/e0e7e09a9c43cc199b14ee9afce64f8e03919ebd66a057831e5635acbf8c4450
@@ -0,0 +1,304 @@
+{
+ "custom": {},
+ "params": {
+ "meta": {
+ "name": "DIV"
+ },
+ "props": {
+ "config": {
+ "enableHighlight": true,
+ "isClickable": true,
+ "originSide": "left",
+ "paddleThickness": 10
+ },
+ "status": {
+ "color": "#AAA",
+ "isExtended": true,
+ "isRetracted": false,
+ "showAlways": true,
+ "tagPath": "",
+ "tooltip": ""
+ }
+ }
+ },
+ "propConfig": {
+ "params.meta": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.meta.name": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 105,
+ "width": 500
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "DivertPaddle"
+ },
+ "position": {
+ "height": 42,
+ "rotate": {
+ "angle": "180deg"
+ },
+ "width": 101,
+ "x": 48.5,
+ "y": 14
+ },
+ "propConfig": {
+ "props.config.originSide": {
+ "binding": {
+ "config": {
+ "path": "view.params.props.config.originSide"
+ },
+ "overlayOptOut": true,
+ "type": "property"
+ }
+ },
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "expression": "try(\r\n\tjsonSet({value}, \"showAlways\", true),\r\n\t{view.params.props.status}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false,
+ "paddleThickness": 10
+ }
+ },
+ "type": "dex.display.divertpaddle"
+ },
+ {
+ "meta": {
+ "name": "lbStatus"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 40
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "code": "\treturn utils.extractStatus(value)",
+ "type": "script"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbName"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 5
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.LabelFull"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \u0027\u0027)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_1"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 5
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Name: "
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_11"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 40
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Status:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_12"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 75
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Panel:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbStatus_0"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 75
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.OPC_Server"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \"Unknown\")",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "background-color": "#CFCFCF"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/e166b5e7752ed9af121d6f34b32462c11b236794fbbad4b0b546d21727d79a51 b/.resources/e166b5e7752ed9af121d6f34b32462c11b236794fbbad4b0b546d21727d79a51
new file mode 100644
index 00000000..1d62e3aa
--- /dev/null
+++ b/.resources/e166b5e7752ed9af121d6f34b32462c11b236794fbbad4b0b546d21727d79a51
@@ -0,0 +1,108 @@
+{
+ "custom": {},
+ "params": {},
+ "props": {
+ "defaultSize": {
+ "height": 535,
+ "width": 1454
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "OXD_Sorter"
+ },
+ "position": {
+ "height": 515,
+ "width": 1434,
+ "x": 10,
+ "y": 10
+ },
+ "props": {
+ "path": "Windows/Graphics/Templates/OXD_Sorter",
+ "style": {
+ "classes": "painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NavButton_OXD_Problem_Solve"
+ },
+ "position": {
+ "height": 40,
+ "width": 150,
+ "x": 396,
+ "y": 310
+ },
+ "props": {
+ "params": {
+ "enableTooltip": true,
+ "label": null,
+ "tagPath": "[default]OXDProblemSolveStatus",
+ "view": ""
+ },
+ "path": "Templates/Buttons/NavButton",
+ "style": {
+ "transform": "scale(1.5)"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NavButton_OXD_Singulator"
+ },
+ "position": {
+ "height": 40,
+ "width": 128,
+ "x": 50,
+ "y": 310
+ },
+ "props": {
+ "params": {
+ "enableTooltip": true,
+ "label": null,
+ "tagPath": "[default]OXDSingulatorStatus",
+ "view": ""
+ },
+ "path": "Templates/Buttons/NavButton",
+ "style": {
+ "transform": "scale(1.5)"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NavButton_Runout"
+ },
+ "position": {
+ "height": 40,
+ "width": 74,
+ "x": 1340,
+ "y": 350
+ },
+ "props": {
+ "params": {
+ "enableTooltip": true,
+ "label": null,
+ "tagPath": "[default]RunoutStatus",
+ "view": ""
+ },
+ "path": "Templates/Buttons/NavButton",
+ "style": {
+ "transform": "scale(1.5)"
+ }
+ },
+ "type": "ia.display.view"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/e1b97afca00c0d8bcc8796a8534fd94f5583d64438ed884c6fe35ff99a9ba024 b/.resources/e1b97afca00c0d8bcc8796a8534fd94f5583d64438ed884c6fe35ff99a9ba024
new file mode 100644
index 00000000..d70afddd
--- /dev/null
+++ b/.resources/e1b97afca00c0d8bcc8796a8534fd94f5583d64438ed884c6fe35ff99a9ba024
@@ -0,0 +1,43 @@
+WITH SORTERS AS (
+ SELECT
+ MIN(s04_timestamp) AS start_timestamp,
+ MAX(s04_timestamp) AS end_timestamp,
+ 3600/TIMESTAMPDIFF(SECOND, :startDate, :endDate) AS pph_multiplier,
+ sorter,
+ COUNT(*) AS total,
+ SUM(sort_code="Success") AS success,
+ SUM(sort_code IN ("Dest Invalid", "Dest None", "Underutilized")) AS awcs,
+ SUM(sort_code IN ("Dest Disabled", "Dest Full", "Dim Error", "Unexpected", "Weight Err")) AS operational,
+ SUM(sort_code IN ("Dest Fault", "Div Fail", "Gap Err", "Lost", "Rate High", "Track Err", "Unknown", "Unsafe")) AS machine,
+ SUM(sort_code IN ("No Read", "No Code", "Multi Label")) AS scanner
+ FROM package_history
+ WHERE s04_timestamp BETWEEN :startDate AND :endDate
+ GROUP BY sorter
+ ORDER BY sorter
+)
+SELECT
+ start_timestamp,
+ end_timestamp,
+ sorter,
+ /* Counts: */
+ total AS total_count,
+ success AS success_count,
+ awcs AS awcs_issues_count,
+ operational AS operational_issues_count,
+ machine AS machine_issues_count,
+ scanner AS scanner_issues_count,
+ /* PPH: */
+ ROUND(total*pph_multiplier) AS total_pph,
+ ROUND(success*pph_multiplier) AS success_pph,
+ ROUND(awcs*pph_multiplier) AS awcs_issues_pph,
+ ROUND(operational*pph_multiplier) AS operational_issues_pph,
+ ROUND(machine*pph_multiplier) AS machine_issues_pph,
+ ROUND(scanner*pph_multiplier) AS scanner_issues_pph,
+ /* Percents: */
+ ROUND(total/total, 4) AS total_percent,
+ ROUND(success/total, 4) AS success_percent,
+ ROUND(awcs/total, 4) AS awcs_issues_percent,
+ ROUND(operational/total, 4) AS operational_issues_percent,
+ ROUND(machine/total, 4) AS machine_issues_percent,
+ ROUND(scanner/total, 4) AS scanner_issues_percent
+FROM SORTERS;
\ No newline at end of file
diff --git a/.resources/e1e9cb08f09307c6f146984dc524305d687742d1de4135bf7467c9d68e3f614a b/.resources/e1e9cb08f09307c6f146984dc524305d687742d1de4135bf7467c9d68e3f614a
new file mode 100644
index 00000000..e53c528e
--- /dev/null
+++ b/.resources/e1e9cb08f09307c6f146984dc524305d687742d1de4135bf7467c9d68e3f614a
@@ -0,0 +1,49 @@
+WITH SORTERS AS (
+ SELECT
+ DATE_FORMAT(MIN(s04_timestamp), "%Y-%m-%d %H:00") AS start_timestamp,
+ CONCAT("H",
+ CAST(
+ TIMESTAMPDIFF(
+ HOUR,
+ DATE_FORMAT(MIN(s04_timestamp), "%Y-%m-%d %H:00:00"),
+ DATE_FORMAT(LEAST(CURRENT_TIMESTAMP(), :endDate), "%Y-%m-%d %H:00:00")
+ ) AS CHAR
+ )
+ ) AS hour,
+ COUNT(*) AS total,
+ SUM(sort_code="Success") AS success,
+ SUM(sort_code IN ("Dest Invalid", "Dest None", "Underutilized")) AS awcs,
+ SUM(sort_code IN ("Dest Disabled", "Dest Full", "Dim Error", "Unexpected", "Weight Err")) AS operational,
+ SUM(sort_code IN ("Dest Fault", "Div Fail", "Gap Err", "Lost", "Rate High", "Track Err", "Unknown", "Unsafe")) AS machine,
+ SUM(sort_code IN ("No Read", "No Code", "Multi Label")) AS scanner
+ FROM package_history
+ WHERE s04_timestamp BETWEEN :startDate AND :endDate
+ AND sorter=:sorter
+ GROUP BY DATE_FORMAT(s04_timestamp, "%Y-%m-%d %H:00")
+)
+SELECT
+ start_timestamp,
+ hour,
+ /* Counts: */
+ total AS total_count,
+ success AS success_count,
+ awcs AS awcs_issues_count,
+ operational AS operational_issues_count,
+ machine AS machine_issues_count,
+ scanner AS scanner_issues_count,
+ /* PPH: */
+ total AS total_pph,
+ success AS success_pph,
+ awcs AS awcs_issues_pph,
+ operational AS operational_issues_pph,
+ machine AS machine_issues_pph,
+ scanner AS scanner_issues_pph,
+ /* Percents: */
+ ROUND(total/total, 4) AS total_percent,
+ ROUND(success/total, 4) AS success_percent,
+ ROUND(awcs/total, 4) AS awcs_issues_percent,
+ ROUND(operational/total, 4) AS operational_issues_percent,
+ ROUND(machine/total, 4) AS machine_issues_percent,
+ ROUND(scanner/total, 4) AS scanner_issues_percent
+FROM SORTERS
+ORDER BY start_timestamp;
\ No newline at end of file
diff --git a/.resources/e20ba159c1d89575d1b263847ca6cf0c9e1e532419f57f6287946dcbda1ccda7 b/.resources/e20ba159c1d89575d1b263847ca6cf0c9e1e532419f57f6287946dcbda1ccda7
new file mode 100644
index 00000000..d893ac2c
--- /dev/null
+++ b/.resources/e20ba159c1d89575d1b263847ca6cf0c9e1e532419f57f6287946dcbda1ccda7
@@ -0,0 +1,293 @@
+{
+ "custom": {
+ "disconnected": 0,
+ "plc": "value",
+ "priority": 0,
+ "priority_string": "No active alarms",
+ "searchId": "value",
+ "state": 0,
+ "state_string": "Normal"
+ },
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "propConfig": {
+ "custom.disconnected": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.plc": {
+ "binding": {
+ "config": {
+ "path": "view.params.tagProps[0]"
+ },
+ "transforms": [
+ {
+ "expression": "split({value}, \"/\")[0]",
+ "type": "expression"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.priority": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "fallback": 0,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": 4
+ },
+ {
+ "input": 2,
+ "output": 3
+ },
+ {
+ "input": 3,
+ "output": 2
+ },
+ {
+ "input": 4,
+ "output": 1
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.priority_string": {
+ "binding": {
+ "config": {
+ "expression": "case({view.custom.state},\r\n1, \"High\",\r\n0, \"No active alarms\",\r\n\"Unknown\")"
+ },
+ "type": "expr"
+ },
+ "persistent": true
+ },
+ "custom.searchId": {
+ "binding": {
+ "config": {
+ "path": "session.custom.searchId"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.state": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "0": "{view.params.tagProps[0]}",
+ "fc": "{session.custom.fc}"
+ },
+ "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value},0)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ },
+ "persistent": true
+ },
+ "custom.state_string": {
+ "binding": {
+ "config": {
+ "expression": "case({view.custom.state},\r\n1, \"Communication Faulted\",\r\n0, \"Normal\",\r\n\"Unknown\")"
+ },
+ "type": "expr"
+ },
+ "persistent": true
+ },
+ "params.tagProps": {
+ "paramDirection": "inout",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 47,
+ "width": 68
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "ControlCabinet"
+ },
+ "position": {
+ "height": 1,
+ "width": 1
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "session.custom.alarm_filter.show_dpm_mcm"
+ },
+ "type": "property"
+ }
+ },
+ "props.elements[0].fill.paint": {
+ "binding": {
+ "config": {
+ "expression": "if(\r\n {view.custom.disconnected},\r\n \u0027#808080\u0027,\r\n if(\r\n {view.custom.state} \u003d 1,\r\n \u0027#FF0000\u0027,\r\n if(\r\n {view.custom.state} \u003d 0,\r\n \u0027#00D900\u0027,\r\n \u0027#fff700\u0027\r\n )\r\n )\r\n)\r\n"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "elements": [
+ {
+ "d": "M 0 40 L 0 0 L 61 40 Z",
+ "fill": {},
+ "name": "path",
+ "stroke": {
+ "paint": "#4c4c4c",
+ "width": 4
+ },
+ "transform": "rotate(-180,30.5,20)",
+ "type": "path"
+ },
+ {
+ "d": "M 0 40 L 0 0 L 61 40 Z",
+ "fill": {
+ "paint": "#4C4C4C"
+ },
+ "name": "path",
+ "stroke": {
+ "paint": "#000000",
+ "width": 4
+ },
+ "type": "path"
+ }
+ ],
+ "preserveAspectRatio": "none",
+ "viewBox": "-0.5 -0.5 62 41"
+ },
+ "type": "ia.shapes.svg"
+ }
+ ],
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tsystem.perspective.openDock(\u0027Docked-East-DS\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})"
+ },
+ "scope": "G",
+ "type": "script"
+ },
+ "onDoubleClick": {
+ "config": {
+ "script": "\ttagProps \u003d self.view.params.tagProps\n\tsystem.perspective.openPopup(\"StatusPopUP\", \"PopUp-Views/Controller-Equipment/Information\", params \u003d{\"tagProps\":tagProps})\n\t"
+ },
+ "enabled": false,
+ "scope": "G",
+ "type": "script"
+ },
+ "onMouseEnter": {
+ "config": {
+ "script": "\tfrom time import sleep\n\t\n\talarm \u003d []\n\tmessage \u003d None\n\t\n\tsleep(0.5)\n\t\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "root",
+ "tooltip": {
+ "enabled": true,
+ "location": "top-left",
+ "style": {}
+ }
+ },
+ "propConfig": {
+ "meta.tooltip.style.classes": {
+ "binding": {
+ "config": {
+ "expression": "{view.custom.priority}"
+ },
+ "transforms": [
+ {
+ "fallback": "Alarms-Styles/NoAlarm",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": "Alarms-Styles/Diagnostic"
+ },
+ {
+ "input": 2,
+ "output": "Alarms-Styles/Low"
+ },
+ {
+ "input": 3,
+ "output": "Alarms-Styles/Medium"
+ },
+ {
+ "input": 4,
+ "output": "Alarms-Styles/High"
+ }
+ ],
+ "outputType": "style-list",
+ "type": "map"
+ }
+ ],
+ "type": "expr"
+ }
+ },
+ "meta.tooltip.text": {
+ "binding": {
+ "config": {
+ "expression": "if(\n {view.custom.disconnected} \u003d false,\n \"Source Id: \" + {view.params.tagProps[0]} + \", Priority: \" + {view.custom.priority_string} + \", State: \" + {view.custom.state_string},\n \"Device Disconnected\"\n)\n"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "aspectRatio": "68:47",
+ "mode": "percent",
+ "style": {
+ "classes": "Disconnects/Device-Connected",
+ "cursor": "pointer",
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/e2f8ac4facf19c3de66cd70088ed050017566884d00311645e3f8667e3cb297f b/.resources/e2f8ac4facf19c3de66cd70088ed050017566884d00311645e3f8667e3cb297f
new file mode 100644
index 00000000..b109ee70
--- /dev/null
+++ b/.resources/e2f8ac4facf19c3de66cd70088ed050017566884d00311645e3f8667e3cb297f
@@ -0,0 +1,108 @@
+{
+ "custom": {},
+ "params": {},
+ "props": {
+ "defaultSize": {
+ "height": 528,
+ "width": 1123
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "OXD_Singulator"
+ },
+ "position": {
+ "height": 508,
+ "width": 1103,
+ "x": 10,
+ "y": 10
+ },
+ "props": {
+ "path": "Windows/Graphics/Templates/OXD_Singulator",
+ "style": {
+ "classes": "painted-events"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NavButton_OXD_Inbound"
+ },
+ "position": {
+ "height": 40,
+ "width": 110,
+ "x": 40,
+ "y": 466
+ },
+ "props": {
+ "params": {
+ "enableTooltip": true,
+ "label": null,
+ "tagPath": "[default]OXDInboundStatus",
+ "view": ""
+ },
+ "path": "Templates/Buttons/NavButton",
+ "style": {
+ "transform": "scale(1.5)"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NavButton_OXD_Sorter"
+ },
+ "position": {
+ "height": 40,
+ "width": 97,
+ "x": 991,
+ "y": 180
+ },
+ "props": {
+ "params": {
+ "enableTooltip": true,
+ "label": null,
+ "tagPath": "[default]OXDSorterStatus",
+ "view": ""
+ },
+ "path": "Templates/Buttons/NavButton",
+ "style": {
+ "transform": "scale(1.5)"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "NavButton_OXD_Problem_Solve"
+ },
+ "position": {
+ "height": 40,
+ "width": 150,
+ "x": 640,
+ "y": 180
+ },
+ "props": {
+ "params": {
+ "enableTooltip": true,
+ "label": null,
+ "tagPath": "[default]OXDProblemSolveStatus",
+ "view": ""
+ },
+ "path": "Templates/Buttons/NavButton",
+ "style": {
+ "transform": "scale(1.5)"
+ }
+ },
+ "type": "ia.display.view"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/e30811e0d009c98f34a1529ad391147f7db23cb4453cef3d7f2428181ed8f5ba b/.resources/e30811e0d009c98f34a1529ad391147f7db23cb4453cef3d7f2428181ed8f5ba
new file mode 100644
index 00000000..a222549e
--- /dev/null
+++ b/.resources/e30811e0d009c98f34a1529ad391147f7db23cb4453cef3d7f2428181ed8f5ba
@@ -0,0 +1,10 @@
+{
+ "base": {
+ "style": {
+ "backgroundColor": "#FCC400B3",
+ "color": "#FFFFFF",
+ "fontFamily": "Arial",
+ "fontWeight": "bold"
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/e4ee7a3a294388e22ed40eaadcf5eb2dd699fb87b7f95b24910ab4034d13f87b b/.resources/e4ee7a3a294388e22ed40eaadcf5eb2dd699fb87b7f95b24910ab4034d13f87b
new file mode 100644
index 00000000..55e15f24
--- /dev/null
+++ b/.resources/e4ee7a3a294388e22ed40eaadcf5eb2dd699fb87b7f95b24910ab4034d13f87b
@@ -0,0 +1,10 @@
+{
+ "base": {
+ "style": {
+ "backgroundColor": "#8C8C8C",
+ "color": "#000000",
+ "fontFamily": "Arial",
+ "fontWeight": "bold"
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/e81ba7121edef42ef349574d2a97ce522151b0d3e0292a555273e591efa7c6bf b/.resources/e81ba7121edef42ef349574d2a97ce522151b0d3e0292a555273e591efa7c6bf
new file mode 100644
index 00000000..aee1c2f1
--- /dev/null
+++ b/.resources/e81ba7121edef42ef349574d2a97ce522151b0d3e0292a555273e591efa7c6bf
@@ -0,0 +1,257 @@
+{
+ "custom": {
+ "disconnected": true,
+ "plc": "",
+ "searchId": "value",
+ "state": 0,
+ "string": "Unknown"
+ },
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "propConfig": {
+ "custom.disconnected": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "0": "{view.params.tagProps[0]}",
+ "fc": "{session.custom.fc}"
+ },
+ "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE"
+ },
+ "transforms": [
+ {
+ "expression": "!isGood({value})",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ },
+ "persistent": true
+ },
+ "custom.plc": {
+ "binding": {
+ "config": {
+ "path": "view.params.tagProps[0]"
+ },
+ "transforms": [
+ {
+ "expression": "split({value}, \"/\")[0]",
+ "type": "expression"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.searchId": {
+ "binding": {
+ "config": {
+ "path": "session.custom.searchId"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.state": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "0": "{view.params.tagProps[0]}",
+ "fc": "{session.custom.fc}"
+ },
+ "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value},{view.params.forceFaultStatus},0)",
+ "type": "expression"
+ },
+ {
+ "fallback": null,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": 1
+ },
+ {
+ "input": 0,
+ "output": 0
+ },
+ {
+ "input": 2,
+ "output": 2
+ },
+ {
+ "input": 3,
+ "output": 3
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ },
+ "persistent": true
+ },
+ "custom.string": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "fallback": "Unknown",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": "OK"
+ },
+ {
+ "input": 2,
+ "output": "Faulted"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "params.tagProps": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 20,
+ "width": 40
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Label"
+ },
+ "position": {
+ "height": 1,
+ "width": 1
+ },
+ "props": {
+ "style": {
+ "paddingBottom": 1,
+ "paddingLeft": 1,
+ "paddingRight": 1,
+ "paddingTop": 1
+ },
+ "text": "SIO",
+ "textStyle": {
+ "fontSize": "20px",
+ "textAlign": "center",
+ "textTransform": "uppercase"
+ }
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tsystem.perspective.openDock(\u0027Docked-East-JR\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})"
+ },
+ "scope": "G",
+ "type": "script"
+ },
+ "onMouseEnter": {
+ "config": {
+ "script": "\tfrom time import sleep\n\t\n\talarm \u003d []\n\tmessage \u003d None\n\t\n\tsleep(0.5)\n\t\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "root",
+ "tooltip": {
+ "enabled": true
+ }
+ },
+ "propConfig": {
+ "meta.tooltip.text": {
+ "binding": {
+ "config": {
+ "expression": "\"Source Id: \" + {view.params.tagProps[0]} + \", Status: \" + {view.custom.string}\n"
+ },
+ "type": "expr"
+ }
+ },
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "session.custom.alarm_filter.show_fio_safety"
+ },
+ "type": "property"
+ }
+ },
+ "props.style.backgroundColor": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "fallback": "#808080",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": "#00FF00"
+ },
+ {
+ "input": 2,
+ "output": "#FF0000"
+ }
+ ],
+ "outputType": "color",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "mode": "percent",
+ "style": {
+ "borderStyle": "solid",
+ "cursor": "pointer",
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/e83c5faa1d6beb5333e40efaf1ccb7cada0d9a7a410667be885d4e75d8f35b5a b/.resources/e83c5faa1d6beb5333e40efaf1ccb7cada0d9a7a410667be885d4e75d8f35b5a
new file mode 100644
index 00000000..3bb886ed
--- /dev/null
+++ b/.resources/e83c5faa1d6beb5333e40efaf1ccb7cada0d9a7a410667be885d4e75d8f35b5a
@@ -0,0 +1,64 @@
+import system
+import generate
+
+BASE_TAGS = [
+ "SetEnable",
+ "Color"
+]
+
+def getStatus(*args):
+ if len(args) % 5 <> 0:
+ raise ValueError('Argument list must be a multiple of (path, rowstart, rowend, colstart, colend) pairs')
+ groups = [args[i:i+5] for i in range(0, len(args), 5)]
+
+ # Produce tags:
+ tags = []
+ for (path, rowstart, rowend, colstart, colend) in groups:
+ for col in range(colstart, colend+1):
+ for row in range(rowstart, rowend+1):
+ spiral = "CH_2{:02d}{:02d}".format(row, col)
+ prefix = "[default]"+path+"/"+spiral+"/"+spiral+"/CH/"
+ tags.extend([prefix+tag for tag in BASE_TAGS])
+
+ # Get values
+ values = [val for val in system.tag.readBlocking(tags)]
+
+ # Produce status:
+ unknown = 0
+ faulted = 0
+ disabled = 0
+ full = 0
+ fullWarn = 0
+ jammed = 0
+ enabled = 0
+ for (SetEnable, Color) in (values[i:i+len(BASE_TAGS)] for i in range(0, len(values), len(BASE_TAGS))):
+ # Ignore those that don't have SetEnable:
+ if not SetEnable.quality.isBad():
+ if SetEnable.quality.isError() or Color.quality.isError():
+ unknown += 1
+ elif Color.value == 1024:
+ faulted += 1
+ elif Color.value == 512:
+ jammed += 1
+ elif not SetEnable.value:
+ disabled += 1
+ elif Color.value == 128:
+ full += 1
+ elif Color.value == 64:
+ fullWarn += 1
+ else:
+ enabled += 1
+
+
+ headers = ["status", "count", "percent"]
+ total = max(1, float(unknown + faulted + jammed + disabled + full + fullWarn + enabled))
+ values = [
+ ["Enabled", enabled, enabled/total],
+ ["50% Full", fullWarn, fullWarn/total],
+ ["100% Full", full, full/total],
+ ["Disabled", disabled, disabled/total],
+ ["Jammed", jammed, jammed/total],
+ ["Faulted", faulted, faulted/total],
+ ["Unknown", unknown, unknown/total],
+ ]
+ return system.dataset.toDataSet(headers, values)
diff --git a/.resources/e9663f9a6bfbb0302408eb438d3bc692f5cd2964bdd8c05d4e5599ad3968f97d b/.resources/e9663f9a6bfbb0302408eb438d3bc692f5cd2964bdd8c05d4e5599ad3968f97d
new file mode 100644
index 00000000..f6968286
--- /dev/null
+++ b/.resources/e9663f9a6bfbb0302408eb438d3bc692f5cd2964bdd8c05d4e5599ad3968f97d
@@ -0,0 +1,44 @@
+WITH SCANNERS AS (
+ SELECT
+ DATE_FORMAT(MIN(s04_timestamp), "%Y-%m-%d %H:00") AS start_timestamp,
+ CONCAT("H",
+ CAST(
+ TIMESTAMPDIFF(
+ HOUR,
+ DATE_FORMAT(MIN(s04_timestamp), "%Y-%m-%d %H:00:00"),
+ DATE_FORMAT(LEAST(CURRENT_TIMESTAMP(), :endDate), "%Y-%m-%d %H:00:00")
+ ) AS CHAR
+ )
+ ) AS hour,
+ COUNT(*) AS total,
+ SUM(scanner_status NOT IN ("No Read", "No Code", "Multi Label")) AS good_read,
+ SUM(scanner_status = "No Read") AS no_read,
+ SUM(scanner_status = "No Code") AS no_code,
+ SUM(scanner_status = "Multi Label") AS multi_label
+ FROM package_history
+ WHERE s04_timestamp BETWEEN :startDate AND :endDate
+ AND scanner=:scanner
+ GROUP BY DATE_FORMAT(s04_timestamp, "%Y-%m-%d %H:00")
+)
+SELECT
+ start_timestamp,
+ hour,
+ /* Counts: */
+ total AS total_count,
+ good_read AS good_read_count,
+ no_read AS no_read_count,
+ no_code AS no_code_count,
+ multi_label AS multi_label_count,
+ /* PPH: */
+ total AS total_pph,
+ good_read AS good_read_pph,
+ no_read AS no_read_pph,
+ no_code AS no_code_pph,
+ multi_label AS multi_label_pph,
+ /* Percents: */
+ ROUND(total/total, 4) AS total_percent,
+ ROUND(good_read/total, 4) AS good_read_percent,
+ ROUND(no_read/total, 4) AS no_read_percent,
+ ROUND(no_code/total, 4) AS no_code_percent,
+ ROUND(multi_label/total, 4) AS multi_label_percent
+FROM SCANNERS;
\ No newline at end of file
diff --git a/.resources/eb3d0835779c03c59cacc8433bba836eea5e4f7fe0df5247baa978df7d220070 b/.resources/eb3d0835779c03c59cacc8433bba836eea5e4f7fe0df5247baa978df7d220070
new file mode 100644
index 00000000..9f144187
--- /dev/null
+++ b/.resources/eb3d0835779c03c59cacc8433bba836eea5e4f7fe0df5247baa978df7d220070
@@ -0,0 +1,46 @@
+WITH INDUCTS AS (
+ (
+ SELECT
+ MIN(s04_timestamp) AS start_timestamp,
+ MAX(s04_timestamp) AS end_timestamp,
+ sorter,
+ induct,
+ COUNT(*) AS total
+ FROM package_history
+ WHERE s04_timestamp BETWEEN :startDate AND :endDate
+ GROUP BY sorter, induct
+ ) UNION ALL (
+ SELECT
+ MIN(timestamp) AS start_timestamp,
+ MAX(timestamp) AS end_timestamp,
+ "AR" AS sorter,
+ lane_id AS induct,
+ SUM(count) AS total
+ FROM pe_history
+ WHERE timestamp BETWEEN :startDate AND :endDate
+ AND lane_id LIKE "UL%"
+ GROUP BY lane_id
+ )
+ ORDER BY sorter, induct
+), SORTERS AS (
+ SELECT
+ sorter,
+ 3600/TIMESTAMPDIFF(SECOND, :startDate, :endDate) AS pph_multiplier,
+ SUM(total) AS total
+ FROM INDUCTS
+ GROUP BY sorter
+)
+SELECT
+ I.start_timestamp,
+ I.end_timestamp,
+ S.sorter,
+ I.induct,
+ /* Counts: */
+ I.total AS total_count,
+ /* PPH: */
+ ROUND(I.total*S.pph_multiplier) AS total_pph,
+ /* Percents: */
+ ROUND(I.total/S.total, 4) AS 'total/sorter_percent'
+FROM INDUCTS I, SORTERS S
+WHERE I.sorter = S.sorter
+ORDER BY sorter, induct;
\ No newline at end of file
diff --git a/.resources/ed29a16c1d7312f66b9bf3393a41d66c02873b3946f9c3bc21746ef01299079d b/.resources/ed29a16c1d7312f66b9bf3393a41d66c02873b3946f9c3bc21746ef01299079d
new file mode 100644
index 00000000..0effd7f5
--- /dev/null
+++ b/.resources/ed29a16c1d7312f66b9bf3393a41d66c02873b3946f9c3bc21746ef01299079d
@@ -0,0 +1,196 @@
+{
+ "custom": {},
+ "params": {},
+ "props": {
+ "defaultSize": {
+ "height": 400,
+ "width": 1600
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Label"
+ },
+ "position": {
+ "height": 40,
+ "width": "100%"
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "expression": "try(\r\n\t property(\"../TabContainer.props.tabs[\"+{../TabContainer.props.currentTabIndex}+\"]\")\r\n\t+if(len({../EmbeddedView.props.params.titleExtra})\u003e0,\r\n\t\t\" (\" + {../EmbeddedView.props.params.titleExtra} + \")\",\r\n\t\t\"\"\r\n\t),\r\n\t\"No Tabs\"\r\n)"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#1A4A5E",
+ "borderBottomColor": "#000000",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "2px",
+ "color": "#fff",
+ "fontFamily": "Helvetica",
+ "fontSize": 20,
+ "fontWeight": "bold",
+ "textAlign": "center"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tsystem.perspective.sendMessage(\"export-data\")"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button"
+ },
+ "position": {
+ "height": 30,
+ "width": 100,
+ "x": "calc(100% - 105px)",
+ "y": 5
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Export"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "TimeWidget"
+ },
+ "position": {
+ "height": 40,
+ "width": 600
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "../EmbeddedView.props.params.usesTimewidget"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "params": {
+ "endDate": "2021-02-11 00:00:00",
+ "startDate": "2021-02-10 00:00:00"
+ },
+ "path": "Templates/Widget/TimeWidget"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "TabContainer"
+ },
+ "position": {
+ "height": "calc(100% - 40px)",
+ "width": "100%",
+ "y": 40
+ },
+ "propConfig": {
+ "props.tabs": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]Gateway/StatusTabs"
+ },
+ "transforms": [
+ {
+ "code": "\treturn [v[\"Title\"] for v in utils.datasetToJSON(value) if v[\"isVisible\"]]",
+ "type": "script"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "menuStyle": {
+ "backgroundColor": "#225E77"
+ },
+ "tabSize": {
+ "width": 160
+ },
+ "tabStyle": {
+ "active": {
+ "backgroundColor": "#2D7D9F",
+ "color": "#FFF",
+ "fontWeight": "bold"
+ },
+ "inactive": {
+ "backgroundColor": "#389CC7",
+ "color": "#FFF"
+ }
+ }
+ },
+ "type": "ia.container.tab"
+ },
+ {
+ "meta": {
+ "name": "EmbeddedView"
+ },
+ "position": {
+ "height": "calc(100% - 75px)",
+ "width": "100%",
+ "y": 75
+ },
+ "propConfig": {
+ "props.path": {
+ "binding": {
+ "config": {
+ "expression": " \"Windows/Statuses/\"\r\n+replace(\r\n\tproperty(\"../TabContainer.props.tabs[\"+{../TabContainer.props.currentTabIndex}+\"]\"),\r\n\t\" \",\r\n\t\"\"\r\n)"
+ },
+ "transforms": [
+ {
+ "code": "\t# Reset the titleExtra whenever the view is changed to prevent the numbers from showing while loading the new view:\n\tif value \u003c\u003e self.props.path:\n\t\tself.props.params.titleExtra \u003d \"\"\n\t# Return new view path:\n\treturn value",
+ "type": "script"
+ }
+ ],
+ "type": "expr"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "params": {
+ "titleExtra": "0 rows",
+ "usesTimewidget": true
+ },
+ "path": "Windows/Statuses/LoopStatus"
+ },
+ "type": "ia.display.view"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "min-width": "1000px"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/ef938b2a07893e216e272e5993cb456db72097ecfec1e3bd85e4d742a0b4215f b/.resources/ef938b2a07893e216e272e5993cb456db72097ecfec1e3bd85e4d742a0b4215f
new file mode 100644
index 00000000..ca24e026
--- /dev/null
+++ b/.resources/ef938b2a07893e216e272e5993cb456db72097ecfec1e3bd85e4d742a0b4215f
@@ -0,0 +1,323 @@
+{
+ "custom": {
+ "forceModeRefresh": false,
+ "setDatesScript": null
+ },
+ "params": {
+ "endDate": "2021-02-11 00:00:00",
+ "refreshDelay": 30,
+ "startDate": "2021-02-10 00:00:00"
+ },
+ "propConfig": {
+ "custom.forceModeRefresh": {
+ "persistent": true
+ },
+ "custom.setDatesScript": {
+ "binding": {
+ "config": {
+ "expression": "toBoolean(now({view.params.refreshDelay}*1000))\r\n\u0026\u0026{view.custom.forceModeRefresh}"
+ },
+ "transforms": [
+ {
+ "code": "\tnow \u003d system.date.now()\n\tcurrentDay \u003d system.date.getDate(system.date.getYear(now), system.date.getMonth(now), system.date.getDayOfMonth(now))\n\tpreviousDay \u003d system.date.addDays(currentDay, -1)\n\tnextDay \u003d system.date.addDays(currentDay, 1)\n\tstartDate \u003d self.getChild(\"root\").getChild(\"StartDateTime\")\n\tendDate \u003d self.getChild(\"root\").getChild(\"EndDateTime\")\n\tvalue \u003d self.getChild(\"root\").getChild(\"Mode\").props.value\n\t\n\t# Retrieve shifts table:\n\tshifts \u003d utils.datasetToJSON(system.tag.readBlocking([\"[default]Gateway/Shifts\"])[0].value)\n\t# Filter for shifts that are enabled and for today:\n\tcurrentDayOfWeek \u003d system.date.getDayOfWeek(now)\n\tcurrentDayOfWeek \u003d \"is\" + [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"][currentDayOfWeek-1]\n\tshifts \u003d [shift for shift in shifts if shift[\"Enabled\"] and shift[currentDayOfWeek]]\n\t# Build SORTS list:\n\tSORTS \u003d [{ \"name\": shift[\"Name\"], \"start\": [shift[\"StartHour\"],shift[\"StartMinute\"]], \"actualEnd\": [shift[\"EndHour\"],shift[\"EndMinute\"]] } for shift in shifts]\n\tSORTS.sort(key\u003dlambda x: x[\"start\"])\n\t# Add end time based on next sort:\n\tfor i in range(len(SORTS) - 1):\n\t\tSORTS[i][\"end\"] \u003d SORTS[i+1][\"start\"]\n\tSORTS[-1][\"end\"] \u003d SORTS[0][\"start\"]\n\t\n\tstart \u003d startDate.props.value\n\tend \u003d endDate.props.value\n\t\n\tif value \u003d\u003d \"past30min\":\n\t\tstart \u003d system.date.addMinutes(now, -30)\n\t\tend \u003d now\n\t\n\telif value \u003d\u003d \"pastHour\":\n\t\tstart \u003d system.date.addHours(now, -1)\n\t\tend \u003d now\n\t\n\telif value \u003d\u003d \"past2Hours\":\n\t\tstart \u003d system.date.addHours(now, -2)\n\t\tend \u003d now\n\t\n\telif value \u003d\u003d \"past4Hours\":\n\t\tstart \u003d system.date.addHours(now, -4)\n\t\tend \u003d now\n\t\n\telif value \u003d\u003d \"past8Hours\":\n\t\tstart \u003d system.date.addHours(now, -8)\n\t\tend \u003d now\n\t\n\telif value \u003d\u003d \"currentDay\":\n\t\tstart \u003d currentDay\n\t\tend \u003d system.date.addDays(currentDay, 1)\n\t\n\telif value \u003d\u003d \"previousDay\":\n\t\tstart \u003d previousDay\n\t\tend \u003d currentDay\n\t\t\n\telse:\n\t\t# Resolve sort:\n\t\tif value \u003d\u003d \"currentShift\":\n\t\t\tsort \u003d SORTS[-1] # Default to last sort (assumes last sort includes midnight)\n\t\t\tfor i, s in enumerate(SORTS[::-1]):\n\t\t\t\tif system.date.isAfter(now, system.date.setTime(currentDay, s[\"start\"][0], s[\"start\"][1], 0)):\n\t\t\t\t\tsort \u003d s\n\t\t\t\t\tbreak\n\t\t\t# Apply:\n\t\t\tstart \u003d system.date.setTime(currentDay, sort[\"start\"][0], sort[\"start\"][1], 0)\n\t\t\tend \u003d system.date.setTime(currentDay, sort[\"actualEnd\"][0], sort[\"actualEnd\"][1], 0)\n\t\telif value \u003d\u003d \"previousShift\":\n\t\t\tsort \u003d SORTS[-2] # Default to second to last sort (assumes last sort includes midnight)\n\t\t\tSORTS_REV \u003d SORTS[:]\n\t\t\tSORTS_REV.sort(key\u003dlambda x: x[\"end\"])\n\t\t\tfor i, s in enumerate(SORTS_REV[::-1]):\n\t\t\t\tif system.date.isAfter(now, system.date.setTime(currentDay, s[\"end\"][0], s[\"end\"][1], 0)):\n\t\t\t\t\tsort \u003d s\n\t\t\t\t\tbreak\n\t\t\t# Apply:\n\t\t\tstart \u003d system.date.setTime(currentDay, sort[\"start\"][0], sort[\"start\"][1], 0)\n\t\t\tend \u003d system.date.setTime(currentDay, sort[\"actualEnd\"][0], sort[\"actualEnd\"][1], 0)\n\t\telse:\n\t\t\tfor s in SORTS:\n\t\t\t\tif s[\"name\"] \u003d\u003d value:\n\t\t\t\t\t# Apply:\n\t\t\t\t\tstart \u003d system.date.setTime(currentDay, s[\"start\"][0], s[\"start\"][1], 0)\n\t\t\t\t\tend \u003d system.date.setTime(currentDay, s[\"actualEnd\"][0], s[\"actualEnd\"][1], 0)\n\t\t\t\t\tbreak\n\n\t\t# Increase end if before start:\n\t\tif system.date.isAfter(start, end):\n\t\t\tend \u003d system.date.addDays(end, 1)\n\t\t# If current time is before startDate, then subtract one day to show last occurrence of that sort:\n\t\tif system.date.isBefore(now, start):\n\t\t\tstart \u003d system.date.addDays(start, -1)\n\t\t\tend \u003d system.date.addDays(end, -1)\n\t\t\t\n\t# Apply:\n\tif startDate.props.value !\u003d start or endDate.props.value !\u003d end or (system.date.isAfter(now, start) and system.date.isBefore(now, system.date.addMinutes(end, 1))):\n\t\tstartDate.props.value \u003d start\n\t\tendDate.props.value \u003d end\n\t\tself.session.custom.timewidget \u003d {\n\t\t\t\"startDate\": start,\n\t\t\t\"endDate\": end,\n\t\t\t\"mode\": value,\n\t\t\t\"update\": now\n\t\t}\n\t\n\treturn value",
+ "type": "script"
+ }
+ ],
+ "type": "expr"
+ },
+ "persistent": true
+ },
+ "params.endDate": {
+ "binding": {
+ "config": {
+ "path": "/root/EndDateTime.props.formattedValues.datetime"
+ },
+ "type": "property"
+ },
+ "paramDirection": "output",
+ "persistent": true
+ },
+ "params.refreshDelay": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.startDate": {
+ "binding": {
+ "config": {
+ "path": "/root/StartDateTime.props.formattedValues.datetime"
+ },
+ "type": "property"
+ },
+ "paramDirection": "output",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 40,
+ "width": 550
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "StartLabel"
+ },
+ "position": {
+ "height": 20,
+ "width": 40,
+ "x": 180,
+ "y": 10
+ },
+ "props": {
+ "style": {
+ "color": "#fff",
+ "fontSize": "14px",
+ "textAlign": "right"
+ },
+ "text": "Start:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\ttimewidget \u003d self.session.custom.timewidget\n\thours \u003d system.date.hoursBetween(self.props.value, timewidget.endDate)\n\tsystem.perspective.print(hours)\n\tnewVal \u003d {\n\t\t\"startDate\": self.props.value,\n\t\t\"endDate\": timewidget.endDate,\n\t\t\"mode\": timewidget.mode\n\t}\n\tif hours \u003e 7*24:\n\t\t# Cap endDate to within 7 days of startDate:\n\t\tnewVal[\"endDate\"] \u003d system.date.addDays(self.props.value, 7)\n\t# Apply changes:\n\tself.session.custom.timewidget \u003d newVal"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "StartDateTime"
+ },
+ "position": {
+ "height": 20,
+ "width": 135,
+ "x": 225,
+ "y": 10
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "path": "../Mode.props.value"
+ },
+ "transforms": [
+ {
+ "expression": "{value} \u003d \"custom\"",
+ "type": "expression"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "props.value": {
+ "binding": {
+ "config": {
+ "path": "session.custom.timewidget.startDate"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "format": "YYYY-MM-DD HH:mm:ss",
+ "formattedValue": "2021-06-01 20:00:00",
+ "formattedValues": {
+ "date": "2021-02-10",
+ "datetime": "2021-02-10 00:00:00",
+ "time": "00:00:00"
+ },
+ "inputProps": {
+ "style": {
+ "fontSize": "12px"
+ }
+ }
+ },
+ "type": "ia.input.date-time-input"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\ttimewidget \u003d self.session.custom.timewidget\n\thours \u003d system.date.hoursBetween(timewidget.startDate, self.props.value)\n\tnewVal \u003d {\n\t\t\"startDate\": timewidget.startDate,\n\t\t\"endDate\": self.props.value,\n\t\t\"mode\": timewidget.mode\n\t}\n\tif hours \u003e 7*24:\n\t\t# Cap startDate to within 7 days of endDate:\n\t\tnewVal[\"startDate\"] \u003d system.date.addDays(self.props.value, -7)\n\t# Apply changes:\n\tself.session.custom.timewidget \u003d newVal"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "EndDateTime"
+ },
+ "position": {
+ "height": 20,
+ "width": 135,
+ "x": 410,
+ "y": 10
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "path": "../Mode.props.value"
+ },
+ "transforms": [
+ {
+ "expression": "{value} \u003d \"custom\"",
+ "type": "expression"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "props.value": {
+ "binding": {
+ "config": {
+ "path": "session.custom.timewidget.endDate"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "format": "YYYY-MM-DD HH:mm:ss",
+ "formattedValue": "2021-06-02 20:00:00",
+ "formattedValues": {
+ "date": "2021-02-11",
+ "datetime": "2021-02-11 00:00:00",
+ "time": "00:00:00"
+ },
+ "inputProps": {
+ "style": {
+ "fontSize": "12px"
+ }
+ }
+ },
+ "type": "ia.input.date-time-input"
+ },
+ {
+ "meta": {
+ "name": "EndLabel"
+ },
+ "position": {
+ "height": 20,
+ "width": 40,
+ "x": 365,
+ "y": 10
+ },
+ "props": {
+ "style": {
+ "color": "#fff",
+ "fontSize": "14px",
+ "textAlign": "right"
+ },
+ "text": "End:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "ModeLabel"
+ },
+ "position": {
+ "height": 20,
+ "width": 45,
+ "x": 5,
+ "y": 10
+ },
+ "props": {
+ "style": {
+ "color": "#fff",
+ "fontSize": "14px",
+ "textAlign": "right"
+ },
+ "text": "Period:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tself.session.custom.timewidget.mode \u003d self.props.value\n\tself.view.custom.forceModeRefresh \u003d not self.view.custom.forceModeRefresh"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Mode"
+ },
+ "position": {
+ "height": 20,
+ "width": 120,
+ "x": 55,
+ "y": 10
+ },
+ "propConfig": {
+ "props.options": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]Gateway/Shifts"
+ },
+ "transforms": [
+ {
+ "code": "\t# Add default relative options:\n\toptions \u003d [\n\t { \"value\": \"past30min\", \"label\": \"Past 30min\" },\n\t { \"value\": \"pastHour\", \"label\": \"Past Hour\" },\n\t { \"value\": \"past2Hours\", \"label\": \"Past 2 Hours\" },\n\t { \"value\": \"past4Hours\", \"label\": \"Past 4 Hours\" },\n\t { \"value\": \"past8Hours\", \"label\": \"Past 8 Hours\" },\n\t { \"value\": \"currentDay\", \"label\": \"Current Day\" },\n\t { \"value\": \"previousDay\", \"label\": \"Previous Day\" },\n\t { \"value\": \"currentShift\", \"label\": \"Current Shift\" },\n\t { \"value\": \"previousShift\", \"label\": \"Previous Shift\" }\n\t]\n\t# Add shifts:\n\tshifts \u003d utils.datasetToJSON(value)\n\t# Filter for shifts that are enabled and for today:\n\tcurrentDayOfWeek \u003d system.date.getDayOfWeek(system.date.now())\n\tcurrentDayOfWeek \u003d \"is\" + [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"][currentDayOfWeek-1]\n\tshifts \u003d [shift for shift in shifts if shift[\"Enabled\"] and shift[currentDayOfWeek]]\n\t# Add shifts to options:\n\tfor shift in shifts:\n\t\tif shift[\"Enabled\"]:\n\t\t\toptions.append({ \"value\": shift[\"Name\"], \"label\": \"Shift: \" + shift[\"Name\"] })\n\t# Add custom:\n\toptions.append({ \"value\": \"custom\", \"label\": \"Custom\" })\n\t# Return options:\n\treturn options",
+ "type": "script"
+ }
+ ],
+ "type": "tag"
+ }
+ },
+ "props.value": {
+ "binding": {
+ "config": {
+ "struct": {
+ "mode": "{session.custom.timewidget.mode}",
+ "options": "{this.props.options}"
+ },
+ "waitOnAll": true
+ },
+ "transforms": [
+ {
+ "code": "\tif value.options !\u003d None:\n\t\tfor option in value.options:\n\t\t\tif option.value \u003d\u003d value.mode:\n\t\t\t\treturn value.mode\n\t# Value isn\u0027t in options, default to currentDay:\n\treturn \"currentDay\"",
+ "type": "script"
+ }
+ ],
+ "type": "expr-struct"
+ }
+ }
+ },
+ "props": {
+ "dropdownOptionStyle": {
+ "fontSize": "11px"
+ },
+ "style": {
+ "fontSize": "10px"
+ }
+ },
+ "type": "ia.input.dropdown"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/efcdaa177efbd2ab3afd7752c522041d786f6fc7f16febd1057c80f6e98154c1 b/.resources/efcdaa177efbd2ab3afd7752c522041d786f6fc7f16febd1057c80f6e98154c1
new file mode 100644
index 00000000..f91b8751
--- /dev/null
+++ b/.resources/efcdaa177efbd2ab3afd7752c522041d786f6fc7f16febd1057c80f6e98154c1
@@ -0,0 +1,1092 @@
+{
+ "custom": {},
+ "params": {
+ "titleExtra": "0 rows",
+ "usesTimewidget": true
+ },
+ "propConfig": {
+ "params.titleExtra": {
+ "paramDirection": "output",
+ "persistent": true
+ },
+ "params.usesTimewidget": {
+ "binding": {
+ "config": {
+ "expression": "true"
+ },
+ "type": "expr"
+ },
+ "paramDirection": "output",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 324,
+ "width": 1600
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "LaneStatus"
+ },
+ "position": {
+ "height": "100%",
+ "width": "100%"
+ },
+ "propConfig": {
+ "props.data": {
+ "binding": {
+ "config": {
+ "parameters": {
+ "endDate": "{session.custom.timewidget.endDate}",
+ "startDate": "{session.custom.timewidget.startDate}",
+ "where": "\"(sorter \u003d \\\"MCP20\\\" AND lane LIKE \\\"SO%CH%\\\") OR (sorter \u003d \\\"MCP03\\\" AND (lane LIKE \\\"FL%1CH%\\\" OR lane LIKE \\\"RO%1CH%\\\"))\""
+ },
+ "queryPath": "Status/LaneStatus"
+ },
+ "transforms": [
+ {
+ "code": "\tcou \u003d utils.getRowCount(value)\n\tast \u003d \"*\" if cou \u003e\u003d 2000 else \"\"\n\tself.view.params.titleExtra \u003d \"{:n}{} rows\".format(cou, ast)\n\t# Return data\n\treturn value",
+ "type": "script"
+ }
+ ],
+ "type": "query"
+ }
+ }
+ },
+ "props": {
+ "cells": {
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "1px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "1px",
+ "color": "#000",
+ "fontFamily": "Helvetica",
+ "fontSize": "14px"
+ }
+ },
+ "columns": [
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "start_timestamp",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Start Timestamp"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 150
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "end_timestamp",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "End Timestamp"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": "value"
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 150
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "sorter",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Sorter"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": false,
+ "width": 80
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "lane",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Lane"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 110
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "available_count",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Available (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 110
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "disabled_count",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Disabled (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 110
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "full_count",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Full (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 100
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "full_warn_count",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "50% Full (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 110
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "jam_count",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Jam (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 100
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "faulted_count",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Faulted (#)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 100
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "available_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Available Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "disabled_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Disabled Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "full_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Full Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "full_warn_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "50% Full Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "jam_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Jam Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "faulted_duration",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Faulted Duration"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 140
+ }
+ ],
+ "filter": {
+ "enabled": true
+ },
+ "pager": {
+ "bottom": false
+ },
+ "rows": {
+ "highlight": {
+ "enabled": false
+ },
+ "striped": {
+ "enabled": false
+ },
+ "style": {
+ "classes": "table/highlight"
+ }
+ },
+ "style": {
+ "fontFamily": "Helvetica",
+ "fontSize": "14px",
+ "fontWeight": "bold"
+ }
+ },
+ "scripts": {
+ "customMethods": [],
+ "extensionFunctions": null,
+ "messageHandlers": [
+ {
+ "messageType": "export-data",
+ "pageScope": true,
+ "script": "\tutils.downloadCSV(self, \"Lane Status\")",
+ "sessionScope": false,
+ "viewScope": false
+ }
+ ]
+ },
+ "type": "ia.display.table"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/efe2c62559adb70420a86fca8be17e883df9b0bd4443ffb33f518ab26ede7175 b/.resources/efe2c62559adb70420a86fca8be17e883df9b0bd4443ffb33f518ab26ede7175
new file mode 100644
index 00000000..46a4a7ea
--- /dev/null
+++ b/.resources/efe2c62559adb70420a86fca8be17e883df9b0bd4443ffb33f518ab26ede7175
@@ -0,0 +1,75 @@
+{
+ "pages": {
+ "/": {
+ "title": "",
+ "viewPath": "Windows/GraphicsWrapper"
+ },
+ "/alarms/active": {
+ "viewPath": "Windows/AlarmWrapper"
+ },
+ "/alarms/history": {
+ "viewPath": "Windows/AlarmWrapper"
+ },
+ "/alarms/hitlist": {
+ "viewPath": "Windows/AlarmWrapper"
+ },
+ "/cameras": {
+ "title": "",
+ "viewPath": "Windows/JamCameras"
+ },
+ "/commission": {
+ "title": "",
+ "viewPath": "Windows/Commissioning"
+ },
+ "/config": {
+ "viewPath": "Windows/ConfigWrapper"
+ },
+ "/custom-reports": {
+ "viewPath": "Windows/CustomReports"
+ },
+ "/help": {
+ "viewPath": "Windows/Help"
+ },
+ "/statistics": {
+ "viewPath": "Windows/Statistics"
+ },
+ "/status": {
+ "title": "",
+ "viewPath": "Windows/StatusWrapper"
+ }
+ },
+ "sharedDocks": {
+ "bottom": [
+ {
+ "anchor": "fixed",
+ "autoBreakpoint": 480,
+ "content": "push",
+ "handle": "autoHide",
+ "iconUrl": "",
+ "id": "footer",
+ "modal": false,
+ "resizable": false,
+ "show": "visible",
+ "size": 100,
+ "viewParams": {},
+ "viewPath": "Windows/Docked/Footer"
+ }
+ ],
+ "top": [
+ {
+ "anchor": "fixed",
+ "autoBreakpoint": 480,
+ "content": "push",
+ "handle": "autoHide",
+ "iconUrl": "",
+ "id": "header",
+ "modal": false,
+ "resizable": false,
+ "show": "visible",
+ "size": 60,
+ "viewParams": {},
+ "viewPath": "Windows/Docked/Header"
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/.resources/f1bdfce353418dd494505dc1049302fe514d59a6cf6c7f12c7862114b78d4ff7 b/.resources/f1bdfce353418dd494505dc1049302fe514d59a6cf6c7f12c7862114b78d4ff7
new file mode 100644
index 00000000..cd05cb73
--- /dev/null
+++ b/.resources/f1bdfce353418dd494505dc1049302fe514d59a6cf6c7f12c7862114b78d4ff7
@@ -0,0 +1,246 @@
+{
+ "custom": {},
+ "params": {
+ "view": "Windows/Graphics/Overview"
+ },
+ "propConfig": {
+ "params.view": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 750,
+ "width": 1450
+ },
+ "loading": {
+ "mode": "blocking"
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "children": [
+ {
+ "meta": {
+ "name": "Graphics"
+ },
+ "propConfig": {
+ "props.path": {
+ "binding": {
+ "config": {
+ "path": "view.params.view"
+ },
+ "type": "property"
+ },
+ "onChange": {
+ "enabled": null,
+ "script": "\tself.session.custom.currentGraphic \u003d currentValue\n\tself.getSibling(\"DexZoombox\").props.zoombox.current \u003d 1"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "overflow": "hidden"
+ },
+ "useDefaultViewHeight": true,
+ "useDefaultViewWidth": true
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "DexZoombox"
+ },
+ "position": {
+ "height": 10,
+ "width": 10
+ },
+ "propConfig": {
+ "props.zoombox.max": {
+ "binding": {
+ "config": {
+ "expression": "coalesce({../Graphics.props.params.maxZoom}, 4)"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "view": {
+ "height": "750px",
+ "width": "1450px"
+ },
+ "zoombox": {
+ "current": 1
+ }
+ },
+ "type": "dex.controller.zoombox"
+ }
+ ],
+ "meta": {
+ "name": "Window"
+ },
+ "position": {
+ "height": "100%",
+ "width": "100%"
+ },
+ "type": "ia.container.coord"
+ },
+ {
+ "children": [
+ {
+ "meta": {
+ "name": "mhs"
+ },
+ "position": {
+ "height": 30,
+ "width": 100,
+ "x": "calc(100% - 110px)",
+ "y": 10
+ },
+ "props": {
+ "fit": {
+ "mode": "contain"
+ },
+ "source": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAH8AAAAgCAYAAAFMYpenAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAABrWSURBVGhD7ZsJlFXFmccfqCGJxi0qCri3oC1bv3vr3vd6AQURccEkShITt+hIkhONW6ImMeI2GhUVxyUxSmJiNBM0GhFRQZNJNHHfFxRBoIFe3tIrTXdD93vz+1fXfbxuuoE4MzmZc/KdU6fqVn31VX1LffVV3XtjEWRKSnZWXh+PH2wr/h5YZ8J8PhYb3GqSWT1n/YDHWGzq1Kk2P+qoo6YnEonPkDfpedKkSaWTJ0/++Mgjjzw6NmvWrMENFRX7RZ06w2S+3vd/ozJI80B+BcRTHIH80UcfnRcBylMpbxBerIHO9YlEhfLWeHhxR5CwxCAwf+LEiZ9W2RFoVFkESFfT/qKeC9BQWrGfK247NJtwVSqe+LcNTL06kdg964W3przk5VC/fObMmTsIR9OGjVEqiw1Gv4I0dsqUKafG1LHW90+A0Mvrg6QVpuQgAiC/A1J+2rRploAIiYAjlIO9veE//GODF/y22Q/mZX2zoBGN1AZjDwThR0IURARUFgHSKXSuhPhTFkGw3oQfdTBy1kv8PpVMluUS5fl1CFMzbCc1ecFjDjVGx7MnTJhwmHssAPVzIbw9A+wHB8+5ainjNdoOdOWHMI9GuFlzxBFHTLQIGiQVDy7IhuG0tG9WSIvzZszYrskPrtBEhNPoByvhsktlJ56NEO3QM4Pueswxx+R5zkvb4haclsrKyt2UxLU0T/1pwikMHEEXg9R55s5MvDLMxP17qBrUaII5rUxkje9b0TGprhYT1qisCZDmqyyCUVmijibAoNbkBNEE3KMF6s4lvekeZcv+I20M2E5Sji4fVH0uWSEVNNeODawIBQx6MoP8wD0WgPpHZ8yY8amqqqp9mJTtL2CgO5HSiOOPP/6zlBczmVraf++aN8G7paW7u2Is73k7yC9kDjlkuKv6vwMtg66wPJ9PVlp9o+v3ZYAbsQ3Ebg1xjTGft8gABvS+K/YCuHtaOdy9QtkuamxjT8pvqCw1IKWVMkLKf1VdbMW4cQdosCY/XL3q8PjBGNvjrMl8nTHfUnu6rHwYzq5Lk7EdAK3HYhELGKSLurdUZpBOjG+kyhK97ERlGSqqO4Xn0UzgP1QXazWJJ9pxACq3xMMftzAZGWLKmJE4yFryO+tLzd6tWt/x4EjhaQIiyoAn6pnBXyJtKJ4AdhDHIHdnAodGE3CO5GEZqp4tNPjm/ZRn1qq8nsHXw2ldZeVBKd8/P4NzTXmBNRYZZioIzlZZ1i5DcxzNYYAuCE+Gq7fVTrldg0aJZzsBD7tiks8ee+yxWhULVBdrDcJ5snyVm0xYny0zSZXlDpv9cE2T7x9UF098TWqJNitNAGvfDu5OU5mJDIHgF6IJMGgnZWu88hGahMrFoMmTDYrlhg7dsRMDbArC3Joy/wT2opMkbum83kzcm0n9Qe5VNtLTddMEVEYS+yrXBLZmA+Tv44SmIrXpkoLqLKweE4zoDJJtkoRSR5Bc1zJ+/J71ZeYYJJRjVfzOoVqA0DNkg3ueegCiBzMJa1iI/JHy8vJhKmvtMzErbuovA+djnpeRjlDdZrDW8/ZrCsMfrTOJ51iC7RkvsLuzIBWv2qc5CK5p9ILlUtEGPKgkpVXUEoQvZ73gm/T/rEPvBTI8Bh/qHrcKmjjS28M92siBSX8eQ95dZVcdwWDVqz3STATQ2F5aom2kEs8HkHZyzZugzgtOxM7WW5eAyjF6Sb4lG/evllDWh4nlzkPncQs5FsiyBhMshOlnMI/aNgTRQFs3QqF+EU71U460BQa/UmpHe8+RdnTV/QLa/J5w6bOEhWMFyqQPdat4vcoW0QHPI9SmGIy+h6sOgQ+n/wrZuuopd6gv5dxxxx0nvB/bzoImr+JyTVzMtQVhdSoej7umWNokvq4oQW1YxIZsEMxwTbEVE8ftmg6CS7Jx82U9Zzxzo3AlQEx3CYIraJAJXK5Jktu4jskUwpUIWDdy1GtJkZt7K3JZTHgUdZ30ayIdYjs4kLlTZ/tgZXbP1XLQWoXGQovUBwqWwkoc1OSbN2XSaK4JjzNG9Q1BcFq+osoyrqCA/INMSbBzC0zB3FN5BCafLavIemaupQVRopmHVKfdKxMEp6teIAG4CT1FWqQyE05FYRV1v1cdjKSZ/I1Oa28XC4C2dlIOAa4ifUhaphw6KyQApUgAWMX2lO8WHWkcnG7an4bmiX2XSYzI52UJgPCrfY2fLFddelz5kWJc65xIqJHA88mGeFC1ivCKJbCk2WjdJ/IE4mvSnv9I9YjEZ+pLJ+6Ez3hDy0hLiBDvODsAwMCRAGzkBONJJtQgrSnJKpjwTWoj/4JwyfsKoJP+baTTeaZ50hS86mTqvyzmlajrFXVFIFz6PcJY7aLNeHe6JkwXTSkGdWbeyfNZS0tKhjSxkzqU2CwcTcqUn9Pih12EC1bzOgu45lhd3HwR02+S+YtW1vN/Ketyzb0EUKwBJn0Dk1qijdVVDSgA8OwSiLaYCOQDxLwEGQmAuj0YqxA/RQDjh8ovgL+Ex03OdNUY/yA23vfk1eXMtB2hyW7ydiwhp1OBGFeAjpBe01JIe+ERG3kWrhhXXE3b2rp4POHIFoABrznhhBM08NObmWAfQKsnOdxlkRMUY5o4TG4UExbRgby82iQ0LMsuYQQ2Xc9ypuB3kTrkAJ322xFOwTo3g1QiMRFmrycsupegYG6HSd6L87u23ktUOBQLRKgjWQKz074/c228quA4/9kA4Q2VlSC8vVzV1iHvxXZQCI4Z26NtMbSM9PZo5ICi0Kxx7NgDc6NGfc41/f+FPF4za8wxLWH4AM5wBXt7ppYjomuOZYP4cW0msQCNd8nU5TS1XLImbGwLy+euMsbuv/3AIKS/twJh97xVcIH2EPeoyG9H1v2eCo5cVQHkI9TGGJsFN/IBLIWDMf1RtJdoHlT3DqKWe94uBDP3cRLYIMZ0NGEvb6tzQTkM/wSn1qm1zvpWm2VcJwc9dxNHrw/CVDpuvm4JFoHBghj8edbyDa5qi8D6NazPD5m4PeYIMN+rqXuHugt5LDhVAQxdCH21zXZVdn/n+Tz6vUG/FO1N5Gnm8AHCuFXCtIjy8mx/88WYi/zyzUG4AS//Wm0YHoBmr1JwpDbdflHfTPT3PLHCE5zTXoP5Lp1QJASEtl6RpCXsgAGHMdhKBs/h1M5w1f1CRUXFfuB/yGQxxImFnQVGfuuittt57MU8bberDUafdFUS1qUaT3QYW0e0VlKXO361aE4WMeUHsxTI6Lynk0/GNw/We2FlfWnpTnWeN6XFBN09OwHBjB8uqPF9Yzs6SMWTx2vHcPt9vtUPP24ZX7mna7bMk5YxCXncJgTQy3lGIA8P3kJNmLwbRr/hmuTF75fHpu8tPPZlfo7awIluZnYkrRUdGP05tBLkugAMRJP8F+wqQ2PZw/19mXSd3au1fv3gNkVvIlI7dMqOxAEviym1IYDF+aKDTUMQryLKkyZitabicM4JnFXZFpPl+AHzbYsERMyTbHBD/hFps0tHJnWLti6YGZB5cG7msRfztN1azDwWsyv9FeOL1mYnPC2JfD4/KIYWp3UGiQ5pDAEskbaXH8X6N+a6dDy4WYxLMK0myGbGjy8lGNo5ZczxOMMFtOVk6qvGjNlNRNN+cLV8QJusxwv+bEcCmEiBeSbT5TS7mEnaK1oB9TPRVk44MCgz7Zd58jtwbrvh5HZXUhn8u4qZh7lPQe9FF9isoXwROJufODH1szD1bhvMxIPbVLdi4v6fhqkaeXMYUtDTlfXCi9TG2j4TYVinKKEoQqxJJvdXWyaRCPAD9gic9sxq7R6qZwIR8zkmeDsTWaeJqax2aQfGW52mfgveW7IQ2gvMU3+/6sCT44pifRvvg99MfYF5AeVy6lZIKO6kuZJxr4POpkixPm6+rUhOGiNctUdAXbsy+VelVTFPnkt5wYV5ztmtY5N7NXnBO83OImzIW9UT5FSP9UfLN4h5DkCrczhS1UfMuwmWk85zjHa7Cb2tSYLzN4SyM3UvitH+mAfHLh3RUorqHO0C8wLoDCddQ3ud6DtLSEGrx+nWlfmnYqZdbr27i438oLQXLJaHt57fhMub4okr8t7MHRpM8rsdOD4OPtJ6W7MJVulWRr1YDueIcR2QEJq9exIwYIF5HNZU1TGBX2oymrwTRC3LoMRtUdqeNmNe+OQPgXcUTE1Rgp4u2h52ltSL+QjA3wOcS5jDcie4Np7HsuYTEzHvDmkRRhqqyxIl6pA2wcPtQfh6Km7OqQtDu17q4+UHYwWN2tYkrJTvX5/1/X3rRodD6yeW2hOedgtd3jYYU9jTi5lnIlZQAb6DCfxNjDOhdZFQYGJIf8xTjrz99a6qAODfULzmBwLa9wf3LY3J2GfGcqPKP0cs/5bMXlpr9MO/YMb76HRXfFNTfUhiONp+QczJGgh6lry6zz7W8+ttD23z1L9nvw/aOQAVDiH9MS+grJsbrcVLXNW2ML/VrQ4YxHj7yfG55wKA8wcxTz7TVjQQlKDJbmlfDLQE4bJ63//eWs7zsoyMCX+kvdstAR1fO9LGTG6Jl1dlPHMHzH6kE57We4/Ww03XR8BAzAuYxMGlRUIW8wjjdTFvteOA8q8dg5ttdRHz4Nh3UmKa/gsZ83HwTydirFKi/Rpw17lltmkeqXjwQ53JxZzWrF69YQ2dMNUhq5DGdZmhckOQOFd9OPnNz5dXWoGpj3YHrOiuFUVbmACGRzBgtZvgCa66X5AgwFkqD00/+6pBQN3DOu7CzE957MU8bXeqjVw3vxpve5h7dvr06dafIIhO8k75Bc0BJTwRHZkLUF/mfwPmV7cbzvEw05N64nfybphclvXDrwpXlxYccp7Il1fkNyAghPORbnctoT5A6KmXbT8jzWfy41z1gADepUxQWpvkqsTQBdQ9SZ2WQi/m0eo04YNTePVFXRJh3IcQ3iRf69IrPF/Z3+HIgu7Z0344k2jt5+wC9643ibnE/XfXBsHZes/i0CzzLdRxnr9WQU/xJeY/E6BtOdbhCHSYTn+uettB+362qmrf+spEBRHeyZm4fwHx/w0EPv+eLvNPaygrs0FOX5DDrC4rK2FXmEaf8xs8c2urSd6LJf0C/2GTLZvgFwRHdxNbXFVnzNdrCZaqSzddp/0L/sGg6NRGrAR+hACLObjV4tPWsTFssJ8iJCt0wm1nl3soOvZHkBprRmbLwotYPYtYOXX0a9dmIffR40J63Mkm19JT30YduBs7g2QLxvBByjN3p8b70xo8bxdHeougzYLlPx4rvwBrv5gU72/H+6Qwa9as7aEP2UlyS2fjP3vdqwrKy8s/h2uaQJoJ3rm4mTPIA61Ah9IvyBXpKgP8s5i/+um4M4nygLyrjd0/1FjgX0u6i7q5pF8y5lyef0q6ifR90knUlQ4dOnTg90krxo3blZ3+SxljFuDHW3Ps3orpFAlEEb1eVeglPEawTp+WrA6CcXKDzaZyJK5wNsqs1l2Pko4/0eW3gmMpmb2jC5x2yjKKDevMJiPQyUHf+wi/m/7UdXKOfLbOD0+tLvryoD+A6WEweSWCrnGvMJbC8MXsBQV3/QlBodMh0J4t2tqMeV4hoUO77+Z+KGP+pzZaFCq8TvBuVz3NvfaqYqB9BPTviPoxjjbwp+jb94JwMEYyBrrXkd6FR4srftVPeZT0HNW5YKOapL2z95WuXDT7lyHOvY/V2qyQTQqQInTMk2Ka/GA9Yd1rKPTBVJm5kS3gbHmHtRXefo3GnImS35VhKOohDrbGYs/MnIUJJF6n7uf1XuK8Gs87dm0iUbEmmSyvKTMTODrOYAu5sskkFuJl6toCd0TU2OTyMhhKK97nHmLqQNuQm3YvQBjDENaPyZdJiC7S0aufhTA97ZPsedDahb5nQuNVaHW7aCnH81uMdVbfqIm6UaTfgLNBuOA1szpvdW9ftqh8xrmN8aKITJHd49QVXk2Bsz20TgRnsdqL5lJL/ifyX4N/F/kc0h2U76Necf1LzF1fsmSov4qy/QjBghSvz2qyJvgvBL9RK10rVmHv+iDsRgmrMn5wcyYeJHTx6bpZ0Pv9lAlv0pW3DESGon4yHJTVqm0BxR6bxh26Lr1A7/7TZWXDmiord3u3dAYGWD4qE09qq3kfz6MI03qOddYgwhynyIXNGE0+trkBSPkwp0++dOFhz/xKMgJy3eLegsD0lmdAJRTBduBXQu9BBNgS0ZPQybupl/K/0degnPLvB69TygFX95e3bIvyoTlHYxQpf34f5e9K3a3grROO+KL8NHXH0tbLAzkYpOuCESNG6Jr/IHjwoHvgySefvGnOek/R6ifv6wjK19vX+c7tktpw6w9nE5UVeoeZnxHbDiUOy5SVHbZiXHhAvVdZgVH8rjUIW7TaWbl6fc/K1wnYLENR5xZ/hyUjWzk2OHBt3EzF2L7fGgTzWNFLm0zQiNe5Je1eBM2aFRust2hpL3hScYU1JAxKXgWDyIJ7T7Xvj7ZEiwDB9at8lZ0XkLAU7muP3Oz9ZgSig0AvI/8o6itl0OcTKR8FXodytrj1uFjhJ5rvFpS/E+NeC05Grt4p/yPSbPCOpF63830/ctkyEI1/BXf+V442G6VErXzc7Qbc9vzqskThJPziMSU7NycSp4P3ZleYXI3ia4jQN8q963QvF92KAbDin03FzfH6IjBPDEEc8IUWP7gNb/IC+/tqFN62HgNRTKD3wTIYYoyftSaThb0I9/4ZbQdpP9DXRHYbUFLcgFF9mImbLzrUAoh5BGGV71a79rmPSUupb5MiJTTyJoT7IMKd4LpakAKo/yK4z4Cj972RgOug8TZ5SjTAyemZ/v0qH7z7Gdv2p6yPyp6nfjYe4BKXfliUorrrwPur5hzNva/ygUHQ09dIN1BvDcDxo9TCvPR51hOkq0gnRt+YDQi6pq3zzLcaffMeSshpdSkoY9XVpuL+rMYwPMChxl7V551+eBJKXyIPEe3LKZIMpo2TQHMQPlnneSfqtKA+uu1oM8bHQG7Co6xUH61iaNitRWPJeOrj/gM1eBQ7kINMWXhY2phf6Y5ceOor48Tg1ugGlTF6uToEVlC+W3VaoQ8gxC+RK+r+M0LaWLxqaLucAOoQVtVonuVSs2pTf3DXQeNhcKbTV0bxfCRsyltTfrvwtIIjesXBWN/kxrNKVx/l0OqrfAs6wVAfkPRd+nPgas8v3OAU0cqQ/gLO9eSTtW3QvdfWM6gubs4hmHubVdkt4SpIQ8BZjOLG6EtmwazYrMHs+0fT9hcUZt/iSIFSit4B5ujH3p8iaPxV1iSO0epVv0zZhMOIJ+5k9dfpmKg+0b1/LlFh++Ip/ihXz6nBGo28Rg3P9V7weBN4cv3RFRqGszIdN18Dt9e+D4O9lC8h8vwYQrQrnHx/2m4k1UohzgD0WdsKcr3x6ZDQJETq9Pb4ImhYb4Sgp5FejwRLeYvKFy3Rh85GcOV9niX9gfpHyB+Lkp6V6LeI54/BLxgBdf0qvw8MBk8fb04j1xfmjzJnvezZqLnqZOJkIT6fpf0k8k3Hx7oyfzqu+pkOXL2Eq1VG6kLBL9SU+adK6Q41tnZMUIVXWIjiuuSyWc3dxAUftpjEr3Hd35XCOAWMUCAnr5Ii2MMYnmpn7xZtKV7bg1Z72gQv6dVfgzGX4ca/ywligvppnEZiCjzKT1sIJDUfGZr1En7QnvHNgr53CwKY6k/5+qNDW5e1eN2d4mL1Ce1C2jslaOEpOWU10+de+ujTI8u3W2n6PPeNbVE+SXu+jfahpz3/RvqUYFRDREt5lPSsxNj68n42+JGytlX5vUA09WqTvh60LoXm86Q2N+8cdBfzfLxDj8W0uuWWEW6jU6hVkFZbgxe+k/HD81eV9XwKnC4vG5Y15lso+kbc+zezY/3RuZJNH5dEoO/eWZ0XQ/cdeRJdjOv4JwNgBW/A2H63Nh6vcugF0Jd/ihcY81H6tkUnD/XXtyEYwytNxnx5adDz91ExwOyAykfAvbxEGIb6jOlCcD8QrpIEhdBOoa7XxYoE+gmU/78e7TvYlpNKAaCpGOFReIiM+wNo6oVBDx1d0NTF42Nwp/cQzDXYb1SkeLfaMIS2RhM8zz57OSuzcqAbN6342iCYBJ1ZGNBLKKxdN3n2zE8SXb0w1BcPNezn6rNs7Ni9aoKgtJ7tpN7DA/jmWSL8hijCV0whA9AxstGYl+rj8TNyHF3sgH0AxrZZ+QLq9btRApwryb+HUMa6pl7wz6J8zZf4pAo8fZBwMe3Hkvanvr9jnl5u6GJKHy7Z1+QoXyv/NfqcRnPvuTQfaj5f5wUXNrHa29j/N6A4uWe9sravuVAC7rcdhazEXb9EvgjFPklAtojyK3pv34pblsFopWrFqr8LIvX30wv1cXOG/TqsouJwto451C8Hr5O2jdZDWCW720Se3RdiNcQad9X4SSNDddPdDBDcMBi9gvxj7XVSEswvQAjT+lP+tkJJSckQaHxJQhRdrSDovotSz+6rfBShG74HGHujuwlsRdhzOEkodhpw7u6/gtul9Gju0FlA38INnz73o+6rtNnAk6SvXdL0e5tcgd0i0lOUF5H0M89qUrdoOeVneb4ZQxx4K6kuTZSwr19CgPY3lNPWlUjal7RSqlajAjUpKrrClXIjxbH3g5e0LlpfuNDWRN2fMJbv6JW/GyKmO/v2MLGgO1mR0ztR0RYdeQf1Jf5oIXh8IxUPrtctIkrf6vkVxuzKh8klMKtPhPR1+yOkqf8T5asvita3Es+hmHaELrr2hm+glY/A28DVt9UN9LuFeW1x5aP0vcC7gn719FPg2cHzY8WKcj+tjKFeV7sfwF8jqUuGIOXKaKLklC0j0hFXf+nod9gZGOe2vX18tzSxu/0t1oSXrfOT81r98D1WZZsU5RRr9/CNUjRJrprtAaUl3mJvfqDZDy7QraBWuiNpQatXXwKw7z+KIXW0BGErK/09vM0itoW78Sbf0Y9bf+9rUq0Mjk3DYdaDUV16VCKAUQhniy9VtgWgMUS0oRvI9SLE8U6QvRQqL0F9CcZSQU5mX7wM6JqLYDDz3UXGo77OvY/sa1wC1elDXmiOBm8KfU6nz/nM7VLqfqCcuvOo+wo0E8hD37FvFpf93aBvW7SC2dsPVKrz/YP0R10j5bZDEsMbx43TWXKroKOcjOL18eP3XOp+Hf8X/CMhFvtvEdz4lYWIqWMAAAAASUVORK5CYII\u003d",
+ "style": {
+ "pointer-events": "none",
+ "user-select": "none"
+ }
+ },
+ "type": "ia.display.image"
+ },
+ {
+ "meta": {
+ "name": "Label"
+ },
+ "position": {
+ "height": 20,
+ "width": 285,
+ "x": 60,
+ "y": 10
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "path": ".../Window/Graphics.props.path"
+ },
+ "transforms": [
+ {
+ "code": "\tpathParts \u003d value.split(\"/\")\n\tif len(pathParts) \u003e 0:\n\t\treturn pathParts[-1].replace(\"_\", \" \")\n\telse:\n\t\treturn \"Unknown\"",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "fontFamily": "Helvetica",
+ "fontSize": "24px",
+ "fontWeight": "bold",
+ "pointer-events": "none",
+ "user-select": "none"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tzoomBox \u003d self.parent.parent.getChild(\"Window\").getChild(\"DexZoombox\")\n\t# Set new angle:\n\tnewAngle \u003d (zoomBox.props.zoombox.rotate + 90) % 360\n\tsystem.perspective.print(\"\u003d\u003d\u003d\")\n\tsystem.perspective.print(zoomBox.props.zoombox.rotate)\n\tsystem.perspective.print(newAngle)\n\tsystem.perspective.print(\"\u003d\u003d\u003d\")\n\tzoomBox.props.zoombox.rotate \u003d newAngle"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Rotate"
+ },
+ "position": {
+ "height": 25,
+ "width": 25,
+ "x": 32,
+ "y": 8
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey",
+ "pointer-events": "all"
+ },
+ "text": "↻",
+ "textStyle": {
+ "font-size": 20,
+ "position": "relative",
+ "top": "-1px"
+ }
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "Icon"
+ },
+ "position": {
+ "height": 25,
+ "width": 25,
+ "x": 5,
+ "y": 8
+ },
+ "props": {
+ "path": "material/help_outline"
+ },
+ "type": "ia.display.icon"
+ }
+ ],
+ "meta": {
+ "name": "HUD"
+ },
+ "position": {
+ "height": 40,
+ "width": "100%"
+ },
+ "props": {
+ "style": {
+ "overflow": "visible",
+ "pointer-events": "none"
+ }
+ },
+ "type": "ia.container.coord"
+ },
+ {
+ "meta": {
+ "name": "TooltipOverlay"
+ },
+ "position": {
+ "height": 25,
+ "width": 25,
+ "x": 5,
+ "y": 8
+ },
+ "props": {
+ "status": {
+ "tooltip": "\u003cu\u003eZoom:\u003c/u\u003e\u003cbr\u003eCtrl+MouseWheel\u003cbr\u003eCtrl++/Ctrl+-\u003cbr\u003e2-finger Pinch\u003cbr\u003e\u003cbr\u003e\u003cu\u003ePan:\u003c/u\u003e\u003cbr\u003eMiddleMouse\u003cbr\u003e2-finger Pan"
+ }
+ },
+ "type": "dex.display.tooltipoverlay"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "classes": "window"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/f2ca90d03a77d7c61f6967ae9fd654d82fca2c41c01cd5d874ab336547944790 b/.resources/f2ca90d03a77d7c61f6967ae9fd654d82fca2c41c01cd5d874ab336547944790
new file mode 100644
index 00000000..3d166843
--- /dev/null
+++ b/.resources/f2ca90d03a77d7c61f6967ae9fd654d82fca2c41c01cd5d874ab336547944790
@@ -0,0 +1,41 @@
+WITH SCANNERS AS (
+ SELECT
+ DATE_FORMAT(MIN(s04_timestamp), "%Y-%m-%d %H:00") AS start_timestamp,
+ CONCAT("H",
+ CAST(
+ TIMESTAMPDIFF(
+ HOUR,
+ DATE_FORMAT(MIN(s04_timestamp), "%Y-%m-%d %H:00:00"),
+ DATE_FORMAT(LEAST(CURRENT_TIMESTAMP(), :endDate), "%Y-%m-%d %H:00:00")
+ ) AS CHAR
+ )
+ ) AS hour,
+ COUNT(*) AS total,
+ SUM(scanner_status NOT IN ("No Read", "No Code", "Multi Label")) AS good_read,
+ SUM(scanner_status = "No Read") AS no_read,
+ SUM(scanner_status = "No Code") AS no_code,
+ SUM(scanner_status = "Multi Label") AS multi_label
+ FROM package_history
+ WHERE s04_timestamp BETWEEN :startDate AND :endDate
+ AND scanner=:scanner
+ GROUP BY DATE_FORMAT(s04_timestamp, "%Y-%m-%d %H:00")
+)
+SELECT
+ start_timestamp AS time,
+ hour,
+ /* Counts: */
+ good_read AS good_read_count,
+ no_read AS no_read_count,
+ no_code AS no_code_count,
+ multi_label AS multi_label_count,
+ /* PPH: */
+ good_read AS good_read_pph,
+ no_read AS no_read_pph,
+ no_code AS no_code_pph,
+ multi_label AS multi_label_pph,
+ /* Percents: */
+ ROUND(good_read/total, 4) AS good_read_percent,
+ ROUND(no_read/total, 4) AS no_read_percent,
+ ROUND(no_code/total, 4) AS no_code_percent,
+ ROUND(multi_label/total, 4) AS multi_label_percent
+FROM SCANNERS;
\ No newline at end of file
diff --git a/.resources/f32ef7a52e416470388fb1240524e73b0ff3b0975e4cf98fbefef9386b791fcf b/.resources/f32ef7a52e416470388fb1240524e73b0ff3b0975e4cf98fbefef9386b791fcf
new file mode 100644
index 00000000..b79dbba3
--- /dev/null
+++ b/.resources/f32ef7a52e416470388fb1240524e73b0ff3b0975e4cf98fbefef9386b791fcf
@@ -0,0 +1,3450 @@
+{
+ "custom": {},
+ "params": {},
+ "props": {
+ "defaultSize": {
+ "height": 1080,
+ "width": 1920
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "children": [
+ {
+ "meta": {
+ "name": "MCM01"
+ },
+ "position": {
+ "grow": 1
+ },
+ "propConfig": {
+ "props.source": {
+ "binding": {
+ "config": {
+ "expression": "\"http://127.0.0.1:5500/MCM01.svg?var\" + toMillis(now(1000))"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "fit": {
+ "mode": "fill"
+ }
+ },
+ "type": "ia.display.image"
+ }
+ ],
+ "meta": {
+ "name": "FlexContainer"
+ },
+ "position": {
+ "height": 1080,
+ "width": 1920
+ },
+ "props": {
+ "direction": "column",
+ "style": {
+ "pointerEvents": "none"
+ }
+ },
+ "type": "ia.container.flex"
+ },
+ {
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "page": "/mcm02"
+ },
+ "scope": "C",
+ "type": "nav"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button_0"
+ },
+ "position": {
+ "height": 36,
+ "width": 124,
+ "x": 1686,
+ "y": 811
+ },
+ "props": {
+ "primary": false,
+ "text": "MCM02 - NC SORTER"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "Camera"
+ },
+ "position": {
+ "height": 30,
+ "width": 30,
+ "x": 30,
+ "y": 323
+ },
+ "props": {
+ "path": "autStand/Equipment/Camera",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "Camera_0"
+ },
+ "position": {
+ "height": 30,
+ "width": 30,
+ "x": 806,
+ "y": 372
+ },
+ "props": {
+ "path": "autStand/Equipment/Camera",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "Camera_1"
+ },
+ "position": {
+ "height": 30,
+ "width": 30,
+ "x": 1482,
+ "y": 660
+ },
+ "props": {
+ "path": "autStand/Equipment/Camera",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "Camera_2"
+ },
+ "position": {
+ "height": 30,
+ "width": 30,
+ "x": 1819,
+ "y": 339
+ },
+ "props": {
+ "path": "autStand/Equipment/Camera",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL15_1_SS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 35,
+ "x": 62,
+ "y": 577
+ },
+ "props": {
+ "path": "autStand/Equipment/SS_Button",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL14_1_SS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 35,
+ "x": 269,
+ "y": 683
+ },
+ "props": {
+ "path": "autStand/Equipment/SS_Button",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_1_SS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 35,
+ "x": 343,
+ "y": 268
+ },
+ "props": {
+ "path": "autStand/Equipment/SS_Button",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_11_SS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 35,
+ "x": 1880.99,
+ "y": 609
+ },
+ "props": {
+ "path": "autStand/Equipment/SS_Button",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_11_SS2"
+ },
+ "position": {
+ "height": 20,
+ "width": 35,
+ "x": 1877.99,
+ "y": 691
+ },
+ "props": {
+ "path": "autStand/Equipment/SS_Button",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL15_1_EPC2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 99,
+ "y": 551
+ },
+ "props": {
+ "path": "autStand/Equipment/EPC",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL15_1_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 31,
+ "y": 551
+ },
+ "props": {
+ "path": "autStand/Equipment/EPC",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_1_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 314,
+ "y": 271
+ },
+ "props": {
+ "path": "autStand/Equipment/EPC",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_1_EPC2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 387,
+ "y": 272
+ },
+ "props": {
+ "path": "autStand/Equipment/EPC",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL14_1_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 243,
+ "y": 654
+ },
+ "props": {
+ "path": "autStand/Equipment/EPC",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL14_1_EPC2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 309,
+ "y": 655
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "System/MCM01/EPC/UL14_1_EPC2",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/EPC",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_11_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1859,
+ "y": 607.999
+ },
+ "props": {
+ "path": "autStand/Equipment/EPC",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_11_EPC2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1854,
+ "y": 692
+ },
+ "props": {
+ "path": "autStand/Equipment/EPC",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL15_1_TPE1"
+ },
+ "position": {
+ "height": 43,
+ "width": 83,
+ "x": 38.4461,
+ "y": 416
+ },
+ "props": {
+ "path": "autStand/Equipment/Photoeye",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL15_2_TPE1"
+ },
+ "position": {
+ "height": 40,
+ "rotate": {
+ "angle": "60deg"
+ },
+ "width": 80,
+ "x": 64.4296,
+ "y": 357.997
+ },
+ "props": {
+ "path": "autStand/Equipment/Photoeye",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL15_3_TPE1"
+ },
+ "position": {
+ "height": 40,
+ "rotate": {
+ "angle": "60deg"
+ },
+ "width": 80,
+ "x": 93.43,
+ "y": 341
+ },
+ "props": {
+ "path": "autStand/Equipment/Photoeye",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL15_4_TPE1"
+ },
+ "position": {
+ "height": 40,
+ "rotate": {
+ "angle": "60deg"
+ },
+ "width": 80,
+ "x": 124.43,
+ "y": 324
+ },
+ "props": {
+ "path": "autStand/Equipment/Photoeye",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_1_TPE1"
+ },
+ "position": {
+ "height": 40,
+ "rotate": {
+ "angle": "90deg"
+ },
+ "width": 80,
+ "x": 198.43,
+ "y": 292
+ },
+ "props": {
+ "path": "autStand/Equipment/Photoeye",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL14_1_TPE1"
+ },
+ "position": {
+ "height": 43,
+ "width": 83,
+ "x": 241.45,
+ "y": 450
+ },
+ "props": {
+ "path": "autStand/Equipment/Photoeye",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL14_2_TPE1"
+ },
+ "position": {
+ "height": 43,
+ "width": 83,
+ "x": 241.45,
+ "y": 415
+ },
+ "props": {
+ "path": "autStand/Equipment/Photoeye",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL14_3_TPE1"
+ },
+ "position": {
+ "height": 43,
+ "width": 83,
+ "x": 241.45,
+ "y": 381
+ },
+ "props": {
+ "path": "autStand/Equipment/Photoeye",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL14_4_TPE1"
+ },
+ "position": {
+ "height": 40,
+ "rotate": {
+ "angle": "60deg"
+ },
+ "width": 80,
+ "x": 273.43,
+ "y": 324
+ },
+ "props": {
+ "path": "autStand/Equipment/Photoeye",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_1_TPE2"
+ },
+ "position": {
+ "height": 40,
+ "rotate": {
+ "angle": "90deg"
+ },
+ "width": 80,
+ "x": 390.43,
+ "y": 292
+ },
+ "props": {
+ "path": "autStand/Equipment/Photoeye",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_1_TPE3"
+ },
+ "position": {
+ "height": 40,
+ "rotate": {
+ "angle": "90deg"
+ },
+ "width": 80,
+ "x": 560.43,
+ "y": 292
+ },
+ "props": {
+ "path": "autStand/Equipment/Photoeye",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_2_TPE1"
+ },
+ "position": {
+ "height": 40,
+ "rotate": {
+ "angle": "90deg"
+ },
+ "width": 80,
+ "x": 971.43,
+ "y": 292
+ },
+ "props": {
+ "path": "autStand/Equipment/Photoeye",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_3_TPE1"
+ },
+ "position": {
+ "height": 40,
+ "rotate": {
+ "angle": "270deg"
+ },
+ "width": 80,
+ "x": 1469.43,
+ "y": 292
+ },
+ "props": {
+ "path": "autStand/Equipment/Photoeye",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_4_TPE1"
+ },
+ "position": {
+ "height": 43,
+ "width": 83,
+ "x": 1526.45,
+ "y": 340
+ },
+ "props": {
+ "path": "autStand/Equipment/Photoeye",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_5_TPE1"
+ },
+ "position": {
+ "height": 43,
+ "width": 83,
+ "x": 1526.45,
+ "y": 550
+ },
+ "props": {
+ "path": "autStand/Equipment/Photoeye",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_6_TPE1"
+ },
+ "position": {
+ "height": 43,
+ "width": 83,
+ "x": 1526.45,
+ "y": 585
+ },
+ "props": {
+ "path": "autStand/Equipment/Photoeye",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_7_TPE1"
+ },
+ "position": {
+ "height": 40,
+ "rotate": {
+ "angle": "90deg"
+ },
+ "width": 80,
+ "x": 1577.43,
+ "y": 641
+ },
+ "props": {
+ "path": "autStand/Equipment/Photoeye",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_8_TPE1"
+ },
+ "position": {
+ "height": 40,
+ "rotate": {
+ "angle": "90deg"
+ },
+ "width": 80,
+ "x": 1658.43,
+ "y": 641
+ },
+ "props": {
+ "path": "autStand/Equipment/Photoeye",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_9AL_TPE1"
+ },
+ "position": {
+ "height": 40,
+ "rotate": {
+ "angle": "90deg"
+ },
+ "width": 80,
+ "x": 1734.43,
+ "y": 641
+ },
+ "props": {
+ "path": "autStand/Equipment/Photoeye",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_10_TPE1"
+ },
+ "position": {
+ "height": 40,
+ "rotate": {
+ "angle": "90deg"
+ },
+ "width": 80,
+ "x": 1780.43,
+ "y": 641
+ },
+ "props": {
+ "path": "autStand/Equipment/Photoeye",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_11_TPE1"
+ },
+ "position": {
+ "height": 40,
+ "rotate": {
+ "angle": "90deg"
+ },
+ "width": 80,
+ "x": 1828.43,
+ "y": 641
+ },
+ "props": {
+ "path": "autStand/Equipment/Photoeye",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL15_1_BCN1_A"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 21,
+ "y": 428
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "amber",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "Camera_4"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 21,
+ "y": 407
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "red",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL15_1_BCN1_R"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 21,
+ "y": 407
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "red",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL15_1_BCN2_R"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 114,
+ "y": 455
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "red",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_1_BCN1_A"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 252,
+ "y": 341
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "amber",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL14_1_BCN1_A"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 221,
+ "y": 455
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "amber",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL14_1_BCN1_R"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 221,
+ "y": 435
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "red",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL14_1_BCN2_R"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 317,
+ "y": 488
+ },
+ "props": {
+ "params": {
+ "name": "Red",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_1_BCN2_A"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 350,
+ "y": 245
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "amber",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_1_BCN2_R"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 350,
+ "y": 225
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "red",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_1_BCN4_A"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 564,
+ "y": 254
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "amber",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_1_BCN4_H"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 564,
+ "y": 234
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "horn",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_2_BCN1_A"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 973,
+ "y": 254
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "amber",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_4_BCN1_A"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1526,
+ "y": 398
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "amber",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "Camera_16"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1645,
+ "y": 601
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "amber",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "Camera_17"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1793,
+ "y": 580
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "amber",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "Camera_18"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1871,
+ "y": 581
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "red",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "Camera_19"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1883,
+ "y": 665
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "red",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL14_1_ENSH1"
+ },
+ "position": {
+ "height": 25,
+ "width": 25,
+ "x": 314.417,
+ "y": 460
+ },
+ "props": {
+ "path": "autStand/Equipment/Encoder",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL14_2_ENSH1"
+ },
+ "position": {
+ "height": 25,
+ "width": 25,
+ "x": 314.42,
+ "y": 425
+ },
+ "props": {
+ "path": "autStand/Equipment/Encoder",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL14_3_ENSH1"
+ },
+ "position": {
+ "height": 25,
+ "width": 25,
+ "x": 314.42,
+ "y": 391
+ },
+ "props": {
+ "path": "autStand/Equipment/Encoder",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL14_4_ENSH1"
+ },
+ "position": {
+ "height": 25,
+ "width": 25,
+ "x": 325.42,
+ "y": 365
+ },
+ "props": {
+ "path": "autStand/Equipment/Encoder",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL15_1_ENSH1"
+ },
+ "position": {
+ "height": 25,
+ "width": 25,
+ "x": 110.42,
+ "y": 429
+ },
+ "props": {
+ "path": "autStand/Equipment/Encoder",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL15_2_ENSH1"
+ },
+ "position": {
+ "height": 25,
+ "width": 25,
+ "x": 115.42,
+ "y": 401
+ },
+ "props": {
+ "path": "autStand/Equipment/Encoder",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL15_3_ENSH1"
+ },
+ "position": {
+ "height": 25,
+ "width": 25,
+ "x": 145.42,
+ "y": 384
+ },
+ "props": {
+ "path": "autStand/Equipment/Encoder",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL15_4_ENSH1"
+ },
+ "position": {
+ "height": 25,
+ "width": 25,
+ "x": 171.42,
+ "y": 369
+ },
+ "props": {
+ "path": "autStand/Equipment/Encoder",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_10_ENW1"
+ },
+ "position": {
+ "height": 25,
+ "width": 25,
+ "x": 526.42,
+ "y": 303
+ },
+ "props": {
+ "path": "autStand/Equipment/Encoder",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_1_ENW1"
+ },
+ "position": {
+ "height": 25,
+ "width": 25,
+ "x": 1788.75,
+ "y": 648
+ },
+ "props": {
+ "path": "autStand/Equipment/Encoder",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_11_ENW1"
+ },
+ "position": {
+ "height": 25,
+ "width": 25,
+ "x": 1824.75,
+ "y": 648
+ },
+ "props": {
+ "path": "autStand/Equipment/Encoder",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL15_1_VFD1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 101,
+ "y": 496
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "red",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/VFD",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL15_2_VFD1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 139,
+ "y": 419
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "red",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/VFD",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL15_3_VFD1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 162,
+ "y": 406
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "red",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/VFD",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL15_4_VFD1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 185,
+ "y": 392
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "red",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/VFD",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL15_5_VFD1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 204,
+ "y": 364
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "red",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/VFD",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL14_1_VFD1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 312,
+ "y": 556
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "red",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/VFD",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL14_2_VFD1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 343,
+ "y": 464
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "red",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/VFD",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL14_3_VFD1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 343,
+ "y": 430
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "red",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/VFD",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL14_4_VFD1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 343,
+ "y": 399
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "red",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/VFD",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL14_5_VFD1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 357,
+ "y": 346
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "red",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/VFD",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_1_VFD1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 527,
+ "y": 346
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "red",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/VFD",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_2_VFD1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 687,
+ "y": 346
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "red",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/VFD",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_3_VFD1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1444,
+ "y": 336
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "red",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/VFD",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_4_VFD1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1513,
+ "y": 347
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "red",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/VFD",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_5_VFD1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1594,
+ "y": 479
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "red",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/VFD",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_6_VFD1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1601,
+ "y": 553
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "red",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/VFD",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_7_VFD1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1606,
+ "y": 605
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "red",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/VFD",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_8_VFD1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1667,
+ "y": 624
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "red",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/VFD",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_9AL_VFD1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1713,
+ "y": 627
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "red",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/VFD",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_10_VFD1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1787,
+ "y": 628
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "red",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/VFD",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_11_VFD1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1838,
+ "y": 627
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "red",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/VFD",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_9B_VFD1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1742,
+ "y": 627
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "red",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/VFD",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL15_1_JR1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 31,
+ "y": 464
+ },
+ "props": {
+ "path": "autStand/Equipment/JR_Button",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL14_1_JR1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 222,
+ "y": 484
+ },
+ "props": {
+ "path": "autStand/Equipment/JR_Button",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_1_JR1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 232,
+ "y": 366
+ },
+ "props": {
+ "path": "autStand/Equipment/JR_Button",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_1_JR2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 421,
+ "y": 361
+ },
+ "props": {
+ "path": "autStand/Equipment/JR_Button",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_1_JR3"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 564,
+ "y": 276
+ },
+ "props": {
+ "path": "autStand/Equipment/JR_Button",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_2_JR1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 973,
+ "y": 276
+ },
+ "props": {
+ "path": "autStand/Equipment/JR_Button",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_4_JR3"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1526,
+ "y": 420
+ },
+ "props": {
+ "path": "autStand/Equipment/JR_Button",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_8_JR2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1646,
+ "y": 684
+ },
+ "props": {
+ "path": "autStand/Equipment/JR_Button",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_8_JR1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1643,
+ "y": 625
+ },
+ "props": {
+ "path": "autStand/Equipment/JR_Button",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_10_JR2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1787,
+ "y": 690
+ },
+ "props": {
+ "path": "autStand/Equipment/JR_Button",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_10_JR1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1764,
+ "y": 581
+ },
+ "props": {
+ "path": "autStand/Equipment/JR_Button",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL14_1_SIO1"
+ },
+ "position": {
+ "height": 22,
+ "width": 40,
+ "x": 306,
+ "y": 533
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Safety_IO",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL14_2_SIO1"
+ },
+ "position": {
+ "height": 22,
+ "width": 40,
+ "x": 367,
+ "y": 463
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Safety_IO",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL14_3_SIO1"
+ },
+ "position": {
+ "height": 22,
+ "width": 40,
+ "x": 367,
+ "y": 431
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Safety_IO",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL14_4_SIO1"
+ },
+ "position": {
+ "height": 22,
+ "width": 40,
+ "x": 367,
+ "y": 401
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Safety_IO",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL15_1_SIO1"
+ },
+ "position": {
+ "height": 22,
+ "width": 40,
+ "x": 122,
+ "y": 496
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Safety_IO",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL15_2_SIO1"
+ },
+ "position": {
+ "height": 22,
+ "width": 40,
+ "x": 138,
+ "y": 451
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Safety_IO",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL15_3_SIO1"
+ },
+ "position": {
+ "height": 22,
+ "width": 40,
+ "x": 176,
+ "y": 428
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Safety_IO",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL15_4_SIO1"
+ },
+ "position": {
+ "height": 22,
+ "width": 40,
+ "x": 206,
+ "y": 405
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Safety_IO",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL15_5_SIO1"
+ },
+ "position": {
+ "height": 22,
+ "width": 40,
+ "x": 208,
+ "y": 343
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Safety_IO",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "UL14_5_SIO1"
+ },
+ "position": {
+ "height": 22,
+ "width": 40,
+ "x": 378,
+ "y": 360
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Safety_IO",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_1_SIO1"
+ },
+ "position": {
+ "height": 22,
+ "width": 40,
+ "x": 483,
+ "y": 346
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Safety_IO",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_3_SIO1"
+ },
+ "position": {
+ "height": 22,
+ "width": 40,
+ "x": 643,
+ "y": 346
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Safety_IO",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_3_SIO1"
+ },
+ "position": {
+ "height": 22,
+ "width": 40,
+ "x": 1400,
+ "y": 336
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Safety_IO",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_4_SIO1"
+ },
+ "position": {
+ "height": 22,
+ "width": 40,
+ "x": 1476,
+ "y": 367
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Safety_IO",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_5_SIO1"
+ },
+ "position": {
+ "height": 20,
+ "width": 40,
+ "x": 1592,
+ "y": 455
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Safety_IO",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_6_SIO1"
+ },
+ "position": {
+ "height": 22,
+ "width": 40,
+ "x": 1602,
+ "y": 526
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Safety_IO",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_7_SIO1"
+ },
+ "position": {
+ "height": 22,
+ "width": 40,
+ "x": 1606,
+ "y": 579
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Safety_IO",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_8_SIO1"
+ },
+ "position": {
+ "height": 22,
+ "width": 40,
+ "x": 1668,
+ "y": 599
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Safety_IO",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_9AL_SIO1"
+ },
+ "position": {
+ "height": 22,
+ "width": 40,
+ "x": 1713,
+ "y": 604
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Safety_IO",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_9B_SIO1"
+ },
+ "position": {
+ "height": 22,
+ "width": 40,
+ "x": 1757,
+ "y": 605
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Safety_IO",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_11_SIO1"
+ },
+ "position": {
+ "height": 22,
+ "width": 40,
+ "x": 1862,
+ "y": 553
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Safety_IO",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_10_SIO1"
+ },
+ "position": {
+ "height": 22,
+ "width": 40,
+ "x": 1808,
+ "y": 604
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Safety_IO",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "MCM01"
+ },
+ "position": {
+ "height": 30,
+ "width": 42,
+ "x": 449.64,
+ "y": 405
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "forceRunningStatus": null,
+ "has_state": false,
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/MCM"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_1_DPM1"
+ },
+ "position": {
+ "height": 30,
+ "width": 30,
+ "x": 269.64,
+ "y": 265
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "forceRunningStatus": null,
+ "has_state": false,
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/DPM"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_5_DPM1"
+ },
+ "position": {
+ "height": 30,
+ "width": 30,
+ "x": 1599.64,
+ "y": 375
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "forceRunningStatus": null,
+ "has_state": false,
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/DPM"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PDP01_FIOM1"
+ },
+ "position": {
+ "height": 22,
+ "width": 40,
+ "x": 1407,
+ "y": 384
+ },
+ "props": {
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Field_IO"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "PS3_1_BCN3_A"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 421,
+ "y": 340
+ },
+ "props": {
+ "params": {
+ "forceFaultStatus": null,
+ "name": "amber",
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "path": "autStand/Equipment/Beacon",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.display.view"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/f41534f390938ac58790720254a00b665c1dfafd470f9c018acf5eed23b44fdf b/.resources/f41534f390938ac58790720254a00b665c1dfafd470f9c018acf5eed23b44fdf
new file mode 100644
index 00000000..902aeac1
--- /dev/null
+++ b/.resources/f41534f390938ac58790720254a00b665c1dfafd470f9c018acf5eed23b44fdf
@@ -0,0 +1,490 @@
+{
+ "custom": {},
+ "params": {
+ "meta": {
+ "name": "MCP"
+ },
+ "props": {
+ "config": {
+ "enableHighlight": true,
+ "isClickable": false
+ },
+ "status": {
+ "color": "#aaa",
+ "showAlways": true,
+ "tagPath": "",
+ "tooltip": ""
+ }
+ }
+ },
+ "propConfig": {
+ "params.meta": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.meta.name": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 180,
+ "width": 500
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "MCP"
+ },
+ "position": {
+ "height": 40,
+ "width": 100,
+ "x": 50,
+ "y": 15
+ },
+ "propConfig": {
+ "meta.name": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Label"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \u0027MCP\u0027)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ },
+ "persistent": true
+ },
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "expression": "try(\r\n\tjsonSet({value}, \"showAlways\", true),\r\n\t{view.params.props.status}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "config": {
+ "enableHighlight": false,
+ "isClickable": false
+ }
+ },
+ "type": "dex.display.mcp"
+ },
+ {
+ "meta": {
+ "name": "lbStatus"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 40
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Graphics"
+ },
+ "transforms": [
+ {
+ "code": "\treturn utils.extractStatus(value)",
+ "type": "script"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbName"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 5
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.LabelFull"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \u0027\u0027)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_1"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 5
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Name: "
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_11"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 40
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Status:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_12"
+ },
+ "position": {
+ "height": 25,
+ "width": 75,
+ "x": 195,
+ "y": 75
+ },
+ "props": {
+ "style": {
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "right"
+ },
+ "text": "Panel:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "lbStatus_0"
+ },
+ "position": {
+ "height": 25,
+ "width": "calc(100% - 300px)",
+ "x": 280,
+ "y": 75
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/Parameters.OPC_Server"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value}, \"Unknown\")",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "fontSize": "14px",
+ "fontWeight": "bold",
+ "overflow": "hidden",
+ "textAlign": "center",
+ "textOverview": "ellipsis",
+ "whiteSpace": "nowrap"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "CPU_Switch"
+ },
+ "position": {
+ "height": 40,
+ "rotate": {
+ "angle": "135deg"
+ },
+ "width": 40,
+ "x": 80,
+ "y": 100
+ },
+ "propConfig": {
+ "position.rotate.angle": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/aoCPU.jsonValues"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "code": "\ttry:\n\t\tif value.Key_Run:\n\t\t\treturn \"0deg\"\n\t\telif value.Key_Rem:\n\t\t\treturn \"45deg\"\n\t\telif value.Key_Pgm:\n\t\t\treturn \"90deg\"\n\t\telse:\n\t\t\treturn \"135deg\"\n\texcept:\n\t\treturn \"135deg\"",
+ "type": "script"
+ }
+ ],
+ "type": "tag"
+ },
+ "persistent": true
+ },
+ "props.elements[0].d": {
+ "binding": {
+ "config": {
+ "expression": "if({this.position.rotate.angle}\u003d\"135deg\",\r\n\t\"M40,40L0,0\",\r\n\t\"M40,40L0,0H20M0,0V20\"\r\n)"
+ },
+ "overlayOptOut": true,
+ "type": "expr"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "elements": [
+ {
+ "d": "M40,40L0,0",
+ "fill": {
+ "paint": "none"
+ },
+ "stroke": {
+ "linecap": "square",
+ "paint": "#000",
+ "width": 5
+ },
+ "type": "path"
+ }
+ ],
+ "viewBox": "0 0 41 41"
+ },
+ "type": "ia.shapes.svg"
+ },
+ {
+ "meta": {
+ "name": "Label"
+ },
+ "position": {
+ "height": 20,
+ "width": 40,
+ "x": 40,
+ "y": 70
+ },
+ "propConfig": {
+ "props.style.borderWidth": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/aoCPU/Key_Run"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "forceQuality({value}, 192)",
+ "type": "expression"
+ },
+ {
+ "fallback": 0,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": 2
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": 0,
+ "fontSize": 11,
+ "fontWeight": "bold",
+ "textAlign": "center",
+ "user-select": "none"
+ },
+ "text": "RUN"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Label_2"
+ },
+ "position": {
+ "height": 20,
+ "width": 40,
+ "x": 120,
+ "y": 70
+ },
+ "propConfig": {
+ "props.style.borderWidth": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/aoCPU/Key_Pgm"
+ },
+ "overlayOptOut": true,
+ "transforms": [
+ {
+ "expression": "forceQuality({value}, 192)",
+ "type": "expression"
+ },
+ {
+ "fallback": 0,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": 2
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": 0,
+ "fontSize": 11,
+ "fontWeight": "bold",
+ "textAlign": "center",
+ "user-select": "none"
+ },
+ "text": "PGM"
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "background-color": "#CFCFCF"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/f4873ded43213f344d8880534bd1e7dab05c7c30d2ec9c1048f9cbcf0165507d b/.resources/f4873ded43213f344d8880534bd1e7dab05c7c30d2ec9c1048f9cbcf0165507d
new file mode 100644
index 00000000..f2595593
--- /dev/null
+++ b/.resources/f4873ded43213f344d8880534bd1e7dab05c7c30d2ec9c1048f9cbcf0165507d
@@ -0,0 +1,233 @@
+{
+ "custom": {
+ "plc": "",
+ "searchId": "value",
+ "state": 1,
+ "string": "Actuated"
+ },
+ "params": {
+ "tagProps": [
+ "/system/mcm01/test",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "propConfig": {
+ "custom.plc": {
+ "binding": {
+ "config": {
+ "path": "view.params.tagProps[0]"
+ },
+ "transforms": [
+ {
+ "expression": "split({value}, \"/\")[0]",
+ "type": "expression"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.searchId": {
+ "binding": {
+ "config": {
+ "path": "session.custom.searchId"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.state": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "0": "{view.params.tagProps[0]}",
+ "fc": "{session.custom.fc}"
+ },
+ "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value},0)",
+ "type": "expression"
+ },
+ {
+ "fallback": null,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": 1
+ },
+ {
+ "input": 0,
+ "output": 0
+ },
+ {
+ "input": 2,
+ "output": 2
+ },
+ {
+ "input": 3,
+ "output": 3
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ },
+ "persistent": true
+ },
+ "custom.string": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "fallback": "Unknown",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": "Actuated"
+ },
+ {
+ "input": 2,
+ "output": "Faulted"
+ },
+ {
+ "input": 0,
+ "output": "Inactive"
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "params.tagProps": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 22,
+ "width": 25
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Label"
+ },
+ "position": {
+ "height": 1,
+ "width": 1
+ },
+ "props": {
+ "text": "SOL",
+ "textStyle": {
+ "fontSize": 10,
+ "textAlign": "center",
+ "textTransform": "uppercase"
+ }
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tsystem.perspective.openDock(\u0027Docked-East-JR\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})"
+ },
+ "scope": "G",
+ "type": "script"
+ },
+ "onMouseEnter": {
+ "config": {
+ "script": "\tfrom time import sleep\n\t\n\talarm \u003d []\n\tmessage \u003d None\n\t\n\tsleep(0.5)\n\t\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "root",
+ "tooltip": {
+ "enabled": true
+ }
+ },
+ "propConfig": {
+ "meta.tooltip.text": {
+ "binding": {
+ "config": {
+ "expression": "\"Source Id: \" + {view.params.tagProps[0]} + \", Status: \" + {view.custom.string}\n"
+ },
+ "type": "expr"
+ }
+ },
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "session.custom.alarm_filter.show_beacons"
+ },
+ "type": "property"
+ }
+ },
+ "props.style.backgroundColor": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "fallback": "#808080",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": "#00FF00"
+ },
+ {
+ "input": 2,
+ "output": "#FF0000"
+ }
+ ],
+ "outputType": "color",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "mode": "percent",
+ "style": {
+ "borderStyle": "solid",
+ "cursor": "pointer",
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/f5d5b3fc3be0e8f46d02700a2485c870a1ecd256f3c8365a74740c4402a235c8 b/.resources/f5d5b3fc3be0e8f46d02700a2485c870a1ecd256f3c8365a74740c4402a235c8
new file mode 100644
index 00000000..ff045115
--- /dev/null
+++ b/.resources/f5d5b3fc3be0e8f46d02700a2485c870a1ecd256f3c8365a74740c4402a235c8
@@ -0,0 +1,57 @@
+{
+ "custom": {},
+ "params": {
+ "help": "Welcome to _Markdown_"
+ },
+ "propConfig": {
+ "params.help": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 400,
+ "width": 600
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Markdown"
+ },
+ "position": {
+ "height": "100%",
+ "width": "100%"
+ },
+ "propConfig": {
+ "props.source": {
+ "binding": {
+ "config": {
+ "path": "view.params.help"
+ },
+ "transforms": [
+ {
+ "code": "\treturn value.replace(\"\u003cu\u003e\", \"**\").replace(\"\u003c/u\u003e\", \"**\")",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "markdown": {
+ "escapeHtml": false
+ }
+ },
+ "type": "ia.display.markdown"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/f6a27c9b8c48bb0587df49704b9124a97554291b92c28104e8f6025b33d44fe2 b/.resources/f6a27c9b8c48bb0587df49704b9124a97554291b92c28104e8f6025b33d44fe2
new file mode 100644
index 00000000..6b173246
--- /dev/null
+++ b/.resources/f6a27c9b8c48bb0587df49704b9124a97554291b92c28104e8f6025b33d44fe2
@@ -0,0 +1,241 @@
+{
+ "custom": {},
+ "params": {
+ "deviceType": "",
+ "props": {
+ "config": {
+ "enableHighlight": true,
+ "isClickable": false
+ },
+ "status": {
+ "color": "#aaa",
+ "showAlways": true,
+ "tagPath": "",
+ "tooltip": ""
+ }
+ }
+ },
+ "propConfig": {
+ "params.deviceType": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.props": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 280
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Table"
+ },
+ "position": {
+ "height": "100%",
+ "width": "100%"
+ },
+ "propConfig": {
+ "props.data": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "tagPath": "{view.params.props.status.tagPath}"
+ },
+ "tagPath": "{tagPath}/FMS.jsonValues"
+ },
+ "transforms": [
+ {
+ "code": "\treturn historian.fms.genSegmentsTable(value)",
+ "type": "script"
+ }
+ ],
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "cells": {
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "1px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "1px",
+ "fontFamily": "Helvetica",
+ "fontSize": "16px"
+ }
+ },
+ "columns": [
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "segment",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Belt Section (10ft)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 160
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "YYYY-MM-DD HH:mm:ss",
+ "editable": false,
+ "field": "fill",
+ "footer": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Package Fill (%)"
+ },
+ "justify": "center",
+ "number": "value",
+ "numberFormat": "0.##%",
+ "progressBar": {
+ "bar": {
+ "color": "#62A3F6",
+ "linecap": "round",
+ "width": 5
+ },
+ "max": 100,
+ "track": {
+ "color": "#DADADA",
+ "linecap": "round",
+ "width": 2
+ },
+ "value": {
+ "color": "#7D7D7D",
+ "show": true
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": "",
+ "minWidth": "250px"
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "#2196F3",
+ "unselected": "#FFFFFF"
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 250
+ }
+ ],
+ "pager": {
+ "bottom": false
+ },
+ "rows": {
+ "highlight": {
+ "enabled": false
+ },
+ "striped": {
+ "enabled": false
+ },
+ "style": {
+ "classes": "table/highlight"
+ }
+ },
+ "style": {
+ "fontFamily": "Helvetica",
+ "fontSize": "16px",
+ "fontWeight": "bold",
+ "zoom": 1
+ }
+ },
+ "scripts": {
+ "customMethods": [],
+ "messageHandlers": [
+ {
+ "messageType": "export-data",
+ "pageScope": true,
+ "script": "\tname \u003d utils.extractName(self.view.params.props.status)\n\tutils.downloadCSV(self, \"[\"+name+\"]FlowManagement\")",
+ "sessionScope": false,
+ "viewScope": false
+ }
+ ]
+ },
+ "type": "ia.display.table"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/f8dd5849cbaf59443404e7766bd8a3b6c425d0ad55d5ca425d1f68c69a9181b0 b/.resources/f8dd5849cbaf59443404e7766bd8a3b6c425d0ad55d5ca425d1f68c69a9181b0
new file mode 100644
index 00000000..0457a093
--- /dev/null
+++ b/.resources/f8dd5849cbaf59443404e7766bd8a3b6c425d0ad55d5ca425d1f68c69a9181b0
@@ -0,0 +1,169 @@
+{
+ "custom": {
+ "alarmHighlight": "",
+ "areaHover": [],
+ "currentGraphic": "Windows/Graphics/Overview",
+ "demoHighlight": "",
+ "dexmanager": {
+ "config": {
+ "font": "bold 12px Arial",
+ "highlight": "#ff0"
+ },
+ "highlight": [],
+ "show": {
+ "Beacons": false,
+ "ConveyorLabels": true,
+ "ConveyorPatterns": true,
+ "Conveyors": true,
+ "DivertPaddles": true,
+ "EIPs": false,
+ "Encoders": false,
+ "Estops": false,
+ "Gaylords": true,
+ "LimitSwitches": false,
+ "MCPs": false,
+ "PhotoEyes": false,
+ "PushButtons": false,
+ "Scanners": false,
+ "VFDs": false
+ }
+ },
+ "heatmapSettings": {
+ "alarms": [],
+ "alarmsText": "",
+ "data": {
+ "$": [
+ "ds",
+ 192,
+ 1602856991637
+ ],
+ "$columns": [
+ {
+ "data": [],
+ "name": "firsttime",
+ "type": "Date"
+ },
+ {
+ "data": [],
+ "name": "lasttime",
+ "type": "Date"
+ },
+ {
+ "data": [],
+ "name": "duration",
+ "type": "String"
+ },
+ {
+ "data": [],
+ "name": "count",
+ "type": "Long"
+ },
+ {
+ "data": [],
+ "name": "device",
+ "type": "String"
+ },
+ {
+ "data": [],
+ "name": "description",
+ "type": "String"
+ }
+ ]
+ },
+ "devices": [],
+ "devicesText": "",
+ "enabled": false,
+ "shifts": [],
+ "shiftsText": "",
+ "time": {
+ "end": "2020-07-30 00:00:00",
+ "start": "2020-07-29 00:00:00"
+ }
+ },
+ "isMobile": false,
+ "timewidget": {
+ "endDate": {
+ "$": [
+ "ts",
+ 192,
+ 1646422591477
+ ],
+ "$ts": 1646438400000
+ },
+ "mode": "currentDay",
+ "startDate": {
+ "$": [
+ "ts",
+ 192,
+ 1646422591477
+ ],
+ "$ts": 1646352000000
+ },
+ "update": {
+ "$": [
+ "ts",
+ 192,
+ 1646422591477
+ ],
+ "$ts": 1646422591465
+ }
+ }
+ },
+ "propConfig": {
+ "props.auth": {
+ "access": "PRIVATE",
+ "persistent": false
+ },
+ "props.device.accelerometer": {
+ "access": "SYSTEM",
+ "persistent": false
+ },
+ "props.device.identifier": {
+ "access": "SYSTEM",
+ "persistent": false
+ },
+ "props.device.timezone": {
+ "access": "SYSTEM",
+ "persistent": false
+ },
+ "props.device.type": {
+ "access": "SYSTEM",
+ "persistent": false
+ },
+ "props.device.userAgent": {
+ "access": "SYSTEM",
+ "persistent": false
+ },
+ "props.gateway": {
+ "access": "SYSTEM",
+ "persistent": false
+ },
+ "props.geolocation.data": {
+ "access": "SYSTEM",
+ "persistent": false
+ },
+ "props.geolocation.permissionGranted": {
+ "access": "SYSTEM",
+ "persistent": false
+ },
+ "props.host": {
+ "access": "SYSTEM",
+ "persistent": false
+ },
+ "props.id": {
+ "access": "SYSTEM",
+ "persistent": false
+ },
+ "props.lastActivity": {
+ "access": "SYSTEM",
+ "persistent": false
+ }
+ },
+ "props": {
+ "address": "127.0.0.1",
+ "device": {},
+ "geolocation": {},
+ "locale": "en-US",
+ "timeZoneId": "Asia/Tbilisi"
+ }
+}
\ No newline at end of file
diff --git a/.resources/f9b5bc7ac6d3f64b63cf6366e6aca3a9284a1b710b77d924cef4bd8391ed1b59 b/.resources/f9b5bc7ac6d3f64b63cf6366e6aca3a9284a1b710b77d924cef4bd8391ed1b59
new file mode 100644
index 00000000..18c7ae4c
--- /dev/null
+++ b/.resources/f9b5bc7ac6d3f64b63cf6366e6aca3a9284a1b710b77d924cef4bd8391ed1b59
@@ -0,0 +1,588 @@
+{
+ "custom": {
+ "covert_mode": true,
+ "disconnected": false,
+ "display_icon": true,
+ "error": false,
+ "isMatch": 0,
+ "plc": "value",
+ "priority": 0,
+ "priority_string": "No active alarms",
+ "running_status": 0,
+ "searchId": "value",
+ "state": 5,
+ "state_string": "Unknown"
+ },
+ "params": {
+ "directionLeft": true,
+ "forceFaultStatus": null,
+ "forceRunningStatus": null,
+ "tagProps": [
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "propConfig": {
+ "custom.covert_mode": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "expression": "case(\t{value},\r\n\t\t0, {session.custom.alarm_filter.show_running},\r\n\t\t1, True,\r\n\t\t2, True,\r\n\t\t3, {session.custom.alarm_filter.show_low_alarm},\r\n\t\t4, {session.custom.alarm_filter.show_diagnostic},\r\n\t\t5, {session.custom.alarm_filter.show_running},\r\n\t\tFalse)",
+ "type": "expression"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.disconnected": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "fc": "{session.custom.fc}",
+ "plc": "{view.custom.plc}"
+ },
+ "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{plc}/DCN"
+ },
+ "transforms": [
+ {
+ "expression": "if(isNull({value}), False, {value})",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ },
+ "persistent": true
+ },
+ "custom.display_icon": {
+ "binding": {
+ "config": {
+ "expression": "{this.custom.covert_mode}//||{this.custom.isMatch}\u003e0"
+ },
+ "type": "expr"
+ },
+ "persistent": true
+ },
+ "custom.error": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "expression": "0 \u003c {value} \u0026\u0026 {value} \u003c 5",
+ "type": "expression"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.isMatch": {
+ "binding": {
+ "config": {
+ "expression": "if({view.params.tagProps[0]}\u003d\"value\",0,\nif({this.custom.searchId}\u003d{view.params.tagProps[0]},100,0))"
+ },
+ "type": "expr"
+ },
+ "persistent": true
+ },
+ "custom.plc": {
+ "binding": {
+ "config": {
+ "path": "view.params.tagProps[0]"
+ },
+ "transforms": [
+ {
+ "expression": "split({value}, \"/\")[0]",
+ "type": "expression"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.priority": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "fallback": 0,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": 4
+ },
+ {
+ "input": 2,
+ "output": 3
+ },
+ {
+ "input": 3,
+ "output": 2
+ },
+ {
+ "input": 4,
+ "output": 1
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.priority_string": {
+ "binding": {
+ "config": {
+ "expression": "case({view.custom.state},\r\n1, \"High\",\r\n2, \"Medium\",\r\n3, \"Low\",\r\n4, \"Diagnostic\",\r\n5, \"No active alarms\",\r\n\"Unknown\")"
+ },
+ "type": "expr"
+ },
+ "persistent": true
+ },
+ "custom.running_status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "0": "{view.params.tagProps[0]}",
+ "fc": "{session.custom.fc}"
+ },
+ "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value},{view.params.forceRunningStatus},0)",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ },
+ "persistent": true
+ },
+ "custom.searchId": {
+ "binding": {
+ "config": {
+ "path": "session.custom.searchId"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.state": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "0": "{view.params.tagProps[0]}",
+ "fc": "{session.custom.fc}"
+ },
+ "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/ALARMST"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value},{view.params.forceFaultStatus},0)",
+ "type": "expression"
+ },
+ {
+ "fallback": null,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 4,
+ "output": 1
+ },
+ {
+ "input": 3,
+ "output": 2
+ },
+ {
+ "input": 2,
+ "output": 3
+ },
+ {
+ "input": 1,
+ "output": 4
+ },
+ {
+ "input": 0,
+ "output": 5
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ },
+ "persistent": true
+ },
+ "custom.state_string": {
+ "binding": {
+ "config": {
+ "expression": "case({view.custom.running_status},\r\n1, \"Faulted\",\r\n2, \"Stopped\",\r\n3, \"Running\",\r\n\"Unknown\")"
+ },
+ "type": "expr"
+ },
+ "persistent": true
+ },
+ "params.directionLeft": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.forceFaultStatus": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.forceRunningStatus": {
+ "paramDirection": "input",
+ "persistent": true
+ },
+ "params.tagProps": {
+ "paramDirection": "inout",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 100,
+ "width": 100
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Camera"
+ },
+ "position": {
+ "height": 1,
+ "width": 1
+ },
+ "propConfig": {
+ "props.elements[1].elements[0].fill.paint": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "enabled": false,
+ "transforms": [
+ {
+ "expression": "if({session.custom.colours}[\"state\"+{value}] \u003d null, \r\n{session.custom.colours}[\"Fallback\"],\r\n{session.custom.colours}[\"state\"+{value}])",
+ "type": "expression"
+ },
+ {
+ "expression": "if({view.custom.display_icon}\u0026\u0026 {view.custom.isMatch}\u003d0,{value},{value}+\u002700\u0027)",
+ "type": "expression"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "props.style.classes": {
+ "binding": {
+ "config": {
+ "expression": "if({session.custom.colours.colour_impaired} \u003d True \u0026\u0026 {view.custom.isMatch} \u003e 0,\r\n{view.custom.state} + 100 + {view.custom.isMatch},\r\n{view.custom.state} + {view.custom.isMatch})"
+ },
+ "transforms": [
+ {
+ "fallback": "",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 101,
+ "output": "State-Styles/State101"
+ },
+ {
+ "input": 102,
+ "output": "State-Styles/State102"
+ },
+ {
+ "input": 103,
+ "output": "State-Styles/State103"
+ },
+ {
+ "input": 104,
+ "output": "State-Styles/State104"
+ },
+ {
+ "input": 105,
+ "output": "State-Styles/State105"
+ },
+ {
+ "input": 106,
+ "output": "State-Styles/State106"
+ },
+ {
+ "input": 201,
+ "output": "State-Styles/State201"
+ },
+ {
+ "input": 202,
+ "output": "State-Styles/State202"
+ },
+ {
+ "input": 203,
+ "output": "State-Styles/State203"
+ },
+ {
+ "input": 204,
+ "output": "State-Styles/State204"
+ },
+ {
+ "input": 205,
+ "output": "State-Styles/State205"
+ }
+ ],
+ "outputType": "style-list",
+ "type": "map"
+ }
+ ],
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "elements": [
+ {
+ "id": "defs963",
+ "name": "defs963",
+ "type": "defs"
+ },
+ {
+ "elements": [
+ {
+ "d": "M 108.69378,77.205299 A 30.372795,30.372799 0 0 1 78.350262,107.57808 30.372795,30.372799 0 0 1 47.948245,77.263855 30.372795,30.372799 0 0 1 78.23315,46.832627 a 30.372795,30.372799 0 0 1 30.4604,30.255561",
+ "fill": {
+ "paint": "#00CC00"
+ },
+ "id": "path2823",
+ "name": "path2823",
+ "stroke": {
+ "dasharray": "none",
+ "linejoin": "round",
+ "miterlimit": "4",
+ "paint": "#000000",
+ "width": "2.30899"
+ },
+ "style": {
+ "paintOrder": "markers fill stroke"
+ },
+ "type": "path"
+ },
+ {
+ "elements": [
+ {
+ "elements": [
+ {
+ "elements": [
+ {
+ "d": "m 308.1,277.95 c 0,35.7 -28.9,64.6 -64.6,64.6 -35.7,0 -64.6,-28.9 -64.6,-64.6 0,-35.7 28.9,-64.6 64.6,-64.6 35.7,0 64.6,28.9 64.6,64.6 z m 132.2,-161.9 c 25.8,0 46.7,20.9 46.7,46.7 v 122.4 103.8 c 0,27.5 -22.3,49.8 -49.8,49.8 H 49.8 C 22.3,438.75 0,416.45 0,388.95 v -103.9 -122.3 0 c 0,-25.8 20.9,-46.7 46.7,-46.7 h 93.4 l 4.4,-18.6 c 6.7,-28.8 32.4,-49.2 62,-49.2 h 74.1 c 29.6,0 55.3,20.4 62,49.2 l 4.3,18.6 z m -342.9,67.4 c 0,-12.9 -10.5,-23.4 -23.4,-23.4 -13,0 -23.5,10.5 -23.5,23.4 0,12.9 10.5,23.4 23.4,23.4 13,0.1 23.5,-10.4 23.5,-23.4 z m 261.3,94.5 c 0,-63.6 -51.6,-115.2 -115.2,-115.2 -63.6,0 -115.2,51.6 -115.2,115.2 0,63.6 51.6,115.2 115.2,115.2 63.6,0 115.2,-51.6 115.2,-115.2 z",
+ "id": "path954",
+ "name": "path954",
+ "type": "path"
+ }
+ ],
+ "id": "g956",
+ "name": "g956",
+ "type": "group"
+ }
+ ],
+ "id": "g958",
+ "name": "g958",
+ "transform": "matrix(0.10552692,0,0,0.1049851,58.573883,61.035557)",
+ "type": "group"
+ }
+ ],
+ "id": "g2695",
+ "name": "g2695",
+ "transform": "matrix(0.78290367,0,0,0.78703031,12.345936,11.651649)",
+ "type": "group"
+ }
+ ],
+ "id": "g3222",
+ "name": "g3222",
+ "transform": "matrix(0.45169465,0,0,0.44391375,-20.878644,-19.304276)",
+ "type": "group"
+ }
+ ],
+ "fill": {
+ "paint": "#000000"
+ },
+ "style": {},
+ "viewBox": "0 0 29.22 29.22"
+ },
+ "type": "ia.shapes.svg"
+ }
+ ],
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tsystem.perspective.openDock(\u0027Docked-East\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})"
+ },
+ "scope": "G",
+ "type": "script"
+ },
+ "onDoubleClick": {
+ "config": {
+ "script": "\ttagProps \u003d self.view.params.tagProps\n\tsystem.perspective.openPopup(\"StatusPopUP\", \"PopUp-Views/Controller-Equipment/Information\", params \u003d{\"tagProps\":tagProps})\n\t"
+ },
+ "enabled": false,
+ "scope": "G",
+ "type": "script"
+ },
+ "onMouseEnter": {
+ "config": {
+ "script": "\tfrom time import sleep\n\t\n\talarm \u003d []\n\tmessage \u003d None\n\t\n\tsleep(0.5)\n\t\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "root",
+ "tooltip": {
+ "enabled": true,
+ "location": "top-left",
+ "style": {}
+ }
+ },
+ "propConfig": {
+ "meta.tooltip.style.backgroundColor": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "expression": "case({value},\r\n0,{session.custom.colours.state0},\r\n1,{session.custom.colours.state1},\r\n2,{session.custom.colours.state2},\r\n3,{session.custom.colours.state3},\r\n4,{session.custom.colours.state4},\r\n5,{session.custom.colours.state5},\r\n6,{session.custom.colours.state6},\r\n{session.custom.colours.fallback}\r\n)",
+ "type": "expression"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "meta.tooltip.style.classes": {
+ "binding": {
+ "config": {
+ "expression": "{view.custom.priority}"
+ },
+ "transforms": [
+ {
+ "fallback": "Alarms-Styles/NoAlarm",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": "Alarms-Styles/Diagnostic"
+ },
+ {
+ "input": 2,
+ "output": "Alarms-Styles/Low"
+ },
+ {
+ "input": 3,
+ "output": "Alarms-Styles/Medium"
+ },
+ {
+ "input": 4,
+ "output": "Alarms-Styles/High"
+ }
+ ],
+ "outputType": "style-list",
+ "type": "map"
+ }
+ ],
+ "type": "expr"
+ }
+ },
+ "meta.tooltip.style.color": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "expression": "if({session.custom.colours.colour_impaired},\r\n\t\u0027#000000\u0027,\r\n\tcase(\t{value},\r\n\t\t\t1,\u0027#FFFFFF\u0027,\r\n\t\t\t2,\u0027#000000\u0027,\r\n\t\t\t3,\u0027#000000\u0027,\r\n\t\t\t4,\u0027#FFFFFF\u0027,\r\n\t\t\t5,\u0027#FFFFFF\u0027,\r\n\t\t\t\u0027#000000\u0027)\r\n\t)",
+ "type": "expression"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "meta.tooltip.text": {
+ "binding": {
+ "config": {
+ "expression": "if({view.custom.disconnected} \u003d False,\n\tif(isNull({view.custom.alarm_message}),\n\t\"Source Id: \" + {view.params.tagProps[0]} +\n\t\", Priority: \" + {view.custom.priority_string} +\n\t\", State: \" + {view.custom.state_string},\n\t\"Source Id: \" + {view.params.tagProps[0]} +\n\t\", Alarm: \" + {view.custom.alarm_message} +\n\t\", Priority: \" + {view.custom.priority_string} +\n\t\", State: \" + {view.custom.state_string}),\n\"Source Id: \" +{view.params.tagProps[0]} + \", Priority: Unknown, State: Unknown\")"
+ },
+ "type": "expr"
+ }
+ },
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "session.custom.alarm_filter.show_camera_jams"
+ },
+ "type": "property"
+ }
+ },
+ "props.style.classes": {
+ "binding": {
+ "config": {
+ "path": "view.custom.disconnected"
+ },
+ "transforms": [
+ {
+ "fallback": "Disconnects/Device-Connected",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": true,
+ "output": "Disconnects/Device-Disconnected"
+ },
+ {
+ "input": false,
+ "output": "Disconnects/Device-Connected"
+ }
+ ],
+ "outputType": "style-list",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "aspectRatio": "1:1",
+ "mode": "percent",
+ "style": {
+ "cursor": "pointer"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/f9e495b56234135e882c24ad01eb713ce9ba7e5ac8ae413ea709b74b17ee6ab0 b/.resources/f9e495b56234135e882c24ad01eb713ce9ba7e5ac8ae413ea709b74b17ee6ab0
new file mode 100644
index 00000000..ecf9f8d4
--- /dev/null
+++ b/.resources/f9e495b56234135e882c24ad01eb713ce9ba7e5ac8ae413ea709b74b17ee6ab0
@@ -0,0 +1,23 @@
+WITH GAYLORDS AS (
+ SELECT
+ MIN(timestamp) AS start_timestamp,
+ MAX(timestamp) AS end_timestamp,
+ 3600/TIMESTAMPDIFF(SECOND, :startDate, :endDate) AS pph_multiplier,
+ gaylord_id AS gaylord,
+ SUM(count) AS total
+ FROM gl_history
+ WHERE timestamp BETWEEN :startDate AND :endDate
+ GROUP BY gaylord_id
+ ORDER BY gaylord_id
+)
+SELECT
+ start_timestamp,
+ end_timestamp,
+ gaylord,
+ /* Counts: */
+ total AS total_count,
+ /* PPH: */
+ ROUND(total*pph_multiplier) AS total_pph,
+ /* Percents: */
+ ROUND(total/total, 4) AS total_percent
+FROM GAYLORDS;
\ No newline at end of file
diff --git a/.resources/fad1c687459ea36dfc5f14b05c85d244cae3939edcf20f2078b8a39eb43d95e4 b/.resources/fad1c687459ea36dfc5f14b05c85d244cae3939edcf20f2078b8a39eb43d95e4
new file mode 100644
index 00000000..65016643
--- /dev/null
+++ b/.resources/fad1c687459ea36dfc5f14b05c85d244cae3939edcf20f2078b8a39eb43d95e4
@@ -0,0 +1,4244 @@
+{
+ "custom": {},
+ "params": {},
+ "props": {
+ "defaultSize": {
+ "height": 651,
+ "width": 1687
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "UL01_01"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 310,
+ "x": 1624,
+ "y": 651
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL01/UL01_01/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "UL02_01"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 310,
+ "x": 1554,
+ "y": 651
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL02/UL02_01/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "UL03_01"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 310,
+ "x": 1464,
+ "y": 651
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL03/UL03_01/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "UL04_01"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 310,
+ "x": 1384,
+ "y": 651
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL04/UL04_01/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "UL01_01_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1645,
+ "y": 464
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL01/UL01_01/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "UL01_01_SIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 1608,
+ "y": 480
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL01/UL01_01/SIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "UL05_01"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 310,
+ "x": 1304,
+ "y": 651
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL05/UL05_01/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "UL06_01"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 310,
+ "x": 1224,
+ "y": 651
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL06/UL06_01/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "UL01_01_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1645,
+ "y": 383
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL01/UL01_01/EPC1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "UL01_01_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1645,
+ "y": 362
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL01/UL01_01/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "UL01_02"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 270,
+ "x": 1624,
+ "y": 342
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL01/UL01_02/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "UL02_02"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 270,
+ "x": 1554,
+ "y": 342
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL02/UL02_02/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "UL03_02"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 270,
+ "x": 1464,
+ "y": 342
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL03/UL03_02/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "UL04_02"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 270,
+ "x": 1384,
+ "y": 342
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL04/UL04_02/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "UL05_02"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 270,
+ "x": 1304,
+ "y": 342
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL05/UL05_02/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "UL06_02"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 270,
+ "x": 1224,
+ "y": 342
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL06/UL06_02/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "UL07_01"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 310,
+ "x": 1144,
+ "y": 651
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL07/UL07_01/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "UL07_02"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 270,
+ "x": 1144,
+ "y": 342
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL07/UL07_02/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "UL07_01_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1165,
+ "y": 464
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL07/UL07_01/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "UL07_01_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1165,
+ "y": 383
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL07/UL07_01/EPC1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "UL01_01_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1645,
+ "y": 343
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL01/UL01_01/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "UL07_01_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1165,
+ "y": 343
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL07/UL07_01/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "UL07_01_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1165,
+ "y": 362
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL07/UL07_01/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "UL01_01_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1666,
+ "y": 343
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL01/UL01_01/BCN1/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "UL07_01_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1186,
+ "y": 343
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL07/UL07_01/BCN1/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "UL07_01_SIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 1128,
+ "y": 480
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL07/UL07_01/SIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "UL08_01"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 310,
+ "x": 974,
+ "y": 651
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL08/UL08_01/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "UL08_02"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 270,
+ "x": 974,
+ "y": 342
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL08/UL08_02/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "UL08_01_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 995,
+ "y": 464
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL08/UL08_01/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "UL08_01_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 995,
+ "y": 383
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL08/UL08_01/EPC1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "UL08_01_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 995,
+ "y": 343
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL08/UL08_01/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "UL08_01_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 995,
+ "y": 362
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL08/UL08_01/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "UL08_01_SIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 958,
+ "y": 480
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL08/UL08_01/SIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "UL08_01_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1016,
+ "y": 343
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL08/UL08_01/BCN1/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "UL09_01"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 310,
+ "x": 894,
+ "y": 651
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL09/UL09_01/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "UL09_02"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 270,
+ "x": 894,
+ "y": 342
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL09/UL09_02/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "UL01_02_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1645,
+ "y": 194
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL01/UL01_02/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "UL02_02_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1575,
+ "y": 194
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL02/UL02_02/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "UL03_02_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1485,
+ "y": 194
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL03/UL03_02/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "UL04_02_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1405,
+ "y": 194
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL04/UL04_02/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "UL05_02_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1325,
+ "y": 194
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL05/UL05_02/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "UL06_02_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1245,
+ "y": 194
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL06/UL06_02/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "UL07_02_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1165,
+ "y": 194
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL07/UL07_02/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "UL08_02_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 995,
+ "y": 194
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL08/UL08_02/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "UL09_02_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 915,
+ "y": 194
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL09/UL09_02/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "UL10_01"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 310,
+ "x": 814,
+ "y": 651
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL10/UL10_01/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "UL10_02"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 270,
+ "x": 814,
+ "y": 342
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL10/UL10_02/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "UL10_02_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 835,
+ "y": 194
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL10/UL10_02/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS02_01"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 670,
+ "x": 1687,
+ "y": 73
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_01/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS02_02"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 490,
+ "x": 1018,
+ "y": 73
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_02/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "UL11_01"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 310,
+ "x": 734,
+ "y": 651
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL11/UL11_01/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "UL11_02"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 270,
+ "x": 734,
+ "y": 342
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL11/UL11_02/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "UL11_02_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 755,
+ "y": 194
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL11/UL11_02/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "UL01_02_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1645,
+ "y": 74
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL01/UL01_02/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "UL02_02_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1575,
+ "y": 74
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL02/UL02_02/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "UL03_02_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1485,
+ "y": 74
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL03/UL03_02/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "UL04_02_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1405,
+ "y": 74
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL04/UL04_02/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "UL05_02_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1325,
+ "y": 74
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL05/UL05_02/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "UL06_02_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1245,
+ "y": 74
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL06/UL06_02/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "UL07_02_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1165,
+ "y": 74
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL07/UL07_02/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "UL08_02_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 995,
+ "y": 74
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL08/UL08_02/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "UL09_02_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 915,
+ "y": 74
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL09/UL09_02/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "UL10_02_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 835,
+ "y": 74
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL10/UL10_02/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "UL11_02_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 755,
+ "y": 74
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL11/UL11_02/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "UL12_01_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 696,
+ "y": 343
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL12/UL12_01/BCN1/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PS02_01_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 1030,
+ "y": 43
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_01/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS02_01_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 1123,
+ "y": 43
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_01/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS02_01_PE3"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 1192,
+ "y": 43
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_01/PE3/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS02_01_PE4"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 1283,
+ "y": 43
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_01/PE4/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS02_01_PE5"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 1352,
+ "y": 43
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_01/PE5/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS02_01_PE6"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 1432,
+ "y": 43
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_01/PE6/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS02_01_PE7"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 1512,
+ "y": 43
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_01/PE7/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS02_01_PE8"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 1602,
+ "y": 43
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_01/PE8/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS02_02_PE3"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 702,
+ "y": 43
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_02/PE3/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS02_02_PE4"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 782,
+ "y": 43
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_02/PE4/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS02_02_PE5"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 862,
+ "y": 43
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_02/PE5/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS02_02_PE6"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 942,
+ "y": 43
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_02/PE6/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "UL01_02_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 34,
+ "x": 1654,
+ "y": 101
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL01/UL01_02/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "UL02_02_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 34,
+ "x": 1584,
+ "y": 101
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL02/UL02_02/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "UL03_02_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 34,
+ "x": 1494,
+ "y": 101
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL03/UL03_02/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "UL04_02_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 34,
+ "x": 1414,
+ "y": 101
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL04/UL04_02/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "UL05_02_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 34,
+ "x": 1334,
+ "y": 101
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL05/UL05_02/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "UL06_02_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 34,
+ "x": 1254,
+ "y": 101
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL06/UL06_02/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "UL07_02_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 34,
+ "x": 1174,
+ "y": 101
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL07/UL07_02/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "UL08_02_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 34,
+ "x": 1004,
+ "y": 101
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL08/UL08_02/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "UL09_02_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 34,
+ "x": 924,
+ "y": 101
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL09/UL09_02/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "UL10_02_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 34,
+ "x": 844,
+ "y": 101
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL10/UL10_02/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "UL11_02_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 34,
+ "x": 764,
+ "y": 101
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL11/UL11_02/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "UL12_01"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 310,
+ "x": 654,
+ "y": 651
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL12/UL12_01/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "UL12_02"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 270,
+ "x": 654,
+ "y": 342
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL12/UL12_02/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "MCP02"
+ },
+ "position": {
+ "height": 20,
+ "width": 50,
+ "x": 1248,
+ "y": 12
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/MCP02/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.mcp"
+ },
+ {
+ "meta": {
+ "name": "PS02_01_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1256,
+ "y": 36
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_01/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS02_02_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 623,
+ "y": 36
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_02/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "UL12_01_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 675,
+ "y": 464
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL12/UL12_01/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "UL12_02_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 675,
+ "y": 194
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL12/UL12_02/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS02_01_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1031,
+ "y": 32
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_01/EPC1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "PS02_01_EPC2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1092,
+ "y": 32
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_01/EPC2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "UL12_01_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 675,
+ "y": 383
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL12/UL12_01/EPC1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "PS02_01_RS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1321,
+ "y": 32
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_01/RS1/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PS02_01_RS2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1664,
+ "y": 32
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_01/RS2/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PS02_01_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1052,
+ "y": 32
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_01/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PS02_01_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 1071,
+ "y": 32
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_01/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PS02_02_RS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 640,
+ "y": 32
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_02/RS1/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PS02_02_RS2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 814,
+ "y": 32
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_02/RS2/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "UL12_01_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 675,
+ "y": 343
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL12/UL12_01/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "UL12_01_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 675,
+ "y": 362
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL12/UL12_01/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PS02_01_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "width": 30,
+ "x": 1225,
+ "y": 37
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_01/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "PS02_01_FIO2"
+ },
+ "position": {
+ "height": 15,
+ "width": 30,
+ "x": 1454,
+ "y": 37
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_01/FIO2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "PS02_01_SIO1"
+ },
+ "position": {
+ "height": 15,
+ "width": 30,
+ "x": 1194,
+ "y": 37
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_01/SIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "PS02_02_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "width": 30,
+ "x": 661,
+ "y": 37
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_02/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "UL12_01_SIO1"
+ },
+ "position": {
+ "height": 15,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "270deg"
+ },
+ "width": 30,
+ "x": 638,
+ "y": 480
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL12/UL12_01/SIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "PS02_01_BCN1_HRN"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1052
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_01/BCN1/HRN/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PS02_01_BCN1_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1052,
+ "y": 15
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_01/BCN1/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PS02_01_BCN2_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 1321,
+ "y": 15
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_01/BCN2/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PS02_02_BCN1_PUR"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 623,
+ "y": 15
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_02/BCN1/PUR/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PS02_02_BCN2_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 640,
+ "y": 15
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_02/BCN2/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PS02_02_BCN2_HRN"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 640
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_02/BCN2/HRN/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PS02_02_BCN3_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 814,
+ "y": 15
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_02/BCN3/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "UL12_02_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 675,
+ "y": 74
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL12/UL12_02/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PS02_02_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 542,
+ "y": 43
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_02/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS02_02_PE2"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 622,
+ "y": 43
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_02/PE2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "UL12_02_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 34,
+ "x": 684,
+ "y": 101
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/UL12/UL12_02/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS02_03"
+ },
+ "position": {
+ "height": 20,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 490,
+ "x": 529,
+ "y": 73
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_03/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyor"
+ },
+ {
+ "meta": {
+ "name": "PS02_03_EPC1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 250,
+ "y": 32
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_03/EPC1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "PS02_03_EPC2"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 250,
+ "y": 74
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_03/EPC2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.estop"
+ },
+ {
+ "meta": {
+ "name": "PS02_03_SS1_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 210,
+ "y": 32
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_03/SS1/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PS02_03_SS1_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 229,
+ "y": 32
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_03/SS1/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PS02_03_SS2_START"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 210,
+ "y": 74
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_03/SS2/Start/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PS02_03_SS2_STOP"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 229,
+ "y": 74
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_03/SS2/Stop/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PS02_03_BCN2_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 193,
+ "y": 36
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_03/BCN2/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PS02_03_BCN3_RED"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 193,
+ "y": 74
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_03/BCN3/RED/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PS02_03_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 145,
+ "y": 36
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_03/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "PS02_03_FIO1"
+ },
+ "position": {
+ "height": 15,
+ "width": 30,
+ "x": 114,
+ "y": 37
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_03/FIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "PS02_03_SIO1"
+ },
+ "position": {
+ "height": 15,
+ "width": 30,
+ "x": 83,
+ "y": 37
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_03/SIO1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.eip"
+ },
+ {
+ "meta": {
+ "name": "PS02_03_RS1"
+ },
+ "position": {
+ "height": 20,
+ "width": 20,
+ "x": 56,
+ "y": 74
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_03/RS1/Restart/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.pushbutton"
+ },
+ {
+ "meta": {
+ "name": "PS02_03_BCN1_AMB"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 39,
+ "y": 78
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_03/BCN1/AMB/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.beacon"
+ },
+ {
+ "meta": {
+ "name": "PS02_03_PE1"
+ },
+ "position": {
+ "height": 10,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "90deg"
+ },
+ "width": 34,
+ "x": 52,
+ "y": 43
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_03/PE1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.photoeye"
+ },
+ {
+ "meta": {
+ "name": "PS02_04PT"
+ },
+ "position": {
+ "height": 40,
+ "rotate": {
+ "anchor": "0 0",
+ "angle": "180deg"
+ },
+ "width": 40,
+ "x": 40,
+ "y": 73
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_04PT/Conv/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.conveyorcurve"
+ },
+ {
+ "meta": {
+ "name": "PS02_04PT_VFD"
+ },
+ "position": {
+ "height": 16,
+ "width": 16,
+ "x": 25,
+ "y": 32
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02/PS02/PS02_04PT/VFD/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.vfd"
+ },
+ {
+ "meta": {
+ "name": "UL1Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 1582,
+ "y": 620
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 124
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "UL2Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 1512,
+ "y": 620
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 123
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "UL3Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 1422,
+ "y": 620
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 122
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "UL4Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 1342,
+ "y": 620
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 121
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "UL5Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 1262,
+ "y": 620
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 120
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "UL6Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 1182,
+ "y": 620
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 119
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "UL8Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 932,
+ "y": 620
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 116
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "UL9Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 852,
+ "y": 620
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 115
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "UL10Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 772,
+ "y": 620
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 114
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "UL11Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 692,
+ "y": 620
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 113
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "UL12Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 612,
+ "y": 620
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 112
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "UL12Label_Tooltip"
+ },
+ "position": {
+ "height": 25,
+ "width": 40,
+ "x": 612,
+ "y": 620
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "publishInitial": false,
+ "tagPath": "[default]MCP02_Custom/adiPPH_Unload_12/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.tooltipoverlay"
+ },
+ {
+ "meta": {
+ "name": "UL11Label_Tooltip"
+ },
+ "position": {
+ "height": 25,
+ "width": 40,
+ "x": 692,
+ "y": 620
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02_Custom/adiPPH_Unload_11/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.tooltipoverlay"
+ },
+ {
+ "meta": {
+ "name": "UL10Label_Tooltip"
+ },
+ "position": {
+ "height": 25,
+ "width": 40,
+ "x": 772,
+ "y": 620
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02_Custom/adiPPH_Unload_10/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.tooltipoverlay"
+ },
+ {
+ "meta": {
+ "name": "UL9Label_Tooltip"
+ },
+ "position": {
+ "height": 25,
+ "width": 40,
+ "x": 852,
+ "y": 620
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02_Custom/adiPPH_Unload_9/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.tooltipoverlay"
+ },
+ {
+ "meta": {
+ "name": "UL8Label_Tooltip"
+ },
+ "position": {
+ "height": 25,
+ "width": 40,
+ "x": 932,
+ "y": 620
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02_Custom/adiPPH_Unload_8/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.tooltipoverlay"
+ },
+ {
+ "meta": {
+ "name": "UL6Label_Tooltip"
+ },
+ "position": {
+ "height": 25,
+ "width": 40,
+ "x": 1182,
+ "y": 620
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02_Custom/adiPPH_Unload_6/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.tooltipoverlay"
+ },
+ {
+ "meta": {
+ "name": "UL5Label_Tooltip"
+ },
+ "position": {
+ "height": 25,
+ "width": 40,
+ "x": 1262,
+ "y": 620
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02_Custom/adiPPH_Unload_5/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.tooltipoverlay"
+ },
+ {
+ "meta": {
+ "name": "UL4Label_Tooltip"
+ },
+ "position": {
+ "height": 25,
+ "width": 40,
+ "x": 1342,
+ "y": 620
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02_Custom/adiPPH_Unload_4/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.tooltipoverlay"
+ },
+ {
+ "meta": {
+ "name": "UL3Label_Tooltip"
+ },
+ "position": {
+ "height": 25,
+ "width": 40,
+ "x": 1422,
+ "y": 620
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02_Custom/adiPPH_Unload_3/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.tooltipoverlay"
+ },
+ {
+ "meta": {
+ "name": "UL2Label_Tooltip"
+ },
+ "position": {
+ "height": 25,
+ "width": 40,
+ "x": 1512,
+ "y": 620
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02_Custom/adiPPH_Unload_2/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.tooltipoverlay"
+ },
+ {
+ "meta": {
+ "name": "UL1Label_Tooltip"
+ },
+ "position": {
+ "height": 25,
+ "width": 40,
+ "x": 1582,
+ "y": 620
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02_Custom/adiPPH_Unload_1/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.tooltipoverlay"
+ },
+ {
+ "meta": {
+ "name": "UL7Label"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 40,
+ "x": 1102,
+ "y": 620
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": 118
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "UL7Label_Tooltip"
+ },
+ "position": {
+ "height": 25,
+ "width": 40,
+ "x": 1102,
+ "y": 620
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02_Custom/adiPPH_Unload_7/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.tooltipoverlay"
+ },
+ {
+ "meta": {
+ "name": "UnloadLabel"
+ },
+ "position": {
+ "height": 25,
+ "rotate": {
+ "anchor": "0 0"
+ },
+ "width": 90,
+ "x": 402,
+ "y": 80
+ },
+ "props": {
+ "style": {
+ "borderColor": "#000",
+ "borderStyle": "solid",
+ "borderWidth": "2px",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ },
+ "text": "Unloads"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "UnloadLabel_Tooltip"
+ },
+ "position": {
+ "height": 25,
+ "width": 90,
+ "x": 402,
+ "y": 80
+ },
+ "propConfig": {
+ "props.status": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]MCP02_Custom/adiPPH_Unload_Total/Graphics"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "type": "dex.display.tooltipoverlay"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "overflow": "hidden"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/fb58f84db080c110adfc319d38f958cf3ad09e0121d2bd3c4db92d33e1cddbbf b/.resources/fb58f84db080c110adfc319d38f958cf3ad09e0121d2bd3c4db92d33e1cddbbf
new file mode 100644
index 00000000..55e76935
--- /dev/null
+++ b/.resources/fb58f84db080c110adfc319d38f958cf3ad09e0121d2bd3c4db92d33e1cddbbf
@@ -0,0 +1,7 @@
+{
+ "base": {
+ "style": {
+ "color": "#FFB200"
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/fbb12b5f6b54c6385b4871b655657d088ef8ff9a7d487fae3349124a80ccbdc5 b/.resources/fbb12b5f6b54c6385b4871b655657d088ef8ff9a7d487fae3349124a80ccbdc5
new file mode 100644
index 00000000..d06c0f15
--- /dev/null
+++ b/.resources/fbb12b5f6b54c6385b4871b655657d088ef8ff9a7d487fae3349124a80ccbdc5
@@ -0,0 +1,13 @@
+{
+ "base": {
+ "animation": {
+ "duration": "1s",
+ "keyframes": {
+ "0%": {
+ "backgroundColor": "#F00077"
+ },
+ "100%": {}
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/.resources/fbece6a5c417baaa418f3e81c95a6986aaa6ac699d3d3ddb30153b090e59c9b9 b/.resources/fbece6a5c417baaa418f3e81c95a6986aaa6ac699d3d3ddb30153b090e59c9b9
new file mode 100644
index 00000000..7061802c
--- /dev/null
+++ b/.resources/fbece6a5c417baaa418f3e81c95a6986aaa6ac699d3d3ddb30153b090e59c9b9
@@ -0,0 +1,313 @@
+{
+ "custom": {},
+ "params": {
+ "tab": "Active Alarms"
+ },
+ "propConfig": {
+ "params.tab": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 400,
+ "width": 1600
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "Label"
+ },
+ "position": {
+ "height": 40,
+ "width": "100%"
+ },
+ "propConfig": {
+ "props.text": {
+ "binding": {
+ "config": {
+ "expression": " property(\"../TabContainer.props.tabs[\"+{../TabContainer.props.currentTabIndex}+\"]\")\r\n+if(len({../EmbeddedView.props.params.titleExtra})\u003e0,\r\n\t\" (\" + {../EmbeddedView.props.params.titleExtra} + \")\",\r\n\t\"\"\r\n)"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#1A4A5E",
+ "borderBottomColor": "#000000",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "2px",
+ "color": "#fff",
+ "fontFamily": "Helvetica",
+ "fontSize": "20px",
+ "fontWeight": "bold",
+ "textAlign": "center"
+ }
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "meta": {
+ "name": "Dropdown"
+ },
+ "position": {
+ "height": 20,
+ "width": 120,
+ "x": "calc(100% - 230px)",
+ "y": 10
+ },
+ "props": {
+ "options": [
+ {
+ "label": "Error",
+ "value": [
+ "Error"
+ ]
+ },
+ {
+ "label": "Warning",
+ "value": [
+ "Warning",
+ "Error"
+ ]
+ },
+ {
+ "label": "Message",
+ "value": [
+ "Message",
+ "Warning",
+ "Error"
+ ]
+ }
+ ],
+ "search": {
+ "enabled": false
+ },
+ "style": {
+ "fontSize": "14px"
+ },
+ "value": [
+ "Error"
+ ]
+ },
+ "type": "ia.input.dropdown"
+ },
+ {
+ "meta": {
+ "name": "Label_0"
+ },
+ "position": {
+ "height": 20,
+ "width": 100,
+ "x": "calc(100% - 335px)",
+ "y": 10
+ },
+ "props": {
+ "style": {
+ "color": "#fff",
+ "fontSize": "14px",
+ "textAlign": "right"
+ },
+ "text": "Min Class:"
+ },
+ "type": "ia.display.label"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tsystem.perspective.sendMessage(\"export-data\")"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button"
+ },
+ "position": {
+ "height": 30,
+ "width": 100,
+ "x": "calc(100% - 105px)",
+ "y": 5
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Grey"
+ },
+ "text": "Export"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "custom": {
+ "pages": [
+ "Active",
+ "History",
+ "HitList"
+ ]
+ },
+ "meta": {
+ "name": "TabContainer"
+ },
+ "position": {
+ "height": "calc(100% - 40px)",
+ "width": "100%",
+ "y": 40
+ },
+ "propConfig": {
+ "props.currentTabIndex": {
+ "binding": {
+ "config": {
+ "path": "page.props.path"
+ },
+ "transforms": [
+ {
+ "code": "\ttab \u003d self.page.props.path.split(\"/\")[-1]\n\t# Search for tab:\n\tfor i, page in enumerate(self.custom.pages):\n\t\tif page.lower() \u003d\u003d tab:\n\t\t\treturn i\n\t# Default value in case of not finding the tab\n\treturn 0",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ },
+ "onChange": {
+ "enabled": null,
+ "script": "\tpage \u003d \"/alarms/\"+self.custom.pages[self.props.currentTabIndex].lower()\n\tif previousValue \u003c\u003e currentValue and self.page.props.path.lower() \u003c\u003e page.lower():\n\t\tsystem.perspective.navigate(page)"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "menuStyle": {
+ "backgroundColor": "#225E77"
+ },
+ "tabSize": {
+ "width": 130
+ },
+ "tabStyle": {
+ "active": {
+ "backgroundColor": "#2D7D9F",
+ "color": "#FFF",
+ "fontWeight": "bold"
+ },
+ "inactive": {
+ "backgroundColor": "#389CC7",
+ "color": "#FFF"
+ }
+ },
+ "tabs": [
+ "Active Alarms",
+ "Alarm History",
+ "Alarm Hit List"
+ ]
+ },
+ "type": "ia.container.tab"
+ },
+ {
+ "meta": {
+ "name": "EmbeddedView"
+ },
+ "position": {
+ "height": "calc(100% - 76px)",
+ "width": "100%",
+ "y": 76
+ },
+ "propConfig": {
+ "props.params.classDropdownValue": {
+ "binding": {
+ "config": {
+ "path": "../Dropdown.props.value"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "props.path": {
+ "binding": {
+ "config": {
+ "expression": " \"Windows/Alarms/\"\r\n+property(\"../TabContainer.custom.pages[\"+{../TabContainer.props.currentTabIndex}+\"]\")"
+ },
+ "transforms": [
+ {
+ "code": "\t# Reset the titleExtra whenever the view is changed to prevent the numbers from showing while loading the new view:\n\tif value \u003c\u003e self.props.path:\n\t\tself.props.params.titleExtra \u003d \"\"\n\t# Return new view path:\n\treturn value",
+ "type": "script"
+ }
+ ],
+ "type": "expr"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "params": {
+ "classDropdownValue": [
+ "Error"
+ ],
+ "titleExtra": "24 rows"
+ },
+ "path": "Windows/Alarms/Active"
+ },
+ "type": "ia.display.view"
+ },
+ {
+ "meta": {
+ "name": "TimeWidget"
+ },
+ "position": {
+ "height": 40,
+ "width": 600
+ },
+ "propConfig": {
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "../TabContainer.props.currentTabIndex"
+ },
+ "transforms": [
+ {
+ "fallback": false,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": true
+ },
+ {
+ "input": 2,
+ "output": true
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "params": {
+ "endDate": "2021-02-13 00:00:00",
+ "startDate": "2021-02-12 00:00:00"
+ },
+ "path": "Templates/Widget/TimeWidget"
+ },
+ "type": "ia.display.view"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "props": {
+ "style": {
+ "min-width": "1000px"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/fcdc32cca3bf6bd7e3b6b1c7831f9ebe6624092f31f6915489e008f6388a8d80 b/.resources/fcdc32cca3bf6bd7e3b6b1c7831f9ebe6624092f31f6915489e008f6388a8d80
new file mode 100644
index 00000000..89bf26ba
--- /dev/null
+++ b/.resources/fcdc32cca3bf6bd7e3b6b1c7831f9ebe6624092f31f6915489e008f6388a8d80
@@ -0,0 +1,1073 @@
+{
+ "custom": {},
+ "params": {
+ "titleExtra": "0 of 0"
+ },
+ "props": {
+ "defaultSize": {
+ "height": 324,
+ "width": 1600
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "events": {
+ "component": {
+ "onEditCellCommit": {
+ "config": {
+ "script": "\tif event.column in [\"StartHour\", \"EndHour\"]:\n\t\tif int(event.value) \u003c 0 or int(event.value) \u003e 24:\n\t\t\treturn\n\telif event.column in [\"StartMinute\", \"EndMinute\"]:\n\t\tif event.value \u003c 0 or int(event.value) \u003e\u003d 60:\n\t\t\treturn\n\t# Update shifts:\n\tdata \u003d system.dataset.updateRow(self.props.data, event.row, {\n\t\tevent.column: event.value\n\t})\n\tsystem.tag.writeBlocking([\"[default]Gateway/Shifts\"], [data])"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Shifts"
+ },
+ "position": {
+ "height": "100%",
+ "width": "100%"
+ },
+ "propConfig": {
+ "props.data": {
+ "binding": {
+ "config": {
+ "bidirectional": true,
+ "fallbackDelay": 2.5,
+ "mode": "direct",
+ "tagPath": "[default]Gateway/Shifts"
+ },
+ "type": "tag"
+ }
+ }
+ },
+ "props": {
+ "cells": {
+ "style": {
+ "borderBottomColor": "#D5D5D5",
+ "borderBottomStyle": "solid",
+ "borderBottomWidth": "2px",
+ "borderRightColor": "#D5D5D5",
+ "borderRightStyle": "solid",
+ "borderRightWidth": "2px",
+ "color": "#000",
+ "fontFamily": "Helvetica",
+ "fontSize": "14px"
+ }
+ },
+ "columns": [
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": true,
+ "field": "Name",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": ""
+ },
+ "justify": "auto",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": true,
+ "field": "Enabled",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": ""
+ },
+ "justify": "auto",
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 80
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "hh:mm:ss a",
+ "editable": true,
+ "field": "StartHour",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Start Hour"
+ },
+ "justify": "auto",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 100
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "hh:mm:ss a",
+ "editable": true,
+ "field": "StartMinute",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Start Minute"
+ },
+ "justify": "auto",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 110
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "hh:mm:ss a",
+ "editable": true,
+ "field": "EndHour",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "End Hour"
+ },
+ "justify": "auto",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 100
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "hh:mm:ss a",
+ "editable": true,
+ "field": "EndMinute",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "End Minute"
+ },
+ "justify": "auto",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 110
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "hh:mm:ss a",
+ "editable": true,
+ "field": "isSunday",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Sunday"
+ },
+ "justify": "auto",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 80
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "hh:mm:ss a",
+ "editable": true,
+ "field": "isMonday",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Monday"
+ },
+ "justify": "auto",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 80
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "hh:mm:ss a",
+ "editable": true,
+ "field": "isTuesday",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Tuesday"
+ },
+ "justify": "auto",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 80
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "hh:mm:ss a",
+ "editable": true,
+ "field": "isWednesday",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Wednesday"
+ },
+ "justify": "auto",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 100
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "hh:mm:ss a",
+ "editable": true,
+ "field": "isThursday",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Thursday"
+ },
+ "justify": "auto",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 85
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "hh:mm:ss a",
+ "editable": true,
+ "field": "isFriday",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Friday"
+ },
+ "justify": "auto",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 80
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "hh:mm:ss a",
+ "editable": true,
+ "field": "isSaturday",
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": "table/column-header"
+ },
+ "title": "Saturday"
+ },
+ "justify": "auto",
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": false,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": true,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 80
+ }
+ ],
+ "filter": {
+ "enabled": true
+ },
+ "pager": {
+ "bottom": false
+ },
+ "rows": {
+ "highlight": {
+ "enabled": false
+ },
+ "striped": {
+ "enabled": false
+ },
+ "style": {
+ "classes": "table/highlight"
+ }
+ },
+ "style": {
+ "fontFamily": "Helvetica",
+ "fontSize": "14px",
+ "fontWeight": "bold"
+ }
+ },
+ "scripts": {
+ "customMethods": [],
+ "messageHandlers": [
+ {
+ "messageType": "export-data",
+ "pageScope": true,
+ "script": "\tutils.downloadCSV(self, \"Shifts\")",
+ "sessionScope": false,
+ "viewScope": false
+ }
+ ]
+ },
+ "type": "ia.display.table"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tshifts \u003d self.getSibling(\"Shifts\")\n\trow \u003d shifts.props.selection.selectedRow\n\tdata \u003d system.dataset.deleteRow(shifts.props.data, row)\n\tsystem.tag.writeBlocking([\"[default]Gateway/Shifts\"], [data])"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button_Delete"
+ },
+ "position": {
+ "height": 34,
+ "width": 140,
+ "x": "calc(100% - 145px)",
+ "y": 8
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "expression": "{../Shifts.props.selection.selectedRow} !\u003d null"
+ },
+ "type": "expr"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Red"
+ },
+ "text": "Delete Selected"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tshifts \u003d self.getSibling(\"Shifts\")\n\tnewRow \u003d [\"\", False, 0, 0, 0, 0, False, False, False, False, False, False, False]\n\tdata \u003d system.dataset.addRow(shifts.props.data, newRow)\n\tsystem.tag.writeBlocking([\"[default]Gateway/Shifts\"], [data])"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "Button_New"
+ },
+ "position": {
+ "height": 34,
+ "width": 140,
+ "x": "calc(100% - 290px)",
+ "y": 8
+ },
+ "propConfig": {
+ "props.enabled": {
+ "binding": {
+ "config": {
+ "path": "../Shifts.props.data"
+ },
+ "transforms": [
+ {
+ "code": "\treturn value.getRowCount() \u003c 8",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "style": {
+ "classes": "Buttons/Green"
+ },
+ "text": "Add New"
+ },
+ "type": "ia.input.button"
+ }
+ ],
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/.resources/fd38c85b4fe815c20aac8297616dfeec681b5a4af4e8ce84918f1b71092e0a05 b/.resources/fd38c85b4fe815c20aac8297616dfeec681b5a4af4e8ce84918f1b71092e0a05
new file mode 100644
index 00000000..8a632849
Binary files /dev/null and b/.resources/fd38c85b4fe815c20aac8297616dfeec681b5a4af4e8ce84918f1b71092e0a05 differ
diff --git a/.resources/fe0644f5c3ac02de9c1f9c31d42f075c18e91f7da37f5b7332c665b1ea183e68 b/.resources/fe0644f5c3ac02de9c1f9c31d42f075c18e91f7da37f5b7332c665b1ea183e68
new file mode 100644
index 00000000..19ee6d05
--- /dev/null
+++ b/.resources/fe0644f5c3ac02de9c1f9c31d42f075c18e91f7da37f5b7332c665b1ea183e68
@@ -0,0 +1,26 @@
+WITH SORTERS AS (
+ SELECT
+ MIN(timestamp) AS start_timestamp,
+ MAX(timestamp) AS end_timestamp,
+ 3600/TIMESTAMPDIFF(SECOND, :startDate, :endDate) AS pph_multiplier,
+ "SYSTEM" AS sorter,
+ SUM(IF(lane_id LIKE "UL%", count, 0)) AS inducted,
+ SUM(IF(lane_id LIKE "CH%", count, 0)) AS sorted
+ FROM pe_history
+ WHERE timestamp BETWEEN :startDate AND :endDate
+ GROUP BY "SYSTEM" /* Makes it so no row is returned if no rows are processed */
+)
+SELECT
+ start_timestamp,
+ end_timestamp,
+ sorter,
+ /* Counts: */
+ inducted AS inducted_count,
+ sorted AS sorted_count,
+ /* PPH: */
+ ROUND(inducted*pph_multiplier) AS inducted_pph,
+ ROUND(sorted*pph_multiplier) AS sorted_pph,
+ /* Percents: */
+ ROUND(inducted/inducted, 4) AS inducted_percent,
+ ROUND(sorted/sorted, 4) AS sorted_percent
+FROM SORTERS;
\ No newline at end of file
diff --git a/.resources/fe109525974c059498bbbe9c62b754300c85932f47d99b300e0f46864acda199 b/.resources/fe109525974c059498bbbe9c62b754300c85932f47d99b300e0f46864acda199
new file mode 100644
index 00000000..c47d408e
--- /dev/null
+++ b/.resources/fe109525974c059498bbbe9c62b754300c85932f47d99b300e0f46864acda199
@@ -0,0 +1,457 @@
+{
+ "custom": {
+ "disconnected": true,
+ "plc": "System",
+ "priority": 5,
+ "priority_string": "No active alarms",
+ "searchId": "value",
+ "state": 0,
+ "state_string": "Stopped"
+ },
+ "params": {
+ "tagProps": [
+ "System/MCM01/Station/SSPB/UL6_1_SS1",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value",
+ "value"
+ ]
+ },
+ "propConfig": {
+ "custom.disconnected": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 2.5,
+ "mode": "indirect",
+ "references": {
+ "0": "{view.params.tagProps[0]}",
+ "fc": "{session.custom.fc}"
+ },
+ "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE"
+ },
+ "transforms": [
+ {
+ "expression": "!isGood({value})",
+ "type": "expression"
+ }
+ ],
+ "type": "tag"
+ },
+ "persistent": true
+ },
+ "custom.plc": {
+ "binding": {
+ "config": {
+ "path": "view.params.tagProps[0]"
+ },
+ "transforms": [
+ {
+ "expression": "split({value}, \"/\")[0]",
+ "type": "expression"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.priority": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "fallback": 5,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 0,
+ "output": 5
+ },
+ {
+ "input": 1,
+ "output": 3
+ },
+ {
+ "input": 2,
+ "output": 3
+ },
+ {
+ "input": 3,
+ "output": 3
+ },
+ {
+ "input": 4,
+ "output": 5
+ },
+ {
+ "input": 5,
+ "output": 5
+ },
+ {
+ "input": 6,
+ "output": 5
+ },
+ {
+ "input": 7,
+ "output": 3
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.priority_string": {
+ "binding": {
+ "config": {
+ "expression": "case({view.custom.priority},\r\n3, \"Medium\",\r\n5, \"No active alarms\",\r\n\"Unknown\")"
+ },
+ "type": "expr"
+ },
+ "persistent": true
+ },
+ "custom.searchId": {
+ "binding": {
+ "config": {
+ "path": "session.custom.searchId"
+ },
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.state": {
+ "binding": {
+ "config": {
+ "fallbackDelay": 1,
+ "mode": "indirect",
+ "references": {
+ "0": "{view.params.tagProps[0]}",
+ "fc": "{session.custom.fc}"
+ },
+ "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE"
+ },
+ "transforms": [
+ {
+ "expression": "coalesce({value},{view.params.forceFaultStatus},0)",
+ "type": "expression"
+ },
+ {
+ "fallback": 0,
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": 1
+ },
+ {
+ "input": 2,
+ "output": 2
+ },
+ {
+ "input": 3,
+ "output": 3
+ },
+ {
+ "input": 4,
+ "output": 4
+ },
+ {
+ "input": 5,
+ "output": 5
+ },
+ {
+ "input": 6,
+ "output": 6
+ },
+ {
+ "input": 7,
+ "output": 7
+ }
+ ],
+ "outputType": "scalar",
+ "type": "map"
+ }
+ ],
+ "type": "tag"
+ },
+ "persistent": true
+ },
+ "custom.state_string": {
+ "binding": {
+ "config": {
+ "expression": "case({view.custom.state},\r\n0, \"Stopped\",\r\n1, \"Started\",\r\n2, \"Stopped\",\r\n3, \"Stopped\",\r\n4, \"Disabled\",\r\n5, \"Started\",\r\n6, \"Started\",\r\n7, \"Stopped\",\r\n\"Unknown\")"
+ },
+ "type": "expr"
+ },
+ "persistent": true
+ },
+ "params.tagProps": {
+ "paramDirection": "input",
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 25,
+ "width": 50
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "meta": {
+ "name": "SS_button"
+ },
+ "position": {
+ "height": 1,
+ "width": 1
+ },
+ "propConfig": {
+ "props.elements[0].fill.paint": {
+ "binding": {
+ "config": {
+ "expression": "if(\r\n {view.custom.disconnected},\r\n \"#808080\",\r\n switch(\r\n toInt({view.custom.state}),\r\n 0, 1, 2, 3, 4, 5, 6 ,7,\r\n \"#AAAAAA\", \"#AAAAAA\", \"#AAAAAA\", \"#AAAAAA\", \"#AAAAAA\",\r\n \"#AAAAAA\", \"#AAAAAA\", \"#AAAAAA\", \r\n \"#FFFF00\"\r\n )\r\n)\r\n"
+ },
+ "type": "expr"
+ }
+ },
+ "props.elements[1].fill.paint": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "fallback": "#00CC00",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 0,
+ "output": "#007400"
+ },
+ {
+ "input": 1,
+ "output": "#00FF00"
+ },
+ {
+ "input": 2,
+ "output": "#00FF00"
+ },
+ {
+ "input": 3,
+ "output": "#00FF00"
+ },
+ {
+ "input": 4,
+ "output": "#007400"
+ },
+ {
+ "input": 5,
+ "output": "#00FF00"
+ },
+ {
+ "input": 6,
+ "output": "#00FF00"
+ },
+ {
+ "input": 7,
+ "output": "#00FF00"
+ }
+ ],
+ "outputType": "color",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ },
+ "props.elements[2].fill.paint": {
+ "binding": {
+ "config": {
+ "path": "view.custom.state"
+ },
+ "transforms": [
+ {
+ "fallback": "#940003",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 0,
+ "output": "#940003"
+ },
+ {
+ "input": 1,
+ "output": "#940003"
+ },
+ {
+ "input": 2,
+ "output": "#940003"
+ },
+ {
+ "input": 3,
+ "output": "#D90000"
+ },
+ {
+ "input": 4,
+ "output": "#940003"
+ },
+ {
+ "input": 5,
+ "output": "#940003"
+ },
+ {
+ "input": 6,
+ "output": "#940003"
+ }
+ ],
+ "outputType": "color",
+ "type": "map"
+ }
+ ],
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "elements": [
+ {
+ "d": "M 0,0 H 40 V 20 H 0 Z",
+ "fill": {},
+ "id": "outer-rect",
+ "name": "outer-rect",
+ "stroke": {
+ "paint": "#000000",
+ "width": "1.5"
+ },
+ "type": "path"
+ },
+ {
+ "d": "m 17,10.5 c 0,3.865993 -3.134007,7 -7,7 -3.8659932,0 -7,-3.134007 -7,-7 0,-3.8659932 3.1340068,-7 7,-7 3.865993,0 7,3.1340068 7,7 z",
+ "fill": {},
+ "id": "inner-circle",
+ "name": "inner-circle",
+ "stroke": {
+ "paint": "#000000",
+ "width": "1"
+ },
+ "type": "path"
+ },
+ {
+ "d": "m 36.642136,10.376001 c 0,3.865993 -3.134007,7 -7,7 -3.865993,0 -7,-3.134007 -7,-7 0,-3.8659928 3.134007,-6.9999998 7,-6.9999998 3.865993,0 7,3.134007 7,6.9999998 z",
+ "fill": {},
+ "id": "inner-circle-8",
+ "name": "inner-circle-8",
+ "stroke": {
+ "paint": "#000000",
+ "width": "1"
+ },
+ "type": "path"
+ }
+ ],
+ "viewBox": "0 0 40 20"
+ },
+ "type": "ia.shapes.svg"
+ }
+ ],
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "script": "\tsystem.perspective.openDock(\u0027Docked-East-SS-BTN\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})"
+ },
+ "scope": "G",
+ "type": "script"
+ },
+ "onDoubleClick": {
+ "config": {
+ "script": "\ttagProps \u003d self.view.params.tagProps\n\tsystem.perspective.openPopup(\"StatusPopUP\", \"PopUp-Views/Controller-Equipment/Information\", params \u003d{\"tagProps\":tagProps})"
+ },
+ "scope": "G",
+ "type": "script"
+ },
+ "onMouseEnter": {
+ "config": {
+ "script": "\tfrom time import sleep\n\t\n\talarm \u003d []\n\tmessage \u003d None\n\t\n\tsleep(0.5)\n\t\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "root",
+ "tooltip": {
+ "enabled": true,
+ "style": {}
+ }
+ },
+ "propConfig": {
+ "meta.tooltip.style.classes": {
+ "binding": {
+ "config": {
+ "expression": "{view.custom.priority}"
+ },
+ "transforms": [
+ {
+ "fallback": "Alarms-Styles/NoAlarm",
+ "inputType": "scalar",
+ "mappings": [
+ {
+ "input": 1,
+ "output": "Alarms-Styles/Diagnostic"
+ },
+ {
+ "input": 2,
+ "output": "Alarms-Styles/Low"
+ },
+ {
+ "input": 3,
+ "output": "Alarms-Styles/Medium"
+ },
+ {
+ "input": 4,
+ "output": "Alarms-Styles/High"
+ }
+ ],
+ "outputType": "style-list",
+ "type": "map"
+ }
+ ],
+ "type": "expr"
+ }
+ },
+ "meta.tooltip.text": {
+ "binding": {
+ "config": {
+ "expression": "if(\n {view.custom.disconnected} \u003d false,\n \"Source Id: \" + {view.params.tagProps[0]} + \", Priority: \" + {view.custom.priority_string} + \", State: \" + {view.custom.state_string},\n \"Device Disconnected\"\n)\n"
+ },
+ "type": "expr"
+ }
+ },
+ "meta.visible": {
+ "binding": {
+ "config": {
+ "path": "session.custom.alarm_filter.show_buttons"
+ },
+ "type": "property"
+ }
+ }
+ },
+ "props": {
+ "mode": "percent",
+ "style": {
+ "cursor": "pointer"
+ }
+ },
+ "type": "ia.container.coord"
+ }
+}
\ No newline at end of file
diff --git a/BNA8/com.inductiveautomation.perspective/page-config/config.json b/BNA8/com.inductiveautomation.perspective/page-config/config.json
index 1aad6983..033fa6ed 100644
--- a/BNA8/com.inductiveautomation.perspective/page-config/config.json
+++ b/BNA8/com.inductiveautomation.perspective/page-config/config.json
@@ -166,7 +166,7 @@
"show": "onDemand",
"size": 165,
"viewParams": {},
- "viewPath": "autStand/Docked_Views/Footer/Footer"
+ "viewPath": "autStand/Docked_Views/Footer"
}
],
"top": [
@@ -182,7 +182,7 @@
"show": "visible",
"size": 50,
"viewParams": {},
- "viewPath": "autStand/Docked_Views/Header/Header"
+ "viewPath": "autStand/Docked_Views/Header"
}
]
},
@@ -391,7 +391,7 @@
"show": "onDemand",
"size": 165,
"viewParams": {},
- "viewPath": "autStand/Docked_Views/Footer/Footer"
+ "viewPath": "autStand/Docked_Views/Footer"
}
],
"top": [
@@ -401,13 +401,13 @@
"content": "push",
"handle": "hide",
"iconUrl": "",
- "id": "",
+ "id": "header-autStand",
"modal": false,
"resizable": false,
"show": "visible",
- "size": 150,
+ "size": 60,
"viewParams": {},
- "viewPath": "autStand/Docked_Views/Header/Header"
+ "viewPath": "autStand/Docked_Views/Header"
}
]
},
@@ -428,7 +428,7 @@
"show": "visible",
"size": 165,
"viewParams": {},
- "viewPath": "autStand/Docked_Views/Footer/Footer"
+ "viewPath": "autStand/Docked_Views/Footer"
}
],
"top": [
@@ -438,13 +438,13 @@
"content": "push",
"handle": "hide",
"iconUrl": "",
- "id": "",
+ "id": "header-autStand",
"modal": false,
"resizable": false,
"show": "visible",
- "size": 150,
+ "size": 60,
"viewParams": {},
- "viewPath": "autStand/Docked_Views/Header/Header"
+ "viewPath": "autStand/Docked_Views/Header"
}
]
},
diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM02-NC SORTER/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM02-NC SORTER/view.json
index 975266f7..a698d92e 100644
--- a/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM02-NC SORTER/view.json
+++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM02-NC SORTER/view.json
@@ -40,8 +40,8 @@
"name": "FlexContainer"
},
"position": {
- "height": 1080,
- "width": 1920
+ "height": 1,
+ "width": 1
},
"props": {
"direction": "column",
@@ -68,10 +68,10 @@
"name": "Button"
},
"position": {
- "height": 36,
- "width": 124,
- "x": 34,
- "y": 666
+ "height": 0.0333,
+ "width": 0.0646,
+ "x": 0.0177,
+ "y": 0.6167
},
"props": {
"primary": false,
@@ -84,10 +84,10 @@
"name": "NCS1_1_SOL1"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 331,
- "y": 492
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.1724,
+ "y": 0.4556
},
"props": {
"params": {
@@ -113,10 +113,10 @@
"name": "NCS1_1_SOL2"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 363,
- "y": 474
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.1891,
+ "y": 0.4389
},
"props": {
"params": {
@@ -142,10 +142,10 @@
"name": "NCS1_1_SOL3"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 363,
- "y": 500
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.1891,
+ "y": 0.463
},
"props": {
"params": {
@@ -171,10 +171,10 @@
"name": "NCS1_1_SOL4"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 403,
- "y": 500
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.2099,
+ "y": 0.463
},
"props": {
"params": {
@@ -200,10 +200,10 @@
"name": "NCS1_1_SOL5"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 403,
- "y": 475
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.2099,
+ "y": 0.4398
},
"props": {
"params": {
@@ -229,10 +229,10 @@
"name": "NCS1_1_SOL6"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 443,
- "y": 500
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.2307,
+ "y": 0.463
},
"props": {
"params": {
@@ -258,10 +258,10 @@
"name": "NCS1_1_SOL7"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 443,
- "y": 475
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.2307,
+ "y": 0.4398
},
"props": {
"params": {
@@ -287,10 +287,10 @@
"name": "NCS1_1_SOL8"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 483,
- "y": 500
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.2516,
+ "y": 0.463
},
"props": {
"params": {
@@ -316,10 +316,10 @@
"name": "NCS1_1_SOL9"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 483,
- "y": 475
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.2516,
+ "y": 0.4398
},
"props": {
"params": {
@@ -345,10 +345,10 @@
"name": "NCS1_1_SOL10"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 523,
- "y": 500
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.2724,
+ "y": 0.463
},
"props": {
"params": {
@@ -374,10 +374,10 @@
"name": "NCS1_1_SOL11"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 523,
- "y": 475
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.2724,
+ "y": 0.4398
},
"props": {
"params": {
@@ -403,10 +403,10 @@
"name": "NCS1_1_SOL12"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 557,
- "y": 500
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.2901,
+ "y": 0.463
},
"props": {
"params": {
@@ -432,10 +432,10 @@
"name": "NCS1_1_SOL13"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 557,
- "y": 475
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.2901,
+ "y": 0.4398
},
"props": {
"params": {
@@ -461,10 +461,10 @@
"name": "NCS1_1_SOL14"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 590,
- "y": 500
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.3073,
+ "y": 0.463
},
"props": {
"params": {
@@ -490,10 +490,10 @@
"name": "NCS1_1_SOL15"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 590,
- "y": 475
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.3073,
+ "y": 0.4398
},
"props": {
"params": {
@@ -519,10 +519,10 @@
"name": "NCS1_1_SOL16"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 630,
- "y": 509
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.3281,
+ "y": 0.4713
},
"props": {
"params": {
@@ -548,10 +548,10 @@
"name": "NCS1_1_SOL17"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 630,
- "y": 486
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.3281,
+ "y": 0.45
},
"props": {
"params": {
@@ -577,10 +577,10 @@
"name": "NCS1_1_SOL18"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 663,
- "y": 509
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.3453,
+ "y": 0.4713
},
"props": {
"params": {
@@ -606,10 +606,10 @@
"name": "NCS1_1_SOL19"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 663,
- "y": 486
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.3453,
+ "y": 0.45
},
"props": {
"params": {
@@ -635,10 +635,10 @@
"name": "NCS1_1_SOL20"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 703,
- "y": 500
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.3661,
+ "y": 0.463
},
"props": {
"params": {
@@ -664,10 +664,10 @@
"name": "NCS1_1_SOL21"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 703,
- "y": 475
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.3661,
+ "y": 0.4398
},
"props": {
"params": {
@@ -693,10 +693,10 @@
"name": "NCS1_1_SOL22"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 743,
- "y": 500
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.387,
+ "y": 0.463
},
"props": {
"params": {
@@ -722,10 +722,10 @@
"name": "NCS1_1_SOL23"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 743,
- "y": 475
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.387,
+ "y": 0.4398
},
"props": {
"params": {
@@ -751,10 +751,10 @@
"name": "NCS1_1_SOL24"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 783,
- "y": 500
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.4078,
+ "y": 0.463
},
"props": {
"params": {
@@ -780,10 +780,10 @@
"name": "NCS1_1_SOL25"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 783,
- "y": 475
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.4078,
+ "y": 0.4398
},
"props": {
"params": {
@@ -809,10 +809,10 @@
"name": "NCS1_1_SOL26"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 823,
- "y": 500
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.4286,
+ "y": 0.463
},
"props": {
"params": {
@@ -838,10 +838,10 @@
"name": "NCS1_1_SOL27"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 823,
- "y": 475
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.4286,
+ "y": 0.4398
},
"props": {
"params": {
@@ -867,10 +867,10 @@
"name": "NCS1_1_SOL28"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 870,
- "y": 500
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.4531,
+ "y": 0.463
},
"props": {
"params": {
@@ -896,10 +896,10 @@
"name": "NCS1_1_SOL29"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 870,
- "y": 475
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.4531,
+ "y": 0.4398
},
"props": {
"params": {
@@ -925,10 +925,10 @@
"name": "NCS1_1_SOL30"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 907,
- "y": 500
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.4724,
+ "y": 0.463
},
"props": {
"params": {
@@ -954,10 +954,10 @@
"name": "NCS1_1_SOL31"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 907,
- "y": 475
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.4724,
+ "y": 0.4398
},
"props": {
"params": {
@@ -983,10 +983,10 @@
"name": "NCS1_1_SOL32"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 947,
- "y": 500
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.4932,
+ "y": 0.463
},
"props": {
"params": {
@@ -1012,10 +1012,10 @@
"name": "NCS1_1_SOL33"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 947,
- "y": 475
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.4932,
+ "y": 0.4398
},
"props": {
"params": {
@@ -1041,10 +1041,10 @@
"name": "NCS1_1_SOL34"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 987,
- "y": 500
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.5141,
+ "y": 0.463
},
"props": {
"params": {
@@ -1070,10 +1070,10 @@
"name": "NCS1_1_SOL35"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 987,
- "y": 475
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.5141,
+ "y": 0.4398
},
"props": {
"params": {
@@ -1099,10 +1099,10 @@
"name": "NCS1_1_SOL36"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1027,
- "y": 500
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.5349,
+ "y": 0.463
},
"props": {
"params": {
@@ -1128,10 +1128,10 @@
"name": "NCS1_1_SOL37"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1027,
- "y": 475
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.5349,
+ "y": 0.4398
},
"props": {
"params": {
@@ -1157,10 +1157,10 @@
"name": "NCS1_1_SOL38"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1060,
- "y": 500
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.5521,
+ "y": 0.463
},
"props": {
"params": {
@@ -1186,10 +1186,10 @@
"name": "NCS1_1_SOL39"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1060,
- "y": 475
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.5521,
+ "y": 0.4398
},
"props": {
"params": {
@@ -1215,10 +1215,10 @@
"name": "NCS1_1_SOL40"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1094,
- "y": 500
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.5698,
+ "y": 0.463
},
"props": {
"params": {
@@ -1244,10 +1244,10 @@
"name": "NCS1_1_SOL41"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1094,
- "y": 475
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.5698,
+ "y": 0.4398
},
"props": {
"params": {
@@ -1273,10 +1273,10 @@
"name": "NCS1_1_SOL42"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1134,
- "y": 500
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.5906,
+ "y": 0.463
},
"props": {
"params": {
@@ -1302,10 +1302,10 @@
"name": "NCS1_1_SOL43"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1134,
- "y": 475
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.5906,
+ "y": 0.4398
},
"props": {
"params": {
@@ -1331,10 +1331,10 @@
"name": "NCS1_1_SOL44"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1134,
- "y": 500
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.5906,
+ "y": 0.463
},
"props": {
"params": {
@@ -1360,10 +1360,10 @@
"name": "NCS1_1_SOL45"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1134,
- "y": 475
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.5906,
+ "y": 0.4398
},
"props": {
"params": {
@@ -1389,10 +1389,10 @@
"name": "NCS1_1_SOL46"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1174,
- "y": 509
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.6115,
+ "y": 0.4713
},
"props": {
"params": {
@@ -1418,10 +1418,10 @@
"name": "NCS1_1_SOL47"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1174,
- "y": 486
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.6115,
+ "y": 0.45
},
"props": {
"params": {
@@ -1447,10 +1447,10 @@
"name": "NCS1_1_SOL48"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1214,
- "y": 509
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.6323,
+ "y": 0.4713
},
"props": {
"params": {
@@ -1476,10 +1476,10 @@
"name": "NCS1_1_SOL49"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1214,
- "y": 486
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.6323,
+ "y": 0.45
},
"props": {
"params": {
@@ -1505,10 +1505,10 @@
"name": "NCS1_1_SOL50"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1246,
- "y": 500
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.649,
+ "y": 0.463
},
"props": {
"params": {
@@ -1534,10 +1534,10 @@
"name": "NCS1_1_SOL51"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1246,
- "y": 475
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.649,
+ "y": 0.4398
},
"props": {
"params": {
@@ -1563,10 +1563,10 @@
"name": "NCS1_1_SOL52"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1279,
- "y": 500
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.6661,
+ "y": 0.463
},
"props": {
"params": {
@@ -1592,10 +1592,10 @@
"name": "NCS1_1_SOL53"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1279,
- "y": 475
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.6661,
+ "y": 0.4398
},
"props": {
"params": {
@@ -1621,10 +1621,10 @@
"name": "NCS1_1_SOL54"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1319,
- "y": 500
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.687,
+ "y": 0.463
},
"props": {
"params": {
@@ -1650,10 +1650,10 @@
"name": "NCS1_1_SOL55"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1319,
- "y": 475
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.687,
+ "y": 0.4398
},
"props": {
"params": {
@@ -1679,10 +1679,10 @@
"name": "NCS1_1_SOL56"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1359,
- "y": 500
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.7078,
+ "y": 0.463
},
"props": {
"params": {
@@ -1708,10 +1708,10 @@
"name": "NCS1_1_SOL57"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1359,
- "y": 475
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.7078,
+ "y": 0.4398
},
"props": {
"params": {
@@ -1737,10 +1737,10 @@
"name": "NCS1_1_SOL58"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1399,
- "y": 500
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.7286,
+ "y": 0.463
},
"props": {
"params": {
@@ -1766,10 +1766,10 @@
"name": "NCS1_1_SOL59"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1399,
- "y": 475
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.7286,
+ "y": 0.4398
},
"props": {
"params": {
@@ -1795,10 +1795,10 @@
"name": "NCS1_1_SOL60"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1439,
- "y": 500
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.7495,
+ "y": 0.463
},
"props": {
"params": {
@@ -1824,10 +1824,10 @@
"name": "NCS1_1_SOL61"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1439,
- "y": 475
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.7495,
+ "y": 0.4398
},
"props": {
"params": {
@@ -1853,10 +1853,10 @@
"name": "NCS1_1_SOL62"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1479,
- "y": 500
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.7703,
+ "y": 0.463
},
"props": {
"params": {
@@ -1882,10 +1882,10 @@
"name": "NCS1_1_SOL63"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1479,
- "y": 475
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.7703,
+ "y": 0.4398
},
"props": {
"params": {
@@ -1911,10 +1911,10 @@
"name": "NCS1_1_SOL64"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1519,
- "y": 500
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.7911,
+ "y": 0.463
},
"props": {
"params": {
@@ -1940,10 +1940,10 @@
"name": "NCS1_1_SOL65"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1519,
- "y": 475
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.7911,
+ "y": 0.4398
},
"props": {
"params": {
@@ -1969,10 +1969,10 @@
"name": "NCS1_1_SOL66"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1559,
- "y": 500
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.812,
+ "y": 0.463
},
"props": {
"params": {
@@ -1998,10 +1998,10 @@
"name": "NCS1_1_SOL67"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1559,
- "y": 475
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.812,
+ "y": 0.4398
},
"props": {
"params": {
@@ -2027,10 +2027,10 @@
"name": "NCS1_1_SOL68"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1599,
- "y": 500
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.8328,
+ "y": 0.463
},
"props": {
"params": {
@@ -2056,10 +2056,10 @@
"name": "NCS1_1_SOL69"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1599,
- "y": 475
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.8328,
+ "y": 0.4398
},
"props": {
"params": {
@@ -2085,10 +2085,10 @@
"name": "NCS1_1_SOL70"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1639,
- "y": 500
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.8536,
+ "y": 0.463
},
"props": {
"params": {
@@ -2114,10 +2114,10 @@
"name": "NCS1_1_SOL71"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1639,
- "y": 475
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.8536,
+ "y": 0.4398
},
"props": {
"params": {
@@ -2143,10 +2143,10 @@
"name": "NCS1_1_SOL72"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1639,
- "y": 500
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.8536,
+ "y": 0.463
},
"props": {
"params": {
@@ -2172,10 +2172,10 @@
"name": "NCS1_1_SOL73"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1639,
- "y": 475
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.8536,
+ "y": 0.4398
},
"props": {
"params": {
@@ -2201,10 +2201,10 @@
"name": "NCS1_1_SOL74"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1671,
- "y": 475
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.8703,
+ "y": 0.4398
},
"props": {
"params": {
@@ -2230,10 +2230,10 @@
"name": "NCS1_1_SOL75"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1671,
- "y": 500
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.8703,
+ "y": 0.463
},
"props": {
"params": {
@@ -2259,10 +2259,10 @@
"name": "NCS1_1_SOL77"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1703,
- "y": 500
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.887,
+ "y": 0.463
},
"props": {
"params": {
@@ -2288,10 +2288,10 @@
"name": "NCS1_1_SOL78"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1735,
- "y": 490
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.9036,
+ "y": 0.4537
},
"props": {
"params": {
@@ -2317,10 +2317,10 @@
"name": "NCS1_1_SOL76"
},
"position": {
- "height": 22,
- "width": 23,
- "x": 1703,
- "y": 474
+ "height": 0.0204,
+ "width": 0.012,
+ "x": 0.887,
+ "y": 0.4389
},
"props": {
"params": {
@@ -2346,10 +2346,10 @@
"name": "PS3_12_EPC2"
},
"position": {
- "height": 30,
- "width": 30,
- "x": 21,
- "y": 543
+ "height": 0.0278,
+ "width": 0.0156,
+ "x": 0.0109,
+ "y": 0.5028
},
"props": {
"params": {
@@ -2375,10 +2375,10 @@
"name": "PS3_12_EPC1"
},
"position": {
- "height": 30,
- "width": 30,
- "x": 19,
- "y": 424
+ "height": 0.0278,
+ "width": 0.0156,
+ "x": 0.0099,
+ "y": 0.3926
},
"props": {
"params": {
@@ -2404,10 +2404,10 @@
"name": "S03_1_FIOM1"
},
"position": {
- "height": 20,
- "width": 40,
- "x": 366,
- "y": 547
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.1906,
+ "y": 0.5065
},
"props": {
"params": {
@@ -2433,10 +2433,10 @@
"name": "PS3_14_SIO1"
},
"position": {
- "height": 20,
- "width": 40,
- "x": 263,
- "y": 409
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.137,
+ "y": 0.3787
},
"props": {
"params": {
@@ -2462,10 +2462,10 @@
"name": "NCS1_1_SS1"
},
"position": {
- "height": 20,
- "width": 40,
- "x": 1782,
- "y": 434
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.9281,
+ "y": 0.4019
},
"props": {
"params": {
@@ -2491,10 +2491,10 @@
"name": "S03_CH101_PRX1"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 412,
- "y": 426
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.2146,
+ "y": 0.3944
},
"props": {
"params": {
@@ -2520,10 +2520,10 @@
"name": "Camera"
},
"position": {
- "height": 30,
- "width": 40,
- "x": 1860,
- "y": 548
+ "height": 0.0278,
+ "width": 0.0208,
+ "x": 0.9688,
+ "y": 0.5074
},
"props": {
"params": {
@@ -2552,10 +2552,10 @@
"name": "PS3_12_JR2"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 152,
- "y": 540
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.0792,
+ "y": 0.5
},
"props": {
"params": {
@@ -2581,10 +2581,10 @@
"name": "PS3_12_JR1"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 154,
- "y": 431
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.0802,
+ "y": 0.3991
},
"props": {
"params": {
@@ -2610,10 +2610,10 @@
"name": "PS3_12_VFD1"
},
"position": {
- "height": 26,
- "width": 26,
- "x": 121,
- "y": 430
+ "height": 0.0241,
+ "width": 0.0135,
+ "x": 0.063,
+ "y": 0.3981
},
"props": {
"params": {
@@ -2630,10 +2630,10 @@
"name": "PS3_13_VFD1"
},
"position": {
- "height": 26,
- "width": 26,
- "x": 205,
- "y": 430
+ "height": 0.0241,
+ "width": 0.0135,
+ "x": 0.1068,
+ "y": 0.3981
},
"props": {
"params": {
@@ -2650,10 +2650,10 @@
"name": "PS3_14_VFD1"
},
"position": {
- "height": 26,
- "width": 26,
- "x": 271,
- "y": 430
+ "height": 0.0241,
+ "width": 0.0135,
+ "x": 0.1411,
+ "y": 0.3981
},
"props": {
"params": {
@@ -2670,10 +2670,10 @@
"name": "PS3_13_SIO1"
},
"position": {
- "height": 20,
- "width": 40,
- "x": 198,
- "y": 409
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.1031,
+ "y": 0.3787
},
"props": {
"params": {
@@ -2699,10 +2699,10 @@
"name": "PS3_12_SIO1"
},
"position": {
- "height": 20,
- "width": 40,
- "x": 80,
- "y": 432
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.0417,
+ "y": 0.4
},
"props": {
"params": {
@@ -2728,10 +2728,10 @@
"name": "PS3_12_BCN1_A"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 157,
- "y": 408
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.0818,
+ "y": 0.3778
},
"props": {
"params": {
@@ -2758,10 +2758,10 @@
"name": "PS3_13_ENW1"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 203,
- "y": 491
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.1057,
+ "y": 0.4546
},
"props": {
"params": {
@@ -2778,10 +2778,10 @@
"name": "PS3_14_ENW1"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 263,
- "y": 491
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.137,
+ "y": 0.4546
},
"props": {
"params": {
@@ -2798,10 +2798,10 @@
"name": "S03_1_FIOM2"
},
"position": {
- "height": 20,
- "width": 40,
- "x": 506,
- "y": 547
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.2635,
+ "y": 0.5065
},
"props": {
"params": {
@@ -2827,10 +2827,10 @@
"name": "S03_1_FIOM3"
},
"position": {
- "height": 20,
- "width": 40,
- "x": 609,
- "y": 547
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.3172,
+ "y": 0.5065
},
"props": {
"params": {
@@ -2856,10 +2856,10 @@
"name": "S03_1_FIOM5"
},
"position": {
- "height": 20,
- "width": 40,
- "x": 975,
- "y": 570
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.5078,
+ "y": 0.5278
},
"props": {
"params": {
@@ -2885,10 +2885,10 @@
"name": "S03_1_FIOM4"
},
"position": {
- "height": 20,
- "width": 40,
- "x": 768,
- "y": 567
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.4,
+ "y": 0.525
},
"props": {
"params": {
@@ -2914,10 +2914,10 @@
"name": "S03_1_FIOM6"
},
"position": {
- "height": 20,
- "width": 40,
- "x": 1113,
- "y": 569
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.5797,
+ "y": 0.5269
},
"props": {
"params": {
@@ -2943,10 +2943,10 @@
"name": "S03_1_FIOM7"
},
"position": {
- "height": 20,
- "width": 40,
- "x": 1258,
- "y": 568
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.6552,
+ "y": 0.5259
},
"props": {
"params": {
@@ -2972,10 +2972,10 @@
"name": "S03_1_FIOM8"
},
"position": {
- "height": 20,
- "width": 40,
- "x": 1402,
- "y": 568
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.7302,
+ "y": 0.5259
},
"props": {
"params": {
@@ -3001,10 +3001,10 @@
"name": "S03_1_FIOM9"
},
"position": {
- "height": 20,
- "width": 40,
- "x": 1540,
- "y": 567
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.8021,
+ "y": 0.525
},
"props": {
"params": {
@@ -3030,10 +3030,10 @@
"name": "S03_CH101_EN1"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 446,
- "y": 248
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.2323,
+ "y": 0.2296
},
"props": {
"params": {
@@ -3059,10 +3059,10 @@
"name": "S03_CH103_EN1"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 518,
- "y": 248
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.2698,
+ "y": 0.2296
},
"props": {
"params": {
@@ -3088,10 +3088,10 @@
"name": "S03_CH105_EN1"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 587,
- "y": 248
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.3057,
+ "y": 0.2296
},
"props": {
"params": {
@@ -3117,10 +3117,10 @@
"name": "S03_CH107_EN1"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 708,
- "y": 248
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.3688,
+ "y": 0.2296
},
"props": {
"params": {
@@ -3146,10 +3146,10 @@
"name": "S03_CH109_EN1"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 780,
- "y": 248
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.4063,
+ "y": 0.2296
},
"props": {
"params": {
@@ -3175,10 +3175,10 @@
"name": "S03_CH111_EN1"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 851,
- "y": 248
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.4432,
+ "y": 0.2296
},
"props": {
"params": {
@@ -3204,10 +3204,10 @@
"name": "S03_CH113_EN1"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 994,
- "y": 248
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.5177,
+ "y": 0.2296
},
"props": {
"params": {
@@ -3233,10 +3233,10 @@
"name": "S03_CH115_EN1"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 1060,
- "y": 248
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.5521,
+ "y": 0.2296
},
"props": {
"params": {
@@ -3262,10 +3262,10 @@
"name": "S03_CH117_EN1"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 1132,
- "y": 248
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.5896,
+ "y": 0.2296
},
"props": {
"params": {
@@ -3291,10 +3291,10 @@
"name": "S03_CH119_EN1"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 1265,
- "y": 248
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.6589,
+ "y": 0.2296
},
"props": {
"params": {
@@ -3320,10 +3320,10 @@
"name": "S03_CH121_EN1"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 1336,
- "y": 248
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.6958,
+ "y": 0.2296
},
"props": {
"params": {
@@ -3349,10 +3349,10 @@
"name": "S03_CH123_EN1"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 1411,
- "y": 248
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.7349,
+ "y": 0.2296
},
"props": {
"params": {
@@ -3378,10 +3378,10 @@
"name": "S03_CH125_EN1"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 1543,
- "y": 248
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.8036,
+ "y": 0.2296
},
"props": {
"params": {
@@ -3407,10 +3407,10 @@
"name": "S03_CH127_EN1"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 1621,
- "y": 248
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.8443,
+ "y": 0.2296
},
"props": {
"params": {
@@ -3436,10 +3436,10 @@
"name": "S03_CH129_EN1"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 1693,
- "y": 248
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.8818,
+ "y": 0.2296
},
"props": {
"params": {
@@ -3465,10 +3465,10 @@
"name": "S03_CH130_EN1"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 1692,
- "y": 726
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.8812,
+ "y": 0.6722
},
"props": {
"params": {
@@ -3494,10 +3494,10 @@
"name": "S03_CH128_EN1"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 1617,
- "y": 726
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.8422,
+ "y": 0.6722
},
"props": {
"params": {
@@ -3523,10 +3523,10 @@
"name": "S03_CH126_EN1"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 1547,
- "y": 726
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.8057,
+ "y": 0.6722
},
"props": {
"params": {
@@ -3552,10 +3552,10 @@
"name": "S03_CH124_EN1"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 1401,
- "y": 726
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.7297,
+ "y": 0.6722
},
"props": {
"params": {
@@ -3581,10 +3581,10 @@
"name": "S03_CH122_EN1"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 1322,
- "y": 726
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.6885,
+ "y": 0.6722
},
"props": {
"params": {
@@ -3610,10 +3610,10 @@
"name": "S03_CH120_EN1"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 1256,
- "y": 726
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.6542,
+ "y": 0.6722
},
"props": {
"params": {
@@ -3639,10 +3639,10 @@
"name": "S03_CH118_EN1"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 1116,
- "y": 726
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.5813,
+ "y": 0.6722
},
"props": {
"params": {
@@ -3668,10 +3668,10 @@
"name": "S03_CH116_EN1"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 1054,
- "y": 726
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.549,
+ "y": 0.6722
},
"props": {
"params": {
@@ -3697,10 +3697,10 @@
"name": "S03_CH114_EN1"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 982,
- "y": 726
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.5115,
+ "y": 0.6722
},
"props": {
"params": {
@@ -3726,10 +3726,10 @@
"name": "S03_CH112_EN1"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 852,
- "y": 726
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.4437,
+ "y": 0.6722
},
"props": {
"params": {
@@ -3755,10 +3755,10 @@
"name": "S03_CH110_EN1"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 781,
- "y": 726
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.4068,
+ "y": 0.6722
},
"props": {
"params": {
@@ -3784,10 +3784,10 @@
"name": "S03_CH108_EN1"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 707,
- "y": 726
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.3682,
+ "y": 0.6722
},
"props": {
"params": {
@@ -3813,10 +3813,10 @@
"name": "S03_CH108_BNC1_G"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 689,
- "y": 649
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.3589,
+ "y": 0.6009
},
"props": {
"params": {
@@ -3843,10 +3843,10 @@
"name": "S03_CH108_BNC1_A"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 689,
- "y": 631
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.3589,
+ "y": 0.5843
},
"props": {
"params": {
@@ -3873,10 +3873,10 @@
"name": "S03_CH108_BNC1_B"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 689,
- "y": 613
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.3589,
+ "y": 0.5676
},
"props": {
"params": {
@@ -3903,10 +3903,10 @@
"name": "S03_CH110_BNC1_G"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 761,
- "y": 643
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.3964,
+ "y": 0.5954
},
"props": {
"params": {
@@ -3933,10 +3933,10 @@
"name": "S03_CH110_BNC1_B"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 761,
- "y": 623
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.3964,
+ "y": 0.5769
},
"props": {
"params": {
@@ -3963,10 +3963,10 @@
"name": "S03_CH112_BNC1_G"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 832,
- "y": 645
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.4333,
+ "y": 0.5972
},
"props": {
"params": {
@@ -3993,10 +3993,10 @@
"name": "S03_CH112_BNC1_B"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 832,
- "y": 625
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.4333,
+ "y": 0.5787
},
"props": {
"params": {
@@ -4023,10 +4023,10 @@
"name": "S03_CH114_BNC1_G"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 964,
- "y": 648
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.5021,
+ "y": 0.6
},
"props": {
"params": {
@@ -4053,10 +4053,10 @@
"name": "S03_CH114_BNC1_A"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 964,
- "y": 630
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.5021,
+ "y": 0.5833
},
"props": {
"params": {
@@ -4083,10 +4083,10 @@
"name": "S03_CH114_BNC1_B"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 964,
- "y": 612
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.5021,
+ "y": 0.5667
},
"props": {
"params": {
@@ -4113,10 +4113,10 @@
"name": "S03_CH116_BNC1_G"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1037,
- "y": 646
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.5401,
+ "y": 0.5981
},
"props": {
"params": {
@@ -4143,10 +4143,10 @@
"name": "S03_CH116_BNC1_B"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1037,
- "y": 626
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.5401,
+ "y": 0.5796
},
"props": {
"params": {
@@ -4173,10 +4173,10 @@
"name": "S03_CH118_BNC1_G"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1108,
- "y": 644
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.5771,
+ "y": 0.5963
},
"props": {
"params": {
@@ -4203,10 +4203,10 @@
"name": "S03_CH118_BNC1_B"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1108,
- "y": 625
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.5771,
+ "y": 0.5787
},
"props": {
"params": {
@@ -4233,10 +4233,10 @@
"name": "S03_CH120_BNC1_B"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1245,
- "y": 612
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.6484,
+ "y": 0.5667
},
"props": {
"params": {
@@ -4263,10 +4263,10 @@
"name": "S03_CH120_BNC1_A"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1245,
- "y": 630
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.6484,
+ "y": 0.5833
},
"props": {
"params": {
@@ -4293,10 +4293,10 @@
"name": "S03_CH120_BNC1_G"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1245,
- "y": 648
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.6484,
+ "y": 0.6
},
"props": {
"params": {
@@ -4323,10 +4323,10 @@
"name": "S03_CH122_BNC1_B"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1317,
- "y": 627
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.6859,
+ "y": 0.5806
},
"props": {
"params": {
@@ -4353,10 +4353,10 @@
"name": "S03_CH122_BNC1_G"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1317,
- "y": 645
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.6859,
+ "y": 0.5972
},
"props": {
"params": {
@@ -4383,10 +4383,10 @@
"name": "S03_CH124_BNC1_B"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1390,
- "y": 626
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.724,
+ "y": 0.5796
},
"props": {
"params": {
@@ -4413,10 +4413,10 @@
"name": "S03_CH124_BNC1_G"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1390,
- "y": 645
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.724,
+ "y": 0.5972
},
"props": {
"params": {
@@ -4443,10 +4443,10 @@
"name": "S03_CH126_BNC1_B"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1526,
- "y": 608
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.7948,
+ "y": 0.563
},
"props": {
"params": {
@@ -4473,10 +4473,10 @@
"name": "S03_CH126_BNC1_A"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1526,
- "y": 626
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.7948,
+ "y": 0.5796
},
"props": {
"params": {
@@ -4503,10 +4503,10 @@
"name": "S03_CH126_BNC1_G"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1526,
- "y": 644
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.7948,
+ "y": 0.5963
},
"props": {
"params": {
@@ -4533,10 +4533,10 @@
"name": "S03_CH128_BNC1_B"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1597,
- "y": 625
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.8318,
+ "y": 0.5787
},
"props": {
"params": {
@@ -4563,10 +4563,10 @@
"name": "S03_CH128_BNC1_G"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1597,
- "y": 646
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.8318,
+ "y": 0.5981
},
"props": {
"params": {
@@ -4593,10 +4593,10 @@
"name": "S03_CH130_BNC1_B"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1669,
- "y": 622
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.8693,
+ "y": 0.5759
},
"props": {
"params": {
@@ -4623,10 +4623,10 @@
"name": "S03_CH130_BNC1_G"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1669,
- "y": 643
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.8693,
+ "y": 0.5954
},
"props": {
"params": {
@@ -4653,10 +4653,10 @@
"name": "S03_CH101_BNC1_B"
},
"position": {
- "height": 18.99,
- "width": 20,
- "x": 412,
- "y": 333
+ "height": 0.0176,
+ "width": 0.0104,
+ "x": 0.2146,
+ "y": 0.3083
},
"props": {
"params": {
@@ -4683,10 +4683,10 @@
"name": "S03_CH101_BNC1_A"
},
"position": {
- "height": 18.99,
- "width": 20,
- "x": 412,
- "y": 350.09
+ "height": 0.0176,
+ "width": 0.0104,
+ "x": 0.2146,
+ "y": 0.3242
},
"props": {
"params": {
@@ -4713,10 +4713,10 @@
"name": "S03_CH103_BNC1_B"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 487,
- "y": 341
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.2536,
+ "y": 0.3157
},
"props": {
"params": {
@@ -4743,10 +4743,10 @@
"name": "S03_CH101_BNC1_G"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 412,
- "y": 365
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.2146,
+ "y": 0.338
},
"props": {
"params": {
@@ -4773,10 +4773,10 @@
"name": "S03_CH103_BNC1_G"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 487,
- "y": 361
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.2536,
+ "y": 0.3343
},
"props": {
"params": {
@@ -4803,10 +4803,10 @@
"name": "S03_CH105_BNC1_G"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 559,
- "y": 358
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.2911,
+ "y": 0.3315
},
"props": {
"params": {
@@ -4833,10 +4833,10 @@
"name": "S03_CH105_BNC1_B"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 559,
- "y": 338
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.2911,
+ "y": 0.313
},
"props": {
"params": {
@@ -4863,10 +4863,10 @@
"name": "S03_CH107_BNC1_B"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 689,
- "y": 331
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.3589,
+ "y": 0.3065
},
"props": {
"params": {
@@ -4893,10 +4893,10 @@
"name": "S03_CH107_BNC1_A"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 689,
- "y": 349
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.3589,
+ "y": 0.3231
},
"props": {
"params": {
@@ -4923,10 +4923,10 @@
"name": "S03_CH109_BNC1_B"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 761,
- "y": 339
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.3964,
+ "y": 0.3139
},
"props": {
"params": {
@@ -4953,10 +4953,10 @@
"name": "S03_CH107_BNC1_G"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 689,
- "y": 367
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.3589,
+ "y": 0.3398
},
"props": {
"params": {
@@ -4983,10 +4983,10 @@
"name": "S03_CH109_BNC1_G"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 761,
- "y": 359
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.3964,
+ "y": 0.3324
},
"props": {
"params": {
@@ -5013,10 +5013,10 @@
"name": "S03_CH111_BNC1_G"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 832,
- "y": 362
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.4333,
+ "y": 0.3352
},
"props": {
"params": {
@@ -5043,10 +5043,10 @@
"name": "S03_CH111_BNC1_B"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 832,
- "y": 342
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.4333,
+ "y": 0.3167
},
"props": {
"params": {
@@ -5073,10 +5073,10 @@
"name": "S03_CH113_BNC1_B"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 960,
- "y": 331
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.5,
+ "y": 0.3065
},
"props": {
"params": {
@@ -5103,10 +5103,10 @@
"name": "S03_CH113_BNC1_A"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 960,
- "y": 349
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.5,
+ "y": 0.3231
},
"props": {
"params": {
@@ -5133,10 +5133,10 @@
"name": "S03_CH115_BNC1_B"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1037,
- "y": 341
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.5401,
+ "y": 0.3157
},
"props": {
"params": {
@@ -5163,10 +5163,10 @@
"name": "S03_CH113_BNC1_G"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 960,
- "y": 367
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.5,
+ "y": 0.3398
},
"props": {
"params": {
@@ -5193,10 +5193,10 @@
"name": "S03_CH115_BNC1_G"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1037,
- "y": 361
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.5401,
+ "y": 0.3343
},
"props": {
"params": {
@@ -5223,10 +5223,10 @@
"name": "S03_CH117_BNC1_G"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1108,
- "y": 361
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.5771,
+ "y": 0.3343
},
"props": {
"params": {
@@ -5253,10 +5253,10 @@
"name": "S03_CH117_BNC1_B"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1108,
- "y": 341
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.5771,
+ "y": 0.3157
},
"props": {
"params": {
@@ -5283,10 +5283,10 @@
"name": "S03_CH119_BNC1_B"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1245,
- "y": 332
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.6484,
+ "y": 0.3074
},
"props": {
"params": {
@@ -5313,10 +5313,10 @@
"name": "S03_CH119_BNC1_A"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1245,
- "y": 350
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.6484,
+ "y": 0.3241
},
"props": {
"params": {
@@ -5343,10 +5343,10 @@
"name": "S03_CH121_BNC1_B"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1318,
- "y": 343
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.6865,
+ "y": 0.3176
},
"props": {
"params": {
@@ -5373,10 +5373,10 @@
"name": "S03_CH119_BNC1_G"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1245,
- "y": 368
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.6484,
+ "y": 0.3407
},
"props": {
"params": {
@@ -5403,10 +5403,10 @@
"name": "S03_CH121_BNC1_G"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1318,
- "y": 363
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.6865,
+ "y": 0.3361
},
"props": {
"params": {
@@ -5433,10 +5433,10 @@
"name": "S03_CH123_BNC1_G"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1390,
- "y": 363
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.724,
+ "y": 0.3361
},
"props": {
"params": {
@@ -5463,10 +5463,10 @@
"name": "S03_CH123_BNC1_B"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1390,
- "y": 343
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.724,
+ "y": 0.3176
},
"props": {
"params": {
@@ -5493,10 +5493,10 @@
"name": "S03_CH125_BNC1_B"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1524,
- "y": 332
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.7937,
+ "y": 0.3074
},
"props": {
"params": {
@@ -5523,10 +5523,10 @@
"name": "S03_CH125_BNC1_A"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1524,
- "y": 350
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.7937,
+ "y": 0.3241
},
"props": {
"params": {
@@ -5553,10 +5553,10 @@
"name": "S03_CH127_BNC1_B"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1600,
- "y": 348
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.8333,
+ "y": 0.3222
},
"props": {
"params": {
@@ -5583,10 +5583,10 @@
"name": "S03_CH125_BNC1_G"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1524,
- "y": 368
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.7937,
+ "y": 0.3407
},
"props": {
"params": {
@@ -5613,10 +5613,10 @@
"name": "S03_CH127_BNC1_G"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1600,
- "y": 368
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.8333,
+ "y": 0.3407
},
"props": {
"params": {
@@ -5643,10 +5643,10 @@
"name": "S03_CH129_BNC1_G"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1672,
- "y": 368
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.8708,
+ "y": 0.3407
},
"props": {
"params": {
@@ -5673,10 +5673,10 @@
"name": "S03_CH129_BNC1_B"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1672,
- "y": 348
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.8708,
+ "y": 0.3222
},
"props": {
"params": {
@@ -5703,10 +5703,10 @@
"name": "NCS1_1_EPC1"
},
"position": {
- "height": 30,
- "width": 30,
- "x": 1745.5,
- "y": 428.5
+ "height": 0.0278,
+ "width": 0.0156,
+ "x": 0.9091,
+ "y": 0.3968
},
"props": {
"params": {
@@ -5732,10 +5732,10 @@
"name": "NCS1_1_EPC2"
},
"position": {
- "height": 30,
- "width": 30,
- "x": 1746.5,
- "y": 542.5
+ "height": 0.0278,
+ "width": 0.0156,
+ "x": 0.9096,
+ "y": 0.5023
},
"props": {
"params": {
@@ -5761,10 +5761,10 @@
"name": "Beacon_63"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1750,
- "y": 403
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.9115,
+ "y": 0.3731
},
"props": {
"params": {
@@ -5791,10 +5791,10 @@
"name": "NCS1_1_BNC1_R"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1750,
- "y": 385
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.9115,
+ "y": 0.3565
},
"props": {
"params": {
@@ -5821,10 +5821,10 @@
"name": "NCS1_1_BNC1_H"
},
"position": {
- "height": 20,
- "width": 20,
- "x": 1750,
- "y": 367
+ "height": 0.0185,
+ "width": 0.0104,
+ "x": 0.9115,
+ "y": 0.3398
},
"props": {
"params": {
@@ -5851,10 +5851,10 @@
"name": "S03_1_JR1"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 370,
- "y": 413
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.1927,
+ "y": 0.3824
},
"props": {
"params": {
@@ -5880,10 +5880,10 @@
"name": "S03_1_JR3"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 651,
- "y": 416
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.3391,
+ "y": 0.3852
},
"props": {
"params": {
@@ -5909,10 +5909,10 @@
"name": "S03_1_JR5"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 912,
- "y": 419
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.475,
+ "y": 0.388
},
"props": {
"params": {
@@ -5938,10 +5938,10 @@
"name": "S03_1_JR7"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 1192,
- "y": 422
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.6208,
+ "y": 0.3907
},
"props": {
"params": {
@@ -5967,10 +5967,10 @@
"name": "S03_1_JR9"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 1478,
- "y": 422
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.7698,
+ "y": 0.3907
},
"props": {
"params": {
@@ -5996,10 +5996,10 @@
"name": "S03_1_JR4"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 657,
- "y": 557
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.3422,
+ "y": 0.5157
},
"props": {
"params": {
@@ -6025,10 +6025,10 @@
"name": "S03_1_JR6"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 932,
- "y": 555
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.4854,
+ "y": 0.5139
},
"props": {
"params": {
@@ -6054,10 +6054,10 @@
"name": "S03_1_JR8"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 1212,
- "y": 554
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.6312,
+ "y": 0.513
},
"props": {
"params": {
@@ -6083,10 +6083,10 @@
"name": "S03_1_JR10"
},
"position": {
- "height": 25,
- "width": 25,
- "x": 1491,
- "y": 552
+ "height": 0.0231,
+ "width": 0.013,
+ "x": 0.7766,
+ "y": 0.5111
},
"props": {
"params": {
@@ -6112,10 +6112,10 @@
"name": "S03_CH103_FIOM1"
},
"position": {
- "height": 20,
- "width": 40,
- "x": 504,
- "y": 402
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.2625,
+ "y": 0.3722
},
"props": {
"params": {
@@ -6141,10 +6141,10 @@
"name": "S03_CH109_FIOM1"
},
"position": {
- "height": 20,
- "width": 40,
- "x": 769,
- "y": 402
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.4005,
+ "y": 0.3722
},
"props": {
"params": {
@@ -6170,10 +6170,10 @@
"name": "S03_CH115_FIOM1"
},
"position": {
- "height": 20,
- "width": 40,
- "x": 1043,
- "y": 402
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.5432,
+ "y": 0.3722
},
"props": {
"params": {
@@ -6199,10 +6199,10 @@
"name": "S03_CH121_FIOM1"
},
"position": {
- "height": 20,
- "width": 40,
- "x": 1256,
- "y": 404
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.6542,
+ "y": 0.3741
},
"props": {
"params": {
@@ -6228,10 +6228,10 @@
"name": "S03_CH127_FIOM1"
},
"position": {
- "height": 20,
- "width": 40,
- "x": 1607,
- "y": 404
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.837,
+ "y": 0.3741
},
"props": {
"params": {
@@ -6257,10 +6257,10 @@
"name": "S03_1_FIOM10"
},
"position": {
- "height": 20,
- "width": 40,
- "x": 1670,
- "y": 567
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.8698,
+ "y": 0.525
},
"props": {
"params": {
@@ -6286,10 +6286,10 @@
"name": "S03_1_LRPE1"
},
"position": {
- "height": 34,
- "width": 251,
- "x": 387.46,
- "y": 436.99
+ "height": 0.0315,
+ "width": 0.1307,
+ "x": 0.2018,
+ "y": 0.4046
},
"props": {
"params": {
@@ -6315,10 +6315,10 @@
"name": "S03_1_LRPE3"
},
"position": {
- "height": 40,
- "width": 251,
- "x": 662.46,
- "y": 432.99
+ "height": 0.037,
+ "width": 0.1307,
+ "x": 0.345,
+ "y": 0.4009
},
"props": {
"params": {
@@ -6344,10 +6344,10 @@
"name": "S03_1_LRPE5"
},
"position": {
- "height": 40,
- "width": 251,
- "x": 940.46,
- "y": 432.99
+ "height": 0.037,
+ "width": 0.1307,
+ "x": 0.4898,
+ "y": 0.4009
},
"props": {
"params": {
@@ -6373,10 +6373,10 @@
"name": "S03_1_LRPE7"
},
"position": {
- "height": 40,
- "width": 251,
- "x": 1220.46,
- "y": 432.99
+ "height": 0.037,
+ "width": 0.1307,
+ "x": 0.6357,
+ "y": 0.4009
},
"props": {
"params": {
@@ -6402,10 +6402,10 @@
"name": "S03_1_LRPE9"
},
"position": {
- "height": 40,
- "width": 251,
- "x": 1500.46,
- "y": 432.99
+ "height": 0.037,
+ "width": 0.1307,
+ "x": 0.7815,
+ "y": 0.4009
},
"props": {
"params": {
@@ -6431,10 +6431,10 @@
"name": "S03_1_LRPE4"
},
"position": {
- "height": 32,
- "width": 251,
- "x": 667.46,
- "y": 523.99
+ "height": 0.0296,
+ "width": 0.1307,
+ "x": 0.3476,
+ "y": 0.4852
},
"props": {
"params": {
@@ -6460,10 +6460,10 @@
"name": "S03_1_LRPE6"
},
"position": {
- "height": 33,
- "width": 254,
- "x": 939.46,
- "y": 523.99
+ "height": 0.0306,
+ "width": 0.1323,
+ "x": 0.4893,
+ "y": 0.4852
},
"props": {
"params": {
@@ -6489,10 +6489,10 @@
"name": "S03_1_LRPE8"
},
"position": {
- "height": 35,
- "width": 254,
- "x": 1215.46,
- "y": 523.99
+ "height": 0.0324,
+ "width": 0.1323,
+ "x": 0.6331,
+ "y": 0.4852
},
"props": {
"params": {
@@ -6518,10 +6518,10 @@
"name": "S03_1_LRPE10"
},
"position": {
- "height": 33,
- "width": 259,
- "x": 1500.46,
- "y": 521.99
+ "height": 0.0306,
+ "width": 0.1349,
+ "x": 0.7815,
+ "y": 0.4833
},
"props": {
"params": {
@@ -6547,10 +6547,10 @@
"name": "S03_CH101_PE1"
},
"position": {
- "height": 37.97,
- "width": 110,
- "x": 389,
- "y": 373.03
+ "height": 0.0352,
+ "width": 0.0573,
+ "x": 0.2026,
+ "y": 0.3454
},
"props": {
"params": {
@@ -6576,10 +6576,10 @@
"name": "S03_CH103_PE1"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 459,
- "y": 371
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.2391,
+ "y": 0.3435
},
"props": {
"params": {
@@ -6605,10 +6605,10 @@
"name": "Photoeye_1"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 534,
- "y": 371
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.2781,
+ "y": 0.3435
},
"props": {
"params": {
@@ -6634,10 +6634,10 @@
"name": "S03_CH105_PE1"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 534,
- "y": 371
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.2781,
+ "y": 0.3435
},
"props": {
"params": {
@@ -6663,10 +6663,10 @@
"name": "S03_CH107_PE1"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 659,
- "y": 371
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.3432,
+ "y": 0.3435
},
"props": {
"params": {
@@ -6692,10 +6692,10 @@
"name": "S03_CH111_PE1"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 804,
- "y": 371
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.4188,
+ "y": 0.3435
},
"props": {
"params": {
@@ -6721,10 +6721,10 @@
"name": "S03_CH109_PE1"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 729,
- "y": 371
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.3797,
+ "y": 0.3435
},
"props": {
"params": {
@@ -6750,10 +6750,10 @@
"name": "S03_CH113_PE1"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 929,
- "y": 371
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.4839,
+ "y": 0.3435
},
"props": {
"params": {
@@ -6779,10 +6779,10 @@
"name": "S03_CH117_PE1"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 1074,
- "y": 371
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.5594,
+ "y": 0.3435
},
"props": {
"params": {
@@ -6808,10 +6808,10 @@
"name": "S03_CH115_PE1"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 999,
- "y": 371
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.5203,
+ "y": 0.3435
},
"props": {
"params": {
@@ -6837,10 +6837,10 @@
"name": "S03_CH119_PE1"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 1213,
- "y": 371
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.6318,
+ "y": 0.3435
},
"props": {
"params": {
@@ -6866,10 +6866,10 @@
"name": "S03_CH121_PE1"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 1283,
- "y": 371
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.6682,
+ "y": 0.3435
},
"props": {
"params": {
@@ -6895,10 +6895,10 @@
"name": "S03_CH123_PE1"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 1358,
- "y": 371
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.7073,
+ "y": 0.3435
},
"props": {
"params": {
@@ -6924,10 +6924,10 @@
"name": "S03_CH125_PE1"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 1491,
- "y": 371
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.7766,
+ "y": 0.3435
},
"props": {
"params": {
@@ -6953,10 +6953,10 @@
"name": "S03_CH127_PE1"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 1561,
- "y": 371
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.813,
+ "y": 0.3435
},
"props": {
"params": {
@@ -6982,10 +6982,10 @@
"name": "S03_CH129_PE1"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 1636,
- "y": 371
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.8521,
+ "y": 0.3435
},
"props": {
"params": {
@@ -7011,10 +7011,10 @@
"name": "S03_CH120_PE1"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 1214,
- "y": 582
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.6323,
+ "y": 0.5389
},
"props": {
"params": {
@@ -7040,10 +7040,10 @@
"name": "S03_CH122_PE1"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 1283,
- "y": 582
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.6682,
+ "y": 0.5389
},
"props": {
"params": {
@@ -7069,10 +7069,10 @@
"name": "S03_CH124_PE1"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 1358,
- "y": 582
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.7073,
+ "y": 0.5389
},
"props": {
"params": {
@@ -7098,10 +7098,10 @@
"name": "S03_CH114_PE1"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 932,
- "y": 582
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.4854,
+ "y": 0.5389
},
"props": {
"params": {
@@ -7127,10 +7127,10 @@
"name": "S03_CH116_PE1"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 1002,
- "y": 582
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.5219,
+ "y": 0.5389
},
"props": {
"params": {
@@ -7156,10 +7156,10 @@
"name": "S03_CH118_PE1"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 1076,
- "y": 582
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.5604,
+ "y": 0.5389
},
"props": {
"params": {
@@ -7185,10 +7185,10 @@
"name": "S03_CH108_PE1"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 654,
- "y": 582
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.3406,
+ "y": 0.5389
},
"props": {
"params": {
@@ -7214,10 +7214,10 @@
"name": "S03_CH110_PE1"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 724,
- "y": 582
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.3771,
+ "y": 0.5389
},
"props": {
"params": {
@@ -7243,10 +7243,10 @@
"name": "S03_CH112_PE1"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 799,
- "y": 582
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.4161,
+ "y": 0.5389
},
"props": {
"params": {
@@ -7272,10 +7272,10 @@
"name": "S03_CH126_PE1"
},
"position": {
- "height": 41,
- "width": 107,
- "x": 1497,
- "y": 582
+ "height": 0.038,
+ "width": 0.0557,
+ "x": 0.7797,
+ "y": 0.5389
},
"props": {
"params": {
@@ -7301,10 +7301,10 @@
"name": "S03_CH128_PE1"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 1564,
- "y": 582
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.8146,
+ "y": 0.5389
},
"props": {
"params": {
@@ -7330,10 +7330,10 @@
"name": "S03_CH130_PE1"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 1639,
- "y": 582
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.8536,
+ "y": 0.5389
},
"props": {
"params": {
@@ -7359,10 +7359,10 @@
"name": "Camera_0"
},
"position": {
- "height": 30,
- "width": 40,
- "x": 1860,
- "y": 548
+ "height": 0.0278,
+ "width": 0.0208,
+ "x": 0.9688,
+ "y": 0.5074
},
"props": {
"params": {
@@ -7391,10 +7391,10 @@
"name": "NCS1_1_SS2"
},
"position": {
- "height": 20,
- "width": 40,
- "x": 1785,
- "y": 545
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.9297,
+ "y": 0.5046
},
"props": {
"params": {
@@ -7420,10 +7420,10 @@
"name": "NCS1_1_SIO1"
},
"position": {
- "height": 20,
- "width": 40,
- "x": 1747.5,
- "y": 576
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.9102,
+ "y": 0.5333
},
"props": {
"params": {
@@ -7449,10 +7449,10 @@
"name": "NCS1_1_VFD1"
},
"position": {
- "height": 26,
- "width": 26,
- "x": 1748,
- "y": 599
+ "height": 0.0241,
+ "width": 0.0135,
+ "x": 0.9104,
+ "y": 0.5546
},
"props": {
"params": {
@@ -7469,10 +7469,10 @@
"name": "S03_CH103_PRX1"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 488,
- "y": 426
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.2542,
+ "y": 0.3944
},
"props": {
"params": {
@@ -7498,10 +7498,10 @@
"name": "S03_Ch105_PRX1"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 559,
- "y": 426
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.2911,
+ "y": 0.3944
},
"props": {
"params": {
@@ -7527,10 +7527,10 @@
"name": "S03_Ch107_PRX1"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 691,
- "y": 426
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.3599,
+ "y": 0.3944
},
"props": {
"params": {
@@ -7556,10 +7556,10 @@
"name": "S03_Ch109_PRX1"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 761,
- "y": 426
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.3964,
+ "y": 0.3944
},
"props": {
"params": {
@@ -7585,10 +7585,10 @@
"name": "S03_CH111_PRX1"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 831,
- "y": 426
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.4328,
+ "y": 0.3944
},
"props": {
"params": {
@@ -7614,10 +7614,10 @@
"name": "S03_CH113_PRX1"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 962,
- "y": 426
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.501,
+ "y": 0.3944
},
"props": {
"params": {
@@ -7643,10 +7643,10 @@
"name": "S03_CH115_PRX1"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 1037,
- "y": 426
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.5401,
+ "y": 0.3944
},
"props": {
"params": {
@@ -7672,10 +7672,10 @@
"name": "S03_CH117_PRX1"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 1110,
- "y": 426
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.5781,
+ "y": 0.3944
},
"props": {
"params": {
@@ -7701,10 +7701,10 @@
"name": "S03_CH119_PRX1"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 1247,
- "y": 426
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.6495,
+ "y": 0.3944
},
"props": {
"params": {
@@ -7730,10 +7730,10 @@
"name": "S03_CH121_PRX1"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 1320,
- "y": 426
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.6875,
+ "y": 0.3944
},
"props": {
"params": {
@@ -7759,10 +7759,10 @@
"name": "S03_CH123_PRX1"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 1392,
- "y": 426
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.725,
+ "y": 0.3944
},
"props": {
"params": {
@@ -7788,10 +7788,10 @@
"name": "S03_CH125_PRX1"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 1525,
- "y": 426
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.7943,
+ "y": 0.3944
},
"props": {
"params": {
@@ -7817,10 +7817,10 @@
"name": "S03_CH127_PRX1"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 1598,
- "y": 426
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.8323,
+ "y": 0.3944
},
"props": {
"params": {
@@ -7846,10 +7846,10 @@
"name": "S03_CH129_PRX1"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 1670,
- "y": 426
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.8698,
+ "y": 0.3944
},
"props": {
"params": {
@@ -7875,10 +7875,10 @@
"name": "S03_CH108_PRX1"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 690,
- "y": 544
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.3594,
+ "y": 0.5037
},
"props": {
"params": {
@@ -7904,10 +7904,10 @@
"name": "S03_CH110_PRX1"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 760,
- "y": 544
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.3958,
+ "y": 0.5037
},
"props": {
"params": {
@@ -7933,10 +7933,10 @@
"name": "S03_CH112_PRX1"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 831,
- "y": 544
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.4328,
+ "y": 0.5037
},
"props": {
"params": {
@@ -7962,10 +7962,10 @@
"name": "S03_CH114_PRX1"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 964,
- "y": 545
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.5021,
+ "y": 0.5046
},
"props": {
"params": {
@@ -7991,10 +7991,10 @@
"name": "S03_CH116_PRX1"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 1037,
- "y": 545
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.5401,
+ "y": 0.5046
},
"props": {
"params": {
@@ -8020,10 +8020,10 @@
"name": "S03_CH118_PRX1"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 1106,
- "y": 545
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.576,
+ "y": 0.5046
},
"props": {
"params": {
@@ -8049,10 +8049,10 @@
"name": "S03_CH120_PRX1"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 1247,
- "y": 544
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.6495,
+ "y": 0.5037
},
"props": {
"params": {
@@ -8078,10 +8078,10 @@
"name": "S03_CH122_PRX1"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 1317,
- "y": 544
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.6859,
+ "y": 0.5037
},
"props": {
"params": {
@@ -8107,10 +8107,10 @@
"name": "S03_CH124_PRX1"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 1390,
- "y": 544
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.724,
+ "y": 0.5037
},
"props": {
"params": {
@@ -8136,10 +8136,10 @@
"name": "S03_CH126_PRX1"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 1528,
- "y": 544
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.7958,
+ "y": 0.5037
},
"props": {
"params": {
@@ -8165,10 +8165,10 @@
"name": "S03_CH128_PRX1"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 1601,
- "y": 544
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.8339,
+ "y": 0.5037
},
"props": {
"params": {
@@ -8194,10 +8194,10 @@
"name": "S03_CH130_PRX1"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 1671,
- "y": 544
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.8703,
+ "y": 0.5037
},
"props": {
"params": {
@@ -8223,10 +8223,10 @@
"name": "MCM02"
},
"position": {
- "height": 30,
- "width": 42,
- "x": 468,
- "y": 596
+ "height": 0.0278,
+ "width": 0.0219,
+ "x": 0.2437,
+ "y": 0.5519
},
"props": {
"params": {
@@ -8252,10 +8252,10 @@
"name": "NCS1_1_DPM1"
},
"position": {
- "height": 25,
- "width": 30,
- "x": 645.62,
- "y": 462
+ "height": 0.0231,
+ "width": 0.0156,
+ "x": 0.3363,
+ "y": 0.4278
},
"props": {
"params": {
@@ -8281,10 +8281,10 @@
"name": "NCS1_1_DPM2"
},
"position": {
- "height": 25,
- "width": 30,
- "x": 1194.62,
- "y": 462
+ "height": 0.0231,
+ "width": 0.0156,
+ "x": 0.6222,
+ "y": 0.4278
},
"props": {
"params": {
@@ -8310,10 +8310,10 @@
"name": "S03_CH110_FIOM1"
},
"position": {
- "height": 20,
- "width": 40,
- "x": 765,
- "y": 602
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.3984,
+ "y": 0.5574
},
"props": {
"params": {
@@ -8339,10 +8339,10 @@
"name": "S03_CH116_FIOM1"
},
"position": {
- "height": 20,
- "width": 40,
- "x": 1043,
- "y": 602
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.5432,
+ "y": 0.5574
},
"props": {
"params": {
@@ -8368,10 +8368,10 @@
"name": "S03_CH122_FIOM1"
},
"position": {
- "height": 20,
- "width": 40,
- "x": 1324,
- "y": 602
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.6896,
+ "y": 0.5574
},
"props": {
"params": {
@@ -8397,10 +8397,10 @@
"name": "S03_CH128_FIOM1"
},
"position": {
- "height": 20,
- "width": 40,
- "x": 1603,
- "y": 602
+ "height": 0.0185,
+ "width": 0.0208,
+ "x": 0.8349,
+ "y": 0.5574
},
"props": {
"params": {
@@ -8426,10 +8426,10 @@
"name": "S03_CH101_PRX2"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 443,
- "y": 426
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.2307,
+ "y": 0.3944
},
"props": {
"params": {
@@ -8455,10 +8455,10 @@
"name": "S03_CH103_PRX2"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 519,
- "y": 426
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.2703,
+ "y": 0.3944
},
"props": {
"params": {
@@ -8484,10 +8484,10 @@
"name": "S03_Ch105_PRX2"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 590,
- "y": 426
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.3073,
+ "y": 0.3944
},
"props": {
"params": {
@@ -8513,10 +8513,10 @@
"name": "S03_Ch107_PRX2"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 722,
- "y": 426
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.376,
+ "y": 0.3944
},
"props": {
"params": {
@@ -8542,10 +8542,10 @@
"name": "S03_Ch109_PRX2"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 792,
- "y": 426
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.4125,
+ "y": 0.3944
},
"props": {
"params": {
@@ -8571,10 +8571,10 @@
"name": "S03_CH111_PRX2"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 862,
- "y": 426
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.449,
+ "y": 0.3944
},
"props": {
"params": {
@@ -8600,10 +8600,10 @@
"name": "S03_CH113_PRX2"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 993,
- "y": 426
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.5172,
+ "y": 0.3944
},
"props": {
"params": {
@@ -8629,10 +8629,10 @@
"name": "S03_CH115_PRX2"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 1068,
- "y": 426
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.5563,
+ "y": 0.3944
},
"props": {
"params": {
@@ -8658,10 +8658,10 @@
"name": "S03_CH117_PRX2"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 1141,
- "y": 426
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.5943,
+ "y": 0.3944
},
"props": {
"params": {
@@ -8687,10 +8687,10 @@
"name": "S03_CH119_PRX2"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 1278,
- "y": 426
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.6656,
+ "y": 0.3944
},
"props": {
"params": {
@@ -8716,10 +8716,10 @@
"name": "S03_CH121_PRX2"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 1351,
- "y": 426
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.7036,
+ "y": 0.3944
},
"props": {
"params": {
@@ -8745,10 +8745,10 @@
"name": "S03_CH123_PRX2"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 1423,
- "y": 426
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.7411,
+ "y": 0.3944
},
"props": {
"params": {
@@ -8774,10 +8774,10 @@
"name": "S03_CH125_PRX2"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 1556,
- "y": 426
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.8104,
+ "y": 0.3944
},
"props": {
"params": {
@@ -8803,10 +8803,10 @@
"name": "S03_CH127_PRX2"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 1629,
- "y": 426
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.8484,
+ "y": 0.3944
},
"props": {
"params": {
@@ -8832,10 +8832,10 @@
"name": "S03_CH129_PRX2"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 1701,
- "y": 426
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.8859,
+ "y": 0.3944
},
"props": {
"params": {
@@ -8861,10 +8861,10 @@
"name": "S03_CH108_PRX2"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 721,
- "y": 544
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.3755,
+ "y": 0.5037
},
"props": {
"params": {
@@ -8890,10 +8890,10 @@
"name": "S03_CH110_PRX2"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 791,
- "y": 544
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.412,
+ "y": 0.5037
},
"props": {
"params": {
@@ -8919,10 +8919,10 @@
"name": "S03_CH112_PRX2"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 862,
- "y": 544
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.449,
+ "y": 0.5037
},
"props": {
"params": {
@@ -8948,10 +8948,10 @@
"name": "S03_CH114_PRX2"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 995,
- "y": 545
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.5182,
+ "y": 0.5046
},
"props": {
"params": {
@@ -8977,10 +8977,10 @@
"name": "S03_CH116_PRX2"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 1068,
- "y": 545
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.5563,
+ "y": 0.5046
},
"props": {
"params": {
@@ -9006,10 +9006,10 @@
"name": "S03_CH118_PRX2"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 1137,
- "y": 545
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.5922,
+ "y": 0.5046
},
"props": {
"params": {
@@ -9035,10 +9035,10 @@
"name": "S03_CH120_PRX2"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 1278,
- "y": 544
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.6656,
+ "y": 0.5037
},
"props": {
"params": {
@@ -9064,10 +9064,10 @@
"name": "S03_CH122_PRX2"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 1348,
- "y": 544
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.7021,
+ "y": 0.5037
},
"props": {
"params": {
@@ -9093,10 +9093,10 @@
"name": "S03_CH124_PRX2"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 1421,
- "y": 544
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.7401,
+ "y": 0.5037
},
"props": {
"params": {
@@ -9122,10 +9122,10 @@
"name": "S03_CH126_PRX2"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 1559,
- "y": 544
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.812,
+ "y": 0.5037
},
"props": {
"params": {
@@ -9151,10 +9151,10 @@
"name": "S03_CH128_PRX2"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 1632,
- "y": 544
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.85,
+ "y": 0.5037
},
"props": {
"params": {
@@ -9180,10 +9180,10 @@
"name": "S03_CH130_PRX2"
},
"position": {
- "height": 20,
- "width": 30,
- "x": 1702,
- "y": 544
+ "height": 0.0185,
+ "width": 0.0156,
+ "x": 0.8865,
+ "y": 0.5037
},
"props": {
"params": {
@@ -9209,10 +9209,10 @@
"name": "S03_CH101_PE2"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 389,
- "y": 300
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.2026,
+ "y": 0.2778
},
"props": {
"params": {
@@ -9238,10 +9238,10 @@
"name": "S03_CH103_PE2"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 459,
- "y": 300
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.2391,
+ "y": 0.2778
},
"props": {
"params": {
@@ -9267,10 +9267,10 @@
"name": "S03_CH105_PE2"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 534,
- "y": 300
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.2781,
+ "y": 0.2778
},
"props": {
"params": {
@@ -9296,10 +9296,10 @@
"name": "S03_CH107_PE2"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 659,
- "y": 300
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.3432,
+ "y": 0.2778
},
"props": {
"params": {
@@ -9325,10 +9325,10 @@
"name": "S03_CH109_PE2"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 729,
- "y": 300
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.3797,
+ "y": 0.2778
},
"props": {
"params": {
@@ -9354,10 +9354,10 @@
"name": "S03_CH111_PE2"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 804,
- "y": 300
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.4188,
+ "y": 0.2778
},
"props": {
"params": {
@@ -9383,10 +9383,10 @@
"name": "S03_CH113_PE2"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 929,
- "y": 300
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.4839,
+ "y": 0.2778
},
"props": {
"params": {
@@ -9412,10 +9412,10 @@
"name": "S03_CH115_PE2"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 999,
- "y": 300
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.5203,
+ "y": 0.2778
},
"props": {
"params": {
@@ -9441,10 +9441,10 @@
"name": "S03_CH117_PE2"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 1074,
- "y": 300
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.5594,
+ "y": 0.2778
},
"props": {
"params": {
@@ -9470,10 +9470,10 @@
"name": "S03_CH119_PE2"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 1213,
- "y": 300
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.6318,
+ "y": 0.2778
},
"props": {
"params": {
@@ -9499,10 +9499,10 @@
"name": "S03_CH121_PE2"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 1283,
- "y": 300
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.6682,
+ "y": 0.2778
},
"props": {
"params": {
@@ -9528,10 +9528,10 @@
"name": "S03_CH123_PE2"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 1358,
- "y": 300
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.7073,
+ "y": 0.2778
},
"props": {
"params": {
@@ -9557,10 +9557,10 @@
"name": "S03_CH125_PE2"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 1491,
- "y": 300
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.7766,
+ "y": 0.2778
},
"props": {
"params": {
@@ -9586,10 +9586,10 @@
"name": "S03_CH127_PE2"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 1561,
- "y": 300
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.813,
+ "y": 0.2778
},
"props": {
"params": {
@@ -9615,10 +9615,10 @@
"name": "S03_CH129_PE2"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 1636,
- "y": 300
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.8521,
+ "y": 0.2778
},
"props": {
"params": {
@@ -9644,10 +9644,10 @@
"name": "S03_CH108_PE2"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 654,
- "y": 657
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.3406,
+ "y": 0.6083
},
"props": {
"params": {
@@ -9673,10 +9673,10 @@
"name": "S03_CH110_PE2"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 724,
- "y": 657
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.3771,
+ "y": 0.6083
},
"props": {
"params": {
@@ -9702,10 +9702,10 @@
"name": "S03_CH112_PE2"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 799,
- "y": 657
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.4161,
+ "y": 0.6083
},
"props": {
"params": {
@@ -9731,10 +9731,10 @@
"name": "S03_CH114_PE2"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 932,
- "y": 657
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.4854,
+ "y": 0.6083
},
"props": {
"params": {
@@ -9760,10 +9760,10 @@
"name": "S03_CH116_PE2"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 1002,
- "y": 657
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.5219,
+ "y": 0.6083
},
"props": {
"params": {
@@ -9789,10 +9789,10 @@
"name": "S03_CH118_PE2"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 1076,
- "y": 657
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.5604,
+ "y": 0.6083
},
"props": {
"params": {
@@ -9818,10 +9818,10 @@
"name": "S03_CH120_PE2"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 1214,
- "y": 657
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.6323,
+ "y": 0.6083
},
"props": {
"params": {
@@ -9847,10 +9847,10 @@
"name": "S03_CH122_PE2"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 1283,
- "y": 657
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.6682,
+ "y": 0.6083
},
"props": {
"params": {
@@ -9876,10 +9876,10 @@
"name": "S03_CH124_PE2"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 1358,
- "y": 657
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.7073,
+ "y": 0.6083
},
"props": {
"params": {
@@ -9905,10 +9905,10 @@
"name": "S03_CH126_PE2"
},
"position": {
- "height": 41,
- "width": 107,
- "x": 1497,
- "y": 657
+ "height": 0.038,
+ "width": 0.0557,
+ "x": 0.7797,
+ "y": 0.6083
},
"props": {
"params": {
@@ -9934,10 +9934,10 @@
"name": "S03_CH128_PE2"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 1564,
- "y": 657
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.8146,
+ "y": 0.6083
},
"props": {
"params": {
@@ -9963,10 +9963,10 @@
"name": "S03_CH130_PE2"
},
"position": {
- "height": 40,
- "width": 110,
- "x": 1639,
- "y": 657
+ "height": 0.037,
+ "width": 0.0573,
+ "x": 0.8536,
+ "y": 0.6083
},
"props": {
"params": {
@@ -9992,10 +9992,10 @@
"name": "S03_1_LRPE11"
},
"position": {
- "height": 33,
- "width": 259,
- "x": 1500.46,
- "y": 521.99
+ "height": 0.0306,
+ "width": 0.1349,
+ "x": 0.7815,
+ "y": 0.4833
},
"props": {
"params": {
@@ -10020,6 +10020,12 @@
"meta": {
"name": "root"
},
+ "props": {
+ "mode": "percent",
+ "style": {
+ "overflow": "hidden"
+ }
+ },
"type": "ia.container.coord"
}
}
\ No newline at end of file
diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Footer/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Footer/resource.json
new file mode 100644
index 00000000..9195902f
--- /dev/null
+++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Footer/resource.json
@@ -0,0 +1,17 @@
+{
+ "scope": "G",
+ "version": 1,
+ "restricted": false,
+ "overridable": true,
+ "files": [
+ "view.json",
+ "thumbnail.png"
+ ],
+ "attributes": {
+ "lastModification": {
+ "actor": "admin",
+ "timestamp": "2025-08-18T10:23:32Z"
+ },
+ "lastModificationSignature": "8ffadcdf171b959f80c684a59ad3e79d4444412a0d2efb99f82dc9533aa2d67c"
+ }
+}
\ No newline at end of file
diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Footer/thumbnail.png b/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Footer/thumbnail.png
new file mode 100644
index 00000000..8a632849
Binary files /dev/null and b/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Footer/thumbnail.png differ
diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Footer/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Footer/view.json
new file mode 100644
index 00000000..64ccd2e6
--- /dev/null
+++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Footer/view.json
@@ -0,0 +1,3260 @@
+{
+ "custom": {
+ "MCM": "",
+ "currentTable": "HISTORY",
+ "page": "",
+ "view": ""
+ },
+ "params": {},
+ "propConfig": {
+ "custom.MCM": {
+ "binding": {
+ "config": {
+ "expression": "if({view.custom.view} !\u003d \"\", {view.custom.view}, {view.custom.page})"
+ },
+ "type": "expr"
+ },
+ "persistent": true
+ },
+ "custom.currentTable": {
+ "persistent": true
+ },
+ "custom.page": {
+ "binding": {
+ "config": {
+ "path": "page.props.path"
+ },
+ "transforms": [
+ {
+ "code": "\ttry:\n\t\tif \"MCM\" in value:\n\t\t\tindex \u003d value.find(\"MCM\")\n\t\t\treturn value[index:index+5] # MCM + 2 digits\n\texcept:\n\t\t\tpass\n\treturn \"\"",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ },
+ "custom.view": {
+ "binding": {
+ "config": {
+ "path": "page.props.primaryView"
+ },
+ "transforms": [
+ {
+ "code": "\ttry:\n\t\tif \"MCM\" in value:\n\t\t\tindex \u003d value.find(\"MCM\")\n\t\t\treturn value[index:index+5] # MCM + 2 digits\n\texcept:\n\t\t\tpass\n\treturn \"\"",
+ "type": "script"
+ }
+ ],
+ "type": "property"
+ },
+ "persistent": true
+ }
+ },
+ "props": {
+ "defaultSize": {
+ "height": 250,
+ "width": 1920
+ }
+ },
+ "root": {
+ "children": [
+ {
+ "children": [
+ {
+ "meta": {
+ "name": "Label"
+ },
+ "position": {
+ "basis": "32px",
+ "grow": 1
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "meta": {
+ "name": "FlexContainer"
+ },
+ "position": {
+ "basis": "70px",
+ "shrink": 0
+ },
+ "props": {
+ "direction": "column",
+ "style": {
+ "backgroundColor": "#3B3B3B"
+ }
+ },
+ "type": "ia.container.flex"
+ },
+ {
+ "children": [
+ {
+ "children": [
+ {
+ "events": {
+ "component": {
+ "onRowDoubleClick": {
+ "config": {
+ "script": "\tdata \u003d self.props.selection.data\n\t\n\talarms.alarm_click.handleClick(data)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "active-table"
+ },
+ "position": {
+ "basis": "1080px",
+ "grow": 1
+ },
+ "propConfig": {
+ "position.display": {
+ "binding": {
+ "config": {
+ "expression": "{view.custom.currentTable} \u003d \"ACTIVE\""
+ },
+ "type": "expr"
+ }
+ },
+ "props.columns[4].filter.string.value": {
+ "binding": {
+ "config": {
+ "path": "view.custom.MCM"
+ },
+ "type": "property"
+ }
+ },
+ "props.data": {
+ "binding": {
+ "config": {
+ "parameters": {
+ "priorityList": "{this.custom.priorities}"
+ },
+ "polling": {
+ "enabled": true,
+ "rate": "3"
+ },
+ "queryPath": "GetActiveAlarms"
+ },
+ "transforms": [
+ {
+ "code": "\n\tfrom system.dataset import toPyDataSet\n\n\tds \u003d toPyDataSet(value)\n\tdata \u003d []\n\n\tcolumn_names \u003d [col for col in ds.columnNames if col !\u003d \"EndTimestamp\"]\n\t\n\n\tfor row in ds:\n\t\tpriority \u003d row[\"Priority\"]\n\n\t\t# Use style class names from Perspective\n\t\tif priority \u003d\u003d \"High\":\n\t\t\tclassName \u003d \"Alarms-Styles/High\"\n\t\telif priority \u003d\u003d \"Medium\":\n\t\t\tclassName \u003d \"Alarms-Styles/Medium\"\n\t\telif priority \u003d\u003d \"Low\":\n\t\t\tclassName \u003d \"Alarms-Styles/Low\"\n\t\telif priority \u003d\u003d \"Diagnostic\":\n\t\t\tclassName \u003d \"Alarms-Styles/Diagnostic\"\n\t\telse:\n\t\t\tclassName \u003d \"Alarms-Styles/NoAlarm\"\n\n\t\t# Apply the style class to all cells in the row\n\t\trow_dict \u003d {\n\t\t\tcol: {\n\t\t\t\t\"value\": row[col],\n\t\t\t\t\"style\": { \"classes\": className }\n\t\t\t} for col in column_names\n\t\t}\n\t\tdata.append(row_dict)\n\n\treturn data",
+ "type": "script"
+ }
+ ],
+ "type": "query"
+ }
+ }
+ },
+ "props": {
+ "columns": [
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "NumberID",
+ "filter": {
+ "boolean": {
+ "condition": ""
+ },
+ "date": {
+ "condition": "",
+ "value": ""
+ },
+ "enabled": false,
+ "number": {
+ "condition": "",
+ "value": ""
+ },
+ "string": {
+ "condition": "",
+ "value": ""
+ },
+ "visible": "on-hover"
+ },
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": "Number (ID)"
+ },
+ "justify": "left",
+ "nullFormat": {
+ "includeNullStrings": false,
+ "nullFormatValue": "",
+ "strict": false
+ },
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 70
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY HH:mm:ss",
+ "editable": false,
+ "field": "StartTimestamp",
+ "filter": {
+ "boolean": {
+ "condition": ""
+ },
+ "date": {
+ "condition": "",
+ "value": ""
+ },
+ "enabled": false,
+ "number": {
+ "condition": "",
+ "value": ""
+ },
+ "string": {
+ "condition": "",
+ "value": ""
+ },
+ "visible": "on-hover"
+ },
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": "Event Timestamp"
+ },
+ "justify": "auto",
+ "nullFormat": {
+ "includeNullStrings": false,
+ "nullFormatValue": "",
+ "strict": false
+ },
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 70
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "Duration",
+ "filter": {
+ "boolean": {
+ "condition": ""
+ },
+ "date": {
+ "condition": "",
+ "value": ""
+ },
+ "enabled": true,
+ "number": {
+ "condition": "",
+ "value": ""
+ },
+ "string": {
+ "condition": "equals",
+ "value": ""
+ },
+ "visible": "never"
+ },
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "justify": "center",
+ "nullFormat": {
+ "includeNullStrings": false,
+ "nullFormatValue": "",
+ "strict": false
+ },
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "string",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 70
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "Priority",
+ "filter": {
+ "boolean": {
+ "condition": ""
+ },
+ "date": {
+ "condition": "",
+ "value": ""
+ },
+ "enabled": false,
+ "number": {
+ "condition": "",
+ "value": ""
+ },
+ "string": {
+ "condition": "",
+ "value": ""
+ },
+ "visible": "on-hover"
+ },
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "justify": "center",
+ "nullFormat": {
+ "includeNullStrings": false,
+ "nullFormatValue": "",
+ "strict": false
+ },
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 70
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "Location",
+ "filter": {
+ "boolean": {
+ "condition": ""
+ },
+ "date": {
+ "condition": "",
+ "value": ""
+ },
+ "enabled": true,
+ "number": {
+ "condition": "",
+ "value": ""
+ },
+ "string": {
+ "condition": "equals"
+ },
+ "visible": "never"
+ },
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "justify": "center",
+ "nullFormat": {
+ "includeNullStrings": false,
+ "nullFormatValue": "",
+ "strict": false
+ },
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 70
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "Description",
+ "filter": {
+ "boolean": {
+ "condition": ""
+ },
+ "date": {
+ "condition": "",
+ "value": ""
+ },
+ "enabled": false,
+ "number": {
+ "condition": "",
+ "value": ""
+ },
+ "string": {
+ "condition": "",
+ "value": ""
+ },
+ "visible": "on-hover"
+ },
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "justify": "center",
+ "nullFormat": {
+ "includeNullStrings": false,
+ "nullFormatValue": "",
+ "strict": false
+ },
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 150
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "Tag",
+ "filter": {
+ "boolean": {
+ "condition": ""
+ },
+ "date": {
+ "condition": "",
+ "value": ""
+ },
+ "enabled": false,
+ "number": {
+ "condition": "",
+ "value": ""
+ },
+ "string": {
+ "condition": "",
+ "value": ""
+ },
+ "visible": "on-hover"
+ },
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "justify": "auto",
+ "nullFormat": {
+ "includeNullStrings": false,
+ "nullFormatValue": "",
+ "strict": false
+ },
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 80
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "FullTag",
+ "filter": {
+ "boolean": {
+ "condition": ""
+ },
+ "date": {
+ "condition": "",
+ "value": ""
+ },
+ "enabled": false,
+ "number": {
+ "condition": "",
+ "value": ""
+ },
+ "string": {
+ "condition": "",
+ "value": ""
+ },
+ "visible": "on-hover"
+ },
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "justify": "auto",
+ "nullFormat": {
+ "includeNullStrings": false,
+ "nullFormatValue": "",
+ "strict": false
+ },
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": "",
+ "display": "none"
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "Device",
+ "filter": {
+ "boolean": {
+ "condition": ""
+ },
+ "date": {
+ "condition": "",
+ "value": ""
+ },
+ "enabled": false,
+ "number": {
+ "condition": "",
+ "value": ""
+ },
+ "string": {
+ "condition": "",
+ "value": ""
+ },
+ "visible": "on-hover"
+ },
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "justify": "auto",
+ "nullFormat": {
+ "includeNullStrings": false,
+ "nullFormatValue": "",
+ "strict": false
+ },
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": "",
+ "display": "none"
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ }
+ ],
+ "emptyMessage": {
+ "noData": {
+ "text": "No Active Alarms"
+ },
+ "noFilterResults": {
+ "text": "No Active Alarms"
+ }
+ },
+ "filter": {
+ "results": {
+ "enabled": true
+ }
+ },
+ "pager": {
+ "bottom": false
+ }
+ },
+ "type": "ia.display.table"
+ },
+ {
+ "events": {
+ "component": {
+ "onRowDoubleClick": {
+ "config": {
+ "script": "\tdata \u003d self.props.selection.data\n\t\n\talarms.alarm_click.handleClick(data)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "hitList-table"
+ },
+ "position": {
+ "basis": "1080px",
+ "grow": 1
+ },
+ "propConfig": {
+ "position.display": {
+ "binding": {
+ "config": {
+ "expression": "{view.custom.currentTable} \u003d \"HITLIST\""
+ },
+ "type": "expr"
+ }
+ },
+ "props.columns[5].filter.string.value": {
+ "binding": {
+ "config": {
+ "path": "view.custom.MCM"
+ },
+ "type": "property"
+ }
+ },
+ "props.data": {
+ "binding": {
+ "config": {
+ "polling": {
+ "enabled": true,
+ "rate": "3"
+ },
+ "queryPath": "GetAlarmsWithCount"
+ },
+ "transforms": [
+ {
+ "code": "\n\tfrom system.dataset import toPyDataSet\n\n\tds \u003d toPyDataSet(value)\n\tdata \u003d []\n\n\tcolumn_names \u003d list(ds.columnNames)\n\n\tfor row in ds:\n\t\tpriority \u003d row[\"Priority\"]\n\n\t\t# Use style class names from Perspective\n\t\tif priority \u003d\u003d \"High\":\n\t\t\tclassName \u003d \"Alarms-Styles/High\"\n\t\telif priority \u003d\u003d \"Medium\":\n\t\t\tclassName \u003d \"Alarms-Styles/Medium\"\n\t\telif priority \u003d\u003d \"Low\":\n\t\t\tclassName \u003d \"Alarms-Styles/Low\"\n\t\telif priority \u003d\u003d \"Diagnostic\":\n\t\t\tclassName \u003d \"Alarms-Styles/Diagnostic\"\n\t\telse:\n\t\t\tclassName \u003d \"Alarms-Styles/NoAlarm\"\n\n\t\t# Apply the style class to all cells in the row\n\t\trow_dict \u003d {\n\t\t\tcol: {\n\t\t\t\t\"value\": row[col],\n\t\t\t\t\"style\": { \"classes\": className }\n\t\t\t} for col in column_names\n\t\t}\n\t\tdata.append(row_dict)\n\n\treturn data\n",
+ "type": "script"
+ }
+ ],
+ "type": "query"
+ }
+ },
+ "props.editingCell": {
+ "onChange": {
+ "enabled": null,
+ "script": "\tall_alarms \u003d system.alarm.queryStatus(includeShelved\u003dTrue)\n\tshelved_alarms \u003d [alarm for alarm in all_alarms if alarm.isShelved()]\n\t\n\t# Build dataset for table\n\theaders \u003d [\u0027ID\u0027, \u0027StartTimestamp\u0027, \u0027EndTimestamp\u0027, \u0027Duration\u0027, \u0027Description\u0027, \u0027Priority\u0027, \u0027Tag\u0027, \u0027MCM\u0027]\n\tdata \u003d []\n\t\n\tfor alarm in shelved_alarms:\n\t # Calculate duration (time since shelved)\n\t if alarm.activeTime:\n\t duration_ms \u003d system.date.now().getTime() - alarm.activeTime.getTime()\n\t duration_seconds \u003d duration_ms / 1000\n\t hours \u003d int(duration_seconds / 3600)\n\t minutes \u003d int((duration_seconds % 3600) / 60)\n\t seconds \u003d int(duration_seconds % 60)\n\t duration \u003d \"%02d:%02d:%02d\" % (hours, minutes, seconds)\n\t else:\n\t duration \u003d \"00:00:00\"\n\t \n\t # Extract tag name from source\n\t tag_name \u003d alarm.source.split(\u0027/\u0027)[-1] if \u0027/\u0027 in alarm.source else alarm.source\n\t \n\t row \u003d [\n\t str(alarm.id) if hasattr(alarm, \u0027id\u0027) else \u0027\u0027,\n\t alarm.activeTime if alarm.activeTime else system.date.now(),\n\t None, # End timestamp (shelved alarms don\u0027t have end time yet)\n\t duration,\n\t alarm.displayPath if alarm.displayPath else alarm.source,\n\t alarm.priority.name if alarm.priority else \u0027Unknown\u0027,\n\t tag_name,\n\t \u0027System\u0027 # Adjust based on your source format\n\t ]\n\t data.append(row)\n\t\n\t# Create dataset and update the custom property\n\tdataset \u003d system.dataset.toDataSet(headers, data)\n\tself.custom.shelvedAlarmsData \u003d dataset"
+ }
+ },
+ "props.selection": {
+ "persistent": true
+ }
+ },
+ "props": {
+ "columns": [
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY HH:mm:ss",
+ "editable": false,
+ "field": "FirstTimestamp",
+ "filter": {
+ "boolean": {
+ "condition": ""
+ },
+ "date": {
+ "condition": "",
+ "value": ""
+ },
+ "enabled": false,
+ "number": {
+ "condition": "",
+ "value": ""
+ },
+ "string": {
+ "condition": "",
+ "value": ""
+ },
+ "visible": "on-hover"
+ },
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "backgroundColor": "#FFFEFE",
+ "classes": ""
+ },
+ "title": "First Timestamp"
+ },
+ "justify": "left",
+ "nullFormat": {
+ "includeNullStrings": false,
+ "nullFormatValue": "",
+ "strict": false
+ },
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ },
+ {
+ "align": "center",
+ "boolean": "value",
+ "dateFormat": "MM-DD-YYYY HH:mm:ss",
+ "editable": false,
+ "field": "LastTimestamp",
+ "filter": {
+ "boolean": {
+ "condition": ""
+ },
+ "date": {
+ "condition": "",
+ "value": ""
+ },
+ "enabled": false,
+ "number": {
+ "condition": "",
+ "value": ""
+ },
+ "string": {
+ "condition": "",
+ "value": ""
+ },
+ "visible": "on-hover"
+ },
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": "Last Timestamp"
+ },
+ "justify": "center",
+ "nullFormat": {
+ "includeNullStrings": false,
+ "nullFormatValue": "",
+ "strict": false
+ },
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM-DD-YYYY HH:mm:ss",
+ "editable": false,
+ "field": "Count",
+ "filter": {
+ "boolean": {
+ "condition": ""
+ },
+ "date": {
+ "condition": "",
+ "value": ""
+ },
+ "enabled": false,
+ "number": {
+ "condition": "",
+ "value": ""
+ },
+ "string": {
+ "condition": "",
+ "value": ""
+ },
+ "visible": "on-hover"
+ },
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "justify": "center",
+ "nullFormat": {
+ "includeNullStrings": false,
+ "nullFormatValue": "",
+ "strict": false
+ },
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "none",
+ "editable": false,
+ "field": "Duration",
+ "filter": {
+ "boolean": {
+ "condition": ""
+ },
+ "date": {
+ "condition": "",
+ "value": ""
+ },
+ "enabled": false,
+ "number": {
+ "condition": "",
+ "value": ""
+ },
+ "string": {
+ "condition": "",
+ "value": ""
+ },
+ "visible": "on-hover"
+ },
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "justify": "center",
+ "nullFormat": {
+ "includeNullStrings": false,
+ "nullFormatValue": "",
+ "strict": false
+ },
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "Priority",
+ "filter": {
+ "boolean": {
+ "condition": ""
+ },
+ "date": {
+ "condition": "",
+ "value": ""
+ },
+ "enabled": false,
+ "number": {
+ "condition": "",
+ "value": ""
+ },
+ "string": {
+ "condition": "",
+ "value": ""
+ },
+ "visible": "on-hover"
+ },
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "justify": "center",
+ "nullFormat": {
+ "includeNullStrings": false,
+ "nullFormatValue": "",
+ "strict": false
+ },
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "Location",
+ "filter": {
+ "boolean": {
+ "condition": ""
+ },
+ "date": {
+ "condition": "",
+ "value": ""
+ },
+ "enabled": true,
+ "number": {
+ "condition": "",
+ "value": ""
+ },
+ "string": {
+ "condition": "equals"
+ },
+ "visible": "never"
+ },
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "justify": "center",
+ "nullFormat": {
+ "includeNullStrings": false,
+ "nullFormatValue": "",
+ "strict": false
+ },
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "Description",
+ "filter": {
+ "boolean": {
+ "condition": ""
+ },
+ "date": {
+ "condition": "",
+ "value": ""
+ },
+ "enabled": false,
+ "number": {
+ "condition": "",
+ "value": ""
+ },
+ "string": {
+ "condition": "",
+ "value": ""
+ },
+ "visible": "on-hover"
+ },
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "justify": "center",
+ "nullFormat": {
+ "includeNullStrings": false,
+ "nullFormatValue": "",
+ "strict": false
+ },
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": 150
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "Tag",
+ "filter": {
+ "boolean": {
+ "condition": ""
+ },
+ "date": {
+ "condition": "",
+ "value": ""
+ },
+ "enabled": false,
+ "number": {
+ "condition": "",
+ "value": ""
+ },
+ "string": {
+ "condition": "",
+ "value": ""
+ },
+ "visible": "on-hover"
+ },
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "justify": "center",
+ "nullFormat": {
+ "includeNullStrings": false,
+ "nullFormatValue": "",
+ "strict": false
+ },
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "FullTag",
+ "filter": {
+ "boolean": {
+ "condition": ""
+ },
+ "date": {
+ "condition": "",
+ "value": ""
+ },
+ "enabled": false,
+ "number": {
+ "condition": "",
+ "value": ""
+ },
+ "string": {
+ "condition": "",
+ "value": ""
+ },
+ "visible": "on-hover"
+ },
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "justify": "auto",
+ "nullFormat": {
+ "includeNullStrings": false,
+ "nullFormatValue": "",
+ "strict": false
+ },
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": "",
+ "display": "none"
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "Device",
+ "filter": {
+ "boolean": {
+ "condition": ""
+ },
+ "date": {
+ "condition": "",
+ "value": ""
+ },
+ "enabled": false,
+ "number": {
+ "condition": "",
+ "value": ""
+ },
+ "string": {
+ "condition": "",
+ "value": ""
+ },
+ "visible": "on-hover"
+ },
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "justify": "auto",
+ "nullFormat": {
+ "includeNullStrings": false,
+ "nullFormatValue": "",
+ "strict": false
+ },
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": "",
+ "display": "none"
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ }
+ ],
+ "emptyMessage": {
+ "noData": {
+ "text": "No Alarms"
+ },
+ "noFilterResults": {
+ "text": "No Alarms"
+ }
+ },
+ "filter": {
+ "results": {
+ "enabled": true
+ }
+ },
+ "pager": {
+ "activeOption": 5,
+ "bottom": false
+ }
+ },
+ "type": "ia.display.table"
+ },
+ {
+ "events": {
+ "component": {
+ "onRowDoubleClick": {
+ "config": {
+ "script": "\tdata \u003d self.props.selection.data\n\t\n\talarms.alarm_click.handleClick(data)"
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "historical-table"
+ },
+ "position": {
+ "basis": "1080px",
+ "grow": 1
+ },
+ "propConfig": {
+ "position.display": {
+ "binding": {
+ "config": {
+ "expression": "{view.custom.currentTable} \u003d \"HISTORY\""
+ },
+ "type": "expr"
+ }
+ },
+ "props.columns[6].filter.string.value": {
+ "binding": {
+ "config": {
+ "path": "view.custom.MCM"
+ },
+ "type": "property"
+ }
+ },
+ "props.data": {
+ "binding": {
+ "config": {
+ "polling": {
+ "enabled": true,
+ "rate": "3"
+ },
+ "queryPath": "GetAlarms"
+ },
+ "transforms": [
+ {
+ "code": "\n\tfrom system.dataset import toPyDataSet\n\n\tds \u003d toPyDataSet(value)\n\tdata \u003d []\n\n\tcolumn_names \u003d list(ds.columnNames)\n\n\tfor row in ds:\n\t\tpriority \u003d row[\"Priority\"]\n\n\t\t# Use style class names from Perspective\n\t\tif priority \u003d\u003d \"High\":\n\t\t\tclassName \u003d \"Alarms-Styles/High\"\n\t\telif priority \u003d\u003d \"Medium\":\n\t\t\tclassName \u003d \"Alarms-Styles/Medium\"\n\t\telif priority \u003d\u003d \"Low\":\n\t\t\tclassName \u003d \"Alarms-Styles/Low\"\n\t\telif priority \u003d\u003d \"Diagnostic\":\n\t\t\tclassName \u003d \"Alarms-Styles/Diagnostic\"\n\t\telse:\n\t\t\tclassName \u003d \"Alarms-Styles/NoAlarm\"\n\n\t\t# Apply the style class to all cells in the row\n\t\trow_dict \u003d {\n\t\t\tcol: {\n\t\t\t\t\"value\": row[col],\n\t\t\t\t\"style\": { \"classes\": className }\n\t\t\t} for col in column_names\n\t\t}\n\t\tdata.append(row_dict)\n\n\treturn data",
+ "type": "script"
+ }
+ ],
+ "type": "query"
+ }
+ }
+ },
+ "props": {
+ "columns": [
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "none",
+ "editable": false,
+ "field": "ID",
+ "filter": {
+ "boolean": {
+ "condition": ""
+ },
+ "date": {
+ "condition": "",
+ "value": ""
+ },
+ "enabled": false,
+ "number": {
+ "condition": "",
+ "value": ""
+ },
+ "string": {
+ "condition": "",
+ "value": ""
+ },
+ "visible": "on-hover"
+ },
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "",
+ "paddingLeft": 12
+ },
+ "title": ""
+ },
+ "justify": "center",
+ "nullFormat": {
+ "includeNullStrings": false,
+ "nullFormatValue": "",
+ "strict": false
+ },
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY HH:mm:ss",
+ "editable": false,
+ "field": "StartTimestamp",
+ "filter": {
+ "boolean": {
+ "condition": ""
+ },
+ "date": {
+ "condition": "",
+ "value": {
+ "$": [
+ "ts",
+ 201,
+ 1750755617512
+ ],
+ "$ts": 1750435156149
+ }
+ },
+ "enabled": true,
+ "number": {
+ "condition": "",
+ "value": ""
+ },
+ "string": {
+ "condition": "",
+ "value": ""
+ },
+ "visible": "never"
+ },
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": "Start Timestamp"
+ },
+ "justify": "center",
+ "nullFormat": {
+ "includeNullStrings": false,
+ "nullFormatValue": "",
+ "strict": false
+ },
+ "number": "value",
+ "numberFormat": "none",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY HH:mm:ss",
+ "editable": false,
+ "field": "EndTimestamp",
+ "filter": {
+ "boolean": {
+ "condition": ""
+ },
+ "date": {
+ "condition": "",
+ "value": {
+ "$": [
+ "ts",
+ 201,
+ 1750755617511
+ ],
+ "$ts": 1750436956149
+ }
+ },
+ "enabled": true,
+ "number": {
+ "condition": "",
+ "value": ""
+ },
+ "string": {
+ "condition": "",
+ "value": ""
+ },
+ "visible": "never"
+ },
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": "End Timestamp"
+ },
+ "justify": "center",
+ "nullFormat": {
+ "includeNullStrings": false,
+ "nullFormatValue": "",
+ "strict": false
+ },
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "none",
+ "editable": false,
+ "field": "Duration",
+ "filter": {
+ "boolean": {
+ "condition": ""
+ },
+ "date": {
+ "condition": "",
+ "value": ""
+ },
+ "enabled": false,
+ "number": {
+ "condition": "",
+ "value": ""
+ },
+ "string": {
+ "condition": "",
+ "value": ""
+ },
+ "visible": "on-hover"
+ },
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": "",
+ "paddingLeft": 12
+ },
+ "title": ""
+ },
+ "justify": "center",
+ "nullFormat": {
+ "includeNullStrings": false,
+ "nullFormatValue": "",
+ "strict": false
+ },
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "none",
+ "editable": false,
+ "field": "Description",
+ "filter": {
+ "boolean": {
+ "condition": ""
+ },
+ "date": {
+ "condition": "",
+ "value": ""
+ },
+ "enabled": false,
+ "number": {
+ "condition": "",
+ "value": ""
+ },
+ "string": {
+ "condition": "",
+ "value": ""
+ },
+ "visible": "on-hover"
+ },
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "justify": "center",
+ "nullFormat": {
+ "includeNullStrings": false,
+ "nullFormatValue": "",
+ "strict": false
+ },
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "Priority",
+ "filter": {
+ "boolean": {
+ "condition": ""
+ },
+ "date": {
+ "condition": "",
+ "value": ""
+ },
+ "enabled": true,
+ "number": {
+ "condition": "",
+ "value": ""
+ },
+ "string": {
+ "condition": "contains",
+ "value": ""
+ },
+ "visible": "never"
+ },
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": "Severity"
+ },
+ "justify": "center",
+ "nullFormat": {
+ "includeNullStrings": false,
+ "nullFormatValue": "",
+ "strict": false
+ },
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "Location",
+ "filter": {
+ "boolean": {
+ "condition": ""
+ },
+ "date": {
+ "condition": "",
+ "value": ""
+ },
+ "enabled": true,
+ "number": {
+ "condition": "",
+ "value": ""
+ },
+ "string": {
+ "condition": "equals"
+ },
+ "visible": "never"
+ },
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "justify": "center",
+ "nullFormat": {
+ "includeNullStrings": false,
+ "nullFormatValue": "",
+ "strict": false
+ },
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "Tag",
+ "filter": {
+ "boolean": {
+ "condition": ""
+ },
+ "date": {
+ "condition": "",
+ "value": ""
+ },
+ "enabled": true,
+ "number": {
+ "condition": "",
+ "value": ""
+ },
+ "string": {
+ "condition": "contains",
+ "value": ""
+ },
+ "visible": "never"
+ },
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "justify": "center",
+ "nullFormat": {
+ "includeNullStrings": false,
+ "nullFormatValue": "",
+ "strict": false
+ },
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": ""
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "FullTag",
+ "filter": {
+ "boolean": {
+ "condition": ""
+ },
+ "date": {
+ "condition": "",
+ "value": ""
+ },
+ "enabled": false,
+ "number": {
+ "condition": "",
+ "value": ""
+ },
+ "string": {
+ "condition": "",
+ "value": ""
+ },
+ "visible": "on-hover"
+ },
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "justify": "auto",
+ "nullFormat": {
+ "includeNullStrings": false,
+ "nullFormatValue": "",
+ "strict": false
+ },
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": "",
+ "display": "none"
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ },
+ {
+ "align": "center",
+ "boolean": "checkbox",
+ "dateFormat": "MM/DD/YYYY",
+ "editable": false,
+ "field": "Device",
+ "filter": {
+ "boolean": {
+ "condition": ""
+ },
+ "date": {
+ "condition": "",
+ "value": ""
+ },
+ "enabled": false,
+ "number": {
+ "condition": "",
+ "value": ""
+ },
+ "string": {
+ "condition": "",
+ "value": ""
+ },
+ "visible": "on-hover"
+ },
+ "footer": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "header": {
+ "align": "center",
+ "justify": "left",
+ "style": {
+ "classes": ""
+ },
+ "title": ""
+ },
+ "justify": "auto",
+ "nullFormat": {
+ "includeNullStrings": false,
+ "nullFormatValue": "",
+ "strict": false
+ },
+ "number": "value",
+ "numberFormat": "0,0.##",
+ "progressBar": {
+ "bar": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "max": 100,
+ "min": 0,
+ "track": {
+ "color": "",
+ "style": {
+ "classes": ""
+ }
+ },
+ "value": {
+ "enabled": true,
+ "format": "0,0.##",
+ "justify": "center",
+ "style": {
+ "classes": ""
+ }
+ }
+ },
+ "render": "auto",
+ "resizable": true,
+ "sort": "none",
+ "sortable": true,
+ "strictWidth": false,
+ "style": {
+ "classes": "",
+ "display": "none"
+ },
+ "toggleSwitch": {
+ "color": {
+ "selected": "",
+ "unselected": ""
+ }
+ },
+ "viewParams": {},
+ "viewPath": "",
+ "visible": true,
+ "width": ""
+ }
+ ],
+ "emptyMessage": {
+ "noData": {
+ "text": "No Alarms"
+ },
+ "noFilterResults": {
+ "text": "No Alarms"
+ }
+ },
+ "enabled": true,
+ "filter": {
+ "results": {
+ "enabled": true
+ }
+ },
+ "pager": {
+ "bottom": false
+ }
+ },
+ "scripts": {
+ "customMethods": [],
+ "extensionFunctions": null,
+ "messageHandlers": [
+ {
+ "messageType": "update-first-request",
+ "pageScope": true,
+ "script": "\tdata \u003d payload[\"data\"]\n\tinitial_data \u003d payload[\"initial_data\"]\n\tself.props.data \u003d data\n\tself.custom.initial_data \u003d initial_data",
+ "sessionScope": false,
+ "viewScope": false
+ },
+ {
+ "messageType": "update-historical-data",
+ "pageScope": true,
+ "script": "\thistorical_data \u003d payload[\"data\"]\n\tself.props.data \u003d historical_data",
+ "sessionScope": false,
+ "viewScope": false
+ },
+ {
+ "messageType": "load_initial_data",
+ "pageScope": true,
+ "script": "\trequest \u003d payload[\"data\"]\n\tsystem.perspective.print(\"initial message received\")\n\tif request \u003d\u003d True:\n\t\tself.props.data \u003d self.custom.initial_data",
+ "sessionScope": false,
+ "viewScope": false
+ },
+ {
+ "messageType": "reset-historical-filters",
+ "pageScope": true,
+ "script": "\treset \u003d payload[\"data\"]\n\tif reset \u003d\u003d \"reset\":\n\t\tself.props.data \u003d []\n\t\tself.custom.device_filters \u003d None\n\t\tself.custom.priority_filters \u003d None\n\t\tself.custom.source_id_filters \u003d None\n\t\tself.custom.time_from_filter \u003d None\n\t\tself.custom.time_to_filter \u003d None\n\t\tself.custom.type_filters \u003d None\n\t\tself.custom.duration_filter \u003d None\n\t\tself.props.enabled \u003dTrue",
+ "sessionScope": false,
+ "viewScope": false
+ },
+ {
+ "messageType": "set-source-filters",
+ "pageScope": true,
+ "script": "\tfilters \u003d payload[\"data\"]\n\tself.custom.source_id_filters \u003d filters",
+ "sessionScope": false,
+ "viewScope": false
+ },
+ {
+ "messageType": "set-device-filters",
+ "pageScope": true,
+ "script": "\tfilters \u003d payload[\"data\"]\n\tself.custom.device_filters \u003d filters",
+ "sessionScope": false,
+ "viewScope": false
+ },
+ {
+ "messageType": "set-priority-filters",
+ "pageScope": true,
+ "script": "\tfilters \u003d payload[\"data\"]\n\tself.custom.priority_filters \u003d filters",
+ "sessionScope": false,
+ "viewScope": false
+ },
+ {
+ "messageType": "set-from-filters",
+ "pageScope": true,
+ "script": "\ttime \u003d payload[\"data\"]\n\tself.custom.time_from_filter \u003d time",
+ "sessionScope": false,
+ "viewScope": false
+ },
+ {
+ "messageType": "set-to-filters",
+ "pageScope": true,
+ "script": "\ttime \u003d payload[\"data\"]\n\tself.custom.time_to_filter \u003d time",
+ "sessionScope": false,
+ "viewScope": false
+ },
+ {
+ "messageType": "set-type-filters",
+ "pageScope": true,
+ "script": "\tfilters \u003d payload[\"data\"]\n\tself.custom.type_filters \u003d filters",
+ "sessionScope": false,
+ "viewScope": false
+ },
+ {
+ "messageType": "set-duration-filters",
+ "pageScope": true,
+ "script": "\tduration \u003d payload[\"data\"]\n\tself.custom.duration_filter \u003d duration",
+ "sessionScope": false,
+ "viewScope": false
+ }
+ ]
+ },
+ "type": "ia.display.table"
+ }
+ ],
+ "meta": {
+ "name": "FlexContainer_0"
+ },
+ "position": {
+ "basis": "1920px",
+ "grow": 1
+ },
+ "type": "ia.container.flex"
+ },
+ {
+ "children": [
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tself.view.custom.currentTable \u003d \"ACTIVE\""
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "ACTIVE"
+ },
+ "position": {
+ "basis": "150px"
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#F0F0F0",
+ "borderStyle": "none",
+ "color": "#000000"
+ },
+ "text": "ACTIVE"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tself.view.custom.currentTable \u003d \"HITLIST\""
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "HIT LIST"
+ },
+ "position": {
+ "basis": "150px"
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#F0F0F0",
+ "borderStyle": "none",
+ "color": "#000000"
+ },
+ "text": "HIT LIST"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "events": {
+ "component": {
+ "onActionPerformed": {
+ "config": {
+ "script": "\tself.view.custom.currentTable \u003d \"HISTORY\""
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "HISTORY"
+ },
+ "position": {
+ "basis": "150px"
+ },
+ "props": {
+ "style": {
+ "backgroundColor": "#F0F0F0",
+ "borderStyle": "none",
+ "color": "#000000"
+ },
+ "text": "HISTORY"
+ },
+ "type": "ia.input.button"
+ },
+ {
+ "meta": {
+ "name": "Label"
+ },
+ "position": {
+ "basis": "50px",
+ "grow": 1
+ },
+ "type": "ia.display.label"
+ }
+ ],
+ "meta": {
+ "name": "FlexContainer"
+ },
+ "position": {
+ "basis": "300px",
+ "grow": 1
+ },
+ "props": {
+ "style": {
+ "gap": 2
+ }
+ },
+ "type": "ia.container.flex"
+ }
+ ],
+ "meta": {
+ "name": "FlexContainer_0"
+ },
+ "position": {
+ "basis": "200px",
+ "grow": 1
+ },
+ "props": {
+ "direction": "column"
+ },
+ "type": "ia.container.flex"
+ }
+ ],
+ "events": {
+ "system": {
+ "onStartup": {
+ "config": {
+ "script": "\tif self.view.custom.currentTable \u003d\u003d \"\":\n\t\tself.view.custom.currentTable \u003d \"ACTIVE\""
+ },
+ "scope": "G",
+ "type": "script"
+ }
+ }
+ },
+ "meta": {
+ "name": "root"
+ },
+ "type": "ia.container.flex"
+ }
+}
\ No newline at end of file
diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Header/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Header/resource.json
new file mode 100644
index 00000000..9d6585c3
--- /dev/null
+++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Header/resource.json
@@ -0,0 +1,17 @@
+{
+ "scope": "G",
+ "version": 1,
+ "restricted": false,
+ "overridable": true,
+ "files": [
+ "view.json",
+ "thumbnail.png"
+ ],
+ "attributes": {
+ "lastModification": {
+ "actor": "admin",
+ "timestamp": "2025-08-18T10:23:36Z"
+ },
+ "lastModificationSignature": "87272fcbd8cc30c8968064e94a83d0eadd8eea704bfab82ea1e9f8dc12bafc29"
+ }
+}
\ No newline at end of file
diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Header/thumbnail.png b/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Header/thumbnail.png
new file mode 100644
index 00000000..b7c4ddf8
Binary files /dev/null and b/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Header/thumbnail.png differ
diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Header/Header/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Header/view.json
similarity index 79%
rename from BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Header/Header/view.json
rename to BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Header/view.json
index c7ddac27..dd82e720 100644
--- a/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Header/Header/view.json
+++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Header/view.json
@@ -262,6 +262,40 @@
},
"type": "ia.display.icon"
},
+ {
+ "events": {
+ "dom": {
+ "onClick": {
+ "config": {
+ "page": "/"
+ },
+ "scope": "C",
+ "type": "nav"
+ }
+ }
+ },
+ "meta": {
+ "name": "Back",
+ "tooltip": {
+ "enabled": true,
+ "text": "Go back to DEX"
+ }
+ },
+ "position": {
+ "basis": "24px",
+ "shrink": 0
+ },
+ "props": {
+ "color": "#FFFFFF",
+ "path": "material/arrow_back",
+ "style": {
+ "classes": "Header/Icon",
+ "cursor": "pointer",
+ "marginRight": "10px"
+ }
+ },
+ "type": "ia.display.icon"
+ },
{
"children": [
{
@@ -465,186 +499,11 @@
}
},
"props": {
- "color": "#FF0000",
+ "color": "#47FF47",
"path": "material/table_chart"
},
"type": "ia.display.icon"
},
- {
- "meta": {
- "hasDelegate": true,
- "name": "Spacer 1"
- },
- "position": {
- "basis": "20px"
- },
- "props": {
- "text": " "
- },
- "type": "ia.display.label"
- },
- {
- "custom": {
- "buttonid": "HeaderNotifyIcon",
- "entries": [
- {
- "PrimaryKey": "2024-05-08 10:17:51",
- "author": "pll",
- "body": "Introducing our brand new Announcement Feature! 🎉 Stay in the loop with important updates, new features, planned downtime events, all in one place. Never miss out again! Check it out now and stay tuned for the latest updates. 🔊",
- "childproj": "https://eu-preprod.scada2.rme.amazon.dev: MAN2",
- "expire": "2024-05-09 05:00:00",
- "link1": "https://",
- "link1title": "",
- "link2": "https://",
- "link2title": "",
- "priority": "Healthy",
- "publish": "2024-05-08 10:08:33",
- "title": "📢 Exciting News! 📢",
- "whids": ""
- }
- ],
- "entryCount": 1,
- "highestPriority": 5
- },
- "events": {
- "dom": {
- "onClick": [
- {
- "config": {
- "draggable": true,
- "id": "ioNP2CXn",
- "modal": true,
- "overlayDismiss": true,
- "resizable": true,
- "showCloseIcon": true,
- "title": "Notifications",
- "type": "open",
- "viewParams": {
- "entryCount": "{/root/Icon_0.custom.entryCount}",
- "instances": "{/root/Icon_0.custom.entries}"
- },
- "viewPath": "PopUp-Views/Notify-Tool/Notify-Popup",
- "viewportBound": false
- },
- "scope": "C",
- "type": "popup"
- },
- {
- "config": {
- "script": "\tbuttonid \u003d self.custom.buttonid\n\tactivityLog.productMetrics.callLogger(self.view, \u0027click\u0027, buttonid)"
- },
- "scope": "G",
- "type": "script"
- }
- ]
- }
- },
- "meta": {
- "name": "Icon_0",
- "tooltip": {
- "enabled": true,
- "location": "bottom-right",
- "style": {
- "whiteSpace": "pre"
- },
- "text": "📢 Exciting News! 📢\n"
- }
- },
- "position": {
- "basis": "30px"
- },
- "propConfig": {
- "custom.refreshMSG": {
- "binding": {
- "config": {
- "expression": "now(600000)"
- },
- "type": "expr"
- },
- "onChange": {
- "enabled": null,
- "script": "\tsystem.perspective.sendMessage(\u0027refreshNotifyIcon\u0027)"
- }
- },
- "position.display": {
- "binding": {
- "config": {
- "path": "view.custom.EntriesList"
- },
- "transforms": [
- {
- "code": "\tfrom datetime import datetime\n\t\n#\tRead entries from dynamo table\n\treturns \u003d notifyTool.ReadFromDynamo.DynamoReader()\n\tEntriesList \u003d returns[\u0027Items\u0027]\n\tEntriesList.reverse()\n#\treturn EntriesList\n\n#\tCreate empty list and now string\n\tpublishdates \u003d []\n\tnow \u003d datetime.now()\n\tnowstr \u003d str(now)[:19]\n\tactiveNotify \u003d False\n\twhid \u003d self.session.custom.fc\n\tstates \u003d {\u0027Healthy\u0027:5,\u0027Diagnostic\u0027:4, \u0027Low\u0027:3, \u0027Medium\u0027:2, \u0027High\u0027:1}\n#\tCheck EntriesList for active entries based on publish and expire times\n\tactiveEntries \u003d []\n\ttooltip \u003d []\n\tcount \u003d 0\n\thighestPriority \u003d 5\n\tfor e in EntriesList:\n\t\t\n\t\tif len(e[\u0027whids\u0027])\u003e0:\n\t\t\tif whid in e[\u0027whids\u0027]:\n\t\t\t\tif nowstr \u003e\u003d e[\u0027publish\u0027] and nowstr\u003c\u003dstr( e[\u0027expire\u0027]):\n\t\t\t\t\tactiveEntries.append(e)\n\t\t\t\t\ttooltip.append(e[\u0027title\u0027])\n\t\t\t\t\tactiveNotify \u003d True\n\t\t\t\t\tcount +\u003d1\n\t\t\t\t\tif states[e[\u0027priority\u0027]] \u003c highestPriority:\n\t\t\t\t\t\thighestPriority \u003d states[e[\u0027priority\u0027]]\n\t\telse:\n\t\t\tif nowstr \u003e\u003d e[\u0027publish\u0027] and nowstr\u003c\u003dstr( e[\u0027expire\u0027]):\n\t\t\t\tactiveEntries.append(e)\n\t\t\t\ttooltip.append(e[\u0027title\u0027])\n\t\t\t\tactiveNotify \u003d True\t\t\n\t\t\t\tcount +\u003d1\t\n\t\t\t\tif states[e[\u0027priority\u0027]] \u003c highestPriority:\n\t\t\t\t\thighestPriority \u003d states[e[\u0027priority\u0027]]\n\n\t\t\t\n\ttooltiptext \u003d \u0027\u0027\n\tfor i in tooltip:\n\t\ttooltiptext+\u003d i+\u0027\\n\u0027\n\tself.custom.entries \u003d activeEntries\n\tself.custom.highestPriority \u003d highestPriority\n\tself.custom.entryCount \u003d count\n\tself.meta.tooltip.text \u003d tooltiptext\t\n\n\n#\treturn returns\n#\treturn activeEntries\n\treturn activeNotify",
- "type": "script"
- }
- ],
- "type": "property"
- }
- },
- "props.color": {
- "binding": {
- "config": {
- "path": "this.custom.highestPriority"
- },
- "transforms": [
- {
- "fallback": "state5",
- "inputType": "scalar",
- "mappings": [
- {
- "input": 1,
- "output": "state1"
- },
- {
- "input": 2,
- "output": "state2"
- },
- {
- "input": 3,
- "output": "state3"
- },
- {
- "input": 4,
- "output": "state4"
- },
- {
- "input": 5,
- "output": "state5"
- }
- ],
- "outputType": "scalar",
- "type": "map"
- },
- {
- "code": "\ttest \u003d self.session.custom.colours.colour_impaired\n\tstatecolor \u003d self.session.custom.colours[value]\n\treturn statecolor",
- "type": "script"
- }
- ],
- "type": "property"
- }
- }
- },
- "props": {
- "path": "material/campaign",
- "style": {
- "marginLeft": 5,
- "marginRight": 5
- }
- },
- "scripts": {
- "customMethods": [],
- "extensionFunctions": null,
- "messageHandlers": [
- {
- "messageType": "refreshNotifyIcon",
- "pageScope": true,
- "script": "\n\tself.refreshBinding(\u0027props.color\u0027)\n\tself.refreshBinding(\u0027position.display\u0027)",
- "sessionScope": true,
- "viewScope": false
- }
- ]
- },
- "type": "ia.display.icon"
- },
{
"meta": {
"hasDelegate": true,
diff --git a/conversion-report.txt b/conversion-report.txt
new file mode 100644
index 00000000..aaa8c876
--- /dev/null
+++ b/conversion-report.txt
@@ -0,0 +1,4 @@
+Starting conversion: 20250815:23.05.38
+Conversion finished. Elapsed time: 9 ms
+Starting conversion: 20250815:23.07.32
+Conversion finished. Elapsed time: 12 ms