добавлен вызов профиля ЭРА в симЧипе при налиние не обработаных МНД в памяти, для того, чтобы СМС раотали с профиля

This commit is contained in:
parent e00bf0b643
commit 42ec0decd9
2 changed files with 32 additions and 3 deletions

View File

@ -11,6 +11,7 @@
#include "AsciiStringAssmeblingUtils.h"
#include "AtGsmSms_DeleteAll.h"
#include "EgtsProcessing.h"
#include "AtGsmTelitLe910_DefinePdpContext.h"
//#include "testCan.h"
#define LOG_SIGN "Главн."
@ -243,10 +244,10 @@ void Mma_NetworkAndAudioRequire(tMma *env) {
LoggerInfoStatic(LOGGER, LOG_SIGN, "Поднимаем сигнал MUTE");
Pwm_SetMute(&env->power, true);
Gsm_SetProfileERA_mode(env);
LoggerInfoStatic(LOGGER, LOG_SIGN, "Включаем регистрацию в сети");
Mma_EcallPrepare(env);
GsmWithGnss_NetworkEnableInnaterups(&env->gsmWithGnss, 5, 60000);
// Mma_EcallPrepare(env);
GsmWithGnss_NetworkEnableInnaterups(&env->gsmWithGnss, 5, 120000);
}
static void Mma_NetworkAndAudioRelease(tMma *env) {
@ -259,6 +260,7 @@ static void Mma_NetworkAndAudioRelease(tMma *env) {
void Mma_EcallManual(tMma *env) {
EraGlonassUveos_SetTimings(&env->uveos);
Mma_SetMode(env, DEVICE_MODE_UVEOS_CALL_INITIATE);
Mma_NetworkAndAudioRequire(env);
GpioPinEnable(&env->power.pins->main.ecall);
@ -328,6 +330,7 @@ void Mma_EcallAutomatic(tMma *env, tUveosEmergencyEvent emergencyEvent) {
Pwm_AudioEnable(&env->power);
Mma_SetMode(env, DEVICE_MODE_UVEOS_CALL_INITIATE);
Mma_NetworkAndAudioRequire(env);
Mma_EcallPrepare(env);
GsmWithGnss_NetworkEnableInnaterups(&env->gsmWithGnss, 5, 250000);
Mma_NetworkAndAudioRequire(env);
@ -462,6 +465,25 @@ static void checkLastInMemTransmit(tMma *env) {
}
}
bool Gsm_SetProfileERA_mode(tMma *env) {
AtCommandResult res = AT_ERROR;
if (osMutexAcquire(env->gsmWithGnss.gsmAt.access, 5000) == osOK) {
#ifdef UVEOS_ADD_TELEMATICA
AtGsmTelitLe910_SimProfileSelect(&env->gsmWithGnss.gsmAt,
&env->storage.nvm.deviceTeledataStorageData.telematica.EGTS_PROFILE_SIM_ERA);
#endif
AtGsmTelitLe910_SIMCardNoDetect(&env->gsmWithGnss.gsmAt);
AtGsmTelitLe910_SIMCardDetect(&env->gsmWithGnss.gsmAt);
SystemDelayMs(1000);
osMutexRelease(env->gsmWithGnss.gsmAt.access);
}
return res == AT_OK;
}
static _Noreturn void Mma_Thread(tMma *env) {
RCC_EnableAPB1PeriphClk(RCC_APB1_PERIPH_PWR, ENABLE);
PWR_BackupAccessEnable(ENABLE);
@ -531,6 +553,11 @@ static _Noreturn void Mma_Thread(tMma *env) {
// Mma_SetNetworkRegistration(env, false);
volatile uint32_t noSendMsdCount = EraGlonassMsdTable_GetNoSendDataCount(env->uveos.msdTable);
if (noSendMsdCount > 0) {
#ifdef UVEOS_ADD_TELEMATICA
TELEMATICA_STOP(env);
#endif
Mma_NetworkAndAudioRequire(env);
Mma_EcallPrepare(env);
if (GsmWithGnss_NetworkEnableInnaterups(&env->gsmWithGnss, 4, 10000) == AT_OK) {
LoggerTraceStatic(LOGGER, LOG_SIGN, "Сеть включена")
EraGlonassUveos_ProcessingEra(&env->uveos);

View File

@ -20,6 +20,8 @@ void Mma_StartupAudioSubsystem(tMma *env);
void Mma_StartTestThreadStart(tMma *env);
bool Gsm_SetProfileERA_mode(tMma *env);
void Mma_InitStage(tMma *env);
void Mma_CheckShutdown(tMma *env, bool fastBlackOut) ;