diff --git a/CommunicationSystemsSubmodule b/CommunicationSystemsSubmodule index 9fb7b8a..df4e123 160000 --- a/CommunicationSystemsSubmodule +++ b/CommunicationSystemsSubmodule @@ -1 +1 @@ -Subproject commit 9fb7b8a5c4e1b40baff4d47704290b106aa0e2cc +Subproject commit df4e1239a4470632f1339133de7ac1fe27f974b1 diff --git a/Components/Communication/CANMessageHandler.cpp b/Components/Communication/CANMessageHandler.cpp index 8fa8801..9a73231 100644 --- a/Components/Communication/CANMessageHandler.cpp +++ b/Components/Communication/CANMessageHandler.cpp @@ -89,5 +89,15 @@ bool CANTask::HandleCANCommands() { } } + { + RPB_IRCTRAMP_SET_COMMAND cmd; + if(dau.ReadMessageByLogIndex(_RPB_IRCTRAMP_SET_COMMAND_LOGINDEX, (uint8_t*)&cmd,sizeof(cmd))) { + SOAR_PRINT("got irc tramp cmd\n"); + Command cm = {TASK_SPECIFIC_COMMAND,CAMERA_COMMAND_IRC_TRAMP}; + cm.CopyDataToCommand((uint8_t*)&cmd, sizeof(cmd)); + CameraTask::Inst().SendCommandReference(cm); + } + } + return foundone; }; diff --git a/Components/PeriphTasks/CameraTask.cpp b/Components/PeriphTasks/CameraTask.cpp index c014eaa..0bd3120 100644 --- a/Components/PeriphTasks/CameraTask.cpp +++ b/Components/PeriphTasks/CameraTask.cpp @@ -78,8 +78,10 @@ void CameraTask::Run(void *pvParams) osdDriver.OSD_WriteCustomCharacter(0xE3, callsign_tile_3); osdDriver.OSD_WriteCustomCharacter(0xE4, callsign_tile_4); + muxDriver.Enable(); muxDriver.Select(Camera::CAMERA2); + while (1) { /* Process commands */ @@ -245,6 +247,17 @@ void CameraTask::HandleCommand(Command &cm) } break; } + case CAMERA_COMMAND_IRC_TRAMP: { + RPB_IRCTRAMP_SET_COMMAND cmd = *(RPB_IRCTRAMP_SET_COMMAND*)cm.GetDataPointer(); + if(cmd.setFreq) { + IRCTramp::SetVTXFrequency(cmd.freq, UART5); + osDelay(10); + } + if(cmd.setPower) { + IRCTramp::SetVTXPower(cmd.power, UART5); + } + break; + } default: SOAR_PRINT("CameraTask - Received Unsupported Task Command {%d}\n", cm.GetTaskCommand()); break; diff --git a/Components/PeriphTasks/Inc/CameraTask.hpp b/Components/PeriphTasks/Inc/CameraTask.hpp index 5f7ffc3..9369e62 100644 --- a/Components/PeriphTasks/Inc/CameraTask.hpp +++ b/Components/PeriphTasks/Inc/CameraTask.hpp @@ -27,7 +27,8 @@ enum CAMERA_TASK_COMMANDS CAMERA_COMMAND_START_RECORDING, CAMERA_COMMAND_STOP_RECORDING, CAMERA_COMMAND_POWER_ON, - CAMERA_COMMAND_POWER_OFF + CAMERA_COMMAND_POWER_OFF, + CAMERA_COMMAND_IRC_TRAMP }; /* Macros ------------------------------------------------------------------*/ diff --git a/Core/Src/main.c b/Core/Src/main.c index c1af1b0..9c765a5 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -530,7 +530,7 @@ static void MX_UART5_Init(void) /* USER CODE END UART5_Init 1 */ USART_InitStruct.PrescalerValue = LL_USART_PRESCALER_DIV1; - USART_InitStruct.BaudRate = 115200; + USART_InitStruct.BaudRate = 9600; USART_InitStruct.DataWidth = LL_USART_DATAWIDTH_8B; USART_InitStruct.StopBits = LL_USART_STOPBITS_1; USART_InitStruct.Parity = LL_USART_PARITY_NONE; diff --git a/RPB.ioc b/RPB.ioc index 5ef3241..f05d09e 100644 --- a/RPB.ioc +++ b/RPB.ioc @@ -347,6 +347,8 @@ SPI2.VirtualType=VM_MASTER TIM3.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1 TIM3.IPParameters=Channel-PWM Generation1 CH1,Prescaler TIM3.Prescaler=16 +UART5.BaudRate=9600 +UART5.IPParameters=BaudRate USART1.IPParameters=VirtualMode-Asynchronous USART1.VirtualMode-Asynchronous=VM_ASYNC USART2.IPParameters=VirtualMode-Asynchronous diff --git a/SoarDrivers b/SoarDrivers index f3b1e9d..f8ed3ba 160000 --- a/SoarDrivers +++ b/SoarDrivers @@ -1 +1 @@ -Subproject commit f3b1e9de3797ff512853d1f1efc6139afaf4dad1 +Subproject commit f8ed3ba7c6b90ecd2a3c24916e28a4542f567056