diff --git a/MainModesArbiter.c b/MainModesArbiter.c index ac198b9..326cf76 100644 --- a/MainModesArbiter.c +++ b/MainModesArbiter.c @@ -239,6 +239,18 @@ static void Mma_NetworkAndAudioRelease(tMma *env) { while (t > SystemGetMs()) {} } +void Mma_EcallPrepare(tMma *env) { + AtGsm_OperatorSelectionDeregister(&env->gsmWithGnss.gsmAt); + SystemDelayMs(1000); + GsmWithGnss_SelectStandartNetwork(&env->gsmWithGnss.gsmAt, 12); + SystemDelayMs(3000); + GsmWithGnss_SelectStandartNetwork(&env->gsmWithGnss.gsmAt, 22); + SystemDelayMs(3000); + GsmWithGnss_SelectStandartNetwork(&env->gsmWithGnss.gsmAt, 25); + SystemDelayMs(3000); + AtGsmTelitLe910_GnssEcallOnlyMode(&env->gsmWithGnss.gsmAt,0); +} + void Mma_EcallManual(tMma *env) { EraGlonassUveos_SetTimings(&env->uveos); Mma_SetMode(env, DEVICE_MODE_UVEOS_CALL_INITIATE); @@ -259,7 +271,8 @@ void Mma_EcallManualKZ(tMma *env) { EraGlonassUveos_SetTimings(&env->uveos); Mma_SetMode(env, DEVICE_MODE_UVEOS_CALL_INITIATE); Mma_NetworkAndAudioRequireKz(env); - GsmWithGnss_NetworkEnableInnaterups(&env->gsmWithGnss, 5,160000); + Mma_EcallPrepare(env); + GsmWithGnss_NetworkEnableInnaterups(&env->gsmWithGnss, 5,200000); GpioPinEnable(&env->power.pins->main.ecall); env->uveos.currentMsd->msd.MSD_Data.msgId = 1; EraGlonassUveos_ManualEmergencyCall(&env->uveos, true); @@ -304,11 +317,13 @@ void Mma_gnssUpdate(tMma *env, eDeviceModes *deviceModes) { } void Mma_EcallAutomatic(tMma *env, tUveosEmergencyEvent emergencyEvent) { + EraGlonassUveos_SetTimings(&env->uveos); Pwm_AudioEnable(&env->power); Mma_SetMode(env, DEVICE_MODE_UVEOS_CALL_INITIATE); - GsmWithGnss_NetworkEnableInnaterups(&env->gsmWithGnss, 5,120000); + Mma_EcallPrepare(env); + GsmWithGnss_NetworkEnableInnaterups(&env->gsmWithGnss, 5,200000); Mma_NetworkAndAudioRequireKz(env); GpioPinEnable(&env->power.pins->main.ecall); @@ -675,7 +690,7 @@ static _Noreturn void Mma_Thread(tMma *env) { #endif LoggerInfoStatic(LOGGER, LOG_SIGN, "Нажата кнопка экстренного вызова_1") - Mma_EcallManual(env); + Mma_EcallManualKZ(env); } UserButtons_Clear(&env->userInput.buttonsInterface); }