Connecting to a GPS

The Gypsy daemon sits on the system bus, and we'll be using the GLib main loop for signals. This requires a little setup.

#! /usr/bin/python

import dbus, dbus.mainloop.glib

# Hook into the glib main loop
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)

# Connect to the system bus
bus = dbus.SystemBus()

Now that we're connected to the bus, we can get an object for the Gypsy daemon.

# Get a connection to the Gypsy daemon
daemon = bus.get_object("org.freedesktop.Gypsy", "/org/freedesktop/Gypsy")
# Get an object conforming to the Server interface
control = dbus.Interface(daemon, "org.freedesktop.Gypsy.Server")

The control object now implements the Server interface, which has a single method: Create. This is used to create new Device objects.

# This gives us an object path to the new device
path = control.Create("00:11:22:33:44:55")
# Now get the object at that path
gps = bus.get_object("org.freedesktop.Gypsy", path)

The object gps now represents the GPS, and implements several other interfaces which will be covered next.