You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
2.0 KiB
66 lines
2.0 KiB
import chryslercan
|
|
from selfdrive.can.packer import CANPacker
|
|
|
|
from cereal import car
|
|
VisualAlert = car.CarControl.HUDControl.VisualAlert
|
|
AudibleAlert = car.CarControl.HUDControl.AudibleAlert
|
|
|
|
import unittest
|
|
|
|
|
|
class TestChryslerCan(unittest.TestCase):
|
|
|
|
def test_checksum(self):
|
|
self.assertEqual(0x75, chryslercan.calc_checksum([0x01, 0x20]))
|
|
self.assertEqual(0xcc, chryslercan.calc_checksum([0x14, 0, 0, 0, 0x20]))
|
|
|
|
def test_heartbit(self):
|
|
packer = CANPacker('chrysler_pacifica_2017_hybrid')
|
|
self.assertEqual(
|
|
[0x2d9, 0, '0000000820'.decode('hex'), 0],
|
|
chryslercan.create_lkas_heartbit(packer, 0x820))
|
|
|
|
def test_hud(self):
|
|
packer = CANPacker('chrysler_pacifica_2017_hybrid')
|
|
self.assertEqual(
|
|
[0x2a6, 0, '0100010100000000'.decode('hex'), 0],
|
|
chryslercan.create_lkas_hud(
|
|
packer,
|
|
'park', False, False, 1, 0))
|
|
self.assertEqual(
|
|
[0x2a6, 0, '0100010000000000'.decode('hex'), 0],
|
|
chryslercan.create_lkas_hud(
|
|
packer,
|
|
'park', False, False, 5*4, 0))
|
|
self.assertEqual(
|
|
[0x2a6, 0, '0100010000000000'.decode('hex'), 0],
|
|
chryslercan.create_lkas_hud(
|
|
packer,
|
|
'park', False, False, 99999, 0))
|
|
self.assertEqual(
|
|
[0x2a6, 0, '0200060000000000'.decode('hex'), 0],
|
|
chryslercan.create_lkas_hud(
|
|
packer,
|
|
'drive', True, False, 99999, 0))
|
|
self.assertEqual(
|
|
[0x2a6, 0, '0264060000000000'.decode('hex'), 0],
|
|
chryslercan.create_lkas_hud(
|
|
packer,
|
|
'drive', True, False, 99999, 0x64))
|
|
|
|
def test_command(self):
|
|
packer = CANPacker('chrysler_pacifica_2017_hybrid')
|
|
self.assertEqual(
|
|
[0x292, 0, '140000001086'.decode('hex'), 0],
|
|
chryslercan.create_lkas_command(
|
|
packer,
|
|
0, True, 1))
|
|
self.assertEqual(
|
|
[0x292, 0, '040000008083'.decode('hex'), 0],
|
|
chryslercan.create_lkas_command(
|
|
packer,
|
|
0, False, 8))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|
|
|