|
|
|
@ -0,0 +1,830 @@ |
|
|
|
<svg width="800" height="400" fill="none" version="1.1" viewBox="0 0 800 400" xmlns="http://www.w3.org/2000/svg" xmlns:tb="https://thingsboard.io/svg"> |
|
|
|
<tb:metadata><![CDATA[{ |
|
|
|
"title": "HP Dynamic horizontal scale", |
|
|
|
"description": "Dynamic horizontal scale with current volume value and dynamically configurable warning and critical scale.", |
|
|
|
"searchTags": [ |
|
|
|
"scale" |
|
|
|
], |
|
|
|
"widgetSizeX": 4, |
|
|
|
"widgetSizeY": 2, |
|
|
|
"tags": [ |
|
|
|
{ |
|
|
|
"tag": "clickArea", |
|
|
|
"stateRenderFunction": null, |
|
|
|
"actions": { |
|
|
|
"click": { |
|
|
|
"actionFunction": "ctx.api.callAction(event, 'click');" |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
{ |
|
|
|
"tag": "highCriticalScale", |
|
|
|
"stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showHighCriticalScale = ctx.properties.showHighCriticalScale;\nvar highCriticalValue = ctx.values.highCriticalState;\nif (showHighCriticalScale && highCriticalValue !== null) {\n element.show();\n var offset = calculateOffset(highCriticalValue, minValue, maxValue);\n var childrenElement = element.children();\n childrenElement[0].height(653-offset);\n childrenElement[1].height(653-offset-1);\n} else {\n element.hide();\n}", |
|
|
|
"actions": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"tag": "highCriticalScaleBackground", |
|
|
|
"stateRenderFunction": "var value = ctx.values.value;\nvar showHighCriticalState = ctx.properties.showHighCriticalScale;\nvar highCriticalScale = ctx.values.highCriticalState;\n\nif (showHighCriticalState && value !== null && highCriticalScale !== null) {\n if (value >= highCriticalScale && value <= ctx.properties.maxValue) {\n element.fill(ctx.properties.activeCriticalScaleColor);\n } else {\n element.fill(ctx.properties.defaultCriticalScaleColor)\n }\n}", |
|
|
|
"actions": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"tag": "highWarningScale", |
|
|
|
"stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showHighWarningScale = ctx.properties.showHighWarningScale;\nvar highWarningValue = ctx.values.highWarningState;\nif (showHighWarningScale && highWarningValue !== null) {\n element.show();\n var offset = calculateOffset(highWarningValue, minValue, maxValue);\n var childrenElement = element.children();\n childrenElement[0].height(653-offset);\n childrenElement[1].height(653-offset-1);\n} else {\n element.hide();\n}", |
|
|
|
"actions": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"tag": "highWarningScaleBackground", |
|
|
|
"stateRenderFunction": "var value = ctx.values.value;\nvar showHighCriticalScale = ctx.properties.showHighCriticalScale;\nvar showHighWarningScale = ctx.properties.showHighWarningScale;\n\nif (showHighWarningScale && value !== null) {\n var highWarningScale = ctx.values.highWarningState;\n var highCriticalScale = ctx.values.highCriticalState;\n if (!showHighCriticalScale) {\n highCriticalScale = ctx.properties.maxValue;\n }\n \n if (highWarningScale !== null && highCriticalScale !== null) {\n if (value < highCriticalScale && value >= highWarningScale) {\n element.fill(ctx.properties.activeWarningScaleColor);\n } else {\n element.fill(ctx.properties.defaultWarningScaleColor);\n }\n }\n}", |
|
|
|
"actions": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"tag": "label", |
|
|
|
"stateRenderFunction": "if (ctx.properties.label) {\n element.show();\n ctx.api.font(element, ctx.properties.labelFont, ctx.properties.labelColor);\n ctx.api.text(element, ctx.properties.labelText);\n} else {\n element.hide();\n}", |
|
|
|
"actions": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"tag": "lowCriticalScale", |
|
|
|
"stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showLowCriticalScale = ctx.properties.showLowCriticalScale;\nvar lowCriticalValue = ctx.values.lowCriticalState;\n\nif (showLowCriticalScale && lowCriticalValue !== null) {\n element.show();\n var offset = calculateOffset(lowCriticalValue, minValue, maxValue);\n var childrenElement = element.children();\n childrenElement[0].height(offset);\n childrenElement[1].height(offset-1);\n} else {\n element.hide();\n}", |
|
|
|
"actions": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"tag": "lowCriticalScaleBackground", |
|
|
|
"stateRenderFunction": "var value = ctx.values.value;\nvar showLowCriticalScale = ctx.properties.showLowCriticalScale;\n\nif (showLowCriticalScale && value !== null) {\n var lowCriticalScale = ctx.values.lowCriticalState;\n if (value <= lowCriticalScale && value >= ctx.properties.minValue) {\n element.fill(ctx.properties.activeCriticalScaleColor);\n } else {\n element.fill(ctx.properties.defaultCriticalScaleColor)\n }\n}", |
|
|
|
"actions": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"tag": "lowWarningScale", |
|
|
|
"stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 653;\n\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showLowWarningScale = ctx.properties.showLowWarningScale;\nvar lowWarningValue = ctx.values.lowWarningState;\nif (showLowWarningScale && lowWarningValue !== null) {\n element.show();\n var offset = calculateOffset(lowWarningValue, minValue, maxValue);\n var childrenElement = element.children();\n childrenElement[0].height(offset);\n childrenElement[1].height(offset-1);\n} else {\n element.hide();\n}", |
|
|
|
"actions": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"tag": "lowWarningScaleBackground", |
|
|
|
"stateRenderFunction": "var value = ctx.values.value;\nvar showLowWarningScale = ctx.properties.showLowWarningScale;\nvar showLowCriticalScale = ctx.properties.showLowCriticalScale;\n\nif (showLowWarningScale && value !== null) {\n var lowCriticalScale = ctx.values.lowCriticalState;\n var lowWarningScale = ctx.values.lowWarningState;\n if (!showLowCriticalScale) {\n lowCriticalScale = ctx.properties.minValue;\n }\n if (lowCriticalScale !== null && lowWarningScale !== null) {\n if (value > lowCriticalScale && value <= lowWarningScale) {\n element.fill(ctx.properties.activeWarningScaleColor);\n } else {\n element.fill(ctx.properties.defaultWarningScaleColor);\n }\n }\n}", |
|
|
|
"actions": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"tag": "maxValue", |
|
|
|
"stateRenderFunction": "if (ctx.properties.minMaxValue) {\n ctx.api.text(element, ctx.properties.maxValue);\n}", |
|
|
|
"actions": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"tag": "minMaxValue", |
|
|
|
"stateRenderFunction": "if (ctx.properties.minMaxValue) {\n element.show();\n} else {\n element.hide();\n}", |
|
|
|
"actions": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"tag": "minValue", |
|
|
|
"stateRenderFunction": "if (ctx.properties.minMaxValue) {\n ctx.api.text(element, ctx.properties.minValue);\n}", |
|
|
|
"actions": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"tag": "scaleBackground", |
|
|
|
"stateRenderFunction": "element.fill(ctx.properties.scaleColor);", |
|
|
|
"actions": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"tag": "target", |
|
|
|
"stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 640;\n\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar showTarget = ctx.properties.showTarget;\nvar targetValue = ctx.values.targetValue;\n\nif (showTarget && targetValue !== null) {\n element.show();\n var offset = calculateOffset(targetValue, minValue, maxValue);\n element.transform({translateX: -(640 - (Math.min(Math.max(offset+17, 36), 640)))});\n} else {\n element.hide();\n}\n\n", |
|
|
|
"actions": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"tag": "targetBackground", |
|
|
|
"stateRenderFunction": "element.fill(ctx.properties.targetColor);", |
|
|
|
"actions": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"tag": "units", |
|
|
|
"stateRenderFunction": "if (ctx.properties.showUnits) {\n element.show();\n ctx.api.font(element, ctx.properties.unitsFont, ctx.properties.unitsColor);\n ctx.api.text(element, ctx.properties.units);\n} else {\n element.hide();\n}", |
|
|
|
"actions": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"tag": "value", |
|
|
|
"stateRenderFunction": "if (ctx.properties.value !== null) {\n element.show();\n ctx.api.font(element, ctx.properties.valueFont, ctx.properties.valueColor);\n ctx.api.text(element, ctx.api.formatValue(ctx.values.value, ctx.properties.valueDecimals, null, ctx.properties.valueDecimals));\n} else {\n element.hide();\n}", |
|
|
|
"actions": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"tag": "valuePointer", |
|
|
|
"stateRenderFunction": "element.fill(ctx.properties.arrowColor);", |
|
|
|
"actions": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"tag": "valuePosition", |
|
|
|
"stateRenderFunction": "function calculateOffset(value, minValue, maxValue) {\n var clampedValue = Math.max(minValue, Math.min(value, maxValue));\n var normalizedValue = (clampedValue - minValue) / (maxValue - minValue);\n var offset = normalizedValue * 638;\n\n return offset;\n}\n\nvar minValue = ctx.properties.minValue;\nvar maxValue = ctx.properties.maxValue;\nvar value = ctx.values.value;\n\nif (value !== null) {\n var offset = calculateOffset(value, minValue, maxValue);\n element.transform({translateX: -(638 - offset)});\n}\n", |
|
|
|
"actions": null |
|
|
|
} |
|
|
|
], |
|
|
|
"behavior": [ |
|
|
|
{ |
|
|
|
"id": "value", |
|
|
|
"name": "{i18n:scada.symbol.value}", |
|
|
|
"hint": "{i18n:scada.symbol.value-hint}", |
|
|
|
"group": null, |
|
|
|
"type": "value", |
|
|
|
"valueType": "DOUBLE", |
|
|
|
"trueLabel": null, |
|
|
|
"falseLabel": null, |
|
|
|
"stateLabel": null, |
|
|
|
"defaultGetValueSettings": { |
|
|
|
"action": "GET_TIME_SERIES", |
|
|
|
"defaultValue": null, |
|
|
|
"executeRpc": { |
|
|
|
"method": "getState", |
|
|
|
"requestTimeout": 5000, |
|
|
|
"requestPersistent": false, |
|
|
|
"persistentPollingInterval": 1000 |
|
|
|
}, |
|
|
|
"getAttribute": { |
|
|
|
"scope": null, |
|
|
|
"key": "state" |
|
|
|
}, |
|
|
|
"getTimeSeries": { |
|
|
|
"key": "temperature" |
|
|
|
}, |
|
|
|
"dataToValue": { |
|
|
|
"type": "NONE", |
|
|
|
"dataToValueFunction": "/* Should return boolean value */\nreturn data;" |
|
|
|
} |
|
|
|
}, |
|
|
|
"defaultSetValueSettings": null, |
|
|
|
"defaultWidgetActionSettings": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "highCriticalState", |
|
|
|
"name": "{i18n:scada.symbol.high-critical-state}", |
|
|
|
"hint": "{i18n:scada.symbol.high-critical-state-hint}", |
|
|
|
"group": null, |
|
|
|
"type": "value", |
|
|
|
"valueType": "DOUBLE", |
|
|
|
"trueLabel": null, |
|
|
|
"falseLabel": null, |
|
|
|
"stateLabel": null, |
|
|
|
"defaultGetValueSettings": { |
|
|
|
"action": "DO_NOTHING", |
|
|
|
"defaultValue": 85, |
|
|
|
"executeRpc": { |
|
|
|
"method": "getState", |
|
|
|
"requestTimeout": 5000, |
|
|
|
"requestPersistent": false, |
|
|
|
"persistentPollingInterval": 1000 |
|
|
|
}, |
|
|
|
"getAttribute": { |
|
|
|
"scope": "SERVER_SCOPE", |
|
|
|
"key": "highCriticalState" |
|
|
|
}, |
|
|
|
"getTimeSeries": { |
|
|
|
"key": "state" |
|
|
|
}, |
|
|
|
"dataToValue": { |
|
|
|
"type": "NONE", |
|
|
|
"dataToValueFunction": "/* Should return boolean value */\nreturn data;" |
|
|
|
} |
|
|
|
}, |
|
|
|
"defaultSetValueSettings": null, |
|
|
|
"defaultWidgetActionSettings": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "highWarningState", |
|
|
|
"name": "{i18n:scada.symbol.high-warning-state}", |
|
|
|
"hint": "{i18n:scada.symbol.high-warning-state-hint}", |
|
|
|
"group": null, |
|
|
|
"type": "value", |
|
|
|
"valueType": "DOUBLE", |
|
|
|
"trueLabel": null, |
|
|
|
"falseLabel": null, |
|
|
|
"stateLabel": null, |
|
|
|
"defaultGetValueSettings": { |
|
|
|
"action": "DO_NOTHING", |
|
|
|
"defaultValue": 70, |
|
|
|
"executeRpc": { |
|
|
|
"method": "getState", |
|
|
|
"requestTimeout": 5000, |
|
|
|
"requestPersistent": false, |
|
|
|
"persistentPollingInterval": 1000 |
|
|
|
}, |
|
|
|
"getAttribute": { |
|
|
|
"scope": "SERVER_SCOPE", |
|
|
|
"key": "highWarningState" |
|
|
|
}, |
|
|
|
"getTimeSeries": { |
|
|
|
"key": "state" |
|
|
|
}, |
|
|
|
"dataToValue": { |
|
|
|
"type": "NONE", |
|
|
|
"dataToValueFunction": "/* Should return boolean value */\nreturn data;" |
|
|
|
} |
|
|
|
}, |
|
|
|
"defaultSetValueSettings": null, |
|
|
|
"defaultWidgetActionSettings": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "lowWarningState", |
|
|
|
"name": "{i18n:scada.symbol.low-warning-state}", |
|
|
|
"hint": "{i18n:scada.symbol.low-warning-state-hint}", |
|
|
|
"group": null, |
|
|
|
"type": "value", |
|
|
|
"valueType": "DOUBLE", |
|
|
|
"trueLabel": null, |
|
|
|
"falseLabel": null, |
|
|
|
"stateLabel": null, |
|
|
|
"defaultGetValueSettings": { |
|
|
|
"action": "DO_NOTHING", |
|
|
|
"defaultValue": 30, |
|
|
|
"executeRpc": { |
|
|
|
"method": "getState", |
|
|
|
"requestTimeout": 5000, |
|
|
|
"requestPersistent": false, |
|
|
|
"persistentPollingInterval": 1000 |
|
|
|
}, |
|
|
|
"getAttribute": { |
|
|
|
"scope": "SERVER_SCOPE", |
|
|
|
"key": "lowWarningState" |
|
|
|
}, |
|
|
|
"getTimeSeries": { |
|
|
|
"key": "state" |
|
|
|
}, |
|
|
|
"dataToValue": { |
|
|
|
"type": "NONE", |
|
|
|
"dataToValueFunction": "/* Should return boolean value */\nreturn data;" |
|
|
|
} |
|
|
|
}, |
|
|
|
"defaultSetValueSettings": null, |
|
|
|
"defaultWidgetActionSettings": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "lowCriticalState", |
|
|
|
"name": "{i18n:scada.symbol.low-critical-state}", |
|
|
|
"hint": "{i18n:scada.symbol.low-critical-state-hint}", |
|
|
|
"group": null, |
|
|
|
"type": "value", |
|
|
|
"valueType": "DOUBLE", |
|
|
|
"trueLabel": null, |
|
|
|
"falseLabel": null, |
|
|
|
"stateLabel": null, |
|
|
|
"defaultGetValueSettings": { |
|
|
|
"action": "DO_NOTHING", |
|
|
|
"defaultValue": 15, |
|
|
|
"executeRpc": { |
|
|
|
"method": "getState", |
|
|
|
"requestTimeout": 5000, |
|
|
|
"requestPersistent": false, |
|
|
|
"persistentPollingInterval": 1000 |
|
|
|
}, |
|
|
|
"getAttribute": { |
|
|
|
"scope": "SERVER_SCOPE", |
|
|
|
"key": "lowCriticalState" |
|
|
|
}, |
|
|
|
"getTimeSeries": { |
|
|
|
"key": "state" |
|
|
|
}, |
|
|
|
"dataToValue": { |
|
|
|
"type": "NONE", |
|
|
|
"dataToValueFunction": "/* Should return boolean value */\nreturn data;" |
|
|
|
} |
|
|
|
}, |
|
|
|
"defaultSetValueSettings": null, |
|
|
|
"defaultWidgetActionSettings": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "targetValue", |
|
|
|
"name": "{i18n:scada.symbol.target-value}", |
|
|
|
"hint": "{i18n:scada.symbol.target-value-hint}", |
|
|
|
"group": null, |
|
|
|
"type": "value", |
|
|
|
"valueType": "DOUBLE", |
|
|
|
"trueLabel": null, |
|
|
|
"falseLabel": null, |
|
|
|
"stateLabel": null, |
|
|
|
"defaultGetValueSettings": { |
|
|
|
"action": "GET_ATTRIBUTE", |
|
|
|
"defaultValue": null, |
|
|
|
"executeRpc": { |
|
|
|
"method": "getState", |
|
|
|
"requestTimeout": 5000, |
|
|
|
"requestPersistent": false, |
|
|
|
"persistentPollingInterval": 1000 |
|
|
|
}, |
|
|
|
"getAttribute": { |
|
|
|
"scope": "SERVER_SCOPE", |
|
|
|
"key": "target" |
|
|
|
}, |
|
|
|
"getTimeSeries": { |
|
|
|
"key": "state" |
|
|
|
}, |
|
|
|
"dataToValue": { |
|
|
|
"type": "NONE", |
|
|
|
"dataToValueFunction": "/* Should return boolean value */\nreturn data;" |
|
|
|
} |
|
|
|
}, |
|
|
|
"defaultSetValueSettings": null, |
|
|
|
"defaultWidgetActionSettings": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "click", |
|
|
|
"name": "{i18n:scada.symbol.on-click}", |
|
|
|
"hint": "{i18n:scada.symbol.on-click-hint}", |
|
|
|
"group": null, |
|
|
|
"type": "widgetAction", |
|
|
|
"valueType": "BOOLEAN", |
|
|
|
"trueLabel": null, |
|
|
|
"falseLabel": null, |
|
|
|
"stateLabel": null, |
|
|
|
"defaultGetValueSettings": null, |
|
|
|
"defaultSetValueSettings": null, |
|
|
|
"defaultWidgetActionSettings": { |
|
|
|
"type": "doNothing", |
|
|
|
"targetDashboardStateId": null, |
|
|
|
"openRightLayout": false, |
|
|
|
"setEntityId": false, |
|
|
|
"stateEntityParamName": null |
|
|
|
} |
|
|
|
} |
|
|
|
], |
|
|
|
"properties": [ |
|
|
|
{ |
|
|
|
"id": "minMaxValue", |
|
|
|
"name": "{i18n:scada.symbol.min-max-value}", |
|
|
|
"type": "switch", |
|
|
|
"default": false, |
|
|
|
"required": null, |
|
|
|
"subLabel": null, |
|
|
|
"divider": null, |
|
|
|
"fieldSuffix": null, |
|
|
|
"disableOnProperty": null, |
|
|
|
"rowClass": "", |
|
|
|
"fieldClass": "", |
|
|
|
"min": null, |
|
|
|
"max": null, |
|
|
|
"step": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "minValue", |
|
|
|
"name": "{i18n:scada.symbol.min-max-value}", |
|
|
|
"type": "number", |
|
|
|
"default": 0, |
|
|
|
"required": true, |
|
|
|
"subLabel": "{i18n:scada.symbol.min-value}", |
|
|
|
"divider": null, |
|
|
|
"fieldSuffix": null, |
|
|
|
"disableOnProperty": null, |
|
|
|
"rowClass": "", |
|
|
|
"fieldClass": "", |
|
|
|
"min": null, |
|
|
|
"max": null, |
|
|
|
"step": 1 |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "maxValue", |
|
|
|
"name": "{i18n:scada.symbol.min-max-value}", |
|
|
|
"type": "number", |
|
|
|
"default": 100, |
|
|
|
"required": true, |
|
|
|
"subLabel": "{i18n:scada.symbol.max-value}", |
|
|
|
"divider": null, |
|
|
|
"fieldSuffix": null, |
|
|
|
"disableOnProperty": null, |
|
|
|
"rowClass": "", |
|
|
|
"fieldClass": "", |
|
|
|
"min": null, |
|
|
|
"max": null, |
|
|
|
"step": 1 |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "value", |
|
|
|
"name": "{i18n:scada.symbol.value}", |
|
|
|
"type": "switch", |
|
|
|
"default": true, |
|
|
|
"required": null, |
|
|
|
"subLabel": null, |
|
|
|
"divider": null, |
|
|
|
"fieldSuffix": null, |
|
|
|
"disableOnProperty": null, |
|
|
|
"rowClass": "", |
|
|
|
"fieldClass": "", |
|
|
|
"min": null, |
|
|
|
"max": null, |
|
|
|
"step": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "valueDecimals", |
|
|
|
"name": "{i18n:scada.symbol.value}", |
|
|
|
"type": "number", |
|
|
|
"default": 0, |
|
|
|
"required": true, |
|
|
|
"subLabel": "Decimals", |
|
|
|
"divider": null, |
|
|
|
"fieldSuffix": null, |
|
|
|
"disableOnProperty": "value", |
|
|
|
"rowClass": "", |
|
|
|
"fieldClass": "", |
|
|
|
"min": 0, |
|
|
|
"max": 10, |
|
|
|
"step": 1 |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "valueFont", |
|
|
|
"name": "{i18n:scada.symbol.value}", |
|
|
|
"type": "font", |
|
|
|
"default": { |
|
|
|
"size": 60, |
|
|
|
"sizeUnit": "px", |
|
|
|
"family": "Roboto", |
|
|
|
"weight": "400", |
|
|
|
"style": "normal" |
|
|
|
}, |
|
|
|
"required": null, |
|
|
|
"subLabel": null, |
|
|
|
"divider": null, |
|
|
|
"fieldSuffix": null, |
|
|
|
"disableOnProperty": "value", |
|
|
|
"rowClass": "", |
|
|
|
"fieldClass": "", |
|
|
|
"min": null, |
|
|
|
"max": null, |
|
|
|
"step": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "valueColor", |
|
|
|
"name": "{i18n:scada.symbol.value}", |
|
|
|
"type": "color", |
|
|
|
"default": "#002878", |
|
|
|
"required": null, |
|
|
|
"subLabel": null, |
|
|
|
"divider": null, |
|
|
|
"fieldSuffix": null, |
|
|
|
"disableOnProperty": "value", |
|
|
|
"rowClass": "", |
|
|
|
"fieldClass": "", |
|
|
|
"min": null, |
|
|
|
"max": null, |
|
|
|
"step": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "label", |
|
|
|
"name": "{i18n:scada.symbol.label}", |
|
|
|
"type": "switch", |
|
|
|
"default": true, |
|
|
|
"required": null, |
|
|
|
"subLabel": null, |
|
|
|
"divider": null, |
|
|
|
"fieldSuffix": null, |
|
|
|
"disableOnProperty": null, |
|
|
|
"rowClass": "", |
|
|
|
"fieldClass": "", |
|
|
|
"min": null, |
|
|
|
"max": null, |
|
|
|
"step": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "labelText", |
|
|
|
"name": "{i18n:scada.symbol.label}", |
|
|
|
"type": "text", |
|
|
|
"default": "Outdoor", |
|
|
|
"required": null, |
|
|
|
"subLabel": null, |
|
|
|
"divider": null, |
|
|
|
"fieldSuffix": null, |
|
|
|
"disableOnProperty": "label", |
|
|
|
"rowClass": "", |
|
|
|
"fieldClass": "flex", |
|
|
|
"min": null, |
|
|
|
"max": null, |
|
|
|
"step": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "labelFont", |
|
|
|
"name": "{i18n:scada.symbol.label}", |
|
|
|
"type": "font", |
|
|
|
"default": { |
|
|
|
"size": 56, |
|
|
|
"sizeUnit": "px", |
|
|
|
"family": "Roboto", |
|
|
|
"weight": "500", |
|
|
|
"style": "normal" |
|
|
|
}, |
|
|
|
"required": null, |
|
|
|
"subLabel": null, |
|
|
|
"divider": null, |
|
|
|
"fieldSuffix": null, |
|
|
|
"disableOnProperty": "label", |
|
|
|
"rowClass": "", |
|
|
|
"fieldClass": "", |
|
|
|
"min": null, |
|
|
|
"max": null, |
|
|
|
"step": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "labelColor", |
|
|
|
"name": "{i18n:scada.symbol.label}", |
|
|
|
"type": "color", |
|
|
|
"default": "#000000DE", |
|
|
|
"required": null, |
|
|
|
"subLabel": null, |
|
|
|
"divider": null, |
|
|
|
"fieldSuffix": null, |
|
|
|
"disableOnProperty": "label", |
|
|
|
"rowClass": "", |
|
|
|
"fieldClass": "", |
|
|
|
"min": null, |
|
|
|
"max": null, |
|
|
|
"step": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "showUnits", |
|
|
|
"name": "{i18n:scada.symbol.units}", |
|
|
|
"type": "switch", |
|
|
|
"default": true, |
|
|
|
"required": null, |
|
|
|
"subLabel": null, |
|
|
|
"divider": null, |
|
|
|
"fieldSuffix": null, |
|
|
|
"disableOnProperty": null, |
|
|
|
"rowClass": "", |
|
|
|
"fieldClass": "", |
|
|
|
"min": null, |
|
|
|
"max": null, |
|
|
|
"step": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "units", |
|
|
|
"name": "{i18n:scada.symbol.units}", |
|
|
|
"type": "units", |
|
|
|
"default": "°C", |
|
|
|
"required": null, |
|
|
|
"subLabel": null, |
|
|
|
"divider": null, |
|
|
|
"fieldSuffix": null, |
|
|
|
"disableOnProperty": "showUnits", |
|
|
|
"rowClass": "", |
|
|
|
"fieldClass": "", |
|
|
|
"min": null, |
|
|
|
"max": null, |
|
|
|
"step": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "unitsFont", |
|
|
|
"name": "{i18n:scada.symbol.units}", |
|
|
|
"type": "font", |
|
|
|
"default": { |
|
|
|
"size": 40, |
|
|
|
"sizeUnit": "px", |
|
|
|
"family": "Roboto", |
|
|
|
"weight": "500", |
|
|
|
"style": "normal" |
|
|
|
}, |
|
|
|
"required": null, |
|
|
|
"subLabel": null, |
|
|
|
"divider": null, |
|
|
|
"fieldSuffix": null, |
|
|
|
"disableOnProperty": "showUnits", |
|
|
|
"rowClass": "", |
|
|
|
"fieldClass": "", |
|
|
|
"min": null, |
|
|
|
"max": null, |
|
|
|
"step": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "unitsColor", |
|
|
|
"name": "{i18n:scada.symbol.units}", |
|
|
|
"type": "color", |
|
|
|
"default": "#000000DE", |
|
|
|
"required": null, |
|
|
|
"subLabel": null, |
|
|
|
"divider": null, |
|
|
|
"fieldSuffix": null, |
|
|
|
"disableOnProperty": "showUnits", |
|
|
|
"rowClass": "", |
|
|
|
"fieldClass": "", |
|
|
|
"min": null, |
|
|
|
"max": null, |
|
|
|
"step": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "arrowColor", |
|
|
|
"name": "{i18n:scada.symbol.arrow-color}", |
|
|
|
"type": "color", |
|
|
|
"default": "#666666", |
|
|
|
"required": null, |
|
|
|
"subLabel": null, |
|
|
|
"divider": null, |
|
|
|
"fieldSuffix": null, |
|
|
|
"disableOnProperty": null, |
|
|
|
"rowClass": "", |
|
|
|
"fieldClass": "", |
|
|
|
"min": null, |
|
|
|
"max": null, |
|
|
|
"step": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "showTarget", |
|
|
|
"name": "{i18n:scada.symbol.target}", |
|
|
|
"type": "switch", |
|
|
|
"default": false, |
|
|
|
"required": null, |
|
|
|
"subLabel": null, |
|
|
|
"divider": null, |
|
|
|
"fieldSuffix": null, |
|
|
|
"disableOnProperty": null, |
|
|
|
"rowClass": "", |
|
|
|
"fieldClass": "", |
|
|
|
"min": null, |
|
|
|
"max": null, |
|
|
|
"step": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "targetColor", |
|
|
|
"name": "{i18n:scada.symbol.target}", |
|
|
|
"type": "color", |
|
|
|
"default": "#DEDEDE", |
|
|
|
"required": null, |
|
|
|
"subLabel": null, |
|
|
|
"divider": null, |
|
|
|
"fieldSuffix": null, |
|
|
|
"disableOnProperty": "showTarget", |
|
|
|
"rowClass": "", |
|
|
|
"fieldClass": "", |
|
|
|
"min": null, |
|
|
|
"max": null, |
|
|
|
"step": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "showHighCriticalScale", |
|
|
|
"name": "{i18n:scada.symbol.show-high-critical-scale}", |
|
|
|
"type": "switch", |
|
|
|
"default": true, |
|
|
|
"required": null, |
|
|
|
"subLabel": null, |
|
|
|
"divider": null, |
|
|
|
"fieldSuffix": null, |
|
|
|
"disableOnProperty": null, |
|
|
|
"rowClass": "", |
|
|
|
"fieldClass": "", |
|
|
|
"min": null, |
|
|
|
"max": null, |
|
|
|
"step": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "showHighWarningScale", |
|
|
|
"name": "{i18n:scada.symbol.show-high-warning-scale}", |
|
|
|
"type": "switch", |
|
|
|
"default": true, |
|
|
|
"required": null, |
|
|
|
"subLabel": null, |
|
|
|
"divider": null, |
|
|
|
"fieldSuffix": null, |
|
|
|
"disableOnProperty": null, |
|
|
|
"rowClass": "", |
|
|
|
"fieldClass": "", |
|
|
|
"min": null, |
|
|
|
"max": null, |
|
|
|
"step": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "showLowWarningScale", |
|
|
|
"name": "{i18n:scada.symbol.show-low-warning-scale}", |
|
|
|
"type": "switch", |
|
|
|
"default": true, |
|
|
|
"required": null, |
|
|
|
"subLabel": null, |
|
|
|
"divider": null, |
|
|
|
"fieldSuffix": null, |
|
|
|
"disableOnProperty": null, |
|
|
|
"rowClass": "", |
|
|
|
"fieldClass": "", |
|
|
|
"min": null, |
|
|
|
"max": null, |
|
|
|
"step": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "showLowCriticalScale", |
|
|
|
"name": "{i18n:scada.symbol.show-low-critical-scale}", |
|
|
|
"type": "switch", |
|
|
|
"default": true, |
|
|
|
"required": null, |
|
|
|
"subLabel": null, |
|
|
|
"divider": null, |
|
|
|
"fieldSuffix": null, |
|
|
|
"disableOnProperty": null, |
|
|
|
"rowClass": "", |
|
|
|
"fieldClass": "", |
|
|
|
"min": null, |
|
|
|
"max": null, |
|
|
|
"step": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "scaleColor", |
|
|
|
"name": "{i18n:scada.symbol.scale-color}", |
|
|
|
"type": "color", |
|
|
|
"default": "#C8DFF7", |
|
|
|
"required": null, |
|
|
|
"subLabel": null, |
|
|
|
"divider": null, |
|
|
|
"fieldSuffix": null, |
|
|
|
"disableOnProperty": null, |
|
|
|
"rowClass": "", |
|
|
|
"fieldClass": "", |
|
|
|
"min": null, |
|
|
|
"max": null, |
|
|
|
"step": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "defaultWarningScaleColor", |
|
|
|
"name": "{i18n:scada.symbol.warning-scale-color}", |
|
|
|
"type": "color", |
|
|
|
"default": "#EBEBEB", |
|
|
|
"required": null, |
|
|
|
"subLabel": "Default", |
|
|
|
"divider": null, |
|
|
|
"fieldSuffix": null, |
|
|
|
"disableOnProperty": null, |
|
|
|
"rowClass": "", |
|
|
|
"fieldClass": "", |
|
|
|
"min": null, |
|
|
|
"max": null, |
|
|
|
"step": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "activeWarningScaleColor", |
|
|
|
"name": "{i18n:scada.symbol.warning-scale-color}", |
|
|
|
"type": "color", |
|
|
|
"default": "#FAA405", |
|
|
|
"required": null, |
|
|
|
"subLabel": "Active", |
|
|
|
"divider": null, |
|
|
|
"fieldSuffix": null, |
|
|
|
"disableOnProperty": null, |
|
|
|
"rowClass": "", |
|
|
|
"fieldClass": "", |
|
|
|
"min": null, |
|
|
|
"max": null, |
|
|
|
"step": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "defaultCriticalScaleColor", |
|
|
|
"name": "{i18n:scada.symbol.critical-scale-color}", |
|
|
|
"type": "color", |
|
|
|
"default": "#666666", |
|
|
|
"required": null, |
|
|
|
"subLabel": "Default", |
|
|
|
"divider": null, |
|
|
|
"fieldSuffix": null, |
|
|
|
"disableOnProperty": null, |
|
|
|
"rowClass": "", |
|
|
|
"fieldClass": "", |
|
|
|
"min": null, |
|
|
|
"max": null, |
|
|
|
"step": null |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "activeCriticalScaleColor", |
|
|
|
"name": "{i18n:scada.symbol.critical-scale-color}", |
|
|
|
"type": "color", |
|
|
|
"default": "#D12730", |
|
|
|
"required": null, |
|
|
|
"subLabel": "Active", |
|
|
|
"divider": null, |
|
|
|
"fieldSuffix": null, |
|
|
|
"disableOnProperty": null, |
|
|
|
"rowClass": "", |
|
|
|
"fieldClass": "", |
|
|
|
"min": null, |
|
|
|
"max": null, |
|
|
|
"step": null |
|
|
|
} |
|
|
|
] |
|
|
|
}]]></tb:metadata> |
|
|
|
<text x="409.16602" y="97.234375" fill="#000000" font-family="Roboto" font-size="56px" font-weight="400" text-anchor="middle" tb:tag="label" xml:space="preserve"><tspan transform="translate(0,-144)" dominant-baseline="middle">Outdoor</tspan></text> |
|
|
|
<text x="401.15625" y="345.75" fill="#000000" font-family="Roboto" font-size="40px" font-weight="400" text-anchor="middle" tb:tag="units" xml:space="preserve"><tspan transform="translate(0,-144)" dominant-baseline="middle">°C</tspan></text> |
|
|
|
<g transform="matrix(.98289 0 0 1 8.2492 -20)" fill="#666" font-family="Roboto" font-size="32px" font-weight="500" text-anchor="middle" style="display:none" tb:tag="minMaxValue"> |
|
|
|
<text x="100.02344" y="268" style="" tb:tag="maxValue" xml:space="preserve"><tspan dominant-baseline="middle">100</tspan></text> |
|
|
|
<text x="715.07031" y="268" style="" tb:tag="minValue" xml:space="preserve"><tspan dominant-baseline="middle">0</tspan></text> |
|
|
|
</g> |
|
|
|
<g transform="translate(-350)" tb:tag="valuePosition"> |
|
|
|
<path d="m719 179 24-42h-48z" fill="#666" tb:tag="valuePointer"/> |
|
|
|
<text x="718.7793" y="273.125" fill="#002878" font-family="Roboto" font-size="60px" font-weight="400" text-anchor="middle" tb:tag="value" xml:space="preserve"><tspan transform="translate(0,-144)" dominant-baseline="middle">26</tspan></text> |
|
|
|
</g> |
|
|
|
<g transform="matrix(.97855 0 0 1 9.5443 -16.995)" tb:tag="scale"> |
|
|
|
<rect transform="rotate(-90)" x="-242" y="72" width="42" height="653" fill="#c8dff7" style="stroke-width:.9497" tb:tag="scaleBackground"/> |
|
|
|
<rect transform="rotate(-90)" x="-241.52" y="72.475" width="41.05" height="652.05" stroke="#000" stroke-opacity=".87" style="stroke-width:.95024"/> |
|
|
|
<g tb:tag="lowWarningScale"> |
|
|
|
<rect transform="rotate(-90)" x="-242" y="72" width="42" height="153.12" fill="#ebebeb" style="stroke-width:.94905" tb:tag="lowWarningScaleBackground"/> |
|
|
|
<rect transform="rotate(-90)" x="-241.53" y="72.475" width="41.051" height="152.17" stroke="#000" stroke-opacity=".87" style="stroke-width:.94948"/> |
|
|
|
</g> |
|
|
|
<g tb:tag="lowCriticalScale"> |
|
|
|
<rect transform="rotate(-90)" x="-242" y="72" width="42" height="81.062" fill="#666" style="stroke-width:.94905" tb:tag="lowCriticalScaleBackground"/> |
|
|
|
<rect transform="rotate(-90)" x="-241.53" y="72.475" width="41.051" height="80.113" stroke="#000" stroke-opacity=".87" style="stroke-width:.94934"/> |
|
|
|
</g> |
|
|
|
<g transform="rotate(90,700.5,265.5)" tb:tag="highWarningScale"> |
|
|
|
<rect transform="scale(-1,1)" x="-677" y="241" width="42" height="153.12" fill="#ebebeb" style="stroke-width:.94905" tb:tag="highWarningScaleBackground"/> |
|
|
|
<rect transform="scale(-1,1)" x="-676.53" y="241.47" width="41.051" height="152.17" stroke="#000" stroke-opacity=".87" style="stroke-width:.94948"/> |
|
|
|
</g> |
|
|
|
<g transform="rotate(90,700.5,265.5)" tb:tag="highCriticalScale"> |
|
|
|
<rect transform="scale(-1,1)" x="-677" y="241" width="42" height="81.062" fill="#666" style="stroke-width:.94905" tb:tag="highCriticalScaleBackground"/> |
|
|
|
<rect transform="scale(-1,1)" x="-676.53" y="241.48" width="41.051" height="80.113" stroke="#000" stroke-opacity=".87" style="stroke-width:.94934"/> |
|
|
|
</g> |
|
|
|
</g> |
|
|
|
<g transform="translate(-180)" tb:tag="target"> |
|
|
|
<rect transform="rotate(45)" x="627.89" y="-363.43" width="24" height="24" fill="#dedede" tb:tag="targetBackground"/> |
|
|
|
<rect transform="rotate(45)" x="628.89" y="-362.43" width="22" height="22" stroke="#000" stroke-opacity=".87" stroke-width="2"/> |
|
|
|
</g> |
|
|
|
<path d="m269.06 0s-269.06 0-269.06 67v328.36c0 2.6512 7.1634 4.6404 16 4.6404h768c8.836 0 16-1.9892 16-4.6404v-328.36c0-67-264.28-67-264.28-67h-135.72zm268.28 81.2c-5.1546 0-9.3334 1.2536-9.3334 2.8v300.4c0 1.5464 4.1786 2.8 9.3334 2.8h58.666c5.1546 0 9.3334-1.2536 9.3334-2.8v-300.4c0-1.5464-4.1786-2.8-9.3334-2.8z" fill="#000" fill-opacity="0" style="stroke-width:.7303" tb:tag="clickArea"/> |
|
|
|
</svg> |