KML generation in there but not tested

pull/1/merge
Nick Foster 14 years ago
parent 627b820b6e
commit ac0b796d1d

@ -36,15 +36,15 @@ class modes_output_sql(modes_parse.modes_parse):
def __del__(self):
self.db.close()
def output(self, message):
query = self.make_query(message)
def insert(self, message):
query = self.make_insert_query(message)
if query is not None:
c = self.db.cursor()
c.execute(query)
c.close()
self.db.commit() #not sure if i have to do this
def make_query(self, message):
def make_insert_query(self, message):
#assembles a SQL query tailored to our database
#this version ignores anything that isn't Type 17 for now, because we just don't care
[msgtype, shortdata, longdata, parity, ecc, reference] = message.split()
@ -98,9 +98,6 @@ class modes_output_sql(modes_parse.modes_parse):
[velocity, heading, vert_spd] = self.parseBDS09_1(shortdata, longdata, parity, ecc)
retstr = "INSERT INTO vectors (icao, seen, speed, heading, vertical) VALUES (" + "%i" % icao24 + ", datetime('now'), " + "%.0f" % velocity + ", " + "%.0f" % heading + ", " + "%.0f" % vert_spd + ")";
else:
print "debug (modes_sql): unknown subtype %i with data %x %x %x" % (subtype, shortdata, longdata, parity,)
return retstr

@ -3,7 +3,7 @@ from gnuradio import gr, gru, optfir, eng_notation, blks2, air
from gnuradio import uhd
from gnuradio.eng_option import eng_option
from optparse import OptionParser
import time, os, sys
import time, os, sys, threading
from string import split, join
from usrpm import usrp_dbid
from modes_print import modes_output_print
@ -23,9 +23,7 @@ class top_block_runner(_threading.Thread):
self.tb.run()
self.done = True
class adsb_rx_block (gr.top_block):
def __init__(self, options, args, queue):
gr.top_block.__init__(self)
@ -101,8 +99,8 @@ if __name__ == '__main__':
help="set DBSRX baseband bandwidth in Hz [default=%default]")
parser.add_option("-F","--filename", type="string", default=None,
help="read data from file instead of USRP")
parser.add_option("-D","--database", action="store_true", default=False,
help="send to database instead of printing to screen")
parser.add_option("-K","--kml", type="string", default=None,
help="filename for Google Earth KML output")
parser.add_option("-P","--sbs1", action="store_true", default=False,
help="open an SBS-1-compatible server on port 30003")
parser.add_option("-n","--no-print", action="store_true", default=False,
@ -115,8 +113,11 @@ if __name__ == '__main__':
outputs = [] #registry of plugin output functions
updates = [] #registry of plugin update functions
if options.database is True:
outputs.append(modes_output_sql().output)
if options.kml is not None:
sqlport = modes_output_sql()
outputs.append(sqlport.insert)
#also we spawn a thread to run every 30 seconds (or whatever) to generate KML
kmlgen = modes_kml(sqlport.db, options.kml) #this is a thread
if options.sbs1 is True:
sbs1port = modes_output_sbs1()
@ -153,4 +154,6 @@ if __name__ == '__main__':
except KeyboardInterrupt:
fg.stop()
runner = None
if kmlgen is not None: #this breaks your nice output registry scheme
kmlgen = None
break

Loading…
Cancel
Save