From 28b35058859c1dfadcade2a65d376ac43d106e27 Mon Sep 17 00:00:00 2001 From: Alberto Nidasio <alberto.nidasio@skywarder.eu> Date: Thu, 8 Sep 2022 12:16:39 +0000 Subject: [PATCH] [CanHandler] Added liftoff and apogee events over CAN --- .vscode/settings.json | 3 ++- src/boards/Main/CanHandler/CanHandler.cpp | 18 ++++++++++++++++++ src/boards/Main/CanHandler/CanHandler.h | 6 ++---- src/boards/Main/Configs/CanHandlerConfig.h | 5 ++++- src/boards/Payload/Configs/CanHandlerConfig.h | 6 ++++-- 5 files changed, 30 insertions(+), 8 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index befe29ab7..d64d9495c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -132,10 +132,11 @@ "Setpoint", "stateinitializer", "telecommands", + "TMTC", "UBXGPS", "usart", "VREF", "Xbee" ], "C_Cpp.errorSquiggles": "Enabled" -} \ No newline at end of file +} diff --git a/src/boards/Main/CanHandler/CanHandler.cpp b/src/boards/Main/CanHandler/CanHandler.cpp index 46efa01b6..4fae63374 100644 --- a/src/boards/Main/CanHandler/CanHandler.cpp +++ b/src/boards/Main/CanHandler/CanHandler.cpp @@ -78,6 +78,24 @@ void CanHandler::sendCamOffEvent() static_cast<uint8_t>(EventId::CAM_OFF)); } +void CanHandler::sendLiftoffEvent() +{ + protocol->enqueueEvent(static_cast<uint8_t>(Priority::CRITICAL), + static_cast<uint8_t>(PrimaryType::EVENTS), + static_cast<uint8_t>(Board::MAIN), + static_cast<uint8_t>(Board::BROADCAST), + static_cast<uint8_t>(EventId::LIFTOFF)); +} + +void CanHandler::sendApogeeEvent() +{ + protocol->enqueueEvent(static_cast<uint8_t>(Priority::CRITICAL), + static_cast<uint8_t>(PrimaryType::EVENTS), + static_cast<uint8_t>(Board::MAIN), + static_cast<uint8_t>(Board::BROADCAST), + static_cast<uint8_t>(EventId::APOGEE)); +} + CanHandler::CanHandler() { CanbusDriver::AutoBitTiming bitTiming; diff --git a/src/boards/Main/CanHandler/CanHandler.h b/src/boards/Main/CanHandler/CanHandler.h index 13c4892b5..9cddaf6d8 100644 --- a/src/boards/Main/CanHandler/CanHandler.h +++ b/src/boards/Main/CanHandler/CanHandler.h @@ -39,16 +39,14 @@ public: bool isStarted(); // Boardcore::Canbus::CanRXStatus getCanStatus(); - // void logStatus(); void sendArmEvent(); - void sendDisarmEvent(); - void sendCamOnEvent(); - void sendCamOffEvent(); + void sendLiftoffEvent(); + void sendApogeeEvent(); private: CanHandler(); diff --git a/src/boards/Main/Configs/CanHandlerConfig.h b/src/boards/Main/Configs/CanHandlerConfig.h index eabb10165..520136a11 100644 --- a/src/boards/Main/Configs/CanHandlerConfig.h +++ b/src/boards/Main/Configs/CanHandlerConfig.h @@ -34,6 +34,7 @@ namespace Main namespace CanHandlerConfig { + static const std::map<Common::CanConfig::EventId, Common::Events> eventToEvent{ {Common::CanConfig::EventId::ARM, Common::TMTC_ARM}, {Common::CanConfig::EventId::DISARM, Common::TMTC_DISARM}, @@ -47,8 +48,10 @@ static const std::map<Common::Events, std::function<void(CanHandler *)>> {Common::TMTC_DISARM, &CanHandler::sendDisarmEvent}, {Common::TMTC_START_RECORDING, &CanHandler::sendCamOnEvent}, {Common::TMTC_STOP_RECORDING, &CanHandler::sendCamOffEvent}, + {Common::FLIGHT_LIFTOFF, &CanHandler::sendLiftoffEvent}, + {Common::FLIGHT_APOGEE_DETECTED, &CanHandler::sendApogeeEvent}, }; } // namespace CanHandlerConfig -} // namespace Main \ No newline at end of file +} // namespace Main diff --git a/src/boards/Payload/Configs/CanHandlerConfig.h b/src/boards/Payload/Configs/CanHandlerConfig.h index 37b09d2d8..00105bffa 100644 --- a/src/boards/Payload/Configs/CanHandlerConfig.h +++ b/src/boards/Payload/Configs/CanHandlerConfig.h @@ -34,12 +34,14 @@ namespace Payload namespace CanHandlerConfig { + static const std::map<Common::CanConfig::EventId, Common::Events> eventToEvent{ {Common::CanConfig::EventId::ARM, Common::TMTC_ARM}, {Common::CanConfig::EventId::DISARM, Common::TMTC_DISARM}, - {Common::CanConfig::EventId::LIFTOFF, Common::TMTC_FORCE_LAUNCH}, {Common::CanConfig::EventId::CAM_ON, Common::TMTC_START_RECORDING}, {Common::CanConfig::EventId::CAM_OFF, Common::TMTC_STOP_RECORDING}, + {Common::CanConfig::EventId::LIFTOFF, Common::TMTC_FORCE_LAUNCH}, + {Common::CanConfig::EventId::APOGEE, Common::TMTC_FORCE_APOGEE}, }; static const std::map<Common::Events, std::function<void(CanHandler *)>> @@ -52,4 +54,4 @@ static const std::map<Common::Events, std::function<void(CanHandler *)>> } // namespace CanHandlerConfig -} // namespace Payload \ No newline at end of file +} // namespace Payload -- GitLab