24
24
from math import modf
25
25
26
26
# Float conversion tolerant of empty field
27
- gfloat = lambda x : float (x ) if x else 0.0
27
+ # gfloat = lambda x : float(x) if x else 0.0
28
28
29
29
# Angle formats
30
30
DD = const (1 )
@@ -249,12 +249,12 @@ def _fix(self, gps_segments, idx_lat, idx_long):
249
249
# Latitude
250
250
l_string = gps_segments [idx_lat ]
251
251
lat_degs = int (l_string [0 :2 ])
252
- lat_mins = gfloat (l_string [2 :])
252
+ lat_mins = float (l_string [2 :])
253
253
lat_hemi = gps_segments [idx_lat + 1 ]
254
254
# Longitude
255
255
l_string = gps_segments [idx_long ]
256
256
lon_degs = int (l_string [0 :3 ])
257
- lon_mins = gfloat (l_string [3 :])
257
+ lon_mins = float (l_string [3 :])
258
258
lon_hemi = gps_segments [idx_long + 1 ]
259
259
260
260
if lat_hemi not in 'NS' or lon_hemi not in 'EW' :
@@ -281,7 +281,7 @@ def _set_date_time(self, utc_string, date_string):
281
281
# Secs from MTK3339 chip is a float but others may return only 2 chars
282
282
# for integer secs. If a float keep epoch as integer seconds and store
283
283
# the fractional part as integer ms (ms since midnight fits 32 bits).
284
- fss , fsecs = modf (gfloat (utc_string [4 :]))
284
+ fss , fsecs = modf (float (utc_string [4 :]))
285
285
secs = int (fsecs )
286
286
self .msecs = int (fss * 1000 )
287
287
d = int (date_string [0 :2 ]) # day
@@ -322,12 +322,12 @@ def _gprmc(self, gps_segments): # Parse RMC sentence
322
322
# Can raise ValueError.
323
323
self ._fix (gps_segments , 3 , 5 )
324
324
# Speed
325
- spd_knt = gfloat (gps_segments [7 ])
325
+ spd_knt = float (gps_segments [7 ])
326
326
# Course
327
- course = gfloat (gps_segments [8 ])
327
+ course = float (gps_segments [8 ])
328
328
# Add Magnetic Variation if firmware supplies it
329
329
if gps_segments [10 ]:
330
- mv = gfloat (gps_segments [10 ])
330
+ mv = float (gps_segments [10 ]) # Float conversions can throw ValueError, caught by caller.
331
331
if gps_segments [11 ] not in ('EW' ):
332
332
raise ValueError
333
333
self .magvar = mv if gps_segments [11 ] == 'E' else - mv
@@ -352,8 +352,8 @@ def _gpgll(self, gps_segments): # Parse GLL sentence
352
352
# Chip sends VTG messages with meaningless data before getting a fix.
353
353
def _gpvtg (self , gps_segments ): # Parse VTG sentence
354
354
self ._valid &= ~ VTG
355
- course = gfloat (gps_segments [1 ])
356
- spd_knt = gfloat (gps_segments [5 ])
355
+ course = float (gps_segments [1 ])
356
+ spd_knt = float (gps_segments [5 ])
357
357
self ._speed = spd_knt
358
358
self .course = course
359
359
self ._valid |= VTG
@@ -364,7 +364,7 @@ def _gpgga(self, gps_segments): # Parse GGA sentence
364
364
# Number of Satellites in Use
365
365
satellites_in_use = int (gps_segments [7 ])
366
366
# Horizontal Dilution of Precision
367
- hdop = gfloat (gps_segments [8 ])
367
+ hdop = float (gps_segments [8 ])
368
368
# Get Fix Status
369
369
fix_stat = int (gps_segments [6 ])
370
370
@@ -373,8 +373,8 @@ def _gpgga(self, gps_segments): # Parse GGA sentence
373
373
# Longitude / Latitude
374
374
self ._fix (gps_segments , 2 , 4 )
375
375
# Altitude / Height Above Geoid
376
- altitude = gfloat (gps_segments [9 ])
377
- geoid_height = gfloat (gps_segments [11 ])
376
+ altitude = float (gps_segments [9 ])
377
+ geoid_height = float (gps_segments [11 ])
378
378
# Update Object Data
379
379
self .altitude = altitude
380
380
self .geoid_height = geoid_height
@@ -399,9 +399,9 @@ def _gpgsa(self, gps_segments): # Parse GSA sentence
399
399
else :
400
400
break
401
401
# PDOP,HDOP,VDOP
402
- pdop = gfloat (gps_segments [15 ])
403
- hdop = gfloat (gps_segments [16 ])
404
- vdop = gfloat (gps_segments [17 ])
402
+ pdop = float (gps_segments [15 ])
403
+ hdop = float (gps_segments [16 ])
404
+ vdop = float (gps_segments [17 ])
405
405
406
406
# If Fix is GOOD, update fix timestamp
407
407
if fix_type <= self ._NO_FIX : # Deviation from Michael McCoy's logic. Is this right?
0 commit comments