ReferenceData.xid.xml 6.74 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="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/Tensor/V1.0.0/Definitions.xid.xml" local="Definitions.xid.xml" />
  <import ref="https://xid.location.studio/HPE/V1.1.1/HpeCore.xid.xml" local="HpeCore.xid.xml" />
  <import ref="https://xid.location.studio/HPE/CommonDefs/V1.1.1/HpeGnss.xid.xml" local="HpeGnss.xid.xml" />
  <import ref="https://xid.location.studio/HPE/CommonDefs/V1.1.1/HpeCellular.xid.xml" local="HpeCellular.xid.xml" />
  <import ref="https://xid.location.studio/HPE/CommonDefs/V1.1.1/HpeWiFi.xid.xml" local="HpeWiFi.xid.xml" />
  <import ref="https://xid.location.studio/ILP/SLAM/V1.0.0_alpha/CommonDefs.xid" local="SLAM/Commondefs.xid.xml" />
  
  <namespace name="SLAM">

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

    <enum name="RefPointValidStatus" type="Tensor.int8" default="Unknown">     
      <comment>Reference Validity status.</comment>
      <literal name="Unknown" value="0"/>
      <literal name="valid" value="1"/>
      <literal name="quarantined" value ="2"/>
      <literal name="invalid" value="3"/>
    </enum>

    <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="RefPointUpdateStatus" type="Tensor.int8" default ="updated">
      <comment>update status of the reference point</comment>
      <literal name="updated" value="0"/>
      <literal name="update_required" value="1"/>
    </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>

   <!--
    <type name="HashKey" size="16">
      <comment>16 byte UUID</comment>
      <lang name="c" type="UUID" include="Tensor/CXMF/uuid.h"/>
      <lang name="cpp" type="::Tensor::Types::UUID" include="Tensor/Types/uuid.h"/>
      <lang name="java" type="XidUuid" include="com.comtechtel.tensor.xid.XidUuid"/>
      <lang name="node" type="XidUuid"/> 
    </type>
 -->

    <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="validStatus" multiplicity="1" type="RefPointValidStatus">
        <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 ="data" 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 ="macaddr" type="MacAddress48" multiplicity="1">
        <comment>the mac address of the access point</comment>
      </elem>
      
    </struct>

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

      <elem name="ssid" type="Tensor.string" multiplicity="1">
        <comment>ssid of the access point</comment>
      </elem>
      <elem name ="macaddr" 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</comment>
      <elem name="refpoints" type="RefPoint" multiplicity="0..*"  polymorphic="true"/>
      
    </struct>
    
  </namespace>
</specification>