Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Unified Diff: third_party/twisted_8_1/twisted/protocols/gps/nmea.py

Issue 12261012: Remove third_party/twisted_8_1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/twisted_8_1/twisted/protocols/gps/nmea.py
diff --git a/third_party/twisted_8_1/twisted/protocols/gps/nmea.py b/third_party/twisted_8_1/twisted/protocols/gps/nmea.py
deleted file mode 100644
index 74e487e69715814856ec5fb27de4b0346cce62eb..0000000000000000000000000000000000000000
--- a/third_party/twisted_8_1/twisted/protocols/gps/nmea.py
+++ /dev/null
@@ -1,208 +0,0 @@
-# -*- test-case-name: twisted.test.test_nmea -*-
-# Copyright (c) 2001-2004 Twisted Matrix Laboratories.
-# See LICENSE for details.
-
-"""NMEA 0183 implementation
-
-Maintainer: U{Bob Ippolito<mailto:bob@redivi.com>}
-
-The following NMEA 0183 sentences are currently understood::
- GPGGA (fix)
- GPGLL (position)
- GPRMC (position and time)
- GPGSA (active satellites)
-
-The following NMEA 0183 sentences require implementation::
- None really, the others aren't generally useful or implemented in most devices anyhow
-
-Other desired features::
- - A NMEA 0183 producer to emulate GPS devices (?)
-"""
-
-import operator
-from twisted.protocols import basic
-
-POSFIX_INVALID, POSFIX_SPS, POSFIX_DGPS, POSFIX_PPS = 0, 1, 2, 3
-MODE_AUTO, MODE_FORCED = 'A', 'M'
-MODE_NOFIX, MODE_2D, MODE_3D = 1, 2, 3
-
-class InvalidSentence(Exception):
- pass
-
-class InvalidChecksum(Exception):
- pass
-
-class NMEAReceiver(basic.LineReceiver):
- """This parses most common NMEA-0183 messages, presumably from a serial GPS device at 4800 bps
- """
- delimiter = '\r\n'
- dispatch = {
- 'GPGGA': 'fix',
- 'GPGLL': 'position',
- 'GPGSA': 'activesatellites',
- 'GPRMC': 'positiontime',
- 'GPGSV': 'viewsatellites', # not implemented
- 'GPVTG': 'course', # not implemented
- 'GPALM': 'almanac', # not implemented
- 'GPGRS': 'range', # not implemented
- 'GPGST': 'noise', # not implemented
- 'GPMSS': 'beacon', # not implemented
- 'GPZDA': 'time', # not implemented
- }
- # generally you may miss the beginning of the first message
- ignore_invalid_sentence = 1
- # checksums shouldn't be invalid
- ignore_checksum_mismatch = 0
- # ignore unknown sentence types
- ignore_unknown_sentencetypes = 0
- # do we want to even bother checking to see if it's from the 20th century?
- convert_dates_before_y2k = 1
-
- def lineReceived(self, line):
- if not line.startswith('$'):
- if self.ignore_invalid_sentence:
- return
- raise InvalidSentence("%r does not begin with $" % (line,))
- # message is everything between $ and *, checksum is xor of all ASCII values of the message
- strmessage, checksum = line[1:].strip().split('*')
- message = strmessage.split(',')
- sentencetype, message = message[0], message[1:]
- dispatch = self.dispatch.get(sentencetype, None)
- if (not dispatch) and (not self.ignore_unknown_sentencetypes):
- raise InvalidSentence("sentencetype %r" % (sentencetype,))
- if not self.ignore_checksum_mismatch:
- checksum, calculated_checksum = int(checksum, 16), reduce(operator.xor, map(ord, strmessage))
- if checksum != calculated_checksum:
- raise InvalidChecksum("Given 0x%02X != 0x%02X" % (checksum, calculated_checksum))
- handler = getattr(self, "handle_%s" % dispatch, None)
- decoder = getattr(self, "decode_%s" % dispatch, None)
- if not (dispatch and handler and decoder):
- # missing dispatch, handler, or decoder
- return
- # return handler(*decoder(*message))
- try:
- decoded = decoder(*message)
- except Exception, e:
- raise InvalidSentence("%r is not a valid %s (%s) sentence" % (line, sentencetype, dispatch))
- return handler(*decoded)
-
- def decode_position(self, latitude, ns, longitude, ew, utc, status):
- latitude, longitude = self._decode_latlon(latitude, ns, longitude, ew)
- utc = self._decode_utc(utc)
- if status == 'A':
- status = 1
- else:
- status = 0
- return (
- latitude,
- longitude,
- utc,
- status,
- )
-
- def decode_positiontime(self, utc, status, latitude, ns, longitude, ew, speed, course, utcdate, magvar, magdir):
- utc = self._decode_utc(utc)
- latitude, longitude = self._decode_latlon(latitude, ns, longitude, ew)
- if speed != '':
- speed = float(speed)
- else:
- speed = None
- if course != '':
- course = float(course)
- else:
- course = None
- utcdate = 2000+int(utcdate[4:6]), int(utcdate[2:4]), int(utcdate[0:2])
- if self.convert_dates_before_y2k and utcdate[0] > 2073:
- # GPS was invented by the US DoD in 1973, but NMEA uses 2 digit year.
- # Highly unlikely that we'll be using NMEA or this twisted module in 70 years,
- # but remotely possible that you'll be using it to play back data from the 20th century.
- utcdate = (utcdate[0] - 100, utcdate[1], utcdate[2])
- if magvar != '':
- magvar = float(magvar)
- if magdir == 'W':
- magvar = -magvar
- else:
- magvar = None
- return (
- latitude,
- longitude,
- speed,
- course,
- # UTC seconds past utcdate
- utc,
- # UTC (year, month, day)
- utcdate,
- # None or magnetic variation in degrees (west is negative)
- magvar,
- )
-
- def _decode_utc(self, utc):
- utc_hh, utc_mm, utc_ss = map(float, (utc[:2], utc[2:4], utc[4:]))
- return utc_hh * 3600.0 + utc_mm * 60.0 + utc_ss
-
- def _decode_latlon(self, latitude, ns, longitude, ew):
- latitude = float(latitude[:2]) + float(latitude[2:])/60.0
- if ns == 'S':
- latitude = -latitude
- longitude = float(longitude[:3]) + float(longitude[3:])/60.0
- if ew == 'W':
- longitude = -longitude
- return (latitude, longitude)
-
- def decode_activesatellites(self, mode1, mode2, *args):
- satellites, (pdop, hdop, vdop) = args[:12], map(float, args[12:])
- satlist = []
- for n in satellites:
- if n:
- satlist.append(int(n))
- else:
- satlist.append(None)
- mode = (mode1, int(mode2))
- return (
- # satellite list by channel
- tuple(satlist),
- # (MODE_AUTO/MODE_FORCED, MODE_NOFIX/MODE_2DFIX/MODE_3DFIX)
- mode,
- # position dilution of precision
- pdop,
- # horizontal dilution of precision
- hdop,
- # vertical dilution of precision
- vdop,
- )
-
- def decode_fix(self, utc, latitude, ns, longitude, ew, posfix, satellites, hdop, altitude, altitude_units, geoid_separation, geoid_separation_units, dgps_age, dgps_station_id):
- latitude, longitude = self._decode_latlon(latitude, ns, longitude, ew)
- utc = self._decode_utc(utc)
- posfix = int(posfix)
- satellites = int(satellites)
- hdop = float(hdop)
- altitude = (float(altitude), altitude_units)
- if geoid_separation != '':
- geoid = (float(geoid_separation), geoid_separation_units)
- else:
- geoid = None
- if dgps_age != '':
- dgps = (float(dgps_age), dgps_station_id)
- else:
- dgps = None
- return (
- # seconds since 00:00 UTC
- utc,
- # latitude (degrees)
- latitude,
- # longitude (degrees)
- longitude,
- # position fix status (POSFIX_INVALID, POSFIX_SPS, POSFIX_DGPS, POSFIX_PPS)
- posfix,
- # number of satellites used for fix 0 <= satellites <= 12
- satellites,
- # horizontal dilution of precision
- hdop,
- # None or (altitude according to WGS-84 ellipsoid, units (typically 'M' for meters))
- altitude,
- # None or (geoid separation according to WGS-84 ellipsoid, units (typically 'M' for meters))
- geoid,
- # (age of dgps data in seconds, dgps station id)
- dgps,
- )
« no previous file with comments | « third_party/twisted_8_1/twisted/protocols/gps/__init__.py ('k') | third_party/twisted_8_1/twisted/protocols/gps/rockwell.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698