diff --git a/src/boards/Parafoil/Radio/Radio.cpp b/src/boards/Parafoil/Radio/Radio.cpp index 9d6bf189ca62987ec285cf58e9da4ef705689edd..f545c66fe7d7f8dd608c02bc45851edc1d1cee79 100644 --- a/src/boards/Parafoil/Radio/Radio.cpp +++ b/src/boards/Parafoil/Radio/Radio.cpp @@ -119,7 +119,7 @@ void Radio::sendNack(const mavlink_message_t& msg) mavlink_message_t nackMsg; mavlink_msg_nack_tm_pack(RadioConfig::MAV_SYSTEM_ID, RadioConfig::MAV_COMP_ID, &nackMsg, msg.msgid, - msg.seq, 0); + msg.seq); enqueueMsg(nackMsg); } @@ -237,13 +237,14 @@ void Radio::handleMavlinkMessage(const mavlink_message_t& msg) for (SensorInfo i : sensorsState) { strcpy(tm.sensor_name, i.id.c_str()); + tm.state = 0; if (i.isEnabled) { - tm.enabled = 1; + tm.state += 1; } if (i.isInitialized) { - tm.initialized = 1; + tm.state += 2; } mavlink_msg_sensor_state_tm_encode( RadioConfig::MAV_SYSTEM_ID, RadioConfig::MAV_COMP_ID, @@ -492,7 +493,7 @@ void Radio::handleCommand(const mavlink_message_t& msg) {MAV_CMD_FORCE_INIT, TMTC_FORCE_INIT}, {MAV_CMD_FORCE_LAUNCH, TMTC_FORCE_LAUNCH}, {MAV_CMD_FORCE_LANDING, TMTC_FORCE_LANDING}, - // {MAV_CMD_FORCE_APOGEE, TMTC_FORCE_APOGEE}, + {MAV_CMD_FORCE_APOGEE, TMTC_FORCE_APOGEE}, {MAV_CMD_FORCE_EXPULSION, TMTC_FORCE_EXPULSION}, {MAV_CMD_FORCE_DEPLOYMENT, TMTC_FORCE_DEPLOYMENT}, {MAV_CMD_START_LOGGING, TMTC_START_LOGGING}, diff --git a/src/boards/Parafoil/TMRepository/TMRepository.cpp b/src/boards/Parafoil/TMRepository/TMRepository.cpp index 2a7b4aaa4941f677764e518b19ad9921dbc8ea22..78787bcdbcdb5361c9fca1065eb9a8baad5c5d67 100644 --- a/src/boards/Parafoil/TMRepository/TMRepository.cpp +++ b/src/boards/Parafoil/TMRepository/TMRepository.cpp @@ -54,13 +54,13 @@ mavlink_message_t TMRepository::packSystemTm(SystemTMList tmId, uint8_t msgId, { mavlink_sys_tm_t tm; - tm.timestamp = TimestampTimer::getTimestamp(); - tm.logger = Logger::getInstance().isStarted(); - // tm.board_scheduler = modules.get<BoardScheduler>()->isStarted(); - tm.event_broker = EventBroker::getInstance().isRunning(); - tm.radio = modules.get<Radio>()->isStarted(); - tm.sensors = modules.get<Sensors>()->isStarted(); - tm.pin_handler = modules.get<PinHandler>()->isStarted(); + tm.timestamp = TimestampTimer::getTimestamp(); + tm.logger = Logger::getInstance().isStarted(); + tm.board_scheduler = modules.get<BoardScheduler>()->isStarted(); + tm.event_broker = EventBroker::getInstance().isRunning(); + tm.radio = modules.get<Radio>()->isStarted(); + tm.sensors = modules.get<Sensors>()->isStarted(); + tm.pin_observer = modules.get<PinHandler>()->isStarted(); mavlink_msg_sys_tm_encode(RadioConfig::MAV_SYSTEM_ID, RadioConfig::MAV_COMP_ID, &msg, &tm); @@ -91,34 +91,32 @@ mavlink_message_t TMRepository::packSystemTm(SystemTMList tmId, uint8_t msgId, break; } - // case SystemTMList::MAV_MAVLINK_STATS: - // { - // mavlink_mavlink_stats_tm_t tm; - - // // Get the mavlink stats - // MavlinkStatus stats = - // modules.get<Radio>()->mavDriver->getStatus(); - - // tm.timestamp = stats.timestamp; - // tm.n_send_queue = stats.nSendQueue; - // tm.max_send_queue = stats.maxSendQueue; - // tm.n_send_errors = stats.nSendErrors; - // tm.msg_received = stats.mavStats.msg_received; - // tm.buffer_overrun = stats.mavStats.buffer_overrun; - // tm.parse_error = stats.mavStats.parse_error; - // tm.parse_state = stats.mavStats.parse_state; - // tm.packet_idx = stats.mavStats.packet_idx; - // tm.current_rx_seq = stats.mavStats.current_rx_seq; - // tm.current_tx_seq = stats.mavStats.current_tx_seq; - // tm.packet_rx_success_count = - // stats.mavStats.packet_rx_success_count; tm.packet_rx_drop_count - // = stats.mavStats.packet_rx_drop_count; - - // mavlink_msg_mavlink_stats_tm_encode(RadioConfig::MAV_SYSTEM_ID, - // RadioConfig::MAV_COMP_ID, - // &msg, &tm); - // break; - // } + case SystemTMList::MAV_MAVLINK_STATS: + { + mavlink_mavlink_stats_tm_t tm; + + // Get the mavlink stats + MavlinkStatus stats = modules.get<Radio>()->mavDriver->getStatus(); + + tm.timestamp = stats.timestamp; + tm.n_send_queue = stats.nSendQueue; + tm.max_send_queue = stats.maxSendQueue; + tm.n_send_errors = stats.nSendErrors; + tm.msg_received = stats.mavStats.msg_received; + tm.buffer_overrun = stats.mavStats.buffer_overrun; + tm.parse_error = stats.mavStats.parse_error; + tm.parse_state = stats.mavStats.parse_state; + tm.packet_idx = stats.mavStats.packet_idx; + tm.current_rx_seq = stats.mavStats.current_rx_seq; + tm.current_tx_seq = stats.mavStats.current_tx_seq; + tm.packet_rx_success_count = stats.mavStats.packet_rx_success_count; + tm.packet_rx_drop_count = stats.mavStats.packet_rx_drop_count; + + mavlink_msg_mavlink_stats_tm_encode(RadioConfig::MAV_SYSTEM_ID, + RadioConfig::MAV_COMP_ID, &msg, + &tm); + break; + } case SystemTMList::MAV_NAS_ID: { mavlink_nas_tm_t tm; @@ -235,9 +233,8 @@ mavlink_message_t TMRepository::packSystemTm(SystemTMList tmId, uint8_t msgId, .batVoltage; // tm.current_consumption = // modules.get<Sensors>()->getCurrentLastSample().current; - tm.temperature = lps22df.temperature; - tm.cutter_presence = - Logger::getInstance().getStats().lastWriteError; + tm.temperature = lps22df.temperature; + tm.logger_error = Logger::getInstance().getStats().lastWriteError; tm.battery_voltage = modules.get<Sensors>() ->getBatteryVoltageLastSample() @@ -261,26 +258,26 @@ mavlink_message_t TMRepository::packSystemTm(SystemTMList tmId, uint8_t msgId, &tm); break; } - // case SystemTMList::MAV_FSM_ID: - // { - // mavlink_fsm_tm_t tm; - - // tm.timestamp = TimestampTimer::getTimestamp(); - // tm.abk_state = 0; - // tm.ada_state = 0; - // tm.dpl_state = static_cast<uint8_t>( - // modules.get<WingController>()->getStatus().state); - // tm.fmm_state = static_cast<uint8_t>( - // modules.get<FlightModeManager>()->getStatus().state); - // tm.nas_state = static_cast<uint8_t>( - // modules.get<NASController>()->getStatus().state); - // tm.wes_state = 0; - - // mavlink_msg_fsm_tm_encode(RadioConfig::MAV_SYSTEM_ID, - // RadioConfig::MAV_COMP_ID, &msg, &tm); - - // break; - // } + case SystemTMList::MAV_FSM_ID: + { + mavlink_fsm_tm_t tm; + + tm.timestamp = TimestampTimer::getTimestamp(); + tm.abk_state = 0; + tm.ada_state = 0; + tm.dpl_state = static_cast<uint8_t>( + modules.get<WingController>()->getStatus().state); + tm.fmm_state = static_cast<uint8_t>( + modules.get<FlightModeManager>()->getStatus().state); + tm.nas_state = static_cast<uint8_t>( + modules.get<NASController>()->getStatus().state); + tm.wes_state = 0; + + mavlink_msg_fsm_tm_encode(RadioConfig::MAV_SYSTEM_ID, + RadioConfig::MAV_COMP_ID, &msg, &tm); + + break; + } case SystemTMList::MAV_PIN_OBS_ID: { mavlink_pin_tm_t tm; diff --git a/src/boards/common/Mavlink.h b/src/boards/common/Mavlink.h index 5daa9bb827ced42f7735a3a6de7647ade664c23d..97ea89d8fa0fcfcf1cc13b0aec56956f283a4d4b 100644 --- a/src/boards/common/Mavlink.h +++ b/src/boards/common/Mavlink.h @@ -25,5 +25,5 @@ #pragma GCC diagnostic ignored "-Wcast-align" #pragma GCC diagnostic ignored "-Waddress-of-packed-member" #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" -#include <mavlink_lib/lyra/mavlink.h> +#include <mavlink_lib/gemini/mavlink.h> #pragma GCC diagnostic pop \ No newline at end of file