f6a1db0d by Michael B. Mathews

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

1 parent 79e4c4c9
1 <?xml version="1.0" encoding="UTF-8" ?>
2
3 <specification xmlns="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
4 xmlns:xid="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
5 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6 xsi:schemaLocation="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd XtensibleInterfaceDefinition.xsd"
7 identity="CommonDefs.xid.xml">
8 <title>SLAM Common Definitions</title>
9 <comment>This file defines commonly used structures and enumerations used throughout the SLAM system.</comment>
10
11 <!-- Include all known definitions -->
12 <import ref="https://xid.location.studio/Tensor/V1.0.0/Definitions.xid.xml" local="Definitions.xid.xml" />
13 <import ref="https://xid.location.studio/HPE/V1.1.1/HpeCore.xid.xml" local="HpeCore.xid.xml" />
14
15 <namespace name="SLAM">
16
17 <using namespace="HPE"/>
18 <using namespace="Tensor"/>
19
20 <!--
21 *************************************
22 * Enumerations
23 *************************************
24 -->
25
26 <enum name="CoordRefFrameType" type="Tensor.int8" default="unknown">
27 <comment>Enumerations defines the supported coordinate reference frames</comment>
28 <literal name="unknown" value="0"></literal>
29 <literal name="WGS84" value="1"></literal>
30 <literal name="ENU" value="2"></literal>
31 <literal name="NED" value="3"></literal>
32 </enum>
33
34
35 <!--
36 *************************************
37 * HashKey Definition.
38 *************************************
39 -->
40
41 <type name="HashKey" size="12">
42 <comment>12 byte hashkey for reference point identifiers.</comment>
43 <!-- <lang name="c" type="UUID" include="SLAM/CXMF/haskey.h"/> -->
44 <lang name="cpp" type="::SLAM::HashKey" include="SLAM/HashKey.h"/>
45 <!--
46 <lang name="java" type="SlamHasKey" include="com.comtechtel.tensor.SLAM.Hashkey"/>
47 <lang name="node" type=" SlamHasKey "/>
48 -->
49 </type>
50
51
52 <!--
53 *************************************
54 * BoundingBox Definition.
55 *************************************
56 -->
57 <struct name="BoundingBox" pack="true">
58
59 <comment>defines the bounding box parameters</comment>
60 <elem name="latmin" type="Tensor.float64" multiplicity="1" >
61 <comment>minimum value of the latitude</comment>
62 </elem>
63 <elem name="latmax" type="Tensor.float64" multiplicity="1" >
64 <comment>maximum value of the latitude</comment>
65 </elem>
66 <elem name="lonmin" type="Tensor.float64" multiplicity="1" >
67 <comment>minimum value of the longitude</comment>
68 </elem>
69 <elem name="lonmax" type="Tensor.float64" multiplicity="1" >
70 <comment>maximum value of the longitude</comment>
71 </elem>
72
73 <elem name="altmin" type="Tensor.float64" multiplicity="1" >
74 <comment>minimum value of the altitude</comment>
75 </elem>
76 <elem name="altmax" type="Tensor.float64" multiplicity="1" >
77 <comment>maximum value of the altitude</comment>
78 </elem>
79
80 </struct>
81
82 <!--
83 *************************************
84 * ContactInfo Definition.
85 *************************************
86 -->
87 <struct name="ContactInfo">
88 <elem name="givenname" multiplicity ="1" type="string" >
89 <comment>Contact given (first) name. Default is empty.</comment>
90 </elem>
91 <elem name="surname" multiplicity ="1" type="string" >
92 <comment>Contact surname (last name). Default is empty.</comment>
93 </elem>
94
95 <elem name="email" multiplicity ="1" type="string" >
96 <comment>Contact email addres. Default is empty.</comment>
97 </elem>
98 <elem name="phone" multiplicity ="1" type="string" >
99 <comment>Contact phone number. Default is empty.</comment>
100 </elem>
101 </struct>
102
103 <!--
104 *************************************
105 * AddressInfo Definition.
106 *************************************
107 -->
108 <struct name="AddressInfo">
109 <elem name="address1" multiplicity ="1" type="string">
110 <comment>First line street address. Default is empty.</comment>
111 </elem>
112 <elem name="address2" multiplicity ="1" type="string">
113 <comment>Second line street address. Default is empty.</comment>
114 </elem>
115 <elem name="City" multiplicity ="1" type="string">
116 <comment>Name of City. Default is empty.</comment>
117 </elem>
118 <elem name="StateRegion" multiplicity ="1" type="string">
119 <comment>State or region. Two character state definitions ok for U.S. addresses. Default is empty.</comment>
120 </elem>
121 <elem name="PostalCode" multiplicity ="1" type="string">
122 <comment>Postal code or zip code. Default is empty.</comment>
123 </elem>
124 <elem name="Country" multiplicity ="1" type="string">
125 <comment>Name of the country. Default is empty.</comment>
126 </elem>
127
128 </struct>
129
130
131 <!--
132 *************************************
133 * SurveyInfo Definition.
134 *************************************
135 -->
136 <struct name="SurveyInfo">
137 <comment>General information about the survey.</comment>
138 <elem name="name" multiplicity ="1" type="string" >
139 <comment>Optional name to describe the identify of the survey</comment>
140 </elem>
141 <elem name="flrmax" multiplicity ="1" type="int8" default ="0">
142 <comment>Optional maximum floor identifier, default is zero meaning the ground floor</comment>
143 </elem>
144 <elem name="flrmin" multiplicity ="1" type="int8" default ="0">
145 <comment>Optional minimum floor identifier, default is zero meaning the ground floor</comment>
146 </elem>
147 <elem name="appid" multiplicity ="1" type="string" >
148 <comment>Application identifier used to collect the survey data. Default is empty "".</comment>
149 </elem>
150 <elem name="appver" multiplicity ="1" type="string" >
151 <comment>Application version used to collect the survey data. Default is empty "".</comment>
152 </elem>
153 <elem name="createdate" type="datetime" multiplicity="1">
154 <comment>Date and time the survey was created or conducted.</comment>
155 </elem>
156 <elem name="contact" multiplicity ="0..1" type="ContactInfo" >
157 <comment>Optional contact information.</comment>
158 </elem>
159 <elem name="address" multiplicity ="0..1" type="AddressInfo" >
160 <comment>Optional address information.</comment>
161 </elem>
162 <elem name="datestart" type="datetime" multiplicity="0..1">
163 <comment>Date and time of when this survey is valid. Do not define if unknown.</comment>
164 </elem>
165 <elem name="dateend" type="datetime" multiplicity="0..1">
166 <comment>Last date and time of when this survey is valid. Do not define if unknown.</comment>
167 </elem>
168 </struct>
169
170 <!--
171 *************************************
172 * PointOfInterest Definition.
173 *************************************
174 -->
175 <struct name="PointOfInterest">
176 <elem name="name" multiplicity ="1" type="string">
177 <comment>Name of the point of interest.</comment>
178 </elem>
179 <elem name="floor" multiplicity ="1" type="int16" default ="0">
180 <comment>Optional floor identifier, default is zero meaning the ground floor</comment>
181 </elem>
182 <elem name="description" multiplicity ="1" type="string">
183 <comment>Other information describing the point of interest.</comment>
184 </elem>
185 <elem name="location" multiplicity="1" type="Shape" polymorphic="true" >
186 <comment>
187 Location of the POI. Polymorphic type, see specializationsfrom Shape for details.
188 </comment>
189 </elem>
190 <elem name="confidence" type="float32" multiplicity="1">
191 <comment>Confidence of position shape. Valid range is 0.0 to 1.0</comment>
192 </elem>
193 <elem name="address" multiplicity ="0..1" type="AddressInfo" >
194 <comment>Optional address information.</comment>
195 </elem>
196 <elem name="contact" multiplicity ="0..1" type="ContactInfo" >
197 <comment>Optional contact information.</comment>
198 </elem>
199 </struct>
200
201 <!--
202 *************************************
203 * SurveyRecord Definition.
204 *************************************
205 -->
206 <struct name="SurveyRecord" >
207 <comment>A Survey Record.</comment>
208 <elem name="state" multiplicity="1" type="StateInfo">
209 <comment>
210 Required device position and other state information. At least one of
211 observations or state is required, otherwise there is insufficient data to process.
212 </comment>
213 </elem>
214
215 <elem name="floor" multiplicity="1" type ="int8" default="0">
216 <comment>The floor number of this scan</comment>
217 </elem>
218 <elem name="observations" multiplicity="1" type="ObservationSet" >
219 <comment>
220 Optional Set of observation data encoded in the format specified by encObs.\n
221 At least one of observations or state is required,
222 otherwise there is insufficient data to process.
223 </comment>
224 </elem>
225 </struct>
226
227 <!--
228 *************************************
229 * SurveyData Definition.
230 *************************************
231 -->
232 <struct name ="SurveyData">
233
234 <elem name ="surveyid" type="Tensor.UUID" multiplicity="1" >
235 <comment>Identifies the unique id of the survey</comment>
236 </elem>
237
238 <elem name ="part" type="int32" multiplicity="1" default="0">
239 <comment>Zero based part index of survey indicating data is in parts.</comment>
240 </elem>
241
242 <elem name ="type" type="uri" multiplcity="1">
243 <comment>Type uri, provides information on the type of survey. This can indicate a variety of things and is used for search.</comment>
244 </elem>
245
246 <elem name ="source" type="uri" multiplcity="1">
247 <comment>Source uri, provides information on how survey data was sourced, potentially ownership.</comment>
248 </elem>
249
250 <elem name ="veracity" type="float32" multiplcity="1">
251 <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>
252 </elem>
253
254
255 <elem name="info" multiplicity="1" type="SurveyInfo">
256 <comment>
257 Optional survey information.
258 </comment>
259 </elem>
260
261 <elem name="records" multiplicity="0..*" type="SurveyRecord">
262 <comment>
263 Survey record(s) collected by the survey.
264 </comment>
265 </elem>
266
267 <elem name="pois" multiplicity="0..*" type="PointOfInterest">
268 <comment>
269 Points of interest collected by the survey.
270 </comment>
271 </elem>
272
273 </struct>
274
275 </namespace>
276 </specification>
1 <?xml version="1.0" encoding="UTF-8" ?>
2
3 <specification xmlns="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
4 xmlns:xid="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
5 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6 xsi:schemaLocation="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd XtensibleInterfaceDefinition.xsd"
7 identity="ReferenceData.xid.xml">
8 <title>SLAM Tile reference data</title>
9 <comment>This file defines the SLAM tile refeence definitions and related data types.</comment>
10
11 <!-- Include all known definitions -->
12 <import ref="https://xid.location.studio/Tensor/V1.0.0/Definitions.xid.xml" local="Definitions.xid.xml" />
13 <import ref="https://xid.location.studio/HPE/V1.1.1/HpeCore.xid.xml" local="HpeCore.xid.xml" />
14 <import ref="https://xid.location.studio/HPE/CommonDefs/V1.1.1/HpeGnss.xid.xml" local="HpeGnss.xid.xml" />
15 <import ref="https://xid.location.studio/HPE/CommonDefs/V1.1.1/HpeCellular.xid.xml" local="HpeCellular.xid.xml" />
16 <import ref="https://xid.location.studio/HPE/CommonDefs/V1.1.1/HpeWiFi.xid.xml" local="HpeWiFi.xid.xml" />
17 <import ref="https://xid.location.studio/ILP/SLAM/V1.0.0_alpha/CommonDefs.xid" local="SLAM/Commondefs.xid.xml" />
18
19 <namespace name="SLAM">
20
21 <using namespace="HPE"/>
22 <using namespace="Tensor"/>
23 <using namespace="HPE.WiFi"/>
24 <using namespace="HPE.Cellular"/>
25
26 <enum name="RefPointValidStatus" type="Tensor.int8" default="Unknown">
27 <comment>Reference Validity status.</comment>
28 <literal name="Unknown" value="0"/>
29 <literal name="valid" value="1"/>
30 <literal name="quarantined" value ="2"/>
31 <literal name="invalid" value="3"/>
32 </enum>
33
34 <enum name="RefPointSyncStatus" type="Tensor.int8" default ="sync_required">
35 <comment>synchronization status of the reference point</comment>
36 <literal name="sync_required" value="0"/>
37 <literal name="in_sync" value="1"/>
38 </enum>
39
40 <enum name="RefPointUpdateStatus" type="Tensor.int8" default ="updated">
41 <comment>update status of the reference point</comment>
42 <literal name="updated" value="0"/>
43 <literal name="update_required" value="1"/>
44 </enum>
45
46 <enum name="RefPointType" type="Tensor.int8" default="undefined">
47 <comment>Specifies the format of the Reference data.</comment>
48 <literal name="undefined" value="0"/>
49 <literal name="RF" value="1"/>
50 <literal name="Cellular" value="2"/>
51 <literal name="Wifi" value="3"/>
52 <literal name="Bluetooth" value="4"/>
53 <literal name="GenericRF" value="5"/>
54 </enum>
55
56 <!--
57 <type name="HashKey" size="16">
58 <comment>16 byte UUID</comment>
59 <lang name="c" type="UUID" include="Tensor/CXMF/uuid.h"/>
60 <lang name="cpp" type="::Tensor::Types::UUID" include="Tensor/Types/uuid.h"/>
61 <lang name="java" type="XidUuid" include="com.comtechtel.tensor.xid.XidUuid"/>
62 <lang name="node" type="XidUuid"/>
63 </type>
64 -->
65
66 <struct name="RefPoint" >
67 <comment>defines the base structure of a reference point</comment>
68 <elem name="type" type="RefPointType" multiplicity="1" rttd="true">
69 <comment>Identifies the format/type of the reference data.</comment>
70 </elem>
71
72 <elem name="id" multiplicity="1" type="HashKey" >
73 <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>
74 </elem>
75
76 <elem name="position" multiplicity="0..1" type="Spheroid" >
77 <comment>the estimated position of the access point</comment>
78 </elem>
79
80 <elem name ="veracity" multiplicity="1" type="Tensor.float32">
81 <comment>The veracity of the reference point, 1= 100% trusted and validated, 0% not trusted at all.</comment>
82 </elem>
83
84 <elem name="validStatus" multiplicity="1" type="RefPointValidStatus">
85 <comment>status of the reference point</comment>
86 </elem>
87 <elem name="validbegin" type="datetime" multiplicity="1">
88 <comment>time stamp of the begining of the valid period</comment>
89 </elem>
90 <elem name="validend" type="datetime" multiplicity="1">
91 <comment>time stamp of the ending of the valid period</comment>
92 </elem>
93 <elem name ="data" type="Tensor.json" multiplicity="0..1">
94 <comment>json formatted data specific to the device</comment>
95 </elem>
96 <elem name="floor" multiplicity ="0..1" type="int8" >
97 <comment>Optional floor identifier, default is zero meaning the ground floor</comment>
98 </elem>
99
100 </struct>
101
102 <!-- ReferencePoint -->
103 <struct name="RFRefPoint" type="RefPoint" rttkey="SLAM.RefPointType.RF">
104
105 <comment>structure defines a reference Point.</comment>
106 <elem name="txpwr" type="Tensor.float32" multiplicity="1">
107 <comment>transmission power</comment>
108 </elem>
109 <elem name="attenuation" type="Tensor.float32" multiplicity="1">
110 <comment> attenuation exponent</comment>
111 </elem>
112 <elem name="freq" type="Tensor.float32" multiplicity="1">
113 <comment> radio frequency of the reference in Hz</comment>
114 </elem>
115
116 </struct>
117
118 <struct name="WifiRefPoint" type="RFRefPoint" rttkey="SLAM.RefPointType.Wifi">
119
120 <elem name="ssid" type="HPE.WiFi.SSID" multiplicity="1">
121 <comment>ssid of the access point</comment>
122 </elem>
123 <elem name ="macaddr" type="MacAddress48" multiplicity="1">
124 <comment>the mac address of the access point</comment>
125 </elem>
126
127 </struct>
128
129 <struct name="BluetoothRefPoint" type="RFRefPoint" rttkey="SLAM.RefPointType.Bluetooth">
130
131 <elem name="ssid" type="Tensor.string" multiplicity="1">
132 <comment>ssid of the access point</comment>
133 </elem>
134 <elem name ="macaddr" type="Tensor.string" multiplicity="1">
135 <comment>the mac address of the access point</comment>
136 </elem>
137
138 </struct>
139
140 <struct name="CellularRefPoint" type="RFRefPoint" rttkey="SLAM.RefPointType.Cellular">
141
142 <elem name ="cid" type="CellId" multiplicity="1"/>
143 <elem name ="antenna" type="AntennaSpec" multiplicity="1"/>
144 </struct>
145
146 <struct name="GenericRFRefPoint" type="RFRefPoint" rttkey="SLAM.RefPointType.GenericRF">
147 <elem name="uri" type="Tensor.uri" multiplicity="1">
148 <comment>identifier that determines the genericRF type and unique identifier. encoded into the hash key</comment>
149 </elem>
150
151 </struct>
152
153 <struct name="RefPointSet">
154 <comment>a set of reference points</comment>
155 <elem name="refpoints" type="RefPoint" multiplicity="0..*" polymorphic="true"/>
156
157 </struct>
158
159 </namespace>
160 </specification>
1 <?xml version="1.0" encoding="UTF-8" ?>
2
3 <specification xmlns="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
4 xmlns:xid="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
5 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6 xsi:schemaLocation="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd XtensibleInterfaceDefinition.xsd"
7 identity="SurveyApi.xid.xml">
8 <title>SLAM Survey API Specifications</title>
9 <comment>
10 This file defines the SLAM survey API. The survey API is used to bulk load high-definition survey
11 data from one or more probe data sets.
12 </comment>
13
14 <!-- Include all known definitions -->
15 <import ref="https://xid.location.studio/Tensor/V1.0.0/Definitions.xid.xml" local="Definitions.xid.xml" />
16 <import ref="https://xid.location.studio/HPE/V1.1.1/HpeCore.xid.xml" local="HpeCore.xid.xml" />
17 <import ref="https://xid.location.studio/HPE/CommonDefs/V1.1.1/HpeGnss.xid.xml" local="HpeGnss.xid.xml" />
18 <import ref="https://xid.location.studio/HPE/CommonDefs/V1.1.1/HpeCellular.xid.xml" local="HpeCellular.xid.xml" />
19 <import ref="https://xid.location.studio/HPE/CommonDefs/V1.1.1/HpeWiFi.xid.xml" local="HpeWiFi.xid.xml" />
20 <import ref="https://xid.location.studio/ILP/V1.1.1/ApiBase.xid" local="SLAM/ApiBase.xid" />
21 <import ref="https://xid.location.studio/ILP/SLAM/V1.0.0_alpha/CommonDefs.xid" local="SLAM/Commondefs.xid.xml" />
22 <import ref="https://xid.location.studio/ILP/SLAM/V1.0.0_alpha/TileDefinitions.xid" local="SLAM/TileDefinitions.xid.xml" />
23
24 <namespace name="SLAM">
25 <using namespace="HPE"/>
26 <using namespace="Tensor"/>
27
28
29 <!--
30 *******************************************************
31 Survey Submission API
32 *******************************************************
33 -->
34 <interface name="Survey">
35 <comment>Interface for submitting data to ILP. </comment>
36
37 <operation name="Submit">
38 <comment>
39 Interaction submits Survey data.
40 </comment>
41 <input name="input" type="InputBase" sid="0x1030">
42 <elem name="survey" multiplicity="1" type="SurveyData"></elem>
43 </input>
44 <output name="output" type="OutputBase" sid="0x1031">
45 <elem name="id" multiplicity="1" type="Tensor.UUID"/>
46 </output>
47 </operation>
48
49 <operation name="Download">
50 <comment>Downloads survey data given id.</comment>
51 <input name="input" type="InputBase" sid="0x1032">
52 <elem name="id" multiplicity="1" type="Tensor.UUID"/>
53 </input>
54 <output name="output" type="OutputBase" sid="0x1033">
55 <elem name="survey" multiplicity="1" type="SurveyData"></elem>
56 </output>
57 </operation>
58 </interface>
59
60 </namespace>
61 </specification>
1 <?xml version="1.0" encoding="UTF-8" ?>
2
3 <specification xmlns="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
4 xmlns:xid="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
5 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6 xsi:schemaLocation="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd XtensibleInterfaceDefinition.xsd"
7 identity="TileDefinitions.xid.xml">
8 <title>SLAM Tile Definitions</title>
9 <comment>This file defines the SLAM tile definitions and related data types.</comment>
10
11 <!-- Include all known definitions -->
12 <import ref="https://xid.location.studio/Tensor/V1.0.0/Definitions.xid.xml" local="Definitions.xid.xml" />
13 <import ref="https://xid.location.studio/HPE/V1.1.1/HpeCore.xid.xml" local="HpeCore.xid.xml" />
14 <import ref="https://xid.location.studio/ILP/SLAM/V1.0.0_alpha/CommonDefs.xid" local="SLAM/Commondefs.xid.xml" />
15
16 <namespace name="SLAM">
17
18 <using namespace="HPE"/>
19 <using namespace="Tensor"/>
20
21 <!--
22 *************************************
23 * Enumerations
24 *************************************
25 -->
26 <enum name="TileType" type="Tensor.int8" default="Unknown">
27 <comment>Tile data processing status.</comment>
28 <literal name="Unknown" value="0"/>
29 <literal name="SparseMeasurementTile" value="1"/>
30 <literal name="GridModelTile" value="2"/>
31 <literal name="AggregateTile" value="3"/>
32 </enum>
33
34
35 <enum name="TileStatus" type="Tensor.int8" default="Unknown">
36 <comment>Tile data processing status.</comment>
37 <literal name="Unknown" value="0"/>
38 <literal name="Unprocessed" value="1"/>
39 <literal name="Processed" value="2"/>
40 </enum>
41
42 <enum name="ComputationalMethod" type="Tensor.int8" default="Unknown">
43 <comment>Data computational method associated with data contained within the tile.</comment>
44 <literal name="Unknown" value="0"/>
45 <literal name="GridSmoothing" value="1"/>
46 <literal name="GaussianProcess" value="2"/>
47 </enum>
48
49 <!--
50 *************************************
51 * Tile definition.
52 *************************************
53 -->
54 <struct name="Tile" >
55 <comment>defines the base structure of a tile</comment>
56
57 <elem name="type" type="TileType" multiplicity="1" rttd="true">
58 <comment>identify the type of the tile</comment>
59 </elem>
60
61 <elem name ="tileid" type="Tensor.UUID" multiplicity="1" >
62 <comment>Identifies the unique id of the tile</comment>
63 </elem>
64
65 <elem name="createdate" type="datetime" multiplicity="1">
66 <comment>time stamp of tile creation</comment>
67 </elem>
68
69 <elem name="lastmodified" type="datetime" multiplicity="1">
70 <comment>time stamp of last modification</comment>
71 </elem>
72
73
74 <elem name="bounding" multiplicity="1" type="BoundingBox" >
75 <comment> Bounding of the tile</comment>
76 </elem>
77
78 <elem name="floormin" type="int8" multiplicity="1" >
79 <comment>Identifies the minimum floor number</comment>
80 </elem>
81
82 <elem name="floormax" type="int8" multiplicity="1" >
83 <comment>Identifies the maximum floor number</comment>
84 </elem>
85
86
87 <elem name="revision" type="Tensor.uint32" multiplicity="1">
88 <comment>revision number</comment>
89 </elem>
90
91 <elem name="datatype" multiplicity="1" type="ObservationType" >
92 <comment>The type of the observation data within the tile .</comment>
93 </elem>
94
95 <elem name="status" type="TileStatus" multiplicity="1" >
96 <comment>Identifies the data processing status within the tile</comment>
97 </elem>
98
99 <elem name="method" type="ComputationalMethod" multiplicity="1" >
100 <comment>Identifies the data processing method within the tile</comment>
101 </elem>
102
103 <elem name="source" type="Tensor.uri" multiplicity="1">
104 <comment>URI identifies the source of the information provided.</comment>
105 </elem>
106
107 <elem name="label" type="Tensor.string" multiplicity="0..1" >
108 <comment>label of the tile</comment>
109 </elem>
110 <elem name="validbegin" type="datetime" multiplicity="1">
111 <comment>time stamp of tile creation</comment>
112 </elem>
113
114 <elem name="validend" type="datetime" multiplicity="1">
115 <comment>time stamp of tile creation</comment>
116 </elem>
117
118 </struct>
119
120 <!--
121 *************************************
122 * SparseMeasurementTile definition.
123 *************************************
124 -->
125 <struct name="SparseMeasurementTile" type="Tile" rttkey="SLAM.TileType.SparseMeasurementTile">
126 <comment>The tile is the unit of management for RF reference data, which can overlap, intersect, or be disjoint with other tiles</comment>
127
128 <!-- Contained Type Definitions -->
129 <struct name="RfData" pack="true">
130 <comment>Each RF data value is an observed/estimated value of a particular RF signal reference and at a particular position.</comment>
131 <elem name="idxPos" type ="Tensor.uint16" multiplicity="1">
132 <comment>index of the Position element.</comment>
133 </elem>
134 <elem name="value" type="Tensor.byte" multiplicity="1">
135 <comment>The RF signal strengh value in scaled units where unscaled scaled value = (value + dataOffset)/dataScale.</comment>
136 </elem>
137 <elem name="reserved" type="Tensor.byte" multiplicity="1">
138 <comment>Reserved storage space.</comment>
139 </elem>
140 </struct>
141
142 <struct name="Position" pack="true">
143 <comment>Each position element represents the physical location of one or more measurements</comment>
144 <elem name="x" type="Tensor.int24" multiplicity="1">
145 <comment>x component of the location of the tile data record</comment>
146 </elem>
147 <elem name="y" type="Tensor.int24" multiplicity="1">
148 <comment>y component of the location of the tile data record</comment>
149 </elem>
150 <elem name="z" type="Tensor.int24" multiplicity="1">
151 <comment>z component of the location of the tile data record</comment>
152 </elem>
153 <elem name="ux" type="Tensor.uint8" multiplicity="1">
154 <comment>uncertainty of x component of the locations</comment>
155 </elem>
156 <elem name="uy" type="Tensor.uint8" multiplicity="1">
157 <comment>uncertainty of y component of the locations</comment>
158 </elem>
159 <elem name="uz" type="Tensor.uint8" multiplicity="1">
160 <comment>uncertainty of z component of the locations</comment>
161 </elem>
162 <elem name="floor" type="Tensor.int8" multiplicity="1" default="0">
163 <comment> the floor number of the measurement record</comment>
164 </elem>
165
166 </struct>
167
168 <struct name="RfReference" pack="true">
169 <comment>Each RfRerence element identifies a specific RF Reference Point</comment>
170 <elem name="idRef" type="HashKey" multiplicity="1">
171 <comment>UUID of the reference point</comment>
172 </elem>
173 <elem name="start" type="Tensor.uint16" multiplicity="1">
174 <comment>start index in the RfData array</comment>
175 </elem>
176 <elem name="end" type="Tensor.uint16" multiplicity="1">
177 <comment>end index in the RFData array.</comment>
178 </elem>
179 </struct>
180
181 <array name="RfReferenceArray" type="RfReference"/>
182 <array name="RfDataArray" type="RfData"/>
183 <array name="PositionArray" type="Position"/>
184
185 <!-- Structure Element Definitions -->
186
187 <elem name="reframe" type="CoordRefFrameType" multiplicity="1">
188 <comment>The type of coordinate frame of the relative locations in the records.</comment>
189 </elem>
190
191 <elem name="posRef" type="Point3D" multiplicity="1">
192 <comment>
193 The reference position of the tile. In the specified coordinate system. Typically
194 WGS84.
195 </comment>
196 </elem>
197
198 <elem name="posUncertScale" type="Tensor.float32" multiplicity="1" default="1">
199 <comment>The scale of the location uncertainty in Position data.</comment>
200 </elem>
201
202 <elem name="dataScale" type="Tensor.float32" multiplicity="1" default="1">
203 <comment>The scale of the measurement in measurement record.</comment>
204 </elem>
205
206 <elem name="dataOffset" type="Tensor.float32" multiplicity="1" default="0">
207 <comment>The unscaled offset of the unscaled RfData value.</comment>
208 </elem>
209
210 <elem name="references" type="RfReferenceArray" multiplicity="1"/>
211 <elem name="rfdata" type="RfDataArray" multiplicity="1"/>
212 <elem name="positions" type="PositionArray" multiplicity="1"/>
213 </struct>
214
215 <!--
216 *************************************
217 * TileSet definition.
218 *************************************
219 -->
220 <struct name="TileSet">
221 <comment>A set of tiles in an unpacked list.</comment>
222 <elem name="tiles" type="Tile" multiplicity="0..*" polymorphic="true"/>
223 </struct>
224
225 <!--
226 *************************************
227 * SpatialIndex definition.
228 *************************************
229 -->
230 <struct name="SpatialIndex" >
231 <comment> </comment>
232 <elem name="sourceuri" multiplicity="1" type="Tensor.uri" >
233 <comment> </comment>
234 </elem>
235
236 <elem name="tileid" multiplicity="1" type="Tensor.UUID" >
237 <comment>The UUID of the tile </comment>
238 </elem>
239
240 <elem name="bounding" multiplicity="1" type="BoundingBox" >
241 <comment> Bounding of the tile</comment>
242 </elem>
243
244 <elem name="floormin" type="int8" multiplicity="1" >
245 <comment>Identifies the minimum floor number</comment>
246 </elem>
247
248 <elem name="floormax" type="int8" multiplicity="1" >
249 <comment>Identifies the maximum floor number</comment>
250 </elem>
251
252 <elem name="datatype" multiplicity="1" type="ObservationType" >
253 <comment>The type of the observation data within the tile .</comment>
254 </elem>
255
256 <elem name="createdate" type="datetime" multiplicity="1">
257 <comment>time stamp of tile creation</comment>
258 </elem>
259
260 <elem name="lastmodified" type="datetime" multiplicity="1">
261 <comment>time stamp of last modification</comment>
262 </elem>
263
264 <elem name="validbegin" type="datetime" multiplicity="1">
265 <comment>time stamp of tile creation</comment>
266 </elem>
267
268 <elem name="validend" type="datetime" multiplicity="1">
269 <comment>time stamp of tile creation</comment>
270 </elem>
271
272 </struct>
273
274 <!--
275 *************************************
276 * ElementIndex Definition.
277 *************************************
278 -->
279 <struct name="RefPointIndex" >
280 <comment> </comment>
281
282 <elem name="id" multiplicity="1" type="HashKey" >
283 <comment> </comment>
284 </elem>
285 <elem name="sourceUri" multiplicity="1" type="Tensor.uri" >
286 <comment> </comment>
287 </elem>
288
289 <elem name="type" multiplicity="1" type="RefPointType" >
290 <comment> </comment>
291 </elem>
292
293 <elem name="position" multiplicity="1" type="Spheroid">
294 <comment> coarse location of the tile</comment>
295 </elem>
296
297 <elem name="floor" type="int8" multiplicity="1" >
298 <comment>Identifies the floor number</comment>
299 </elem>
300
301 <elem name="validStatus" type="RefPointValidStatus" multiplicity="1" >
302 <comment>Identifies the status of the validity</comment>
303 </elem>
304
305 <elem name="createdate" type="datetime" multiplicity="1">
306 <comment>time stamp of tile creation</comment>
307 </elem>
308
309 <elem name="lastmodified" type="datetime" multiplicity="1">
310 <comment>time stamp of last modification</comment>
311 </elem>
312
313 </struct>
314
315 </namespace>
316 </specification>
1 <?xml version="1.0" encoding="UTF-8" ?>
2
3 <specification xmlns="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
4 xmlns:xid="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
5 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6 xsi:schemaLocation="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd XtensibleInterfaceDefinition.xsd"
7 identity="TileManagementApi.xid.xml">
8 <title>SLAM Tile Management API Specifications</title>
9 <comment>This file defines the SLAM tile management API.</comment>
10
11 <!-- Include all known definitions -->
12 <import ref="https://xid.location.studio/Tensor/V1.0.0/Definitions.xid.xml" local="Definitions.xid.xml" />
13 <import ref="https://xid.location.studio/HPE/V1.1.1/HpeCore.xid.xml" local="HpeCore.xid.xml" />
14 <import ref="https://xid.location.studio/HPE/CommonDefs/V1.1.1/HpeGnss.xid.xml" local="HpeGnss.xid.xml" />
15 <import ref="https://xid.location.studio/HPE/CommonDefs/V1.1.1/HpeCellular.xid.xml" local="HpeCellular.xid.xml" />
16 <import ref="https://xid.location.studio/HPE/CommonDefs/V1.1.1/HpeWiFi.xid.xml" local="HpeWiFi.xid.xml" />
17 <import ref="https://xid.location.studio/ILP/V1.1.1/ApiBase.xid" local="SLAM/ApiBase.xid" />
18 <import ref="https://xid.location.studio/ILP/SLAM/V1.0.0_alpha/CommonDefs.xid" local="SLAM/Commondefs.xid.xml" />
19 <import ref="https://xid.location.studio/ILP/SLAM/V1.0.0_alpha/ReferenceData.xid" local="SLAM/ReferenceData.xid.xml" />
20 <import ref="https://xid.location.studio/ILP/SLAM/V1.0.0_alpha/TileDefinitions.xid" local="SLAM/TileDefinitions.xid.xml" />
21
22
23 <namespace name="SLAM">
24 <using namespace="HPE"/>
25 <using namespace="Tensor"/>
26
27 <!--
28 *******************************************************
29 Tile Management API
30 *******************************************************
31 -->
32 <interface name="TileManagement">
33 <comment>Interface for submitting a new tile to the DB. </comment>
34 <operation name="DeleteTile">
35 <comment>
36 Interaction to delete a tile.
37 </comment>
38 <input name="input" type="InputBase" sid="0x101b">
39 <comment>defines the input data for DeleteTile operation</comment>
40 <elem name="tileid" type="Tensor.UUID" multiplicity="1" >
41 <comment>element specifies UUID of the the tile</comment>
42 </elem>
43 </input>
44 </operation>
45
46 <operation name="UploadTile">
47
48 <comment>interation to upload a tile</comment>
49 <input name="input" type="InputBase" sid="0x102b">
50 <comment>defines the input data structure for UploadTile operation</comment>
51 <elem name="tile" type="Tile" multiplicity="1">
52 <comment>the tile structure</comment>
53 </elem>
54 </input>
55 </operation>
56
57 <operation name="UpdateTile">
58
59 <comment>interation to update a tile</comment>
60 <input name="input" type="InputBase" sid="0x103b">
61 <comment>defines the input data structure for UpdateTile operation</comment>
62 <elem name="tile" type="Tile" multiplicity="1">
63 <comment>the tile structure</comment>
64 </elem>
65 </input>
66
67 </operation>
68
69 </interface>
70
71 </namespace>
72 </specification>
1 <?xml version="1.0" encoding="UTF-8" ?>
2
3 <specification xmlns="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
4 xmlns:xid="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
5 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6 xsi:schemaLocation="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd XtensibleInterfaceDefinition.xsd"
7 identity="TileServiceApi.xid.xml">
8 <title>Tile Services API Specifications</title>
9 <comment>This file defines the SLAM tile services API.</comment>
10
11 <!-- Include all known definitions -->
12 <import ref="https://xid.location.studio/Tensor/V1.0.0/Definitions.xid.xml" local="Definitions.xid.xml" />
13 <import ref="https://xid.location.studio/HPE/V1.1.1/HpeCore.xid.xml" local="HpeCore.xid.xml" />
14 <import ref="https://xid.location.studio/HPE/CommonDefs/V1.1.1/HpeGnss.xid.xml" local="HpeGnss.xid.xml" />
15 <import ref="https://xid.location.studio/HPE/CommonDefs/V1.1.1/HpeCellular.xid.xml" local="HpeCellular.xid.xml" />
16 <import ref="https://xid.location.studio/HPE/CommonDefs/V1.1.1/HpeWiFi.xid.xml" local="HpeWiFi.xid.xml" />
17 <import ref="https://xid.location.studio/ILP/V1.1.1/ApiBase.xid" local="SLAM/ApiBase.xid" />
18 <import ref="https://xid.location.studio/ILP/SLAM/V1.0.0_alpha/CommonDefs.xid" local="SLAM/Commondefs.xid.xml" />
19 <import ref="https://xid.location.studio/ILP/SLAM/V1.0.0_alpha/TileDefinitions.xid" local="SLAM/TileDefinitions.xid.xml" />
20
21
22 <namespace name="SLAM">
23 <using namespace="HPE"/>
24 <using namespace="Tensor"/>
25
26 <interface name="TileService">
27 <comment>Interface for tile service. </comment>
28
29 <!-- DownloadTile operation-->
30 <operation name="DownloadTile">
31 <comment>Interaction download a tile</comment>
32 <input name="input" type="InputBase" sid="0x101a">
33 <comment>defines the input data structure for DownloadTile operation </comment>
34 <elem name="tileid" type="Tensor.UUID" multiplicity="1" >
35 <comment>element specifies UUID of the the tile</comment>
36 </elem>
37 </input>
38
39 <output name="output" type="OutputBase" sid="0x102a">
40 <comment>defines the output data for DownloadTile operation</comment>
41 <elem name="tile" type="Tile" multiplicity="0..1" >
42 <comment>element defines the downloaded tile</comment>
43 </elem>
44 </output>
45
46 </operation>
47
48 <!-- FindTilesByBoundingbox operation -->
49 <operation name="FindTilesByBoundingbox">
50 <comment>find tiles</comment>
51 <input name="input" type="InputBase" sid="0x103a">
52 <comment>defines the input data for FindTilesByBoundingbox operation </comment>
53 <elem name="bounding" type="BoundingBox" multiplicity="1">
54 <comment>the bounding box that intersect with tiles</comment>
55 </elem>
56 <elem name="floor" type="Tensor.int16" multiplicity="0..1">
57 <comment>optional floor number for more precise search</comment>
58 </elem>
59 </input>
60
61 <output name="output" type="OutputBase" sid="0x104a">
62 <comment>defines the output data for FindTilesByBoundingbox operation</comment>
63 <elem name="tiles" type="TileSet" multiplicity="0..1">
64 <comment>a set of tiles as the result of the FindTilesByPos operation</comment>
65 </elem>
66 </output>
67 </operation>
68
69 <!-- FindTilesByRefId operation -->
70 <operation name="FindTilesByRefId">
71 <comment>find tiles</comment>
72 <input name="input" type="InputBase" sid="0x103a">
73 <comment>defines the input data for FindTilesByRefId operation </comment>
74 <elem name="refids" type="Tensor.string" multiplicity="1..*">
75 <comment>the bounding box that intersect with tiles</comment>
76 </elem>
77 <elem name="floor" type="Tensor.int16" multiplicity="0..1">
78 <comment>optional floor number for more precise search</comment>
79 </elem>
80 <elem name="signaltype" type="ObservationType" multiplicity="1">
81 <comment>the radio type of the reference points</comment>
82 </elem>
83 </input>
84
85 <output name="output" type="OutputBase" sid="0x104a">
86 <comment>defines the output data for FindTilesByRefId operation</comment>
87 <elem name="tiles" type="TileSet" multiplicity="0..1">
88 <comment>a set of tiles as the result of the FindTilesByPos operation</comment>
89 </elem>
90 </output>
91 </operation>
92
93 <!-- EstimatePosition operation -->
94 <operation name="EstimatePosition">
95 <comment> estimate posiion from a set of Wifi rssi observations</comment>
96 <input name="input" type="InputBase" sid="0x106a">
97 <comment>input for EstimatePosition operation</comment>
98 <elem name="observations" type="ObservationSet" multiplicity="1">
99 <comment>a set of observed rssi values</comment>
100 </elem>
101 </input>
102
103 <output name="output" type="OutputBase" sid="0x107a">
104 <comment>output for EstimatePosition operation</comment>
105 <elem name="pos" type="Shape" multiplicity="0..*" polymorphic="true">
106 <comment>approximate position of the tile</comment>
107 </elem>
108
109 </output>
110 </operation>
111
112 </interface>
113
114 </namespace>
115 </specification>
1 <?xml version="1.0" encoding="UTF-8" ?>
2
3 <specification xmlns="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
4 xmlns:xid="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
5 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6 xsi:schemaLocation="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd XtensibleInterfaceDefinition.xsd"
7 identity="ApiBase.xid.xml">
8
9 <title>ILP Services API Base Definitions</title>
10 <comment>
11 This document defines the common types API service interface for the ILP and Simultaneous Localization
12 and Mapping (SLAM) services definitions. The service provides access to ILP and SLAM technologies for position
13 calculation for devices and services communicating via standard
14 IP based protocols. The API currently supports XMF and JSON wire formats.
15 </comment>
16
17 <import ref="https://xid.location.studio/Tensor/V1.0.0/Definitions.xid.xml" local="Definitions.xid.xml" />
18 <import ref="https://xid.location.studio/HPE/V1.1.1/HpeCore.xid.xml" local="HpeCore.xid.xml" />
19 <import ref="https://xid.location.studio/HPE/CommonDefs/V1.1.1/HpeGnss.xid.xml" local="HpeGnss.xid.xml" />
20 <import ref="https://xid.location.studio/HPE/CommonDefs/V1.1.1/HpeCellular.xid.xml" local="HpeCellular.xid.xml" />
21 <import ref="https://xid.location.studio/HPE/CommonDefs/V1.1.1/HpeWiFi.xid.xml" local="HpeWiFi.xid.xml" />
22
23 <namespace name="ILP">
24 <using namespace="HPE"/>
25 <using namespace="Tensor"/>
26
27
28 <!--
29 *******************************
30 *InputBase Type Definition
31 *******************************
32 -->
33 <struct name="InputBase" >
34 <comment>Base input fields for operations supporting asynchronous transaction information.</comment>
35 <elem name="directive" multiplicity="0..*" type="NameValue">
36 <comment>
37 A set of directives to influence processing.
38 </comment>
39 </elem>
40
41 <elem name="devid" multiplicity="1" type="string">
42 <comment>
43 Required device identifier, that provides a consistent multi-transaction identifier
44 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
45 in the system logs, providing traceability. Identifier should be unique.
46 </comment>
47 </elem>
48
49 <elem name="etid" multiplicity="0..1" type="string">
50 <comment>
51 Optional external transaction identifier for the caller to uniquely identify and track
52 the transaction and corresponding results. These identifiers will appear in the
53 ILP system logs for traceability analysis. The format of the transaction identifier is up to the caller
54 and can be anything: e.g. [uuid], [id1.subid0], [numerical], etc. This data is never interpreted by
55 the ILP system.
56 </comment>
57 </elem>
58 </struct>
59
60
61 <!--
62 *******************************
63 *OutputBase Type Definition
64 *******************************
65 -->
66 <struct name="OutputBase" >
67 <comment>Base output fields common to operations supporting asynchronous returning transaction information.</comment>
68 <elem name="devid" multiplicity="0..1" type="string">
69 <comment>
70 Device identifier provided at operation input, provides a consistent identifier
71 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
72 in the system logs, providing traceability.
73 </comment>
74 </elem>
75
76 <elem name="etid" multiplicity="0..1" type="string">
77 <comment>
78 Optional external transaction identifier for the caller to uniquely identify and track
79 the transaction and corresponding results. These identifiers appear in the
80 ILP system logs for traceability analysis. The format of the transaction identifier is up to the caller
81 and can be anything: e.g. [uuid], [id1.subid0], [numerical], etc. This data is never interpreted by
82 the ILP system.
83 </comment>
84
85 </elem>
86
87 <elem name="resultcode" type="ResultCode" multiplicity="1" >
88 <comment>Result of the operation.</comment>
89 </elem>
90
91 <elem name="errinfo" type="Tensor.string" multiplicity="0..1">
92 <comment>Error information if result was not success.</comment>
93 </elem>
94
95 </struct>
96
97 </namespace>
98 </specification>
1 <?xml version="1.0" encoding="UTF-8" ?>
2
3 <specification xmlns="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
4 xmlns:xid="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
5 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6 xsi:schemaLocation="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd XtensibleInterfaceDefinition.xsd"
7 identity="IlpApiBase.xid.xml">
8
9 <title>ILP Hybrid Positioning Services API Base Definitions</title>
10 <comment>
11 This document defines the common types API service interface for the IoT Location Platform (ILP).
12 The service provides hybrid position calculation for devices and services communicating
13 via standard IP based protocols. The API currently supports XMF and JSON wire formats.
14 </comment>
15
16 <import ref="https://xid.location.studio/Tensor/V1.0.0/Definitions.xid.xml" local="Definitions.xid.xml" />
17 <import ref="https://xid.location.studio/HPE/V1.1.1/HpeCore.xid.xml" local="HpeCore.xid.xml" />
18 <import ref="https://xid.location.studio/HPE/CommonDefs/V1.1.1/HpeGnss.xid.xml" local="HpeGnss.xid.xml" />
19 <import ref="https://xid.location.studio/HPE/CommonDefs/V1.1.1/HpeCellular.xid.xml" local="HpeCellular.xid.xml" />
20 <import ref="https://xid.location.studio/HPE/CommonDefs/V1.1.1/HpeWiFi.xid.xml" local="HpeWiFi.xid.xml" />
21
22 <namespace name="ILP">
23 <using namespace="HPE"/>
24 <using namespace="Tensor"/>
25
26
27 <!--
28 *******************************
29 *IlpInputBase Type Definition
30 *******************************
31 -->
32 <struct name="IlpInputBase" >
33 <comment>Base input fields for operations supporting asynchronous transaction information.</comment>
34 <elem name="idDevice" multiplicity="1" type="string">
35 <comment>
36 Required device identifier, that provides a consistent multi-transaction identifier
37 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
38 in the system logs, providing traceability. Identifier should be unique.
39 </comment>
40 </elem>
41
42 <elem name="idTransaction" multiplicity="0..1" type="string">
43 <comment>
44 Optional transaction identifier for the caller to uniquely identify and track
45 the transaction and corresponding results. These identifiers will appear in the
46 ILP system logs for traceability analysis. The format of the transaction identifier is up to the caller
47 and can be anything: e.g. [uuid], [id1.subid0], [numerical], etc. This data is never interpreted by
48 the ILP system.
49 </comment>
50 </elem>
51
52 <!-- THis is future, don't uncomment until design issues resolved. M. Mathews/s. Hines 161130
53 <elem name="urlCallback" multiplicity="0..1" type="string">
54 <tag key="life-cycle" value="future" />
55 <comment>
56 Optional asynchronous callback used to callback client servers during long operations. Not all
57 interfaces may support this.
58 </comment>
59 </elem>
60 -->
61 </struct>
62
63
64 <!--
65 *******************************
66 *IlpOutputBase Type Definition
67 *******************************
68 -->
69 <struct name="IlpOutputBase" >
70 <comment>Base output fields common to operations supporting asynchronous returning transaction information.</comment>
71 <elem name="idDevice" multiplicity="1" type="string">
72 <comment>
73 Device identifier provided at operation input, provides a consistent identifier
74 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
75 in the system logs, providing traceability.
76 </comment>
77 </elem>
78
79 <elem name="idTransaction" multiplicity="0..1" type="string">
80 <comment>
81 Optional transaction identifier for the caller to uniquely identify and track
82 the transaction and corresponding results. These identifiers appear in the
83 ILP system logs for traceability analysis. The format of the transaction identifier is up to the caller
84 and can be anything: e.g. [uuid], [id1.subid0], [numerical], etc. This data is never interpreted by
85 the ILP system.
86 </comment>
87 </elem>
88
89 <!-- THis is future, don't uncomment until design issues resolved. M. Mathews/s. Hine 161130
90 <elem name="urlCallback" multiplicity="0..1" type="string">
91 <tag key="life-cycle" value="future" />
92 <comment>
93 Optional asynchronous callback used to callback client servers during long operations. Not all
94 interfaces may support this.
95 </comment>
96 </elem>
97 -->
98 </struct>
99
100
101 </namespace>
102 </specification>
1 <?xml version="1.0" encoding="UTF-8" ?>
2
3 <specification xmlns="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
4 xmlns:xid="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
5 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6 xsi:schemaLocation="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd XtensibleInterfaceDefinition.xsd"
7 identity="IlpAssistanceApi.xid.xml">
8 <title>ILP Assistance Services</title>
9 <comment>
10 This document defines the positioning assistance service interface for the IoT Location Platform (ILP).
11 The service provides assistance data supporting GNSS and other positioning technologies for devices
12 and services communicating via standard IP based protocols. The API currently supports XMF and JSON wire formats.
13 </comment>
14
15 <import ref="https://xid.location.studio/Tensor/V1.0.0/Definitions.xid.xml" local="Definitions.xid.xml" />
16 <import ref="https://xid.location.studio/HPE/V1.1.1/HpeCore.xid.xml" local="HpeCore.xid.xml" />
17 <import ref="https://xid.location.studio/HPE/CommonDefs/V1.1.1/HpeGnss.xid.xml" local="HpeGnss.xid.xml" />
18 <import ref="https://xid.location.studio/ILP/V1.1.1/IlpApiBase.xid.xml" local="IlpApiBase.xid.xml" />
19
20 <namespace name="ILP">
21 <using namespace="HPE"/>
22 <using namespace="Tensor"/>
23
24 <!--
25 *******************************************************
26 GnssData input/ouput structure declarations.
27 *******************************************************
28 -->
29 <!-- GnssDataInput structure -->
30 <struct name="GnssDataInput" type="IlpInputBase">
31 <comment>ILP.Assistance.GnssData input request data.</comment>
32
33 <!-- Define internal data structure -->
34 <struct name="RequestSpec">
35 <comment>Specifies the data request for each constellation type.</comment>
36 <elem name ="constellation" type="HPE.Gnss.Constellation" multiplicity="1">
37 <comment>Specifies the constellation of interest.</comment>
38 </elem>
39 <elem name="directive" multiplicity="0..*" type="NameValue">
40 <comment>
41 A set of directives to influence processing.
42 </comment>
43 </elem>
44 <elem name="minId" multiplicity="0..1" type ="uint8" default="0">
45 <comment>
46 Specifies the minimum satellite ID to return constellation data.
47 </comment>
48 </elem>
49 <elem name="maxId" multiplicity="0..1" type ="uint8" default="255">
50 <comment>
51 Specifies the maximum satellite ID to return constellation data.
52 </comment>
53 </elem>
54 <elem name="AssistData" multiplicity="1..*" type ="HPE.Gnss.AssistanceData">
55 <comment>
56 Specifies the types of constellation assistance data to return.
57 </comment>
58 </elem>
59 </struct>
60
61 <!-- Define input elements.-->
62 <elem name="epoch" multiplicity="0..1" type="datetime">
63 <comment>
64 Optional epoch for which the data is valid. Leave unspecified if the current epoch is desired.
65 </comment>
66 </elem>
67
68 <elem name="encoding" multiplicity="0..1" type="EncodingFormat" default="0">
69 <comment>
70 ConstellationData encoding format for the response. This field is carried into
71 GetAssistanceData_output.encCon and GetGnssAlmanacs_output.conData will be encoded
72 in this format. If not specified the "native" format of the protocol is used.
73 </comment>
74 </elem>
75
76 <elem name="location" multiplicity="0..1" type="Shape">
77 <comment>
78 Optional specification of the location to compute assistance data. If not specified
79 all available asistance data will be provided.
80 </comment>
81 </elem>
82
83 <elem name="elmask" multiplicity="0..1" type="int8" default="-90">
84 <comment>
85 Optional, specifies the elevation cutoff mask relative to the current
86 location in degrees. If not specified or -90, all values within the specified satellite ID ranges are returned.
87 </comment>
88 <tag name="unit" value="degrees"/>
89 </elem>
90
91 <elem name="Request" multiplicity="1..*" type="RequestSpec">
92 <comment>Specifies the requested data. One specification is required, multiple can be processed simultaneously.</comment>
93 </elem>
94 </struct>
95
96 <!-- GnssDataOutput structure -->
97 <struct name="GnssDataOutput" type="IlpOutputBase">
98 <comment>ILP.Assistance.GnssData output structure. </comment>
99
100 <elem name="resultcode" multiplicity="1" type="ResultCode">
101 <comment>
102 Result of GnssData operation.
103 If resultcode is not success, encCon and constellation data will not be present.
104 </comment>
105 </elem>
106
107 <elem name="encoding" multiplicity="0..1" type="EncodingFormat" default="0">
108 <comment>
109 Constellation Data encoding format. Data can be provided in a different encoding format
110 than the native protocol format. This is carried over from input.
111 If not present, the data is in the native protocol format (e.g. XMF, JSON).
112 </comment>
113 </elem>
114
115 <elem name="assistdata" multiplicity="0..*" type ="HPE.Gnss.ConstellationData" encoding="encoding">
116 <comment>
117 The list of ConstellationData encoded in the format specified by encoding.
118 </comment>
119 </elem>
120 </struct>
121
122
123 <!--
124 *******************************************************
125 ILP GNSS Assistance Data Service Interface.
126 *******************************************************
127 -->
128 <interface name="Assistance">
129 <comment>Assistance data interface functions.</comment>
130
131 <operation name="Gnss">
132 <comment>Returns caller requested GNSS assistance data.</comment>
133 <input name="Input" type="GnssDataInput" sid="0x1018"/>
134 <output name="Result" type="GnssDataOutput" sid="0x1019"/>
135 </operation>
136
137 </interface>
138
139 </namespace>
140 </specification>
1 <?xml version="1.0" encoding="UTF-8" ?>
2
3 <specification xmlns="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
4 xmlns:xid="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
5 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6 xsi:schemaLocation="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd XtensibleInterfaceDefinition.xsd"
7 identity="IlpPositioningApi.xid.xml">
8 <title>ILP Hybrid Positioning Services</title>
9 <comment>
10 This document defines the positioning service interface for the IoT Location Platform (ILP).
11 The service provides hybrid position calculation for devices and services communicating
12 via standard IP based protocols. The API currently supports XMF and JSON wire formats.
13 </comment>
14
15 <import ref="https://xid.location.studio/Tensor/V1.0.0/Definitions.xid.xml" local="Definitions.xid.xml" />
16 <import ref="https://xid.location.studio/HPE/V1.1.1/HpeCore.xid.xml" local="HpeCore.xid.xml" />
17 <import ref="https://xid.location.studio/HPE/CommonDefs/V1.1.1/HpeGnss.xid.xml" local="HpeGnss.xid.xml" />
18 <import ref="https://xid.location.studio/HPE/CommonDefs/V1.1.1/HpeCellular.xid.xml" local="HpeCellular.xid.xml" />
19 <import ref="https://xid.location.studio/HPE/CommonDefs/V1.1.1/HpeWiFi.xid.xml" local="HpeWiFi.xid.xml" />
20 <import ref="https://xid.location.studio/ILP/V1.1.1/IlpApiBase.xid.xml" local="IlpApiBase.xid.xml" />
21
22 <namespace name="ILP">
23 <using namespace="HPE"/>
24 <using namespace="Tensor"/>
25
26 <!--
27 *******************************************************
28 ILP Positioning Calculation Data Types
29 *******************************************************
30 -->
31
32 <!-- CalculateInput structure -->
33 <struct name="CalculateInput" type ="IlpInputBase">
34 <comment>ILP.Positioning.Calculate input data structure.</comment>
35
36 <elem name="uuidSession" multiplicity="0..1" type="UUID">
37 <comment>
38 Optional session identifier. See CreateSession for creating valid
39 session identifiers. Transactions can be processed in the context of a session to provide
40 historical information and link calcuation in time.
41 </comment>
42 </elem>
43
44 <elem name="durSession" multiplicity="0..1" type="int32">
45 <comment>
46 Optional session duration. Default is 0 (not persisted). If specified,
47 the session created for this transaction will be stored for a maximum of 86400 seconds.
48 The uuidSession returned in the output, can be used in subsequent calls to Calculate to utilize
49 the persisted session data. Call ReleaseSession to release any persisted content once the session
50 is complete.
51 </comment>
52 </elem>
53
54 <elem name="dynamics" multiplicity="0..1" type="DynamicsProfile" default="0">
55 <comment>
56 Specifies the dymnamics of the device providing the data. If not specified, the default dynamics is undefined (0).
57 This parameter optimizes configuration of the estimator to constraint calculations based on the type
58 of motion. If session is specified, this value will be overridden.
59 </comment>
60 </elem>
61
62 <elem name="rankEstimate" multiplicity="0..1" type="EstimateRanking" default="3">
63 <comment>
64 Specifies the sort order of the estimates produced by the hybrid calculation. If not defined, the default value is to sort estimates
65 based on calculation order (0).
66 </comment>
67 </elem>
68
69 <elem name="confidence" multiplicity="0..1" type="float32" default="0.682689">
70 <comment>
71 Specifies the confidence level to report estimate error uncertainty, range between 0.0 and 1.0\n
72 Common values for confidence are:\n
73 \t 0.682689 (1 std. dev.)\n
74 \t 0.954499 (2 std. dev.)\n
75 \t 0.997300 (3 std. dev.)\n
76 If confidence is not specified, the default
77 value is 0.682689.
78 </comment>
79 </elem>
80
81 <elem name="maxEstimates" multiplicity="0..1" type="uint8" default="1">
82 <comment>
83 Specifies the maximum number of estimates (up to 255) to return in the calculation output.
84 If not specified 1 hybrid estimate is returned.
85 </comment>
86 </elem>
87
88 <elem name="typeShape" multiplicity="0..*" type="ShapeType">
89 <comment>
90 Specifies the preferred shape types to provide estimates in. The highest
91 ranking estimate will be returned in this specified shape types if supported.\n
92 If not specified, the set defaults to: Spheroid, Circle.
93 </comment>
94 </elem>
95
96 <elem name="directive" multiplicity="0..*" type="NameValue" ord="87">
97 <comment>
98 A set of directives to influence processing. Unknown directives are ignored.
99 </comment>
100 </elem>
101
102
103 <elem name="state" multiplicity="0..1" type="StateInfo" ord="90">
104 <comment>
105 Specifies the position to initialize the state of the positioning engine.\n
106 At least one of observations or state is required,
107 otherwise there is insufficient data to process.
108 </comment>
109 </elem>
110
111 <elem name="encObs" multiplicity="0..1" type="EncodingFormat" default="0" ord="88">
112 <comment>
113 Observation set encoding format. Observations may be passed to the service in
114 an encoding format different than that outer wire format.
115 By default wire protocol native format is assumed.
116 </comment>
117 </elem>
118
119 <elem name="observations" multiplicity="0..1" type="ObservationSet" encoding ="encObs" ord="89">
120 <comment>
121 Set of observation data encoded in the format specified by encObs.\n
122 At least one of observations or state is required,
123 otherwise there is insufficient data to process.
124 </comment>
125 </elem>
126 </struct>
127
128 <!-- Calculate Status-->
129 <enum name="CalculateStatus" type="Tensor.int8" default="undefined">
130 <comment>
131 Specifies the calculation resulting status. Caller should consult this value first to
132 determine if estimates are valid.
133 </comment>
134 <literal name="EstimateReady" value="1"/>
135 <literal name="undefined" value="0"/>
136 <literal name="DidNotConverge" value="-1"/>
137 <literal name="NotEnoughData" value="-2"/>
138 <literal name="UnspecifiedErr" value="-3"/>
139 </enum>
140
141 <!-- CalculateOutput structure -->
142 <struct name="CalculateOutput" type="IlpOutputBase" >
143 <comment>ILP.Positioning.Calculate output data structure. This contains the reuslts of a calculate oeration.</comment>
144
145 <elem name="uuidSession" multiplicity="1" type="UUID">
146 <comment>
147 Session identifier. This is the Identifier processed session used to process the
148 calculate transaction. If session, was not previously created by CreateSession, then
149 the session will not be available for future use.
150 </comment>
151 </elem>
152
153 <elem name="dynamics" multiplicity="1" type="DynamicsProfile">
154 <comment>
155 Specifies the dymnamics of the device providing the data.
156 </comment>
157 </elem>
158
159 <elem name="rankEstimate" multiplicity="1" type="EstimateRanking">
160 <comment>
161 Specifies the sort order of the estimates produced by the hybrid calculation.
162 </comment>
163 </elem>
164
165 <elem name="status" multiplicity="1" type="CalculateStatus">
166 <comment>
167 Specifies the status result of the calculation.
168 </comment>
169 </elem>
170
171 <elem name="Estimates" multiplicity="0..*" type="Estimate">
172 <comment>
173 List of estimates returned from the calculation ranked in the specified order.
174 </comment>
175 </elem>
176 </struct>
177
178
179 <!--
180 *******************************************************
181 CreateSession Data Types
182 *******************************************************
183 -->
184
185 <!-- CreateSessionInput structure -->
186 <struct name="CreateSessionInput" type="IlpInputBase">
187 <comment>ILP.Positioning.CreateSession input data structure.</comment>
188
189 <elem name="dynamics" multiplicity="1" type="DynamicsProfile">
190 <comment>
191 Specifies the dymnamics of the device providing the data. If not known specify undefined.
192 This parameter optimizes configuration of the estimator to constraint calculations based on the type
193 of motion. If session is specified, this value will be overridden.
194 </comment>
195 </elem>
196
197 <elem name="duration" multiplicity="1" type="int32">
198 <comment>
199 Number of seconds duration should persist. Maximum value is 86400 (1 day).
200 </comment>
201 </elem>
202
203 <elem name="typeObs" multiplicity="0..*" type="ObservationType">
204 <comment>
205 Optional List of supported observation types. Improves transaction initialization speed if only observation types needed are specified.
206 If not specified, all supported observations will be available for the session.
207 </comment>
208 </elem>
209
210 <elem name="ctTypicalObs" multiplicity="0..1" type="int32">
211 <comment>
212 Optional count of typical observations. Improves memory allocation when sizing internal buffers to typical number
213 of observations.
214 </comment>
215 </elem>
216
217 </struct>
218
219 <!-- CreateSessionOutput structure -->
220 <struct name="CreateSessionOutput" type="IlpOutputBase" >
221 <comment>ILP.Positioning.CreateSession output data structure.</comment>
222 <elem name="resultcode" multiplicity="1" type="ResultCode">
223 <comment>
224 Result of session creation operation.
225 </comment>
226 </elem>
227 <elem name="uuidSession" multiplicity="0..1" type="UUID">
228 <comment>
229 Session identifier of the created session.
230 </comment>
231 </elem>
232 </struct>
233
234 <!--
235 *******************************************************
236 ReleaseSession Data Types
237 *******************************************************
238 -->
239
240 <!-- ReleaseSessionInput structure -->
241 <struct name="ReleaseSessionInput" >
242 <comment>ILP.Positioning.ReleaseSession input data structure.</comment>
243 <elem name="uuidSession" multiplicity="1" type="UUID">
244 <comment>
245 Session identifier of the session to release.
246 </comment>
247 </elem>
248
249 </struct>
250
251 <!--
252 *******************************************************
253 Initialize Data Types
254 *******************************************************
255 -->
256
257 <!-- InitializeInput structure -->
258 <struct name="InitializeInput" type="IlpInputBase" >
259 <comment>ILP.Positioning.Initialize input data structure.</comment>
260
261 <elem name="uuidSession" multiplicity="0..1" type="UUID">
262 <comment>
263 Optional session identifier. See CreateSession for creating valid
264 session identifiers. Transactions can be processed in the context of a session to provide
265 historical information and link calcuation in time.
266 </comment>
267 </elem>
268
269 <elem name="durSession" multiplicity="0..1" type="int32">
270 <comment>
271 Optional session duration. Default is 0 (not persisted). If specified,
272 the session created for this transaction will be stored for a maximum of 86400 seconds.
273 The uuidSession returned in the output, can be used in subsequent calls to Calculate to utilize
274 the persisted session data. Call ReleaseSession to release any persisted content once the session
275 is complete.
276 </comment>
277 </elem>
278
279 <elem name="state" multiplicity="1" type="StateInfo">
280 <comment>
281 Specifies the position to initialize the state of the positioning engine.
282 </comment>
283 </elem>
284
285 </struct>
286
287 <!-- InitializeOutput structure -->
288 <struct name="InitializeOutput" type="IlpOutputBase">
289 <comment>ILP.Positioning.Initialize output data structure.</comment>
290 <elem name="resultcode" multiplicity="1" type="ResultCode">
291 <comment>
292 Result of session creation operation.
293 </comment>
294 </elem>
295 <elem name="uuidSession" multiplicity="0..1" type="UUID">
296 <comment>
297 Session identifier of the created session.
298 </comment>
299 </elem>
300 </struct>
301
302
303
304 <!--
305 *******************************************************
306 ILP Positioning Service Interface.
307 *******************************************************
308 -->
309 <interface name="Positioning">
310 <comment>Hybrid positioning interface defines interactions supporting position calculation functions.</comment>
311
312 <operation name="Calculate">
313 <comment>Calculates the position of the device given the specified observation data.</comment>
314 <input name="Input" type="CalculateInput" sid="0x1010"/>
315 <output name="Result" type="CalculateOutput" sid="0x1011" />
316 </operation>
317
318 <operation name="CreateSession">
319 <comment>
320 Creates a persistent session object and returns its UUID. Can be used to process a series of related transactions
321 using the previous filter state. Good for temporal or multiple observation type updates that were not
322 available at the same time.
323 </comment>
324 <input name="Input" type="CreateSessionInput" sid="0x1012"/>
325 <output name="Result" type="CreateSessionOutput" sid="0x1013"/>
326 </operation>
327
328 <operation name="ReleaseSession">
329 <comment>
330 Releases any persistent session data associated with the UUID.
331 </comment>
332 <input name="Input" type="ReleaseSessionInput" sid="0x1014"/>
333 <!-- output name="Result" type="void" sid="0x0000" result="return"/ -->
334 </operation>
335
336 <operation name="Initialize">
337 <comment>
338 Initializes the positioning engine to state specified in the provided shape information.
339 This is an optional interaction given most cases, this initial position can be determmined from
340 the provided data.
341 </comment>
342 <input name="Input" type="InitializeInput" sid="0x1016"/>
343 <output name="Result" type="InitializeOutput" sid="0x1017" />
344 </operation>
345
346 </interface>
347
348 </namespace>
349 </specification>
1 <?xml version="1.0" encoding="UTF-8" ?>
2
3 <specification xmlns="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
4 xmlns:xid="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
5 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6 xsi:schemaLocation="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd XtensibleInterfaceDefinition.xsd"
7 identity="IlpSubmissionApi.xid.xml">
8 <title>ILP Submission API</title>
9 <comment>
10 This document defines a lightweight Observation Submission API for submitting ILP compatible observation
11 data without invoking the full get position operation.
12 </comment>
13
14 <import ref="https://xid.location.studio/Tensor/V1.0.0/Definitions.xid.xml" local="Definitions.xid.xml" />
15 <import ref="https://xid.location.studio/HPE/V1.1.1/HpeCore.xid.xml" local="HpeCore.xid.xml" />
16 <import ref="https://xid.location.studio/HPE/CommonDefs/V1.1.1/HpeGnss.xid.xml" local="HpeGnss.xid.xml" />
17 <import ref="https://xid.location.studio/HPE/CommonDefs/V1.1.1/HpeCellular.xid.xml" local="HpeCellular.xid.xml" />
18 <import ref="https://xid.location.studio/HPE/CommonDefs/V1.1.1/HpeWiFi.xid.xml" local="HpeWiFi.xid.xml" />
19 <import ref="https://xid.location.studio/ILP/V1.1.1/IlpApiBase.xid.xml" local="IlpApiBase.xid.xml" />
20
21 <namespace name="ILP">
22 <using namespace="HPE"/>
23 <using namespace="Tensor"/>
24
25
26 <!-- SubmitInput structure definition.
27 Note: all the tags are defined. These have to
28 match CalculateInput tags of the same name.
29 -->
30 <struct name="PositionInfo" type="IlpInputBase" >
31 <comment>Used as ILP.Submission.PositionInfo input.</comment>
32
33 <elem name="state" multiplicity="0..1" type="StateInfo" ord="90">
34 <comment>
35 Optional position information.\n
36 At least one of observations or state is required,
37 otherwise there is insufficient data to process.
38 </comment>
39 </elem>
40
41 <elem name="directive" multiplicity="0..*" type="NameValue" ord="87">
42 <comment>
43 A set of directives to influence processing.
44 </comment>
45 </elem>
46
47 <elem name="encObs" multiplicity="0..1" type="EncodingFormat" default="0" ord="88">
48 <comment>
49 Observation set encoding format. Observations may be passed to the service in
50 an encoding format different than that outer wire format.
51 </comment>
52 </elem>
53
54 <elem name="observations" multiplicity="0..1" type="ObservationSet" encoding ="encObs" ord="89">
55 <comment>
56 Optional Set of observation data encoded in the format specified by encObs.\n
57 At least one of observations or state is required,
58 otherwise there is insufficient data to process.
59 </comment>
60 </elem>
61 </struct>
62
63 <!--
64 *******************************************************
65 Observation Submission API
66 *******************************************************
67 -->
68 <interface name="Submission">
69 <comment>Interface for submitting data to ILP. </comment>
70
71 <operation name="PositionInfo">
72 <comment>
73 Interaction submits position and observation data.\n
74 There is no response besides bearer response codes.
75 </comment>
76 <input name="Input" type="PositionInfo" sid="0x101E"/>
77 </operation>
78 </interface>
79 </namespace>
80 </specification>
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!