dbec40ca by Pavan Sabbineni

Publishing SLAM V1.0 XIDs along with XIDData.prop

1 parent d32c4e67
<?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="CommonDefs.xid.xml">
<title>SLAM Common Definitions</title>
<comment>This file defines commonly used structures and enumerations used throughout the SLAM system.</comment>
<namespace name="SLAM">
<!--
*************************************
* 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>
</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 https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
identity="ProbeApi.xid.xml">
<title>SLAM Probe API Specifications</title>
<comment>
This file defines the SLAM Probe API. The probe API is used to load one or more probe data records from a single device.
</comment>
<!-- Include used 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" />
<import ref="https://xid.location.studio/Tensor/V1.1/ApiBase.xid.xml" local="ApiBase.xid.xml" />
<import ref="https://xid.location.studio/GeoSpatial/V1.0/SpatialDefs.xid.xml" local="SpatialDefs.xid.xml" />
<import ref="https://xid.location.studio/GeoSpatial/V1.0/Address.xid.xml" local="Address.xid.xml" />
<import ref="https://xid.location.studio/GeoSpatial/V1.0/Contact.xid.xml" local="Contact.xid.xml" />
<import ref="https://xid.location.studio/GeoSpatial/V1.0/PointOfInterest.xid.xml" local="PointOfInterest.xid.xml" />
<namespace name="SLAM">
<using namespace="HPE"/>
<using namespace="Tensor"/>
<enum name="DeviceClass" type="Tensor.int8" default="undefined">
<comment>
Device class enumeration specifies the class or primary use of the device.
This allows probe data recorded to be analyzed by classes of devices.
</comment>
<literal name ="undefined" value="0"/>
<literal name ="mobileSmartphone" value="1"/>
<literal name ="mobilePad" value="2"/>
<literal name ="mobileTablet" value="3"/>
<literal name ="mobileOther" value="4"/>
<literal name ="iotTag" value="5"/>
<literal name ="iotComm" value="6"/>
<literal name ="iotStatic" value="7"/>
<literal name ="iotOther" value="8"/>
<literal name ="autoTrack" value="9"/>
<literal name ="autoNav" value="10"/>
<literal name ="autoOther" value="11"/>
</enum>
<struct name="ProbeRecord">
<comment>
A record capturing RF and otherinformation at a specified location. Probe records are captured
as part of probe data collected by probe devices.
</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>
Set of observation data containing the probe measurements.
</comment>
</elem>
<elem name="name" multiplicity ="0..1" type="string">
<comment>Optional Name of this probe location.</comment>
</elem>
<elem name="description" multiplicity ="0..1" type="string">
<comment>Optional human readable description.</comment>
</elem>
<elem name="address" multiplicity ="0..1" type="GeoSpatial.AddressInfo" >
<comment>Optional address information.</comment>
</elem>
<elem name="contact" multiplicity ="0..1" type="GeoSpatial.ContactInfo" >
<comment>
Optional contact information. These are for probes locations typically associated with
a business or public entity that has associated contact information.
</comment>
</elem>
<elem name="data" multiplicity ="0..1" type="Tensor.json">
<comment>Optional other information describing this probe location in json format.</comment>
</elem>
</struct>
<struct name ="ProbeSourceInfo">
<comment>
Structure contains information about the probe data source.
</comment>
<elem name="classDevice" multiplicity="1" type="DeviceClass" >
<comment>Required field specifies the class of device used to collect the probe data.</comment>
</elem>
<elem name="modelDevice" multiplicity ="1" type="Tensor.string">
<comment>String defining a device</comment>
</elem>
<elem name="mfgDevice" multiplicity ="1" type="Tensor.string">
<comment>Optional device manufacturer information.</comment>
</elem>
<elem name="osNameVer" multiplicity ="1" type="Tensor.uri">
<comment>Operating system name use the format [os: e.g. windows, android, iphone, custom]/[version: information]/[language]/[etc].</comment>
</elem>
<elem name="appNameVer" multiplicity ="1" type="Tensor.string">
<comment>Specifies the application/library name with version information with the following format.[app name]/[ver].</comment>
</elem>
<elem name="idUser" multiplicity ="0..1" type="Tensor.string">
<comment>Optional user identifier.</comment>
</elem>
<elem name="keySource" multiplicity="0..1" type="Tensor.string">
<comment>Optional source key identifier, provides public key value to assist in authentication of probe information.</comment>
</elem>
</struct>
<!--
*******************************************************
Probe Submission API
*******************************************************
-->
<interface name="Probe">
<comment>Interface for submitting RF probe data.</comment>
<operation name="Submit">
<comment>
Interaction submits probe data and outputs responds with operation result.
</comment>
<input name="input" type="Tensor.InputBase" sid="0x1032">
<elem name="captureDate" type="datetime" multiplicity="1">
<comment>General date and time probe data was captured.</comment>
</elem>
<elem name="encoding" multiplicity="0..1" type="EncodingFormat" default="0" >
<comment>
Probe data and source information encoding format. Probe records may be passed to the service in
an encoding format different than that outer wire format. This can protect sensitive data.
By default wire protocol native format is assumed.
</comment>
</elem>
<elem name="sourceInfo" type="ProbeSourceInfo" multiplicity="0..1" encoding ="encoding">
<comment>
Optional source information. If not provided, probe data will ultimately have a low veracity score. If at all possible
probe data should have source information. The system correlates source data with other known sources to calculate veracity.
</comment>
</elem>
<elem name="probes" multiplicity ="0..*" type="ProbeRecord" encoding ="encoding">
<comment>Zero or more probe records encoded in the specified format.</comment>
</elem>
</input>
</operation>
</interface>
</namespace>
</specification>
# SLAM XIDs #
SLAM XIDs do not encode their ordinals (i.e. tags and offets). XIDData.prop is required to maintain backward compatibility.
## Generate / Verify XIDData.prop ##
~~~sh
$ java -Xnoclassgc -jar $XIDSDK/bin/xidcg.jar \
-v \
-prop https://xid.location.studio/Tensor/V1.1/XIDData.prop \
-prop https://xid.location.studio/GeoSpatial/V1.0/XIDData.prop \
-prop https://xid.location.studio/HPE/V1.2/XIDData.prop \
-prop https://xid.location.studio/SLAM/V1.0/XIDData.prop \
https://xid.location.studio/SLAM/V1.0/CommonDefs.xid.xml \
https://xid.location.studio/SLAM/V1.0/ProbeApi.xid.xml \
https://xid.location.studio/SLAM/V1.0/ReferenceData.xid.xml \
https://xid.location.studio/SLAM/V1.0/SurveyApi.xid.xml \
https://xid.location.studio/SLAM/V1.0/TileDefinitions.xid.xml \
https://xid.location.studio/SLAM/V1.0/TileManagementApi.xid.xml \
https://xid.location.studio/SLAM/V1.0/TileServiceApi.xid.xml
~~~
or
~~~sh
$ java -Xnoclassgc -jar $XIDSDK/bin/xidcg.jar \
-v \
-prop ../../Tensor/V1.0.0/XIDData.prop \
-prop ../../GeoSpatial/V1.0/XIDData.prop \
-prop ../../HPE/V1.2/XIDData.prop \
-prop XIDData.prop \
CommonDefs.xid.xml \
ProbeApi.xid.xml \
ReferenceData.xid.xml \
SurveyApi.xid.xml \
TileDefinitions.xid.xml \
TileManagementApi.xid.xml \
TileServiceApi.xid.xml
~~~
If xidcg reports:
~~~
Generating: xidout/meta/XID/XIDData.prop
~~~
Then something has changed and XIDData.prop needs to get updated.
<?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 ="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="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 ="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 https://xid.location.studio/schema/V1.0.0/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/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" />
<import ref="https://xid.location.studio/Tensor/V1.1/ApiBase.xid.xml" local="ApiBase.xid.xml" />
<import ref="https://xid.location.studio/GeoSpatial/V1.0/SpatialDefs.xid.xml" local="SpatialDefs.xid.xml" />
<import ref="https://xid.location.studio/GeoSpatial/V1.0/Address.xid.xml" local="Address.xid.xml" />
<import ref="https://xid.location.studio/GeoSpatial/V1.0/Contact.xid.xml" local="Contact.xid.xml" />
<import ref="https://xid.location.studio/GeoSpatial/V1.0/PointOfInterest.xid.xml" local="PointOfInterest.xid.xml" />
<namespace name="SLAM">
<using namespace="HPE"/>
<using namespace="Tensor"/>
<!--
*************************************
* 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="GeoSpatial.ContactInfo" >
<comment>Optional contact information.</comment>
</elem>
<elem name="address" multiplicity ="0..1" type="GeoSpatial.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>
<!--
*************************************
* 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" multiplicity="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" multiplicity="1">
<comment>Source uri, provides information on how survey data was sourced, potentially ownership.</comment>
</elem>
<elem name ="veracity" type="float32" multiplicity="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="GeoSpatial.PointOfInterest">
<comment>
Points of interest collected by the survey.
</comment>
</elem>
</struct>
<!--
*******************************************************
Survey Submission API
*******************************************************
-->
<interface name="Survey">
<comment>Interface for submitting SLAM compliant survey data.</comment>
<operation name="Submit">
<comment>
Interaction submits survey data and outputs submission result and UUID.
</comment>
<input name="input" type="Tensor.InputBase" sid="0x1030">
<elem name="survey" multiplicity="1" type="SurveyData"></elem>
</input>
<output name="output" type="Tensor.OutputBase" sid="0x1031">
<comment>Survey submission output returns status and UUID of the submitted survey.</comment>
<elem name="id" multiplicity="1" type="Tensor.UUID"/>
</output>
</operation>
<operation name="Download">
<comment>Downloads survey data given id.</comment>
<input name="input" type="Tensor.InputBase" sid="0x1032">
<elem name="id" multiplicity="1" type="Tensor.UUID">
<comment>UUID of Survey set.</comment>
</elem>
<elem name="part" multiplicity="1" type="Tensor.int32" default="-1">
<comment>Survey part id of interest. Default value is -1, which will return </comment>
</elem>
</input>
<output name="output" type="Tensor.OutputBase" sid="0x1033">
<comment>Survey download output data structure contains a zero or more surveys.</comment>
<elem name="surveys" multiplicity="0..*" 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 https://xid.location.studio/schema/V1.0.0/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.1/ApiBase.xid.xml" local="ApiBase.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="Tensor.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="Tensor.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="Tensor.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 https://xid.location.studio/schema/V1.0.0/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/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" />
<import ref="https://xid.location.studio/Tensor/V1.1/ApiBase.xid.xml" local="ApiBase.xid.xml" />
<import ref="https://xid.location.studio/GeoSpatial/V1.0/SpatialDefs.xid.xml" local="SpatialDefs.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="Tensor.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="Tensor.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="Tensor.InputBase" sid="0x103a">
<comment>defines the input data for FindTilesByBoundingbox operation </comment>
<elem name="bounding" type="GeoSpatial.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="Tensor.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="Tensor.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="Tensor.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="Tensor.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="Tensor.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>
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!