- Added lib/signal_reader.py with SignalGpsReader, SignalMeteoReader, and
SignalDepthReader that use PropertiesChanged signal subscriptions instead
of polling via GetValue(), reducing D-Bus overhead at steady state.
- Each reader discovers its service dynamically, seeds its cache with a
one-shot GetValue, then relies on signals for all subsequent updates.
- Refactored dbus-tides, dbus-windy-station, dbus-no-foreign-land,
dbus-lightning, and dbus-meteoblue-forecast to import from the shared
library, removing ~600 lines of duplicated _unwrap() helpers and
per-service GPS/meteo/depth reader classes.
- Updated install.sh for all five services to deploy signal_reader.py
to /data/lib/ on the target device.
- Updated build-package.sh for all five services to bundle
signal_reader.py into the .tar.gz package.
- Updated README.md with the new lib/ entry in the project table and
documented the shared D-Bus readers pattern.
- Bumped version numbers in affected services (e.g. nfl_tracking 2.0.1).
Made-with: Cursor