diff --git a/skyward-boardcore b/skyward-boardcore index 48c4fa34e8f7e92da9cc5cd1abcfba4c3d134d74..b6387642f610fcb42c73780448130c319103f87f 160000 --- a/skyward-boardcore +++ b/skyward-boardcore @@ -1 +1 @@ -Subproject commit 48c4fa34e8f7e92da9cc5cd1abcfba4c3d134d74 +Subproject commit b6387642f610fcb42c73780448130c319103f87f diff --git a/src/boards/Main/StateMachines/ADAController/ADAController.cpp b/src/boards/Main/StateMachines/ADAController/ADAController.cpp index d85bbdfe8f35ed973b01cd867e00d257ac5782c5..0a3509d85862fb46773a9a7f52addd78faa773c9 100644 --- a/src/boards/Main/StateMachines/ADAController/ADAController.cpp +++ b/src/boards/Main/StateMachines/ADAController/ADAController.cpp @@ -238,18 +238,6 @@ void ADAController::calibrate() EventBroker::getInstance().post(ADA_READY, TOPIC_ADA); } -ADAControllerStatus ADAController::getStatus() -{ - PauseKernelLock lock; - return status; -} - -ADAState ADAController::getAdaState() -{ - PauseKernelLock lock; - return ada.getState(); -} - void ADAController::setDeploymentAltitude(float altitude) { deploymentAltitude = altitude; @@ -282,11 +270,25 @@ void ADAController::setReferenceValues(const ReferenceValues reference) ada.setReferenceValues(reference); } +ADAControllerStatus ADAController::getStatus() +{ + PauseKernelLock lock; + return status; +} + +ADAState ADAController::getAdaState() +{ + PauseKernelLock lock; + return ada.getState(); +} + ReferenceValues ADAController::getReferenceValues() { return ada.getReferenceValues(); } +float ADAController::getDeploymentAltitude() { return deploymentAltitude; } + void ADAController::state_idle(const Event& event) { switch (event) @@ -509,15 +511,16 @@ void ADAController::state_landed(const Event& event) } } +#ifdef HILSimulation void ADAController::setUpdateDataFunction( std::function<void(Boardcore::ADAState)> updateData) { this->updateData = updateData; } +#endif ADAController::ADAController() - : FSM(&ADAController::state_idle), ada(getADAKalmanConfig()), - updateData([](Boardcore::ADAState) {}) + : FSM(&ADAController::state_idle), ada(getADAKalmanConfig()) { EventBroker::getInstance().subscribe(this, TOPIC_ADA); EventBroker::getInstance().subscribe(this, TOPIC_FLIGHT); diff --git a/src/boards/Main/StateMachines/ADAController/ADAController.h b/src/boards/Main/StateMachines/ADAController/ADAController.h index a6740a992e7d6840dc7c8548d48c1b10bdd01d56..6cb0d4a346a80fb4ce53d03fe1c9232a0658d74b 100644 --- a/src/boards/Main/StateMachines/ADAController/ADAController.h +++ b/src/boards/Main/StateMachines/ADAController/ADAController.h @@ -52,6 +52,7 @@ public: ADAControllerStatus getStatus(); Boardcore::ADAState getAdaState(); Boardcore::ReferenceValues getReferenceValues(); + float getDeploymentAltitude(); void state_idle(const Boardcore::Event& event); void state_calibrating(const Boardcore::Event& event); @@ -64,8 +65,10 @@ public: void state_terminal_descent(const Boardcore::Event& event); void state_landed(const Boardcore::Event& event); +#ifdef HILSimulation void setUpdateDataFunction( std::function<void(Boardcore::ADAState)> updateData); +#endif private: ADAController(); @@ -87,7 +90,7 @@ private: float deploymentAltitude = ADAConfig::DEFAULT_DEPLOYMENT_ALTITUDE; Boardcore::PrintLogger logger = Boardcore::Logging::getLogger("main.ada"); - std::function<void(Boardcore::ADAState)> updateData; + std::function<void(Boardcore::ADAState)> updateData = nullptr; }; } // namespace Main diff --git a/src/boards/Main/TMRepository/TMRepository.cpp b/src/boards/Main/TMRepository/TMRepository.cpp index 0fe3a9b7ae21cc058bb36f2e1525af5487ec088a..4d4e03a0510f4602cd5a60be13dcd36005ebdee6 100644 --- a/src/boards/Main/TMRepository/TMRepository.cpp +++ b/src/boards/Main/TMRepository/TMRepository.cpp @@ -89,7 +89,6 @@ mavlink_message_t TMRepository::packSystemTm(SystemTMList tmId, uint8_t msgId, Deployment::getInstance().getStatus().state); tm.fmm_state = static_cast<uint8_t>( FlightModeManager::getInstance().getStatus().state); - tm.fsr_state = 0; tm.nas_state = static_cast<uint8_t>( NASController::getInstance().getStatus().state); @@ -150,9 +149,10 @@ mavlink_message_t TMRepository::packSystemTm(SystemTMList tmId, uint8_t msgId, { mavlink_ada_tm_t tm; - auto status = ADAController::getInstance().getStatus(); - auto state = ADAController::getInstance().getAdaState(); - auto ref = ADAController::getInstance().getReferenceValues(); + ADAController &ada = ADAController::getInstance(); + auto status = ada.getStatus(); + auto state = ada.getAdaState(); + auto ref = ada.getReferenceValues(); tm.timestamp = state.timestamp; tm.state = static_cast<uint8_t>(status.state); @@ -166,6 +166,7 @@ mavlink_message_t TMRepository::packSystemTm(SystemTMList tmId, uint8_t msgId, tm.msl_altitude = state.mslAltitude; tm.msl_pressure = ref.mslPressure; tm.msl_temperature = ref.mslTemperature; + tm.dpl_altitude = ada.getDeploymentAltitude(); mavlink_msg_ada_tm_encode(RadioConfig::MAV_SYSTEM_ID, RadioConfig::MAV_COMPONENT_ID, &msg, &tm); @@ -205,23 +206,6 @@ mavlink_message_t TMRepository::packSystemTm(SystemTMList tmId, uint8_t msgId, break; } - case SystemTMList::MAV_CAN_ID: // TODO - { - mavlink_can_tm_t tm; - - tm.timestamp = TimestampTimer::getTimestamp(); - tm.n_sent = 0; - tm.n_rcv = 0; - tm.last_sent = 0; - tm.last_sent_ts = 0; - tm.last_rcv = 0; - tm.last_rcv_ts = 0; - - mavlink_msg_can_tm_encode(RadioConfig::MAV_SYSTEM_ID, - RadioConfig::MAV_COMPONENT_ID, &msg, &tm); - - break; - } case SystemTMList::MAV_FLIGHT_ID: { mavlink_rocket_flight_tm_t tm; @@ -282,6 +266,9 @@ mavlink_message_t TMRepository::packSystemTm(SystemTMList tmId, uint8_t msgId, Actuators::getInstance().getServoAngle(AIR_BRAKES_SERVO); tm.abk_estimated_cd = 0; + // Load cell + tm.parachute_load = sensors.getLoadCellLastSample().load; + // NAS tm.nas_n = nasState.n; tm.nas_e = nasState.e; diff --git a/src/boards/Payload/TMRepository/TMRepository.cpp b/src/boards/Payload/TMRepository/TMRepository.cpp index 3d15abdaf5e0475823ab836153dbfcf9d9b4ad03..6121cf8a6a7c4de5619255d3bc5d872b20f5ef46 100644 --- a/src/boards/Payload/TMRepository/TMRepository.cpp +++ b/src/boards/Payload/TMRepository/TMRepository.cpp @@ -250,16 +250,6 @@ mavlink_message_t TMRepository::packSystemTm(SystemTMList tmId, uint8_t msgId, &msg, &tm); break; } - case SystemTMList::MAV_CAN_ID: - { - mavlink_can_tm_t tm; - - // TODO - - mavlink_msg_can_tm_encode(RadioConfig::MAV_SYSTEM_ID, - RadioConfig::MAV_COMPONENT_ID, &msg, &tm); - break; - } case SystemTMList::MAV_FSM_ID: { mavlink_fsm_tm_t tm; @@ -269,7 +259,6 @@ mavlink_message_t TMRepository::packSystemTm(SystemTMList tmId, uint8_t msgId, tm.ada_state = 0; tm.dpl_state = static_cast<uint8_t>( Deployment::getInstance().getStatus().state); - tm.fsr_state = 0; tm.fmm_state = static_cast<uint8_t>( FlightModeManager::getInstance().getStatus().state); tm.nas_state = static_cast<uint8_t>(