Исправлена инициализация и основной цикл задачи

This commit is contained in:
cfif 2024-12-18 18:03:06 +03:00
parent 1f74f2206c
commit 6c947a0476
3 changed files with 35 additions and 6 deletions

View File

@ -544,7 +544,7 @@ static _Noreturn void Mma_Thread(tMma *env) {
} }
/*
Pwm_AudioDisable(&env->power); Pwm_AudioDisable(&env->power);
LoggerTraceStatic(LOGGER, LOG_SIGN, "Звуковой усилитель отключён") LoggerTraceStatic(LOGGER, LOG_SIGN, "Звуковой усилитель отключён")
AtGsm_OperatorSelectionDeregister(&env->gsmWithGnss.gsmAt); AtGsm_OperatorSelectionDeregister(&env->gsmWithGnss.gsmAt);
@ -553,6 +553,9 @@ static _Noreturn void Mma_Thread(tMma *env) {
SystemDelayMs(2000); SystemDelayMs(2000);
GsmWithGnss_SelectStandartNetwork(&env->gsmWithGnss.gsmAt, 25); GsmWithGnss_SelectStandartNetwork(&env->gsmWithGnss.gsmAt, 25);
// Mma_StartTestThreadStart(env); // Mma_StartTestThreadStart(env);
*/
SystemDelayMs(100);
for (;;) { for (;;) {
Mma_ColorBip(env); Mma_ColorBip(env);
@ -561,6 +564,11 @@ static _Noreturn void Mma_Thread(tMma *env) {
if (env->storage.runtime.EGTS_FLEET_ON == false) { if (env->storage.runtime.EGTS_FLEET_ON == false) {
Mma_gnssUpdate(env, &indicationState); Mma_gnssUpdate(env, &indicationState);
} else { } 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) { if (osMutexAcquire(env->gsmWithGnss.gsmAt.access, 1000) == osOK) {
AtGsm_Gsnss_GetNMEA_Pack(&env->gsmWithGnss, 400); AtGsm_Gsnss_GetNMEA_Pack(&env->gsmWithGnss, 400);
osMutexRelease(env->gsmWithGnss.gsmAt.access); osMutexRelease(env->gsmWithGnss.gsmAt.access);
@ -575,8 +583,12 @@ static _Noreturn void Mma_Thread(tMma *env) {
Mma_gnssUpdate(env, &indicationState); Mma_gnssUpdate(env, &indicationState);
#endif #endif
#ifdef UVEOS_ADD_TELEMATICA
if (env->storage.runtime.EGTS_FLEET_ON == false) {
LoggerTraceStatic(LOGGER, LOG_SIGN, "Начало итерации главного цикла") LoggerTraceStatic(LOGGER, LOG_SIGN, "Начало итерации главного цикла")
LoggerTraceStatic(LOGGER, LOG_SIGN, "Проверяем нужна ли сеть...") LoggerTraceStatic(LOGGER, LOG_SIGN, "Проверяем нужна ли сеть...")
if (EraGlonassUveos_IsRequireNetwork(&env->uveos)) { if (EraGlonassUveos_IsRequireNetwork(&env->uveos)) {
LoggerTraceStatic(LOGGER, LOG_SIGN, "Нужна, подключаемся") LoggerTraceStatic(LOGGER, LOG_SIGN, "Нужна, подключаемся")
Mma_SetNetworkRegistration(env, true); Mma_SetNetworkRegistration(env, true);
@ -584,6 +596,21 @@ static _Noreturn void Mma_Thread(tMma *env) {
LoggerTraceStatic(LOGGER, LOG_SIGN, "Ненужна, отключаемся") LoggerTraceStatic(LOGGER, LOG_SIGN, "Ненужна, отключаемся")
Mma_SetNetworkRegistration(env, false); 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);
} else {
LoggerTraceStatic(LOGGER, LOG_SIGN, "Ненужна, отключаемся")
Mma_SetNetworkRegistration(env, false);
}
#endif
LoggerTraceStatic(LOGGER, LOG_SIGN, "Выполняем постоянный тест") LoggerTraceStatic(LOGGER, LOG_SIGN, "Выполняем постоянный тест")
if (DeviceTesting_Always(&env->testing)) { if (DeviceTesting_Always(&env->testing)) {
@ -596,8 +623,10 @@ static _Noreturn void Mma_Thread(tMma *env) {
LoggerTraceStatic(LOGGER, LOG_SIGN, "Обновляем статус индикации") LoggerTraceStatic(LOGGER, LOG_SIGN, "Обновляем статус индикации")
}; };
Mma_SetMode(env, indicationState); Mma_SetMode(env, indicationState);
// if(env->uveos.timings.lastInMemTransmit < SystemGetMs()){ // if(env->uveos.timings.lastInMemTransmit < SystemGetMs()){
// LoggerInfoStatic(LOGGER, LOG_SIGN, "Периодическая проверка необходимости повторной отправки МНД"); // LoggerInfoStatic(LOGGER, LOG_SIGN, "Периодическая проверка необходимости повторной отправки МНД");
// tEraGlonassMsdTableItem *item = NULL; // tEraGlonassMsdTableItem *item = NULL;

View File

@ -66,7 +66,7 @@ typedef struct {
tUserInput userInput; tUserInput userInput;
tUserIndication indication; tUserIndication indication;
tComInt comInt; tComInt comInt;
tCli cli; // tCli cli;
tCli cliVrt; tCli cliVrt;
tDeviceTesting testing; tDeviceTesting testing;
@ -78,7 +78,7 @@ typedef struct {
struct { struct {
osThreadId_t id; osThreadId_t id;
uint32_t stack[4048]; //4048 6072 uint32_t stack[2048]; //4048 6072
StaticTask_t controlBlock; StaticTask_t controlBlock;
osThreadAttr_t attr; osThreadAttr_t attr;
} thread; } thread;

View File

@ -276,7 +276,7 @@ static void Mma_InitSubSystems(tMma *env) {
&env->power, &env->gsmWithGnss, &env->power, &env->gsmWithGnss,
&env->uveos &env->uveos
); );
/*
Cli_Init( Cli_Init(
&env->cli, &env->cli,
&env->serialPorts->DebugIO, &env->serialPorts->DebugIO,
@ -293,7 +293,7 @@ static void Mma_InitSubSystems(tMma *env) {
&env->gsmWithGnss, &env->gsmWithGnss,
&env->uveos &env->uveos
); );
*/
Mma_InitComInt(env, &env->storage.nvm.device.serialNumber.value, &env->storage.publicVariablesTable); Mma_InitComInt(env, &env->storage.nvm.device.serialNumber.value, &env->storage.publicVariablesTable);
LoggerInfoStatic(LOGGER, LOG_SIGN, "Инициализация подсистем завершена") LoggerInfoStatic(LOGGER, LOG_SIGN, "Инициализация подсистем завершена")
} }
@ -305,7 +305,7 @@ static void Mma_RunSubThreads(tMma *env) {
Accel_StartThread(&env->accel); Accel_StartThread(&env->accel);
CrashDetection_StartThread(&env->crashDetect); CrashDetection_StartThread(&env->crashDetect);
Cli_StartThread(&env->cli); //++ Cli_StartThread(&env->cli);
Cli_StartThread(&env->cliVrt); Cli_StartThread(&env->cliVrt);
UserInput_StartThread(&env->userInput); UserInput_StartThread(&env->userInput);