import json import re from re import Pattern from hardware.generic.serial_reader import SerialReader class LoraLightSensorReader(SerialReader): json_pattern : Pattern = None def __init__(self, port, baudrate): super().__init__(port, baudrate) self.json_pattern = re.compile(r'\{.*}') def _read(self): while self._run_event.is_set(): line = self.serial.readline().decode('utf-8', errors='ignore').strip() if not line: continue match = self.json_pattern.search(line) if match: try: data = match.group() self._notify(str(data)) except json.JSONDecodeError: print("Received invalid JSON:", match.group())