1
0
Fork 0
satnogs-db/db/api/serializers.py

93 lines
2.7 KiB
Python
Raw Normal View History

from db.base.models import TRANSMITTER_STATUS, DemodData, Mode, Satellite, \
Transmitter
2015-04-22 05:05:30 -06:00
from rest_framework import serializers
2015-08-13 06:57:04 -06:00
class ModeSerializer(serializers.ModelSerializer):
class Meta:
model = Mode
fields = ('id', 'name')
2015-05-03 15:23:07 -06:00
class SatelliteSerializer(serializers.ModelSerializer):
class Meta:
model = Satellite
2019-01-19 10:27:48 -07:00
fields = ('norad_cat_id', 'name', 'names', 'image', 'status', 'decayed')
2015-04-22 05:05:30 -06:00
2015-07-23 06:48:58 -06:00
class TransmitterSerializer(serializers.ModelSerializer):
2015-05-09 03:52:24 -06:00
norad_cat_id = serializers.SerializerMethodField()
mode_id = serializers.SerializerMethodField()
mode = serializers.SerializerMethodField()
alive = serializers.SerializerMethodField()
updated = serializers.DateTimeField(source='created')
2015-04-22 05:05:30 -06:00
class Meta:
2015-07-23 06:48:58 -06:00
model = Transmitter
fields = (
'uuid', 'description', 'alive', 'type', 'uplink_low', 'uplink_high', 'uplink_drift',
'downlink_low', 'downlink_high', 'downlink_drift', 'mode_id', 'mode', 'invert', 'baud',
'norad_cat_id', 'status', 'updated', 'citation'
)
# Keeping alive field for compatibility issues
def get_alive(self, obj):
return obj.status == TRANSMITTER_STATUS[0]
def get_mode_id(self, obj):
try:
return obj.mode.id
except Exception:
2015-09-17 07:01:41 -06:00
return None
def get_mode(self, obj):
try:
return obj.mode.name
except Exception:
return None
2015-05-09 03:52:24 -06:00
def get_norad_cat_id(self, obj):
return obj.satellite.norad_cat_id
class TelemetrySerializer(serializers.ModelSerializer):
norad_cat_id = serializers.SerializerMethodField()
transmitter = serializers.SerializerMethodField()
schema = serializers.SerializerMethodField()
decoded = serializers.SerializerMethodField()
frame = serializers.SerializerMethodField()
class Meta:
model = DemodData
fields = (
'norad_cat_id', 'transmitter', 'app_source', 'schema', 'decoded', 'frame', 'observer',
'timestamp'
)
def get_norad_cat_id(self, obj):
2017-03-02 10:55:10 -07:00
return obj.satellite.norad_cat_id
def get_transmitter(self, obj):
try:
return obj.transmitter.uuid
except Exception:
return ''
def get_schema(self, obj):
2017-03-02 10:55:10 -07:00
try:
return obj.payload_telemetry.schema
except Exception:
2017-03-02 10:55:10 -07:00
return ''
def get_decoded(self, obj):
2017-03-02 10:55:10 -07:00
return obj.payload_decoded
def get_frame(self, obj):
return obj.display_frame()
2017-03-02 10:55:10 -07:00
class SidsSerializer(serializers.ModelSerializer):
class Meta:
model = DemodData
fields = ('satellite', 'payload_frame', 'station', 'lat', 'lng', 'timestamp', 'app_source')