diff --git a/src/RIGv2/Radio/Radio.cpp b/src/RIGv2/Radio/Radio.cpp index 296f7f538f213a4844061a62abc9941cbb8ccb9b..d590862f48b61f97cca5fe71a25b3982e4afbafe 100644 --- a/src/RIGv2/Radio/Radio.cpp +++ b/src/RIGv2/Radio/Radio.cpp @@ -297,6 +297,21 @@ void Radio::handleMessage(const mavlink_message_t& msg) break; } + case MAVLINK_MSG_ID_RAW_EVENT_TC: + { + uint8_t topicId = mavlink_msg_raw_event_tc_get_topic_id(&msg); + uint8_t eventId = mavlink_msg_raw_event_tc_get_event_id(&msg); + + bool disarmed = getModule<GroundModeManager>()->getState() == + GroundModeManagerState::DISARMED; + // Raw events are allowed in the disarmed state + if (!disarmed) + return enqueueNack(msg, 0); + + EventBroker::getInstance().post(eventId, topicId); + return enqueueAck(msg); + } + default: { // Unrecognized packet