diff --git a/MainModesArbiter.c b/MainModesArbiter.c index c6d8080..53ee67a 100644 --- a/MainModesArbiter.c +++ b/MainModesArbiter.c @@ -7,10 +7,12 @@ void Mma_Init( tMma *env, tGpios *gpios, tSerialPorts *serialPorts, + tCanPorts *canPorts, tRtcs *rtcs ) { env->gpios = gpios; env->serialPorts = serialPorts; + env->canPorts = canPorts; env->rtcs = rtcs; InitThreadAtrStatic(&env->thread.attr, "Mma", env->thread.controlBlock, env->thread.stack, osPriorityNormal); diff --git a/MainModesArbiter.h b/MainModesArbiter.h index add0abc..df11aa8 100644 --- a/MainModesArbiter.h +++ b/MainModesArbiter.h @@ -13,15 +13,18 @@ //Подсистемы #include "PowerManagement.h" #include "Rtcs.h" +#include "CanPorts.h" #include "LoggerToSerialPort.h" #include "ComInt.h" #include "Indication.h" #include "CommandLines.h" +#include "ArbiterCommand.h" typedef struct { // Преферийные интерфесы tGpios *gpios; tSerialPorts *serialPorts; + tCanPorts *canPorts; tLoggerToSerialPort slog; tComInt comInt; @@ -33,6 +36,9 @@ typedef struct { tIndication Indication; + tTaskSerial TaskSerialUSB; + tTaskSerial TaskSerialUART; + struct { osThreadId_t id; uint32_t stack[2048 * 1]; @@ -49,6 +55,7 @@ void Mma_Init( tMma *env, tGpios *gpios, tSerialPorts *serialPorts, + tCanPorts *canPorts, tRtcs *rtcs ); diff --git a/MainModesArbiter_InitStage.c b/MainModesArbiter_InitStage.c index b01f4e2..e6b5049 100644 --- a/MainModesArbiter_InitStage.c +++ b/MainModesArbiter_InitStage.c @@ -51,6 +51,23 @@ static void Mma_InitSubSystems(tMma *env) { CommandLine_Init(&env->cli, &env->serialPorts->cliVirtualInIo); CommandLine_StartThread(&env->cli); + + TaskSerialUSB_Init(&env->TaskSerialUSB, + 0, + &env->serialPorts->SerialPortUsbIO, + &env->canPorts->Can1_IO + ); + TaskSerialUSB_StartThread(&env->TaskSerialUSB); + + + TaskSerialUART_Init(&env->TaskSerialUART, + 0, + &env->serialPorts->Rs232_IO, + &env->canPorts->Can1_IO + ); + + TaskSerialUART_StartThread(&env->TaskSerialUART); + LoggerInfoStatic(&env->slog.logger, LOG_TASK_MAIN, "Конец инициализации подсистем") }