f6a1db0d by Michael B. Mathews

Added ILP V1.1.1 and SLAM V1.0.0_alpha API Definitions.

1 parent 79e4c4c9
<?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="CommonDefs.xid.xml">
<title>SLAM Common Definitions</title>
<comment>This file defines commonly used structures and enumerations used throughout the SLAM system.</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" />
<namespace name="SLAM">
<using namespace="HPE"/>
<using namespace="Tensor"/>
<!--
*************************************
* Enumerations
*************************************
-->
<enum name="CoordRefFrameType" type="Tensor.int8" default="unknown">
<comment>Enumerations defines the supported coordinate reference frames</comment>
<literal name="unknown" value="0"></literal>
<literal name="WGS84" value="1"></literal>
<literal name="ENU" value="2"></literal>
<literal name="NED" value="3"></literal>
</enum>
<!--
*************************************
* HashKey Definition.
*************************************
-->
<type name="HashKey" size="12">
<comment>12 byte hashkey for reference point identifiers.</comment>
<!-- <lang name="c" type="UUID" include="SLAM/CXMF/haskey.h"/> -->
<lang name="cpp" type="::SLAM::HashKey" include="SLAM/HashKey.h"/>
<!--
<lang name="java" type="SlamHasKey" include="com.comtechtel.tensor.SLAM.Hashkey"/>
<lang name="node" type=" SlamHasKey "/>
-->
</type>
<!--
*************************************
* BoundingBox Definition.
*************************************
-->
<struct name="BoundingBox" pack="true">
<comment>defines the bounding box parameters</comment>
<elem name="latmin" type="Tensor.float64" multiplicity="1" >
<comment>minimum value of the latitude</comment>
</elem>
<elem name="latmax" type="Tensor.float64" multiplicity="1" >
<comment>maximum value of the latitude</comment>
</elem>
<elem name="lonmin" type="Tensor.float64" multiplicity="1" >
<comment>minimum value of the longitude</comment>
</elem>
<elem name="lonmax" type="Tensor.float64" multiplicity="1" >
<comment>maximum value of the longitude</comment>
</elem>
<elem name="altmin" type="Tensor.float64" multiplicity="1" >
<comment>minimum value of the altitude</comment>
</elem>
<elem name="altmax" type="Tensor.float64" multiplicity="1" >
<comment>maximum value of the altitude</comment>
</elem>
</struct>
<!--
*************************************
* ContactInfo Definition.
*************************************
-->
<struct name="ContactInfo">
<elem name="givenname" multiplicity ="1" type="string" >
<comment>Contact given (first) name. Default is empty.</comment>
</elem>
<elem name="surname" multiplicity ="1" type="string" >
<comment>Contact surname (last name). Default is empty.</comment>
</elem>
<elem name="email" multiplicity ="1" type="string" >
<comment>Contact email addres. Default is empty.</comment>
</elem>
<elem name="phone" multiplicity ="1" type="string" >
<comment>Contact phone number. Default is empty.</comment>
</elem>
</struct>
<!--
*************************************
* AddressInfo Definition.
*************************************
-->
<struct name="AddressInfo">
<elem name="address1" multiplicity ="1" type="string">
<comment>First line street address. Default is empty.</comment>
</elem>
<elem name="address2" multiplicity ="1" type="string">
<comment>Second line street address. Default is empty.</comment>
</elem>
<elem name="City" multiplicity ="1" type="string">
<comment>Name of City. Default is empty.</comment>
</elem>
<elem name="StateRegion" multiplicity ="1" type="string">
<comment>State or region. Two character state definitions ok for U.S. addresses. Default is empty.</comment>
</elem>
<elem name="PostalCode" multiplicity ="1" type="string">
<comment>Postal code or zip code. Default is empty.</comment>
</elem>
<elem name="Country" multiplicity ="1" type="string">
<comment>Name of the country. Default is empty.</comment>
</elem>
</struct>
<!--
*************************************
* SurveyInfo Definition.
*************************************
-->
<struct name="SurveyInfo">
<comment>General information about the survey.</comment>
<elem name="name" multiplicity ="1" type="string" >
<comment>Optional name to describe the identify of the survey</comment>
</elem>
<elem name="flrmax" multiplicity ="1" type="int8" default ="0">
<comment>Optional maximum floor identifier, default is zero meaning the ground floor</comment>
</elem>
<elem name="flrmin" multiplicity ="1" type="int8" default ="0">
<comment>Optional minimum floor identifier, default is zero meaning the ground floor</comment>
</elem>
<elem name="appid" multiplicity ="1" type="string" >
<comment>Application identifier used to collect the survey data. Default is empty "".</comment>
</elem>
<elem name="appver" multiplicity ="1" type="string" >
<comment>Application version used to collect the survey data. Default is empty "".</comment>
</elem>
<elem name="createdate" type="datetime" multiplicity="1">
<comment>Date and time the survey was created or conducted.</comment>
</elem>
<elem name="contact" multiplicity ="0..1" type="ContactInfo" >
<comment>Optional contact information.</comment>
</elem>
<elem name="address" multiplicity ="0..1" type="AddressInfo" >
<comment>Optional address information.</comment>
</elem>
<elem name="datestart" type="datetime" multiplicity="0..1">
<comment>Date and time of when this survey is valid. Do not define if unknown.</comment>
</elem>
<elem name="dateend" type="datetime" multiplicity="0..1">
<comment>Last date and time of when this survey is valid. Do not define if unknown.</comment>
</elem>
</struct>
<!--
*************************************
* PointOfInterest Definition.
*************************************
-->
<struct name="PointOfInterest">
<elem name="name" multiplicity ="1" type="string">
<comment>Name of the point of interest.</comment>
</elem>
<elem name="floor" multiplicity ="1" type="int16" default ="0">
<comment>Optional floor identifier, default is zero meaning the ground floor</comment>
</elem>
<elem name="description" multiplicity ="1" type="string">
<comment>Other information describing the point of interest.</comment>
</elem>
<elem name="location" multiplicity="1" type="Shape" polymorphic="true" >
<comment>
Location of the POI. Polymorphic type, see specializationsfrom Shape for details.
</comment>
</elem>
<elem name="confidence" type="float32" multiplicity="1">
<comment>Confidence of position shape. Valid range is 0.0 to 1.0</comment>
</elem>
<elem name="address" multiplicity ="0..1" type="AddressInfo" >
<comment>Optional address information.</comment>
</elem>
<elem name="contact" multiplicity ="0..1" type="ContactInfo" >
<comment>Optional contact information.</comment>
</elem>
</struct>
<!--
*************************************
* SurveyRecord Definition.
*************************************
-->
<struct name="SurveyRecord" >
<comment>A Survey Record.</comment>
<elem name="state" multiplicity="1" type="StateInfo">
<comment>
Required device position and other state information. At least one of
observations or state is required, otherwise there is insufficient data to process.
</comment>
</elem>
<elem name="floor" multiplicity="1" type ="int8" default="0">
<comment>The floor number of this scan</comment>
</elem>
<elem name="observations" multiplicity="1" type="ObservationSet" >
<comment>
Optional Set of observation data encoded in the format specified by encObs.\n
At least one of observations or state is required,
otherwise there is insufficient data to process.
</comment>
</elem>
</struct>
<!--
*************************************
* SurveyData Definition.
*************************************
-->
<struct name ="SurveyData">
<elem name ="surveyid" type="Tensor.UUID" multiplicity="1" >
<comment>Identifies the unique id of the survey</comment>
</elem>
<elem name ="part" type="int32" multiplicity="1" default="0">
<comment>Zero based part index of survey indicating data is in parts.</comment>
</elem>
<elem name ="type" type="uri" multiplcity="1">
<comment>Type uri, provides information on the type of survey. This can indicate a variety of things and is used for search.</comment>
</elem>
<elem name ="source" type="uri" multiplcity="1">
<comment>Source uri, provides information on how survey data was sourced, potentially ownership.</comment>
</elem>
<elem name ="veracity" type="float32" multiplcity="1">
<comment>Veracity of the survey data contained. This is a measure between 0 and 1 about the quality and trustworthiness of the data collected. Veracity of 1 is the highest trust.</comment>
</elem>
<elem name="info" multiplicity="1" type="SurveyInfo">
<comment>
Optional survey information.
</comment>
</elem>
<elem name="records" multiplicity="0..*" type="SurveyRecord">
<comment>
Survey record(s) collected by the survey.
</comment>
</elem>
<elem name="pois" multiplicity="0..*" type="PointOfInterest">
<comment>
Points of interest collected by the survey.
</comment>
</elem>
</struct>
</namespace>
</specification>
<?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>
<?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="SurveyApi.xid.xml">
<title>SLAM Survey API Specifications</title>
<comment>
This file defines the SLAM survey API. The survey API is used to bulk load high-definition survey
data from one or more probe data sets.
</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/V1.1.1/ApiBase.xid" local="SLAM/ApiBase.xid" />
<import ref="https://xid.location.studio/ILP/SLAM/V1.0.0_alpha/CommonDefs.xid" local="SLAM/Commondefs.xid.xml" />
<import ref="https://xid.location.studio/ILP/SLAM/V1.0.0_alpha/TileDefinitions.xid" local="SLAM/TileDefinitions.xid.xml" />
<namespace name="SLAM">
<using namespace="HPE"/>
<using namespace="Tensor"/>
<!--
*******************************************************
Survey Submission API
*******************************************************
-->
<interface name="Survey">
<comment>Interface for submitting data to ILP. </comment>
<operation name="Submit">
<comment>
Interaction submits Survey data.
</comment>
<input name="input" type="InputBase" sid="0x1030">
<elem name="survey" multiplicity="1" type="SurveyData"></elem>
</input>
<output name="output" type="OutputBase" sid="0x1031">
<elem name="id" multiplicity="1" type="Tensor.UUID"/>
</output>
</operation>
<operation name="Download">
<comment>Downloads survey data given id.</comment>
<input name="input" type="InputBase" sid="0x1032">
<elem name="id" multiplicity="1" type="Tensor.UUID"/>
</input>
<output name="output" type="OutputBase" sid="0x1033">
<elem name="survey" multiplicity="1" type="SurveyData"></elem>
</output>
</operation>
</interface>
</namespace>
</specification>
<?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="TileDefinitions.xid.xml">
<title>SLAM Tile Definitions</title>
<comment>This file defines the SLAM tile 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/ILP/SLAM/V1.0.0_alpha/CommonDefs.xid" local="SLAM/Commondefs.xid.xml" />
<namespace name="SLAM">
<using namespace="HPE"/>
<using namespace="Tensor"/>
<!--
*************************************
* Enumerations
*************************************
-->
<enum name="TileType" type="Tensor.int8" default="Unknown">
<comment>Tile data processing status.</comment>
<literal name="Unknown" value="0"/>
<literal name="SparseMeasurementTile" value="1"/>
<literal name="GridModelTile" value="2"/>
<literal name="AggregateTile" value="3"/>
</enum>
<enum name="TileStatus" type="Tensor.int8" default="Unknown">
<comment>Tile data processing status.</comment>
<literal name="Unknown" value="0"/>
<literal name="Unprocessed" value="1"/>
<literal name="Processed" value="2"/>
</enum>
<enum name="ComputationalMethod" type="Tensor.int8" default="Unknown">
<comment>Data computational method associated with data contained within the tile.</comment>
<literal name="Unknown" value="0"/>
<literal name="GridSmoothing" value="1"/>
<literal name="GaussianProcess" value="2"/>
</enum>
<!--
*************************************
* Tile definition.
*************************************
-->
<struct name="Tile" >
<comment>defines the base structure of a tile</comment>
<elem name="type" type="TileType" multiplicity="1" rttd="true">
<comment>identify the type of the tile</comment>
</elem>
<elem name ="tileid" type="Tensor.UUID" multiplicity="1" >
<comment>Identifies the unique id of the tile</comment>
</elem>
<elem name="createdate" type="datetime" multiplicity="1">
<comment>time stamp of tile creation</comment>
</elem>
<elem name="lastmodified" type="datetime" multiplicity="1">
<comment>time stamp of last modification</comment>
</elem>
<elem name="bounding" multiplicity="1" type="BoundingBox" >
<comment> Bounding of the tile</comment>
</elem>
<elem name="floormin" type="int8" multiplicity="1" >
<comment>Identifies the minimum floor number</comment>
</elem>
<elem name="floormax" type="int8" multiplicity="1" >
<comment>Identifies the maximum floor number</comment>
</elem>
<elem name="revision" type="Tensor.uint32" multiplicity="1">
<comment>revision number</comment>
</elem>
<elem name="datatype" multiplicity="1" type="ObservationType" >
<comment>The type of the observation data within the tile .</comment>
</elem>
<elem name="status" type="TileStatus" multiplicity="1" >
<comment>Identifies the data processing status within the tile</comment>
</elem>
<elem name="method" type="ComputationalMethod" multiplicity="1" >
<comment>Identifies the data processing method within the tile</comment>
</elem>
<elem name="source" type="Tensor.uri" multiplicity="1">
<comment>URI identifies the source of the information provided.</comment>
</elem>
<elem name="label" type="Tensor.string" multiplicity="0..1" >
<comment>label of the tile</comment>
</elem>
<elem name="validbegin" type="datetime" multiplicity="1">
<comment>time stamp of tile creation</comment>
</elem>
<elem name="validend" type="datetime" multiplicity="1">
<comment>time stamp of tile creation</comment>
</elem>
</struct>
<!--
*************************************
* SparseMeasurementTile definition.
*************************************
-->
<struct name="SparseMeasurementTile" type="Tile" rttkey="SLAM.TileType.SparseMeasurementTile">
<comment>The tile is the unit of management for RF reference data, which can overlap, intersect, or be disjoint with other tiles</comment>
<!-- Contained Type Definitions -->
<struct name="RfData" pack="true">
<comment>Each RF data value is an observed/estimated value of a particular RF signal reference and at a particular position.</comment>
<elem name="idxPos" type ="Tensor.uint16" multiplicity="1">
<comment>index of the Position element.</comment>
</elem>
<elem name="value" type="Tensor.byte" multiplicity="1">
<comment>The RF signal strengh value in scaled units where unscaled scaled value = (value + dataOffset)/dataScale.</comment>
</elem>
<elem name="reserved" type="Tensor.byte" multiplicity="1">
<comment>Reserved storage space.</comment>
</elem>
</struct>
<struct name="Position" pack="true">
<comment>Each position element represents the physical location of one or more measurements</comment>
<elem name="x" type="Tensor.int24" multiplicity="1">
<comment>x component of the location of the tile data record</comment>
</elem>
<elem name="y" type="Tensor.int24" multiplicity="1">
<comment>y component of the location of the tile data record</comment>
</elem>
<elem name="z" type="Tensor.int24" multiplicity="1">
<comment>z component of the location of the tile data record</comment>
</elem>
<elem name="ux" type="Tensor.uint8" multiplicity="1">
<comment>uncertainty of x component of the locations</comment>
</elem>
<elem name="uy" type="Tensor.uint8" multiplicity="1">
<comment>uncertainty of y component of the locations</comment>
</elem>
<elem name="uz" type="Tensor.uint8" multiplicity="1">
<comment>uncertainty of z component of the locations</comment>
</elem>
<elem name="floor" type="Tensor.int8" multiplicity="1" default="0">
<comment> the floor number of the measurement record</comment>
</elem>
</struct>
<struct name="RfReference" pack="true">
<comment>Each RfRerence element identifies a specific RF Reference Point</comment>
<elem name="idRef" type="HashKey" multiplicity="1">
<comment>UUID of the reference point</comment>
</elem>
<elem name="start" type="Tensor.uint16" multiplicity="1">
<comment>start index in the RfData array</comment>
</elem>
<elem name="end" type="Tensor.uint16" multiplicity="1">
<comment>end index in the RFData array.</comment>
</elem>
</struct>
<array name="RfReferenceArray" type="RfReference"/>
<array name="RfDataArray" type="RfData"/>
<array name="PositionArray" type="Position"/>
<!-- Structure Element Definitions -->
<elem name="reframe" type="CoordRefFrameType" multiplicity="1">
<comment>The type of coordinate frame of the relative locations in the records.</comment>
</elem>
<elem name="posRef" type="Point3D" multiplicity="1">
<comment>
The reference position of the tile. In the specified coordinate system. Typically
WGS84.
</comment>
</elem>
<elem name="posUncertScale" type="Tensor.float32" multiplicity="1" default="1">
<comment>The scale of the location uncertainty in Position data.</comment>
</elem>
<elem name="dataScale" type="Tensor.float32" multiplicity="1" default="1">
<comment>The scale of the measurement in measurement record.</comment>
</elem>
<elem name="dataOffset" type="Tensor.float32" multiplicity="1" default="0">
<comment>The unscaled offset of the unscaled RfData value.</comment>
</elem>
<elem name="references" type="RfReferenceArray" multiplicity="1"/>
<elem name="rfdata" type="RfDataArray" multiplicity="1"/>
<elem name="positions" type="PositionArray" multiplicity="1"/>
</struct>
<!--
*************************************
* TileSet definition.
*************************************
-->
<struct name="TileSet">
<comment>A set of tiles in an unpacked list.</comment>
<elem name="tiles" type="Tile" multiplicity="0..*" polymorphic="true"/>
</struct>
<!--
*************************************
* SpatialIndex definition.
*************************************
-->
<struct name="SpatialIndex" >
<comment> </comment>
<elem name="sourceuri" multiplicity="1" type="Tensor.uri" >
<comment> </comment>
</elem>
<elem name="tileid" multiplicity="1" type="Tensor.UUID" >
<comment>The UUID of the tile </comment>
</elem>
<elem name="bounding" multiplicity="1" type="BoundingBox" >
<comment> Bounding of the tile</comment>
</elem>
<elem name="floormin" type="int8" multiplicity="1" >
<comment>Identifies the minimum floor number</comment>
</elem>
<elem name="floormax" type="int8" multiplicity="1" >
<comment>Identifies the maximum floor number</comment>
</elem>
<elem name="datatype" multiplicity="1" type="ObservationType" >
<comment>The type of the observation data within the tile .</comment>
</elem>
<elem name="createdate" type="datetime" multiplicity="1">
<comment>time stamp of tile creation</comment>
</elem>
<elem name="lastmodified" type="datetime" multiplicity="1">
<comment>time stamp of last modification</comment>
</elem>
<elem name="validbegin" type="datetime" multiplicity="1">
<comment>time stamp of tile creation</comment>
</elem>
<elem name="validend" type="datetime" multiplicity="1">
<comment>time stamp of tile creation</comment>
</elem>
</struct>
<!--
*************************************
* ElementIndex Definition.
*************************************
-->
<struct name="RefPointIndex" >
<comment> </comment>
<elem name="id" multiplicity="1" type="HashKey" >
<comment> </comment>
</elem>
<elem name="sourceUri" multiplicity="1" type="Tensor.uri" >
<comment> </comment>
</elem>
<elem name="type" multiplicity="1" type="RefPointType" >
<comment> </comment>
</elem>
<elem name="position" multiplicity="1" type="Spheroid">
<comment> coarse location of the tile</comment>
</elem>
<elem name="floor" type="int8" multiplicity="1" >
<comment>Identifies the floor number</comment>
</elem>
<elem name="validStatus" type="RefPointValidStatus" multiplicity="1" >
<comment>Identifies the status of the validity</comment>
</elem>
<elem name="createdate" type="datetime" multiplicity="1">
<comment>time stamp of tile creation</comment>
</elem>
<elem name="lastmodified" type="datetime" multiplicity="1">
<comment>time stamp of last modification</comment>
</elem>
</struct>
</namespace>
</specification>
<?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="TileManagementApi.xid.xml">
<title>SLAM Tile Management API Specifications</title>
<comment>This file defines the SLAM tile management API.</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/V1.1.1/ApiBase.xid" local="SLAM/ApiBase.xid" />
<import ref="https://xid.location.studio/ILP/SLAM/V1.0.0_alpha/CommonDefs.xid" local="SLAM/Commondefs.xid.xml" />
<import ref="https://xid.location.studio/ILP/SLAM/V1.0.0_alpha/ReferenceData.xid" local="SLAM/ReferenceData.xid.xml" />
<import ref="https://xid.location.studio/ILP/SLAM/V1.0.0_alpha/TileDefinitions.xid" local="SLAM/TileDefinitions.xid.xml" />
<namespace name="SLAM">
<using namespace="HPE"/>
<using namespace="Tensor"/>
<!--
*******************************************************
Tile Management API
*******************************************************
-->
<interface name="TileManagement">
<comment>Interface for submitting a new tile to the DB. </comment>
<operation name="DeleteTile">
<comment>
Interaction to delete a tile.
</comment>
<input name="input" type="InputBase" sid="0x101b">
<comment>defines the input data for DeleteTile operation</comment>
<elem name="tileid" type="Tensor.UUID" multiplicity="1" >
<comment>element specifies UUID of the the tile</comment>
</elem>
</input>
</operation>
<operation name="UploadTile">
<comment>interation to upload a tile</comment>
<input name="input" type="InputBase" sid="0x102b">
<comment>defines the input data structure for UploadTile operation</comment>
<elem name="tile" type="Tile" multiplicity="1">
<comment>the tile structure</comment>
</elem>
</input>
</operation>
<operation name="UpdateTile">
<comment>interation to update a tile</comment>
<input name="input" type="InputBase" sid="0x103b">
<comment>defines the input data structure for UpdateTile operation</comment>
<elem name="tile" type="Tile" multiplicity="1">
<comment>the tile structure</comment>
</elem>
</input>
</operation>
</interface>
</namespace>
</specification>
<?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="TileServiceApi.xid.xml">
<title>Tile Services API Specifications</title>
<comment>This file defines the SLAM tile services API.</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/V1.1.1/ApiBase.xid" local="SLAM/ApiBase.xid" />
<import ref="https://xid.location.studio/ILP/SLAM/V1.0.0_alpha/CommonDefs.xid" local="SLAM/Commondefs.xid.xml" />
<import ref="https://xid.location.studio/ILP/SLAM/V1.0.0_alpha/TileDefinitions.xid" local="SLAM/TileDefinitions.xid.xml" />
<namespace name="SLAM">
<using namespace="HPE"/>
<using namespace="Tensor"/>
<interface name="TileService">
<comment>Interface for tile service. </comment>
<!-- DownloadTile operation-->
<operation name="DownloadTile">
<comment>Interaction download a tile</comment>
<input name="input" type="InputBase" sid="0x101a">
<comment>defines the input data structure for DownloadTile operation </comment>
<elem name="tileid" type="Tensor.UUID" multiplicity="1" >
<comment>element specifies UUID of the the tile</comment>
</elem>
</input>
<output name="output" type="OutputBase" sid="0x102a">
<comment>defines the output data for DownloadTile operation</comment>
<elem name="tile" type="Tile" multiplicity="0..1" >
<comment>element defines the downloaded tile</comment>
</elem>
</output>
</operation>
<!-- FindTilesByBoundingbox operation -->
<operation name="FindTilesByBoundingbox">
<comment>find tiles</comment>
<input name="input" type="InputBase" sid="0x103a">
<comment>defines the input data for FindTilesByBoundingbox operation </comment>
<elem name="bounding" type="BoundingBox" multiplicity="1">
<comment>the bounding box that intersect with tiles</comment>
</elem>
<elem name="floor" type="Tensor.int16" multiplicity="0..1">
<comment>optional floor number for more precise search</comment>
</elem>
</input>
<output name="output" type="OutputBase" sid="0x104a">
<comment>defines the output data for FindTilesByBoundingbox operation</comment>
<elem name="tiles" type="TileSet" multiplicity="0..1">
<comment>a set of tiles as the result of the FindTilesByPos operation</comment>
</elem>
</output>
</operation>
<!-- FindTilesByRefId operation -->
<operation name="FindTilesByRefId">
<comment>find tiles</comment>
<input name="input" type="InputBase" sid="0x103a">
<comment>defines the input data for FindTilesByRefId operation </comment>
<elem name="refids" type="Tensor.string" multiplicity="1..*">
<comment>the bounding box that intersect with tiles</comment>
</elem>
<elem name="floor" type="Tensor.int16" multiplicity="0..1">
<comment>optional floor number for more precise search</comment>
</elem>
<elem name="signaltype" type="ObservationType" multiplicity="1">
<comment>the radio type of the reference points</comment>
</elem>
</input>
<output name="output" type="OutputBase" sid="0x104a">
<comment>defines the output data for FindTilesByRefId operation</comment>
<elem name="tiles" type="TileSet" multiplicity="0..1">
<comment>a set of tiles as the result of the FindTilesByPos operation</comment>
</elem>
</output>
</operation>
<!-- EstimatePosition operation -->
<operation name="EstimatePosition">
<comment> estimate posiion from a set of Wifi rssi observations</comment>
<input name="input" type="InputBase" sid="0x106a">
<comment>input for EstimatePosition operation</comment>
<elem name="observations" type="ObservationSet" multiplicity="1">
<comment>a set of observed rssi values</comment>
</elem>
</input>
<output name="output" type="OutputBase" sid="0x107a">
<comment>output for EstimatePosition operation</comment>
<elem name="pos" type="Shape" multiplicity="0..*" polymorphic="true">
<comment>approximate position of the tile</comment>
</elem>
</output>
</operation>
</interface>
</namespace>
</specification>
<?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="ApiBase.xid.xml">
<title>ILP Services API Base Definitions</title>
<comment>
This document defines the common types API service interface for the ILP and Simultaneous Localization
and Mapping (SLAM) services definitions. The service provides access to ILP and SLAM technologies for position
calculation for devices and services communicating via standard
IP based protocols. The API currently supports XMF and JSON wire formats.
</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.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" />
<namespace name="ILP">
<using namespace="HPE"/>
<using namespace="Tensor"/>
<!--
*******************************
*InputBase Type Definition
*******************************
-->
<struct name="InputBase" >
<comment>Base input fields for operations supporting asynchronous transaction information.</comment>
<elem name="directive" multiplicity="0..*" type="NameValue">
<comment>
A set of directives to influence processing.
</comment>
</elem>
<elem name="devid" multiplicity="1" type="string">
<comment>
Required device identifier, that provides a consistent multi-transaction identifier
for a device or equivalent (e.g. service identifier) providing the data. Any errors or issues resulting from processing the data will include this identifier
in the system logs, providing traceability. Identifier should be unique.
</comment>
</elem>
<elem name="etid" multiplicity="0..1" type="string">
<comment>
Optional external transaction identifier for the caller to uniquely identify and track
the transaction and corresponding results. These identifiers will appear in the
ILP system logs for traceability analysis. The format of the transaction identifier is up to the caller
and can be anything: e.g. [uuid], [id1.subid0], [numerical], etc. This data is never interpreted by
the ILP system.
</comment>
</elem>
</struct>
<!--
*******************************
*OutputBase Type Definition
*******************************
-->
<struct name="OutputBase" >
<comment>Base output fields common to operations supporting asynchronous returning transaction information.</comment>
<elem name="devid" multiplicity="0..1" type="string">
<comment>
Device identifier provided at operation input, provides a consistent identifier
for a device or equivalent (e.g. service identifier) providing the data. Any errors or issues resulting from processing the data will include this identifier
in the system logs, providing traceability.
</comment>
</elem>
<elem name="etid" multiplicity="0..1" type="string">
<comment>
Optional external transaction identifier for the caller to uniquely identify and track
the transaction and corresponding results. These identifiers appear in the
ILP system logs for traceability analysis. The format of the transaction identifier is up to the caller
and can be anything: e.g. [uuid], [id1.subid0], [numerical], etc. This data is never interpreted by
the ILP system.
</comment>
</elem>
<elem name="resultcode" type="ResultCode" multiplicity="1" >
<comment>Result of the operation.</comment>
</elem>
<elem name="errinfo" type="Tensor.string" multiplicity="0..1">
<comment>Error information if result was not success.</comment>
</elem>
</struct>
</namespace>
</specification>
<?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="IlpApiBase.xid.xml">
<title>ILP Hybrid Positioning Services API Base Definitions</title>
<comment>
This document defines the common types API service interface for the IoT Location Platform (ILP).
The service provides hybrid position calculation for devices and services communicating
via standard IP based protocols. The API currently supports XMF and JSON wire formats.
</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.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" />
<namespace name="ILP">
<using namespace="HPE"/>
<using namespace="Tensor"/>
<!--
*******************************
*IlpInputBase Type Definition
*******************************
-->
<struct name="IlpInputBase" >
<comment>Base input fields for operations supporting asynchronous transaction information.</comment>
<elem name="idDevice" multiplicity="1" type="string">
<comment>
Required device identifier, that provides a consistent multi-transaction identifier
for a device or equivalent (e.g. service identifier) providing the data. Any errors or issues resulting from processing the data will include this identifier
in the system logs, providing traceability. Identifier should be unique.
</comment>
</elem>
<elem name="idTransaction" multiplicity="0..1" type="string">
<comment>
Optional transaction identifier for the caller to uniquely identify and track
the transaction and corresponding results. These identifiers will appear in the
ILP system logs for traceability analysis. The format of the transaction identifier is up to the caller
and can be anything: e.g. [uuid], [id1.subid0], [numerical], etc. This data is never interpreted by
the ILP system.
</comment>
</elem>
<!-- THis is future, don't uncomment until design issues resolved. M. Mathews/s. Hines 161130
<elem name="urlCallback" multiplicity="0..1" type="string">
<tag key="life-cycle" value="future" />
<comment>
Optional asynchronous callback used to callback client servers during long operations. Not all
interfaces may support this.
</comment>
</elem>
-->
</struct>
<!--
*******************************
*IlpOutputBase Type Definition
*******************************
-->
<struct name="IlpOutputBase" >
<comment>Base output fields common to operations supporting asynchronous returning transaction information.</comment>
<elem name="idDevice" multiplicity="1" type="string">
<comment>
Device identifier provided at operation input, provides a consistent identifier
for a device or equivalent (e.g. service identifier) providing the data. Any errors or issues resulting from processing the data will include this identifier
in the system logs, providing traceability.
</comment>
</elem>
<elem name="idTransaction" multiplicity="0..1" type="string">
<comment>
Optional transaction identifier for the caller to uniquely identify and track
the transaction and corresponding results. These identifiers appear in the
ILP system logs for traceability analysis. The format of the transaction identifier is up to the caller
and can be anything: e.g. [uuid], [id1.subid0], [numerical], etc. This data is never interpreted by
the ILP system.
</comment>
</elem>
<!-- THis is future, don't uncomment until design issues resolved. M. Mathews/s. Hine 161130
<elem name="urlCallback" multiplicity="0..1" type="string">
<tag key="life-cycle" value="future" />
<comment>
Optional asynchronous callback used to callback client servers during long operations. Not all
interfaces may support this.
</comment>
</elem>
-->
</struct>
</namespace>
</specification>
<?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="IlpAssistanceApi.xid.xml">
<title>ILP Assistance Services</title>
<comment>
This document defines the positioning assistance service interface for the IoT Location Platform (ILP).
The service provides assistance data supporting GNSS and other positioning technologies for devices
and services communicating via standard IP based protocols. The API currently supports XMF and JSON wire formats.
</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.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/ILP/V1.1.1/IlpApiBase.xid.xml" local="IlpApiBase.xid.xml" />
<namespace name="ILP">
<using namespace="HPE"/>
<using namespace="Tensor"/>
<!--
*******************************************************
GnssData input/ouput structure declarations.
*******************************************************
-->
<!-- GnssDataInput structure -->
<struct name="GnssDataInput" type="IlpInputBase">
<comment>ILP.Assistance.GnssData input request data.</comment>
<!-- Define internal data structure -->
<struct name="RequestSpec">
<comment>Specifies the data request for each constellation type.</comment>
<elem name ="constellation" type="HPE.Gnss.Constellation" multiplicity="1">
<comment>Specifies the constellation of interest.</comment>
</elem>
<elem name="directive" multiplicity="0..*" type="NameValue">
<comment>
A set of directives to influence processing.
</comment>
</elem>
<elem name="minId" multiplicity="0..1" type ="uint8" default="0">
<comment>
Specifies the minimum satellite ID to return constellation data.
</comment>
</elem>
<elem name="maxId" multiplicity="0..1" type ="uint8" default="255">
<comment>
Specifies the maximum satellite ID to return constellation data.
</comment>
</elem>
<elem name="AssistData" multiplicity="1..*" type ="HPE.Gnss.AssistanceData">
<comment>
Specifies the types of constellation assistance data to return.
</comment>
</elem>
</struct>
<!-- Define input elements.-->
<elem name="epoch" multiplicity="0..1" type="datetime">
<comment>
Optional epoch for which the data is valid. Leave unspecified if the current epoch is desired.
</comment>
</elem>
<elem name="encoding" multiplicity="0..1" type="EncodingFormat" default="0">
<comment>
ConstellationData encoding format for the response. This field is carried into
GetAssistanceData_output.encCon and GetGnssAlmanacs_output.conData will be encoded
in this format. If not specified the "native" format of the protocol is used.
</comment>
</elem>
<elem name="location" multiplicity="0..1" type="Shape">
<comment>
Optional specification of the location to compute assistance data. If not specified
all available asistance data will be provided.
</comment>
</elem>
<elem name="elmask" multiplicity="0..1" type="int8" default="-90">
<comment>
Optional, specifies the elevation cutoff mask relative to the current
location in degrees. If not specified or -90, all values within the specified satellite ID ranges are returned.
</comment>
<tag name="unit" value="degrees"/>
</elem>
<elem name="Request" multiplicity="1..*" type="RequestSpec">
<comment>Specifies the requested data. One specification is required, multiple can be processed simultaneously.</comment>
</elem>
</struct>
<!-- GnssDataOutput structure -->
<struct name="GnssDataOutput" type="IlpOutputBase">
<comment>ILP.Assistance.GnssData output structure. </comment>
<elem name="resultcode" multiplicity="1" type="ResultCode">
<comment>
Result of GnssData operation.
If resultcode is not success, encCon and constellation data will not be present.
</comment>
</elem>
<elem name="encoding" multiplicity="0..1" type="EncodingFormat" default="0">
<comment>
Constellation Data encoding format. Data can be provided in a different encoding format
than the native protocol format. This is carried over from input.
If not present, the data is in the native protocol format (e.g. XMF, JSON).
</comment>
</elem>
<elem name="assistdata" multiplicity="0..*" type ="HPE.Gnss.ConstellationData" encoding="encoding">
<comment>
The list of ConstellationData encoded in the format specified by encoding.
</comment>
</elem>
</struct>
<!--
*******************************************************
ILP GNSS Assistance Data Service Interface.
*******************************************************
-->
<interface name="Assistance">
<comment>Assistance data interface functions.</comment>
<operation name="Gnss">
<comment>Returns caller requested GNSS assistance data.</comment>
<input name="Input" type="GnssDataInput" sid="0x1018"/>
<output name="Result" type="GnssDataOutput" sid="0x1019"/>
</operation>
</interface>
</namespace>
</specification>
<?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="IlpPositioningApi.xid.xml">
<title>ILP Hybrid Positioning Services</title>
<comment>
This document defines the positioning service interface for the IoT Location Platform (ILP).
The service provides hybrid position calculation for devices and services communicating
via standard IP based protocols. The API currently supports XMF and JSON wire formats.
</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.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/V1.1.1/IlpApiBase.xid.xml" local="IlpApiBase.xid.xml" />
<namespace name="ILP">
<using namespace="HPE"/>
<using namespace="Tensor"/>
<!--
*******************************************************
ILP Positioning Calculation Data Types
*******************************************************
-->
<!-- CalculateInput structure -->
<struct name="CalculateInput" type ="IlpInputBase">
<comment>ILP.Positioning.Calculate input data structure.</comment>
<elem name="uuidSession" multiplicity="0..1" type="UUID">
<comment>
Optional session identifier. See CreateSession for creating valid
session identifiers. Transactions can be processed in the context of a session to provide
historical information and link calcuation in time.
</comment>
</elem>
<elem name="durSession" multiplicity="0..1" type="int32">
<comment>
Optional session duration. Default is 0 (not persisted). If specified,
the session created for this transaction will be stored for a maximum of 86400 seconds.
The uuidSession returned in the output, can be used in subsequent calls to Calculate to utilize
the persisted session data. Call ReleaseSession to release any persisted content once the session
is complete.
</comment>
</elem>
<elem name="dynamics" multiplicity="0..1" type="DynamicsProfile" default="0">
<comment>
Specifies the dymnamics of the device providing the data. If not specified, the default dynamics is undefined (0).
This parameter optimizes configuration of the estimator to constraint calculations based on the type
of motion. If session is specified, this value will be overridden.
</comment>
</elem>
<elem name="rankEstimate" multiplicity="0..1" type="EstimateRanking" default="3">
<comment>
Specifies the sort order of the estimates produced by the hybrid calculation. If not defined, the default value is to sort estimates
based on calculation order (0).
</comment>
</elem>
<elem name="confidence" multiplicity="0..1" type="float32" default="0.682689">
<comment>
Specifies the confidence level to report estimate error uncertainty, range between 0.0 and 1.0\n
Common values for confidence are:\n
\t 0.682689 (1 std. dev.)\n
\t 0.954499 (2 std. dev.)\n
\t 0.997300 (3 std. dev.)\n
If confidence is not specified, the default
value is 0.682689.
</comment>
</elem>
<elem name="maxEstimates" multiplicity="0..1" type="uint8" default="1">
<comment>
Specifies the maximum number of estimates (up to 255) to return in the calculation output.
If not specified 1 hybrid estimate is returned.
</comment>
</elem>
<elem name="typeShape" multiplicity="0..*" type="ShapeType">
<comment>
Specifies the preferred shape types to provide estimates in. The highest
ranking estimate will be returned in this specified shape types if supported.\n
If not specified, the set defaults to: Spheroid, Circle.
</comment>
</elem>
<elem name="directive" multiplicity="0..*" type="NameValue" ord="87">
<comment>
A set of directives to influence processing. Unknown directives are ignored.
</comment>
</elem>
<elem name="state" multiplicity="0..1" type="StateInfo" ord="90">
<comment>
Specifies the position to initialize the state of the positioning engine.\n
At least one of observations or state is required,
otherwise there is insufficient data to process.
</comment>
</elem>
<elem name="encObs" multiplicity="0..1" type="EncodingFormat" default="0" ord="88">
<comment>
Observation set encoding format. Observations may be passed to the service in
an encoding format different than that outer wire format.
By default wire protocol native format is assumed.
</comment>
</elem>
<elem name="observations" multiplicity="0..1" type="ObservationSet" encoding ="encObs" ord="89">
<comment>
Set of observation data encoded in the format specified by encObs.\n
At least one of observations or state is required,
otherwise there is insufficient data to process.
</comment>
</elem>
</struct>
<!-- Calculate Status-->
<enum name="CalculateStatus" type="Tensor.int8" default="undefined">
<comment>
Specifies the calculation resulting status. Caller should consult this value first to
determine if estimates are valid.
</comment>
<literal name="EstimateReady" value="1"/>
<literal name="undefined" value="0"/>
<literal name="DidNotConverge" value="-1"/>
<literal name="NotEnoughData" value="-2"/>
<literal name="UnspecifiedErr" value="-3"/>
</enum>
<!-- CalculateOutput structure -->
<struct name="CalculateOutput" type="IlpOutputBase" >
<comment>ILP.Positioning.Calculate output data structure. This contains the reuslts of a calculate oeration.</comment>
<elem name="uuidSession" multiplicity="1" type="UUID">
<comment>
Session identifier. This is the Identifier processed session used to process the
calculate transaction. If session, was not previously created by CreateSession, then
the session will not be available for future use.
</comment>
</elem>
<elem name="dynamics" multiplicity="1" type="DynamicsProfile">
<comment>
Specifies the dymnamics of the device providing the data.
</comment>
</elem>
<elem name="rankEstimate" multiplicity="1" type="EstimateRanking">
<comment>
Specifies the sort order of the estimates produced by the hybrid calculation.
</comment>
</elem>
<elem name="status" multiplicity="1" type="CalculateStatus">
<comment>
Specifies the status result of the calculation.
</comment>
</elem>
<elem name="Estimates" multiplicity="0..*" type="Estimate">
<comment>
List of estimates returned from the calculation ranked in the specified order.
</comment>
</elem>
</struct>
<!--
*******************************************************
CreateSession Data Types
*******************************************************
-->
<!-- CreateSessionInput structure -->
<struct name="CreateSessionInput" type="IlpInputBase">
<comment>ILP.Positioning.CreateSession input data structure.</comment>
<elem name="dynamics" multiplicity="1" type="DynamicsProfile">
<comment>
Specifies the dymnamics of the device providing the data. If not known specify undefined.
This parameter optimizes configuration of the estimator to constraint calculations based on the type
of motion. If session is specified, this value will be overridden.
</comment>
</elem>
<elem name="duration" multiplicity="1" type="int32">
<comment>
Number of seconds duration should persist. Maximum value is 86400 (1 day).
</comment>
</elem>
<elem name="typeObs" multiplicity="0..*" type="ObservationType">
<comment>
Optional List of supported observation types. Improves transaction initialization speed if only observation types needed are specified.
If not specified, all supported observations will be available for the session.
</comment>
</elem>
<elem name="ctTypicalObs" multiplicity="0..1" type="int32">
<comment>
Optional count of typical observations. Improves memory allocation when sizing internal buffers to typical number
of observations.
</comment>
</elem>
</struct>
<!-- CreateSessionOutput structure -->
<struct name="CreateSessionOutput" type="IlpOutputBase" >
<comment>ILP.Positioning.CreateSession output data structure.</comment>
<elem name="resultcode" multiplicity="1" type="ResultCode">
<comment>
Result of session creation operation.
</comment>
</elem>
<elem name="uuidSession" multiplicity="0..1" type="UUID">
<comment>
Session identifier of the created session.
</comment>
</elem>
</struct>
<!--
*******************************************************
ReleaseSession Data Types
*******************************************************
-->
<!-- ReleaseSessionInput structure -->
<struct name="ReleaseSessionInput" >
<comment>ILP.Positioning.ReleaseSession input data structure.</comment>
<elem name="uuidSession" multiplicity="1" type="UUID">
<comment>
Session identifier of the session to release.
</comment>
</elem>
</struct>
<!--
*******************************************************
Initialize Data Types
*******************************************************
-->
<!-- InitializeInput structure -->
<struct name="InitializeInput" type="IlpInputBase" >
<comment>ILP.Positioning.Initialize input data structure.</comment>
<elem name="uuidSession" multiplicity="0..1" type="UUID">
<comment>
Optional session identifier. See CreateSession for creating valid
session identifiers. Transactions can be processed in the context of a session to provide
historical information and link calcuation in time.
</comment>
</elem>
<elem name="durSession" multiplicity="0..1" type="int32">
<comment>
Optional session duration. Default is 0 (not persisted). If specified,
the session created for this transaction will be stored for a maximum of 86400 seconds.
The uuidSession returned in the output, can be used in subsequent calls to Calculate to utilize
the persisted session data. Call ReleaseSession to release any persisted content once the session
is complete.
</comment>
</elem>
<elem name="state" multiplicity="1" type="StateInfo">
<comment>
Specifies the position to initialize the state of the positioning engine.
</comment>
</elem>
</struct>
<!-- InitializeOutput structure -->
<struct name="InitializeOutput" type="IlpOutputBase">
<comment>ILP.Positioning.Initialize output data structure.</comment>
<elem name="resultcode" multiplicity="1" type="ResultCode">
<comment>
Result of session creation operation.
</comment>
</elem>
<elem name="uuidSession" multiplicity="0..1" type="UUID">
<comment>
Session identifier of the created session.
</comment>
</elem>
</struct>
<!--
*******************************************************
ILP Positioning Service Interface.
*******************************************************
-->
<interface name="Positioning">
<comment>Hybrid positioning interface defines interactions supporting position calculation functions.</comment>
<operation name="Calculate">
<comment>Calculates the position of the device given the specified observation data.</comment>
<input name="Input" type="CalculateInput" sid="0x1010"/>
<output name="Result" type="CalculateOutput" sid="0x1011" />
</operation>
<operation name="CreateSession">
<comment>
Creates a persistent session object and returns its UUID. Can be used to process a series of related transactions
using the previous filter state. Good for temporal or multiple observation type updates that were not
available at the same time.
</comment>
<input name="Input" type="CreateSessionInput" sid="0x1012"/>
<output name="Result" type="CreateSessionOutput" sid="0x1013"/>
</operation>
<operation name="ReleaseSession">
<comment>
Releases any persistent session data associated with the UUID.
</comment>
<input name="Input" type="ReleaseSessionInput" sid="0x1014"/>
<!-- output name="Result" type="void" sid="0x0000" result="return"/ -->
</operation>
<operation name="Initialize">
<comment>
Initializes the positioning engine to state specified in the provided shape information.
This is an optional interaction given most cases, this initial position can be determmined from
the provided data.
</comment>
<input name="Input" type="InitializeInput" sid="0x1016"/>
<output name="Result" type="InitializeOutput" sid="0x1017" />
</operation>
</interface>
</namespace>
</specification>
<?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="IlpSubmissionApi.xid.xml">
<title>ILP Submission API</title>
<comment>
This document defines a lightweight Observation Submission API for submitting ILP compatible observation
data without invoking the full get position operation.
</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.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/V1.1.1/IlpApiBase.xid.xml" local="IlpApiBase.xid.xml" />
<namespace name="ILP">
<using namespace="HPE"/>
<using namespace="Tensor"/>
<!-- SubmitInput structure definition.
Note: all the tags are defined. These have to
match CalculateInput tags of the same name.
-->
<struct name="PositionInfo" type="IlpInputBase" >
<comment>Used as ILP.Submission.PositionInfo input.</comment>
<elem name="state" multiplicity="0..1" type="StateInfo" ord="90">
<comment>
Optional position information.\n
At least one of observations or state is required,
otherwise there is insufficient data to process.
</comment>
</elem>
<elem name="directive" multiplicity="0..*" type="NameValue" ord="87">
<comment>
A set of directives to influence processing.
</comment>
</elem>
<elem name="encObs" multiplicity="0..1" type="EncodingFormat" default="0" ord="88">
<comment>
Observation set encoding format. Observations may be passed to the service in
an encoding format different than that outer wire format.
</comment>
</elem>
<elem name="observations" multiplicity="0..1" type="ObservationSet" encoding ="encObs" ord="89">
<comment>
Optional Set of observation data encoded in the format specified by encObs.\n
At least one of observations or state is required,
otherwise there is insufficient data to process.
</comment>
</elem>
</struct>
<!--
*******************************************************
Observation Submission API
*******************************************************
-->
<interface name="Submission">
<comment>Interface for submitting data to ILP. </comment>
<operation name="PositionInfo">
<comment>
Interaction submits position and observation data.\n
There is no response besides bearer response codes.
</comment>
<input name="Input" type="PositionInfo" sid="0x101E"/>
</operation>
</interface>
</namespace>
</specification>
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!