Start of work on Redundant Link. This first step modifies the exisitng link agent to allow it to be given a name (through the command line arguements), and if it's given this name, to send ivy messages of a different format (the link name is added to the message after the sender name). This new (but similar) message format will only be listed to by a new agent, yet to be added. That's the next step.
Started the second step of the redundant communication link, writing the Link Combiner agent. This agent receives ivy messages from the link agent(s) when they have a name specified, removes duplicate messages, then sends ivy messages of the same format that the link agent used to send messages. This commit includes only the receiving messages part and the outline of the code.
Finished the basic functionality of Link Combiner (Ivy in and out), except for the repeated message filter.
Finished the core functionality of Link Combiner. It sends ivy messages now. Also, there is a circular buffer to filter out duplicate messages. It seems to work well, but more more comprehensive testing is needed.
Fixed the format of ivy messages sent by link when a name is provided. Instead of adding the link_name after the sender, a special TELEMETRY_MESSAGE message is sent with the raw ivy message included as a ;sv (colon-seperated-value) value. This is to avoid some mis-handling of messages tha was occuring.
Link Combiner modified according to the changes made in link.ml and the new standard of using the TELEMETRY_MESSAGE message.
Improved Link_Combiner algorithm. It now correctly handles identical messages that are repeated within the length of the buffer. These messages were ignored before, but aren't now.
Changed the link identifier from link_name to link_id. link_name was a string while link_id is an integer. This change was made since the identifier needed to be included in the DOWNLINK_STATUS message which as part of the telemetry class doesn't allow fields to be of strings. Also, the error message that occurs when a telemetry class message does have a string was changed to list this as a possible cause of the error.
Added GUI in GCS for multiple links. link_combiner.py now sends LINK_STATUS messages with the time since the last message as a field. The GCS now has a page in the notebook named Link. This page lists the links and has an idicator for whether the link is good or not.
Various improvements: Ratio of active links added to GCS. Rx messages rate and ping_time added to GCS for each link. Command line options added to Link_Combiner.
Added README for Link_Combiner. Tweaked link ratio behaviour in GCS.
Improvements to the GCS for displaying information on multiple links. There are messages displayed in the console now.
Adding support for displaying link status information when multiple aircraft are connected through the same link. Also added support for recording link status information in flight logs and displaying it during a replay.