ci-server-engineer/examples/CI-Eng-Sample/displays/CIENG_AlarmBanner.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

38 lines
16 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>Alarm banner</title>
<html>true</html>
<width>1920</width>
<height>96</height>
<referenceCheck>14</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>8</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><data type="data"><action type="actionActivateDisplay"><event type="event" event="On entry"/><type type="displayActivationType" value="ActivateSpecific"/><display>CIENG_Overview</display><layout>CIENG_Operator</layout><layoutFrame>ovw</layoutFrame></action><action type="actionExecuteCommand"><event type="event" event="On entry"/><command>ACTION navigate to ovw CIENG_Overview stretchDisplay</command><onServer>false</onServer></action></data></rectangle>
<rectangle type="componentData"><htmlId>8</htmlId><x>960.0</x><y>0.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.0941</roundingX><roundingY>0.1951</roundingY><x>95.0</x><y>48.0</y><top>41.0</top><bottom>41.0</bottom><left>85.0</left><right>85.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>10</htmlId><value>ALARMS</value><font type="font" name="Segoe UI" bold="true" 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>47.4</x><y>22.0</y><top>9.0</top><bottom>9.0</bottom><left>23.4</left><right>23.4</right><rotation>0.0</rotation><shear>0.0</shear></text>
<ellipse type="componentData"><htmlId>11</htmlId><x>104.0</x><y>22.0</y><top>8.0</top><bottom>8.0</bottom><left>8.0</left><right>8.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.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="34" g="197" b="94"/></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></ellipse>
<text type="componentData"><htmlId>12</htmlId><value>Tank 1</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>134.6</x><y>22.0</y><top>9.0</top><bottom>9.0</bottom><left>16.6</left><right>16.6</right><rotation>0.0</rotation><shear>0.0</shear></text>
<button type="componentData" x="95.0" y="61.0" top="17.0" bottom="17.0" left="71.0" right="71.0" rotation="0.0" shear="0.0"><htmlId>13</htmlId><label>Alarm list</label><font type="font" name="Segoe UI" bold="true" size="13" 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_Alarms</display><layout>CIENG_Operator</layout><layoutFrame>alm</layoutFrame></action></data></button>
<alarmOverview type="componentData" x="1051.0" y="48.0" top="41.0" bottom="41.0" left="861.0" right="861.0" rotation="0.0" shear="0.0"><htmlId>14</htmlId><zoomEnabled>false</zoomEnabled><overviewType type="alarmOverview" value="CurrentAlarms"/><opaque>true</opaque><backgroundColor type="colorSet" r="22" g="27" b="34"/><eventTypeAlarmAckColor type="colorSet" r="248" g="113" b="113"/><eventTypeAlarmNackColor type="colorSet" r="248" g="113" b="113"/><eventTypeNormalAckColor type="colorSet" r="230" g="237" b="243"/><eventTypeNormalNackColor type="colorSet" r="230" g="237" b="243"/><eventTypeAcknAckColor type="colorSet" r="139" g="152" b="168"/><eventTypeAcknNackColor type="colorSet" r="139" g="152" b="168"/><eventTypeInfoAckColor type="colorSet" r="139" g="152" b="168"/><eventTypeInfoNackColor type="colorSet" r="139" g="152" b="168"/><eventTypeDiagAckColor type="colorSet" r="245" g="158" b="11"/><eventTypeDiagNackColor type="colorSet" r="245" g="158" b="11"/><eventTypeDeactiveAckColor type="colorSet" r="139" g="152" b="168"/><eventTypeDeactiveNackColor type="colorSet" r="139" g="152" b="168"/><eventTypeRecoverAckColor type="colorSet" r="34" g="197" b="94"/><eventTypeRecoverNackColor type="colorSet" r="34" g="197" b="94"/><property type="componentProperty"><name>priorityNackColor[00]</name><value type="colorSet" r="64" g="24" b="30"/></property><property type="componentProperty"><name>priorityAckColor[00]</name><value type="colorSet" r="28" g="35" b="45"/></property><property type="componentProperty"><name>priorityNackColor[01]</name><value type="colorSet" r="64" g="24" b="30"/></property><property type="componentProperty"><name>priorityAckColor[01]</name><value type="colorSet" r="28" g="35" b="45"/></property><property type="componentProperty"><name>priorityNackColor[02]</name><value type="colorSet" r="64" g="24" b="30"/></property><property type="componentProperty"><name>priorityAckColor[02]</name><value type="colorSet" r="28" g="35" b="45"/></property><property type="componentProperty"><name>priorityNackColor[03]</name><value type="colorSet" r="64" g="24" b="30"/></property><property type="componentProperty"><name>priorityAckColor[03]</name><value type="colorSet" r="28" g="35" b="45"/></property><property type="componentProperty"><name>priorityNackColor[04]</name><value type="colorSet" r="36" g="45" b="57"/></property><property type="componentProperty"><name>priorityAckColor[04]</name><value type="colorSet" r="28" g="35" b="45"/></property><property type="componentProperty"><name>priorityNackColor[05]</name><value type="colorSet" r="36" g="45" b="57"/></property><property type="componentProperty"><name>priorityAckColor[05]</name><value type="colorSet" r="28" g="35" b="45"/></property><property type="componentProperty"><name>priorityNackColor[06]</name><value type="colorSet" r="36" g="45" b="57"/></property><property type="componentProperty"><name>priorityAckColor[06]</name><value type="colorSet" r="28" g="35" b="45"/></property><property type="componentProperty"><name>priorityNackColor[07]</name><value type="colorSet" r="36" g="45" b="57"/></property><property type="componentProperty"><name>priorityAckColor[07]</name><value type="colorSet" r="28" g="35" b="45"/></property><property type="componentProperty"><name>priorityNackColor[08]</name><value type="colorSet" r="36" g="45" b="57"/></property><property type="componentProperty"><name>priorityAckColor[08]</name><value type="colorSet" r="28" g="35" b="45"/></property><property type="componentProperty"><name>priorityNackColor[09]</name><value type="colorSet" r="36" g="45" b="57"/></property><property type="componentProperty"><name>priorityAckColor[09]</name><value type="colorSet" r="28" g="35" b="45"/></property><property type="componentProperty"><name>priorityNackColor[10]</name><value type="colorSet" r="36" g="45" b="57"/></property><property type="componentProperty"><name>priorityAckColor[10]</name><value type="colorSet" r="28" g="35" b="45"/></property><property type="componentProperty"><name>priorityNackColor[11]</name><value type="colorSet" r="36" g="45" b="57"/></property><property type="componentProperty"><name>priorityAckColor[11]</name><value type="colorSet" r="28" g="35" b="45"/></property><property type="componentProperty"><name>priorityNackColor[12]</name><value type="colorSet" r="36" g="45" b="57"/></property><property type="componentProperty"><name>priorityAckColor[12]</name><value type="colorSet" r="28" g="35" b="45"/></property><property type="componentProperty"><name>priorityNackColor[13]</name><value type="colorSet" r="36" g="45" b="57"/></property><property type="componentProperty"><name>priorityAckColor[13]</name><value type="colorSet" r="28" g="35" b="45"/></property><property type="componentProperty"><name>priorityNackColor[14]</name><value type="colorSet" r="36" g="45" b="57"/></property><property type="componentProperty"><name>priorityAckColor[14]</name><value type="colorSet" r="28" g="35" b="45"/></property><property type="componentProperty"><name>priorityNackColor[15]</name><value type="colorSet" r="36" g="45" b="57"/></property><property type="componentProperty"><name>priorityAckColor[15]</name><value type="colorSet" r="28" g="35" b="45"/></property><font type="font" name="Segoe UI" size="14" underline="false" strikethrough="false"/><alarmLineFont type="font" name="Segoe UI" size="14" underline="false" strikethrough="false"/><buttonFont type="font" name="Segoe UI" bold="true" size="13" underline="false" strikethrough="false"/><columnAlarmTimeVisible>true</columnAlarmTimeVisible><columnAlarmTimePosition>1</columnAlarmTimePosition><columnAlarmTimeWidth>199</columnAlarmTimeWidth><columnPriorityVisible>true</columnPriorityVisible><columnPriorityPosition>2</columnPriorityPosition><columnPriorityWidth>69</columnPriorityWidth><columnSectionVisible>true</columnSectionVisible><columnSectionPosition>3</columnSectionPosition><columnSectionWidth>299</columnSectionWidth><columnTagVisible>true</columnTagVisible><columnTagPosition>4</columnTagPosition><columnTagWidth>169</columnTagWidth><columnItemDesciptionVisible>true</columnItemDesciptionVisible><columnItemDesciptionPosition>5</columnItemDesciptionPosition><columnItemDesciptionWidth>319</columnItemDesciptionWidth><columnTextVisible>true</columnTextVisible><columnTextPosition>6</columnTextPosition><columnTextWidth>299</columnTextWidth><columnAlarmTypeVisible>true</columnAlarmTypeVisible><columnAlarmTypePosition>7</columnAlarmTypePosition><columnAlarmTypeWidth>119</columnAlarmTypeWidth><columnValueVisible>true</columnValueVisible><columnValuePosition>8</columnValuePosition><columnValueWidth>109</columnValueWidth><columnAcknowledgedVisible>true</columnAcknowledgedVisible><columnAcknowledgedPosition>9</columnAcknowledgedPosition><columnAcknowledgedWidth>109</columnAcknowledgedWidth><columnCEventActorVisible>false</columnCEventActorVisible><columnCEventCatVisible>false</columnCEventCatVisible><columnCEventConditionVisible>false</columnCEventConditionVisible><columnCEventSourceVisible>false</columnCEventSourceVisible><columnCEventSubCondVisible>false</columnCEventSubCondVisible><columnEventActorVisible>false</columnEventActorVisible><columnEventCatVisible>false</columnEventCatVisible><columnEventConditionVisible>false</columnEventConditionVisible><columnEventSourceVisible>false</columnEventSourceVisible><columnEventSubCondVisible>false</columnEventSubCondVisible><columnInstallationVisible>false</columnInstallationVisible><columnItemNameVisible>false</columnItemNameVisible><columnOriginalTimeVisible>false</columnOriginalTimeVisible><columnQualityVisible>false</columnQualityVisible><columnUnitVisible>false</columnUnitVisible><columnUserVisible>false</columnUserVisible><columnSubVisible>false</columnSubVisible><columnEngUnitsVisible>false</columnEngUnitsVisible><columnLocationVisible>false</columnLocationVisible><columnInstallationDescriptionVisible>false</columnInstallationDescriptionVisible><columnUnitDescriptionVisible>false</columnUnitDescriptionVisible><columnSectionDescriptionVisible>false</columnSectionDescriptionVisible><columnAlarmCollectionVisible>false</columnAlarmCollectionVisible><columnEventIDVisible>false</columnEventIDVisible><columnConditionIDVisible>false</columnConditionIDVisible><columnBranchIDVisible>false</columnBranchIDVisible><columnPriorityTextVisible>false</columnPriorityTextVisible><statusLineVisible>false</statusLineVisible><autoFit>false</autoFit><stopMoreVisible>false</stopMoreVisible><headingVisible>false</headingVisible><dateTimeSelectorVisible>false</dateTimeSelectorVisible><filterSelectorVisible>false</filterSelectorVisible><highAlarmPriorityRange>1-1</highAlarmPriorityRange><mediumAlarmPriorityRange>2-2</mediumAlarmPriorityRange><lowAlarmPriorityRange>3-3</lowAlarmPriorityRange><diagnosticAlarmPriorityRange>0-0,4-15</diagnosticAlarmPriorityRange><data type="data"><action type="actionInternalServiced"/></data></alarmOverview>
</coreObjectDefinition>
</visualization>