From 4753867552d24ae4e3e1d21597a92b209e315543 Mon Sep 17 00:00:00 2001 From: korolev Date: Fri, 17 Jan 2025 09:52:48 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D0=B0=D0=BB=D0=B3=D0=BE=D1=80=D0=B8=D1=82=D0=BC=20?= =?UTF-8?q?=D0=BE=D1=82=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20=D0=BD=D0=B5?= =?UTF-8?q?=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=D0=BD=D0=BD?= =?UTF-8?q?=D1=8B=D1=85=20=D1=8D=D0=BA=D1=81=D1=82=D1=80=D0=B5=D0=BD=D0=BD?= =?UTF-8?q?=D1=8B=D1=85=20=D1=81=D0=B8=D1=82=D1=83=D0=B0=D1=86=D0=B8=D0=B9?= =?UTF-8?q?=20=D0=BF=D0=BE=20=D0=B0=D0=BB=D1=8C=D1=82=D0=B5=D1=80=D0=BD?= =?UTF-8?q?=D0=B0=D1=82=D0=B8=D0=B2=D0=BD=D1=8B=D0=BC=20=D0=BA=D0=B0=D0=BD?= =?UTF-8?q?=D0=B0=D0=BB=D0=B0=D0=BC=20=D0=BD=D0=B0=D0=B7=D0=B5=D0=BC=D0=BD?= =?UTF-8?q?=D0=BE=D0=B9=20=D1=81=D0=B2=D1=8F=D0=B7=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MainModesArbiter.c | 57 +++++++++++++++++++++++++++++----------------- 1 file changed, 36 insertions(+), 21 deletions(-) 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