{ "custom": { "state": 0, "string": "Idle" }, "params": { "tagProps": [ "value", "value", "value", "value", "value", "value", "value", "value", "value", "value" ] }, "propConfig": { "custom.state": { "binding": { "config": { "fallbackDelay": 1, "mode": "indirect", "references": { "0": "{view.params.tagProps[0]}", "fc": "{session.custom.fc}" }, "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE" }, "transforms": [ { "expression": "coalesce({value},{view.params.forceFaultStatus},0)", "type": "expression" }, { "fallback": 0, "inputType": "scalar", "mappings": [ { "input": 1, "output": 1 }, { "input": 2, "output": 2 }, { "input": 3, "output": 3 }, { "input": 4, "output": 4 }, { "input": 5, "output": 5 }, { "input": 6, "output": 6 }, { "input": 7, "output": 7 } ], "outputType": "scalar", "type": "map" } ], "type": "tag" }, "persistent": true }, "custom.string": { "binding": { "config": { "path": "view.custom.state" }, "transforms": [ { "fallback": "Unknown", "inputType": "scalar", "mappings": [ { "input": 0, "output": "Idle" }, { "input": 1, "output": "Actuated" } ], "outputType": "scalar", "type": "map" } ], "type": "property" }, "persistent": true }, "params.tagProps": { "paramDirection": "input", "persistent": true } }, "props": { "defaultSize": { "height": 30, "width": 30 } }, "root": { "children": [ { "meta": { "name": "EPC" }, "position": { "height": 1, "width": 1 }, "propConfig": { "meta.visible": { "binding": { "config": { "path": "session.custom.alarm_filter.show_epc" }, "type": "property" } }, "props.elements[2].fill.paint": { "binding": { "config": { "path": "view.custom.state" }, "transforms": [ { "fallback": "#00FF00", "inputType": "scalar", "mappings": [ { "input": 1, "output": "#FF0000" } ], "outputType": "color", "type": "map" } ], "type": "property" } } }, "props": { "elements": [ { "fill": { "paint": "#FFFF00" }, "height": "20", "name": "rect", "type": "rect", "width": "20", "x": "0", "y": "0" }, { "d": "M 0,0 H 20 V 20 H 0 Z", "fill": { "paint": "transparent" }, "name": "path", "stroke": { "paint": "#000000", "width": "1.5" }, "type": "path" }, { "d": "m 17,10.5 a 7,7 0 0 1 -7,7 7,7 0 0 1 -7,-7 7,7 0 0 1 7,-7 7,7 0 0 1 7,7 z", "fill": {}, "name": "path", "stroke": { "paint": "#000000", "width": "1" }, "type": "path" } ], "viewBox": "0 0 20 20" }, "type": "ia.shapes.svg" } ], "events": { "dom": { "onClick": { "config": { "script": "\tsystem.perspective.openDock(\u0027Docked-East-EPC\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" }, "scope": "G", "type": "script" }, "onMouseEnter": { "config": { "script": "\tfrom time import sleep\n\t\n\talarm \u003d []\n\tmessage \u003d None\n\t\n\tsleep(0.5)\n\t\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message" }, "scope": "G", "type": "script" } } }, "meta": { "name": "root", "tooltip": { "enabled": true } }, "propConfig": { "meta.tooltip.text": { "binding": { "config": { "expression": "\"Source Id: \" + {view.params.tagProps[0]} + \", Status: \" + {view.custom.string}\n" }, "type": "expr" } }, "meta.visible": { "binding": { "config": { "path": "session.custom.alarm_filter.show_epc" }, "type": "property" } } }, "props": { "mode": "percent", "style": { "cursor": "pointer" } }, "type": "ia.container.coord" } }