diff --git a/.resources/1ccfe862a42d6e26e71cfe969ff5e21597f74066875f61c95cbca332108ecc5a b/.resources/03d61ca3b091c01bb4b1fc019e5c171b96ffe0cff5910e0f8c1595961347061e similarity index 93% rename from .resources/1ccfe862a42d6e26e71cfe969ff5e21597f74066875f61c95cbca332108ecc5a rename to .resources/03d61ca3b091c01bb4b1fc019e5c171b96ffe0cff5910e0f8c1595961347061e index 6d078ab5..030c605b 100644 --- a/.resources/1ccfe862a42d6e26e71cfe969ff5e21597f74066875f61c95cbca332108ecc5a +++ b/.resources/03d61ca3b091c01bb4b1fc019e5c171b96ffe0cff5910e0f8c1595961347061e @@ -213,6 +213,17 @@ "type": "ia.shapes.svg" } ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.perspective.openDock(\u0027Docked-East-Device\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" + }, + "scope": "G", + "type": "script" + } + } + }, "meta": { "name": "Encoder", "tooltip": { @@ -238,7 +249,10 @@ } }, "props": { - "mode": "percent" + "mode": "percent", + "style": { + "cursor": "pointer" + } }, "type": "ia.container.coord" } diff --git a/.resources/2a16a05a8ca529e1a687826e660d4707dcf6bdbd5270f4dfbab5409530a02050 b/.resources/2a16a05a8ca529e1a687826e660d4707dcf6bdbd5270f4dfbab5409530a02050 new file mode 100644 index 00000000..b5d06c15 Binary files /dev/null and b/.resources/2a16a05a8ca529e1a687826e660d4707dcf6bdbd5270f4dfbab5409530a02050 differ diff --git a/.resources/389916f2d7b7cac8a361cb0e3622f86ba6de0286bb9260af03d6db4909b87bcd b/.resources/389916f2d7b7cac8a361cb0e3622f86ba6de0286bb9260af03d6db4909b87bcd new file mode 100644 index 00000000..2b969e0a Binary files /dev/null and b/.resources/389916f2d7b7cac8a361cb0e3622f86ba6de0286bb9260af03d6db4909b87bcd differ diff --git a/.resources/3fd345af253eadcfc518a3d72705dcd194970999f3fa6fa226dcf1d1d8821961 b/.resources/3fd345af253eadcfc518a3d72705dcd194970999f3fa6fa226dcf1d1d8821961 deleted file mode 100644 index 1de5037a..00000000 Binary files a/.resources/3fd345af253eadcfc518a3d72705dcd194970999f3fa6fa226dcf1d1d8821961 and /dev/null differ diff --git a/.resources/7286acac512dd0566063816d747fe8d3a3416e9eb499c55ea1f2f3a7af6325d7 b/.resources/7286acac512dd0566063816d747fe8d3a3416e9eb499c55ea1f2f3a7af6325d7 new file mode 100644 index 00000000..f3839be7 --- /dev/null +++ b/.resources/7286acac512dd0566063816d747fe8d3a3416e9eb499c55ea1f2f3a7af6325d7 @@ -0,0 +1,771 @@ +{ + "custom": { + "PLC_list": [ + "MCM01", + "MCM02" + ], + "state": 0, + "string": "Starting" + }, + "params": { + "tagProps": [ + "/System/MCM01/Beacons/PS3_1_BCN3_A", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value" + ] + }, + "propConfig": { + "custom.PLC_list": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "fc": "{session.custom.fc}" + }, + "tagPath": "[{fc}_SCADA_TAG_PROVIDER]Configuration/PLC" + }, + "transforms": [ + { + "code": "\tdevices \u003d system.util.jsonDecode(value)\n\tplcList \u003d []\n\tfor k in devices.keys():\n\t\tplcList.append(k)\n\t\t\n\treturn(sorted(set(plcList)))\n", + "type": "script" + } + ], + "type": "tag" + }, + "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": "if(isNull({value}), 0, {value})", + "type": "expression" + } + ], + "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.tagProps": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "width": 400 + } + }, + "root": { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "grow": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "\u0027Source ID: \u0027 + {view.params.tagProps[0]}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFF", + "fontFamily": "Arial", + "fontSize": 14, + "fontWeight": "bold", + "paddingLeft": 10 + } + }, + "type": "ia.display.label" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.perspective.closeDock(\u0027Docked-East-Device\u0027)\n\tself.getSibling(\"tabs\").props.currentTabIndex \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Icon", + "tooltip": { + "enabled": true, + "style": { + "cursor": "pointer" + }, + "text": "Close faceplate" + } + }, + "props": { + "path": "material/close", + "style": { + "cursor": "pointer", + "marginBottom": 5, + "marginLeft": 5, + "marginRight": 5, + "marginTop": 5 + } + }, + "type": "ia.display.icon" + } + ], + "meta": { + "name": "FlexContainer" + }, + "position": { + "basis": "30px", + "shrink": 0 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "32px", + "display": false + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "if({../AlarmTable.props.params.length_of_table_data} \u003d 0, True, False)" + }, + "enabled": false, + "type": "expr" + } + } + }, + "props": { + "style": { + "classes": "Labels/Label_1", + "marginTop": 20 + }, + "text": "No Active Alarms" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "AlarmStatusTable" + }, + "position": { + "basis": "400px", + "grow": 1 + }, + "propConfig": { + "props.filters.active.text": { + "binding": { + "config": { + "path": "view.params.tagProps[0]" + }, + "transforms": [ + { + "code": "\treturn value[1:]", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "columns": { + "active": { + "displayPath": { + "enabled": false + }, + "priority": { + "enabled": false + }, + "source": { + "enabled": false + }, + "state": { + "enabled": false + } + } + }, + "filters": { + "active": { + "priorities": { + "critical": false, + "high": false, + "low": false, + "medium": false + }, + "states": { + "clearUnacked": false + } + } + }, + "refreshRate": 500, + "toolbar": { + "enabled": false + } + }, + "type": "ia.display.alarmstatustable" + } + ], + "meta": { + "name": "Active_tab" + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NameField" + }, + "position": { + "basis": "50%", + "grow": 1 + }, + "props": { + "style": { + "paddingLeft": 20 + }, + "text": "NAME" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "DeviceName" + }, + "position": { + "basis": "50%", + "grow": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "view.params.tagProps[0]" + }, + "transforms": [ + { + "code": " return value.rsplit(\u0027/\u0027, 1)[-1]", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "classes": "Text-Styles/Ariel-Bold-12pt", + "paddingLeft": 10 + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Name" + }, + "position": { + "basis": "35px" + }, + "props": { + "style": { + "classes": "PopUp-Styles/InfoLabel", + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "FlexContainer_0" + }, + "position": { + "basis": "35px" + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NameField" + }, + "position": { + "basis": "50%", + "grow": 1 + }, + "props": { + "style": { + "paddingLeft": 20 + }, + "text": "COMMUNICATION FAULTED" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "PB_Light" + }, + "position": { + "basis": "50%", + "grow": 1 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "this.props.text" + }, + "transforms": [ + { + "fallback": "#D5D5D5", + "inputType": "scalar", + "mappings": [ + { + "input": "UNKNOWN", + "output": "#FFFFFF" + } + ], + "outputType": "color", + "type": "map" + } + ], + "type": "property" + } + }, + "props.text": { + "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},\"UNKNOWN\")", + "type": "expression" + }, + { + "fallback": "UNKNOWN", + "inputType": "scalar", + "mappings": [ + { + "input": 1, + "output": "FAULTED" + }, + { + "input": 0, + "output": "NOT FAULTED" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "tag" + } + }, + "props.textStyle.color": { + "binding": { + "config": { + "path": "this.props.text" + }, + "transforms": [ + { + "fallback": "#000000", + "inputType": "scalar", + "mappings": [ + { + "input": "NOT FAULTED", + "output": "#47FF47" + }, + { + "input": "FAULTED", + "output": "#FF0000" + } + ], + "outputType": "color", + "type": "map" + } + ], + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "Text-Styles/Ariel-Bold-12pt", + "paddingLeft": 10 + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Property" + }, + "position": { + "basis": "35px", + "shrink": 2 + }, + "props": { + "style": { + "classes": "PopUp-Styles/InfoLabel" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "FlexContainer_1" + }, + "position": { + "basis": "35px" + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NameField" + }, + "position": { + "basis": "50%", + "grow": 1 + }, + "props": { + "style": { + "paddingLeft": 20 + }, + "text": "STATUS" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "status" + }, + "position": { + "basis": "50%", + "grow": 1 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "this.props.text" + }, + "transforms": [ + { + "fallback": "#D5D5D5", + "inputType": "scalar", + "mappings": [ + { + "input": "UNKNOWN", + "output": "#FFFFFF" + } + ], + "outputType": "color", + "type": "map" + } + ], + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "string": "{view.custom.string}" + }, + "tagPath": "{string}" + }, + "transforms": [ + { + "expression": "coalesce({value},\"UNKNOWN\")", + "type": "expression" + } + ], + "type": "tag" + } + }, + "props.textStyle.color": { + "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": { + "style": { + "classes": "Text-Styles/Ariel-Bold-12pt", + "paddingLeft": 10 + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Property" + }, + "position": { + "basis": "35px", + "shrink": 2 + }, + "props": { + "style": { + "classes": "PopUp-Styles/InfoLabel" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "FlexContainer_2" + }, + "position": { + "basis": "35px" + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "Info_tab" + }, + "position": { + "tabIndex": 1 + }, + "props": { + "direction": "column", + "style": { + "margin-left": "" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "tabs" + }, + "position": { + "grow": 1 + }, + "props": { + "currentTabIndex": 1, + "menuType": "modern", + "tabSize": { + "width": 1000 + }, + "tabStyle": { + "active": { + "classes": "", + "color": "#FFFFFF", + "fontFamily": "Arial", + "fontSize": 14, + "fontWeight": "bold", + "paddingLeft": 10 + }, + "inactive": { + "classes": "", + "color": "#B8B8B8", + "fontFamily": "Arial", + "fontSize": 14, + "fontWeight": "bold", + "paddingLeft": 10 + } + }, + "tabs": [ + "Alarms", + "Info" + ] + }, + "type": "ia.container.tab" + } + ], + "meta": { + "name": "FlexContainer_1" + }, + "position": { + "basis": "670px", + "grow": 1 + }, + "props": { + "style": { + "border-top": "1px solid white", + "gap": "" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "FlexContainer" + }, + "position": { + "basis": "800px", + "grow": 1 + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "root" + }, + "props": { + "direction": "column", + "style": { + "classes": "Buttons/Button-Menu" + } + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/.resources/9c181e26186312d1d0d2971200ac79d83c98eba43bf6303e169c211c516b71ff b/.resources/9c181e26186312d1d0d2971200ac79d83c98eba43bf6303e169c211c516b71ff new file mode 100644 index 00000000..94e5e196 Binary files /dev/null and b/.resources/9c181e26186312d1d0d2971200ac79d83c98eba43bf6303e169c211c516b71ff differ diff --git a/.resources/e83d88334d32292b4af741b102e85c54a02179c6e0804fbc9f1245ac04495b11 b/.resources/baea218e87729f404dfbdd2d1c01a9779ed29767c181de24870cc6e69a8dfdb1 similarity index 96% rename from .resources/e83d88334d32292b4af741b102e85c54a02179c6e0804fbc9f1245ac04495b11 rename to .resources/baea218e87729f404dfbdd2d1c01a9779ed29767c181de24870cc6e69a8dfdb1 index 506ae75a..96b59f5a 100644 --- a/.resources/e83d88334d32292b4af741b102e85c54a02179c6e0804fbc9f1245ac04495b11 +++ b/.resources/baea218e87729f404dfbdd2d1c01a9779ed29767c181de24870cc6e69a8dfdb1 @@ -375,6 +375,20 @@ "size": 400, "viewParams": {}, "viewPath": "autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device" + }, + { + "anchor": "fixed", + "autoBreakpoint": 480, + "content": "cover", + "handle": "hide", + "iconUrl": "", + "id": "Docked-East-Beacon", + "modal": false, + "resizable": false, + "show": "onDemand", + "size": 400, + "viewParams": {}, + "viewPath": "autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Beacon" } ], "top": [ @@ -459,6 +473,20 @@ "size": 400, "viewParams": {}, "viewPath": "autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device" + }, + { + "anchor": "fixed", + "autoBreakpoint": 480, + "content": "cover", + "handle": "hide", + "iconUrl": "", + "id": "Docked-East-Device", + "modal": false, + "resizable": false, + "show": "onDemand", + "size": 400, + "viewParams": {}, + "viewPath": "autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Beacon" } ], "top": [ diff --git a/.resources/cd6ccd8ae888a040adc1b2c46157c546ea373d90980f8b3dd25ef8c4ca96d792 b/.resources/cd6ccd8ae888a040adc1b2c46157c546ea373d90980f8b3dd25ef8c4ca96d792 deleted file mode 100644 index 5967cd63..00000000 Binary files a/.resources/cd6ccd8ae888a040adc1b2c46157c546ea373d90980f8b3dd25ef8c4ca96d792 and /dev/null differ diff --git a/.resources/2914daa5e05fbffefba08f2ec8855e50bd3b857e1dceb60a94954a5324caf694 b/.resources/ffabf8bdfa9506fd7f8a3108a4d36f1bd3c66d9bbf192355d4900e8fdce0c772 similarity index 98% rename from .resources/2914daa5e05fbffefba08f2ec8855e50bd3b857e1dceb60a94954a5324caf694 rename to .resources/ffabf8bdfa9506fd7f8a3108a4d36f1bd3c66d9bbf192355d4900e8fdce0c772 index 59001e5a..f9c20fd3 100644 --- a/.resources/2914daa5e05fbffefba08f2ec8855e50bd3b857e1dceb60a94954a5324caf694 +++ b/.resources/ffabf8bdfa9506fd7f8a3108a4d36f1bd3c66d9bbf192355d4900e8fdce0c772 @@ -152,7 +152,7 @@ "dom": { "onClick": { "config": { - "script": "\tsystem.perspective.openDock(\u0027Docked-East-JR\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" + "script": "\tsystem.perspective.openDock(\u0027Docked-East-Beacon\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" }, "scope": "G", "type": "script" diff --git a/BNA8/com.inductiveautomation.perspective/page-config/config.json b/BNA8/com.inductiveautomation.perspective/page-config/config.json index 506ae75a..96b59f5a 100644 --- a/BNA8/com.inductiveautomation.perspective/page-config/config.json +++ b/BNA8/com.inductiveautomation.perspective/page-config/config.json @@ -375,6 +375,20 @@ "size": 400, "viewParams": {}, "viewPath": "autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device" + }, + { + "anchor": "fixed", + "autoBreakpoint": 480, + "content": "cover", + "handle": "hide", + "iconUrl": "", + "id": "Docked-East-Beacon", + "modal": false, + "resizable": false, + "show": "onDemand", + "size": 400, + "viewParams": {}, + "viewPath": "autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Beacon" } ], "top": [ @@ -459,6 +473,20 @@ "size": 400, "viewParams": {}, "viewPath": "autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device" + }, + { + "anchor": "fixed", + "autoBreakpoint": 480, + "content": "cover", + "handle": "hide", + "iconUrl": "", + "id": "Docked-East-Device", + "modal": false, + "resizable": false, + "show": "onDemand", + "size": 400, + "viewParams": {}, + "viewPath": "autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Beacon" } ], "top": [ diff --git a/BNA8/com.inductiveautomation.perspective/page-config/resource.json b/BNA8/com.inductiveautomation.perspective/page-config/resource.json index ee007bf1..fb4fe59f 100644 --- a/BNA8/com.inductiveautomation.perspective/page-config/resource.json +++ b/BNA8/com.inductiveautomation.perspective/page-config/resource.json @@ -9,8 +9,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-09-02T13:01:10Z" + "timestamp": "2025-09-02T13:54:56Z" }, - "lastModificationSignature": "dd8ba176ee4a2457fe0dde99ee0d28a3106dade3a15dd25fc0f4452fe50c2747" + "lastModificationSignature": "cde5c366f59e0c0fd40e8fcc099e4c9f8e95393181012b53ec8131648d76515c" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Beacon/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Beacon/resource.json index 9fcfc5ff..932ab128 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Beacon/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Beacon/resource.json @@ -9,8 +9,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-09-02T09:19:08Z" + "timestamp": "2025-09-02T13:53:51Z" }, - "lastModificationSignature": "6d2f927483c13844fcc29ed0e66eddb7d57a447b1cd0a1d225f292f2181572a4" + "lastModificationSignature": "be8055dd8d4a77c3cfa5c8c5038ba7707e9ee401aa8d546d299e7aaafa1ff583" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Beacon/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Beacon/view.json index 59001e5a..f9c20fd3 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Beacon/view.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Beacon/view.json @@ -152,7 +152,7 @@ "dom": { "onClick": { "config": { - "script": "\tsystem.perspective.openDock(\u0027Docked-East-JR\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" + "script": "\tsystem.perspective.openDock(\u0027Docked-East-Beacon\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" }, "scope": "G", "type": "script" diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Encoder/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Encoder/resource.json index e9b1a23a..44a1bd16 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Encoder/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Encoder/resource.json @@ -9,8 +9,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-09-02T11:02:29Z" + "timestamp": "2025-09-02T13:25:19Z" }, - "lastModificationSignature": "da95589053a8820f076d737bb821c33ae317e9b1b63681eda8722382f4fbebcc" + "lastModificationSignature": "bba03f4243f24906c47664f059bab3a0f432b20c8d4e84fba20d654472e3c8c4" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Encoder/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Encoder/view.json index 6d078ab5..030c605b 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Encoder/view.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Encoder/view.json @@ -213,6 +213,17 @@ "type": "ia.shapes.svg" } ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.perspective.openDock(\u0027Docked-East-Device\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" + }, + "scope": "G", + "type": "script" + } + } + }, "meta": { "name": "Encoder", "tooltip": { @@ -238,7 +249,10 @@ } }, "props": { - "mode": "percent" + "mode": "percent", + "style": { + "cursor": "pointer" + } }, "type": "ia.container.coord" } diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Beacon/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Beacon/resource.json new file mode 100644 index 00000000..ce8fb2b4 --- /dev/null +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Beacon/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-09-02T13:53:25Z" + }, + "lastModificationSignature": "25163de2c5a54146406062c2a966eef0206834f4d30cecd75de8329b9f1f8070" + } +} \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Beacon/thumbnail.png b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Beacon/thumbnail.png new file mode 100644 index 00000000..94e5e196 Binary files /dev/null and b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Beacon/thumbnail.png differ diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Beacon/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Beacon/view.json new file mode 100644 index 00000000..f3839be7 --- /dev/null +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Beacon/view.json @@ -0,0 +1,771 @@ +{ + "custom": { + "PLC_list": [ + "MCM01", + "MCM02" + ], + "state": 0, + "string": "Starting" + }, + "params": { + "tagProps": [ + "/System/MCM01/Beacons/PS3_1_BCN3_A", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value" + ] + }, + "propConfig": { + "custom.PLC_list": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "fc": "{session.custom.fc}" + }, + "tagPath": "[{fc}_SCADA_TAG_PROVIDER]Configuration/PLC" + }, + "transforms": [ + { + "code": "\tdevices \u003d system.util.jsonDecode(value)\n\tplcList \u003d []\n\tfor k in devices.keys():\n\t\tplcList.append(k)\n\t\t\n\treturn(sorted(set(plcList)))\n", + "type": "script" + } + ], + "type": "tag" + }, + "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": "if(isNull({value}), 0, {value})", + "type": "expression" + } + ], + "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.tagProps": { + "paramDirection": "input", + "persistent": true + } + }, + "props": { + "defaultSize": { + "width": 400 + } + }, + "root": { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "grow": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "expression": "\u0027Source ID: \u0027 + {view.params.tagProps[0]}" + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "color": "#FFFF", + "fontFamily": "Arial", + "fontSize": 14, + "fontWeight": "bold", + "paddingLeft": 10 + } + }, + "type": "ia.display.label" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.perspective.closeDock(\u0027Docked-East-Device\u0027)\n\tself.getSibling(\"tabs\").props.currentTabIndex \u003d 0" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Icon", + "tooltip": { + "enabled": true, + "style": { + "cursor": "pointer" + }, + "text": "Close faceplate" + } + }, + "props": { + "path": "material/close", + "style": { + "cursor": "pointer", + "marginBottom": 5, + "marginLeft": 5, + "marginRight": 5, + "marginTop": 5 + } + }, + "type": "ia.display.icon" + } + ], + "meta": { + "name": "FlexContainer" + }, + "position": { + "basis": "30px", + "shrink": 0 + }, + "props": { + "style": { + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "32px", + "display": false + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "if({../AlarmTable.props.params.length_of_table_data} \u003d 0, True, False)" + }, + "enabled": false, + "type": "expr" + } + } + }, + "props": { + "style": { + "classes": "Labels/Label_1", + "marginTop": 20 + }, + "text": "No Active Alarms" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "AlarmStatusTable" + }, + "position": { + "basis": "400px", + "grow": 1 + }, + "propConfig": { + "props.filters.active.text": { + "binding": { + "config": { + "path": "view.params.tagProps[0]" + }, + "transforms": [ + { + "code": "\treturn value[1:]", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "columns": { + "active": { + "displayPath": { + "enabled": false + }, + "priority": { + "enabled": false + }, + "source": { + "enabled": false + }, + "state": { + "enabled": false + } + } + }, + "filters": { + "active": { + "priorities": { + "critical": false, + "high": false, + "low": false, + "medium": false + }, + "states": { + "clearUnacked": false + } + } + }, + "refreshRate": 500, + "toolbar": { + "enabled": false + } + }, + "type": "ia.display.alarmstatustable" + } + ], + "meta": { + "name": "Active_tab" + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NameField" + }, + "position": { + "basis": "50%", + "grow": 1 + }, + "props": { + "style": { + "paddingLeft": 20 + }, + "text": "NAME" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "DeviceName" + }, + "position": { + "basis": "50%", + "grow": 1 + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "path": "view.params.tagProps[0]" + }, + "transforms": [ + { + "code": " return value.rsplit(\u0027/\u0027, 1)[-1]", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "style": { + "backgroundColor": "#FFFFFF", + "classes": "Text-Styles/Ariel-Bold-12pt", + "paddingLeft": 10 + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Name" + }, + "position": { + "basis": "35px" + }, + "props": { + "style": { + "classes": "PopUp-Styles/InfoLabel", + "overflow": "hidden" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "FlexContainer_0" + }, + "position": { + "basis": "35px" + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NameField" + }, + "position": { + "basis": "50%", + "grow": 1 + }, + "props": { + "style": { + "paddingLeft": 20 + }, + "text": "COMMUNICATION FAULTED" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "PB_Light" + }, + "position": { + "basis": "50%", + "grow": 1 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "this.props.text" + }, + "transforms": [ + { + "fallback": "#D5D5D5", + "inputType": "scalar", + "mappings": [ + { + "input": "UNKNOWN", + "output": "#FFFFFF" + } + ], + "outputType": "color", + "type": "map" + } + ], + "type": "property" + } + }, + "props.text": { + "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},\"UNKNOWN\")", + "type": "expression" + }, + { + "fallback": "UNKNOWN", + "inputType": "scalar", + "mappings": [ + { + "input": 1, + "output": "FAULTED" + }, + { + "input": 0, + "output": "NOT FAULTED" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "tag" + } + }, + "props.textStyle.color": { + "binding": { + "config": { + "path": "this.props.text" + }, + "transforms": [ + { + "fallback": "#000000", + "inputType": "scalar", + "mappings": [ + { + "input": "NOT FAULTED", + "output": "#47FF47" + }, + { + "input": "FAULTED", + "output": "#FF0000" + } + ], + "outputType": "color", + "type": "map" + } + ], + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "Text-Styles/Ariel-Bold-12pt", + "paddingLeft": 10 + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Property" + }, + "position": { + "basis": "35px", + "shrink": 2 + }, + "props": { + "style": { + "classes": "PopUp-Styles/InfoLabel" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "FlexContainer_1" + }, + "position": { + "basis": "35px" + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "children": [ + { + "meta": { + "name": "NameField" + }, + "position": { + "basis": "50%", + "grow": 1 + }, + "props": { + "style": { + "paddingLeft": 20 + }, + "text": "STATUS" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "status" + }, + "position": { + "basis": "50%", + "grow": 1 + }, + "propConfig": { + "props.style.backgroundColor": { + "binding": { + "config": { + "path": "this.props.text" + }, + "transforms": [ + { + "fallback": "#D5D5D5", + "inputType": "scalar", + "mappings": [ + { + "input": "UNKNOWN", + "output": "#FFFFFF" + } + ], + "outputType": "color", + "type": "map" + } + ], + "type": "property" + } + }, + "props.text": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "string": "{view.custom.string}" + }, + "tagPath": "{string}" + }, + "transforms": [ + { + "expression": "coalesce({value},\"UNKNOWN\")", + "type": "expression" + } + ], + "type": "tag" + } + }, + "props.textStyle.color": { + "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": { + "style": { + "classes": "Text-Styles/Ariel-Bold-12pt", + "paddingLeft": 10 + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Property" + }, + "position": { + "basis": "35px", + "shrink": 2 + }, + "props": { + "style": { + "classes": "PopUp-Styles/InfoLabel" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "FlexContainer_2" + }, + "position": { + "basis": "35px" + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "Info_tab" + }, + "position": { + "tabIndex": 1 + }, + "props": { + "direction": "column", + "style": { + "margin-left": "" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "tabs" + }, + "position": { + "grow": 1 + }, + "props": { + "currentTabIndex": 1, + "menuType": "modern", + "tabSize": { + "width": 1000 + }, + "tabStyle": { + "active": { + "classes": "", + "color": "#FFFFFF", + "fontFamily": "Arial", + "fontSize": 14, + "fontWeight": "bold", + "paddingLeft": 10 + }, + "inactive": { + "classes": "", + "color": "#B8B8B8", + "fontFamily": "Arial", + "fontSize": 14, + "fontWeight": "bold", + "paddingLeft": 10 + } + }, + "tabs": [ + "Alarms", + "Info" + ] + }, + "type": "ia.container.tab" + } + ], + "meta": { + "name": "FlexContainer_1" + }, + "position": { + "basis": "670px", + "grow": 1 + }, + "props": { + "style": { + "border-top": "1px solid white", + "gap": "" + } + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "FlexContainer" + }, + "position": { + "basis": "800px", + "grow": 1 + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "root" + }, + "props": { + "direction": "column", + "style": { + "classes": "Buttons/Button-Menu" + } + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Button/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Button/resource.json index d8f033e4..3d2f7bc7 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Button/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Button/resource.json @@ -10,8 +10,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-09-02T12:33:49Z" + "timestamp": "2025-09-02T13:45:42Z" }, - "lastModificationSignature": "8eec50aa766ec87ef6161eca563152863ab08772f6a70cc2fc9c3032a2fad74b" + "lastModificationSignature": "bc77c0ec2c7d05aee6a4a8211df208458a47fffd138e162845eec2b13e46e83a" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Button/thumbnail.png b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Button/thumbnail.png index 1de5037a..2b969e0a 100644 Binary files a/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Button/thumbnail.png and b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Button/thumbnail.png differ diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device/resource.json index d5772022..2414ad2d 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device/resource.json @@ -10,8 +10,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-09-02T13:03:30Z" + "timestamp": "2025-09-02T13:45:37Z" }, - "lastModificationSignature": "3ea4dc0dc36afdc13723329766d2385a5e72ae26ccef3a17f179076231584cd1" + "lastModificationSignature": "9a702d410bb09e55752bf764b5a9ae3e1b85e83aee01b92e1a0a4cd5fc68bc34" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device/thumbnail.png b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device/thumbnail.png index 5967cd63..b5d06c15 100644 Binary files a/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device/thumbnail.png and b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device/thumbnail.png differ