Files
2026-09-03 18:23:24 -05:00

19 lines
589 B
Python

def psa_checksum(address: int, sig, d: bytearray) -> int:
chk_ini = {0x452: 0x4, 0x38D: 0x7, 0x42D: 0xC}.get(address, 0xB)
byte = sig.start_bit // 8
d[byte] &= 0x0F if sig.start_bit % 8 >= 4 else 0xF0
checksum = sum((b >> 4) + (b & 0xF) for b in d)
return (chk_ini - checksum) & 0xF
def create_lka_steering(packer, lat_active: bool, apply_angle: float, status: int):
values = {
'DRIVE': 1,
'STATUS': status,
'LXA_ACTIVATION': 1,
'TORQUE_FACTOR': lat_active * 100,
'SET_ANGLE': apply_angle,
}
return packer.make_can_msg('LANE_KEEP_ASSIST', 0, values)