<?xml version="1.0" encoding="ASCII"?>
<pogoDsl:PogoSystem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:pogoDsl="http://www.esrf.fr/tango/pogo/PogoDsl">
  <classes name="SupervisedID" pogoRevision="9.6">
    <description description="This abstract class incapsulates the common interface for insertion devices used&#xA;under ID supervisor. The &quot;supervisor&quot; can inhibi/allow the operations on the insertion device&#xA;and impose limits on the permited range." title="Supervised ID: common interface for supervised insertion devices" sourcePath="/home/claudio/src/gitlab/cs/cls/supervisedid/src" language="Cpp" filestogenerate="XMI   file,Code files,Protected Regions" hasMandatoryProperty="false" hasConcreteProperty="true" hasAbstractCommand="false" hasAbstractAttribute="true">
      <inheritances classname="Device_4Impl" sourcePath=""/>
      <identification contact="at elettra.trieste.it - claudio.scafuri" author="claudio.scafuri" emailDomain="elettra.trieste.it" classFamily="Controllers" siteSpecific="" platform="All Platforms" bus="Not Applicable" manufacturer="none" reference=""/>
    </description>
    <deviceProperties name="HostPrivileges" description="list of host:privileges&#xA;host:2   host is privileged can read and write and change limits and change permission&#xA;host:1  host is authorized can read and write when permitted&#xA;host:0 host can only read">
      <type xsi:type="pogoDsl:StringVectorType"/>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
    </deviceProperties>
    <commands name="State" description="This command gets the device state (stored in its &lt;i>device_state&lt;/i> data member) and returns it to the caller." execMethod="dev_state" displayLevel="OPERATOR" polledPeriod="0">
      <argin description="none.">
        <type xsi:type="pogoDsl:VoidType"/>
      </argin>
      <argout description="State Code">
        <type xsi:type="pogoDsl:StateType"/>
      </argout>
      <status abstract="true" inherited="true" concrete="true" concreteHere="false"/>
    </commands>
    <commands name="Status" description="This command gets the device status (stored in its &lt;i>device_status&lt;/i> data member) and returns it to the caller." execMethod="dev_status" displayLevel="OPERATOR" polledPeriod="0">
      <argin description="none.">
        <type xsi:type="pogoDsl:VoidType"/>
      </argin>
      <argout description="Status description">
        <type xsi:type="pogoDsl:ConstStringType"/>
      </argout>
      <status abstract="true" inherited="true" concrete="true" concreteHere="false"/>
    </commands>
    <attributes name="Enabled" attType="Scalar" rwType="READ_WRITE" displayLevel="OPERATOR" polledPeriod="2000" maxX="0" maxY="0" allocReadMember="false" isDynamic="false">
      <dataType xsi:type="pogoDsl:BooleanType"/>
      <changeEvent fire="false" libCheckCriteria="false"/>
      <archiveEvent fire="false" libCheckCriteria="false"/>
      <dataReadyEvent fire="false" libCheckCriteria="true"/>
      <status abstract="true" concrete="false" concreteHere="false"/>
      <properties description="True when" label="Enabled" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
    </attributes>
    <attributes name="Ready" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="2000" maxX="0" maxY="0" allocReadMember="false" isDynamic="false">
      <dataType xsi:type="pogoDsl:BooleanType"/>
      <dataReadyEvent fire="false" libCheckCriteria="true"/>
      <status abstract="true" concrete="false" concreteHere="false"/>
      <properties description="true when operating condtions of the ID make it operable by the beamlines:&#xA;- good flags and in range." label="ready" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
    </attributes>
    <attributes name="StatRF" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="2000" maxX="32" maxY="0" allocReadMember="false" isDynamic="false">
      <dataType xsi:type="pogoDsl:BooleanType"/>
      <dataReadyEvent fire="false" libCheckCriteria="true"/>
      <status abstract="true" concrete="false" concreteHere="false"/>
      <properties description="bit mask for compatibility with old style software&#xA;Holds the ready and enabled bits together" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
    </attributes>
    <states name="ON" description="Device OK">
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
    </states>
    <states name="FAULT" description="Device not working - broken ID">
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
    </states>
    <states name="UNKNOWN" description="Device not working - unknow reason/condition">
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
    </states>
    <states name="MOVING" description="Device gap is moving">
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
    </states>
    <preferences docHome="./doc_html" makefileHome="/usr/local/tango-9.3.3/share/pogo/preferences"/>
  </classes>
</pogoDsl:PogoSystem>