Add rudimentary CAN frame decoding
This commit is contained in:
parent
5b04d84251
commit
2acf57d2e8
1 changed files with 13 additions and 0 deletions
|
@ -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)
|
||||
|
|
Loading…
Add table
Reference in a new issue