<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
  <xsd:element name="AltusA10RIStatusDetail">
    <xsd:complexType>
      <xsd:all>
        <xsd:element name="SystemName" type="xsd:string"/>
        <xsd:element name="IsExclusive" type="xsd:boolean"/>
        <xsd:element name="State" type="tSystemState"/>
        <xsd:element name="Function" type="tFunction"/>
        <xsd:element name="FunctionTextID" type="tFunctionTextID"/>
        <xsd:element name="FunctionText" type="xsd:string"/>
        <xsd:element name="RunTime" type="tRunTime"/>
        <xsd:element name="TotalRunTime" type="tRunTime"/>
        <xsd:element name="AlarmCount" type="xsd:int"/>
        <xsd:element name="LedState" type="tLedState"/>
        <xsd:element name="LedAlarm" type="tLedAlarm"/>
        <xsd:element name="HasExternalColumnHeater" type="tExtColumnHeaterState" default="NotPresent">
          <xsd:annotation>
            <xsd:appinfo>
              <xsd:has-property name="Prompt" value="Has External Column Heater"/>
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="Switch1" type="tSwitchState"/>
        <xsd:element name="InjectStartInputState" type="tSwitchState"/>
        <xsd:element name="PurgeInputState" type="tSwitchState"/>
        <xsd:element name="PolarityInputState" type="tSwitchState"/>
        <xsd:element name="ChartMarkInputState" type="tSwitchState"/>
        <xsd:element name="AutoZeroInputState" type="tSwitchState"/>
        <xsd:element name="RecycleValveInputState" type="tSwitchState"/>
        <xsd:element name="PolarityEnableInputState" type="tSwitchState"/>
        <xsd:element name="RIUSignal" type="tuRIU"/>
        <xsd:element name="FlowCellTempEnable" type="tTemperatureEnable"/>
        <xsd:element name="FlowCellTempSetpoint" type="tTemperature"/>
        <xsd:element name="FlowCellTempCurrent" type="tTemperature"/>
        <xsd:element name="FlowCellTempAlarmEnable" type="tTemperatureEnable"/>
        <xsd:element name="FlowCellTempAlarmLimit" type="tTemperature"/>
        <xsd:element name="ExtColumnTempEnable" type="tTemperatureEnable"/>
        <xsd:element name="ExtColumnTempSetpoint" type="tTemperature"/>
        <xsd:element name="ExtColumnTempCurrent" type="tTemperature"/>
        <xsd:element name="ExtColumnTempAlarmEnable" type="tTemperatureEnable"/>
        <xsd:element name="ExtColumnTempAlarmLimit" type="tTemperature"/>
        <xsd:element name="DiodeA" type="xsd:int"/>
        <xsd:element name="DiodeB" type="xsd:int"/>
        <xsd:element name="RecycleValveState" type="tRecycleValveState"/>
        <xsd:element name="PurgeValveState" type="tPurgeValveState"/>
        <xsd:element name="LampType" type="tLampType"/>
        <xsd:element name="LampCurrent" type="tLampCurrent"/>
        <xsd:element name="AutoZeroOffset" type="tAutoZeroOffset"/>
        <xsd:element name="Polarity" type="tPolarity"/>
        <xsd:element name="RIUData" type="tChannel"/>
        <xsd:element name="FlowCellOvenTempData" type="tChannel"/>
        <xsd:element name="ExtColumnTempData" type="tChannel"/>
      </xsd:all>
      <xsd:attribute name="version" type="xsd:int" use="optional" default="1"/>
    </xsd:complexType>
  </xsd:element>
  <!-- See wriddata.h, const TranslateTable funcStatesXlat[] -->
  <xsd:simpleType name="tSystemState">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Initializing" id="SystemStateInitializing_0"/>
      <xsd:enumeration value="Idle" id="SystemStateIdle_1"/>
      <xsd:enumeration value="Getting Ready" id="SystemStateGettingReady_2"/>
      <xsd:enumeration value="Ready" id="SystemStateReady_3"/>
      <xsd:enumeration value="Running" id="SystemStateRunning_4"/>
      <xsd:enumeration value="Error" id="SystemStateError_5"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="tFunction">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="" id="Fid_NoFunction_0"/>
      <xsd:enumeration value="" id="Fid_NoiseTest_1000"/>
      <xsd:enumeration value="" id="Fid_DriftTest_1001"/>
      <xsd:enumeration value="" id="Fid_OptimizeLamp_1002"/>
      <xsd:enumeration value="" id="Fid_LampOpticsAdjust_1003"/>
      <xsd:enumeration value="" id="Fid_Purge_1004"/>
      <xsd:enumeration value="" id="Fid_Running_1005"/>
      <xsd:enumeration value="Initializing" id="Fid_Initializing_1006"/>
      <xsd:enumeration value="Getting ready" id="Fid_GettingReady_1007"/>
      <xsd:enumeration value="Ready" id="Fid_Ready_1008"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- See V2487Data.h, const TranslateTable capProgressXlat[] -->
  <xsd:simpleType name="tFunctionTextID">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="" id="FidState_NoFunction_0"/>
      <xsd:enumeration value="" id="FidState_InitializingFunction_1"/>
      <xsd:enumeration value="" id="FidState_GettingReadyFunction_2"/>
      <xsd:enumeration value="" id="FidState_WaitingForTemperature_3"/>
      <xsd:enumeration value="" id="FidState_ReadyFunction_4"/>
      <xsd:enumeration value="" id="FidState_RunningFunction_5"/>
      <xsd:enumeration value="" id="FidState_PurgingFunction_6"/>
      <xsd:enumeration value="" id="FidState_RecyclingFunction_7"/>
      <xsd:enumeration value="" id="FidState_OptimizeLampFunction_8"/>
      <xsd:enumeration value="" id="FidState_OptimizeLampInProgressFunction_9"/>
      <xsd:enumeration value="" id="FidState_OptimizeLampCompleteFunction_10"/>
      <xsd:enumeration value="" id="FidState_LampOpticsAdjustFunction_11"/>
      <xsd:enumeration value="" id="FidState_NoiseTestFunction_12"/>
      <xsd:enumeration value="" id="FidState_NoiseTestSetFilterFunction_13"/>
      <xsd:enumeration value="" id="FidState_NoiseTestAutozeroFunction_14"/>
      <xsd:enumeration value="" id="FidState_NoiseTestTakeDataFunction_15"/>
      <xsd:enumeration value="" id="FidState_NoiseTestCalcStatsFunction_16"/>
      <xsd:enumeration value="" id="FidState_NoiseTestDoneFunction_17"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- See wriddata.h, const TranslateTable alarmTypeTable[] -->
  <xsd:simpleType name="tAlarmType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="" id="AlarmNone_0"/>
      <xsd:enumeration value="" id="AlarmFlowCellNotAtTemp_1"/>
      <xsd:enumeration value="" id="AlarmFlowCellRTD_2"/>
      <xsd:enumeration value="" id="AlarmFlowCellOvenAbsolute_3"/>
      <xsd:enumeration value="" id="AlarmExternalColumnNotAtTemp_4"/>
      <xsd:enumeration value="" id="AlarmExternalColumnRTD_5"/>
      <xsd:enumeration value="" id="AlarmExternalColumnAbsolute_6"/>
      <xsd:enumeration value="" id="AlarmExternalColumnAbsent_7"/>
      <xsd:enumeration value="" id="AlarmADCommFrontEndPCB_8"/>
      <xsd:enumeration value="" id="AlarmADCommPersonalityPCB_9"/>
      <xsd:enumeration value="" id="AlarmInitialize_10"/>
      <xsd:enumeration value="" id="AlarmNVRamBad_11"/>
      <xsd:enumeration value="" id="AlarmDefaults_12"/>
      <xsd:enumeration value="" id="AlarmNoPurgeValve_13"/>
      <xsd:enumeration value="" id="AlarmTwoPurgeValve_14"/>
      <xsd:enumeration value="" id="AlarmNoLamp_15"/>
      <xsd:enumeration value="" id="AlarmIntensityLow_16"/>
      <xsd:enumeration value="" id="AlarmIntensityHigh_17"/>
      <xsd:enumeration value="" id="AlarmAutozeroOffset_18"/>
      <xsd:enumeration value="" id="AlarmGeneral_19"/>
      <xsd:enumeration value="" id="AlarmInstConfigChecksum_20"/>
      <xsd:enumeration value="" id="AlarmEthernetCableDisconnected_21"/>
      <xsd:enumeration value="" id="AlarmModifiedSN_22"/>
      <xsd:enumeration value="" id="AlarmDataBufferOverflow_23"/>
      <xsd:enumeration value="" id="AlarmLegacy410Mode_24"/>
      <xsd:enumeration value="" id="AlarmRiuMode_25"/>
      <xsd:enumeration value="" id="AlarmMethodChecksum_26"/>
      <xsd:enumeration value="" id="AlarmRearPanelPurge_27"/>
      <xsd:enumeration value="" id="AlarmRearPanelRecycle_28"/>
      <xsd:enumeration value="" id="AlarmRearPanelPolarity_29"/>
      <xsd:enumeration value="" id="ICSAlarmCommFailure_3000"/>
      <xsd:enumeration value="" id="ICSAlarmLANConflict_3002"/>
      <xsd:enumeration value="" id="ICSAlarmMinimumFirmwareVersion_3003"/>
      <xsd:enumeration value="" id="ICSAlarmInvalidSystem_3004"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!-- See wriddata.h, const TranslateTable extAlarmTextTable[] -->
  <xsd:simpleType name="tExtAlarm">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="" id="ExtAlarm_None_0"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="tRunTime">
    <xsd:restriction base="xsd:float">
      <xsd:fractionDigits value="1"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="tLedState">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Off" id="LedState_0"/>
      <xsd:enumeration value="Green" id="LedState_1"/>
      <xsd:enumeration value="Green Flashing" id="LedState_2"/>
      <xsd:enumeration value="Red" id="LedState_3"/>
      <xsd:enumeration value="Red Flashing" id="LedState_4"/>
      <xsd:enumeration value="Visual Identify" id="LedState_5"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:complexType name="tLedAlarm">
    <xsd:sequence>
      <xsd:element name="Type" type="tAlarmType"/>
      <xsd:element name="ExtendedType" type="tExtAlarm"/>
      <xsd:element name="Severity" type="tSeverity"/>
      <xsd:element name="Value1" type="tValue"/>
      <xsd:element name="Value1Units" type="tValueUnits"/>
      <xsd:element name="Value2" type="tValue"/>
      <xsd:element name="Value2Units" type="tValueUnits"/>
      <xsd:element name="Value3" type="tValue"/>
      <xsd:element name="Value3Units" type="tValueUnits"/>
      <xsd:element name="Text" type="xsd:string"/>
      <xsd:element name="ElapsedTime" type="xsd:int"/>
      <xsd:element name="AlertService" type="xsd:boolean"/>
      <xsd:element name="ID" type="xsd:int"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:simpleType name="tSeverity">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="No Severity" id="Severity_0"/>
      <xsd:enumeration value="Error" id="Severity_1"/>
      <xsd:enumeration value="Warning" id="Severity_2"/>
      <xsd:enumeration value="Informational" id="Severity_3"/>
      <xsd:enumeration value="StopFlow" id="Severity_4"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="tValue">
    <xsd:restriction base="xsd:float">
      <xsd:fractionDigits value="4"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="tValueUnits">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="" id="Units_None_0"/>
      <xsd:enumeration value="µL" id="Units_uL_1"/>
      <xsd:enumeration value="mL" id="Units_mL_2"/>
      <xsd:enumeration value="sec" id="Units_sec_3"/>
      <xsd:enumeration value="min" id="Units_min_4"/>
      <xsd:enumeration value="mL/min" id="Units_mLPerMin_5"/>
      <xsd:enumeration value="psi" id="Units_psi_6"/>
      <xsd:enumeration value="psi[a]" id="Units_psia_7"/>
      <xsd:enumeration value="°C" id="Units_degC_8"/>
      <xsd:enumeration value="counts" id="Units_counts_9"/>
      <xsd:enumeration value="gain" id="Units_gain_10"/>
      <xsd:enumeration value="nm" id="Units_nm_11"/>
      <xsd:enumeration value="µsteps" id="Units_usteps_12"/>
      <xsd:enumeration value="steps" id="Units_steps_13"/>
      <xsd:enumeration value="mV" id="Units_mV_14"/>
      <xsd:enumeration value="V" id="Units_V_15"/>
      <xsd:enumeration value="mA" id="Units_mA_16"/>
      <xsd:enumeration value="A" id="Units_A_17"/>
      <xsd:enumeration value="mW" id="Units_mW_18"/>
      <xsd:enumeration value="W" id="Units_W_19"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="tExtColumnHeaterState">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="NotPresent" id="ExtColumnHeaterState_0"/>
      <xsd:enumeration value="Present" id="ExtColumnHeaterState_1"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="tTemperatureEnable">
    <xsd:restriction base="xsd:boolean"/>
  </xsd:simpleType>
  <xsd:simpleType name="tTemperature">
    <xsd:restriction base="xsd:float">
      <xsd:fractionDigits value="1"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="tuRIU">
    <xsd:restriction base="xsd:float">
      <xsd:fractionDigits value="3"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="tLampType">
    <xsd:restriction base="xsd:int">
      <xsd:enumeration value="870" id="LampType_0"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="tLampCurrent">
    <xsd:restriction base="xsd:float">
      <xsd:fractionDigits value="1"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="tLeakDetectorState">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Leak Detected" id="LeakDetectorState_1"/>
      <xsd:enumeration value="No Leak" id="LeakDetectorState_2"/>
      <xsd:enumeration value="Not Present" id="LeakDetectorState_3"/>
      <xsd:enumeration value="Not Supported" id="LeakDetectorState_4"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="tLeakDetectorConfig">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Disabled" id="LeakDetectorConfig_1"/>
      <xsd:enumeration value="Enabled" id="LeakDetectorConfig_2"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="tSwitchState">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Off" id="SwitchState_0"/>
      <xsd:enumeration value="On" id="SwitchState_1"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="tRecycleValveState">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Absent" id="RecycleValveState_0"/>
      <xsd:enumeration value="Recycle" id="RecycleValveState_1"/>
      <xsd:enumeration value="Waste" id="RecycleValveState_2"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="tPurgeValveState">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Absent" id="PurgeValveState_0"/>
      <xsd:enumeration value="Normal" id="PurgeValveState_1"/>
      <xsd:enumeration value="Purge" id="PurgeValveState_2"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:complexType name="tChannel">
    <xsd:sequence>
      <xsd:element name="NumPoints" type="xsd:int"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:simpleType name="tWavelength">
    <xsd:restriction base="xsd:float">
      <xsd:fractionDigits value="0"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="tEnergy">
    <xsd:restriction base="xsd:float">
      <xsd:fractionDigits value="3"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="tAutoZeroOffset">
    <xsd:restriction base="xsd:float">
      <xsd:fractionDigits value="3"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="tPolarity">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Polarity (-)" id="NegativePolarity_0"/>
      <xsd:enumeration value="Polarity (+)" id="PositivePolarity_1"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="tMbfCountdown">
    <xsd:restriction base="xsd:float">
      <xsd:fractionDigits value="2"/>
    </xsd:restriction>
  </xsd:simpleType>
</xsd:schema>
