|
|
|
@ -1,4 +1,5 @@ |
|
|
|
|
from opendbc.can.packer import CANPacker |
|
|
|
|
from common.realtime import DT_CTRL |
|
|
|
|
from selfdrive.car import apply_toyota_steer_torque_limits |
|
|
|
|
from selfdrive.car.chrysler.chryslercan import create_lkas_hud, create_lkas_command, create_cruise_buttons |
|
|
|
|
from selfdrive.car.chrysler.values import RAM_CARS, CarControllerParams |
|
|
|
@ -14,6 +15,7 @@ class CarController: |
|
|
|
|
self.hud_count = 0 |
|
|
|
|
self.last_lkas_falling_edge = 0 |
|
|
|
|
self.lkas_active_prev = False |
|
|
|
|
self.last_button_frame = 0 |
|
|
|
|
|
|
|
|
|
self.packer = CANPacker(dbc_name) |
|
|
|
|
self.params = CarControllerParams(CP) |
|
|
|
@ -26,11 +28,19 @@ class CarController: |
|
|
|
|
|
|
|
|
|
# *** control msgs *** |
|
|
|
|
|
|
|
|
|
das_bus = 2 if self.CP.carFingerprint in RAM_CARS else 0 |
|
|
|
|
if CC.cruiseControl.cancel: |
|
|
|
|
can_sends.append(create_cruise_buttons(self.packer, CS.button_counter + 1, das_bus, cancel=True)) |
|
|
|
|
elif CC.enabled and CS.out.cruiseState.standstill: |
|
|
|
|
can_sends.append(create_cruise_buttons(self.packer, CS.button_counter + 1, das_bus, resume=True)) |
|
|
|
|
# cruise buttons |
|
|
|
|
if (self.frame - self.last_button_frame)*DT_CTRL > 0.05: |
|
|
|
|
das_bus = 2 if self.CP.carFingerprint in RAM_CARS else 0 |
|
|
|
|
|
|
|
|
|
# ACC cancellation |
|
|
|
|
if CC.cruiseControl.cancel: |
|
|
|
|
self.last_button_frame = self.frame |
|
|
|
|
can_sends.append(create_cruise_buttons(self.packer, CS.button_counter + 1, das_bus, cancel=True)) |
|
|
|
|
|
|
|
|
|
# ACC resume from standstill |
|
|
|
|
elif CC.cruiseControl.resume: |
|
|
|
|
self.last_button_frame = self.frame |
|
|
|
|
can_sends.append(create_cruise_buttons(self.packer, CS.button_counter + 1, das_bus, resume=True)) |
|
|
|
|
|
|
|
|
|
# HUD alerts |
|
|
|
|
if self.frame % 25 == 0: |
|
|
|
|