From 8adda93204da2a321928718e848424ae0903f2e7 Mon Sep 17 00:00:00 2001 From: Alfredos-Panagiotis Damkalis Date: Thu, 4 Feb 2021 12:48:39 +0200 Subject: [PATCH] Add station_id field to published DemodData Signed-off-by: Alfredos-Panagiotis Damkalis --- db/api/views.py | 17 +++++++++++------ db/base/tasks.py | 7 ++++--- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/db/api/views.py b/db/api/views.py index 1a30558..a44c021 100644 --- a/db/api/views.py +++ b/db/api/views.py @@ -227,15 +227,15 @@ class TelemetryViewSet( # pylint: disable=R0901 """ data = {} - norad_cat_id = request.data.get('noradID') + norad_id = request.data.get('noradID') - if not Satellite.objects.filter(norad_cat_id=norad_cat_id).exists(): + if not Satellite.objects.filter(norad_cat_id=norad_id).exists(): try: - update_satellite(norad_cat_id, update_name=True) + update_satellite(norad_id, update_name=True) except LookupError: return Response(status=status.HTTP_400_BAD_REQUEST) - data['satellite'] = Satellite.objects.get(norad_cat_id=norad_cat_id).id + data['satellite'] = Satellite.objects.get(norad_cat_id=norad_id).id data['station'] = request.data.get('source') timestamp = request.data.get('timestamp') data['timestamp'] = timestamp @@ -245,6 +245,7 @@ class TelemetryViewSet( # pylint: disable=R0901 if request.data.get('observation_id'): observation_id = request.data.get('observation_id') data['observation_id'] = observation_id + station_id = '' if request.data.get('station_id'): station_id = request.data.get('station_id') data['station_id'] = station_id @@ -280,11 +281,15 @@ class TelemetryViewSet( # pylint: disable=R0901 self.perform_create(serializer) # Run task to decode the current frame - decode_current_frame.delay(norad_cat_id, serializer.instance.pk) + decode_current_frame.delay(norad_id, serializer.instance.pk) # Run task to publish the current frame via ZeroMQ publish_current_frame.delay( - norad_cat_id, timestamp, request.data.get('frame'), observer, observation_id + timestamp, request.data.get('frame'), observer, { + 'norad_id': norad_id, + 'observation_id': observation_id, + 'station_id': station_id + } ) return Response(status=status.HTTP_201_CREATED) diff --git a/db/base/tasks.py b/db/base/tasks.py index 62a7fba..2857ff6 100644 --- a/db/base/tasks.py +++ b/db/base/tasks.py @@ -265,7 +265,7 @@ def decode_current_frame(norad_id, demoddata_id): @shared_task -def publish_current_frame(norad_id, timestamp, frame, observer, observation_id): +def publish_current_frame(timestamp, frame, observer, ids): """Task to publish a current frame for a satellite.""" # Initialize ZeroMQ socket publisher = CONTEXT.socket(zmq.XPUB) @@ -282,11 +282,12 @@ def publish_current_frame(norad_id, timestamp, frame, observer, observation_id): else: publisher.send_multipart( [ - bytes(str(norad_id), 'utf-8'), + bytes(ids['norad_id'], 'utf-8'), bytes(timestamp, 'utf-8'), bytes(frame, 'utf-8'), bytes(observer, 'utf-8'), - bytes(observation_id, 'utf-8') + bytes(ids['observation_id'], 'utf-8'), + bytes(ids['station_id'], 'utf-8') ] ) finally: