Files
MCRLMock/lib.py
2026-02-20 20:51:56 +01:00

42 lines
1.2 KiB
Python

import struct
class RTLFWriter:
HEADER_FIXED_FORMAT = "<4sIII"
RECORD_FORMAT = "<dddddddddd"
MAGIC_NUMBER = b"RTLF"
VERSION = 1
def __init__(self, filename, car_id, track_name):
self.filename = filename
self.car_id = car_id
self.track_name = track_name.encode('utf-8')
self.file = open(filename, "wb")
self._write_header()
def _write_header(self):
track_len = len(self.track_name)
header_bytes = struct.pack(
self.HEADER_FIXED_FORMAT,
self.MAGIC_NUMBER,
self.VERSION,
self.car_id,
track_len
)
self.file.write(header_bytes)
self.file.write(self.track_name)
def write_record(self, timestamp, long, lat, fx, fy, fz, ax, ay, az, speed):
record_bytes = struct.pack(
self.RECORD_FORMAT,
timestamp, long, lat, fx, fy, fz, ax, ay, az, speed
)
self.file.write(record_bytes)
def close(self):
if self.file:
self.file.close()
self.file = None
def __enter__(self): return self
def __exit__(self, exc_type, exc_val, exc_tb): self.close()