Add rudimentary CAN frame decoding

This commit is contained in:
XANTRONIX Development 2024-01-08 22:31:09 -05:00
parent 5b04d84251
commit 2acf57d2e8

View file

@ -40,6 +40,19 @@ cdef cluster_update(cluster: Cluster,
fg: cairo.Context,
hexagram_window *window,
can_frame *frame):
if frame.can_id == 0x280:
cluster.tacho.value = 0.25 * float(frame.data[2] | (frame.data[3] << 8))
elif frame.can_id == 0x288:
cluster.thermo.value = 0.75 * float(frame.data[1] - 48)
elif frame.can_id == 0x320:
cluster.fuel.value = frame.data[2] & 0xf
elif frame.can_id == 0x5a0:
rps = 0.001 * float(frame.data[1] | (frame.data[2] << 8))
kph = (2.00152 * rps * 3600) / 1000.0
mph = kph * 0.621371
cluster.speedo.value = mph
hexagram_window_refresh_bg(window)
cluster.draw_fg(fg)
hexagram_window_swap_buffer(window)