CommonDefs.xid.xml
10.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
<?xml version="1.0" encoding="UTF-8" ?>
<specification xmlns="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
xmlns:xid="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd XtensibleInterfaceDefinition.xsd"
identity="CommonDefs.xid.xml">
<title>SLAM Common Definitions</title>
<comment>This file defines commonly used structures and enumerations used throughout the SLAM system.</comment>
<!-- Include all known definitions -->
<import ref="https://xid.location.studio/Tensor/V1.0.0/Definitions.xid.xml" local="Definitions.xid.xml" />
<import ref="https://xid.location.studio/HPE/V1.1.1/HpeCore.xid.xml" local="HpeCore.xid.xml" />
<namespace name="SLAM">
<using namespace="HPE"/>
<using namespace="Tensor"/>
<!--
*************************************
* Enumerations
*************************************
-->
<enum name="CoordRefFrameType" type="Tensor.int8" default="unknown">
<comment>Enumerations defines the supported coordinate reference frames</comment>
<literal name="unknown" value="0"></literal>
<literal name="WGS84" value="1"></literal>
<literal name="ENU" value="2"></literal>
<literal name="NED" value="3"></literal>
</enum>
<!--
*************************************
* HashKey Definition.
*************************************
-->
<type name="HashKey" size="12">
<comment>12 byte hashkey for reference point identifiers.</comment>
<!-- <lang name="c" type="UUID" include="SLAM/CXMF/haskey.h"/> -->
<lang name="cpp" type="::SLAM::HashKey" include="SLAM/HashKey.h"/>
<!--
<lang name="java" type="SlamHasKey" include="com.comtechtel.tensor.SLAM.Hashkey"/>
<lang name="node" type=" SlamHasKey "/>
-->
</type>
<!--
*************************************
* BoundingBox Definition.
*************************************
-->
<struct name="BoundingBox" pack="true">
<comment>defines the bounding box parameters</comment>
<elem name="latmin" type="Tensor.float64" multiplicity="1" >
<comment>minimum value of the latitude</comment>
</elem>
<elem name="latmax" type="Tensor.float64" multiplicity="1" >
<comment>maximum value of the latitude</comment>
</elem>
<elem name="lonmin" type="Tensor.float64" multiplicity="1" >
<comment>minimum value of the longitude</comment>
</elem>
<elem name="lonmax" type="Tensor.float64" multiplicity="1" >
<comment>maximum value of the longitude</comment>
</elem>
<elem name="altmin" type="Tensor.float64" multiplicity="1" >
<comment>minimum value of the altitude</comment>
</elem>
<elem name="altmax" type="Tensor.float64" multiplicity="1" >
<comment>maximum value of the altitude</comment>
</elem>
</struct>
<!--
*************************************
* ContactInfo Definition.
*************************************
-->
<struct name="ContactInfo">
<elem name="givenname" multiplicity ="1" type="string" >
<comment>Contact given (first) name. Default is empty.</comment>
</elem>
<elem name="surname" multiplicity ="1" type="string" >
<comment>Contact surname (last name). Default is empty.</comment>
</elem>
<elem name="email" multiplicity ="1" type="string" >
<comment>Contact email addres. Default is empty.</comment>
</elem>
<elem name="phone" multiplicity ="1" type="string" >
<comment>Contact phone number. Default is empty.</comment>
</elem>
</struct>
<!--
*************************************
* AddressInfo Definition.
*************************************
-->
<struct name="AddressInfo">
<elem name="address1" multiplicity ="1" type="string">
<comment>First line street address. Default is empty.</comment>
</elem>
<elem name="address2" multiplicity ="1" type="string">
<comment>Second line street address. Default is empty.</comment>
</elem>
<elem name="City" multiplicity ="1" type="string">
<comment>Name of City. Default is empty.</comment>
</elem>
<elem name="StateRegion" multiplicity ="1" type="string">
<comment>State or region. Two character state definitions ok for U.S. addresses. Default is empty.</comment>
</elem>
<elem name="PostalCode" multiplicity ="1" type="string">
<comment>Postal code or zip code. Default is empty.</comment>
</elem>
<elem name="Country" multiplicity ="1" type="string">
<comment>Name of the country. Default is empty.</comment>
</elem>
</struct>
<!--
*************************************
* SurveyInfo Definition.
*************************************
-->
<struct name="SurveyInfo">
<comment>General information about the survey.</comment>
<elem name="name" multiplicity ="1" type="string" >
<comment>Optional name to describe the identify of the survey</comment>
</elem>
<elem name="flrmax" multiplicity ="1" type="int8" default ="0">
<comment>Optional maximum floor identifier, default is zero meaning the ground floor</comment>
</elem>
<elem name="flrmin" multiplicity ="1" type="int8" default ="0">
<comment>Optional minimum floor identifier, default is zero meaning the ground floor</comment>
</elem>
<elem name="appid" multiplicity ="1" type="string" >
<comment>Application identifier used to collect the survey data. Default is empty "".</comment>
</elem>
<elem name="appver" multiplicity ="1" type="string" >
<comment>Application version used to collect the survey data. Default is empty "".</comment>
</elem>
<elem name="createdate" type="datetime" multiplicity="1">
<comment>Date and time the survey was created or conducted.</comment>
</elem>
<elem name="contact" multiplicity ="0..1" type="ContactInfo" >
<comment>Optional contact information.</comment>
</elem>
<elem name="address" multiplicity ="0..1" type="AddressInfo" >
<comment>Optional address information.</comment>
</elem>
<elem name="datestart" type="datetime" multiplicity="0..1">
<comment>Date and time of when this survey is valid. Do not define if unknown.</comment>
</elem>
<elem name="dateend" type="datetime" multiplicity="0..1">
<comment>Last date and time of when this survey is valid. Do not define if unknown.</comment>
</elem>
</struct>
<!--
*************************************
* PointOfInterest Definition.
*************************************
-->
<struct name="PointOfInterest">
<elem name="name" multiplicity ="1" type="string">
<comment>Name of the point of interest.</comment>
</elem>
<elem name="floor" multiplicity ="1" type="int16" default ="0">
<comment>Optional floor identifier, default is zero meaning the ground floor</comment>
</elem>
<elem name="description" multiplicity ="1" type="string">
<comment>Other information describing the point of interest.</comment>
</elem>
<elem name="location" multiplicity="1" type="Shape" polymorphic="true" >
<comment>
Location of the POI. Polymorphic type, see specializationsfrom Shape for details.
</comment>
</elem>
<elem name="confidence" type="float32" multiplicity="1">
<comment>Confidence of position shape. Valid range is 0.0 to 1.0</comment>
</elem>
<elem name="address" multiplicity ="0..1" type="AddressInfo" >
<comment>Optional address information.</comment>
</elem>
<elem name="contact" multiplicity ="0..1" type="ContactInfo" >
<comment>Optional contact information.</comment>
</elem>
</struct>
<!--
*************************************
* SurveyRecord Definition.
*************************************
-->
<struct name="SurveyRecord" >
<comment>A Survey Record.</comment>
<elem name="state" multiplicity="1" type="StateInfo">
<comment>
Required device position and other state information. At least one of
observations or state is required, otherwise there is insufficient data to process.
</comment>
</elem>
<elem name="floor" multiplicity="1" type ="int8" default="0">
<comment>The floor number of this scan</comment>
</elem>
<elem name="observations" multiplicity="1" type="ObservationSet" >
<comment>
Optional Set of observation data encoded in the format specified by encObs.\n
At least one of observations or state is required,
otherwise there is insufficient data to process.
</comment>
</elem>
</struct>
<!--
*************************************
* SurveyData Definition.
*************************************
-->
<struct name ="SurveyData">
<elem name ="surveyid" type="Tensor.UUID" multiplicity="1" >
<comment>Identifies the unique id of the survey</comment>
</elem>
<elem name ="part" type="int32" multiplicity="1" default="0">
<comment>Zero based part index of survey indicating data is in parts.</comment>
</elem>
<elem name ="type" type="uri" 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="PointOfInterest">
<comment>
Points of interest collected by the survey.
</comment>
</elem>
</struct>
</namespace>
</specification>