diff --git a/MainModesArbiter.c b/MainModesArbiter.c index caf9120..de214e7 100644 --- a/MainModesArbiter.c +++ b/MainModesArbiter.c @@ -646,28 +646,43 @@ static _Noreturn void Mma_Thread(tMma *env) { Mma_SetMode(env, indicationState); + if(env->uveos.timings.lastInMemTransmit < SystemGetMs()){ + LoggerInfoStatic(LOGGER, LOG_SIGN, "Периодическая проверка необходимости повторной отправки МНД"); -// if(env->uveos.timings.lastInMemTransmit < SystemGetMs()){ -// LoggerInfoStatic(LOGGER, LOG_SIGN, "Периодическая проверка необходимости повторной отправки МНД"); -// tEraGlonassMsdTableItem *item = NULL; -// -// volatile uint8_t noSendMsdCount = EraGlonassMsdTable_GetNoSendDataCount(env->uveos.msdTable); -// if(noSendMsdCount > 0) { -// GsmWithGnss_InvalidateNetworkEnable(&env->gsmWithGnss, 0, true); -// } -//// GsmWithGnss_WaitNetworkRegistration(&env->gsmWithGnss, 5000); -//// EraGlonassUveos_ProcessingCheckNoSendMSD(&env->uveos); -// if ( GsmWithGnss_WaitNetworkRegistration(&env->gsmWithGnss, 20000) ) { -// LoggerInfoStatic(LOGGER, LOG_SIGN, "Сеть присутствует"); -// EraGlonassUveos_ProcessingCheckNoSendMSD(&env->uveos); -// } else { -// LoggerInfoStatic(LOGGER, LOG_SIGN, "Периодическая проверка необходимости повторной отправки МНД не выполнена"); -// LoggerInfoStatic(LOGGER, LOG_SIGN, "Сеть или сим-чип отсутствует"); -// } -// LoggerInfoStatic(LOGGER, LOG_SIGN, "Время периодическая проверки повторной отправки МНД обновлено"); -// env->uveos.timings.lastInMemTransmit = -// SystemGetMs() + (env->uveos.settings->INT_MEM_TRANSMIT_INTERVAL * 60 * 1000); -// } + noSendMsdCount = EraGlonassMsdTable_GetNoSendDataCount(env->uveos.msdTable); + if (noSendMsdCount > 0) { + LoggerInfoStatic(LOGGER, LOG_SIGN, "Проверка регистрации в сети"); + if (GsmWithGnss_WaitNetworkRegistration(&env->gsmWithGnss, 2000)) { + LoggerInfoStatic(LOGGER, LOG_SIGN, "Сеть присутствует"); + EraGlonassUveos_ProcessingCheckNoSendMSD(&env->uveos); + LoggerInfoStatic(LOGGER, LOG_SIGN, "Удаление всех СМС..."); + AtGsmSms_DeleteAll(&env->gsmWithGnss.gsmAt); + SystemDelayMs(500); + AtGsmSms_DeleteAll(&env->gsmWithGnss.gsmAt); + LoggerInfoStatic(LOGGER, LOG_SIGN, "Удаление СМС выполнено"); + } else { + LoggerInfoStatic(LOGGER, LOG_SIGN, "Сеть или сим-чип отсутствует, попытка регистрации..."); + if (GsmWithGnss_NetworkEnableInnaterups(&env->gsmWithGnss, 5,40000) == AT_OK) { + LoggerTraceStatic(LOGGER, LOG_SIGN, "Сеть присутствует") + EraGlonassUveos_ProcessingCheckNoSendMSD(&env->uveos); + LoggerInfoStatic(LOGGER, LOG_SIGN, "Удаление всех СМС..."); + AtGsmSms_DeleteAll(&env->gsmWithGnss.gsmAt); + SystemDelayMs(500); + AtGsmSms_DeleteAll(&env->gsmWithGnss.gsmAt); + LoggerInfoStatic(LOGGER, LOG_SIGN, "Удаление СМС выполнено"); + } else { + LoggerInfoStatic(LOGGER, LOG_SIGN, + "Периодическая проверка необходимости повторной отправки МНД не выполнена"); + LoggerInfoStatic(LOGGER, LOG_SIGN, "Сеть или сим-чип отсутствует"); + } + } + LoggerTraceStatic(LOGGER, LOG_SIGN, "Обработка не отправленных МНД выполнена") + } + + env->uveos.timings.lastInMemTransmit = + SystemGetMs() + (env->uveos.settings->INT_MEM_TRANSMIT_INTERVAL * 60 * 1000); + LoggerInfoStatic(LOGGER, LOG_SIGN, "Время периодическая проверки повторной отправки МНД обновлено"); + } #ifdef UVEOS_ADD_TELEMATICA