diff --git a/MainModesArbiter.c b/MainModesArbiter.c index 66151fc..321041e 100644 --- a/MainModesArbiter.c +++ b/MainModesArbiter.c @@ -544,7 +544,7 @@ static _Noreturn void Mma_Thread(tMma *env) { } - +/* Pwm_AudioDisable(&env->power); LoggerTraceStatic(LOGGER, LOG_SIGN, "Звуковой усилитель отключён") AtGsm_OperatorSelectionDeregister(&env->gsmWithGnss.gsmAt); @@ -553,6 +553,9 @@ static _Noreturn void Mma_Thread(tMma *env) { SystemDelayMs(2000); GsmWithGnss_SelectStandartNetwork(&env->gsmWithGnss.gsmAt, 25); // Mma_StartTestThreadStart(env); +*/ + SystemDelayMs(100); + for (;;) { Mma_ColorBip(env); @@ -561,6 +564,11 @@ static _Noreturn void Mma_Thread(tMma *env) { if (env->storage.runtime.EGTS_FLEET_ON == false) { Mma_gnssUpdate(env, &indicationState); } else { + + indicationState = GsmWithGnss_IsGnssReady(&env->gsmWithGnss) ? + DEVICE_MODE_UVEOS_ERA_GNSS_READY : + DEVICE_MODE_UVEOS_ERA_WAIT_GNSS; + if (osMutexAcquire(env->gsmWithGnss.gsmAt.access, 1000) == osOK) { AtGsm_Gsnss_GetNMEA_Pack(&env->gsmWithGnss, 400); osMutexRelease(env->gsmWithGnss.gsmAt.access); @@ -575,8 +583,26 @@ static _Noreturn void Mma_Thread(tMma *env) { Mma_gnssUpdate(env, &indicationState); #endif + +#ifdef UVEOS_ADD_TELEMATICA + if (env->storage.runtime.EGTS_FLEET_ON == false) { + LoggerTraceStatic(LOGGER, LOG_SIGN, "Начало итерации главного цикла") + LoggerTraceStatic(LOGGER, LOG_SIGN, "Проверяем нужна ли сеть...") + + if (EraGlonassUveos_IsRequireNetwork(&env->uveos)) { + LoggerTraceStatic(LOGGER, LOG_SIGN, "Нужна, подключаемся") + Mma_SetNetworkRegistration(env, true); + } else { + LoggerTraceStatic(LOGGER, LOG_SIGN, "Ненужна, отключаемся") + Mma_SetNetworkRegistration(env, false); + } + } +#endif + +#ifndef UVEOS_ADD_TELEMATICA LoggerTraceStatic(LOGGER, LOG_SIGN, "Начало итерации главного цикла") LoggerTraceStatic(LOGGER, LOG_SIGN, "Проверяем нужна ли сеть...") + if (EraGlonassUveos_IsRequireNetwork(&env->uveos)) { LoggerTraceStatic(LOGGER, LOG_SIGN, "Нужна, подключаемся") Mma_SetNetworkRegistration(env, true); @@ -584,6 +610,7 @@ static _Noreturn void Mma_Thread(tMma *env) { LoggerTraceStatic(LOGGER, LOG_SIGN, "Ненужна, отключаемся") Mma_SetNetworkRegistration(env, false); } +#endif LoggerTraceStatic(LOGGER, LOG_SIGN, "Выполняем постоянный тест") if (DeviceTesting_Always(&env->testing)) { @@ -596,8 +623,10 @@ static _Noreturn void Mma_Thread(tMma *env) { LoggerTraceStatic(LOGGER, LOG_SIGN, "Обновляем статус индикации") }; + Mma_SetMode(env, indicationState); + // if(env->uveos.timings.lastInMemTransmit < SystemGetMs()){ // LoggerInfoStatic(LOGGER, LOG_SIGN, "Периодическая проверка необходимости повторной отправки МНД"); // tEraGlonassMsdTableItem *item = NULL; diff --git a/MainModesArbiter.h b/MainModesArbiter.h index ac1aefa..4c31130 100644 --- a/MainModesArbiter.h +++ b/MainModesArbiter.h @@ -66,7 +66,7 @@ typedef struct { tUserInput userInput; tUserIndication indication; tComInt comInt; - tCli cli; +// tCli cli; tCli cliVrt; tDeviceTesting testing; @@ -78,7 +78,7 @@ typedef struct { struct { osThreadId_t id; - uint32_t stack[4048]; //4048 6072 + uint32_t stack[2048]; //4048 6072 StaticTask_t controlBlock; osThreadAttr_t attr; } thread; diff --git a/MainModesArbiter_InitStage.c b/MainModesArbiter_InitStage.c index 5b31fb1..955d11a 100644 --- a/MainModesArbiter_InitStage.c +++ b/MainModesArbiter_InitStage.c @@ -276,7 +276,7 @@ static void Mma_InitSubSystems(tMma *env) { &env->power, &env->gsmWithGnss, &env->uveos ); - +/* Cli_Init( &env->cli, &env->serialPorts->DebugIO, @@ -293,7 +293,7 @@ static void Mma_InitSubSystems(tMma *env) { &env->gsmWithGnss, &env->uveos ); - +*/ Mma_InitComInt(env, &env->storage.nvm.device.serialNumber.value, &env->storage.publicVariablesTable); LoggerInfoStatic(LOGGER, LOG_SIGN, "Инициализация подсистем завершена") } @@ -305,7 +305,7 @@ static void Mma_RunSubThreads(tMma *env) { Accel_StartThread(&env->accel); CrashDetection_StartThread(&env->crashDetect); - Cli_StartThread(&env->cli); +//++ Cli_StartThread(&env->cli); Cli_StartThread(&env->cliVrt); UserInput_StartThread(&env->userInput);