Initial commit
This commit is contained in:
42
lib.py
Normal file
42
lib.py
Normal file
@@ -0,0 +1,42 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user