LocationGPSDevice

LocationGPSDevice — Client side listener of location changes

Synopsis

#define             LOCATION_GPS_DEVICE_NAN
enum                LocationGPSDeviceStatus;
enum                LocationGPSDeviceMode;
                    LocationGPSDeviceSatellite;
                    _gsm_cell_info;
                    _wcdma_cell_info;
                    LocationCellInfo;
#define             LOCATION_CELL_INFO_GSM_CELL_INFO_SET
#define             LOCATION_CELL_INFO_WCDMA_CELL_INFO_SET
#define             LOCATION_GPS_DEVICE_NONE_SET
#define             LOCATION_GPS_DEVICE_ALTITUDE_SET
#define             LOCATION_GPS_DEVICE_SPEED_SET
#define             LOCATION_GPS_DEVICE_TRACK_SET
#define             LOCATION_GPS_DEVICE_CLIMB_SET
#define             LOCATION_GPS_DEVICE_LATLONG_SET
#define             LOCATION_GPS_DEVICE_TIME_SET
                    LocationGPSDeviceFix;
                    LocationGPSDevicePrivate;
                    LocationGPSDevice;
void                location_gps_device_reset_last_known
                                                        (LocationGPSDevice *device);
void                location_gps_device_start           (LocationGPSDevice *device);
void                location_gps_device_stop            (LocationGPSDevice *device);

Object Hierarchy

  GObject
   +----LocationGPSDevice

Signals

  "changed"                                        : Run First / No Recursion
  "connected"                                      : Run First / No Recursion
  "disconnected"                                   : Run First / No Recursion

Description

LocationGPSDevice is a listener for location daemons (Gypsy, for example) that sends signals as the fix details are updated.

Details

LOCATION_GPS_DEVICE_NAN

#define LOCATION_GPS_DEVICE_NAN (double) (0.0 / 0.0)

A define representing NAN.


enum LocationGPSDeviceStatus

typedef enum {
	LOCATION_GPS_DEVICE_STATUS_NO_FIX,
	LOCATION_GPS_DEVICE_STATUS_FIX,
	LOCATION_GPS_DEVICE_STATUS_DGPS_FIX,
} LocationGPSDeviceStatus;

Enum representing the various states that a device can be in.

LOCATION_GPS_DEVICE_STATUS_NO_FIX The device does not have a fix.
LOCATION_GPS_DEVICE_STATUS_FIX The device has a fix.
LOCATION_GPS_DEVICE_STATUS_DGPS_FIX The device has a DGPS fix. Deprecated: this constant is not used anymore.

enum LocationGPSDeviceMode

typedef enum {
	LOCATION_GPS_DEVICE_MODE_NOT_SEEN,
	LOCATION_GPS_DEVICE_MODE_NO_FIX,
	LOCATION_GPS_DEVICE_MODE_2D,
	LOCATION_GPS_DEVICE_MODE_3D
} LocationGPSDeviceMode;

Enum representing the modes that a device can operate in.

LOCATION_GPS_DEVICE_MODE_NOT_SEEN The device has not seen a satellite yet.
LOCATION_GPS_DEVICE_MODE_NO_FIX The device has no fix.
LOCATION_GPS_DEVICE_MODE_2D The device has latitude and longitude fix.
LOCATION_GPS_DEVICE_MODE_3D The device has latitude, longitude, and altitude.

LocationGPSDeviceSatellite

typedef struct {
	int prn;
	int elevation;
	int azimuth;
	int signal_strength;
	gboolean in_use;
} LocationGPSDeviceSatellite;

Details about satellites.

int prn; Satellite ID number.
int elevation; Elevation of the satellite.
int azimuth; Satellite azimuth.
int signal_strength; Signal/Noise ratio.
gboolean in_use; Whether the satellite is being used to calculate the fix.

_gsm_cell_info

typedef struct {
	guint16 mcc; 
	guint16 mnc; 
	guint16 lac; 
	guint16 cell_id; 
} _gsm_cell_info;

GSM Cell Info. To be used only when nested into the LocationCellInfo structure.

guint16 mcc; Current Mobile Country Code.
guint16 mnc; Current Mobile Network Code.
guint16 lac; Location Area Code.
guint16 cell_id; Current Cell ID.

_wcdma_cell_info

typedef struct {
	guint16 mcc; 
	guint16 mnc; 
	guint32 ucid; 
} _wcdma_cell_info;

WCDMA Cell Info. To be used only when nested into the LocationCellInfo structure.

guint16 mcc; Current Mobile Country Code.
guint16 mnc; Current Mobile Network Code.
guint32 ucid; Current UC ID.

LocationCellInfo

typedef struct {
	int			flags;
	_gsm_cell_info		gsm_cell_info;
	_wcdma_cell_info	wcdma_cell_info;
} LocationCellInfo;

Details about network based position.

int flags; Which cell infos are present.
_gsm_cell_info gsm_cell_info; GSM Cell Info structure. See _gsm_cell_info for the fields.
_wcdma_cell_info wcdma_cell_info; WCDMA Cell Info. See _wcdma_cell_info for the fields.

LOCATION_CELL_INFO_GSM_CELL_INFO_SET

#define LOCATION_CELL_INFO_GSM_CELL_INFO_SET   0x01

A define indicating that the gsm_cell_info field of LocationCellInfo is valid.


LOCATION_CELL_INFO_WCDMA_CELL_INFO_SET

#define LOCATION_CELL_INFO_WCDMA_CELL_INFO_SET 0x02

A define indicating that the wcdma_cell_info field of LocationCellInfo is valid.


LOCATION_GPS_DEVICE_NONE_SET

#define LOCATION_GPS_DEVICE_NONE_SET 0

A define indicating that none of the LocationGPSDeviceFix fields are valid.


LOCATION_GPS_DEVICE_ALTITUDE_SET

#define LOCATION_GPS_DEVICE_ALTITUDE_SET (1 << 0)

A define indicating that the altitude field of LocationGPSDeviceFix is valid.


LOCATION_GPS_DEVICE_SPEED_SET

#define LOCATION_GPS_DEVICE_SPEED_SET (1 << 1)

A define indicating that the speed field of LocationGPSDeviceFix is valid.


LOCATION_GPS_DEVICE_TRACK_SET

#define LOCATION_GPS_DEVICE_TRACK_SET (1 << 2)

A define indicating that the track field of LocationGPSDeviceFix is valid.


LOCATION_GPS_DEVICE_CLIMB_SET

#define LOCATION_GPS_DEVICE_CLIMB_SET (1 << 3)

A define indicating that the climb field of LocationGPSDeviceFix is valid.


LOCATION_GPS_DEVICE_LATLONG_SET

#define LOCATION_GPS_DEVICE_LATLONG_SET (1 << 4)

A define indicating that the latitude and longitude fields of LocationGPSDeviceFix are valid.


LOCATION_GPS_DEVICE_TIME_SET

#define LOCATION_GPS_DEVICE_TIME_SET (1 << 5)

A define indicating that the time field of LocationGPSDeviceFix is valid.


LocationGPSDeviceFix

typedef struct {
	LocationGPSDeviceMode mode;
	guint32 fields;
	double time;
	double ept;
	double latitude;
	double longitude;
	double eph;
	double altitude;
	double epv;
	double track;
	double epd;
	double speed;
	double eps;
	double climb;
	double epc;
} LocationGPSDeviceFix;

The details of the fix.

LocationGPSDeviceMode mode; The mode of the fix.
guint32 fields; A bitfield representing what fields contain valid data.
double time; The timestamp of the update.
double ept; Estimated time uncertainty.
double latitude; Fix latitude (degrees).
double longitude; Fix longitude (degrees).
double eph; Horizontal position uncertainty (cm).
double altitude; Fix altitude (m).
double epv; Vertical position (altitude) uncertainty (m).
double track; The current direction of motion (in degrees between 0 and 359).
double epd; Track uncertainty (degrees).
double speed; Current speed (km/h).
double eps; Speed uncertainty (km/h).
double climb; Current rate of climb (m/s).
double epc; Climb uncertainty (m/s).

LocationGPSDevicePrivate

typedef struct _LocationGPSDevicePrivate LocationGPSDevicePrivate;


LocationGPSDevice

typedef struct {
	gboolean online;
	LocationGPSDeviceStatus status;
	LocationGPSDeviceFix *fix;
	int satellites_in_view;
	int satellites_in_use;
	GPtrArray *satellites;
	LocationCellInfo *cell_info;
} LocationGPSDevice;

If the GPS has not yet obtained a fix from the device, then fix will hold the last known location.

gboolean online; Whether there is a connection to positioning hardware.
LocationGPSDeviceStatus status; The status of the device.
LocationGPSDeviceFix *fix; The location fix.
int satellites_in_view; Number of satellites the GPS device can see.
int satellites_in_use; Number of satellites the GPS used in calculating fix.
GPtrArray *satellites; Array containing LocationGPSDeviceSatellite.
LocationCellInfo *cell_info; Current cell info, see LocationCellInfo.

location_gps_device_reset_last_known ()

void                location_gps_device_reset_last_known
                                                        (LocationGPSDevice *device);

Resets the last known location to unknown.

device : LocationGPSDevice to reset.

location_gps_device_start ()

void                location_gps_device_start           (LocationGPSDevice *device);

Warning

location_gps_device_start is deprecated and should not be used in newly-written code. This function does nothing.

device : the device to start.

location_gps_device_stop ()

void                location_gps_device_stop            (LocationGPSDevice *device);

Warning

location_gps_device_stop is deprecated and should not be used in newly-written code. This function does nothing.

device : the device to stop.

Signal Details

The "changed" signal

void                user_function                      (LocationGPSDevice *device,
                                                        gpointer           user_data)      : Run First / No Recursion

The ::changed signal is emitted each time a received location message changes the state of the fix.

device : the device which has been changed.
user_data : user data set when the signal handler was connected.

The "connected" signal

void                user_function                      (LocationGPSDevice *device,
                                                        gpointer           user_data)      : Run First / No Recursion

The ::connected signal is emitted when device manages to connect to the location server.

device : the device which has been connected.
user_data : user data set when the signal handler was connected.

The "disconnected" signal

void                user_function                      (LocationGPSDevice *device,
                                                        gpointer           user_data)      : Run First / No Recursion

The ::disconnected signal is emitted when device is disconnected from the location server.

device : the device which has been disconnected.
user_data : user data set when the signal handler was connected.