ci-server-engineer/examples/CI-Eng-Sample/displays/CIENG_Header.xml
cliu c9d2ead5d9 Sample: CIENG_* operator HMI displays, generator and CIENG_Operator / CIENG_Popup layouts
- displays/CIENG_{Header,Overview,Control,Trends,Alarms,System,AlarmBanner,TankFaceplate}.xml:
  dark dashboard in HTML mode (desktop + web), generated by displays/generator/build.py
  (cixml.py component library; README.md describes the tool and the R1.03 rules it follows)
- layouts/CIENG_Operator.xml now holds CIENG_Operator (menu, navigation toolbar, header frame,
  5-tab set, alarm banner, status line; navigate commands with stretchDisplay) and CIENG_Popup
  (faceplate); layout.ps1 message updated
- deploy_displays.cmd / remove_displays.cmd for the 8 new displays
- Live-data Start runs C:\Users\Public\CI-Eng-Sample\feed\cieng_feed_start.cmd on the server
- Tested on CI Server R1.03.00 2026-10-06 (ADMIN with ?l=CIENG_Operator / jwuipoi -layout):
  web layout, tabs, popup, faceplate navigation, combo write, server-side Start as CIX_PROCESS;
  desktop layout, stretched tabs, Start/Stop
- Old CIENG_Tank / CIENG_Menu / CIENG_TrendLab still present (removed in the next stage)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 10:23:54 +11:00

67 lines
28 KiB
XML

<?xml version="1.0" encoding="utf-8" ?>
<visualization protocolVersion="1.3.0.0">
<globalSection/>
<coreObjectDefinition type="displayDefinition">
<version type="version" value="1.3.0.0"/>
<title>Header</title>
<html>true</html>
<width>1920</width>
<height>96</height>
<referenceCheck>43</referenceCheck>
<backgroundColor type="colorSet" r="22" g="27" b="34"/>
<backgroundColorOn>true</backgroundColorOn>
<defaultBgColor type="colorSet" r="22" g="27" b="34"/>
<defaultFgColor type="colorSet" r="230" g="237" b="243"/>
<defaultFont type="font" name="Segoe UI" size="12" underline="false" strikethrough="false"/>
<defaultStroke type="stroke" width="1.0"/>
<grid type="grid" gridVisible="true" snappingActive="true" verticalSnapInterval="4" horizontalSnapInterval="4" onTop="false"><color type="colorSet" r="51" g="59" b="71"/></grid>
<revisionHistory type="revisionHistory"><revision type="revision" who="ADMIN" when="2026.10.02 12:00:00.000 AEST" what="Generated by displays/generator/build.py" where="localhost"/></revisionHistory>
<blinkDelay>500</blinkDelay>
<blinkEnabled>true</blinkEnabled>
<mousePassThrough>false</mousePassThrough>
<visibilityGroup type="componentData"><htmlId>2</htmlId><name>Overview</name><description>Always shown</description><minimumZoomEnabled>true</minimumZoomEnabled><minimumZoomFactor>10.0</minimumZoomFactor></visibilityGroup>
<visibilityGroup type="componentData"><htmlId>3</htmlId><name>Rough</name><description>Shown when viewing viewing a large area</description><minimumZoomEnabled>true</minimumZoomEnabled><minimumZoomFactor>25.0</minimumZoomFactor></visibilityGroup>
<visibilityGroup type="componentData"><htmlId>4</htmlId><name>Standard</name><description>Shown when using the default view setting</description><minimumZoomEnabled>true</minimumZoomEnabled><minimumZoomFactor>100.0</minimumZoomFactor></visibilityGroup>
<visibilityGroup type="componentData"><htmlId>5</htmlId><name>Detail</name><description>Shown only when viewing a small area</description><minimumZoomEnabled>true</minimumZoomEnabled><minimumZoomFactor>400.0</minimumZoomFactor></visibilityGroup>
<visibilityGroup type="componentData"><htmlId>6</htmlId><name>Intricacies</name><description>Shown only when viewing a very small area</description><minimumZoomEnabled>true</minimumZoomEnabled><minimumZoomFactor>1000.0</minimumZoomFactor></visibilityGroup>
<visualizationLayer type="componentData"><htmlId>1</htmlId><name>Layer1</name></visualizationLayer>
<componentCountHint>37</componentCountHint>
<rectangle type="componentData"><htmlId>7</htmlId><x>960.0</x><y>48.0</y><top>48.0</top><bottom>48.0</bottom><left>960.0</left><right>960.0</right><rotation>0.0</rotation><shear>0.0</shear><stroke type="stroke" width="1.0"/><strokeOn>false</strokeOn><fillOn>true</fillOn><fillPaint type="paint"><paint type="colorSet" r="22" g="27" b="34"/></fillPaint></rectangle>
<rectangle type="componentData"><htmlId>8</htmlId><x>960.0</x><y>95.0</y><top>0.5</top><bottom>0.5</bottom><left>960.0</left><right>960.0</right><rotation>0.0</rotation><shear>0.0</shear><stroke type="stroke" width="1.0"/><strokeOn>false</strokeOn><fillOn>true</fillOn><fillPaint type="paint"><paint type="colorSet" r="48" g="61" b="77"/></fillPaint></rectangle>
<rectangle type="componentData"><htmlId>9</htmlId><roundingX>0.4667</roundingX><roundingY>0.4667</roundingY><x>50.0</x><y>48.0</y><top>30.0</top><bottom>30.0</bottom><left>30.0</left><right>30.0</right><rotation>0.0</rotation><shear>0.0</shear><stroke type="stroke" width="1.0"/><strokeOn>false</strokeOn><fillOn>true</fillOn><fillPaint type="paint"><paint type="colorSet" r="59" g="130" b="246"/></fillPaint></rectangle>
<text type="componentData"><htmlId>10</htmlId><value>CI</value><font type="font" name="Segoe UI" bold="true" size="22" underline="false" strikethrough="false"/><fillPaint type="paint"><paint type="colorSet" r="255" g="255" b="255"/></fillPaint><justification type="textJustification" value="TextJustificationCenter"/><stroke type="stroke" width="1.0"/><keepOriginalSize>true</keepOriginalSize><x>50.0</x><y>48.0</y><top>14.0</top><bottom>14.0</bottom><left>30.0</left><right>30.0</right><rotation>0.0</rotation><shear>0.0</shear></text>
<text type="componentData"><htmlId>11</htmlId><value>CI-Eng-Sample</value><font type="font" name="Segoe UI" bold="true" size="22" underline="false" strikethrough="false"/><fillPaint type="paint"><paint type="colorSet" r="230" g="237" b="243"/></fillPaint><justification type="textJustification" value="TextJustificationCenter"/><stroke type="stroke" width="1.0"/><keepOriginalSize>true</keepOriginalSize><x>171.1</x><y>33.0</y><top>15.0</top><bottom>15.0</bottom><left>75.1</left><right>75.1</right><rotation>0.0</rotation><shear>0.0</shear></text>
<text type="componentData"><htmlId>12</htmlId><value>Operations dashboard | Tank farm demo</value><font type="font" name="Segoe UI" size="12" underline="false" strikethrough="false"/><fillPaint type="paint"><paint type="colorSet" r="139" g="152" b="168"/></fillPaint><justification type="textJustification" value="TextJustificationCenter"/><stroke type="stroke" width="1.0"/><keepOriginalSize>true</keepOriginalSize><x>201.8</x><y>62.0</y><top>10.0</top><bottom>10.0</bottom><left>105.8</left><right>105.8</right><rotation>0.0</rotation><shear>0.0</shear></text>
<rectangle type="componentData"><htmlId>13</htmlId><roundingX>0.0952</roundingX><roundingY>0.2353</roundingY><x>604.0</x><y>48.0</y><top>34.0</top><bottom>34.0</bottom><left>84.0</left><right>84.0</right><rotation>0.0</rotation><shear>0.0</shear><stroke type="stroke" width="1.0"/><strokeOn>true</strokeOn><strokePaint type="paint"><paint type="colorSet" r="48" g="61" b="77"/></strokePaint><fillOn>true</fillOn><fillPaint type="paint"><paint type="colorSet" r="28" g="35" b="45"/></fillPaint></rectangle>
<text type="componentData"><htmlId>14</htmlId><value>TANK LEVEL</value><font type="font" name="Segoe UI" bold="true" size="10" underline="false" strikethrough="false"/><fillPaint type="paint"><paint type="colorSet" r="139" g="152" b="168"/></fillPaint><justification type="textJustification" value="TextJustificationCenter"/><stroke type="stroke" width="1.0"/><keepOriginalSize>true</keepOriginalSize><x>561.8</x><y>30.0</y><top>8.0</top><bottom>8.0</bottom><left>27.8</left><right>27.8</right><rotation>0.0</rotation><shear>0.0</shear></text>
<number type="componentData"><htmlId>15</htmlId><value>0.0</value><format>999.9</format><font type="font" name="Consolas" bold="true" size="22" underline="false" strikethrough="false"/><fillPaint type="paint"><paint type="colorSet" r="230" g="237" b="243"/></fillPaint><justification type="textJustification" value="TextJustificationCenter"/><stroke type="stroke" width="1.0"/><keepOriginalSize>true</keepOriginalSize><x>563.2</x><y>56.0</y><top>16.0</top><bottom>16.0</bottom><left>29.2</left><right>29.2</right><rotation>0.0</rotation><shear>0.0</shear><data type="data"><action type="actionConnectTo"><property type="property" name="number.value"/><filter type="filter"><value>0.0</value></filter><connection type="connection"><direction>1</direction><itemName>CI-Eng-Sample.TANK1.LEVEL</itemName><itemAttribute>ItemValue</itemAttribute></connection></action><action type="actionConnectTo"><property type="property" name="number.fillPaint"/><filter type="filter"><value>0.0</value></filter><transformation type="transformationThreshold"><inputType>java.lang.Double</inputType><outputType>fasttools.jwui.common.property.paint.PaintSet</outputType><thresholdTable type="thresholdTable"><thresholdIn>0.0</thresholdIn><thresholdOut type="paint"><paint type="colorSet" r="239" g="68" b="68"/></thresholdOut><thresholdIn>10.0</thresholdIn><thresholdOut type="paint"><paint type="colorSet" r="245" g="158" b="11"/></thresholdOut><thresholdIn>20.0</thresholdIn><thresholdOut type="paint"><paint type="colorSet" r="20" g="184" b="166"/></thresholdOut><thresholdIn>80.0</thresholdIn><thresholdOut type="paint"><paint type="colorSet" r="245" g="158" b="11"/></thresholdOut><thresholdIn>90.0</thresholdIn><thresholdOut type="paint"><paint type="colorSet" r="239" g="68" b="68"/></thresholdOut></thresholdTable></transformation><connection type="connection"><direction>1</direction><itemName>CI-Eng-Sample.TANK1.LEVEL</itemName><itemAttribute>ItemValue</itemAttribute></connection></action></data></number>
<text type="componentData"><htmlId>16</htmlId><value>%</value><font type="font" name="Segoe UI" size="11" underline="false" strikethrough="false"/><fillPaint type="paint"><paint type="colorSet" r="139" g="152" b="168"/></fillPaint><justification type="textJustification" value="TextJustificationCenter"/><stroke type="stroke" width="1.0"/><keepOriginalSize>true</keepOriginalSize><x>642.4</x><y>59.0</y><top>9.0</top><bottom>9.0</bottom><left>4.4</left><right>4.4</right><rotation>0.0</rotation><shear>0.0</shear></text>
<rectangle type="componentData"><htmlId>17</htmlId><roundingX>0.0952</roundingX><roundingY>0.2353</roundingY><x>784.0</x><y>48.0</y><top>34.0</top><bottom>34.0</bottom><left>84.0</left><right>84.0</right><rotation>0.0</rotation><shear>0.0</shear><stroke type="stroke" width="1.0"/><strokeOn>true</strokeOn><strokePaint type="paint"><paint type="colorSet" r="48" g="61" b="77"/></strokePaint><fillOn>true</fillOn><fillPaint type="paint"><paint type="colorSet" r="28" g="35" b="45"/></fillPaint></rectangle>
<text type="componentData"><htmlId>18</htmlId><value>INFLOW</value><font type="font" name="Segoe UI" bold="true" size="10" underline="false" strikethrough="false"/><fillPaint type="paint"><paint type="colorSet" r="139" g="152" b="168"/></fillPaint><justification type="textJustification" value="TextJustificationCenter"/><stroke type="stroke" width="1.0"/><keepOriginalSize>true</keepOriginalSize><x>733.0</x><y>30.0</y><top>8.0</top><bottom>8.0</bottom><left>19.0</left><right>19.0</right><rotation>0.0</rotation><shear>0.0</shear></text>
<number type="componentData"><htmlId>19</htmlId><value>0.0</value><format>9999.9</format><font type="font" name="Consolas" bold="true" size="22" underline="false" strikethrough="false"/><fillPaint type="paint"><paint type="colorSet" r="230" g="237" b="243"/></fillPaint><justification type="textJustification" value="TextJustificationCenter"/><stroke type="stroke" width="1.0"/><keepOriginalSize>true</keepOriginalSize><x>749.1</x><y>56.0</y><top>16.0</top><bottom>16.0</bottom><left>35.1</left><right>35.1</right><rotation>0.0</rotation><shear>0.0</shear><data type="data"><action type="actionConnectTo"><property type="property" name="number.value"/><filter type="filter"><value>0.0</value></filter><connection type="connection"><direction>1</direction><itemName>CI-Eng-Sample.TANK1.INFLOW</itemName><itemAttribute>ItemValue</itemAttribute></connection></action></data></number>
<text type="componentData"><htmlId>20</htmlId><value>m3/h</value><font type="font" name="Segoe UI" size="11" underline="false" strikethrough="false"/><fillPaint type="paint"><paint type="colorSet" r="139" g="152" b="168"/></fillPaint><justification type="textJustification" value="TextJustificationCenter"/><stroke type="stroke" width="1.0"/><keepOriginalSize>true</keepOriginalSize><x>830.2</x><y>59.0</y><top>9.0</top><bottom>9.0</bottom><left>12.2</left><right>12.2</right><rotation>0.0</rotation><shear>0.0</shear></text>
<rectangle type="componentData"><htmlId>21</htmlId><roundingX>0.0952</roundingX><roundingY>0.2353</roundingY><x>964.0</x><y>48.0</y><top>34.0</top><bottom>34.0</bottom><left>84.0</left><right>84.0</right><rotation>0.0</rotation><shear>0.0</shear><stroke type="stroke" width="1.0"/><strokeOn>true</strokeOn><strokePaint type="paint"><paint type="colorSet" r="48" g="61" b="77"/></strokePaint><fillOn>true</fillOn><fillPaint type="paint"><paint type="colorSet" r="28" g="35" b="45"/></fillPaint></rectangle>
<text type="componentData"><htmlId>22</htmlId><value>VOLUME</value><font type="font" name="Segoe UI" bold="true" size="10" underline="false" strikethrough="false"/><fillPaint type="paint"><paint type="colorSet" r="139" g="152" b="168"/></fillPaint><justification type="textJustification" value="TextJustificationCenter"/><stroke type="stroke" width="1.0"/><keepOriginalSize>true</keepOriginalSize><x>914.5</x><y>30.0</y><top>8.0</top><bottom>8.0</bottom><left>20.5</left><right>20.5</right><rotation>0.0</rotation><shear>0.0</shear></text>
<number type="componentData"><htmlId>23</htmlId><value>0.0</value><format>9999.9</format><font type="font" name="Consolas" bold="true" size="22" underline="false" strikethrough="false"/><fillPaint type="paint"><paint type="colorSet" r="230" g="237" b="243"/></fillPaint><justification type="textJustification" value="TextJustificationCenter"/><stroke type="stroke" width="1.0"/><keepOriginalSize>true</keepOriginalSize><x>929.1</x><y>56.0</y><top>16.0</top><bottom>16.0</bottom><left>35.1</left><right>35.1</right><rotation>0.0</rotation><shear>0.0</shear><data type="data"><action type="actionConnectTo"><property type="property" name="number.value"/><filter type="filter"><value>0.0</value></filter><connection type="connection"><direction>1</direction><itemName>CI-Eng-Sample.TANK1.CALC.VOLUME</itemName><itemAttribute>ItemValue</itemAttribute></connection></action></data></number>
<text type="componentData"><htmlId>24</htmlId><value>m3</value><font type="font" name="Segoe UI" size="11" underline="false" strikethrough="false"/><fillPaint type="paint"><paint type="colorSet" r="139" g="152" b="168"/></fillPaint><justification type="textJustification" value="TextJustificationCenter"/><stroke type="stroke" width="1.0"/><keepOriginalSize>true</keepOriginalSize><x>1005.3</x><y>59.0</y><top>9.0</top><bottom>9.0</bottom><left>7.3</left><right>7.3</right><rotation>0.0</rotation><shear>0.0</shear></text>
<rectangle type="componentData"><htmlId>25</htmlId><roundingX>0.0952</roundingX><roundingY>0.2353</roundingY><x>1144.0</x><y>48.0</y><top>34.0</top><bottom>34.0</bottom><left>84.0</left><right>84.0</right><rotation>0.0</rotation><shear>0.0</shear><stroke type="stroke" width="1.0"/><strokeOn>true</strokeOn><strokePaint type="paint"><paint type="colorSet" r="48" g="61" b="77"/></strokePaint><fillOn>true</fillOn><fillPaint type="paint"><paint type="colorSet" r="28" g="35" b="45"/></fillPaint></rectangle>
<text type="componentData"><htmlId>26</htmlId><value>PUMP 1</value><font type="font" name="Segoe UI" bold="true" size="10" underline="false" strikethrough="false"/><fillPaint type="paint"><paint type="colorSet" r="139" g="152" b="168"/></fillPaint><justification type="textJustification" value="TextJustificationCenter"/><stroke type="stroke" width="1.0"/><keepOriginalSize>true</keepOriginalSize><x>1092.5</x><y>30.0</y><top>8.0</top><bottom>8.0</bottom><left>18.5</left><right>18.5</right><rotation>0.0</rotation><shear>0.0</shear></text>
<ellipse type="componentData"><htmlId>27</htmlId><x>1083.0</x><y>57.0</y><top>9.0</top><bottom>9.0</bottom><left>9.0</left><right>9.0</right><rotation>0.0</rotation><shear>0.0</shear><stroke type="stroke" width="1.0"/><strokeOn>false</strokeOn><fillOn>true</fillOn><fillPaint type="paint"><paint type="colorSet" r="71" g="85" b="105"/></fillPaint><data type="data"><action type="actionConnectTo"><property type="property" name="ellipse.fillPaint"/><filter type="filter"><value>0.0</value></filter><transformation type="transformationThreshold"><inputType>java.lang.Boolean</inputType><outputType>fasttools.jwui.common.property.paint.PaintSet</outputType><thresholdTable type="thresholdTable"><thresholdIn>false</thresholdIn><thresholdOut type="paint"><paint type="colorSet" r="71" g="85" b="105"/></thresholdOut><thresholdIn>true</thresholdIn><thresholdOut type="paint"><paint type="colorSet" r="34" g="197" b="94"/></thresholdOut></thresholdTable></transformation><connection type="connection"><direction>1</direction><itemName>CI-Eng-Sample.PUMP1.RUNNING</itemName><itemAttribute>ItemValue</itemAttribute></connection></action></data></ellipse>
<text type="componentData"><htmlId>28</htmlId><value>RUNNING</value><font type="font" name="Segoe UI" bold="true" size="14" underline="false" strikethrough="false"/><fillPaint type="paint"><paint type="colorSet" r="34" g="197" b="94"/></fillPaint><justification type="textJustification" value="TextJustificationCenter"/><stroke type="stroke" width="1.0"/><keepOriginalSize>true</keepOriginalSize><x>1132.2</x><y>56.0</y><top>12.0</top><bottom>12.0</bottom><left>32.2</left><right>32.2</right><rotation>0.0</rotation><shear>0.0</shear><data type="data"><action type="actionConnectTo"><property type="property" name="text.visible"/><filter type="filter"><value>0.0</value></filter><transformation type="transformationThreshold"><inputType>java.lang.Boolean</inputType><outputType>java.lang.Boolean</outputType><thresholdTable type="thresholdTable"><thresholdIn>false</thresholdIn><thresholdOut>false</thresholdOut><thresholdIn>true</thresholdIn><thresholdOut>true</thresholdOut></thresholdTable></transformation><connection type="connection"><direction>1</direction><itemName>CI-Eng-Sample.PUMP1.RUNNING</itemName><itemAttribute>ItemValue</itemAttribute></connection></action></data></text>
<text type="componentData"><htmlId>29</htmlId><value>STOPPED</value><font type="font" name="Segoe UI" bold="true" size="14" underline="false" strikethrough="false"/><fillPaint type="paint"><paint type="colorSet" r="139" g="152" b="168"/></fillPaint><justification type="textJustification" value="TextJustificationCenter"/><stroke type="stroke" width="1.0"/><keepOriginalSize>true</keepOriginalSize><x>1130.2</x><y>56.0</y><top>12.0</top><bottom>12.0</bottom><left>30.2</left><right>30.2</right><rotation>0.0</rotation><shear>0.0</shear><data type="data"><action type="actionConnectTo"><property type="property" name="text.visible"/><filter type="filter"><value>0.0</value></filter><transformation type="transformationThreshold"><inputType>java.lang.Boolean</inputType><outputType>java.lang.Boolean</outputType><thresholdTable type="thresholdTable"><thresholdIn>false</thresholdIn><thresholdOut>true</thresholdOut><thresholdIn>true</thresholdIn><thresholdOut>false</thresholdOut></thresholdTable></transformation><connection type="connection"><direction>1</direction><itemName>CI-Eng-Sample.PUMP1.RUNNING</itemName><itemAttribute>ItemValue</itemAttribute></connection></action></data></text>
<rectangle type="componentData"><htmlId>30</htmlId><roundingX>0.0952</roundingX><roundingY>0.2353</roundingY><x>1324.0</x><y>48.0</y><top>34.0</top><bottom>34.0</bottom><left>84.0</left><right>84.0</right><rotation>0.0</rotation><shear>0.0</shear><stroke type="stroke" width="1.0"/><strokeOn>true</strokeOn><strokePaint type="paint"><paint type="colorSet" r="48" g="61" b="77"/></strokePaint><fillOn>true</fillOn><fillPaint type="paint"><paint type="colorSet" r="28" g="35" b="45"/></fillPaint></rectangle>
<text type="componentData"><htmlId>31</htmlId><value>COMMUNICATION</value><font type="font" name="Segoe UI" bold="true" size="10" underline="false" strikethrough="false"/><fillPaint type="paint"><paint type="colorSet" r="139" g="152" b="168"/></fillPaint><justification type="textJustification" value="TextJustificationCenter"/><stroke type="stroke" width="1.0"/><keepOriginalSize>true</keepOriginalSize><x>1297.9</x><y>30.0</y><top>8.0</top><bottom>8.0</bottom><left>43.9</left><right>43.9</right><rotation>0.0</rotation><shear>0.0</shear></text>
<ellipse type="componentData"><htmlId>32</htmlId><x>1261.0</x><y>57.0</y><top>7.0</top><bottom>7.0</bottom><left>7.0</left><right>7.0</right><rotation>0.0</rotation><shear>0.0</shear><stroke type="stroke" width="1.0"/><strokeOn>false</strokeOn><fillOn>true</fillOn><fillPaint type="paint"><paint type="colorSet" r="239" g="68" b="68"/></fillPaint><data type="data"><action type="actionConnectTo"><property type="property" name="ellipse.fillPaint"/><filter type="filter"><value>0.0</value></filter><transformation type="transformationThreshold"><inputType>java.lang.Boolean</inputType><outputType>fasttools.jwui.common.property.paint.PaintSet</outputType><thresholdTable type="thresholdTable"><thresholdIn>false</thresholdIn><thresholdOut type="paint"><paint type="colorSet" r="239" g="68" b="68"/></thresholdOut><thresholdIn>true</thresholdIn><thresholdOut type="paint"><paint type="colorSet" r="34" g="197" b="94"/></thresholdOut></thresholdTable></transformation><connection type="connection"><direction>1</direction><itemName>CI-Eng-Sample.PLC1.COMM_OK</itemName><itemAttribute>ItemValue</itemAttribute></connection></action></data></ellipse>
<text type="componentData"><htmlId>33</htmlId><value>PLC1</value><font type="font" name="Segoe UI" size="12" underline="false" strikethrough="false"/><fillPaint type="paint"><paint type="colorSet" r="230" g="237" b="243"/></fillPaint><justification type="textJustification" value="TextJustificationCenter"/><stroke type="stroke" width="1.0"/><keepOriginalSize>true</keepOriginalSize><x>1286.7</x><y>56.0</y><top>10.0</top><bottom>10.0</bottom><left>12.7</left><right>12.7</right><rotation>0.0</rotation><shear>0.0</shear></text>
<ellipse type="componentData"><htmlId>34</htmlId><x>1337.0</x><y>57.0</y><top>7.0</top><bottom>7.0</bottom><left>7.0</left><right>7.0</right><rotation>0.0</rotation><shear>0.0</shear><stroke type="stroke" width="1.0"/><strokeOn>false</strokeOn><fillOn>true</fillOn><fillPaint type="paint"><paint type="colorSet" r="239" g="68" b="68"/></fillPaint><data type="data"><action type="actionConnectTo"><property type="property" name="ellipse.fillPaint"/><filter type="filter"><value>0.0</value></filter><transformation type="transformationThreshold"><inputType>java.lang.Boolean</inputType><outputType>fasttools.jwui.common.property.paint.PaintSet</outputType><thresholdTable type="thresholdTable"><thresholdIn>false</thresholdIn><thresholdOut type="paint"><paint type="colorSet" r="239" g="68" b="68"/></thresholdOut><thresholdIn>true</thresholdIn><thresholdOut type="paint"><paint type="colorSet" r="34" g="197" b="94"/></thresholdOut></thresholdTable></transformation><connection type="connection"><direction>1</direction><itemName>CI-Eng-Sample.UA.COMM_OK</itemName><itemAttribute>ItemValue</itemAttribute></connection></action></data></ellipse>
<text type="componentData"><htmlId>35</htmlId><value>OPC UA</value><font type="font" name="Segoe UI" size="12" underline="false" strikethrough="false"/><fillPaint type="paint"><paint type="colorSet" r="230" g="237" b="243"/></fillPaint><justification type="textJustification" value="TextJustificationCenter"/><stroke type="stroke" width="1.0"/><keepOriginalSize>true</keepOriginalSize><x>1370.5</x><y>56.0</y><top>10.0</top><bottom>10.0</bottom><left>20.5</left><right>20.5</right><rotation>0.0</rotation><shear>0.0</shear></text>
<rectangle type="componentData"><htmlId>36</htmlId><roundingX>0.0640</roundingX><roundingY>0.2353</roundingY><x>1549.0</x><y>48.0</y><top>34.0</top><bottom>34.0</bottom><left>125.0</left><right>125.0</right><rotation>0.0</rotation><shear>0.0</shear><stroke type="stroke" width="1.0"/><strokeOn>true</strokeOn><strokePaint type="paint"><paint type="colorSet" r="48" g="61" b="77"/></strokePaint><fillOn>true</fillOn><fillPaint type="paint"><paint type="colorSet" r="28" g="35" b="45"/></fillPaint></rectangle>
<text type="componentData"><htmlId>37</htmlId><value>LIVE DATA</value><font type="font" name="Segoe UI" bold="true" size="10" underline="false" strikethrough="false"/><fillPaint type="paint"><paint type="colorSet" r="139" g="152" b="168"/></fillPaint><justification type="textJustification" value="TextJustificationCenter"/><stroke type="stroke" width="1.0"/><keepOriginalSize>true</keepOriginalSize><x>1462.4</x><y>30.0</y><top>8.0</top><bottom>8.0</bottom><left>24.4</left><right>24.4</right><rotation>0.0</rotation><shear>0.0</shear></text>
<ellipse type="componentData"><htmlId>38</htmlId><x>1542.0</x><y>29.0</y><top>6.0</top><bottom>6.0</bottom><left>6.0</left><right>6.0</right><rotation>0.0</rotation><shear>0.0</shear><stroke type="stroke" width="1.0"/><strokeOn>false</strokeOn><fillOn>true</fillOn><fillPaint type="paint"><paint type="colorSet" r="71" g="85" b="105"/></fillPaint><data type="data"><action type="actionConnectTo"><property type="property" name="ellipse.fillPaint"/><filter type="filter"><value>0.0</value></filter><transformation type="transformationThreshold"><inputType>java.lang.Boolean</inputType><outputType>fasttools.jwui.common.property.paint.PaintSet</outputType><thresholdTable type="thresholdTable"><thresholdIn>false</thresholdIn><thresholdOut type="paint"><paint type="colorSet" r="71" g="85" b="105"/></thresholdOut><thresholdIn>true</thresholdIn><thresholdOut type="paint"><paint type="colorSet" r="34" g="197" b="94"/></thresholdOut></thresholdTable></transformation><connection type="connection"><direction>1</direction><itemName>CI-Eng-Sample.DEMO.FEED_ON</itemName><itemAttribute>ItemValue</itemAttribute></connection></action></data></ellipse>
<button type="componentData" x="1490.0" y="59.0" top="15.0" bottom="15.0" left="52.0" right="52.0" rotation="0.0" shear="0.0"><htmlId>39</htmlId><toolTipText>Start the live-data feed (cieng_feed.ps1) on the server</toolTipText><label>Start</label><font type="font" name="Segoe UI" bold="true" size="12" underline="false" strikethrough="false"/><foregroundColor type="colorSet" r="255" g="255" b="255"/><backgroundColor type="colorSet" r="34" g="197" b="94"/><data type="data"><action type="actionSetItemAttribute"><event type="event" event="On action"/><filter type="filter"><value>1.0</value></filter><connection type="connection"><direction>2</direction><location type="nodeName" node="$default$"/><itemName>CI-Eng-Sample.DEMO.FEED_ON</itemName><itemAttribute>ItemValue</itemAttribute></connection></action><action type="actionExecuteCommand"><event type="event" event="On action"/><command>cmd /c "C:\Users\Public\CI-Eng-Sample\feed\cieng_feed_start.cmd"</command><onServer>true</onServer></action></data></button>
<button type="componentData" x="1606.0" y="59.0" top="15.0" bottom="15.0" left="52.0" right="52.0" rotation="0.0" shear="0.0"><htmlId>40</htmlId><toolTipText>Stop the feed (ends within 5 s)</toolTipText><label>Stop</label><font type="font" name="Segoe UI" bold="true" size="12" underline="false" strikethrough="false"/><foregroundColor type="colorSet" r="230" g="237" b="243"/><backgroundColor type="colorSet" r="36" g="45" b="57"/><data type="data"><action type="actionSetItemAttribute"><event type="event" event="On action"/><filter type="filter"><value>0.0</value></filter><connection type="connection"><direction>2</direction><location type="nodeName" node="$default$"/><itemName>CI-Eng-Sample.DEMO.FEED_ON</itemName><itemAttribute>ItemValue</itemAttribute></connection></action></data></button>
<button type="componentData" x="1734.0" y="48.0" top="34.0" bottom="34.0" left="46.0" right="46.0" rotation="0.0" shear="0.0"><htmlId>41</htmlId><toolTipText>Open the Tank 1 faceplate popup</toolTipText><label>Tank 1</label><font type="font" name="Segoe UI" bold="true" size="12" underline="false" strikethrough="false"/><foregroundColor type="colorSet" r="255" g="255" b="255"/><backgroundColor type="colorSet" r="59" g="130" b="246"/><data type="data"><action type="actionActivateDisplay"><event type="event" event="On action"/><type type="displayActivationType" value="ActivateSpecific"/><display>CIENG_TankFaceplate</display><layout>CIENG_Popup</layout><layoutFrame>default</layoutFrame></action></data></button>
<text type="componentData"><htmlId>42</htmlId><value>LAST UPDATE</value><font type="font" name="Segoe UI" bold="true" size="10" underline="false" strikethrough="false"/><fillPaint type="paint"><paint type="colorSet" r="139" g="152" b="168"/></fillPaint><justification type="textJustification" value="TextJustificationCenter"/><stroke type="stroke" width="1.0"/><keepOriginalSize>true</keepOriginalSize><x>1823.7</x><y>30.0</y><top>8.0</top><bottom>8.0</bottom><left>31.7</left><right>31.7</right><rotation>0.0</rotation><shear>0.0</shear></text>
<numberField type="componentData" x="1853.0" y="58.0" top="14.0" bottom="14.0" left="61.0" right="61.0" rotation="0.0" shear="0.0"><htmlId>43</htmlId><font type="font" name="Consolas" bold="true" size="9" underline="false" strikethrough="false"/><format></format><editable>false</editable><asDateTime>true</asDateTime><foregroundColor type="colorSet" r="230" g="237" b="243"/><backgroundColor type="colorSet" r="36" g="45" b="57"/><justification type="jTextJustification" value="TextJustificationRight"/><data type="data"><action type="actionConnectTo"><property type="property" name="numberField.value"/><filter type="filter"><value>0.0</value></filter><connection type="connection"><direction>1</direction><itemName>CI-Eng-Sample.DEMO.COUNTER</itemName><itemAttribute>ItemUpdTime</itemAttribute></connection></action></data></numberField>
</coreObjectDefinition>
</visualization>