Merge pull request 'MTN6-25' (#161) from beka-5 into main

Reviewed-on: #161
This commit is contained in:
gigi.mamaladze 2025-07-10 12:16:10 +00:00
commit 6edf75483a
7 changed files with 884 additions and 1719 deletions

View File

@ -15,7 +15,7 @@
},
"params": {
"tagProps": [
"MCMVALUE",
"System/MCM04/MCM04",
"System/MCM04/Field_Devices/DPM/PRS3_5_DPM1",
"System/MCM04/Field_Devices/DPM/PS11_7_DPM1",
"System/MCM04/Field_Devices/DPM/VSC_DPM3",
@ -43,7 +43,7 @@
},
"transforms": [
{
"expression": "coalesce({value},{view.params.forceFaultStatus},0)",
"expression": "coalesce({value},{view.params.forceFaultStatus},1)",
"type": "expression"
},
{
@ -51,7 +51,7 @@
"inputType": "scalar",
"mappings": [
{
"input": 1,
"input": 0,
"output": true
}
],
@ -76,7 +76,7 @@
},
"transforms": [
{
"expression": "coalesce({value},{view.params.forceFaultStatus},0)",
"expression": "coalesce({value},{view.params.forceFaultStatus},1)",
"type": "expression"
},
{
@ -84,7 +84,7 @@
"inputType": "scalar",
"mappings": [
{
"input": 1,
"input": 0,
"output": true
}
],
@ -109,7 +109,7 @@
},
"transforms": [
{
"expression": "coalesce({value},{view.params.forceFaultStatus},0)",
"expression": "coalesce({value},{view.params.forceFaultStatus},1)",
"type": "expression"
},
{
@ -117,7 +117,7 @@
"inputType": "scalar",
"mappings": [
{
"input": 1,
"input": 0,
"output": true
}
],
@ -142,7 +142,7 @@
},
"transforms": [
{
"expression": "coalesce({value},{view.params.forceFaultStatus},0)",
"expression": "coalesce({value},{view.params.forceFaultStatus},1)",
"type": "expression"
},
{
@ -150,7 +150,7 @@
"inputType": "scalar",
"mappings": [
{
"input": 1,
"input": 0,
"output": true
}
],
@ -175,7 +175,7 @@
},
"transforms": [
{
"expression": "coalesce({value},{view.params.forceFaultStatus},0)",
"expression": "coalesce({value},{view.params.forceFaultStatus},1)",
"type": "expression"
},
{
@ -184,6 +184,10 @@
"mappings": [
{
"input": 1,
"output": false
},
{
"input": 0,
"output": true
}
],
@ -208,7 +212,7 @@
},
"transforms": [
{
"expression": "coalesce({value},{view.params.forceFaultStatus},0)",
"expression": "coalesce({value},{view.params.forceFaultStatus},1)",
"type": "expression"
},
{
@ -216,7 +220,7 @@
"inputType": "scalar",
"mappings": [
{
"input": 1,
"input": 0,
"output": true
}
],
@ -241,7 +245,7 @@
},
"transforms": [
{
"expression": "coalesce({value},{view.params.forceFaultStatus},0)",
"expression": "coalesce({value},{view.params.forceFaultStatus},1)",
"type": "expression"
},
{
@ -249,7 +253,7 @@
"inputType": "scalar",
"mappings": [
{
"input": 1,
"input": 0,
"output": true
}
],
@ -274,7 +278,7 @@
},
"transforms": [
{
"expression": "coalesce({value},{view.params.forceFaultStatus},0)",
"expression": "coalesce({value},{view.params.forceFaultStatus},1)",
"type": "expression"
},
{
@ -282,7 +286,7 @@
"inputType": "scalar",
"mappings": [
{
"input": 1,
"input": 0,
"output": true
}
],
@ -307,7 +311,7 @@
},
"transforms": [
{
"expression": "coalesce({value},{view.params.forceFaultStatus},0)",
"expression": "coalesce({value},{view.params.forceFaultStatus},1)",
"type": "expression"
},
{
@ -315,7 +319,7 @@
"inputType": "scalar",
"mappings": [
{
"input": 1,
"input": 0,
"output": true
}
],
@ -340,7 +344,7 @@
},
"transforms": [
{
"expression": "coalesce({value},{view.params.forceFaultStatus},0)",
"expression": "coalesce({value},{view.params.forceFaultStatus},1)",
"type": "expression"
},
{
@ -348,7 +352,7 @@
"inputType": "scalar",
"mappings": [
{
"input": 1,
"input": 0,
"output": true
}
],
@ -373,7 +377,7 @@
},
"transforms": [
{
"expression": "coalesce({value},{view.params.forceFaultStatus},0)",
"expression": "coalesce({value},{view.params.forceFaultStatus},1)",
"type": "expression"
},
{
@ -381,7 +385,7 @@
"inputType": "scalar",
"mappings": [
{
"input": 1,
"input": 0,
"output": true
}
],
@ -406,7 +410,7 @@
},
"transforms": [
{
"expression": "coalesce({value},{view.params.forceFaultStatus},0)",
"expression": "coalesce({value},{view.params.forceFaultStatus},1)",
"type": "expression"
},
{
@ -414,7 +418,7 @@
"inputType": "scalar",
"mappings": [
{
"input": 1,
"input": 0,
"output": true
}
],

View File

@ -15,7 +15,7 @@
},
"params": {
"tagProps": [
"MCM",
"System/MCM01/MCM01",
"value",
"value",
"value",
@ -2443,14 +2443,6 @@
}
},
"props.style.backgroundColor": {
"binding": {
"config": {
"expression": "if(\r\n {this.props.enabled} \u003d False,\r\n \"#BCBC52\",\r\n if(\r\n {this.props.text} \u003d \"MOTOR FAULT RESET PRESSED\",\r\n \"#FCFF86\",\r\n if(\r\n {this.props.text} \u003d \"MOTOR FAULT RESET\",\r\n \"#DCDC03\",\r\n \"#FFFFFF\"\r\n )\r\n )\r\n)\r\n"
},
"type": "expr"
}
},
"props.text": {
"binding": {
"config": {
"fallbackDelay": 2.5,
@ -2459,7 +2451,7 @@
"0": "{view.params.tagProps[0]}",
"fc": "{session.custom.fc}"
},
"tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Motor_Fault_Reset_PB"
"tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Motor_Fault_Reset_PB_STATE"
},
"transforms": [
{
@ -2467,20 +2459,8 @@
"type": "expression"
},
{
"fallback": "MOTOR FAULT RESET",
"inputType": "scalar",
"mappings": [
{
"input": 2,
"output": "MOTOR FAULT RESET PRESSED"
},
{
"input": 4,
"output": "MOTOR FAULT RESET PRESSED"
}
],
"outputType": "scalar",
"type": "map"
"expression": "if(\r\n {this.props.enabled} \u003d False,\r\n \"#BCBC52\",\r\n if(\r\n {value} \u003d 2 || {value} \u003d 4,\r\n \"#FCFF86\",\r\n if(\r\n {value},\r\n \"#DCDC03\",\r\n \"#FFFFFF\"\r\n )\r\n )\r\n)\r\n",
"type": "expression"
}
],
"type": "tag"
@ -2491,12 +2471,13 @@
"image": {
"icon": {
"color": "#000000",
"path": "material/sync_problem"
"path": "material/refresh"
}
},
"style": {
"classes": "Background-Styles/Controller"
},
"text": "MOTOR FAULT RESET",
"textStyle": {
"color": "#000000"
}
@ -2549,14 +2530,6 @@
}
},
"props.style.backgroundColor": {
"binding": {
"config": {
"expression": "if(\r\n {this.props.enabled} \u003d False,\r\n \"#BCBC52\",\r\n if(\r\n {this.props.text} \u003d \"POWER BRANCH FAULT RESET PRESSED\",\r\n \"#FCFF86\",\r\n if(\r\n {this.props.text} \u003d \"POWER BRANCH FAULT RESET\",\r\n \"#DCDC03\",\r\n \"#FFFFFF\"\r\n )\r\n )\r\n)\r\n"
},
"type": "expr"
}
},
"props.text": {
"binding": {
"config": {
"fallbackDelay": 2.5,
@ -2573,20 +2546,8 @@
"type": "expression"
},
{
"fallback": "POWER BRANCH FAULT RESET",
"inputType": "scalar",
"mappings": [
{
"input": 2,
"output": "POWER BRANCH FAULT RESET PRESSED"
},
{
"input": 4,
"output": "POWER BRANCH FAULT RESET PRESSED"
}
],
"outputType": "scalar",
"type": "map"
"expression": "if(\r\n {this.props.enabled} \u003d False,\r\n \"#BCBC52\",\r\n if(\r\n {value} \u003d 2 || {value} \u003d 4,\r\n \"#FCFF86\",\r\n if(\r\n {value},\r\n \"#DCDC03\",\r\n \"#FFFFFF\"\r\n )\r\n )\r\n)\r\n",
"type": "expression"
}
],
"type": "tag"
@ -2597,12 +2558,13 @@
"image": {
"icon": {
"color": "#000000",
"path": "material/sync_problem"
"path": "material/power"
}
},
"style": {
"classes": "Background-Styles/Controller"
},
"text": "POWER BRANCH FAULT",
"textStyle": {
"color": "#000000"
}
@ -2655,14 +2617,6 @@
}
},
"props.style.backgroundColor": {
"binding": {
"config": {
"expression": "if(\r\n {this.props.enabled} \u003d False,\r\n \"#9090C2\",\r\n if(\r\n {this.props.text} \u003d \"LOW AIR PRESSURE RESET PRESSED\",\r\n \"#5D5DFF\",\r\n if(\r\n {this.props.text} \u003d \"LOW AIR PRESSURE RESET\",\r\n \"#0A0AA4\",\r\n \"#FFFFFF\"\r\n )\r\n )\r\n)\r\n"
},
"type": "expr"
}
},
"props.text": {
"binding": {
"config": {
"fallbackDelay": 2.5,
@ -2671,7 +2625,7 @@
"0": "{view.params.tagProps[0]}",
"fc": "{session.custom.fc}"
},
"tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Low_Air_Pressure_Reset_PB"
"tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Low_Air_Pressure_Reset_PB_STATE"
},
"transforms": [
{
@ -2679,20 +2633,8 @@
"type": "expression"
},
{
"fallback": "LOW AIR PRESSURE RESET",
"inputType": "scalar",
"mappings": [
{
"input": 2,
"output": "LOW AIR PRESSURE RESET PRESSED"
},
{
"input": 4,
"output": "LOW AIR PRESSURE RESET PRESSED"
}
],
"outputType": "scalar",
"type": "map"
"expression": "if(\r\n {this.props.enabled} \u003d False,\r\n \"#9090C2\",\r\n if(\r\n {value} \u003d 2 || {value} \u003d 4,\r\n \"#5D5DFF\",\r\n if(\r\n {value},\r\n \"#0A0AA4\",\r\n \"#FFFFFF\"\r\n )\r\n )\r\n)\r\n",
"type": "expression"
}
],
"type": "tag"
@ -2702,12 +2644,13 @@
"props": {
"image": {
"icon": {
"path": "material/sync_problem"
"path": "material/waves"
}
},
"style": {
"classes": "Background-Styles/Controller"
}
},
"text": "LOW AIR PRESSURE RESET"
},
"type": "ia.input.button"
}
@ -2733,7 +2676,7 @@
"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])\n\tsystem.perspective.print(tag_path)"
"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"
@ -2757,14 +2700,6 @@
}
},
"props.style.backgroundColor": {
"binding": {
"config": {
"expression": "if(\r\n {this.props.enabled} \u003d False,\r\n \"#A1A1A1\",\r\n if(\r\n {this.props.text} \u003d \"JAM RESTART PRESSED\",\r\n \"#FFFFFF\",\r\n if(\r\n {this.props.text} \u003d \"JAM RESTART\",\r\n \"#D4D4D4\",\r\n \"#FFFFFF\"\r\n )\r\n )\r\n)\r\n"
},
"type": "expr"
}
},
"props.text": {
"binding": {
"config": {
"fallbackDelay": 2.5,
@ -2781,16 +2716,8 @@
"type": "expression"
},
{
"fallback": "JAM RESTART",
"inputType": "scalar",
"mappings": [
{
"input": 1,
"output": "JAM RESTART PRESSED"
}
],
"outputType": "scalar",
"type": "map"
"expression": "if(\r\n {this.props.enabled} \u003d False,\r\n \"#A1A1A1\",\r\n if(\r\n {value} \u003d 2 || {value} \u003d 4,\r\n \"#FFFFFF\",\r\n if(\r\n {value},\r\n \"#D4D4D4\",\r\n \"#FFFFFF\"\r\n )\r\n )\r\n)",
"type": "expression"
}
],
"type": "tag"
@ -2807,6 +2734,7 @@
"style": {
"classes": "Background-Styles/Controller"
},
"text": "JAM RESTART",
"textStyle": {
"color": "#000000"
}
@ -2859,14 +2787,6 @@
}
},
"props.style.backgroundColor": {
"binding": {
"config": {
"expression": "if(\r\n {this.props.enabled} \u003d False,\r\n \"#A1A1A1\",\r\n if(\r\n {this.props.text} \u003d \"SETUP MOTOR SPEEDS PRESSED\",\r\n \"#FFFFFF\",\r\n if(\r\n {this.props.text} \u003d \"SETUP MOTOR SPEEDS\",\r\n \"#D4D4D4\",\r\n \"#FFFFFF\"\r\n )\r\n )\r\n)\r\n"
},
"type": "expr"
}
},
"props.text": {
"binding": {
"config": {
"fallbackDelay": 2.5,
@ -2883,16 +2803,8 @@
"type": "expression"
},
{
"fallback": "SETUP MOTOR SPEEDS",
"inputType": "scalar",
"mappings": [
{
"input": 1,
"output": "SETUP MOTOR SPEEDS PRESSED"
}
],
"outputType": "scalar",
"type": "map"
"expression": "if(\r\n {this.props.enabled} \u003d False,\r\n \"#A1A1A1\",\r\n if(\r\n {value} \u003d 1,\r\n \"#FFFFFF\",\r\n \"#D4D4D4\"\r\n )\r\n)\r\n",
"type": "expression"
}
],
"type": "tag"
@ -2900,9 +2812,16 @@
}
},
"props": {
"image": {
"icon": {
"color": "#000000",
"path": "material/speed"
}
},
"style": {
"classes": "Background-Styles/Controller"
},
"text": "SETUP MOTOR SPEEDS",
"textStyle": {
"color": "#000000"
}
@ -2967,6 +2886,7 @@
"grow": 1
},
"props": {
"currentTabIndex": 2,
"menuType": "modern",
"tabSize": {
"width": 1000

View File

@ -3,7 +3,7 @@
"params": {
"value": {
"tagProps": [
"",
"MCM01",
"value",
"value",
"value",
@ -25,7 +25,7 @@
"props": {
"defaultSize": {
"height": 50,
"width": 300
"width": 396
}
},
"root": {
@ -35,7 +35,7 @@
"component": {
"onActionPerformed": {
"config": {
"script": "\ttags_to_read \u003d system.tag.readBlocking([\"Configuration/FC\"])\n\twhid \u003d tags_to_read[0].value\n\tid \u003d self.view.params.value.tagProps[0]\n\tcommandTarget\u003dstr(id)+\"/0\"#PLC01/0 --\u003etarget is the plc\n\tcommandParams\u003d\"\"\n\tif whid\u003d\u003d\"MAN2\" or whid\u003d\u003d\"BRS1\" or whid\u003d\u003d\"MAD6\":\n\t\tcommandTarget\u003d\"databridge/0\"\n\t\tcommandParams\u003d\"PLC\u003d\"+str(id)#this tells the target to data bridge\n\taction \u003d 1\n\tparameters\u003d{\"commandTarget\":commandTarget,\n\t\t\t\t\"commandCode\":1,\n\t\t\t\t\"commandTimestamp\":system.date.toMillis(system.date.now()),\n\t\t\t\t\"commandParams\":commandParams}\n\tCommands.button_commands.send_request(whid, action, parameters)"
"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"
@ -56,7 +56,7 @@
"meta.tooltip.text": {
"binding": {
"config": {
"expression": "if({this.props.enabled},\u0027Start \u0027 + {view.params.value.tagProps[0]},\"Re-Authentication Required - Press \u0027Enable Controls\u0027 button and re-enter password\")"
"expression": "if({this.props.enabled},\u0027Start \u0027 + {view.params.value.tagProps[0]},\"You do not have Maintenance or Administrator role!\")"
},
"type": "expr"
}
@ -64,7 +64,7 @@
"props.enabled": {
"binding": {
"config": {
"expression": "{session.custom.command_auth.enabled} \u0026\u0026 {parent.custom.has_role}"
"expression": "indexOf({session.props.auth.user.roles}, \"Administrator\") \u003e\u003d 0 || indexOf({session.props.auth.user.roles}, \"Maintenance\") \u003e\u003d 0"
},
"type": "expr"
}
@ -72,11 +72,47 @@
"props.image.icon.color": {
"binding": {
"config": {
"expression": "if({this.props.enabled},\u0027#4A4A4A\u0027,\u0027#979797\u0027)"
"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]System/{0}/{0}/Start_PB_STATE"
},
"transforms": [
{
"expression": "coalesce({value},{view.params.forceFaultStatus},0)",
"type": "expression"
},
{
"fallback": "#00A700",
"inputType": "scalar",
"mappings": [
{
"input": 2,
"output": "#41E841"
},
{
"input": 4,
"output": "#41E841"
}
],
"outputType": "color",
"type": "map"
}
],
"type": "tag"
}
},
"props.style.borderStyle": {
"binding": {
"config": {
@ -96,7 +132,6 @@
"width": 32
},
"style": {
"backgroundColor": "#D4D4D4",
"borderColor": "#4A4A4A",
"borderWidth": 2,
"classes": "\n",
@ -107,6 +142,7 @@
},
"text": "",
"textStyle": {
"color": "#000000",
"fontSize": 12,
"fontWeight": "bold",
"textAlign": "center"
@ -119,164 +155,7 @@
"component": {
"onActionPerformed": {
"config": {
"script": "\ttags_to_read \u003d system.tag.readBlocking([\"Configuration/FC\"])\n\twhid \u003d tags_to_read[0].value\n\tid \u003d self.view.params.value.tagProps[0]\n\tcommandTarget\u003dstr(id)+\"/0\"#PLC01/0 --\u003etarget is the plc\n\tcommandParams\u003d\"\"\n\tif whid\u003d\u003d\"MAN2\" or whid\u003d\u003d\"BRS1\" or whid\u003d\u003d\"MAD6\":\n\t\tcommandTarget\u003d\"databridge/0\"\n\t\tcommandParams\u003d\"PLC\u003d\"+str(id)#this tells the target to data bridge\n\taction \u003d 3\n\tparameters\u003d{\"commandTarget\":commandTarget,\n\t\t\t\t\"commandCode\":3,\n\t\t\t\t\"commandTimestamp\":system.date.toMillis(system.date.now()),\n\t\t\t\t\"commandParams\":commandParams}\n\tCommands.button_commands.send_request(whid, action, parameters)"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Reset",
"tooltip": {
"enabled": true,
"location": "top-left"
}
},
"position": {
"basis": "80px"
},
"propConfig": {
"meta.tooltip.text": {
"binding": {
"config": {
"expression": "if({this.props.enabled},\u0027Reset \u0027 + {view.params.value.tagProps[0]},\"Re-Authentication Required - Press \u0027Enable Controls\u0027 button and re-enter password\") "
},
"type": "expr"
}
},
"props.enabled": {
"binding": {
"config": {
"expression": "{session.custom.command_auth.enabled} \u0026\u0026 {parent.custom.has_role}"
},
"type": "expr"
}
},
"props.image.icon.color": {
"binding": {
"config": {
"expression": "if({this.props.enabled},\u0027#4A4A4A\u0027,\u0027#979797\u0027)"
},
"type": "expr"
}
},
"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": {
"backgroundColor": "#D4D4D4",
"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": "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]},\"Re-Authentication Required - Press \u0027Enable Controls\u0027 button and re-enter password\")"
},
"type": "expr"
}
},
"props.enabled": {
"binding": {
"config": {
"expression": "{session.custom.command_auth.enabled} \u0026\u0026 {parent.custom.has_role}"
},
"type": "expr"
}
},
"props.image.icon.color": {
"binding": {
"config": {
"expression": "if({this.props.enabled},\u0027#4A4A4A\u0027,\u0027#979797\u0027)"
},
"type": "expr"
}
},
"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": {
"backgroundColor": "#D4D4D4",
"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": "\ttags_to_read \u003d system.tag.readBlocking([\"Configuration/FC\"])\n\twhid \u003d tags_to_read[0].value\n\tid \u003d self.view.params.value.tagProps[0]\n\tcommandTarget\u003dstr(id)+\"/0\"#PLC01/0 --\u003etarget is the plc\n\tcommandParams\u003d\"\"\n\tif whid\u003d\u003d\"MAN2\" or whid\u003d\u003d\"BRS1\" or whid\u003d\u003d\"MAD6\":\n\t\tcommandTarget\u003d\"databridge/0\"\n\t\tcommandParams\u003d\"PLC\u003d\"+str(id)#this tells the target to data bridge\n\taction \u003d 2\n\tparameters\u003d{\"commandTarget\":commandTarget,\n\t\t\t\t\"commandCode\":2,\n\t\t\t\t\"commandTimestamp\":system.date.toMillis(system.date.now()),\n\t\t\t\t\"commandParams\":commandParams}\n\tCommands.button_commands.send_request(whid, action, parameters)"
"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"
@ -297,7 +176,7 @@
"meta.tooltip.text": {
"binding": {
"config": {
"expression": "if({this.props.enabled},\u0027Stop \u0027 + {view.params.value.tagProps[0]},\"Re-Authentication Required - Press \u0027Enable Controls\u0027 button and re-enter password\") "
"expression": "if({this.props.enabled},\u0027Stop \u0027 + {view.params.value.tagProps[0]},\"You do not have Maintenance or Administrator role!\")"
},
"type": "expr"
}
@ -305,7 +184,7 @@
"props.enabled": {
"binding": {
"config": {
"expression": "{session.custom.command_auth.enabled} \u0026\u0026 {parent.custom.has_role}"
"expression": "indexOf({session.props.auth.user.roles}, \"Administrator\") \u003e\u003d 0 || indexOf({session.props.auth.user.roles}, \"Maintenance\") \u003e\u003d 0"
},
"type": "expr"
}
@ -313,11 +192,43 @@
"props.image.icon.color": {
"binding": {
"config": {
"expression": "if({this.props.enabled},\u0027#4A4A4A\u0027,\u0027#979797\u0027)"
"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]System/{0}/{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": {
@ -337,7 +248,597 @@
"width": 32
},
"style": {
"backgroundColor": "#D4D4D4",
"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.value.tagProps[0]}",
"fc": "{session.custom.fc}"
},
"tagPath": "[{fc}_SCADA_TAG_PROVIDER]System/{0}/{0}/Motor_Fault_Reset_PB_STATE"
},
"transforms": [
{
"expression": "coalesce({value},{view.params.forceFaultStatus},0)",
"type": "expression"
},
{
"fallback": "#DCDC03",
"inputType": "scalar",
"mappings": [
{
"input": 2,
"output": "#FCFF86"
},
{
"input": 4,
"output": "#FCFF86"
}
],
"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.value.tagProps[0]}",
"fc": "{session.custom.fc}"
},
"tagPath": "[{fc}_SCADA_TAG_PROVIDER]System/{0}/{0}/Power_Branch_Fault_Reset_PB_STATE"
},
"transforms": [
{
"expression": "coalesce({value},{view.params.forceFaultStatus},0)",
"type": "expression"
},
{
"fallback": "#DCDC03",
"inputType": "scalar",
"mappings": [
{
"input": 2,
"output": "#FCFF86"
},
{
"input": 4,
"output": "#FCFF86"
}
],
"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.value.tagProps[0]}",
"fc": "{session.custom.fc}"
},
"tagPath": "[{fc}_SCADA_TAG_PROVIDER]System/{0}/{0}/Low_Air_Pressure_Reset_PB_STATE"
},
"transforms": [
{
"expression": "coalesce({value},{view.params.forceFaultStatus},0)",
"type": "expression"
},
{
"fallback": "#0A0AA4",
"inputType": "scalar",
"mappings": [
{
"input": 2,
"output": "#5D5DFF"
},
{
"input": 4,
"output": "#5D5DFF"
}
],
"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.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]System/{0}/{0}/Jam_Restart_PB_STATE"
},
"transforms": [
{
"expression": "coalesce({value},{view.params.forceFaultStatus},0)",
"type": "expression"
},
{
"fallback": "#D4D4D4",
"inputType": "scalar",
"mappings": [
{
"input": 4,
"output": "#FFFFFF"
},
{
"input": 2,
"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/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]System/{0}/{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",

View File

@ -3,34 +3,32 @@
"counts": {
"Critical": 0,
"Diagnostic": 0,
"High": 0,
"Low": 0,
"High": 1,
"Low": 1,
"Medium": 0,
"Total": 0
"Total": 2
},
"totalAlarms": {
"$": [
"ds",
192,
1751448128142
1752066852881
],
"$columns": [
{
"data": [
null,
"MCM01",
"MCM01",
"MCM01",
"MCM02"
"MCM01"
],
"name": "Location",
"type": "String"
},
{
"data": [
"Diagnostic",
"Low",
"High",
"Medium",
"Diagnostic"
"Low"
],
"name": "Priority",
"type": "String"
@ -38,7 +36,6 @@
{
"data": [
1,
2,
1,
1
],
@ -51,7 +48,7 @@
"params": {
"value": {
"tagProps": [
"",
"MCM01",
"value",
"value",
"value",
@ -66,35 +63,34 @@
},
"propConfig": {
"custom.counts": {
"binding": {
"config": {
"struct": {
"PLC": "{view.params.value.tagProps[0]}"
},
"waitOnAll": true
},
"transforms": [
{
"code": " MCM \u003d value.PLC\n queryData \u003d self.custom.totalAlarms\n\n # Initialize counts\n counts \u003d {\n \"Critical\": 0,\n \"High\": 0,\n \"Medium\": 0,\n \"Low\": 0,\n \"Diagnostic\": 0,\n \"Total\": 0\n }\n\n # Loop through dataset and aggregate\n for row in range(queryData.rowCount):\n mcm_val \u003d queryData.getValueAt(row, 0)\n severity \u003d queryData.getValueAt(row, 1)\n count \u003d queryData.getValueAt(row, 2)\n\n if mcm_val \u003d\u003d MCM:\n \n key \u003d severity.capitalize()\n if key in counts:\n counts[key] +\u003d count\n counts[\"Total\"] +\u003d count\n\n return counts",
"type": "script"
}
],
"type": "expr-struct"
},
"persistent": true
},
"custom.totalAlarms": {
"binding": {
"config": {
"polling": {
"enabled": true,
"rate": "3"
},
"queryPath": "GetActiveAlarmsByLocationAndPriority"
},
"type": "query"
},
"onChange": {
"enabled": null,
"script": "\tMCM \u003d self.params.value.tagProps[0]\n\tqueryData \u003d currentValue.value\n\t\n\t# Initialize counts\n\tcounts \u003d {\n\t \"Critical\": 0,\n\t \"High\": 0,\n\t \"Medium\": 0,\n\t \"Low\": 0,\n\t \"Diagnostic\": 0,\n\t \"Total\": 0\n\t}\n\t\n\t# Loop through dataset and aggregate\n\tfor row in range(queryData.rowCount):\n\t mcm_val \u003d queryData.getValueAt(row, 0)\n\t severity \u003d queryData.getValueAt(row, 1)\n\t count \u003d queryData.getValueAt(row, 2)\n\t\n\t if mcm_val \u003d\u003d MCM:\n\t key \u003d severity.capitalize()\n\t if key in counts:\n\t counts[key] +\u003d count\n\t counts[\"Total\"] +\u003d count\n\t \n\tself.custom.counts \u003d counts"
},
"persistent": true
},
"params.value": {
"paramDirection": "input",
"persistent": true
},
"params.value.tagProps": {
"onChange": {
"enabled": null,
"script": "\tsystem.perspective.print(currentValue.value[0])"
}
}
},
"props": {

View File

@ -1,9 +1,41 @@
{
"custom": {},
"custom": {
"state": {
"$": [
"ds",
192,
1751989861336
],
"$columns": [
{
"data": [
null
],
"name": "Location",
"type": "String"
},
{
"data": [
"Low"
],
"name": "Priority",
"type": "String"
},
{
"data": [
1
],
"name": "Count",
"type": "Long"
}
]
},
"status": ""
},
"params": {
"value": {
"tagProps": [
"",
"value",
"value",
"value",
"value",
@ -17,6 +49,27 @@
}
},
"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\t\n\tqueryData \u003d currentValue.value\n\t\n\tif not queryData:\n\t\tself.custom.status \u003d \"Healty\"\n\t\n\t# Define priority order from highest to lowest\n\tpriority_order \u003d [\"Critical\", \"High\", \"Medium\", \"Low\", \"Diagnostic\"]\n\t\n\t# Set to store which priorities exist for the given MCM\n\texisting_priorities \u003d set()\n\t\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\n\tself.custom.status \u003d myPriority"
"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
@ -49,59 +102,35 @@
"grow": 1
},
"propConfig": {
"custom.status": {
"binding": {
"config": {
"path": "/root.custom.status"
},
"type": "property"
}
},
"props.style.classes": {
"binding": {
"config": {
"path": "this.custom.status"
"path": "view.custom.status"
},
"transforms": [
{
"fallback": "State-Styles/State0",
"fallback": "State-Styles/Background-Fill/State5",
"inputType": "scalar",
"mappings": [
{
"input": 1,
"input": "High",
"output": "State-Styles/Background-Fill/State1"
},
{
"input": 2,
"input": "Medium",
"output": "State-Styles/Background-Fill/State2"
},
{
"input": 3,
"input": "Low",
"output": "State-Styles/Background-Fill/State3"
},
{
"input": 4,
"input": "Diagnostic",
"output": "State-Styles/Background-Fill/State4"
},
{
"input": 5,
"output": "State-Styles/Background-Fill/State5"
},
{
"input": 6,
"output": "State-Styles/Background-Fill/State6"
},
{
"input": 0,
"output": "State-Styles/State0"
}
],
"outputType": "style-list",
"type": "map"
},
{
"expression": "if({session.custom.colours.colour_impaired},{value}+\u0027_Alt\u0027,{value})",
"type": "expression"
}
],
"type": "property"
@ -110,36 +139,28 @@
"props.text": {
"binding": {
"config": {
"path": "this.custom.status"
"path": "view.custom.status"
},
"transforms": [
{
"fallback": null,
"fallback": "HEALTHY",
"inputType": "scalar",
"mappings": [
{
"input": 5,
"output": "HEALTHY"
},
{
"input": 4,
"input": "Diagnostic",
"output": "DIAGNOSTIC"
},
{
"input": 3,
"output": "PROCESS DEGRADED"
"input": "Low",
"output": "HALF WORKFLOW"
},
{
"input": 2,
"output": "STOPPED"
"input": "Medium",
"output": "CONTROLLED STOP"
},
{
"input": 1,
"output": "FAULTED"
},
{
"input": 6,
"output": null
"input": "High",
"output": "UNCONTROLLED STOP"
}
],
"outputType": "scalar",
@ -169,78 +190,6 @@
"meta": {
"name": "root"
},
"propConfig": {
"custom.has_role": {
"binding": {
"config": {
"expression": "{session.custom.fc}"
},
"transforms": [
{
"code": "\trme_role \u003d value +\"-rme-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\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.value.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"
}
},
"custom.tag_path_to_lookup": {
"binding": {
"config": {
"expression": " \"[\\\"\" + {view.params.value.tagProps[0]} + \"\\\"]\""
},
"type": "expr"
}
}
},
"props": {
"direction": "column"
},

View File

@ -208,146 +208,43 @@
"type": "ia.display.label"
},
{
"events": {
"dom": {
"onClick": {
"config": {
"script": "\tself.session.custom.covert\u003d False\n\tnavigation.navigate_to_page.detailed_view(self, self.view.params.tagProps[0],self.view.params.tagProps[0], self.view.params.tagProps[3])"
},
"enabled": false,
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Label"
"name": "EmbeddedView"
},
"position": {
"basis": "236px"
"basis": "200px"
},
"propConfig": {
"custom.status": {
"props.params.value.tagProps[0]": {
"binding": {
"config": {
"path": "/root.custom.status"
"expression": "{view.params.tagProps[0]}"
},
"type": "property"
}
},
"props.style.classes": {
"binding": {
"config": {
"path": "this.custom.status"
},
"transforms": [
{
"fallback": "State-Styles/State0",
"inputType": "scalar",
"mappings": [
{
"input": 1,
"output": "State-Styles/Background-Fill/State1"
},
{
"input": 2,
"output": "State-Styles/Background-Fill/State2"
},
{
"input": 3,
"output": "State-Styles/Background-Fill/State3"
},
{
"input": 4,
"output": "State-Styles/Background-Fill/State4"
},
{
"input": 5,
"output": "State-Styles/Background-Fill/State5"
},
{
"input": 6,
"output": "State-Styles/Background-Fill/State6"
},
{
"input": 0,
"output": "State-Styles/State0"
}
],
"outputType": "style-list",
"type": "map"
},
{
"expression": "if({session.custom.colours.colour_impaired},{value}+\u0027_Alt\u0027,{value})",
"type": "expression"
}
],
"type": "property"
}
},
"props.text": {
"binding": {
"config": {
"path": "this.custom.status"
},
"transforms": [
{
"fallback": null,
"inputType": "scalar",
"mappings": [
{
"input": 5,
"output": "HEALTHY"
},
{
"input": 4,
"output": "DIAGNOSTIC"
},
{
"input": 3,
"output": "PROCESS DEGRADED"
},
{
"input": 2,
"output": "STOPPED"
},
{
"input": 1,
"output": "FAULTED"
},
{
"input": 6,
"output": null
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "property"
"type": "expr"
}
}
},
"props": {
"style": {
"borderBottomLeftRadius": 5,
"borderBottomRightRadius": 5,
"borderColor": "#555555",
"borderStyle": "solid",
"borderTopLeftRadius": 5,
"borderTopRightRadius": 5,
"borderWidth": 2,
"marginBottom": 10,
"marginLeft": 50,
"marginRight": 10,
"marginTop": 10
},
"textStyle": {
"fontSize": 12,
"textAlign": "center"
"params": {
"key": "value",
"value": {
"tagProps": [
null,
"value",
"value",
"value",
"value",
"value",
"value",
"value",
"value",
"value"
]
}
},
"type": "ia.display.label"
"path": "Symbol-Views/Controller-Views/CommandControlStatus"
},
"type": "ia.display.view"
}
],
"meta": {
@ -357,6 +254,7 @@
"basis": "80px"
},
"props": {
"justify": "space-around",
"style": {
"borderBottomColor": "#555555",
"borderBottomStyle": "solid",
@ -530,7 +428,7 @@
"basis": "32px"
},
"props": {
"text": 2,
"text": 0,
"textStyle": {
"fontSize": 10,
"textAlign": "center"
@ -588,7 +486,7 @@
"basis": "32px"
},
"props": {
"text": 3,
"text": 0,
"textStyle": {
"fontSize": 10,
"textAlign": "center"
@ -617,7 +515,7 @@
"basis": "32px"
},
"props": {
"text": 1,
"text": 0,
"textStyle": {
"fontSize": 10,
"textAlign": "center"
@ -646,7 +544,7 @@
"basis": "32px"
},
"props": {
"text": 6,
"text": 0,
"textStyle": {
"fontSize": 10,
"textAlign": "center"
@ -711,9 +609,9 @@
"custom": {
"counts": {
"Critical": 0,
"Diagnostic": 1,
"High": 2,
"Low": 3,
"Diagnostic": 0,
"High": 0,
"Low": 0,
"Medium": 0
}
},