From a24d5ca7483f83aea3766efa2cc842f8c9c2dc0a Mon Sep 17 00:00:00 2001 From: Salijoghli <107577102+Salijoghli@users.noreply.github.com> Date: Wed, 1 Oct 2025 16:31:09 +0400 Subject: [PATCH] updated MCM cards and command to reflect the changes --- .gitignore | 5 + ...7b21283fae39a000f57b9f3ab975b48b9c765f08e3 | Bin 13430 -> 0 bytes ...cf44fd0769f0b58f80ad2cd422908b773eee24826f | 237 - ...59da264f2dd14f9832447607fda4b375f6812bfa79 | 306 - ...1f61339f37fec8ad8a3d5f4b3ac6770edc1669cd17 | Bin 126682 -> 0 bytes ...ced5e8afa762fd438afda1afdeec4d711b13eb78fc | 613 -- ...28797b00bcaf721772b8b71cf9902b57b7fd7f8c03 | 599 -- ...e3276fde6337f097d0da2c7216ab2dd1d2e51b8047 | 988 ---- ...cce5f366de68cb9ac9f03e63878ea3cce6bfbc2012 | 5118 ----------------- ...b8114e1fd8ccc502c2f1e187b06efedc6804ebe75b | Bin 63203 -> 0 bytes ...c57fd665afa9f5eeb673fe8b41f9bd1b49188a3378 | 947 --- ...42a621abd4e12b2f169c2e92626d4102a3b29b3c8b | 387 -- ...c780759f18cd95786c304bb827ec8aa21c098c4fb2 | 294 - ...60b0d0dd42d9188a45e59d2aeb33e45c7f6cff38b7 | Bin 321 -> 0 bytes ...51ff0d7b7226ebc477d39157377d2df7aef03e5216 | 228 - ...fbeea677a067409ca1f8cbe641cce53b690dcec28d | Bin 20094 -> 0 bytes ...acc514fb28b0ae7bb9f950293b84cd2888b06f3915 | Bin 60015 -> 0 bytes ...12fba78920e73bf22f59ada6a321a71975176763cc | Bin 23522 -> 0 bytes ...5d25fcb1871f866762c4e2f073f52b7052e421d7bb | 332 -- ...e825325afa8f0550f8f4253f11df4d80f311a5fb83 | 623 -- ...69a800419da11ee8a81b1cca9c1c207d2fedeff04f | 794 --- ...5bc76e4f726e1119c00ea8685ae2605eff929d25ec | 948 --- ...f092938eb073b5e6dd8a14370c38e3625606f06921 | 191 - ...71abae9c0acb2b169319b24653ed3e825600c7d16f | 1199 ---- ...30a6e7f3561ef3730b586453e1fac10e9a76ea599a | 1113 ---- ...653231dd5d3373a49df1c7a56a04f7505e4614da63 | 3322 ----------- ...b39ea929f470753e688d925cda685fcb095db4e937 | Bin 896 -> 0 bytes ...1e4d818249f1350b7db3431b99a8b7058523ba3f26 | Bin 18043 -> 0 bytes ...55925561b72440f3a1b8f8ac33ec04b07e7b62ce0e | Bin 19520 -> 0 bytes ...3ef79d65da7963680a02ba12aff5bea53ae490c929 | 294 - ...cf0a5e0bedfe3a9cebe2e703ba155d2a978d0b97b7 | 3441 ----------- ...9dd37133de0895e1957a7c5369c76c8492aa393831 | 1308 ----- ...d8c9157d3ba6a2fc9d8e7a7831d503107ebbe32023 | 598 -- ...9248a04725de557c55614768f155f8539b815ff0bd | 625 -- ...cb4cdc830627a3988dda57c37c8f24c03f93e0e99d | 597 -- ...a2e4a19a43b1b37a83abc1d21319a4432031d1a487 | 737 --- ...9d0c5bb3b960431cfc37118faf08c689b8f3b70b67 | 2019 ------- ...f10eb1d793b1815f428d782ec5768b69fb1098154b | 230 - ...ef7135017349d5dcd7a330a4ff70d65ce2872e683b | 1928 ------- ...c3995381f3e14349f94fcdc81b3a2d15d7b0f4d7f4 | Bin 985 -> 0 bytes ...49e48ad0070b51c12c27725fe7d6a9adf7e62ee334 | Bin 28426 -> 0 bytes ...753b39546857ea23f5be79cf54da0052935e250e7d | 653 --- ...17472c7256403bd77d23141a4cc84dc807c038566d | Bin 4390 -> 0 bytes ...58c28f764f9a89d58de2807e6e9c311eda1bbaf251 | Bin 40970 -> 0 bytes ...1b865337ec5556a57aafb8bc40d29834e8c6f8e0ae | Bin 27928 -> 0 bytes ...08143395f74fc1d268d081d8a53528fac1ff3fbf69 | 4667 --------------- ...389b1cbd65fa01685f563acacdcb230fab6bc387ed | 617 -- ...5819f32b80d6f7c6a5bb445848ce44355dcd1f31b1 | 1 - ...b6dde5b4c15fc27029700c4d570a54b53380b75e23 | 591 -- ...61c602587157dbc7a19dc46648440264308431e7e3 | Bin 10784 -> 0 bytes ...37e91dd2a81d9468bd47a3705ca2dee7666ae04c2c | 700 --- ...7ab7afa73cf09fd33347a94a616c265f8502ca44dd | 809 --- ...a9bd6524683df4c406a9344c01062212d80b2356fe | 256 - ...9e66a24d323bc074285084eeeec45570f45e7c7dfe | 1864 ------ ...9c251db6514835c33cef6d11cce79e679bde87d9e4 | 650 --- ...c9000aebd58d434ca4d6961416d49ef0e7a6e69608 | 152 - ...ea7b7a5114de208e24928321bb1dcaf837c0b09065 | Bin 69052 -> 0 bytes ...b223760fd8f795d53f436a75312d8535926d4d514e | 1206 ---- ...2636d529350733b1f462ab8b1364de146e0fb506b2 | 956 --- ...50f7264d3c33fec8318737b27013dadf7f8564633b | Bin 63118 -> 0 bytes ...928589acaffb80e3e1b693c936042bbc78b7c3c9bb | Bin 67040 -> 0 bytes ...aec745561ec63e149d7137017994130778962781b6 | Bin 1660 -> 0 bytes ...75d18d613b81aa89a80a86447d98eda0fa0fe7c279 | Bin 591 -> 0 bytes .../CommandControlActions/resource.json | 6 +- .../CommandControlAlarms/resource.json | 4 +- .../CommandControlAlarms/view.json | 19 +- .../CommandControlStatus/resource.json | 4 +- .../CommandControlStatus/view.json | 13 +- .../ControllerStatus/resource.json | 4 +- .../ControllerStatus/thumbnail.png | Bin 9218 -> 7584 bytes .../ControllerStatus/view.json | 9 +- .../autStand/Overview/Home/resource.json | 4 +- .../autStand/Overview/Home/thumbnail.png | Bin 42633 -> 46200 bytes .../views/autStand/Overview/Home/view.json | 8 +- 74 files changed, 45 insertions(+), 43169 deletions(-) create mode 100644 .gitignore delete mode 100644 .resources/01363de8e6f6a4d008f93b7b21283fae39a000f57b9f3ab975b48b9c765f08e3 delete mode 100644 .resources/03b59282e77e1c9f22d81fcf44fd0769f0b58f80ad2cd422908b773eee24826f delete mode 100644 .resources/07fc588b7701026c23f9a359da264f2dd14f9832447607fda4b375f6812bfa79 delete mode 100644 .resources/0b708e4be5c66717d433c01f61339f37fec8ad8a3d5f4b3ac6770edc1669cd17 delete mode 100644 .resources/0dd7b472a8b00cae346e9cced5e8afa762fd438afda1afdeec4d711b13eb78fc delete mode 100644 .resources/199de5fb9f50eef3f8810a28797b00bcaf721772b8b71cf9902b57b7fd7f8c03 delete mode 100644 .resources/202359fc0e28b3a9c450c6e3276fde6337f097d0da2c7216ab2dd1d2e51b8047 delete mode 100644 .resources/207c4ed9cbb59080889522cce5f366de68cb9ac9f03e63878ea3cce6bfbc2012 delete mode 100644 .resources/26a34e8edbd6a405250bfdb8114e1fd8ccc502c2f1e187b06efedc6804ebe75b delete mode 100644 .resources/29a8a7a5b6b5d140516ccec57fd665afa9f5eeb673fe8b41f9bd1b49188a3378 delete mode 100644 .resources/2a2fe410ae0d579f86b15642a621abd4e12b2f169c2e92626d4102a3b29b3c8b delete mode 100644 .resources/31aee7f3b5f7f48ed5d701c780759f18cd95786c304bb827ec8aa21c098c4fb2 delete mode 100644 .resources/31f6161059e3017af0de7760b0d0dd42d9188a45e59d2aeb33e45c7f6cff38b7 delete mode 100644 .resources/34a2e32898c97d572d0cd651ff0d7b7226ebc477d39157377d2df7aef03e5216 delete mode 100644 .resources/37eb49f85f0c4b6d3eceb5fbeea677a067409ca1f8cbe641cce53b690dcec28d delete mode 100644 .resources/394352a89d10099f88a45facc514fb28b0ae7bb9f950293b84cd2888b06f3915 delete mode 100644 .resources/3fce47b63941b0a6d52ed712fba78920e73bf22f59ada6a321a71975176763cc delete mode 100644 .resources/465a21813c133644e9e6585d25fcb1871f866762c4e2f073f52b7052e421d7bb delete mode 100644 .resources/47943a7f62ec25008535e5e825325afa8f0550f8f4253f11df4d80f311a5fb83 delete mode 100644 .resources/48cf09c9bfc299d87dec2069a800419da11ee8a81b1cca9c1c207d2fedeff04f delete mode 100644 .resources/49506bdc48ceb48c2053135bc76e4f726e1119c00ea8685ae2605eff929d25ec delete mode 100644 .resources/4bb2cdf3b0639655a05c49f092938eb073b5e6dd8a14370c38e3625606f06921 delete mode 100644 .resources/4d52085fd9941b25472e1971abae9c0acb2b169319b24653ed3e825600c7d16f delete mode 100644 .resources/4e5625e2a4ee3221a1eaec30a6e7f3561ef3730b586453e1fac10e9a76ea599a delete mode 100644 .resources/4ec451d6a66ded836155e7653231dd5d3373a49df1c7a56a04f7505e4614da63 delete mode 100644 .resources/575748546b46c3d57950abb39ea929f470753e688d925cda685fcb095db4e937 delete mode 100644 .resources/588e50ac7aa69a65fa05611e4d818249f1350b7db3431b99a8b7058523ba3f26 delete mode 100644 .resources/594de42af48e5a63b6494255925561b72440f3a1b8f8ac33ec04b07e7b62ce0e delete mode 100644 .resources/609e1a5b9c670287496e6f3ef79d65da7963680a02ba12aff5bea53ae490c929 delete mode 100644 .resources/6ad59b7bab0683798f68dccf0a5e0bedfe3a9cebe2e703ba155d2a978d0b97b7 delete mode 100644 .resources/6eec253ca7c0af7d9395b99dd37133de0895e1957a7c5369c76c8492aa393831 delete mode 100644 .resources/700d62df83feae810c5cb5d8c9157d3ba6a2fc9d8e7a7831d503107ebbe32023 delete mode 100644 .resources/7192244cdca7db990257f49248a04725de557c55614768f155f8539b815ff0bd delete mode 100644 .resources/72f74232e5a7185032e536cb4cdc830627a3988dda57c37c8f24c03f93e0e99d delete mode 100644 .resources/73da999f49013aba159135a2e4a19a43b1b37a83abc1d21319a4432031d1a487 delete mode 100644 .resources/74e67bf28c6765d417b0e69d0c5bb3b960431cfc37118faf08c689b8f3b70b67 delete mode 100644 .resources/79769ab7cf3272d780160cf10eb1d793b1815f428d782ec5768b69fb1098154b delete mode 100644 .resources/7d5aa66c024182eecf59c4ef7135017349d5dcd7a330a4ff70d65ce2872e683b delete mode 100644 .resources/7f6c388f1336b03dae423dc3995381f3e14349f94fcdc81b3a2d15d7b0f4d7f4 delete mode 100644 .resources/87e2d895b0d0716520f07a49e48ad0070b51c12c27725fe7d6a9adf7e62ee334 delete mode 100644 .resources/8afdda2a780ae3efa32a14753b39546857ea23f5be79cf54da0052935e250e7d delete mode 100644 .resources/8bf172ff65426267039b1117472c7256403bd77d23141a4cc84dc807c038566d delete mode 100644 .resources/8dd0a4b076fdc7af75dee958c28f764f9a89d58de2807e6e9c311eda1bbaf251 delete mode 100644 .resources/932f01fbfdb982d53e4e431b865337ec5556a57aafb8bc40d29834e8c6f8e0ae delete mode 100644 .resources/93e8397024064ec7682f9308143395f74fc1d268d081d8a53528fac1ff3fbf69 delete mode 100644 .resources/a04ac16924c099df9b6edd389b1cbd65fa01685f563acacdcb230fab6bc387ed delete mode 100644 .resources/a1e7abbdbdd31c59ec1f995819f32b80d6f7c6a5bb445848ce44355dcd1f31b1 delete mode 100644 .resources/a512704ace52242d820bd7b6dde5b4c15fc27029700c4d570a54b53380b75e23 delete mode 100644 .resources/a9294388b0299ca5f48ec161c602587157dbc7a19dc46648440264308431e7e3 delete mode 100644 .resources/b58b442540dcc1fb34915137e91dd2a81d9468bd47a3705ca2dee7666ae04c2c delete mode 100644 .resources/b6278f9cc9ef0cff20c16f7ab7afa73cf09fd33347a94a616c265f8502ca44dd delete mode 100644 .resources/c0a3b4508029da8d9a3334a9bd6524683df4c406a9344c01062212d80b2356fe delete mode 100644 .resources/c3fe143eb660b443cb6d239e66a24d323bc074285084eeeec45570f45e7c7dfe delete mode 100644 .resources/c5240ba44c0af2c7fc40af9c251db6514835c33cef6d11cce79e679bde87d9e4 delete mode 100644 .resources/c9c0c6be92f5466c32314ac9000aebd58d434ca4d6961416d49ef0e7a6e69608 delete mode 100644 .resources/d62420d51993c93f7c9728ea7b7a5114de208e24928321bb1dcaf837c0b09065 delete mode 100644 .resources/dcabe955b9dbe475ef32e2b223760fd8f795d53f436a75312d8535926d4d514e delete mode 100644 .resources/ddc5cf82edfe7fe3ce76f82636d529350733b1f462ab8b1364de146e0fb506b2 delete mode 100644 .resources/de1a5ffc0c934d46e6485750f7264d3c33fec8318737b27013dadf7f8564633b delete mode 100644 .resources/eafcf8840cc7e2bcc83034928589acaffb80e3e1b693c936042bbc78b7c3c9bb delete mode 100644 .resources/ec712aeed83accc8330aa4aec745561ec63e149d7137017994130778962781b6 delete mode 100644 .resources/fea40964842c9b1d6f1d8175d18d613b81aa89a80a86447d98eda0fa0fe7c279 diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..598d2e28 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.resources/ +**/resource.json +**/thumbnail.png +com.inductiveautomation.perspective/session-props/props.json +conversion-report.txt diff --git a/.resources/01363de8e6f6a4d008f93b7b21283fae39a000f57b9f3ab975b48b9c765f08e3 b/.resources/01363de8e6f6a4d008f93b7b21283fae39a000f57b9f3ab975b48b9c765f08e3 deleted file mode 100644 index b77f6527a8edb8fe11d48fd2292a25cd2a489ed7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13430 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 A0RR91 diff --git a/.resources/0dd7b472a8b00cae346e9cced5e8afa762fd438afda1afdeec4d711b13eb78fc b/.resources/0dd7b472a8b00cae346e9cced5e8afa762fd438afda1afdeec4d711b13eb78fc deleted file mode 100644 index e26e4b38..00000000 --- a/.resources/0dd7b472a8b00cae346e9cced5e8afa762fd438afda1afdeec4d711b13eb78fc +++ /dev/null @@ -1,613 +0,0 @@ -{ - "custom": { - "PLC_list": [ - "MCM01", - "MCM02", - "MCM03", - "MCM04", - "MCM05" - ], - "color": "#C2C2C2" - }, - "params": { - "tagProps": [ - "System/MCM01/Station/EPC/UL1_4_EPC1", - "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.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},{view.params.forceFaultStatus},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 - }, - "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-EPC\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": "STATUS" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "PB_Light" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "propConfig": { - "props.style.backgroundColor": { - "binding": { - "config": { - "path": "view.custom.color" - }, - "type": "property" - } - } - }, - "props": { - "style": { - "classes": "Text-Styles/Ariel-Bold-12pt", - "paddingLeft": 10 - }, - "textStyle": { - "color": "#000000" - } - }, - "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/199de5fb9f50eef3f8810a28797b00bcaf721772b8b71cf9902b57b7fd7f8c03 b/.resources/199de5fb9f50eef3f8810a28797b00bcaf721772b8b71cf9902b57b7fd7f8c03 deleted file mode 100644 index 1cd6b910..00000000 --- a/.resources/199de5fb9f50eef3f8810a28797b00bcaf721772b8b71cf9902b57b7fd7f8c03 +++ /dev/null @@ -1,599 +0,0 @@ -{ - "custom": { - "color": "#C2C2C2", - "priority": "No Active Alarms", - "state": "Closed" - }, - "params": { - "forceFaultStatus": null, - "tagProps": [ - "System/MCM01/IO_BLOCK/FIO/UL1_3_FIO1", - "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},{view.params.forceFaultStatus},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},{view.params.forceFaultStatus},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},{view.params.forceFaultStatus},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" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - }, - "persistent": true - }, - "params.forceFaultStatus": { - "paramDirection": "input", - "persistent": true - }, - "params.tagProps": { - "paramDirection": "inout", - "persistent": true - }, - "params.tagProps[0]": { - "paramDirection": "input", - "persistent": true - }, - "params.tagProps[1]": { - "paramDirection": "input", - "persistent": true - }, - "params.tagProps[2]": { - "paramDirection": "input", - "persistent": true - }, - "params.tagProps[3]": { - "paramDirection": "input", - "persistent": true - }, - "params.tagProps[4]": { - "paramDirection": "input", - "persistent": true - }, - "params.tagProps[5]": { - "paramDirection": "input", - "persistent": true - }, - "params.tagProps[6]": { - "paramDirection": "input", - "persistent": true - }, - "params.tagProps[7]": { - "paramDirection": "input", - "persistent": true - }, - "params.tagProps[8]": { - "paramDirection": "input", - "persistent": true - }, - "params.tagProps[9]": { - "paramDirection": "input", - "persistent": true - } - }, - "props": { - "defaultSize": { - "height": 40, - "width": 40 - }, - "styles": "value" - }, - "root": { - "children": [ - { - "meta": { - "name": "Icon" - }, - "position": { - "basis": "264px" - }, - "propConfig": { - "props.color": { - "binding": { - "config": { - "expression": "if(\r\n {view.custom.state} \u003d \"Closed\",\r\n \"#000000\",\r\n {view.custom.color}\r\n)\r\n" - }, - "type": "expr" - } - } - }, - "props": { - "path": "material/place", - "style": { - "classes": "State-Styles/State1" - } - }, - "type": "ia.display.icon" - } - ], - "events": { - "dom": { - "onClick": { - "config": { - "script": "\t\tsystem.perspective.openDock(\u0027Docked-East-DS\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" - }, - "scope": "G", - "type": "script" - }, - "onDoubleClick": { - "config": { - "script": "\tsystem.perspective.openDock(\u0027Docked-East-DS\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" - }, - "scope": "G", - "type": "script" - }, - "onMouseEnter": { - "config": { - "script": "\tself.props.style.transform \u003d \"scale(2)\"" - }, - "scope": "G", - "type": "script" - }, - "onMouseLeave": { - "config": { - "script": "\tself.props.style.transform \u003d \"scale(1)\"" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "root", - "text": "", - "tooltip": { - "enabled": true, - "style": {} - } - }, - "propConfig": { - "meta.tooltip.style.classes": { - "binding": { - "config": { - "expression": "{view.custom.priority}" - }, - "transforms": [ - { - "fallback": "Alarms-Styles/NoAlarm", - "inputType": "scalar", - "mappings": [ - { - "input": "High", - "output": "Alarms-Styles/High" - }, - { - "input": "Medium", - "output": "Alarms-Styles/Medium" - }, - { - "input": "Low", - "output": "Alarms-Styles/Low" - }, - { - "input": "Diagnostic", - "output": "Alarms-Styles/Diagnostic" - } - ], - "outputType": "style-list", - "type": "map" - } - ], - "type": "expr" - } - }, - "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_fio" - }, - "type": "property" - } - } - }, - "props": { - "direction": "column", - "style": { - "transform": "scale(1)", - "transition": "transform 100ms linear" - } - }, - "type": "ia.container.flex" - } -} \ No newline at end of file diff --git a/.resources/202359fc0e28b3a9c450c6e3276fde6337f097d0da2c7216ab2dd1d2e51b8047 b/.resources/202359fc0e28b3a9c450c6e3276fde6337f097d0da2c7216ab2dd1d2e51b8047 deleted file mode 100644 index e55355b2..00000000 --- a/.resources/202359fc0e28b3a9c450c6e3276fde6337f097d0da2c7216ab2dd1d2e51b8047 +++ /dev/null @@ -1,988 +0,0 @@ -{ - "custom": { - "PLC_list": [ - "MCM01", - "MCM02", - "MCM03", - "MCM04", - "MCM05" - ], - "start_color": "#C2C2C2", - "stop_color": "#C2C2C2" - }, - "params": { - "tagProps": [ - "System/MCM01/Station/SS_PB/UL3_1_SS1", - "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.start_color": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Start/Color" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},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.stop_color": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Stop/Color" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},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 - }, - "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-SS-BTN\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": "LIGHT" - }, - "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}/Start/Color" - }, - "transforms": [ - { - "expression": "if(isGood({value}),\r\n if({value} \u003d 4, \"ON\", \"OFF\"),\r\n \"UNKNOWN\"\r\n)\r\n", - "type": "expression" - } - ], - "type": "tag" - } - }, - "props.textStyle.color": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#000000", - "inputType": "scalar", - "mappings": [ - { - "input": "ON", - "output": "#008000" - }, - { - "input": "OFF", - "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" - }, - { - "children": [ - { - "children": [ - { - "children": [ - { - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\ttag_name \u003d self.view.params.tagProps[0]\n\ttag_path \u003d \"[\" + self.session.custom.fc+ \"_SCADA_TAG_PROVIDER]\"+tag_name+\"/Start_PB\"\n\tsystem.tag.writeBlocking([tag_path],[True])" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button", - "tooltip": { - "enabled": true - } - }, - "position": { - "basis": "80px", - "grow": 1 - }, - "propConfig": { - "meta.tooltip.text": { - "binding": { - "config": { - "expression": "if({this.props.enabled},{this.props.text} +\u0027 Button\u0027,\"You do not have Maintenance or Administrator role!\")" - }, - "type": "expr" - } - }, - "props.enabled": { - "binding": { - "config": { - "expression": "indexOf({session.props.auth.user.roles}, \"Administrator\") \u003e\u003d 0 || indexOf({session.props.auth.user.roles}, \"Maintenance\") \u003e\u003d 0" - }, - "type": "expr" - } - }, - "props.style.backgroundColor": { - "binding": { - "config": { - "path": "view.custom.start_color" - }, - "type": "property" - } - } - }, - "props": { - "image": { - "icon": { - "path": "material/not_started" - } - }, - "style": { - "classes": "Background-Styles/Controller" - }, - "text": "START" - }, - "type": "ia.input.button" - } - ], - "meta": { - "name": "Start" - }, - "position": { - "basis": "35px" - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel", - "padding": "" - } - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\ttag_name \u003d self.view.params.tagProps[0]\n\ttag_path \u003d \"[\" + self.session.custom.fc+ \"_SCADA_TAG_PROVIDER]\"+tag_name+\"/Stop_PB\"\n\tsystem.tag.writeBlocking([tag_path],[True])" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button", - "tooltip": { - "enabled": true - } - }, - "position": { - "basis": "80px", - "grow": 1 - }, - "propConfig": { - "meta.tooltip.text": { - "binding": { - "config": { - "expression": "if({this.props.enabled},{this.props.text} +\u0027 Button\u0027,\"You do not have Maintenance or Administrator role!\")" - }, - "type": "expr" - } - }, - "props.enabled": { - "binding": { - "config": { - "expression": "indexOf({session.props.auth.user.roles}, \"Administrator\") \u003e\u003d 0 || indexOf({session.props.auth.user.roles}, \"Maintenance\") \u003e\u003d 0" - }, - "type": "expr" - } - }, - "props.style.backgroundColor": { - "binding": { - "config": { - "path": "view.custom.stop_color" - }, - "type": "property" - } - } - }, - "props": { - "image": { - "icon": { - "path": "material/stop_circle" - } - }, - "style": { - "classes": "Background-Styles/Controller" - }, - "text": "STOP" - }, - "type": "ia.input.button" - } - ], - "meta": { - "name": "Stop" - }, - "position": { - "basis": "35px" - }, - "propConfig": { - "meta.visible": { - "binding": { - "config": { - "expression": "if(indexOf({view.params.tagProps[0]}, \"SS_PB\") \u003e\u003d 0, true, false)\r\n" - }, - "type": "expr" - } - } - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel", - "padding": "" - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "FlexContainer_0" - }, - "position": { - "basis": "100px", - "grow": 1 - }, - "props": { - "direction": "column", - "style": { - "gap": 6, - "paddingBottom": 20, - "paddingLeft": 10, - "paddingRight": 10, - "paddingTop": 13 - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "Commands" - }, - "position": { - "tabIndex": 2 - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "tabs" - }, - "position": { - "grow": 1 - }, - "props": { - "currentTabIndex": 2, - "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", - "Commands" - ] - }, - "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/207c4ed9cbb59080889522cce5f366de68cb9ac9f03e63878ea3cce6bfbc2012 b/.resources/207c4ed9cbb59080889522cce5f366de68cb9ac9f03e63878ea3cce6bfbc2012 deleted file mode 100644 index 207dd6f4..00000000 --- a/.resources/207c4ed9cbb59080889522cce5f366de68cb9ac9f03e63878ea3cce6bfbc2012 +++ /dev/null @@ -1,5118 +0,0 @@ -{ - "custom": { - "activityLogger": { - "alt_pageid": "alarms", - "pageid": "alarms/ActiveAlarms", - "start_time": { - "$": [ - "ts", - 192, - 1748425447154 - ], - "$ts": 1748425447154 - } - } - }, - "params": {}, - "propConfig": { - "custom.activityLogger": { - "persistent": true - } - }, - "props": { - "defaultSize": { - "height": 1080, - "width": 1920 - } - }, - "root": { - "children": [ - { - "children": [ - { - "children": [ - { - "children": [ - { - "children": [ - { - "meta": { - "name": "Label_0" - }, - "position": { - "basis": "10px" - }, - "type": "ia.display.label" - }, - { - "custom": { - "Severity": "High", - "background_on": "false" - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tpriority \u003d \u0027high\u0027\n\t# Copy and toggle the filter\n\tpriorities \u003d dict(self.parent.custom.priorities)\n\tpriorities[priority] \u003d not priorities.get(priority, False)\n\tself.parent.custom.priorities \u003d priorities\n\t\n\tself.custom.background_on \u003d \"true\" if priorities[priority] else \"false\"" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button_0" - }, - "position": { - "basis": "120px" - }, - "propConfig": { - "props.style.classes": { - "binding": { - "config": { - "expression": "if({this.custom.background_on}\u003d\"false\",0,\r\nif({session.custom.colours.colour_impaired},2,1))" - }, - "transforms": [ - { - "fallback": "", - "inputType": "scalar", - "mappings": [ - { - "input": 0, - "output": "" - }, - { - "input": 1, - "output": "Alarms-Styles/High" - }, - { - "input": 2, - "output": "Alarms-Styles/Alt-Colours/High" - } - ], - "outputType": "style-list", - "type": "map" - } - ], - "type": "expr" - } - } - }, - "props": { - "image": { - "icon": { - "path": "material/priority_high" - } - }, - "primary": false, - "style": { - "margin": 15 - }, - "text": "High" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "reset-filters", - "pageScope": true, - "script": "\tbackground \u003d \"false\"\n\tseverity \u003d payload[\"reset\"]\n\tif severity \u003d\u003d \"false\":\n\t\tbackground \u003d \"false\"\n\telse:\n\t\tbackground \u003d \"true\"\n\tself.custom.background_on \u003d background", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.button" - }, - { - "meta": { - "name": "Label_1" - }, - "position": { - "basis": "10px" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Label_4" - }, - "position": { - "basis": "10px" - }, - "type": "ia.display.label" - }, - { - "custom": { - "Severity": "Medium", - "background_on": "false" - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tpriority \u003d \u0027medium\u0027\n\t# Copy and toggle the filter\n\tpriorities \u003d dict(self.parent.custom.priorities)\n\tpriorities[priority] \u003d not priorities.get(priority, False)\n\tself.parent.custom.priorities \u003d priorities\n\t\n\tself.custom.background_on \u003d \"true\" if priorities[priority] else \"false\"" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button_1" - }, - "position": { - "basis": "120px" - }, - "propConfig": { - "props.style.classes": { - "binding": { - "config": { - "expression": "if({this.custom.background_on}\u003d\"false\",0,\r\nif({session.custom.colours.colour_impaired},2,1))" - }, - "transforms": [ - { - "fallback": "Buttons/PB_1", - "inputType": "scalar", - "mappings": [ - { - "input": 0, - "output": "" - }, - { - "input": 1, - "output": "Alarms-Styles/Medium" - }, - { - "input": 2, - "output": "Alarms-Styles/Alt-Colours/Medium" - } - ], - "outputType": "style-list", - "type": "map" - } - ], - "type": "expr" - } - } - }, - "props": { - "image": { - "icon": { - "path": "material/priority_high" - } - }, - "primary": false, - "style": { - "margin": 15 - }, - "text": "Medium" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "reset-filters", - "pageScope": true, - "script": "\tbackground \u003d \"false\"\n\tseverity \u003d payload[\"reset\"]\n\tif severity \u003d\u003d \"false\":\n\t\tbackground \u003d \"false\"\n\telse:\n\t\tbackground \u003d \"true\"\n\tself.custom.background_on \u003d background", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.button" - }, - { - "meta": { - "name": "Label_2" - }, - "position": { - "basis": "10px" - }, - "type": "ia.display.label" - }, - { - "custom": { - "Severity": "Low", - "background_on": "false" - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tpriority \u003d \u0027low\u0027\n\t# Copy and toggle the filter\n\tpriorities \u003d dict(self.parent.custom.priorities)\n\tpriorities[priority] \u003d not priorities.get(priority, False)\n\tself.parent.custom.priorities \u003d priorities\n\t\n\tself.custom.background_on \u003d \"true\" if priorities[priority] else \"false\"" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button_2" - }, - "position": { - "basis": "120px" - }, - "propConfig": { - "props.style.classes": { - "binding": { - "config": { - "expression": "if({this.custom.background_on}\u003d\"false\",0,\r\nif({session.custom.colours.colour_impaired},2,1))" - }, - "transforms": [ - { - "fallback": "Buttons/PB_1", - "inputType": "scalar", - "mappings": [ - { - "input": 0, - "output": "" - }, - { - "input": 1, - "output": "Alarms-Styles/Low" - }, - { - "input": 2, - "output": "Alarms-Styles/Alt-Colours/Low" - } - ], - "outputType": "style-list", - "type": "map" - } - ], - "type": "expr" - } - } - }, - "props": { - "image": { - "icon": { - "path": "material/low_priority" - } - }, - "primary": false, - "style": { - "margin": 15 - }, - "text": "Low" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "reset-filters", - "pageScope": true, - "script": "\tbackground \u003d \"false\"\n\tseverity \u003d payload[\"reset\"]\n\tif severity \u003d\u003d \"false\":\n\t\tbackground \u003d \"false\"\n\telse:\n\t\tbackground \u003d \"true\"\n\tself.custom.background_on \u003d background", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.button" - }, - { - "meta": { - "name": "Label_3" - }, - "position": { - "basis": "10px" - }, - "type": "ia.display.label" - }, - { - "custom": { - "background_on": "false" - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tpriority \u003d \u0027diagnostic\u0027\n\n\tpriorities \u003d dict(self.parent.custom.priorities)\n\tpriorities[priority] \u003d not priorities.get(priority, False)\n\tself.parent.custom.priorities \u003d priorities\n\t\n\tself.custom.background_on \u003d \"true\" if priorities[priority] else \"false\"" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button_3" - }, - "position": { - "basis": "120px" - }, - "propConfig": { - "props.style.classes": { - "binding": { - "config": { - "expression": "if({this.custom.background_on}\u003d\"false\",0,\r\nif({session.custom.colours.colour_impaired},2,1))" - }, - "transforms": [ - { - "fallback": "Buttons/PB_1", - "inputType": "scalar", - "mappings": [ - { - "input": 0, - "output": "" - }, - { - "input": 1, - "output": "Alarms-Styles/Diagnostic" - }, - { - "input": 2, - "output": "Alarms-Styles/Alt-Colours/Diagnostic" - } - ], - "outputType": "style-list", - "type": "map" - } - ], - "type": "expr" - } - } - }, - "props": { - "image": { - "icon": { - "path": "material/warning" - } - }, - "primary": false, - "style": { - "margin": 15 - }, - "text": "Diagnostic" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "reset-filters", - "pageScope": true, - "script": "\t# implement your handler here\n\tbackground \u003d \"false\"\n\tseverity \u003d payload[\"reset\"]\n\tif severity \u003d\u003d \"false\":\n\t\tbackground \u003d \"false\"\n\telse:\n\t\tbackground \u003d \"true\"\n\tself.custom.background_on \u003d background", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.button" - }, - { - "meta": { - "name": "Dropdown" - }, - "position": { - "basis": "200px" - }, - "propConfig": { - "props.value": { - "persistent": false - } - }, - "props": { - "options": [ - { - "label": "MCM01", - "value": "MCM01" - }, - { - "label": "MCM02", - "value": "MCM02" - }, - { - "label": "MCM03", - "value": "MCM03" - }, - { - "label": "MCM04", - "value": "MCM04" - }, - { - "label": "MCM05", - "value": "MCM05" - } - ], - "placeholder": { - "text": "Filter MCMs..." - }, - "style": { - "margin": 15 - } - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "hjsgdfn", - "pageScope": false, - "script": "\tpass", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.dropdown" - } - ], - "custom": { - "priorities": { - "diagnostic": false, - "high": false, - "low": false, - "medium": false - } - }, - "events": { - "system": { - "onStartup": { - "config": { - "script": "\tself.custom.priorities \u003d {\n\t \"diagnostic\": False,\n\t \"low\": False,\n\t \"medium\": False,\n\t \"high\": False,\n\t}" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "FlexContainer" - }, - "position": { - "basis": "881px", - "shrink": 0 - }, - "props": { - "style": { - "padding": 0 - } - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "meta": { - "name": "Label" - }, - "position": { - "basis": "20px" - }, - "type": "ia.display.label" - }, - { - "custom": { - "Severity": "Critical", - "background_on": "false" - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tpayload \u003d {}\n\tfilter_on \u003d \"false\"\n\tpayload[\"reset\"] \u003d filter_on\n\tsystem.perspective.sendMessage(\"reset-filters\", payload \u003dpayload, scope \u003d \"page\")\n\tdefault_priorities \u003d {\n\t \"diagnostic\": False,\n\t \"low\": False,\n\t \"medium\": False,\n\t \"high\": False,\n\t \"critical\": False\n\t}\n\tself.parent.parent.parent.getChild(\"FlexContainer_0\").getChild(\"Table\").props.filter.text \u003d \"\"\n\tself.parent.parent.getChild(\"FlexContainer\").custom.priorities \u003d default_priorities\n\tself.parent.parent.getChild(\"FlexContainer\").getChild(\"Dropdown\").props.value \u003d \"\"" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button" - }, - "position": { - "basis": "120px" - }, - "props": { - "image": { - "icon": { - "color": "#000000", - "path": "material/clear" - } - }, - "primary": false, - "style": { - "margin": 15 - }, - "text": "Reset" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "button-severity-indicator", - "pageScope": true, - "script": "\tbackground \u003d \"false\"\n\tseverity \u003d payload[\"severity\"]\n\tbutton_severity \u003d self.custom.Severity\n\tif severity \u003d\u003d button_severity:\n\t\tbackground \u003d \"true\"\n\telse:\n\t\tbackground \u003d \"false\"\n\t\n\tself.custom.background_on \u003d background\n\t", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.button" - }, - { - "meta": { - "name": "Label_2" - }, - "position": { - "basis": "10px" - }, - "type": "ia.display.label" - }, - { - "custom": { - "Severity": "High", - "background_on": "true", - "update_on": false - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tfrom datetime import datetime\n\ttry:\n\t # Get table data\n\t data \u003d self.parent.parent.parent.getChild(\"FlexContainer_0\").getChild(\"Table\").props.data\n\t \n\t column_order \u003d [\n\t \"ID\",\n\t \"StartTimestamp\", \n\t \"Duration\",\n\t \"Priority\",\n\t \"Location\",\n\t \"Description\",\n\t \"Tag\"\n\t ]\n\t\n\t # CSV header\n\t csv_content \u003d \",\".join(column_order) + \"\\n\"\n\t \n\t def unwrap(v):\n\t\t\tif hasattr(v, \u0027value\u0027):\n\t\t\t\treturn str(v.value)\n\t \t\n\t\t\treturn v\n\t \n\t if data and len(data) \u003e 0:\n\t for item in data:\n\t row_data \u003d []\n\t \n\t for col in column_order:\n\t # Look for the column in the current item\n\t if col in item:\n\t cell \u003d item[col]\n\t # Extract the value from the nested structure\n\t if isinstance(cell, dict) and \"value\" in cell:\n\t raw_value \u003d cell[\"value\"]\n\t else:\n\t raw_value \u003d cell\n\t else:\n\t raw_value \u003d \"\"\n\t \n\t # Process and clean the value\n\t processed_value \u003d unwrap(raw_value).replace(\",\", \";\")\n\t row_data.append(processed_value)\n\t \n\t csv_content +\u003d \",\".join(row_data) + \"\\n\"\n\t else:\n\t csv_content +\u003d \"No alarms in current view\\n\"\n\t\n\texcept Exception as e:\n\t system.perspective.print(\"Export Error: \" + str(e))\n\t csv_content \u003d \"Export failed\\n\"\n\t\n\tcsv_bytes \u003d csv_content.encode(\"utf-8\")\n\tsystem.perspective.download(\"active_alarms.csv\", csv_bytes) \n\t \n\t \n\t \n\t\n#\t if data and len(data) \u003e 0:\n#\t for row in data:\n#\t val \u003d row.get(\"value\", {})\n#\t row_data \u003d [\n#\t str(val.get(\"NumberID\", \"\")),\n#\t str(val.get(\"EventTimestamp\", \"\")),\n#\t str(val.get(\"Duration\", \"\")),\n#\t str(val.get(\"Priority\", \"\")),\n#\t str(val.get(\"Description\", \"\")),\n#\t str(val.get(\"Tag\", \"\"))\n#\t ]\n#\t\n#\t # Escape commas for CSV safety\n#\t row_data \u003d [field.replace(\",\", \";\") for field in row_data]\n#\t csv_content +\u003d \",\".join(row_data) + \"\\n\"\n#\t else:\n#\t csv_content +\u003d \"No alarms in current view\\n\"\n#\t\n#\texcept Exception as e:\n#\t system.perspective.print(\"Error during CSV export: \" + str(e))\n#\t csv_content \u003d \"Error exporting alarm data\\n\"\n#\t\n#\t# Convert to bytes and trigger download\n#\tcsv_bytes \u003d csv_content.encode(\u0027utf-8\u0027)\n#\tsystem.perspective.download(\"active_alarms.csv\", csv_bytes)\n " - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button_1" - }, - "position": { - "basis": "120px" - }, - "props": { - "image": { - "icon": { - "path": "material/import_export" - } - }, - "primary": false, - "style": { - "margin": 15 - }, - "text": "Export" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "button-severity-indicator", - "pageScope": true, - "script": "\tbackground \u003d \"false\"\n\tseverity \u003d payload[\"severity\"]\n\tbutton_severity \u003d self.custom.Severity\n\tif severity \u003d\u003d button_severity:\n\t\tbackground \u003d \"true\"\n\telse:\n\t\tbackground \u003d \"false\"\n\t\n\tself.custom.background_on \u003d background", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.button" - }, - { - "meta": { - "name": "Label_0" - }, - "position": { - "basis": "10px" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Label_1" - }, - "position": { - "basis": "10px" - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "FlexContainer_0" - }, - "position": { - "basis": "513px", - "shrink": 0 - }, - "props": { - "style": { - "padding": 0 - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "FlexContainer" - }, - "position": { - "basis": "70px", - "shrink": 0 - }, - "props": { - "alignContent": "flex-start", - "style": { - "overflow": "visible" - } - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "events": { - "component": { - "onRowDoubleClick": { - "config": { - "script": "\n\tmyData \u003d self.props.selection.data\n\n\talarms.alarm_click.handleClick(myData)\n\t\n\t" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Table" - }, - "position": { - "basis": "972.9px" - }, - "propConfig": { - "custom.priorities": { - "binding": { - "config": { - "path": ".../FlexContainer/FlexContainer.custom.priorities" - }, - "transforms": [ - { - "code": "\t# value looks like: {\"diagnostic\": True, \"high\": True, \"low\": False, ...}\n\tfrom system.util import jsonEncode, jsonDecode\n\t\n\tprio_map \u003d {\u0027diagnostic\u0027:0,\u0027low\u0027:1,\u0027medium\u0027:2,\u0027high\u0027:3,\u0027critical\u0027:4}\n\t\n\t# Coerce Perspective objects (PyDictionary/Java Map) to a plain Python dict\n\ttry:\n\t d \u003d value if isinstance(value, dict) else jsonDecode(jsonEncode(value))\n\texcept:\n\t d \u003d {}\n\t\n\t# Normalize keys and build CSV (\u0027\u0027 means \"all\")\n\tenabled \u003d [str(prio_map[k]) for k in prio_map if bool(d.get(k, False))]\n\treturn \",\".join(enabled) if enabled else \"\"", - "type": "script" - } - ], - "type": "property" - } - }, - "props.columns[3].filter.string.value": { - "binding": { - "config": { - "path": ".../FlexContainer/FlexContainer/Dropdown.props.value" - }, - "type": "property" - } - }, - "props.data": { - "binding": { - "config": { - "parameters": { - "priorityList": "{this.custom.priorities}" - }, - "polling": { - "enabled": true, - "rate": "3" - }, - "queryPath": "GetActiveAlarms" - }, - "transforms": [ - { - "code": "\n\tfrom system.dataset import toPyDataSet\n\n\tds \u003d toPyDataSet(value)\n\tdata \u003d []\n\n\tcolumn_names \u003d list(ds.columnNames)\n\n\tfor row in ds:\n\t\tpriority \u003d row[\"Priority\"]\n\n\t\t# Use style class names from Perspective\n\t\tif priority \u003d\u003d \"High\":\n\t\t\tclassName \u003d \"Alarms-Styles/High\"\n\t\telif priority \u003d\u003d \"Medium\":\n\t\t\tclassName \u003d \"Alarms-Styles/Medium\"\n\t\telif priority \u003d\u003d \"Low\":\n\t\t\tclassName \u003d \"Alarms-Styles/Low\"\n\t\telif priority \u003d\u003d \"Diagnostic\":\n\t\t\tclassName \u003d \"Alarms-Styles/Diagnostic\"\n\t\telse:\n\t\t\tclassName \u003d \"Alarms-Styles/NoAlarm\"\n\n\t\t# Apply the style class to all cells in the row\n\t\trow_dict \u003d {\n\t\t\tcol: {\n\t\t\t\t\"value\": row[col],\n\t\t\t\t\"style\": { \"classes\": className }\n\t\t\t} for col in column_names\n\t\t}\n\t\tdata.append(row_dict)\n\n\n\treturn data", - "type": "script" - } - ], - "type": "query" - } - } - }, - "props": { - "columns": [ - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "ID", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "auto", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY HH:mm:ss", - "editable": false, - "field": "StartTimestamp", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "Event Timestamp" - }, - "justify": "auto", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 70 - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Duration", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": true, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "equals", - "value": "" - }, - "visible": "never" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "string", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 70 - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Location", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": true, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "equals" - }, - "visible": "never" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 70 - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Priority", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 70 - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Description", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 150 - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "FullTag", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "auto", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "", - "display": "none" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Device", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "auto", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "", - "display": "none" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "NumberID", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "Number (ID)" - }, - "justify": "left", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "ascending", - "sortable": false, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 70 - } - ], - "emptyMessage": { - "noData": { - "text": "No Active Alarms" - }, - "noFilterResults": { - "text": "No Active Alarms" - } - }, - "filter": { - "enabled": true, - "results": { - "enabled": true - } - }, - "pager": { - "activeOption": 100 - } - }, - "type": "ia.display.table" - } - ], - "meta": { - "name": "FlexContainer_0" - }, - "position": { - "basis": "480px", - "grow": 1 - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "Active_tab" - }, - "props": { - "direction": "column", - "justify": "space-evenly" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "Dropdown" - }, - "position": { - "basis": "200px" - }, - "propConfig": { - "props.value": { - "persistent": false - } - }, - "props": { - "options": [ - { - "label": "MCM01", - "value": "MCM01" - }, - { - "label": "MCM02", - "value": "MCM02" - }, - { - "label": "MCM03", - "value": "MCM03" - }, - { - "label": "MCM04", - "value": "MCM04" - }, - { - "label": "MCM05", - "value": "MCM05" - } - ], - "placeholder": { - "text": "Filter MCMs..." - }, - "style": { - "margin": 15 - } - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "hjsgdfn", - "pageScope": false, - "script": "\tpass", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.dropdown" - }, - { - "custom": { - "Severity": "Critical", - "background_on": "false" - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tself.getSibling(\"Dropdown\").props.value \u003d \"\"" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button" - }, - "position": { - "basis": "120px" - }, - "props": { - "image": { - "icon": { - "color": "#000000", - "path": "material/clear" - } - }, - "primary": false, - "style": { - "margin": 15 - }, - "text": "Reset" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "button-severity-indicator", - "pageScope": true, - "script": "\tbackground \u003d \"false\"\n\tseverity \u003d payload[\"severity\"]\n\tbutton_severity \u003d self.custom.Severity\n\tif severity \u003d\u003d button_severity:\n\t\tbackground \u003d \"true\"\n\telse:\n\t\tbackground \u003d \"false\"\n\t\n\tself.custom.background_on \u003d background\n\t", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.button" - }, - { - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tfrom datetime import datetime\n\t\n\ttry:\n\t data \u003d self.parent.parent.getChild(\"FlexContainer_0\").getChild(\"AlarmsTable\").props.data\n\t\n\t column_order \u003d [\n\t \"FirstTimestamp\",\n\t \"LastTimestamp\", \n\t \"Count\",\n\t \"Duration\",\n\t \"Priority\",\n\t \"Location\",\n\t \"Description\",\n\t \"Tag\"\n\t ]\n\t\n\t csv_content \u003d \",\".join(column_order) + \"\\n\"\n\t \t\n\t def unwrap(v):\n\t\t\tif hasattr(v, \u0027value\u0027):\n\t\t\t\treturn str(v.value)\n\t \t\n\t\t\treturn v\n\t \t\n\t if data and len(data) \u003e 0:\n\t for item in data:\n\t row_data \u003d []\n\t \n\t for col in column_order:\n\t # Look for the column in the current item\n\t if col in item:\n\t cell \u003d item[col]\n\t # Extract the value from the nested structure\n\t if isinstance(cell, dict) and \"value\" in cell:\n\t raw_value \u003d cell[\"value\"]\n\t else:\n\t raw_value \u003d cell\n\t else:\n\t raw_value \u003d \"\"\n\t \n\t # Process and clean the value\n\t processed_value \u003d unwrap(raw_value).replace(\",\", \";\")\n\t row_data.append(processed_value)\n\t \n\t csv_content +\u003d \",\".join(row_data) + \"\\n\"\n\t else:\n\t csv_content +\u003d \"No alarms in current view\\n\"\n\t\n\texcept Exception as e:\n\t system.perspective.print(\"Export Error: \" + str(e))\n\t csv_content \u003d \"Export failed\\n\"\n\t\n\tcsv_bytes \u003d csv_content.encode(\"utf-8\")\n\tsystem.perspective.download(\"active_alarms.csv\", csv_bytes)" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button_1" - }, - "position": { - "basis": "120px" - }, - "props": { - "image": { - "icon": { - "path": "material/import_export" - } - }, - "primary": false, - "style": { - "margin": 15 - }, - "text": "Export" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "button-severity-indicator", - "pageScope": true, - "script": "\tbackground \u003d \"false\"\n\tseverity \u003d payload[\"severity\"]\n\tbutton_severity \u003d self.custom.Severity\n\tif severity \u003d\u003d button_severity:\n\t\tbackground \u003d \"true\"\n\telse:\n\t\tbackground \u003d \"false\"\n\t\n\tself.custom.background_on \u003d background", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.button" - } - ], - "meta": { - "name": "FlexContainer" - }, - "position": { - "basis": "70px" - }, - "props": { - "alignContent": "flex-start", - "style": { - "overflow": "visible" - } - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "events": { - "component": { - "onRowDoubleClick": { - "config": { - "script": "\t\n\tmyData \u003d self.props.selection.data\n\n\talarms.alarm_click.handleClick(myData)" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "AlarmsTable" - }, - "position": { - "basis": "1080px", - "grow": 1 - }, - "propConfig": { - "props.columns[5].filter.string.value": { - "binding": { - "config": { - "path": ".../FlexContainer/Dropdown.props.value" - }, - "type": "property" - } - }, - "props.data": { - "binding": { - "config": { - "polling": { - "enabled": true, - "rate": "3" - }, - "queryPath": "GetAlarmsWithCount" - }, - "transforms": [ - { - "code": "\n\tfrom system.dataset import toPyDataSet\n\n\tds \u003d toPyDataSet(value)\n\tdata \u003d []\n\n\tcolumn_names \u003d list(ds.columnNames)\n\n\tfor row in ds:\n\t\tpriority \u003d row[\"Priority\"]\n\n\t\t# Use style class names from Perspective\n\t\tif priority \u003d\u003d \"High\":\n\t\t\tclassName \u003d \"Alarms-Styles/High\"\n\t\telif priority \u003d\u003d \"Medium\":\n\t\t\tclassName \u003d \"Alarms-Styles/Medium\"\n\t\telif priority \u003d\u003d \"Low\":\n\t\t\tclassName \u003d \"Alarms-Styles/Low\"\n\t\telif priority \u003d\u003d \"Diagnostic\":\n\t\t\tclassName \u003d \"Alarms-Styles/Diagnostic\"\n\t\telse:\n\t\t\tclassName \u003d \"Alarms-Styles/NoAlarm\"\n\n\t\t# Apply the style class to all cells in the row\n\t\trow_dict \u003d {\n\t\t\tcol: {\n\t\t\t\t\"value\": row[col],\n\t\t\t\t\"style\": { \"classes\": className }\n\t\t\t} for col in column_names\n\t\t}\n\t\tdata.append(row_dict)\n\n\treturn data\n", - "type": "script" - } - ], - "type": "query" - } - }, - "props.editingCell": { - "onChange": { - "enabled": null, - "script": "\tall_alarms \u003d system.alarm.queryStatus(includeShelved\u003dTrue)\n\tshelved_alarms \u003d [alarm for alarm in all_alarms if alarm.isShelved()]\n\t\n\t# Build dataset for table\n\theaders \u003d [\u0027ID\u0027, \u0027StartTimestamp\u0027, \u0027EndTimestamp\u0027, \u0027Duration\u0027, \u0027Description\u0027, \u0027Priority\u0027, \u0027Tag\u0027, \u0027MCM\u0027]\n\tdata \u003d []\n\t\n\tfor alarm in shelved_alarms:\n\t # Calculate duration (time since shelved)\n\t if alarm.activeTime:\n\t duration_ms \u003d system.date.now().getTime() - alarm.activeTime.getTime()\n\t duration_seconds \u003d duration_ms / 1000\n\t hours \u003d int(duration_seconds / 3600)\n\t minutes \u003d int((duration_seconds % 3600) / 60)\n\t seconds \u003d int(duration_seconds % 60)\n\t duration \u003d \"%02d:%02d:%02d\" % (hours, minutes, seconds)\n\t else:\n\t duration \u003d \"00:00:00\"\n\t \n\t # Extract tag name from source\n\t tag_name \u003d alarm.source.split(\u0027/\u0027)[-1] if \u0027/\u0027 in alarm.source else alarm.source\n\t \n\t row \u003d [\n\t str(alarm.id) if hasattr(alarm, \u0027id\u0027) else \u0027\u0027,\n\t alarm.activeTime if alarm.activeTime else system.date.now(),\n\t None, # End timestamp (shelved alarms don\u0027t have end time yet)\n\t duration,\n\t alarm.displayPath if alarm.displayPath else alarm.source,\n\t alarm.priority.name if alarm.priority else \u0027Unknown\u0027,\n\t tag_name,\n\t \u0027System\u0027 # Adjust based on your source format\n\t ]\n\t data.append(row)\n\t\n\t# Create dataset and update the custom property\n\tdataset \u003d system.dataset.toDataSet(headers, data)\n\tself.custom.shelvedAlarmsData \u003d dataset" - } - }, - "props.selection": { - "persistent": true - } - }, - "props": { - "columns": [ - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY HH:mm:ss", - "editable": false, - "field": "FirstTimestamp", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "left", - "style": { - "backgroundColor": "#FFFEFE", - "classes": "" - }, - "title": "First Timestamp" - }, - "justify": "left", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "value", - "dateFormat": "MM-DD-YYYY HH:mm:ss", - "editable": false, - "field": "LastTimestamp", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "Last Timestamp" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "none", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM-DD-YYYY HH:mm:ss", - "editable": false, - "field": "Count", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "none", - "editable": false, - "field": "Duration", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "none", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Priority", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Location", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": true, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "equals" - }, - "visible": "never" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Description", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 150 - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Tag", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "FullTag", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "auto", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "", - "display": "none" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Device", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "auto", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "", - "display": "none" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - } - ], - "emptyMessage": { - "noData": { - "text": "No Alarms" - }, - "noFilterResults": { - "text": "No Alarms" - } - }, - "filter": { - "enabled": true, - "results": { - "enabled": true - } - }, - "pager": { - "activeOption": 100 - } - }, - "type": "ia.display.table" - } - ], - "meta": { - "name": "FlexContainer_0" - }, - "position": { - "basis": "500px", - "grow": 1 - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "Hit_List" - }, - "position": { - "tabIndex": 1 - }, - "props": { - "direction": "column", - "justify": "space-evenly" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "children": [ - { - "custom": { - "SetFilter": false - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tpayload \u003d {}\n\tif self.custom.SetFilter \u003d\u003d True:\n\t\tpayload[\"data\"] \u003d False\n\t\tself.custom.SetFilter \u003d False\n\t\t\n\t\n\telif self.custom.SetFilter \u003d\u003d False:\n\t\tpayload[\"data\"] \u003d True\n\t\tself.custom.SetFilter \u003d True\n\t\n\tsystem.perspective.sendMessage(\"show-historical-filters\", payload \u003d payload, scope \u003d \"page\")\n\t" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button", - "tooltip": { - "enabled": true, - "style": { - "background-color": "white", - "borderColor": "#000000", - "borderStyle": "solid", - "borderWidth": "1px", - "box-shadow": "5px 5px 5px grey", - "color": "#000000", - "fontFamily": "Arial", - "fontWeight": "normal" - }, - "text": "Show Filters" - } - }, - "position": { - "basis": "120px" - }, - "props": { - "image": { - "icon": { - "path": "material/filter_alt" - }, - "position": "center" - }, - "primary": false, - "style": { - "margin": 15, - "marginLeft": 20 - }, - "text": "" - }, - "type": "ia.input.button" - }, - { - "meta": { - "name": "Label" - }, - "position": { - "basis": "281px" - }, - "props": { - "style": { - "color": "#FF0000", - "margin-left": "20px" - }, - "text": "ALL TIMESTAMPS ARE IN UTC" - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "Show filters" - }, - "position": { - "basis": "70px", - "shrink": 0 - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "Label_1" - }, - "position": { - "basis": "100px" - }, - "props": { - "style": { - "fontFamily": "Arial", - "fontWeight": "bold", - "textAlign": "center" - }, - "text": "Period:" - }, - "type": "ia.display.label" - }, - { - "custom": { - "customTime": false, - "endDate": { - "$": [ - "ts", - 192, - 1758783120911 - ], - "$ts": 1758783120911 - }, - "startDate": { - "$": [ - "ts", - 192, - 1758783120911 - ], - "$ts": 1758779520911 - } - }, - "meta": { - "name": "Dropdown" - }, - "position": { - "basis": "200px" - }, - "propConfig": { - "props.value": { - "onChange": { - "enabled": null, - "script": "\t# e.g. Dropdown onChange / propertyChange\n\tnow \u003d system.date.now()\n\ttoday0 \u003d system.date.setTime(now, 0, 0, 0) # today 00:00:00\n\tyday0 \u003d system.date.addDays(today0, -1) # yesterday 00:00:00\n\t\n\tval \u003d str(currentValue.value or \u0027\u0027).strip()\n\t\n\t# Custom range: let user pick dates, don\u0027t touch start/end.\n\tif val \u003d\u003d \"custom\":\n\t self.custom.customTime \u003d True\n\t return\n\t\n\tself.custom.customTime \u003d False\n\t\n\tdef t(day, h, m, s):\n\t \"\"\"time of day on a given day anchor\"\"\"\n\t return system.date.setTime(day, h, m, s)\n\t\n\tif val \u003d\u003d \"currentDay\":\n\t start, end \u003d today0, now\n\t\n\telif val \u003d\u003d \"morning\": # 02:30–07:30 today\n\t start, end \u003d t(today0, 2, 30, 0), t(today0, 7, 30, 0)\n\t\n\telif val \u003d\u003d \"daylight\": # 07:30–13:00 today\n\t start, end \u003d t(today0, 7, 30, 0), t(today0, 13, 0, 0)\n\t\n\telif val \u003d\u003d \"twilight\": # 13:00–now (if before 13:00, use 13:00 yesterday–now)\n\t if now \u003e\u003d t(today0, 13, 0, 0):\n\t start, end \u003d t(today0, 13, 0, 0), now\n\t else:\n\t start, end \u003d t(yday0, 13, 0, 0), now\n\t\n\telif val \u003d\u003d \"night\": # 18:30–23:30 yesterday (your original intent)\n\t start, end \u003d t(yday0, 18, 30, 0), t(yday0, 23, 30, 0)\n\t\n\telif val \u003d\u003d \"wrapDown\": # 23:30 yesterday – 02:30 today\n\t start, end \u003d t(yday0, 23, 30, 0), t(today0, 2, 30, 0)\n\t\n\telif val \u003d\u003d \"currentShot\": # alias of twilight per your use\n\t if now \u003e\u003d t(today0, 13, 0, 0):\n\t start, end \u003d t(today0, 13, 0, 0), now\n\t else:\n\t start, end \u003d t(yday0, 13, 0, 0), now\n\t\n\telse:\n\t # Treat any other value as \"last N minutes\"\n\t try:\n\t mins \u003d int(val)\n\t except:\n\t mins \u003d 60\n\t end \u003d now\n\t start \u003d system.date.addMinutes(end, -mins)\n\t\n\t# Final assign\n\tself.custom.startDate \u003d start\n\tself.custom.endDate \u003d end" - }, - "persistent": false - } - }, - "props": { - "options": [ - { - "label": "Past 30 Min", - "value": 30 - }, - { - "label": "Past Hour", - "value": 60 - }, - { - "label": "Past 2 Hour", - "value": 120 - }, - { - "label": "Past 4 Hour", - "value": 240 - }, - { - "label": "Past 8 Hour", - "value": 480 - }, - { - "label": "Current Day", - "value": "currentDay" - }, - { - "label": "Morning", - "value": "morning" - }, - { - "label": "Daylight", - "value": "daylight" - }, - { - "label": "Twilight", - "value": "twilight" - }, - { - "label": "Night", - "value": "night" - }, - { - "label": "Wrap Down", - "value": "wrapDown" - }, - { - "label": "Current Shot", - "value": "currentShot" - }, - { - "label": "Custom", - "value": "custom" - } - ], - "style": { - "margin": 15 - } - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "reset-historical-filters", - "pageScope": true, - "script": "\treset \u003d payload[\"data\"]\n\tself.props.value \u003d None", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.dropdown" - }, - { - "meta": { - "name": "Label" - }, - "position": { - "basis": "100px" - }, - "props": { - "style": { - "fontFamily": "Arial", - "fontWeight": "bold", - "textAlign": "center" - }, - "text": "Start Date" - }, - "type": "ia.display.label" - }, - { - "custom": { - "max_duration_days": 365 - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tmessaging.message_handler.set_time_from_filters(self)\n\t" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "DateTimeInput", - "tooltip": { - "enabled": true - } - }, - "position": { - "basis": "200px" - }, - "propConfig": { - "props.enabled": { - "binding": { - "config": { - "path": "../Dropdown.custom.customTime" - }, - "type": "property" - } - }, - "props.maxDate": { - "binding": { - "config": { - "expression": "now()" - }, - "type": "expr" - } - }, - "props.minDate": { - "access": "PUBLIC", - "binding": { - "config": { - "expression": "addDays(now(),-{this.custom.max_duration_days})" - }, - "type": "expr" - } - }, - "props.value": { - "binding": { - "config": { - "path": "../Dropdown.custom.startDate" - }, - "type": "property" - }, - "onChange": { - "enabled": null, - "script": "\tmessaging.message_handler.set_time_from_filters(self)" - } - } - }, - "props": { - "formattedValue": "Sep 25, 2025 9:52 AM", - "style": { - "margin": 15 - } - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "reset-historical-filters", - "pageScope": true, - "script": "\treset \u003d payload[\"data\"]\n\tself.props.value \u003d None", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.date-time-input" - }, - { - "meta": { - "name": "Label_0" - }, - "position": { - "basis": "89px" - }, - "props": { - "style": { - "fontFamily": "Arial", - "fontWeight": "bold", - "textAlign": "center" - }, - "text": "End Date" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "DateTimeInput_0" - }, - "position": { - "basis": "200px" - }, - "propConfig": { - "props.enabled": { - "binding": { - "config": { - "path": "../Dropdown.custom.customTime" - }, - "type": "property" - } - }, - "props.maxDate": { - "binding": { - "config": { - "expression": "now()" - }, - "type": "expr" - } - }, - "props.minDate": { - "binding": { - "config": { - "expression": "addDays(now(),-365)" - }, - "type": "expr" - } - }, - "props.value": { - "binding": { - "config": { - "path": "../Dropdown.custom.endDate" - }, - "type": "property" - }, - "onChange": { - "enabled": null, - "script": "\tmessaging.message_handler.set_time_to_filters(self)" - }, - "persistent": true - } - }, - "props": { - "formattedValue": "Sep 25, 2025 10:52 AM", - "style": { - "margin": 15 - }, - "value": { - "$": [ - "ts", - 192, - 1758783120911 - ], - "$ts": 1758783120911 - } - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "reset-historical-filters", - "pageScope": true, - "script": "\treset \u003d payload[\"data\"]\n\tself.props.value \u003d None", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.date-time-input" - } - ], - "meta": { - "name": "Time" - }, - "position": { - "basis": "70px", - "shrink": 0 - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "meta": { - "name": "Label" - }, - "position": { - "basis": "100px" - }, - "props": { - "style": { - "fontFamily": "Arial", - "fontWeight": "bold", - "textAlign": "center" - }, - "text": "Priority" - }, - "type": "ia.display.label" - }, - { - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tmessaging.message_handler.set_priority_filters(self)" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Dropdown" - }, - "position": { - "basis": "490px" - }, - "propConfig": { - "props.value": { - "persistent": false - } - }, - "props": { - "options": [ - { - "label": "Diagnostic", - "value": "diagnostic" - }, - { - "label": "Low", - "value": "low" - }, - { - "label": "Medium", - "value": "medium" - }, - { - "label": "High", - "value": "high" - }, - { - "label": "All", - "value": "" - } - ], - "style": { - "margin": 15 - } - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "reset-historical-filters", - "pageScope": true, - "script": "\treset \u003d payload[\"data\"]\n\tself.props.value \u003d None", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.dropdown" - }, - { - "meta": { - "name": "Label_0" - }, - "position": { - "basis": "100px" - }, - "props": { - "style": { - "fontFamily": "Arial", - "fontWeight": "bold", - "textAlign": "center" - }, - "text": "MCM" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Dropdown_0" - }, - "position": { - "basis": "200px" - }, - "propConfig": { - "props.value": { - "persistent": false - } - }, - "props": { - "options": [ - { - "label": "MCM01", - "value": "MCM01" - }, - { - "label": "MCM02", - "value": "MCM02" - }, - { - "label": "MCM03", - "value": "MCM03" - }, - { - "label": "MCM04", - "value": "MCM04" - }, - { - "label": "MCM05", - "value": "MCM05" - } - ], - "placeholder": { - "text": "Filter MCMs..." - }, - "style": { - "margin": 15 - } - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "hjsgdfn", - "pageScope": false, - "script": "\tpass", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.dropdown" - }, - { - "custom": { - "Severity": "Critical", - "background_on": "false" - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tself.getSibling(\"Dropdown_0\").props.value \u003d \"\"\n\tself.getSibling(\"Dropdown\").props.value \u003d \"\"" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button" - }, - "position": { - "basis": "120px" - }, - "props": { - "image": { - "icon": { - "color": "#000000", - "path": "material/clear" - } - }, - "primary": false, - "style": { - "margin": 15 - }, - "text": "Reset" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "button-severity-indicator", - "pageScope": true, - "script": "\tbackground \u003d \"false\"\n\tseverity \u003d payload[\"severity\"]\n\tbutton_severity \u003d self.custom.Severity\n\tif severity \u003d\u003d button_severity:\n\t\tbackground \u003d \"true\"\n\telse:\n\t\tbackground \u003d \"false\"\n\t\n\tself.custom.background_on \u003d background\n\t", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.button" - } - ], - "meta": { - "name": "Priority" - }, - "position": { - "basis": "70px", - "shrink": 0 - }, - "type": "ia.container.flex" - } - ], - "custom": { - "ShowFilters": false - }, - "meta": { - "name": "Filters" - }, - "position": { - "basis": "180px", - "display": false, - "grow": 1, - "shrink": 0 - }, - "propConfig": { - "position.display": { - "binding": { - "config": { - "path": "this.custom.ShowFilters" - }, - "type": "property" - }, - "persistent": true - } - }, - "props": { - "direction": "column", - "style": { - "borderStyle": "solid", - "borderWidth": "1px", - "box-shadow": "0 4px 20px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19)", - "marginBottom": 10, - "marginLeft": 20, - "marginRight": 20, - "marginTop": 10 - } - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "show-historical-filters", - "pageScope": true, - "script": "\tshow \u003d payload[\"data\"]\n\tself.custom.ShowFilters \u003d show", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "custom": { - "amount": 0, - "max_duration": { - "$": [ - "ts", - 192, - 1748426336635 - ], - "$ts": 1747562336635 - }, - "page_size": 100, - "priority_filters": "", - "time_from_filter": { - "$": [ - "ts", - 192, - 1758783120911 - ], - "$ts": 1758779520911 - }, - "time_to_filter": { - "$": [ - "ts", - 192, - 1758783120911 - ], - "$ts": 1758783120911 - } - }, - "events": { - "component": { - "onRowDoubleClick": { - "config": { - "script": "\t\n\tmyData \u003d self.props.selection.data\n\n\talarms.alarm_click.handleClick(myData)" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Table" - }, - "position": { - "basis": "1920px", - "grow": 1 - }, - "propConfig": { - "props.columns[1].filter.date.value": { - "binding": { - "config": { - "path": "this.custom.time_from_filter" - }, - "type": "property" - } - }, - "props.columns[2].filter.date.value": { - "binding": { - "config": { - "path": "this.custom.time_to_filter" - }, - "type": "property" - } - }, - "props.columns[2].filter.number.value": { - "binding": { - "config": { - "path": "this.custom.time_to_filter" - }, - "enabled": false, - "type": "property" - } - }, - "props.columns[5].filter.string.value": { - "binding": { - "config": { - "path": "this.custom.priority_filters" - }, - "type": "property" - } - }, - "props.columns[6].filter.string.value": { - "binding": { - "config": { - "path": ".../Filters/Priority/Dropdown_0.props.value" - }, - "type": "property" - } - }, - "props.data": { - "binding": { - "config": { - "parameters": { - "endtime": "{.../Filters/Time/DateTimeInput_0.props.value}", - "offset": "({.../Paginate/FlexContainer_0/NumericEntryField.props.value}-1)*100", - "starttime": "{.../Filters/Time/DateTimeInput.props.value}" - }, - "polling": { - "enabled": true, - "rate": "3" - }, - "queryPath": "GetAlarms" - }, - "transforms": [ - { - "code": "\n\tfrom system.dataset import toPyDataSet\n\n\tds \u003d toPyDataSet(value)\n\tdata \u003d []\n\n\tcolumn_names \u003d list(ds.columnNames)\n\n\tfor row in ds:\n\t\tpriority \u003d row[\"Priority\"]\n\n\t\t# Use style class names from Perspective\n\t\tif priority \u003d\u003d \"High\":\n\t\t\tclassName \u003d \"Alarms-Styles/High\"\n\t\telif priority \u003d\u003d \"Medium\":\n\t\t\tclassName \u003d \"Alarms-Styles/Medium\"\n\t\telif priority \u003d\u003d \"Low\":\n\t\t\tclassName \u003d \"Alarms-Styles/Low\"\n\t\telif priority \u003d\u003d \"Diagnostic\":\n\t\t\tclassName \u003d \"Alarms-Styles/Diagnostic\"\n\t\telse:\n\t\t\tclassName \u003d \"Alarms-Styles/NoAlarm\"\n\n\t\t# Apply the style class to all cells in the row\n\t\trow_dict \u003d {\n\t\t\tcol: {\n\t\t\t\t\"value\": row[col],\n\t\t\t\t\"style\": { \"classes\": className }\n\t\t\t} for col in column_names\n\t\t}\n\t\tdata.append(row_dict)\n\n\treturn data", - "type": "script" - } - ], - "type": "query" - } - } - }, - "props": { - "bekaxui": 50, - "box-shadow": "0 4px 20px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19)", - "columns": [ - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "none", - "editable": false, - "field": "ID", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "", - "paddingLeft": 12 - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY HH:mm:ss", - "editable": false, - "field": "StartTimestamp", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "later than date time" - }, - "enabled": true, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "never" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "Start Timestamp" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "none", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY HH:mm:ss", - "editable": false, - "field": "EndTimestamp", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "earlier than date time" - }, - "enabled": true, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "never" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "End Timestamp" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "none", - "editable": false, - "field": "Duration", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "", - "paddingLeft": 12 - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "none", - "editable": false, - "field": "Description", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Priority", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": true, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "contains" - }, - "visible": "never" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Location", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": true, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "equals" - }, - "visible": "never" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Tag", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": true, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "contains", - "value": "" - }, - "visible": "never" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "FullTag", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "auto", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "", - "display": "none" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Device", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "auto", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "", - "display": "none" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - } - ], - "emptyMessage": { - "noData": { - "text": "No Alarms" - }, - "noFilterResults": { - "text": "No Alarms" - } - }, - "enabled": true, - "filter": { - "enabled": true, - "results": { - "enabled": true - } - }, - "pager": { - "bottom": false - }, - "style": { - "margin": 20 - }, - "total": "value" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "update-first-request", - "pageScope": true, - "script": "\tdata \u003d payload[\"data\"]\n\tinitial_data \u003d payload[\"initial_data\"]\n\tself.props.data \u003d data\n\tself.custom.initial_data \u003d initial_data", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "update-historical-data", - "pageScope": true, - "script": "\thistorical_data \u003d payload[\"data\"]\n\tself.props.data \u003d historical_data", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "load_initial_data", - "pageScope": true, - "script": "\trequest \u003d payload[\"data\"]\n\tsystem.perspective.print(\"initial message received\")\n\tif request \u003d\u003d True:\n\t\tself.props.data \u003d self.custom.initial_data", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "reset-historical-filters", - "pageScope": true, - "script": "\treset \u003d payload[\"data\"]\n\tif reset \u003d\u003d \"reset\":\n\t\tself.props.data \u003d []\n\t\tself.custom.device_filters \u003d None\n\t\tself.custom.priority_filters \u003d None\n\t\tself.custom.source_id_filters \u003d None\n\t\tself.custom.time_from_filter \u003d None\n\t\tself.custom.time_to_filter \u003d None\n\t\tself.custom.type_filters \u003d None\n\t\tself.custom.duration_filter \u003d None\n\t\tself.props.enabled \u003dTrue", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-source-filters", - "pageScope": true, - "script": "\tfilters \u003d payload[\"data\"]\n\tself.custom.source_id_filters \u003d filters", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-device-filters", - "pageScope": true, - "script": "\tfilters \u003d payload[\"data\"]\n\tself.custom.device_filters \u003d filters", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-priority-filters", - "pageScope": true, - "script": "\tfilters \u003d payload[\"data\"]\n\tself.custom.priority_filters \u003d filters", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-from-filters", - "pageScope": true, - "script": "\ttime \u003d payload[\"data\"]\n\tself.custom.time_from_filter \u003d time", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-to-filters", - "pageScope": true, - "script": "\ttime \u003d payload[\"data\"]\n\tself.custom.time_to_filter \u003d time", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-type-filters", - "pageScope": true, - "script": "\tfilters \u003d payload[\"data\"]\n\tself.custom.type_filters \u003d filters", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-duration-filters", - "pageScope": true, - "script": "\tduration \u003d payload[\"data\"]\n\tself.custom.duration_filter \u003d duration", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.display.table" - } - ], - "meta": { - "name": "Table" - }, - "position": { - "basis": "980px", - "grow": 1 - }, - "props": { - "direction": "column" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "update-historical-data", - "pageScope": true, - "script": "#\tdata \u003d payload[\"data\"]\n#\tself.getChild(\"Table\").props.data \u003d data", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "custom": { - "download_in_progress": true, - "enable_timeout": false, - "priority_filters": "", - "time_from_filter": { - "$": [ - "ts", - 192, - 1758783120911 - ], - "$ts": 1758779520911 - }, - "time_to_filter": { - "$": [ - "ts", - 192, - 1758783120911 - ], - "$ts": 1758783120911 - }, - "type_filters": null - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\n from datetime import datetime\n def format_date(value):\n\t\tif isinstance(value, (int, long)) and value \u003e 10000000:\n\t\t\ttimestamp \u003d system.date.fromMillis(value)\n\t\t\treturn system.date.format(timestamp, \"yyyy-MM-dd HH:mm:ss\")\n\t\t\t\n\t\t# If value is not a valid timestamp, return as-is\n\t\treturn str(value)\n \n try:\n\n # Get filtered data\n table \u003d self.parent.parent.getChild(\"Table\").getChild(\"Table\")\n filtered_data \u003d table.props.filter.results.data\n\n if not filtered_data or len(filtered_data) \u003d\u003d 0:\n system.perspective.print(\"No filtered data to export.\")\n return\n\n # Get correct column order from the table\u0027s column config\n column_order \u003d [col[\"field\"] for col in table.props.columns if \"field\" in col]\n\n csv_content \u003d \",\".join(column_order) + \"\\n\"\n\n # Build rows\n for row_dict in filtered_data:\n row \u003d []\n for col in column_order:\n raw_val \u003d row_dict.get(col, \"\")\n value \u003d format_date(raw_val)\n value \u003d value.replace(\",\", \";\") # CSV safety\n row.append(value)\n csv_content +\u003d \",\".join(row) + \"\\n\"\n\n # Export CSV\n csv_bytes \u003d csv_content.encode(\"utf-8\")\n system.perspective.download(\"filtered_alarms_history.csv\", csv_bytes)\n\n system.perspective.print(\"CSV export completed successfully. Exported %d records.\" % len(filtered_data))\n\n except Exception as e:\n system.perspective.print(\"Export failed: \" + str(e))" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Export", - "tooltip": { - "enabled": true, - "text": "Exports the data displayed in the table." - } - }, - "position": { - "basis": "120px", - "shrink": 0 - }, - "propConfig": { - "custom.disable": { - "binding": { - "config": { - "expression": "if(isNull({this.custom.start_time}), False, secondsBetween({this.custom.start_time}, {this.custom.time_now}))" - }, - "transforms": [ - { - "code": "\tif value \u003e 60:\n\t\tself.custom.enable_timeout \u003d False\n\t\treturn False\n\telse:\n\t\treturn True", - "type": "script" - } - ], - "type": "expr" - } - }, - "custom.download_complete": { - "binding": { - "config": { - "path": "session.custom.downloads" - }, - "transforms": [ - { - "code": "\tif value \u003d\u003d True:\n\t\tself.custom.download_in_progress \u003d False", - "type": "script" - } - ], - "type": "property" - } - }, - "custom.priority_filters": { - "persistent": true - }, - "custom.start_time": { - "binding": { - "config": { - "expression": "{this.custom.enable_timeout}" - }, - "transforms": [ - { - "code": "\tif value \u003d\u003d True:\n\t\treturn self.custom.time_now", - "type": "script" - } - ], - "type": "expr" - } - }, - "custom.time_from_filter": { - "persistent": true - }, - "custom.time_now": { - "binding": { - "config": { - "expression": "now()" - }, - "type": "expr" - } - }, - "custom.time_to_filter": { - "persistent": true - }, - "props.enabled": { - "binding": { - "config": { - "expression": "!{this.custom.enable_timeout} || !{this.custom.download_in_progress} " - }, - "type": "expr" - } - }, - "props.text": { - "binding": { - "config": { - "expression": "if(!{this.custom.enable_timeout}, \"Export\",\r\nif({this.custom.download_in_progress}, \"Exporting...\",\r\n\"Export\"))" - }, - "type": "expr" - } - } - }, - "props": { - "image": { - "icon": { - "path": "material/import_export" - } - }, - "primary": false, - "style": { - "margin": 15, - "marginLeft": 20 - } - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "set-source-filters", - "pageScope": true, - "script": "\tfilters \u003d payload[\"data\"]\n\tself.custom.source_id_filters \u003d filters", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-device-filters", - "pageScope": true, - "script": "\tfilters \u003d payload[\"data\"]\n\tself.custom.device_filters \u003d filters", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-message-filters", - "pageScope": true, - "script": "\tfilters \u003d payload[\"data\"]\n\tself.custom.message_filters \u003d filters", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-priority-filters", - "pageScope": true, - "script": "\tfilters \u003d payload[\"data\"]\n\tself.custom.priority_filters \u003d filters", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-from-filters", - "pageScope": true, - "script": "\ttime \u003d payload[\"data\"]\n\tself.custom.time_from_filter \u003d time", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-to-filters", - "pageScope": true, - "script": "\ttime \u003d payload[\"data\"]\n\tself.custom.time_to_filter \u003d time", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "reset-historical-filters", - "pageScope": true, - "script": "\taction \u003d payload[\"data\"]\n\tif action \u003d\u003d \"reset\":\n\t\tself.custom.device_filters \u003d None\n\t\tself.custom.priority_filters \u003d None\n\t\tself.custom.source_id_filters \u003d None\n\t\tself.custom.time_from_filter \u003d None\n\t\tself.custom.time_to_filter \u003d None\n\t\tself.custom.type_filters \u003d None\n\t\tself.custom.duration_filter \u003d None\n\t\tself.props.enabled \u003dTrue\n\t\t", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-type-filters", - "pageScope": true, - "script": "\tfilters \u003d payload[\"data\"]\n\tself.custom.type_filters \u003d filters", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-duration-filters", - "pageScope": true, - "script": "\tduration \u003d payload[\"data\"]\n\tself.custom.duration_filter \u003d duration", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.button" - }, - { - "meta": { - "name": "Label" - }, - "position": { - "basis": "580px", - "grow": 1 - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "FlexContainer" - }, - "position": { - "basis": 960 - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\t# Get current page number from NumericEntryField\n\tcurrent_page \u003d self.getSibling(\"NumericEntryField\").props.value\n\t\n\t# Decrease page by 1, but don\u0027t go below 1\n\tif current_page \u003e 1:\n\t\tself.getSibling(\"NumericEntryField\").props.value \u003d current_page - 1" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button" - }, - "position": { - "basis": 150 - }, - "props": { - "image": { - "height": 50, - "width": 50 - }, - "primary": false, - "text": "Back" - }, - "type": "ia.input.button" - }, - { - "meta": { - "name": "NumericEntryField" - }, - "position": { - "basis": "196px" - }, - "props": { - "format": "0,0", - "value": 1 - }, - "type": "ia.input.numeric-entry-field" - }, - { - "custom": { - "value": "value" - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\t# Get current value from NumericEntryField\n\tcurrent_value \u003d self.getSibling(\"NumericEntryField\").props.value\n\t\n\t# Increase by 1\n\tself.getSibling(\"NumericEntryField\").props.value \u003d current_value + 1" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button_0" - }, - "position": { - "basis": 150 - }, - "props": { - "image": { - "height": 50, - "width": 50 - }, - "primary": false, - "text": "Next" - }, - "type": "ia.input.button" - } - ], - "meta": { - "name": "FlexContainer_0" - }, - "position": { - "basis": 960 - }, - "props": { - "justify": "space-evenly" - }, - "type": "ia.container.flex" - }, - { - "meta": { - "name": "FlexContainer_1" - }, - "position": { - "basis": 960 - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "Paginate" - }, - "position": { - "basis": "70px", - "shrink": 0 - }, - "props": { - "justify": "space-evenly" - }, - "type": "ia.container.flex" - }, - { - "meta": { - "name": "FlexContainer_1" - }, - "position": { - "basis": 50 - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "root" - }, - "props": { - "direction": "column", - "style": { - "classes": "Background-Styles/Grey-Background" - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "Historical_tab" - }, - "position": { - "tabIndex": 2 - }, - "props": { - "direction": "column", - "justify": "space-evenly" - }, - "type": "ia.container.flex" - } - ], - "custom": { - "shelvedAlarms": [] - }, - "meta": { - "name": "TabContainer" - }, - "position": { - "basis": "300px", - "grow": 1 - }, - "propConfig": { - "props.currentTabIndex": { - "onChange": { - "enabled": null, - "script": "\tif self.props.currentTabIndex !\u003d 0:\n\t payload \u003d {}\n\t filter_on \u003d \"false\"\n\t payload[\"reset\"] \u003d filter_on\n\t system.perspective.sendMessage(\"reset-filters\", payload\u003dpayload, scope\u003d\"page\")\n\t \n\tif currentValue.value \u003d\u003d 1:\n\t shelved_info \u003d system.alarm.getShelvedPaths()\n\t alarms \u003d system.alarm.queryStatus(includeShelved\u003dTrue)\n\t \n\t tableData \u003d []\n\t \n\t for alarm in alarms:\n\t if alarm.isShelved() and not alarm.isAcked() and not alarm.isCleared():\n\t # Get alarm path as string\n\t alarm_path \u003d str(alarm.getSource())\n\t \n\t # Get active time\n\t activeData \u003d alarm.getActiveData()\n\t startTime \u003d activeData.getTimestamp() if activeData else None\n\t \n\t # Find shelved info for this alarm\n\t shelveEntry \u003d \"\"\n\t \n\t for shelved_item in shelved_info:\n\t shelved_str \u003d str(shelved_item)\n\t \n\t if alarm_path in shelved_str:\n\t # Extract the value part (after the first comma)\n\t if \",\" in shelved_str:\n\t start_idx \u003d shelved_str.find(\",\")\n\t shelveEntry \u003d shelved_str[start_idx + 1:].rstrip(\"}\")\n\t break\n\t \n\t # Parse shelved information\n\t expiration \u003d \"\"\n\t \n\t if shelveEntry:\n\t # Extract expiration (between \"expiration:\" and \",\")\n\t if \"expiration:\" in shelveEntry:\n\t exp_part \u003d shelveEntry.split(\"expiration:\")[1]\n\t if \",\" in exp_part:\n\t expiration \u003d exp_part.split(\",\")[0].strip()\n\t else:\n\t expiration \u003d exp_part.strip()\n\t \n\t # Only add if we have a valid start time\n\t if startTime:\n\t tableData.append({\n\t \"name\": alarm.getName(),\n\t \"path\": alarm_path,\n\t \"activeTime\": system.date.format(system.date.fromMillis(startTime), \"yyyy-MM-dd HH:mm:ss\"),\n\t \"expirationTime\": expiration,\n\t \"priority\": str(alarm.getPriority())\n\t })\n\t \n\t self.custom.shelvedAlarms \u003d tableData\n\t\n\ttry:\n\t pageid \u003d self.view.custom.activityLogger.alt_pageid + \u0027/\u0027 + self.props.tabs[previousValue.value]\n\t pageid \u003d pageid.replace(\u0027 \u0027, \u0027\u0027)\n\t payload \u003d activityLog.productMetrics.createActivityPayload(self.view, \u0027page\u0027, pageid, pageid)\n\t self.view.custom.activityLogger.start_time \u003d system.date.now()\n\t if payload:\n\t system.perspective.sendMessage(\u0027activityLogger-TabChanged\u0027, payload\u003dpayload, scope\u003d\u0027page\u0027)\n\texcept:\n\t pass" - } - } - }, - "props": { - "contentStyle": { - "classes": "Background-Styles/Grey-Background" - }, - "menuType": "modern", - "style": { - "classes": "Background-Styles/Grey-Background" - }, - "tabSize": { - "width": 140 - }, - "tabStyle": { - "active": { - "backgroundColor": "#EEEEEE", - "borderLeftColor": "#7FFF00", - "borderLeftStyle": "solid", - "borderLeftWidth": 5, - "borderTopLeftRadius": 5, - "borderTopRightRadius": 5, - "color": "#000000", - "fontFamily": "Arial", - "fontWeight": "bold", - "outlineStyle": "none", - "textDecoration": "underline" - }, - "inactive": { - "backgroundColor": "#D7D7D7", - "borderLeftColor": "#FFFFFF", - "borderTopLeftRadius": 5, - "borderTopRightRadius": 5, - "color": "#969696", - "fontFamily": "Arial" - } - }, - "tabs": [ - "Active Alarms", - "Alarm Hit List", - "Historical" - ] - }, - "type": "ia.container.tab" - } - ], - "meta": { - "name": "root" - }, - "props": { - "style": { - "classes": "Background-Styles/Main-Background" - } - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "activityLogger-TabChanged", - "pageScope": true, - "script": "\t# implement your handler here\n\tif payload:\n\t\tactivityLog.productMetrics.callActivityLoggerAPI(payload)", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.container.flex" - } -} \ No newline at end of file diff --git a/.resources/26a34e8edbd6a405250bfdb8114e1fd8ccc502c2f1e187b06efedc6804ebe75b b/.resources/26a34e8edbd6a405250bfdb8114e1fd8ccc502c2f1e187b06efedc6804ebe75b deleted file mode 100644 index 46c1c60e6b54242ef535bb63dd97ff274e239f73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63203 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 THsk&l00000NkvXXu0mjf#65_W diff --git a/.resources/34a2e32898c97d572d0cd651ff0d7b7226ebc477d39157377d2df7aef03e5216 b/.resources/34a2e32898c97d572d0cd651ff0d7b7226ebc477d39157377d2df7aef03e5216 deleted file mode 100644 index ac871cef..00000000 --- a/.resources/34a2e32898c97d572d0cd651ff0d7b7226ebc477d39157377d2df7aef03e5216 +++ /dev/null @@ -1,228 +0,0 @@ -{ - "custom": { - "alarm_filter": { - "magnificaiton": "None", - "orderby": false, - "show_buttons": true, - "show_camera_jams": true, - "show_diagnostic": true, - "show_fio": true, - "show_gateways": true, - "show_low_alarm": true, - "show_map": true, - "show_running": true, - "show_safety": true - }, - "alarms": [], - "aws": { - "prefix": "eu", - "region": "eu-west-1" - }, - "colours": { - "Fallback": "#00FF00", - "colour_impaired": false, - "state0": "#8C8C8C", - "state1": "#FF0000", - "state6": "#CCCCFF" - }, - "command_auth": { - "auth_time": { - "$": [ - "ts", - 192, - 1758618839575 - ], - "$ts": 1758618839575 - }, - "enabled": false, - "timeout_sp": 500 - }, - "covert": true, - "deviceSearchId": "", - "download_url": "https://scadacloud-storage-prod-downloadbucketdc1a1095-17r7vrw051y3t.s3.amazonaws.com/history/DNG2/58b56f26-c115-41b5-badb-a3394f312630-1672826106.csv?AWSAccessKeyId\u003dASIAVDEI3U6Y3J5KB2NA\u0026Signature\u003dzucRF2nCigK4y5M%2BNbjoI06UUng%3D\u0026x-amz-security-token\u003dIQoJb3JpZ2luX2VjEKL%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCWV1LXdlc3QtMSJIMEYCIQCy78peP6YRJ1gyf9RROmmcfk%2BRHyPhxv6ejHJgyEG0KQIhALXnJXYIyDiWzr9vxehoDIa2c7sx818gUyuiFXYY6rb2KsoDCOv%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEQABoMMzUwMzI2ODU5Njk3IgzVrdKyNsVjl%2BNjqWQqngOJCTFOLVppHMmo1otgHZCXlVISlnBz6rz6ykr8SHgGQPc0EsaL9a1I0oQmS42i%2BlRHpEpQfMdjUbP3dr2OnVKXmopkkUJZ592SPzA3MZzS95SHXMvbbPDs0OAw5mKdS6LHQAQb90ZdQdeoEj%2FG1bPEIiifVT07PhHMA0JMS7ExgXmHzq1c6W%2Fjc%2BdfQOjl41qnWcE1GH5MaVfU%2FOKW5PffN6pLf%2BJ61YjjbXqPIpPHimJSGqMI5BmFzAfSlsYAtgFT8bMyJhbUDaPlDF7X42SSYLs1CeAbddPFMvrhDIUk%2BYTA3oV69SMjX91LrKBNqRhFS%2F0R4U8nbA4rSd%2BhMkdr5RSwa9Q22ZQpbzuqQU1H%2B4oQy6419lQg3lkBF5SBNGdvQajD6mav2ipHYe7OkX5GKq2pNzBLzJsqGGnsJvISB83ShA6SnuiZFx%2F2LXvDtEu3jTCS4yRjDegxiKRBs%2FiwH0dN2ztb8a3vnSJN0EqaoORf2eVb%2BozzAv1EBaqnUEZZAoOKb8iaxpbZtqLaUNOOd7VsHsUPoBQRkKqH2RAw95nVnQY6nQFAgIr2YAjgyrsuAfVgr2b41jc3Dj83zJ6I9LI%2BglDMgQFyfL0RNPmoxEu3DDfq5yLy8MtiPlYcs71J3J8Z%2B7xIkH%2BIPWKwmKLsvaEtN7Io1kOfvFgEcMhhIPRwwEj70AVokPncUQ8HtKQhXnq7l1YZ4yyAw2poT%2Ff%2FgJwv7suOu2dZeh%2BH%2B9OwE4M%2BRmVoFO7tTWIakPgODw2ZFzqs\u0026Expires\u003d1672829705", - "enable_activity_logging": true, - "fc": "SAT9", - "id_to_state": "{\"PLC01/0820_06_09\":1,\"PLC02/0820_91_16/B4510\":1,\"PLC03/0820_82_04/B312_3\":1,\"PLC09/0120_33_01/B425_0\":1,\"PLC09/1210_03_27\":3,\"PLC02/0820_07_39_BT1\":1,\"ARSAW1501/05_10/B12_6\":3,\"PLC09/0110_13_40\":1,\"FSC10/TRZ_0850_01/CAS_0850_01_0299\":2,\"PLC02/0820_05_31/B4000_2\":1,\"PLC09/1210_03_30\":3,\"PLC09/1210_03_36\":3,\"PLC1000/1000_43_01\":1,\"PLC09/0120_35_18/B505_2\":1,\"PLC02/0820_05_20/B3804_6\":1,\"PLC01/0820_06_05\":1,\"PLC01/0820_06_07\":1,\"PLC1000/1000_22_02/B501_3\":1,\"PLC01/0820_01_41/B6103_2\":1,\"PLC1000/1000_42_04/B517_7\":1,\"PLC09/2210_08_60/B911_1\":1,\"PLC02/0820_05_06/B3702_6\":1,\"PLC09/2210_08_60/B911_5\":1,\"PLC09/0110_23_40/B304_2\":1,\"PLC09/1210_02_01/B705_0\":1,\"PLC09/1210_03_25\":3,\"PLC01/0820_01_75/B6401_6\":1,\"PLC01/0820_64_03\":1,\"PLC02/0820_07_29_BT1/TN12A\":1,\"PLC02/0820_05_03/B3701_2\":1,\"PLC01/0820_06_14\":1,\"PLC09/2210_03_45/B1007_4\":1,\"PLC01/0820_06_17\":1,\"PLC01/0820_06_18\":1,\"FSC10/OFZ_0850_31/CH_0850_31_06\":2,\"FSC10/OFZ_0850_31/CH_0850_31_07\":2,\"FSC10/OFZ_0850_31/CH_0850_31_04\":2,\"FSC10/OFZ_0850_31/CH_0850_31_05\":2,\"FSC10/OFZ_0850_31/CH_0850_31_08\":2,\"FSC10/OFZ_0850_31/CH_0850_31_09\":2,\"PLC09/1210_03_06\":3,\"PLC09/1210_03_04\":3,\"PLC02/0820_05_41/B4100_2\":1,\"FSC10/OFZ_0850_31/CH_0850_31_02\":2,\"PLC02/0820_91_08/B4318\":1,\"FSC10/OFZ_0850_31/CH_0850_31_03\":2,\"FSC10/OFZ_0850_31/CH_0850_31_01\":2,\"FSC10/TRZ_0850_01/CAS_0850_01_0148\":3,\"PLC02/0820_01_07\":1,\"PLC09/1210_03_13\":3,\"PLC09/1210_03_12\":1,\"PLC26/0513_11_02/B118_1\":3,\"PLC09/0120_52_23/B528_6\":1,\"PLC09/0120_51_01/B510_0\":1,\"ARSAW1303\":3,\"PLC09/2210_02_01\":1,\"PLC09/1210_02_30\":3,\"PLC1000/1000_42_04\":1,\"PLC09/1210_03_02\":3,\"PLC1000/1000_43_01/B525_0\":1,\"PLC26/0513_31_30/M1\":3,\"PLC01/0820_02_02/B6500_6\":1,\"FSC10/OFZ_0850_31/CH_0850_31_28\":2,\"FSC10/OFZ_0850_31/CH_0850_31_29\":2,\"FSC10/OFZ_0850_31/CH_0850_31_26\":2,\"PLC09/0110_23_40\":1,\"PLC01/0820_01_47/B6200_6\":1,\"FSC10/OFZ_0850_52/CH_0850_52_01\":2,\"FSC10/OFZ_0850_31/CH_0850_31_27\":2,\"FSC10/OFZ_0850_31/CH_0850_31_20\":2,\"FSC10/OFZ_0850_31/CH_0850_31_21\":2,\"FSC10/OFZ_0850_31/CH_0850_31_24\":2,\"FSC10/OFZ_0850_31/CH_0850_31_25\":2,\"FSC10/OFZ_0850_31/CH_0850_31_22\":2,\"FSC10/OFZ_0850_31/CH_0850_31_23\":2,\"FSC10/IFZ_0850_68/PCO_0850_68_98\":2,\"PLC09/0120_33_10\":1,\"PLC09/2210_09_60\":1,\"PLC09/0110_01_20\":1,\"FSC10/OFZ_0850_31/CH_0850_31_17\":2,\"FSC10/OFZ_0850_31/CH_0850_31_18\":2,\"FSC10/OFZ_0850_31/CH_0850_31_15\":2,\"FSC10/OFZ_0850_31/CH_0850_31_16\":2,\"FSC10/OFZ_0850_31/CH_0850_31_19\":2,\"PLC09/0120_52_08/B526_7\":1,\"FSC10/OFZ_0850_31/CH_0850_31_10\":2,\"PLC02/0820_91_14/B4422\":1,\"FSC10/OFZ_0850_31/CH_0850_31_13\":2,\"FSC10/OFZ_0850_31/CH_0850_31_14\":2,\"FSC10/OFZ_0850_31/CH_0850_31_11\":2,\"FSC10/OFZ_0850_31/CH_0850_31_12\":2,\"FSC10/TRZ_0850_01/CAS_0850_01_0147\":3,\"PLC01/0820_06_05/B6902_2\":1,\"FSC10/OFZ_0850_51/CH_0850_51_50\":2,\"PLC09/0120_33_01\":1,\"PLC09/1210_03_60\":3,\"FSC10/OFZ_0850_31/CH_0850_31_48\":2,\"FSC10/OFZ_0850_31/CH_0850_31_49\":2,\"PLC01/0820_02_04/B6501_6\":1,\"FSC10/OFZ_0850_31/CH_0850_31_42\":2,\"PLC02/0820_07_09_BT1\":1,\"FSC10/OFZ_0850_51/CH_0850_51_43\":2,\"PLC01/0820_03_18/B6802_6\":1,\"FSC10/OFZ_0850_31/CH_0850_31_43\":2,\"PLC09/1210_03_48\":3,\"FSC10/OFZ_0850_31/CH_0850_31_40\":2,\"FSC10/OFZ_0850_51/CH_0850_51_41\":2,\"FSC10/OFZ_0850_31/CH_0850_31_41\":2,\"PLC02/0820_91_18/B4518\":1,\"FSC10/OFZ_0850_31/CH_0850_31_46\":2,\"FSC10/OFZ_0850_31/CH_0850_31_47\":2,\"FSC10/OFZ_0850_51/CH_0850_51_44\":2,\"FSC10/OFZ_0850_31/CH_0850_31_44\":2,\"FSC10/OFZ_0850_31/CH_0850_31_45\":2,\"PLC01/0820_55_03/B420_1\":1,\"FSC10/OFZ_0850_31/CH_0850_31_39\":2,\"FSC10/OFZ_0850_31/CH_0850_31_37\":2,\"FSC10/OFZ_0850_31/CH_0850_31_38\":2,\"PLC09/1210_03_39\":3,\"FSC10/OFZ_0850_31/CH_0850_31_31\":2,\"FSC10/OFZ_0850_31/CH_0850_31_32\":2,\"PLC09/0120_32_02\":1,\"FSC10/OFZ_0850_31/CH_0850_31_30\":2,\"PLC09/0120_35_10/B504_1\":1,\"FSC10/OFZ_0850_31/CH_0850_31_35\":2,\"PLC09/2210_02_01/B905_0\":1,\"PLC09/0110_23_40/B305_1\":1,\"ARSAW1501\":3,\"PLC09/0110_23_40/B305_0\":1,\"FSC10/OFZ_0850_31/CH_0850_31_36\":2,\"FSC10/OFZ_0850_31/CH_0850_31_33\":2,\"PLC09/0110_23_40/B305_2\":1,\"FSC10/OFZ_0850_31/CH_0850_31_34\":2,\"PLC09/1210_03_42\":3,\"PLC01/0820_06_07/B6903_2\":1,\"PLC26/0513_11_02\":3,\"PLC09/1210_03_45\":3,\"PLC09/0120_32_11\":1,\"ARSAW1303/05_22\":3,\"PLC09/0110_01_20/B102_3\":1,\"PLC09/0110_01_20/B102_2\":1,\"PLC09/2210_03_45\":1,\"PLC01/0820_01_73/B6400_6\":1,\"PLC02/0820_07_49_BT1\":1,\"PLC80/0632_05_40/B113_3\":1,\"PLC80/0632_05_40/B113_4\":1,\"PLC26/S01/A902\":4,\"PLC80/0632_05_40/B113_5\":1,\"PLC26/S01/A901\":4,\"PLC26/0513_31_23\":3,\"PLC09/0120_43_01\":1,\"PLC80/0632_05_40/B113_2\":1,\"PLC80/0632_01_07/B103_6\":1,\"PLC14/0580_01_01\":3,\"PLC09/0120_51_08/B510_7\":1,\"PLC09/0120_41_20/B521_3\":1,\"PLC26/0513_31_19\":3,\"PLC01/0820_02_05/B6502_2\":1,\"PLC02/0820_07_29_BT1\":1,\"PLC02/0820_91_12/B4414\":1,\"PLC82/0640_21_02/BT1\":1,\"PLC01/0820_02_01/B6500_2\":1,\"FSC10/OFZ_0850_53/CH_0850_53_02\":2,\"PLC81/0631_05_40/B113_5\":1,\"PLC02/0820_91_13/B4418\":1,\"PLC09/1210_02_30/M1\":3,\"PLC81/0631_05_40/B113_4\":1,\"PLC81/0631_05_40/B113_3\":1,\"FSC10/OFZ_0850_55/CH_0850_55_04\":2,\"PLC1000/1000_22_02\":1,\"PLC69/0330_07_20/B118_4\":1,\"FSC10/OFZ_0850_55/CH_0850_55_02\":2,\"FSC10/OFZ_0850_55/CH_0850_55_03\":2,\"PLC69/0330_07_20/B118_3\":1,\"PLC16/0580_21_01\":3,\"PLC01/0820_01_43/B6104_2\":1,\"PLC1000/1000_33_12\":1,\"PLC01/0820_55_03\":1,\"PLC27/0514_04_20/B106_5\":1,\"PLC09/2210_04_22\":1,\"PLC02/0820_05_14/B3801_6\":1,\"PLC26/0513_31_30\":3,\"PLC26/0513_32_01\":3,\"PLC09/1210_03_27/B805_2\":3,\"PLC02/0820_05_24/B3901_6\":1,\"PLC09/1210_03_04/B802_3\":3,\"PLC82/0640_21_03\":1,\"PLC82/0640_21_04\":1,\"PLC82/0640_21_01\":1,\"PLC26/0513_31_23/B320_6\":3,\"PLC82/0640_21_02\":1,\"FSC10/OFZ_0850_53/CH_0850_53_20\":2,\"FSC10/TRZ_0850_01/CAS_0850_01_1180\":3,\"PLC02/0820_91_06/B4310\":1,\"PLC09/0110_21_20\":1,\"PLC1000/1000_33_01\":1,\"FSC10/OFZ_0850_53/CH_0850_53_29\":2,\"FSC10/OFZ_0850_53/CH_0850_53_26\":2,\"PLC01/0820_01_71/B6306_6\":1,\"PLC09/0120_35_26/B506_2\":1,\"PLC09/0120_51_01\":1,\"PLC09/0120_51_08\":1,\"PLC09/0120_41_14/B520_5\":1,\"PLC09/0120_41_20\":1,\"PLC09/0120_32_11/B423_2\":1,\"PLC82/0640_21_01/BT1\":1,\"PLC09/1210_09_60/M1\":3,\"PLC80/0632_05_40\":1,\"PLC09/0120_41_14\":1,\"FSC10\":4,\"PLC01/0820_57_03\":1,\"PLC02/0820_05_02/B3700_6\":1,\"PLC09/0120_51_15\":1,\"PLC02/0820_91_51/B5210\":1,\"PLC27/0514_04_20\":1,\"PLC09/1210_03_45/B807_4\":3,\"PLC09/1210_03_39/B806_6\":3,\"PLC01/0820_57_03/B421_1\":1,\"PLC09/0120_41_08\":1,\"PLC02/0820_91_52/B5214\":1,\"PLC09/0120_51_23\":1,\"PLC09/2210_03_12\":1,\"FSC10/TRZ_0850_01/CAS_0850_01_1174\":3,\"PLC09/0120_52_15/B527_6\":1,\"PLC01/0820_01_77/B6402_6\":1,\"PLC01/0820_06_18/B7003_6\":1,\"PLC02/0820_91_02/B4214\":1,\"FSC10/OFZ_0850_33/CH_0850_33_21\":2,\"PLC26/0513_31_19/B320_2\":3,\"FSC10/OFZ_0850_33/CH_0850_33_25\":2,\"PLC09/0120_52_01\":1,\"PLC02/0820_91_53/B5218\":1,\"FSC10/OFZ_0850_75\":2,\"FSC10/OFZ_0850_73\":2,\"PLC09/0120_52_08\":1,\"PLC01/0820_02_03/B6501_2\":1,\"PLC09/2210_07_01\":1,\"FSC10/OFZ_0850_54/CH_0850_54_08\":2,\"PLC01/0820_06_14/B7001_6\":1,\"FSC10/OFZ_0850_54/CH_0850_54_06\":2,\"FSC10/OFZ_0850_54/CH_0850_54_03\":2,\"PLC82/0640_21_04/BT1\":1,\"FSC10/MAZ_0850_98/CCO_0850_98_98\":3,\"PLC09/0120_52_15\":1,\"PLC02/0820_07_19_BT1/TN8A\":1,\"FSC10/OFZ_0850_33/CH_0850_33_13\":2,\"PLC02/0820_04_28/B3601_6\":1,\"FSC10/OFZ_0850_33/CH_0850_33_14\":2,\"FSC10/OFZ_0850_33/CH_0850_33_12\":2,\"PLC01/0820_06_09/B6904_2\":1,\"PLC09/2210_06_29\":1,\"FSC10/OFZ_0850_33/CH_0850_33_15\":2,\"PLC09/2210_03_12/B1003_3\":1,\"PLC81/0631_05_40\":1,\"FSC10/OFZ_0850_33/CH_0850_33_19\":2,\"FSC10/OFZ_0850_54/CH_0850_54_19\":2,\"PLC02/0820_07_39_BT1/TN16A\":1,\"FSC10/OFZ_0850_54/CH_0850_54_17\":2,\"PLC69\":1,\"PLC09/2210_09_60/B912_5\":1,\"PLC09/0120_52_23\":1,\"PLC02/0820_05_41\":1,\"PLC01/0820_01_49/B6201_6\":1,\"FSC10/OFZ_0850_55\":2,\"PLC09/2210_07_27\":1,\"FSC10/OFZ_0850_54\":2,\"FSC10/OFZ_0850_33/CH_0850_33_05\":2,\"FSC10/OFZ_0850_53\":2,\"PLC01/0820_64_03/B425_5\":1,\"FSC10/OFZ_0850_52\":2,\"FSC10/OFZ_0850_51\":2,\"PLC02/0820_07_19_BT1\":1,\"FSC10/OFZ_0850_75/CH_0850_75_08\":2,\"FSC10/OFZ_0850_54/CH_0850_54_20\":2,\"PLC02/0820_91_07/B4314\":1,\"PLC69/0330_09_30\":1,\"PLC69/0330_09_30/B120_2\":1,\"PLC69/0330_09_30/B120_4\":1,\"PLC07/0320_31_20/B520_1\":1,\"PLC80\":1,\"PLC09/0120_51_15/B511_6\":1,\"FSC10/MAZ_0850_98\":3,\"PLC03\":1,\"PLC01/0820_02_04\":1,\"PLC01/0820_02_03\":1,\"PLC01/0820_02_13/B6600_2\":1,\"PLC09/2210_04_22/B1011_5\":1,\"PLC01\":1,\"PLC01/0820_02_02\":1,\"PLC01/0820_02_01\":1,\"PLC02\":1,\"PLC07\":1,\"PLC02/0820_05_20\":1,\"FSC10/OFZ_0850_33\":2,\"FSC10/OFZ_0850_32\":2,\"FSC10/OFZ_0850_31\":2,\"PLC02/0820_05_24\":1,\"PLC02/0820_05_27\":1,\"PLC82/0640_21_03/BT1\":1,\"PLC09\":3,\"PLC01/0820_02_05\":1,\"PLC14\":3,\"PLC01/0820_01_47\":1,\"PLC01/0820_01_46\":1,\"PLC01/0820_02_13\":1,\"ARSAW1501/05_10\":3,\"PLC01/0820_06_17/B7003_2\":1,\"PLC01/0820_01_43\":1,\"PLC02/0820_91_17/B4514\":1,\"PLC01/0820_71_03/B428_1\":1,\"PLC01/0820_01_41\":1,\"PLC16\":3,\"PLC02/0820_05_31\":1,\"PLC1000/1000_12_02/B308_7\":1,\"PLC01/0820_01_50/B6202_2\":1,\"PLC01/0820_59_03/B422_1\":1,\"PLC09/1210_03_60/M1\":3,\"PLC03/0820_82_04\":1,\"PLC01/0820_01_49\":1,\"PLC26\":4,\"PLC01/0820_02_20\":1,\"PLC27\":1,\"PLC01/0820_71_03\":1,\"PLC01/0820_01_50\":1,\"PLC02/0820_05_03\":1,\"PLC02/0820_05_02\":1,\"PLC02/0820_91_28/B4718\":1,\"PLC02/0820_91_33/B4818\":1,\"PLC02/0820_05_06\":1,\"PLC1000/1000_12_02\":1,\"PLC80/0632_03_01/B106_0\":1,\"PLC02/0820_91_15/B4430\":1,\"PLC01/0820_03_07\":1,\"PLC01/0820_03_08\":1,\"PLC01/0820_01_63\":1,\"PLC02/0820_05_14\":1,\"ARSAW1303/05_22/B11_4\":3,\"PLC02/0820_05_15\":1,\"PLC09/2210_06_02\":1,\"PLC01/0820_59_03\":1,\"PLC09/0120_51_23/B512_6\":1,\"PLC09/1210_03_12/B803_3\":1,\"PLC09/1210_03_06/B802_5\":3,\"PLC09/2210_07_01/B1025_0\":1,\"PLC01/0820_03_18\":1,\"PLC01/0820_03_07/B6703_2\":1,\"FSC10/OFZ_0850_32/CH_0850_32_03\":2,\"PLC01/0820_01_79\":1,\"PLC09/0120_41_08/B519_7\":1,\"PLC01/0820_01_77\":1,\"PLC02/0820_91_18\":1,\"PLC02/0820_91_17\":1,\"PLC01/0820_01_75\":1,\"PLC02/0820_91_16\":1,\"PLC01/0820_01_73\":1,\"PLC02/0820_91_15\":1,\"PLC02/0820_91_14\":1,\"FSC10/OFZ_0850_31/CH_0850_31_64\":2,\"PLC01/0820_01_71\":1,\"FSC10/OFZ_0850_31/CH_0850_31_65\":2,\"PLC02/0820_91_13\":1,\"PLC02/0820_91_12\":1,\"FSC10/OFZ_0850_31/CH_0850_31_62\":2,\"FSC10/OFZ_0850_31/CH_0850_31_63\":2,\"FSC10/OFZ_0850_32/CH_0850_32_09\":2,\"FSC10/OFZ_0850_32/CH_0850_32_06\":2,\"FSC10/OFZ_0850_31/CH_0850_31_68\":2,\"FSC10/OFZ_0850_31/CH_0850_31_69\":2,\"FSC10/OFZ_0850_31/CH_0850_31_66\":2,\"PLC26/S01\":4,\"FSC10/OFZ_0850_31/CH_0850_31_67\":2,\"FSC10/TRZ_0850_01/CAS_0850_01_0694\":3,\"FSC10/OFZ_0850_31/CH_0850_31_60\":2,\"FSC10/OFZ_0850_31/CH_0850_31_61\":2,\"PLC02/0820_07_49_BT1/TN20A\":1,\"PLC02/0820_91_36/B4910\":1,\"FSC10/OFZ_0850_32/CH_0850_32_13\":2,\"FSC10/OFZ_0850_32/CH_0850_32_14\":2,\"FSC10/OFZ_0850_31/CH_0850_31_59\":2,\"FSC10/OFZ_0850_32/CH_0850_32_12\":2,\"PLC02/0820_91_08\":1,\"PLC02/0820_91_07\":1,\"FSC10/OFZ_0850_73/CH_0850_73_13\":2,\"PLC02/0820_91_06\":1,\"FSC10/OFZ_0850_32/CH_0850_32_10\":2,\"PLC80/0632_03_06/B106_5\":1,\"FSC10/OFZ_0850_73/CH_0850_73_11\":2,\"PLC09/2210_07_27/B1028_2\":1,\"FSC10/OFZ_0850_31/CH_0850_31_53\":2,\"PLC02/0820_91_02\":1,\"FSC10/OFZ_0850_31/CH_0850_31_54\":2,\"FSC10/OFZ_0850_73/CH_0850_73_18\":2,\"FSC10/OFZ_0850_31/CH_0850_31_51\":2,\"FSC10/OFZ_0850_73/CH_0850_73_15\":2,\"PLC02/0820_05_27/B3903_2\":1,\"FSC10/OFZ_0850_31/CH_0850_31_52\":2,\"FSC10/OFZ_0850_32/CH_0850_32_17\":2,\"PLC02/0820_04_28\":1,\"FSC10/OFZ_0850_31/CH_0850_31_57\":2,\"FSC10/OFZ_0850_31/CH_0850_31_58\":2,\"FSC10/OFZ_0850_32/CH_0850_32_18\":2,\"FSC10/OFZ_0850_32/CH_0850_32_15\":2,\"FSC10/OFZ_0850_73/CH_0850_73_19\":2,\"FSC10/OFZ_0850_31/CH_0850_31_55\":2,\"FSC10/OFZ_0850_31/CH_0850_31_56\":2,\"PLC07/0320_31_20\":1,\"FSC10/OFZ_0850_32/CH_0850_32_16\":2,\"FSC10/OFZ_0850_31/CH_0850_31_50\":2,\"PLC26/0513_03_10/B104_7\":3,\"PLC02/0820_01_07/B3103_2\":1,\"PLC69/0330_07_20\":1,\"FSC10/OFZ_0850_73/CH_0850_73_02\":2,\"FSC10/OFZ_0850_73/CH_0850_73_03\":2,\"FSC10/OFZ_0850_73/CH_0850_73_01\":2,\"PLC02/0820_91_36\":1,\"FSC10/OFZ_0850_73/CH_0850_73_04\":2,\"PLC02/0820_91_33\":1,\"PLC09/0110_13_40/B204_2\":1,\"FSC10/IFZ_0850_68\":2,\"PLC26/0513_03_10\":3,\"FSC10/OFZ_0850_31/CH_0850_31_80\":2,\"PLC09/1210_03_48/B807_7\":3,\"PLC80/0632_03_06\":1,\"PLC02/0820_91_28\":1,\"PLC09/2210_08_60\":1,\"PLC80/0632_03_01\":1,\"FSC10/OFZ_0850_31/CH_0850_31_75\":2,\"FSC10/OFZ_0850_31/CH_0850_31_76\":2,\"FSC10/OFZ_0850_31/CH_0850_31_73\":2,\"FSC10/OFZ_0850_31/CH_0850_31_74\":2,\"FSC10/OFZ_0850_31/CH_0850_31_79\":2,\"FSC10/TRZ_0850_01/CAS_0850_01_0557\":3,\"PLC1000/1000_33_12/B419_3\":1,\"FSC10/OFZ_0850_32/CH_0850_32_37\":2,\"FSC10/TRZ_0850_01/CAS_0850_01_0556\":3,\"FSC10/OFZ_0850_31/CH_0850_31_77\":2,\"FSC10/OFZ_0850_31/CH_0850_31_78\":2,\"FSC10/TRZ_0850_01/CAS_0850_01_0565\":2,\"FSC10/TRZ_0850_01/CAS_0850_01_0564\":2,\"FSC10/OFZ_0850_31/CH_0850_31_71\":2,\"FSC10/OFZ_0850_31/CH_0850_31_72\":2,\"FSC10/TRZ_0850_01/CAS_0850_01_0680\":3,\"FSC10/OFZ_0850_31/CH_0850_31_70\":2,\"PLC02/0820_05_15/B3802_2\":1,\"PLC09/0120_33_10/B426_1\":1,\"PLC09/1210_09_60\":3,\"FSC10/OFZ_0850_32/CH_0850_32_47\":2,\"PLC09/0120_35_26\":1,\"PLC81\":1,\"PLC82\":1,\"FSC10/TRZ_0850_01/CAS_0850_01_0891\":4,\"PLC09/1210_03_30/B805_5\":3,\"PLC09/0110_13_40/B205_1\":1,\"PLC02/0820_91_53\":1,\"PLC09/0110_13_40/B205_0\":1,\"PLC02/0820_91_52\":1,\"PLC09/0110_13_40/B205_2\":1,\"PLC02/0820_91_51\":1,\"PLC09/2210_06_02/B1018_1\":1,\"FSC10/TRZ_0850_01\":4,\"PLC80/0632_01_07\":1,\"PLC09/0110_03_40\":1,\"PLC1000/1000_33_01/B418_0\":1,\"FSC10/OFZ_0850_32/CH_0850_32_54\":2,\"PLC09/0120_35_18\":1,\"FSC10/TRZ_0850_01/CAS_0850_01_0780\":2,\"PLC09/0110_03_40/B105_2\":1,\"PLC09/0110_03_40/B105_0\":1,\"PLC01/0820_01_79/B6403_6\":1,\"PLC09/0110_03_40/B105_1\":1,\"PLC26/0513_32_01/B405_4\":3,\"FSC10/TRZ_0850_01/CAS_0850_01_0300\":2,\"FSC10/TRZ_0850_01/CAS_0850_01_0779\":2,\"PLC09/1210_03_13/B803_4\":3,\"FSC10/OFZ_0850_33/CH_0850_33_43\":2,\"PLC01/0820_01_46/B6200_2\":1,\"PLC09/0110_21_20/B302_3\":1,\"PLC09/0110_21_20/B302_2\":1,\"PLC1000\":1,\"PLC09/0120_35_10\":1,\"PLC09/1210_03_36/B806_3\":3,\"PLC09/1210_02_01\":1,\"PLC09/1210_03_42/B807_1\":3,\"PLC09/2210_06_29/B1021_4\":1,\"PLC09/0120_32_02/B422_1\":1,\"PLC09/0110_03_40/B104_2\":1,\"PLC09/1210_03_25/B805_0\":3,\"PLC02/0820_07_09_BT1/TN4A\":1,\"PLC01/0820_01_63/B6302_6\":1,\"PLC01/0820_02_20/B6603_6\":1,\"PLC09/1210_03_02/B802_1\":3,\"PLC26/S01/A999\":4,\"PLC09/0120_52_01/B526_0\":1,\"PLC01/0820_03_08/B6703_6\":1}", - "lcoal_mode": true, - "local": true, - "page_id": "value", - "product_metrics": { - "enable": true - }, - "searchId": "PLC01", - "sources": [], - "view_in_focus": "/" - }, - "propConfig": { - "custom.alarmId": { - "persistent": false - }, - "custom.colours.state2": { - "binding": { - "config": { - "expression": "if({this.custom.colours.colour_impaired},\u0027#F00077\u0027,\u0027#FF8000\u0027)" - }, - "type": "expr" - } - }, - "custom.colours.state3": { - "binding": { - "config": { - "expression": "if({this.custom.colours.colour_impaired},\u0027#FF6000\u0027,\u0027#FFFF00\u0027)" - }, - "type": "expr" - } - }, - "custom.colours.state4": { - "binding": { - "config": { - "expression": "if({this.custom.colours.colour_impaired},\u0027#FCC400\u0027,\u0027#007EFC\u0027)" - }, - "type": "expr" - } - }, - "custom.colours.state5": { - "binding": { - "config": { - "expression": "if({this.custom.colours.colour_impaired},\u0027#007DFA\u0027,\u0027#00CC00\u0027)" - }, - "type": "expr" - } - }, - "custom.command_auth.auth_timeout": { - "binding": { - "config": { - "expression": "if({this.custom.command_auth.enabled},toInt(dateDiff({this.custom.command_auth.auth_time},now(),\u0027seconds\u0027)),0)" - }, - "type": "expr" - }, - "onChange": { - "enabled": null, - "script": "\tif currentValue.value \u003e self.custom.command_auth.timeout_sp:\n\t\tself.custom.command_auth.enabled \u003d False" - } - }, - "custom.command_auth.enabled": { - "onChange": { - "enabled": null, - "script": "\tif currentValue.value:\n\t\tself.custom.command_auth.auth_time \u003d system.date.now()" - } - }, - "custom.covert": { - "access": "PRIVATE" - }, - "custom.deviceSearchId": { - "access": "PRIVATE" - }, - "custom.downloads": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "fc": "{this.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]System/download" - }, - "transforms": [ - { - "code": "\tvalue_decoded \u003d system.util.jsonDecode(value)\n\tdownloads \u003d value_decoded.get(\"data\",[])\n\tfor i in downloads:\n\t\tsession_id \u003d i.get(\"session_id\")\n\t\turl \u003d i.get(\"url\")\n\t\tif session_id \u003d\u003d self.props.id:\n\t\t\tself.custom.download_url \u003d url\n\t\t\treturn True\n\t\telse:\n\t\t\treturn False", - "type": "script" - } - ], - "type": "tag" - } - }, - "custom.fc": { - "access": "PRIVATE" - }, - "custom.has_fc_role": { - "access": "PRIVATE", - "binding": { - "config": { - "expression": "{this.props.auth.user.roles}" - }, - "transforms": [ - { - "code": "\tuser_roles \u003d value\n\tfc_role \u003d self.custom.fc\n\trme_role \u003d fc_role.lower() + \"-rme-all\"\n\thas_role \u003d False\n\tfor roles in user_roles:\n\t\tif roles.lower() \u003d\u003d rme_role:\n\t\t\thas_role \u003d True\n\t\t\t\t\n\treturn has_role\n", - "type": "script" - } - ], - "type": "expr" - } - }, - "custom.id_to_state": { - "access": "PRIVATE", - "persistent": true - }, - "custom.show_south_dock": { - "access": "PRIVATE" - }, - "custom.state": { - "access": "PRIVATE" - }, - "custom.state_messages": { - "access": "PRIVATE" - }, - "custom.state_view": { - "access": "PRIVATE" - }, - "props.auth": { - "access": "PRIVATE", - "persistent": false - }, - "props.device.accelerometer": { - "access": "SYSTEM", - "persistent": false - }, - "props.device.identifier": { - "access": "SYSTEM", - "persistent": false - }, - "props.device.timezone": { - "access": "SYSTEM", - "persistent": false - }, - "props.device.type": { - "access": "SYSTEM", - "persistent": false - }, - "props.device.userAgent": { - "access": "SYSTEM", - "persistent": false - }, - "props.gateway": { - "access": "SYSTEM", - "persistent": false - }, - "props.geolocation.data": { - "access": "SYSTEM", - "persistent": false - }, - "props.geolocation.permissionGranted": { - "access": "SYSTEM", - "persistent": false - }, - "props.host": { - "access": "SYSTEM", - "persistent": false - }, - "props.id": { - "access": "SYSTEM", - "persistent": false - }, - "props.lastActivity": { - "access": "SYSTEM", - "persistent": false - } - }, - "props": { - "address": "127.0.0.1", - "appBar": { - "togglePosition": "hidden" - }, - "device": {}, - "geolocation": {}, - "locale": "en-US", - "timeZoneId": "Asia/Tbilisi" - } -} \ No newline at end of file diff --git a/.resources/37eb49f85f0c4b6d3eceb5fbeea677a067409ca1f8cbe641cce53b690dcec28d b/.resources/37eb49f85f0c4b6d3eceb5fbeea677a067409ca1f8cbe641cce53b690dcec28d deleted file mode 100644 index 40094b8f0c706eb8ef7643e7c5b674b0c531e394..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20094 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 diff --git a/.resources/394352a89d10099f88a45facc514fb28b0ae7bb9f950293b84cd2888b06f3915 b/.resources/394352a89d10099f88a45facc514fb28b0ae7bb9f950293b84cd2888b06f3915 deleted file mode 100644 index 30ae5a43d79517528cb5ff0c3213b4b85c185df7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60015 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�_!feurHav8mA=`}(!{JFUN4o;`^1 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 diff --git a/.resources/3fce47b63941b0a6d52ed712fba78920e73bf22f59ada6a321a71975176763cc b/.resources/3fce47b63941b0a6d52ed712fba78920e73bf22f59ada6a321a71975176763cc deleted file mode 100644 index d42fec9b0572f756894bc5d1f80da9c66d100311..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23522 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 diff --git a/.resources/465a21813c133644e9e6585d25fcb1871f866762c4e2f073f52b7052e421d7bb b/.resources/465a21813c133644e9e6585d25fcb1871f866762c4e2f073f52b7052e421d7bb deleted file mode 100644 index 2ecfcb57..00000000 --- a/.resources/465a21813c133644e9e6585d25fcb1871f866762c4e2f073f52b7052e421d7bb +++ /dev/null @@ -1,332 +0,0 @@ -{ - "custom": { - "State": "#FFFFFF", - "Status": "#808080", - "state_string": "Empty/Idle", - "status_string": "Unknown Status" - }, - "params": { - "angle": 0, - "directionLeft": false, - "tagProps": [ - "System/MCM01/Conveyor/VFD/UL1_3_VFD1", - "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}/dwState" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},0)", - "type": "expression" - }, - { - "code": "\tif value is None:\n\t\treturn \u0027#808080\u0027 # Grey - No Data\n\t\n\t# Check bits in priority order (highest priority first)\n\t\n\t# Priority 5 - Test/Maintenance - Brown\n\tif value \u0026 128: # Bit 7: Assigned to do a tilttest\n\t\treturn \u0027#AC5F00\u0027 # Brown - Manual/Maintenance Mode\n\t\n\t# Priority 8 - Operational Status - Green\n\tif value \u0026 256: # Bit 8: Occupied\n\t\treturn \u0027#008000\u0027 # Green - Running or ON\n\t\n\t# Priority 9 - Discharge Status - Light Green\n\tif value \u0026 8: # Bit 3: Item has been discharged\n\t\treturn \u0027#CCFFCC\u0027 # Light green - Enabled, not running\n\t\n\t# Critical/Error States - Red\n\tif value \u0026 1: # Bit 0: Disabled or faulted\n\t\treturn \u0027#FF0000\u0027 # Red - E-Stop/Unit Faulted\n\tif value \u0026 2048: # Bit 11: Occupied but disabled\n\t\treturn \u0027#FF0000\u0027 # Red - E-Stop/Unit Faulted\n\t\n\t# Active Processing States - Yellow\n\tif value \u0026 2: # Bit 1: Item being scanned by Barcode/OCR\n\t\treturn \u0027#FFFF00\u0027 # Yellow - 75% Full/50% Full/25% Full\n\tif value \u0026 4: # Bit 2: Scanned, waiting for redirect\n\t\treturn \u0027#FFFF00\u0027 # Yellow - 75% Full/50% Full/25% Full\n\tif value \u0026 16384: # Bit 14: Item being scanned by volume scanner\n\t\treturn \u0027#FFFF00\u0027 # Yellow - 75% Full/50% Full/25% Full\n\tif value \u0026 32768: # Bit 15: SPS checking carrier\n\t\treturn \u0027#FFFF00\u0027 # Yellow - 75% Full/50% Full/25% Full\n\t\n\t# Multi-carrier Operations - Blue\n\tif value \u0026 16: # Bit 4: Second or third carrier in row\n\t\treturn \u0027#0000FF\u0027 # Blue - 100% Full\n\tif value \u0026 64: # Bit 6: Part of multi-carrier item\n\t\treturn \u0027#0000FF\u0027 # Blue - 100% Full\n\t\n\t# System/Communication States - Light Sky Blue\n\tif value \u0026 512: # Bit 9: Information received from CSC/host\n\t\treturn \u0027#87CEFA\u0027 # Light Sky Blue - Energy management\n\tif value \u0026 1024: # Bit 10: Received from CCB\n\t\treturn \u0027#87CEFA\u0027 # Light Sky Blue - Energy management\n\tif value \u0026 4096: # Bit 12: Reserved for induction takeover\n\t\treturn \u0027#87CEFA\u0027 # Light Sky Blue - Energy management\n\tif value \u0026 8192: # Bit 13: Not activated for profile execution\n\t\treturn \u0027#87CEFA\u0027 # Light Sky Blue - Energy management\n\t\n\t# Special Equipment States - Light Grey\n\tif value \u0026 32: # Bit 5: Used at flipper door chutes\n\t\treturn \u0027#D3D3D3\u0027 # Light grey - OFF/Inactive\n\t\n\t# Check if bits 16-31 contain distance data\n\tdistance_bits \u003d (value \u003e\u003e 16) \u0026 0xFFFF # Extract upper 16 bits\n\tif distance_bits \u003e 0:\n\t\treturn \u0027#FFA500\u0027 # Orange - JAM (item positioning)\n\t\n\t# Default state\n\tif value \u003d\u003d 0:\n\t\treturn \u0027#FFFFFF\u0027 # White - Gravity/not motorized MHE\n\telse:\n\t\treturn \u0027#808080\u0027 # Grey - Invalid/Unavailable", - "type": "script" - } - ], - "type": "tag" - }, - "persistent": true - }, - "custom.Status": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/dwStatus" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},0)", - "type": "expression" - }, - { - "code": "\tif value is None:\n\t\treturn \u0027#808080\u0027\n\t\n\t# Critical Priority (2) - Red\n\tif value \u0026 8: # Bit 3: Common fault\n\t\treturn \u0027#FF0000\u0027\n\tif value \u0026 32: # Bit 5: Possible TCB/MCB error\n\t\treturn \u0027#FF0000\u0027\n\tif value \u0026 64: # Bit 6: Not checked at last CTB/CRB\n\t\treturn \u0027#FF0000\u0027\n\tif value \u0026 128: # Bit 7: Communication error\n\t\treturn \u0027#FF0000\u0027\n\tif value \u0026 512: # Bit 9: Current limit exceeded\n\t\treturn \u0027#FF0000\u0027\n\tif value \u0026 2048: # Bit 11: Calibration error\n\t\treturn \u0027#FF0000\u0027\n\tif value \u0026 4194304: # Bit 22: Item overhanging belt fault\n\t\treturn \u0027#FF0000\u0027\n\tif value \u0026 8388608: # Bit 23: Current collector fault\n\t\treturn \u0027#FF0000\u0027\n\tif value \u0026 16777216: # Bit 24: Item too high\n\t\treturn \u0027#FF0000\u0027\n\tif value \u0026 33554432: # Bit 25: Item too wide\n\t\treturn \u0027#FF0000\u0027\n\tif value \u0026 67108864: # Bit 26: Item on activated carrier\n\t\treturn \u0027#FF0000\u0027\n\tif value \u0026 134217728: # Bit 27: Deflected bellows fault\n\t\treturn \u0027#FF0000\u0027\n\tif value \u0026 1073741824: # Bit 30: Item on bellows warning\n\t\treturn \u0027#FF0000\u0027\n\tif value \u0026 2147483648: # Bit 31: Item on bellows is active\n\t\treturn \u0027#FF0000\u0027\n\t\n\t# High Priority (11) - Light Grey (OFF/Inactive)\n\tif value \u0026 1: # Bit 0: Disabled\n\t\treturn \u0027#D3D3D3\u0027\n\tif value \u0026 4: # Bit 2: Blocked\n\t\treturn \u0027#D900D9\u0027 # Purple - Gridlock Prevention Mode\n\t\n\t# Medium Priority (9-10) - Status OK, Motor not running\n\tif value \u0026 256: # Bit 8: Status OK\n\t\treturn \u0027#008000\u0027 # Green - Running or ON\n\tif value \u0026 1024: # Bit 10: Motor not running\n\t\treturn \u0027#CCFFCC\u0027 # Light green - Enabled, not running\n\tif value \u0026 268435456: # Bit 28: Double maximum recirculation\n\t\treturn \u0027#87CEFA\u0027 # Light Sky Blue - Energy management\n\t\n\t# Low Priority (5) - Brown (Manual/Maintenance Mode)\n\tif value \u0026 2: # Bit 1: Needs update\n\t\treturn \u0027#AC5F00\u0027\n\tif value \u0026 16: # Bit 4: CCT communication to carrier\n\t\treturn \u0027#AC5F00\u0027\n\tif value \u0026 8192: # Bit 13: Default configuration\n\t\treturn \u0027#AC5F00\u0027\n\tif value \u0026 16384: # Bit 14: Programming mode\n\t\treturn \u0027#AC5F00\u0027\n\tif value \u0026 536870912: # Bit 29: CCT download done\n\t\treturn \u0027#AC5F00\u0027\n\t\n\t# Default - Grey\n\treturn \u0027#808080\u0027", - "type": "script" - } - ], - "type": "tag" - }, - "persistent": true - }, - "custom.state_string": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/dwState" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},0)", - "type": "expression" - }, - { - "code": "\tif value is None:\n\t\treturn \u0027No Data\u0027\n\t\n\t# Check bits in priority order (highest priority first)\n\t\n\t# Priority 5 - Test/Maintenance\n\tif value \u0026 128: # Bit 7: Assigned to do a tilttest\n\t\treturn \u0027Tilt Test Mode\u0027\n\t\n\t# Priority 8 - Operational Status\n\tif value \u0026 256: # Bit 8: Occupied\n\t\treturn \u0027Occupied\u0027\n\t\n\t# Priority 9 - Discharge Status\n\tif value \u0026 8: # Bit 3: Item has been discharged\n\t\treturn \u0027Item Discharged\u0027\n\t\n\t# Other operational states (no specific priority)\n\tif value \u0026 1: # Bit 0: Disabled or faulted\n\t\treturn \u0027Disabled/Faulted\u0027\n\tif value \u0026 2: # Bit 1: Item being scanned by Barcode/OCR\n\t\treturn \u0027Barcode Scanning\u0027\n\tif value \u0026 4: # Bit 2: Scanned, waiting for redirect\n\t\treturn \u0027Awaiting Redirect\u0027\n\tif value \u0026 16: # Bit 4: Second or third carrier in row\n\t\treturn \u0027Multi-Carrier Row\u0027\n\tif value \u0026 32: # Bit 5: Used at flipper door chutes\n\t\treturn \u0027Flipper Door Mode\u0027\n\tif value \u0026 64: # Bit 6: Part of multi-carrier item\n\t\treturn \u0027Multi-Carrier Item\u0027\n\tif value \u0026 512: # Bit 9: Information received from CSC/host\n\t\treturn \u0027Host Data Received\u0027\n\tif value \u0026 1024: # Bit 10: Received from CCB\n\t\treturn \u0027CCB Received\u0027\n\tif value \u0026 2048: # Bit 11: Occupied but disabled\n\t\treturn \u0027Occupied/Disabled\u0027\n\tif value \u0026 4096: # Bit 12: Reserved for induction takeover\n\t\treturn \u0027Induction Reserved\u0027\n\tif value \u0026 8192: # Bit 13: Not activated for profile execution\n\t\treturn \u0027Profile Inactive\u0027\n\tif value \u0026 16384: # Bit 14: Item being scanned by volume scanner\n\t\treturn \u0027Volume Scanning\u0027\n\tif value \u0026 32768: # Bit 15: SPS checking carrier\n\t\treturn \u0027SPS Checking\u0027\n\t\n\t# Check if bits 16-31 contain distance data\n\tdistance_bits \u003d (value \u003e\u003e 16) \u0026 0xFFFF # Extract upper 16 bits\n\tif distance_bits \u003e 0:\n\t\treturn \u0027Item Distance: \u0027 + str(distance_bits)\n\t\n\t# Default state\n\tif value \u003d\u003d 0:\n\t\treturn \u0027Empty/Idle\u0027\n\telse:\n\t\treturn \u0027State: \u0027 + str(value)", - "type": "script" - } - ], - "type": "tag" - }, - "persistent": true - }, - "custom.status_string": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/dwStatus" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},0)", - "type": "expression" - }, - { - "code": "\tif value is None:\n\t\treturn \u0027No Data\u0027\n\t\n\t# Critical Priority (2) - Errors and Faults\n\tif value \u0026 8: # Bit 3: Common fault\n\t\treturn \u0027Common fault\u0027\n\tif value \u0026 32: # Bit 5: Possible TCB/MCB error\n\t\treturn \u0027Possible TCB/MCB error\u0027\n\tif value \u0026 64: # Bit 6: Not checked at last CTB/CRB\n\t\treturn \u0027Not checked at last CTB/CRB\u0027\n\tif value \u0026 128: # Bit 7: Communication error\n\t\treturn \u0027Communication error\u0027\n\tif value \u0026 512: # Bit 9: Current limit exceeded\n\t\treturn \u0027Current limit exceeded\u0027\n\tif value \u0026 2048: # Bit 11: Calibration error\n\t\treturn \u0027Calibration error\u0027\n\tif value \u0026 4194304: # Bit 22: Item overhanging belt fault\n\t\treturn \u0027Item overhanging belt fault\u0027\n\tif value \u0026 8388608: # Bit 23: Current collector fault\n\t\treturn \u0027Current collector fault\u0027\n\tif value \u0026 16777216: # Bit 24: Item too high\n\t\treturn \u0027Item too high\u0027\n\tif value \u0026 33554432: # Bit 25: Item too wide\n\t\treturn \u0027Item too wide\u0027\n\tif value \u0026 67108864: # Bit 26: Item on activated carrier\n\t\treturn \u0027Item on activated carrier\u0027\n\tif value \u0026 134217728: # Bit 27: Deflected bellows fault\n\t\treturn \u0027Deflected bellows fault\u0027\n\tif value \u0026 1073741824: # Bit 30: Item on bellows warning\n\t\treturn \u0027Item on bellows warning\u0027\n\tif value \u0026 2147483648: # Bit 31: Item on bellows is active\n\t\treturn \u0027Item on bellows is active\u0027\n\t\n\t# High Priority (11) - Disabled/Blocked States\n\tif value \u0026 1: # Bit 0: Disabled\n\t\treturn \u0027Disabled\u0027\n\tif value \u0026 4: # Bit 2: Blocked\n\t\treturn \u0027Blocked\u0027\n\t\n\t# Medium Priority (9-10) - Normal Operations\n\tif value \u0026 256: # Bit 8: Status OK\n\t\treturn \u0027Status OK\u0027\n\tif value \u0026 1024: # Bit 10: Motor not running\n\t\treturn \u0027Motor not running\u0027\n\tif value \u0026 268435456: # Bit 28: Double maximum recirculation\n\t\treturn \u0027Double maximum recirculation\u0027\n\t\n\t# Low Priority (5) - Maintenance/Configuration\n\tif value \u0026 2: # Bit 1: Needs update\n\t\treturn \u0027Needs update\u0027\n\tif value \u0026 16: # Bit 4: CCT communication to carrier\n\t\treturn \u0027CCT communication to carrier\u0027\n\tif value \u0026 8192: # Bit 13: Default configuration\n\t\treturn \u0027Default configuration\u0027\n\tif value \u0026 16384: # Bit 14: Programming mode\n\t\treturn \u0027Programming mode\u0027\n\tif value \u0026 536870912: # Bit 29: CCT download done\n\t\treturn \u0027CCT download done\u0027\n\t\n\t# Default - No active status\n\treturn \u0027Unknown Status\u0027", - "type": "script" - } - ], - "type": "tag" - }, - "persistent": true - }, - "params.angle": { - "paramDirection": "input", - "persistent": true - }, - "params.directionLeft": { - "paramDirection": "input", - "persistent": true - }, - "params.tagProps": { - "paramDirection": "inout", - "persistent": true - } - }, - "props": { - "defaultSize": { - "height": 20, - "width": 50 - } - }, - "root": { - "children": [ - { - "meta": { - "name": "RunningStatus" - }, - "position": { - "grow": 1 - }, - "propConfig": { - "props.elements[0].fill.paint": { - "binding": { - "config": { - "path": "view.custom.Status" - }, - "type": "property" - } - } - }, - "props": { - "elements": [ - { - "d": "M 5 1 L 55 1 L 55 17 L 5 17 Z ", - "fill": {}, - "name": "carrierFrame", - "stroke": { - "paint": "#34495E", - "width": "0.5" - }, - "type": "path" - }, - { - "d": "M 7 2 L 53 2 L 53 16 L 7 16 Z ", - "fill": { - "paint": "#3498DB" - }, - "name": "carrierTray", - "type": "path" - }, - { - "cx": "12", - "cy": "9", - "fill": { - "paint": "#E74C3C" - }, - "name": "leftSensor", - "r": "1.5", - "type": "circle" - }, - { - "cx": "48", - "cy": "9", - "fill": { - "paint": "#E74C3C" - }, - "name": "rightSensor", - "r": "1.5", - "type": "circle" - }, - { - "fill": { - "paint": "#95A5A6" - }, - "height": "10", - "name": "package", - "rx": "1", - "type": "rect", - "width": "20", - "x": "20", - "y": "4" - }, - { - "cx": "10", - "cy": "3", - "fill": { - "paint": "#1ABC9C" - }, - "name": "topLeftWheel", - "r": "1", - "type": "circle" - }, - { - "cx": "10", - "cy": "15", - "fill": { - "paint": "#1ABC9C" - }, - "name": "bottomLeftWheel", - "r": "1", - "type": "circle" - }, - { - "cx": "50", - "cy": "3", - "fill": { - "paint": "#1ABC9C" - }, - "name": "topRightWheel", - "r": "1", - "type": "circle" - }, - { - "cx": "50", - "cy": "15", - "fill": { - "paint": "#1ABC9C" - }, - "name": "bottomRightWheel", - "r": "1", - "type": "circle" - } - ], - "preserveAspectRatio": "none", - "style": { - "overflow": "hidden", - "transform": "" - }, - "viewBox": "-1.5 -1.5 60 20" - }, - "type": "ia.shapes.svg" - } - ], - "events": { - "dom": { - "onClick": { - "config": { - "script": "\tsystem.perspective.openDock(\u0027Docked-East-VFD\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" - }, - "scope": "G", - "type": "script" - }, - "onDoubleClick": { - "config": { - "script": "\ttagProps \u003d self.view.params.tagProps\n\tsystem.perspective.openPopup(\"StatusPopUP\", \"PopUp-Views/Controller-Equipment/Information\", params \u003d{\"tagProps\":tagProps})\n\t" - }, - "enabled": false, - "scope": "G", - "type": "script" - }, - "onMouseEnter": { - "config": { - "script": "\tself.props.style.transform \u003d \"scale(2)\"\n\tfrom time import sleep\n\t\n\talarm \u003d []\n\tmessage \u003d None\n\t\n#\tsleep(0.5)\n\t\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message" - }, - "scope": "G", - "type": "script" - }, - "onMouseLeave": { - "config": { - "script": "\tself.props.style.transform \u003d \"scale(1)\"" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "root", - "tooltip": { - "enabled": true, - "location": "top-left", - "style": { - "classes": "Alarms-Styles/NoAlarm" - } - } - }, - "propConfig": { - "meta.tooltip.text": { - "binding": { - "config": { - "expression": "if(\n {view.custom.status_string} !\u003d \"Unknown Status\",\n \"Source Id: \" + {view.params.tagProps[0]} + \" Status: \" + {view.custom.status_string} + \" State: \" + {view.custom.state_string},\n \"Device Disconnected\"\n)\n" - }, - "type": "expr" - } - } - }, - "props": { - "justify": "center", - "style": { - "borderColor": "#FF0000", - "borderStyle": "none", - "borderWidth": "2px", - "cursor": "pointer", - "transform": "scale(1)", - "transition": "transform 100ms linear" - } - }, - "type": "ia.container.flex" - } -} \ No newline at end of file diff --git a/.resources/47943a7f62ec25008535e5e825325afa8f0550f8f4253f11df4d80f311a5fb83 b/.resources/47943a7f62ec25008535e5e825325afa8f0550f8f4253f11df4d80f311a5fb83 deleted file mode 100644 index ba9446c9..00000000 --- a/.resources/47943a7f62ec25008535e5e825325afa8f0550f8f4253f11df4d80f311a5fb83 +++ /dev/null @@ -1,623 +0,0 @@ -{ - "custom": { - "color": "#C2C2C2", - "priority": "No Active Alarms", - "state": "Closed" - }, - "params": { - "directionLeft": false, - "forceFaultStatus": null, - "tagProps": [ - "System/MCM01/Conveyor/EXTENDO/UL1_1_EX1", - "value", - "value", - "value", - "value", - "value", - "value", - "value", - "value", - "value" - ], - "type": 1 - }, - "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},{view.params.forceFaultStatus},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},{view.params.forceFaultStatus},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},{view.params.forceFaultStatus},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" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - }, - "persistent": true - }, - "params.directionLeft": { - "paramDirection": "input", - "persistent": true - }, - "params.forceFaultStatus": { - "paramDirection": "input", - "persistent": true - }, - "params.tagProps": { - "paramDirection": "inout", - "persistent": true - }, - "params.type": { - "paramDirection": "input", - "persistent": true - } - }, - "props": { - "defaultSize": { - "height": 20, - "width": 29 - } - }, - "root": { - "children": [ - { - "meta": { - "name": "RunningStatus" - }, - "position": { - "grow": 1 - }, - "propConfig": { - "position.rotate.angle": { - "binding": { - "config": { - "path": "view.params.directionLeft" - }, - "transforms": [ - { - "expression": "if({value}, \u0027180deg\u0027, \u00270deg\u0027)", - "type": "expression" - } - ], - "type": "property" - } - }, - "props.elements[0].fill.paint": { - "binding": { - "config": { - "expression": "if(\r\n {view.custom.state} \u003d \"Closed\",\r\n \"#000000\",\r\n {view.custom.color}\r\n)\r\n" - }, - "type": "expr" - } - }, - "props.elements[1].fill.paint": { - "binding": { - "config": { - "expression": "if(\r\n {view.custom.state} \u003d \"Closed\",\r\n \"#000000\",\r\n {view.custom.color}\r\n)\r\n" - }, - "type": "expr" - } - }, - "props.elements[2].fill.paint": { - "binding": { - "config": { - "expression": "if(\r\n {view.custom.state} \u003d \"Closed\",\r\n \"#000000\",\r\n {view.custom.color}\r\n)\r\n" - }, - "type": "expr" - } - } - }, - "props": { - "elements": [ - { - "d": "M 50 0 L 65 0 L 80 30 L 65 60 L 50 60 Z", - "fill": {}, - "name": "path", - "stroke": { - "paint": "#4c4c4c", - "width": "2" - }, - "type": "path" - }, - { - "d": "M 45 0 L 25 0 L 25 30 L 25 60 L 45 60 Z", - "fill": {}, - "name": "path", - "stroke": { - "paint": "#4c4c4c", - "width": "2" - }, - "type": "path" - }, - { - "d": "M 0 0 L 20 0 L 20 30 L 20 60 L 0 60 Z", - "fill": {}, - "name": "path", - "stroke": { - "paint": "#4c4c4c", - "width": "2" - }, - "type": "path" - } - ], - "style": { - "overflow": "hidden" - }, - "viewBox": "-1.5 -1.5 73 63" - }, - "type": "ia.shapes.svg" - } - ], - "events": { - "dom": { - "onClick": { - "config": { - "script": "\tsystem.perspective.openDock(\u0027Docked-East-Extendo\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" - }, - "scope": "G", - "type": "script" - }, - "onMouseEnter": { - "config": { - "script": "\tself.props.style.transform \u003d \"scale(2)\"\n\tfrom time import sleep\n\t\n\talarm \u003d []\n\tmessage \u003d None\n\t\n#\tsleep(0.5)\n\t\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message" - }, - "scope": "G", - "type": "script" - }, - "onMouseLeave": { - "config": { - "script": "\tself.props.style.transform \u003d \"scale(1)\"" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "root", - "tooltip": { - "enabled": true, - "location": "top-left", - "style": {} - } - }, - "propConfig": { - "meta.tooltip.style.classes": { - "binding": { - "config": { - "expression": "{view.custom.priority}" - }, - "transforms": [ - { - "fallback": "Alarms-Styles/NoAlarm", - "inputType": "scalar", - "mappings": [ - { - "input": "High", - "output": "Alarms-Styles/High" - }, - { - "input": "Medium", - "output": "Alarms-Styles/Medium" - }, - { - "input": "Low", - "output": "Alarms-Styles/Low" - }, - { - "input": "Diagnostic", - "output": "Alarms-Styles/Diagnostic" - } - ], - "outputType": "style-list", - "type": "map" - } - ], - "type": "expr" - } - }, - "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_running" - }, - "type": "property" - } - } - }, - "props": { - "justify": "center", - "style": { - "transform": "scale(1)", - "transition": "transform 100ms linear" - } - }, - "type": "ia.container.flex" - } -} \ No newline at end of file diff --git a/.resources/48cf09c9bfc299d87dec2069a800419da11ee8a81b1cca9c1c207d2fedeff04f b/.resources/48cf09c9bfc299d87dec2069a800419da11ee8a81b1cca9c1c207d2fedeff04f deleted file mode 100644 index a84b7437..00000000 --- a/.resources/48cf09c9bfc299d87dec2069a800419da11ee8a81b1cca9c1c207d2fedeff04f +++ /dev/null @@ -1,794 +0,0 @@ -{ - "custom": { - "PLC_list": [ - "MCM01", - "MCM02", - "MCM03", - "MCM04", - "MCM05" - ], - "running_state": -1, - "state": 0, - "views_data": [] - }, - "params": { - "tagProps": [ - "System/MCM04/Station/Chute_JR/FL1038_2_JR1", - "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.running_state": { - "binding": { - "config": { - "expression": "try(jsonGet({session.custom.state_messages},{this.custom.tag_path_to_lookup}),-1)\t\r\n" - }, - "transforms": [ - { - "expression": "if({value} !\u003d -1, try(jsonGet({value},\"state\"),4),{value})", - "type": "expression" - } - ], - "type": "expr" - }, - "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 - }, - "custom.views_data": { - "binding": { - "config": { - "struct": { - "equipment_id": "{view.params.tagProps[0]}" - }, - "waitOnAll": true - }, - "transforms": [ - { - "code": "\tproject_info \u003d system.perspective.getProjectInfo()\n\t#self.custom.views_data \u003d project_info\n\tviews \u003d project_info.get(\"views\")\n\t#equipment_id \u003d self.view.params.tagProps[0]\n\tviews_data \u003d [i for i in views if i[\"path\"].startswith(\"Custom-Views/\"+ value.equipment_id)]\n\t#self.custom.views_data \u003d views_data\n\t\n\treturn views_data", - "type": "script" - } - ], - "type": "expr-struct" - }, - "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-JR\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": "LIGHT" - }, - "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}/Alarm/Pressed" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\"UNKNOWN\")", - "type": "expression" - }, - { - "fallback": "UNKNOWN", - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": "ON" - }, - { - "input": 0, - "output": "OFF" - }, - { - "input": true, - "output": "ON" - }, - { - "input": false, - "output": "OFF" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - }, - "props.textStyle.color": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#000000", - "inputType": "scalar", - "mappings": [ - { - "input": "ON", - "output": "#47FF47" - }, - { - "input": "OFF", - "output": "#FF0000" - } - ], - "outputType": "color", - "type": "map" - } - ], - "type": "property" - } - } - }, - "props": { - "style": { - "classes": "Text-Styles/Ariel-Bold-12pt", - "paddingLeft": 10 - } - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "Name" - }, - "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" - }, - { - "children": [ - { - "children": [ - { - "children": [ - { - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\ttag_name \u003d self.view.params.tagProps[0]\n\ttag_path \u003d \"[\" + self.session.custom.fc+ \"_SCADA_TAG_PROVIDER]\"+tag_name+\"/JR_PB\"\n\tsystem.tag.writeBlocking([tag_path],[True])" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button" - }, - "position": { - "basis": "80px", - "grow": 1 - }, - "propConfig": { - "props.enabled": { - "binding": { - "config": { - "expression": "indexOf({session.props.auth.user.roles}, \"Administrator\") \u003e\u003d 0 || indexOf({session.props.auth.user.roles}, \"Maintenance\") \u003e\u003d 0" - }, - "type": "expr" - } - }, - "props.style.backgroundColor": { - "binding": { - "config": { - "expression": "if(\r\n {this.props.enabled} \u003d False,\r\n \"#B17B50\",\r\n if(\r\n {this.props.text} \u003d \"JAM RESET PRESSED\",\r\n \"#FE9240\",\r\n if(\r\n {this.props.text} \u003d \"JAM RESET\",\r\n \"#EB6700\",\r\n \"#FFFFFF\"\r\n )\r\n )\r\n)\r\n" - }, - "type": "expr" - } - }, - "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}/Start_PB" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},0)", - "type": "expression" - }, - { - "fallback": "JAM RESET", - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": "JAM RESET PRESSED" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - } - }, - "props": { - "image": { - "icon": { - "path": "material/sync_problem" - } - }, - "style": { - "classes": "Background-Styles/Controller" - } - }, - "type": "ia.input.button" - } - ], - "meta": { - "name": "Reset Jam" - }, - "position": { - "basis": "35px" - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel", - "padding": "" - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "FlexContainer_0" - }, - "position": { - "basis": "100px", - "grow": 1 - }, - "props": { - "direction": "column", - "style": { - "gap": 6, - "paddingBottom": 20, - "paddingLeft": 10, - "paddingRight": 10, - "paddingTop": 13 - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "Commands_tab" - }, - "position": { - "tabIndex": 2 - }, - "props": { - "direction": "column", - "style": { - "paddingTop": 1 - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "tabs" - }, - "position": { - "grow": 1 - }, - "props": { - "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", - "Commands" - ] - }, - "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/49506bdc48ceb48c2053135bc76e4f726e1119c00ea8685ae2605eff929d25ec b/.resources/49506bdc48ceb48c2053135bc76e4f726e1119c00ea8685ae2605eff929d25ec deleted file mode 100644 index 0dad5972..00000000 --- a/.resources/49506bdc48ceb48c2053135bc76e4f726e1119c00ea8685ae2605eff929d25ec +++ /dev/null @@ -1,948 +0,0 @@ -{ - "custom": { - "PLC_list": [ - "MCM01", - "MCM02", - "MCM03", - "MCM04", - "MCM05" - ], - "color": "#C2C2C2", - "running_state": -1, - "type": "UNKNOWN", - "views_data": [] - }, - "params": { - "tagProps": [ - "System/MCM06/Chute/NC/S02_203CH", - "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.color": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}", - "type": "{view.custom.type}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/{type}/Color" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},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.running_state": { - "binding": { - "config": { - "expression": "try(jsonGet({session.custom.state_messages},{this.custom.tag_path_to_lookup}),-1)\t\r\n" - }, - "transforms": [ - { - "expression": "if({value} !\u003d -1, try(jsonGet({value},\"state\"),4),{value})", - "type": "expression" - } - ], - "type": "expr" - }, - "persistent": true - }, - "custom.type": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Button_Type" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},0)", - "type": "expression" - }, - { - "fallback": "UNKNOWN", - "inputType": "scalar", - "mappings": [ - { - "input": 5, - "output": "Chute_JR" - }, - { - "input": 4, - "output": "GS" - }, - { - "input": 3, - "output": "PR" - }, - { - "input": 2, - "output": "Start" - }, - { - "input": 1, - "output": "JR" - }, - { - "input": 6, - "output": "Enable" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - }, - "persistent": true - }, - "custom.views_data": { - "binding": { - "config": { - "struct": { - "equipment_id": "{view.params.tagProps[0]}" - }, - "waitOnAll": true - }, - "transforms": [ - { - "code": "\tproject_info \u003d system.perspective.getProjectInfo()\n\t#self.custom.views_data \u003d project_info\n\tviews \u003d project_info.get(\"views\")\n\t#equipment_id \u003d self.view.params.tagProps[0]\n\tviews_data \u003d [i for i in views if i[\"path\"].startswith(\"Custom-Views/\"+ value.equipment_id)]\n\t#self.custom.views_data \u003d views_data\n\t\n\treturn views_data", - "type": "script" - } - ], - "type": "expr-struct" - }, - "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-BTN\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": "BUTTON LIGHT" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "PB_Light" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "propConfig": { - "props.style.backgroundColor": { - "binding": { - "config": { - "path": "view.custom.color" - }, - "type": "property" - } - } - }, - "props": { - "style": { - "classes": "Text-Styles/Ariel-Bold-12pt", - "paddingLeft": 10 - }, - "textStyle": { - "color": "#000000" - } - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "Name" - }, - "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" - }, - { - "children": [ - { - "children": [ - { - "children": [ - { - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\ttag_name \u003d self.view.params.tagProps[0]\n\ttag_path \u003d \"[\" + self.session.custom.fc+ \"_SCADA_TAG_PROVIDER]\"+tag_name+\"/Start_PB\"\n\tsystem.tag.writeBlocking([tag_path],[True])\n\ttag_path2 \u003d \"[\" + self.session.custom.fc+ \"_SCADA_TAG_PROVIDER]\"+tag_name+\"/JR_PB\"\n\tsystem.tag.writeBlocking([tag_path2],[True])\n\ttag_path3 \u003d \"[\" + self.session.custom.fc+ \"_SCADA_TAG_PROVIDER]\"+tag_name+\"/GS_PB\"\n\tsystem.tag.writeBlocking([tag_path3],[True])\n\ttag_path4 \u003d \"[\" + self.session.custom.fc+ \"_SCADA_TAG_PROVIDER]\"+tag_name+\"/Enable_Chute_PB\"\n\tsystem.tag.writeBlocking([tag_path4],[True])" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button", - "tooltip": { - "enabled": true - } - }, - "position": { - "basis": "80px", - "grow": 1 - }, - "propConfig": { - "meta.tooltip.text": { - "binding": { - "config": { - "expression": "if({this.props.enabled},{this.props.text} +\u0027 Button\u0027,\"You do not have Maintenance or Administrator role!\")" - }, - "type": "expr" - } - }, - "props.enabled": { - "binding": { - "config": { - "expression": "if({this.props.text} \u003d \"ENABLE\",\r\n true,\r\n indexOf({session.props.auth.user.roles}, \"Administrator\") \u003e\u003d 0 \r\n || indexOf({session.props.auth.user.roles}, \"Maintenance\") \u003e\u003d 0\r\n)\r\n" - }, - "type": "expr" - } - }, - "props.image.icon.color": { - "binding": { - "config": { - "path": "view.custom.type" - }, - "transforms": [ - { - "fallback": "#000000", - "inputType": "scalar", - "mappings": [ - { - "input": "Start", - "output": "#FFFFFF" - } - ], - "outputType": "color", - "type": "map" - } - ], - "type": "property" - } - }, - "props.image.icon.path": { - "binding": { - "config": { - "path": "view.custom.type" - }, - "transforms": [ - { - "fallback": "", - "inputType": "scalar", - "mappings": [ - { - "input": "PR", - "output": "material/not_started" - }, - { - "input": "Start", - "output": "material/not_started" - }, - { - "input": "JR", - "output": "material/sync_problem" - }, - { - "input": "GS", - "output": "material/not_started" - }, - { - "input": "Chute_JR", - "output": "material/sync_problem" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "property" - } - }, - "props.style.backgroundColor": { - "binding": { - "config": { - "path": "view.custom.color" - }, - "type": "property" - } - }, - "props.text": { - "binding": { - "config": { - "path": "view.custom.type" - }, - "transforms": [ - { - "fallback": "UNKNOWN", - "inputType": "scalar", - "mappings": [ - { - "input": "PR", - "output": "PR ENABLE" - }, - { - "input": "Start", - "output": "START" - }, - { - "input": "JR", - "output": "JAM RESET" - }, - { - "input": "GS", - "output": "ENABLE" - }, - { - "input": "Chute_JR", - "output": "CHUTE JAM RESET" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "property" - } - }, - "props.textStyle.color": { - "binding": { - "config": { - "path": "view.custom.type" - }, - "transforms": [ - { - "fallback": "#000000", - "inputType": "scalar", - "mappings": [ - { - "input": "Start", - "output": "#FFFFFF" - } - ], - "outputType": "color", - "type": "map" - } - ], - "type": "property" - } - } - }, - "props": { - "image": { - "icon": {} - }, - "style": { - "classes": "Background-Styles/Controller" - } - }, - "type": "ia.input.button" - } - ], - "meta": { - "name": "Reset Jam" - }, - "position": { - "basis": "35px" - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel", - "padding": "" - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "FlexContainer_0" - }, - "position": { - "basis": "100px", - "grow": 1 - }, - "props": { - "direction": "column", - "style": { - "gap": 6, - "paddingBottom": 20, - "paddingLeft": 10, - "paddingRight": 10, - "paddingTop": 13 - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "Commands_tab" - }, - "position": { - "tabIndex": 2 - }, - "props": { - "direction": "column", - "style": { - "paddingTop": 1 - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "tabs" - }, - "position": { - "grow": 1 - }, - "propConfig": { - "props.tabs": { - "binding": { - "config": { - "path": "view.custom.type" - }, - "transforms": [ - { - "code": "\t# This script runs whenever view.custom.type changes\n\tif value \u003d\u003d \"PR\" or value \u003d\u003d \"Enable\":\n\t\treturn [\"Alarms\", \"Info\"]\n\telse:\n\t\treturn [\"Alarms\", \"Info\", \"Commands\"]", - "type": "script" - } - ], - "type": "property" - } - } - }, - "props": { - "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 - } - } - }, - "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/4bb2cdf3b0639655a05c49f092938eb073b5e6dd8a14370c38e3625606f06921 b/.resources/4bb2cdf3b0639655a05c49f092938eb073b5e6dd8a14370c38e3625606f06921 deleted file mode 100644 index d6a2286d..00000000 --- a/.resources/4bb2cdf3b0639655a05c49f092938eb073b5e6dd8a14370c38e3625606f06921 +++ /dev/null @@ -1,191 +0,0 @@ -{ - "custom": { - "state": { - "$": [ - "ds", - 192, - 1758705750254 - ], - "$columns": [ - { - "data": [], - "name": "Location", - "type": "String" - }, - { - "data": [], - "name": "Priority", - "type": "String" - }, - { - "data": [], - "name": "Count", - "type": "Long" - } - ] - }, - "status": "" - }, - "params": { - "value": { - "tagProps": [ - "value", - "value", - "value", - "value", - "value", - "value", - "value", - "value", - "value", - "value" - ] - } - }, - "propConfig": { - "custom.state": { - "binding": { - "config": { - "polling": { - "enabled": true, - "rate": "1" - }, - "queryPath": "GetActiveAlarmsByLocationAndPriority" - }, - "type": "query" - }, - "onChange": { - "enabled": null, - "script": "\tMCM \u003d self.params.value.tagProps[0]\n\tqueryData \u003d currentValue.value\n\t\n\tif not queryData:\n\t self.custom.status \u003d \"\"\n\t\n\t# Define priority order from highest to lowest\n\tpriority_order \u003d [\"Critical\", \"High\", \"Medium\", \"Low\", \"Diagnostic\"]\n\texisting_priorities \u003d set()\n\tmyPriority \u003d \"\"\n\t\n\t# Populate the set\n\tfor row in range(queryData.rowCount):\n\t mcm_val \u003d queryData.getValueAt(row, 0)\n\t severity \u003d queryData.getValueAt(row, 1).capitalize()\n\t count \u003d queryData.getValueAt(row, 2)\n\t\n\t if mcm_val \u003d\u003d MCM and count \u003e 0:\n\t existing_priorities.add(severity)\n\t\n\t# Find the highest one that exists\n\tfor priority in priority_order:\n\t if priority in existing_priorities:\n\t myPriority \u003d priority\n\t break\n\t\n\tself.custom.status \u003d myPriority" - }, - "persistent": true - }, - "custom.status": { - "persistent": true - }, - "params.value": { - "paramDirection": "input", - "persistent": true - } - }, - "props": { - "defaultSize": { - "height": 50, - "width": 300 - } - }, - "root": { - "children": [ - { - "events": { - "dom": { - "onClick": { - "config": { - "script": "\tnavigation.navigate_to_page.detailed_view(self, self.view.params.value.tagProps[0],self.view.params.value.tagProps[0], self.view.params.value.tagProps[3])" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Label" - }, - "position": { - "grow": 1 - }, - "propConfig": { - "props.style.classes": { - "binding": { - "config": { - "path": "view.custom.status" - }, - "transforms": [ - { - "fallback": "State-Styles/Background-Fill/State5", - "inputType": "scalar", - "mappings": [ - { - "input": "High", - "output": "State-Styles/Background-Fill/State1" - }, - { - "input": "Medium", - "output": "State-Styles/Background-Fill/State2" - }, - { - "input": "Low", - "output": "State-Styles/Background-Fill/State3" - }, - { - "input": "Diagnostic", - "output": "State-Styles/Background-Fill/State4" - } - ], - "outputType": "style-list", - "type": "map" - } - ], - "type": "property" - } - }, - "props.text": { - "binding": { - "config": { - "path": "view.custom.status" - }, - "transforms": [ - { - "fallback": "HEALTHY", - "inputType": "scalar", - "mappings": [ - { - "input": "Diagnostic", - "output": "DIAGNOSTIC" - }, - { - "input": "Low", - "output": "HALF WORKFLOW" - }, - { - "input": "Medium", - "output": "CONTROLLED STOP" - }, - { - "input": "High", - "output": "UNCONTROLLED STOP" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "property" - } - } - }, - "props": { - "style": { - "borderColor": "#555555", - "borderStyle": "none", - "cursor": "pointer", - "marginBottom": 8, - "marginTop": 8 - }, - "textStyle": { - "fontSize": 12, - "textAlign": "center" - } - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "root" - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - } -} \ No newline at end of file diff --git a/.resources/4d52085fd9941b25472e1971abae9c0acb2b169319b24653ed3e825600c7d16f b/.resources/4d52085fd9941b25472e1971abae9c0acb2b169319b24653ed3e825600c7d16f deleted file mode 100644 index 33a187eb..00000000 --- a/.resources/4d52085fd9941b25472e1971abae9c0acb2b169319b24653ed3e825600c7d16f +++ /dev/null @@ -1,1199 +0,0 @@ -{ - "custom": { - "PLC_list": [ - "MCM01", - "MCM02", - "MCM03", - "MCM04", - "MCM05" - ], - "running_state": -1, - "state": 0, - "views_data": [] - }, - "params": { - "tagProps": [ - "System/MCM01/PDP01_PMM1", - "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.running_state": { - "binding": { - "config": { - "expression": "try(jsonGet({session.custom.state_messages},{this.custom.tag_path_to_lookup}),-1)\t\r\n" - }, - "transforms": [ - { - "expression": "if({value} !\u003d -1, try(jsonGet({value},\"state\"),4),{value})", - "type": "expression" - } - ], - "type": "expr" - }, - "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 - }, - "custom.views_data": { - "binding": { - "config": { - "struct": { - "equipment_id": "{view.params.tagProps[0]}" - }, - "waitOnAll": true - }, - "transforms": [ - { - "code": "\tproject_info \u003d system.perspective.getProjectInfo()\n\t#self.custom.views_data \u003d project_info\n\tviews \u003d project_info.get(\"views\")\n\t#equipment_id \u003d self.view.params.tagProps[0]\n\tviews_data \u003d [i for i in views if i[\"path\"].startswith(\"Custom-Views/\"+ value.equipment_id)]\n\t#self.custom.views_data \u003d views_data\n\t\n\treturn views_data", - "type": "script" - } - ], - "type": "expr-struct" - }, - "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-DS\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}/Alarm/Communication_Faulted" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\"UNKNOWN\")", - "type": "expression" - }, - { - "fallback": "UNKNOWN", - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": "FAULTED" - }, - { - "input": 0, - "output": "NOT FAULTED" - }, - { - "input": true, - "output": "FAULTED" - }, - { - "input": false, - "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": "#008000" - }, - { - "input": "FAULTED", - "output": "#FF0000" - } - ], - "outputType": "color", - "type": "map" - } - ], - "type": "property" - } - } - }, - "props": { - "style": { - "classes": "Text-Styles/Ariel-Bold-12pt", - "paddingLeft": 10 - } - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "Property" - }, - "position": { - "basis": "35px", - "shrink": 2 - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel" - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "FlexContainer_1" - }, - "position": { - "basis": "35px" - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "NameField" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "PMM Fault" - }, - "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}/Alarm/PMM_Fault" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\"UNKNOWN\")", - "type": "expression" - }, - { - "fallback": "UNKNOWN", - "inputType": "scalar", - "mappings": [ - { - "input": true, - "output": "FAULTED" - }, - { - "input": false, - "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": "#008000" - }, - { - "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_5" - }, - "position": { - "basis": "35px" - }, - "propConfig": { - "meta.visible": { - "binding": { - "config": { - "path": "view.params.tagProps[0]" - }, - "transforms": [ - { - "code": " return \"PMM\" in str(value)", - "type": "script" - } - ], - "type": "property" - } - } - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "NameField" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "PMM KWH CONSUMED" - }, - "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}/PMM_KWH_Consumed" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\"UNKNOWN\")", - "type": "expression" - } - ], - "type": "tag" - } - } - }, - "props": { - "style": { - "classes": "Text-Styles/Ariel-Bold-12pt", - "paddingLeft": 10 - }, - "textStyle": { - "color": "#000000" - } - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "Property" - }, - "position": { - "basis": "35px", - "shrink": 2 - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel" - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "FlexContainer_2" - }, - "position": { - "basis": "35px" - }, - "propConfig": { - "meta.visible": { - "binding": { - "config": { - "path": "view.params.tagProps[0]" - }, - "transforms": [ - { - "code": " return \"PMM\" in str(value)", - "type": "script" - } - ], - "type": "property" - } - } - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "NameField" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "PMM TOTAL POWER" - }, - "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}/PMM_Total_Power" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\"UNKNOWN\")", - "type": "expression" - } - ], - "type": "tag" - } - } - }, - "props": { - "style": { - "classes": "Text-Styles/Ariel-Bold-12pt", - "paddingLeft": 10 - }, - "textStyle": { - "color": "#000000" - } - }, - "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_3" - }, - "position": { - "basis": "35px" - }, - "propConfig": { - "meta.visible": { - "binding": { - "config": { - "path": "view.params.tagProps[0]" - }, - "transforms": [ - { - "code": " return \"PMM\" in str(value)", - "type": "script" - } - ], - "type": "property" - } - } - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "NameField" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "PMM MAX TOTAL POWER" - }, - "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}/PMM_Max_Total_Power" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\"UNKNOWN\")", - "type": "expression" - } - ], - "type": "tag" - } - } - }, - "props": { - "style": { - "classes": "Text-Styles/Ariel-Bold-12pt", - "paddingLeft": 10 - }, - "textStyle": { - "color": "#000000" - } - }, - "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_4" - }, - "position": { - "basis": "35px" - }, - "propConfig": { - "meta.visible": { - "binding": { - "config": { - "path": "view.params.tagProps[0]" - }, - "transforms": [ - { - "code": " return \"PMM\" in str(value)", - "type": "script" - } - ], - "type": "property" - } - } - }, - "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": { - "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/4e5625e2a4ee3221a1eaec30a6e7f3561ef3730b586453e1fac10e9a76ea599a b/.resources/4e5625e2a4ee3221a1eaec30a6e7f3561ef3730b586453e1fac10e9a76ea599a deleted file mode 100644 index 7233b998..00000000 --- a/.resources/4e5625e2a4ee3221a1eaec30a6e7f3561ef3730b586453e1fac10e9a76ea599a +++ /dev/null @@ -1,1113 +0,0 @@ -{ - "custom": { - "start_color": "#C2C2C2", - "start_priority": "No Active Alarms", - "start_state": "Closed", - "stop_priority": "No Active Alarms", - "stop_state": "Closed" - }, - "params": { - "forceFaultStatus": null, - "tagProps": [ - "System/MCM01/Station/SS_PB/UL3_1_SS1", - "value", - "value", - "value", - "value", - "value", - "value", - "value", - "value", - "value" - ] - }, - "propConfig": { - "custom.start_color": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Start/Color" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},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.start_priority": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Start/Priority" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},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.start_state": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Start/State" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},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" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - }, - "persistent": true - }, - "custom.stop_color": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Stop/Color" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},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" - } - }, - "custom.stop_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},{view.params.forceFaultStatus},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.stop_state": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Stop/State" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},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" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - }, - "persistent": true - }, - "params.forceFaultStatus": { - "paramDirection": "input", - "persistent": true - }, - "params.tagProps": { - "paramDirection": "input", - "persistent": true - } - }, - "props": { - "defaultSize": { - "height": 25, - "width": 50 - } - }, - "root": { - "children": [ - { - "meta": { - "name": "Start", - "tooltip": { - "style": {} - } - }, - "position": { - "height": 1, - "width": 1 - }, - "propConfig": { - "meta.tooltip.style.classes": { - "binding": { - "config": { - "expression": "{view.custom.start_priority}" - }, - "transforms": [ - { - "fallback": "Alarms-Styles/NoAlarm", - "inputType": "scalar", - "mappings": [ - { - "input": "Diagnostic", - "output": "Alarms-Styles/Diagnostic" - }, - { - "input": "Low", - "output": "Alarms-Styles/Low" - }, - { - "input": "Medium", - "output": "Alarms-Styles/Medium" - }, - { - "input": "High", - "output": "Alarms-Styles/High" - } - ], - "outputType": "style-list", - "type": "map" - } - ], - "type": "expr" - } - }, - "meta.tooltip.text": { - "binding": { - "config": { - "expression": "if(\n {view.custom.start_state} !\u003d \"Closed\",\n \"Source Id: \" + {view.params.tagProps[0]} + \", Priority: \" + {view.custom.start_priority} + \", State: \" + {view.custom.start_state},\n \"Device Disconnected\"\n)\n" - }, - "type": "expr" - } - }, - "props.elements[1].fill.paint": { - "binding": { - "config": { - "expression": "if(\r\n {view.custom.start_state} \u003d \"Closed\",\r\n \"#000000\",\r\n {view.custom.start_color}\r\n)\r\n" - }, - "type": "expr" - } - } - }, - "props": { - "elements": [ - { - "d": "M 0,0 H 21 V 20 H 0 Z", - "fill": { - "paint": "#AAAAAA" - }, - "id": "outer-rect", - "name": "outer-rect", - "stroke": { - "paint": "#000000", - "width": "1.5" - }, - "type": "path" - }, - { - "d": "m 17,10.5 c 0,3.865993 -3.134007,7 -7,7 -3.8659932,0 -7,-3.134007 -7,-7 0,-3.8659932 3.1340068,-7 7,-7 3.865993,0 7,3.1340068 7,7 z", - "fill": {}, - "id": "inner-circle", - "name": "inner-circle", - "stroke": { - "paint": "#000000", - "width": "1" - }, - "type": "path" - } - ], - "viewBox": "0 0 40 20" - }, - "type": "ia.shapes.svg" - }, - { - "meta": { - "name": "Stop", - "tooltip": { - "style": {} - } - }, - "position": { - "height": 1, - "width": 1 - }, - "propConfig": { - "meta.tooltip.style.classes": { - "binding": { - "config": { - "expression": "{view.custom.start_priority}" - }, - "transforms": [ - { - "fallback": "Alarms-Styles/NoAlarm", - "inputType": "scalar", - "mappings": [ - { - "input": "Diagnostic", - "output": "Alarms-Styles/Diagnostic" - }, - { - "input": "Low", - "output": "Alarms-Styles/Low" - }, - { - "input": "Medium", - "output": "Alarms-Styles/Medium" - }, - { - "input": "High", - "output": "Alarms-Styles/High" - } - ], - "outputType": "style-list", - "type": "map" - } - ], - "type": "expr" - } - }, - "meta.tooltip.text": { - "binding": { - "config": { - "expression": "if(\n {view.custom.stop_state} !\u003d \"Closed\",\n \"Source Id: \" + {view.params.tagProps[0]} + \", Priority: \" + {view.custom.stop_priority} + \", State: \" + {view.custom.stop_state},\n \"Device Disconnected\"\n)\n" - }, - "type": "expr" - } - }, - "props.elements[1].fill.paint": { - "binding": { - "config": { - "expression": "if(\r\n {view.custom.stop_state} \u003d \"Closed\",\r\n \"#000000\",\r\n {view.custom.stop_color}\r\n)\r\n" - }, - "type": "expr" - } - } - }, - "props": { - "elements": [ - { - "d": "M 20, 0 H 40 V 20 H 20 Z", - "fill": { - "paint": "#AAAAAA" - }, - "id": "outer-rect", - "name": "outer-rect", - "stroke": { - "paint": "#000000", - "width": "1.5" - }, - "type": "path" - }, - { - "d": "m 36.642136,10.376001 c 0,3.865993 -3.134007,7 -7,7 -3.865993,0 -7,-3.134007 -7,-7 0,-3.8659928 3.134007,-6.9999998 7,-6.9999998 3.865993,0 7,3.134007 7,6.9999998 z", - "fill": {}, - "id": "inner-circle-8", - "name": "inner-circle-8", - "stroke": { - "paint": "#000000", - "width": "1" - }, - "type": "path" - } - ], - "viewBox": "0 0 40 20" - }, - "type": "ia.shapes.svg" - } - ], - "events": { - "dom": { - "onClick": { - "config": { - "script": "\tsystem.perspective.openDock(\u0027Docked-East-SS-BTN\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" - }, - "scope": "G", - "type": "script" - }, - "onDoubleClick": { - "config": { - "script": "\ttagProps \u003d self.view.params.tagProps\n\tsystem.perspective.openPopup(\"StatusPopUP\", \"PopUp-Views/Controller-Equipment/Information\", params \u003d{\"tagProps\":tagProps})" - }, - "scope": "G", - "type": "script" - }, - "onMouseEnter": { - "config": { - "script": "\tself.props.style.transform \u003d \"scale(2)\"\n\tfrom time import sleep\n\t\n\talarm \u003d []\n\tmessage \u003d None\n\t\n#\tsleep(0.5)\n\t\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message" - }, - "scope": "G", - "type": "script" - }, - "onMouseLeave": { - "config": { - "script": "\tself.props.style.transform \u003d \"scale(1)\"" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "root", - "tooltip": { - "enabled": true, - "style": {} - } - }, - "propConfig": { - "meta.tooltip.style.classes": { - "binding": { - "config": { - "expression": "{view.custom.start_priority}" - }, - "transforms": [ - { - "fallback": "Alarms-Styles/NoAlarm", - "inputType": "scalar", - "mappings": [ - { - "input": "Diagnostic", - "output": "Alarms-Styles/Diagnostic" - }, - { - "input": "Low", - "output": "Alarms-Styles/Low" - }, - { - "input": "Medium", - "output": "Alarms-Styles/Medium" - }, - { - "input": "High", - "output": "Alarms-Styles/High" - } - ], - "outputType": "style-list", - "type": "map" - } - ], - "type": "expr" - } - }, - "meta.tooltip.text": { - "binding": { - "config": { - "expression": "if(\n {view.custom.start_state} !\u003d \"Closed\",\n \"Source Id: \" + {view.params.tagProps[0]} + \", Start Priority: \" + {view.custom.start_priority} + \", Start State: \" + {view.custom.start_state} + \", Stop Priority: \" + {view.custom.stop_priority} + \", Stop State: \" + {view.custom.stop_state},\n \"Device Disconnected\"\n)\n" - }, - "type": "expr" - } - }, - "meta.visible": { - "binding": { - "config": { - "path": "session.custom.alarm_filter.show_buttons" - }, - "type": "property" - } - } - }, - "props": { - "mode": "percent", - "style": { - "cursor": "pointer", - "transform": "scale(1)", - "transition": "transform 100ms linear" - } - }, - "type": "ia.container.coord" - } -} \ No newline at end of file diff --git a/.resources/4ec451d6a66ded836155e7653231dd5d3373a49df1c7a56a04f7505e4614da63 b/.resources/4ec451d6a66ded836155e7653231dd5d3373a49df1c7a56a04f7505e4614da63 deleted file mode 100644 index 3c6b92ea..00000000 --- a/.resources/4ec451d6a66ded836155e7653231dd5d3373a49df1c7a56a04f7505e4614da63 +++ /dev/null @@ -1,3322 +0,0 @@ -{ - "custom": { - "MCM": "", - "currentTable": "ACTIVE", - "page": "", - "view": "" - }, - "params": {}, - "propConfig": { - "custom.MCM": { - "binding": { - "config": { - "expression": "if({view.custom.view} !\u003d \"\", {view.custom.view}, {view.custom.page})" - }, - "type": "expr" - }, - "persistent": true - }, - "custom.currentTable": { - "persistent": true - }, - "custom.page": { - "binding": { - "config": { - "path": "page.props.path" - }, - "transforms": [ - { - "code": "\ttry:\n\t\tif \"MCM\" in value:\n\t\t\tindex \u003d value.find(\"MCM\")\n\t\t\treturn value[index:index+5] # MCM + 2 digits\n\texcept:\n\t\t\tpass\n\treturn \"\"", - "type": "script" - } - ], - "type": "property" - }, - "persistent": true - }, - "custom.view": { - "binding": { - "config": { - "path": "page.props.primaryView" - }, - "transforms": [ - { - "code": "\ttry:\n\t\tif \"MCM\" in value:\n\t\t\tindex \u003d value.find(\"MCM\")\n\t\t\treturn value[index:index+5] # MCM + 2 digits\n\texcept:\n\t\t\tpass\n\treturn \"\"", - "type": "script" - } - ], - "type": "property" - }, - "persistent": true - } - }, - "props": { - "defaultSize": { - "height": 250, - "width": 1920 - } - }, - "root": { - "children": [ - { - "children": [ - { - "meta": { - "name": "Label" - }, - "position": { - "basis": "32px", - "grow": 1 - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "FlexContainer" - }, - "position": { - "basis": "70px", - "shrink": 0 - }, - "props": { - "direction": "column", - "style": { - "backgroundColor": "#3B3B3B" - } - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "custom": { - "priority": { - "diagnostic": true, - "high": true, - "low": true, - "medium": true - } - }, - "events": { - "component": { - "onRowDoubleClick": { - "config": { - "script": "\tdata \u003d self.props.selection.data\n\t\n\talarms.alarm_click.handleClick(data)" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "active-table" - }, - "position": { - "basis": "1080px", - "grow": 1 - }, - "propConfig": { - "custom.priorities": { - "binding": { - "config": { - "path": "this.custom.priority" - }, - "transforms": [ - { - "code": "\t# value looks like: {\"diagnostic\": True, \"high\": True, \"low\": False, ...}\n\tfrom system.util import jsonEncode, jsonDecode\n\t\n\tprio_map \u003d {\u0027diagnostic\u0027:0,\u0027low\u0027:1,\u0027medium\u0027:2,\u0027high\u0027:3,\u0027critical\u0027:4}\n\t\n\t# Coerce Perspective objects (PyDictionary/Java Map) to a plain Python dict\n\ttry:\n\t d \u003d value if isinstance(value, dict) else jsonDecode(jsonEncode(value))\n\texcept:\n\t d \u003d {}\n\t\n\t# Normalize keys and build CSV (\u0027\u0027 means \"all\")\n\tenabled \u003d [str(prio_map[k]) for k in prio_map if bool(d.get(k, False))]\n\treturn \",\".join(enabled) if enabled else \"\"", - "type": "script" - } - ], - "type": "property" - } - }, - "position.display": { - "binding": { - "config": { - "expression": "{view.custom.currentTable} \u003d \"ACTIVE\"" - }, - "type": "expr" - } - }, - "props.columns[4].filter.string.value": { - "binding": { - "config": { - "path": "view.custom.MCM" - }, - "type": "property" - } - }, - "props.data": { - "binding": { - "config": { - "parameters": { - "priorityList": "{this.custom.priorities}" - }, - "polling": { - "enabled": true, - "rate": "3" - }, - "queryPath": "GetActiveAlarms" - }, - "transforms": [ - { - "code": "\n\tfrom system.dataset import toPyDataSet\n\n\tds \u003d toPyDataSet(value)\n\tdata \u003d []\n\n\tcolumn_names \u003d [col for col in ds.columnNames if col !\u003d \"EndTimestamp\"]\n\t\n\n\tfor row in ds:\n\t\tpriority \u003d row[\"Priority\"]\n\n\t\t# Use style class names from Perspective\n\t\tif priority \u003d\u003d \"High\":\n\t\t\tclassName \u003d \"Alarms-Styles/High\"\n\t\telif priority \u003d\u003d \"Medium\":\n\t\t\tclassName \u003d \"Alarms-Styles/Medium\"\n\t\telif priority \u003d\u003d \"Low\":\n\t\t\tclassName \u003d \"Alarms-Styles/Low\"\n\t\telif priority \u003d\u003d \"Diagnostic\":\n\t\t\tclassName \u003d \"Alarms-Styles/Diagnostic\"\n\t\telse:\n\t\t\tclassName \u003d \"Alarms-Styles/NoAlarm\"\n\n\t\t# Apply the style class to all cells in the row\n\t\trow_dict \u003d {\n\t\t\tcol: {\n\t\t\t\t\"value\": row[col],\n\t\t\t\t\"style\": { \"classes\": className }\n\t\t\t} for col in column_names\n\t\t}\n\t\tdata.append(row_dict)\n\n\treturn data", - "type": "script" - } - ], - "type": "query" - } - } - }, - "props": { - "columns": [ - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "NumberID", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "Number (ID)" - }, - "justify": "left", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 70 - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY HH:mm:ss", - "editable": false, - "field": "StartTimestamp", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "Event Timestamp" - }, - "justify": "auto", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 70 - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Duration", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": true, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "equals", - "value": "" - }, - "visible": "never" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "string", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 70 - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Priority", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 70 - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Location", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": true, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "equals" - }, - "visible": "never" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 70 - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Description", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 150 - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Tag", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "auto", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 80 - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "FullTag", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "auto", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "", - "display": "none" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Device", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "auto", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "", - "display": "none" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - } - ], - "emptyMessage": { - "noData": { - "text": "No Active Alarms" - }, - "noFilterResults": { - "text": "No Active Alarms" - } - }, - "filter": { - "results": { - "enabled": true - } - }, - "pager": { - "bottom": false - } - }, - "type": "ia.display.table" - }, - { - "events": { - "component": { - "onRowDoubleClick": { - "config": { - "script": "\tdata \u003d self.props.selection.data\n\t\n\talarms.alarm_click.handleClick(data)" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "hitList-table" - }, - "position": { - "basis": "1080px", - "grow": 1 - }, - "propConfig": { - "position.display": { - "binding": { - "config": { - "expression": "{view.custom.currentTable} \u003d \"HITLIST\"" - }, - "type": "expr" - } - }, - "props.columns[5].filter.string.value": { - "binding": { - "config": { - "path": "view.custom.MCM" - }, - "type": "property" - } - }, - "props.data": { - "binding": { - "config": { - "polling": { - "enabled": true, - "rate": "3" - }, - "queryPath": "GetAlarmsWithCount" - }, - "transforms": [ - { - "code": "\n\tfrom system.dataset import toPyDataSet\n\n\tds \u003d toPyDataSet(value)\n\tdata \u003d []\n\n\tcolumn_names \u003d list(ds.columnNames)\n\n\tfor row in ds:\n\t\tpriority \u003d row[\"Priority\"]\n\n\t\t# Use style class names from Perspective\n\t\tif priority \u003d\u003d \"High\":\n\t\t\tclassName \u003d \"Alarms-Styles/High\"\n\t\telif priority \u003d\u003d \"Medium\":\n\t\t\tclassName \u003d \"Alarms-Styles/Medium\"\n\t\telif priority \u003d\u003d \"Low\":\n\t\t\tclassName \u003d \"Alarms-Styles/Low\"\n\t\telif priority \u003d\u003d \"Diagnostic\":\n\t\t\tclassName \u003d \"Alarms-Styles/Diagnostic\"\n\t\telse:\n\t\t\tclassName \u003d \"Alarms-Styles/NoAlarm\"\n\n\t\t# Apply the style class to all cells in the row\n\t\trow_dict \u003d {\n\t\t\tcol: {\n\t\t\t\t\"value\": row[col],\n\t\t\t\t\"style\": { \"classes\": className }\n\t\t\t} for col in column_names\n\t\t}\n\t\tdata.append(row_dict)\n\n\treturn data\n", - "type": "script" - } - ], - "type": "query" - } - }, - "props.editingCell": { - "onChange": { - "enabled": null, - "script": "\tall_alarms \u003d system.alarm.queryStatus(includeShelved\u003dTrue)\n\tshelved_alarms \u003d [alarm for alarm in all_alarms if alarm.isShelved()]\n\t\n\t# Build dataset for table\n\theaders \u003d [\u0027ID\u0027, \u0027StartTimestamp\u0027, \u0027EndTimestamp\u0027, \u0027Duration\u0027, \u0027Description\u0027, \u0027Priority\u0027, \u0027Tag\u0027, \u0027MCM\u0027]\n\tdata \u003d []\n\t\n\tfor alarm in shelved_alarms:\n\t # Calculate duration (time since shelved)\n\t if alarm.activeTime:\n\t duration_ms \u003d system.date.now().getTime() - alarm.activeTime.getTime()\n\t duration_seconds \u003d duration_ms / 1000\n\t hours \u003d int(duration_seconds / 3600)\n\t minutes \u003d int((duration_seconds % 3600) / 60)\n\t seconds \u003d int(duration_seconds % 60)\n\t duration \u003d \"%02d:%02d:%02d\" % (hours, minutes, seconds)\n\t else:\n\t duration \u003d \"00:00:00\"\n\t \n\t # Extract tag name from source\n\t tag_name \u003d alarm.source.split(\u0027/\u0027)[-1] if \u0027/\u0027 in alarm.source else alarm.source\n\t \n\t row \u003d [\n\t str(alarm.id) if hasattr(alarm, \u0027id\u0027) else \u0027\u0027,\n\t alarm.activeTime if alarm.activeTime else system.date.now(),\n\t None, # End timestamp (shelved alarms don\u0027t have end time yet)\n\t duration,\n\t alarm.displayPath if alarm.displayPath else alarm.source,\n\t alarm.priority.name if alarm.priority else \u0027Unknown\u0027,\n\t tag_name,\n\t \u0027System\u0027 # Adjust based on your source format\n\t ]\n\t data.append(row)\n\t\n\t# Create dataset and update the custom property\n\tdataset \u003d system.dataset.toDataSet(headers, data)\n\tself.custom.shelvedAlarmsData \u003d dataset" - } - }, - "props.selection": { - "persistent": true - } - }, - "props": { - "columns": [ - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY HH:mm:ss", - "editable": false, - "field": "FirstTimestamp", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "left", - "style": { - "backgroundColor": "#FFFEFE", - "classes": "" - }, - "title": "First Timestamp" - }, - "justify": "left", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "value", - "dateFormat": "MM-DD-YYYY HH:mm:ss", - "editable": false, - "field": "LastTimestamp", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "Last Timestamp" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "none", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM-DD-YYYY HH:mm:ss", - "editable": false, - "field": "Count", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "none", - "editable": false, - "field": "Duration", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "none", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Priority", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Location", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": true, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "equals" - }, - "visible": "never" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Description", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 150 - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Tag", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "FullTag", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "auto", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "", - "display": "none" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Device", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "auto", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "", - "display": "none" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - } - ], - "emptyMessage": { - "noData": { - "text": "No Alarms" - }, - "noFilterResults": { - "text": "No Alarms" - } - }, - "filter": { - "results": { - "enabled": true - } - }, - "pager": { - "activeOption": 5, - "bottom": false - } - }, - "type": "ia.display.table" - }, - { - "events": { - "component": { - "onRowDoubleClick": { - "config": { - "script": "\tdata \u003d self.props.selection.data\n\t\n\talarms.alarm_click.handleClick(data)" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "historical-table" - }, - "position": { - "basis": "1080px", - "grow": 1 - }, - "propConfig": { - "position.display": { - "binding": { - "config": { - "expression": "{view.custom.currentTable} \u003d \"HISTORY\"" - }, - "type": "expr" - } - }, - "props.columns[6].filter.string.value": { - "binding": { - "config": { - "path": "view.custom.MCM" - }, - "type": "property" - } - }, - "props.data": { - "binding": { - "config": { - "parameters": { - "endtime": "dateArithmetic(now(1000), 1, \"days\")", - "offset": "100", - "starttime": "now(1000)" - }, - "polling": { - "enabled": true, - "rate": "3" - }, - "queryPath": "GetAlarms" - }, - "transforms": [ - { - "code": "\n\tfrom system.dataset import toPyDataSet\n\n\tds \u003d toPyDataSet(value)\n\tdata \u003d []\n\n\tcolumn_names \u003d list(ds.columnNames)\n\n\tfor row in ds:\n\t\tpriority \u003d row[\"Priority\"]\n\n\t\t# Use style class names from Perspective\n\t\tif priority \u003d\u003d \"High\":\n\t\t\tclassName \u003d \"Alarms-Styles/High\"\n\t\telif priority \u003d\u003d \"Medium\":\n\t\t\tclassName \u003d \"Alarms-Styles/Medium\"\n\t\telif priority \u003d\u003d \"Low\":\n\t\t\tclassName \u003d \"Alarms-Styles/Low\"\n\t\telif priority \u003d\u003d \"Diagnostic\":\n\t\t\tclassName \u003d \"Alarms-Styles/Diagnostic\"\n\t\telse:\n\t\t\tclassName \u003d \"Alarms-Styles/NoAlarm\"\n\n\t\t# Apply the style class to all cells in the row\n\t\trow_dict \u003d {\n\t\t\tcol: {\n\t\t\t\t\"value\": row[col],\n\t\t\t\t\"style\": { \"classes\": className }\n\t\t\t} for col in column_names\n\t\t}\n\t\tdata.append(row_dict)\n\n\treturn data", - "type": "script" - } - ], - "type": "query" - } - } - }, - "props": { - "columns": [ - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "none", - "editable": false, - "field": "ID", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "", - "paddingLeft": 12 - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY HH:mm:ss", - "editable": false, - "field": "StartTimestamp", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": { - "$": [ - "ts", - 201, - 1750755617512 - ], - "$ts": 1750435156149 - } - }, - "enabled": true, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "never" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "Start Timestamp" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "none", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY HH:mm:ss", - "editable": false, - "field": "EndTimestamp", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": { - "$": [ - "ts", - 201, - 1750755617511 - ], - "$ts": 1750436956149 - } - }, - "enabled": true, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "never" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "End Timestamp" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "none", - "editable": false, - "field": "Duration", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "", - "paddingLeft": 12 - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "none", - "editable": false, - "field": "Description", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "ascending", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Priority", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": true, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "contains", - "value": "" - }, - "visible": "never" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "Severity" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Location", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": true, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "equals" - }, - "visible": "never" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Tag", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": true, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "contains", - "value": "" - }, - "visible": "never" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "FullTag", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "auto", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "", - "display": "none" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Device", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "auto", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "", - "display": "none" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - } - ], - "emptyMessage": { - "noData": { - "text": "No Alarms" - }, - "noFilterResults": { - "text": "No Alarms" - } - }, - "enabled": true, - "filter": { - "results": { - "enabled": true - } - }, - "pager": { - "bottom": false - }, - "sortOrder": [ - "Description" - ] - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "update-first-request", - "pageScope": true, - "script": "\tdata \u003d payload[\"data\"]\n\tinitial_data \u003d payload[\"initial_data\"]\n\tself.props.data \u003d data\n\tself.custom.initial_data \u003d initial_data", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "update-historical-data", - "pageScope": true, - "script": "\thistorical_data \u003d payload[\"data\"]\n\tself.props.data \u003d historical_data", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "load_initial_data", - "pageScope": true, - "script": "\trequest \u003d payload[\"data\"]\n\tsystem.perspective.print(\"initial message received\")\n\tif request \u003d\u003d True:\n\t\tself.props.data \u003d self.custom.initial_data", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "reset-historical-filters", - "pageScope": true, - "script": "\treset \u003d payload[\"data\"]\n\tif reset \u003d\u003d \"reset\":\n\t\tself.props.data \u003d []\n\t\tself.custom.device_filters \u003d None\n\t\tself.custom.priority_filters \u003d None\n\t\tself.custom.source_id_filters \u003d None\n\t\tself.custom.time_from_filter \u003d None\n\t\tself.custom.time_to_filter \u003d None\n\t\tself.custom.type_filters \u003d None\n\t\tself.custom.duration_filter \u003d None\n\t\tself.props.enabled \u003dTrue", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-source-filters", - "pageScope": true, - "script": "\tfilters \u003d payload[\"data\"]\n\tself.custom.source_id_filters \u003d filters", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-device-filters", - "pageScope": true, - "script": "\tfilters \u003d payload[\"data\"]\n\tself.custom.device_filters \u003d filters", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-priority-filters", - "pageScope": true, - "script": "\tfilters \u003d payload[\"data\"]\n\tself.custom.priority_filters \u003d filters", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-from-filters", - "pageScope": true, - "script": "\ttime \u003d payload[\"data\"]\n\tself.custom.time_from_filter \u003d time", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-to-filters", - "pageScope": true, - "script": "\ttime \u003d payload[\"data\"]\n\tself.custom.time_to_filter \u003d time", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-type-filters", - "pageScope": true, - "script": "\tfilters \u003d payload[\"data\"]\n\tself.custom.type_filters \u003d filters", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-duration-filters", - "pageScope": true, - "script": "\tduration \u003d payload[\"data\"]\n\tself.custom.duration_filter \u003d duration", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.display.table" - } - ], - "meta": { - "name": "FlexContainer_0" - }, - "position": { - "basis": "1920px", - "grow": 1 - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tself.view.custom.currentTable \u003d \"ACTIVE\"" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "ACTIVE" - }, - "position": { - "basis": "150px" - }, - "propConfig": { - "props.style.backgroundColor": { - "binding": { - "config": { - "expression": "if({view.custom.currentTable}\u003d\"ACTIVE\", \"#C3C3C3\", \"#FFFFFF\")" - }, - "type": "expr" - } - } - }, - "props": { - "style": { - "borderStyle": "none", - "color": "#000000" - }, - "text": "ACTIVE" - }, - "type": "ia.input.button" - }, - { - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tself.view.custom.currentTable \u003d \"HITLIST\"" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "HIT LIST" - }, - "position": { - "basis": "150px" - }, - "propConfig": { - "props.style.backgroundColor": { - "binding": { - "config": { - "expression": "if({view.custom.currentTable}\u003d\"HITLIST\", \"#C3C3C3\", \"#FFFFFF\")" - }, - "type": "expr" - } - } - }, - "props": { - "style": { - "borderStyle": "none", - "color": "#000000" - }, - "text": "HIT LIST" - }, - "type": "ia.input.button" - }, - { - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tself.view.custom.currentTable \u003d \"HISTORY\"" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "HISTORY" - }, - "position": { - "basis": "150px" - }, - "propConfig": { - "props.style.backgroundColor": { - "binding": { - "config": { - "expression": "if({view.custom.currentTable}\u003d\"HISTORY\", \"#C3C3C3\", \"#FFFFFF\")" - }, - "type": "expr" - } - } - }, - "props": { - "style": { - "borderStyle": "none", - "color": "#000000" - }, - "text": "HISTORY" - }, - "type": "ia.input.button" - }, - { - "meta": { - "name": "FlexContainer" - }, - "position": { - "basis": "852px", - "grow": 1 - }, - "props": { - "style": { - "backgroundColor": "#FFFFFF" - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "FlexContainer" - }, - "position": { - "basis": "300px", - "grow": 1 - }, - "props": { - "style": { - "gap": 2 - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "FlexContainer_0" - }, - "position": { - "basis": "200px", - "grow": 1 - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - } - ], - "events": { - "system": { - "onStartup": { - "config": { - "script": "\tif self.view.custom.currentTable \u003d\u003d \"\":\n\t\tself.view.custom.currentTable \u003d \"ACTIVE\"" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "root" - }, - "type": "ia.container.flex" - } -} \ No newline at end of file diff --git a/.resources/575748546b46c3d57950abb39ea929f470753e688d925cda685fcb095db4e937 b/.resources/575748546b46c3d57950abb39ea929f470753e688d925cda685fcb095db4e937 deleted file mode 100644 index 34267b98a2d0a817a2c826a279735fbf319d541c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 896 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 fUepy((n*t;VrirA1U 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 diff --git a/.resources/609e1a5b9c670287496e6f3ef79d65da7963680a02ba12aff5bea53ae490c929 b/.resources/609e1a5b9c670287496e6f3ef79d65da7963680a02ba12aff5bea53ae490c929 deleted file mode 100644 index 57ea4d77..00000000 --- a/.resources/609e1a5b9c670287496e6f3ef79d65da7963680a02ba12aff5bea53ae490c929 +++ /dev/null @@ -1,294 +0,0 @@ -{ - "custom": { - "color": "#000000", - "priority": "No Active Alarms", - "state": "TagError" - }, - "params": { - "tagProps": [ - "Status/Chutes/Chute_0", - "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}/" - }, - "transforms": [ - { - "code": "\tdata \u003d dict(value) if value else {}\n\t\n\tif data.get(\"bLamp_Enable\"):\n\t return \"#CCFFCC\" \n\treturn \"#000000\"", - "type": "script" - } - ], - "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}/" - }, - "transforms": [ - { - "code": "\tdata \u003d dict(value) if value else {}\n\t\n\tif data.get(\"bLamp_Enable\"):\n\t return \"Low\" \n\treturn \"No Active Alarms\"", - "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}/" - }, - "transforms": [ - { - "code": "\tdata \u003d dict(value) if value else {}\n\t\t\n\tif value is None or data.get(\"_quality\") \u003d\u003d \"Bad\" or data.get(\"error\"):\n\t return \"TagError\"\n\tif data.get(\"bLamp_Enable\"):\n\t return \"Enable PB Pressed\" \n\treturn \"Inactive\"", - "type": "script" - } - ], - "type": "tag" - }, - "persistent": true - }, - "params.tagProps": { - "paramDirection": "input", - "persistent": true - } - }, - "props": { - "defaultSize": { - "height": 25, - "width": 25 - } - }, - "root": { - "children": [ - { - "meta": { - "name": "Button" - }, - "position": { - "height": 1, - "width": 1 - }, - "propConfig": { - "props.elements[1].fill.paint": { - "binding": { - "config": { - "expression": "if(\r\n {view.custom.state} \u003d \"Closed\",\r\n \"#000000\",\r\n {view.custom.color}\r\n)\r\n" - }, - "type": "expr" - } - }, - "props.style.classes": { - "binding": { - "config": { - "expression": "if({session.custom.colours.colour_impaired} \u003d True,\r\n{view.custom.state} + 100,\r\n{view.custom.state})" - }, - "enabled": false, - "transforms": [ - { - "fallback": "", - "inputType": "scalar", - "mappings": [ - { - "input": 101, - "output": "State-Styles/State101" - }, - { - "input": 102, - "output": "State-Styles/State102" - }, - { - "input": 103, - "output": "State-Styles/State103" - }, - { - "input": 104, - "output": "State-Styles/State104" - }, - { - "input": 105, - "output": "State-Styles/State105" - }, - { - "input": 106, - "output": "State-Styles/State106" - }, - { - "input": 201, - "output": "State-Styles/State201" - }, - { - "input": 202, - "output": "State-Styles/State202" - }, - { - "input": 203, - "output": "State-Styles/State203" - }, - { - "input": 204, - "output": "State-Styles/State204" - }, - { - "input": 205, - "output": "State-Styles/State205" - } - ], - "outputType": "style-list", - "type": "map" - } - ], - "type": "expr" - } - } - }, - "props": { - "elements": [ - { - "d": "M 0,0 H 20 V 20 H 0 Z", - "fill": { - "paint": "#AAAAAA" - }, - "name": "path", - "stroke": { - "paint": "#000000", - "width": "1.5" - }, - "type": "path" - }, - { - "d": "m 17,10.5 a 7,7 0 0 1 -7,7 7,7 0 0 1 -7,-7 7,7 0 0 1 7,-7 7,7 0 0 1 7,7 z", - "fill": {}, - "name": "path", - "stroke": { - "paint": "#000000", - "width": "1" - }, - "type": "path" - } - ], - "viewBox": "0 0 20 20" - }, - "type": "ia.shapes.svg" - } - ], - "events": { - "dom": { - "onClick": { - "config": { - "script": "\tsystem.perspective.openDock(\u0027Docked-East-CHPB\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" - }, - "scope": "G", - "type": "script" - }, - "onMouseEnter": { - "config": { - "script": "\tfrom time import sleep\n\t\n\talarm \u003d []\n\tmessage \u003d None\n\t\n\tsleep(0.5)\n\t\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "root", - "tooltip": { - "enabled": true, - "style": {} - } - }, - "propConfig": { - "meta.tooltip.style.classes": { - "binding": { - "config": { - "expression": "{view.custom.priority}" - }, - "transforms": [ - { - "fallback": "Alarms-Styles/NoAlarm", - "inputType": "scalar", - "mappings": [ - { - "input": "High", - "output": "Alarms-Styles/High" - }, - { - "input": "Medium", - "output": "Alarms-Styles/Medium" - }, - { - "input": "Low", - "output": "Alarms-Styles/Low" - }, - { - "input": "Diagnostic", - "output": "Alarms-Styles/Diagnostic" - } - ], - "outputType": "style-list", - "type": "map" - } - ], - "type": "expr" - } - }, - "meta.tooltip.text": { - "binding": { - "config": { - "expression": "if(\n {view.custom.state} !\u003d \"TagError\",\n \"Source Id: \" + {view.params.tagProps[1]} + \", 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_buttons" - }, - "type": "property" - } - } - }, - "props": { - "mode": "percent", - "style": { - "cursor": "pointer" - } - }, - "type": "ia.container.coord" - } -} \ No newline at end of file diff --git a/.resources/6ad59b7bab0683798f68dccf0a5e0bedfe3a9cebe2e703ba155d2a978d0b97b7 b/.resources/6ad59b7bab0683798f68dccf0a5e0bedfe3a9cebe2e703ba155d2a978d0b97b7 deleted file mode 100644 index 65100aed..00000000 --- a/.resources/6ad59b7bab0683798f68dccf0a5e0bedfe3a9cebe2e703ba155d2a978d0b97b7 +++ /dev/null @@ -1,3441 +0,0 @@ -{ - "custom": { - "PLC_list": [ - "MCM01", - "MCM02", - "MCM03", - "MCM04", - "MCM05" - ], - "state": 0 - }, - "params": { - "tagProps": [ - "System/MCM01/MCM01", - "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-MCM\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": "Name" - }, - "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": "Property" - }, - "position": { - "basis": "35px" - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel", - "overflow": "hidden" - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "Name" - }, - "position": { - "basis": "35px" - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "Name" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "MOTOR FAULT" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Motor Fault" - }, - "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}/Alarm/Motor_Fault" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\"UNKNOWN\")", - "type": "expression" - }, - { - "fallback": "UNKNOWN", - "inputType": "scalar", - "mappings": [ - { - "input": true, - "output": "MOTOR FAULTED" - }, - { - "input": false, - "output": "MOTOR NOT FAULTED" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - }, - "props.textStyle.color": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#000000", - "inputType": "scalar", - "mappings": [ - { - "input": "MOTOR FAULTED", - "output": "#FF0000" - }, - { - "input": "MOTOR NOT FAULTED", - "output": "#008000" - } - ], - "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": "Motor Fault" - }, - "position": { - "basis": "35px" - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "Name" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "JAM FAULT" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Jam Fault" - }, - "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}/Alarm/Jam_Fault" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\"UNKNOWN\")", - "type": "expression" - }, - { - "fallback": "UNKNOWN", - "inputType": "scalar", - "mappings": [ - { - "input": true, - "output": "JAM FAULTED" - }, - { - "input": false, - "output": "JAM NOT FAULTED" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - }, - "props.textStyle.color": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#000000", - "inputType": "scalar", - "mappings": [ - { - "input": "JAM FAULTED", - "output": "#FFC000" - }, - { - "input": "JAM NOT FAULTED", - "output": "#008000" - } - ], - "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": "Jam Fault" - }, - "position": { - "basis": "35px" - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "Name" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "FIRE RELAY DE ENERGIZED" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Fire Relay De Energized" - }, - "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}/Alarm/Fire_Relay_De_Energized" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\"UNKNOWN\")", - "type": "expression" - }, - { - "fallback": "UNKNOWN", - "inputType": "scalar", - "mappings": [ - { - "input": true, - "output": "DE ENERGIZED" - }, - { - "input": false, - "output": "NOT DE ENERGIZED" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - }, - "props.textStyle.color": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#000000", - "inputType": "scalar", - "mappings": [ - { - "input": "DE ENERGIZED", - "output": "#FF0000" - }, - { - "input": "NOT DE ENERGIZED", - "output": "#008000" - } - ], - "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": "Fire Relay De Energized" - }, - "position": { - "basis": "35px" - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "Name" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "ESTOPPED" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Estopped" - }, - "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}/Alarm/EStopped" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\"UNKNOWN\")", - "type": "expression" - }, - { - "fallback": "UNKNOWN", - "inputType": "scalar", - "mappings": [ - { - "input": true, - "output": "ESTOPPED" - }, - { - "input": false, - "output": "NOT ESTOPPED" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - }, - "props.textStyle.color": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#000000", - "inputType": "scalar", - "mappings": [ - { - "input": "ESTOPPED", - "output": "#FF0000" - }, - { - "input": "NOT ESTOPPED", - "output": "#008000" - } - ], - "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": "Estopped" - }, - "position": { - "basis": "35px" - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "Name" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "ESTOPPED LOCALLY" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Estopped Locally" - }, - "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}/Alarm/EStopped_Locally" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\"UNKNOWN\")", - "type": "expression" - }, - { - "fallback": "UNKNOWN", - "inputType": "scalar", - "mappings": [ - { - "input": true, - "output": "ESTOPPED" - }, - { - "input": false, - "output": "NOT ESTOPPED" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - }, - "props.textStyle.color": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#000000", - "inputType": "scalar", - "mappings": [ - { - "input": "ESTOPPED", - "output": "#FF0000" - }, - { - "input": "NOT ESTOPPED", - "output": "#008000" - } - ], - "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": "Estopped Locally" - }, - "position": { - "basis": "35px" - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "Name" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "STOPPED" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Stopped" - }, - "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}/Alarm/Stopped" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\"UNKNOWN\")", - "type": "expression" - }, - { - "fallback": "UNKNOWN", - "inputType": "scalar", - "mappings": [ - { - "input": true, - "output": "STOPPED" - }, - { - "input": false, - "output": "NOT STOPPED" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - }, - "props.textStyle.color": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#000000", - "inputType": "scalar", - "mappings": [ - { - "input": "STOPPED", - "output": "#FF0000" - }, - { - "input": "NOT STOPPED", - "output": "#008000" - } - ], - "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": "Stopped" - }, - "position": { - "basis": "35px" - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "Name" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "NAT SWITCH FAULT" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "NAT Switch Fault" - }, - "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}/Alarm/NAT_Switch_Fault" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\"UNKNOWN\")", - "type": "expression" - }, - { - "fallback": "UNKNOWN", - "inputType": "scalar", - "mappings": [ - { - "input": true, - "output": "SWITCH FAULTED" - }, - { - "input": false, - "output": "SWITCH NOT FAULTED" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - }, - "props.textStyle.color": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#000000", - "inputType": "scalar", - "mappings": [ - { - "input": "SWITCH FAULTED", - "output": "#FF0000" - }, - { - "input": "SWITCH NOT FAULTED", - "output": "#008000" - } - ], - "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": "NAT Switch Fault" - }, - "position": { - "basis": "35px" - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "Name" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "ON UPS BATTERY" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "On UPS Battery" - }, - "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}/Alarm/On_UPS_Battery" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\"UNKNOWN\")", - "type": "expression" - }, - { - "fallback": "UNKNOWN", - "inputType": "scalar", - "mappings": [ - { - "input": true, - "output": "ON UPS BATTERY" - }, - { - "input": false, - "output": "NOT ON UPS BATTERY" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - }, - "props.textStyle.color": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#000000", - "inputType": "scalar", - "mappings": [ - { - "input": "ON UPS BATTERY", - "output": "#FF0000" - }, - { - "input": "NOT ON UPS BATTERY", - "output": "#008000" - } - ], - "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": "On UPS Battery" - }, - "position": { - "basis": "35px" - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "Name" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "UPS BATTERY FAULT" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "UPS Battery Fault" - }, - "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}/Alarm/UPS_Battery_Fault" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\"UNKNOWN\")", - "type": "expression" - }, - { - "fallback": "UNKNOWN", - "inputType": "scalar", - "mappings": [ - { - "input": true, - "output": "BATTERY FAULTED" - }, - { - "input": false, - "output": "BATTERY NOT FAULTED" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - }, - "props.textStyle.color": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#000000", - "inputType": "scalar", - "mappings": [ - { - "input": "BATTERY FAULTED", - "output": "#FF0000" - }, - { - "input": "BATTERY NOT FAULTED", - "output": "#008000" - } - ], - "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": "UPS Battery Fault" - }, - "position": { - "basis": "35px" - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "Name" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "UPS BATTERY LOW" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "UPS Battery Low" - }, - "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}/Alarm/UPS_Battery_Low" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\"UNKNOWN\")", - "type": "expression" - }, - { - "fallback": "UNKNOWN", - "inputType": "scalar", - "mappings": [ - { - "input": true, - "output": "BATTERY LOW" - }, - { - "input": false, - "output": "BATTERY NOT LOW" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - }, - "props.textStyle.color": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#000000", - "inputType": "scalar", - "mappings": [ - { - "input": "BATTERY LOW", - "output": "#FF0000" - }, - { - "input": "BATTERY NOT LOW", - "output": "#008000" - } - ], - "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": "UPS Battery Low" - }, - "position": { - "basis": "35px" - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "Name" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "UPS BATTERY ON" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "UPS Battery On" - }, - "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}/Alarm/UPS_Battery_On" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\"UNKNOWN\")", - "type": "expression" - }, - { - "fallback": "UNKNOWN", - "inputType": "scalar", - "mappings": [ - { - "input": true, - "output": "ON" - }, - { - "input": false, - "output": "OFF" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - }, - "props.textStyle.color": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#000000", - "inputType": "scalar", - "mappings": [ - { - "input": "ON", - "output": "#FF0000" - }, - { - "input": "OFF", - "output": "#008000" - } - ], - "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": "UPS Battery On" - }, - "position": { - "basis": "35px" - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "Name" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "UPS FAULT" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "UPS Fault" - }, - "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}/Alarm/UPS_Fault" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\"UNKNOWN\")", - "type": "expression" - }, - { - "fallback": "UNKNOWN", - "inputType": "scalar", - "mappings": [ - { - "input": true, - "output": "UPS FAULTED" - }, - { - "input": false, - "output": "UPS NOT FAULTED" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - }, - "props.textStyle.color": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#000000", - "inputType": "scalar", - "mappings": [ - { - "input": "UPS FAULTED", - "output": "#FF0000" - }, - { - "input": "UPS NOT FAULTED", - "output": "#008000" - } - ], - "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": "UPS Fault" - }, - "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" - }, - { - "children": [ - { - "children": [ - { - "children": [ - { - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\ttag_name \u003d self.view.params.tagProps[0]\n\ttag_path \u003d \"[\" + self.session.custom.fc+ \"_SCADA_TAG_PROVIDER]\"+tag_name+\"/Start_PB\"\n\tsystem.tag.writeBlocking([tag_path],[True])" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button", - "tooltip": { - "enabled": true - } - }, - "position": { - "basis": "80px", - "grow": 1 - }, - "propConfig": { - "meta.tooltip.text": { - "binding": { - "config": { - "expression": "if({this.props.enabled},{this.props.text} +\u0027 Button\u0027,\"You do not have Maintenance or Administrator role!\")" - }, - "type": "expr" - } - }, - "props.enabled": { - "binding": { - "config": { - "expression": "indexOf({session.props.auth.user.roles}, \"Administrator\") \u003e\u003d 0 || indexOf({session.props.auth.user.roles}, \"Maintenance\") \u003e\u003d 0" - }, - "type": "expr" - } - }, - "props.style.backgroundColor": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Start_PB_Color" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\"#006400\")", - "type": "expression" - }, - { - "fallback": "#006400", - "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" - } - } - }, - "props": { - "image": { - "icon": { - "path": "material/not_started" - } - }, - "style": { - "classes": "Background-Styles/Controller" - }, - "text": "START" - }, - "type": "ia.input.button" - } - ], - "meta": { - "name": "Start" - }, - "position": { - "basis": "35px" - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel", - "padding": "" - } - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\ttag_name \u003d self.view.params.tagProps[0]\n\ttag_path \u003d \"[\" + self.session.custom.fc+ \"_SCADA_TAG_PROVIDER]\"+tag_name+\"/Stop_PB\"\n\tsystem.tag.writeBlocking([tag_path],[True])" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button", - "tooltip": { - "enabled": true - } - }, - "position": { - "basis": "80px", - "grow": 1 - }, - "propConfig": { - "meta.tooltip.text": { - "binding": { - "config": { - "expression": "if({this.props.enabled},{this.props.text} +\u0027 Button\u0027,\"You do not have Maintenance or Administrator role!\")" - }, - "type": "expr" - } - }, - "props.enabled": { - "binding": { - "config": { - "expression": "indexOf({session.props.auth.user.roles}, \"Administrator\") \u003e\u003d 0 || indexOf({session.props.auth.user.roles}, \"Maintenance\") \u003e\u003d 0" - }, - "type": "expr" - } - }, - "props.style.backgroundColor": { - "binding": { - "config": { - "expression": "if(\r\n {this.props.enabled} \u003d False,\r\n \"#BB5050\",\r\n if(\r\n {this.props.text} \u003d \"STOP PRESSED\",\r\n \"#FF0000\",\r\n if(\r\n {this.props.text} \u003d \"STOP\",\r\n \"#CA0D0D\",\r\n \"#FFFFFF\"\r\n )\r\n )\r\n)\r\n" - }, - "type": "expr" - } - }, - "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}/Stop_PB" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},0)", - "type": "expression" - }, - { - "fallback": "STOP", - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": "STOPPED" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - } - }, - "props": { - "image": { - "icon": { - "path": "material/stop_circle" - } - }, - "style": { - "classes": "Background-Styles/Controller" - } - }, - "type": "ia.input.button" - } - ], - "meta": { - "name": "Stop" - }, - "position": { - "basis": "35px" - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel", - "padding": "" - } - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\ttag_name \u003d self.view.params.tagProps[0]\n\ttag_path \u003d \"[\" + self.session.custom.fc+ \"_SCADA_TAG_PROVIDER]\"+tag_name+\"/Motor_Fault_Reset_PB\"\n\tsystem.tag.writeBlocking([tag_path],[True])" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button", - "tooltip": { - "enabled": true - } - }, - "position": { - "basis": "80px", - "grow": 1 - }, - "propConfig": { - "meta.tooltip.text": { - "binding": { - "config": { - "expression": "if({this.props.enabled},{this.props.text} +\u0027 Button\u0027,\"You do not have Maintenance or Administrator role!\")" - }, - "type": "expr" - } - }, - "props.enabled": { - "binding": { - "config": { - "expression": "indexOf({session.props.auth.user.roles}, \"Administrator\") \u003e\u003d 0 || indexOf({session.props.auth.user.roles}, \"Maintenance\") \u003e\u003d 0" - }, - "type": "expr" - } - }, - "props.style.backgroundColor": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Motor_Fault_Reset_PB_Color" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\"#FFF700\")", - "type": "expression" - }, - { - "fallback": "#FFF700", - "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" - } - } - }, - "props": { - "image": { - "icon": { - "color": "#000000", - "path": "material/refresh" - } - }, - "style": { - "classes": "Background-Styles/Controller" - }, - "text": "MOTOR FAULT RESET", - "textStyle": { - "color": "#000000" - } - }, - "type": "ia.input.button" - } - ], - "meta": { - "name": "Motor Fault Reset" - }, - "position": { - "basis": "35px" - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel", - "padding": "" - } - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\ttag_name \u003d self.view.params.tagProps[0]\n\ttag_path \u003d \"[\" + self.session.custom.fc+ \"_SCADA_TAG_PROVIDER]\"+tag_name+\"/Power_Branch_Fault_Reset_PB\"\n\tsystem.tag.writeBlocking([tag_path],[True])" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button", - "tooltip": { - "enabled": true - } - }, - "position": { - "basis": "80px", - "grow": 1 - }, - "propConfig": { - "meta.tooltip.text": { - "binding": { - "config": { - "expression": "if({this.props.enabled},{this.props.text} +\u0027 Button\u0027,\"You do not have Maintenance or Administrator role!\")" - }, - "type": "expr" - } - }, - "props.enabled": { - "binding": { - "config": { - "expression": "indexOf({session.props.auth.user.roles}, \"Administrator\") \u003e\u003d 0 || indexOf({session.props.auth.user.roles}, \"Maintenance\") \u003e\u003d 0" - }, - "type": "expr" - } - }, - "props.style.backgroundColor": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Power_Branch_Fault_Reset_PB_Color" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\"#FFF700\")", - "type": "expression" - }, - { - "fallback": "#FFF700", - "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" - } - } - }, - "props": { - "image": { - "icon": { - "color": "#000000", - "path": "material/power" - } - }, - "style": { - "classes": "Background-Styles/Controller" - }, - "text": "POWER BRANCH FAULT", - "textStyle": { - "color": "#000000" - } - }, - "type": "ia.input.button" - } - ], - "meta": { - "name": "Power Branch Fault Reset" - }, - "position": { - "basis": "35px" - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel", - "padding": "" - } - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\ttag_name \u003d self.view.params.tagProps[0]\n\ttag_path \u003d \"[\" + self.session.custom.fc+ \"_SCADA_TAG_PROVIDER]\"+tag_name+\"/Low_Air_Pressure_Reset_PB\"\n\tsystem.tag.writeBlocking([tag_path],[True])" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button", - "tooltip": { - "enabled": true - } - }, - "position": { - "basis": "80px", - "grow": 1 - }, - "propConfig": { - "meta.tooltip.text": { - "binding": { - "config": { - "expression": "if({this.props.enabled},{this.props.text} +\u0027 Button\u0027,\"You do not have Maintenance or Administrator role!\")" - }, - "type": "expr" - } - }, - "props.enabled": { - "binding": { - "config": { - "expression": "indexOf({session.props.auth.user.roles}, \"Administrator\") \u003e\u003d 0 || indexOf({session.props.auth.user.roles}, \"Maintenance\") \u003e\u003d 0" - }, - "type": "expr" - } - }, - "props.style.backgroundColor": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Low_Air_Pressure_Reset_PB_Color" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\"#00008B\")", - "type": "expression" - }, - { - "fallback": "#00008B", - "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" - } - } - }, - "props": { - "image": { - "icon": { - "path": "material/waves" - } - }, - "style": { - "classes": "Background-Styles/Controller" - }, - "text": "LOW AIR PRESSURE RESET" - }, - "type": "ia.input.button" - } - ], - "meta": { - "name": "Low Air Pressure Reset" - }, - "position": { - "basis": "35px" - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel", - "padding": "" - } - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\ttag_name \u003d self.view.params.tagProps[0]\n\ttag_path \u003d \"[\" + self.session.custom.fc+ \"_SCADA_TAG_PROVIDER]\"+tag_name+\"/Jam_Restart_PB\"\n\tsystem.tag.writeBlocking([tag_path],[True])" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button", - "tooltip": { - "enabled": true - } - }, - "position": { - "basis": "80px", - "grow": 1 - }, - "propConfig": { - "meta.tooltip.text": { - "binding": { - "config": { - "expression": "if({this.props.enabled},{this.props.text} +\u0027 Button\u0027,\"You do not have Maintenance or Administrator role!\")" - }, - "type": "expr" - } - }, - "props.enabled": { - "binding": { - "config": { - "expression": "indexOf({session.props.auth.user.roles}, \"Administrator\") \u003e\u003d 0 || indexOf({session.props.auth.user.roles}, \"Maintenance\") \u003e\u003d 0" - }, - "type": "expr" - } - }, - "props.style.backgroundColor": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Jam_Restart_PB_Color" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\"#C2C2C2\")", - "type": "expression" - }, - { - "fallback": "#C2C2C2", - "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" - } - } - }, - "props": { - "image": { - "icon": { - "color": "#000000", - "path": "material/sync_problem" - } - }, - "style": { - "classes": "Background-Styles/Controller" - }, - "text": "JAM RESTART", - "textStyle": { - "color": "#000000" - } - }, - "type": "ia.input.button" - } - ], - "meta": { - "name": "Jam Restart" - }, - "position": { - "basis": "35px" - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel", - "padding": "" - } - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\ttag_name \u003d self.view.params.tagProps[0]\n\ttag_path \u003d \"[\" + self.session.custom.fc+ \"_SCADA_TAG_PROVIDER]\"+tag_name+\"/Setup_Motor_Speeds\"\n\tsystem.tag.writeBlocking([tag_path],[True])" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button", - "tooltip": { - "enabled": true - } - }, - "position": { - "basis": "80px", - "grow": 1 - }, - "propConfig": { - "meta.tooltip.text": { - "binding": { - "config": { - "expression": "if({this.props.enabled},{this.props.text} +\u0027 Button\u0027,\"You do not have Maintenance or Administrator role!\")" - }, - "type": "expr" - } - }, - "props.enabled": { - "binding": { - "config": { - "expression": "indexOf({session.props.auth.user.roles}, \"Administrator\") \u003e\u003d 0 || indexOf({session.props.auth.user.roles}, \"Maintenance\") \u003e\u003d 0" - }, - "type": "expr" - } - }, - "props.style.backgroundColor": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Setup_Motor_Speeds" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},0)", - "type": "expression" - }, - { - "expression": "if(\r\n {this.props.enabled} \u003d False,\r\n \"#A1A1A1\",\r\n if(\r\n {value} \u003d 1,\r\n \"#AAAAAA\",\r\n \"#FFFFFF\"\r\n )\r\n)\r\n", - "type": "expression" - } - ], - "type": "tag" - } - } - }, - "props": { - "image": { - "icon": { - "color": "#000000", - "path": "material/speed" - } - }, - "style": { - "classes": "Background-Styles/Controller" - }, - "text": "SETUP MOTOR SPEEDS", - "textStyle": { - "color": "#000000" - } - }, - "type": "ia.input.button" - } - ], - "meta": { - "name": "Setup Motor Speeds" - }, - "position": { - "basis": "35px" - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel", - "padding": "" - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "FlexContainer_0" - }, - "position": { - "basis": "100px", - "grow": 1 - }, - "props": { - "direction": "column", - "style": { - "gap": 6, - "paddingBottom": 20, - "paddingLeft": 10, - "paddingRight": 10, - "paddingTop": 13 - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "Commands_tab" - }, - "position": { - "tabIndex": 2 - }, - "props": { - "direction": "column", - "style": { - "paddingTop": 1 - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "tabs" - }, - "position": { - "grow": 1 - }, - "props": { - "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", - "Commands" - ] - }, - "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/6eec253ca7c0af7d9395b99dd37133de0895e1957a7c5369c76c8492aa393831 b/.resources/6eec253ca7c0af7d9395b99dd37133de0895e1957a7c5369c76c8492aa393831 deleted file mode 100644 index 45fef6d2..00000000 --- a/.resources/6eec253ca7c0af7d9395b99dd37133de0895e1957a7c5369c76c8492aa393831 +++ /dev/null @@ -1,1308 +0,0 @@ -{ - "custom": {}, - "params": { - "value": { - "tagProps": [ - "MCM01", - "value", - "value", - "value", - "value", - "value", - "value", - "value", - "value", - "value" - ] - } - }, - "propConfig": { - "params.value": { - "paramDirection": "input", - "persistent": true - } - }, - "props": { - "defaultSize": { - "height": 50, - "width": 396 - } - }, - "root": { - "children": [ - { - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\ttag_name \u003d self.view.params.value.tagProps[0]\n\ttag_path \u003d \"[\" + self.session.custom.fc+ \"_SCADA_TAG_PROVIDER]\"+\"System/\"+tag_name +\"/\" + tag_name+\"/Start_PB\"\n\tsystem.tag.writeBlocking([tag_path],[True])\n\t" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Start", - "tooltip": { - "enabled": true, - "location": "top-left" - } - }, - "position": { - "basis": "80px" - }, - "propConfig": { - "meta.tooltip.text": { - "binding": { - "config": { - "expression": "if({this.props.enabled},\u0027Start \u0027 + {view.params.value.tagProps[0]},\"You do not have Maintenance or Administrator role!\")" - }, - "type": "expr" - } - }, - "props.image.icon.color": { - "binding": { - "config": { - "expression": "if({this.props.enabled},\u0027#FFFFFF\u0027,\u0027#979797\u0027)" - }, - "type": "expr" - } - }, - "props.style.backgroundColor": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Start_PB_Color" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\"#006400\")", - "type": "expression" - }, - { - "fallback": "#006400", - "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" - } - }, - "props.style.borderStyle": { - "binding": { - "config": { - "expression": "if({this.props.enabled},\u0027solid\u0027,\u0027none\u0027)" - }, - "type": "expr" - } - } - }, - "props": { - "image": { - "height": 32, - "icon": { - "path": "material/not_started" - }, - "position": "top", - "width": 32 - }, - "style": { - "borderColor": "#4A4A4A", - "borderWidth": 2, - "classes": "\n", - "marginBottom": 5, - "marginLeft": 5, - "marginRight": 5, - "marginTop": 5 - }, - "text": "", - "textStyle": { - "color": "#000000", - "fontSize": 12, - "fontWeight": "bold", - "textAlign": "center" - } - }, - "type": "ia.input.button" - }, - { - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\ttag_name \u003d self.view.params.value.tagProps[0]\n\ttag_path \u003d \"[\" + self.session.custom.fc+ \"_SCADA_TAG_PROVIDER]\"+\"System/\"+tag_name +\"/\" + tag_name+\"/Stop_PB\"\n\tsystem.tag.writeBlocking([tag_path],[True])" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Stop", - "tooltip": { - "enabled": true, - "location": "top-left" - } - }, - "position": { - "basis": "80px" - }, - "propConfig": { - "meta.tooltip.text": { - "binding": { - "config": { - "expression": "if({this.props.enabled},\u0027Stop \u0027 + {view.params.value.tagProps[0]},\"You do not have Maintenance or Administrator role!\")" - }, - "type": "expr" - } - }, - "props.image.icon.color": { - "binding": { - "config": { - "expression": "if({this.props.enabled},\u0027#FFFFFF\u0027,\u0027#979797\u0027)" - }, - "type": "expr" - } - }, - "props.style.backgroundColor": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.value.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Stop_PB" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},0)", - "type": "expression" - }, - { - "fallback": "#CA0D0D", - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": "#FF0000" - } - ], - "outputType": "color", - "type": "map" - } - ], - "type": "tag" - } - }, - "props.style.borderStyle": { - "binding": { - "config": { - "expression": "if({this.props.enabled},\u0027solid\u0027,\u0027none\u0027)" - }, - "type": "expr" - } - } - }, - "props": { - "image": { - "height": 32, - "icon": { - "path": "material/stop_circle" - }, - "position": "top", - "width": 32 - }, - "style": { - "borderColor": "#4A4A4A", - "borderWidth": 2, - "classes": "\n", - "marginBottom": 5, - "marginLeft": 5, - "marginRight": 5, - "marginTop": 5 - }, - "text": "", - "textStyle": { - "fontSize": 12, - "fontWeight": "bold", - "textAlign": "center" - } - }, - "type": "ia.input.button" - }, - { - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\ttag_name \u003d self.view.params.value.tagProps[0]\n\ttag_path \u003d \"[\" + self.session.custom.fc+ \"_SCADA_TAG_PROVIDER]\"+\"System/\"+tag_name +\"/\" + tag_name+\"/Motor_Fault_Reset_PB\"\n\tsystem.tag.writeBlocking([tag_path],[True])" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "MotorFaultReset", - "tooltip": { - "enabled": true, - "location": "top-left" - } - }, - "position": { - "basis": "80px" - }, - "propConfig": { - "meta.tooltip.text": { - "binding": { - "config": { - "expression": "if({this.props.enabled},\u0027Motor Fault Reset \u0027 + {view.params.value.tagProps[0]},\"You do not have Maintenance or Administrator role!\")" - }, - "type": "expr" - } - }, - "props.enabled": { - "binding": { - "config": { - "expression": "indexOf({session.props.auth.user.roles}, \"Administrator\") \u003e\u003d 0 || indexOf({session.props.auth.user.roles}, \"Maintenance\") \u003e\u003d 0" - }, - "type": "expr" - } - }, - "props.image.icon.color": { - "binding": { - "config": { - "expression": "if({this.props.enabled},\u0027#000000\u0027,\u0027#979797\u0027)" - }, - "type": "expr" - } - }, - "props.style.backgroundColor": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Motor_Fault_Reset_PB_Color" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\"#FFF700\")", - "type": "expression" - }, - { - "fallback": "#FFF700", - "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" - } - }, - "props.style.borderStyle": { - "binding": { - "config": { - "expression": "if({this.props.enabled},\u0027solid\u0027,\u0027none\u0027)" - }, - "type": "expr" - } - } - }, - "props": { - "image": { - "height": 32, - "icon": { - "path": "material/refresh" - }, - "position": "top", - "width": 32 - }, - "style": { - "borderColor": "#4A4A4A", - "borderWidth": 2, - "classes": "\n", - "marginBottom": 5, - "marginLeft": 5, - "marginRight": 5, - "marginTop": 5 - }, - "text": "", - "textStyle": { - "fontSize": 12, - "fontWeight": "bold", - "textAlign": "center" - } - }, - "type": "ia.input.button" - }, - { - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\ttag_name \u003d self.view.params.value.tagProps[0]\n\ttag_path \u003d \"[\" + self.session.custom.fc+ \"_SCADA_TAG_PROVIDER]\"+\"System/\"+tag_name +\"/\" + tag_name+\"/Power_Branch_Fault_Reset_PB\"\n\tsystem.tag.writeBlocking([tag_path],[True])" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "PowerBranchFaultReset", - "tooltip": { - "enabled": true, - "location": "top-left" - } - }, - "position": { - "basis": "80px" - }, - "propConfig": { - "meta.tooltip.text": { - "binding": { - "config": { - "expression": "if({this.props.enabled},\u0027Power Branch Fault Reset \u0027 + {view.params.value.tagProps[0]},\"You do not have Maintenance or Administrator role!\")" - }, - "type": "expr" - } - }, - "props.enabled": { - "binding": { - "config": { - "expression": "indexOf({session.props.auth.user.roles}, \"Administrator\") \u003e\u003d 0 || indexOf({session.props.auth.user.roles}, \"Maintenance\") \u003e\u003d 0" - }, - "type": "expr" - } - }, - "props.image.icon.color": { - "binding": { - "config": { - "expression": "if({this.props.enabled},\u0027#000000\u0027,\u0027#979797\u0027)" - }, - "type": "expr" - } - }, - "props.style.backgroundColor": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Power_Branch_Fault_Reset_PB_Color" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\"#FFF700\")", - "type": "expression" - }, - { - "fallback": "#FFF700", - "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" - } - }, - "props.style.borderStyle": { - "binding": { - "config": { - "expression": "if({this.props.enabled},\u0027solid\u0027,\u0027none\u0027)" - }, - "type": "expr" - } - } - }, - "props": { - "image": { - "height": 32, - "icon": { - "path": "material/power" - }, - "position": "top", - "width": 32 - }, - "style": { - "borderColor": "#4A4A4A", - "borderWidth": 2, - "classes": "\n", - "marginBottom": 5, - "marginLeft": 5, - "marginRight": 5, - "marginTop": 5 - }, - "text": "", - "textStyle": { - "fontSize": 12, - "fontWeight": "bold", - "textAlign": "center" - } - }, - "type": "ia.input.button" - }, - { - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\ttag_name \u003d self.view.params.value.tagProps[0]\n\ttag_path \u003d \"[\" + self.session.custom.fc+ \"_SCADA_TAG_PROVIDER]\"+\"System/\"+tag_name +\"/\" + tag_name+\"/Low_Air_Pressure_Reset_PB\"\n\tsystem.tag.writeBlocking([tag_path],[True])" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "LowAirPressureReset", - "tooltip": { - "enabled": true, - "location": "top-left" - } - }, - "position": { - "basis": "80px" - }, - "propConfig": { - "meta.tooltip.text": { - "binding": { - "config": { - "expression": "if({this.props.enabled},\u0027Low Air Pressure Reset \u0027 + {view.params.value.tagProps[0]},\"You do not have Maintenance or Administrator role!\")" - }, - "type": "expr" - } - }, - "props.enabled": { - "binding": { - "config": { - "expression": "indexOf({session.props.auth.user.roles}, \"Administrator\") \u003e\u003d 0 || indexOf({session.props.auth.user.roles}, \"Maintenance\") \u003e\u003d 0" - }, - "type": "expr" - } - }, - "props.image.icon.color": { - "binding": { - "config": { - "expression": "if({this.props.enabled},\u0027#FFFFFF\u0027,\u0027#979797\u0027)" - }, - "type": "expr" - } - }, - "props.style.backgroundColor": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Low_Air_Pressure_Reset_PB_Color" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\"#00008B\")", - "type": "expression" - }, - { - "fallback": "#00008B", - "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" - } - }, - "props.style.borderStyle": { - "binding": { - "config": { - "expression": "if({this.props.enabled},\u0027solid\u0027,\u0027none\u0027)" - }, - "type": "expr" - } - } - }, - "props": { - "image": { - "height": 32, - "icon": { - "path": "material/waves" - }, - "position": "top", - "width": 32 - }, - "style": { - "borderColor": "#4A4A4A", - "borderWidth": 2, - "classes": "\n", - "marginBottom": 5, - "marginLeft": 5, - "marginRight": 5, - "marginTop": 5 - }, - "text": "", - "textStyle": { - "fontSize": 12, - "fontWeight": "bold", - "textAlign": "center" - } - }, - "type": "ia.input.button" - }, - { - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\ttag_name \u003d self.view.params.value.tagProps[0]\n\ttag_path \u003d \"[\" + self.session.custom.fc+ \"_SCADA_TAG_PROVIDER]\"+\"System/\"+tag_name +\"/\" + tag_name+\"/Jam_Restart_PB\"\n\tsystem.tag.writeBlocking([tag_path],[True])" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "JAM_Reset", - "tooltip": { - "enabled": true, - "location": "top-left" - } - }, - "position": { - "basis": "80px" - }, - "propConfig": { - "meta.tooltip.text": { - "binding": { - "config": { - "expression": "if({this.props.enabled},\u0027Jam Reset \u0027 + {view.params.value.tagProps[0]},\"You do not have Maintenance or Administrator role!\")" - }, - "type": "expr" - } - }, - "props.image.icon.color": { - "binding": { - "config": { - "expression": "if({this.props.enabled},\u0027#000000\u0027,\u0027#979797\u0027)" - }, - "type": "expr" - } - }, - "props.style.backgroundColor": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Jam_Restart_PB_Color" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\"#C2C2C2\")", - "type": "expression" - }, - { - "fallback": "#C2C2C2", - "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" - } - }, - "props.style.borderStyle": { - "binding": { - "config": { - "expression": "if({this.props.enabled},\u0027solid\u0027,\u0027none\u0027)" - }, - "type": "expr" - } - } - }, - "props": { - "image": { - "height": 32, - "icon": { - "path": "material/sync_problem" - }, - "position": "top", - "width": 32 - }, - "style": { - "borderColor": "#4A4A4A", - "borderWidth": 2, - "classes": "\n", - "marginBottom": 5, - "marginLeft": 5, - "marginRight": 5, - "marginTop": 5 - }, - "text": "", - "textStyle": { - "fontSize": 12, - "fontWeight": "bold", - "textAlign": "center" - } - }, - "type": "ia.input.button" - }, - { - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\ttag_name \u003d self.view.params.value.tagProps[0]\n\ttag_path \u003d \"[\" + self.session.custom.fc+ \"_SCADA_TAG_PROVIDER]\"+\"System/\"+tag_name +\"/\" + tag_name+\"/Setup_Motor_Speeds\"\n\tsystem.tag.writeBlocking([tag_path],[True])" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "SetupMotorSpeeds", - "tooltip": { - "enabled": true, - "location": "top-left" - } - }, - "position": { - "basis": "80px" - }, - "propConfig": { - "meta.tooltip.text": { - "binding": { - "config": { - "expression": "if({this.props.enabled},\u0027Setup Motor Speeds \u0027 + {view.params.value.tagProps[0]},\"You do not have Maintenance or Administrator role!\")" - }, - "type": "expr" - } - }, - "props.enabled": { - "binding": { - "config": { - "expression": "indexOf({session.props.auth.user.roles}, \"Administrator\") \u003e\u003d 0 || indexOf({session.props.auth.user.roles}, \"Maintenance\") \u003e\u003d 0" - }, - "type": "expr" - } - }, - "props.image.icon.color": { - "binding": { - "config": { - "expression": "if({this.props.enabled},\u0027#000000\u0027,\u0027#979797\u0027)" - }, - "type": "expr" - } - }, - "props.style.backgroundColor": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.value.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Setup_Motor_Speeds" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},0)", - "type": "expression" - }, - { - "fallback": "#D4D4D4", - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": "#FFFFFF" - } - ], - "outputType": "color", - "type": "map" - } - ], - "type": "tag" - } - }, - "props.style.borderStyle": { - "binding": { - "config": { - "expression": "if({this.props.enabled},\u0027solid\u0027,\u0027none\u0027)" - }, - "type": "expr" - } - } - }, - "props": { - "image": { - "height": 32, - "icon": { - "path": "material/speed" - }, - "position": "top", - "width": 32 - }, - "style": { - "borderColor": "#4A4A4A", - "borderWidth": 2, - "classes": "\n", - "marginBottom": 5, - "marginLeft": 5, - "marginRight": 5, - "marginTop": 5 - }, - "text": "", - "textStyle": { - "fontSize": 12, - "fontWeight": "bold", - "textAlign": "center" - } - }, - "type": "ia.input.button" - } - ], - "meta": { - "name": "root" - }, - "propConfig": { - "custom.has_role": { - "binding": { - "config": { - "expression": "{session.custom.fc}" - }, - "transforms": [ - { - "code": "\trme_role \u003d value +\"-rme-c2c-all\"\n\troles \u003d (self.session.props.auth.user.roles)\n\tif (rme_role.lower() in roles \n\tor rme_role.upper() in roles \n\tor \"eurme-ignition-admins\" in roles):\n\t\treturn True\n\telse:\n\t\treturn False", - "type": "script" - } - ], - "type": "expr" - } - }, - "custom.status": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/ALARMST" - }, - "transforms": [ - { - "expression": "if(isNull({value}), 0, {value})", - "type": "expression" - }, - { - "fallback": null, - "inputType": "scalar", - "mappings": [ - { - "input": 4, - "output": 1 - }, - { - "input": 3, - "output": 2 - }, - { - "input": 2, - "output": 3 - }, - { - "input": 1, - "output": 4 - }, - { - "input": 0, - "output": 5 - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - } - }, - "props": { - "justify": "center" - }, - "type": "ia.container.flex" - } -} \ No newline at end of file diff --git a/.resources/700d62df83feae810c5cb5d8c9157d3ba6a2fc9d8e7a7831d503107ebbe32023 b/.resources/700d62df83feae810c5cb5d8c9157d3ba6a2fc9d8e7a7831d503107ebbe32023 deleted file mode 100644 index edaabf38..00000000 --- a/.resources/700d62df83feae810c5cb5d8c9157d3ba6a2fc9d8e7a7831d503107ebbe32023 +++ /dev/null @@ -1,598 +0,0 @@ -{ - "custom": { - "alarm_message": null, - "color": "#C2C2C2", - "priority": "No Active Alarms", - "state": "Closed" - }, - "params": { - "forceFaultStatus": null, - "forceRunningStatus": null, - "has_state": false, - "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},{view.params.forceFaultStatus},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},{view.params.forceFaultStatus},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},{view.params.forceFaultStatus},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" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - }, - "persistent": true - }, - "params.forceFaultStatus": { - "paramDirection": "input", - "persistent": true - }, - "params.forceRunningStatus": { - "paramDirection": "input", - "persistent": true - }, - "params.has_state": { - "paramDirection": "input", - "persistent": true - }, - "params.tagProps": { - "paramDirection": "inout", - "persistent": true - } - }, - "props": { - "defaultSize": { - "height": 47, - "width": 68 - } - }, - "root": { - "children": [ - { - "meta": { - "name": "ControlCabinet" - }, - "position": { - "height": 1, - "width": 1 - }, - "propConfig": { - "props.elements[0].fill.paint": { - "binding": { - "config": { - "expression": "if(\r\n {view.custom.state} \u003d \"Closed\",\r\n \"#000000\",\r\n {view.custom.color}\r\n)\r\n" - }, - "type": "expr" - } - } - }, - "props": { - "elements": [ - { - "d": "M 0 40 L 0 0 L 61 40 Z", - "fill": {}, - "name": "path", - "stroke": { - "paint": "#4c4c4c", - "width": 4 - }, - "transform": "rotate(-180,30.5,20)", - "type": "path" - }, - { - "d": "M 0 40 L 0 0 L 61 40 Z", - "fill": { - "paint": "#4C4C4C" - }, - "name": "path", - "stroke": { - "paint": "#000000", - "width": 4 - }, - "type": "path" - } - ], - "preserveAspectRatio": "none", - "viewBox": "-0.5 -0.5 62 41" - }, - "type": "ia.shapes.svg" - } - ], - "events": { - "dom": { - "onClick": { - "config": { - "script": "\tsystem.perspective.openDock(\u0027Docked-East-DS\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" - }, - "scope": "G", - "type": "script" - }, - "onDoubleClick": { - "config": { - "script": "\ttagProps \u003d self.view.params.tagProps\n\tsystem.perspective.openPopup(\"StatusPopUP\", \"PopUp-Views/Controller-Equipment/Information\", params \u003d{\"tagProps\":tagProps})\n\t" - }, - "enabled": false, - "scope": "G", - "type": "script" - }, - "onMouseEnter": { - "config": { - "script": "\tself.props.style.transform \u003d \"scale(2)\"\n\tfrom time import sleep\n\t\n\talarm \u003d []\n\tmessage \u003d None\n\t\n#\tsleep(0.5)\n\t\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message" - }, - "scope": "G", - "type": "script" - }, - "onMouseLeave": { - "config": { - "script": "\tself.props.style.transform \u003d \"scale(1)\"" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "root", - "tooltip": { - "enabled": true, - "location": "top-left", - "style": {} - } - }, - "propConfig": { - "meta.tooltip.style.classes": { - "binding": { - "config": { - "expression": "{view.custom.priority}" - }, - "transforms": [ - { - "fallback": "Alarms-Styles/NoAlarm", - "inputType": "scalar", - "mappings": [ - { - "input": "High", - "output": "Alarms-Styles/High" - }, - { - "input": "Medium", - "output": "Alarms-Styles/Medium" - }, - { - "input": "Low", - "output": "Alarms-Styles/Low" - }, - { - "input": "Diagnostic", - "output": "Alarms-Styles/Diagnostic" - } - ], - "outputType": "style-list", - "type": "map" - } - ], - "type": "expr" - } - }, - "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_gateways" - }, - "type": "property" - } - } - }, - "props": { - "aspectRatio": "68:47", - "mode": "percent", - "style": { - "classes": "Disconnects/Device-Connected", - "cursor": "pointer", - "overflow": "hidden", - "transform": "scale(1)", - "transition": "transform 100ms linear" - } - }, - "type": "ia.container.coord" - } -} \ No newline at end of file diff --git a/.resources/7192244cdca7db990257f49248a04725de557c55614768f155f8539b815ff0bd b/.resources/7192244cdca7db990257f49248a04725de557c55614768f155f8539b815ff0bd deleted file mode 100644 index 0c90f172..00000000 --- a/.resources/7192244cdca7db990257f49248a04725de557c55614768f155f8539b815ff0bd +++ /dev/null @@ -1,625 +0,0 @@ -{ - "custom": { - "alarm_message": null, - "color": "#FF0000", - "priority": "High", - "state": "Communication Faulted" - }, - "params": { - "tagProps": [ - "System/MCM03/PDP3_PMM", - "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},{view.params.forceFaultStatus},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},{view.params.forceFaultStatus},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},{view.params.forceFaultStatus},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" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - }, - "persistent": true - }, - "params.tagProps": { - "paramDirection": "inout", - "persistent": true - } - }, - "props": { - "defaultSize": { - "height": 19, - "width": 28 - } - }, - "root": { - "children": [ - { - "meta": { - "name": "PMM_Symbol" - }, - "position": { - "grow": 1 - }, - "propConfig": { - "props.elements[5].fill.paint": { - "binding": { - "config": { - "expression": "if(\r\n {view.custom.state} \u003d \"Closed\",\r\n \"#000000\",\r\n {view.custom.color}\r\n)\r\n" - }, - "type": "expr" - } - } - }, - "props": { - "elements": [ - { - "d": "M 10 10 L 50 10 L 50 30 L 10 30 Z", - "fill": { - "paint": "#CCCCCC" - }, - "name": "module_body", - "stroke": { - "paint": "#000000", - "width": "2" - }, - "type": "path" - }, - { - "d": "M 0 20 L 10 20", - "fill": {}, - "name": "power_input", - "stroke": { - "paint": "#000000", - "width": "2" - }, - "type": "path" - }, - { - "d": "M 50 15 L 60 15", - "fill": {}, - "name": "output_1", - "stroke": { - "paint": "#000000", - "width": "2" - }, - "type": "path" - }, - { - "d": "M 50 20 L 60 20", - "fill": {}, - "name": "output_2", - "stroke": { - "paint": "#000000", - "width": "2" - }, - "type": "path" - }, - { - "d": "M 50 25 L 60 25", - "fill": {}, - "name": "output_3", - "stroke": { - "paint": "#000000", - "width": "2" - }, - "type": "path" - }, - { - "cx": "30", - "cy": "20", - "fill": {}, - "name": "status_led", - "r": 6, - "stroke": { - "paint": "#000000", - "width": "1" - }, - "type": "circle" - } - ], - "style": { - "overflow": "hidden" - }, - "viewBox": "0 0 60 40" - }, - "type": "ia.shapes.svg" - } - ], - "events": { - "dom": { - "onClick": { - "config": { - "script": "\tsystem.perspective.openDock(\u0027Docked-East-DS\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" - }, - "scope": "G", - "type": "script" - }, - "onDoubleClick": { - "config": { - "script": "\ttagProps \u003d self.view.params.tagProps\n\tsystem.perspective.openPopup(\"StatusPopUP\", \"PopUp-Views/Controller-Equipment/Information\", params \u003d{\"tagProps\":tagProps})\n\t" - }, - "enabled": false, - "scope": "G", - "type": "script" - }, - "onMouseEnter": { - "config": { - "script": "\tself.props.style.transform \u003d \"scale(2)\"\n\tfrom time import sleep\n\t\n\talarm \u003d []\n\tmessage \u003d None\n\t\n#\tsleep(0.5)\n\t\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message" - }, - "scope": "G", - "type": "script" - }, - "onMouseLeave": { - "config": { - "script": "\tself.props.style.transform \u003d \"scale(1)\"" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "root", - "tooltip": { - "enabled": true, - "location": "top-left", - "style": {} - } - }, - "propConfig": { - "meta.tooltip.style.classes": { - "binding": { - "config": { - "expression": "{view.custom.priority}" - }, - "transforms": [ - { - "fallback": "Alarms-Styles/NoAlarm", - "inputType": "scalar", - "mappings": [ - { - "input": "High", - "output": "Alarms-Styles/High" - }, - { - "input": "Medium", - "output": "Alarms-Styles/Medium" - }, - { - "input": "Low", - "output": "Alarms-Styles/Low" - }, - { - "input": "Diagnostic", - "output": "Alarms-Styles/Diagnostic" - } - ], - "outputType": "style-list", - "type": "map" - } - ], - "type": "expr" - } - }, - "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_running" - }, - "type": "property" - } - } - }, - "props": { - "justify": "center", - "style": { - "borderColor": "#FF0000", - "borderStyle": "none", - "borderWidth": "2px", - "cursor": "pointer", - "transform": "scale(1)", - "transition": "transform 100ms linear" - } - }, - "type": "ia.container.flex" - } -} \ No newline at end of file diff --git a/.resources/72f74232e5a7185032e536cb4cdc830627a3988dda57c37c8f24c03f93e0e99d b/.resources/72f74232e5a7185032e536cb4cdc830627a3988dda57c37c8f24c03f93e0e99d deleted file mode 100644 index 047cc3fa..00000000 --- a/.resources/72f74232e5a7185032e536cb4cdc830627a3988dda57c37c8f24c03f93e0e99d +++ /dev/null @@ -1,597 +0,0 @@ -{ - "custom": { - "alarm_message": null, - "color": "#FF0000", - "priority": "High", - "state": "Motor Faulted" - }, - "params": { - "forceFaultStatus": null, - "tagProps": [ - "System/MCM01/MCM01", - "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},{view.params.forceFaultStatus},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},{view.params.forceFaultStatus},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},{view.params.forceFaultStatus},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" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - }, - "persistent": true - }, - "params.forceFaultStatus": { - "paramDirection": "input", - "persistent": true - }, - "params.tagProps": { - "paramDirection": "inout", - "persistent": true - } - }, - "props": { - "defaultSize": { - "height": 65, - "width": 100 - } - }, - "root": { - "children": [ - { - "meta": { - "name": "Control cabinet" - }, - "position": { - "height": 1, - "width": 1 - }, - "propConfig": { - "props.elements[0].elements[1].fill.paint": { - "binding": { - "config": { - "expression": "if(\r\n {view.custom.state} \u003d \"Closed\",\r\n \"#808080\",\r\n {view.custom.color}\r\n)\r\n" - }, - "type": "expr" - } - } - }, - "props": { - "elements": [ - { - "elements": [ - { - "elements": [ - { - "name": "polygon", - "points": "2.04 0.5 124.5 0.5 124.5 64.18 2.04 0.5", - "type": "polygon" - }, - { - "d": "M124,1V63.35L4.09,1H124m1-1H0L125,65V0Z", - "name": "path", - "type": "path" - } - ], - "fill": { - "paint": "#000000" - }, - "name": "group", - "type": "group" - }, - { - "elements": [ - { - "name": "polygon", - "points": "0.5 64.5 0.5 0.82 122.95 64.5 0.5 64.5", - "type": "polygon" - }, - { - "d": "M1,1.65,120.91,64H1V1.65M0,0V65H125L0,0Z", - "name": "path", - "type": "path" - } - ], - "fill": {}, - "name": "group", - "type": "group" - } - ], - "name": "group", - "type": "group" - } - ], - "preserveAspectRatio": "none", - "viewBox": "0 0 125 65" - }, - "type": "ia.shapes.svg" - } - ], - "events": { - "dom": { - "onClick": { - "config": { - "script": "\tsystem.perspective.openDock(\u0027Docked-East-MCM\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" - }, - "scope": "G", - "type": "script" - }, - "onMouseEnter": { - "config": { - "script": "\tself.props.style.transform \u003d \"scale(2)\"\n\tfrom time import sleep\n\t\n\talarm \u003d []\n\tmessage \u003d None\n\t\n#\tsleep(0.5)\n\t\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message" - }, - "scope": "G", - "type": "script" - }, - "onMouseLeave": { - "config": { - "script": "\tself.props.style.transform \u003d \"scale(1)\"" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "root", - "tooltip": { - "enabled": true, - "location": "top-left", - "style": {} - } - }, - "propConfig": { - "meta.tooltip.style.classes": { - "binding": { - "config": { - "expression": "{view.custom.priority}" - }, - "transforms": [ - { - "fallback": "Alarms-Styles/NoAlarm", - "inputType": "scalar", - "mappings": [ - { - "input": "High", - "output": "Alarms-Styles/High" - }, - { - "input": "Medium", - "output": "Alarms-Styles/Medium" - }, - { - "input": "Low", - "output": "Alarms-Styles/Low" - }, - { - "input": "Diagnostic", - "output": "Alarms-Styles/Diagnostic" - } - ], - "outputType": "style-list", - "type": "map" - } - ], - "type": "expr" - } - }, - "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_gateways" - }, - "type": "property" - } - } - }, - "props": { - "mode": "percent", - "style": { - "cursor": "pointer", - "overflow": "hidden", - "transform": "scale(1)", - "transition": "transform 100ms linear" - } - }, - "type": "ia.container.coord" - } -} \ No newline at end of file diff --git a/.resources/73da999f49013aba159135a2e4a19a43b1b37a83abc1d21319a4432031d1a487 b/.resources/73da999f49013aba159135a2e4a19a43b1b37a83abc1d21319a4432031d1a487 deleted file mode 100644 index 7add4e80..00000000 --- a/.resources/73da999f49013aba159135a2e4a19a43b1b37a83abc1d21319a4432031d1a487 +++ /dev/null @@ -1,737 +0,0 @@ -{ - "custom": { - "alarm_message": null, - "covert_mode": true, - "disconnected": false, - "display_icon": true, - "error": false, - "isMatch": 0, - "plc": "value", - "priority": 0, - "priority_string": "No active alarms", - "running_status": 4, - "searchId": "PLC01", - "state": 5, - "state_string": "Unknown", - "tag_path_to_lookup": "[\"value\"]" - }, - "params": { - "directionLeft": false, - "forceFaultStatus": null, - "forceRunningStatus": null, - "tagProps": [ - "value", - "value", - "value", - "value", - "value", - "value", - "value", - "value", - "value", - "value" - ] - }, - "propConfig": { - "custom.alarm_message": { - "persistent": true - }, - "custom.covert_mode": { - "binding": { - "config": { - "path": "view.custom.state" - }, - "transforms": [ - { - "expression": "case(\t{value},\r\n\t\t0, {session.custom.alarm_filter.show_running},\r\n\t\t1, True,\r\n\t\t2, True,\r\n\t\t3, {session.custom.alarm_filter.show_low_alarm},\r\n\t\t4, {session.custom.alarm_filter.show_diagnostic},\r\n\t\t5, {session.custom.alarm_filter.show_running},\r\n\t\tFalse)", - "type": "expression" - } - ], - "type": "property" - }, - "persistent": true - }, - "custom.disconnected": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "fc": "{session.custom.fc}", - "plc": "{view.custom.plc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{plc}/DCN" - }, - "transforms": [ - { - "expression": "if(isNull({value}), False, {value})", - "type": "expression" - } - ], - "type": "tag" - }, - "persistent": true - }, - "custom.display_icon": { - "binding": { - "config": { - "expression": "{this.custom.covert_mode}//||{this.custom.isMatch}\u003e0" - }, - "type": "expr" - }, - "persistent": true - }, - "custom.error": { - "binding": { - "config": { - "path": "view.custom.state" - }, - "transforms": [ - { - "expression": "0 \u003c {value} \u0026\u0026 {value} \u003c 5", - "type": "expression" - } - ], - "type": "property" - }, - "persistent": true - }, - "custom.isMatch": { - "binding": { - "config": { - "expression": "if({view.params.tagProps[0]}\u003d\"value\",0,\nif({this.custom.searchId}\u003d{view.params.tagProps[0]},100,0))" - }, - "type": "expr" - }, - "persistent": true - }, - "custom.plc": { - "binding": { - "config": { - "path": "view.params.tagProps[0]" - }, - "transforms": [ - { - "expression": "split({value}, \"/\")[0]", - "type": "expression" - } - ], - "type": "property" - }, - "persistent": true - }, - "custom.priority": { - "binding": { - "config": { - "path": "view.custom.state" - }, - "transforms": [ - { - "fallback": 0, - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": 4 - }, - { - "input": 2, - "output": 3 - }, - { - "input": 3, - "output": 2 - }, - { - "input": 4, - "output": 1 - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "property" - }, - "persistent": true - }, - "custom.priority_string": { - "binding": { - "config": { - "expression": "case({view.custom.state},\r\n1, \"High\",\r\n2, \"Medium\",\r\n3, \"Low\",\r\n4, \"Diagnostic\",\r\n5, \"No active alarms\",\r\n\"Unknown\")" - }, - "type": "expr" - }, - "persistent": true - }, - "custom.running_status": { - "binding": { - "config": { - "expression": "coalesce(try(jsonGet(jsonGet({session.custom.state_messages},{this.custom.tag_path_to_lookup}),\"state\"),null),{view.params.forceRunningStatus},4)" - }, - "type": "expr" - }, - "persistent": true - }, - "custom.searchId": { - "binding": { - "config": { - "path": "session.custom.searchId" - }, - "type": "property" - }, - "persistent": true - }, - "custom.state": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/ALARMST" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},0)", - "type": "expression" - }, - { - "fallback": null, - "inputType": "scalar", - "mappings": [ - { - "input": 4, - "output": 1 - }, - { - "input": 3, - "output": 2 - }, - { - "input": 2, - "output": 3 - }, - { - "input": 1, - "output": 4 - }, - { - "input": 0, - "output": 5 - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - }, - "persistent": true - }, - "custom.state_string": { - "binding": { - "config": { - "expression": "case({view.custom.running_status},\r\n1, \"Faulted\",\r\n2, \"Stopped\",\r\n3, \"Running\",\r\n\"Unknown\")" - }, - "type": "expr" - }, - "persistent": true - }, - "custom.tag_path_to_lookup": { - "binding": { - "config": { - "expression": "\"[\\\"\" + {view.params.tagProps[0]} + \"\\\"]\"" - }, - "type": "expr" - }, - "persistent": true - }, - "params.directionLeft": { - "paramDirection": "input", - "persistent": true - }, - "params.forceFaultStatus": { - "paramDirection": "input", - "persistent": true - }, - "params.forceRunningStatus": { - "paramDirection": "input", - "persistent": true - }, - "params.tagProps": { - "paramDirection": "inout", - "persistent": true - } - }, - "props": { - "defaultSize": { - "height": 25, - "width": 40 - } - }, - "root": { - "children": [ - { - "meta": { - "name": "Camera" - }, - "position": { - "height": 1, - "width": 1, - "x": 0.0015, - "y": 0.0004 - }, - "propConfig": { - "meta.visible": { - "binding": { - "config": { - "expression": "!{view.params.directionLeft}" - }, - "type": "expr" - } - }, - "props.elements[0].fill.paint": { - "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" - }, - { - "expression": "if({view.custom.display_icon}\u0026\u0026 {view.custom.isMatch}\u003d0,{value},{value}+\u002700\u0027)", - "type": "expression" - } - ], - "type": "property" - } - }, - "props.style.classes": { - "binding": { - "config": { - "expression": "if({session.custom.colours.colour_impaired} \u003d True \u0026\u0026 {view.custom.isMatch} \u003e 0,\r\n{view.custom.state} + 100 + {view.custom.isMatch},\r\n{view.custom.state} + {view.custom.isMatch})" - }, - "transforms": [ - { - "fallback": "", - "inputType": "scalar", - "mappings": [ - { - "input": 101, - "output": "State-Styles/State101" - }, - { - "input": 102, - "output": "State-Styles/State102" - }, - { - "input": 103, - "output": "State-Styles/State103" - }, - { - "input": 104, - "output": "State-Styles/State104" - }, - { - "input": 105, - "output": "State-Styles/State105" - }, - { - "input": 106, - "output": "State-Styles/State106" - }, - { - "input": 201, - "output": "State-Styles/State201" - }, - { - "input": 202, - "output": "State-Styles/State202" - }, - { - "input": 203, - "output": "State-Styles/State203" - }, - { - "input": 204, - "output": "State-Styles/State204" - }, - { - "input": 205, - "output": "State-Styles/State205" - } - ], - "outputType": "style-list", - "type": "map" - } - ], - "type": "expr" - } - } - }, - "props": { - "elements": [ - { - "d": "M 0,0 H 39 V 24 H 0 Z", - "fill": {}, - "name": "path", - "stroke": { - "paint": "#000000", - "width": 1 - }, - "type": "path" - }, - { - "d": "M 34,17 26,12 34,7 Z", - "fill": { - "paint": "#000000" - }, - "name": "path", - "stroke": { - "paint": "#000000", - "width": 1 - }, - "type": "path" - }, - { - "d": "M 9.7399998,7 H 25 V 17 H 9.7399998 Z", - "fill": { - "paint": "#000000" - }, - "name": "path", - "stroke": { - "paint": "#000000", - "width": 1 - }, - "type": "path" - }, - { - "d": "m 5,7 h 3 v 5 H 5 Z", - "fill": { - "paint": "#000000" - }, - "name": "path", - "stroke": { - "paint": "#000000", - "width": 1 - }, - "type": "path" - } - ], - "style": {}, - "viewBox": "-0.5 -0.5 40 25" - }, - "type": "ia.shapes.svg" - }, - { - "meta": { - "name": "Camera_Left" - }, - "position": { - "height": 1, - "width": 1, - "x": 0.0015, - "y": 0.0004 - }, - "propConfig": { - "meta.visible": { - "binding": { - "config": { - "expression": "{view.params.directionLeft}" - }, - "type": "expr" - } - }, - "props.elements[0].fill.paint": { - "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" - }, - { - "expression": "if({view.custom.display_icon}\u0026\u0026 {view.custom.isMatch}\u003d0,{value},{value}+\u002700\u0027)", - "type": "expression" - } - ], - "type": "property" - } - }, - "props.style.classes": { - "binding": { - "config": { - "expression": "if({session.custom.colours.colour_impaired} \u003d True \u0026\u0026 {view.custom.isMatch} \u003e 0,\r\n{view.custom.state} + 100 + {view.custom.isMatch},\r\n{view.custom.state} + {view.custom.isMatch})" - }, - "transforms": [ - { - "fallback": "", - "inputType": "scalar", - "mappings": [ - { - "input": 101, - "output": "State-Styles/State101" - }, - { - "input": 102, - "output": "State-Styles/State102" - }, - { - "input": 103, - "output": "State-Styles/State103" - }, - { - "input": 104, - "output": "State-Styles/State104" - }, - { - "input": 105, - "output": "State-Styles/State105" - }, - { - "input": 106, - "output": "State-Styles/State106" - }, - { - "input": 201, - "output": "State-Styles/State201" - }, - { - "input": 202, - "output": "State-Styles/State202" - }, - { - "input": 203, - "output": "State-Styles/State203" - }, - { - "input": 204, - "output": "State-Styles/State204" - }, - { - "input": 205, - "output": "State-Styles/State205" - } - ], - "outputType": "style-list", - "type": "map" - } - ], - "type": "expr" - } - } - }, - "props": { - "elements": [ - { - "d": "M 0,0 H 39 V 24 H 0 Z", - "fill": {}, - "name": "path", - "stroke": { - "paint": "#000000", - "width": 1 - }, - "type": "path" - }, - { - "d": "m 31,7 h 3 v 5 h -3 z", - "fill": { - "paint": "#000000" - }, - "name": "path", - "stroke": { - "paint": "#000000", - "width": 1 - }, - "type": "path" - }, - { - "d": "M 13.74,7 H 29 V 17 H 13.74 Z", - "fill": { - "paint": "#000000" - }, - "name": "path", - "stroke": { - "paint": "#000000", - "width": 1 - }, - "type": "path" - }, - { - "d": "m 5.556602,17 8,-5 -8,-5 z", - "fill": { - "paint": "#000000" - }, - "name": "path", - "stroke": { - "paint": "#000000", - "width": 1 - }, - "type": "path" - } - ], - "style": {}, - "viewBox": "-0.5 -0.5 40 25" - }, - "type": "ia.shapes.svg" - } - ], - "events": { - "dom": { - "onClick": { - "config": { - "script": "\tsystem.perspective.openDock(\u0027Docked-East\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" - }, - "scope": "G", - "type": "script" - }, - "onDoubleClick": { - "config": { - "script": "\ttagProps \u003d self.view.params.tagProps\n\tsystem.perspective.openPopup(\"StatusPopUP\", \"PopUp-Views/Controller-Equipment/Information\", params \u003d{\"tagProps\":tagProps})\n\t" - }, - "enabled": false, - "scope": "G", - "type": "script" - }, - "onMouseEnter": { - "config": { - "script": "\tself.props.style.transform \u003d \"scale(2)\"\n\tfrom time import sleep\n\t\n\talarm \u003d []\n\tmessage \u003d None\n\t\n#\tsleep(0.5)\n\t\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message" - }, - "scope": "G", - "type": "script" - }, - "onMouseLeave": { - "config": { - "script": "\tself.props.style.transform \u003d \"scale(1)\"" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "root", - "tooltip": { - "enabled": true, - "location": "top-left", - "style": {} - } - }, - "propConfig": { - "meta.tooltip.style.backgroundColor": { - "binding": { - "config": { - "path": "view.custom.state" - }, - "transforms": [ - { - "expression": "case({value},\r\n0,{session.custom.colours.state0},\r\n1,{session.custom.colours.state1},\r\n2,{session.custom.colours.state2},\r\n3,{session.custom.colours.state3},\r\n4,{session.custom.colours.state4},\r\n5,{session.custom.colours.state5},\r\n6,{session.custom.colours.state6},\r\n{session.custom.colours.fallback}\r\n)", - "type": "expression" - } - ], - "type": "property" - } - }, - "meta.tooltip.style.classes": { - "binding": { - "config": { - "expression": "{view.custom.priority}" - }, - "transforms": [ - { - "fallback": "Alarms-Styles/NoAlarm", - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": "Alarms-Styles/Diagnostic" - }, - { - "input": 2, - "output": "Alarms-Styles/Low" - }, - { - "input": 3, - "output": "Alarms-Styles/Medium" - }, - { - "input": 4, - "output": "Alarms-Styles/High" - } - ], - "outputType": "style-list", - "type": "map" - } - ], - "type": "expr" - } - }, - "meta.tooltip.style.color": { - "binding": { - "config": { - "path": "view.custom.state" - }, - "transforms": [ - { - "expression": "if({session.custom.colours.colour_impaired},\r\n\t\u0027#000000\u0027,\r\n\tcase(\t{value},\r\n\t\t\t1,\u0027#FFFFFF\u0027,\r\n\t\t\t2,\u0027#000000\u0027,\r\n\t\t\t3,\u0027#000000\u0027,\r\n\t\t\t4,\u0027#FFFFFF\u0027,\r\n\t\t\t5,\u0027#FFFFFF\u0027,\r\n\t\t\t\u0027#000000\u0027)\r\n\t)", - "type": "expression" - } - ], - "type": "property" - } - }, - "meta.tooltip.text": { - "binding": { - "config": { - "expression": "if({view.custom.disconnected} \u003d False,\n\tif(isNull({view.custom.alarm_message}),\n\t\"Source Id: \" + {view.params.tagProps[0]} +\n\t\", Priority: \" + {view.custom.priority_string} +\n\t\", State: \" + {view.custom.state_string},\n\t\"Source Id: \" + {view.params.tagProps[0]} +\n\t\", Alarm: \" + {view.custom.alarm_message} +\n\t\", Priority: \" + {view.custom.priority_string} +\n\t\", State: \" + {view.custom.state_string}),\n\"Source Id: \" +{view.params.tagProps[0]} + \", Priority: Unknown, State: Unknown\")" - }, - "type": "expr" - } - }, - "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": "40:25", - "mode": "percent", - "style": { - "cursor": "pointer", - "overflow": "hidden", - "transform": "scale(1)", - "transition": "transform 100ms linear" - } - }, - "type": "ia.container.coord" - } -} \ No newline at end of file diff --git a/.resources/74e67bf28c6765d417b0e69d0c5bb3b960431cfc37118faf08c689b8f3b70b67 b/.resources/74e67bf28c6765d417b0e69d0c5bb3b960431cfc37118faf08c689b8f3b70b67 deleted file mode 100644 index 3c42c316..00000000 --- a/.resources/74e67bf28c6765d417b0e69d0c5bb3b960431cfc37118faf08c689b8f3b70b67 +++ /dev/null @@ -1,2019 +0,0 @@ -{ - "custom": { - "PLC_list": [ - "MCM01", - "MCM02", - "MCM03", - "MCM04", - "MCM05" - ], - "running_state": -1, - "state": 0, - "type": 0, - "views_data": [] - }, - "params": { - "tagProps": [ - "System/MCM01/Conveyor/EXTENDO/UL1_1_EX1", - "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.running_state": { - "binding": { - "config": { - "expression": "try(jsonGet({session.custom.state_messages},{this.custom.tag_path_to_lookup}),-1)\t\r\n" - }, - "transforms": [ - { - "expression": "if({value} !\u003d -1, try(jsonGet({value},\"state\"),4),{value})", - "type": "expression" - } - ], - "type": "expr" - }, - "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 - }, - "custom.type": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/EX_Type" - }, - "transforms": [ - { - "expression": "if(isNull({value}), 0, {value})", - "type": "expression" - }, - { - "fallback": null, - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": 1 - }, - { - "input": 0, - "output": 0 - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - }, - "persistent": true - }, - "custom.views_data": { - "binding": { - "config": { - "struct": { - "equipment_id": "{view.params.tagProps[0]}" - }, - "waitOnAll": true - }, - "transforms": [ - { - "code": "\tproject_info \u003d system.perspective.getProjectInfo()\n\t#self.custom.views_data \u003d project_info\n\tviews \u003d project_info.get(\"views\")\n\t#equipment_id \u003d self.view.params.tagProps[0]\n\tviews_data \u003d [i for i in views if i[\"path\"].startswith(\"Custom-Views/\"+ value.equipment_id)]\n\t#self.custom.views_data \u003d views_data\n\t\n\treturn views_data", - "type": "script" - } - ], - "type": "expr-struct" - }, - "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-Extendo\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": "Name" - }, - "position": { - "basis": "35px" - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "Name" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "propConfig": { - "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}/EX_Type" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\u0027UNKNOWN\u0027)", - "type": "expression" - }, - { - "fallback": "UNKNOWN", - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": "BELT RUNNING" - }, - { - "input": 0, - "output": "AOPEN ACTIVE" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - } - }, - "props": { - "style": { - "paddingLeft": 20 - } - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Aopen Active" - }, - "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}/EX_Type" - }, - "transforms": [ - { - "code": "\tprovider \u003d self.session.custom.fc + \"_SCADA_TAG_PROVIDER\"\n\tbaseTag \u003d self.view.params.tagProps[0]\n\tbasePath \u003d \"[\" + provider + \"]\" + baseTag\n\tchild \u003d \"\"\n\tunit \u003d \"\"\n\t\n\tif value \u003d\u003d 1:\n\t child \u003d \"Belt_Running\"\n\telse:\n\t child \u003d \"Aopen_Active\"\n\t\n\tfullPath \u003d basePath + \"/\" + child\n\ttagValue \u003d system.tag.readBlocking([fullPath])[0]\n\tresult \u003d tagValue.value\n\t\n\tif result is None or str(result) \u003d\u003d \"None\":\n\t return \"UNKNOWN\"\n\telse:\n\t if value \u003d\u003d 1:\n\t return \"Running\" if result else \"Not Running\"\n\t else:\n\t \treturn \"Active\" if result else \"Not Active\"\n\t ", - "type": "script" - } - ], - "type": "tag" - } - }, - "props.textStyle.color": { - "binding": { - "config": { - "path": "this.props.text" - }, - "enabled": false, - "transforms": [ - { - "fallback": "#000000", - "inputType": "scalar", - "mappings": [ - { - "input": "ACTIVE", - "output": "#47FF47" - }, - { - "input": "NOT ACTIVE", - "output": "#FF0000" - } - ], - "outputType": "color", - "type": "map" - } - ], - "type": "property" - } - } - }, - "props": { - "style": { - "classes": "Text-Styles/Ariel-Bold-12pt", - "paddingLeft": 10 - }, - "textStyle": { - "color": "#000000" - } - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "Property" - }, - "position": { - "basis": "35px", - "shrink": 2 - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel" - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "Aopen Active" - }, - "position": { - "basis": "35px" - }, - "propConfig": { - "meta.visible": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/EX_Type" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},false)", - "type": "expression" - }, - { - "fallback": false, - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": true - }, - { - "input": 0, - "output": true - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - } - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "Name" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "propConfig": { - "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}/EX_Type" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\u0027UNKNOWN\u0027)", - "type": "expression" - }, - { - "fallback": "UNKNOWN", - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": "PLC READY TO RUN" - }, - { - "input": 0, - "output": "FULLY EXTENDED" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - } - }, - "props": { - "style": { - "paddingLeft": 20 - } - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Fully Extended" - }, - "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}/EX_Type" - }, - "transforms": [ - { - "code": "\tprovider \u003d self.session.custom.fc + \"_SCADA_TAG_PROVIDER\"\n\tbaseTag \u003d self.view.params.tagProps[0]\n\tbasePath \u003d \"[\" + provider + \"]\" + baseTag\n\tchild \u003d \"\"\n\t\n\tif value \u003d\u003d 1:\n\t child \u003d \"PLC_Ready_To_Run\"\n\telse:\n\t child \u003d \"Fully_Extended\"\n\t\n\tfullPath \u003d basePath + \"/\" + child\n\ttagValue \u003d system.tag.readBlocking([fullPath])[0]\n\tresult \u003d tagValue.value\n\t\n\tif result is None or str(result) \u003d\u003d \"None\":\n\t return \"UNKNOWN\"\n\telse:\n\t if value \u003d\u003d 1:\n\t return \"Ready\" if result else \"Not Ready\"\n\t else:\n\t \treturn \"Extended\" if result else \"Not Extended\"\n\t ", - "type": "script" - } - ], - "type": "tag" - } - }, - "props.textStyle.color": { - "binding": { - "config": { - "path": "this.props.text" - }, - "enabled": false, - "transforms": [ - { - "fallback": "#000000", - "inputType": "scalar", - "mappings": [ - { - "input": "EXTENDED", - "output": "#47FF47" - }, - { - "input": "NOT EXTENDED", - "output": "#FF0000" - } - ], - "outputType": "color", - "type": "map" - } - ], - "type": "property" - } - } - }, - "props": { - "style": { - "classes": "Text-Styles/Ariel-Bold-12pt", - "paddingLeft": 10 - }, - "textStyle": { - "color": "#000000" - } - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "Property" - }, - "position": { - "basis": "35px", - "shrink": 2 - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel" - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "Fully Extended" - }, - "position": { - "basis": "35px" - }, - "propConfig": { - "meta.visible": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/EX_Type" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},false)", - "type": "expression" - }, - { - "fallback": false, - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": true - }, - { - "input": 0, - "output": true - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - } - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "Name" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "propConfig": { - "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}/EX_Type" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\u0027UNKNOWN\u0027)", - "type": "expression" - }, - { - "fallback": "UNKNOWN", - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": "OK TO RUN" - }, - { - "input": 0, - "output": "FULLY RETRACTED" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - } - }, - "props": { - "style": { - "paddingLeft": 20 - } - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Fully Retracted" - }, - "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}/EX_Type" - }, - "transforms": [ - { - "code": "\tprovider \u003d self.session.custom.fc + \"_SCADA_TAG_PROVIDER\"\n\tbaseTag \u003d self.view.params.tagProps[0]\n\tbasePath \u003d \"[\" + provider + \"]\" + baseTag\n\tchild \u003d \"\"\n\t\n\tif value \u003d\u003d 1:\n\t child \u003d \"OK_To_Run\"\n\telse:\n\t child \u003d \"Fully_Retracted\"\n\t\n\tfullPath \u003d basePath + \"/\" + child\n\ttagValue \u003d system.tag.readBlocking([fullPath])[0]\n\tresult \u003d tagValue.value\n\t\n\tif result is None or str(result) \u003d\u003d \"None\":\n\t return \"UNKNOWN\"\n\telse:\n\t if value \u003d\u003d 1:\n\t return \"OK\" if result else \"Not OK\"\n\t else:\n\t \treturn \"Retracted\" if result else \"Not Retracted\"\n\t ", - "type": "script" - } - ], - "type": "tag" - } - }, - "props.textStyle.color": { - "binding": { - "config": { - "path": "this.props.text" - }, - "enabled": false, - "transforms": [ - { - "fallback": "#000000", - "inputType": "scalar", - "mappings": [ - { - "input": "RETRACTED", - "output": "#47FF47" - }, - { - "input": "NOT RETRACTED", - "output": "#FF0000" - } - ], - "outputType": "color", - "type": "map" - } - ], - "type": "property" - } - } - }, - "props": { - "style": { - "classes": "Text-Styles/Ariel-Bold-12pt", - "paddingLeft": 10 - }, - "textStyle": { - "color": "#000000" - } - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "Property" - }, - "position": { - "basis": "35px", - "shrink": 2 - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel" - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "Fully Retracted" - }, - "position": { - "basis": "35px" - }, - "propConfig": { - "meta.visible": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/EX_Type" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},false)", - "type": "expression" - }, - { - "fallback": false, - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": true - }, - { - "input": 0, - "output": true - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - } - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "Name" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "propConfig": { - "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}/EX_Type" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\u0027UNKNOWN\u0027)", - "type": "expression" - }, - { - "fallback": "UNKNOWN", - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": "READY TO RECEIVE" - }, - { - "input": 0, - "output": "LODAING MODE" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - } - }, - "props": { - "style": { - "paddingLeft": 20 - } - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Loading Mode" - }, - "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}/EX_Type" - }, - "transforms": [ - { - "code": "\tprovider \u003d self.session.custom.fc + \"_SCADA_TAG_PROVIDER\"\n\tbaseTag \u003d self.view.params.tagProps[0]\n\tbasePath \u003d \"[\" + provider + \"]\" + baseTag\n\tchild \u003d \"\"\n\t\n\tif value \u003d\u003d 1:\n\t child \u003d \"Ready_To_Receive\"\n\telse:\n\t child \u003d \"Loading_Mode\"\n\t\n\tfullPath \u003d basePath + \"/\" + child\n\ttagValue \u003d system.tag.readBlocking([fullPath])[0]\n\tresult \u003d tagValue.value\n\t\n\tif result is None or str(result) \u003d\u003d \"None\":\n\t return \"UNKNOWN\"\n\telse:\n\t if value \u003d\u003d 1:\n\t return \"Ready\" if result else \"Not Ready\"\n\t else:\n\t \treturn \"ON\" if result else \"OFF\"\n\t ", - "type": "script" - } - ], - "type": "tag" - } - }, - "props.textStyle.color": { - "binding": { - "config": { - "path": "this.props.text" - }, - "enabled": false, - "transforms": [ - { - "fallback": "#000000", - "inputType": "scalar", - "mappings": [ - { - "input": "ON", - "output": "#47FF47" - }, - { - "input": "OFF", - "output": "#FF0000" - } - ], - "outputType": "color", - "type": "map" - } - ], - "type": "property" - } - } - }, - "props": { - "style": { - "classes": "Text-Styles/Ariel-Bold-12pt", - "paddingLeft": 10 - }, - "textStyle": { - "color": "#000000" - } - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "Property" - }, - "position": { - "basis": "35px", - "shrink": 2 - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel" - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "Loading Mode" - }, - "position": { - "basis": "35px" - }, - "propConfig": { - "meta.visible": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/EX_Type" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},false)", - "type": "expression" - }, - { - "fallback": false, - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": true - }, - { - "input": 0, - "output": true - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - } - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "Name" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "UNLOADING MODE" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Unloading Mode" - }, - "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}/Unloading_Mode" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\"UNKNOWN\")", - "type": "expression" - }, - { - "fallback": "UNKNOWN", - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": "ON" - }, - { - "input": 0, - "output": "OFF" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - }, - "props.textStyle.color": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#000000", - "inputType": "scalar", - "mappings": [ - { - "input": "ON", - "output": "#47FF47" - }, - { - "input": "OFF", - "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": "Unloading Mode" - }, - "position": { - "basis": "35px" - }, - "propConfig": { - "meta.visible": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/EX_Type" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},false)", - "type": "expression" - }, - { - "fallback": false, - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": false - }, - { - "input": 0, - "output": true - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - } - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "Name" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "POWER SAVING MODE" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Power Saving Mode" - }, - "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}/Unloading_Mode" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\"UNKNOWN\")", - "type": "expression" - }, - { - "fallback": "UNKNOWN", - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": "ON" - }, - { - "input": 0, - "output": "OFF" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - }, - "props.textStyle.color": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#000000", - "inputType": "scalar", - "mappings": [ - { - "input": "ON", - "output": "#47FF47" - }, - { - "input": "OFF", - "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": "Power Saving Mode" - }, - "position": { - "basis": "35px" - }, - "propConfig": { - "meta.visible": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/EX_Type" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},false)", - "type": "expression" - }, - { - "fallback": false, - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": false - }, - { - "input": 0, - "output": true - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - } - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "Info_tab" - }, - "position": { - "tabIndex": 1 - }, - "props": { - "direction": "column", - "style": { - "margin-left": "" - } - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "children": [ - { - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\ttag_name \u003d self.view.params.tagProps[0]\n\ttag_path \u003d \"[\" + self.session.custom.fc + \"_SCADA_TAG_PROVIDER]\" + tag_name + \"/PEC_Override_PB\"\n\tcurrent_value \u003d system.tag.readBlocking([tag_path])[0].value\n\tnew_value \u003d not current_value\n\tsystem.tag.writeBlocking([tag_path], [new_value])" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button", - "tooltip": { - "enabled": true - } - }, - "position": { - "basis": "80px", - "grow": 1 - }, - "propConfig": { - "meta.tooltip.text": { - "binding": { - "config": { - "expression": "if({this.props.enabled},{this.props.text} +\u0027 Button\u0027,\"You do not have Maintenance or Administrator role!\")" - }, - "type": "expr" - } - }, - "props.enabled": { - "binding": { - "config": { - "expression": "indexOf({session.props.auth.user.roles}, \"Administrator\") \u003e\u003d 0 || indexOf({session.props.auth.user.roles}, \"Maintenance\") \u003e\u003d 0" - }, - "type": "expr" - } - }, - "props.style.backgroundColor": { - "binding": { - "config": { - "expression": "if(\r\n {this.props.enabled} \u003d False,\r\n \"#9661A3\",\r\n if(\r\n {this.props.text} \u003d \"PEC OVERRIDE: ON\",\r\n \"#E888FF\",\r\n if(\r\n {this.props.text} \u003d \"PEC OVERRIDE: OFF\",\r\n \"#CC00FF\",\r\n \"#FFFFFF\"\r\n )\r\n )\r\n)\r\n" - }, - "type": "expr" - } - }, - "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}/PEC_Override_PB" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},0)", - "type": "expression" - }, - { - "fallback": "PEC OVERRIDE: OFF", - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": "PEC OVERRIDE: ON" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - } - }, - "props": { - "style": { - "classes": "Background-Styles/Controller" - } - }, - "type": "ia.input.button" - } - ], - "meta": { - "name": "PEC Override" - }, - "position": { - "basis": "35px" - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel", - "padding": "" - } - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\ttag_name \u003d self.view.params.tagProps[0]\n\ttag_path \u003d \"[\" + self.session.custom.fc + \"_SCADA_TAG_PROVIDER]\" + tag_name + \"/Extendo_Faults_Reset_PB\"\n\tcurrent_value \u003d system.tag.readBlocking([tag_path])[0].value\n\tnew_value \u003d not current_value\n\tsystem.tag.writeBlocking([tag_path], [new_value])" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button", - "tooltip": { - "enabled": true - } - }, - "position": { - "basis": "80px", - "grow": 1 - }, - "propConfig": { - "meta.tooltip.text": { - "binding": { - "config": { - "expression": "if({this.props.enabled},{this.props.text} +\u0027 Button\u0027,\"You do not have Maintenance or Administrator role!\")" - }, - "type": "expr" - } - }, - "props.enabled": { - "binding": { - "config": { - "expression": "indexOf({session.props.auth.user.roles}, \"Administrator\") \u003e\u003d 0 || indexOf({session.props.auth.user.roles}, \"Maintenance\") \u003e\u003d 0" - }, - "type": "expr" - } - }, - "props.style.backgroundColor": { - "binding": { - "config": { - "expression": "if(\r\n {this.props.enabled} \u003d False,\r\n \"#BB5050\",\r\n if(\r\n {this.props.text} \u003d \"EXTENDO FAULTS RESET PRESSED\",\r\n \"#FF9191\",\r\n if(\r\n {this.props.text} \u003d \"EXTENDO FAULTS RESET\",\r\n \"#FF0000\",\r\n \"#FFFFFF\"\r\n )\r\n )\r\n)\r\n" - }, - "type": "expr" - } - }, - "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}/Extendo_Faults_Reset_PB" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},0)", - "type": "expression" - }, - { - "fallback": "EXTENDO FAULTS RESET", - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": "EXTENDO FAULTS RESET PRESSED" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - } - }, - "props": { - "style": { - "classes": "Background-Styles/Controller" - } - }, - "type": "ia.input.button" - } - ], - "meta": { - "name": "Extendo Fault Reset" - }, - "position": { - "basis": "35px" - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel", - "padding": "" - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "FlexContainer_0" - }, - "position": { - "basis": "100px", - "grow": 1 - }, - "props": { - "direction": "column", - "style": { - "gap": 6, - "paddingBottom": 20, - "paddingLeft": 10, - "paddingRight": 10, - "paddingTop": 13 - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "Commands_tab" - }, - "position": { - "tabIndex": 2 - }, - "props": { - "direction": "column", - "style": { - "paddingTop": 1 - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "tabs" - }, - "position": { - "grow": 1 - }, - "propConfig": { - "props.tabs": { - "binding": { - "config": { - "path": "view.custom.type" - }, - "transforms": [ - { - "code": "\t# This script runs whenever view.custom.type changes\n\tif value \u003d\u003d 0 or value \u003d\u003d 3:\n\t\treturn [\"Alarms\", \"Info\", \"Commands\"]\n\telse:\n\t\treturn [\"Alarms\", \"Info\"]", - "type": "script" - } - ], - "type": "property" - } - } - }, - "props": { - "currentTabIndex": 2, - "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 - } - } - }, - "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/79769ab7cf3272d780160cf10eb1d793b1815f428d782ec5768b69fb1098154b b/.resources/79769ab7cf3272d780160cf10eb1d793b1815f428d782ec5768b69fb1098154b deleted file mode 100644 index d0faa9f1..00000000 --- a/.resources/79769ab7cf3272d780160cf10eb1d793b1815f428d782ec5768b69fb1098154b +++ /dev/null @@ -1,230 +0,0 @@ -{ - "custom": { - "alarmHighlight": "value", - "alarm_filter": { - "show_VFD": true, - "show_beacons": true, - "show_buttons": true, - "show_camera_jams": true, - "show_diagnostic": true, - "show_dpm_mcm": true, - "show_encoders": true, - "show_epc": true, - "show_fio_safety": true, - "show_gateways": true, - "show_low_alarm": true, - "show_map": true, - "show_photoeyes": true, - "show_px": true, - "show_running": true, - "show_safety": true, - "show_solenoids": true - }, - "areaHover": [], - "colours": { - "Fallback": "#00FF00", - "colour_impaired": false, - "state0": "#8C8C8C", - "state1": "#FF0000", - "state2": "#FF8000", - "state3": "#FFFF00", - "state4": "#007EFC", - "state5": "#00CC00", - "state6": "#CCCCFF" - }, - "covert": true, - "currentGraphic": "Windows/Graphics/Overview", - "demoHighlight": "", - "dexmanager": { - "config": { - "font": "bold 12px Arial", - "highlight": "#ff0" - }, - "show": { - "Beacons": false, - "ConveyorLabels": true, - "ConveyorPatterns": true, - "Conveyors": true, - "DivertPaddles": true, - "EIPs": false, - "Encoders": false, - "Estops": false, - "Gaylords": true, - "LimitSwitches": false, - "MCPs": false, - "PhotoEyes": false, - "PushButtons": false, - "Scanners": false, - "VFDs": false - } - }, - "dpm_view_path": "autStand/Custom_Views/Enternet-Windows/DPMS/DPM Devices/MCM01/PS3_1_DPM1", - "fc": "BNA8", - "heatmapSettings": { - "alarms": [], - "alarmsText": "", - "data": { - "$": [ - "ds", - 192, - 1755608623601 - ], - "$columns": [ - { - "data": [], - "name": "firsttime", - "type": "Date" - }, - { - "data": [], - "name": "lasttime", - "type": "Date" - }, - { - "data": [], - "name": "duration", - "type": "String" - }, - { - "data": [], - "name": "count", - "type": "Long" - }, - { - "data": [], - "name": "device", - "type": "String" - }, - { - "data": [], - "name": "description", - "type": "String" - } - ] - }, - "devices": [], - "devicesText": "", - "enabled": false, - "shifts": [], - "shiftsText": "", - "time": { - "end": "2020-07-30 00:00:00", - "start": "2020-07-29 00:00:00" - } - }, - "rotation": "0deg", - "show_dpm_device_view": false, - "show_dpm_view": false, - "timewidget": { - "endDate": { - "$": [ - "ts", - 192, - 1604092861010 - ], - "$ts": 1604116800000 - }, - "mode": "currentDay", - "startDate": { - "$": [ - "ts", - 192, - 1604092861010 - ], - "$ts": 1604030400000 - }, - "update": { - "$": [ - "ts", - 192, - 1604092861010 - ], - "$ts": 1604092861010 - } - } - }, - "propConfig": { - "custom.dexmanager.highlight": { - "binding": { - "config": { - "struct": { - "alarm": "{this.custom.alarmHighlight}", - "demo": "{this.custom.demoHighlight}", - "toggle": "{[default]Gateway/ToggleTag}" - }, - "waitOnAll": true - }, - "transforms": [ - { - "code": "\thighlights \u003d []\n\t# Add alarm highlight:\n\tif len(value.alarm) \u003e 0:\n\t\thighlights.append({\n\t\t\t\"color\": \"#F00\" if value.toggle else \"#FF0\",\n\t\t\t\"keys\": [value.alarm]\n\t\t})\n\t\tif \".\" in value.alarm:\n\t\t\thighlights.append({\n\t\t\t\t\"color\": \"#F00\" if value.toggle else \"#FF0\",\n\t\t\t\t\"keys\": [value.alarm.split(\".\")[0], \"conveyor\"]\n\t\t\t})\n\t# Add demo highlight:\n\tif False and len(value.demo) \u003e 0:\n\t\thighlights.append({\n\t\t\t\"color\": \"#F00\" if value.toggle else \"#FF0\",\n\t\t\t\"keys\": [\"conveyor\", value.demo]\n\t\t})\n\treturn highlights", - "type": "script" - } - ], - "type": "expr-struct" - } - }, - "custom.isMobile": { - "binding": { - "config": { - "expression": "indexOf(lower({session.props.device.userAgent}), \"mobile\")\u003e\u003d0" - }, - "type": "expr" - } - }, - "props.auth": { - "access": "PRIVATE", - "persistent": false - }, - "props.device.accelerometer": { - "access": "SYSTEM", - "persistent": false - }, - "props.device.identifier": { - "access": "SYSTEM", - "persistent": false - }, - "props.device.timezone": { - "access": "SYSTEM", - "persistent": false - }, - "props.device.type": { - "access": "SYSTEM", - "persistent": false - }, - "props.device.userAgent": { - "access": "SYSTEM", - "persistent": false - }, - "props.gateway": { - "access": "SYSTEM", - "persistent": false - }, - "props.geolocation.data": { - "access": "SYSTEM", - "persistent": false - }, - "props.geolocation.permissionGranted": { - "access": "SYSTEM", - "persistent": false - }, - "props.host": { - "access": "SYSTEM", - "persistent": false - }, - "props.id": { - "access": "SYSTEM", - "persistent": false - }, - "props.lastActivity": { - "access": "SYSTEM", - "persistent": false - } - }, - "props": { - "address": "127.0.0.1", - "device": {}, - "geolocation": {}, - "locale": "en-US", - "timeZoneId": "Asia/Tbilisi" - } -} \ No newline at end of file diff --git a/.resources/7d5aa66c024182eecf59c4ef7135017349d5dcd7a330a4ff70d65ce2872e683b b/.resources/7d5aa66c024182eecf59c4ef7135017349d5dcd7a330a4ff70d65ce2872e683b deleted file mode 100644 index f5ec99ae..00000000 --- a/.resources/7d5aa66c024182eecf59c4ef7135017349d5dcd7a330a4ff70d65ce2872e683b +++ /dev/null @@ -1,1928 +0,0 @@ -{ - "custom": { - "PLC_list": [ - "MCM01", - "MCM02", - "MCM03", - "MCM04", - "MCM05" - ], - "button_type": "UNKNOWN", - "type": 0 - }, - "params": { - "forceFaultStatus": null, - "tagProps": [ - "System/MCM06/Chute/NC/S02_203CH", - "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.button_type": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Button_Type" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},0)", - "type": "expression" - }, - { - "fallback": "UNKNOWN", - "inputType": "scalar", - "mappings": [ - { - "input": 5, - "output": "Chute_JR" - }, - { - "input": 4, - "output": "GS" - }, - { - "input": 3, - "output": "PR" - }, - { - "input": 2, - "output": "Start" - }, - { - "input": 1, - "output": "JR" - }, - { - "input": 6, - "output": "Enable" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - }, - "persistent": true - }, - "custom.type": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Chute_Type" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},0)", - "type": "expression" - } - ], - "type": "tag" - }, - "persistent": true - }, - "params.forceFaultStatus": { - "paramDirection": "input", - "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-SNP\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": "Name" - }, - "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": "Property" - }, - "position": { - "basis": "35px" - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel", - "overflow": "hidden" - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "Name" - }, - "position": { - "basis": "35px" - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "Name" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "FULL" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Full" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "propConfig": { - "props.style.backgroundColor": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#FFFFFF", - "inputType": "scalar", - "mappings": [ - { - "input": "FULL", - "output": "#D5D5D5" - }, - { - "input": "NOT FULL", - "output": "#D5D5D5" - } - ], - "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}/Alarm/Full" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\"UNKNOWN\")", - "type": "expression" - }, - { - "fallback": "UNKNOWN", - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": "FULL" - }, - { - "input": 0, - "output": "NOT FULL" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - }, - "props.textStyle.color": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#000000", - "inputType": "scalar", - "mappings": [ - { - "input": "FULL", - "output": "#0008FF" - }, - { - "input": "NOT FULL", - "output": "#008000" - } - ], - "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": "Full" - }, - "position": { - "basis": "35px" - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "Name" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "JAM" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Jam" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "propConfig": { - "props.style.backgroundColor": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#FFFFFF", - "inputType": "scalar", - "mappings": [ - { - "input": "JAMMED", - "output": "#D5D5D5" - }, - { - "input": "NOT JAMMED", - "output": "#D5D5D5" - } - ], - "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}/Alarm/Jam" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\"UNKNOWN\")", - "type": "expression" - }, - { - "fallback": "UNKNOWN", - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": "JAMMED" - }, - { - "input": 0, - "output": "NOT JAMMED" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - }, - "props.textStyle.color": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#000000", - "inputType": "scalar", - "mappings": [ - { - "input": "JAMMED", - "output": "#FF8C00" - }, - { - "input": "NOT JAMMED", - "output": "#008000" - } - ], - "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": "Jam" - }, - "position": { - "basis": "35px" - }, - "propConfig": { - "meta.visible": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Chute_Type" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},0)", - "type": "expression" - }, - { - "fallback": false, - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": true - }, - { - "input": 2, - "output": true - }, - { - "input": 3, - "output": true - }, - { - "input": 4, - "output": true - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - } - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "Name" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "DISABLED" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Disabled" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "propConfig": { - "props.style.backgroundColor": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#FFFFFF", - "inputType": "scalar", - "mappings": [ - { - "input": "TRUE", - "output": "#D5D5D5" - }, - { - "input": "FALSE", - "output": "#D5D5D5" - } - ], - "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}/Alarm/Disabled" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus}, \"UNKNOWN\")", - "type": "expression" - }, - { - "fallback": "UNKNOWN", - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": "TRUE" - }, - { - "input": 0, - "output": "FALSE" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - }, - "props.textStyle.color": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#000000", - "inputType": "scalar", - "mappings": [ - { - "input": "TRUE", - "output": "#FF0000" - }, - { - "input": "FALSE", - "output": "#008000" - } - ], - "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": "Disabled" - }, - "position": { - "basis": "35px" - }, - "propConfig": { - "meta.visible": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Chute_Type" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},0)", - "type": "expression" - }, - { - "fallback": false, - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": true - }, - { - "input": 2, - "output": true - }, - { - "input": 4, - "output": true - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - } - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "Name" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "HALF FULL" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Half Full" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "propConfig": { - "props.style.backgroundColor": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#FFFFFF", - "inputType": "scalar", - "mappings": [ - { - "input": "HALF FULL", - "output": "#D5D5D5" - }, - { - "input": "NOT HALF FULL", - "output": "#D5D5D5" - } - ], - "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}/Alarm/Half_Full" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\"UNKNOWN\")", - "type": "expression" - }, - { - "fallback": "UNKNOWN", - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": "HALF FULL" - }, - { - "input": 0, - "output": "NOT HALF FULL" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - }, - "props.textStyle.color": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#000000", - "inputType": "scalar", - "mappings": [ - { - "input": "HALF FULL", - "output": "#FFF000" - }, - { - "input": "NOT HALF FULL", - "output": "#008000" - } - ], - "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": "Half Full" - }, - "position": { - "basis": "35px" - }, - "propConfig": { - "meta.visible": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Chute_Type" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},0)", - "type": "expression" - }, - { - "fallback": false, - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": true - }, - { - "input": 2, - "output": true - }, - { - "input": 4, - "output": true - }, - { - "input": 3, - "output": true - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - } - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "Name" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "NO CONTAINER" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "No Container" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "propConfig": { - "props.style.backgroundColor": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#FFFFFF", - "inputType": "scalar", - "mappings": [ - { - "input": "NO CONTAINER", - "output": "#D5D5D5" - }, - { - "input": "CONTAINER PRESENT", - "output": "#D5D5D5" - } - ], - "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}/Alarm/No_Container" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},\"UNKNOWN\")", - "type": "expression" - }, - { - "fallback": "UNKNOWN", - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": "NO CONTAINER" - }, - { - "input": 0, - "output": "CONTAINER PRESENT" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - }, - "props.textStyle.color": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#000000", - "inputType": "scalar", - "mappings": [ - { - "input": "NO CONTAINER", - "output": "#FF4487" - }, - { - "input": "CONTAINER PRESENT", - "output": "#008000" - } - ], - "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": "No Container" - }, - "position": { - "basis": "35px" - }, - "propConfig": { - "meta.visible": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Chute_Type" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},0)", - "type": "expression" - }, - { - "fallback": false, - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": true - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - } - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "Name" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "props": { - "style": { - "paddingLeft": 20 - }, - "text": "READY TO BE ENABLED" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Ready To Be Enabled" - }, - "position": { - "basis": "50%", - "grow": 1 - }, - "propConfig": { - "props.style.backgroundColor": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#FFFFFF", - "inputType": "scalar", - "mappings": [ - { - "input": "READY", - "output": "#D5D5D5" - }, - { - "input": "ENABLED", - "output": "#D5D5D5" - } - ], - "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},{view.params.forceFaultStatus},0)", - "type": "expression" - }, - { - "fallback": "ENABLED", - "inputType": "scalar", - "mappings": [ - { - "input": 2, - "output": "READY" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - }, - "props.textStyle.color": { - "binding": { - "config": { - "path": "this.props.text" - }, - "transforms": [ - { - "fallback": "#000000", - "inputType": "scalar", - "mappings": [ - { - "input": "READY", - "output": "#008000" - }, - { - "input": "ENABLED", - "output": "#008000" - } - ], - "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": "Ready To Be Enabled" - }, - "position": { - "basis": "35px" - }, - "propConfig": { - "meta.visible": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Chute_Type" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},0)", - "type": "expression" - }, - { - "fallback": false, - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": true - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - } - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "Info_tab" - }, - "position": { - "tabIndex": 1 - }, - "props": { - "direction": "column", - "style": { - "margin-left": "" - } - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "children": [ - { - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\ttag_name \u003d self.view.params.tagProps[0]\n\ttag_path \u003d \"[\" + self.session.custom.fc+ \"_SCADA_TAG_PROVIDER]\"+tag_name+\"/Enable_Chute_PB\"\n\tsystem.tag.writeBlocking([tag_path],[True])\n\ttag_path2 \u003d \"[\" + self.session.custom.fc+ \"_SCADA_TAG_PROVIDER]\"+tag_name+\"/GS_PB\"\n\tsystem.tag.writeBlocking([tag_path2],[True])\t" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button", - "tooltip": { - "enabled": true - } - }, - "position": { - "basis": "80px", - "grow": 1 - }, - "propConfig": { - "meta.tooltip.text": { - "binding": { - "config": { - "expression": "if({this.props.enabled},{this.props.text} +\u0027 Button\u0027,\"You do not have Maintenance or Administrator role!\")" - }, - "type": "expr" - } - }, - "props.enabled": { - "binding": { - "config": { - "expression": "indexOf({session.props.auth.user.roles}, \"Administrator\") \u003e\u003d 0 || indexOf({session.props.auth.user.roles}, \"Maintenance\") \u003e\u003d 0" - }, - "type": "expr" - } - }, - "props.style.backgroundColor": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}", - "type": "{view.custom.button_type}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/{type}/Color" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},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" - } - }, - "props.text": { - "binding": { - "config": { - "path": "view.custom.type" - }, - "transforms": [ - { - "fallback": "UNKNOWN", - "inputType": "scalar", - "mappings": [ - { - "input": 2, - "output": "ENABLE" - }, - { - "input": 1, - "output": "GAYLORD START" - }, - { - "input": 4, - "output": "ENABLE" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "property" - } - } - }, - "props": { - "image": { - "icon": { - "color": "#0B0B0B" - } - }, - "style": { - "classes": "Background-Styles/Controller" - }, - "textStyle": { - "color": "#000000" - } - }, - "type": "ia.input.button" - } - ], - "meta": { - "name": "Enable" - }, - "position": { - "basis": "35px" - }, - "propConfig": { - "meta.visible": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Chute_Type" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},0)", - "type": "expression" - }, - { - "fallback": false, - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": true - }, - { - "input": 2, - "output": true - }, - { - "input": 4, - "output": true - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - } - } - }, - "props": { - "style": { - "classes": "PopUp-Styles/InfoLabel", - "padding": "" - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "FlexContainer_0" - }, - "position": { - "basis": "100px", - "grow": 1 - }, - "props": { - "direction": "column", - "style": { - "gap": 6, - "paddingBottom": 20, - "paddingLeft": 10, - "paddingRight": 10, - "paddingTop": 13 - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "Commands_tab" - }, - "position": { - "tabIndex": 2 - }, - "props": { - "direction": "column", - "style": { - "paddingTop": 1 - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "tabs" - }, - "position": { - "grow": 1 - }, - "propConfig": { - "props.tabs": { - "binding": { - "config": { - "path": "view.custom.type" - }, - "transforms": [ - { - "code": "\t# This script runs whenever view.custom.type changes\n\tif value \u003d\u003d 0 or value \u003d\u003d 3:\n\t\treturn [\"Alarms\", \"Info\"]\n\telse:\n\t\treturn [\"Alarms\", \"Info\", \"Commands\"]", - "type": "script" - } - ], - "type": "property" - } - } - }, - "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 - } - } - }, - "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/7f6c388f1336b03dae423dc3995381f3e14349f94fcdc81b3a2d15d7b0f4d7f4 b/.resources/7f6c388f1336b03dae423dc3995381f3e14349f94fcdc81b3a2d15d7b0f4d7f4 deleted file mode 100644 index 495d19becb8bf07f99add47f05af8e8173b09e8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 985 zcmV;~119{5P)h5@*30 zG(-UhLi9;C-7Dd~VFJUGHfBe}P+mFz^+#ivo)?+T zj|-ycMKs)^2ZN&~7{3GdAAoKBH?wPi6TqM~fJf6_W|NPPS^Np~O}H?!7-TjdLs0Hp zBMz9N%tHu?PcUu_cD&i?}w^-aPVvovlV|h z)hi>P@pDEcr}kzT)>qV zUoa=%24;7t``i61aLRkLa>x=@pn^`PLsL@|6IxbQhRn=NHF3hKIqr}zYyT={<<|0P z&W+nICm44O(>Olx6?$D=Oo2)@NoZSJ8;dI}EL6oM)pe=hD{2vkrG5w)b!(o*#hZ6)>>9viW9(Xp3{00000NkvXX Hu0mjfq{z$9 diff --git a/.resources/87e2d895b0d0716520f07a49e48ad0070b51c12c27725fe7d6a9adf7e62ee334 b/.resources/87e2d895b0d0716520f07a49e48ad0070b51c12c27725fe7d6a9adf7e62ee334 deleted file mode 100644 index 0ae774b81305bc30ea02bcb4f2dd0b302e17d0eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28426 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 diff --git a/.resources/8dd0a4b076fdc7af75dee958c28f764f9a89d58de2807e6e9c311eda1bbaf251 b/.resources/8dd0a4b076fdc7af75dee958c28f764f9a89d58de2807e6e9c311eda1bbaf251 deleted file mode 100644 index 307331c08f2449f5ba9e1f29aa599bc4f874dc16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40970 zcmeFZ_cz=B8$PasnzeUpwMMPb8ntVb)>bPBilX-3A#LqiUG}U|O6=N1?V3SJw003n zC5Rw`eB<^0{_y!1KIeRXa86Io5zpuSxF6SjUDtizO*A&tp`+%aCL<%Gd-_D{85!AC zEa``dl7jS!`t3)1WMr?%o@%L^h1&gFq{?zO4@2);7?&Wo%u5De)__ua5{oE&$+T|0 z(e#&{(5!QudFlJa*q7pyhvNs2nS_cftbUKK`;lom2Ws6aescY)$T*+q{kLzwy(J)g zWbGRx0u0TA%!5MmYeH1uM1{?NjYCbxc00Dqr-&Ad&f_l3?ggQn*zvKZ4V8m#=|1-g z8RT>g7hmBC+6#f_n4N3<$zwt`9+u^&F=u*9!T{}XGUOR7Iq;|;Qx8N^@nODUwcDgUB z60xI_9ni!Hv6|LmrK35g4lG=)TWJT{h)6JZG&}8OhfU^(p|TA+Z8Eo1E>6}uXaJpi z6va)=Q)CbSmVV4RIY+d>W^JSJ8@tTYo*J32U|YpWzx^VQ!?wSc2dka`HB#CnE@Glu zWEm2CH#Z)3p9}!J`DW(nvc2mV2u=1o^hkUUeN-JP56pyiEsP9Sx-nGW6_==t?Sfnc zMR7gsKTCt0t#PmGQC_}P7Hvjnmhcy=v_yN2Pr$B&5iumNjlizi%5>VlOU@3OjNDXO zcI(A|GBtGTg@}yljTHt=C@flbpUw)M$x=wRt$z>-mEiV%K)tz6lhv@O0sYbsb#p+k)=?ikbBDq1gZ0nB)b2}Dw~fw6B@i-SSQ?UJ4s5pUG%q~h8{b# zw$Cd~e0!;cWuP9v_CotRz4EI9gi+O1!ab1bhtfVu!xysPQ;Q4IvGd1BS&4^98|gEb zi66vBT+!px(;RJHhVBT)S^Y{=KKS7hE1857S=HUkNI-c9{7DoJw!b*Yv?(b%o7eG@ zSC%x{Jp-=hE7Not)yQ#CE<{mA?O4ez7|A}7p*#c7A+PkH^Zxw|-(V^geso8jOAzIC z2h+;xr*b+OuR0UCeuvj>Qz29Pf2ReszI>9C20rHA>%txiukDIMMYgCcMq3-_Uhh)k z`)(>hCAfvRcIShy`{EmwB>mJtAuLD3I!pUje@4S6oa1s+HZEH1sCG>(LWs;OYZJ^h zL#~MdXr-7ldDwo6tfXQI7*!2WJ5&VkMf3idwiLv0k$DQ4_kqGIb*rr=L_Q`2XsFI9v)=l+J<{juB6!Y9qc+a+w z2<8pS53+qGOM%$|4zOGKTsg3*0;f*}{>fDFByjM~RT4V8odWm6(6F}r&y+yyF+sLl74SgVs`s)DVFgnM{_0k zXc_~~Zp_r-z*)TN;b$~}cmU`qSJ`!|etj1sfVw=8VIfCVajTL0-EdVxASPm&kP}qE zcfN8%Z7%Y#gxBlM%%ce)YUmDeX)jJbxoM1$oJCK13!%&eeBFzCg?I=)6XK?dJzK|v z*A9Og`CL`I_S`itOa2vbi8H`=`l+xiBZO3$1DDTG^0{h}r09t&>uCO$p1}W}y{uok z=PB5q#-U99CHAtMGg^_3BVLcmvh28XQ)OHcK>ZGLkT&{3IdzMgM!kg5(mpaMq5#Z> zTlUQ*ok)`A|4zi!%Eg?mEe>;55P{Bqh~4>)EhL_y{n8>p$LqpsZTPXZuSSvXE!YXA z5KPo@#{(4K7&j(=Q%BRLZ;yE1O++qPz6|94=#Y(@eoo6DgZuAm4<)c5O;r;6YbmMlQasL^u*~M&f+sRQ&_u_&FjIfAlo-7Dg{s3`+g?it`tj;fA9HAx# z()FBjmGUs0nT#5gJO7KBv@R_JIjifEu)6!zyAN`;lT%%`zTAa%F43kGnHs4yZP;^Z zI`ETH?D$%XL;(BAg%9z_$E#SL14~LA(zm1~;H89H9T?(7F>Q6mEp+opSi+S>T>EYn zO<_|u;9-}yiy=F1Dud8;fKle=#XZxd_mTMBRG zGSnIMF1nth3z5HvW;iBKI8uo5n=N0bcms-bG=Xr)*$~9@vuK*?>6RR&Tn4_5;nZ=7 z&qKu}eEMYABWCAu(q$Uq^!mYBjBNhtdjstD3;Cgc633CJ-6ZDi5@UbFY6ogyhedAT(yrEtW}jNrkhCU#vJ|jsAU5z9zcl45T8*iv?Yn8 zHVaCTp4WFTY=JJPVUy7z?0^AN5MeKNNIo>^q?oinJk1G{wtT1 zqzQNi4PY7xqd55~sv7L-9UmX75jTndqK-o#EgdABjJoFSmt-U39X4vyJkqK4r_vl5 zh_oZjqqj=zrz5vbm4Zll*VnO@23e7z&$)nM4;$ixb#CLPnSNr5o z=KBpMF8*?@y*QlrC)TpD=QhXMIq5H%zZ|)C^I=i!7n%Kx4T0;kkzC%~y`G=4kRo9G zsQnUG!k}}g`>#T!Mz{$D1=lQQX!Ad0T2bNL*N^lF;5STykV|0wit$geSX z5o)zn%bvJk-A=;WmTbF*Vx|3l)}I>Z^k3Ta2;RR)cgoAgb+)o9SB#GTk>}D;bIY#W zyk{d?uBFX@c|YP`y-omY*!OEZlZ#v0^4s3wKXZdS{x#?wH@9?E)4{3^cYPqi?eFV~ z2^Ytf`tkx6fj4+NPk&;Jz>WjoDga5}0yBeAEnJ`OuT%BuTEnOsu`2 z{j;;Zcr{N+8?N|s*Rk@~NW}m0iF9eR-jfoW7XoI+LRaY{w=_HE7tz56FMMEll!4jW zpghcv@S;qf!Mh1)CxO~UCD|{u5%%KcF?JURDqqC#AIrrEfRGLh%r)c(zq~hF_zu(> zm(+awI9q8MKT++s@=)~>K0*Ld`$-+~D*qgITbyQzkaHwtvHe6WKYW{Nv2D{^PD0XK zZjmz7BINrOACE#E-gC7t0@v`SUY>(3q?|uW#zK|jsPQ-OzSRRwqZ(YR7HQu=>%e5;YKSQUBRi%n9rt9orl$85=BOjGr9onQ!R}v1*Vh8RzMsZ3P z>IRCS3Qzil<@kx4kc-Vl=7PN#G)X`E2E68nj=oVf9ODh1D-8At|9SILb0Q)yu)_KQ zV8X>0d9UT$;ahTEx4q>iem-v}84RRdf9fCQbMrI8N$)_%QrZI^|9()n7AQn!7xM!FFO4!OVzY11xU z>hbwB#}0VDPY@?BGh=5annl6ZX1N zNY0Sj#lA;@w1}{H?ZJ1su!&y(RnkX(A*-?M%`3D8euYsHhzF^6#f2ELqhz+>;@7F) zznzi<-AZ^~2r?68(ud5$;L2*aa^;PC4tJSYF2?@bEDb!m8E zRIXR^-{1wmq5oJ5wygF_-L%5yt>vyATd{T$car!ygs(-5+2b_`;2j%clZ4t1GzT9T z1P3LM;lzHGt{GDxf$DsC zG6gAMUktn0DPC3e*&Q`x1_8pSl74UgEI9fmcQG37*Fu%_xc}__8;*@sN3ySpw!m(> zTY{eeB(Q1%mlNin6cQFT+dCF_y%!75e-+9W;`4)le_d7L4es4jCDAml9Wb4?gtS`M zJUYv%dAFvOR5FfQmR+oq)f{q$jFRxnUZbgs?j6mBiFl)^gO3t9DX;4$Ok-%t@9-Pl zN*MX0mUZ@{ogL)c^9=}GB<$s5^5*iRPF;Qyy?&h!K{{KM4t~J(A#WS@b$-%ij<=f{ zbuEp5sWG{JGXv6CLcR858M!WhiS0R*oT%|<B-k(=bCR(BvvQ^C^(5E$e<+Zx@ZL5lffv z-8?)~Dr4Q}$SB>dFH$db^q@+Pc<^B2VM)aKj=fsRhLuB!@iPt;lHX>x_CPJhJSDw= z=H~0#Nl`swrFoU6DNoRh-j{(j!^Qd`^dyPH&da2#WE3s9S$o#rG;p&W$~T(k_&S+U z{OeZGC+&f^=%!lRDHYsT`5n9C_Sx<<<>^h_lqXAPbJuodRZgh9$PDe*a4Ei&k=&=> z!?-^^d5K%({r+Kud`R)&QS`v0$7lnt`{=gU1B2Yqi7GQ?2QS?*F}+U`$E`yui10yl zBqlJERV*=h;i?*upRNUGs6-f8n#;61;=i zwQno|WIM|8{F3rj)#o2w(*b$%J4)SX zYmpR09V{Vh`IXsYIhN1d)V2%Ijk8iJ3yUyjs;3v+HOoU`Hm)_v?GyGF)6!?hN$Bk= z%b)ggAP5ZFEJJL!MYgUJFBCF@ayq6iIkQl3itxLHrB!L6*V_gR_Zhf+Kp$2*oENg8 zPPW$?z{h`vqr36B-ENCL;Sw$ps=WuL6#IjJ|;UaY};f3cr^Hn_Knt=qYdt+ulUZVPd3Ow!#~taOK8nONYnHC!c-rAWt)-DVpn zbx`UsZ6}1px#U54pT1QL2Uu9(OG^!86O&y!IZf`2H!Vq6&N2}-4Hz{@srmYO`kx0w zR|U661~sxCUi=fCQaN5|q&xcN*}CMfbzJ_s13C+OzdnAiJkLKGCnq#9rQqk`TSKb2 zL^@=x*LDZ)6e+Xt<)~z65cpPc$+wXIa6fOR(G0FnJl2P2D+s#(^6lo=S1j;gu3*Ft zrYC-qla-wXdGm?Hs@DrBCjPrSJ$^~}*<#cy5U@Hx(z&sH3+fo{zcw0g8@eKoPHs6e<5^pMQ z6&*oy!a_b1=sp_}6(UahcwvYJ206h``N!?ZF6&kVNwasg75qJSmbn@tv!=~qMEg!~ z9hb-5C>T@4^UQg_EYq%Cdv53%Z=BYc51HuD_7X&zihLw3Dri= zIccHq`L@S(R1e;#9F4^pBwYl!TwMF?71<&V2hM%kQ?7C$LZLu&6gFQ}w5 zd0cOd>?8FxLLCjbO@KErKI*8k(Cc$Q*j_YjEsW7Y=b_riRFStUhEQ1l`l>gjvd!PtOdoLXY<|XHUt>U#ByWtv*-7SAJy<5EjVxa^)q^{ z6miPL9^XNqyWZY8Dy(gDJ~%5jbb9N7DoVtGYEx8ec&r{AT`bD%XY z%DBab)o_}Dpf(|L_+EEeGFA{3%VZ`aTXzi!%d;-2$s|yoe z9|M`?5ZWuF#&cx|=R&jWb)z-46T@J>TAi2$jxoiNH19~t9aTXTl`L#ENdi^%`WZRm zlA;FN_Te%FCi3Y^9-aw!p1`ug9@y)SC7FzIVJAXhjRWE+J$#}OxOgC1_@9bRZN%aZ zn>cFxVANW-UuP_S;0rM?-FfMl2-*e;WF)>;>=Y}c&K(#=BRnBQ43Fk$q)zI%RX!Y&AEpSEhygC z!382wh%bAD=cF+|IvG-n8h^gXRqByV9KnRPo`WW(R+be48^cJp&^-DxF@8R#uI8|? z5tf_c95&edMGN;G(C->0bW76++F<>SJKV{M8_+lC@R0#4TbaxI>r%toab(P1b|Vbx z3W5+;+~$*+S(`WaU)@kHYJ2if9`Nml-1XW?$VB6HuFleatFBh-6Y8sM;%J3{9=ZOS zt7QU(d47YO<0{d6M~nBXPw^|af{qzswWOZm{5pGop|b#r0q0r}=3-Nez}P$C%Lum$ z2>L&w+vVt(kaEf`K?C^ExC94y3MPm*ZpZs&UbM$y=hpZyhxpsS`9w~R6g*fxZJi5^QVIB9o^OkOz8kU_g!IOa%lqJ9?H)6a zF!-Z)^O^0sixDfYZ^%_MhU9Jx^^-ai2l2d7p~t_Gu;xTF`cOKNCU9-n(RM1ylWSfY zeA$$d#jZGcR}GpE&a*1++#~MM6DL(pdg#3~!as`@UL2OoXWps~TXYq&=(%)cB zXT6lR7x)!DCJL&z^_V6vjA~rq;`m|RDGeU!G)t{&dA{B5mdA_D8v2F-7d9by58lPg zBy|xfD>{~NHH(p?t0#2V+}C_~oZJx^9D|GIIV_S(+PqY{s5tekU+nz$*Wi@0bTfNYb{i2p^-$0`fvzxWcg=jxnGwK!|tyK{IeuWgCJ*9 zM=+xsTW#haBZnKRxL)4Lj(L(jva9ew>5D6x{$hn5q3qh{rI|$qXNw;69BVpjSOOt$ zKUUd+oR&j=FQVjH+~7xVS;egLdqd+dg^t8&*2@>f3k-1y0biz?I>2)YRrvp+0mZ(`SEXPMI1wAT@6d&Q2wSs@HZ& zj)=tlx9rOy_!r4Nj)Ff8bJflJ)UTC&SYj-;1@v>1>|qy^$!gVk96oJU!_Jq6$!QTr zA>ygWf zwJ=imAF^~fWgH!YgL^9aMoQN^!k`DNKIz6Unr4|0S1-Dj30+6S;Z+~_@(jvAAH~I8 z;xfw$agis>zADwug_oUoMCTsYodq{w4F4hDl~FpKq=+pW`F=&&N7F$}r9uqhmtM!8 zVPt*hVf(koIa7zT6beAhBu%wFHz#KsO)`+=#gYm#bsO`M54XXj4nA*7#G~)whF~V{)H`YGDOdel z&%eBiK%cHl)2Ow`u-!>fQL#pIRvD@A_U&qB(X16bSXZFIs^hCAiNi)w)7$ac&p)+Y zcH>V=wrNI{Bc>m-+s?deg(h1=gto1Or!STB5jbK(1slbTE14F|1WnVXh1;|hM3GGX z{D4owJ5r&3n;U;b2Nb&b8B`KZ87hv$MI| zxj_;{m7&YY5$`?HXi3GAKhJrb#;nJOfLT3wYbj5j0sTqg>m)x@dhl#oAC@{v&&|Zm zN&8t|sI*ak&RN1vEGMFQF?gPBJnog+%ByQRb*#&?NvpA_Hv-i=NeZRZjERpy>gpWu zK&&pUo;VfA;3T=BD1h^qW0HjR>;7VukCWBxnXGneT4D?Pk9k%Ry{u&))|iU3?%|i) zCybECOA(mGgZJt7ecz8s_*&j3nljSiF7<@kqU$a-KN|&k<(v0quQ$9xB_c)7z7$;b z)@R2K*%LNmhZiYWz0%-vv4lG|WcN82M0NC~=6 zqk(R-k+Adu}E{Z3vNGz(CDn-#(lSr-#W9lB#Ztr zH}B)K%-6{@&?Qg0$<_Kz4bI)Tui^Xg8`kN$&Ma%eUp6~Y^w|dNEFdo#{aeBts8h`) zUDl^ljhc6+^bS|zl1m@fJK71k4;;Wz0mJz*ujJpoE+VR?l-~@uWAM&g#hVa+{xY zGM{7Bo5QcmK$X`s0=hVZytwW|Y2tapUy1>7K!)kd38oIolvGimVBz_jFx8nZzlj1t zIx26Qg;#mygE?_p=GXfOO6;d>nc3669sFn`S=CC1`mER>b4gO)YkaU2wy+kj z>go{olO3C^J>nVAvbD-KY?wXHSE4G|pq+^S9dA57_=NE}!cwiWmey=zS#`l%lC}_2 zEYqXEVcj<5p0!tRsbld8=2xM~dBQ=Sri5;7J_m1CNhzT-WlZlr4u7fn_*ouMdfD(o zkh^dWY<2ZB8}_8YjxS+1mf;9p`hjn#JcfzVV3U3>|G5 zmp%og;i`(>B{-^on%+*c3`~ z0^OXhx5h9`KfC=gOW+Nwe{+E6)h-vhApI0>`sZp!p0z=4kwepz&z>M?i>O;*S+zS( z(uFxW?kQZci4?Ea7*GdKmmc!61ryui+@Uk&6mM_Xzt-(f@>E~26!q}7EoT6oFZU5- zE!}xj$HUi@Z&~(jtnm^<8_}(BFlSlNy<0okZT}iZ+nrJsT<#uKZ9d_FuTPl9#`jB5 zrw@8Hezx*Pa%;?mnw^*En+V@;uRwC7os>VAkZSPDlri-DlxwhCLUFd!#jZGe28iiu zkCMLA57le4*gQJO?CzA+bqQ$Mw~y^G9K+*u+$aW(O6~js^7Wm@N#L%R;nzArcA*0EDFWeEor3bv>rJIq`aOIwWtvX5 z+}vGtkNxi0@e*=GZwO%ydyz)=JN>xmm28LL<9NbEsQmerRdLoX0Tl9T*HJI+F z2Sw3wKWyHx);wfhpnk+JxbZdeq_!WdGFiN*d(z z_4pe{+ib)ZTz9k|bIW)qdN}gdr2BlR`o|AQ7uhTyCtFNFS&e3&&g;LI$7QcT-k@T zNQ5xI=~w{WiZ)k=-LQ$G1Rtw#%+9^8B15dc*VvP{kwSK3 zCHHj%im1rxJJ}m3^pB7>B1fjNlww_o>?^{irlwxmxz!Hp-+f5kK!a}&3lE}sWfNi_ z_k=YzGj|Bg`x@=@?FG43Z$_EYF%RoazNrKilTSTXyL9J(Vk=&l61KM1*I`w#O?Y&Ros}DzvRoCfbS!KZ}DLnYUMT*Rwwl zfK@N=^~FJ|%`%Qk z`X}-x@^(CXaLrDH!cM52K(rwxTXBwFN~RINW@*Hf%QjDAWa5&J%C^b))!H)GH-g^6 zP$cvksfu^5L1zTF@cxWrT1tK+tiw^1{sK{X&M=Daq70+dD;*jpeWeqcKc4P1G^cV+ zTALwx3$<)BCUmOILs%Hmzr_^N96npA+=g~?Nr-nWqySBTjzIA4<_)!zo}BZsPjScf zc7~3&eOgy+j{AlE)RwQ*nZJsV{Pt(@&d}b|f8oQj4I{-e&=;qKIb+p)8izJpA4-R{ zDRyl5kG5~3wN&N3KBGgA8}C&Xya)EW9yk}$2i!v@gg?Dq69u~*BF($@8K|nzSXko{AlbnO<*rb;NC&qo+s0{X-8$flDX1;W!+@0YbZqV(Pg84Rk%D^o1LRO`uAToN-;R+ZjfH zrt?fGfL^Q}%~c4nwZ4_v_I&cwBpKg&Ro&FqWT*-7_wrtNoEgu{6@~yP@6lJ9Z`M$8 zh6fuR9tAm)MS+FeU(6mc9&w2uEX8p5^<)Ha2LA1MGco!XO!*iox*RDAUc6yjjL7|a zD}Ls|fW~fn*BmHiy?%M)rc2ST=bvEBlR(K&8^K-tF)2FTol}|yoru=Fi-)&03L>^A zLuE@3`}9p*P@|v`S&N9osc1sw>9g#w-hmP@o6I6hd$)?2mC@o0W;Sb;;VrotdWVZp z9u7Zw?YjfnbL;(Q;0ksdfsv+4{Z<*n)>#^Uzn#@~$Cb*S+y#eLMCjj2aut^5NFapD zb|;*%X`=0C-2~0wik+0!&4{w156Vv(t-c1ahrbRQW*ntX?oEn1`sLaZa2G}JmZ)K; zPUGj%CMKdvR*S^alqOmwyJ7D_cv4662gA4@K{sC&v9AuPit$`j!~t1jv{r1<{+WoE ze$^B9s`X

t>Rx`_wbh@15?g#5oD;j?qBwm1ak7yH)&9pMsS#*Dve`rT*BLxzE*tGTX$LJtSUlFCdrnGyL76F)($ zPxn(vGCDk|^dSj2Ax+kwIuv+LzkdBHB&kDZA@cqn-ZpAKMmZ@csCqAqm(|Xn^1Y4U zY}3+0=zJsJR@9wfao5{I+trp98-5nrTmphmh_9Qv(;v#ITC% zhGl|Bzj>BnHQtX9Jn?@7?u2&HV@Pm^t|cG9v}QQ_Uh_;C*OFZgGKK4IyW+l81PF9X zzvA!^Iy^d>_gVh-hT@964X(SLb+F8Qk{Z{o2n`o2_1o|QhUh-MLNAUuSCFpeQo|I{u#e?n)XFHV<%P4pEN~@5z32MD@npZc-IG71Q?P#gMUl~bLtyB_y zXMVhH>|7sEm5=VQ3N2#QA?ebA(gj`Fz-C97ornhJ3VrCK(ZCxo6lM$_*XcpOZLk|D zGx5c=WcV!u3LcVZN&CRFV~zd%%@WHRk^X8UHaiR5tB7!=-EXGMxq_mJuGQ`U2fFRR ziF5Y)3CPPbxv=yZfRu}#^Lv!GCT&3Us<0#zLsGC+sUQ+c_H!=VP5e>pk4g^gfuUnc z6NHX&xJj8boaW;o&uS49J7(va}iXIw)v~yQ_NU z_=%J_!GhX(ms~FdMeRxFUjv`t2hkoMzDbfhvYs6P`;6ePuC}Gc(Y4$mCwc-RsroOA zD+j5#-quku?OR_EUOm&KEZM&hO`>!TGKAb8?Dbijok=f&Hmr>_-H)qiY+dy&F`>6G zQ>7!vl`Xw|Z+3=^cQEo%HTbUKL!h3$SFN|m>QX-9@208sEHBYn0u_1j&sEK1k*~ir zqfS!7!f#P<)?je_&7&EvCGU>i9AoHfA!xF5+0o+oU5jtYO+{AQiK{s=!yy3o*lHQd zCX97&cRnFeQtr<)F5&0mRYZctwl(tLvvYA;+*^+q?_I)N{0fH!ytq>+=rVqRH_nA2 zEFuS`6Qg|Q7b)opJ0uv9%dvORO6IN`X|Iu9Z;#7JSyh2vHSYP%8~D{hBQK!v&qzsq zk+k%JB^BU!i7bPw^%=tGD~N5QD484V1*Arf~jz_qxUQ_^1aGExHB9D|J@Ckh$g zO8x9o4=R38S_m>?OzQK5rA{SwCQ(+p#CiKsG`~(F{sMODtWE`1$%SGM6W7%?1Tj}s zh89%+Ca$hnj&iJU=*@H`17#BGpU=MJD9{8xJP6v_ZmN0D!amZ#ijBMrAR~Gq`~k^` zrv8Sr%Sj13&)Fapx%s`!vPhBVRtsKLxUrC>SCrmD*BcSvdUC`G*8lpQh+lRXpT9?G z%F9alVlKVin)U{}R3bY}q$Sn){ zB7;`GGYz(zT$Pp&%9zI;?W+c0r=?~_OXZV#iUzA@pyQ(oX&PB(r;c_``7TnyDOZL& zCZ20)Jy`iV>cWIw^QC=i^=wc+@rmmTv1<;oCF0_Dw*OKTcNd-#c({%Rr3>4=+XU?O zke3k&{tu|<)ZSix*5_P!m zqaJsT>6RGdM)!km{BDU$T}t}8Lvf-Tz=#E(u@;}JXR5|WOU8$p36* zz-eiCMdU=!X0YoED$t~yuBA|HqH!d?vgC5CLHqAJuJS=C?J=b4DN^YhA3P&&lQn}h z0)#Zla2nQgTYs3zrRv%*`x+VYl~V^lfX#Na5<*$c(`9UgYd+UawT!ksDZE_I@d1c< zG-${4d|rr>;UhIq2hc*fRgc>jJoA!z+8w`F7SzW9*}WiACy zG7KZD-(@N*vWT^<3F8_p@Sy|VgFmB88U_9I?P!~B8GFFz*JJM5ILUqZ<6XI>HRjgZ zlrI4MP?t-r;|O^QKz zP$G-PLlS8n`w43*LYlj^8_#!nxb=ZBqaQ7ar|Q8h~&9~yW0;h2D*RtUf89gsU8*o{@{Zp_&CX1UaFxh6rOq}8GbY5OdE74EFLBjT$J7MUk+lhOx z_=<_@lJ$?6uFwV{iD$1q*%&ruY?^Yg1~fg%^y${7X6Gne>sOYc234KwmP|}Fv`5)~ z2v?`AnZ4tX{6;FjH#i+~?n^K+I~h~7lf8aQ_a+;}eL5P+i^8<-YE)1cn5Rahgjkf! zwX$PAhTW-rBU8}#pms`Z9EZQjpIm+&P<3Cd&F?wrIdFKVL;D*=Q@#DpeX?$&uATl) z#b4Xet` zj{a{>igA)k5(MgijSlCFpU(DALB9u*+f;HN|5p6qF*|1rOcs4|>R6C8HIgo-W6iT0 zveh!A8#bwaLzXuz%-*eaSO4%a;h_sbEe3DQsvN?_+Trc#WULGq)lYAC9xP_Sj>LzT z-$9We9e0x}p|VDZ@9>~9L^kid#&|S*WmBwS=izoBE}+f77)CHlGbc-0RYjx^uwi9l z@gQi4>zPGMyE!vPzI`esr$=33!_=sgMY{XYD#LLp+7=K$g1k1KgAxR&c>vTx=!(q( zIZZ6Tby}53hi(Bl)C7O3xmQH>HEDU_)&5x~}6`ww*NQ?pjs> zhAY!q83}$I%(R#`pEsME4#o=WaxVb?EzCWts=AC^@ zev)o3HZreszalZWiI%(Pl~%L z7W5)+zE+IsbB#B5yv%|(%Y!n1*>pC|F^{>)2jbY|SiY^q2xhybgNzo>i^J>ZBx;0c z<}9=Aop$_{h!4L1-a<2)Y%)05b+T$)l4qfDyd73+HUby ztf#1G#m`544*unw*?g{lv5f0|+P)-veKMqawPONe(8AAebX_b9NTD_KE@6cUw#MPg zFH#lvH2nLD z?av@|AACidtKn$U-6>OwiNrl?O(5?Kwo*9tl@#Sfky3AdE1v+6Iwkk%21oCo`z+WP z0MZ~xrG+c#V~EjWB{H)0y#0P=yK~LX7S7V*Q@~1X{CL-zl}QaV6$8p zUc3|MKwLjRx$N(`WN&6mK|}hcUsxsLqef@Q^Z+sJ&qdY=0E&9dYax`%mUaD~0gr+3 zRZ+%DQ9lVgfZ+R)Af2&*8aeBp35OH^WAZJLed}v>bbt7-%iLP267qF*fHi>$!1&PcQ4p&5z_J-t^AKMlj6n~&#Nur`b zsS-%bpgfQIZIHxgIEo(-?a;wTXxZf8!DF1XJT1FjR+(MFFPBe@_r)bLQnHSvDj!)Dv{i); zC+?a6wA4G@rE_NuVpwehip>}@?Kp;`^g8MQTTJKiFdtciA^d;2&HA(S@*AI5q3x(rH=zL}f z>>5B0^Z0Z)*kG@My)ArM!n9Vx;>VBJKeuL*xHv~Be}6uVKeYvDv~BCsFk*xBgEres zR~6#Rh8vi$OrLd=BisxX|CVxh(rQX$Hhcvr-uUJ_IAb;Hzg1OqaoDj%q3n3x%!sFH zwPe0Co_)DeP`n|Lev*me%8rvwo7}kL<6EPVh^a<2IVsWqnJv0?HLp8L-Hf?Md>0gR zSEHnx2+InonfT=gluigEr&PzNbuop@QHB(rFM}~BG#<0e^D)8pWAkZt6pMM(x9AvR z0W`0ItY~H0S)R0CX+zij$#sK2yy~sz{I{h`QuFvn7c}AOL^e+SqLsI#Cgigj|KA0f z4+}flbrYnDp%bqchf-x9x$B zOY02JtfsA?ROT9X(XVA6eO3oGN;U53^>4?r+dbU;ArobThV0CeSzU7hv~Ly5dJA5^ z&nV^si;L?e>-A&Ir=~zl2Tk-jiBR6wRR7+KIg?=kXUcG$^kPU`UAM&s+?XN@^o1xvioDOxpyb6!d|(sn{e_evXh%QCg^STUw9)GQl1@yxYK z^Hf^`_~qtiWjhOKQFrVo-L_QFXS+z18{7A}oazU_b23(JjyyasFP3@-{kk|dh3Scm zajH~J)y=;vBO4Bwe9qdfVn%s8#CKzIHF{qe6VI%&m9+G6yv~ud@$Ui! zCpa&@=Mp>8)S5RmdLpY8hwLz}{4@DnI`b6)`bvVvI1&&daxDw5u6w!OT-W-^*PQ(x zk<))BBvKq(*zSHWVFBh`fHF3cVylGb)wau!7Q$i;?8Y*;{zUbhM}OzSG0{%x3bl4U z0Z+?b2c}Y4t#X&W9k2t?j>;}yx^rwj8a+K-j}x9oTZxVf-X9m)w_0@4REzlJT+li@ zz7=Xsn8>VfUMzUJkl}nWtq1VJJ7ur`3_`2`Gr|bw93!SXY*99nx3U;47yJ`^Q`k2x zRqj$(QyYBUU;F7ZDmWyty-~(Pd69N7LKG*;1_-s>%AgI~{4GNUM6)6=p+ibJlRP0^ zG-U;1h~O~W`eWIZN}clFe9=(Z`|I&6|J#6S`?4C$9nFLdr)hmVeS4d}aGND)(2?%d zZ5}00YjJLAcu0P1PH4ffC?@t#agR;`Sq3Gjce32f(at{^Rs{R=RxGFDsMoI}Y{ayn z!DYIlVFgZlQ~f`UsYv3uzv03*`DA{D?@EYkp*TXQGW+QmyB(NRmw!X-$CPyN55@J* zn)ALp_tfs}V!F{oq;AfvIK5VlQFodD(|36Q-f+?wTVH-TC^wInU5HL7>|R_QVF!YU zKq_SJZLeE zgM7oeDo7b==PT8~dMuN2!_rVD;$9p*gjZlW!T)NbkRIQY(b*W_i^oDz_*lyq>ETwo zW_qbcbC#7?wR7&>Pmz>!v+Z}i-Ll{b+-$qfINUEdTE8RkZ>a6pAtzfPmJy5ih$*3F zBGf8ZuZIv@o8Kq<@S!{=8(ws|ch>z@3buMsq&^s4E0s5jn}}z^5-{D69ZusP?#f%X zCQ=?+dy#=l0{=QMaJBY788}fsq}|kwr&Qh))nc`s{&eA|vo;sCr=(@oWT%g8Slrb; zj1bfXn_kQQ+T(_a?)UKQPFjjt<$n(J9xzXk63`C+|50_`@l=Oz+|Nj4Q;4kW?7fa- zm9hyLiIBbb9@!EK*^XpK_TF1@IAzNY$DYTY&wcv+e$VrI{^y+U_dfT1-PiiOFBjLg z^)@c(=54Nb689VhpXTq&ozUEI1$tA)fw7(%m!qJLyjXd?AxoLUE5tMSt9g&lqW;TK zbVNVmG&i-E3bO2UCyMWM*CaXmEIu3pH@O9#@w_QalK6zK1)JLJAiRDeayVr{?dgxr znBUJ!Y^ip5fx7qL>qcc7my&;e>+w&%JkOI$6vEhy8Hi?=Ql9hgE%^$4I?dpeIC1x45aYk5jF2A6Vkf$n&%{B8kvmnuMi>6!EWQz`CCqjz9A;G z3GbLN9Lb!<;VX3v%40nZ3D285-+aVQsRf^qB2ClcjR@CJ&1WG*6@~g{R+<0W%szSN zWZ}O$E)e?h8VyG=lKVL3UjLHx4#W(nd3-?^5x$$$kZfota7zRzr0LyT8&zIcn)bXG zwre>W|8B$*`uHh4!WpnH95rwWg0MT3RD238$@5w2Z4|~+yCJx|nEG`|S3Y?4@0=nS zkv&lprpJ{eqg>w&#V>EFvaU*KH-qtcQnW5lo#kq%vHj*xrYy6Nn+~_Wze^08Pa253 z&VA035iJpWqgQ*;_g&$4VRG~M`VA~D#dFr*__UG!;KdxerQ9 z)C#VuU7N26HVpKTQQi~W#Qlyy8-CbaUf(SMM8DY@$wertyig0!N$WT>yUZ%Oj@DYT zu8qZ^0Xs8xoh9IXb{DZtw265ancqJ@laC{R#!?^Y_S^cg-@@K)_J?L5(|rMY#VUJ; zcUTTyj6TumPQQAv^@GiTsUuY5$)Kh)Xg*W;wWEQW?D4s+2 za*QS)WB0P$#7*Zvx$*01#(>0k=2Fv8Gu`FpVaKWKXLClLrKd+0A9Ob^v5v=2jFD$M z=b7Yv+%!uyx<~lcMBawK&{FvjgTnKqPikb~S6`)%5k&HHS=Ut<5ZoFa_B2Ov;GGVN z&Nnyxj&T@mEgnFVW;W#iyXU;2^IRL)TJr~ohR^k9%Zs;M5l=2 zeoi?F*0Fk8%3umhk4eme$Zn4~{UX zKio8wKAHg}EhV$#D+#L!k;m3I&;i1{TG!bplG(3|9-SwqWN{BQD#Kc7#k9-~5~m4}EzrS#wve4Eyv-@L}Am3ovP*5VK$X zDl2gJ#+%|pUrG@h2ii)=U40ACnwSUCoZ*s1PO0EroUh|Q(+mJ5Q35NmY5Dmq{h6CX1ywSGA!mDEwhL?CoU`4ps%P z`nT0!mgYy4EdUK+$ZOhKxa`f5T*P=a_i6DM4Nzgr4sD+XS0!T1~fz$|ICb3{5mZUt!6zjNj<@I$}IdL zfb9_FPKf*6oHs$ejfMApHP!yog{cu%yE|!9XmKwlu!JzaWH!)ALgC%{x=`VaVcxEb zY{;`^p5dE)q{}0{CrM~kxkH~PEf+3p$fMyS3M#`*1N^q5jB@SylhzaaMe0n~Os43@ zsA?|GIu>sSDMHH5`7e4uy@H$xnWmM8exFI^`)2Q(7=~OmMC{b~y~;9erS@|*ulN6V zO+9$jFvT}iln~P)Ao@Wf=J$|TvjFaYt<3J?@;BL!@74akW4lEN;bwe1CZkPUaikQa z{Dg~s1Ffagw~HEMq$c2M?38ofEr)6IKv*X8t_jNhKZ)=JK=ud5x?3Z6G!r+Ug7{!u zxbnp&A&JFrEE2&F8Xlb`KGqlDOBvhyg)n;Lc%8YVqicP`W4 zS|M(8+iaQ_rYTt>rawnhG>Z7NzA=!!==P)P10*Ly7Mojz5uZPvlpo(|SL$w#Wb`X- zFr~U&Yf28%5LzT3;Fq?SbH}Yfd{rqS3k_}2eni94*z%ACzA4QcJ&xiFXkI$949?^j z=c zW1Co&co-dKgm|jIn<>e8wU>>CStQ-vX#N%waT=Iy+IrY;_vBEW2Td#@-<5w@+3j-0 zP+xozm9py5dAq>yxyK*t0@kgwD95^4kJ*-8|J@y+RGdgdoVTtdy{i4R>{;JMYrquL z6s{058kh>%TB+3RY|Tpb-)wnT@R1;iCDito4gG+Sl3vkv6V5DIyP-Z8<^4PyZ#kx( z0hRh=d98o%ZPe8#P6DcYIpJ^U*^t5%-MMUk^*aYvU;o{x-maal)rj}u4~MKPs@pi9 z{gb1kRdcptqur{)A73tohZ$veZ}+y^EZ82oeXyY#>o&NqqMu;QnlYB5=x(ATr0|}< z??7$6IWou!Zb-c>E^T=7#lD^5tOUg4A4AO2o*P$wboseFKSBV}ml4Fqj3>E2-($_P zp^nLM7^`!1Pd>OJizuN)x*sI z1$YENqG%&Ik@nAY4Sm-0MERJBOsJZce)&56vv`pjF zAUIt(nYfOf=e|MZF7K|Wvyyh(UKp<(#hboQ{V#TI&=taIPQN-8>bus5Poj+38 zr6EQ~M5Z1c5o_tM#2IsfAe{v(l_OuF$By6FI^18%n|cvmK}v9x^>?nu3!VI*_#PRI zdS>|u)z1SS#eZK+xoz(jA9CC(H5vjsqH)t%|k7bVXh9)KG||!<#W5k@mpeM)#+wwd|yDRyHvJl#_S&E?c@|% zk4clkfobU*i8!BZ+8kbF!=sqHsP#I(Q6~oE%A(W!m1|w#iIs?P%c6Ty`-FVXe((9* zZbOjy%ClYQP&JxCWKvYA!H-aWcTM^x7=zU3cT9_!VRgpzc6|`_zn6k!54fn+A~{d;PV(X{arGc99UFjiTU({l z_W%#aEY=lcqt7V0Urrk0K^vG-SH5fF*h8{OP=}8O;Dq&%pi1^W#QChQQ_&H0H{E)$ zVV?#t1TOjqrmcQo!*qo7;g`cDvYHyr?kJA8uhT zX*D9axZhxIIB^eSW2OW_rVjBnX@(?KjFbPNz8y^~SHX*XsIYvQbsFIy=mgRUU7Twbwr5Wx`y ziUh6;u%?|aEP(|^eqVgSb&8`Z6G3vi@j5sl|G`Svuq6mPs4q9(p=PlpKM0l$6kfL1 zm#jg*&HD{Ml}{~8p}gbYN9$=9B5`JH+d$USx>;H|PuAT<`Nk^M^Wpxmu!hDy>Ih2U zkEB#GhBxg{FG!Ypn)ye2lZ?&yeNg`O+$BUen?73;&2*%$1#V9#yTK zUAkEYNpu@`Re!z?yT$ebNP~cm8(;*|gfp8y+{uWBH`Y&0CSQ@glVhWn>5u2>W@&R} zB=Kk48}yS%KtTA7f7=~WI61DHr6xO44O(Q64ygaCY?lmwd0OsimXUHIFj0B--W!TK z_#I#)Q%aIS&Eumb6p8CXa^}MZZoof2a@MI)6H=n5QvorSd{K$~gvZ67x`!76`$TIo zVbSmXswbuB(5oK)mcJXK-0Y*BIh7SU;;0~e&X#oc)BI<&cc=Y57Lks-w(&XlIbW89 znS;D3i;UFiqY0}H>h`7T<^g3eF>Um{lzMh%VPAigh<8E z_uiw1ag$wzK?YzYuCd8kx-U!vYJVkCLl2NZ-eZ4J*c;@ZI;Mk&TB=Hul=d!??Ui`r z7wqN(|y8f+RAnJ!suQv3qR_zN#9PFFqCpBUIfqc?#f z$Hw$tE8?CdoqNFX_Cq|&)sa4d8`6%Pk_%Li`1<{F<0Qukky6hboaAv40hn|fX3mSK z^S0CIHmloVm%rp?M=1lU%F~7V3Cb@~XC=md`#tt;wYnq^*xu~LT!~4KyMCSK@7YVv z$hzp!c_!bdQXSe-Dl@HIo8bARRkr2wR>R*l_k~)s_5)L5E+X)Yh%n>dN6l#Ve4;%3 zN^fQ)rA$L|V5q-jA=m(JFloplqj@T&Xr?eMGGf<)ek?}Fc)%}^1PNLRf1IS+QajX9 z)#LCY%Pn)}n>06HzLQP#-ESBnnYtUHbdZWq-Z3;7sjRwKr+1DsGPADcX&{KJLoofG ztE+RUa+j)P!{@Hwx&8QD(dLZZhmdk^X9xcyS+|YS3(d&;23SKO+XV1+PATbA||o?z}~lyi5^UP z{_D(XxGODqY+6raED7rl$?aM>#uU}(n$`cbD#xRZ!r5EGBQw4q2oZ4Hc>yx%X)P&`% zXB>E$hMVt}pbwM5Z#jn3$?oKt{NHcIr3QlKlP&ys$v?XzJ!hl14qBV)qNU2k{vB+% zE9gfD9a6*{-KI>tlMMOKKab8bE0b>AqRXXMNo$Y2;bUNAs>uk`xKX54h zmD-^ELWcf{@Z4o-Y5?9fnpuUL&@b21ETNOBSO+<-h_mk%ms%tCo$UG}py+sI_#wf> zT43LF4$I~X3x@6pS=UKecPg*63)KADOqO+d{;1TmX5NTu(-$M@tDf6VsqCDS|L^n# z15SrFkX;^|IrryRXSc<5j%NINR{Y8njTX{0M^_L<^mIO)ehuJcsGT&8MrQR%8!uBA z-Az*J7D;}P_4zUH1&^9s^zjmWqUHhqf`py%BFAQv`s>IU$E3ekcwqk^JLS6l#**El z`K<|zHs0c>D+suYcfDQ@`rmq|aDU$fkr2Q7hx4rTm^HCq@hn~^fO^2f4a(cKpik}o zMBQd-lSrV8V5y7a?}bmGhscOzrR48X+gqniw1bW$)AH{8p0_vc(z@%1JOg0Eb@g3z za^XM=N{YNhsU+%TGcSrJKS(;+;9jGA;x29TV6*u$3lyRqpwSOl*#Befwc*OW@$1}d z%MJM(q`JG6ztXRC3^rgmCXn>dl(IV>k#`bsFVS8H1Ha=(R?f1QTL}Q{CGsYexb7yY zF=drCXVIjxFkn*ccJK;z<6Hmf1`21Cy>65((Z0&%Jm8(!Q25^tZ%!Z%oA=?X71I85v9ItxTUfvrP;H-Jkw`|h-NLi$Xu|J)&9 zAW@uGA)rm)Cnyp3z4Pb!;+5cmK=WvY71B^?wFWM~zJFXK$JY4EB7di7#${SvT*Y9c zISKX7fEnhOIaDlr5peU&|2TCd{KP)toP$jCXFp;!U(7217~v;K3|8qLw5SAZ$EWaQ z1Z2OTa=HtV8G8Fqpz>?@=8KUv1|%9ES@!PBga+f+h`$X6s4oA{DU>4d7lVa<+8Nv~qgb)^RD zS$p<`r=Gy$NKsc-BDKCJP4lyzLe#ea1S^%&w#Y+yYye>lGoAq$qPUtF03L9qee^9a zwHxKveMt_0QZ=21M?KA$J+1J7;x_^nTaX#&f^<3vliYLjf-#t_HHV ze!?fT;zWPtuNVy=4Vw)OJ~;IgPOnV4NzMiTAtLKxJ!GhwGD2Z}^GTTM*N4cTC3O~Jw zDtHJ|RM*u}pzdh$)C=QL2dnc{!T9^kEC2o@LSLxXo$ zWB`{fCh|-?@{D@<@t7lTW_PU52H{a(uWC5z? z%|AFJW2kqPxm#2UJrfd7v#JRSK<4(QmvBLZT_^0huytap@>zGf zUq^sF=i>n*-|ex#1vdaWZhL~R09?_FqS=;=0BS*js)~7CEcD;cVnp(`91hpcf*NnS zEg|W}J7T{tzCgk|ON&N|j0>3>i9I!a4L?RBTnDKg$#O;8&Iaw{S%YEa#zRToCtvQy zpF`g-@}tS0HPCIO8uPVqd?1J3g;7V^}zT%u&oKzz^owt4AQVUPMEt9R$7Hz;v8214E zbM}yn#p6ZMAo>r#6Iqhp|npxqo zk7vSqr9XvU)yl!QJ_kS9JTG>d9H(pj*0$q_Tjni}VjSrLoL6mVdrWX*(7z zZX^#N;}66d@N1Fb+WI!0sE5NGb62qeBConu4YW0i3IqqI(J7 z_*71?9<*aTOfzqNHRiu`VB6FJUcN8&L?BAgxQ%lN;#^kTUpuCwGpiGNSp_>PF<-aP zGBqL&zZBc99{F?AOSbm=SM=hD2O1vr!YY&x!%Mxa^?c(c>vATcNmuzKNPZJizM)?E z?&xnj!ql5!@^}w+!)Jf^K$IZDpDN3H-QQGJhZ|LZa{g;x6 zfQKc+P~O(lzfs3huOd@)t*A)2+yF5CZ0M!lL$8H*_NLrGCk7C%xXSdUPVpy~Xa?N{ z>_h}e?$1e3!LDe$gw5B?<3-6b2a3@U5ASVT&|T@#>2ZS~IU1!21sR*apCV zO=$kUFgykyC>#S4!8a4On?|3xREh7@FQvVTsd%?x<1Sfey6ZV(#~K}Z=1zi=zceQ2 zf_K|p=x=a6fpZGEO>;0T^I|yiRgj_@k530_a3$Bh?{((C_e^+|%`bz76{WMpeK~2> zs8Uv{B(O|6~NLp*;rNRFzw6^QgJ-@@suN ze#i1+jX&ex+wUzL+t5R4Id@N%`F>-)2}IFU^y{$W6qa6D13GfcpFUUqo=e9--z(>H zJ!ISBc{(Nt6y)Ay0zEi)+L^g3B z44$_F{jx`yR}ZJbnpMkkZ+R3S+uK9txTAFJeKd2`jcaFa7!A z0pQM>RCN1kE}e!K?NUHSWlZ)zos(M~7X@Lt(z=R&N>F(1I=E5#6?A)6&8AwGrclgt zHhQ*f_Rdbv)vg?_T5O-J7nH355HzCth^Kzx@^qVo!>EP|h(k@~mhFV37W%Q6Tw957BjW^3%^RoPeK-E80Cn#8oq63>=eU zC}mJ*>)dItXlRC|~ zsMQQtzmvEdFz#X@=w?k#>S%O5;w*GWa$dYfa9uFfoVLa7%8LZt^6yK9u=#S+~~y@lrPoy4^}NeqY2qP&ml8}%xO(9M41oY%miFC(-G z1c30V?aBe35$X*|*GlY&GcD7(Q|!i{*l9ai>L;Nv7y7ka0Uw9Irq}g5S=ZK2Pk_02 zYhV~qBMF9d^SxSC!A8jtCFFlpgpWPN;?Xe8A^VT3$iywyK&B)v8Zx+7wr zsfR41MAep&9(GG|w(DDFjsXJigKb$fHe#ay-3TzE0!xUykP!c$t0bM89s3 z)fuPN@{ubHmGO_NS;YrgdVsL1S~lPvM~9RHwC;;GS1z(A)df=DeGd|{W@b^a6FUr+ zLl?nF^xP9$=kxV~x}!5g*X;FZuOrc})J9JbobAp5y`B&yQQB&G7m=-kNUw-sm2y>7 zA75a<0B_na{=SDJ-OU%8pmLEiAkW-x&WHp~3Ze$1oGq)_^qg@vf7%sc=?1R2tAg80 z@7M3l-kLw1uU#eIh*f;7n|HT`D1Q@_?9A0^hYEIX;s zWTP-y#qwHhgtwh&_SIaa>e8f{r`ww7kz|5G3&4mL6gONy z6j2>Gkn4ebdsA6P9C+Hb4SneHgK-uOb*}Z(HUh;K+<{NoDXUuk7t`~tzH9RIe^||# z*Ru9P*=BAzh`n-baX&#*d+ib1;kWgeg6Ks+e&k!$YW(@pDKnGwdYq=6)s^NPix5Yk zx2CPoH?PO1%Lm*lYoL8(OQf_zYBIOy(r$F1eGmzdSU&hohn9iImS&`^&Nc>-2lI4n z$YiEyMkJ&3g-LC$-ZI)*ui?1rq!Jf?T`hG zC(njln|_o0lKJSxLK1yhYre4rHfaXy% z(>8GX5=<)amTa4fZBUH%*0y3R6+~x9XmpLd%{_bW>wWRYW)n__`uUY^(2)OQ z!fg>WZQu&Zx2?6XhTFiB-dix;ThV~)(yG8;sXwkuRr=eHg1&ixROeMO*AK&o-8Fw8 zqW3awP@q|x!?_g0>=$2h5?M;?D`XqlI&>vs?_&wFm;49QzfPJY>FB&y=ReQ((pQOC z_@4WV7A0!rR?)g9P@g0ERtF%nG$lRr;aE0bNoXdej&~|>U5?=o$n(}) zqf~}d#ukZ&Uf=6MehDG6A>?SARfise)tQR)PGldmKkx+1RC|r64hG+y221=ntG!|e zmH}0(w@S;@Vse*pKKw~o|AO7l-t3J9P{Cribsv;@yb%*A`h*h$@yO0%(ml1>ii3$b z5``XMF$*YU<9|VlrGu~=67&30aIc?ubI&??{yJS%uZ+`Or6#bJ@QSiX3wBy ztr-s|KX2D*6rSd~EQ{F9vifyy%&nWXXVQPLn<+R7=VPmND;1pizQ#3Sr7EN|TbN6=9eNW-LZm_vXvVNA5 zm4c{r*g;}J^_1I66h^Tt>G-A+ZNjTKg%Dq^?m`$@E6UYchD(xv7lU=ubJ8TD#=w$Q zknASIe2%bm1wGnhdh~~(OK%HRy2St1WyTJGp$ptWt)n%$$$5S-+}%j~K94XqGiQqg ztURkMU6t0BRU{GS@-WE*D{@_ey3CEP0@^QtP&cC54k3otNBLj{6RNBP3#OMF>29R# zWL=J%b&B2uVG&ua@+aeTgMM=sr5J72;aT|2{9NX(Da|o|dU}~^?Rynm*!s8c8CA^4 zXvkm%KT0}C2_LQhT-CMSIdqGqbT@=q%81NMtNN`_u zli+65wXt1CsI3mc2L%Mhm#1~I8ht(IB}E(BT+aj5&_L_61FfucZ5Rp#;$6hX~fT-{6bBEF{`9z z+#oZv1|(`70P#d@2?*VMEy84`SL9rNMCLf|Q;8 zIk)_AO%l9rPA_bu%~NDj>fc{1PEA@hwf7K)U@?DoRKy|sC6+9AC&|MFQKIi>vdMR44eLrkv3Cg1ReEIk{ibf_Ia!yj6 zNY-?_c=o=iu#f6amKrQ);R3Wt05&b4ekfbdx*SrjYRy044UNIUbj9{4MO`4=qC&4y zBBU^Rrx*9x7o!v~^SItk3q8WU7@R{+;z$i=Fhn1H?AnOIaB!85L(Q4qq-B}3$nJre zFRSjc4+L3NQ}`H{Bxq~kPI_5sWQU<4D5BpCK06JoE_h_m9(x%NlH2tt)`Bv4*ig8v zYoJ{5%3=h48I;Bbx%;iwS<8r$y(zo7VCX z9NvW6rpA6UGRj}fPfjKocp<$zG+Lx3n1tI0F(RJ+bQ`x+=;7Kja|Ze8*%ce*ufi{o z(2S?V($BDd+|lfm=Uag)h5mRw$fr&$gfE-a=sd2dsM*5bZogB2A-gM~+_EY`jm@O+ z;fHwal#f-$ueCRshmEe~^67ToX4W;ZCmH2dm4emTs|L4b;9KFah-VLK#yl)4y7^jzu5X$&aH z(iLc@OoI_0p031FEt{iZdZl*6>5pwyASel<@)UVNVM;>0Ixt&QZv!8CS=@g{B zoA(`8l*#uCQ&W$n-VtdWgYD-}^Iv^3I&=vH~<=2ZsQW zCM@_npz&~+uz12vJ1{wR_Ij`<2hzGYXVLM|&S7gzn zh5`V{Ku+S~hrZf6qhsqXE&|Tb1vLh8jt0uivpKxoW@AjTmYbQ0Z*0wU?bc!%O7c+9 z!Dhxljk8Q~Tr|ZwZxg6TNq7&Zv-0MWFy(gS9$ns~U2zlN4KjW7M}d&tWZgF$t!GD5 zC0S~c+n!^aao?_SjDMUE(l$Od6>A4wxrqZ`P7T+OR$C6dHPX6I-c8S_GsPiRBAMcp zMp$FiPg>K4J5HqA-iDqPM%ldYx<7c)bRo}+_n*yxi_#|2cr3RouBAm5ypEUuvKe|R zyf>}lmFFSFy7Q$oh@syn089sTJBFiP4dDrKG%ePQej#tg`w+Tj!TvqMJD9m;1Y1oh zkbPzGBx}x^&Qc0{hbrzlu~ZCBzw2Z&7>xNSVi=HT!q1|48rjQ21S^IIhBklFpu-8G zitnASB}|yoi|Go4gbYyWTJ`7oo~^Tdh{j3Q-Si5~lIUUD<9AoN7-Kq1e_s=LtQ2;! z>R_!bjkV6CD17h|lRTMedzrP;_ifuQe$5ejeQI{#n|CiVhxK9RqQBE&STEspZb$E` z8kWt?#(p65P^R(bh=m<)drgI8QQVNkRtb#~IlL zbF;1GM!@#eWWdmnOnAG@xW$;f6ugQ!vD-=LU3^BNdVy%#iL93c8+?Rsv8Gu!76(jD z5%#7vB>OSVQDqW{yYJV!McK0N7tkE&bBQkpyqiEzQ*QA3=&NZlSOWT8P_I2WdjI>^;L?>Ta z=>zmT`-aZyv0G=0rXM6BcO9=hQ_9;w!Vme8wnIRUL-{hF++|(3z%y+XB@rx@4Qr<@ zi}8<|0Ch5$y$@=Nb$T&=K2T1eBY96nRRR&!u!+~=d>Etw$7Y%h^X?R!2A9$cT8o5i z6Pd2?BhuVgVXHnV1^ZnL`r|#Vgme(GJB~h8Q+Iq?r`J<0(YyW@H8w$OjD8sIq+Q6S z)Dc{la?JNnp-rM+e&bu4--}bKqEdQchw8e!mN}Q_TIyHw2Iil24(_dodh<+xk_ZI( z4&&ER(U|vTTi|ik;o;h+_13@#$g$g9&CH5dA?NNslc}govJ_Y+1j{H@BA)KRr<}Rk zMXHl?)BFpU@IiC9fr}ik@NouJ(SvGl+LlXf>wYg&8zrBCO)V{#w?R0Vvgz$`pN6+2 zHvT-m)MSJ9PrPC=%9n|1DcNe?{|Uf>c?jQ1Dq@~Otjz*z9}?o@*&X!9N~4+_nd27e z-sAfhW#K=AbnIOH{mpsbq2V|q?aX&)>Z=d2avoFMWuVT|a&JH3*wO26?w;D4e;%F8 zWw{OGS%aWz3u4BdTwK=b14Xp=(l}-~qN_UMzn0h}w-Z^fP|jV=jTY$pJ#f@F4G-l! zK5X$ZZr&uAMd~!MUMR#oQh?5)l+jBonUER-7&(=I5}hA;ni!ZU@R4cq(kc6K+aD=$ z*G7j0LkMf;&=mX~K#<5BrrwE`@EO;cR|9)fPJ>2moZ)%jMGmRVuT^%;n8@?dM1JHa z|2TIIgRZTxP$wfSWcr;6j;bO@X=(_gT4N9NR~5o5&1M*-%@*Bb;ma}y2Iny(b+-ROZe8fStkke+!QwejS&?B_M06n7atZK=s)28_Q zxVMXz1-C@D%_QV#Qa)*_&^Fv#G5-A7CC&)G3OA&!YH)u3e3wu5Guge3ekMJUiKsPe zOU6;r)l|nFtP?Fy#FRE(-4?Obs3BSTgWUe53Nn*>;TZhmm~iYYtd>)EKWHLm#nAbxW|nUj z%baM-rONEjcHND=rMIsaM3$(%ApLe?8>ILlDdGvd_=K5wLrMi#*8wdZWZG}RZfVmRvef)M16H!Kt@G)tH_~w+LQC_YHErabfIU0m zL!|&%;PqMa&C%7OW3S&0D4!}2p+@ps5_Bw6-0-olD|7v4>;24ztV^muVT%^7-T9qv6ifcD#OBI(>LY8j~% zT0A&I{cHyCLa+^zO8d>(6S8x|$=?q95|p~mgTcytx>CN&w}QoE@O<9qz_HNi5|oE` z#>5o}FZ(glaDD*YX^J35N5U{EvMz3WyvJjTZnF>(f@n0Oy9A9OzT$4r)S>zz{ssFo zdn~}~TKVkV&hE`Z0UPjTO{sEl%EZCSx>I$@cf^!Mvm#D_ZJ~m3(IbZy?xgl5KQuD@ zwz-6mfN40xansnfq5GJQ^`P(sJj7z&%go~F%sxHfV!ErCAwc2&!A+u?*y1S|aOS8Z zterpP>h|So<-6NzHOpGAW}5WBO-{M^nS*&9!@?q^)Mr(8p+F^1=gL=z$jk0xyAHAV zd7)p0V{}=N(jTr#-*Wy5i`^u9B26|G{#A}!G-)m{4jt@OfgovRlLR^O*wc@*uId&NnM-qV2?TmymeVy4lRHIBiCsLW3 z7Tc9#C#O1Wn?G4P53(h>C>4v%mp~|+RnjG6+$pj9?nrBcd<8nYO&oJKmaII0T5`d^ zf`@``)v?=ht~3x)at*DT2g&(c#b;({b9K|b%U3f@V7DS#U(84Ej>_N`vG9!&Yz(Ke zQX-VV5`CaOuq)cK7HZgO+k!zdy^5_pT22neXS0y3HDvYS)gHEw;Hx4eMwH^|*=-k} zJbQ};n;!FEBI%pin;i_HuUSvL+-oQ&^yyy5vrJE%`9LFD;1;Iw)5nTRV--tt`BB(NwDJ$TYn%x78WTQNOaHu#(6Ep2U2g)B716XW)33#1 zwx1Dw=}S9Xk_NSHxQ+!1J+TuZ)Rp*&3;Pr(IfawQo#y?`tk29Ma?gobcL@p+6P;p zMC;FdRi3k6lC$S{riINJk5kH~43l=gEq3}d18v(66_ne_Pj^U50^Ten=dNtV7lerZ znn{5}R=e6yLMa64^5(PK24R0EJtR>JeJK5uB^VP1!E=^sEx9K-5<se0;`J7sGKB zgc$0xR)1Md0-G+OY;Psz^p!n->}@uGw=0M6*N9BS=LyswpRR(;tEj8|4_072&~x6l zOPAFP>+9`llN8;!|E&3%V!^$T;g7&=;UrzVLr9$%n6Q2uDVnyRXH4a$Gz(cwqVw;B z%1ZPr$b4k6BMbj|>#&o2DAhTPjLc`VD2{FIpxKJuNwLf=ap=iw@!hD8eO$bUp`vv( z)9Daz7ia}J3m-b|=DN1pTBy0&z+WJVe<7FjaV^$n) z`dgQh=4JDN=vTw7Tl77OPh_=!G!>^iUW*7WB&?EerJ7}W58xeS$VAQCD%p#5khd(4 zM)o!Ds6r^>Tz}eb)V*q{9rLf?=9z*%qcM=;1qT9av~J?=3MBgs(r>$F9XHI>|LQ9N z`*GCj-V_eq>h-zLB(cS)i3jzu@0-uwY11~q(IYm0qSc-WCOb9Tzf3F$umxa9Qfl zbbQHu#641OlCG0XbG3T#>g?Kii4LCaC))|RS+8!236tt(R(uf{-MC&}7zgQF&_wDN z3}t#xrHbc0nDLdv3YyqYS1rPKE!XntWKhMaJfK0CMN?yWS_f&=sjEtaSl%I^`sn-9 z*R`o68RL7XbFK1~6kFpXtJ)@2SReG@0qMd|IdoEtu6WK!j z>y1Xg9qz&5(8;lfK5s+VoCi+n3kOu@t{)qHrj=(pB+mb>v3Oehf=>S0@>_LK-!q=x zjB@{!Y$Y=#SazGjIXhV zR4Fb>MQZ9XxjP&50>lO}wL1=;0c_w1<>R8%q2fZct}4$YPG(#WijsC)FJceZa^iBq zTwu<5X^$=1GjA?ZWNN@S9Zn&GRsyP`h%=A6f6vSu45?XFk^MoyA1W!)QYddZbYNT7 zA`-ESw53$AOAg06nn*0&yO6Y-EcXsJ(|xq?!c?9(@bKe_Md8k4I9S|G6Q~ao4~73n z5J7tTdMLWmvUQ9!<2*6h>i#L}q=T>Rt&b?2SP>K(Kb1Bg9BfDjFOEr9GLEhIufONy zL7c?VN(xEGv2;RQ`(q!93j`LKkr39a&QgUaBZ*LTbv1+_EGoKpSW7-E&PYB2706?h zYPlo|CMS1xVNs*HXUX+CQR+}r8qtUs3cnZl?$Tj(|*@Ns@M3;~s^se)0!RUrjT6*&Ve*5}Uaoi6RvD+R9U^g2(2R!~WX|yib!7 z)}@`D!5qCy93#hrM$torIb!O3@RCge@a~%g9Ii=@5Q=go5J}p-8GGSZa$YH&!AmS@ zSKzi3Gmxv96TY%qvB$y+M`cmm?4`~{$-BOr&d3PXob{Vxg4Z?udoN}cl8&eZv1tx- z-cX?p1k((vNwFQtEDxcxys;~_lR6Cwy&5fPjwDR0P{*5;`WSvB%M8uNbn z(BjynD9dgGneI3=&nYJr*mP=m`T-Aw*OKR5i>b zmOt_qEOtqL`#7uV?>t9)OL-uHcMd(7y!y8SO-;8Mja|9yPNpMK<+e2q@C0Ar;VyF} zPVnhUG9H0E{D4#|EiLVo&*pdCtGVqgOBmzU?-0q=I)^!z_hF<`hk_RHA5snQNjdeM z7}2>DEUucVP`OU24!%y4#9o1U2(2^eH(yr<8}LRY-w1-fCr@ddsQlw1-lKyrC`Gc^z``7Q(K!R8`Re&V|bvD)e^_o~MK6j2JJKD&}reNLrwRPU- zVe}NaY7qFZ$mWe|k#D5VXOJkLn&~G>q267k4o1ED7RGc-h)+zDl<{K_0!p^SfnX>h zKj6T7WaXTDwN-@}>PUO@^Eb9!fdAv3r(xl@FZle=537NF%~utj6}n@V@0)A#q`)MR zgIlS&V1KD^HJpge?(4g!Z;(}1I&@uELOktD`>Ffh&PY9K+!=&>zqwaQLu~1uA=Ecm zJWJ}?Q@y`45H2A6d<8Y_Y^4X8=`-w?=)uhaQYJ8%FGW{#B?v8Vcy+ubcnw{eyyXf` zBe?(hm6IglQtsfwP&Ba{>7Z9)4+Js*&5rq4L0iMabOqU>qt$!xm zLW=D0$w`KV`M_ThI)vp=GPBl%CXoQvh5I5=-;!~r+&NjOR+P!3>sQSf^UC(gsgc59FVdo zWH1H6JT~S7!H{TVReNQi5RqOAUKBY0epg&Ap}sy_gs8NEj2mrs$5j2-1xB_*D@`YZ zS6M{H4|g`zAeORqjEcj5Kg@H-vXjHrpl8c7C{*qkwrYrtRftmnlgl}beI=uAZ^H`|P;yJw(hT!mWj z5vV=?G&HTeKHpre@G>+8A)Bk!iuXgE1+Kbi%uUnG#9M(|X7mHk7}%q}62Yc|Qp|a& z<;vQweXdJRGpuq+3-QLe4!gBD0}p>cTU8**Q;9s=Sl3@Y^1B9ADg@)@h|^bDnb#0= zwTCrPWNZ}uR=C>_i^Ra)fSL-($%xKjM@MV9VfR{4$%Zb95}!e9k$EN=0P~f9Xane!tlG>hT>fwO>zpA<2gy=|OA4 zg9&dsa|qYq5WLaq){A(R2NbffaE6O6mOAebE5M2Gud`+zy~EpgOHV1^)c0)H4&1Ve zY0{yBmOO6(Zp)1(wbD>Ww_DIn)CLy(HX295&Dw)eqtI4QaoPf$L)#r zrAJ5=KuLoZ4VbX|X0AL-OOWAvxbbAm> z9sV+$Bil`87_yI5DkrJt$T%pvmziC;~_ksK;hzuiiVNKqLy2co)a zSIe9;Ehhw13e7PG3@uGT4N-YMc>jWDt>>3#t@!2qaMoeLKA-bBd++ya@BOUo&@Rl7 z=s6Fv0B5N_v`V61Foxp^+OM4S(&I9-5W)OPa_OmF`6K1(HM_}Ck+0lM4nO?S zZUiH~-xQ@#*l}Z!)nhtus6Op%?c2U=20o-9mQX{qc?p6v*O~iPZbu{j;YY z=<{p!e?znbR_kH#Glls46Za=;>d%yZzuEz!m?}k%P_7&6d~{FIm!=(H;FQlsyO==! zB;w%Ls2yj$j*!G6oABGo>niVs49ofuKe$!1hEJo00}^nPJ)blOb;XA z=<)FlG7Z#7K^=-2vkOd>>ujT(X&g^8OIYrV13;p#ws*YOY6WI&xf;V{wp>1$tJ>ne zE-WYCW?nqS^^cu@X~?V(0^#n@&2uJ;v}>YdfEje~hblLz8dy2}KM{*{Iek+>)pzZ% z7b5@MW@nZ3h(V_-rCLX|o!`gKdqq=E*q3wZ&b9mvb4oW>0T)L^8|~(JhQ9k|1}3Lg zJUcA$NMPmT2MM9IkIDw43!W8Eo=lRDK7F5-X4n&5pqKX3O~W$Ods`f>W&8wDC;YUG zyiUwT4OrMkTeeC?kdKLtYM{)U2M@k1va=`?X%j<-n8AL_fq#A}RZoKdyw$wp-qgKK z=&%j``%X*?){i>2*HG6Rn}4YmYF~ukE1jcM2tOJ z=+n(3TjT6tAV6P$Zoi>tBdSuy2XgOxm%eTf`G@tR~10Z7k1o^HOyP z+?5u+3NKp6A%5E*UZ;Q@a;)m-h~U|#`Via_zpy*^2<@re%H5B_IvuqV;zB9n6CjON zEiAW_BLDkdwssW^;++t<%f3f#nx0v872yN?jE|EhoI1=L%gw}WwPVJch_f;W)6gmV?vTHv*?#0GM-M@7bP48>lSfdSHY`4><$We@j!iI8c;5p{q(9|`dC?aaXBA# z(b?a%agPH5XMfv|hc+mO+FOqskYoPp4JRq59QJo4(W%tI!mX;wUFFcWacgE){o9RyjEVEh*Ajk+g+)j` z8|W?Ic9?W;zwn;K0%05W%c1iMw(zQRD>T-PuIqN0UyXo=U{Y_wI5TJnJ^IOp03c0J)>k=vmXS|$Ld5o2j(k)58Bkk`p@09h2e@%UO znNuJ0yPVQV&{Bws09tZwb3{dF_dwk0NRh2hI^T?Oo!)k%tlPuZIVx{~qJX@#kj=B+ zBuWu2sawKOOp>tksLD9A>F_y6LaI_F;_6ghYA8cPUYox(HIxZR=4L*}bI}E`;)z{j zt=eaDC1LZQgZOt0blS^gRlkDbeUT7wx@PRFuCB4hywxnLlG;bs^r!VrvYbokcZlw60BxU$nE zrAAeG6c22)@!`k-iD-hx9)}TIHdQH%%EqRhD@{+{>l|a^d;Pm*H)2ug$)}Z%5lehc zuZGoNesQ(j>425`uJWLgvjGWzPQ&)(mf03n73`&cJ6;RtX6=4>LVgc|88P}Fi%Ivm zFN~X`?M=?+N)P9sUrIFsM}Wbm3$pYKkxaKxK?W1TLP4HxeT^u?O*1hR?152>693^X z5jeSXFO%GC>lITUN#AY`ldh^f^9@Cp{TLLu2#x>EO)jv$HV>XDoX+6q3_^CreZiwB-9qEL#A*1fX6_V1cBRp zS$ZX51Oknt$H9Si6w$_8$?~L-~ct7&*wQE+WHN3Sf{P0TJ;T|nrif3axnI2k`Vv zw{ca#>_}mY9=-qoi3Z<6c_|-c6P%=tI;;gus9@B`4=5>ofC9P5YlR)wK;R-0$lP~P zgP`#5-et}c_aI<{_S$b1{nwo8zyxvd+NDbqW-LhgxpOo^HN82WZz z^JOw;B9fXLhWOJ`^j zAi#?iRu8Qlpn!9HfLFF57MgVvd;YrtIn3@rWuAP(kKu-(&fFuSmtbZtI#jDP0XK8r zK7ODh9)qsmA;0!4%x6d0nFg$mXZo|gWT)2xyo|1R;Pp-b&m>zF1oo5$Sly$6s{sic z)rR;6&lF3?szyvQ=tZE=+*sPPzLG@&c$2NU(8zKi!V|I}E1Bo|BbC(;>02sYQR)ZX z69k;5in5`*ze|O80`63G9_gP9wH`-`b&{`oY1^>pX1R(4_K$!=$;Q#$U0JFXTB5)N3nnv#>!Oz$6*; zr!}+hHL+I8^K(iW@u2cTFno5B$9PH4pk~KRBSBEtt#kd`gW}qS&#`SmRsZCQ2i7#A zf4`8AKnG~FN`19T+ttT+4>;Oug&%|bygpMK4Osxd*0uLcbG+@+mCun}Uo0Z-b{thY zCz@9|rhd*TB;E!c;oG?~y(W9>&u63dg_^VDqW2{Q$Y~ZmE=XO?4lZt;(&GSVz#(Y( z&CQ@p->BAZ_d_=phLcoScxWno7wv=$LI_j~-|4)o(P9>~{)&`*A#6M$g9@5ZD*ZbH z{1Qvr_eW(l5N&HS+KWe8f)jh+7SrBSf_!{?Ck9zln6_O1)y$z!Nc zs+d8M?poNGKQWGe_OI#olIiLh)`l@NIarQS9&O&TqPGdxgI=f|@D|re83zZClHIc4 z>(#yc6h1_H7CE<;j1msBmIeKL)04!NWa~)G#Imp^tq+c$(+tzagH0-k8WNEle_8uG zr)P1;zf00rc4__j?2_QY;)5NrlNS&c$o3JfF=^h`!Gm@Ma>)3&Al}Gj?caFh{W|jc&x&f;cL*~%S*D0}4ZUjy}>TK5qYy#}{Sd_pDps0&Wnja_u-JDqK;ZWs$BwUuO1)ayHC{BINXm2z>&$J%O|MRDzdxjr&8}mPaWc`Y*TZ zw&~sTB>E~il?aQliTK>d|M6l!NG0ZobJ&jn+R2j8nwcVrXfYpMWN_kswt?Fs9fC;& zFw|7Kyx&Q2T8uFTwlp8t`kjZ>cZkPJ@cakJP|g(pbt;`sU$rv4AFBFP>?D7DnNY9_ z6(KW4o!_5WWzLKDIIQH0B+w&u>P6xU^5#fzdItjGW1;&{f1b7^VRx7e3|VJKp9CAJ tVbYo>Vo3aT_+^4$tH9y^)&v}he9Xqi+haaEaWdfJaNOlsvE9X6{{wzQg;4+i diff --git a/.resources/932f01fbfdb982d53e4e431b865337ec5556a57aafb8bc40d29834e8c6f8e0ae b/.resources/932f01fbfdb982d53e4e431b865337ec5556a57aafb8bc40d29834e8c6f8e0ae deleted file mode 100644 index 00458fbcc146f9c4bd8ea35299ee16bfed7a352b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27928 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 diff --git a/.resources/93e8397024064ec7682f9308143395f74fc1d268d081d8a53528fac1ff3fbf69 b/.resources/93e8397024064ec7682f9308143395f74fc1d268d081d8a53528fac1ff3fbf69 deleted file mode 100644 index 9f81e6a0..00000000 --- a/.resources/93e8397024064ec7682f9308143395f74fc1d268d081d8a53528fac1ff3fbf69 +++ /dev/null @@ -1,4667 +0,0 @@ -{ - "custom": {}, - "params": {}, - "props": { - "defaultSize": { - "height": 1080, - "width": 1920 - } - }, - "root": { - "children": [ - { - "children": [ - { - "children": [ - { - "children": [ - { - "children": [ - { - "meta": { - "name": "Label_0" - }, - "position": { - "basis": "10px" - }, - "type": "ia.display.label" - }, - { - "custom": { - "Severity": "High", - "background_on": "false" - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tpriority \u003d \u0027high\u0027\n\t# Copy and toggle the filter\n\tpriorities \u003d dict(self.parent.custom.priorities)\n\tpriorities[priority] \u003d not priorities.get(priority, False)\n\tself.parent.custom.priorities \u003d priorities\n\t\n\tself.custom.background_on \u003d \"true\" if priorities[priority] else \"false\"" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button_0" - }, - "position": { - "basis": "120px" - }, - "propConfig": { - "props.style.classes": { - "binding": { - "config": { - "expression": "if({this.custom.background_on}\u003d\"false\",0,\r\nif({session.custom.colours.colour_impaired},2,1))" - }, - "transforms": [ - { - "fallback": "", - "inputType": "scalar", - "mappings": [ - { - "input": 0, - "output": "" - }, - { - "input": 1, - "output": "Alarms-Styles/High" - }, - { - "input": 2, - "output": "Alarms-Styles/Alt-Colours/High" - } - ], - "outputType": "style-list", - "type": "map" - } - ], - "type": "expr" - } - } - }, - "props": { - "image": { - "icon": { - "path": "material/priority_high" - } - }, - "primary": false, - "style": { - "margin": 15 - }, - "text": "High" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "reset-filters", - "pageScope": true, - "script": "\tbackground \u003d \"false\"\n\tseverity \u003d payload[\"reset\"]\n\tif severity \u003d\u003d \"false\":\n\t\tbackground \u003d \"false\"\n\telse:\n\t\tbackground \u003d \"true\"\n\tself.custom.background_on \u003d background", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.button" - }, - { - "meta": { - "name": "Label_1" - }, - "position": { - "basis": "10px" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Label_4" - }, - "position": { - "basis": "10px" - }, - "type": "ia.display.label" - }, - { - "custom": { - "Severity": "Medium", - "background_on": "false" - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tpriority \u003d \u0027medium\u0027\n\t# Copy and toggle the filter\n\tpriorities \u003d dict(self.parent.custom.priorities)\n\tpriorities[priority] \u003d not priorities.get(priority, False)\n\tself.parent.custom.priorities \u003d priorities\n\t\n\tself.custom.background_on \u003d \"true\" if priorities[priority] else \"false\"" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button_1" - }, - "position": { - "basis": "120px" - }, - "propConfig": { - "props.style.classes": { - "binding": { - "config": { - "expression": "if({this.custom.background_on}\u003d\"false\",0,\r\nif({session.custom.colours.colour_impaired},2,1))" - }, - "transforms": [ - { - "fallback": "Buttons/PB_1", - "inputType": "scalar", - "mappings": [ - { - "input": 0, - "output": "" - }, - { - "input": 1, - "output": "Alarms-Styles/Medium" - }, - { - "input": 2, - "output": "Alarms-Styles/Alt-Colours/Medium" - } - ], - "outputType": "style-list", - "type": "map" - } - ], - "type": "expr" - } - } - }, - "props": { - "image": { - "icon": { - "path": "material/priority_high" - } - }, - "primary": false, - "style": { - "margin": 15 - }, - "text": "Medium" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "reset-filters", - "pageScope": true, - "script": "\tbackground \u003d \"false\"\n\tseverity \u003d payload[\"reset\"]\n\tif severity \u003d\u003d \"false\":\n\t\tbackground \u003d \"false\"\n\telse:\n\t\tbackground \u003d \"true\"\n\tself.custom.background_on \u003d background", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.button" - }, - { - "meta": { - "name": "Label_2" - }, - "position": { - "basis": "10px" - }, - "type": "ia.display.label" - }, - { - "custom": { - "Severity": "Low", - "background_on": "false" - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tpriority \u003d \u0027low\u0027\n\t# Copy and toggle the filter\n\tpriorities \u003d dict(self.parent.custom.priorities)\n\tpriorities[priority] \u003d not priorities.get(priority, False)\n\tself.parent.custom.priorities \u003d priorities\n\t\n\tself.custom.background_on \u003d \"true\" if priorities[priority] else \"false\"" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button_2" - }, - "position": { - "basis": "120px" - }, - "propConfig": { - "props.style.classes": { - "binding": { - "config": { - "expression": "if({this.custom.background_on}\u003d\"false\",0,\r\nif({session.custom.colours.colour_impaired},2,1))" - }, - "transforms": [ - { - "fallback": "Buttons/PB_1", - "inputType": "scalar", - "mappings": [ - { - "input": 0, - "output": "" - }, - { - "input": 1, - "output": "Alarms-Styles/Low" - }, - { - "input": 2, - "output": "Alarms-Styles/Alt-Colours/Low" - } - ], - "outputType": "style-list", - "type": "map" - } - ], - "type": "expr" - } - } - }, - "props": { - "image": { - "icon": { - "path": "material/low_priority" - } - }, - "primary": false, - "style": { - "margin": 15 - }, - "text": "Low" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "reset-filters", - "pageScope": true, - "script": "\tbackground \u003d \"false\"\n\tseverity \u003d payload[\"reset\"]\n\tif severity \u003d\u003d \"false\":\n\t\tbackground \u003d \"false\"\n\telse:\n\t\tbackground \u003d \"true\"\n\tself.custom.background_on \u003d background", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.button" - }, - { - "meta": { - "name": "Label_3" - }, - "position": { - "basis": "10px" - }, - "type": "ia.display.label" - }, - { - "custom": { - "background_on": "false" - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tpriority \u003d \u0027diagnostic\u0027\n\n\tpriorities \u003d dict(self.parent.custom.priorities)\n\tpriorities[priority] \u003d not priorities.get(priority, False)\n\tself.parent.custom.priorities \u003d priorities\n\t\n\tself.custom.background_on \u003d \"true\" if priorities[priority] else \"false\"" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button_3" - }, - "position": { - "basis": "120px" - }, - "propConfig": { - "props.style.classes": { - "binding": { - "config": { - "expression": "if({this.custom.background_on}\u003d\"false\",0,\r\nif({session.custom.colours.colour_impaired},2,1))" - }, - "transforms": [ - { - "fallback": "Buttons/PB_1", - "inputType": "scalar", - "mappings": [ - { - "input": 0, - "output": "" - }, - { - "input": 1, - "output": "Alarms-Styles/Diagnostic" - }, - { - "input": 2, - "output": "Alarms-Styles/Alt-Colours/Diagnostic" - } - ], - "outputType": "style-list", - "type": "map" - } - ], - "type": "expr" - } - } - }, - "props": { - "image": { - "icon": { - "path": "material/warning" - } - }, - "primary": false, - "style": { - "margin": 15 - }, - "text": "Diagnostic" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "reset-filters", - "pageScope": true, - "script": "\t# implement your handler here\n\tbackground \u003d \"false\"\n\tseverity \u003d payload[\"reset\"]\n\tif severity \u003d\u003d \"false\":\n\t\tbackground \u003d \"false\"\n\telse:\n\t\tbackground \u003d \"true\"\n\tself.custom.background_on \u003d background", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.button" - } - ], - "custom": { - "priorities": { - "diagnostic": false, - "high": false, - "low": false, - "medium": false - } - }, - "events": { - "system": { - "onStartup": { - "config": { - "script": "\tself.custom.priorities \u003d {\n\t \"diagnostic\": False,\n\t \"low\": False,\n\t \"medium\": False,\n\t \"high\": False,\n\t}" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "FlexContainer" - }, - "position": { - "basis": "700px", - "shrink": 0 - }, - "props": { - "style": { - "padding": 0 - } - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "meta": { - "name": "Label" - }, - "position": { - "basis": "20px" - }, - "type": "ia.display.label" - }, - { - "custom": { - "Severity": "Critical", - "background_on": "false" - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tpayload \u003d {}\n\tfilter_on \u003d \"false\"\n\tpayload[\"reset\"] \u003d filter_on\n\tsystem.perspective.sendMessage(\"reset-filters\", payload \u003dpayload, scope \u003d \"page\")\n\tdefault_priorities \u003d {\n\t \"diagnostic\": False,\n\t \"low\": False,\n\t \"medium\": False,\n\t \"high\": False,\n\t \"critical\": False\n\t}\n\tself.parent.parent.parent.getChild(\"FlexContainer_0\").getChild(\"Table\").props.filter.text \u003d \"\"\n\tself.parent.parent.getChild(\"FlexContainer\").custom.priorities \u003d default_priorities" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button" - }, - "position": { - "basis": "120px" - }, - "props": { - "image": { - "icon": { - "color": "#000000", - "path": "material/clear" - } - }, - "primary": false, - "style": { - "margin": 15 - }, - "text": "Reset" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "button-severity-indicator", - "pageScope": true, - "script": "\tbackground \u003d \"false\"\n\tseverity \u003d payload[\"severity\"]\n\tbutton_severity \u003d self.custom.Severity\n\tif severity \u003d\u003d button_severity:\n\t\tbackground \u003d \"true\"\n\telse:\n\t\tbackground \u003d \"false\"\n\t\n\tself.custom.background_on \u003d background\n\t", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.button" - }, - { - "meta": { - "name": "Label_2" - }, - "position": { - "basis": "10px" - }, - "type": "ia.display.label" - }, - { - "custom": { - "Severity": "High", - "background_on": "true", - "update_on": false - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tfrom datetime import datetime\n\ttry:\n\t # Get table data\n\t data \u003d self.parent.parent.parent.getChild(\"FlexContainer_0\").getChild(\"Table\").props.data\n\t \n\t column_order \u003d [\n\t \"ID\",\n\t \"StartTimestamp\", \n\t \"Duration\",\n\t \"Priority\",\n\t \"Location\",\n\t \"Description\",\n\t \"Tag\"\n\t ]\n\t\n\t # CSV header\n\t csv_content \u003d \",\".join(column_order) + \"\\n\"\n\t \n\t def unwrap(v):\n\t\t\tif hasattr(v, \u0027value\u0027):\n\t\t\t\treturn str(v.value)\n\t \t\n\t\t\treturn v\n\t \n\t if data and len(data) \u003e 0:\n\t for item in data:\n\t row_data \u003d []\n\t \n\t for col in column_order:\n\t # Look for the column in the current item\n\t if col in item:\n\t cell \u003d item[col]\n\t # Extract the value from the nested structure\n\t if isinstance(cell, dict) and \"value\" in cell:\n\t raw_value \u003d cell[\"value\"]\n\t else:\n\t raw_value \u003d cell\n\t else:\n\t raw_value \u003d \"\"\n\t \n\t # Process and clean the value\n\t processed_value \u003d unwrap(raw_value).replace(\",\", \";\")\n\t row_data.append(processed_value)\n\t \n\t csv_content +\u003d \",\".join(row_data) + \"\\n\"\n\t else:\n\t csv_content +\u003d \"No alarms in current view\\n\"\n\t\n\texcept Exception as e:\n\t system.perspective.print(\"Export Error: \" + str(e))\n\t csv_content \u003d \"Export failed\\n\"\n\t\n\tcsv_bytes \u003d csv_content.encode(\"utf-8\")\n\tsystem.perspective.download(\"active_alarms.csv\", csv_bytes) \n\t \n\t \n\t \n\t\n#\t if data and len(data) \u003e 0:\n#\t for row in data:\n#\t val \u003d row.get(\"value\", {})\n#\t row_data \u003d [\n#\t str(val.get(\"NumberID\", \"\")),\n#\t str(val.get(\"EventTimestamp\", \"\")),\n#\t str(val.get(\"Duration\", \"\")),\n#\t str(val.get(\"Priority\", \"\")),\n#\t str(val.get(\"Description\", \"\")),\n#\t str(val.get(\"Tag\", \"\"))\n#\t ]\n#\t\n#\t # Escape commas for CSV safety\n#\t row_data \u003d [field.replace(\",\", \";\") for field in row_data]\n#\t csv_content +\u003d \",\".join(row_data) + \"\\n\"\n#\t else:\n#\t csv_content +\u003d \"No alarms in current view\\n\"\n#\t\n#\texcept Exception as e:\n#\t system.perspective.print(\"Error during CSV export: \" + str(e))\n#\t csv_content \u003d \"Error exporting alarm data\\n\"\n#\t\n#\t# Convert to bytes and trigger download\n#\tcsv_bytes \u003d csv_content.encode(\u0027utf-8\u0027)\n#\tsystem.perspective.download(\"active_alarms.csv\", csv_bytes)\n " - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button_1" - }, - "position": { - "basis": "120px" - }, - "props": { - "image": { - "icon": { - "path": "material/import_export" - } - }, - "primary": false, - "style": { - "margin": 15 - }, - "text": "Export" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "button-severity-indicator", - "pageScope": true, - "script": "\tbackground \u003d \"false\"\n\tseverity \u003d payload[\"severity\"]\n\tbutton_severity \u003d self.custom.Severity\n\tif severity \u003d\u003d button_severity:\n\t\tbackground \u003d \"true\"\n\telse:\n\t\tbackground \u003d \"false\"\n\t\n\tself.custom.background_on \u003d background", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.button" - }, - { - "meta": { - "name": "Label_0" - }, - "position": { - "basis": "10px" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Label_1" - }, - "position": { - "basis": "10px" - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "FlexContainer_0" - }, - "position": { - "basis": "513px", - "shrink": 0 - }, - "props": { - "style": { - "padding": 0 - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "FlexContainer" - }, - "position": { - "basis": "70px", - "shrink": 0 - }, - "props": { - "alignContent": "flex-start", - "style": { - "overflow": "visible" - } - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "events": { - "component": { - "onRowDoubleClick": { - "config": { - "script": "\n\tmyData \u003d self.props.selection.data\n\n\tautStand.Alarms.handleClick(myData)\n\t\n\t" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Table" - }, - "position": { - "basis": "972.9px" - }, - "propConfig": { - "custom.priorities": { - "binding": { - "config": { - "path": ".../FlexContainer/FlexContainer.custom.priorities" - }, - "transforms": [ - { - "code": "\t\n\tpriority_to_number \u003d {\n\t \"critical\": 4,\n\t \"high\": 3,\n\t \"medium\": 2,\n\t \"low\": 1,\n\t \"diagnostic\": 0\n\t}\n\t\n\t\n\t# Collect enabled priorities\n\tenabled \u003d [str(priority_to_number[k]) for k, v in value.items() if v]\n\t\n\tresult \u003d \",\".join(enabled)\n\t\n\tif not result:\n\t\treturn \"\"\n\t\n\treturn result\n\t\n", - "type": "script" - } - ], - "type": "property" - } - }, - "props.data": { - "binding": { - "config": { - "parameters": { - "priorityList": "{this.custom.priorities}" - }, - "polling": { - "enabled": true, - "rate": "3" - }, - "queryPath": "autStand/Alarms/GetActiveAlarms" - }, - "transforms": [ - { - "code": "\n\tfrom system.dataset import toPyDataSet\n\n\tds \u003d toPyDataSet(value)\n\tdata \u003d []\n\n\tcolumn_names \u003d [col for col in ds.columnNames if col !\u003d \"EndTimestamp\"]\n\t\n\n\tfor row in ds:\n\t\tpriority \u003d row[\"Priority\"]\n\n\t\t# Use style class names from Perspective\n\t\tif priority \u003d\u003d \"High\":\n\t\t\tclassName \u003d \"Alarms-Styles/High\"\n\t\telif priority \u003d\u003d \"Medium\":\n\t\t\tclassName \u003d \"Alarms-Styles/Medium\"\n\t\telif priority \u003d\u003d \"Low\":\n\t\t\tclassName \u003d \"Alarms-Styles/Low\"\n\t\telif priority \u003d\u003d \"Diagnostic\":\n\t\t\tclassName \u003d \"Alarms-Styles/Diagnostic\"\n\t\telse:\n\t\t\tclassName \u003d \"Alarms-Styles/NoAlarm\"\n\n\t\t# Apply the style class to all cells in the row\n\t\trow_dict \u003d {\n\t\t\tcol: {\n\t\t\t\t\"value\": row[col],\n\t\t\t\t\"style\": { \"classes\": className }\n\t\t\t} for col in column_names\n\t\t}\n\t\tdata.append(row_dict)\n\n\treturn data", - "type": "script" - } - ], - "type": "query" - } - } - }, - "props": { - "columns": [ - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "NumberID", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "Number (ID)" - }, - "justify": "left", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 70 - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY HH:mm:ss", - "editable": false, - "field": "StartTimestamp", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "Event Timestamp" - }, - "justify": "auto", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 70 - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Duration", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": true, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "equals", - "value": "" - }, - "visible": "never" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "string", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 70 - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Priority", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 70 - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Location", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "ascending", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 70 - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Description", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 150 - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Tag", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "auto", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 80 - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "FullTag", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "auto", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "", - "display": "none" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Device", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "auto", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "", - "display": "none" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - } - ], - "emptyMessage": { - "noData": { - "text": "No Active Alarms" - }, - "noFilterResults": { - "text": "No Active Alarms" - } - }, - "filter": { - "enabled": true, - "results": { - "enabled": true - } - } - }, - "type": "ia.display.table" - } - ], - "meta": { - "name": "FlexContainer_0" - }, - "position": { - "basis": "480px", - "grow": 1 - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "Active_tab" - }, - "props": { - "direction": "column", - "justify": "space-evenly" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tfrom datetime import datetime\n\t\n\ttry:\n\t data \u003d self.parent.parent.getChild(\"FlexContainer_0\").getChild(\"AlarmsTable\").props.data\n\t\n\t column_order \u003d [\n\t \"FirstTimestamp\",\n\t \"LastTimestamp\", \n\t \"Count\",\n\t \"Duration\",\n\t \"Priority\",\n\t \"Location\",\n\t \"Description\",\n\t \"Tag\"\n\t ]\n\t\n\t csv_content \u003d \",\".join(column_order) + \"\\n\"\n\t \t\n\t def unwrap(v):\n\t\t\tif hasattr(v, \u0027value\u0027):\n\t\t\t\treturn str(v.value)\n\t \t\n\t\t\treturn v\n\t \t\n\t if data and len(data) \u003e 0:\n\t for item in data:\n\t row_data \u003d []\n\t \n\t for col in column_order:\n\t # Look for the column in the current item\n\t if col in item:\n\t cell \u003d item[col]\n\t # Extract the value from the nested structure\n\t if isinstance(cell, dict) and \"value\" in cell:\n\t raw_value \u003d cell[\"value\"]\n\t else:\n\t raw_value \u003d cell\n\t else:\n\t raw_value \u003d \"\"\n\t \n\t # Process and clean the value\n\t processed_value \u003d unwrap(raw_value).replace(\",\", \";\")\n\t row_data.append(processed_value)\n\t \n\t csv_content +\u003d \",\".join(row_data) + \"\\n\"\n\t else:\n\t csv_content +\u003d \"No alarms in current view\\n\"\n\t\n\texcept Exception as e:\n\t system.perspective.print(\"Export Error: \" + str(e))\n\t csv_content \u003d \"Export failed\\n\"\n\t\n\tcsv_bytes \u003d csv_content.encode(\"utf-8\")\n\tsystem.perspective.download(\"active_alarms.csv\", csv_bytes)" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button_1" - }, - "position": { - "basis": "120px" - }, - "props": { - "image": { - "icon": { - "path": "material/import_export" - } - }, - "primary": false, - "style": { - "margin": 15 - }, - "text": "Export" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "button-severity-indicator", - "pageScope": true, - "script": "\tbackground \u003d \"false\"\n\tseverity \u003d payload[\"severity\"]\n\tbutton_severity \u003d self.custom.Severity\n\tif severity \u003d\u003d button_severity:\n\t\tbackground \u003d \"true\"\n\telse:\n\t\tbackground \u003d \"false\"\n\t\n\tself.custom.background_on \u003d background", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.button" - } - ], - "meta": { - "name": "FlexContainer" - }, - "position": { - "basis": "70px" - }, - "props": { - "alignContent": "flex-start", - "style": { - "overflow": "visible" - } - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "events": { - "component": { - "onRowDoubleClick": { - "config": { - "script": "\t\n\tmyData \u003d self.props.selection.data\n\n\talarms.alarm_click.handleClick(myData)" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "AlarmsTable" - }, - "position": { - "basis": "1080px", - "grow": 1 - }, - "propConfig": { - "props.data": { - "binding": { - "config": { - "polling": { - "enabled": true, - "rate": "3" - }, - "queryPath": "autStand/Alarms/GetAlarmsWithCount" - }, - "transforms": [ - { - "code": "\n\tfrom system.dataset import toPyDataSet\n\n\tds \u003d toPyDataSet(value)\n\tdata \u003d []\n\n\tcolumn_names \u003d list(ds.columnNames)\n\n\tfor row in ds:\n\t\tpriority \u003d row[\"Priority\"]\n\n\t\t# Use style class names from Perspective\n\t\tif priority \u003d\u003d \"High\":\n\t\t\tclassName \u003d \"Alarms-Styles/High\"\n\t\telif priority \u003d\u003d \"Medium\":\n\t\t\tclassName \u003d \"Alarms-Styles/Medium\"\n\t\telif priority \u003d\u003d \"Low\":\n\t\t\tclassName \u003d \"Alarms-Styles/Low\"\n\t\telif priority \u003d\u003d \"Diagnostic\":\n\t\t\tclassName \u003d \"Alarms-Styles/Diagnostic\"\n\t\telse:\n\t\t\tclassName \u003d \"Alarms-Styles/NoAlarm\"\n\n\t\t# Apply the style class to all cells in the row\n\t\trow_dict \u003d {\n\t\t\tcol: {\n\t\t\t\t\"value\": row[col],\n\t\t\t\t\"style\": { \"classes\": className }\n\t\t\t} for col in column_names\n\t\t}\n\t\tdata.append(row_dict)\n\n\treturn data\n", - "type": "script" - } - ], - "type": "query" - } - }, - "props.editingCell": { - "onChange": { - "enabled": null, - "script": "\tall_alarms \u003d system.alarm.queryStatus(includeShelved\u003dTrue)\n\tshelved_alarms \u003d [alarm for alarm in all_alarms if alarm.isShelved()]\n\t\n\t# Build dataset for table\n\theaders \u003d [\u0027ID\u0027, \u0027StartTimestamp\u0027, \u0027EndTimestamp\u0027, \u0027Duration\u0027, \u0027Description\u0027, \u0027Priority\u0027, \u0027Tag\u0027, \u0027MCM\u0027]\n\tdata \u003d []\n\t\n\tfor alarm in shelved_alarms:\n\t # Calculate duration (time since shelved)\n\t if alarm.activeTime:\n\t duration_ms \u003d system.date.now().getTime() - alarm.activeTime.getTime()\n\t duration_seconds \u003d duration_ms / 1000\n\t hours \u003d int(duration_seconds / 3600)\n\t minutes \u003d int((duration_seconds % 3600) / 60)\n\t seconds \u003d int(duration_seconds % 60)\n\t duration \u003d \"%02d:%02d:%02d\" % (hours, minutes, seconds)\n\t else:\n\t duration \u003d \"00:00:00\"\n\t \n\t # Extract tag name from source\n\t tag_name \u003d alarm.source.split(\u0027/\u0027)[-1] if \u0027/\u0027 in alarm.source else alarm.source\n\t \n\t row \u003d [\n\t str(alarm.id) if hasattr(alarm, \u0027id\u0027) else \u0027\u0027,\n\t alarm.activeTime if alarm.activeTime else system.date.now(),\n\t None, # End timestamp (shelved alarms don\u0027t have end time yet)\n\t duration,\n\t alarm.displayPath if alarm.displayPath else alarm.source,\n\t alarm.priority.name if alarm.priority else \u0027Unknown\u0027,\n\t tag_name,\n\t \u0027System\u0027 # Adjust based on your source format\n\t ]\n\t data.append(row)\n\t\n\t# Create dataset and update the custom property\n\tdataset \u003d system.dataset.toDataSet(headers, data)\n\tself.custom.shelvedAlarmsData \u003d dataset" - } - }, - "props.selection": { - "persistent": true - } - }, - "props": { - "columns": [ - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY HH:mm:ss", - "editable": false, - "field": "FirstTimestamp", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "left", - "style": { - "backgroundColor": "#FFFEFE", - "classes": "" - }, - "title": "First Timestamp" - }, - "justify": "left", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "value", - "dateFormat": "MM-DD-YYYY HH:mm:ss", - "editable": false, - "field": "LastTimestamp", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "Last Timestamp" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "none", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM-DD-YYYY HH:mm:ss", - "editable": false, - "field": "Count", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "none", - "editable": false, - "field": "Duration", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "none", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Priority", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Location", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Description", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 150 - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Tag", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "FullTag", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "auto", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "", - "display": "none" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Device", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "auto", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "", - "display": "none" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - } - ], - "emptyMessage": { - "noData": { - "text": "No Alarms" - }, - "noFilterResults": { - "text": "No Alarms" - } - }, - "filter": { - "enabled": true, - "results": { - "enabled": true - } - } - }, - "type": "ia.display.table" - } - ], - "meta": { - "name": "FlexContainer_0" - }, - "position": { - "basis": "500px", - "grow": 1 - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "Hit_List" - }, - "position": { - "tabIndex": 1 - }, - "props": { - "direction": "column", - "justify": "space-evenly" - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "children": [ - { - "custom": { - "SetFilter": true - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tpayload \u003d {}\n\tif self.custom.SetFilter \u003d\u003d True:\n\t\tpayload[\"data\"] \u003d False\n\t\tself.custom.SetFilter \u003d False\n\t\t\n\t\n\telif self.custom.SetFilter \u003d\u003d False:\n\t\tpayload[\"data\"] \u003d True\n\t\tself.custom.SetFilter \u003d True\n\t\n\tsystem.perspective.sendMessage(\"show-historical-filters\", payload \u003d payload, scope \u003d \"page\")\n\t" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button", - "tooltip": { - "enabled": true, - "style": { - "background-color": "white", - "borderColor": "#000000", - "borderStyle": "solid", - "borderWidth": "1px", - "box-shadow": "5px 5px 5px grey", - "color": "#000000", - "fontFamily": "Arial", - "fontWeight": "normal" - }, - "text": "Show Filters" - } - }, - "position": { - "basis": "120px" - }, - "props": { - "image": { - "icon": { - "path": "material/filter_alt" - }, - "position": "center" - }, - "primary": false, - "style": { - "margin": 15, - "marginLeft": 20 - }, - "text": "" - }, - "type": "ia.input.button" - }, - { - "meta": { - "name": "Label" - }, - "position": { - "basis": "281px" - }, - "props": { - "style": { - "color": "#FF0000", - "margin-left": "20px" - }, - "text": "ALL TIMESTAMPS ARE IN UTC" - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "Show filters" - }, - "position": { - "basis": "70px", - "shrink": 0 - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "children": [ - { - "meta": { - "name": "Label_1" - }, - "position": { - "basis": "100px" - }, - "props": { - "style": { - "fontFamily": "Arial", - "fontWeight": "bold", - "textAlign": "center" - }, - "text": "Period:" - }, - "type": "ia.display.label" - }, - { - "custom": { - "customTime": false, - "endDate": { - "$": [ - "ts", - 192, - 1755608469647 - ], - "$ts": 1755608469646 - }, - "startDate": { - "$": [ - "ts", - 192, - 1755608469646 - ], - "$ts": 1755606669646 - } - }, - "meta": { - "name": "Dropdown" - }, - "position": { - "basis": "200px" - }, - "propConfig": { - "props.value": { - "onChange": { - "enabled": null, - "script": "\n\tstart \u003d \"\"\n\tend \u003d \"\"\n\tnow \u003d system.date.now()\n\tpreviousDay \u003d system.date.addDays(now, -1)\n\tvalue \u003d currentValue.value \n\n\tif value \u003d\u003d \"custom\":\n\t\tself.custom.customTime \u003d True\n\t\treturn\n\telif value \u003d\u003d \"currentDay\":\n\t\tstart \u003d system.date.setTime(now, 0, 0, 0)\n\t\tend \u003d now\n\telif value \u003d\u003d \"morning\":\n\t\tstart \u003d system.date.setTime(now, 2, 30, 0)\n\t\tend \u003d system.date.setTime(now, 7, 30, 0)\n\telif value \u003d\u003d \"daylight\":\n\t\tstart \u003d system.date.setTime(now, 7, 30, 0)\n\t\tend \u003d system.date.setTime(now, 13, 0, 0)\n\telif value \u003d\u003d \"twilight\":\n\t\tstart \u003d system.date.setTime(now, 13, 0, 0)\n\t\tend \u003d now\n\telif value \u003d\u003d \"night\":\n\t\tstart \u003d system.date.setTime(previousDay, 18, 30, 0)\n\t\tend \u003d system.date.setTime(previousDay, 23, 30, 0)\n\telif value \u003d\u003d \"wrapDown\":\n\t\tstart \u003d system.date.setTime(previousDay, 23, 30, 0)\n\t\tend \u003d system.date.setTime(now, 2, 30, 0)\n\telif value \u003d\u003d \"currentShot\":\n\t\tstart \u003d system.date.setTime(now, 13, 0, 0)\n\t\tend \u003d now\n\telse:\n\t\tstart \u003d system.date.addMinutes(now, -int(value))\n\t\tend \u003d now\n\n\tself.custom.customTime \u003d False\n\tself.custom.startDate \u003d start\n\tself.custom.endDate \u003d end" - }, - "persistent": false - } - }, - "props": { - "options": [ - { - "label": "Past 30 Min", - "value": 30 - }, - { - "label": "Past Hour", - "value": 60 - }, - { - "label": "Past 2 Hour", - "value": 120 - }, - { - "label": "Past 4 Hour", - "value": 240 - }, - { - "label": "Past 8 Hour", - "value": 480 - }, - { - "label": "Current Day", - "value": "currentDay" - }, - { - "label": "Morning", - "value": "morning" - }, - { - "label": "Daylight", - "value": "daylight" - }, - { - "label": "Twilight", - "value": "twilight" - }, - { - "label": "Night", - "value": "night" - }, - { - "label": "Wrap Down", - "value": "wrapDown" - }, - { - "label": "Current Shot", - "value": "currentShot" - }, - { - "label": "Custom", - "value": "custom" - } - ], - "style": { - "margin": 15 - } - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "reset-historical-filters", - "pageScope": true, - "script": "\treset \u003d payload[\"data\"]\n\tself.props.value \u003d None", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.dropdown" - }, - { - "meta": { - "name": "Label" - }, - "position": { - "basis": "100px" - }, - "props": { - "style": { - "fontFamily": "Arial", - "fontWeight": "bold", - "textAlign": "center" - }, - "text": "Start Date" - }, - "type": "ia.display.label" - }, - { - "custom": { - "max_duration_days": 10 - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tautStand.messaging.message_handler.set_time_from_filters(self)\n\t" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "DateTimeInput", - "tooltip": { - "enabled": true - } - }, - "position": { - "basis": "200px" - }, - "propConfig": { - "props.enabled": { - "binding": { - "config": { - "path": "../Dropdown.custom.customTime" - }, - "type": "property" - } - }, - "props.maxDate": { - "binding": { - "config": { - "expression": "now()" - }, - "type": "expr" - } - }, - "props.minDate": { - "access": "PUBLIC", - "binding": { - "config": { - "expression": "addDays(now(),-{this.custom.max_duration_days})" - }, - "type": "expr" - } - }, - "props.value": { - "binding": { - "config": { - "path": "../Dropdown.custom.startDate" - }, - "type": "property" - }, - "onChange": { - "enabled": null, - "script": "\tautStand.messaging.message_handler.set_time_from_filters(self)" - } - } - }, - "props": { - "formattedValue": "Aug 19, 2025 4:31 PM", - "style": { - "margin": 15 - } - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "reset-historical-filters", - "pageScope": true, - "script": "\treset \u003d payload[\"data\"]\n\tself.props.value \u003d None", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.date-time-input" - }, - { - "meta": { - "name": "Label_0" - }, - "position": { - "basis": "89px" - }, - "props": { - "style": { - "fontFamily": "Arial", - "fontWeight": "bold", - "textAlign": "center" - }, - "text": "End Date" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "DateTimeInput_0" - }, - "position": { - "basis": "200px" - }, - "propConfig": { - "props.enabled": { - "binding": { - "config": { - "path": "../Dropdown.custom.customTime" - }, - "type": "property" - } - }, - "props.maxDate": { - "binding": { - "config": { - "expression": "now()" - }, - "enabled": false, - "type": "expr" - } - }, - "props.minDate": { - "binding": { - "config": { - "expression": "addDays(now(),-10)" - }, - "type": "expr" - } - }, - "props.value": { - "binding": { - "config": { - "path": "../Dropdown.custom.endDate" - }, - "type": "property" - }, - "onChange": { - "enabled": null, - "script": "\tautStand.messaging.message_handler.set_time_to_filters(self)" - }, - "persistent": true - } - }, - "props": { - "formattedValue": "Aug 19, 2025 5:01 PM", - "maxDate": { - "$": [ - "ts", - 192, - 1749542669794 - ], - "$ts": 1749715452000 - }, - "style": { - "margin": 15 - }, - "value": { - "$": [ - "ts", - 201, - 1755608469647 - ], - "$ts": 1755608469646 - } - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "reset-historical-filters", - "pageScope": true, - "script": "\treset \u003d payload[\"data\"]\n\tself.props.value \u003d None", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.date-time-input" - } - ], - "meta": { - "name": "Time" - }, - "position": { - "basis": "70px", - "shrink": 0 - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "meta": { - "name": "Label" - }, - "position": { - "basis": "100px" - }, - "props": { - "style": { - "fontFamily": "Arial", - "fontWeight": "bold", - "textAlign": "center" - }, - "text": "Priority" - }, - "type": "ia.display.label" - }, - { - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tautStand.messaging.message_handler.set_priority_filters(self)" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Dropdown" - }, - "position": { - "basis": "490px" - }, - "propConfig": { - "props.value": { - "persistent": false - } - }, - "props": { - "options": [ - { - "label": "Diagnostic", - "value": "diagnostic" - }, - { - "label": "Low", - "value": "low" - }, - { - "label": "Medium", - "value": "medium" - }, - { - "label": "High", - "value": "high" - }, - { - "label": "All", - "value": "" - } - ], - "style": { - "margin": 15 - } - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "reset-historical-filters", - "pageScope": true, - "script": "\treset \u003d payload[\"data\"]\n\tself.props.value \u003d None", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.dropdown" - } - ], - "meta": { - "name": "Priority" - }, - "position": { - "basis": "70px", - "shrink": 0 - }, - "type": "ia.container.flex" - } - ], - "custom": { - "ShowFilters": true - }, - "meta": { - "name": "Filters" - }, - "position": { - "basis": "180px", - "grow": 1, - "shrink": 0 - }, - "propConfig": { - "position.display": { - "binding": { - "config": { - "path": "this.custom.ShowFilters" - }, - "type": "property" - }, - "persistent": true - } - }, - "props": { - "direction": "column", - "style": { - "borderStyle": "solid", - "borderWidth": "1px", - "box-shadow": "0 4px 20px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19)", - "marginBottom": 10, - "marginLeft": 20, - "marginRight": 20, - "marginTop": 10 - } - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "show-historical-filters", - "pageScope": true, - "script": "\tshow \u003d payload[\"data\"]\n\tself.custom.ShowFilters \u003d show", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "custom": { - "max_duration": { - "$": [ - "ts", - 192, - 1748426336635 - ], - "$ts": 1747562336635 - }, - "priority_filters": "", - "time_from_filter": { - "$": [ - "ts", - 192, - 1759143973125 - ], - "$ts": 1755606669646 - }, - "time_to_filter": { - "$": [ - "ts", - 192, - 1759143973125 - ], - "$ts": 1755608469646 - } - }, - "events": { - "component": { - "onRowDoubleClick": { - "config": { - "script": "\t\n\tmyData \u003d self.props.selection.data\n\n\talarms.alarm_click.handleClick(myData)" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Table" - }, - "position": { - "basis": "1920px", - "grow": 1 - }, - "propConfig": { - "props.columns[1].filter.date.value": { - "binding": { - "config": { - "path": "this.custom.time_from_filter" - }, - "type": "property" - } - }, - "props.columns[2].filter.date.value": { - "binding": { - "config": { - "path": "this.custom.time_to_filter" - }, - "type": "property" - } - }, - "props.columns[2].filter.number.value": { - "binding": { - "config": { - "path": "this.custom.time_to_filter" - }, - "enabled": false, - "type": "property" - } - }, - "props.columns[5].filter.string.value": { - "binding": { - "config": { - "path": "this.custom.priority_filters" - }, - "type": "property" - } - }, - "props.data": { - "binding": { - "config": { - "polling": { - "enabled": true, - "rate": "3" - }, - "queryPath": "autStand/Alarms/GetAlarms" - }, - "transforms": [ - { - "code": "\n\tfrom system.dataset import toPyDataSet\n\n\tds \u003d toPyDataSet(value)\n\tdata \u003d []\n\n\tcolumn_names \u003d list(ds.columnNames)\n\n\tfor row in ds:\n\t\tpriority \u003d row[\"Priority\"]\n\n\t\t# Use style class names from Perspective\n\t\tif priority \u003d\u003d \"High\":\n\t\t\tclassName \u003d \"Alarms-Styles/High\"\n\t\telif priority \u003d\u003d \"Medium\":\n\t\t\tclassName \u003d \"Alarms-Styles/Medium\"\n\t\telif priority \u003d\u003d \"Low\":\n\t\t\tclassName \u003d \"Alarms-Styles/Low\"\n\t\telif priority \u003d\u003d \"Diagnostic\":\n\t\t\tclassName \u003d \"Alarms-Styles/Diagnostic\"\n\t\telse:\n\t\t\tclassName \u003d \"Alarms-Styles/NoAlarm\"\n\n\t\t# Apply the style class to all cells in the row\n\t\trow_dict \u003d {\n\t\t\tcol: {\n\t\t\t\t\"value\": row[col],\n\t\t\t\t\"style\": { \"classes\": className }\n\t\t\t} for col in column_names\n\t\t}\n\t\tdata.append(row_dict)\n\n\treturn data", - "type": "script" - } - ], - "type": "query" - } - } - }, - "props": { - "box-shadow": "0 4px 20px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19)", - "columns": [ - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "none", - "editable": false, - "field": "ID", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "", - "paddingLeft": 12 - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY HH:mm:ss", - "editable": false, - "field": "StartTimestamp", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "later than date time" - }, - "enabled": true, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "never" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "Start Timestamp" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "none", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY HH:mm:ss", - "editable": false, - "field": "EndTimestamp", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "earlier than date time" - }, - "enabled": true, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "never" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "End Timestamp" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "none", - "editable": false, - "field": "Duration", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "", - "paddingLeft": 12 - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "none", - "editable": false, - "field": "Description", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Priority", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": true, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "contains" - }, - "visible": "never" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Location", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": true, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "equals", - "value": "" - }, - "visible": "never" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Tag", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": true, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "contains", - "value": "" - }, - "visible": "never" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "FullTag", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "auto", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "", - "display": "none" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Device", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "auto", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "", - "display": "none" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - } - ], - "emptyMessage": { - "noData": { - "text": "No Alarms" - }, - "noFilterResults": { - "text": "No Alarms" - } - }, - "enabled": true, - "filter": { - "enabled": true, - "results": { - "enabled": true - } - }, - "pager": { - "bottom": false - }, - "style": { - "margin": 20 - } - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "update-first-request", - "pageScope": true, - "script": "\tdata \u003d payload[\"data\"]\n\tinitial_data \u003d payload[\"initial_data\"]\n\tself.props.data \u003d data\n\tself.custom.initial_data \u003d initial_data", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "update-historical-data", - "pageScope": true, - "script": "\thistorical_data \u003d payload[\"data\"]\n\tself.props.data \u003d historical_data", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "load_initial_data", - "pageScope": true, - "script": "\trequest \u003d payload[\"data\"]\n\tsystem.perspective.print(\"initial message received\")\n\tif request \u003d\u003d True:\n\t\tself.props.data \u003d self.custom.initial_data", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "reset-historical-filters", - "pageScope": true, - "script": "\treset \u003d payload[\"data\"]\n\tif reset \u003d\u003d \"reset\":\n\t\tself.props.data \u003d []\n\t\tself.custom.device_filters \u003d None\n\t\tself.custom.priority_filters \u003d None\n\t\tself.custom.source_id_filters \u003d None\n\t\tself.custom.time_from_filter \u003d None\n\t\tself.custom.time_to_filter \u003d None\n\t\tself.custom.type_filters \u003d None\n\t\tself.custom.duration_filter \u003d None\n\t\tself.props.enabled \u003dTrue", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-source-filters", - "pageScope": true, - "script": "\tfilters \u003d payload[\"data\"]\n\tself.custom.source_id_filters \u003d filters", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-device-filters", - "pageScope": true, - "script": "\tfilters \u003d payload[\"data\"]\n\tself.custom.device_filters \u003d filters", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-priority-filters", - "pageScope": true, - "script": "\tfilters \u003d payload[\"data\"]\n\tself.custom.priority_filters \u003d filters", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-from-filters", - "pageScope": true, - "script": "\ttime \u003d payload[\"data\"]\n\tself.custom.time_from_filter \u003d time", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-to-filters", - "pageScope": true, - "script": "\ttime \u003d payload[\"data\"]\n\tself.custom.time_to_filter \u003d time", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-type-filters", - "pageScope": true, - "script": "\tfilters \u003d payload[\"data\"]\n\tself.custom.type_filters \u003d filters", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-duration-filters", - "pageScope": true, - "script": "\tduration \u003d payload[\"data\"]\n\tself.custom.duration_filter \u003d duration", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.display.table" - } - ], - "meta": { - "name": "Table" - }, - "position": { - "basis": "980px", - "grow": 1 - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "update-historical-data", - "pageScope": true, - "script": "#\tdata \u003d payload[\"data\"]\n#\tself.getChild(\"Table\").props.data \u003d data", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "custom": { - "download_in_progress": true, - "enable_timeout": false, - "priority_filters": "", - "time_from_filter": { - "$": [ - "ts", - 192, - 1759143973124 - ], - "$ts": 1755606669646 - }, - "time_to_filter": { - "$": [ - "ts", - 192, - 1759143973124 - ], - "$ts": 1755608469646 - }, - "type_filters": null - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\n from datetime import datetime\n def format_date(value):\n\t\tif isinstance(value, (int, long)) and value \u003e 10000000:\n\t\t\ttimestamp \u003d system.date.fromMillis(value)\n\t\t\treturn system.date.format(timestamp, \"yyyy-MM-dd HH:mm:ss\")\n\t\t\t\n\t\t# If value is not a valid timestamp, return as-is\n\t\treturn str(value)\n \n try:\n\n # Get filtered data\n table \u003d self.parent.parent.getChild(\"Table\").getChild(\"Table\")\n filtered_data \u003d table.props.filter.results.data\n\n if not filtered_data or len(filtered_data) \u003d\u003d 0:\n system.perspective.print(\"No filtered data to export.\")\n return\n\n # Get correct column order from the table\u0027s column config\n column_order \u003d [col[\"field\"] for col in table.props.columns if \"field\" in col]\n\n csv_content \u003d \",\".join(column_order) + \"\\n\"\n\n # Build rows\n for row_dict in filtered_data:\n row \u003d []\n for col in column_order:\n raw_val \u003d row_dict.get(col, \"\")\n value \u003d format_date(raw_val)\n value \u003d value.replace(\",\", \";\") # CSV safety\n row.append(value)\n csv_content +\u003d \",\".join(row) + \"\\n\"\n\n # Export CSV\n csv_bytes \u003d csv_content.encode(\"utf-8\")\n system.perspective.download(\"filtered_alarms_history.csv\", csv_bytes)\n\n system.perspective.print(\"CSV export completed successfully. Exported %d records.\" % len(filtered_data))\n\n except Exception as e:\n system.perspective.print(\"Export failed: \" + str(e))" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Export", - "tooltip": { - "enabled": true, - "text": "Exports the data displayed in the table." - } - }, - "position": { - "basis": "120px", - "shrink": 0 - }, - "propConfig": { - "custom.disable": { - "binding": { - "config": { - "expression": "if(isNull({this.custom.start_time}), False, secondsBetween({this.custom.start_time}, {this.custom.time_now}))" - }, - "transforms": [ - { - "code": "\tif value \u003e 60:\n\t\tself.custom.enable_timeout \u003d False\n\t\treturn False\n\telse:\n\t\treturn True", - "type": "script" - } - ], - "type": "expr" - } - }, - "custom.download_complete": { - "binding": { - "config": { - "path": "session.custom.downloads" - }, - "transforms": [ - { - "code": "\tif value \u003d\u003d True:\n\t\tself.custom.download_in_progress \u003d False", - "type": "script" - } - ], - "type": "property" - } - }, - "custom.priority_filters": { - "persistent": true - }, - "custom.start_time": { - "binding": { - "config": { - "expression": "{this.custom.enable_timeout}" - }, - "transforms": [ - { - "code": "\tif value \u003d\u003d True:\n\t\treturn self.custom.time_now", - "type": "script" - } - ], - "type": "expr" - } - }, - "custom.time_from_filter": { - "persistent": true - }, - "custom.time_now": { - "binding": { - "config": { - "expression": "now()" - }, - "type": "expr" - } - }, - "custom.time_to_filter": { - "persistent": true - }, - "props.enabled": { - "binding": { - "config": { - "expression": "!{this.custom.enable_timeout} || !{this.custom.download_in_progress} " - }, - "type": "expr" - } - }, - "props.text": { - "binding": { - "config": { - "expression": "if(!{this.custom.enable_timeout}, \"Export\",\r\nif({this.custom.download_in_progress}, \"Exporting...\",\r\n\"Export\"))" - }, - "type": "expr" - } - } - }, - "props": { - "image": { - "icon": { - "path": "material/import_export" - } - }, - "primary": false, - "style": { - "margin": 15, - "marginLeft": 20 - } - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "set-source-filters", - "pageScope": true, - "script": "\tfilters \u003d payload[\"data\"]\n\tself.custom.source_id_filters \u003d filters", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-device-filters", - "pageScope": true, - "script": "\tfilters \u003d payload[\"data\"]\n\tself.custom.device_filters \u003d filters", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-message-filters", - "pageScope": true, - "script": "\tfilters \u003d payload[\"data\"]\n\tself.custom.message_filters \u003d filters", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-priority-filters", - "pageScope": true, - "script": "\tfilters \u003d payload[\"data\"]\n\tself.custom.priority_filters \u003d filters", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-from-filters", - "pageScope": true, - "script": "\ttime \u003d payload[\"data\"]\n\tself.custom.time_from_filter \u003d time", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-to-filters", - "pageScope": true, - "script": "\ttime \u003d payload[\"data\"]\n\tself.custom.time_to_filter \u003d time", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "reset-historical-filters", - "pageScope": true, - "script": "\taction \u003d payload[\"data\"]\n\tif action \u003d\u003d \"reset\":\n\t\tself.custom.device_filters \u003d None\n\t\tself.custom.priority_filters \u003d None\n\t\tself.custom.source_id_filters \u003d None\n\t\tself.custom.time_from_filter \u003d None\n\t\tself.custom.time_to_filter \u003d None\n\t\tself.custom.type_filters \u003d None\n\t\tself.custom.duration_filter \u003d None\n\t\tself.props.enabled \u003dTrue\n\t\t", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-type-filters", - "pageScope": true, - "script": "\tfilters \u003d payload[\"data\"]\n\tself.custom.type_filters \u003d filters", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "set-duration-filters", - "pageScope": true, - "script": "\tduration \u003d payload[\"data\"]\n\tself.custom.duration_filter \u003d duration", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.button" - }, - { - "meta": { - "name": "Label" - }, - "position": { - "basis": "580px", - "grow": 1 - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "Paginate" - }, - "position": { - "basis": "70px", - "shrink": 0 - }, - "props": { - "justify": "space-evenly" - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "root" - }, - "props": { - "direction": "column", - "style": { - "classes": "Background-Styles/Grey-Background" - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "Historical_tab" - }, - "position": { - "tabIndex": 2 - }, - "props": { - "direction": "column", - "justify": "space-evenly" - }, - "type": "ia.container.flex" - } - ], - "custom": { - "shelvedAlarms": [] - }, - "meta": { - "name": "TabContainer" - }, - "position": { - "basis": "300px", - "grow": 1 - }, - "propConfig": { - "props.currentTabIndex": { - "onChange": { - "enabled": null, - "script": "\n\tif self.props.currentTabIndex !\u003d 0:\n\t\tpayload \u003d {}\n\t\tfilter_on \u003d \"false\"\n\t\tpayload[\"reset\"] \u003d filter_on\n\t\tsystem.perspective.sendMessage(\"reset-filters\", payload \u003dpayload, scope \u003d \"page\")\n\t\t\n\tif currentValue.value \u003d\u003d 1:\n\t shelved_info \u003d system.alarm.getShelvedPaths()\n\t alarms \u003d system.alarm.queryStatus(includeShelved\u003dTrue)\n\t \n\t tableData \u003d []\n\t \n\t for alarm in alarms:\n\t if alarm.isShelved() and not alarm.isAcked() and not alarm.isCleared():\n\t # Get alarm path as string\n\t alarm_path \u003d str(alarm.getSource())\n\t \n\t # Get active time\n\t activeData \u003d alarm.getActiveData()\n\t startTime \u003d activeData.getTimestamp() if activeData else None\n\t \n\t # Find shelved info for this alarm\n\t shelveEntry \u003d \"\"\n\t \n\t for shelved_item in shelved_info:\n\t shelved_str \u003d str(shelved_item)\n\t \n\t if alarm_path in shelved_str:\n\t # Extract the value part (after the first comma)\n\t if \",\" in shelved_str:\n\t start_idx \u003d shelved_str.find(\",\")\n\t shelveEntry \u003d shelved_str[start_idx + 1:].rstrip(\"}\")\n\t break\n\t \n\t # Parse shelved information\n\t expiration \u003d \"\"\n\t \n\t if shelveEntry:\n\t \n\t # Extract expiration (between \"expiration:\" and \",\")\n\t if \"expiration:\" in shelveEntry:\n\t exp_part \u003d shelveEntry.split(\"expiration:\")[1]\n\t if \",\" in exp_part:\n\t expiration \u003d exp_part.split(\",\")[0].strip()\n\t else:\n\t expiration \u003d exp_part.strip()\n\t \n\t tableData.append({\n\t \"name\": alarm.getName(),\n\t \"path\": alarm_path,\n\t \"activeTime\": system.date.format(system.date.fromMillis(startTime), \"yyyy-MM-dd HH:mm:ss\"),\n\t \"expirationTime\": expiration,\n\t \"priority\": str(alarm.getPriority())\n\t })\n\t \n\t self.custom.shelvedAlarms \u003d tableData\n\t \n\t\t\n\ttry:\n\t\tpageid \u003d self.view.custom.activityLogger.alt_pageid + \u0027/\u0027+ self.props.tabs[previousValue.value]\n\t\tpageid \u003d pageid.replace(\u0027 \u0027,\u0027\u0027)\n\t\tpayload \u003d activityLog.productMetrics.createActivityPayload(self.view, \u0027page\u0027, pageid, pageid)\n\t\tself.view.custom.activityLogger.start_time \u003d system.date.now()\n\t\tif payload:\n\t\t\tsystem.perspective.sendMessage(\u0027activityLogger-TabChanged\u0027, payload \u003d payload, scope \u003d \u0027page\u0027)\n\texcept:\n\t\tpass" - } - } - }, - "props": { - "contentStyle": { - "classes": "Background-Styles/Grey-Background" - }, - "currentTabIndex": 2, - "menuType": "modern", - "style": { - "classes": "Background-Styles/Grey-Background" - }, - "tabSize": { - "width": 140 - }, - "tabStyle": { - "active": { - "backgroundColor": "#EEEEEE", - "borderLeftColor": "#7FFF00", - "borderLeftStyle": "solid", - "borderLeftWidth": 5, - "borderTopLeftRadius": 5, - "borderTopRightRadius": 5, - "color": "#000000", - "fontFamily": "Arial", - "fontWeight": "bold", - "outlineStyle": "none", - "textDecoration": "underline" - }, - "inactive": { - "backgroundColor": "#D7D7D7", - "borderLeftColor": "#FFFFFF", - "borderTopLeftRadius": 5, - "borderTopRightRadius": 5, - "color": "#969696", - "fontFamily": "Arial" - } - }, - "tabs": [ - "Active Alarms", - "Alarm Hit List", - "Historical" - ] - }, - "type": "ia.container.tab" - } - ], - "meta": { - "name": "root" - }, - "props": { - "style": { - "classes": "Background-Styles/Main-Background" - } - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "activityLogger-TabChanged", - "pageScope": true, - "script": "\t# implement your handler here\n\tif payload:\n\t\tactivityLog.productMetrics.callActivityLoggerAPI(payload)", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.container.flex" - } -} \ No newline at end of file diff --git a/.resources/a04ac16924c099df9b6edd389b1cbd65fa01685f563acacdcb230fab6bc387ed b/.resources/a04ac16924c099df9b6edd389b1cbd65fa01685f563acacdcb230fab6bc387ed deleted file mode 100644 index 15729c84..00000000 --- a/.resources/a04ac16924c099df9b6edd389b1cbd65fa01685f563acacdcb230fab6bc387ed +++ /dev/null @@ -1,617 +0,0 @@ -{ - "custom": { - "color": "#C2C2C2", - "priority": "No Active Alarms", - "state": "Closed" - }, - "params": { - "forceFaultStatus": null, - "tagProps": [ - "System/MCM01/Station/EPC/UL1_3_EPC1", - "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},{view.params.forceFaultStatus},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},{view.params.forceFaultStatus},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},{view.params.forceFaultStatus},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" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - }, - "persistent": true - }, - "params.forceFaultStatus": { - "paramDirection": "input", - "persistent": true - }, - "params.tagProps": { - "paramDirection": "inout", - "persistent": true - } - }, - "props": { - "defaultSize": { - "height": 38, - "width": 25 - } - }, - "root": { - "children": [ - { - "meta": { - "name": "PullChord_Part2" - }, - "position": { - "height": 1, - "width": 1, - "x": 0.0015, - "y": 0.0005 - }, - "propConfig": { - "props.elements[1].fill.paint": { - "binding": { - "config": { - "expression": "if({view.custom.state} \u003d \"Closed\", \"#000000\", {view.custom.color})" - }, - "type": "expr" - } - }, - "props.elements[2].visibility": { - "binding": { - "config": { - "expression": "if(\r\n {view.custom.color} \u003d \"#FF0000\" \u0026\u0026 \r\n {parent.meta.visible},\r\n \u0027visible\u0027, \r\n \u0027hidden\u0027\r\n)" - }, - "type": "expr" - } - }, - "props.elements[3].visibility": { - "binding": { - "config": { - "expression": "if(\r\n {view.custom.color} \u003d \"#00FF00\" \u0026\u0026 \r\n {parent.meta.visible} || {view.custom.state} \u003d \"Closed\",\r\n \u0027visible\u0027, \r\n \u0027hidden\u0027\r\n)" - }, - "type": "expr" - } - } - }, - "props": { - "elements": [ - { - "d": "M 0.01621377,0.01595147 H 25.93719 V 41.138171 H 0.01621377 Z", - "fill": { - "paint": "#AAAAAA" - }, - "name": "path", - "stroke": { - "paint": "#000000", - "width": 1 - }, - "type": "path" - }, - { - "d": "m 20.752995,30.343588 a 7.2578735,7.1963887 0 0 1 -7.257873,7.196389 7.2578735,7.1963887 0 0 1 -7.2578736,-7.196389 7.2578735,7.1963887 0 0 1 7.2578736,-7.196389 7.2578735,7.1963887 0 0 1 7.257873,7.196389 z", - "fill": {}, - "name": "path", - "stroke": { - "paint": "#000000", - "width": 1 - }, - "type": "path" - }, - { - "d": "m 13.785537,6.4238337 -7.0747349,-3.1261989 -0.985,1.7060701 6.2447349,4.563801 z", - "fill": { - "paint": "#0000FF" - }, - "name": "path", - "stroke": { - "paint": "#000000", - "width": 1 - }, - "type": "path" - }, - { - "d": "m 12.141737,10.447495 -5.3573679,5.578853 1.2662916,1.509108 6.4243953,-4.30722 z", - "fill": { - "paint": "#0000FF" - }, - "name": "path", - "stroke": { - "paint": "#000000", - "width": 1 - }, - "type": "path" - }, - { - "d": "m 21.18,10 a 5,5 0 0 1 -5,5 5,5 0 0 1 -5,-5 5,5 0 0 1 5,-5 5,5 0 0 1 5,5 z", - "fill": { - "paint": "#0000FF" - }, - "name": "path", - "stroke": { - "paint": "#000000", - "width": 1 - }, - "type": "path" - } - ], - "viewBox": "-0.5 -0.5 27 42" - }, - "type": "ia.shapes.svg" - } - ], - "events": { - "dom": { - "onClick": { - "config": { - "script": "\tsystem.perspective.openDock(\u0027Docked-East-EPC\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" - }, - "scope": "G", - "type": "script" - }, - "onMouseEnter": { - "config": { - "script": "\tself.props.style.transform \u003d \"scale(2)\"\n\tfrom time import sleep\n\t\n\talarm \u003d []\n\tmessage \u003d None\n\t\n#\tsleep(0.5)\n\t\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message" - }, - "scope": "G", - "type": "script" - }, - "onMouseLeave": { - "config": { - "script": "\tself.props.style.transform \u003d \"scale(1)\"" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "root", - "tooltip": { - "enabled": true, - "location": "top-left", - "style": {} - } - }, - "propConfig": { - "meta.tooltip.style.classes": { - "binding": { - "config": { - "expression": "{view.custom.priority}" - }, - "transforms": [ - { - "fallback": "Alarms-Styles/NoAlarm", - "inputType": "scalar", - "mappings": [ - { - "input": "High", - "output": "Alarms-Styles/High" - } - ], - "outputType": "style-list", - "type": "map" - } - ], - "type": "expr" - } - }, - "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_safety" - }, - "type": "property" - } - } - }, - "props": { - "aspectRatio": "25:38", - "mode": "percent", - "style": { - "cursor": "pointer", - "transform": "scale(1)", - "transition": "transform 100ms linear" - } - }, - "type": "ia.container.coord" - } -} \ No newline at end of file diff --git a/.resources/a1e7abbdbdd31c59ec1f995819f32b80d6f7c6a5bb445848ce44355dcd1f31b1 b/.resources/a1e7abbdbdd31c59ec1f995819f32b80d6f7c6a5bb445848ce44355dcd1f31b1 deleted file mode 100644 index 5e044fda..00000000 --- a/.resources/a1e7abbdbdd31c59ec1f995819f32b80d6f7c6a5bb445848ce44355dcd1f31b1 +++ /dev/null @@ -1 +0,0 @@ -{"onStartup":"\t# Auto-login for SAT9_SCADA\n\tif not session.props.auth.authenticated:\n\t # Auto-login with minimal credentials for local access\n\t try:\n\t system.perspective.login(username='auto', password='auto', force=True)\n\t except:\n\t pass\n\t\n\t# Initialize session properties from parent\n\ttags_to_read = system.tag.readBlocking([\"Configuration/FC\", \"Configuration/aws\"])\n\tsession.custom.fc = tags_to_read[0].value if tags_to_read[0].quality.isGood() else \"SAT9\"\n\ttry:\n\t aws = system.util.jsonDecode(tags_to_read[1].value) if tags_to_read[1].quality.isGood() else {\"prefix\": \"eu\", \"region\": \"eu-west-1\"}\n\t prefix = aws.get(\"prefix\", \"eu\")\n\t region = aws.get(\"region\", \"eu-west-1\")\n\t session.custom.aws.prefix = prefix\n\t session.custom.aws.region = region\n\texcept:\n\t session.custom.aws.prefix = \"eu\"\n\t session.custom.aws.region = \"eu-west-1\"\n\t\n\tsession.custom.covert = False\n\tsession.custom.download_url = None\n\tsession.custom.alarm_filter.show_map = False\n\tsession.custom.alarm_filter.magnificaiton = \"x2\"","onShutdown":"#\tsystem.perspective.logout()","onBarcodeDataReceived":"\t","onBluetoothReceived":"\t","onAccelerometerDataReceived":"\t","onNdefDataReceived":"\t"} \ No newline at end of file diff --git a/.resources/a512704ace52242d820bd7b6dde5b4c15fc27029700c4d570a54b53380b75e23 b/.resources/a512704ace52242d820bd7b6dde5b4c15fc27029700c4d570a54b53380b75e23 deleted file mode 100644 index bf6d08ca..00000000 --- a/.resources/a512704ace52242d820bd7b6dde5b4c15fc27029700c4d570a54b53380b75e23 +++ /dev/null @@ -1,591 +0,0 @@ -{ - "custom": { - "color": "#C2C2C2", - "priority": "No Active Alarms", - "state": "Closed", - "type": 0 - }, - "params": { - "directionLeft": false, - "tagProps": [ - "System/MCM04/Chute/FL_CHUTE/FL3012_1CH", - "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},{view.params.forceFaultStatus},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},{view.params.forceFaultStatus},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},{view.params.forceFaultStatus},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" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "tag" - }, - "persistent": true - }, - "custom.type": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "0": "{view.params.tagProps[0]}", - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Chute_Type" - }, - "transforms": [ - { - "expression": "coalesce({value},{view.params.forceFaultStatus},0)", - "type": "expression" - } - ], - "type": "tag" - }, - "persistent": true - }, - "params.directionLeft": { - "paramDirection": "input", - "persistent": true - }, - "params.tagProps": { - "paramDirection": "inout", - "persistent": true - } - }, - "props": { - "defaultSize": { - "height": 20, - "width": 29 - } - }, - "root": { - "children": [ - { - "meta": { - "name": "RunningStatus" - }, - "position": { - "grow": 1 - }, - "propConfig": { - "position.rotate.angle": { - "binding": { - "config": { - "path": "view.params.directionLeft" - }, - "transforms": [ - { - "expression": "if({value}, \u0027180deg\u0027, \u00270deg\u0027)", - "type": "expression" - } - ], - "type": "property" - } - }, - "props.elements[0].fill.paint": { - "binding": { - "config": { - "expression": "if(\r\n {view.custom.state} \u003d \"Closed\",\r\n \"#FFFFFF\",\r\n {view.custom.color}\r\n)\r\n" - }, - "type": "expr" - } - } - }, - "props": { - "elements": [ - { - "d": "M 0 0 L 40 0 L 40 0 L 70 30 L 40 60 L 40 60 L 0 60 L 0 0 Z", - "fill": {}, - "name": "path", - "stroke": { - "paint": "#4c4c4c", - "width": 3 - }, - "type": "path" - } - ], - "style": { - "overflow": "hidden" - }, - "viewBox": "-1.5 -1.5 73 63" - }, - "type": "ia.shapes.svg" - } - ], - "events": { - "dom": { - "onClick": { - "config": { - "script": "\tsystem.perspective.openDock(\u0027Docked-East-SNP\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" - }, - "scope": "G", - "type": "script" - }, - "onMouseEnter": { - "config": { - "script": "\tself.props.style.transform \u003d \"scale(2)\"\n\tfrom time import sleep\n\t\n\talarm \u003d []\n\tmessage \u003d None\n\t\n#\tsleep(0.5)\n\t\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message" - }, - "scope": "G", - "type": "script" - }, - "onMouseLeave": { - "config": { - "script": "\tself.props.style.transform \u003d \"scale(1)\"" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "root", - "tooltip": { - "enabled": true, - "location": "top-left", - "style": {} - } - }, - "propConfig": { - "meta.tooltip.style.classes": { - "binding": { - "config": { - "expression": "{view.custom.priority}" - }, - "transforms": [ - { - "fallback": "Alarms-Styles/NoAlarm", - "inputType": "scalar", - "mappings": [ - { - "input": "High", - "output": "Alarms-Styles/High" - }, - { - "input": "Medium", - "output": "Alarms-Styles/Medium" - }, - { - "input": "Low", - "output": "Alarms-Styles/Low" - }, - { - "input": "Diagnostic", - "output": "Alarms-Styles/Diagnostic" - } - ], - "outputType": "style-list", - "type": "map" - } - ], - "type": "expr" - } - }, - "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" - } - } - }, - "props": { - "justify": "center", - "style": { - "transform": "scale(1)", - "transition": "transform 100ms linear" - } - }, - "type": "ia.container.flex" - } -} \ No newline at end of file diff --git a/.resources/a9294388b0299ca5f48ec161c602587157dbc7a19dc46648440264308431e7e3 b/.resources/a9294388b0299ca5f48ec161c602587157dbc7a19dc46648440264308431e7e3 deleted file mode 100644 index 2632d09f67b7e29a41011290c4ca6a091c7b62f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10784 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 0: - items.pop() - candidate_id = "/".join(items) - page_id = global_project_page_ids.get(candidate_id) - if page_id: - found = True - final_source_id = candidate_id - break - length_of_items -= 1 - else: - found = True - - if not found or not page_id: - open_pop_up("No page id found") - return - - parts = final_source_id.split("/") - device = parts[-1] - - if "MCM" in device: - pathToDevice = "/".join(parts[:3]) - else: - idx = final_source_id.find(device) - pathToDevice = final_source_id[:idx + len(device)] if idx != -1 else final_source_id - - highlight_path = pathToDevice + "||High" - - view_prefix = "Detailed-Views/" - page_path = page_id - if not page_id.startswith("/"): - page_path = view_prefix + page_id - - system.perspective.navigate( - view=page_path, - params={"highlightTagPath": highlight_path} - ) - -def get_child_scada_projects(): - """ - This function returns an alphabetically sorted list of - child SCADA projects, that inherit the SCADA_PERSPECTIVE_PARENT_PROJECT. - Each of these projects follow the naming convention "{WHID}_SCADA" - - :return: List[str]; List of project names on gateway - """ - pattern = '[A-Z]{3}[0-9]|K[A-Z]{3}_SCADA' - all_projects = system.project.getProjectNames() - return sorted([x for x in all_projects if re.match(pattern, x)]) diff --git a/.resources/d62420d51993c93f7c9728ea7b7a5114de208e24928321bb1dcaf837c0b09065 b/.resources/d62420d51993c93f7c9728ea7b7a5114de208e24928321bb1dcaf837c0b09065 deleted file mode 100644 index efc3c27fca2c69a89ea8eb912704761e7ebf2876..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69052 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%0A5cL>(Na}d8f6(pJ)sy^QC6R+Z-Td15 zk3Qo`Oq%;gUwAXx>T4B0`F~Lv`|%t0BYlFUDkWi06^oy>caDE9a0(^$4CkA_PmbvyLhKwk=XpkVHrmKVF4=yq=zf- z4^l-h#Lka*n1GY^W&kyJ0r8>dND}k+cqc-uUe7MH<-8ti1FI&>@{WrzD*q?tR^Y_k zi^$K7PzyGn$v(rAvLxVR@zvSW?aGPITE&LW$75O!*XDt8$+)IX+1cWZOiUJlNBDDf z^+!yz#x3kPZP$PAEU-qTH@jUyg80p`4jDaLf4pIl6O1Pxj&!# zR#MC~BbOnG)klR+IsMW5Jgr`cl~wl>gO30q^^ZH7a6bh!f{8IJ;B3o59qPY%ZvA=x z9L#%<*RI*le-!XzOkf9KEoA$%U?wC35)V!167#tKeA6Yf-%o!o-(uP%K+X%YtR!4^ zAx=r={qvfKYO(+A=LqaO{CP*IY-*1GA!PmaVjq)#q6B~bK>ARvB)J;H_*Z$o*ni)P zq2u?9eopu)Gb#M@z3*iPb_n5t9{$IR@2|zPvg!R7pHuGN_f=8?0uFEsy<&d3mUino zheMoV@^hLTI?WWTUuAszOw4qy)$UiTo&k*nEMxy{&>^A64*_=|`9E5)?TH9r%J|3U zN4Y?4d!Z18ry7+{MeNr`{-@>Rp2+rt$}8lJ_v2UVz7G5}4f)k8uD=t#oUy$T!{4cr z#(?)Ol`h9E{fz8)7aD5+XDhZ}yoD1ipP>Az5pE2Cj~w&j`+weY0O&uLJt>jqArW4G zmeiUE3*h=(jJ0uszUsbABQdHRzC<1W)!*cR>ocq@6~-{e#A^o5-E2QQUz+|dg4$!? zx8Jk^9`_|S(t}n0Zyj=J%JAd{P*5K_jcy+zOS50yP#kzPId4=PZyQ?4 zHz=z1ubQO;uI(~9R#5jhR!}GVGlqs3Wc!PIE^Y2z-L(DPU*9SK$7@eweEXbNr~8${ z_Jtsa2;hkG`=NJ%8_grFJ~Dqjf0oFs!`k<4E@`uTE%k5RnhJ^NT0NH1JQ!_H;T+s= zuCd|Nok%I>_)o`C1j^aLJ3od`j$O|2D`?bXldl|e15i%Hg0H*JubhK&Byt%fQy@pZ!Wr1B>Xd_7{K81^#2bAIe-OeK?)A9{k-H@mJ^+ z02MPaIx4FUZnMJqL>R zhe2#QNoIZb@4&nl5!n7O?gW3Wc(3skqp}M5PNg)4Ws3iozWuih74*9iWf}e+X9WAk zSHCk^M?N*6`uXeJ_^-kB?^CN^!T#|h;5pgPON80*V!ukGU+*zto<{crJr4*v=4{r^N7LoVQLl^*r)X;e#V0RzJlbJI-yuQ0Ys zKciLnWrnyN=y^j(9lH8tmQs2ZiXz#5@Sd4|`i+(he=Hd`jk=zP@BDbwq zwT*Xb`76AtGaG;}p54ky=CwpaL7BeY)o@E21qITnWjbdgkAm_=<@$G-SRKAPuUUF$ z0HeY7Qw#h<6ckmtCu>y248-vD8pBHd3?B|W6qFB=rU1rVX5#x)YM2)V_$Mc&ELkLO H9Qc0#op^il diff --git a/.resources/dcabe955b9dbe475ef32e2b223760fd8f795d53f436a75312d8535926d4d514e b/.resources/dcabe955b9dbe475ef32e2b223760fd8f795d53f436a75312d8535926d4d514e deleted file mode 100644 index 4d6ddb02..00000000 --- a/.resources/dcabe955b9dbe475ef32e2b223760fd8f795d53f436a75312d8535926d4d514e +++ /dev/null @@ -1,1206 +0,0 @@ -{ - "custom": { - "activityLogger": { - "alt_pageid": "Header", - "start_time": { - "$": [ - "ts", - 192, - 1758619353064 - ], - "$ts": 1758619353063 - } - } - }, - "events": { - "system": { - "onShutdown": { - "config": { - "script": "\tactivityLog.productMetrics.callLogger(self, \u0027page\u0027)" - }, - "scope": "G", - "type": "script" - }, - "onStartup": { - "config": { - "script": "\tself.custom.activityLogger.start_time \u003d system.date.now()" - }, - "scope": "G", - "type": "script" - } - } - }, - "params": { - "params": {}, - "size": "medium" - }, - "propConfig": { - "custom.activityLogger": { - "persistent": true - }, - "custom.activityLogger.pageid": { - "binding": { - "config": { - "path": "page.props.path" - }, - "transforms": [ - { - "code": " if value \u003d\u003d\u0027/\u0027 or value \u003d\u003d \u0027\u0027 or value \u003d\u003d None:\n return self.custom.activityLogger.alt_pageid.lower()\n else:\n return value[1:].lower()\n\treturn value", - "type": "script" - } - ], - "type": "property" - } - }, - "params.params": { - "paramDirection": "input", - "persistent": true - }, - "params.size": { - "paramDirection": "input" - } - }, - "props": { - "defaultSize": { - "height": 58 - } - }, - "root": { - "children": [ - { - "children": [ - { - "events": { - "dom": { - "onDoubleClick": { - "config": { - "page": "/Monitron" - }, - "scope": "C", - "type": "nav" - } - } - }, - "meta": { - "name": "Icon" - }, - "position": { - "basis": "30px" - }, - "props": { - "color": "#FFFFFF", - "path": "material/vibration", - "style": { - "classes": "" - } - }, - "type": "ia.display.icon" - }, - { - "meta": { - "name": "Label" - }, - "position": { - "basis": "41px" - }, - "propConfig": { - "props.text": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "direct", - "tagPath": "[IEC_SCADA_TAG_PROVIDER]Monitron/monitron_data" - }, - "transforms": [ - { - "code": "\treturn value.getRowCount()", - "type": "script" - } - ], - "type": "tag" - } - } - }, - "props": { - "style": { - "color": "#FFFFFF", - "textAlign": "center" - } - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "FlexContainer_0" - }, - "position": { - "basis": "80px", - "display": false - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "events": { - "dom": { - "onDoubleClick": { - "config": { - "page": "/Oil" - }, - "scope": "C", - "type": "nav" - } - } - }, - "meta": { - "name": "Icon" - }, - "position": { - "basis": "30px" - }, - "props": { - "color": "#FFFFFF", - "path": "material/opacity", - "style": { - "classes": "" - } - }, - "type": "ia.display.icon" - }, - { - "meta": { - "name": "Label" - }, - "position": { - "basis": "41px" - }, - "propConfig": { - "props.text": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "direct", - "tagPath": "[IEC_SCADA_TAG_PROVIDER]Oil/oil_condition_monitoring" - }, - "transforms": [ - { - "code": "\treturn value.getRowCount()", - "type": "script" - } - ], - "type": "tag" - } - } - }, - "props": { - "style": { - "color": "#FFFFFF", - "textAlign": "center" - } - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "FlexContainer_1" - }, - "position": { - "basis": "80px", - "display": false - }, - "type": "ia.container.flex" - }, - { - "meta": { - "name": "Image" - }, - "position": { - "basis": "120px" - }, - "propConfig": { - "position.display": { - "binding": { - "config": { - "expression": "{view.params.size} \u003d \"large\"" - }, - "type": "expr" - } - } - }, - "props": { - "fit": { - "height": 30, - "mode": "fill" - }, - "source": "/system/images/Builtin/amazon_rme_logo.png" - }, - "type": "ia.display.image" - }, - { - "meta": { - "hasDelegate": true, - "name": "Spacer Start" - }, - "position": { - "basis": "16px", - "shrink": 0 - }, - "props": { - "text": " " - }, - "type": "ia.display.label" - }, - { - "events": { - "dom": { - "onClick": { - "config": { - "id": "Docked-West", - "type": "toggle" - }, - "scope": "C", - "type": "dock" - } - } - }, - "meta": { - "name": "Menu Dock" - }, - "position": { - "basis": "24px", - "shrink": 0 - }, - "propConfig": { - "position.display": { - "binding": { - "config": { - "expression": "{view.params.size} !\u003d \"large\"" - }, - "type": "expr" - } - } - }, - "props": { - "color": "#FFFFFF", - "path": "material/menu", - "style": { - "classes": "Header/Icon", - "marginRight": "10px" - } - }, - "type": "ia.display.icon" - }, - { - "children": [ - { - "meta": { - "name": "FlexContainer" - }, - "position": { - "basis": "550px", - "grow": 1 - }, - "type": "ia.container.flex" - }, - { - "meta": { - "name": "Label" - }, - "position": { - "basis": "300px", - "shrink": 0 - }, - "propConfig": { - "custom.area": { - "binding": { - "config": { - "expression": "if(isNull({this.custom.lookup_path}), \"\",\r\ntry(jsonGet({this.custom.plc_dict},\"Area\"),\"\"))" - }, - "type": "expr" - } - }, - "custom.lookup_path": { - "binding": { - "config": { - "expression": "try(if({this.custom.path}[1,0]\u003d\"DetailedView\", {this.custom.path}[2,0],\r\n\"\"), \"\")\r\n" - }, - "type": "expr" - } - }, - "custom.path": { - "binding": { - "config": { - "path": "page.props.path" - }, - "transforms": [ - { - "expression": "split({value},\"/\")", - "type": "expression" - } - ], - "type": "property" - } - }, - "custom.path_to_display": { - "binding": { - "config": { - "expression": "if(len({this.custom.lookup_path})\u003c1, \"\",\r\nif(len({this.custom.area}) \u003c1, {this.custom.lookup_path},\r\nif(len({this.custom.sub_area}) \u003e 0, concat({this.custom.lookup_path} + \" / \" + {this.custom.area} + \" / \" + {this.custom.sub_area}),\r\nconcat({this.custom.lookup_path} + \" / \" + {this.custom.area}))))" - }, - "type": "expr" - } - }, - "custom.plc_dict": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]Configuration/PLC" - }, - "transforms": [ - { - "expression": "jsonGet({value},{this.custom.lookup_path})", - "type": "expression" - } - ], - "type": "tag" - } - }, - "custom.sub_area": { - "binding": { - "config": { - "expression": "if(isNull({this.custom.lookup_path}), \"\",\r\ntry(jsonGet({this.custom.plc_dict},\"SubArea\"), \"\"))" - }, - "type": "expr" - } - }, - "position.display": { - "binding": { - "config": { - "expression": "{view.params.size} \u003d \"large\"" - }, - "type": "expr" - } - }, - "props.text": { - "binding": { - "config": { - "path": "this.custom.path_to_display" - }, - "type": "property" - } - } - }, - "props": { - "style": { - "color": "#FFFFFF", - "fontFamily": "Arial", - "fontWeight": "bold", - "textAlign": "center" - } - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "FlexContainer_0" - }, - "position": { - "basis": "150px", - "grow": 1 - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "Area" - }, - "position": { - "basis": "200px", - "grow": 1 - }, - "type": "ia.container.flex" - }, - { - "meta": { - "name": "Icon_1", - "tooltip": { - "enabled": true - } - }, - "position": { - "basis": "30px" - }, - "propConfig": { - "meta.tooltip.text": { - "binding": { - "config": { - "expression": "{[System]Gateway/Database/MariaDB/Available}" - }, - "transforms": [ - { - "fallback": "Database Connection Status: LOST", - "inputType": "scalar", - "mappings": [ - { - "input": true, - "output": "Database Connection Status: GOOD" - }, - { - "input": false, - "output": "Database Connection Status: LOST" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "expr" - } - }, - "props.color": { - "binding": { - "config": { - "expression": "{[System]Gateway/Database/MariaDB/Available}" - }, - "transforms": [ - { - "fallback": "#FF0000", - "inputType": "scalar", - "mappings": [ - { - "input": true, - "output": "#47FF47" - }, - { - "input": false, - "output": "#FF0000" - } - ], - "outputType": "color", - "type": "map" - } - ], - "type": "expr" - }, - "onChange": { - "enabled": null, - "script": " db_tag_path \u003d \"[System]Gateway/Database/MariaDB/Available\"\n\t\n if not (system.tag.readBlocking([db_tag_path])[0].value):\n \tsystem.perspective.openPopup(\"errorPopup\",\u0027PopUp-Views/DatabaseError\u0027, title\u003d\"Database Error\")\n\t" - }, - "persistent": true - } - }, - "props": { - "color": "#47FF47", - "path": "material/table_chart" - }, - "type": "ia.display.icon" - }, - { - "meta": { - "hasDelegate": true, - "name": "Spacer 1" - }, - "position": { - "basis": "20px" - }, - "props": { - "text": " " - }, - "type": "ia.display.label" - }, - { - "custom": { - "buttonid": "HeaderNotifyIcon", - "entries": [ - { - "PrimaryKey": "2024-05-08 10:17:51", - "author": "pll", - "body": "Introducing our brand new Announcement Feature! 🎉 Stay in the loop with important updates, new features, planned downtime events, all in one place. Never miss out again! Check it out now and stay tuned for the latest updates. 🔊", - "childproj": "https://eu-preprod.scada2.rme.amazon.dev: MAN2", - "expire": "2024-05-09 05:00:00", - "link1": "https://", - "link1title": "", - "link2": "https://", - "link2title": "", - "priority": "Healthy", - "publish": "2024-05-08 10:08:33", - "title": "📢 Exciting News! 📢", - "whids": "" - } - ], - "entryCount": 1, - "highestPriority": 5 - }, - "events": { - "dom": { - "onClick": [ - { - "config": { - "draggable": true, - "id": "ioNP2CXn", - "modal": true, - "overlayDismiss": true, - "resizable": true, - "showCloseIcon": true, - "title": "Notifications", - "type": "open", - "viewParams": { - "entryCount": "{/root/Icon_0.custom.entryCount}", - "instances": "{/root/Icon_0.custom.entries}" - }, - "viewPath": "PopUp-Views/Notify-Tool/Notify-Popup", - "viewportBound": false - }, - "scope": "C", - "type": "popup" - }, - { - "config": { - "script": "\tbuttonid \u003d self.custom.buttonid\n\tactivityLog.productMetrics.callLogger(self.view, \u0027click\u0027, buttonid)" - }, - "scope": "G", - "type": "script" - } - ] - } - }, - "meta": { - "name": "Icon_0", - "tooltip": { - "enabled": true, - "location": "bottom-right", - "style": { - "whiteSpace": "pre" - }, - "text": "📢 Exciting News! 📢\n" - } - }, - "position": { - "basis": "30px" - }, - "propConfig": { - "custom.refreshMSG": { - "binding": { - "config": { - "expression": "now(600000)" - }, - "type": "expr" - }, - "onChange": { - "enabled": null, - "script": "\tsystem.perspective.sendMessage(\u0027refreshNotifyIcon\u0027)" - } - }, - "position.display": { - "binding": { - "config": { - "path": "view.custom.EntriesList" - }, - "transforms": [ - { - "code": "\tfrom datetime import datetime\n\t\n#\tRead entries from dynamo table\n\treturns \u003d notifyTool.ReadFromDynamo.DynamoReader()\n\tEntriesList \u003d returns[\u0027Items\u0027]\n\tEntriesList.reverse()\n#\treturn EntriesList\n\n#\tCreate empty list and now string\n\tpublishdates \u003d []\n\tnow \u003d datetime.now()\n\tnowstr \u003d str(now)[:19]\n\tactiveNotify \u003d False\n\twhid \u003d self.session.custom.fc\n\tstates \u003d {\u0027Healthy\u0027:5,\u0027Diagnostic\u0027:4, \u0027Low\u0027:3, \u0027Medium\u0027:2, \u0027High\u0027:1}\n#\tCheck EntriesList for active entries based on publish and expire times\n\tactiveEntries \u003d []\n\ttooltip \u003d []\n\tcount \u003d 0\n\thighestPriority \u003d 5\n\tfor e in EntriesList:\n\t\t\n\t\tif len(e[\u0027whids\u0027])\u003e0:\n\t\t\tif whid in e[\u0027whids\u0027]:\n\t\t\t\tif nowstr \u003e\u003d e[\u0027publish\u0027] and nowstr\u003c\u003dstr( e[\u0027expire\u0027]):\n\t\t\t\t\tactiveEntries.append(e)\n\t\t\t\t\ttooltip.append(e[\u0027title\u0027])\n\t\t\t\t\tactiveNotify \u003d True\n\t\t\t\t\tcount +\u003d1\n\t\t\t\t\tif states[e[\u0027priority\u0027]] \u003c highestPriority:\n\t\t\t\t\t\thighestPriority \u003d states[e[\u0027priority\u0027]]\n\t\telse:\n\t\t\tif nowstr \u003e\u003d e[\u0027publish\u0027] and nowstr\u003c\u003dstr( e[\u0027expire\u0027]):\n\t\t\t\tactiveEntries.append(e)\n\t\t\t\ttooltip.append(e[\u0027title\u0027])\n\t\t\t\tactiveNotify \u003d True\t\t\n\t\t\t\tcount +\u003d1\t\n\t\t\t\tif states[e[\u0027priority\u0027]] \u003c highestPriority:\n\t\t\t\t\thighestPriority \u003d states[e[\u0027priority\u0027]]\n\n\t\t\t\n\ttooltiptext \u003d \u0027\u0027\n\tfor i in tooltip:\n\t\ttooltiptext+\u003d i+\u0027\\n\u0027\n\tself.custom.entries \u003d activeEntries\n\tself.custom.highestPriority \u003d highestPriority\n\tself.custom.entryCount \u003d count\n\tself.meta.tooltip.text \u003d tooltiptext\t\n\n\n#\treturn returns\n#\treturn activeEntries\n\treturn activeNotify", - "type": "script" - } - ], - "type": "property" - } - }, - "props.color": { - "binding": { - "config": { - "path": "this.custom.highestPriority" - }, - "transforms": [ - { - "fallback": "state5", - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": "state1" - }, - { - "input": 2, - "output": "state2" - }, - { - "input": 3, - "output": "state3" - }, - { - "input": 4, - "output": "state4" - }, - { - "input": 5, - "output": "state5" - } - ], - "outputType": "scalar", - "type": "map" - }, - { - "code": "\ttest \u003d self.session.custom.colours.colour_impaired\n\tstatecolor \u003d self.session.custom.colours[value]\n\treturn statecolor", - "type": "script" - } - ], - "type": "property" - } - } - }, - "props": { - "path": "material/campaign", - "style": { - "marginLeft": 5, - "marginRight": 5 - } - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "refreshNotifyIcon", - "pageScope": true, - "script": "\n\tself.refreshBinding(\u0027props.color\u0027)\n\tself.refreshBinding(\u0027position.display\u0027)", - "sessionScope": true, - "viewScope": false - } - ] - }, - "type": "ia.display.icon" - }, - { - "meta": { - "hasDelegate": true, - "name": "Spacer End_3" - }, - "position": { - "basis": "20px", - "shrink": 0 - }, - "props": { - "text": " " - }, - "type": "ia.display.label" - }, - { - "custom": { - "buttonid": "HeaderLegendIcon" - }, - "events": { - "dom": { - "onClick": [ - { - "config": { - "draggable": false, - "id": "TZyBcXB7", - "modal": true, - "overlayDismiss": true, - "resizable": false, - "showCloseIcon": false, - "type": "open", - "viewPath": "PopUp-Views/Legend_Popup/Legend-popup-view", - "viewportBound": true - }, - "scope": "C", - "type": "popup" - }, - { - "config": { - "script": "\tbuttonid \u003d self.custom.buttonid\n\tactivityLog.productMetrics.callLogger(self.view, \u0027click\u0027, buttonid)" - }, - "scope": "G", - "type": "script" - } - ] - } - }, - "meta": { - "name": "Icon", - "tooltip": { - "delay": 250, - "enabled": true, - "sustain": 1000, - "text": "Legend" - } - }, - "position": { - "basis": "35px" - }, - "props": { - "color": "#FFFFFF", - "path": "material/legend_toggle", - "style": { - "classes": "", - "marginRight": 20 - } - }, - "type": "ia.display.icon" - }, - { - "children": [ - { - "events": { - "dom": { - "onClick": { - "config": { - "script": "\tsystem.perspective.navigate(page \u003d \"/Real-Time\")" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Icon" - }, - "position": { - "basis": "30px" - }, - "propConfig": { - "props.color": { - "binding": { - "config": { - "path": "../Label.props.text" - }, - "transforms": [ - { - "code": "\t\n\treturn \"red\" if value \u003e 0 else \"#fff\"", - "type": "script" - } - ], - "type": "property" - } - } - }, - "props": { - "path": "material/notifications_active", - "style": { - "classes": "" - } - }, - "type": "ia.display.icon" - }, - { - "meta": { - "name": "Label" - }, - "position": { - "basis": "41px" - }, - "propConfig": { - "props.text": { - "binding": { - "config": { - "polling": { - "enabled": true, - "rate": "3" - }, - "queryPath": "GetActiveAlarmsByLocationAndPriority", - "returnFormat": "json" - }, - "transforms": [ - { - "code": "\ttotal \u003d sum(row[\"Count\"] for row in value if \"Count\" in row and row[\"Count\"] is not None)\n\treturn total", - "type": "script" - } - ], - "type": "query" - } - } - }, - "props": { - "style": { - "color": "#FFFFFF", - "textAlign": "center" - } - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "FlexContainer", - "tooltip": { - "enabled": true - } - }, - "position": { - "basis": "80px" - }, - "propConfig": { - "meta.tooltip.text": { - "binding": { - "config": { - "expression": "{./Label.props.text} + \" active alarms in the system\"" - }, - "type": "expr" - } - } - }, - "props": { - "justify": "flex-end", - "style": { - "cursor": "pointer" - } - }, - "type": "ia.container.flex" - }, - { - "meta": { - "hasDelegate": true, - "name": "Spacer End_2" - }, - "position": { - "basis": "20px", - "shrink": 0 - }, - "props": { - "text": " " - }, - "type": "ia.display.label" - }, - { - "custom": { - "covert": true - }, - "events": { - "dom": { - "onClick": { - "config": { - "script": "\tdevice_list \u003d tags.tag_utilities.get_devices(self.session.custom.fc)\n\ttags.tag_utilities.reset_disconnect_tags(self.session.custom.fc, device_list)\n\tAWS.wbsckt_abort.close_websckt()" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Icon_2", - "tooltip": { - "enabled": true - } - }, - "position": { - "basis": "30px" - }, - "propConfig": { - "custom.heartbeat_received": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]System/wbsckt_heartbeat_interval" - }, - "transforms": [ - { - "expression": "if(secondsBetween(todate({value}),todate(now())) \u003e 70, False, True)", - "type": "expression" - } - ], - "type": "tag" - } - }, - "custom.wbsckt_running": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "indirect", - "references": { - "fc": "{session.custom.fc}" - }, - "tagPath": "[{fc}_SCADA_TAG_PROVIDER]System/wbsckt_running" - }, - "transforms": [ - { - "expression": "if({value} \u003d True \u0026\u0026 ({this.custom.heartbeat_received} \u003d True) , True, False)", - "type": "expression" - } - ], - "type": "tag" - } - }, - "meta.tooltip.text": { - "binding": { - "config": { - "path": "this.custom.wbsckt_running" - }, - "transforms": [ - { - "fallback": "", - "inputType": "scalar", - "mappings": [ - { - "input": true, - "output": "websocket running" - }, - { - "input": false, - "output": "websocket disconnected" - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "property" - } - }, - "props.color": { - "binding": { - "config": { - "path": "this.custom.wbsckt_running" - }, - "enabled": false, - "transforms": [ - { - "fallback": "#000000", - "inputType": "scalar", - "mappings": [ - { - "input": false, - "output": "#FF4747" - }, - { - "input": true, - "output": "#FFFFFF" - } - ], - "outputType": "color", - "type": "map" - } - ], - "type": "property" - } - } - }, - "props": { - "color": "#FFFFFF", - "path": "material/location_city", - "style": { - "cursor": "pointer" - } - }, - "type": "ia.display.icon" - }, - { - "meta": { - "name": "Label" - }, - "position": { - "shrink": 0 - }, - "propConfig": { - "position.basis": { - "binding": { - "config": { - "expression": "len({this.props.text}) * 11 + \"px\"" - }, - "type": "expr" - } - }, - "props.text": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "direct", - "tagPath": "Configuration/FC" - }, - "type": "tag" - } - } - }, - "props": { - "icon": "material/building", - "style": { - "borderWidth": "0.25px", - "color": "#FFFFFF", - "textAlign": "", - "textIndent": 10 - }, - "textStyle": { - "lineBreak": "auto" - } - }, - "type": "ia.display.label" - }, - { - "meta": { - "hasDelegate": true, - "name": "Spacer End" - }, - "position": { - "basis": "20px", - "shrink": 0 - }, - "props": { - "text": " " - }, - "type": "ia.display.label" - }, - { - "events": { - "dom": { - "onClick": { - "config": { - "script": "\tif self.session.props.auth.authenticated:\n\t\tsystem.perspective.logout()\n\telse:\n\t\tsystem.perspective.login()" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "User" - }, - "position": { - "basis": "30px", - "shrink": 0 - }, - "props": { - "path": "material/person", - "style": { - "classes": "Header/Icon", - "color": "#FFFFFF" - } - }, - "type": "ia.display.icon" - }, - { - "events": { - "dom": { - "onClick": { - "config": { - "script": "\tif self.session.props.auth.authenticated:\n\t\tsystem.perspective.logout()\n\telse:\n\t\tsystem.perspective.login()" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "hasDelegate": true, - "name": "Sign In" - }, - "position": { - "basis": "50px", - "shrink": 0 - }, - "propConfig": { - "position.display": { - "binding": { - "config": { - "expression": "{view.params.size} !\u003d \"small\"" - }, - "type": "expr" - } - }, - "props.text": { - "binding": { - "config": { - "path": "session.props.auth.user.userName" - }, - "transforms": [ - { - "code": " try:\n if quality is not None and hasattr(quality, \"isGood\") and not quality.isGood():\n return \"LOGIN\"\n except:\n pass\n\n if value is None:\n return \"LOGIN\"\n s \u003d unicode(value) if not isinstance(value, basestring) else value # Py2/Jython\n if not s or s.strip().lower() in (\"null\", \"none\"):\n return \"LOGIN\"\n\n return s.split(\"@\", 1)[0]", - "type": "script" - } - ], - "type": "property" - } - } - }, - "props": { - "style": { - "classes": "Header/Icon", - "color": "#FFFFFF", - "cursor": "pointer", - "marginLeft": "4px" - } - }, - "type": "ia.display.label" - }, - { - "meta": { - "hasDelegate": true, - "name": "Spacer End_0" - }, - "position": { - "basis": "20px", - "shrink": 0 - }, - "props": { - "text": " " - }, - "type": "ia.display.label" - }, - { - "events": { - "dom": { - "onClick": { - "config": { - "script": "\tsystem.perspective.closeSession()" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Exit", - "tooltip": { - "enabled": true, - "location": "bottom-left", - "style": { - "fontFamily": "Arial", - "fontSize": 12 - }, - "tail": false, - "text": "Exit Application" - } - }, - "position": { - "basis": "30px", - "shrink": 0 - }, - "props": { - "path": "material/exit_to_app", - "style": { - "classes": "Header/Icon", - "color": "#FFFFFF", - "cursor": "pointer" - } - }, - "type": "ia.display.icon" - }, - { - "meta": { - "hasDelegate": true, - "name": "Spacer End_1" - }, - "position": { - "basis": "16px", - "shrink": 0 - }, - "props": { - "text": " " - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "root" - }, - "props": { - "justify": "flex-end" - }, - "type": "ia.container.flex" - } -} \ No newline at end of file diff --git a/.resources/ddc5cf82edfe7fe3ce76f82636d529350733b1f462ab8b1364de146e0fb506b2 b/.resources/ddc5cf82edfe7fe3ce76f82636d529350733b1f462ab8b1364de146e0fb506b2 deleted file mode 100644 index 5bd3c648..00000000 --- a/.resources/ddc5cf82edfe7fe3ce76f82636d529350733b1f462ab8b1364de146e0fb506b2 +++ /dev/null @@ -1,956 +0,0 @@ -{ - "custom": { - "activityLogger": { - "alt_pageid": "home" - } - }, - "params": { - "viewFocus": "value" - }, - "propConfig": { - "custom.activityLogger": { - "persistent": true - }, - "custom.activityLogger.pageid": { - "binding": { - "config": { - "expression": "{page.props.path}" - }, - "transforms": [ - { - "code": "\tif value \u003d\u003d\u0027/\u0027 or value \u003d\u003d \u0027\u0027 or value \u003d\u003d None:\n\t\treturn self.custom.activityLogger.alt_pageid.lower()\n\telse:\n\t\treturn value[1:].lower()", - "type": "script" - } - ], - "type": "expr" - } - }, - "custom.activityLogger.start_time": { - "binding": { - "config": { - "expression": "now()" - }, - "type": "expr" - } - }, - "params.viewFocus": { - "paramDirection": "input", - "persistent": true - } - }, - "props": { - "defaultSize": { - "height": 326, - "width": 400 - } - }, - "root": { - "children": [ - { - "children": [ - { - "meta": { - "name": "Label" - }, - "position": { - "basis": "36px", - "shrink": 0 - }, - "props": { - "style": { - "background-color": "#555555", - "fontWeight": "bold", - "textAlign": "center" - }, - "text": "Status Filters" - }, - "type": "ia.display.label" - }, - { - "children": [ - { - "custom": { - "buttonid": "status_filters/all" - }, - "events": { - "component": { - "onActionPerformed": [ - { - "config": { - "script": "\tpayload \u003d {}\n\tif self.props.selected:\n\t\tvalue \u003d True\n\telse:\n\t\tvalue \u003d False\n\t\n\tpayload[\"data\"] \u003d value\n\t\n\tsystem.perspective.sendMessage(\"select-all-filters\", \n\t\t\t\t\t\t\t\t\tpayload \u003d payload, \n\t\t\t\t\t\t\t\t\tscope \u003d \"view\")" - }, - "scope": "G", - "type": "script" - }, - { - "config": { - "script": "\tif not self.props.selected:\n\t\tbuttonid \u003d self.custom.buttonid\n\t\tactivityLog.logger.callLogger(self.view, \u0027click\u0027, buttonid)" - }, - "scope": "G", - "type": "script" - } - ] - } - }, - "meta": { - "name": "Select-All", - "tooltip": { - "delay": 250 - } - }, - "position": { - "basis": "36px" - }, - "propConfig": { - "props.enabled": { - "binding": { - "config": { - "expression": "if ({session.custom.alarm_filter.show_map}\u003dTrue \u0026\u0026 {session.custom.view_in_focus}\u003d\u0027/MAP-Home\u0027, True, False)" - }, - "enabled": false, - "type": "expr" - } - }, - "props.selected": { - "binding": { - "config": { - "expression": "if({session.custom.alarm_filter.show_diagnostic} \u0026\u0026 \r\n{session.custom.alarm_filter.show_gateways} \u0026\u0026\r\n{session.custom.alarm_filter.show_low_alarm} \u0026\u0026\r\n{session.custom.alarm_filter.show_running} \u0026\u0026\r\n{session.custom.alarm_filter.show_camera_jams} \u0026\u0026\r\n{session.custom.alarm_filter.show_fio} \u0026\u0026\r\n{session.custom.alarm_filter.show_safety}, True, False)" - }, - "type": "expr" - } - } - }, - "props": { - "checkedIcon": { - "color": { - "disabled": "#FFFFFF", - "enabled": "#FFFFFF" - } - }, - "style": { - "color": "#FFFFFF", - "fontFamily": "Arial", - "fontSize": 12, - "fontWeight": "bold", - "marginLeft": 10, - "marginRight": 10 - }, - "text": "Select All" - }, - "type": "ia.input.checkbox" - }, - { - "custom": { - "buttonid": "status_filters/low_alarms" - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tif not self.props.selected:\n\t\tbuttonid \u003d self.custom.buttonid\n\t\tactivityLog.logger.callLogger(self.view, \u0027click\u0027, buttonid)\n\t\tactivityLog.productMetrics.callLogger(self.view, \u0027click\u0027, buttonid)" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Low Alarms", - "tooltip": { - "delay": 250 - } - }, - "position": { - "basis": "36px" - }, - "propConfig": { - "props.enabled": { - "binding": { - "config": { - "expression": "if ({session.custom.alarm_filter.show_map}\u003dTrue \u0026\u0026 {session.custom.view_in_focus}\u003d\u0027/MAP-Home\u0027, True, False)" - }, - "enabled": false, - "type": "expr" - } - }, - "props.selected": { - "binding": { - "config": { - "bidirectional": true, - "path": "session.custom.alarm_filter.show_low_alarm" - }, - "type": "property" - } - } - }, - "props": { - "checkedIcon": { - "color": { - "disabled": "#FFFFFF", - "enabled": "#FFFFFF" - } - }, - "style": { - "color": "#FFFFFF", - "fontFamily": "Arial", - "fontSize": 12, - "fontWeight": "bold", - "marginLeft": 10, - "marginRight": 10 - }, - "text": "Show Low Alarms" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "select-all-filters", - "pageScope": false, - "script": "\tdata \u003d payload[\"data\"]\n\tself.props.selected \u003d data\n\tsystem.perspective.print(data)", - "sessionScope": false, - "viewScope": true - } - ] - }, - "type": "ia.input.checkbox" - }, - { - "custom": { - "buttonid": "status_filters/diagnostic_alarms" - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tif not self.props.selected:\n\t\tbuttonid \u003d self.custom.buttonid\n\t\tactivityLog.logger.callLogger(self.view, \u0027click\u0027, buttonid)\n\t\tactivityLog.productMetrics.callLogger(self.view, \u0027click\u0027, buttonid)" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Diagnostic", - "tooltip": { - "delay": 250 - } - }, - "position": { - "basis": "36px" - }, - "propConfig": { - "props.enabled": { - "binding": { - "config": { - "expression": "if ({session.custom.alarm_filter.show_map}\u003dTrue \u0026\u0026 {session.custom.view_in_focus}\u003d\u0027/MAP-Home\u0027, True, False)" - }, - "enabled": false, - "type": "expr" - } - }, - "props.selected": { - "binding": { - "config": { - "bidirectional": true, - "path": "session.custom.alarm_filter.show_diagnostic" - }, - "type": "property" - } - } - }, - "props": { - "checkedIcon": { - "color": { - "disabled": "#FFFFFF", - "enabled": "#FFFFFF" - } - }, - "style": { - "color": "#FFFFFF", - "fontFamily": "Arial", - "fontSize": 12, - "fontWeight": "bold", - "marginLeft": 10, - "marginRight": 10 - }, - "text": "Show Diagnostic Alarms" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "select-all-filters", - "pageScope": false, - "script": "\tdata \u003d payload[\"data\"]\n\tself.props.selected \u003d data", - "sessionScope": false, - "viewScope": true - } - ] - }, - "type": "ia.input.checkbox" - }, - { - "custom": { - "buttonid": "status_filters/running_status" - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tif not self.props.selected:\n\t\tbuttonid \u003d self.custom.buttonid\n\t\tactivityLog.logger.callLogger(self.view, \u0027click\u0027, buttonid)\n\t\tactivityLog.productMetrics.callLogger(self.view, \u0027click\u0027, buttonid)" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Running", - "tooltip": { - "delay": 250 - } - }, - "position": { - "basis": "36px" - }, - "propConfig": { - "props.enabled": { - "binding": { - "config": { - "expression": "if ({session.custom.alarm_filter.show_map}\u003dTrue \u0026\u0026 {session.custom.view_in_focus}\u003d\u0027/MAP-Home\u0027, True, False)" - }, - "enabled": false, - "type": "expr" - } - }, - "props.selected": { - "binding": { - "config": { - "bidirectional": true, - "path": "session.custom.alarm_filter.show_running" - }, - "type": "property" - } - } - }, - "props": { - "checkedIcon": { - "color": { - "disabled": "#FFFFFF", - "enabled": "#FFFFFF" - } - }, - "style": { - "color": "#FFFFFF", - "fontFamily": "Arial", - "fontSize": 12, - "fontWeight": "bold", - "marginLeft": 10, - "marginRight": 10 - }, - "text": "Show Running Status" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "select-all-filters", - "pageScope": false, - "script": "\tdata \u003d payload[\"data\"]\n\tself.props.selected \u003d data", - "sessionScope": false, - "viewScope": true - } - ] - }, - "type": "ia.input.checkbox" - }, - { - "custom": { - "buttonid": "status_filters/low_alarms" - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tif not self.props.selected:\n\t\tbuttonid \u003d self.custom.buttonid\n\t\tactivityLog.logger.callLogger(self.view, \u0027click\u0027, buttonid)\n\t\tactivityLog.productMetrics.callLogger(self.view, \u0027click\u0027, buttonid)" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Show-Buttons", - "tooltip": { - "delay": 250 - } - }, - "position": { - "basis": "36px" - }, - "propConfig": { - "props.enabled": { - "binding": { - "config": { - "expression": "if ({session.custom.alarm_filter.show_map}\u003dTrue \u0026\u0026 {session.custom.view_in_focus}\u003d\u0027/MAP-Home\u0027, True, False)" - }, - "enabled": false, - "type": "expr" - } - }, - "props.selected": { - "binding": { - "config": { - "bidirectional": true, - "path": "session.custom.alarm_filter.show_buttons" - }, - "type": "property" - } - } - }, - "props": { - "checkedIcon": { - "color": { - "disabled": "#FFFFFF", - "enabled": "#FFFFFF" - } - }, - "style": { - "color": "#FFFFFF", - "fontFamily": "Arial", - "fontSize": 12, - "fontWeight": "bold", - "marginLeft": 10, - "marginRight": 10 - }, - "text": "Show Buttons" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "select-all-filters", - "pageScope": false, - "script": "\tdata \u003d payload[\"data\"]\n\tself.props.selected \u003d data\n\tsystem.perspective.print(data)", - "sessionScope": false, - "viewScope": true - } - ] - }, - "type": "ia.input.checkbox" - }, - { - "custom": { - "buttonid": "status_filters/estops_pullChords" - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tif not self.props.selected:\n\t\tbuttonid \u003d self.custom.buttonid\n\t\tactivityLog.logger.callLogger(self.view, \u0027click\u0027, buttonid)\n\t\tactivityLog.productMetrics.callLogger(self.view, \u0027click\u0027, buttonid)" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "E-Stops", - "tooltip": { - "delay": 250 - } - }, - "position": { - "basis": "36px" - }, - "propConfig": { - "props.enabled": { - "binding": { - "config": { - "expression": "if ({session.custom.alarm_filter.show_map}\u003dTrue \u0026\u0026 {session.custom.view_in_focus}\u003d\u0027/MAP-Home\u0027, True, False)" - }, - "enabled": false, - "type": "expr" - } - }, - "props.selected": { - "binding": { - "config": { - "bidirectional": true, - "path": "session.custom.alarm_filter.show_safety" - }, - "type": "property" - } - } - }, - "props": { - "checkedIcon": { - "color": { - "disabled": "#FFFFFF", - "enabled": "#FFFFFF" - } - }, - "style": { - "color": "#FFFFFF", - "fontFamily": "Arial", - "fontSize": 12, - "fontWeight": "bold", - "marginLeft": 10, - "marginRight": 10 - }, - "text": "Show E-Stops \u0026 Pull Chords" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "select-all-filters", - "pageScope": false, - "script": "\tdata \u003d payload[\"data\"]\n\tself.props.selected \u003d data", - "sessionScope": false, - "viewScope": true - } - ] - }, - "type": "ia.input.checkbox" - }, - { - "custom": { - "buttonid": "status_filters/gateways" - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tif not self.props.selected:\n\t\tbuttonid \u003d self.custom.buttonid\n\t\tactivityLog.logger.callLogger(self.view, \u0027click\u0027, buttonid)\n\t\tactivityLog.productMetrics.callLogger(self.view, \u0027click\u0027, buttonid)" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Show-DPM-MCM", - "tooltip": { - "delay": 250 - } - }, - "position": { - "basis": "36px" - }, - "propConfig": { - "props.enabled": { - "binding": { - "config": { - "expression": "if ({session.custom.alarm_filter.show_map}\u003dTrue \u0026\u0026 {session.custom.view_in_focus}\u003d\u0027/MAP-Home\u0027, True, False)" - }, - "enabled": false, - "type": "expr" - } - }, - "props.selected": { - "binding": { - "config": { - "bidirectional": true, - "path": "session.custom.alarm_filter.show_gateways" - }, - "type": "property" - } - } - }, - "props": { - "checkedIcon": { - "color": { - "disabled": "#FFFFFF", - "enabled": "#FFFFFF" - } - }, - "style": { - "color": "#FFFFFF", - "fontFamily": "Arial", - "fontSize": 12, - "fontWeight": "bold", - "marginLeft": 10, - "marginRight": 10 - }, - "text": "Show DPM \u0026 MCM" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "select-all-filters", - "pageScope": false, - "script": "\tdata \u003d payload[\"data\"]\n\tself.props.selected \u003d data", - "sessionScope": false, - "viewScope": true - } - ] - }, - "type": "ia.input.checkbox" - }, - { - "custom": { - "buttonid": "status_filters/camera_jams" - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tif not self.props.selected:\n\t\tbuttonid \u003d self.custom.buttonid\n\t\tactivityLog.logger.callLogger(self.view, \u0027click\u0027, buttonid)\n\t\tactivityLog.productMetrics.callLogger(self.view, \u0027click\u0027, buttonid)" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Show-Camera-Jams", - "tooltip": { - "delay": 250 - } - }, - "position": { - "basis": "36px" - }, - "propConfig": { - "props.enabled": { - "binding": { - "config": { - "expression": "if ({session.custom.alarm_filter.show_map}\u003dTrue \u0026\u0026 {session.custom.view_in_focus}\u003d\u0027/MAP-Home\u0027, True, False)" - }, - "enabled": false, - "type": "expr" - } - }, - "props.selected": { - "binding": { - "config": { - "bidirectional": true, - "path": "session.custom.alarm_filter.show_camera_jams" - }, - "type": "property" - } - } - }, - "props": { - "checkedIcon": { - "color": { - "disabled": "#FFFFFF", - "enabled": "#FFFFFF" - } - }, - "style": { - "color": "#FFFFFF", - "fontFamily": "Arial", - "fontSize": 12, - "fontWeight": "bold", - "marginLeft": 10, - "marginRight": 10 - }, - "text": "Show Camera Jams" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "select-all-filters", - "pageScope": false, - "script": "\tdata \u003d payload[\"data\"]\n\tself.props.selected \u003d data", - "sessionScope": false, - "viewScope": true - } - ] - }, - "type": "ia.input.checkbox" - }, - { - "custom": { - "buttonid": "status_filters/fio_sio" - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tif not self.props.selected:\n\t\tbuttonid \u003d self.custom.buttonid\n\t\tactivityLog.logger.callLogger(self.view, \u0027click\u0027, buttonid)\n\t\tactivityLog.productMetrics.callLogger(self.view, \u0027click\u0027, buttonid)" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Show-Fios", - "tooltip": { - "delay": 250 - } - }, - "position": { - "basis": "36px" - }, - "propConfig": { - "props.enabled": { - "binding": { - "config": { - "expression": "if ({session.custom.alarm_filter.show_map}\u003dTrue \u0026\u0026 {session.custom.view_in_focus}\u003d\u0027/MAP-Home\u0027, True, False)" - }, - "enabled": false, - "type": "expr" - } - }, - "props.selected": { - "binding": { - "config": { - "bidirectional": true, - "path": "session.custom.alarm_filter.show_fio" - }, - "type": "property" - } - } - }, - "props": { - "checkedIcon": { - "color": { - "disabled": "#FFFFFF", - "enabled": "#FFFFFF" - } - }, - "style": { - "color": "#FFFFFF", - "fontFamily": "Arial", - "fontSize": 12, - "fontWeight": "bold", - "marginLeft": 10, - "marginRight": 10 - }, - "text": "Show FIO \u0026 SIO" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "select-all-filters", - "pageScope": false, - "script": "\tdata \u003d payload[\"data\"]\n\tself.props.selected \u003d data", - "sessionScope": false, - "viewScope": true - } - ] - }, - "type": "ia.input.checkbox" - } - ], - "meta": { - "name": "FlexContainer" - }, - "position": { - "grow": 1 - }, - "props": { - "direction": "column", - "justify": "space-between" - }, - "type": "ia.container.flex" - }, - { - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tsystem.perspective.closePopup(\u0027\u0027)" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button" - }, - "position": { - "basis": "30px", - "shrink": 0 - }, - "props": { - "box-shadow": "5px 5px 5px", - "style": { - "backgroundColor": "#555555", - "classes": "Background-Styles/Controller", - "marginBottom": 5, - "marginLeft": 20, - "marginRight": 20, - "marginTop": 5 - }, - "text": "Close" - }, - "type": "ia.input.button" - } - ], - "meta": { - "name": "Status" - }, - "position": { - "basis": "200px", - "shrink": 0 - }, - "props": { - "direction": "column", - "style": { - "borderColor": "#FFFFFF", - "borderStyle": "solid", - "borderWidth": 1 - } - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "meta": { - "name": "Label_0" - }, - "position": { - "basis": "36px", - "shrink": 0 - }, - "props": { - "style": { - "background-color": "#555555", - "fontWeight": "bold", - "textAlign": "center" - }, - "text": "Home Card View" - }, - "type": "ia.display.label" - }, - { - "children": [ - { - "custom": { - "buttonid": "status_filters/orderby" - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tif self.props.selected:\n\t\tbuttonid \u003d self.custom.buttonid\n\t\tactivityLog.logger.callLogger(self.view, \u0027click\u0027, buttonid)\n\t\tactivityLog.productMetrics.callLogger(self.view, \u0027click\u0027, buttonid)" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Order-By" - }, - "position": { - "basis": "36px" - }, - "propConfig": { - "props.selected": { - "binding": { - "config": { - "bidirectional": true, - "path": "session.custom.alarm_filter.orderby" - }, - "type": "property" - } - } - }, - "props": { - "checkedIcon": { - "color": { - "disabled": "#FFFFFF", - "enabled": "#FFFFFF" - } - }, - "style": { - "color": "#FFFFFF", - "fontFamily": "Arial", - "fontSize": 12, - "fontWeight": "bold", - "marginLeft": 10, - "marginRight": 10 - }, - "text": "Order Cards By Area" - }, - "type": "ia.input.checkbox" - }, - { - "meta": { - "name": "Label" - }, - "position": { - "basis": "32px", - "display": false - }, - "propConfig": { - "props.text": { - "binding": { - "config": { - "path": "view.params.viewFocus" - }, - "transforms": [ - { - "code": "#\tvalue \u003d value.split(\u0027/\u0027)\n#\tvalue \u003d value.pop()\n\n\treturn value", - "type": "script" - } - ], - "type": "property" - } - } - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "FlexContainer_0" - }, - "position": { - "basis": 65, - "grow": 1 - }, - "props": { - "direction": "column", - "justify": "space-between" - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "Accessibility" - }, - "position": { - "basis": "200px", - "shrink": 0 - }, - "props": { - "direction": "column", - "style": { - "borderColor": "#FFFFFF", - "borderStyle": "solid", - "borderWidth": 1 - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "root" - }, - "props": { - "style": { - "classes": "Background-Styles/Controller" - } - }, - "type": "ia.container.flex" - } -} \ No newline at end of file diff --git a/.resources/de1a5ffc0c934d46e6485750f7264d3c33fec8318737b27013dadf7f8564633b b/.resources/de1a5ffc0c934d46e6485750f7264d3c33fec8318737b27013dadf7f8564633b deleted file mode 100644 index 7c18889bfebf1b2feaac81f5acf3a8327fd78e41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63118 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�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 Cd7h&H diff --git a/.resources/ec712aeed83accc8330aa4aec745561ec63e149d7137017994130778962781b6 b/.resources/ec712aeed83accc8330aa4aec745561ec63e149d7137017994130778962781b6 deleted file mode 100644 index c88c1c705bbf8e459953cfe97817b121ddb7db9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1660 zcmV-?27~#DP)()xz zLo&w4m+6sLmNl-T(5}}-9=_6S@AUS3+tWS0Gm`4{1_-iThpwpzMlu}KCYf=c&}cNF zs>&W&FH}WAv)L5nW^_rmTBu;u>EHLhp(_~|pCZy|G*GS8`9rDQ|1gr}ixreBvT)yw z?x%=!bgPhPu!LGohQ{95QaFPEBciA(H(rw)9Ch}POumBGlL6i~juW zF3GIWm6<2AjL3*Hz}x%jzV}8U(VHg_iH{%Jh{m%>#Zo|O52X=~Wia81;cSb&lao3q#Q+zILQ|+mI8eANBu!dKHiTRlLf! z@SMq>C)J&2X!tYIz*mkWza|*>>GxGu$9JwA9xax5yZ0VF|BrCJqnqyNas94ti`mUV z3dM3DEHh*i89WKra5uUJ*Q$c?jEcXr9Zb+~PQ$yr-f8z?g7tM4+xT{L8o$nlnXZC+ z<8F*5>v-agULE(F%rqX*_rz;Qj8uTg1z75r3`Zao@4XWe+C(c;?SA zc^N;wo#(obrh@o=K7rQ>8TTgKyx%X=Aw2Q0simnjtyCzA%BRQpY8&rztgYAZfw}IZ zvKQ<7$a?SPqAS1$ow-~C)?4gX?_BRIqqes5OZWR^hF-sn`tj$GtkZ`DJ7p}&Dh)p8 zMwlx{G8)#|z$%mk>Ys-qo6oAI+YYI@lg20uP!PS&=nNWb%S=Y;_wz6{H3ePQZHJVt zb%<0Mk&hM-A@m!u1CqPYSyY-$g~de^W4V?oA`1%(f)P6)$!vkDRAt1{1(b7n425Kj zvJ^Ndk#IOH7_kGA#_AMW;>TS<{5$2x-N_X93T2@|h?Ght!H6A@-qPi`J25ovrHTh!hG1 z!H6B`5@~eTkuNmZ=`%6UK3vA8DE<0Or{6;hb~0RJ87rABp}LyKGgkYLW(W6(+wB&N z*a1GZ8ui{1#oW|NCX<2@JFqv{Ey!BATuv}z2P{v&Gcz-S5j)VcvRjjWY0IYHh#ly} zh*4{`%-33Tb8~_bJ0L0S4VKF_1i~4<4fLD8f;X&;A2j`@(`mto9gq~ZjucB(INf2E zI)nJZm1UW0a3YyZMlfOrcFOoBG)?21T@(2=Q&Vepc2+QA2lkZlw4F1O)=UvO)L{Q# zrC+OvWV2bph#jz;NGg>QjMxEA#Mo)Hg2&H;#m>n%di}X z;(@1Ns*Eodi-OUE0>#G7n>TUd#0f}qz8DBIzBq#Z2!8hD@g_I;u|gyg5e!-l`t;b^ z+QRVgFpeHQic6O+L2Bt52v(Kx2Yt{(<6K)?V;_TMT)lb~XU?3##fumB2D=qyJfYvX zl`vxC;lqbGcI+7U#;H@MtWUoOc^KLo;57IP7cTHXzkdC?^+d?!{R6NH#lP32 z%aqt~#r^|j9ycJ{v}z>)0000IMs;HB_*W zZpmfl0=J!E$jlu~AHujZ`U-ALd<$LpI&S@6E>fGZB$IRI-rxE9pW*YNY*cs7V~0hcvCV4)*xOtQcWeT%ymie zLK{fifL;)P?U8FcaO3*>Jo*bI{sE z$*_YW1Lg!=Yn-l_Mf3Tgsp=Oh#ZsYy^E4(rW4>Uu*LX`nAInj(tLVa2s=|7(4{#Gm zA6^#IL4{LWHNA#wg&!b7vf;Cl2&Cs<5zNd2 z&LH#6);sT-T{a9b-c;D!pYL=NgLbOj!(QjOTC4WD)kd#<-nuxg)z5L8!!0tjx$lZV zWv!1{-{H1i(>=&sENWQ_InwQsk9*x+z9g&|qicUxA%-!^6l+NC!l|xZ#Ye8-6?LoLGm0M7|Q8g59 dL}T`6F){t8n?13AJ3g3|`U7_?2V55f005i5BYXe= diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Controller-Views/CommandControlActions/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Controller-Views/CommandControlActions/resource.json index 5772079b..78df90f0 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Controller-Views/CommandControlActions/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Controller-Views/CommandControlActions/resource.json @@ -9,9 +9,9 @@ ], "attributes": { "lastModification": { - "actor": "external", - "timestamp": "2025-08-28T09:46:53Z" + "actor": "admin", + "timestamp": "2025-10-01T12:25:15Z" }, - "lastModificationSignature": "ea40a1ce01b7292f5c19db61f25a18478f889e68fc3bebd1a04452d4234a35ad" + "lastModificationSignature": "d072e5e8ea47c667e8140f35d9030a336078988e05d2802c61f9d5e76a6d6b5f" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Controller-Views/CommandControlAlarms/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Controller-Views/CommandControlAlarms/resource.json index c8e18238..84b147a0 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Controller-Views/CommandControlAlarms/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Controller-Views/CommandControlAlarms/resource.json @@ -10,8 +10,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-09-02T11:00:18Z" + "timestamp": "2025-10-01T12:28:39Z" }, - "lastModificationSignature": "b6a45e00501159a82bfca120fa0854856d024b93252a11351944a7de76fc7b85" + "lastModificationSignature": "e4067b173a2029ae19a5b0c7ce6519f39e0ff159563e5740bf4634e8040f95b6" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Controller-Views/CommandControlAlarms/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Controller-Views/CommandControlAlarms/view.json index f05b47d3..3814eaf2 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Controller-Views/CommandControlAlarms/view.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Controller-Views/CommandControlAlarms/view.json @@ -12,21 +12,30 @@ "$": [ "ds", 192, - 1756810816047 + 1759321718962 ], "$columns": [ { - "data": [], + "data": [ + "MCM02", + "MCM02" + ], "name": "Location", "type": "String" }, { - "data": [], + "data": [ + "High", + "Low" + ], "name": "Priority", "type": "String" }, { - "data": [], + "data": [ + 1, + 2 + ], "name": "Count", "type": "Long" } @@ -60,7 +69,7 @@ "enabled": true, "rate": "3" }, - "queryPath": "Alarms-autStand/GetActiveAlarmsByLocationAndPriority" + "queryPath": "autStand/Alarms/GetActiveAlarmsByLocationAndPriority" }, "type": "query" }, diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Controller-Views/CommandControlStatus/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Controller-Views/CommandControlStatus/resource.json index 62618cb4..ba66dab9 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Controller-Views/CommandControlStatus/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Controller-Views/CommandControlStatus/resource.json @@ -10,8 +10,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-09-19T14:52:55Z" + "timestamp": "2025-10-01T12:28:39Z" }, - "lastModificationSignature": "82fe10033dc0f7d34622625de96b56b94cdd37e8a748941e2989f86af46b003f" + "lastModificationSignature": "d2241e6430ee1be9ff7a1c067bd62784deae5b573948cd9867cb1a92625a6885" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Controller-Views/CommandControlStatus/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Controller-Views/CommandControlStatus/view.json index 0d580a1f..2ad54416 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Controller-Views/CommandControlStatus/view.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Controller-Views/CommandControlStatus/view.json @@ -4,26 +4,29 @@ "$": [ "ds", 192, - 1758293575644 + 1759321718962 ], "$columns": [ { "data": [ - "MCM01" + "MCM02", + "MCM02" ], "name": "Location", "type": "String" }, { "data": [ - "Diagnostic" + "High", + "Low" ], "name": "Priority", "type": "String" }, { "data": [ - 1 + 1, + 2 ], "name": "Count", "type": "Long" @@ -56,7 +59,7 @@ "enabled": true, "rate": "1" }, - "queryPath": "Alarms-autStand/GetActiveAlarmsByLocationAndPriority" + "queryPath": "autStand/Alarms/GetActiveAlarmsByLocationAndPriority" }, "type": "query" }, diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Controller-Views/ControllerStatus/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Controller-Views/ControllerStatus/resource.json index 898b7ba3..92720a13 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Controller-Views/ControllerStatus/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Controller-Views/ControllerStatus/resource.json @@ -10,8 +10,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-09-19T13:57:26Z" + "timestamp": "2025-10-01T12:26:29Z" }, - "lastModificationSignature": "f9757d8cadae4ed13438f09285a0c19e3da471b488c9796efed1f16309b5227e" + "lastModificationSignature": "6ace5242e481b8101ad177cdc5c4750510d44eb2ed196660cc28b3a20d1434db" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Controller-Views/ControllerStatus/thumbnail.png b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/Controller-Views/ControllerStatus/thumbnail.png index 7a610d41b612acdc762c979b9a01cc3bbd0f26ff..1562f67e1d76327a3a3dd5dfb04dc3256109b5f7 100644 GIT binary patch literal 7584 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

ZTeSYhJq1z0e8 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 diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Overview/Home/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Overview/Home/view.json index 0650e751..07b75fe9 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Overview/Home/view.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Overview/Home/view.json @@ -1,7 +1,5 @@ { - "custom": { - "pageid": "card_view" - }, + "custom": {}, "params": {}, "props": { "defaultSize": { @@ -41,7 +39,7 @@ }, "subarea": "", "tagProps": [ - "MCM01", + "System/MCM01/MCM01", "value", "value", "value", @@ -68,7 +66,7 @@ }, "subarea": "", "tagProps": [ - "MCM02", + "System/MCM02/MCM02", "value", "value", "value",