-
Notifications
You must be signed in to change notification settings - Fork 4
/
GPSDevice.py
38 lines (29 loc) · 1.29 KB
/
GPSDevice.py
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
import logging
from Phidget22.Devices.GPS import *
from DeviceManager import Device
class GPSDevice(Device):
def __init__(self, GPS_SERIAL_NUM):
ch = GPS()
ch.setDeviceSerialNumber(GPS_SERIAL_NUM)
gps = Device(ch)
gps.is_stable = True
super(GPSDevice, self).__init__(ch)
def on_attach(self):
device = self
def on_fix_change(ch, positionFixState):
#gps.is_stable = positionFixState
pass
def on_heading_change(ch, heading, velocity):
logging.debug("heading changed heading: %f, velocity: %f",
heading, velocity)
device.set_event_val("ground_speed", round(velocity, 3))
device.set_event_val("heading", heading)
def on_position_change(ch, latitude, longitude, altitude):
logging.debug("postion changed lat: %f, lon: %f, alt: %f",
latitude, longitude, altitude)
device.set_event_val("lat", round(latitude, 6))
device.set_event_val("lng", round(longitude, 6))
device.set_event_val("alt", round(altitude, 2))
self.listen("PositionFixStateChange", on_fix_change)
self.listen("PositionChange", on_position_change)
self.listen("HeadingChange", on_heading_change)