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) {
|
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) {
|
if (emitIntervalMs != targetInterval) {
|
||||||
currentTrackingMode = targetMode
|
emitIntervalMs = targetInterval
|
||||||
gpsManager?.stop()
|
gpsManager?.setPollingInterval(targetInterval)
|
||||||
gpsManager?.start(currentTrackingMode)
|
Log.d("DUMON_GEOLOCATION", "Auto-set emitIntervalMs = $emitIntervalMs ms")
|
||||||
Log.d("DUMON_GEOLOCATION", "Switched GPS mode to $currentTrackingMode")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
imuManager?.setSensorDelayBySpeed(speed)
|
imuManager?.setSensorDelayBySpeed(speed)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user