{ "custom": {}, "params": { "meta": { "name": "S1-CH1" }, "props": { "config": { "alwaysShowAll": true, "isClickable": false, "rotation": 0 }, "status": { "tagPath": "[default]MCP04/CH_20116/CH_20116" } } }, "propConfig": { "params.meta": { "paramDirection": "input", "persistent": true }, "params.meta.name": { "paramDirection": "input", "persistent": true }, "params.props": { "paramDirection": "input", "persistent": true }, "params.props.config.alwaysShowAll": { "paramDirection": "input", "persistent": true }, "params.props.config.rotation": { "paramDirection": "input", "persistent": true } }, "props": { "defaultSize": { "height": 349, "width": 500 } }, "root": { "children": [ { "meta": { "name": "ChuteLabel" }, "position": { "height": 30, "width": 100, "x": 198, "y": 298.8 }, "propConfig": { "props.text": { "binding": { "config": { "path": "view.params.props.status.tagPath" }, "transforms": [ { "code": "\treturn utils.prettyName(value.split(\"/\")[-1])", "type": "script" } ], "type": "property" } } }, "props": { "style": { "fontSize": "20px", "textAlign": "center" } }, "type": "ia.display.label" }, { "events": { "component": { "onActionPerformed": { "config": { "script": "\ttagPath \u003d self.view.params.props.status.tagPath\n\ttags \u003d [tagPath + \"/CH/SetEnable\"]\n\tvalues \u003d [1]\n\tsystem.tag.writeAsync(tags, values)" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Enable" }, "position": { "height": 40, "width": 120, "x": 120, "y": 20.3 }, "propConfig": { "props.enabled": { "binding": { "config": { "fallbackDelay": 2.5, "mode": "indirect", "references": { "tagPath": "{view.params.props.status.tagPath}" }, "tagPath": "{tagPath}/CH/SetEnable" }, "transforms": [ { "expression": "isGood({value})", "type": "expression" } ], "type": "tag" } }, "props.style.classes": { "binding": { "config": { "fallbackDelay": 2.5, "mode": "indirect", "references": { "tagPath": "{view.params.props.status.tagPath}" }, "tagPath": "{tagPath}/CH/SetEnable" }, "transforms": [ { "fallback": "Buttons/Grey", "inputType": "scalar", "mappings": [ { "input": true, "output": "Buttons/Green" } ], "outputType": "scalar", "type": "map" }, { "expression": "if(isGood({value}),\r\n\t{value},\r\n\t\"Buttons/Grey\"\r\n)", "type": "expression" } ], "type": "tag" } } }, "props": { "style": {}, "text": "Enable" }, "type": "ia.input.button" }, { "events": { "component": { "onActionPerformed": { "config": { "script": "\ttagPath \u003d self.view.params.props.status.tagPath\n\ttags \u003d [tagPath + \"/CH/SetEnable\"]\n\tvalues \u003d [0]\n\tsystem.tag.writeAsync(tags, values)" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Disable" }, "position": { "height": 40, "width": 120, "x": 260, "y": 20.3 }, "propConfig": { "props.enabled": { "binding": { "config": { "fallbackDelay": 2.5, "mode": "indirect", "references": { "tagPath": "{view.params.props.status.tagPath}" }, "tagPath": "{tagPath}/CH/SetEnable" }, "transforms": [ { "expression": "isGood({value})", "type": "expression" } ], "type": "tag" } }, "props.style.classes": { "binding": { "config": { "fallbackDelay": 2.5, "mode": "indirect", "references": { "tagPath": "{view.params.props.status.tagPath}" }, "tagPath": "{tagPath}/CH/SetEnable" }, "transforms": [ { "fallback": "Buttons/Grey", "inputType": "scalar", "mappings": [ { "input": false, "output": "Buttons/Red" } ], "outputType": "scalar", "type": "map" }, { "expression": "if(isGood({value}),\r\n\t{value},\r\n\t\"Buttons/Grey\"\r\n)", "type": "expression" } ], "type": "tag" } } }, "props": { "style": {}, "text": "Disable" }, "type": "ia.input.button" }, { "meta": { "name": "SpiralChute" }, "position": { "height": 60, "width": 85, "x": 205, "y": 165 }, "propConfig": { "props.params": { "binding": { "config": { "struct": { "alwaysShowAll": true, "isClickable": false, "rotation": "{view.params.props.config.rotation}", "tagPath": "{view.params.props.status.tagPath}" }, "waitOnAll": true }, "type": "expr-struct" } }, "props.style.transform": { "binding": { "config": { "path": "view.params.props.config.rotation" }, "transforms": [ { "expression": "\"scale(2) rotate(\" + {value} + \"deg)\"", "type": "expression" } ], "type": "property" }, "persistent": true } }, "props": { "path": "Templates/Areas/SpiralChute", "style": { "transform": "scale(2) rotate(0deg)" } }, "type": "ia.display.view" }, { "meta": { "name": "ChuteLabel_0" }, "position": { "height": 35, "width": 260, "x": 120, "y": 63 }, "propConfig": { "props.text": { "binding": { "config": { "fallbackDelay": 2.5, "mode": "indirect", "references": { "tagPath": "{view.params.props.status.tagPath}" }, "tagPath": "{tagPath}/CH/StatusText" }, "type": "tag" } } }, "props": { "style": { "fontSize": "20px", "fontWeight": "bold", "textAlign": "center" } }, "type": "ia.display.label" } ], "meta": { "name": "root" }, "props": { "style": { "background-color": "#CFCFCF" } }, "type": "ia.container.coord" } }