diff options
author | Greg Troxel <gdt@ir.bbn.com> | 2009-12-02 15:47:06 +0000 |
---|---|---|
committer | Greg Troxel <gdt@ir.bbn.com> | 2009-12-02 15:47:06 +0000 |
commit | 96d59fdac2b9eee55171ade78a729331a9f92197 (patch) | |
tree | a62c813a44d9e3e3ba218750adba8b017bbd77a1 /gpscat | |
parent | 36d56a924abac976402b0ef0b72703009ab649b6 (diff) | |
download | gpsd-96d59fdac2b9eee55171ade78a729331a9f92197.tar.gz |
Substitute $PYTHON instead of assuming 'python' is python.
Now 'make check' runs on NetbSD, and $(prefix)/bin/gpsfake works.
Diffstat (limited to 'gpscat')
-rwxr-xr-x | gpscat | 129 |
1 files changed, 0 insertions, 129 deletions
diff --git a/gpscat b/gpscat deleted file mode 100755 index 155abe70..00000000 --- a/gpscat +++ /dev/null @@ -1,129 +0,0 @@ -#!/usr/bin/env python -# -# Display GPS output. Hexify it if necessary. -# -import os, sys, termios, select, getopt, curses.ascii -import gpspacket - -# The spec says 82, but some receivers (TN-200, GSW 2.3.2) output 86 characters -NMEA_MAX = 86 - -# Lowest debug level at which packet getter begins to emit messages, minus one -BASELEVEL = gpspacket.LOG_IO - -highhalf_latch = True - -def hexdump(str): - dmp = "" - for (i, ch) in enumerate(str): - if curses.ascii.isprint(ord(ch)) or curses.ascii.isspace(ord(ch)): - dmp += ch - else: - dmp += "\\x%02x" % ord(ch) - return dmp - -debuglevel = 0 - -def reporter(errlevel, msg): - if errlevel <= debuglevel: - sys.stdout.write(msg) - -if __name__ == '__main__': - buf = "" - try: - try: - (options, arguments) = getopt.getopt(sys.argv[1:], "hps:tv:V") - except getopt.GetoptError, msg: - print "gpscat: " + str(msg) - raise SystemExit, 1 - - speed = None - parity = None - stopbits = None - rawmode = True - typeflag = False - for (switch, val) in options: - if switch == '-p': - rawmode = False - elif switch == '-s': - if val[-2] in ('N', 'E', 'O'): - parity = val[-2] - stopbits = int(val[-1]) - val = val[:-2] - speed = int(val) - elif switch == '-t': - typeflag = True - rawmode = False - elif switch == '-v': - debuglevel = BASELEVEL + int(val) - elif switch == '-h': - sys.stderr.write("usage: gpscat [-s speed] serial-port\n") - raise SystemExit, 0 - elif switch == '-V': - sys.stderr.write("gpscat at svn revision $Rev$\n") - raise SystemExit, 0 - - tty = os.open(arguments[0], os.O_RDWR) - if speed != None: - (iflag, oflag, cflag, lflag, ispeed, ospeed, cc) = termios.tcgetattr(tty) - try: - ispeed = ospeed = eval("termios.B%d" % speed) - except AttributeError: - sys.stderr.write("gpscat: unknown baud rate %d\n" % speed) - raise SystemExit, 1 - if stopbits: - cflag &= ~termios.CSIZE - cflag |= (termios.CS8, termios.CS7)[stopbits-1] - if parity: - if parity == 'N': - iflag &= ~termios.PARENB - iflag &= ~termios.INPCK - elif parity == 'O': - iflag |= termios.INPCK - cflag |= termios.PARENB - cflag |= termios.PARODD - elif parity == 'E': - iflag |= termios.INPCK - cflag |= termios.PARENB - cflag &= ~termios.PARODD - termios.tcsetattr(tty, termios.TCSANOW, - [iflag, oflag, cflag, lflag, ispeed, ospeed, cc]) - - poller = select.poll() - poller.register(tty, select.POLLIN) - - buf = "" - if not rawmode: - getter = gpspacket.new() - gpspacket.register_report(reporter) - seqno = 0 - while True: - (fd, event) = poller.poll()[0] - if fd == tty and event == select.POLLIN: - if rawmode: - buf += os.read(tty, NMEA_MAX) - sys.stdout.write(hexdump(buf)) - buf = "" - else: - (length, ptype, packet) = getter.get(tty) - seqno += 1 - # Don't crap out if the first packet is bad, we might - # be seeing an incomplete read from a tty. - if ptype == gpspacket.BAD_PACKET and seqno >= 2: - if debuglevel >= BASELEVEL: - sys.stdout.write("gpscat: terminating on bad packet\n") - break - elif length == 0: - break - if typeflag: - sys.stdout.write(`ptype` + " (" + `length` + "): " + hexdump(packet)) - sys.stdout.write("\n") - else: - sys.stdout.write(hexdump(packet) + "\n") - except KeyboardInterrupt: - if rawmode: - sys.stdout.write("\n") - raise SystemExit, 0 - - - |