class GPSMonitor(zavai.Service):
def __init__(self, gps):
- super(GPSMonitor, self).__init__()
+ super(GPSMonitor, self).__init__(["satellites"])
self.gps = gps
self.gps_ubx = gps.gps_ubx
def on_ubxdebug_packet(self, clid, length, data):
zavai.info("gps monitor: UBX debug packet")
- self.notify(clid, length, data)
+ self.notify("satellites", clid, length, data)
def start(self):
- self.gps.request(self)
+ self.gps.connect("gps", self)
# TODO: find out how come sometimes these events are not sent
self.gps.bus.add_signal_receiver(
self.on_satellites_changed, 'SatellitesChanged', 'org.freedesktop.Gypsy.Satellite',
self.gps.bus.remove_signal_receiver(
self.on_ubxdebug_packet, 'DebugPacket', 'org.freesmartphone.GPS.UBX',
'org.freesmartphone.ogpsd', '/org/freedesktop/Gypsy')
- self.gps.release(self)
+ self.gps.disconnect("gps", self)
class GPSPosition(zavai.Service):
def __init__(self, gps):
+ super(GPSPosition, self).__init__(["position"])
self.gps = gps
def on_position_changed(self, fields, tstamp, lat, lon, alt):
zavai.info("gps position: position changed")
- self.notify(fields, tstamp, lat, lon, alt)
+ self.notify("position", fields, tstamp, lat, lon, alt)
def start(self):
- self.gps.request(self)
+ self.gps.connect("gps", self)
self.gps.bus.add_signal_receiver(
self.on_position_changed, 'PositionChanged', 'org.freedesktop.Gypsy.Position',
'org.freesmartphone.ogpsd', '/org/freedesktop/Gypsy')
self.gps.bus.remove_signal_receiver(
self.on_position_changed, 'PositionChanged', 'org.freedesktop.Gypsy.Position',
'org.freesmartphone.ogpsd', '/org/freedesktop/Gypsy')
- self.gps.release(self)
+ self.gps.disconnect("gps", self)
# For a list of dbus services, look in /etc/dbus-1/system.d/
class GPS(zavai.Service):
def __init__(self, registry, name):
- super(GPS, self).__init__()
+ super(GPS, self).__init__(["gps"])
self.bus = registry.resource("dbus.system_bus")
class GPX(zavai.Service):
"Write GPX track and waypoint files"
def __init__(self, registry, name):
+ super(GPX, self).__init__(["gpx"])
self.registry = registry
self.trk = None
self.wpt = None
conf = registry.resource("conf")
self.trackdir = conf.homedir
self.activity_monitors = set()
- self.started = False
def add_activity_monitor(self, cb):
self.activity_monitors.add(cb)
def start(self):
zavai.info("Starting GPX trace subsystem")
- self.started = True
gps = self.registry.resource("gps")
- gps.position.connect(self.on_position_changed)
+ gps.position.connect("position", self.on_position_changed)
def stop(self):
- if not self.started: return
zavai.info("Stopping GPX trace subsystem")
gps = self.registry.resource("gps")
- gps.position.disconnect(self.on_position_changed)
+ gps.position.disconnect("position", self.on_position_changed)
self.stop_track()
- self.started = False
def on_position_changed(self, fields, tstamp, lat, lon, alt):
self.last_pos = (fields, tstamp, lat, lon, alt)
self.trackpoint()
def start_track(self, tstamp = None, basename = None):
- if basename is None:
+ if basename is not None:
self.basename = basename
elif tstamp is not None:
# Compute basename for output files
xmlns="http://www.topografix.com/GPX/1/0"
xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
<trk>
- <trkseg>""" % VERSION
+ <trkseg>""" % zavai.VERSION
self.wpt = open(self.basename + "-wpt.gpx", "wt")
print >>self.wpt, """<?xml version="1.0" encoding="UTF-8"?>
creator="audiomap %s"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.topografix.com/GPX/1/0"
- xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">""" % VERSION
+ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">""" % zavai.VERSION
self.wpt_seq = 1;
self.notify_activity_monitors()