Show the link indicator in the tool bar if two or more links are connected and at least one of them is a high latency link.
Show in the link indicator if a link is inactive.
- Improve function names
- For notifications of an active link change only show the priority keyword if multiple links are connected
- Use QMap instead of QList for the HeartbeatTimers
- Style improvements
- Simplify sending the MAV_CMD_CONTROL_HIGH_LATENCY command
Add the HeartbeatTimer class to track a single heartbeat for a single link.
For every new received heartbeat an instance of the class is created.
Every instance emits a signal if it timed out or the timer is restarted.
Each vehicle then decides based on all different signals which link is the
priority link.
Each link updates the active property based on incoming bytes.
The vehicle tracks the active property of each link and in case of an inactive priority link it updates the priority link.
This mechanism automatically queues data into the correct thread where necessary, otherwise the method is invoked directly with low overhead.
At the same time remove the UDP socket event workaround. It is not a problem.
- Pervasive change to automatically connect to known board types
- Lots of additional changes along with this:
- More exposure of objects/properties to Qml
- Much restructuring in LinkManager and LinkManager clients
- Pervasive change to automatically connect to known board types
- Lots of additional changes along with this:
- More exposure of objects/properties to Qml
- Much restructuring in LinkManager and LinkManager clients
- Pervasive change to automatically connect to known board types
- Lots of additional changes along with this:
- More exposure of objects/properties to Qml
- Much restructuring in LinkManager and LinkManager clients
Link ids were being used interchangeably with the mavlink channel for
the link. Link ids handed out as a numerically increasing integer. Once
the counter went past MAVLINK_COMM_NUM_BUFFERS all hell would break
loose and cause memory corruption.
The goal of this first installment is to organize the code a bit so it's more readable,
clean up a bit of left over cruft, and manage link configurations (and links in general).
Centralize all connecting and disconnecting of links through
LinkManager::[Connect|Disconnect]Link api. Connect/Disconnect no longer
allowed through LinkInterface. This allows creation of new
LinkManager::setConnections[Suspended|Allowed] methods to disallow
connections as needed.
This api doesn’t make any sense given the fact that LinkInterface
signals bytesReceived with the bytes in the signal. Also the reason why
it is never called!