SAT9/.resources/fc5d895182b05bf59f20009681354b7137434aa5b7612cc7c6b289ceddb709da
2025-04-18 19:44:27 +04:00

447 lines
13 KiB
Plaintext

{
"custom": {},
"params": {
"tagProps": [
"",
"",
"PLC",
"value",
"value",
"value",
"value",
"value",
"value",
"value"
]
},
"propConfig": {
"params.tagProps": {
"paramDirection": "input",
"persistent": true
}
},
"props": {
"defaultSize": {
"height": 148,
"width": 362
}
},
"root": {
"children": [
{
"children": [
{
"meta": {
"name": "Spacer1"
},
"position": {
"basis": "20px"
},
"type": "ia.display.label"
},
{
"meta": {
"name": "NameField"
},
"position": {
"basis": "50px"
},
"props": {
"text": "NAME"
},
"type": "ia.display.label"
},
{
"meta": {
"name": "Spacer"
},
"position": {
"basis": "100px"
},
"type": "ia.display.label"
},
{
"meta": {
"name": "DeviceName"
},
"position": {
"basis": "205px"
},
"propConfig": {
"props.text": {
"binding": {
"config": {
"path": "/root.custom.name"
},
"type": "property"
}
}
},
"props": {
"style": {
"classes": "Text-Styles/Ariel-Bold-12pt"
}
},
"type": "ia.display.label"
}
],
"meta": {
"name": "Name"
},
"position": {
"basis": "35px"
},
"props": {
"style": {
"classes": "PopUp-Styles/InfoLabel"
}
},
"type": "ia.container.flex"
},
{
"children": [
{
"meta": {
"name": "Spacer1"
},
"position": {
"basis": "20px"
},
"type": "ia.display.label"
},
{
"meta": {
"name": "NameField"
},
"position": {
"basis": "50px"
},
"props": {
"text": "PRIORITY"
},
"type": "ia.display.label"
},
{
"meta": {
"name": "Spacer"
},
"position": {
"basis": "100px"
},
"type": "ia.display.label"
},
{
"meta": {
"name": "Priority"
},
"position": {
"basis": "205px"
},
"propConfig": {
"props.style.classes": {
"binding": {
"config": {
"expression": "{/root.custom.priority}"
},
"transforms": [
{
"fallback": "Alarms-Styles/NoAlarm",
"inputType": "scalar",
"mappings": [
{
"input": 4,
"output": "Alarms-Styles/Critical"
},
{
"input": 3,
"output": "Alarms-Styles/High"
},
{
"input": 2,
"output": "Alarms-Styles/Medium"
},
{
"input": 1,
"output": "Alarms-Styles/Low"
},
{
"input": 0,
"output": "Alarms-Styles/Diagnostic"
}
],
"outputType": "style-list",
"type": "map"
}
],
"type": "expr"
}
},
"props.text": {
"binding": {
"config": {
"path": "/root.custom.priority"
},
"transforms": [
{
"fallback": "",
"inputType": "scalar",
"mappings": [
{
"input": 4,
"output": "Critical"
},
{
"input": 3,
"output": "High"
},
{
"input": 2,
"output": "Medium"
},
{
"input": 1,
"output": "Low"
},
{
"input": 0,
"output": "Warning"
},
{
"input": 5,
"output": "No active alarms"
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "property"
}
}
},
"props": {
"style": {
"textAlign": "left"
}
},
"type": "ia.display.label"
}
],
"meta": {
"name": "Priority"
},
"position": {
"basis": "35px"
},
"props": {
"style": {
"classes": "PopUp-Styles/InfoLabel"
}
},
"type": "ia.container.flex"
},
{
"children": [
{
"meta": {
"name": "Spacer1"
},
"position": {
"basis": "20px"
},
"type": "ia.display.label"
},
{
"meta": {
"name": "NameField"
},
"position": {
"basis": "50px"
},
"props": {
"text": "TIMESTAMP"
},
"type": "ia.display.label"
},
{
"meta": {
"name": "Spacer"
},
"position": {
"basis": "100px"
},
"type": "ia.display.label"
},
{
"meta": {
"name": "DeviceName"
},
"position": {
"basis": "205px"
},
"propConfig": {
"props.text": {
"binding": {
"config": {
"path": "/root.custom.timestamp"
},
"type": "property"
}
}
},
"props": {
"style": {
"classes": "Text-Styles/Ariel-Bold-12pt"
}
},
"type": "ia.display.label"
}
],
"meta": {
"name": "EventTime"
},
"position": {
"basis": "35px"
},
"props": {
"style": {
"classes": "PopUp-Styles/InfoLabel"
}
},
"type": "ia.container.flex"
},
{
"children": [
{
"meta": {
"name": "Spacer1"
},
"position": {
"basis": "20px"
},
"type": "ia.display.label"
},
{
"meta": {
"name": "NameField"
},
"position": {
"basis": "50px"
},
"props": {
"text": "DURATION"
},
"type": "ia.display.label"
},
{
"meta": {
"name": "Spacer"
},
"position": {
"basis": "91px"
},
"type": "ia.display.label"
},
{
"meta": {
"name": "Spacer_0"
},
"position": {
"basis": "199px"
},
"propConfig": {
"props.text": {
"binding": {
"config": {
"path": "/root.custom.duration"
},
"type": "property"
}
}
},
"props": {
"style": {
"classes": "Text-Styles/Ariel-Bold-12pt"
}
},
"type": "ia.display.label"
}
],
"meta": {
"name": "EventTime_0"
},
"position": {
"basis": "40px"
},
"props": {
"style": {
"classes": "PopUp-Styles/InfoLabel"
}
},
"type": "ia.container.flex"
}
],
"custom": {
"delay": 2000,
"duration": "",
"enable": true,
"name": "",
"priority": "",
"timestamp": ""
},
"meta": {
"name": "root"
},
"propConfig": {
"custom.active_bit": {
"binding": {
"config": {
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"0": "{view.params.tagProps[0]}",
"1": "{view.params.tagProps[1]}"
},
"tagPath": "{0}/Alarms/{1}.IsActive"
},
"type": "tag"
}
},
"custom.shelved_bit": {
"binding": {
"config": {
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"0": "{view.params.tagProps[0]}",
"1": "{view.params.tagProps[1]}"
},
"tagPath": "{0}/Alarms/{1}.IsShelved"
},
"type": "tag"
}
},
"custom.update": {
"binding": {
"config": {
"expression": "now({this.custom.delay})"
},
"type": "expr"
},
"onChange": {
"enabled": null,
"script": "\tif self.custom.enable:\n\t\t\n\t\timport time\n\t\t\n\t\tdef convert(millis):\n\t\t\tmillis \u003d int(millis)\n\t\t\tseconds\u003d(millis/1000)%60\n\t\t\tseconds \u003d int(seconds)\n\t\t\tminutes\u003d(millis/(1000*60))%60\n\t\t\tminutes \u003d int(minutes)\n\t\t\thours\u003d(millis/(1000*60*60))\n\t\t\treturn(\"%d:%d:%d\" % (hours, minutes, seconds))\n\t\t\n\t\tdef update_custom_properties(name, timestamp, duration, priority):\n\t\t\tself.custom.name \u003d name\n\t\t\tself.custom.timestamp \u003d timestamp\n\t\t\tself.custom.duration \u003d duration\n\t\t\tself.custom.priority \u003d priority\n\t\t\n\t\tdef get_alarms():\n\t\t\talarm_dict \u003d system.tag.readBlocking(\"System/ActiveAlarms\")\n\t\t\talarms_decoded \u003d system.util.jsonDecode(alarm_dict[0].value)\n\t\t\treturn alarms_decoded\n\t\t\t\n\t\tdef get_tag_config():\n\t\t\tname \u003d\"\"\n\t\t\tpath \u003d self.view.params.tagProps[0]\n\t\t\tif system.tag.exists(path) and path !\u003d \"\":\n\t\t\t\ttag_config \u003d system.tag.getConfiguration(path)[0]\n\t\t\t\talarms \u003d tag_config.get(\"alarms\")\n\t\t\t\tfor alarm in alarms:\n\t\t\t\t\tif alarm.get(\"name\") \u003d\u003d self.view.params.tagProps[1]:\n\t\t\t\t\t\tname \u003d alarm.get(\"AdditionalInfo\")\n\t\t\t\t\t\tbreak\n\t\t\t\ttimestamp \u003d \"N/A\"\n\t\t\t\tduration \u003d \"N/A\"\n\t\t\t\tpriority \u003d 5\n\t\t\t\tupdate_custom_properties(name, timestamp, duration, priority)\n\t\t\t\t\t\n\t\tdef get_active_alarm():\n\t\t\ttagPath \u003d self.view.params.tagProps[0]\n\t\t\tprops_alarm_name \u003d str(self.view.params.tagProps[1])\n\t\t\ttag_display_path \u003d tagPath + \"/\" + props_alarm_name\n\t\t\talarms \u003d get_alarms()\n\t\t\tfor i in alarms:\n\t\t\t\tdisplaypath \u003d alarms[i].get(\"DisplayPath\")\n\t\t\t\talarm_name \u003d alarms[i].get(\"Name\")\n\t\t\t\tsystem.perspective.print(displaypath)\n\t\t\t\tif tag_display_path \u003d\u003d displaypath:\n\t\t\t\t\tname \u003d alarms[i].get(\"AddInfo\")\n\t\t\t\t\ttimestamp \u003d alarms[i].get(\"TimeStamp\")\n\t\t\t\t\tduration \u003d alarms[i].get(\"Duration\")\n\t\t\t\t\tduration \u003d convert(duration)\n\t\t\t\t\tpriority \u003d alarms[i].get(\"Priority\")\n\t\t\t\t\tupdate_custom_properties(name, timestamp, duration, priority)\n\t\t\t\t\tbreak\n\t\t\t\t\t\n\t\tif self.custom.active_bit and not self.custom.shelved_bit:\n\t\t\tget_active_alarm()\n\t\t\t\n\t\telse:\n\t\t\talarms \u003d get_tag_config()"
}
}
},
"props": {
"direction": "column",
"style": {
"borderRadius": "10x",
"borderStyle": "solid",
"classes": "PopUp-Styles/Information-Device"
}
},
"type": "ia.container.flex"
}
}