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()