Major changes and features:
  • Major UI code refactoring to support multiple map windows. (As requested by Steve K4HG)
  • Map windows should now retain their view settings and map extents through restarts
  • New Layers! Layers for OpenStreetMap, OpenTopoMap, CyclOSM, and, a huge goal of mine, a Local Tile Server for offline maps. Look for an article coming soon on how to set this up. More layer types to follow.
  • It is now possible to import and export GPX files and export KML. (Import for KML is coming, but it’s a much more complicated format)
  • Moved the station menu from a popup button on the station panel to the main application menu. This feels more Mac-like to me and more discoverable.
  • SmartBeaconing is now implemented, with permission from Steve Bragg, KA9MVA
  • Implemented proportional pathing for interval beacons #80
  • Custom AX.25 paths are now supported, with “Path Profiles” renamed to “Path Presets” #79
  • Added reconnect for KISS-over-TCP connections #85
  • Added DNS-SD (Bonjour) support for locating KISS-over-TCP servers, like Direwolf
  • Tracks can now be cleared for stations
  • Tracks now shorten as old locations expire
  • The history purging process is now working as intended and preserves stations you’ve marked as favorites and packets that have originated from your station.
  • Fixed bug where loaded tracks were disappearing during maintenance because of an ID mismatch due to the ID cache
  • Tracks are now loaded as one event instead of a sequence of packet events
  • Fixed bug where symbol was not displaying on local object list
  • Fixed bug where a renamed object could appear multiple times on the entity list
  • Fixed bug where timeline timestamp was showing up even when not scrolling the timeline
  • Enhanced About page to include an EULA and Acknowledgements
  • APRSManager no longer has a single map region
  • Fixed bug with entity update notifications not being sent when initially saved to the database (not dirty)
  • Fixed retain cycles so that MainMapViewController is deallocated when the map window is closed
  • Fixed bug where the display point being used by CrosshairsButton was not in the correct coordinate system
  • Moved map layer toggles away from UserDefaults to properties of QTHMapView. This is so that multiple map windows can have separate settings
  • Fixed crash when failing to detect any usable string from an unknown character set #83
  • Fixed telemetry unique constraint error message #84
  • SmartBeaconing settings are now locale unit aware
  • Implemented a debug mode
  • Debug mode now includes a function for simulating a track with GPS coordinates. Used for testing SmartBeaconing
  • Starting a GPS connection now automatically and temporarily sets the beacon source to GPS
  • Fixed course change calculations
  • Fixed date handling in NMEA sentences – it was picking up the date in the current timezone when parsing times, instead of UTC