Realtime gps optimized for efficiency
This commit is contained in:
parent
39bfc59817
commit
22c6277d68
@ -291,13 +291,17 @@ class DumonGeolocation : Plugin() {
|
||||
}
|
||||
|
||||
private fun adjustIntervalAndSensorRate(speed: Float) {
|
||||
val targetMode = if (speed > 3.0f) GpsTrackingMode.DRIVING else GpsTrackingMode.NORMAL
|
||||
val targetInterval = when {
|
||||
speed > 5f -> 3000L
|
||||
speed > 1.5f -> 8000L
|
||||
speed > 0.3f -> 20000L
|
||||
else -> 30000L
|
||||
}
|
||||
|
||||
if (currentTrackingMode != targetMode) {
|
||||
currentTrackingMode = targetMode
|
||||
gpsManager?.stop()
|
||||
gpsManager?.start(currentTrackingMode)
|
||||
Log.d("DUMON_GEOLOCATION", "Switched GPS mode to $currentTrackingMode")
|
||||
if (emitIntervalMs != targetInterval) {
|
||||
emitIntervalMs = targetInterval
|
||||
gpsManager?.setPollingInterval(targetInterval)
|
||||
Log.d("DUMON_GEOLOCATION", "Auto-set emitIntervalMs = $emitIntervalMs ms")
|
||||
}
|
||||
|
||||
imuManager?.setSensorDelayBySpeed(speed)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user