created proxswitch, sol and controlcabinet devices views. updated MCM01 and MCM02 svg files. Modified MCM01 scada view. Placed devices on the MCM02

This commit is contained in:
Salijoghli 2025-08-12 22:12:20 +04:00
parent 00d04f632d
commit 73d7f3fcaf
22 changed files with 11652 additions and 335 deletions

View File

@ -0,0 +1,17 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"view.json",
"thumbnail.png"
],
"attributes": {
"lastModification": {
"actor": "admin",
"timestamp": "2025-08-12T09:00:30Z"
},
"lastModificationSignature": "a94bcbe892a57bdce5a3dbf826c0796fe1153fa0e9d1f598486281a825949299"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 827 B

View File

@ -0,0 +1,293 @@
{
"custom": {
"disconnected": 0,
"plc": "value",
"priority": 0,
"priority_string": "No active alarms",
"searchId": "value",
"state": 0,
"state_string": "Normal"
},
"params": {
"tagProps": [
"value",
"value",
"value",
"value",
"value",
"value",
"value",
"value",
"value",
"value"
]
},
"propConfig": {
"custom.disconnected": {
"binding": {
"config": {
"path": "view.custom.state"
},
"type": "property"
},
"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\n0, \"No active alarms\",\r\n\"Unknown\")"
},
"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}/STATE"
},
"transforms": [
{
"expression": "coalesce({value},0)",
"type": "expression"
}
],
"type": "tag"
},
"persistent": true
},
"custom.state_string": {
"binding": {
"config": {
"expression": "case({view.custom.state},\r\n1, \"Communication Faulted\",\r\n0, \"Normal\",\r\n\"Unknown\")"
},
"type": "expr"
},
"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": {
"meta.visible": {
"binding": {
"config": {
"path": "session.custom.alarm_filter.show_dpm"
},
"type": "property"
}
},
"props.elements[0].fill.paint": {
"binding": {
"config": {
"expression": "if(\r\n {view.custom.disconnected},\r\n \u0027#808080\u0027,\r\n if(\r\n {view.custom.state} \u003d 1,\r\n \u0027#FF0000\u0027,\r\n if(\r\n {view.custom.state} \u003d 0,\r\n \u0027#00D900\u0027,\r\n \u0027#fff700\u0027\r\n )\r\n )\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": "\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,
"location": "top-left",
"style": {}
}
},
"propConfig": {
"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.text": {
"binding": {
"config": {
"expression": "if(\n {view.custom.disconnected} \u003d false,\n \"Source Id: \" + {view.params.tagProps[0]} + \", Priority: \" + {view.custom.priority_string} + \", State: \" + {view.custom.state_string},\n \"Device Disconnected\"\n)\n"
},
"type": "expr"
}
}
},
"props": {
"aspectRatio": "68:47",
"mode": "percent",
"style": {
"classes": "Disconnects/Device-Connected",
"cursor": "pointer",
"overflow": "hidden"
}
},
"type": "ia.container.coord"
}
}

View File

@ -3,8 +3,8 @@
"disconnected": true,
"plc": "",
"searchId": "value",
"state": 2,
"string": "Faulted"
"state": 0,
"string": "Unknown"
},
"params": {
"tagProps": [
@ -146,7 +146,7 @@
"props": {
"defaultSize": {
"height": 20,
"width": 35
"width": 40
}
},
"root": {
@ -206,7 +206,7 @@
"meta.visible": {
"binding": {
"config": {
"path": "session.custom.alarm_filter.show_beacons"
"path": "session.custom.alarm_filter.show_fio_safety"
},
"type": "property"
}

View File

@ -10,8 +10,8 @@
"attributes": {
"lastModification": {
"actor": "admin",
"timestamp": "2025-08-11T13:11:26Z"
"timestamp": "2025-08-12T16:08:09Z"
},
"lastModificationSignature": "a0acaaf4bc629ed1baa39d91b86da1ccf08ee369e96dda105275d5540855611e"
"lastModificationSignature": "e043b474894c29b12e20abba575e06648d44dd3afaa220a4a2120ca04fe2f1f0"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 304 B

View File

@ -144,8 +144,8 @@
},
"props": {
"defaultSize": {
"height": 123,
"width": 242
"height": 40,
"width": 80
}
},
"root": {

View File

@ -0,0 +1,17 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"view.json",
"thumbnail.png"
],
"attributes": {
"lastModification": {
"actor": "admin",
"timestamp": "2025-08-12T16:14:27Z"
},
"lastModificationSignature": "9ba12364583f1fa47132d08b4805519ccad7b60a53e3755dbf862dd73b2dd59a"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 516 B

View File

@ -0,0 +1,322 @@
{
"custom": {
"plc": "value",
"searchId": "value",
"state": 0,
"string": "Clear"
},
"params": {
"tagProps": [
"value",
"value",
"value",
"value",
"value",
"value",
"value",
"value",
"value",
"value"
]
},
"propConfig": {
"custom.plc": {
"binding": {
"config": {
"path": "view.params.tagProps[0]"
},
"transforms": [
{
"expression": "split({value}, \"/\")[0]",
"type": "expression"
}
],
"type": "property"
},
"persistent": true
},
"custom.searchId": {
"binding": {
"config": {
"path": "session.custom.searchId"
},
"type": "property"
},
"persistent": true
},
"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": "Clear",
"inputType": "scalar",
"mappings": [
{
"input": 1,
"output": "Clear"
},
{
"input": 2,
"output": "Blocked"
},
{
"input": 3,
"output": "Disabled"
},
{
"input": 4,
"output": "Jammed"
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "property"
},
"persistent": true
},
"params.tagProps": {
"paramDirection": "input",
"persistent": true
}
},
"props": {
"defaultSize": {
"height": 40,
"width": 110
}
},
"root": {
"children": [
{
"meta": {
"name": "Photoeye"
},
"position": {
"height": 1,
"width": 1
},
"propConfig": {
"props.elements[0].fill.paint": {
"binding": {
"config": {
"path": "view.custom.state"
},
"transforms": [
{
"fallback": "#00FF00",
"inputType": "scalar",
"mappings": [
{
"input": 0,
"output": "#00FF00"
},
{
"input": 2,
"output": "#000000"
},
{
"input": 3,
"output": "#800080"
},
{
"input": 4,
"output": "#FF0000"
}
],
"outputType": "color",
"type": "map"
}
],
"type": "property"
}
},
"props.elements[2].fill.paint": {
"binding": {
"config": {
"path": "view.custom.state"
},
"transforms": [
{
"fallback": "#00FF00",
"inputType": "scalar",
"mappings": [
{
"input": 0,
"output": "#00FF00"
},
{
"input": 2,
"output": "#000000"
},
{
"input": 3,
"output": "#800080"
},
{
"input": 4,
"output": "#FF0000"
}
],
"outputType": "color",
"type": "map"
}
],
"type": "property"
}
}
},
"props": {
"elements": [
{
"d": "m 28.763932,20 -20,10 V 10 Z",
"fill": {},
"name": "path",
"stroke": {
"paint": "#000000",
"width": "2"
},
"type": "path"
},
{
"stroke": {
"paint": "#000000",
"width": "2"
},
"stroke-dasharray": "4,4",
"type": "line",
"x1": "30",
"x2": "90%",
"y1": "20",
"y2": "20"
},
{
"fill": {},
"height": "20",
"stroke": {
"paint": "#000000",
"width": "2"
},
"type": "rect",
"width": "6",
"x": "90%",
"y": "10"
}
],
"viewBox": "0 0 110 40"
},
"type": "ia.shapes.svg"
}
],
"events": {
"dom": {
"onClick": {
"config": {
"script": "\tsystem.perspective.openDock(\u0027Docked-East-Photoeye\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})"
},
"scope": "G",
"type": "script"
},
"onMouseEnter": {
"config": {
"script": "\tfrom time import sleep\n\n\talarm \u003d []\n\tmessage \u003d None\n\n\tsleep(0.5)\n\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_photoeyes"
},
"type": "property"
}
}
},
"props": {
"mode": "percent",
"style": {
"cursor": "pointer"
}
},
"type": "ia.container.coord"
}
}

View File

@ -0,0 +1,17 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"view.json",
"thumbnail.png"
],
"attributes": {
"lastModification": {
"actor": "admin",
"timestamp": "2025-08-12T18:07:51Z"
},
"lastModificationSignature": "4ec14e47df3ab7b45cee99d1135704daf8909693c2e16239503d13d59230c4f9"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 694 B

View File

@ -0,0 +1,322 @@
{
"custom": {
"plc": "value",
"searchId": "value",
"state": 0,
"string": "Clear"
},
"params": {
"tagProps": [
"value",
"value",
"value",
"value",
"value",
"value",
"value",
"value",
"value",
"value"
]
},
"propConfig": {
"custom.plc": {
"binding": {
"config": {
"path": "view.params.tagProps[0]"
},
"transforms": [
{
"expression": "split({value}, \"/\")[0]",
"type": "expression"
}
],
"type": "property"
},
"persistent": true
},
"custom.searchId": {
"binding": {
"config": {
"path": "session.custom.searchId"
},
"type": "property"
},
"persistent": true
},
"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": "Clear",
"inputType": "scalar",
"mappings": [
{
"input": 1,
"output": "Clear"
},
{
"input": 2,
"output": "Blocked"
},
{
"input": 3,
"output": "Disabled"
},
{
"input": 4,
"output": "Jammed"
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "property"
},
"persistent": true
},
"params.tagProps": {
"paramDirection": "input",
"persistent": true
}
},
"props": {
"defaultSize": {
"height": 40,
"width": 200
}
},
"root": {
"children": [
{
"meta": {
"name": "Photoeye"
},
"position": {
"height": 1,
"width": 1
},
"propConfig": {
"props.elements[0].fill.paint": {
"binding": {
"config": {
"path": "view.custom.state"
},
"transforms": [
{
"fallback": "#00FF00",
"inputType": "scalar",
"mappings": [
{
"input": 0,
"output": "#00FF00"
},
{
"input": 2,
"output": "#000000"
},
{
"input": 3,
"output": "#800080"
},
{
"input": 4,
"output": "#FF0000"
}
],
"outputType": "color",
"type": "map"
}
],
"type": "property"
}
},
"props.elements[2].fill.paint": {
"binding": {
"config": {
"path": "view.custom.state"
},
"transforms": [
{
"fallback": "#00FF00",
"inputType": "scalar",
"mappings": [
{
"input": 0,
"output": "#00FF00"
},
{
"input": 2,
"output": "#000000"
},
{
"input": 3,
"output": "#800080"
},
{
"input": 4,
"output": "#FF0000"
}
],
"outputType": "color",
"type": "map"
}
],
"type": "property"
}
}
},
"props": {
"elements": [
{
"d": "m 28.763932,20 -20,10 V 10 Z",
"fill": {},
"name": "path",
"stroke": {
"paint": "#000000",
"width": "2"
},
"type": "path"
},
{
"stroke": {
"paint": "#000000",
"width": "2"
},
"stroke-dasharray": "4,4",
"type": "line",
"x1": "30",
"x2": "95%",
"y1": "20",
"y2": "20"
},
{
"fill": {},
"height": "20",
"stroke": {
"paint": "#000000",
"width": "2"
},
"type": "rect",
"width": "6",
"x": "95%",
"y": "10"
}
],
"viewBox": "0 0 300 40"
},
"type": "ia.shapes.svg"
}
],
"events": {
"dom": {
"onClick": {
"config": {
"script": "\tsystem.perspective.openDock(\u0027Docked-East-Photoeye\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})"
},
"scope": "G",
"type": "script"
},
"onMouseEnter": {
"config": {
"script": "\tfrom time import sleep\n\n\talarm \u003d []\n\tmessage \u003d None\n\n\tsleep(0.5)\n\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_photoeyes"
},
"type": "property"
}
}
},
"props": {
"mode": "percent",
"style": {
"cursor": "pointer"
}
},
"type": "ia.container.coord"
}
}

View File

@ -0,0 +1,16 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"view.json"
],
"attributes": {
"lastModification": {
"actor": "admin",
"timestamp": "2025-08-12T09:19:32Z"
},
"lastModificationSignature": "10bc24b30abb32062eb8579e777ca9abd01db2f3624e1d59739552d613071ea3"
}
}

View File

@ -0,0 +1,233 @@
{
"custom": {
"plc": "",
"searchId": "value",
"state": 0,
"string": "Inactive"
},
"params": {
"tagProps": [
"/system/mcm01/test",
"value",
"value",
"value",
"value",
"value",
"value",
"value",
"value",
"value"
]
},
"propConfig": {
"custom.plc": {
"binding": {
"config": {
"path": "view.params.tagProps[0]"
},
"transforms": [
{
"expression": "split({value}, \"/\")[0]",
"type": "expression"
}
],
"type": "property"
},
"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}/STATE"
},
"transforms": [
{
"expression": "coalesce({value},0)",
"type": "expression"
},
{
"fallback": null,
"inputType": "scalar",
"mappings": [
{
"input": 1,
"output": 1
},
{
"input": 0,
"output": 0
},
{
"input": 2,
"output": 2
},
{
"input": 3,
"output": 3
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "tag"
},
"persistent": true
},
"custom.string": {
"binding": {
"config": {
"path": "view.custom.state"
},
"transforms": [
{
"fallback": "Unknown",
"inputType": "scalar",
"mappings": [
{
"input": 1,
"output": "Actuated"
},
{
"input": 2,
"output": "Faulted"
},
{
"input": 0,
"output": "Inactive"
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "property"
},
"persistent": true
},
"params.tagProps": {
"paramDirection": "input",
"persistent": true
}
},
"props": {
"defaultSize": {
"height": 20,
"width": 30
}
},
"root": {
"children": [
{
"meta": {
"name": "Label"
},
"position": {
"height": 1,
"width": 1
},
"props": {
"text": "PX",
"textStyle": {
"fontSize": "20px",
"textAlign": "center",
"textTransform": "uppercase"
}
},
"type": "ia.display.label"
}
],
"events": {
"dom": {
"onClick": {
"config": {
"script": "\tsystem.perspective.openDock(\u0027Docked-East-JR\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})"
},
"scope": "G",
"type": "script"
},
"onMouseEnter": {
"config": {
"script": "\tfrom time import sleep\n\t\n\talarm \u003d []\n\tmessage \u003d None\n\t\n\tsleep(0.5)\n\t\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message"
},
"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_beacons"
},
"type": "property"
}
},
"props.style.backgroundColor": {
"binding": {
"config": {
"path": "view.custom.state"
},
"transforms": [
{
"fallback": "#808080",
"inputType": "scalar",
"mappings": [
{
"input": 1,
"output": "#00FF00"
},
{
"input": 2,
"output": "#FF0000"
}
],
"outputType": "color",
"type": "map"
}
],
"type": "property"
}
}
},
"props": {
"mode": "percent",
"style": {
"borderStyle": "solid",
"cursor": "pointer",
"overflow": "hidden"
}
},
"type": "ia.container.coord"
}
}

View File

@ -146,7 +146,7 @@
"props": {
"defaultSize": {
"height": 20,
"width": 35
"width": 40
}
},
"root": {
@ -212,7 +212,7 @@
"meta.visible": {
"binding": {
"config": {
"path": "session.custom.alarm_filter.show_beacons"
"path": "session.custom.alarm_filter.show_fio_safety"
},
"type": "property"
}

View File

@ -0,0 +1,16 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"view.json"
],
"attributes": {
"lastModification": {
"actor": "admin",
"timestamp": "2025-08-12T10:09:16Z"
},
"lastModificationSignature": "2243570644e73f2f31394cbe0f2c90a9f3c5157a9e994029bd2c93301545e8c9"
}
}

View File

@ -0,0 +1,233 @@
{
"custom": {
"plc": "",
"searchId": "value",
"state": 1,
"string": "Actuated"
},
"params": {
"tagProps": [
"/system/mcm01/test",
"value",
"value",
"value",
"value",
"value",
"value",
"value",
"value",
"value"
]
},
"propConfig": {
"custom.plc": {
"binding": {
"config": {
"path": "view.params.tagProps[0]"
},
"transforms": [
{
"expression": "split({value}, \"/\")[0]",
"type": "expression"
}
],
"type": "property"
},
"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}/STATE"
},
"transforms": [
{
"expression": "coalesce({value},0)",
"type": "expression"
},
{
"fallback": null,
"inputType": "scalar",
"mappings": [
{
"input": 1,
"output": 1
},
{
"input": 0,
"output": 0
},
{
"input": 2,
"output": 2
},
{
"input": 3,
"output": 3
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "tag"
},
"persistent": true
},
"custom.string": {
"binding": {
"config": {
"path": "view.custom.state"
},
"transforms": [
{
"fallback": "Unknown",
"inputType": "scalar",
"mappings": [
{
"input": 1,
"output": "Actuated"
},
{
"input": 2,
"output": "Faulted"
},
{
"input": 0,
"output": "Inactive"
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "property"
},
"persistent": true
},
"params.tagProps": {
"paramDirection": "input",
"persistent": true
}
},
"props": {
"defaultSize": {
"height": 22,
"width": 25
}
},
"root": {
"children": [
{
"meta": {
"name": "Label"
},
"position": {
"height": 1,
"width": 1
},
"props": {
"text": "SOL",
"textStyle": {
"fontSize": 10,
"textAlign": "center",
"textTransform": "uppercase"
}
},
"type": "ia.display.label"
}
],
"events": {
"dom": {
"onClick": {
"config": {
"script": "\tsystem.perspective.openDock(\u0027Docked-East-JR\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})"
},
"scope": "G",
"type": "script"
},
"onMouseEnter": {
"config": {
"script": "\tfrom time import sleep\n\t\n\talarm \u003d []\n\tmessage \u003d None\n\t\n\tsleep(0.5)\n\t\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message"
},
"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_beacons"
},
"type": "property"
}
},
"props.style.backgroundColor": {
"binding": {
"config": {
"path": "view.custom.state"
},
"transforms": [
{
"fallback": "#808080",
"inputType": "scalar",
"mappings": [
{
"input": 1,
"output": "#00FF00"
},
{
"input": 2,
"output": "#FF0000"
}
],
"outputType": "color",
"type": "map"
}
],
"type": "property"
}
}
},
"props": {
"mode": "percent",
"style": {
"borderStyle": "solid",
"cursor": "pointer",
"overflow": "hidden"
}
},
"type": "ia.container.coord"
}
}

View File

@ -23,13 +23,13 @@
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="1.1212722"
inkscape:cx="1042.5658"
inkscape:cy="596.64371"
inkscape:zoom="1.5857184"
inkscape:cx="984.41189"
inkscape:cy="372.70175"
inkscape:window-width="3840"
inkscape:window-height="2036"
inkscape:window-x="3829"
inkscape:window-y="-11"
inkscape:window-x="-11"
inkscape:window-y="-3"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" /><defs
id="defs1"><clipPath
@ -148,74 +148,71 @@
id="layer1"
style="display:inline"><path
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.25;stroke-dasharray:none;stroke-opacity:1"
d="m 20.688139,116.02606 h 7.883849 v 35.33131 h -7.925563 z"
d="m 17.513137,116.02606 h 7.883849 v 35.33131 h -7.925563 z"
id="path25072" /><path
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.25;stroke-dasharray:none;stroke-opacity:1"
d="m 20.753239,115.55245 0.185181,-7.76481 c 1.517289,-4.83339 4.580567,-7.799271 8.864116,-10.344944 l 3.914525,6.935164 c -2.984985,1.33473 -4.229119,3.34824 -4.999076,6.51743 l -0.08744,4.67802 z"
d="m 17.578237,115.55245 0.185181,-7.76481 c 1.517289,-4.83339 4.580567,-7.799271 8.864116,-10.344944 l 3.914525,6.935164 c -2.984985,1.33473 -4.229119,3.34824 -4.999076,6.51743 l -0.08744,4.67802 z"
id="path26615"
sodipodi:nodetypes="ccccccc" /><path
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.25;stroke-dasharray:none;stroke-opacity:1"
d="M 75.377092,125.20076 H 83.26094 V 178.9375 H 75.335379 Z"
d="m 72.20209,125.20076 h 7.883848 v 53.73674 h -7.925561 z"
id="path26618" /><path
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.25;stroke-dasharray:none;stroke-opacity:1"
d="m 75.436084,115.88006 h 7.883848 v 8.72601 h -7.925561 z"
d="m 72.261082,115.88006 h 7.883848 v 8.72601 h -7.925561 z"
id="path27070" /><path
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.25;stroke-dasharray:none;stroke-opacity:1"
d="m 75.406588,106.67734 h 7.883848 v 8.72601 h -7.925561 z"
d="m 72.231586,106.67734 h 7.883848 v 8.72601 h -7.925561 z"
id="path27071" /><path
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.25;stroke-dasharray:none;stroke-opacity:1"
d="m 75.394371,106.20226 c -0.03623,-9.238512 0.460678,-12.796916 8.960808,-17.991777 l 4.047256,6.905673 c -5.529025,2.473147 -5.25942,6.010384 -5.145507,11.136454 z"
d="m 72.219369,106.20226 c -0.03623,-9.238512 0.460678,-12.796916 8.960808,-17.991777 l 4.047256,6.905673 c -5.529025,2.473147 -5.25942,6.010384 -5.145507,11.136454 z"
id="path27072"
sodipodi:nodetypes="ccccc" /><path
style="fill:#ffffff;fill-opacity:1;stroke-width:0.496966"
d="m 40.689929,104.78961 h 7.883848 v 8.72601 h -7.925561 z"
id="path27073" /><path
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.25;stroke-dasharray:none;stroke-opacity:1"
d="m 37.636926,92.956423 3.944478,6.826134 -7.555316,4.365833 -3.965348,-6.862253 z"
d="m 34.461924,92.956423 3.944478,6.826134 -7.555316,4.365833 -3.965348,-6.862253 z"
id="path27074" /><path
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.25;stroke-dasharray:none;stroke-opacity:1"
d="m 45.600815,88.355065 3.944478,6.826134 -7.555316,4.365833 -3.965348,-6.862253 z"
d="m 42.425813,88.355065 3.944478,6.826134 -7.555316,4.365833 -3.965348,-6.862253 z"
id="path27080" /><path
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.25;stroke-dasharray:none;stroke-opacity:1"
d="m 63.275766,87.570756 -13.376385,7.447713 -3.959823,-6.887292 1.504291,-0.553046 z"
d="m 60.100764,87.570756 -13.376385,7.447713 -3.959823,-6.887292 1.504291,-0.553046 z"
id="path27081"
sodipodi:nodetypes="ccccc" /><path
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.25;stroke-dasharray:none;stroke-opacity:1"
d="m 102.20529,87.61753 -13.464887,7.359226 -3.952449,-7.020023 1.430551,-0.368698 z"
d="m 99.030276,87.61753 -13.464875,7.359226 -3.952449,-7.020023 1.430551,-0.368698 z"
id="path27082"
sodipodi:nodetypes="ccccc" /><path
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.244431;stroke-dasharray:none;stroke-opacity:1"
d="m 161.73507,79.566794 -0.016,7.760334 -120.794657,-0.04735 0.0159,-7.801393 z"
d="m 158.56005,79.566794 -0.016,7.760334 -120.794639,-0.04735 0.0159,-7.801393 z"
id="path27083" /><path
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.24276;stroke-dasharray:none;stroke-opacity:1"
d="m 270.05508,79.640118 -0.0141,7.780777 -107.27572,-0.04746 0.014,-7.821944 z"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.243285;stroke-dasharray:none;stroke-opacity:1"
d="m 267.35173,79.640375 -0.0142,7.780257 -107.74707,-0.04746 0.0141,-7.821422 z"
id="path27084" /><path
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.242954;stroke-dasharray:none;stroke-opacity:1"
d="m 413.28174,79.72491 -0.0187,7.728582 -141.90546,-0.04714 0.0186,-7.769474 z"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.23373;stroke-dasharray:none;stroke-opacity:1"
d="m 399.37485,79.720395 -0.0173,7.737716 -131.17963,-0.0472 0.0172,-7.778656 z"
id="path27085" /><path
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.25;stroke-dasharray:none;stroke-opacity:1"
d="m 414.38199,79.650678 c 5.03604,0.02588 7.95928,-0.266973 12.23378,1.989441 1.65503,0.966601 2.74197,2.075227 3.73794,3.206593 1.85537,2.841276 3.14745,5.859861 3.05039,10.779803 l -8.06562,0.03102 c -0.0803,-1.92185 0.0446,-3.799123 -1.54746,-5.774965 -2.38574,-2.686548 -6.13811,-2.332233 -9.40355,-2.443066 z"
d="m 400.0944,79.650678 c 5.03604,0.02588 7.95928,-0.266973 12.23378,1.989441 1.65503,0.966601 2.74197,2.075227 3.73794,3.206593 1.85537,2.841276 3.14745,5.859861 3.05039,10.779803 l -8.06562,0.03102 c -0.0803,-1.92185 0.0446,-3.799123 -1.54746,-5.774965 -2.38574,-2.686548 -6.13811,-2.332233 -9.40355,-2.443066 z"
id="path27086"
sodipodi:nodetypes="cccccccc" /><path
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.252742;stroke-dasharray:none;stroke-opacity:1"
d="m 425.36747,96.063667 h 7.88112 v 54.940713 h -7.92282 z"
d="m 411.25685,96.063667 h 7.88112 v 54.940713 h -7.92282 z"
id="path27087" /><path
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.25;stroke-dasharray:none;stroke-opacity:1"
d="m 425.36945,151.59084 h 7.88385 v 8.72601 h -7.92556 z"
d="m 411.25883,151.59084 h 7.88385 v 8.72601 h -7.92556 z"
id="path27088" /><path
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.25;stroke-dasharray:none;stroke-opacity:1"
d="m 441.56298,179.63321 c -12.30206,0.13237 -16.45431,-5.69061 -16.18738,-18.7973 l 7.85705,2.9e-4 c 0.10669,7.76558 0.23673,10.73714 8.29789,10.94492 z"
d="m 427.45236,179.63321 c -12.30206,0.13237 -16.45431,-5.69061 -16.18738,-18.7973 l 7.85705,2.9e-4 c 0.10669,7.76558 0.23673,10.73714 8.29789,10.94492 z"
id="path27089"
sodipodi:nodetypes="ccccc" /><path
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.25;stroke-dasharray:none;stroke-opacity:1"
d="m 459.7919,171.82424 0.11842,7.78137 -17.57255,0.0642 -0.11902,-7.82253 z"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.268812;stroke-dasharray:none;stroke-opacity:1"
d="m 448.59365,171.83373 0.13725,7.76254 -20.366,0.0641 -0.13793,-7.8036 z"
id="path27090" /><path
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.233909;stroke-dasharray:none;stroke-opacity:1"
d="m 475.6245,171.73269 0.10345,7.79748 -15.3515,0.0643 -0.10398,-7.83872 z"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.261075;stroke-dasharray:none;stroke-opacity:1"
d="m 468.70557,171.74638 0.12932,7.77032 -19.19125,0.0641 -0.12998,-7.81142 z"
id="path27091" /><path
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.212858;stroke-dasharray:none;stroke-opacity:1"
d="m 484.96357,171.65055 0.0446,5.69087 -8.76294,0.0675 -0.0448,-5.72095 z"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.246092;stroke-dasharray:none;stroke-opacity:1"
d="m 481.28798,171.66728 0.06,5.6578 -11.7815,0.0672 -0.0603,-5.68771 z"
id="path27092" /><path
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.212858;stroke-dasharray:none;stroke-opacity:1"
d="m 494.19622,171.65015 0.002,5.69104 -8.7632,0.002 -0.002,-5.72112 z"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.249796;stroke-dasharray:none;stroke-opacity:1"
d="m 494.42349,171.66846 0.003,5.65425 -12.14703,0.002 -0.003,-5.68414 z"
id="path27093" /></g></svg>

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -23,9 +23,9 @@
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="0.56063608"
inkscape:cx="-80.265972"
inkscape:cy="702.77318"
inkscape:zoom="1.1212722"
inkscape:cx="1375.2237"
inkscape:cy="693.85474"
inkscape:window-width="3840"
inkscape:window-height="2036"
inkscape:window-x="-11"
@ -8951,104 +8951,104 @@
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"><path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.242259;stroke-dasharray:none;stroke-opacity:1"
d="m 43.94291,125.90321 -0.0053,8.39594 -40.3890425,-0.0511 0.00528,-8.44039 z"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.378159;stroke-dasharray:none;stroke-opacity:1"
d="m 49.003896,122.87358 -0.0059,18.40802 -44.8859956,-0.11202 0.00569,-18.50549 z"
id="path27083-7" /><path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.25;stroke-dasharray:none;stroke-opacity:1"
d="m 68.543183,125.58072 -0.03279,9.27483 -11.503952,-0.0572 -0.03485,-9.22382 z"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.262272;stroke-dasharray:none;stroke-opacity:1"
d="m 80.226184,122.61685 -0.0424,18.72246 -14.872542,-0.11546 -0.04505,-18.61949 z"
id="path187860"
sodipodi:nodetypes="ccccc" /><path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.25;stroke-dasharray:none;stroke-opacity:1"
d="m 463.21727,125.65719 -0.0513,9.23845 -393.989675,-0.0562 0.05137,-9.28734 z"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.215886;stroke-dasharray:none;stroke-opacity:1"
d="m 466.47436,122.7921 -0.0497,18.5715 -381.994895,-0.1131 0.04981,-18.66979 z"
id="path187861" /><path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.25;stroke-dasharray:none;stroke-opacity:1"
d="m 481.51483,125.69973 -0.003,9.33441 -17.2875,-0.0569 0.002,-9.38381 z"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.248299;stroke-dasharray:none;stroke-opacity:1"
d="m 485.35528,122.81026 -0.002,18.53633 -16.57506,-0.11292 0.002,-18.63442 z"
id="path187862" /><path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.25;stroke-dasharray:none;stroke-opacity:1"
d="m 505.76727,125.72408 -0.004,9.28514 -23.49386,-0.0566 0.003,-9.33428 z"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.262682;stroke-dasharray:none;stroke-opacity:1"
d="m 504.78192,122.81766 -0.003,18.52157 -16.92846,-0.11292 0.003,-18.61961 z"
id="path187863" /><path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.131984;stroke-dasharray:none;stroke-opacity:1"
d="m 131.3868,122.7994 -18.87639,-0.006 0.11475,-48.327573 18.97631,0.0063 z"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.128427;stroke-dasharray:none;stroke-opacity:1"
d="m 126.41855,120.31878 -17.93196,-0.007 0.10901,-48.16749 18.02691,0.0063 z"
id="path187864" /><path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.131984;stroke-dasharray:none;stroke-opacity:1"
d="m 152.07669,122.7994 -18.87639,-0.006 0.11475,-48.327573 18.97631,0.0063 z"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.128426;stroke-dasharray:none;stroke-opacity:1"
d="m 146.07226,120.31894 -17.9313,-0.006 0.109,-48.168138 18.02622,0.0063 z"
id="path187865" /><path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.131984;stroke-dasharray:none;stroke-opacity:1"
d="m 172.09916,122.88283 -18.87639,-0.006 0.11475,-48.327576 18.97631,0.0063 z"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.128426;stroke-dasharray:none;stroke-opacity:1"
d="m 165.09228,120.4021 -17.93133,-0.006 0.10902,-48.168158 18.02622,0.0063 z"
id="path187866" /><path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.131984;stroke-dasharray:none;stroke-opacity:1"
d="m 199.4632,185.78676 -18.87639,-0.006 0.11475,-48.32757 18.97631,0.006 z"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.130139;stroke-dasharray:none;stroke-opacity:1"
d="m 199.71979,191.98436 -17.91821,-0.006 0.10892,-49.49827 18.01306,0.006 z"
id="path187867" /><path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.131984;stroke-dasharray:none;stroke-opacity:1"
d="m 219.98623,185.78676 -18.87639,-0.006 0.11475,-48.32757 18.97631,0.006 z"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.130138;stroke-dasharray:none;stroke-opacity:1"
d="m 218.68704,191.98358 -17.91819,-0.006 0.10892,-49.49754 18.01304,0.006 z"
id="path187868" /><path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.131984;stroke-dasharray:none;stroke-opacity:1"
d="m 240.34241,185.78676 -18.87639,-0.006 0.11475,-48.32757 18.97631,0.006 z"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.130138;stroke-dasharray:none;stroke-opacity:1"
d="m 237.49582,191.98358 -17.9182,-0.006 0.10893,-49.49754 18.01303,0.006 z"
id="path187869" /><path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.131984;stroke-dasharray:none;stroke-opacity:1"
d="m 267.37275,185.95361 -18.87639,-0.006 0.11475,-48.32757 18.97631,0.006 z"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.129296;stroke-dasharray:none;stroke-opacity:1"
d="m 272.7114,191.56021 -17.93089,-0.006 0.10899,-48.82418 18.02583,0.006 z"
id="path187870" /><path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.131984;stroke-dasharray:none;stroke-opacity:1"
d="m 287.22837,185.95361 -18.87639,-0.006 0.11475,-48.32757 18.97631,0.006 z"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.129296;stroke-dasharray:none;stroke-opacity:1"
d="m 291.57248,191.56021 -17.9309,-0.006 0.10902,-48.82418 18.02579,0.006 z"
id="path187871" /><path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.131984;stroke-dasharray:none;stroke-opacity:1"
d="m 307.00056,186.03704 -18.87639,-0.006 0.11475,-48.32757 18.97631,0.006 z"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.129296;stroke-dasharray:none;stroke-opacity:1"
d="m 310.35431,191.64448 -17.9309,-0.006 0.10901,-48.82419 18.0258,0.006 z"
id="path187872" /><path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.131984;stroke-dasharray:none;stroke-opacity:1"
d="m 336.03314,185.53648 -18.87639,-0.006 0.11475,-48.32757 18.97631,0.006 z"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.129296;stroke-dasharray:none;stroke-opacity:1"
d="m 346.92857,191.13879 -17.9309,-0.006 0.109,-48.82418 18.0258,0.006 z"
id="path187873" /><path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.131984;stroke-dasharray:none;stroke-opacity:1"
d="m 356.38932,185.87019 -18.87639,-0.006 0.11475,-48.32757 18.97631,0.006 z"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.129296;stroke-dasharray:none;stroke-opacity:1"
d="m 366.26512,191.47592 -17.93088,-0.006 0.10899,-48.82415 18.02582,0.006 z"
id="path187874" /><path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.131984;stroke-dasharray:none;stroke-opacity:1"
d="m 377.57977,186.03704 -18.87639,-0.006 0.11475,-48.32757 18.97631,0.006 z"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.129296;stroke-dasharray:none;stroke-opacity:1"
d="m 385.33584,191.64448 -17.9309,-0.006 0.109,-48.82419 18.02579,0.006 z"
id="path187875" /><path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.131984;stroke-dasharray:none;stroke-opacity:1"
d="m 404.2764,185.36962 -18.87639,-0.006 0.11475,-48.32757 18.97631,0.006 z"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.129296;stroke-dasharray:none;stroke-opacity:1"
d="m 421.27866,190.97021 -17.9309,-0.006 0.10901,-48.82419 18.0258,0.006 z"
id="path187876" /><path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.131984;stroke-dasharray:none;stroke-opacity:1"
d="m 424.29887,185.53647 -18.87639,-0.006 0.11475,-48.32757 18.97631,0.006 z"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.129296;stroke-dasharray:none;stroke-opacity:1"
d="m 440.29823,191.13878 -17.9309,-0.006 0.109,-48.82418 18.0258,0.006 z"
id="path187877" /><path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.131984;stroke-dasharray:none;stroke-opacity:1"
d="m 444.8219,185.87018 -18.87639,-0.006 0.11475,-48.32757 18.97631,0.006 z"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.129296;stroke-dasharray:none;stroke-opacity:1"
d="m 459.2641,191.47591 -17.93087,-0.006 0.10899,-48.82417 18.02581,0.006 z"
id="path187878" /><path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.131984;stroke-dasharray:none;stroke-opacity:1"
d="m 445.98988,123.80052 -18.87639,-0.006 0.11475,-48.327573 18.97631,0.006 z"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.128426;stroke-dasharray:none;stroke-opacity:1"
d="m 458.60786,121.31676 -17.9313,-0.006 0.10901,-48.168128 18.02622,0.006 z"
id="path187879" /><path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.131984;stroke-dasharray:none;stroke-opacity:1"
d="m 424.96628,123.80052 -18.87639,-0.006 0.11475,-48.327573 18.97631,0.006 z"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.128426;stroke-dasharray:none;stroke-opacity:1"
d="m 439.69519,121.31676 -17.93131,-0.006 0.109,-48.168128 18.02623,0.006 z"
id="path187880" /><path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.131984;stroke-dasharray:none;stroke-opacity:1"
d="m 404.27639,123.80052 -18.87639,-0.006 0.11475,-48.327573 18.97631,0.006 z"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.128426;stroke-dasharray:none;stroke-opacity:1"
d="m 420.57035,121.31676 -17.93131,-0.006 0.109,-48.168128 18.02622,0.006 z"
id="path187881" /><path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.131984;stroke-dasharray:none;stroke-opacity:1"
d="m 375.41066,123.96737 -18.87639,-0.006 0.11475,-48.327569 18.97631,0.006 z"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.128426;stroke-dasharray:none;stroke-opacity:1"
d="m 385.21228,121.48305 -17.93131,-0.006 0.109,-48.168136 18.02623,0.006 z"
id="path187882" /><path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.131984;stroke-dasharray:none;stroke-opacity:1"
d="m 355.22133,123.96737 -18.87639,-0.006 0.11475,-48.327569 18.97631,0.006 z"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.128426;stroke-dasharray:none;stroke-opacity:1"
d="m 366.03376,121.48305 -17.9313,-0.006 0.109,-48.168136 18.02623,0.006 z"
id="path187883" /><path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.131984;stroke-dasharray:none;stroke-opacity:1"
d="m 335.19886,123.80052 -18.87639,-0.006 0.11475,-48.327573 18.97631,0.006 z"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.128426;stroke-dasharray:none;stroke-opacity:1"
d="m 347.01376,121.31676 -17.93132,-0.006 0.109,-48.168128 18.02624,0.006 z"
id="path187884" /><path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.131984;stroke-dasharray:none;stroke-opacity:1"
d="m 307.00055,123.80052 -18.87639,-0.006 0.11475,-48.327573 18.97631,0.006 z"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.128426;stroke-dasharray:none;stroke-opacity:1"
d="m 310.7022,121.31676 -17.93132,-0.006 0.10901,-48.168128 18.02621,0.006 z"
id="path187885" /><path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.131984;stroke-dasharray:none;stroke-opacity:1"
d="m 286.97808,123.80052 -18.87639,-0.006 0.11475,-48.327573 18.97631,0.006 z"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.128426;stroke-dasharray:none;stroke-opacity:1"
d="m 291.68217,121.31676 -17.9313,-0.006 0.10901,-48.168128 18.02622,0.006 z"
id="path187886" /><path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.131984;stroke-dasharray:none;stroke-opacity:1"
d="m 266.95561,124.13423 -18.87639,-0.006 0.11475,-48.327575 18.97631,0.006 z"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.128426;stroke-dasharray:none;stroke-opacity:1"
d="m 271.60382,121.64937 -17.9313,-0.006 0.10899,-48.168142 18.02624,0.006 z"
id="path187887" /><path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.131984;stroke-dasharray:none;stroke-opacity:1"
d="m 238.92415,123.63367 -18.87639,-0.006 0.11475,-48.327577 18.97631,0.006 z"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.128426;stroke-dasharray:none;stroke-opacity:1"
d="m 237.56743,121.15045 -17.93129,-0.006 0.10899,-48.168144 18.02623,0.006 z"
id="path187888" /><path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.131984;stroke-dasharray:none;stroke-opacity:1"
d="m 219.06853,123.63367 -18.87639,-0.006 0.11475,-48.327577 18.97631,0.006 z"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.128426;stroke-dasharray:none;stroke-opacity:1"
d="m 218.70593,121.15045 -17.93133,-0.006 0.10902,-48.168144 18.02622,0.006 z"
id="path187889" /><path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.131984;stroke-dasharray:none;stroke-opacity:1"
d="m 199.37977,123.63367 -18.87639,-0.006 0.11475,-48.327577 18.97631,0.006 z"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.128426;stroke-dasharray:none;stroke-opacity:1"
d="m 200.00292,121.15045 -17.93132,-0.006 0.10901,-48.168144 18.02623,0.006 z"
id="path187890" /><path
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.25;stroke-dasharray:none;stroke-opacity:1"
d="m 56.283854,125.58072 -0.03279,9.27483 -11.503952,-0.0572 -0.03485,-9.22382 z"
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.25393;stroke-dasharray:none;stroke-opacity:1"
d="m 65.229568,122.61267 -0.03973,18.73084 -13.935357,-0.11553 -0.0422,-18.62781 z"
id="path187891"
sodipodi:nodetypes="ccccc" /></g></svg>

Before

Width:  |  Height:  |  Size: 373 KiB

After

Width:  |  Height:  |  Size: 373 KiB