<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Author: Marco Buttu -->
<xs:schema
    targetNamespace="urn:schemas-cosylab-com:SRTLPBandReceiver:1.0"
    xmlns="urn:schemas-cosylab-com:SRTLPBandReceiver:1.0"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0"
    xmlns:baci="urn:schemas-cosylab-com:BACI:1.0"
    xmlns:mng="urn:schemas-cosylab-com:Managment:1.0"
    xmlns:rcv="urn:schemas-cosylab-com:Receivers:1.0"
    
    elementFormDefault="qualified"
    attributeFormDefault="unqualified">
    <xs:import namespace="urn:schemas-cosylab-com:CDB:1.0" schemaLocation="CDB.xsd"/>
    <xs:import namespace="urn:schemas-cosylab-com:BACI:1.0" schemaLocation="BACI.xsd"/>
    <xs:import namespace="urn:schemas-cosylab-com:Managment:1.0" schemaLocation="Managment.xsd"/>
    <xs:import namespace="urn:schemas-cosylab-com:Receivers:1.0" schemaLocation="Receivers.xsd"/>
    
    <xs:complexType name="SRTLPBandStatusType">
        <xs:complexContent>
            <xs:restriction base="baci:ROpattern">
                <xs:attribute name="resolution" type="xs:unsignedLong" use="optional" default="2048"/>
                <xs:attribute 
                    name="bitDescription" 
                    type="xs:string" 
                    use="optional" 
                    default="Local,Vacuum_Sensor,Vacuum_Pump_Status,Vacuum_Pump_Fault,
                             Vacuum_Valve_Open,Cool_Head_On,Compressor_Fault,Noise_Mark,Noise_Mark_Error,
                             External_Mark_Enabled,Connection_Error,Unlocked"
                />
                <xs:attribute 
                    name="whenSet" type="xs:string" use="optional" 
                    default="0, 2, 2, 1, 2, 2, 0, 2, 0, 2, 0, 0"
                />
                <xs:attribute 
                    name="whenCleared" 
                    type="xs:string" 
                    use="optional" 
                    default="2, 3, 3, 2, 3, 3, 2, 3, 2, 3, 2, 2"
                />
            </xs:restriction>
        </xs:complexContent>
    </xs:complexType>
    
    
    <xs:complexType name="SRTLPBandReceiverType">
     <xs:complexContent>
      <xs:extension base="baci:CharacteristicComponent">
        <xs:sequence>
            <!-- Local Oscillator (ROdoubleSeq) -->
            <xs:element name="LO" type="baci:ROdoubleSeq"/>
            <!-- Number of receiver feeds -->
            <xs:element name="feeds" type="baci:ROlong"/>
            <!-- Intermediate Frequencies (ROlong) -->
            <xs:element name="IFs" type="baci:ROlong"/>
            <!-- Polarization (ROlongSeq) -->
            <xs:element name="polarization" type="baci:ROlongSeq"/> 
            <!-- initialFrequency (ROdoubleSeq) -->
            <xs:element name="initialFrequency" type="baci:ROdoubleSeq"/>   
            <!-- bandWidth (ROdoubleSeq) -->
            <xs:element name="bandWidth" type="baci:ROdoubleSeq"/>
            <!-- currently configured mode (ROstring) -->
            <xs:element name="mode" type="baci:ROstring"/>
            <!-- vacuum (ROdouble) -->
            <xs:element name="vacuum" type="baci:ROdouble"/>
            <!-- Subsystem status -->
            <xs:element name="status" type="SRTLPBandStatusType" /> 

            <!-- LNA Drain voltage: stage number 1, left channel (ROdoubleSeq) -->
            <xs:element name="vdL1" type="baci:ROdouble"/>
            <!-- LNA Drain voltage: stage number 1, right channel (ROdoubleSeq) -->
            <xs:element name="vdR1" type="baci:ROdouble"/>
            <!-- LNA Drain voltage: stage number 2, left channel (ROdoubleSeq) -->
            <xs:element name="vdL2" type="baci:ROdouble"/>
            <!-- LNA Drain voltage: stage number 2, right channel (ROdoubleSeq) -->
            <xs:element name="vdR2" type="baci:ROdouble"/>
            <!-- LNA Drain voltage: stage number 3, left channel (ROdoubleSeq) -->
            <xs:element name="vdL3" type="baci:ROdouble"/>
            <!-- LNA Drain voltage: stage number 3, right channel (ROdoubleSeq) -->
            <xs:element name="vdR3" type="baci:ROdouble"/>

            <!-- LNA Drain current: stage number 1, left channel (ROdoubleSeq) -->
            <xs:element name="idL1" type="baci:ROdouble"/>
            <!-- LNA Drain current: stage number 1, right channel (ROdoubleSeq) -->
            <xs:element name="idR1" type="baci:ROdouble"/>
            <!-- LNA Drain current: stage number 2, left channel (ROdoubleSeq) -->
            <xs:element name="idL2" type="baci:ROdouble"/>
            <!-- LNA Drain current: stage number 2, right channel (ROdoubleSeq) -->
            <xs:element name="idR2" type="baci:ROdouble"/>
            <!-- LNA Drain current: stage number 3, left channel (ROdoubleSeq) -->
            <xs:element name="idL3" type="baci:ROdouble"/>
            <!-- LNA Drain current: stage number 3, right channel (ROdoubleSeq) -->
            <xs:element name="idR3" type="baci:ROdouble"/>

            <!-- LNA Gate voltage: stage number 1, left channel (ROdoubleSeq) -->
            <xs:element name="vgL1" type="baci:ROdouble"/>
            <!-- LNA Gate voltage: stage number 1, right channel (ROdoubleSeq) -->
            <xs:element name="vgR1" type="baci:ROdouble"/>
            <!-- LNA Gate voltage: stage number 2, left channel (ROdoubleSeq) -->
            <xs:element name="vgL2" type="baci:ROdouble"/>
            <!-- LNA Gate voltage: stage number 2, right channel (ROdoubleSeq) -->
            <xs:element name="vgR2" type="baci:ROdouble"/>
            <!-- LNA Gate voltage: stage number 3, left channel (ROdoubleSeq) -->
            <xs:element name="vgL3" type="baci:ROdouble"/>
            <!-- LNA Gate voltage: stage number 3, right channel (ROdoubleSeq) -->
            <xs:element name="vgR3" type="baci:ROdouble"/>

            <!-- cryogenic temp (K) (ROdouble) -->
            <xs:element name="cryoTemperatureCoolHead" type="baci:ROdouble"/>
            <!-- cryogenic temp (K) (ROdouble) -->
            <xs:element name="cryoTemperatureCoolHeadWindow" type="baci:ROdouble"/>
            <!-- cryogenic temp (K) (ROdouble) -->
            <xs:element name="cryoTemperatureLNA" type="baci:ROdouble"/>
            <!-- cryogenic temp (K) (ROdouble) -->
            <xs:element name="cryoTemperatureLNAWindow" type="baci:ROdouble"/>
            <!-- cryogenic temp (K) (ROdouble) -->
            <xs:element name="environmentTemperature" type="baci:ROdouble"/>
            <xs:element name="receiverStatus" type="mng:SystemStatusType" />
            <xs:element name="receiverName" type="baci:ROstring"/>
        </xs:sequence>

        <!--xs:attribute name="actionThreadStackSize" type="xs:unsignedLong" use="optional" default="1024" />
        <xs:attribute name="monitoringThreadStackSize" type="xs:unsignedLong" use="optional" default="2048" /-->
        <xs:attribute name="ReceiverName" type="xs:string" use="required"/>
        <xs:attribute name="DewarIPAddress" type="xs:string" use="required"/>
        <xs:attribute name="DewarPort" type="xs:unsignedShort" use="required" />
        <xs:attribute name="LNAIPAddress" type="xs:string" use="required"/>
        <xs:attribute name="LNAPort" type="xs:unsignedShort" use="required" />
        <xs:attribute name="SwitchIPAddress" type="xs:string" use="required"/>
        <xs:attribute name="SwitchPort" type="xs:unsignedShort" use="required" />
        <!-- The WatchDog working time(microseconds) -->
        <xs:attribute name="WatchDogResponseTime" type="xs:unsignedLong" use="required" />
        <!-- The WatchDog sleep time(microseconds) -->
        <xs:attribute name="WatchDogSleepTime" type="xs:unsignedLong" use="required" />
        <!-- LNA sampling time (microseconds) -->
        <xs:attribute name="LNASamplingTime" type="xs:unsignedLong" use="required" />
        <!-- the cache time (microseconds) for logging repetition filter -->
        <xs:attribute name="RepetitionCacheTime" type="xs:unsignedLong" use="required" />
        <!-- the expire time (microseconds) for logging repetition filter -->
        <xs:attribute name="RepetitionExpireTime" type="xs:unsignedLong" use="required" />
        <!-- Instance of the associated device that will set the local oscillator -->
        <xs:attribute name="DefaultMode" type="xs:string" use="required"/>
        <!-- Name of the LocalOscillator component -->
        <xs:attribute name="LocalOscillatorInstance" type="xs:string" use="required"/>

      </xs:extension>
     </xs:complexContent>
    </xs:complexType>
  
    <xs:element name="SRTLPBandReceiver" type="SRTLPBandReceiverType"/>
</xs:schema>
