Handling normal chute

This commit is contained in:
b.makharadze 2025-06-23 15:10:26 +04:00
parent b4123c04fb
commit 1a2c1b2d93
2 changed files with 343 additions and 172 deletions

View File

@ -1,13 +1,21 @@
{ {
"custom": { "custom": {
"PLC_list": null, "PLC_list": [
"MCM01",
"MCM02",
"MCM03",
"MCM04",
"MCM05",
"MCM06",
"MCM07"
],
"running_state": -1, "running_state": -1,
"state": 0, "state": 0,
"views_data": [] "views_data": []
}, },
"params": { "params": {
"tagProps": [ "tagProps": [
"/System/Chute/Chute_1", "/System/D2C/TESTCHUTE",
"value", "value",
"value", "value",
"value", "value",
@ -396,6 +404,155 @@
}, },
"type": "ia.container.flex" "type": "ia.container.flex"
}, },
{
"children": [
{
"children": [
{
"meta": {
"name": "Name"
},
"position": {
"basis": "50%",
"grow": 1
},
"props": {
"style": {
"paddingLeft": 20
},
"text": "FULL"
},
"type": "ia.display.label"
},
{
"meta": {
"name": "Full"
},
"position": {
"basis": "50%",
"grow": 1
},
"propConfig": {
"props.style.backgroundColor": {
"binding": {
"config": {
"path": "this.props.text"
},
"transforms": [
{
"fallback": "#000000",
"inputType": "scalar",
"mappings": [
{
"input": "FULL",
"output": "#FFFFFF"
},
{
"input": "NOT FULL",
"output": "#D5D5D5"
}
],
"outputType": "color",
"type": "map"
}
],
"type": "property"
}
},
"props.text": {
"binding": {
"config": {
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"0": "{view.params.tagProps[0]}",
"fc": "{session.custom.fc}"
},
"tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Alarm/Full"
},
"transforms": [
{
"expression": "coalesce({value},{view.params.forceFaultStatus},0)",
"type": "expression"
},
{
"fallback": "NOT FULL",
"inputType": "scalar",
"mappings": [
{
"input": 1,
"output": "FULL"
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "tag"
}
},
"props.textStyle.color": {
"binding": {
"config": {
"path": "this.props.text"
},
"transforms": [
{
"fallback": "#000000",
"inputType": "scalar",
"mappings": [
{
"input": "FULL",
"output": "#0008FF"
},
{
"input": "NOT FULL",
"output": "#47FF47"
}
],
"outputType": "color",
"type": "map"
}
],
"type": "property"
}
}
},
"props": {
"style": {
"classes": "Text-Styles/Ariel-Bold-12pt",
"paddingLeft": 10
}
},
"type": "ia.display.label"
}
],
"meta": {
"name": "Property"
},
"position": {
"basis": "35px",
"shrink": 2
},
"props": {
"style": {
"classes": "PopUp-Styles/InfoLabel"
}
},
"type": "ia.container.flex"
}
],
"meta": {
"name": "Full"
},
"position": {
"basis": "35px"
},
"props": {
"direction": "column"
},
"type": "ia.container.flex"
},
{ {
"children": [ "children": [
{ {
@ -540,67 +697,8 @@
"position": { "position": {
"basis": "35px" "basis": "35px"
}, },
"props": {
"direction": "column"
},
"type": "ia.container.flex"
},
{
"children": [
{
"children": [
{
"meta": {
"name": "Name"
},
"position": {
"basis": "50%",
"grow": 1
},
"props": {
"style": {
"paddingLeft": 20
},
"text": "FULL"
},
"type": "ia.display.label"
},
{
"meta": {
"name": "Full"
},
"position": {
"basis": "50%",
"grow": 1
},
"propConfig": { "propConfig": {
"props.style.backgroundColor": { "meta.visible": {
"binding": {
"config": {
"path": "this.props.text"
},
"transforms": [
{
"fallback": "#000000",
"inputType": "scalar",
"mappings": [
{
"input": "FULL",
"output": "#FFFFFF"
},
{
"input": "NOT FULL",
"output": "#D5D5D5"
}
],
"outputType": "color",
"type": "map"
}
],
"type": "property"
}
},
"props.text": {
"binding": { "binding": {
"config": { "config": {
"fallbackDelay": 2.5, "fallbackDelay": 2.5,
@ -609,7 +707,7 @@
"0": "{view.params.tagProps[0]}", "0": "{view.params.tagProps[0]}",
"fc": "{session.custom.fc}" "fc": "{session.custom.fc}"
}, },
"tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Alarm/Full" "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Chute_Type"
}, },
"transforms": [ "transforms": [
{ {
@ -617,12 +715,16 @@
"type": "expression" "type": "expression"
}, },
{ {
"fallback": "NOT FULL", "fallback": false,
"inputType": "scalar", "inputType": "scalar",
"mappings": [ "mappings": [
{ {
"input": 1, "input": 1,
"output": "FULL" "output": true
},
{
"input": 2,
"output": true
} }
], ],
"outputType": "scalar", "outputType": "scalar",
@ -631,63 +733,7 @@
], ],
"type": "tag" "type": "tag"
} }
},
"props.textStyle.color": {
"binding": {
"config": {
"path": "this.props.text"
},
"transforms": [
{
"fallback": "#000000",
"inputType": "scalar",
"mappings": [
{
"input": "FULL",
"output": "#0008FF"
},
{
"input": "NOT FULL",
"output": "#47FF47"
} }
],
"outputType": "color",
"type": "map"
}
],
"type": "property"
}
}
},
"props": {
"style": {
"classes": "Text-Styles/Ariel-Bold-12pt",
"paddingLeft": 10
}
},
"type": "ia.display.label"
}
],
"meta": {
"name": "Property"
},
"position": {
"basis": "35px",
"shrink": 2
},
"props": {
"style": {
"classes": "PopUp-Styles/InfoLabel"
}
},
"type": "ia.container.flex"
}
],
"meta": {
"name": "Full"
},
"position": {
"basis": "35px"
}, },
"props": { "props": {
"direction": "column" "direction": "column"
@ -838,6 +884,44 @@
"position": { "position": {
"basis": "35px" "basis": "35px"
}, },
"propConfig": {
"meta.visible": {
"binding": {
"config": {
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"0": "{view.params.tagProps[0]}",
"fc": "{session.custom.fc}"
},
"tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Chute_Type"
},
"transforms": [
{
"expression": "coalesce({value},{view.params.forceFaultStatus},0)",
"type": "expression"
},
{
"fallback": false,
"inputType": "scalar",
"mappings": [
{
"input": 1,
"output": true
},
{
"input": 2,
"output": true
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "tag"
}
}
},
"props": { "props": {
"direction": "column" "direction": "column"
}, },
@ -987,6 +1071,44 @@
"position": { "position": {
"basis": "35px" "basis": "35px"
}, },
"propConfig": {
"meta.visible": {
"binding": {
"config": {
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"0": "{view.params.tagProps[0]}",
"fc": "{session.custom.fc}"
},
"tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Chute_Type"
},
"transforms": [
{
"expression": "coalesce({value},{view.params.forceFaultStatus},0)",
"type": "expression"
},
{
"fallback": false,
"inputType": "scalar",
"mappings": [
{
"input": 1,
"output": true
},
{
"input": 2,
"output": true
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "tag"
}
}
},
"props": { "props": {
"direction": "column" "direction": "column"
}, },
@ -1523,6 +1645,44 @@
"position": { "position": {
"basis": "35px" "basis": "35px"
}, },
"propConfig": {
"meta.visible": {
"binding": {
"config": {
"fallbackDelay": 2.5,
"mode": "indirect",
"references": {
"0": "{view.params.tagProps[0]}",
"fc": "{session.custom.fc}"
},
"tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/Chute_Type"
},
"transforms": [
{
"expression": "coalesce({value},{view.params.forceFaultStatus},0)",
"type": "expression"
},
{
"fallback": false,
"inputType": "scalar",
"mappings": [
{
"input": 1,
"output": true
},
{
"input": 2,
"output": true
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "tag"
}
}
},
"props": { "props": {
"style": { "style": {
"classes": "PopUp-Styles/InfoLabel", "classes": "PopUp-Styles/InfoLabel",

View File

@ -1,11 +1,10 @@
{ {
"custom": { "custom": {
"alarm_message": null, "disconnected": false,
"disconnected": true,
"plc": "System", "plc": "System",
"priority": 0, "priority": 0,
"priority_string": "Medium", "priority_string": "Medium",
"searchId": "PLC01", "searchId": "value",
"state": 0, "state": 0,
"state_string": "Disabled", "state_string": "Disabled",
"type": 0 "type": 0
@ -67,7 +66,7 @@
"custom.priority": { "custom.priority": {
"binding": { "binding": {
"config": { "config": {
"expression": "if(\r\n {view.custom.type} \u003d 0,\r\n if(\r\n {view.custom.state} \u003d 0 || {view.custom.state} \u003d 1 || {view.custom.state} \u003d 2 || {view.custom.state} \u003d 3 || {view.custom.state} \u003d 4,\r\n {view.custom.state},\r\n 0\r\n ),\r\n if(\r\n {view.custom.state} \u003d 0 || {view.custom.state} \u003d 1 || {view.custom.state} \u003d 2 || {view.custom.state} \u003d 3 || {view.custom.state} \u003d 4 || {view.custom.state} \u003d 5 || {view.custom.state} \u003d 6,\r\n {view.custom.state},\r\n 0\r\n )\r\n)\r\n" "expression": "if(\r\n {view.custom.type} \u003d 0,\r\n case(\r\n if(\r\n {view.custom.state} \u003d 0 || {view.custom.state} \u003d 3,\r\n {view.custom.state},\r\n 0\r\n ),\r\n 0, 0,\r\n 3, 3,\r\n 0\r\n ),\r\n if(\r\n {view.custom.type} \u003d 1,\r\n case(\r\n if(\r\n {view.custom.state} \u003e\u003d 1 \u0026\u0026 {view.custom.state} \u003c\u003d 6,\r\n {view.custom.state},\r\n 0\r\n ),\r\n 0, 0,\r\n 1, 2,\r\n 2, 3,\r\n 3, 3,\r\n 4, 1,\r\n 5, 3,\r\n 6, 3,\r\n 0\r\n ),\r\n if(\r\n {view.custom.type} \u003d 2,\r\n case(\r\n if(\r\n {view.custom.state} \u003e\u003d 1 \u0026\u0026 {view.custom.state} \u003c\u003d 4,\r\n {view.custom.state},\r\n 0\r\n ),\r\n 0, 0,\r\n 1, 2,\r\n 2, 3,\r\n 3, 3,\r\n 4, 1,\r\n 0\r\n ),\r\n 0\r\n )\r\n )\r\n)\r\n"
}, },
"type": "expr" "type": "expr"
}, },
@ -76,7 +75,7 @@
"custom.priority_string": { "custom.priority_string": {
"binding": { "binding": {
"config": { "config": {
"expression": "if({view.custom.type} \u003d 1,\r\n case({view.custom.state},\r\n 0, \u0027Medium\u0027,\r\n 1, \u0027No Active Alarms\u0027,\r\n 2, \u0027High\u0027,\r\n 3, \u0027High\u0027,\r\n 4, \u0027High\u0027,\r\n 5, \u0027Low\u0027,\r\n 6, \u0027Low\u0027,\r\n \u0027Unknown\u0027\r\n ),\r\n if({view.custom.type} \u003d 0,\r\n case({view.custom.state},\r\n 0, \u0027Medium\u0027,\r\n 1, \u0027No Active Alarms\u0027,\r\n 2, \u0027High\u0027,\r\n 3, \u0027High\u0027,\r\n 4, \u0027High\u0027,\r\n \u0027Unknown\u0027\r\n ),\r\n \u0027Unknown\u0027\r\n )\r\n)" "expression": "if(\r\n {view.custom.type} \u003d 0,\r\n case(\r\n {view.custom.state},\r\n 0, \u0027Medium\u0027,\r\n 3, \u0027Low\u0027,\r\n \u0027Unknown\u0027\r\n ),\r\n if(\r\n {view.custom.type} \u003d 1,\r\n case(\r\n {view.custom.state},\r\n 0, \u0027Medium\u0027,\r\n 1, \u0027No Active Alarms\u0027,\r\n 2, \u0027Low\u0027,\r\n 3, \u0027Low\u0027,\r\n 4, \u0027High\u0027,\r\n 5, \u0027Low\u0027,\r\n 6, \u0027Low\u0027,\r\n \u0027Unknown\u0027\r\n ),\r\n if(\r\n {view.custom.type} \u003d 2,\r\n case(\r\n {view.custom.state},\r\n 0, \u0027Medium\u0027,\r\n 1, \u0027No Active Alarms\u0027,\r\n 2, \u0027Low\u0027,\r\n 3, \u0027Low\u0027,\r\n 4, \u0027High\u0027,\r\n \u0027Unknown\u0027\r\n ),\r\n \u0027Unknown\u0027\r\n )\r\n )\r\n)\r\n"
}, },
"type": "expr" "type": "expr"
}, },
@ -119,7 +118,7 @@
"custom.state_string": { "custom.state_string": {
"binding": { "binding": {
"config": { "config": {
"expression": "if({view.custom.type} \u003d 1,\r\n case({view.custom.state},\r\n 0, \u0027Disabled\u0027,\r\n 1, \u0027Enabled\u0027,\r\n 2, \u0027Half Full\u0027,\r\n 3, \u0027Full\u0027,\r\n 4, \u0027Jammed\u0027,\r\n 5, \u0027No Container\u0027,\r\n 6, \u0027Ready To Be Enabled\u0027,\r\n \u0027Unknown\u0027\r\n ),\r\n if({view.custom.type} \u003d 0,\r\n case({view.custom.state},\r\n 0, \u0027Disabled\u0027,\r\n 1, \u0027Enabled\u0027,\r\n 2, \u0027Half Full\u0027,\r\n 3, \u0027Full\u0027,\r\n 4, \u0027Jammed\u0027,\r\n \u0027Unknown\u0027\r\n ),\r\n \u0027Unknown\u0027\r\n )\r\n)" "expression": "if(\r\n {view.custom.type} \u003d 0,\r\n case(\r\n {view.custom.state},\r\n 0, \u0027Disabled\u0027,\r\n 3, \u0027Full\u0027,\r\n \u0027Unknown\u0027\r\n ),\r\n if(\r\n {view.custom.type} \u003d 1,\r\n case(\r\n {view.custom.state},\r\n 0, \u0027Disabled\u0027,\r\n 1, \u0027Enabled\u0027,\r\n 2, \u0027Half Full\u0027,\r\n 3, \u0027Full\u0027,\r\n 4, \u0027Jammed\u0027,\r\n 5, \u0027No Container\u0027,\r\n 6, \u0027Ready To Be Enabled\u0027,\r\n \u0027Unknown\u0027\r\n ),\r\n if(\r\n {view.custom.type} \u003d 2,\r\n case(\r\n {view.custom.state},\r\n 0, \u0027Disabled\u0027,\r\n 1, \u0027Enabled\u0027,\r\n 2, \u0027Half Full\u0027,\r\n 3, \u0027Full\u0027,\r\n 4, \u0027Jammed\u0027,\r\n \u0027Unknown\u0027\r\n ),\r\n \u0027Unknown\u0027\r\n )\r\n )\r\n)"
}, },
"type": "expr" "type": "expr"
}, },
@ -196,7 +195,7 @@
"props.elements[0].fill.paint": { "props.elements[0].fill.paint": {
"binding": { "binding": {
"config": { "config": {
"expression": "if({view.custom.type} \u003d 1,\r\n case({view.custom.state},\r\n 0, \u0027#FFFFFF\u0027,\r\n 1, \u0027#C9FCC0\u0027,\r\n 2, \u0027#7F83FF\u0027,\r\n 3, \u0027#0008FF\u0027,\r\n 4, \u0027#FF8C00\u0027,\r\n 5, \u0027#FF4487\u0027,\r\n 6, \u0027#92FF00\u0027,\r\n \u0027#FFFFFF\u0027\r\n ),\r\n if({view.custom.type} \u003d 0,\r\n case({view.custom.state},\r\n 0, \u0027#FFFFFF\u0027,\r\n 1, \u0027#C9FCC0\u0027,\r\n 2, \u0027#7F83FF\u0027,\r\n 3, \u0027#0008FF\u0027,\r\n 4, \u0027#FF8C00\u0027,\r\n \u0027#FFFFFF\u0027\r\n ),\r\n \u0027#FFFFFF\u0027\r\n )\r\n)" "expression": "if(\r\n {view.custom.disconnected},\r\n \"#FFFFFF\",\r\n if(\r\n {view.custom.type} \u003d 0,\r\n case(\r\n {view.custom.state},\r\n 0, \u0027#c2c2c2\u0027,\r\n 3, \u0027#0008FF\u0027,\r\n \u0027#fff700\u0027\r\n ),\r\n if(\r\n {view.custom.type} \u003d 1,\r\n case(\r\n {view.custom.state},\r\n 0, \u0027#c2c2c2\u0027,\r\n 1, \u0027#C9FCC0\u0027,\r\n 2, \u0027#7F83FF\u0027,\r\n 3, \u0027#0008FF\u0027,\r\n 4, \u0027#FF8C00\u0027,\r\n 5, \u0027#FF4487\u0027,\r\n 6, \u0027#92FF00\u0027,\r\n \u0027#fff700\u0027\r\n ),\r\n if(\r\n {view.custom.type} \u003d 2,\r\n case(\r\n {view.custom.state},\r\n 0, \u0027#c2c2c2\u0027,\r\n 1, \u0027#C9FCC0\u0027,\r\n 2, \u0027#7F83FF\u0027,\r\n 3, \u0027#0008FF\u0027,\r\n 4, \u0027#FF8C00\u0027,\r\n \u0027#FFFFFF\u0027\r\n ),\r\n \u0027#fff700\u0027\r\n )\r\n )\r\n )\r\n)\r\n"
}, },
"type": "expr" "type": "expr"
} }
@ -262,31 +261,19 @@
"mappings": [ "mappings": [
{ {
"input": 1, "input": 1,
"output": "Alarms-Styles/NoAlarm" "output": "Alarms-Styles/High"
}, },
{ {
"input": 2, "input": 2,
"output": "Alarms-Styles/High"
},
{
"input": 3,
"output": "Alarms-Styles/High"
},
{
"input": 4,
"output": "Alarms-Styles/High"
},
{
"input": 0,
"output": "Alarms-Styles/Medium" "output": "Alarms-Styles/Medium"
}, },
{ {
"input": 5, "input": 3,
"output": "Alarms-Styles/Low" "output": "Alarms-Styles/Low"
}, },
{ {
"input": 6, "input": 4,
"output": "Alarms-Styles/Low" "output": "Alarms-Styles/Diagnostic"
} }
], ],
"outputType": "style-list", "outputType": "style-list",
@ -303,15 +290,39 @@
}, },
"type": "expr" "type": "expr"
} }
},
"props.style.classes": {
"binding": {
"config": {
"path": "view.custom.disconnected"
},
"enabled": false,
"transforms": [
{
"fallback": "Disconnects/Device-Connected",
"inputType": "scalar",
"mappings": [
{
"input": true,
"output": "Disconnects/Device-Disconnected"
},
{
"input": false,
"output": "Disconnects/Device-Connected"
}
],
"outputType": "style-list",
"type": "map"
}
],
"type": "property"
}
} }
}, },
"props": { "props": {
"justify": "center", "justify": "center",
"style": { "style": {
"borderColor": "#FF0000", "classes": "Disconnects/Device-Connected"
"borderStyle": "none",
"borderWidth": "2px",
"cursor": "pointer"
} }
}, },
"type": "ia.container.flex" "type": "ia.container.flex"