summaryrefslogtreecommitdiff
path: root/driver_zodiac.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2013-10-13 09:11:31 -0400
committerEric S. Raymond <esr@thyrsus.com>2013-10-13 09:11:31 -0400
commite2499963397f5c06ef0109f96384d3f4cb5178f3 (patch)
treefda00274e5bd9e85c30a9c180911abbd655378b3 /driver_zodiac.c
parent6dfd7a4e1f1cc20859e6f74e4636011f3cd69ee0 (diff)
downloadgpsd-e2499963397f5c06ef0109f96384d3f4cb5178f3.tar.gz
Observer-driver reversion logic. This is a simple but major change.
Device drivers are now sorted into two categories: observers and controllers. An "observer" is a device type for which there are no control methods (that is, no mode switcher, no speed switcher, and no rate switcher). Note that observers *are* allowed to require initialization sends (such as wakeup probes or commands to set a sentence mix). Important observers include Generic NMEA, AIVDM, RTCM2, and RTCM3. Any other driver is a controller. The new behavior is simple: each time after you have recognized a packet to be handled by an observer driver, *revert the session's device-driver pointer to the previous controller* (if we've seen one). This means that seeing AIDVM or RTCM packets in an NMEA stream no longer causes us to lose information about the type of the driver if it had control methods we might want to use later. All regression tests pass.
Diffstat (limited to 'driver_zodiac.c')
0 files changed, 0 insertions, 0 deletions