<?xml version="1.0" encoding="UTF-8"?> <equipment-model xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="file:/opt/fesa/fesa-model-gsi/7.4.0/xml/design/design-gsi.xsd"> <information> <class-name>SilecsTestClass</class-name> <class-major-version>0</class-major-version> <class-minor-version>1</class-minor-version> <class-tiny-version>0</class-tiny-version> <type>Final</type> <description>An empty design with GSI-specific standard properties</description> <fesa-version>7.4.0</fesa-version> </information> <ownership> <responsible name="ACO"/> <creator login="mnabywan"/> </ownership> <interface> <device-interface> <setting> <GSI-Init-Property multiplexed="false" name="Init" visibility="operational" id="_220830102016_0"> <description>Control property, used to initialize the device with default values from the device instantiation file</description> <set-action partial-setting="true" transaction="true"> <server-action-ref server-action-name-ref="InitSetAction"/> </set-action> </GSI-Init-Property> <GSI-Reset-Property multiplexed="false" name="Reset" visibility="operational" id="_220830102016_1"> <description>Control property, used to reset the device while keeping the persistent data.</description> <set-action partial-setting="true" transaction="true"> <server-action-ref server-action-name-ref="ResetSetAction"/> </set-action> </GSI-Reset-Property> <GSI-Setting-Property multiplexed="false" name="Setting" visibility="operational" id="_220830102016_2"> <description>Used for setting hardware parameters for controlling the device.</description> <update-flag-item direction="OUT" name="updateFlags" optional="true" id="_220830102018_0"> <builtin-type-scalar data-type-name-ref="NOTIFICATION_UPDATE"/> </update-flag-item> <cycle-name-item direction="OUT" name="cycleName" optional="true" id="_220830102018_1"> <array type="char"> <dim>32</dim> </array> </cycle-name-item> <set-action partial-setting="true" transaction="true"> <server-action-ref server-action-name-ref="SettingSetAction"/> </set-action> <get-action> <server-action-ref server-action-name-ref="SettingGetAction"/> </get-action> </GSI-Setting-Property> <GSI-Setting-Property name="MySetting" visibility="development" multiplexed="false" id="_220830102016_3"><value-item name="mySettingRegister" direction="INOUT" id="_220830102018_2"><scalar type="int32_t"/><data-field-ref field-name-ref="mySettingRegister"/></value-item><update-flag-item direction="OUT" name="updateFlags" optional="true" id="_220830102018_3"><builtin-type-scalar data-type-name-ref="NOTIFICATION_UPDATE"/></update-flag-item><cycle-name-item direction="OUT" name="cycleName" optional="true" id="_220830102018_4"><array type="char"><dim>32</dim></array></cycle-name-item><set-action><server-action-ref server-action-name-ref="SetMySetting"/></set-action><get-action><server-action-ref server-action-name-ref="GetMySetting"/></get-action></GSI-Setting-Property><GSI-Power-Property multiplexed="false" name="Power" visibility="operational" id="_220830102016_4"> <description>Used to turn the power of a device on or off.</description> <update-flag-item direction="OUT" name="updateFlags" optional="true" id="_220830102018_5"> <builtin-type-scalar data-type-name-ref="NOTIFICATION_UPDATE"/> </update-flag-item> <cycle-name-item direction="OUT" name="cycleName" optional="true" id="_220830102019_0"> <array type="char"> <dim>32</dim> </array> </cycle-name-item> <set-action partial-setting="true" transaction="true"> <server-action-ref server-action-name-ref="PowerSetAction"/> </set-action> <get-action> <server-action-ref server-action-name-ref="PowerGetAction"/> </get-action> <power-item direction="INOUT" name="power" id="_220830102019_1"> <custom-type-scalar data-type-name-ref="DEVICE_POWER"/> <data-field-ref field-name-ref="power"/> </power-item> </GSI-Power-Property> </setting> <acquisition> <GSI-Status-Property cycle-bound="false" name="Status" on-change="true" subscribable="true" visibility="operational" id="_220830102016_5"> <description>Used to display the (cycle independent) overall status of the device.</description> <description>Detailed status information may be additionally added to this property.</description> <acq-stamp-item direction="OUT" name="acqStamp" id="_220830102019_2"> <scalar type="int64_t"/> </acq-stamp-item> <update-flag-item direction="OUT" name="updateFlags" optional="true" id="_220830102019_3"> <builtin-type-scalar data-type-name-ref="NOTIFICATION_UPDATE"/> </update-flag-item> <cycle-name-item direction="OUT" name="cycleName" optional="true" id="_220830102019_4"> <array type="char"> <dim>32</dim> </array> </cycle-name-item> <cycle-stamp-item direction="OUT" name="cycleStamp" optional="true" id="_220830102020_0"> <scalar type="int64_t"/> </cycle-stamp-item> <get-action> <server-action-ref server-action-name-ref="StatusGetAction"/> </get-action> <status-item direction="OUT" name="status" id="_220830102020_1"> <custom-type-scalar data-type-name-ref="DEVICE_STATUS"/> <data-field-ref field-name-ref="status"/> </status-item> <detailed-status-item direction="OUT" name="detailedStatus" id="_220830102021_0"> <description>Detailed status should consist of an array of boolean values considered as detailed status information as well as a corresponding string array containing keys to illustrate the meaning of the detailed status information.</description> <array type="bool"> <custom-constant-dim constant-name-ref="DETAILED_STATUS_SIZE"/> </array> <data-field-ref field-name-ref="detailedStatus"/> </detailed-status-item> <detailed-status-labels-item direction="OUT" name="detailedStatus_labels" id="_220830102021_1"> <description>Labels of detailed status bits.</description> <array2D type="char"> <custom-constant-dim1 constant-name-ref="DETAILED_STATUS_SIZE"/> <custom-constant-dim2 constant-name-ref="MAX_DETAILED_STATUS_LABEL_LENGTH"/> </array2D> <data-field-ref field-name-ref="detailedStatus_labels"/> </detailed-status-labels-item> <detailed-status-severity-item direction="OUT" name="detailedStatus_severity" id="_220830102021_2"> <description>Severities of the detailed status bits</description> <custom-type-array data-type-name-ref="DETAILED_STATUS_SEVERITY"> <custom-constant-dim constant-name-ref="DETAILED_STATUS_SIZE"/> </custom-type-array> <data-field-ref field-name-ref="detailedStatus_severity"/> </detailed-status-severity-item> <powerState-item direction="OUT" name="powerState" id="_220830102022_0"> <description>Power state of the device (ON, OFF)</description> <custom-type-scalar data-type-name-ref="DEVICE_POWER_STATE"/> <data-field-ref field-name-ref="powerState"/> </powerState-item> <control-item direction="OUT" name="control" id="_220830102022_1"> <custom-type-scalar data-type-name-ref="DEVICE_CONTROL"/> <data-field-ref field-name-ref="control"/> </control-item> <interlock-item direction="OUT" name="interlock" id="_220830102022_2"> <description>Interlock state of the device</description> <scalar type="bool"/> <data-field-ref field-name-ref="interlock"/> </interlock-item> <opReady-item direction="OUT" name="opReady" id="_220830102022_3"> <description>Contains the devices state regarding operation</description> <scalar type="bool"/> <data-field-ref field-name-ref="opReady"/> </opReady-item> <modulesReady-item direction="OUT" name="modulesReady" id="_220830102022_4"> <description>Contains the devices module state</description> <scalar type="bool"/> <data-field-ref field-name-ref="modulesReady"/> </modulesReady-item> <error_collection-item direction="OUT" id="_220830102022_5"> <error_codes direction="OUT" name="error_codes"> <array type="int32_t"> <custom-constant-dim constant-name-ref="MAX_NUMBER_OF_ERROR_MESSAGES"/> </array> </error_codes> <error_messages direction="OUT" name="error_messages"> <array2D type="char"> <custom-constant-dim1 constant-name-ref="MAX_NUMBER_OF_ERROR_MESSAGES"/> <custom-constant-dim2 constant-name-ref="MAX_ERROR_MESSAGE_LENGTH"/> </array2D> </error_messages> <error_timestamps direction="OUT" name="error_timestamps"> <array type="int64_t"> <custom-constant-dim constant-name-ref="MAX_NUMBER_OF_ERROR_MESSAGES"/> </array> </error_timestamps> <error_cycle_names direction="OUT" name="error_cycle_names"> <array2D type="char"> <custom-constant-dim1 constant-name-ref="MAX_NUMBER_OF_ERROR_MESSAGES"/> <custom-constant-dim2 constant-name-ref="MAX_ERROR_MESSAGE_LENGTH"/> </array2D> </error_cycle_names> <error_collection-field-ref field-name-ref="error_collection"/> </error_collection-item> </GSI-Status-Property> <GSI-ModuleStatus-Property cycle-bound="false" name="ModuleStatus" subscribable="true" visibility="operational" id="_220830102017_0"> <description>Gives detailed information on the state of 3rd party hardware and software components which are required to operate the device.</description> <acq-stamp-item direction="OUT" name="acqStamp" id="_220830102023_0"> <scalar type="int64_t"/> </acq-stamp-item> <update-flag-item direction="OUT" name="updateFlags" optional="true" id="_220830102023_1"> <builtin-type-scalar data-type-name-ref="NOTIFICATION_UPDATE"/> </update-flag-item> <cycle-name-item direction="OUT" name="cycleName" optional="true" id="_220830102023_2"> <array type="char"> <dim>32</dim> </array> </cycle-name-item> <cycle-stamp-item direction="OUT" name="cycleStamp" optional="true" id="_220830102023_3"> <scalar type="int64_t"/> </cycle-stamp-item> <get-action> <server-action-ref server-action-name-ref="ModuleStatusGetAction"/> </get-action> <module-status-item direction="OUT" name="moduleStatus" id="_220830102023_4"> <custom-type-array data-type-name-ref="MODULE_STATUS"> <custom-constant-dim constant-name-ref="MODULE_STATUS_SIZE"/> </custom-type-array> <data-field-ref field-name-ref="moduleStatus"/> </module-status-item> <module-status-labels-item direction="OUT" name="moduleStatus_labels" id="_220830102025_0"> <array2D type="char"> <custom-constant-dim1 constant-name-ref="MODULE_STATUS_SIZE"/> <custom-constant-dim2 constant-name-ref="MAX_MODULE_STATUS_LABEL_LENGTH"/> </array2D> <data-field-ref field-name-ref="moduleStatus_labels"/> </module-status-labels-item> </GSI-ModuleStatus-Property> <GSI-Acquisition-Property cycle-bound="true" name="Acquisition" on-change="true" subscribable="true" visibility="operational" id="_220830102017_1"> <description>Used for returning acquisition data which is retrieved from the hardware.</description> <acq-stamp-item direction="OUT" name="acqStamp" id="_220830102026_0"> <scalar type="int64_t"/> </acq-stamp-item> <update-flag-item direction="OUT" name="updateFlags" optional="true" id="_220830102026_1"> <builtin-type-scalar data-type-name-ref="NOTIFICATION_UPDATE"/> </update-flag-item> <cycle-name-item direction="OUT" name="cycleName" optional="true" id="_220830102026_2"> <array type="char"> <dim>32</dim> </array> </cycle-name-item> <cycle-stamp-item direction="OUT" name="cycleStamp" optional="true" id="_220830102026_3"> <scalar type="int64_t"/> </cycle-stamp-item> <get-action> <server-action-ref server-action-name-ref="AcquisitionGetAction"/> </get-action> <acquisition-context-item direction="OUT" id="_220830102027_0"> <processIndex direction="OUT" name="processIndex"> <scalar type="int32_t"/> </processIndex> <sequenceIndex direction="OUT" name="sequenceIndex"> <scalar type="int32_t"/> </sequenceIndex> <chainIndex direction="OUT" name="chainIndex"> <scalar type="int32_t"/> </chainIndex> <eventNumber direction="OUT" name="eventNumber"> <scalar type="int32_t"/> </eventNumber> <timingGroupID direction="OUT" name="timingGroupID"> <scalar type="int32_t"/> </timingGroupID> <acquisitionStamp direction="OUT" name="acquisitionStamp"> <scalar type="int64_t"/> </acquisitionStamp> <eventStamp direction="OUT" name="eventStamp"> <scalar type="int64_t"/> </eventStamp> <processStartStamp direction="OUT" name="processStartStamp"> <scalar type="int64_t"/> </processStartStamp> <sequenceStartStamp direction="OUT" name="sequenceStartStamp"> <scalar type="int64_t"/> </sequenceStartStamp> <chainStartStamp direction="OUT" name="chainStartStamp"> <scalar type="int64_t"/> </chainStartStamp> <acquisition-context-field-ref field-name-ref="acquisitionContext"/> </acquisition-context-item> </GSI-Acquisition-Property> <GSI-Acquisition-Property name="MyBlock" visibility="development" subscribable="true" cycle-bound="false" on-change="true" id="_220830102017_2"><value-item name="myRegister" direction="OUT" id="_220830102027_1"><scalar type="int32_t"/><data-field-ref field-name-ref="myRegister"/></value-item><acq-stamp-item direction="OUT" name="acqStamp" id="_220830102028_0"><scalar type="int64_t"/></acq-stamp-item><update-flag-item direction="OUT" name="updateFlags" optional="true" id="_220830102028_1"><builtin-type-scalar data-type-name-ref="NOTIFICATION_UPDATE"/></update-flag-item><cycle-name-item direction="OUT" name="cycleName" optional="true" id="_220830102029_0"><array type="char"><dim>32</dim></array></cycle-name-item><cycle-stamp-item direction="OUT" name="cycleStamp" optional="true" id="_220830102029_1"><scalar type="int64_t"/></cycle-stamp-item><get-action><server-action-ref server-action-name-ref="GetMyBlock"/></get-action><acquisition-context-item direction="OUT" id="_220830102029_2"><processIndex direction="OUT" name="processIndex"><scalar type="int32_t"/></processIndex><sequenceIndex direction="OUT" name="sequenceIndex"><scalar type="int32_t"/></sequenceIndex><chainIndex direction="OUT" name="chainIndex"><scalar type="int32_t"/></chainIndex><eventNumber direction="OUT" name="eventNumber"><scalar type="int32_t"/></eventNumber><timingGroupID direction="OUT" name="timingGroupID"><scalar type="int32_t"/></timingGroupID><acquisitionStamp direction="OUT" name="acquisitionStamp"><scalar type="int64_t"/></acquisitionStamp><eventStamp direction="OUT" name="eventStamp"><scalar type="int64_t"/></eventStamp><processStartStamp direction="OUT" name="processStartStamp"><scalar type="int64_t"/></processStartStamp><sequenceStartStamp direction="OUT" name="sequenceStartStamp"><scalar type="int64_t"/></sequenceStartStamp><chainStartStamp direction="OUT" name="chainStartStamp"><scalar type="int64_t"/></chainStartStamp><acquisition-context-field-ref field-name-ref="acquisitionContext"/></acquisition-context-item></GSI-Acquisition-Property><GSI-Version-Property cycle-bound="false" name="Version" on-change="false" subscribable="false" visibility="operational" id="_220830102017_3"> <description>Returns the current software and hardware versions of a piece of equipment.</description> <acq-stamp-item direction="OUT" name="acqStamp" id="_220830102030_0"> <scalar type="int64_t"/> </acq-stamp-item> <update-flag-item direction="OUT" name="updateFlags" optional="true" id="_220830102030_1"> <builtin-type-scalar data-type-name-ref="NOTIFICATION_UPDATE"/> </update-flag-item> <cycle-name-item direction="OUT" name="cycleName" optional="true" id="_220830102030_2"> <array type="char"> <dim>32</dim> </array> </cycle-name-item> <cycle-stamp-item direction="OUT" name="cycleStamp" optional="true" id="_220830102030_3"> <scalar type="int64_t"/> </cycle-stamp-item> <get-action> <server-action-ref server-action-name-ref="VersionGetAction"/> </get-action> <version-item direction="OUT" name="classVersion" id="_220830102031_0"> <array type="char"> <custom-constant-dim constant-name-ref="MAX_VERSION_NAME_LENGTH"/> </array> </version-item> <version-item direction="OUT" name="deployUnitVersion" id="_220830102031_1"> <array type="char"> <custom-constant-dim constant-name-ref="MAX_VERSION_NAME_LENGTH"/> </array> </version-item> <version-item direction="OUT" name="fesaVersion" id="_220830102031_2"> <array type="char"> <custom-constant-dim constant-name-ref="MAX_VERSION_NAME_LENGTH"/> </array> </version-item> </GSI-Version-Property> </acquisition> </device-interface> <global-interface> <setting> <diagnostic-property multiplexed="false" name="DiagnosticSetting" visibility="expert" id="_220830102017_4"> <description>Generic property which allows to diagnose any FESA classes</description> <mode-item direction="INOUT" name="enableDiagMode" id="_220830102031_3"> <scalar type="bool"/> </mode-item> <host-item direction="INOUT" name="hostName" id="_220830102031_4"> <description>Host of the FESA class</description> <array type="char"> <dim>32</dim> </array> </host-item> <port-item direction="INOUT" name="portNumber" id="_220830102031_5"> <description>Port used by the FESA class</description> <scalar type="int32_t"/> </port-item> <config-item direction="IN" name="requestConfig" id="_220830102031_6"> <scalar type="bool"/> </config-item> <state-item direction="IN" name="requestState" id="_220830102032_0"> <scalar type="bool"/> </state-item> <fwk-topic-item direction="INOUT" name="fwkTopic" id="_220830102032_1"> <builtin-type-scalar data-type-name-ref="DIAG_FWK_TOPIC"/> </fwk-topic-item> <custom-topic-item direction="INOUT" name="customTopic" id="_220830102032_2"> <custom-type-scalar data-type-name-ref="DIAG_TOPIC"/> </custom-topic-item> <device-trace-item direction="INOUT" name="traceDevices" id="_220830102032_3"> <array type="char"> <dim>320</dim> </array> </device-trace-item> <bypass-action-item direction="INOUT" name="bypassActions" id="_220830102032_4"> <array type="char"> <dim>320</dim> </array> </bypass-action-item> </diagnostic-property> </setting> <acquisition> <GSI-DeviceDescription-Property cycle-bound="false" name="DeviceDescription" on-change="false" subscribable="false" visibility="operational" id="_220830102017_5"> <timing-info-item direction="OUT" name="deviceNameTimingReceiver" id="_220830102032_5"> <array type="char"> <variable-dim/> </array> <data-field-ref field-name-ref="deviceNameTimingReceiver"/> </timing-info-item> <property-info-item direction="OUT" name="propertyNames" id="_220830102033_0"> <array2D type="char"> <variable-dim1/> <variable-dim2/> </array2D> </property-info-item> <device-info-item direction="OUT" name="deviceNames" id="_220830102033_1"> <array2D type="char"> <variable-dim1/> <variable-dim2/> </array2D> </device-info-item> <global-device-info-item direction="OUT" name="globalDeviceName" id="_220830102033_2"> <array type="char"> <variable-dim/> </array> </global-device-info-item> <host-info-item direction="OUT" name="host" id="_220830102033_3"> <array type="char"> <variable-dim/> </array> </host-info-item> </GSI-DeviceDescription-Property> </acquisition> </global-interface> </interface> <builtin-types> <notification-update-enum name="NOTIFICATION_UPDATE"> <IMMEDIATE access="RO" symbol="IMMEDIATE" value="1"/> <SET access="RO" symbol="SET" value="2"/> </notification-update-enum> <diag-fwk-topic name="DIAG_FWK_TOPIC"> <b0 name="SRV_GET_ACTION_PROFIING"/> <b1 name="SRV_SET_ACTION_PROFILING"/> <b2 name="RT_ACTION_PROFILING"/> <b3 name="EVENT_PROFILING"/> <b4 name="NOTIFICATION_PROFILING"/> <b5 name="SRV_GET_ACTION_TRACKING"/> <b6 name="SRV_SET_ACTION_TRACKING"/> <b7 name="RT_ACTION_TRACKING"/> <b8 name="EVENT_TRACKING"/> <b9 name="NOTIFICATION_TRACKING"/> <b10 name="PERSISTENCY_TRACKING"/> <b11 name="TRANSACTION_TRACKING"/> <b12 name="SUBSCRIPTION_TRACKING"/> <b13 name="SIGNAL_HANDLER_TRACKING"/> <b14 name="LOCAL_CONNECTION_TRACKING"/> </diag-fwk-topic> <fault-severity name="FaultSeverity"> <description>Enumeration listing the available fault severities used by the fault fields</description> <INFO access="RO" meaning="NONE" symbol="INFO" value="0"/> <WARNING access="RO" meaning="WARNING" symbol="WARNING" value="1"/> <ERROR access="RO" meaning="ERROR" symbol="ERROR" value="2"/> <CRITICAL access="RO" meaning="ERROR" symbol="CRITICAL" value="3"/> </fault-severity> </builtin-types> <custom-types> <diag-custom-topic name="DIAG_TOPIC" id="_220830102046_1"> </diag-custom-topic> <enum name="DEVICE_STATUS" id="_220830102047_0"> <!--Possible (mutually exclusive) values to describe the device status--> <item access="RW" meaning="NONE" symbol="UNKNOWN" value="0" id="_220830102055_0"/> <!--The device status is unknown--> <item access="RW" meaning="NONE" symbol="OK" value="1" id="_220830102055_1"/> <!--The device is in fully operational state--> <item access="RW" meaning="NONE" symbol="WARNING" value="2" id="_220830102055_2"/> <!--The device is not fully operational; A device in WARNING state can still be used operationally, --> <!--but clients must be informed of a problem that might become worse. Details are explained in the errorMsg field.--> <item access="RW" meaning="NONE" symbol="ERROR" value="3" id="_220830102056_0"/> <!--The device is in a fault state. Details are explained in the errorMsg field--> </enum> <enum name="DEVICE_POWER_STATE" id="_220830102047_1"> <!--Possible (mutually exclusive) values to describe the power-state of the device.--> <item access="RW" meaning="NONE" symbol="UNKNOWN" value="0" id="_220830102056_1"/> <!--The device mode is unknown--> <item access="RW" meaning="ON" symbol="ON" value="1" id="_220830102057_0"/> <!--The device is in fully operational state--> <item access="RW" meaning="NONE" symbol="OFF" value="2" id="_220830102057_1"/> <!--The device is turned off--> <item access="RW" meaning="NONE" symbol="STANDBY" value="3" id="_220830102058_0"/> <!--The device is in a stand-by mode. This mode is a sort of “parking mode” in which the device can --> <!--stay for hours or even days. It is defined by the following characteristics:--> <!--It is safe, it does not wear out, it consumes little energy.--> <!--Furthermore, it takes a short time to go from STANDBY to ON mode--> <item access="RW" meaning="NONE" symbol="POWER_DOWN" value="4" id="_220830102058_1"/> <!--The device is shutting down. Note that some properties may not be accessible during this time.--> <!--After shutdown the device will be in the mode OFF--> <item access="RW" meaning="NONE" symbol="POWER_UP" value="5" id="_220830102058_2"/> <!--The device is starting up. Note that some properties may not be accessible during this time.--> <!--After (re-)starting the device probably will be in the mode ON--> </enum> <enum name="DEVICE_POWER" id="_220830102048_0"> <!--An enumeration Type used to control the operational mode of the device.--> <!--Its values are a subset of those in the DEVICE_POWER_STATE type--> <item access="RW" meaning="ON" symbol="ON" value="1" id="_220830102059_0"/> <!--The device is in fully operational state--> <item access="RW" meaning="OFF" symbol="OFF" value="2" id="_220830102059_1"/> <!--The device is turned off--> </enum> <enum name="DEVICE_CONTROL" id="_220830102048_1"> <!--Possible values to describe the control mode of a device--> <!--Currently two control modes (LOCAL, REMOTE) are defined--> <item access="RW" meaning="NONE" symbol="REMOTE" value="0" id="_220830102100_0"/> <!--The device can be controlled normally through the control system--> <item access="RW" meaning="NONE" symbol="LOCAL" value="1" id="_220830102100_1"/> <!--The device can be controlled locally. But it can be accessed in read-only mode via the control system--> </enum> <enum name="TOL_CHECK_MODE" id="_220830102048_2"> <!--This constant defines possible modes to check whether a control value is inside the tolerance values.--> <!--Used to give information on how the tolerance fields are used to calculate the xxx_status information.--> <item access="RO" symbol="ABS" value="0" id="_220830102101_0"/> <!--Use the absolute tolerance _tolAbs--> <item access="RO" symbol="REL" value="1" id="_220830102102_0"/> <!--Use the relative tolerance _tolRel--> </enum> <bit-enum-32bits name="AQN_STATUS" id="_220830102049_0"> <!--Possible values to describe the acquisition status of a field (in the _status suffix)--> <!--If this suffix is missing, it means that no additional status information is provided for the corresponding field--> <!--If all bits are 0, this means that the corresponding field is OK.--> <!--Only the lower 16 bits are standardized, the upper 16 bits can be defined by the equipment specialist.--> <!--The difference between the Status property and the _status suffix is described in the section on the Status property.--> <b0 name="NOT_OK"/> <!--Some problem occurred that is not represented by the other bits. This property is called--> <!-- NOT_OK so that it is not mixed up with ERROR or WARNING in the Status property--> <b1 name="BAD_QUALITY"/> <!--The value was acquired with a degraded quality. This is typically used for measurements.--> <b2 name="DIFFERENT_FROM_SETTING"/> <!--Different from the requested control value (for discrete values)--><!--or out of tolerance (for continuous values).--> <b3 name="OUT_OF_RANGE"/> <!--The value is out of the normal range (e.g. a temperature is too high or too low).--> <b4 name="BUSY"/> <!--The property value is changing in response to receiving a new control value (e.g. moving to a--> <!--new position, charging a capacitor, ...). If the value change does not reach the requested new--> <!--value within the maximum timeout, the BUSY bit should remain=1 and the TIMEOUT bit must be turned on.--> <b5 name="TIMEOUT"/> <!--A timeout occurred, because the property did not reach the reqested new control value within the--> <!--maximum allowable time. A timeout normally indicates a problem to be addressed by the--> <!--equipment specialist. This is typically used for slow changing control values that are BUSY while they change.--> <b6 name="bit6_is_reserved_for_later_usage"/> <b7 name="bit7_is_reserved_for_later_usage"/> <b8 name="bit8_is_reserved_for_later_usage"/> <b9 name="bit9_is_reserved_for_later_usage"/> <b10 name="bit10_is_reserved_for_later_usage"/> <b11 name="bit11_is_reserved_for_later_usage"/> <b12 name="bit12_is_reserved_for_later_usage"/> <b13 name="bit13_is_reserved_for_later_usage"/> <b14 name="bit14_is_reserved_for_later_usage"/> <b15 name="bit15_is_reserved_for_later_usage"/> <!--bit 6 to 15 are reserved ... dont use them!--> <b16 name="bit_16_and_higher_can_be_used_by_the_class_developer"/> <!--into bit 16..32 you can put in anything you want--> </bit-enum-32bits> <struct name="GSI_ERROR" id="_220830102049_1"> <!--This struct-item describes the structure of an GSI-error--> <struct-item name="error_string" id="_220830102106_1"> <!--This string holds the error-message--> <array type="char"> <custom-constant-dim constant-name-ref="MAX_ERROR_MESSAGE_LENGTH"/> </array> </struct-item> <struct-item name="error_code" id="_220830102106_2"> <!--The error code according to the defined error-message--> <scalar type="int32_t"/> </struct-item> <!--The timestamp when the error occured--> <struct-item name="error_timestamp" id="_220830102107_0"> <scalar type="int64_t"/> </struct-item> <!--The cycle for which the error occured--> <struct-item name="error_cycle_name" id="_220830102107_1"> <array type="char"> <custom-constant-dim constant-name-ref="MAX_CYCLE_NAME_LENGTH"/> </array> </struct-item> </struct> <struct name="GSI_ACQ_CONTEXT" id="_220830102050_0"> <description>WhiteRabbit event specific acquisition information</description> <struct-item name="processIndex" id="_220830102108_0"> <description>Used in order to index process-multiplexed data</description> <scalar type="int32_t"/> </struct-item> <struct-item name="sequenceIndex" id="_220830102108_1"> <description>Used in order to index sequence-multiplexed data</description> <scalar type="int32_t"/> </struct-item> <struct-item name="chainIndex" id="_220830102108_2"> <description>Refers to a specific beam production chain</description> <scalar type="int32_t"/> </struct-item> <struct-item name="eventNumber" id="_220830102109_0"> <description>The number of the event describes it's type</description> <scalar type="int32_t"/> </struct-item> <struct-item name="timingGroupID" id="_220830102109_1"> <description>ID of the timing group for which the event is relevant</description> <scalar type="int32_t"/> </struct-item> <struct-item name="acquisitionStamp" id="_220830102110_0"> <description>The acquisition stamp is used to indicate when a measurement was done</description> <scalar type="int64_t"/> </struct-item> <struct-item name="eventStamp" id="_220830102110_1"> <description>The event stamp is used to indicate when WhiteRabbit event was triggered on the Timing Receiver</description> <scalar type="int64_t"/> </struct-item> <struct-item name="processStartStamp" id="_220830102111_0"> <description>The process start stamp indicates when the first event of the current process was triggered</description> <scalar type="int64_t"/> </struct-item> <struct-item name="sequenceStartStamp" id="_220830102111_1"> <description>The sequence start stamp indicates when the first event of the current sequence was triggered</description> <scalar type="int64_t"/> </struct-item> <struct-item name="chainStartStamp" id="_220830102111_2"> <description>The chain start stamp indicates when the first event of the current chain was triggered</description> <scalar type="int64_t"/> </struct-item> </struct> <constant name="MAX_ERROR_MESSAGE_LENGTH" type="uint32_t" value="256" id="_220830102050_1"/> <constant name="MAX_NUMBER_OF_ERROR_MESSAGES" type="uint32_t" value="16" id="_220830102051_0"/> <constant name="MAX_CYCLE_NAME_LENGTH" type="uint32_t" value="256" id="_220830102051_1"/> <constant name="MAX_VERSION_NAME_LENGTH" type="uint32_t" value="256" id="_220830102051_2"/> <constant name="MAX_DETAILED_STATUS_LABEL_LENGTH" type="uint32_t" value="30" id="_220830102052_0"/> <constant name="DETAILED_STATUS_SIZE" type="uint32_t" value="2" id="_220830102052_1"/> <enum name="DETAILED_STATUS_SEVERITY" id="_220830102053_0"> <item access="RO" symbol="INFO" value="0" id="_220830102102_1"/> <item access="RO" symbol="WARNING_ON_FALSE" value="1" id="_220830102103_0"/> <item access="RO" symbol="ERROR_ON_FALSE" value="2" id="_220830102103_1"/> </enum> <enum name="MODULE_STATUS" id="_220830102053_1"> <!-- Mutually exclusive values to describe the status of a hardware / software module--> <item access="RO" symbol="UNKNOWN" value="0" id="_220830102104_0"/> <!--The status of the module is not known--> <item access="RO" symbol="OK" value="1" id="_220830102104_1"/> <!--The module is in fully operational state--> <item access="RO" symbol="WARNING" value="2" id="_220830102105_0"/> <!--The module is not fully operational; A module in WARNING state may still be used operationally, --> <!--but clients must be informed of a problem that might become worse. --> <item access="RO" symbol="ERROR" value="3" id="_220830102105_1"/> <!--The module is in a fault state. The related device is not operational.--> <item access="RO" symbol="NOT_AVAILABLE" value="4" id="_220830102106_0"/> <!--The module is missing. The related device is not operational.--> </enum> <constant name="MAX_MODULE_STATUS_LABEL_LENGTH" type="uint32_t" value="30" id="_220830102054_0"/> <constant name="MODULE_STATUS_SIZE" type="uint32_t" value="2" id="_220830102054_1"/> </custom-types> <data> <device-data> <configuration> <field name="plcDeviceLabel" id="_220830102035_0"><description>Name of the related SILECS instance within the PLC mapping</description><array type="char"><dim>128</dim></array></field><field name="plcHostName" id="_220830102035_1"><description>Hostname of the PLC that contains the related SILECS class device</description><array type="char"><dim>128</dim></array></field><GSI-detailed-status-labels-field name="detailedStatus_labels" id="_220830102035_2"> <array2D type="char"> <custom-constant-dim1 constant-name-ref="DETAILED_STATUS_SIZE"/> <custom-constant-dim2 constant-name-ref="MAX_DETAILED_STATUS_LABEL_LENGTH"/> </array2D> <default>{myStatusLabel1,myStatusLabel2}</default> </GSI-detailed-status-labels-field> <GSI-detailed-status-severity-field name="detailedStatus_severity" id="_220830102035_3"> <custom-type-array data-type-name-ref="DETAILED_STATUS_SEVERITY"> <custom-constant-dim constant-name-ref="DETAILED_STATUS_SIZE"/> </custom-type-array> <default>{INFO,INFO}</default> </GSI-detailed-status-severity-field> <GSI-module-status-labels-field name="moduleStatus_labels" id="_220830102036_0"> <array2D type="char"> <custom-constant-dim1 constant-name-ref="MODULE_STATUS_SIZE"/> <custom-constant-dim2 constant-name-ref="MAX_MODULE_STATUS_LABEL_LENGTH"/> </array2D> <default>{myModule1,myModule2}</default> </GSI-module-status-labels-field> </configuration> <setting> <field name="mySettingRegister" multiplexed="false" persistent="true" id="_220830102036_1"><scalar type="int32_t"/></field><GSI-power-field multiplexed="false" name="power" persistent="false" id="_220830102036_2"> <custom-type-scalar data-type-name-ref="DEVICE_POWER"/> </GSI-power-field> </setting> <acquisition> <field name="myRegister" cycle-bound="false" persistent="false" id="_220830102037_0"><scalar type="int32_t"/></field><GSI-control-field cycle-bound="false" name="control" id="_220830102037_1"> <custom-type-scalar data-type-name-ref="DEVICE_CONTROL"/> </GSI-control-field> <GSI-powerState-field cycle-bound="false" name="powerState" id="_220830102039_0"> <custom-type-scalar data-type-name-ref="DEVICE_POWER_STATE"/> </GSI-powerState-field> <GSI-status-field cycle-bound="false" name="status" id="_220830102041_0"> <custom-type-scalar data-type-name-ref="DEVICE_STATUS"/> </GSI-status-field> <GSI-interlock-field cycle-bound="false" name="interlock" id="_220830102041_1"> <scalar type="bool"/> </GSI-interlock-field> <GSI-opReady-field cycle-bound="false" name="opReady" id="_220830102042_0"> <scalar type="bool"/> </GSI-opReady-field> <GSI-modulesReady-field cycle-bound="false" name="modulesReady" id="_220830102043_0"> <scalar type="bool"/> </GSI-modulesReady-field> <GSI-detailed-status-field cycle-bound="false" name="detailedStatus" id="_220830102043_1"> <array type="bool"> <custom-constant-dim constant-name-ref="DETAILED_STATUS_SIZE"/> </array> </GSI-detailed-status-field> <GSI-module-status-field cycle-bound="false" name="moduleStatus" id="_220830102044_0"> <custom-type-array data-type-name-ref="MODULE_STATUS"> <custom-constant-dim constant-name-ref="MODULE_STATUS_SIZE"/> </custom-type-array> </GSI-module-status-field> <GSI-acquisition-context-field cycle-bound="true" name="acquisitionContext" id="_220830102044_1"> <custom-type-scalar data-type-name-ref="GSI_ACQ_CONTEXT"/> </GSI-acquisition-context-field> <GSI-error_collection-field cycle-bound="false" name="error_collection" id="_220830102045_0"> <custom-type-array data-type-name-ref="GSI_ERROR"> <custom-constant-dim constant-name-ref="MAX_NUMBER_OF_ERROR_MESSAGES"/> </custom-type-array> </GSI-error_collection-field> </acquisition> </device-data> <global-data> <configuration> <!-- The name of the timing receiver --> <field name="plcClassVersion" id="_220830102045_1"><description>Version of the SILECS class that needs to be deployed in the controller</description><array type="char"><dim>5</dim></array><default>0.1.0</default></field><GSI-timing-receiver-name-field name="deviceNameTimingReceiver" id="_220830102046_0"> <array type="char"> <!-- The number of the timing receiver --> <variable-dim/> </array> </GSI-timing-receiver-name-field> </configuration> </global-data> </data> <actions> <set-server-action implementation="default" name="InitSetAction"/> <set-server-action implementation="default" name="ResetSetAction"/> <set-server-action implementation="default" name="SettingSetAction"/> <set-server-action implementation="default" name="PowerSetAction"/> <get-server-action implementation="default" name="PowerGetAction"/> <get-server-action implementation="default" name="SettingGetAction"/> <get-server-action implementation="default" name="AcquisitionGetAction"/> <get-server-action implementation="default" name="StatusGetAction"/> <get-server-action implementation="default" name="VersionGetAction"/> <get-server-action implementation="default" name="ModuleStatusGetAction"/> <rt-action name="StatusUpdateAction"/> <!-- Pre-defined status update action --> <get-server-action name="GetMyBlock" implementation="custom"/><set-server-action name="SetMySetting" implementation="custom"/><get-server-action name="GetMySetting" implementation="custom"/></actions> <events> <logical-events> <logical-event name="StatusUpdateEvent" type="timer" use="required" id="_220830102034_0"/> </logical-events> </events> <scheduling-units> <scheduling-unit name="StatusUpdateSchedulingUnit"> <rt-action-ref rt-action-name-ref="StatusUpdateAction"/> <logical-event-ref logical-event-name-ref="StatusUpdateEvent"/> </scheduling-unit> </scheduling-units> </equipment-model>