2015-04-22 05:05:30 -06:00
|
|
|
from rest_framework import serializers
|
|
|
|
|
2016-05-08 09:44:22 -06:00
|
|
|
from db.base.models import Mode, Satellite, Transmitter, DemodData
|
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()
|
2015-08-14 07:57:39 -06:00
|
|
|
mode_id = serializers.SerializerMethodField()
|
2015-05-07 02:28:03 -06:00
|
|
|
|
2015-04-22 05:05:30 -06:00
|
|
|
class Meta:
|
2015-07-23 06:48:58 -06:00
|
|
|
model = Transmitter
|
2018-12-09 01:51:24 -07:00
|
|
|
fields = ('uuid', 'description', 'alive', 'type', 'uplink_low', 'uplink_high',
|
|
|
|
'uplink_drift', 'downlink_low', 'downlink_high', 'downlink_drift',
|
|
|
|
'mode_id', 'invert', 'baud', 'norad_cat_id')
|
2015-05-07 02:28:03 -06:00
|
|
|
|
2015-08-14 07:57:39 -06:00
|
|
|
def get_mode_id(self, obj):
|
|
|
|
try:
|
|
|
|
return obj.mode.id
|
2018-07-14 11:42:17 -06:00
|
|
|
except Exception:
|
2015-09-17 07:01:41 -06:00
|
|
|
return None
|
2015-08-14 07:57:39 -06:00
|
|
|
|
2015-05-09 03:52:24 -06:00
|
|
|
def get_norad_cat_id(self, obj):
|
2015-05-07 02:28:03 -06:00
|
|
|
return obj.satellite.norad_cat_id
|
2016-05-08 09:44:22 -06:00
|
|
|
|
|
|
|
|
|
|
|
class TelemetrySerializer(serializers.ModelSerializer):
|
|
|
|
norad_cat_id = serializers.SerializerMethodField()
|
2017-03-28 11:39:53 -06:00
|
|
|
transmitter = serializers.SerializerMethodField()
|
|
|
|
schema = serializers.SerializerMethodField()
|
|
|
|
decoded = serializers.SerializerMethodField()
|
|
|
|
frame = serializers.SerializerMethodField()
|
2016-05-08 09:44:22 -06:00
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = DemodData
|
2017-03-28 11:39:53 -06:00
|
|
|
fields = ('norad_cat_id', 'transmitter', 'source', 'schema', 'decoded', 'frame',
|
|
|
|
'observer', 'timestamp')
|
2016-05-08 09:44:22 -06:00
|
|
|
|
|
|
|
def get_norad_cat_id(self, obj):
|
2017-03-02 10:55:10 -07:00
|
|
|
return obj.satellite.norad_cat_id
|
2016-05-08 09:44:22 -06:00
|
|
|
|
2017-03-28 11:39:53 -06:00
|
|
|
def get_transmitter(self, obj):
|
|
|
|
try:
|
|
|
|
return obj.transmitter.uuid
|
2018-07-14 11:42:17 -06:00
|
|
|
except Exception:
|
2017-03-28 11:39:53 -06:00
|
|
|
return ''
|
|
|
|
|
|
|
|
def get_schema(self, obj):
|
2017-03-02 10:55:10 -07:00
|
|
|
try:
|
|
|
|
return obj.payload_telemetry.schema
|
2018-07-14 11:42:17 -06:00
|
|
|
except Exception:
|
2017-03-02 10:55:10 -07:00
|
|
|
return ''
|
2016-05-08 09:44:22 -06:00
|
|
|
|
2017-03-28 11:39:53 -06:00
|
|
|
def get_decoded(self, obj):
|
2017-03-02 10:55:10 -07:00
|
|
|
return obj.payload_decoded
|
|
|
|
|
2017-03-28 11:39:53 -06:00
|
|
|
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
|
2018-09-03 09:41:23 -06:00
|
|
|
fields = ('satellite', 'payload_frame', 'station', 'lat', 'lng', 'timestamp', 'source')
|