diff --git a/.resources/0e7f41d01cb9b90e38353404e6408aa5f8d372d04c2bbc9f777c0c632c490c3d b/.resources/0e7f41d01cb9b90e38353404e6408aa5f8d372d04c2bbc9f777c0c632c490c3d deleted file mode 100644 index 5382c7a4..00000000 Binary files a/.resources/0e7f41d01cb9b90e38353404e6408aa5f8d372d04c2bbc9f777c0c632c490c3d and /dev/null differ diff --git a/.resources/14e92f6eb816c121edf5ef38d4def0a889a81c2fae5b6355a30e183e0842bdec b/.resources/14e92f6eb816c121edf5ef38d4def0a889a81c2fae5b6355a30e183e0842bdec new file mode 100644 index 00000000..c3dac6a7 Binary files /dev/null and b/.resources/14e92f6eb816c121edf5ef38d4def0a889a81c2fae5b6355a30e183e0842bdec differ diff --git a/.resources/22832d19ca222335f462530f097719f5ce24510121c2635774c35ce0c1847334 b/.resources/22832d19ca222335f462530f097719f5ce24510121c2635774c35ce0c1847334 new file mode 100644 index 00000000..40033207 Binary files /dev/null and b/.resources/22832d19ca222335f462530f097719f5ce24510121c2635774c35ce0c1847334 differ diff --git a/.resources/3eebb1f1e6eaa57e1c4267a09463da5737bfa76052100c113350423c94233c02 b/.resources/3eebb1f1e6eaa57e1c4267a09463da5737bfa76052100c113350423c94233c02 deleted file mode 100644 index 0d1d62e4..00000000 Binary files a/.resources/3eebb1f1e6eaa57e1c4267a09463da5737bfa76052100c113350423c94233c02 and /dev/null differ diff --git a/.resources/432db199466e7ea0db63d3270434177caf2d95874d9a4b850e37cc8c129e7781 b/.resources/432db199466e7ea0db63d3270434177caf2d95874d9a4b850e37cc8c129e7781 deleted file mode 100644 index 8a79cd6f..00000000 Binary files a/.resources/432db199466e7ea0db63d3270434177caf2d95874d9a4b850e37cc8c129e7781 and /dev/null differ diff --git a/.resources/2c908eb2ec1be017475a6ea8170e9d1bf9a0faf44f77df9e6a1aed7bb4957236 b/.resources/5bb6f50bac0516ddb18f5eb9f7cc4a43c82f29c780ec420feed7b3d07cec3285 similarity index 99% rename from .resources/2c908eb2ec1be017475a6ea8170e9d1bf9a0faf44f77df9e6a1aed7bb4957236 rename to .resources/5bb6f50bac0516ddb18f5eb9f7cc4a43c82f29c780ec420feed7b3d07cec3285 index 36dd682a..3b85641d 100644 --- a/.resources/2c908eb2ec1be017475a6ea8170e9d1bf9a0faf44f77df9e6a1aed7bb4957236 +++ b/.resources/5bb6f50bac0516ddb18f5eb9f7cc4a43c82f29c780ec420feed7b3d07cec3285 @@ -1221,10 +1221,10 @@ "name": "UL15_1_TPE1" }, "position": { - "height": 0.0231, - "width": 0.0255, - "x": 0.0262, - "y": 0.3945 + "height": 0.0185, + "width": 0.0286, + "x": 0.0257, + "y": 0.3963 }, "props": { "loading": { @@ -1242,15 +1242,12 @@ "value", "value", "value" - ], - "width": "value" + ] }, "path": "autStand/Equipment/Photoeye_Tracking", "style": { "overflow": "hidden" - }, - "useDefaultViewHeight": true, - "useDefaultViewWidth": true + } }, "type": "ia.display.view" }, @@ -1259,12 +1256,12 @@ "name": "UL15_2_TPE1" }, "position": { - "height": 0.021, + "height": 0.0187, "rotate": { "angle": "60deg" }, - "width": 0.0394, - "x": 0.0336, + "width": 0.0286, + "x": 0.04, "y": 0.3397 }, "props": { @@ -1553,9 +1550,7 @@ "path": "autStand/Equipment/Photoeye_Tracking", "style": { "overflow": "hidden" - }, - "useDefaultViewHeight": true, - "useDefaultViewWidth": true + } }, "type": "ia.display.view" }, @@ -1569,7 +1564,7 @@ "angle": "90deg" }, "width": 0.0286, - "x": 0.2997, + "x": 0.2987, "y": 0.2779 }, "props": { @@ -1590,9 +1585,7 @@ "path": "autStand/Equipment/Photoeye_Tracking", "style": { "overflow": "hidden" - }, - "useDefaultViewHeight": true, - "useDefaultViewWidth": true + } }, "type": "ia.display.view" }, diff --git a/.resources/2865ee24e21eb70b36fd107dab17a144a1fcb78e87a5ef2c821c10b656e4885a b/.resources/630234afa023603b8e01a3fed1ba6d521179648ad1f39180ce0f48a252e7f918 similarity index 93% rename from .resources/2865ee24e21eb70b36fd107dab17a144a1fcb78e87a5ef2c821c10b656e4885a rename to .resources/630234afa023603b8e01a3fed1ba6d521179648ad1f39180ce0f48a252e7f918 index 071cc5ef..09aa764b 100644 --- a/.resources/2865ee24e21eb70b36fd107dab17a144a1fcb78e87a5ef2c821c10b656e4885a +++ b/.resources/630234afa023603b8e01a3fed1ba6d521179648ad1f39180ce0f48a252e7f918 @@ -3,7 +3,8 @@ "PLC": "MCM01", "device": "UL14_1_SIO1", "showTags": true, - "state": "Closed" + "state": "Closed", + "view": "autStand/Equipment/IO_Block" }, "params": { "tagProps": [ @@ -49,6 +50,10 @@ ], "type": "property" }, + "onChange": { + "enabled": null, + "script": "\tname \u003d self.view.custom.device\n\tdevice \u003d name.split(\"_\")[-1]\n\t\n\t# Use a list of tuples to maintain order - longer matches first\n\tdevice_mapping \u003d [\n\t # Encoder variations (check these first before \u0027EN\u0027)\n\t (\u0027ENSH\u0027, \u0027Encoder\u0027),\n\t (\u0027ENW\u0027, \u0027Encoder\u0027),\n\t \n\t # Photoeye variations\n\t (\u0027LRPE\u0027, \u0027Photoeye_Tracking\u0027),\n\t (\u0027TPE\u0027, \u0027Photoeye_Tracking\u0027),\n\t \n\t # IO_Block variations\n\t (\u0027SIO\u0027, \u0027IO_Block\u0027),\n\t (\u0027FIO\u0027, \u0027IO_Block\u0027),\n\t \n\t # Button variations (check after encoder)\n\t (\u0027EN\u0027, \u0027Button\u0027),\n\t (\u0027JR\u0027, \u0027Button\u0027),\n\t \n\t # Photoeye (shorter version after longer ones)\n\t (\u0027PE\u0027, \u0027Photoeye_Tracking\u0027),\n\t \n\t # Other devices variations \n\t (\u0027DPM\u0027, \u0027DPM\u0027),\n\t (\u0027EPC\u0027, \u0027EPC\u0027),\n\t (\u0027MCM\u0027, \u0027MCM\u0027),\n\t (\u0027PRX\u0027, \u0027ProxSensor\u0027),\n\t (\u0027SS\u0027, \u0027SS_Button\u0027),\n\t (\u0027SOL\u0027, \u0027Solenoid\u0027),\n\t \n\t # Beacon Variations (single letters last)\n\t (\u0027B\u0027, \u0027Beacon\u0027),\n\t (\u0027G\u0027, \u0027Beacon\u0027),\n\t (\u0027R\u0027, \u0027Beacon\u0027),\n\t (\u0027H\u0027, \u0027Beacon\u0027),\n\t (\u0027A\u0027, \u0027Beacon\u0027), \n\t]\n\t\n\tview \u003d \"\"\n\t\n\tfor key, value in device_mapping:\n\t if device.startswith(key):\n\t\t\tview \u003d value\n\t\t\tself.custom.view \u003d \"autStand/Equipment/\" + view\n\t\t\treturn \n\t\n\tself.custom.view \u003d \"autStand/Equipment/Camera\"" + }, "persistent": true }, "custom.showTags": { @@ -293,6 +298,9 @@ }, "persistent": true }, + "custom.view": { + "persistent": true + }, "params.tagProps": { "paramDirection": "input", "persistent": true @@ -832,11 +840,23 @@ "x": 37.33, "y": 23 }, - "props": { - "params": { - "name": "Red" + "propConfig": { + "props.params.tagProps": { + "binding": { + "config": { + "path": "view.params.tagProps" + }, + "type": "property" + } }, - "path": "autStand/Equipment/Beacon" + "props.path": { + "binding": { + "config": { + "path": "view.custom.view" + }, + "type": "property" + } + } }, "type": "ia.display.view" }, diff --git a/.resources/776ade623ba6ff3bf9dba3d8557e265f5f4238401f353f22796f0e90eb0d6e57 b/.resources/67d000b29665f44f4fa05e59f6e11434c6bcc3424eb0f160b73c7e1dcbfa004e similarity index 99% rename from .resources/776ade623ba6ff3bf9dba3d8557e265f5f4238401f353f22796f0e90eb0d6e57 rename to .resources/67d000b29665f44f4fa05e59f6e11434c6bcc3424eb0f160b73c7e1dcbfa004e index 61e35525..db4c9b85 100644 --- a/.resources/776ade623ba6ff3bf9dba3d8557e265f5f4238401f353f22796f0e90eb0d6e57 +++ b/.resources/67d000b29665f44f4fa05e59f6e11434c6bcc3424eb0f160b73c7e1dcbfa004e @@ -2,7 +2,7 @@ "custom": { "PLC": "MCM01", "device": "UL15_1", - "maintance_mode": true, + "maintance_mode": false, "showTags": true, "state": "Actuated" }, diff --git a/.resources/8ee05e53b434f4e92119c1734a0395c102ff6f8b09bb5962bf056e1c13eb4ce1 b/.resources/8ee05e53b434f4e92119c1734a0395c102ff6f8b09bb5962bf056e1c13eb4ce1 deleted file mode 100644 index c40a764c..00000000 Binary files a/.resources/8ee05e53b434f4e92119c1734a0395c102ff6f8b09bb5962bf056e1c13eb4ce1 and /dev/null differ diff --git a/.resources/920a4a14585e10a39465805ceec15d98e3d57230a199caf0aa4f569d26a8a939 b/.resources/920a4a14585e10a39465805ceec15d98e3d57230a199caf0aa4f569d26a8a939 new file mode 100644 index 00000000..d9573ed5 Binary files /dev/null and b/.resources/920a4a14585e10a39465805ceec15d98e3d57230a199caf0aa4f569d26a8a939 differ diff --git a/.resources/9845e54753ed6c1524005ac0ee1f85c394f9a830973bc4ae86d6dc1f9d6334bd b/.resources/9845e54753ed6c1524005ac0ee1f85c394f9a830973bc4ae86d6dc1f9d6334bd new file mode 100644 index 00000000..cf2e6252 Binary files /dev/null and b/.resources/9845e54753ed6c1524005ac0ee1f85c394f9a830973bc4ae86d6dc1f9d6334bd differ diff --git a/.resources/a2105067e0593d165de164f6a951de2407bd5b24f87fefdbadb3bd29f563c431 b/.resources/a2105067e0593d165de164f6a951de2407bd5b24f87fefdbadb3bd29f563c431 deleted file mode 100644 index 43418a42..00000000 --- a/.resources/a2105067e0593d165de164f6a951de2407bd5b24f87fefdbadb3bd29f563c431 +++ /dev/null @@ -1,357 +0,0 @@ -{ - "custom": { - "disconnected": false, - "priority": 0, - "state": 0, - "state_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": { - "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.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.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, \"Faulted\",\r\n2, \"Stopped\",\r\n3, \"Running\",\r\n\"Unknown\")" - }, - "type": "expr" - }, - "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": { - "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" - }, - "viewBox": "0 0 29.22 29.22" - }, - "type": "ia.shapes.svg" - } - ], - "events": { - "dom": { - "onClick": { - "config": { - "script": "\t#create tags lists for the device\n\tprops \u003d self.view.params.tagProps\n\ttags_table_dataset \u003d autStand.devices.getAllTags(self, props[0])\n\tsystem.perspective.openDock(\u0027Docked-East-Device\u0027,params\u003d{\u0027tagProps\u0027:props, \"tags\":tags_table_dataset})" - }, - "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\", State: \" + {view.custom.state_string},\n\t\"Source Id: \" + {view.params.tagProps[0]} +\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/b8d18c7c25befe76ec885ef2ca9587482984be82ebc1a7e81459b51acc8ec904 b/.resources/b8d18c7c25befe76ec885ef2ca9587482984be82ebc1a7e81459b51acc8ec904 deleted file mode 100644 index 8b7382ca..00000000 Binary files a/.resources/b8d18c7c25befe76ec885ef2ca9587482984be82ebc1a7e81459b51acc8ec904 and /dev/null differ diff --git a/.resources/d0d774a3caf9e268ba46152a96cfd951facbcbcc0bc9c3f6c530157995bb9dcc b/.resources/d0d774a3caf9e268ba46152a96cfd951facbcbcc0bc9c3f6c530157995bb9dcc new file mode 100644 index 00000000..7ca9a85a --- /dev/null +++ b/.resources/d0d774a3caf9e268ba46152a96cfd951facbcbcc0bc9c3f6c530157995bb9dcc @@ -0,0 +1,567 @@ +{ + "custom": { + "color": "value", + "priority": "No Active Alarms", + "state": "Closed" + }, + "params": { + "tagProps": [ + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value" + ] + }, + "propConfig": { + "custom.color": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "0": "{view.params.tagProps[0]}", + "fc": "{session.custom.fc}" + }, + "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Color" + }, + "transforms": [ + { + "expression": "coalesce({value},0)", + "type": "expression" + }, + { + "fallback": "#000000", + "inputType": "scalar", + "mappings": [ + { + "input": 0, + "output": "#C2C2C2" + }, + { + "input": 1, + "output": "#FF0000" + }, + { + "input": 2, + "output": "#FFA500" + }, + { + "input": 3, + "output": "#0008FF" + }, + { + "input": 4, + "output": "#00FF00" + }, + { + "input": 5, + "output": "#FFF700" + }, + { + "input": 6, + "output": "#87CEEB" + }, + { + "input": 7, + "output": "#90EE90" + }, + { + "input": 8, + "output": "#964B00" + }, + { + "input": 9, + "output": "#FFFFFF" + }, + { + "input": 10, + "output": "#000000" + }, + { + "input": 11, + "output": "#8B0000" + }, + { + "input": 12, + "output": "#808080" + }, + { + "input": 13, + "output": "#8B8000" + }, + { + "input": 14, + "output": "#006400" + }, + { + "input": 15, + "output": "#FFFFC5" + }, + { + "input": 16, + "output": "#00008B" + }, + { + "input": 17, + "output": "#FF7276" + }, + { + "input": 18, + "output": "#556B2F" + }, + { + "input": 19, + "output": "#B43434" + }, + { + "input": 20, + "output": "#4682B4" + }, + { + "input": 21, + "output": "#FFD700" + } + ], + "outputType": "color", + "type": "map" + } + ], + "type": "tag" + }, + "persistent": true + }, + "custom.priority": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "0": "{view.params.tagProps[0]}", + "fc": "{session.custom.fc}" + }, + "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Priority" + }, + "transforms": [ + { + "expression": "coalesce({value},0)", + "type": "expression" + }, + { + "fallback": null, + "inputType": "scalar", + "mappings": [ + { + "input": 0, + "output": "No Active Alarms" + }, + { + "input": 1, + "output": "High" + }, + { + "input": 2, + "output": "Medium" + }, + { + "input": 3, + "output": "Low" + }, + { + "input": 4, + "output": "Diagnostic" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "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": "coalesce({value},0)", + "type": "expression" + }, + { + "fallback": "Unknown", + "inputType": "scalar", + "mappings": [ + { + "input": 0, + "output": "Closed" + }, + { + "input": 1, + "output": "Actuated" + }, + { + "input": 2, + "output": "Communication Faulted" + }, + { + "input": 3, + "output": "Conveyor Running In Maintenance Mode" + }, + { + "input": 4, + "output": "Disabled" + }, + { + "input": 5, + "output": "Disconnected" + }, + { + "input": 6, + "output": "Stopped" + }, + { + "input": 7, + "output": "Enabled Not Running" + }, + { + "input": 8, + "output": "Encoder Fault" + }, + { + "input": 9, + "output": "Energy Management" + }, + { + "input": 10, + "output": "ESTOP Was Actuated" + }, + { + "input": 11, + "output": "EStopped" + }, + { + "input": 12, + "output": "EStopped Locally" + }, + { + "input": 13, + "output": "Extended Faulted" + }, + { + "input": 14, + "output": "Full" + }, + { + "input": 15, + "output": "Gaylord Start Pressed" + }, + { + "input": 16, + "output": "Jam Fault" + }, + { + "input": 17, + "output": "Jammed" + }, + { + "input": 18, + "output": "Loading Allowed" + }, + { + "input": 19, + "output": "Loading Not Allowed" + }, + { + "input": 20, + "output": "Low Air Pressure Fault Was Present" + }, + { + "input": 21, + "output": "Maintenance Mode" + }, + { + "input": 22, + "output": "Conveyor Stopped In Maintenance Mode" + }, + { + "input": 23, + "output": "Motor Faulted" + }, + { + "input": 24, + "output": "Motor Was Faulted" + }, + { + "input": 25, + "output": "Normal" + }, + { + "input": 26, + "output": "Off Inactive" + }, + { + "input": 27, + "output": "Open" + }, + { + "input": 28, + "output": "PLC Ready To Run" + }, + { + "input": 29, + "output": "Package Release Pressed" + }, + { + "input": 30, + "output": "Power Branch Was Faulted" + }, + { + "input": 31, + "output": "Pressed" + }, + { + "input": 32, + "output": "Ready To Receive" + }, + { + "input": 33, + "output": "Running" + }, + { + "input": 34, + "output": "Started" + }, + { + "input": 35, + "output": "Stopped" + }, + { + "input": 36, + "output": "System Started" + }, + { + "input": 37, + "output": "Unknown" + }, + { + "input": 38, + "output": "VFD Fault" + }, + { + "input": 39, + "output": "Conveyor Running In Power Saving Mode" + }, + { + "input": 40, + "output": "Conveyor Jogging In Maintenance Mode" + }, + { + "input": 41, + "output": "VFD Reset Required" + }, + { + "input": 42, + "output": "Jam Reset Push Button Pressed" + }, + { + "input": 43, + "output": "Start Push Button Pressed" + }, + { + "input": 44, + "output": "Stop Push Button Pressed" + }, + { + "input": 45, + "output": "No Container" + }, + { + "input": 46, + "output": "Ready To Be Enabled" + }, + { + "input": 47, + "output": "Half Full" + }, + { + "input": 48, + "output": "Enabled" + }, + { + "input": 49, + "output": "Tipper Faulted" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "tag" + }, + "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.color" + }, + "enabled": false, + "type": "property" + } + } + }, + "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": "#C4C4C4" + }, + "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" + }, + "viewBox": "0 0 29.22 29.22" + }, + "type": "ia.shapes.svg" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\t#create tags lists for the device\n\tprops \u003d self.view.params.tagProps\n\ttags_table_dataset \u003d autStand.devices.getAllTags(self, props[0])\n\tsystem.perspective.openDock(\u0027Docked-East-Device\u0027,params\u003d{\u0027tagProps\u0027:props, \"tags\":tags_table_dataset})" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "root", + "tooltip": { + "enabled": true, + "location": "top-left", + "style": {} + } + }, + "propConfig": { + "meta.tooltip.text": { + "binding": { + "config": { + "expression": "if(\n {view.custom.state} !\u003d \"Closed\",\n \"Source Id: \" + {view.params.tagProps[0]} + \", Priority: \" + {view.custom.priority} + \", State: \" + {view.custom.state},\n \"Device Disconnected\"\n)\n" + }, + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "path": "session.custom.alarm_filter.show_camera_jams" + }, + "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/01aa28992a648bb2ea965ac62febc314affc4de069fbfaae9ec9a0e7abdb699f b/.resources/e123ff5c7531faf10631d70e96c68c71d47ba3bff383ee4fc61007e66b207989 similarity index 96% rename from .resources/01aa28992a648bb2ea965ac62febc314affc4de069fbfaae9ec9a0e7abdb699f rename to .resources/e123ff5c7531faf10631d70e96c68c71d47ba3bff383ee4fc61007e66b207989 index 5b867cbf..e1916e97 100644 --- a/.resources/01aa28992a648bb2ea965ac62febc314affc4de069fbfaae9ec9a0e7abdb699f +++ b/.resources/e123ff5c7531faf10631d70e96c68c71d47ba3bff383ee4fc61007e66b207989 @@ -1,13 +1,13 @@ { "custom": { + "FIO": true, "color": "#C2C2C2", "priority": "No Active Alarms", "state": "Closed" }, "params": { - "FIO": false, "tagProps": [ - "/system/mcm01/test", + "System/MCM01/FIO/PDP01_FIOM1", "value", "value", "value", @@ -20,6 +20,21 @@ ] }, "propConfig": { + "custom.FIO": { + "binding": { + "config": { + "path": "view.params.tagProps[0]" + }, + "transforms": [ + { + "code": "\treturn value.split(\"_\")[-1].startswith(\"FIO\")", + "type": "script" + } + ], + "type": "property" + }, + "persistent": true + }, "custom.color": { "binding": { "config": { @@ -415,10 +430,6 @@ }, "persistent": true }, - "params.FIO": { - "paramDirection": "input", - "persistent": true - }, "params.tagProps": { "paramDirection": "input", "persistent": true @@ -452,7 +463,7 @@ "props.elements[2].elements[0].text": { "binding": { "config": { - "expression": "if({view.params.FIO}, \"FIO\", \"SIO\")" + "expression": "if({view.custom.FIO}, \"FIO\", \"SIO\")" }, "type": "expr" } diff --git a/.resources/e95740d570a156213561dfed5003323fb1bd7ac6b17388562db63f2022901561 b/.resources/e95740d570a156213561dfed5003323fb1bd7ac6b17388562db63f2022901561 deleted file mode 100644 index cea6da9c..00000000 Binary files a/.resources/e95740d570a156213561dfed5003323fb1bd7ac6b17388562db63f2022901561 and /dev/null differ diff --git a/.resources/eae4dfd9f4e6ad9210d5f3b46951e027615bb9111c1d3d072f6161a744690a94 b/.resources/eae4dfd9f4e6ad9210d5f3b46951e027615bb9111c1d3d072f6161a744690a94 new file mode 100644 index 00000000..de917bf0 Binary files /dev/null and b/.resources/eae4dfd9f4e6ad9210d5f3b46951e027615bb9111c1d3d072f6161a744690a94 differ diff --git a/.resources/ed2386d95119a75d4cd7cf787f419edfd8592d8963037d37b51ba2f312c390bb b/.resources/ed2386d95119a75d4cd7cf787f419edfd8592d8963037d37b51ba2f312c390bb new file mode 100644 index 00000000..b73c1ff3 Binary files /dev/null and b/.resources/ed2386d95119a75d4cd7cf787f419edfd8592d8963037d37b51ba2f312c390bb differ diff --git a/.resources/ed5b678bd3010c8600fe1b67da6189fe9c06f288eb2271c8b7486c07f4e7fa81 b/.resources/ed5b678bd3010c8600fe1b67da6189fe9c06f288eb2271c8b7486c07f4e7fa81 deleted file mode 100644 index 696bbfab..00000000 Binary files a/.resources/ed5b678bd3010c8600fe1b67da6189fe9c06f288eb2271c8b7486c07f4e7fa81 and /dev/null differ diff --git a/.resources/f4cb9d3eecff4cbc68445f5d7583143dd1d919711020b3b5155be0bd38787c81 b/.resources/f4cb9d3eecff4cbc68445f5d7583143dd1d919711020b3b5155be0bd38787c81 new file mode 100644 index 00000000..89ddbb88 Binary files /dev/null and b/.resources/f4cb9d3eecff4cbc68445f5d7583143dd1d919711020b3b5155be0bd38787c81 differ 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 8083d298..5089af6b 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-15T11:56:39Z" + "timestamp": "2025-09-15T13:53:59Z" }, - "lastModificationSignature": "c1649548a986b1d40973d4c3f3d2b8aabd86b82300806ceeea54899f8c08a501" + "lastModificationSignature": "81a7a867db771951fb0ea320d555412015aa8d0891e084dc3d9e82568d75a537" } } \ 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 5382c7a4..89ddbb88 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/Detailed_Views/MCM01-FLUID INBOUND/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM01-FLUID INBOUND/view.json index 36dd682a..3b85641d 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM01-FLUID INBOUND/view.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM01-FLUID INBOUND/view.json @@ -1221,10 +1221,10 @@ "name": "UL15_1_TPE1" }, "position": { - "height": 0.0231, - "width": 0.0255, - "x": 0.0262, - "y": 0.3945 + "height": 0.0185, + "width": 0.0286, + "x": 0.0257, + "y": 0.3963 }, "props": { "loading": { @@ -1242,15 +1242,12 @@ "value", "value", "value" - ], - "width": "value" + ] }, "path": "autStand/Equipment/Photoeye_Tracking", "style": { "overflow": "hidden" - }, - "useDefaultViewHeight": true, - "useDefaultViewWidth": true + } }, "type": "ia.display.view" }, @@ -1259,12 +1256,12 @@ "name": "UL15_2_TPE1" }, "position": { - "height": 0.021, + "height": 0.0187, "rotate": { "angle": "60deg" }, - "width": 0.0394, - "x": 0.0336, + "width": 0.0286, + "x": 0.04, "y": 0.3397 }, "props": { @@ -1553,9 +1550,7 @@ "path": "autStand/Equipment/Photoeye_Tracking", "style": { "overflow": "hidden" - }, - "useDefaultViewHeight": true, - "useDefaultViewWidth": true + } }, "type": "ia.display.view" }, @@ -1569,7 +1564,7 @@ "angle": "90deg" }, "width": 0.0286, - "x": 0.2997, + "x": 0.2987, "y": 0.2779 }, "props": { @@ -1590,9 +1585,7 @@ "path": "autStand/Equipment/Photoeye_Tracking", "style": { "overflow": "hidden" - }, - "useDefaultViewHeight": true, - "useDefaultViewWidth": true + } }, "type": "ia.display.view" }, diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM02-NC SORTER/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM02-NC SORTER/resource.json index 1e646005..a66ed212 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM02-NC SORTER/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM02-NC SORTER/resource.json @@ -10,8 +10,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-09-15T11:56:20Z" + "timestamp": "2025-09-15T12:02:09Z" }, - "lastModificationSignature": "188ee7008a302fdde7a25779773a75f1fc470d78eeb8140ebc260857183835af" + "lastModificationSignature": "2b1567b7015ef37235c60c5986a18bfab06730e798bacd15d9c8d17f4298e538" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM02-NC SORTER/thumbnail.png b/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM02-NC SORTER/thumbnail.png index 696bbfab..de917bf0 100644 Binary files a/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM02-NC SORTER/thumbnail.png and b/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM02-NC SORTER/thumbnail.png differ diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Camera/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Camera/resource.json index 4692fd1e..ccc6a1fe 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Camera/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Camera/resource.json @@ -10,8 +10,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-09-15T07:56:42Z" + "timestamp": "2025-09-15T13:57:33Z" }, - "lastModificationSignature": "d50b501f54e6370e9517ba722e373b646d9def8fd4a3ff45e354341e614e391d" + "lastModificationSignature": "e93048daf1aba987643002f45344dffe13b2a6cbe4815b4056006e05a7f8e2a1" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Camera/thumbnail.png b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Camera/thumbnail.png index 8a79cd6f..40033207 100644 Binary files a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Camera/thumbnail.png and b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Camera/thumbnail.png differ diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Camera/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Camera/view.json index 43418a42..7ca9a85a 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Camera/view.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Camera/view.json @@ -1,9 +1,8 @@ { "custom": { - "disconnected": false, - "priority": 0, - "state": 0, - "state_string": "Unknown" + "color": "value", + "priority": "No Active Alarms", + "state": "Closed" }, "params": { "tagProps": [ @@ -20,21 +19,117 @@ ] }, "propConfig": { - "custom.disconnected": { + "custom.color": { "binding": { "config": { "fallbackDelay": 2.5, "mode": "indirect", "references": { - "fc": "{session.custom.fc}", - "plc": "{view.custom.plc}" + "0": "{view.params.tagProps[0]}", + "fc": "{session.custom.fc}" }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{plc}/DCN" + "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Color" }, "transforms": [ { - "expression": "if(isNull({value}), False, {value})", + "expression": "coalesce({value},0)", "type": "expression" + }, + { + "fallback": "#000000", + "inputType": "scalar", + "mappings": [ + { + "input": 0, + "output": "#C2C2C2" + }, + { + "input": 1, + "output": "#FF0000" + }, + { + "input": 2, + "output": "#FFA500" + }, + { + "input": 3, + "output": "#0008FF" + }, + { + "input": 4, + "output": "#00FF00" + }, + { + "input": 5, + "output": "#FFF700" + }, + { + "input": 6, + "output": "#87CEEB" + }, + { + "input": 7, + "output": "#90EE90" + }, + { + "input": 8, + "output": "#964B00" + }, + { + "input": 9, + "output": "#FFFFFF" + }, + { + "input": 10, + "output": "#000000" + }, + { + "input": 11, + "output": "#8B0000" + }, + { + "input": 12, + "output": "#808080" + }, + { + "input": 13, + "output": "#8B8000" + }, + { + "input": 14, + "output": "#006400" + }, + { + "input": 15, + "output": "#FFFFC5" + }, + { + "input": 16, + "output": "#00008B" + }, + { + "input": 17, + "output": "#FF7276" + }, + { + "input": 18, + "output": "#556B2F" + }, + { + "input": 19, + "output": "#B43434" + }, + { + "input": 20, + "output": "#4682B4" + }, + { + "input": 21, + "output": "#FFD700" + } + ], + "outputType": "color", + "type": "map" } ], "type": "tag" @@ -44,35 +139,49 @@ "custom.priority": { "binding": { "config": { - "path": "view.custom.state" + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "0": "{view.params.tagProps[0]}", + "fc": "{session.custom.fc}" + }, + "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Priority" }, "transforms": [ { - "fallback": 0, + "expression": "coalesce({value},0)", + "type": "expression" + }, + { + "fallback": null, "inputType": "scalar", "mappings": [ + { + "input": 0, + "output": "No Active Alarms" + }, { "input": 1, - "output": 4 + "output": "High" }, { "input": 2, - "output": 3 + "output": "Medium" }, { "input": 3, - "output": 2 + "output": "Low" }, { "input": 4, - "output": 1 + "output": "Diagnostic" } ], "outputType": "scalar", "type": "map" } ], - "type": "property" + "type": "tag" }, "persistent": true }, @@ -85,27 +194,226 @@ "0": "{view.params.tagProps[0]}", "fc": "{session.custom.fc}" }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE" + "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/State" }, "transforms": [ { "expression": "coalesce({value},0)", "type": "expression" + }, + { + "fallback": "Unknown", + "inputType": "scalar", + "mappings": [ + { + "input": 0, + "output": "Closed" + }, + { + "input": 1, + "output": "Actuated" + }, + { + "input": 2, + "output": "Communication Faulted" + }, + { + "input": 3, + "output": "Conveyor Running In Maintenance Mode" + }, + { + "input": 4, + "output": "Disabled" + }, + { + "input": 5, + "output": "Disconnected" + }, + { + "input": 6, + "output": "Stopped" + }, + { + "input": 7, + "output": "Enabled Not Running" + }, + { + "input": 8, + "output": "Encoder Fault" + }, + { + "input": 9, + "output": "Energy Management" + }, + { + "input": 10, + "output": "ESTOP Was Actuated" + }, + { + "input": 11, + "output": "EStopped" + }, + { + "input": 12, + "output": "EStopped Locally" + }, + { + "input": 13, + "output": "Extended Faulted" + }, + { + "input": 14, + "output": "Full" + }, + { + "input": 15, + "output": "Gaylord Start Pressed" + }, + { + "input": 16, + "output": "Jam Fault" + }, + { + "input": 17, + "output": "Jammed" + }, + { + "input": 18, + "output": "Loading Allowed" + }, + { + "input": 19, + "output": "Loading Not Allowed" + }, + { + "input": 20, + "output": "Low Air Pressure Fault Was Present" + }, + { + "input": 21, + "output": "Maintenance Mode" + }, + { + "input": 22, + "output": "Conveyor Stopped In Maintenance Mode" + }, + { + "input": 23, + "output": "Motor Faulted" + }, + { + "input": 24, + "output": "Motor Was Faulted" + }, + { + "input": 25, + "output": "Normal" + }, + { + "input": 26, + "output": "Off Inactive" + }, + { + "input": 27, + "output": "Open" + }, + { + "input": 28, + "output": "PLC Ready To Run" + }, + { + "input": 29, + "output": "Package Release Pressed" + }, + { + "input": 30, + "output": "Power Branch Was Faulted" + }, + { + "input": 31, + "output": "Pressed" + }, + { + "input": 32, + "output": "Ready To Receive" + }, + { + "input": 33, + "output": "Running" + }, + { + "input": 34, + "output": "Started" + }, + { + "input": 35, + "output": "Stopped" + }, + { + "input": 36, + "output": "System Started" + }, + { + "input": 37, + "output": "Unknown" + }, + { + "input": 38, + "output": "VFD Fault" + }, + { + "input": 39, + "output": "Conveyor Running In Power Saving Mode" + }, + { + "input": 40, + "output": "Conveyor Jogging In Maintenance Mode" + }, + { + "input": 41, + "output": "VFD Reset Required" + }, + { + "input": 42, + "output": "Jam Reset Push Button Pressed" + }, + { + "input": 43, + "output": "Start Push Button Pressed" + }, + { + "input": 44, + "output": "Stop Push Button Pressed" + }, + { + "input": 45, + "output": "No Container" + }, + { + "input": 46, + "output": "Ready To Be Enabled" + }, + { + "input": 47, + "output": "Half Full" + }, + { + "input": 48, + "output": "Enabled" + }, + { + "input": 49, + "output": "Tipper Faulted" + } + ], + "outputType": "scalar", + "type": "map" } ], "type": "tag" }, "persistent": true }, - "custom.state_string": { - "binding": { - "config": { - "expression": "case({view.custom.state},\r\n1, \"Faulted\",\r\n2, \"Stopped\",\r\n3, \"Running\",\r\n\"Unknown\")" - }, - "type": "expr" - }, - "persistent": true - }, "params.tagProps": { "paramDirection": "inout", "persistent": true @@ -131,19 +439,9 @@ "props.elements[1].elements[0].fill.paint": { "binding": { "config": { - "path": "view.custom.state" + "path": "view.custom.color" }, "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" } } @@ -160,7 +458,7 @@ { "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" + "paint": "#C4C4C4" }, "id": "path2823", "name": "path2823", @@ -240,72 +538,10 @@ } }, "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\", State: \" + {view.custom.state_string},\n\t\"Source Id: \" + {view.params.tagProps[0]} +\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\")" + "expression": "if(\n {view.custom.state} !\u003d \"Closed\",\n \"Source Id: \" + {view.params.tagProps[0]} + \", Priority: \" + {view.custom.priority} + \", State: \" + {view.custom.state},\n \"Device Disconnected\"\n)\n" }, "type": "expr" } @@ -317,32 +553,6 @@ }, "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": { diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/EPC/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/EPC/resource.json index a9b2149d..9b382211 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/EPC/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/EPC/resource.json @@ -10,8 +10,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-09-15T08:07:01Z" + "timestamp": "2025-09-15T12:07:03Z" }, - "lastModificationSignature": "43e3f626b6c20dde448d3309c5d49aa118a0bd5d98674707b96f44bd61c7761c" + "lastModificationSignature": "518c87ee2027cea44f3edb5f788df944ed6182525fbd8d19b01c4373e7821771" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/EPC/thumbnail.png b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/EPC/thumbnail.png index c40a764c..c3dac6a7 100644 Binary files a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/EPC/thumbnail.png and b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/EPC/thumbnail.png differ diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/IO_Block/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/IO_Block/resource.json index f2beae5f..a206b9ba 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/IO_Block/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/IO_Block/resource.json @@ -10,8 +10,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-09-15T07:52:45Z" + "timestamp": "2025-09-15T13:47:56Z" }, - "lastModificationSignature": "102de4a32b1a50911297a5974535021522873add0c982eb5531c04c545079701" + "lastModificationSignature": "fda517ea800d9f23f61f66f817b9998fe8a30ae7e546673de087e8677192d95f" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/IO_Block/thumbnail.png b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/IO_Block/thumbnail.png index 0d1d62e4..b73c1ff3 100644 Binary files a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/IO_Block/thumbnail.png and b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/IO_Block/thumbnail.png differ diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/IO_Block/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/IO_Block/view.json index 5b867cbf..e1916e97 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/IO_Block/view.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/IO_Block/view.json @@ -1,13 +1,13 @@ { "custom": { + "FIO": true, "color": "#C2C2C2", "priority": "No Active Alarms", "state": "Closed" }, "params": { - "FIO": false, "tagProps": [ - "/system/mcm01/test", + "System/MCM01/FIO/PDP01_FIOM1", "value", "value", "value", @@ -20,6 +20,21 @@ ] }, "propConfig": { + "custom.FIO": { + "binding": { + "config": { + "path": "view.params.tagProps[0]" + }, + "transforms": [ + { + "code": "\treturn value.split(\"_\")[-1].startswith(\"FIO\")", + "type": "script" + } + ], + "type": "property" + }, + "persistent": true + }, "custom.color": { "binding": { "config": { @@ -415,10 +430,6 @@ }, "persistent": true }, - "params.FIO": { - "paramDirection": "input", - "persistent": true - }, "params.tagProps": { "paramDirection": "input", "persistent": true @@ -452,7 +463,7 @@ "props.elements[2].elements[0].text": { "binding": { "config": { - "expression": "if({view.params.FIO}, \"FIO\", \"SIO\")" + "expression": "if({view.custom.FIO}, \"FIO\", \"SIO\")" }, "type": "expr" } 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 fdf03c21..2b245c0b 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-12T15:47:25Z" + "timestamp": "2025-09-15T13:51:05Z" }, - "lastModificationSignature": "acc4b137708a157f0326cb0e7e51fe7066f548a187afefada5ae7accbf4aeb82" + "lastModificationSignature": "4e34cd644bc7b4e3d1cdae2d12257566f0bbd89f8d52bce3b946fddbe3014795" } } \ 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 8b7382ca..d9573ed5 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 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 index 071cc5ef..09aa764b 100644 --- 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 @@ -3,7 +3,8 @@ "PLC": "MCM01", "device": "UL14_1_SIO1", "showTags": true, - "state": "Closed" + "state": "Closed", + "view": "autStand/Equipment/IO_Block" }, "params": { "tagProps": [ @@ -49,6 +50,10 @@ ], "type": "property" }, + "onChange": { + "enabled": null, + "script": "\tname \u003d self.view.custom.device\n\tdevice \u003d name.split(\"_\")[-1]\n\t\n\t# Use a list of tuples to maintain order - longer matches first\n\tdevice_mapping \u003d [\n\t # Encoder variations (check these first before \u0027EN\u0027)\n\t (\u0027ENSH\u0027, \u0027Encoder\u0027),\n\t (\u0027ENW\u0027, \u0027Encoder\u0027),\n\t \n\t # Photoeye variations\n\t (\u0027LRPE\u0027, \u0027Photoeye_Tracking\u0027),\n\t (\u0027TPE\u0027, \u0027Photoeye_Tracking\u0027),\n\t \n\t # IO_Block variations\n\t (\u0027SIO\u0027, \u0027IO_Block\u0027),\n\t (\u0027FIO\u0027, \u0027IO_Block\u0027),\n\t \n\t # Button variations (check after encoder)\n\t (\u0027EN\u0027, \u0027Button\u0027),\n\t (\u0027JR\u0027, \u0027Button\u0027),\n\t \n\t # Photoeye (shorter version after longer ones)\n\t (\u0027PE\u0027, \u0027Photoeye_Tracking\u0027),\n\t \n\t # Other devices variations \n\t (\u0027DPM\u0027, \u0027DPM\u0027),\n\t (\u0027EPC\u0027, \u0027EPC\u0027),\n\t (\u0027MCM\u0027, \u0027MCM\u0027),\n\t (\u0027PRX\u0027, \u0027ProxSensor\u0027),\n\t (\u0027SS\u0027, \u0027SS_Button\u0027),\n\t (\u0027SOL\u0027, \u0027Solenoid\u0027),\n\t \n\t # Beacon Variations (single letters last)\n\t (\u0027B\u0027, \u0027Beacon\u0027),\n\t (\u0027G\u0027, \u0027Beacon\u0027),\n\t (\u0027R\u0027, \u0027Beacon\u0027),\n\t (\u0027H\u0027, \u0027Beacon\u0027),\n\t (\u0027A\u0027, \u0027Beacon\u0027), \n\t]\n\t\n\tview \u003d \"\"\n\t\n\tfor key, value in device_mapping:\n\t if device.startswith(key):\n\t\t\tview \u003d value\n\t\t\tself.custom.view \u003d \"autStand/Equipment/\" + view\n\t\t\treturn \n\t\n\tself.custom.view \u003d \"autStand/Equipment/Camera\"" + }, "persistent": true }, "custom.showTags": { @@ -293,6 +298,9 @@ }, "persistent": true }, + "custom.view": { + "persistent": true + }, "params.tagProps": { "paramDirection": "input", "persistent": true @@ -832,11 +840,23 @@ "x": 37.33, "y": 23 }, - "props": { - "params": { - "name": "Red" + "propConfig": { + "props.params.tagProps": { + "binding": { + "config": { + "path": "view.params.tagProps" + }, + "type": "property" + } }, - "path": "autStand/Equipment/Beacon" + "props.path": { + "binding": { + "config": { + "path": "view.custom.view" + }, + "type": "property" + } + } }, "type": "ia.display.view" }, diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-VFD/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-VFD/resource.json index 1e6d5e37..be5fec1a 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-VFD/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-VFD/resource.json @@ -10,8 +10,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-09-13T12:46:35Z" + "timestamp": "2025-09-15T13:33:59Z" }, - "lastModificationSignature": "1c6b4c478b8646d9a8b643ab6298d6e1ed8a9f8ac8f99076f192424bbd773a0d" + "lastModificationSignature": "705eee9220b4fffa6b94445ce4dca9e3803d54df852a83dfcd7a5913f9b4c18a" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-VFD/thumbnail.png b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-VFD/thumbnail.png index cea6da9c..cf2e6252 100644 Binary files a/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-VFD/thumbnail.png and b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-VFD/thumbnail.png differ diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-VFD/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-VFD/view.json index 61e35525..db4c9b85 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-VFD/view.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/PopUp-Views/Controller-Equipment/Information-Docked-East-VFD/view.json @@ -2,7 +2,7 @@ "custom": { "PLC": "MCM01", "device": "UL15_1", - "maintance_mode": true, + "maintance_mode": false, "showTags": true, "state": "Actuated" },