ProbeApi.xid.xml
7.04 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
<?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.0.0/ApiBase.xid.xml" local="SLAM/ApiBase.xid.xml" />
<import ref="https://xid.location.studio/ILP/SLAM/V1.0.0_alpha/TileDefinitions.xid.xml" local="SLAM/TileDefinitions.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="obsset" 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="AddressInfo" >
<comment>Optional address information.</comment>
</elem>
<elem name="contact" multiplicity ="0..1" type="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>