Skip redundant stations during tuner seek
During a tuner seek cycle, the same TMC service may be picked up multiple times on multiple frequencies. Currently, one full “round” of messages is retrieved on each of these frequencies, which means a lot of redundancy and more time than necessary for a full scan cycle. This, in turn, delays the reception of other TMC services if one service is present on many frequencies and another service just on one or a few.
This could be improved by adding some extra logic to the scan cycle, essentially listening to each service just once per scan cycle:
- When receiving a new station with the AFI bit set: Have we already picked up the station during the last scan cycle, with at least the same RSSI?
- When receiving a new TMC service: Have we already picked up the same service (on any station) during the last scan cycle, with at least the same RSSI? Or another service that allows mutual updates with the current one and has the same INRU bits set?
In either case, start searching for a new station immediately. For the above purposes, “during the last scan cycle” means “since we last left the frequency we’re currently tuned into”.