self.device.connect_object("changed", GPSObject.update , self)
# Values to be set by GPSDevice changed events
- self.gps_state = False
- self.gps_info = "NO_FIX", 0, 0, None, None, None, None, None, None, None
+ self.info = None, 0, 0, None, None, None, None
self.satellites = None
- self.cell_info = None
+ self.cells = None
self.ngps = 0
def set_method ( self , method="gps" ) :
def update ( self ) :
- self.gps_state = None
if self.device.online :
- if self.device.status == location.GPS_DEVICE_STATUS_NO_FIX :
- self.gps_state = "NO_FIX"
- elif self.device.status == location.GPS_DEVICE_STATUS_FIX :
- self.gps_state = "FIX"
+ if self.device.status == location.GPS_DEVICE_STATUS_FIX :
+ state = "FIX"
self.ngps += 1
elif self.device.status == location.GPS_DEVICE_STATUS_DGPS_FIX :
- self.gps_state = "DGPS"
-
- self.gps_info = self.gps_state , self.device.satellites_in_use , self.device.satellites_in_view , self.device.fix[2] , self.device.fix[4] , self.device.fix[5] , self.device.fix[7] , self.device.fix[9] , self.device.fix[11] , self.device.fix[13]
+ state = "DGPS"
+ # FIXME : Increase also ngps here ???
+ else :
+ state = None
+
+ lat , lon , alt = None , None , None
+ if self.device.fix[1] & location.GPS_DEVICE_LATLONG_SET:
+ lat , lon = device.fix[4:6]
+ if self.device.fix[1] & location.GPS_DEVICE_ALTITUDE_SET:
+ alt = device.fix[7]
+ # FIXME : get time from GPS fix
+ self.info = state , self.device.satellites_in_view , self.device.satellites_in_use , self.device.fix[2] , lat , lon , alt
self.satellites = self.device.satellites
- self.cell_info = self.device.cell_info
+ self.cells = self.device.cell_info
+ else :
+ self.info = None, 0, 0, None, None, None, None
def report ( self ) :
return "%d gps" % self.ngps
-# mode = device.fix[0]
-# if mode == location.GPS_DEVICE_MODE_NOT_SEEN : # This means ??
-# print "mode is NOSEEN"
-# if mode == location.GPS_DEVICE_MODE_NO_FIX : # This implies device.status == location.GPS_DEVICE_STATUS_NO_FIX
-# # and probably device.fix[1] == location.GPS_DEVICE_NONE_SET
-# print "mode is NOFIX"
-# if mode == location.GPS_DEVICE_MODE_2D :
-# print "mode is 2D"
-# if mode == location.GPS_DEVICE_MODE_3D :
-# print "mode is 3D"
-
-# if flags & location.GPS_DEVICE_SPEED_SET :
-# print "GPS_DEVICE_SPEED_SET"
-# if flags & location.GPS_DEVICE_TRACK_SET :
-# print "GPS_DEVICE_TRACK_SET"
-# if flags & location.GPS_DEVICE_ALTITUDE_SET :
-# print "GPS_DEVICE_ALTITUDE_SET"
-# if flags & location.GPS_DEVICE_CLIMB_SET :
-# print "GPS_DEVICE_CLIMB_SET"
-
gobject.type_register(GPSObject)
if __name__ == "__main__" :