-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathModemInfo.py
More file actions
39 lines (33 loc) · 1.7 KB
/
Copy pathModemInfo.py
File metadata and controls
39 lines (33 loc) · 1.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import json
class ModemInfo:
def __init__(self, modem_dict: {}):
self.sat = modem_dict.get('sat', '')
self.mode = modem_dict.get('mode', 1)
self.freq = modem_dict.get('freq', 0.0)
self.freqOffset = modem_dict.get('freqOffset', 0)
self.bw = modem_dict.get('bw', 0)
self.sf = modem_dict.get('sf', 0)
self.cr = modem_dict.get('cr', 0)
self.sw = modem_dict.get('sw', 0)
self.pwr = modem_dict.get('pwr', 0)
self.cl = modem_dict.get('cl', 0)
self.pl = modem_dict.get('pl', 0)
self.bitrate = modem_dict.get('bitrate', 0)
self.freqDev = modem_dict.get('freqDev', 0)
self.OOK = modem_dict.get('OOK', 0)
self.crc = modem_dict.get('crc', False)
self.fldro = modem_dict.get('fldro', False)
self.gain = modem_dict.get('gain', 0)
self.NORAD = modem_dict.get('NORAD', 0)
self.fsw = modem_dict.get('fsw', 0)
self.swSize = modem_dict.get('swSize', 0)
self.filter = modem_dict.get('filter', [])
def to_json(self):
return json.dumps(self.__dict__, indent=4)
@classmethod
def from_json(cls, data: dict):
# You can create an instance using this alternative constructor
modem = cls(data)
return modem
def __str__(self):
return f"ModemConfig(sat='{self.sat}', mode={self.mode}, freq={self.freq}, freqOffset={self.freqOffset}, bw={self.bw}, sf={self.sf}, cr={self.cr}, sw={self.sw}, pwr={self.pwr}, cl={self.cl}, pl={self.pl}, bitrate={self.bitrate}, freqDev={self.freqDev}, OOK={self.OOK}, crc={self.crc}, fldro={self.fldro}, gain={self.gain}, NORAD={self.NORAD}, fsw={self.fsw}, swSize={self.swSize}, filter={self.filter})"