fix: use struct.pack_into for safe 324-byte test packet construction
This commit is contained in:
@@ -187,24 +187,27 @@ class TelemetryListener:
|
|||||||
ws_manager.push_telemetry(td)
|
ws_manager.push_telemetry(td)
|
||||||
|
|
||||||
if self.forwarder._sock and self.forwarder._targets:
|
if self.forwarder._sock and self.forwarder._targets:
|
||||||
buf = struct.pack("<iI" + "f" * 79 + "H" + "B" * 6 + "b" * 3,
|
buf = bytearray(324)
|
||||||
1, int(time.time() * 1000),
|
struct.pack_into("<i", buf, 0, 1)
|
||||||
max_rpm, 800.0, rpm,
|
struct.pack_into("<I", buf, 4, int(time.time() * 1000))
|
||||||
0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
|
struct.pack_into("<f", buf, 8, max_rpm)
|
||||||
0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
|
struct.pack_into("<f", buf, 12, 800.0)
|
||||||
0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
|
struct.pack_into("<f", buf, 16, rpm)
|
||||||
0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
|
struct.pack_into("<f", buf, 256, speed_kmh / 3.6)
|
||||||
0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
|
struct.pack_into("<f", buf, 260, rpm / max_rpm * 400000)
|
||||||
0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
|
struct.pack_into("<f", buf, 264, torque)
|
||||||
0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
|
struct.pack_into("<f", buf, 284, boost)
|
||||||
0.0, 0.0, 0.0, speed_kmh / 3.6, 0.0, torque,
|
struct.pack_into("<f", buf, 288, fuel)
|
||||||
0.0, 0.0, 0.0, 0.0, boost, fuel,
|
struct.pack_into("<f", buf, 296, best_lap)
|
||||||
0.0, 0.0, best_lap, last_lap, lap_time,
|
struct.pack_into("<f", buf, 300, last_lap)
|
||||||
0.0, 0.0, 0.0,
|
struct.pack_into("<f", buf, 304, lap_time)
|
||||||
int(phase) % 15,
|
struct.pack_into("<H", buf, 312, int(phase) % 15)
|
||||||
1, int(throttle * 255), int(brake * 255), 0, 0, gear,
|
struct.pack_into("<B", buf, 314, 1)
|
||||||
int(steering * 127), 0, 0)
|
struct.pack_into("<B", buf, 315, int(throttle * 255))
|
||||||
self.forwarder.forward(buf)
|
struct.pack_into("<B", buf, 316, int(brake * 255))
|
||||||
|
struct.pack_into("<B", buf, 319, gear)
|
||||||
|
struct.pack_into("<b", buf, 320, int(steering * 127))
|
||||||
|
self.forwarder.forward(bytes(buf))
|
||||||
|
|
||||||
for cb in self._callbacks:
|
for cb in self._callbacks:
|
||||||
try: cb(td)
|
try: cb(td)
|
||||||
|
|||||||
Reference in New Issue
Block a user