diff --git a/pyad2usb/ad2usb.py b/pyad2usb/ad2usb.py index 3dbde7a..494de9e 100644 --- a/pyad2usb/ad2usb.py +++ b/pyad2usb/ad2usb.py @@ -231,6 +231,8 @@ class AD2USB(object): msg = ExpanderMessage(data) elif header == '!RFX': msg = RFMessage(data) + elif header == '!LRR': + msg = LRRMessage(data) elif data.startswith('!Ready'): self.on_boot() @@ -428,4 +430,35 @@ class RFMessage(object): self.raw = data _, values = data.split(':') - self.serial_number, self.value = values.split(',') \ No newline at end of file + self.serial_number, self.value = values.split(',') + +class LRRMessage(object): + """ + Represent a message from a Long Range Radio. + """ + def __init__(self, data=None): + """ + Constructor + """ + self.raw = None + self._event_data = None + self._partition = None + self._event_type = None + + if data is not None: + self._parse_message(data) + + def __str__(self): + """ + String conversion operator. + """ + return 'lrr > {0} @ {1} -- {2}'.format() + + def _parse_message(self, data): + """ + Parses the raw message from the device. + """ + self.raw = data + + _, values = data.split(':') + self._event_data, self._partition, self._event_type = values.split(',') \ No newline at end of file