<?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="MCCE2Electrometers" pogoRevision="8.2">
    <description description="This class allows you to control all MCCE-2 Novelec electrometers&#xA;through a Serial bus.&#xA;&lt;br> Supported types :&#xA;&lt;br> Novelec Electrometers : MCCE2" title="Novelec MCCE-2 Electrometers" sourcePath="/home/informatique/ica/phamj/DEV/Serial/mcce2electrometers/src" language="Cpp" filestogenerate="XMI   file,Code files,html Pages" hasMandatoryProperty="false" hasConcreteProperty="true" hasAbstractCommand="false" hasAbstractAttribute="false" descriptionHtmlExists="true">
      <inheritances classname="Device_4Impl" sourcePath=""/>
      <identification contact="at synchrotron-soleil.fr - xavier.elattaoui" author="xavier.elattaoui" emailDomain="synchrotron-soleil.fr" classFamily="Acquisition" siteSpecific="" platform="All Platforms" bus="Serial Line" manufacturer="SAPHYMO" reference="MCCE-2"/>
    </description>
    <deviceProperties name="ProxyName" description="The name of the device which manages the communication.">
      <type xsi:type="pogoDsl:StringType"/>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
    </deviceProperties>
    <deviceProperties name="Electrometer1Address" description="The first electrometer address configured. &lt;br />&#xA;Note : if not connected, push 0 or let empty the property.">
      <type xsi:type="pogoDsl:UShortType"/>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
    </deviceProperties>
    <deviceProperties name="Electrometer2Address" description="The second electrometer address configured. &lt;br />&#xA;Note : if not connected, push 0 or let empty the property.">
      <type xsi:type="pogoDsl:UShortType"/>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
    </deviceProperties>
    <deviceProperties name="ComProtocol" description="Communication protocal: ETHERNET/SERIAL">
      <type xsi:type="pogoDsl:StringType"/>
      <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="true"/>
    </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="true"/>
    </commands>
    <commands name="RangeUP" description="" execMethod="range_up" displayLevel="OPERATOR" polledPeriod="0">
      <argin description="no argin">
        <type xsi:type="pogoDsl:VoidType"/>
      </argin>
      <argout description="no argout">
        <type xsi:type="pogoDsl:VoidType"/>
      </argout>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
      <excludedStates>FAULT</excludedStates>
      <excludedStates>DISABLE</excludedStates>
    </commands>
    <commands name="RangeDOWN" description="" execMethod="range_down" displayLevel="OPERATOR" polledPeriod="0">
      <argin description="no argin">
        <type xsi:type="pogoDsl:VoidType"/>
      </argin>
      <argout description="no argout">
        <type xsi:type="pogoDsl:VoidType"/>
      </argout>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
      <excludedStates>FAULT</excludedStates>
      <excludedStates>DISABLE</excludedStates>
    </commands>
    <commands name="SetZeroVFFunction" description="" execMethod="set_zero_vffunction" displayLevel="EXPERT" polledPeriod="0">
      <argin description="no argin">
        <type xsi:type="pogoDsl:VoidType"/>
      </argin>
      <argout description="no argout">
        <type xsi:type="pogoDsl:VoidType"/>
      </argout>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
      <excludedStates>FAULT</excludedStates>
      <excludedStates>DISABLE</excludedStates>
    </commands>
    <commands name="SetOffsetZeroV1Function" description="" execMethod="set_offset_zero_v1_function" displayLevel="EXPERT" polledPeriod="0">
      <argin description="no argin">
        <type xsi:type="pogoDsl:VoidType"/>
      </argin>
      <argout description="no argout">
        <type xsi:type="pogoDsl:VoidType"/>
      </argout>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
      <excludedStates>FAULT</excludedStates>
      <excludedStates>DISABLE</excludedStates>
    </commands>
    <commands name="SetLeakageZeroV2Function" description="" execMethod="set_leakage_zero_v2_function" displayLevel="EXPERT" polledPeriod="0">
      <argin description="no argin">
        <type xsi:type="pogoDsl:VoidType"/>
      </argin>
      <argout description="no argout">
        <type xsi:type="pogoDsl:VoidType"/>
      </argout>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
      <excludedStates>FAULT</excludedStates>
      <excludedStates>DISABLE</excludedStates>
    </commands>
    <commands name="SetTestFunction" description="" execMethod="set_test_function" displayLevel="EXPERT" polledPeriod="0">
      <argin description="no argin">
        <type xsi:type="pogoDsl:VoidType"/>
      </argin>
      <argout description="no argout">
        <type xsi:type="pogoDsl:VoidType"/>
      </argout>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
      <excludedStates>FAULT</excludedStates>
      <excludedStates>DISABLE</excludedStates>
    </commands>
    <commands name="SetMeasureFunction" description="" execMethod="set_measure_function" displayLevel="EXPERT" polledPeriod="0">
      <argin description="no argin">
        <type xsi:type="pogoDsl:VoidType"/>
      </argin>
      <argout description="no argout">
        <type xsi:type="pogoDsl:VoidType"/>
      </argout>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
      <excludedStates>FAULT</excludedStates>
      <excludedStates>DISABLE</excludedStates>
    </commands>
    <commands name="MCCE2_ON" description="" execMethod="mcce2__on" displayLevel="EXPERT" polledPeriod="0">
      <argin description="no argin">
        <type xsi:type="pogoDsl:VoidType"/>
      </argin>
      <argout description="no argout">
        <type xsi:type="pogoDsl:VoidType"/>
      </argout>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
      <excludedStates>FAULT</excludedStates>
      <excludedStates>DISABLE</excludedStates>
    </commands>
    <commands name="MCCE2_OFF" description="" execMethod="mcce2__off" displayLevel="EXPERT" polledPeriod="0">
      <argin description="no argin">
        <type xsi:type="pogoDsl:VoidType"/>
      </argin>
      <argout description="no argout">
        <type xsi:type="pogoDsl:VoidType"/>
      </argout>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
      <excludedStates>FAULT</excludedStates>
      <excludedStates>DISABLE</excludedStates>
    </commands>
    <commands name="Local" description="" execMethod="local" displayLevel="EXPERT" polledPeriod="0">
      <argin description="no argin">
        <type xsi:type="pogoDsl:VoidType"/>
      </argin>
      <argout description="no argout">
        <type xsi:type="pogoDsl:VoidType"/>
      </argout>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
      <excludedStates>DISABLE</excludedStates>
    </commands>
    <commands name="Remote" description="" execMethod="remote" displayLevel="EXPERT" polledPeriod="0">
      <argin description="no argin">
        <type xsi:type="pogoDsl:VoidType"/>
      </argin>
      <argout description="no argout">
        <type xsi:type="pogoDsl:VoidType"/>
      </argout>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
      <excludedStates>DISABLE</excludedStates>
    </commands>
    <commands name="Reset" description="" execMethod="reset" displayLevel="OPERATOR" polledPeriod="0">
      <argin description="no argin">
        <type xsi:type="pogoDsl:VoidType"/>
      </argin>
      <argout description="no argout">
        <type xsi:type="pogoDsl:VoidType"/>
      </argout>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
      <excludedStates>DISABLE</excludedStates>
    </commands>
    <commands name="ClearRegisters" description="" execMethod="clear_registers" displayLevel="OPERATOR" polledPeriod="0">
      <argin description="no argin">
        <type xsi:type="pogoDsl:VoidType"/>
      </argin>
      <argout description="no argout">
        <type xsi:type="pogoDsl:VoidType"/>
      </argout>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
      <excludedStates>DISABLE</excludedStates>
    </commands>
    <commands name="GetRange" description="" execMethod="get_range" displayLevel="OPERATOR" polledPeriod="0">
      <argin description="no argin">
        <type xsi:type="pogoDsl:VoidType"/>
      </argin>
      <argout description="The actual electrometer range">
        <type xsi:type="pogoDsl:StringType"/>
      </argout>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
      <excludedStates>FAULT</excludedStates>
      <excludedStates>DISABLE</excludedStates>
    </commands>
    <commands name="SetRange" description="" execMethod="set_range" displayLevel="OPERATOR" polledPeriod="0">
      <argin description="The range to apply on the electrometer">
        <type xsi:type="pogoDsl:StringType"/>
      </argin>
      <argout description="no argout">
        <type xsi:type="pogoDsl:VoidType"/>
      </argout>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
      <excludedStates>FAULT</excludedStates>
      <excludedStates>DISABLE</excludedStates>
    </commands>
    <commands name="GetMode" description="" execMethod="get_mode" displayLevel="EXPERT" polledPeriod="0">
      <argin description="no argin">
        <type xsi:type="pogoDsl:VoidType"/>
      </argin>
      <argout description="The electrometer mode (MEASURE, LEAKAGE ...)">
        <type xsi:type="pogoDsl:StringType"/>
      </argout>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
      <excludedStates>FAULT</excludedStates>
      <excludedStates>DISABLE</excludedStates>
    </commands>
    <commands name="GetPolarity" description="" execMethod="get_polarity" displayLevel="EXPERT" polledPeriod="0">
      <argin description="no argin">
        <type xsi:type="pogoDsl:VoidType"/>
      </argin>
      <argout description="The electrometer polarity">
        <type xsi:type="pogoDsl:StringType"/>
      </argout>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
      <excludedStates>FAULT</excludedStates>
      <excludedStates>DISABLE</excludedStates>
    </commands>
    <commands name="SetPolarity" description="" execMethod="set_polarity" displayLevel="OPERATOR" polledPeriod="0">
      <argin description="POSITIVE or NEGATIVE">
        <type xsi:type="pogoDsl:StringType"/>
      </argin>
      <argout description="no argout">
        <type xsi:type="pogoDsl:VoidType"/>
      </argout>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
      <excludedStates>FAULT</excludedStates>
      <excludedStates>DISABLE</excludedStates>
    </commands>
    <commands name="GetHzFilter" description="" execMethod="get_hz_filter" displayLevel="EXPERT" polledPeriod="0">
      <argin description="no argin">
        <type xsi:type="pogoDsl:VoidType"/>
      </argin>
      <argout description="The MCCE2 cut-off frequency in Hz">
        <type xsi:type="pogoDsl:ShortType"/>
      </argout>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
      <excludedStates>FAULT</excludedStates>
      <excludedStates>DISABLE</excludedStates>
    </commands>
    <commands name="SetHzFilter" description="" execMethod="set_hz_filter" displayLevel="EXPERT" polledPeriod="0">
      <argin description="The MCCE2 cut-off frequency in Hz">
        <type xsi:type="pogoDsl:ShortType"/>
      </argin>
      <argout description="no argout">
        <type xsi:type="pogoDsl:VoidType"/>
      </argout>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
      <excludedStates>FAULT</excludedStates>
      <excludedStates>DISABLE</excludedStates>
    </commands>
    <commands name="GetGain" description="" execMethod="get_gain" displayLevel="EXPERT" polledPeriod="0">
      <argin description="no argin">
        <type xsi:type="pogoDsl:VoidType"/>
      </argin>
      <argout description="The MCCE2 gain">
        <type xsi:type="pogoDsl:ShortType"/>
      </argout>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
      <excludedStates>FAULT</excludedStates>
      <excludedStates>DISABLE</excludedStates>
    </commands>
    <commands name="SetGain" description="" execMethod="set_gain" displayLevel="EXPERT" polledPeriod="0">
      <argin description="The new MCCE-2 gain">
        <type xsi:type="pogoDsl:UShortType"/>
      </argin>
      <argout description="no argout">
        <type xsi:type="pogoDsl:VoidType"/>
      </argout>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
      <excludedStates>FAULT</excludedStates>
      <excludedStates>DISABLE</excludedStates>
    </commands>
    <commands name="GetElectrometerTypeStr" description="" execMethod="get_electrometer_type_str" displayLevel="OPERATOR" polledPeriod="0">
      <argin description="channel number">
        <type xsi:type="pogoDsl:UShortType"/>
      </argin>
      <argout description="the electrometer type as string">
        <type xsi:type="pogoDsl:StringType"/>
      </argout>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
    </commands>
    <attributes name="electrometerChannel" attType="Scalar" rwType="READ_WRITE" displayLevel="OPERATOR" polledPeriod="0" maxX="0" maxY="0">
      <dataType xsi:type="pogoDsl:UShortType"/>
      <changeEvent fire="false" libCheckCriteria="false"/>
      <archiveEvent fire="false" libCheckCriteria="false"/>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
      <properties description="MCCE2 electrometer have two channels to support two amplifiers.\nWARN : default is 0 (please set this value first)." label="electrometer channel" unit=" " standardUnit=" " displayUnit=" " format="%1.0d" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
    </attributes>
    <attributes name="range1" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="0" maxY="0">
      <dataType xsi:type="pogoDsl:StringType"/>
      <changeEvent fire="false" libCheckCriteria="false"/>
      <archiveEvent fire="false" libCheckCriteria="false"/>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
      <properties description="The channel one MCCE2 range." label="range1" unit=" " standardUnit=" " displayUnit=" " format="%s" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
    </attributes>
    <attributes name="range2" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="0" maxY="0">
      <dataType xsi:type="pogoDsl:StringType"/>
      <changeEvent fire="false" libCheckCriteria="false"/>
      <archiveEvent fire="false" libCheckCriteria="false"/>
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
      <properties description="The channel two MCCE range." label="range2" unit=" " standardUnit=" " displayUnit=" " format="%s" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
    </attributes>
    <states name="ON" description="Device up and ready">
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
    </states>
    <states name="ALARM" description="Device initialisation not complete or a bad channel number is set.">
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
    </states>
    <states name="FAULT" description="Internal electrometer interface is not built or a Serial communication error occurred.">
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
    </states>
    <states name="DISABLE" description="No electrometer conected!">
      <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
    </states>
    <preferences docHome="../doc/doc_html" makefileHome="$(TANGO_HOME)"/>
  </classes>
</pogoDsl:PogoSystem>