diff --git a/cereal/log.capnp b/cereal/log.capnp index d849f4840b..dcf9463ac8 100644 --- a/cereal/log.capnp +++ b/cereal/log.capnp @@ -336,9 +336,9 @@ enum LaneChangeDirection { struct CanData { address @0 :UInt32; - busTime @1 :UInt16; dat @2 :Data; src @3 :UInt8; + busTimeDEPRECATED @1 :UInt16; } struct DeviceState @0xa4d8b5af2aa492eb { diff --git a/opendbc b/opendbc index cff2af8ff8..8e9d368841 160000 --- a/opendbc +++ b/opendbc @@ -1 +1 @@ -Subproject commit cff2af8ff8690466109f56be62129ebfb85cd5dc +Subproject commit 8e9d3688412405154a8189c421cfdc9d5feea715 diff --git a/panda b/panda index f6375848ca..8c3bb0151e 160000 --- a/panda +++ b/panda @@ -1 +1 @@ -Subproject commit f6375848ca393a9483921665b6a2d131d7ec9b20 +Subproject commit 8c3bb0151e8907ade344ccb293d58cd543e28baa diff --git a/selfdrive/car/__init__.py b/selfdrive/car/__init__.py index 87d43831e6..28ec4ad187 100644 --- a/selfdrive/car/__init__.py +++ b/selfdrive/car/__init__.py @@ -189,7 +189,7 @@ def get_friction(lateral_accel_error: float, lateral_accel_deadzone: float, fric def make_can_msg(addr, dat, bus): - return [addr, 0, dat, bus] + return [addr, dat, bus] def make_tester_present_msg(addr, bus, subaddr=None, suppress_response=False): diff --git a/selfdrive/car/ford/fordcan.py b/selfdrive/car/ford/fordcan.py index 2cfd61a191..46d09ec22d 100644 --- a/selfdrive/car/ford/fordcan.py +++ b/selfdrive/car/ford/fordcan.py @@ -112,7 +112,7 @@ def create_lat_ctl2_msg(packer, CAN: CanBus, mode: int, path_offset: float, path } # calculate checksum - dat = packer.make_can_msg("LateralMotionControl2", 0, values)[2] + dat = packer.make_can_msg("LateralMotionControl2", 0, values)[1] values["LatCtlPath_No_Cs"] = calculate_lat_ctl2_checksum(mode, counter, dat) return packer.make_can_msg("LateralMotionControl2", CAN.main, values) diff --git a/selfdrive/car/gm/gmcan.py b/selfdrive/car/gm/gmcan.py index e833e77636..a70bcccd06 100644 --- a/selfdrive/car/gm/gmcan.py +++ b/selfdrive/car/gm/gmcan.py @@ -64,7 +64,7 @@ def create_gas_regen_command(packer, bus, throttle, idx, enabled, at_full_stop): "GasRegenAlwaysOne3": 1, } - dat = packer.make_can_msg("ASCMGasRegenCmd", bus, values)[2] + dat = packer.make_can_msg("ASCMGasRegenCmd", bus, values)[1] values["GasRegenChecksum"] = (((0xff - dat[1]) & 0xff) << 16) | \ (((0xff - dat[2]) & 0xff) << 8) | \ ((0x100 - dat[3] - idx) & 0xff) diff --git a/selfdrive/car/hyundai/hyundaican.py b/selfdrive/car/hyundai/hyundaican.py index b4b951f89e..d2002e23e0 100644 --- a/selfdrive/car/hyundai/hyundaican.py +++ b/selfdrive/car/hyundai/hyundaican.py @@ -77,7 +77,7 @@ def create_lkas11(packer, frame, CP, apply_steer, steer_req, # Genesis and Optima fault when forwarding while engaged values["CF_Lkas_LdwsActivemode"] = 2 - dat = packer.make_can_msg("LKAS11", 0, values)[2] + dat = packer.make_can_msg("LKAS11", 0, values)[1] if CP.flags & HyundaiFlags.CHECKSUM_CRC8: # CRC Checksum as seen on 2019 Hyundai Santa Fe @@ -156,7 +156,7 @@ def create_acc_commands(packer, enabled, accel, upper_jerk, idx, hud_control, se scc12_values["CF_VSM_ConfMode"] = 1 scc12_values["AEB_Status"] = 1 # AEB disabled - scc12_dat = packer.make_can_msg("SCC12", 0, scc12_values)[2] + scc12_dat = packer.make_can_msg("SCC12", 0, scc12_values)[1] scc12_values["CR_VSM_ChkSum"] = 0x10 - sum(sum(divmod(i, 16)) for i in scc12_dat) % 0x10 commands.append(packer.make_can_msg("SCC12", 0, scc12_values)) @@ -181,7 +181,7 @@ def create_acc_commands(packer, enabled, accel, upper_jerk, idx, hud_control, se "FCA_DrvSetStatus": 1, "FCA_Status": 1, # AEB disabled } - fca11_dat = packer.make_can_msg("FCA11", 0, fca11_values)[2] + fca11_dat = packer.make_can_msg("FCA11", 0, fca11_values)[1] fca11_values["CR_FCA_ChkSum"] = hyundai_checksum(fca11_dat[:7]) commands.append(packer.make_can_msg("FCA11", 0, fca11_values)) diff --git a/selfdrive/car/isotp_parallel_query.py b/selfdrive/car/isotp_parallel_query.py index 447c7093c5..b5158f2126 100644 --- a/selfdrive/car/isotp_parallel_query.py +++ b/selfdrive/car/isotp_parallel_query.py @@ -27,7 +27,7 @@ class IsoTpParallelQuery: assert tx_addr not in FUNCTIONAL_ADDRS, f"Functional address should be defined in functional_addrs: {hex(tx_addr)}" self.msg_addrs = {tx_addr: get_rx_addr_for_tx_addr(tx_addr[0], rx_offset=response_offset) for tx_addr in real_addrs} - self.msg_buffer: dict[int, list[tuple[int, int, bytes, int]]] = defaultdict(list) + self.msg_buffer: dict[int, list[tuple[int, bytes, int]]] = defaultdict(list) def rx(self): """Drain can socket and sort messages into buffers based on address""" @@ -36,11 +36,11 @@ class IsoTpParallelQuery: for packet in can_packets: for msg in packet.can: if msg.src == self.bus and msg.address in self.msg_addrs.values(): - self.msg_buffer[msg.address].append((msg.address, msg.busTime, msg.dat, msg.src)) + self.msg_buffer[msg.address].append((msg.address, msg.dat, msg.src)) def _can_tx(self, tx_addr, dat, bus): """Helper function to send single message""" - msg = [tx_addr, 0, dat, bus] + msg = [tx_addr, dat, bus] self.sendcan.send(can_list_to_can_capnp([msg], msgtype='sendcan')) def _can_rx(self, addr, sub_addr=None): @@ -53,7 +53,7 @@ class IsoTpParallelQuery: # Filter based on subadress msgs = [] for m in self.msg_buffer[addr]: - first_byte = m[2][0] + first_byte = m[1][0] if first_byte == sub_addr: msgs.append(m) else: diff --git a/selfdrive/car/nissan/nissancan.py b/selfdrive/car/nissan/nissancan.py index b9a1b4f843..28fb01d7e3 100644 --- a/selfdrive/car/nissan/nissancan.py +++ b/selfdrive/car/nissan/nissancan.py @@ -15,7 +15,7 @@ def create_steering_control(packer, apply_steer, frame, steer_on, lkas_max_torqu "LKA_ACTIVE": steer_on, } - dat = packer.make_can_msg("LKAS", 0, values)[2] + dat = packer.make_can_msg("LKAS", 0, values)[1] values["CHECKSUM"] = nissan_checksum(dat[:7]) return packer.make_can_msg("LKAS", 0, values) diff --git a/selfdrive/car/subaru/subarucan.py b/selfdrive/car/subaru/subarucan.py index 86d39ff885..41bd177ff2 100644 --- a/selfdrive/car/subaru/subarucan.py +++ b/selfdrive/car/subaru/subarucan.py @@ -279,7 +279,7 @@ def create_es_static_2(packer): # *** Subaru Pre-global *** def subaru_preglobal_checksum(packer, values, addr, checksum_byte=7): - dat = packer.make_can_msg(addr, 0, values)[2] + dat = packer.make_can_msg(addr, 0, values)[1] return (sum(dat[:checksum_byte]) + sum(dat[checksum_byte+1:])) % 256 diff --git a/selfdrive/car/tesla/teslacan.py b/selfdrive/car/tesla/teslacan.py index 6bb27b995f..f8cd138e77 100644 --- a/selfdrive/car/tesla/teslacan.py +++ b/selfdrive/car/tesla/teslacan.py @@ -25,7 +25,7 @@ class TeslaCAN: "DAS_steeringControlCounter": counter, } - data = self.packer.make_can_msg("DAS_steeringControl", CANBUS.chassis, values)[2] + data = self.packer.make_can_msg("DAS_steeringControl", CANBUS.chassis, values)[1] values["DAS_steeringControlChecksum"] = self.checksum(0x488, data[:3]) return self.packer.make_can_msg("DAS_steeringControl", CANBUS.chassis, values) @@ -69,7 +69,7 @@ class TeslaCAN: values["SpdCtrlLvr_Stat"] = 1 values["MC_STW_ACTN_RQ"] = counter - data = self.packer.make_can_msg("STW_ACTN_RQ", bus, values)[2] + data = self.packer.make_can_msg("STW_ACTN_RQ", bus, values)[1] values["CRC_STW_ACTN_RQ"] = self.crc(data[:7]) return self.packer.make_can_msg("STW_ACTN_RQ", bus, values) @@ -88,7 +88,7 @@ class TeslaCAN: } for packer, bus in [(self.packer, CANBUS.chassis), (self.pt_packer, CANBUS.powertrain)]: - data = packer.make_can_msg("DAS_control", bus, values)[2] + data = packer.make_can_msg("DAS_control", bus, values)[1] values["DAS_controlChecksum"] = self.checksum(0x2b9, data[:7]) messages.append(packer.make_can_msg("DAS_control", bus, values)) return messages diff --git a/selfdrive/car/tests/test_models.py b/selfdrive/car/tests/test_models.py index 02e99f0b82..1d05b7c731 100644 --- a/selfdrive/car/tests/test_models.py +++ b/selfdrive/car/tests/test_models.py @@ -297,7 +297,7 @@ class TestCarModelBase(unittest.TestCase): now_nanos += DT_CTRL * 1e9 msgs_sent += len(sendcan) - for addr, _, dat, bus in sendcan: + for addr, dat, bus in sendcan: to_send = libpanda_py.make_CANPacket(addr, bus % 4, dat) self.assertTrue(self.safety.safety_tx_hook(to_send), (addr, dat, bus)) diff --git a/selfdrive/controls/tests/test_startup.py b/selfdrive/controls/tests/test_startup.py index 14b0788a3d..51b9887c96 100644 --- a/selfdrive/controls/tests/test_startup.py +++ b/selfdrive/controls/tests/test_startup.py @@ -90,7 +90,7 @@ def test_startup_alert(expected_event, car_model, fw_versions, brand): managed_processes['card'].start() assert pm.wait_for_readers_to_update('can', 5) - pm.send('can', can_list_to_can_capnp([[0, 0, b"", 0]])) + pm.send('can', can_list_to_can_capnp([[0, b"", 0]])) assert pm.wait_for_readers_to_update('pandaStates', 5) msg = messaging.new_message('pandaStates', 1) @@ -103,7 +103,7 @@ def test_startup_alert(expected_event, car_model, fw_versions, brand): else: finger = _FINGERPRINTS[car_model][0] - msgs = [[addr, 0, b'\x00'*length, 0] for addr, length in finger.items()] + msgs = [[addr, b'\x00'*length, 0] for addr, length in finger.items()] for _ in range(1000): # card waits for pandad to echo back that it has changed the multiplexing mode if not params.get_bool("ObdMultiplexingChanged"): diff --git a/selfdrive/pandad/__init__.py b/selfdrive/pandad/__init__.py index 8081a62dd0..2c80cd03c4 100644 --- a/selfdrive/pandad/__init__.py +++ b/selfdrive/pandad/__init__.py @@ -6,5 +6,5 @@ def can_capnp_to_can_list(can, src_filter=None): ret = [] for msg in can: if src_filter is None or msg.src in src_filter: - ret.append((msg.address, msg.busTime, msg.dat, msg.src)) + ret.append((msg.address, msg.dat, msg.src)) return ret diff --git a/selfdrive/pandad/can_list_to_can_capnp.cc b/selfdrive/pandad/can_list_to_can_capnp.cc index 9fc2648da2..d73541c17f 100644 --- a/selfdrive/pandad/can_list_to_can_capnp.cc +++ b/selfdrive/pandad/can_list_to_can_capnp.cc @@ -10,7 +10,6 @@ void can_list_to_can_capnp_cpp(const std::vector &can_list, std::stri for (auto it = can_list.begin(); it != can_list.end(); it++, j++) { auto c = canData[j]; c.setAddress(it->address); - c.setBusTime(it->busTime); c.setDat(kj::arrayPtr((uint8_t*)it->dat.data(), it->dat.size())); c.setSrc(it->src); } diff --git a/selfdrive/pandad/panda.cc b/selfdrive/pandad/panda.cc index fcb4ac67a4..ed5ee62501 100644 --- a/selfdrive/pandad/panda.cc +++ b/selfdrive/pandad/panda.cc @@ -257,7 +257,6 @@ bool Panda::unpack_can_buffer(uint8_t *data, uint32_t &size, std::vector pandas) { auto canData = evt.initCan(raw_can_data.size()); for (uint i = 0; i