263 lines
6.9 KiB
Plaintext
263 lines
6.9 KiB
Plaintext
{
|
|
"custom": {
|
|
"Status": 0,
|
|
"auth": {
|
|
"almAck": true,
|
|
"almShelve": true,
|
|
"config": true,
|
|
"control": true
|
|
},
|
|
"current_value": 0
|
|
},
|
|
"params": {
|
|
"ID": 3,
|
|
"tagPath": "[Ignition_Common_IO_Gtwy]MPR1140/PLC Tags/FreezeProtectionCmd"
|
|
},
|
|
"propConfig": {
|
|
"custom.Status": {
|
|
"binding": {
|
|
"config": {
|
|
"path": "view.custom.current_value"
|
|
},
|
|
"transforms": [
|
|
{
|
|
"code": "\tmask \u003d pow(2, self.params.ID)\n\tmasked \u003d value \u0026 mask\n\treturn masked \u003e\u003e self.params.ID",
|
|
"type": "script"
|
|
}
|
|
],
|
|
"type": "property"
|
|
},
|
|
"persistent": true
|
|
},
|
|
"custom.auth": {
|
|
"binding": {
|
|
"config": {
|
|
"path": "session.props.auth.user.roles"
|
|
},
|
|
"transforms": [
|
|
{
|
|
"code": "\treturn utils.roles.validate(value)",
|
|
"type": "script"
|
|
}
|
|
],
|
|
"type": "property"
|
|
},
|
|
"persistent": true
|
|
},
|
|
"custom.current_value": {
|
|
"binding": {
|
|
"config": {
|
|
"fallbackDelay": 2.5,
|
|
"mode": "indirect",
|
|
"references": {
|
|
"tagPath": "{view.params.tagPath}"
|
|
},
|
|
"tagPath": "{tagPath}"
|
|
},
|
|
"type": "tag"
|
|
},
|
|
"persistent": true
|
|
},
|
|
"params.ID": {
|
|
"paramDirection": "input",
|
|
"persistent": true
|
|
},
|
|
"params.tagPath": {
|
|
"paramDirection": "input",
|
|
"persistent": true
|
|
}
|
|
},
|
|
"props": {
|
|
"defaultSize": {
|
|
"height": 86,
|
|
"width": 453
|
|
}
|
|
},
|
|
"root": {
|
|
"children": [
|
|
{
|
|
"meta": {
|
|
"name": "Label"
|
|
},
|
|
"propConfig": {
|
|
"props.text": {
|
|
"binding": {
|
|
"config": {
|
|
"path": "view.params.ID"
|
|
},
|
|
"transforms": [
|
|
{
|
|
"expression": "\"Freeze Protection Lineup \"+{value}",
|
|
"type": "expression"
|
|
}
|
|
],
|
|
"type": "property"
|
|
}
|
|
}
|
|
},
|
|
"props": {
|
|
"style": {
|
|
"fontFamily": "inherit",
|
|
"fontSize": 12,
|
|
"textAlign": "center"
|
|
}
|
|
},
|
|
"type": "ia.display.label"
|
|
},
|
|
{
|
|
"children": [
|
|
{
|
|
"events": {
|
|
"dom": {
|
|
"onClick": {
|
|
"config": {
|
|
"script": "\tcurrent_value \u003d system.tag.readBlocking(self.view.params.tagPath)[0].value\n\tmask \u003d pow(2, self.view.params.ID)\n\tnew_value \u003d current_value | mask\n\tsystem.tag.writeBlocking(self.view.params.tagPath, new_value)"
|
|
},
|
|
"scope": "G",
|
|
"type": "script"
|
|
}
|
|
}
|
|
},
|
|
"meta": {
|
|
"name": "On_btn"
|
|
},
|
|
"position": {
|
|
"basis": "50%"
|
|
},
|
|
"propConfig": {
|
|
"props.enabled": {
|
|
"binding": {
|
|
"config": {
|
|
"path": "view.custom.auth.control"
|
|
},
|
|
"type": "property"
|
|
}
|
|
},
|
|
"props.primary": {
|
|
"binding": {
|
|
"config": {
|
|
"path": "view.custom.Status"
|
|
},
|
|
"transforms": [
|
|
{
|
|
"fallback": false,
|
|
"inputType": "scalar",
|
|
"mappings": [
|
|
{
|
|
"input": 0,
|
|
"output": false
|
|
},
|
|
{
|
|
"input": 1,
|
|
"output": true
|
|
}
|
|
],
|
|
"outputType": "scalar",
|
|
"type": "map"
|
|
}
|
|
],
|
|
"type": "property"
|
|
}
|
|
}
|
|
},
|
|
"props": {
|
|
"text": "On"
|
|
},
|
|
"type": "ia.input.button"
|
|
},
|
|
{
|
|
"events": {
|
|
"dom": {
|
|
"onClick": {
|
|
"config": {
|
|
"script": "\tcurrent_value \u003d system.tag.readBlocking(self.view.params.tagPath)[0].value\n\tmask \u003d pow(2, self.view.params.ID)\n\tmask \u003d mask ^ 0b1111111111111111\n\tnew_value \u003d current_value \u0026 mask\n\tsystem.tag.writeBlocking(self.view.params.tagPath, new_value)"
|
|
},
|
|
"scope": "G",
|
|
"type": "script"
|
|
}
|
|
}
|
|
},
|
|
"meta": {
|
|
"name": "Off_btn"
|
|
},
|
|
"position": {
|
|
"basis": "50%"
|
|
},
|
|
"propConfig": {
|
|
"props.enabled": {
|
|
"binding": {
|
|
"config": {
|
|
"path": "view.custom.auth.control"
|
|
},
|
|
"type": "property"
|
|
}
|
|
},
|
|
"props.primary": {
|
|
"binding": {
|
|
"config": {
|
|
"path": "view.custom.Status"
|
|
},
|
|
"transforms": [
|
|
{
|
|
"fallback": true,
|
|
"inputType": "scalar",
|
|
"mappings": [
|
|
{
|
|
"input": 0,
|
|
"output": true
|
|
},
|
|
{
|
|
"input": 1,
|
|
"output": false
|
|
}
|
|
],
|
|
"outputType": "scalar",
|
|
"type": "map"
|
|
}
|
|
],
|
|
"type": "property"
|
|
}
|
|
}
|
|
},
|
|
"props": {
|
|
"text": "Off"
|
|
},
|
|
"type": "ia.input.button"
|
|
}
|
|
],
|
|
"meta": {
|
|
"name": "FlexContainer"
|
|
},
|
|
"position": {
|
|
"basis": "200px"
|
|
},
|
|
"props": {
|
|
"style": {
|
|
"gap": 10
|
|
}
|
|
},
|
|
"type": "ia.container.flex"
|
|
}
|
|
],
|
|
"meta": {
|
|
"name": "root"
|
|
},
|
|
"props": {
|
|
"direction": "column",
|
|
"style": {
|
|
"backgroundColor": "var(--container)",
|
|
"borderBottomLeftRadius": "var(--borderRadius)",
|
|
"borderBottomRightRadius": "var(--borderRadius)",
|
|
"borderTopLeftRadius": "var(--borderRadius)",
|
|
"borderTopRightRadius": "var(--borderRadius)",
|
|
"boxShadow": "var(--boxShadow2)",
|
|
"gap": 10,
|
|
"paddingBottom": 10,
|
|
"paddingLeft": 10,
|
|
"paddingRight": 10,
|
|
"paddingTop": 10
|
|
}
|
|
},
|
|
"type": "ia.container.flex"
|
|
}
|
|
} |