GypsyControl

GypsyControl — Control object for gypsy-daemon

Synopsis

                    GypsyControl;
#define             GYPSY_CONTROL_DBUS_SERVICE
#define             GYPSY_CONTROL_DBUS_PATH
#define             GYPSY_CONTROL_DBUS_INTERFACE
GypsyControl *      gypsy_control_get_default           (void);
char *              gypsy_control_create                (GypsyControl *control,
                                                         const char *device_name,
                                                         GError **error);

Object Hierarchy

  GObject
   +----GypsyControl

Description

GypsyControl is the object that controls the gypsy-daemon process. It is a singleton object, meaning that there will only be one instance of it per application. Once the object has been created (or referenced if it had already been created for the application) with gypsy_control_get_default(), it can be used to tell gypsy-daemon what GPS device to connect to with gypsy_control_create(). This call returns the D-Bus object path to the GPS object in gypsy-daemon. This object path is then used to create other objects, such as GypsyPosition, or GypsyCourse.

As gypsy-daemon is able to connect to multiple GPS devices, the one GypsyControl can be used to create them, returning a different path for each GPS device. Gypsy-daemon can connect to both serial port devices which have an entry in /dev and Bluetooth devices natively without the need to use rfcomm to set up a /dev entry. To do this you pass either the device path or the Bluetooth address of the device to gypsy_control_create().

Once the program has finished with the GPS, the GypsyControl object should by unreferenced with g_object_unref().

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
. . .

<a class="link" href="gypsy-gypsy-control.html#GypsyControl">GypsyControl</a> *control;
char *path_bt, *path_dev;
GError *error = NULL;

. . .

control = gypsy_control_get_default ();
/ * Use a Bluetooth device * /
path_bt = gypsy_control_create (control, "aa:bb:cc:dd:ee", &error);
if (path_bt == NULL) {
  g_warning ("There was an error creating aa:bb:cc:dd:ee - %s", error->message);
  g_error_free (error);
  error = NULL;
}

/ * Use a serial port device * /
path_dev = gypsy_control_create (control, "/dev/gps", &error);
if (path_dev == NULL) {
  g_warning ("There was an error creating /dev/gps - %s", error->message);
  g_error_free (error);
  error = NULL;
}

. . .

/ * Use the paths here to create listener objects * /

. . . 

g_free (path_bt);
g_free (path_dev);

. . .

/ * The program has finished with Gypsy now, unref the object. * /
g_object_unref (G_OBJECT (control));

Details

GypsyControl

typedef struct _GypsyControl GypsyControl;

There are no public fields in GypsyControl.


GYPSY_CONTROL_DBUS_SERVICE

#define GYPSY_CONTROL_DBUS_SERVICE "org.freedesktop.Gypsy"

A define containing the service name of the control service


GYPSY_CONTROL_DBUS_PATH

#define GYPSY_CONTROL_DBUS_PATH "/org/freedesktop/Gypsy"

A define containing the object path of the Gypsy object


GYPSY_CONTROL_DBUS_INTERFACE

#define GYPSY_CONTROL_DBUS_INTERFACE "org.freedesktop.Gypsy.Server"

A define containing the name of the Control interface


gypsy_control_get_default ()

GypsyControl *      gypsy_control_get_default           (void);

Retrieves the default GypsyControl object.

Returns :

A singleton GypsyControl. Once the program has finished using the GypsyControl, it should be unreferenced with g_object_unref().

gypsy_control_create ()

char *              gypsy_control_create                (GypsyControl *control,
                                                         const char *device_name,
                                                         GError **error);

Creates a object on the server that refers to the GPS device at device_name. When this object is finalized, the remote object on the server will be shutdown after which any calls to the object at the returned path are not guaranteed to work.

control :

The GypsyControl device

device_name :

The path to the device file, or Bluetooth address

error :

A GError to return errors in, or NULL

Returns :

The path to the created object.