mavlink: support receiving multi-chunk statustexts

This adds support for mavlink statustext messages arriving in multiple
chunks.
This commit is contained in:
Julian Oes
2021-12-21 09:40:36 -05:00
committed by Daniel Agar
parent 0029a75ab0
commit 2e0286e6bb
6 changed files with 411 additions and 9 deletions
+6 -9
View File
@@ -2925,16 +2925,13 @@ void MavlinkReceiver::handle_message_statustext(mavlink_message_t *msg)
mavlink_statustext_t statustext;
mavlink_msg_statustext_decode(msg, &statustext);
log_message_s log_message{};
if (_mavlink_statustext_handler.should_publish_previous(statustext)) {
_log_message_pub.publish(_mavlink_statustext_handler.log_message());
}
log_message.severity = statustext.severity;
log_message.timestamp = hrt_absolute_time();
snprintf(log_message.text, sizeof(log_message.text),
"[mavlink: component %" PRIu8 "] %." STRINGIFY(MAVLINK_MSG_STATUSTEXT_FIELD_TEXT_LEN) "s", msg->compid,
statustext.text);
_log_message_pub.publish(log_message);
if (_mavlink_statustext_handler.should_publish_current(statustext, hrt_absolute_time())) {
_log_message_pub.publish(_mavlink_statustext_handler.log_message());
}
}
}