You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
19 lines
865 B
19 lines
865 B
__slots__ = ["num", "snr", "rssi", "hops_away", "ts", "long_name", "short_name", "is_unmessagable", "last_portnum", "view_in_packets"]
|
|
|
|
class NodeDTO:
|
|
def __init__(self, data, grabPosition = False, grabMetrics = False):
|
|
for slot in __slots__:
|
|
setattr(self, slot, data.get(slot, None))
|
|
|
|
self.havePosition = True if data.get("position", {}) else False
|
|
if grabPosition and data.get("position", {}):
|
|
setattr(self, "position", data.get("position"))
|
|
|
|
self.haveMetrics = True if data.get("device_metrics", {}) else False
|
|
if grabMetrics and data.get("device_metrics", {}):
|
|
setattr(self, "device_metrics", data.get("device_metrics"))
|
|
|
|
class NodeShortDTO:
|
|
def __init__(self, data):
|
|
for slot in ["num", "long_name", "short_name"]:
|
|
setattr(self, slot, data.get(slot, None))
|