Browse Source

mavlink: move ulog handling after stream updates

reduces latency for the mavlink streams
sbg
Beat Küng 5 years ago
parent
commit
fa8def903d
  1. 40
      src/modules/mavlink/mavlink_main.cpp

40
src/modules/mavlink/mavlink_main.cpp

@ -2341,6 +2341,26 @@ Mavlink::task_main(int argc, char *argv[]) @@ -2341,6 +2341,26 @@ Mavlink::task_main(int argc, char *argv[])
}
}
check_requested_subscriptions();
/* update streams */
for (const auto &stream : _streams) {
stream->update(t);
if (!_first_heartbeat_sent) {
if (_mode == MAVLINK_MODE_IRIDIUM) {
if (stream->get_id() == MAVLINK_MSG_ID_HIGH_LATENCY2) {
_first_heartbeat_sent = stream->first_message_sent();
}
} else {
if (stream->get_id() == MAVLINK_MSG_ID_HEARTBEAT) {
_first_heartbeat_sent = stream->first_message_sent();
}
}
}
}
/* check for ulog streaming messages */
if (_mavlink_ulog) {
if (_mavlink_ulog_stop_requested) {
@ -2366,26 +2386,6 @@ Mavlink::task_main(int argc, char *argv[]) @@ -2366,26 +2386,6 @@ Mavlink::task_main(int argc, char *argv[])
}
}
check_requested_subscriptions();
/* update streams */
for (const auto &stream : _streams) {
stream->update(t);
if (!_first_heartbeat_sent) {
if (_mode == MAVLINK_MODE_IRIDIUM) {
if (stream->get_id() == MAVLINK_MSG_ID_HIGH_LATENCY2) {
_first_heartbeat_sent = stream->first_message_sent();
}
} else {
if (stream->get_id() == MAVLINK_MSG_ID_HEARTBEAT) {
_first_heartbeat_sent = stream->first_message_sent();
}
}
}
}
/* pass messages from other UARTs */
if (_forwarding_on) {

Loading…
Cancel
Save