This patch was initially ment to update the number of satellites visible in the GCS from 16 to 24. When using 3 constellations concurrently, the gps module tracks more than 16 satellites.
Due to the higher number of satellites shown, the GCS layout for the GPS display widget needed to be reworked a bit. I have attached screenshots of the reworked version.
I took the opportunity to fix some lay-out issues and improve readability. This is by no means a complete overhaul.
There is also a bug fixed. While my gps module was tracking 3 concurrent constellations, the number of tracked satellites incremented above the hard coded limit of 32.
Once above this threshold, the UBX-NAV-SVINFO packets became larger than the space reserved in the firmware. The firmware incorrectly interpreted this as a critical error.
Updating the GPS status to: No FIX. Because one UBX-NAV-SVINFO packet is sent for 10 real navigation packets, the GPS status was constantly flapping.
Ofcourse we don't want that. Certainly not because the UBX-NAV-SVINFO packets are not critical for flight.
The fix implemented recognizes these specific packets and discards them, jumping right again to start, searching for the next packet header.
There is an alternative fix possible, incrementing the hard-coded maximum of 32 tracked SV. However, this would take up more memory for little gain.
We could also combine both fixes: increment the hard limit and discard when above the new hard limit.
There is one minor drawback, if the threshold has been reached, the GCS constellation display is not updated anymore, until below the threshold of 32 tracked satellites again.