HpeCellular.xid.xml 16.8 KB
<?xml version="1.0" encoding="UTF-8" ?>

<specification xmlns="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
               xmlns:xid="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xsi:schemaLocation="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd XtensibleInterfaceDefinition.xsd"
             identity="HpeCellular.xid.xml">
  <title>HPE Celullar Data Definition</title>
  <comment>File contains data definitions for 2G, 3G, and 4G HPE location related datatypes.</comment>

  <import ref="https://xid.location.studio/Tensor/V1.0.0/Definitions.xid.xml" local="Definitions.xid.xml" />
  <import ref="https://xid.location.studio/HPE/V1.2/HpeCore.xid.xml" local="HpeCore.xid.xml" />

  <namespace name="HPE.Cellular">
        <using namespace="Tensor"/>
        <using namespace="HPE"/>
        
        <enum name="RadioType" type="Tensor.uint8" default="undefined">
            <comment>Specifies the specific variant of Radio Data.</comment>
            <literal name="undefined" value="0"/>
            <literal name="GSM" value="1"/>
            <literal name="WCDMA" value="2"/>
            <literal name="LTE" value="3"/>
            <literal name="CDMA" value="4"/>
        </enum>

        <enum name="DuplexMode" type="Tensor.int8" default="FDD">
            <comment>Defines the communication duplexing mode.</comment>
            <literal name="FDD" value="0"/>
            <literal name="TDD" value="1"/>
        </enum>
        
        <enum name="TimeAdvMode" type="Tensor.int8" default="RAW">
            <comment>Defines Time Advance measurement mode.</comment>
            <literal name="TYPE1" value="0"/>
            <literal name="TYPE2" value="1"/>
            <literal name="UE" value="2"/>
            <literal name="SUPL" value="3"/>
            <literal name="RAW" value="4"/>
        </enum>

        <!-- Referece Data types-->
        <struct name="CellId" pack="true">
            <comment>
                CellIDInfo is a structure that uniquely identifies the Cell Tower in the cellular network.\n
                It relies on the RadioType field to interpret the meaning of specific fields.</comment>
            <elem name ="rtype" type="RadioType" multiplicity="1"/>
            <elem name ="mncLength" type="uint8" multiplicity="1">
                <comment>
                    Indicates number of digits for MNC to pad to (2 or 3).\n
                    If unknown, use 0.\n
                    For:\n
                    \t rtype=4(CDMA), this field is ignored.
                </comment>
            </elem>
            <elem name ="mcc"   type="uint16" multiplicity="1">
                <comment>Mobile Country Code.</comment>
            </elem>
            <elem name ="mnc"   type="uint16" multiplicity="1">
                <comment>
                    Mobile Network Code.\n
                    For:\n
                    \t rtype=4(CDMA) this field is the SID
                </comment>
            </elem>
            <elem name ="lac"   type="uint16" multiplicity="1">
                <comment>
                    Location Area Code.\n
                    For:\n
                    \t rtype=3(LTE) this field is the TAC.\n
                    \r rtype=4(CDMA) this field is the NID.
                </comment>
            </elem>
            <elem name ="cid"   type="uint32" multiplicity="1">
                <comment>
                    Cell ID.\n
                    For:\n
                    \t rtype=4(CDMA) this field is the BID.
                </comment>
            </elem>
        </struct>

        <struct name="AntennaSpec" pack="true">
            <comment>Specifies the details about a specific antenna.</comment>
            <comment>Geometric specification matches HPE.ArcBand3D</comment>
            <elem name ="sectorid" type="uint16" multiplicity="1"/>
            <elem name ="height" type="float32" multiplicity="1">
                <tag name="unit" value="meters"/>
                <comment>Height of the antenna from the CellLocInfo altitude.</comment>
            </elem>
            <elem name ="direction"   type="float32" multiplicity="1">
                <tag name="unit" value="degrees"/>
                <comment>angle from north to center of arc; aka orientation. 0 &lt;= direction &lt; 360.</comment>
            </elem>
            <elem name ="tilt"   type="float32" multiplicity="1">
                <tag name="unit" value="degrees"/>
                <comment>Vertical tilt from horizon.</comment>
            </elem>
            <elem name="opening" type="float32" multiplicity="1">
                <tag name="unit" value="degrees"/>
                <comment>Coverage angle of the antenna face; half on either side of direction.  0 &lt; opening &lt;= 360.</comment>
            </elem>
            <elem name="vopening" type="float32" multiplicity="1">
                <tag name="unit" value="degrees"/>
                <comment>Vertical coverage angle of the antenna face; half on either side of tilt  0 &lt; opening &lt;= 360.</comment>
            </elem>
            <elem name="radius" type="uint32" multiplicity="1">
                <tag name="unit" value="meters"/>
                <comment>Maximum antenna radius; distance the cell is usable at TxPower.
                    aka: MAR, SectorRadius
                </comment>
            </elem>
            <elem name="TxPower" type="float64" multiplicity="1">
                <tag name="unit" value="dBm"/>
                <comment>Transmit power.</comment>
            </elem>
            <elem name="frequency" type="float64" multiplicity="1">
                <tag name="unit" value="Hz"/>
                <comment>Radio frequency of the transimitted signal</comment>
            </elem>
            <elem name="RTTCalib" type="float32" multiplicity="1">
                <tag name="unit" value="meter"/>
                <comment>RTT Calibration is the survey result of the average RTT error of the cell in meters. Set to zero when not available</comment>
            </elem>
            <elem name="RTTCalibUncert" type="float32" multiplicity="1">
                <tag name="unit" value="meter"/>
                <comment>standard deviation of the RTTCalib. set to zero if not available</comment>
            </elem>
        </struct>

        <struct name="CellLocInfo" pack="true">
            <comment>Geometric specification matches HPE.Spheroid</comment>
            <comment>Provides the Cell tower location estimate @ 68% confidence</comment>
            <elem name="lat" type="float64" multiplicity="1">
                <tag name="unit" value="WGS84"/>
            </elem>
            <elem name="lon" type="float64" multiplicity="1">
                <tag name="unit" value="WGS84"/>
            </elem>
            <elem name="alt" type="float64" multiplicity="1">
                <tag name="unit" value="WGS84"/>
            </elem>
            <elem name="radius" type="float32" multiplicity="1">
                <tag name="unit" value="meters"/>
                <comment>Horizontal uncertainty of cell-site position at 68% confidence. 0 &lt;= hunc </comment>
            </elem>
            <elem name="vert" type="float32" multiplicity="1">
                <tag name="unit" value="meters"/>
                <comment>Vertical uncertainty of cell-site position at 68% confidence. 0 &lt;= vunc</comment>
            </elem>

        </struct>

        <struct name="CellAntReferenceData" type="HPE.ReferenceData" pack="true" rttkey="HPE.RefDataFormat.CELLULAR">
            <comment>
                Data provdes a complete set of information for a particular antenna typically associated with one or more observations.
                The default RefDataFormat is CELLULAR.
            </comment>
            <elem name ="cid"      type="CellId" multiplicity="1"/>
            <elem name ="antenna"  type="AntennaSpec" multiplicity="1"/>
            <elem name ="location" type="CellLocInfo" multiplicity="1"/>
        </struct>

        <!-- Observation Data types-->
        <struct name="MSISDNObservation" type="Observation" pack="true" rttkey="HPE.ObservationType.MSISDN">
          <comment>
            MSISDN only observation.  Observation must comply with E.164 standard in section 6.2.1
            (https://www.itu.int/rec/T-REC-E.164-201011-I/en).
          </comment>
          
          <elem name ="cc" type="uint16" multiplicity="1" default="1">
            <tag name="unit" value="1 to 3 digits"/>
            <comment>
              Country Code must have one (1) to three (3) digits.</comment>
          </elem>

          <elem name ="nsn" type="uint64" multiplicity="1">
                <tag name="unit" value="digits as a regular number"/>
    				    <comment>
                 NSNs can have up to 12 digits. 
                </comment>
			     </elem>
        </struct>

        <struct name="CellularObservation" type="ObservationEpoch" pack="true" rttkey="HPE.ObservationType.CELLID">
            <comment>CellID only observation.</comment>
            <comment>Also, base type for all cellular measurements.</comment>
            <elem name ="cid" type="CellId" multiplicity="1"/>
        </struct>

        <!-- 2G Observations -->
        <struct name="TimeAdvance" type="CellularObservation" pack="true" rttkey="HPE.ObservationType.GSM_TA">
          <comment>TimeAdvanceInfo is a structure which defines the Time Advance measurements of a base station.</comment>
          <elem name ="ta" type="uint16" multiplicity="1">
            <tag name="unit" value="bit period = 48/13 micro-second"/>
            <comment>Range 0-255, values over 63 correspond to the access delay measured by the BTS.</comment>
            <comment>Unit: 1 bits period = 48/13 micro-second</comment>
          </elem>
        </struct>

        <struct name="NMRInfo" type="CellularObservation" pack="true" rttkey="HPE.ObservationType.GSM_NMR">
            <comment>
                NMRInfo is a structure that defines important elements 
                in the network measurement report in GSM network.
            </comment>
            <elem name ="arfcn" type="uint16" multiplicity="1">
                <comment>Absolute RF channel number.  Range 0-1023.</comment>
            </elem>
            <elem name ="bsic" type="uint16" multiplicity="1">
                <comment>Bsic Station Identity Code GSM 03.03.  Range 0-63.</comment>
            </elem>
            <elem name ="rxlevel" type="uint16" multiplicity="1">
                <comment>Corresponds according to the mapping defined in TS. GSM 05.08 to the received signal 
                    strength on carrier N. N is the index to the frequency 
                    in the sorted list of frequencies defined in the 
                    EXTENDED MEASUREMENT ORDER message.  Range 0-63.
                </comment>
            </elem>
        </struct>


        <!-- 3G Observation data types.-->
        <struct name="RttInfo" type="CellularObservation" pack="true" rttkey="HPE.ObservationType.RTT_3G">
          <comment>RTTInfo is a structure which defines the round trip time measured results in 3G network.</comment>
          <elem name ="tamode" type="TimeAdvMode" multiplicity="1">
            <comment>Measurement mode of the Roud Trip Time. Currently the RTT structure is only valid for FDD</comment>
            <comment>Only Type1 and Type2 in TimeAdvMode are valid in RTT structure, need to ignore SUPL, RAW, UE</comment>
          </elem>
          <elem name ="rxtxtime" type="uint16" multiplicity="1">
            <comment>
              RxTxTime depends on duplex mode.
              TDD: 0-8191
              FDD: 768..1280
            </comment>
          </elem>
          <elem name ="quality" type="uint8" multiplicity="1">
            <comment>Quality of the UE Rx-Tx time difference measurement.</comment>
          </elem>
          <elem name ="rtt" type="uint16" multiplicity="1">
            <comment>Round Trip Time measurement.   Range = 0-32766</comment>
          </elem>
          <elem name ="exrtt" type="uint32" multiplicity="1">
            <comment>Extended Round Trip Time continuation of intervals. 32767..103041</comment>
          </elem>
        </struct>

        <struct name="MeasuredResultInfo" type="CellularObservation" pack="true" rttkey="HPE.ObservationType.MR_3G">
            <comment>3G MeasuredResultInfo is a structure which defines the measured result.</comment>
            <elem name ="dupmode" type="DuplexMode" multiplicity="1">
                <comment>Duplex mode of the cell.</comment>
            </elem>
            <elem name ="cpichRSCP" type="uint8" multiplicity="1">
                <comment>Range 0 to 63</comment>
            </elem>
            <elem name ="cpichEcNO" type="uint8" multiplicity="1">
                <comment>Range 0 to 63</comment>
            </elem>
            <elem name ="pathloss" type="uint8" multiplicity="1">
                <comment>Range 0 to 127</comment>
            </elem>
            <elem name ="deltaRSCP" type="int8" multiplicity="1">
                <comment>Range (-5) to (-1)</comment>
            </elem>
        </struct>

        <!-- 4G Datatypes -->
        <struct name="LteTimeAdvanceInfo" type="CellularObservation" pack="true" rttkey="HPE.ObservationType.LTE_TA">
            <comment>LTE timing advance information typically provided by the serving cell.</comment>
            <elem name ="tamode" type="TimeAdvMode" multiplicity="1">
                <comment>Measurement mode of the Time Advance.</comment>
            </elem>
            <elem name ="ta" type="uint16" multiplicity="1">
                <comment>Timing Advance, range: (0...7690) (as per 3GPP 36.321).</comment>
            </elem>
            <elem name ="aoa" type="uint16" multiplicity="1">
                <comment>Angle of Arrival</comment>
            </elem>
            <elem name ="uerxtx" type="uint16" multiplicity="1">
                <comment>RxTx time measured from User Entity. Range(0...4095)</comment>
            </elem>
        </struct>

        <struct name="LteRssiInfo" type="CellularObservation" pack="true" rttkey="HPE.ObservationType.LTE_RSSI">
            <comment>
                LTERSSIInfo is a 4G LTE structure which defines the signal RSSI information.
            </comment>
            <elem name ="rsrp" type="uint8" multiplicity="1">
                <tag name="unit" value="dBm"/>
                <comment>Reference signal received power</comment>
            </elem>
            <elem name ="rsrq" type="uint8" multiplicity="1">
                <tag name="unit" value="dB"/>
                <comment>Reference signal received quality</comment>
            </elem>
            <elem name ="nprb" type="uint8" multiplicity="1">
                <tag name="unit" value="dimensionless"/>
                <comment>Number of channels used to calculate rsrp</comment>
            </elem>
        </struct>
      
        <struct name="GenericInfo" type="CellularObservation" pack="true" rttkey="HPE.ObservationType.CELLULAR_GENERIC">
            <comment>Observation type specifies a common cellular observation in generic units.  Sometimes observations are translated into a simpler format for transport.</comment>
            <elem name ="rss" type="float32" multiplicity="1">
                <comment>Received Signal Strength (RSS), the value is 0 if not defined.  The units are -dBm.</comment>
            </elem>
            <elem name ="rssUncert" type="uint8" multiplicity="1">
                <comment>RSS standard deviation uncertainty in dB units. the value is 0 if not defined or unknown.</comment>
            </elem>
            <elem name ="taLowPart" type="uint16" multiplicity="1">
                <comment>Low part of timing advance measurement.  Range is 0 to 49,999 nsecs (max 15km).  Value is 0 if not defined</comment>
            </elem>
            <elem name ="taHighPart" type="uint8" multiplicity="1">
                <comment>High part of timing advance measurement.  Range is 0 to 255 in units of 50 usec (max. 2550 usec or 3,825 km).  Value is 0 if not used.</comment>
            </elem>
            <elem name ="taUncert" type="uint16" multiplicity="1">
                <comment>Timing advance standard deviation uncertainty in nanosecond units.  The value is 0 if not defined.</comment>
            </elem>
            <elem name ="service" type="bool" multiplicity="1">
                <comment>Serving Cell indicator.  If true, the measurement is from the serving cell, false if from a neighboring cell.  If not defined set to false.</comment>
            </elem>
        </struct>

        <!--
        <struct name="" type="CellularObservation" pack="true">
          <comment></comment>
          <elem name ="" type="uint16" multiplicity="1">
            <comment></comment>
          </elem>
          <elem name ="" type="uint16" multiplicity="1">
            <comment></comment>
          </elem>
        </struct>        
        -->
    </namespace>
</specification>