Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions flight_aware_redis.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#!/usr/bin/env python3
import gc
import sys, os.path
import threading
import time
Expand Down Expand Up @@ -72,6 +73,8 @@ def cleanup_flight_collection(max_age=3600):
del FLIGHTS._dictionary[id]
except KeyError:
logger.warning("Flight %s not found in FLIGHTS collection", id)
gc.collect()


def get_call_sign(hexident):
flight_rec = FLIGHTS[hexident]
Expand Down Expand Up @@ -99,6 +102,8 @@ def record_positions_to_redis(redis_client):
with py1090.Connection(host=CONFIG.fa_host) as connection:
for line in connection:
message = py1090.Message.from_string(line)
if message.on_ground:
continue

if message.latitude and message.longitude:
distance = distance_between(CONFIG.home_latitude,
Expand All @@ -112,11 +117,11 @@ def record_positions_to_redis(redis_client):
logger.info("Updating %s call_sign='%s'", message.hexident,call_sign)
last_message = publish_rec( call_sign, last_message)
FLIGHTS.add(message)

call_sign, distance = get_call_sign(message.hexident)
# publish to redis
redis_client.hset(message.hexident, mapping=to_record(message))
msg_count += 1
if msg_count % 1000 == 0:
call_sign, distance = get_call_sign(message.hexident)
logging.info("%d %s recorded. last_dist=%0.2f call_sign=%s", msg_count, message.hexident, distance, call_sign)

def run_loop():
Expand Down