import time from server.telemetry.data import TelemetryData def get_parser(): return AssettoCorsaParser() class AssettoCorsaParser: def game_id(self) -> str: return "assetto_corsa" def parse(self, data: bytes, addr: tuple) -> TelemetryData: td = TelemetryData(game_id="assetto_corsa", timestamp=time.time()) td.raw = {"raw_hex": data.hex(), "length": len(data), "addr": f"{addr[0]}:{addr[1]}"} try: text = data.decode("utf-8", errors="replace").rstrip("\r\n") parts = text.split("\t") if len(parts) < 10: return td td.speed_kmh = float(parts[0]) td.speed_mph = td.speed_kmh * 0.621371 td.rpm = float(parts[1]) td.gear = int(float(parts[2])) td.throttle = float(parts[3]) td.brake = float(parts[4]) td.steering = float(parts[5]) td.fuel = float(parts[6]) except Exception: pass return td