  
  VisualAlert = car.CarControl.HUDControl.VisualAlert
  
  
  class CarControllerParams():
    def __init__(self):
      self.STEER_MAX = 300
      self.STEER_STEP = 2              # how often we update the steer cmd
      self.STEER_DELTA_UP = 7          # ~0.75s time to peak torque (255/50hz/0.75s)
      self.STEER_DELTA_DOWN = 17       # ~0.3s from peak torque to zero
      self.MIN_STEER_SPEED = 3.
      self.STEER_DRIVER_ALLOWANCE = 50   # allowed driver torque before start limiting
      self.STEER_DRIVER_MULTIPLIER = 4   # weight driver torque heavily
      self.STEER_DRIVER_FACTOR = 100     # from dbc
      self.NEAR_STOP_BRAKE_PHASE = 0.5  # m/s, more aggressive braking near full stop
  
      # Takes case of "Service Adaptive Cruise" and "Service Front Camera"
      # dashboard messages.
      self.ADAS_KEEPALIVE_STEP = 100
      self.CAMERA_KEEPALIVE_STEP = 100
  
      # pedal lookups, only for Volt
      MAX_GAS = 3072              # Only a safety limit
      ZERO_GAS = 2048
      MAX_BRAKE = 350             # Should be around 3.5m/s^2, including regen
      self.MAX_ACC_REGEN = 1404  # ACC Regen braking is slightly less powerful than max regen paddle
      self.GAS_LOOKUP_BP = [-0.25, 0., 0.5]
      self.GAS_LOOKUP_V = [self.MAX_ACC_REGEN, ZERO_GAS, MAX_GAS]
      self.BRAKE_LOOKUP_BP = [-1., -0.25]
      self.BRAKE_LOOKUP_V = [MAX_BRAKE, 0]
  
  
  class CarController():
    def __init__(self, dbc_name, CP, VM):
      self.start_time = 0.
      self.apply_steer_last = 0
      self.lka_icon_status_last = (False, False)
 
</s> remove class CarControllerParams():
  def __init__(self, CP):
      self.BRAKE_MAX = 1024//4
      self.STEER_MAX = CP.lateralParams.torqueBP[-1]
      # mirror of list (assuming first item is zero) for interp of signed request values
      assert(CP.lateralParams.torqueBP[0] == 0)
      assert(CP.lateralParams.torqueBP[0] == 0)
      self.STEER_LOOKUP_BP = [v * -1 for v in CP.lateralParams.torqueBP][1:][::-1] + list(CP.lateralParams.torqueBP)
      self.STEER_LOOKUP_V = [v * -1 for v in CP.lateralParams.torqueV][1:][::-1] + list(CP.lateralParams.torqueV)
 </s> add  </s> remove class SteerLimitParams:
 </s> add class CarControllerParams: </s> remove     new_steer = actuators.steer * SteerLimitParams.STEER_MAX
 </s> add     new_steer = actuators.steer * CarControllerParams.STEER_MAX </s> remove                                                    CS.out.steeringTorqueEps, SteerLimitParams)
 </s> add                                                    CS.out.steeringTorqueEps, CarControllerParams)
  
  VisualAlert = car.CarControl.HUDControl.VisualAlert
  
  




























  class CarController():
    def __init__(self, dbc_name, CP, VM):
      self.start_time = 0.
      self.apply_steer_last = 0
      self.lka_icon_status_last = (False, False)
keep keep keep keep replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace keep keep keep keep keep
 Move all CarControllerParams into values.py (#19663)

* toyota

* use scale from values.py

* nissan

* subaru

* honda

* gm

* toyota combine into CarControllerParams

* nissan refactor

* chrysler refactor

* mazda refactor

* hyundai refactor

* subaru refactor 
selfdrive/car/gm/carcontroller.py