diff --git a/MainModesArbiter.c b/MainModesArbiter.c index 69eb6a1..54ef064 100644 --- a/MainModesArbiter.c +++ b/MainModesArbiter.c @@ -39,7 +39,7 @@ void TELEMATICA_STOP(tMma *env) { SystemDelayMs(100); } - Gsm_SetProfileERA(&env->egtsProcessing); + Gsm_SetProfileERA(&env->gsmWithGnss.gsmAt, &env->storage.nvm.deviceTeledataStorageData); } } @@ -91,16 +91,21 @@ void Mma_Shutdown(tMma *env) { } void Mma_EcallPrepare(tMma *env) { - AtGsm_OperatorSelectionDeregister(&env->gsmWithGnss.gsmAt); - SystemDelayMs(1000); - GsmWithGnss_SelectStandartNetwork(&env->gsmWithGnss.gsmAt, 12); - SystemDelayMs(1000); - GsmWithGnss_SelectStandartNetwork(&env->gsmWithGnss.gsmAt, 22); - SystemDelayMs(1000); - GsmWithGnss_SelectStandartNetwork(&env->gsmWithGnss.gsmAt, 25); - SystemDelayMs(1000); - AtGsm_OperatorSelectionDeregister(&env->gsmWithGnss.gsmAt); - AtGsmTelitLe910_GnssEcallOnlyMode(&env->gsmWithGnss.gsmAt, 0); + if (osMutexAcquire(env->gsmWithGnss.gsmAt.access, 5000) == osOK) { + AtGsm_OperatorSelectionDeregister(&env->gsmWithGnss.gsmAt); + SystemDelayMs(1000); + GsmWithGnss_SelectStandartNetwork(&env->gsmWithGnss.gsmAt, 12); + SystemDelayMs(1000); + GsmWithGnss_SelectStandartNetwork(&env->gsmWithGnss.gsmAt, 22); + SystemDelayMs(1000); + GsmWithGnss_SelectStandartNetwork(&env->gsmWithGnss.gsmAt, 25); + SystemDelayMs(1000); + AtGsm_OperatorSelectionDeregister(&env->gsmWithGnss.gsmAt); + AtGsmTelitLe910_GnssEcallOnlyMode(&env->gsmWithGnss.gsmAt, 0); + osMutexRelease(env->gsmWithGnss.gsmAt.access); + } else { + LoggerErrorStatic(LOGGER, LOG_SIGN, "Захватить мьютэкс Mma_EcallPrepare не удалось") + } }