9class MeasurementManagerExample {
15 MeasurementManagerExample() {
17 _setupMeasurementListener();
23 void _initializeSdk() {
56 print(
"LocationManager and MeasurementManager successfully initialized");
59 print(
"Error initializing SDK: $e");
66 void _setupMeasurementListener() {
69 onSensorMeasurementDetected: (Map<SensorType, SensorMeasurement> sensors) {
70 print(
"Sensor measurements detected");
71 _demonstrateSensorMeasurements(sensors);
76 onSignalMeasurementDetected: (Map<String, SignalMeasurement> signals) {
77 print(
"Signal measurements detected");
78 _demonstrateSignalMeasurements(signals);
89 print(
"MeasurementManager not initialized");
96 print(
"Added measurement listener");
100 _demonstrateBeaconGenerators();
103 _demonstrateEddystoneGenerators();
106 _demonstrateWifiGenerators();
109 _demonstrateWifiRttGenerators();
112 _demonstrateLocationGenerators();
115 Future.delayed(Duration(seconds: 2), () {
119 print(
"Removed measurement listener");
127 void _demonstrateBeaconGenerators() {
131 "12345678-1234-1234-1234-123456789012",
139 print(
"Added beacon generator with ID: $beaconId");
145 print(
"Removed BLE generator: $beaconId");
151 print(
"Removed all BLE generators");
158 void _demonstrateEddystoneGenerators() {
162 "12345678901234567890",
169 print(
"Added Eddystone generator with ID: $eddystoneId");
174 print(
"Removed Eddystone generator: $eddystoneId");
180 void _demonstrateWifiGenerators() {
189 print(
"Added Wi-Fi generator with ID: $wifiId");
195 print(
"Removed Wi-Fi generator: $wifiId");
201 print(
"Removed all Wi-Fi generators");
208 void _demonstrateWifiRttGenerators() {
221 print(
"Added Wi-Fi RTT generator with ID: $wifiRttId");
227 print(
"Removed Wi-Fi RTT generator: $wifiRttId");
233 print(
"Removed all Wi-Fi RTT generators");
240 void _demonstrateLocationGenerators() {
252 print(
"Added location generator with ID: $locationId");
258 print(
"Removed location generator: $locationId");
264 print(
"Removed all location generators");
271 void _demonstrateSensorMeasurements(Map<SensorType, SensorMeasurement> sensors) {
272 sensors.forEach((sensorType, measurement) {
275 SensorType type = measurement.type;
276 print(
"Sensor type: $type");
281 Vector3d values = measurement.values;
282 print(
"Sensor values - X: ${values.x}, Y: ${values.y}, Z: ${values.z}");
287 int time = measurement.time;
288 print(
"Measurement time: $time ms");
292 _demonstrateVector3d(values);
299 void _demonstrateSignalMeasurements(Map<String, SignalMeasurement> signals) {
300 signals.forEach((signalId, measurement) {
303 SignalType type = measurement.type;
304 print(
"Signal type: $type");
309 String
id = measurement.id;
310 print(
"Signal ID: $id");
315 double rssi = measurement.rssi;
316 print(
"Signal RSSI: $rssi dBm");
321 double distance = measurement.distance;
322 print(
"Signal distance: $distance meters");
327 int time = measurement.time;
328 print(
"Signal measurement time: $time ms");
336 void _demonstrateVector3d(Vector3d vector) {
340 print(
"Vector X: $x");
346 print(
"Vector Y: $y");
352 print(
"Vector Z: $z");
359 Future<void> runExample() async {
360 print(
"=== MeasurementManager Example ===");
365 await Future.delayed(Duration(seconds: 5));
367 print(
"=== Example completed ===");