ReferenceData.xid.xml 6.02 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 https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
               identity="ReferenceData.xid.xml">
    <title>SLAM Tile reference data</title>
    <comment>This file defines the SLAM tile refeence definitions and related data types.</comment>

  <!-- Include all known definitions -->
  <import ref="https://xid.location.studio/HPE/V1.2/HpeGnss.xid.xml" local="HpeGnss.xid.xml" />
  <import ref="https://xid.location.studio/HPE/V1.2/HpeCellular.xid.xml" local="HpeCellular.xid.xml" />
  <import ref="https://xid.location.studio/HPE/V1.2/HpeWiFi.xid.xml" local="HpeWiFi.xid.xml" />
  
  <namespace name="SLAM">

    <using namespace="HPE"/>
    <using namespace="Tensor"/>
    <using namespace="HPE.WiFi"/>
    <using namespace="HPE.Cellular"/>

    <enum name="RefPointSyncStatus" type="Tensor.int8" default ="sync_required">
      <comment>synchronization status of the reference point</comment>
      <literal name="sync_required" value="0"/>
      <literal name="in_sync" value="1"/>
    </enum>

    <enum name="RefPointUseStatus" type="Tensor.int8" default ="unknown">
      <comment>use status of the reference point</comment>
      <literal name="unknown" value="0"/>
      <literal name="outdated" value="1"/>
      <literal name="valid" value="2"/>
      <literal name="quarantined" value="3"/>
      <literal name="invalid" value="4"/>
      <literal name="deprecated" value="5"/>
      <literal name="discardable" value="6"/>
    </enum>

    <enum name="RefPointType" type="Tensor.int8" default="undefined">
      <comment>Specifies the format of the Reference data.</comment>
      <literal name="undefined" value="0"/>
      <literal name="RF" value="1"/> 
      <literal name="Cellular" value="2"/>
      <literal name="Wifi" value="3"/>
      <literal name="Bluetooth" value="4"/>
      <literal name="GenericRF" value="5"/>
    </enum>

    <struct name="RefPoint" >
      <comment>defines the base structure of a reference point</comment>
      <elem name="type" type="RefPointType" multiplicity="1" rttd="true">
        <comment>Identifies the format/type of the reference data.</comment>
      </elem>

      <elem name="id" multiplicity="1" type="HashKey" >
        <comment>a unique hash of the reference data format and reference point identifier, which is different, depending on the type of the Reference point</comment>
      </elem>
      
      <elem name="position" multiplicity="0..1" type="Spheroid" >
        <comment>the estimated position of the access point</comment>
      </elem>

      <elem name ="veracity" multiplicity="1" type="Tensor.float32">
        <comment>The veracity of the reference point,  1= 100% trusted and validated, 0% not trusted at all.</comment>
      </elem>
      
      <elem name="usestatus" multiplicity="1" type="RefPointUseStatus">
        <comment>status of the reference point</comment>
      </elem>
      <elem name="validbegin" type="datetime" multiplicity="1">
        <comment>time stamp of the begining of the valid period</comment>
      </elem>
      <elem name="validend" type="datetime" multiplicity="1">
        <comment>time stamp of the ending of the valid period</comment>
      </elem>
      <elem name ="miscdata" type="Tensor.json" multiplicity="0..1">
        <comment>json formatted data specific to the device</comment>
      </elem>
      <elem name="floor" multiplicity ="0..1" type="int8" >
        <comment>Optional floor identifier, default is zero meaning the ground floor</comment>
      </elem>
      
    </struct> 
    
	<!-- ReferencePoint -->
    <struct name="RFRefPoint" type="RefPoint" rttkey="SLAM.RefPointType.RF">
     
      <comment>structure defines a reference Point.</comment>  
      <elem name="txpwr" type="Tensor.float32" multiplicity="1">
        <comment>transmission power</comment>
      </elem>
      <elem name="attenuation" type="Tensor.float32" multiplicity="1">
        <comment> attenuation exponent</comment>
      </elem>
      <elem name="freq" type="Tensor.float32" multiplicity="1">
        <comment> radio frequency of the reference in Hz</comment>
      </elem>  
      
    </struct>

    <struct name="WifiRefPoint" type="RFRefPoint" rttkey="SLAM.RefPointType.Wifi">

      <elem name="ssid" type="HPE.WiFi.SSID" multiplicity="1">
        <comment>ssid of the access point</comment>
      </elem>
      <elem name ="mac" type="mac48" multiplicity="1">
        <comment>the mac address of the access point</comment>
      </elem>
      
    </struct>

    <struct name="BluetoothRefPoint" type="RFRefPoint" rttkey="SLAM.RefPointType.Bluetooth">

      <elem name ="mac" type="Tensor.string" multiplicity="1">
        <comment>the mac address of the access point</comment>
      </elem>

    </struct>

    <struct name="CellularRefPoint" type="RFRefPoint" rttkey="SLAM.RefPointType.Cellular">

      <elem name ="cid"      type="CellId" multiplicity="1"/>
      <elem name ="antenna"  type="AntennaSpec" multiplicity="1"/>
    </struct>

    <struct name="GenericRFRefPoint" type="RFRefPoint" rttkey="SLAM.RefPointType.GenericRF">
      <elem name="uri" type="Tensor.uri" multiplicity="1">
        <comment>identifier that determines the genericRF type and unique identifier. encoded into the hash key</comment>
      </elem>

    </struct>

    <struct name="RefPointSet">
      <comment>A set of reference points with source information.</comment>
      
      <elem name="source" type="Tensor.uri" multiplicity="1">        
        <comment>URI identifies the source of the information provided.</comment>      
      </elem>
            
      <elem name="refpoints" type="RefPoint" multiplicity="0..*"  polymorphic="true"/>
      
    </struct>
    
  </namespace>
</specification>