Loading...
Searching...
No Matches
MeasurementManager Directory Reference

Directories

 dart
 
 java
 
 kotlin
 
 objc
 
 swift
 

Detailed Description

This directory contains comprehensive examples demonstrating the usage of the Navigine SDK's MeasurementManager across all supported platforms.

Overview

The MeasurementManager is responsible for managing measurement generators and notifying about sensor and signal measurements. It provides functionality for:

Key Components

MeasurementManager

The main class for managing measurement operations:

MeasurementListener

Interface for receiving measurement notifications:

SensorMeasurement

Represents sensor measurement data:

SignalMeasurement

Represents signal measurement data:

Vector3d

3D vector structure for sensor measurements:

Platform-Specific Files

Dart/Flutter

Java

Kotlin

Objective-C

Swift

Key Documentation Tags

MeasurementManager Methods

MeasurementListener Methods

SensorMeasurement Properties

SignalMeasurement Properties

Vector3d Properties

Common Usage Patterns

1. Initialization

// Get SDK instance and managers
NavigineSdk sdk = NavigineSdk.getInstance();
LocationManager locationManager = sdk.getLocationManager();
MeasurementManager measurementManager = sdk.getMeasurementManager(locationManager);

2. Setting up Measurement Listener

MeasurementListener listener = MeasurementListener(
onSensorMeasurementDetected: (sensors) {
// Handle sensor measurements
},
onSignalMeasurementDetected: (signals) {
// Handle signal measurements
},
);
measurementManager.addMeasurementListener(listener);

3. Adding Signal Generators

// Add BLE beacon generator
String beaconId = measurementManager.addBeaconGenerator(
"12345678-1234-1234-1234-123456789012", // UUID
100, // major
200, // minor
-60, // power (dBm)
5000, // timeout (ms)
-80, // rssiMin
-40 // rssiMax
);
// Add Wi-Fi generator
String wifiId = measurementManager.addWifiGenerator(
"AA:BB:CC:DD:EE:FF", // MAC address
4000, // timeout (ms)
-90, // rssiMin
-50 // rssiMax
);

4. Processing Measurements

void onSensorMeasurementDetected(Map<SensorType, SensorMeasurement> sensors) {
sensors.forEach((sensorType, measurement) {
Vector3d values = measurement.values;
print("Sensor ${sensorType}: X=${values.x}, Y=${values.y}, Z=${values.z}");
});
}
void onSignalMeasurementDetected(Map<String, SignalMeasurement> signals) {
signals.forEach((signalId, measurement) {
print("Signal ${measurement.id}: RSSI=${measurement.rssi}dBm, Distance=${measurement.distance}m");
});
}

5. Cleanup

// Remove specific generators
measurementManager.removeBleGenerator(beaconId);
measurementManager.removeWifiGenerator(wifiId);
// Remove all generators
measurementManager.removeBleGenerators();
measurementManager.removeWifiGenerators();
// Remove listener
measurementManager.removeMeasurementListener(listener);

Running Examples

Dart/Flutter

cd examples/MeasurementManager/dart
dart measurement_manager_example.dart

Java

cd examples/MeasurementManager/java
javac MeasurementManagerExample.java
java MeasurementManagerExample

Kotlin

cd examples/MeasurementManager/kotlin
kotlinc MeasurementManagerExample.kt -include-runtime -d MeasurementManagerExample.jar
java -jar MeasurementManagerExample.jar

Objective-C

cd examples/MeasurementManager/objc
clang -framework Foundation MeasurementManagerExample.m -o MeasurementManagerExample
./MeasurementManagerExample

Swift

cd examples/MeasurementManager/swift
swift MeasurementManagerExample.swift

Notes