diff --git a/MainModesArbiter.c b/MainModesArbiter.c index 54ef064..99c03cf 100644 --- a/MainModesArbiter.c +++ b/MainModesArbiter.c @@ -592,15 +592,21 @@ static _Noreturn void Mma_Thread(tMma *env) { Mma_ColorBip(env); -#ifdef UVEOS_ADD_TELEMATICA - if (env->storage.runtime.EGTS_FLEET_ON == false) { - Mma_gnssUpdate(env, &indicationState); - } else { +#ifdef UVEOS_ADD_TELEMATICA + if (env->storage.runtime.EGTS_FLEET_ON == true) { indicationState = GsmWithGnss_IsGnssReady(&env->gsmWithGnss) ? DEVICE_MODE_UVEOS_ERA_GNSS_READY : DEVICE_MODE_UVEOS_ERA_WAIT_GNSS; - + if (env->gsmWithGnss.gnss.currentRmc.status == 'A') { + EraGlonassUveos_DoNothingModeDistance(&env->uveos, true); + Mma_SetMode(env, DEVICE_MODE_UVEOS_ERA_WAIT_GNSS); + } else { + Mma_SetMode(env, DEVICE_MODE_UVEOS_ERA_GNSS_READY); + env->uveos.doNothing.mode = UVEOS_DO_NOTHING_DISABLED; + } + } else { + Mma_gnssUpdate(env, &indicationState); } #endif