diff --git a/opendbc_repo/opendbc/bluepilot_lateral/tests/reference/manifest.json b/opendbc_repo/opendbc/bluepilot_lateral/tests/reference/manifest.json index 081e6f7204..9d43526b68 100644 --- a/opendbc_repo/opendbc/bluepilot_lateral/tests/reference/manifest.json +++ b/opendbc_repo/opendbc/bluepilot_lateral/tests/reference/manifest.json @@ -26,8 +26,14 @@ }, "starpilot_curvature_controller": { "origin": "opendbc_repo/opendbc/car/ford/carcontroller.py", - "sha256": "c131d1d5f4231004e00f46968988b5d5f379ec22ef8c44d7f67ded8464344855", - "revision": "d2ae98eb3959c88011ed537e7cbc033d91fd3efa" + "sha256": "9838f258b7a4eef48c8c1ed4fb40d180939b86e22ac9079a734d1eabf4c0060e", + "revision": "d2ae98eb3959c88011ed537e7cbc033d91fd3efa", + "intentional_changes": [ + { + "commit": "d60f2d7ada6cf6aa0f32e881aa916809686a65a6", + "contract": "Generic CAN-FD stock-idle and same-batch mode-before-bounded-command handoff. Retains the pre-angle curvature oracle and all full-byte comparisons." + } + ] }, "bpdev_trim": { "origin": "opendbc_repo/opendbc/sunnypilot/car/ford/lane_center_trim.py", diff --git a/opendbc_repo/opendbc/bluepilot_lateral/tests/reference/starpilot_curvature_controller.py.txt b/opendbc_repo/opendbc/bluepilot_lateral/tests/reference/starpilot_curvature_controller.py.txt index 9dd97a9ec2..307a324624 100644 --- a/opendbc_repo/opendbc/bluepilot_lateral/tests/reference/starpilot_curvature_controller.py.txt +++ b/opendbc_repo/opendbc/bluepilot_lateral/tests/reference/starpilot_curvature_controller.py.txt @@ -160,13 +160,17 @@ class CarController(CarControllerBase): else: self.classic_lateral.set_inputs(None, (), 0.2, self.manual_turn_inputs.enabled if self.manual_turn_inputs is not None else True) previous = self.classic_lateral.curvature_last - demanded = self.classic_lateral.update(CC, CS, actuators) if self.classic_extended_announced else FordLateralResult() + demanded = self.classic_lateral.update(CC, CS, actuators) if self.classic_extended_announced or self.generic_canfd else FordLateralResult() bound = generic_canfd_bounded_command if self.generic_canfd else classic_bounded_command lateral = bound(self.classic_lateral, demanded, previous, CS.out.vEgoRaw, -CS.out.yawRate / max(CS.out.vEgoRaw, 0.1)) self.classic_lateral_demand = demanded self.apply_curvature_last = lateral.curvature if self.generic_canfd: + if self.classic_extended_announced != bool(lateral.active): + can_sends.append(mache_can.create_lka_msg(self.packer, self.CAN) if lateral.active else + fordcan.create_lka_msg(self.packer, self.CAN)) + self.classic_extended_announced = bool(lateral.active) counter = (self.frame // CarControllerParams.STEER_STEP) % 0x10 can_sends.append(create_extended_canfd_msg( self.packer, self.CAN, lateral.active, lateral.ramp_type, lateral.precision_type, @@ -221,7 +225,8 @@ class CarController(CarControllerBase): can_sends.append(fordcan.create_lat_ctl_msg(self.packer, self.CAN, lateral_active, 0., 0., -self.apply_curvature_last, 0.)) # send lka msg at 33Hz - if (self.frame % CarControllerParams.LKA_STEP) == 0: + if (self.frame % CarControllerParams.LKA_STEP) == 0 and not any( + address == 0x3CA for address, _, _ in can_sends): if self.CP.flags & FordFlags.LKA_STEERING: source_age_ns = now_nanos - CS.lkas_available_ts_nanos lka_active = (CC.latActive and CS.lkas_available and 0 <= source_age_ns <= 100_000_000 and @@ -250,8 +255,11 @@ class CarController(CarControllerBase): can_sends.append(mache_can.create_lka_msg(self.packer, self.CAN)) self.mache_extended_announced = True elif self.classic_lateral is not None: - can_sends.append(mache_can.create_lka_msg(self.packer, self.CAN)) - self.classic_extended_announced = True + if self.generic_canfd and not self.classic_extended_announced: + can_sends.append(fordcan.create_lka_msg(self.packer, self.CAN)) + else: + can_sends.append(mache_can.create_lka_msg(self.packer, self.CAN)) + self.classic_extended_announced = True else: can_sends.append(fordcan.create_lka_msg(self.packer, self.CAN)) diff --git a/prebuilt.json b/prebuilt.json index 6d8dd7c154..e369dc2d94 100644 --- a/prebuilt.json +++ b/prebuilt.json @@ -1 +1 @@ -{"protected_inventory_sha256": "26aedf5c08d2849809781c864d089874c5ccec633f69ff9aff1de17d684ddb36", "schema_version": 1} +{"protected_inventory_sha256": "99b3f79fc4eb32f03ba97cbb41d3bcaa9a9fa467a68831b9693a16f28752d874", "schema_version": 1}