diff --git a/src/python/modes_sql.py b/src/python/modes_sql.py index fd0f8f8..b492921 100644 --- a/src/python/modes_sql.py +++ b/src/python/modes_sql.py @@ -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 diff --git a/src/python/uhd_modes.py b/src/python/uhd_modes.py index bdf68a2..74950d2 100755 --- a/src/python/uhd_modes.py +++ b/src/python/uhd_modes.py @@ -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