diff --git a/.resources/95e86e358ab68fca62fec24d31862959be35d475d7a09bfafc1bf28da3ef0ff5 b/.resources/2e80438976cc1ce4b1fb8de0a52e943bde6087653ada8184d9383138caae22b7 similarity index 79% rename from .resources/95e86e358ab68fca62fec24d31862959be35d475d7a09bfafc1bf28da3ef0ff5 rename to .resources/2e80438976cc1ce4b1fb8de0a52e943bde6087653ada8184d9383138caae22b7 index f01a22a5..8684f54a 100644 --- a/.resources/95e86e358ab68fca62fec24d31862959be35d475d7a09bfafc1bf28da3ef0ff5 +++ b/.resources/2e80438976cc1ce4b1fb8de0a52e943bde6087653ada8184d9383138caae22b7 @@ -130,14 +130,7 @@ "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" + "script": "\tsystem.perspective.openDock(\u0027Docked-East-Device\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" }, "scope": "G", "type": "script" diff --git a/.resources/3b4257fe1e0d504c9a4b1f9ee7e5f97d3001ebe91bfa2abf9391ca80af66c5df b/.resources/3b4257fe1e0d504c9a4b1f9ee7e5f97d3001ebe91bfa2abf9391ca80af66c5df new file mode 100644 index 00000000..2aefa40f Binary files /dev/null and b/.resources/3b4257fe1e0d504c9a4b1f9ee7e5f97d3001ebe91bfa2abf9391ca80af66c5df differ diff --git a/.resources/87852d77de141e77cef70198c8364d60ac114059ae3336857580697b5552bb30 b/.resources/58810d6b4661f51c0a837089e464fe78cdebbddb928afb5cd7e54e3ecabc9f98 similarity index 84% rename from .resources/87852d77de141e77cef70198c8364d60ac114059ae3336857580697b5552bb30 rename to .resources/58810d6b4661f51c0a837089e464fe78cdebbddb928afb5cd7e54e3ecabc9f98 index 2ca486af..823c549e 100644 --- a/.resources/87852d77de141e77cef70198c8364d60ac114059ae3336857580697b5552bb30 +++ b/.resources/58810d6b4661f51c0a837089e464fe78cdebbddb928afb5cd7e54e3ecabc9f98 @@ -1,14 +1,42 @@ { "custom": { - "state": 1, - "string": "Device Disconnected" + "string": "OK" }, "params": { "tagProps": [ + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value", "value" ] }, "propConfig": { + "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" + } + }, "custom.string": { "binding": { "config": { @@ -19,13 +47,9 @@ "fallback": "Unknown", "inputType": "scalar", "mappings": [ - { - "input": 0, - "output": "OK" - }, { "input": 1, - "output": "Device Disconnected" + "output": "OK" }, { "input": 2, @@ -68,13 +92,9 @@ "fallback": "#C2C2C2", "inputType": "scalar", "mappings": [ - { - "input": 0, - "output": "url(#splitGreenGrey)" - }, { "input": 1, - "output": "#C2C2C2" + "output": "url(#splitGreenGrey)" }, { "input": 2, @@ -159,7 +179,7 @@ "type": "defs" }, { - "cx": "12", + "cx": 12, "cy": "12", "fill": {}, "rx": "10", @@ -186,6 +206,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": "VFD", "tooltip": { diff --git a/.resources/121d775a5956439178642922619c085b49599dd958d404fe9443d612606f2919 b/.resources/8771095db7e5256857b0c698a8bb35a625d8ec4e87c1a3508c913f0b234354fa similarity index 97% rename from .resources/121d775a5956439178642922619c085b49599dd958d404fe9443d612606f2919 rename to .resources/8771095db7e5256857b0c698a8bb35a625d8ec4e87c1a3508c913f0b234354fa index 78772c3b..f4330f22 100644 --- a/.resources/121d775a5956439178642922619c085b49599dd958d404fe9443d612606f2919 +++ b/.resources/8771095db7e5256857b0c698a8bb35a625d8ec4e87c1a3508c913f0b234354fa @@ -31,7 +31,7 @@ }, "transforms": [ { - "expression": "coalesce({value},{view.params.forceFaultStatus},0)", + "expression": "coalesce({value},0)", "type": "expression" }, { @@ -132,7 +132,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-Device\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" }, "scope": "G", "type": "script" diff --git a/.resources/8fe55e8098f34547366d255f1dba268c463f9c995d1acef918861693a863e016 b/.resources/8fe55e8098f34547366d255f1dba268c463f9c995d1acef918861693a863e016 deleted file mode 100644 index 24255e43..00000000 Binary files a/.resources/8fe55e8098f34547366d255f1dba268c463f9c995d1acef918861693a863e016 and /dev/null differ diff --git a/.resources/3ca09ceaa2aed87341ba88603958f28ec38265ced439e7b0a03b2f7a15dbbca7 b/.resources/904843e5a17994295f43863a20b7a0d3fe523aa9e1f6704688b53789de75fb2e similarity index 98% rename from .resources/3ca09ceaa2aed87341ba88603958f28ec38265ced439e7b0a03b2f7a15dbbca7 rename to .resources/904843e5a17994295f43863a20b7a0d3fe523aa9e1f6704688b53789de75fb2e index d05b81ba..c014535e 100644 --- a/.resources/3ca09ceaa2aed87341ba88603958f28ec38265ced439e7b0a03b2f7a15dbbca7 +++ b/.resources/904843e5a17994295f43863a20b7a0d3fe523aa9e1f6704688b53789de75fb2e @@ -179,7 +179,7 @@ "dom": { "onClick": { "config": { - "script": "\tsystem.perspective.openDock(\u0027Docked-East-DS\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" + "script": "\tsystem.perspective.openDock(\u0027Docked-East-Device\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" }, "scope": "G", "type": "script" diff --git a/.resources/a5cd747873802f73564c0aba32016333f1580eb9e337ec9e3929b253f5c3c753 b/.resources/a5cd747873802f73564c0aba32016333f1580eb9e337ec9e3929b253f5c3c753 deleted file mode 100644 index 97607ba3..00000000 Binary files a/.resources/a5cd747873802f73564c0aba32016333f1580eb9e337ec9e3929b253f5c3c753 and /dev/null differ diff --git a/.resources/a5f81be3b246e177455c21bccfc9d233be861b4ac1995e73aba3ac788ad8c756 b/.resources/a5f81be3b246e177455c21bccfc9d233be861b4ac1995e73aba3ac788ad8c756 new file mode 100644 index 00000000..910276d3 Binary files /dev/null and b/.resources/a5f81be3b246e177455c21bccfc9d233be861b4ac1995e73aba3ac788ad8c756 differ diff --git a/.resources/cd6ccd8ae888a040adc1b2c46157c546ea373d90980f8b3dd25ef8c4ca96d792 b/.resources/cd6ccd8ae888a040adc1b2c46157c546ea373d90980f8b3dd25ef8c4ca96d792 new file mode 100644 index 00000000..5967cd63 Binary files /dev/null and b/.resources/cd6ccd8ae888a040adc1b2c46157c546ea373d90980f8b3dd25ef8c4ca96d792 differ diff --git a/.resources/bb5272447d50771e186c0b982ddf574d256e23dc6cece9c32f939366e821a1bf b/.resources/d80eddaf232f520b8299dfe913edcbce9cdc741517d70bd37e2ca34e74ed6240 similarity index 98% rename from .resources/bb5272447d50771e186c0b982ddf574d256e23dc6cece9c32f939366e821a1bf rename to .resources/d80eddaf232f520b8299dfe913edcbce9cdc741517d70bd37e2ca34e74ed6240 index b858cad1..b87c7aeb 100644 --- a/.resources/bb5272447d50771e186c0b982ddf574d256e23dc6cece9c32f939366e821a1bf +++ b/.resources/d80eddaf232f520b8299dfe913edcbce9cdc741517d70bd37e2ca34e74ed6240 @@ -130,7 +130,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-Device\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" }, "scope": "G", "type": "script" diff --git a/.resources/dd3972828cdd01728e7f149cc0d9b0e8c0dcb1b32984de9588cecc0283caa63a b/.resources/dd3972828cdd01728e7f149cc0d9b0e8c0dcb1b32984de9588cecc0283caa63a deleted file mode 100644 index cb130c14..00000000 Binary files a/.resources/dd3972828cdd01728e7f149cc0d9b0e8c0dcb1b32984de9588cecc0283caa63a and /dev/null differ diff --git a/.resources/dd885607592dd2376f1ccdfa597e7b3f37baf6490f6927840d7663097c809635 b/.resources/dd885607592dd2376f1ccdfa597e7b3f37baf6490f6927840d7663097c809635 new file mode 100644 index 00000000..169c7c50 --- /dev/null +++ b/.resources/dd885607592dd2376f1ccdfa597e7b3f37baf6490f6927840d7663097c809635 @@ -0,0 +1,611 @@ +{ + "custom": { + "PLC_list": [ + "MCM01", + "MCM02" + ], + "state": 0 + }, + "params": { + "tagProps": [ + "/System/MCM01/SIO/UL14_1_SIO1", + "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" + }, + { + "fallback": null, + "inputType": "scalar", + "mappings": [ + { + "input": 3, + "output": 3 + }, + { + "input": 2, + "output": 2 + }, + { + "input": 1, + "output": 1 + }, + { + "input": 0, + "output": 0 + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "tag" + }, + "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" + } + ], + "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/26a2bb7aead455e5afb6bfb0a06771713e6f7fd6835bc9adf628485f522ad5df b/.resources/e83d88334d32292b4af741b102e85c54a02179c6e0804fbc9f1245ac04495b11 similarity index 96% rename from .resources/26a2bb7aead455e5afb6bfb0a06771713e6f7fd6835bc9adf628485f522ad5df rename to .resources/e83d88334d32292b4af741b102e85c54a02179c6e0804fbc9f1245ac04495b11 index 321446e8..506ae75a 100644 --- a/.resources/26a2bb7aead455e5afb6bfb0a06771713e6f7fd6835bc9adf628485f522ad5df +++ b/.resources/e83d88334d32292b4af741b102e85c54a02179c6e0804fbc9f1245ac04495b11 @@ -361,6 +361,20 @@ "size": 400, "viewParams": {}, "viewPath": "autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Button" + }, + { + "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-Device" } ], "top": [ @@ -431,6 +445,20 @@ "size": 400, "viewParams": {}, "viewPath": "autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Button" + }, + { + "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-Device" } ], "top": [ diff --git a/.resources/544642964e603d9d6cc6630e72cb0505bd67f9f41d3cb61935c4eb6847aa96e6 b/.resources/fd41569208dad337b7bc9ead8b42bacd1a7b9c934416fc7ec49764524bfb85e0 similarity index 98% rename from .resources/544642964e603d9d6cc6630e72cb0505bd67f9f41d3cb61935c4eb6847aa96e6 rename to .resources/fd41569208dad337b7bc9ead8b42bacd1a7b9c934416fc7ec49764524bfb85e0 index c3e89d5c..c06387d3 100644 --- a/.resources/544642964e603d9d6cc6630e72cb0505bd67f9f41d3cb61935c4eb6847aa96e6 +++ b/.resources/fd41569208dad337b7bc9ead8b42bacd1a7b9c934416fc7ec49764524bfb85e0 @@ -126,7 +126,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-Device\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 321446e8..506ae75a 100644 --- a/BNA8/com.inductiveautomation.perspective/page-config/config.json +++ b/BNA8/com.inductiveautomation.perspective/page-config/config.json @@ -361,6 +361,20 @@ "size": 400, "viewParams": {}, "viewPath": "autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Button" + }, + { + "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-Device" } ], "top": [ @@ -431,6 +445,20 @@ "size": 400, "viewParams": {}, "viewPath": "autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Button" + }, + { + "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-Device" } ], "top": [ diff --git a/BNA8/com.inductiveautomation.perspective/page-config/resource.json b/BNA8/com.inductiveautomation.perspective/page-config/resource.json index 80e0e89d..ee007bf1 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-02T12:28:43Z" + "timestamp": "2025-09-02T13:01:10Z" }, - "lastModificationSignature": "b8cf4a3a95fcd50132b379606e39c3a7771e3752ef4a50c6a03b8a173ebdfa32" + "lastModificationSignature": "dd8ba176ee4a2457fe0dde99ee0d28a3106dade3a15dd25fc0f4452fe50c2747" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM01-FLUID INBOUND/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM01-FLUID INBOUND/resource.json index 2c5b6359..0b914355 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM01-FLUID INBOUND/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM01-FLUID INBOUND/resource.json @@ -10,8 +10,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-09-02T12:34:41Z" + "timestamp": "2025-09-02T13:01:16Z" }, - "lastModificationSignature": "cc6ba7a07ea6ed1c4f463ca2518d3efa5777da93fcc38d8f4a3dd1cb447db2f9" + "lastModificationSignature": "ca86fda542d27e75e51798d2edd0f0a40233efc02806b174ec6ddcaf7d498fe3" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM01-FLUID INBOUND/thumbnail.png b/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM01-FLUID INBOUND/thumbnail.png index cb130c14..2aefa40f 100644 Binary files a/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM01-FLUID INBOUND/thumbnail.png and b/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM01-FLUID INBOUND/thumbnail.png differ diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Button/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Button/resource.json index ff340b23..f3929f3a 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Button/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Button/resource.json @@ -10,8 +10,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-09-02T12:34:06Z" + "timestamp": "2025-09-02T13:01:44Z" }, - "lastModificationSignature": "0f185fd91ea1a96da0bdfd2264342dfd3de3355df6513463b960161f79ddfb75" + "lastModificationSignature": "7215589c3e5c9b821785c5dcd647dc4ee14457935caeb7ebcd3510c04a2b1ecc" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Button/thumbnail.png b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Button/thumbnail.png index 24255e43..3375b720 100644 Binary files a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Button/thumbnail.png and b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Button/thumbnail.png differ diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/DPM/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/DPM/resource.json index 80caa80d..941a6aa0 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/DPM/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/DPM/resource.json @@ -10,8 +10,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-09-02T09:03:26Z" + "timestamp": "2025-09-02T13:05:29Z" }, - "lastModificationSignature": "90a5f29ec6eea2488be941312fbecd46d944fe1f62792a1ea57841ba6183cedf" + "lastModificationSignature": "1ba01e2c6fae8e8e55e668429ad8ee37a9bb14d58f59ca320085628589d75ce4" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/DPM/thumbnail.png b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/DPM/thumbnail.png index 97607ba3..910276d3 100644 Binary files a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/DPM/thumbnail.png and b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/DPM/thumbnail.png differ diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/DPM/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/DPM/view.json index d05b81ba..c014535e 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/DPM/view.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/DPM/view.json @@ -179,7 +179,7 @@ "dom": { "onClick": { "config": { - "script": "\tsystem.perspective.openDock(\u0027Docked-East-DS\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" + "script": "\tsystem.perspective.openDock(\u0027Docked-East-Device\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" }, "scope": "G", "type": "script" diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Field_IO/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Field_IO/resource.json index 62161312..6323b59e 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Field_IO/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Field_IO/resource.json @@ -9,8 +9,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-09-02T09:19:09Z" + "timestamp": "2025-09-02T13:02:31Z" }, - "lastModificationSignature": "5992057e8d27844ee8df9a501eaf65bb431560058c13a5674c55af52ce36be38" + "lastModificationSignature": "be41b6389f844da07cdd3351f48bd2f92ff1f7f749e534d6ca639116bd0936a2" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Field_IO/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Field_IO/view.json index c3e89d5c..c06387d3 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Field_IO/view.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Field_IO/view.json @@ -126,7 +126,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-Device\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" }, "scope": "G", "type": "script" diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/ProxSwitch/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/ProxSwitch/resource.json index bed83d7c..2f415948 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/ProxSwitch/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/ProxSwitch/resource.json @@ -8,9 +8,9 @@ ], "attributes": { "lastModification": { - "actor": "external", - "timestamp": "2025-08-28T09:46:53Z" + "actor": "admin", + "timestamp": "2025-09-02T13:04:42Z" }, - "lastModificationSignature": "406ece27009ebb33bb0c118aca059320bf4d29c152aa4ccc95d5ab4badc7641b" + "lastModificationSignature": "0d68c16def444369d271db35d46c59d96b058b5c79b47099d4c1a4382cb67892" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/ProxSwitch/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/ProxSwitch/view.json index b858cad1..b87c7aeb 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/ProxSwitch/view.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/ProxSwitch/view.json @@ -130,7 +130,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-Device\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" }, "scope": "G", "type": "script" diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Safety_IO/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Safety_IO/resource.json index a894f9cf..c9b1c834 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Safety_IO/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Safety_IO/resource.json @@ -8,9 +8,9 @@ ], "attributes": { "lastModification": { - "actor": "external", - "timestamp": "2025-08-28T09:46:53Z" + "actor": "admin", + "timestamp": "2025-09-02T13:07:25Z" }, - "lastModificationSignature": "eee896aa5b8e386e880d3915326f161ec77e2916f56a4e3844df7f4bfafeb491" + "lastModificationSignature": "cff8863f932ccc825cdc8c51ba8c95ac36d5db3d9324815e4bca2c75fb9b853d" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Safety_IO/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Safety_IO/view.json index 78772c3b..f4330f22 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Safety_IO/view.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Safety_IO/view.json @@ -31,7 +31,7 @@ }, "transforms": [ { - "expression": "coalesce({value},{view.params.forceFaultStatus},0)", + "expression": "coalesce({value},0)", "type": "expression" }, { @@ -132,7 +132,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-Device\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" }, "scope": "G", "type": "script" diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Solenoid/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Solenoid/resource.json index 132d1b9f..73752aa6 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Solenoid/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Solenoid/resource.json @@ -8,9 +8,9 @@ ], "attributes": { "lastModification": { - "actor": "external", - "timestamp": "2025-08-28T09:46:53Z" + "actor": "admin", + "timestamp": "2025-09-02T13:15:32Z" }, - "lastModificationSignature": "9314bc3c5f0b7f9a04e6a6747d484a12f55edf259679b600fe4c4919f35cc062" + "lastModificationSignature": "01b237dbfb15beb6b86aeaadceae774a24a34b3cadf505c7a74aaf0cea275701" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Solenoid/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Solenoid/view.json index f01a22a5..8684f54a 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Solenoid/view.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Solenoid/view.json @@ -130,14 +130,7 @@ "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" + "script": "\tsystem.perspective.openDock(\u0027Docked-East-Device\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" }, "scope": "G", "type": "script" diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/VFD/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/VFD/resource.json index 33069d4f..852105e1 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/VFD/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/VFD/resource.json @@ -9,9 +9,9 @@ ], "attributes": { "lastModification": { - "actor": "external", - "timestamp": "2025-08-28T09:46:53Z" + "actor": "admin", + "timestamp": "2025-09-02T13:15:32Z" }, - "lastModificationSignature": "d3dca34f053480a1be10e95bed283cfda5d05ecacbf44f24b3069deea1e28c3a" + "lastModificationSignature": "9a395a0f9400ccac85478e2b05927c6051544afce9a6f1bf3e665a559bff5871" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/VFD/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/VFD/view.json index 2ca486af..823c549e 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/VFD/view.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/VFD/view.json @@ -1,14 +1,42 @@ { "custom": { - "state": 1, - "string": "Device Disconnected" + "string": "OK" }, "params": { "tagProps": [ + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value", "value" ] }, "propConfig": { + "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" + } + }, "custom.string": { "binding": { "config": { @@ -19,13 +47,9 @@ "fallback": "Unknown", "inputType": "scalar", "mappings": [ - { - "input": 0, - "output": "OK" - }, { "input": 1, - "output": "Device Disconnected" + "output": "OK" }, { "input": 2, @@ -68,13 +92,9 @@ "fallback": "#C2C2C2", "inputType": "scalar", "mappings": [ - { - "input": 0, - "output": "url(#splitGreenGrey)" - }, { "input": 1, - "output": "#C2C2C2" + "output": "url(#splitGreenGrey)" }, { "input": 2, @@ -159,7 +179,7 @@ "type": "defs" }, { - "cx": "12", + "cx": 12, "cy": "12", "fill": {}, "rx": "10", @@ -186,6 +206,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": "VFD", "tooltip": { 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 new file mode 100644 index 00000000..d5772022 --- /dev/null +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device/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:03:30Z" + }, + "lastModificationSignature": "3ea4dc0dc36afdc13723329766d2385a5e72ae26ccef3a17f179076231584cd1" + } +} \ 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 new file mode 100644 index 00000000..5967cd63 Binary files /dev/null and b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device/thumbnail.png differ diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device/view.json new file mode 100644 index 00000000..169c7c50 --- /dev/null +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-Device/view.json @@ -0,0 +1,611 @@ +{ + "custom": { + "PLC_list": [ + "MCM01", + "MCM02" + ], + "state": 0 + }, + "params": { + "tagProps": [ + "/System/MCM01/SIO/UL14_1_SIO1", + "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" + }, + { + "fallback": null, + "inputType": "scalar", + "mappings": [ + { + "input": 3, + "output": 3 + }, + { + "input": 2, + "output": 2 + }, + { + "input": 1, + "output": 1 + }, + { + "input": 0, + "output": 0 + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "tag" + }, + "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" + } + ], + "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