1 /*
2 * Copyright (C) 2018 Alberto Irurueta Carro (alberto@irurueta.com)
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 package com.irurueta.navigation.indoor;
17
18 import com.irurueta.algebra.Matrix;
19 import com.irurueta.geometry.Point3D;
20
21 /**
22 * Contains a 3D located reading associated to a given radio source (e.g. Wi-Fi access point
23 * or bluetooth beacon) containing signal strength and distance to associated access point.
24 *
25 * @param <S> a {@link RadioSource} type.
26 */
27 public class RangingAndRssiReadingLocated3D<S extends RadioSource> extends RangingAndRssiReadingLocated<S, Point3D> {
28
29 /**
30 * Constructor.
31 *
32 * @param source radio source associated to this reading.
33 * @param distance distance in meters to the radio source.
34 * @param rssi received signal strength indicator in dBm.
35 * @param position position where reading was made.
36 * @throws IllegalArgumentException if radio source data is null, distance is negative
37 * or position is null.
38 */
39 public RangingAndRssiReadingLocated3D(
40 final S source, final double distance, final double rssi, final Point3D position) {
41 super(source, distance, rssi, position);
42 }
43
44 /**
45 * Constructor.
46 *
47 * @param source radio source associated to this reading.
48 * @param distance distance in meters to the radio source.
49 * @param rssi received signal strength indicator in dBm.
50 * @param position position where reading was made.
51 * @param numAttemptedMeasurements number of attempted measurements used in the RTT exchange.
52 * @param numSuccessfulMeasurements number of successful measurements used to calculate the
53 * distance and standard deviation.
54 * @throws IllegalArgumentException if radio source data is null, distance is negative,
55 * position is null, number of attempted measures is less than 1 or number of
56 * successful measures is negative.
57 */
58 public RangingAndRssiReadingLocated3D(
59 final S source, final double distance, final double rssi, final Point3D position,
60 final int numAttemptedMeasurements, final int numSuccessfulMeasurements) {
61 super(source, distance, rssi, position, numAttemptedMeasurements, numSuccessfulMeasurements);
62 }
63
64 /**
65 * Constructor.
66 *
67 * @param source radio source associated to this reading.
68 * @param distance distance in meters to the radio source.
69 * @param rssi received signal strength indicator in dBm.
70 * @param position position where reading was made.
71 * @param distanceStandardDeviation standard deviation of distance, if available.
72 * @param rssiStandardDeviation standard deviation of RSSI, if available.
73 * @throws IllegalArgumentException if radio source data is null, distance is negative,
74 * position is null or any of the standard deviations is zero or negative.
75 */
76 public RangingAndRssiReadingLocated3D(
77 final S source, final double distance, final double rssi, final Point3D position,
78 final Double distanceStandardDeviation, final Double rssiStandardDeviation) {
79 super(source, distance, rssi, position, distanceStandardDeviation, rssiStandardDeviation);
80 }
81
82 /**
83 * Constructor.
84 *
85 * @param source radio source associated to this reading.
86 * @param distance distance in meters to the radio source.
87 * @param rssi received signal strength indicator in dBm.
88 * @param position position where reading was made.
89 * @param distanceStandardDeviation standard deviation of distance, if available.
90 * @param rssiStandardDeviation standard deviation of RSSI, if available.
91 * @param numAttemptedMeasurements number of attempted measurements used in the RTT exchange.
92 * @param numSuccessfulMeasurements number of successful measurements used to calculate the
93 * distance and standard deviation.
94 * @throws IllegalArgumentException if radio source data is null, distance is negative,
95 * position is null, any of the standard deviations is zero or negative, number of
96 * attempted measures is less than 1 or number of successful measures is negative.
97 */
98 public RangingAndRssiReadingLocated3D(
99 final S source, final double distance, final double rssi, final Point3D position,
100 final Double distanceStandardDeviation, final Double rssiStandardDeviation,
101 final int numAttemptedMeasurements, final int numSuccessfulMeasurements) {
102 super(source, distance, rssi, position, distanceStandardDeviation, rssiStandardDeviation,
103 numAttemptedMeasurements, numSuccessfulMeasurements);
104 }
105
106 /**
107 * Constructor.
108 *
109 * @param source radio source associated to this reading.
110 * @param distance distance in meters to the radio source.
111 * @param rssi received signal strength indicator in dBm.
112 * @param position position where reading was made.
113 * @param positionCovariance covariance of inhomogeneous coordinates of
114 * current position (if available).
115 * @throws IllegalArgumentException if radio source data is null, distance is negative
116 * or position is null.
117 */
118 public RangingAndRssiReadingLocated3D(
119 final S source, final double distance, final double rssi, final Point3D position,
120 final Matrix positionCovariance) {
121 super(source, distance, rssi, position, positionCovariance);
122 }
123
124 /**
125 * Constructor.
126 *
127 * @param source radio source associated to this reading.
128 * @param distance distance in meters to the radio source.
129 * @param rssi received signal strength indicator in dBm.
130 * @param position position where reading was made.
131 * @param positionCovariance covariance of inhomogeneous coordinates of
132 * current position (if available).
133 * @param numAttemptedMeasurements number of attempted measurements used in the RTT exchange.
134 * @param numSuccessfulMeasurements number of successful measurements used to calculate the
135 * distance and standard deviation.
136 * @throws IllegalArgumentException if radio source data is null, distance is negative,
137 * position is null, position covariance has wrong size, number of attempted
138 * measures is less than 1 or number of successful measures is negative.
139 */
140 public RangingAndRssiReadingLocated3D(
141 final S source, final double distance, final double rssi, final Point3D position,
142 final Matrix positionCovariance, final int numAttemptedMeasurements, final int numSuccessfulMeasurements) {
143 super(source, distance, rssi, position, positionCovariance, numAttemptedMeasurements,
144 numSuccessfulMeasurements);
145 }
146
147 /**
148 * Constructor.
149 *
150 * @param source radio source associated to this reading.
151 * @param distance distance in meters to the radio source.
152 * @param rssi received signal strength indicator in dBm.
153 * @param position position where reading was made.
154 * @param distanceStandardDeviation standard deviation of distance, if available.
155 * @param rssiStandardDeviation standard deviation of RSSI value.
156 * @param positionCovariance covariance of inhomogeneous coordinates of
157 * current position (if available).
158 * @throws IllegalArgumentException if radio source data is null, distance is negative,
159 * position is null or standard deviation is zero or negative.
160 */
161 public RangingAndRssiReadingLocated3D(
162 final S source, final double distance, final double rssi, final Point3D position,
163 final Double distanceStandardDeviation, final Double rssiStandardDeviation,
164 final Matrix positionCovariance) {
165 super(source, distance, rssi, position, distanceStandardDeviation, rssiStandardDeviation, positionCovariance);
166 }
167
168 /**
169 * Constructor.
170 *
171 * @param source radio source associated to this reading.
172 * @param distance distance in meters to the radio source.
173 * @param rssi received signal strength indicator in dBm.
174 * @param position position where reading was made.
175 * @param distanceStandardDeviation standard deviation of distance, if available.
176 * @param rssiStandardDeviation standard deviation of RSSI value.
177 * @param positionCovariance covariance of inhomogeneous coordinates of
178 * current position (if available).
179 * @param numAttemptedMeasurements number of attempted measurements used in the RTT exchange.
180 * @param numSuccessfulMeasurements number of successful measurements used to calculate the
181 * distance and standard deviation.
182 * @throws IllegalArgumentException if radio source data is null, distance is negative,
183 * position is null, any of the standard deviations is zero or negative,
184 * position covariance has wrong size, number of attempted
185 * measures is less than 1 or number of successful measures is negative.
186 */
187 public RangingAndRssiReadingLocated3D(
188 final S source, final double distance, final double rssi, final Point3D position,
189 final Double distanceStandardDeviation, final Double rssiStandardDeviation, final Matrix positionCovariance,
190 final int numAttemptedMeasurements, final int numSuccessfulMeasurements) {
191 super(source, distance, rssi, position, distanceStandardDeviation, rssiStandardDeviation, positionCovariance,
192 numAttemptedMeasurements, numSuccessfulMeasurements);
193 }
194
195 /**
196 * Empty constructor.
197 */
198 protected RangingAndRssiReadingLocated3D() {
199 super();
200 }
201 }
202