diff --git a/MainModesArbiter.c b/MainModesArbiter.c index b910fe8..694e24d 100644 --- a/MainModesArbiter.c +++ b/MainModesArbiter.c @@ -375,8 +375,6 @@ static _Noreturn void Mma_Thread(tMma *env) { //Запуск устройства Mma_InitStage(env); - GsmWithGnss_StartRMCThread2(&env->gsmWithGnss.gsmAt); - EgtsProcessing_Init( &env->egtsProcessing, &env->storage, @@ -388,7 +386,7 @@ static _Noreturn void Mma_Thread(tMma *env) { EgtsProcessing_Start(&env->egtsProcessing); - size_t size = xPortGetMinimumEverFreeHeapSize(); + volatile size_t size = xPortGetMinimumEverFreeHeapSize(); uint32_t sizeStorage = sizeof(tDeviceDataNonVolatile); LoggerStrFormatInfo(LOGGER, LOG_SIGN, "Свободно %u байт в куче. Размер хранилища %u", size, sizeStorage); @@ -450,12 +448,35 @@ static _Noreturn void Mma_Thread(tMma *env) { Pwm_AudioDisable(&env->power); LoggerTraceStatic(LOGGER, LOG_SIGN, "Звуковой усилитель отключён") + SystemDelayMs(2000); + // Mma_StartTestThreadStart(env); for (;;) { + + Mma_ColorBip(env); - Mma_gnssUpdate(env, &indicationState); -// + + if (env->storage.runtime.EGTS_FLEET_ON == false) { + + if (osMutexAcquire(env->gsmWithGnss.gsmAt.access, 1000) == osOK) { + Mma_gnssUpdate(env, &indicationState); + osMutexRelease(env->gsmWithGnss.gsmAt.access); + } else { + LoggerTraceStatic(LOGGER, LOG_SIGN, "Ошибка доступа (1)") + } + + } else { + if (osMutexAcquire(env->gsmWithGnss.gsmAt.access, 1000) == osOK) { + AtGsm_Gsnss_GetNMEA_Pack(&env->gsmWithGnss, 400); + osMutexRelease(env->gsmWithGnss.gsmAt.access); + SystemDelayMs(1000); + } else { + LoggerTraceStatic(LOGGER, LOG_SIGN, "Ошибка доступа (2)") + } + } + + /* diff --git a/MainModesArbiter.h b/MainModesArbiter.h index c2f668c..12bc5fc 100644 --- a/MainModesArbiter.h +++ b/MainModesArbiter.h @@ -74,7 +74,8 @@ typedef struct { struct { osThreadId_t id; - uint32_t stack[4048]; //4048 6072 + // ++++++CFIF + uint32_t stack[2500]; //4048 6072 StaticTask_t controlBlock; osThreadAttr_t attr; } thread; diff --git a/MainModesArbiter_InitStage.c b/MainModesArbiter_InitStage.c index 7cca378..6fdc3ef 100644 --- a/MainModesArbiter_InitStage.c +++ b/MainModesArbiter_InitStage.c @@ -303,12 +303,12 @@ static void Mma_RunSubThreads(tMma *env) { VarsTabDumpObserver_StartThread(&env->storage.dumpObserver); Accel_StartThread(&env->accel); - CrashDetection_StartThread(&env->crashDetect); +// CrashDetection_StartThread(&env->crashDetect); /* Cli_StartThread(&env->cli); Cli_StartThread(&env->cliVrt); */ - UserInput_StartThread(&env->userInput); +// UserInput_StartThread(&env->userInput); ComInt_StartThread(&env->comInt); @@ -382,6 +382,7 @@ static void Mma_InitAndRunIndication(tMma *env) { void Mma_ColorBip(tMma *env) { + if (!GpioPinGet(&env->power.pins->main.ignition)) { env->flIgn = false; } else if ((GpioPinGet(&env->power.pins->main.ignition)) && (env->flIgn == false)) {