Fix error handling for data construct on init.
This commit is contained in:
+4
-1
@@ -223,7 +223,10 @@ if __name__ == '__main__':
|
|||||||
msg = queue.delete_head() #blocking read
|
msg = queue.delete_head() #blocking read
|
||||||
|
|
||||||
for out in outputs:
|
for out in outputs:
|
||||||
out(msg.to_string())
|
try:
|
||||||
|
out(msg.to_string())
|
||||||
|
except ADSBError:
|
||||||
|
pass
|
||||||
|
|
||||||
elif runner.done:
|
elif runner.done:
|
||||||
raise KeyboardInterrupt
|
raise KeyboardInterrupt
|
||||||
|
|||||||
+10
-6
@@ -51,12 +51,16 @@ class data_field:
|
|||||||
#done once on init so you don't have to iterate down every time you grab a field
|
#done once on init so you don't have to iterate down every time you grab a field
|
||||||
def parse(self):
|
def parse(self):
|
||||||
fields = {}
|
fields = {}
|
||||||
for field in self.types[self.get_type()]:
|
mytype = self.get_type()
|
||||||
bits = self.types[self.get_type()][field]
|
if mytype in self.types:
|
||||||
if len(bits) == 3:
|
for field in self.types[mytype]:
|
||||||
obj = bits[2](self.get_bits(bits[0], bits[1]))
|
bits = self.types[self.get_type()][field]
|
||||||
fields.update(obj.parse())
|
if len(bits) == 3:
|
||||||
fields.update({field: self.get_bits(bits[0], bits[1])})
|
obj = bits[2](self.get_bits(bits[0], bits[1]))
|
||||||
|
fields.update(obj.parse())
|
||||||
|
fields.update({field: self.get_bits(bits[0], bits[1])})
|
||||||
|
else:
|
||||||
|
raise NoHandlerError(mytype)
|
||||||
return fields
|
return fields
|
||||||
|
|
||||||
def get_type(self):
|
def get_type(self):
|
||||||
|
|||||||
@@ -32,7 +32,6 @@ class modes_output_print(modes_parse.modes_parse):
|
|||||||
def parse(self, message):
|
def parse(self, message):
|
||||||
[data, ecc, reference, timestamp] = message.split()
|
[data, ecc, reference, timestamp] = message.split()
|
||||||
|
|
||||||
data = modes_parse.modes_reply(long(data, 16))
|
|
||||||
ecc = long(ecc, 16)
|
ecc = long(ecc, 16)
|
||||||
reference = float(reference)
|
reference = float(reference)
|
||||||
timestamp = float(timestamp)
|
timestamp = float(timestamp)
|
||||||
@@ -45,6 +44,7 @@ class modes_output_print(modes_parse.modes_parse):
|
|||||||
output = "(%.0f %.10f) " % (refdb, timestamp);
|
output = "(%.0f %.10f) " % (refdb, timestamp);
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
data = modes_parse.modes_reply(long(data, 16))
|
||||||
msgtype = data["df"]
|
msgtype = data["df"]
|
||||||
if msgtype == 0:
|
if msgtype == 0:
|
||||||
output += self.print0(data, ecc)
|
output += self.print0(data, ecc)
|
||||||
|
|||||||
Reference in New Issue
Block a user