      elif CS.CP.carFingerprint == CAR.ACURA_ILX:
        pcm_speed = CS.out.vEgo + apply_accel
        pcm_accel = int(1.0 * 0xc6)
      else:
        if apply_accel > 0:
          pcm_speed = 100
          max_accel = interp(CS.out.vEgo, P.NIDEC_MAX_ACCEL_BP, P.NIDEC_MAX_ACCEL_V)
          pcm_accel = int(clip(apply_accel/max_accel, 0.0, 1.0) * 0xc6)
        else:
          decel = max(0.0, -accel)
          pcm_speed = CS.out.vEgo * clip((wind_brake - decel)/max(wind_brake, .01), 0.0, 1.0)
          pcm_accel = int(0)
  
  
  
      if not CS.CP.openpilotLongitudinalControl:
        if (frame % 2) == 0:
          idx = frame // 2
          can_sends.append(hondacan.create_bosch_supplemental_1(self.packer, CS.CP.carFingerprint, idx))
 
</s> remove     wind_brake = interp(CS.out.vEgo, [0.0, 2.3, 20.0], [0.0, 0.0, 0.1])
 </s> add     wind_brake = interp(CS.out.vEgo, [0.0, 2.3, 35.0], [0.0, 0.0, 0.15]) </s> remove             apply_gas = clip(actuators.gas, 0., 1.)
 </s> add             apply_gas = clip(gas_mult * actuators.gas, 0., 1.)
      max_accel = interp(CS.out.vEgo, P.NIDEC_MAX_ACCEL_BP, P.NIDEC_MAX_ACCEL_V)
      pcm_accel = int(clip(apply_accel/max_accel, 0.0, 1.0) * 0xc6)
      pcm_speed_BP = [-wind_brake,
                      -wind_brake*(3/4),
                      0.0]
      pcm_speed_V = [0.0,
                     CS.out.vEgo + apply_accel/2.0 - 2.0,
                     CS.out.vEgo + apply_accel/2.0 + 2.0]
      pcm_speed = interp(accel, pcm_speed_BP, pcm_speed_V)
      elif CS.CP.carFingerprint == CAR.ACURA_ILX:
        pcm_speed = CS.out.vEgo + apply_accel
        pcm_accel = int(1.0 * 0xc6)
      else:
      max_accel = interp(CS.out.vEgo, P.NIDEC_MAX_ACCEL_BP, P.NIDEC_MAX_ACCEL_V)
      pcm_accel = int(clip(apply_accel/max_accel, 0.0, 1.0) * 0xc6)
      pcm_speed_BP = [-wind_brake,
                      -wind_brake*(3/4),
                      0.0]
      pcm_speed_V = [0.0,
                     CS.out.vEgo + apply_accel/2.0 - 2.0,
                     CS.out.vEgo + apply_accel/2.0 + 2.0]
      pcm_speed = interp(accel, pcm_speed_BP, pcm_speed_V)
      max_accel = interp(CS.out.vEgo, P.NIDEC_MAX_ACCEL_BP, P.NIDEC_MAX_ACCEL_V)
      pcm_accel = int(clip(apply_accel/max_accel, 0.0, 1.0) * 0xc6)
      pcm_speed_BP = [-wind_brake,
                      -wind_brake*(3/4),
                      0.0]
      pcm_speed_V = [0.0,
                     CS.out.vEgo + apply_accel/2.0 - 2.0,
                     CS.out.vEgo + apply_accel/2.0 + 2.0]
      pcm_speed = interp(accel, pcm_speed_BP, pcm_speed_V)
      max_accel = interp(CS.out.vEgo, P.NIDEC_MAX_ACCEL_BP, P.NIDEC_MAX_ACCEL_V)
      pcm_accel = int(clip(apply_accel/max_accel, 0.0, 1.0) * 0xc6)
      pcm_speed_BP = [-wind_brake,
                      -wind_brake*(3/4),
                      0.0]
      pcm_speed_V = [0.0,
                     CS.out.vEgo + apply_accel/2.0 - 2.0,
                     CS.out.vEgo + apply_accel/2.0 + 2.0]
      pcm_speed = interp(accel, pcm_speed_BP, pcm_speed_V)
      max_accel = interp(CS.out.vEgo, P.NIDEC_MAX_ACCEL_BP, P.NIDEC_MAX_ACCEL_V)
      pcm_accel = int(clip(apply_accel/max_accel, 0.0, 1.0) * 0xc6)
      pcm_speed_BP = [-wind_brake,
                      -wind_brake*(3/4),
                      0.0]
      pcm_speed_V = [0.0,
                     CS.out.vEgo + apply_accel/2.0 - 2.0,
                     CS.out.vEgo + apply_accel/2.0 + 2.0]
      pcm_speed = interp(accel, pcm_speed_BP, pcm_speed_V)
      max_accel = interp(CS.out.vEgo, P.NIDEC_MAX_ACCEL_BP, P.NIDEC_MAX_ACCEL_V)
      pcm_accel = int(clip(apply_accel/max_accel, 0.0, 1.0) * 0xc6)
      pcm_speed_BP = [-wind_brake,
                      -wind_brake*(3/4),
                      0.0]
      pcm_speed_V = [0.0,
                     CS.out.vEgo + apply_accel/2.0 - 2.0,
                     CS.out.vEgo + apply_accel/2.0 + 2.0]
      pcm_speed = interp(accel, pcm_speed_BP, pcm_speed_V)
      max_accel = interp(CS.out.vEgo, P.NIDEC_MAX_ACCEL_BP, P.NIDEC_MAX_ACCEL_V)
      pcm_accel = int(clip(apply_accel/max_accel, 0.0, 1.0) * 0xc6)
      pcm_speed_BP = [-wind_brake,
                      -wind_brake*(3/4),
                      0.0]
      pcm_speed_V = [0.0,
                     CS.out.vEgo + apply_accel/2.0 - 2.0,
                     CS.out.vEgo + apply_accel/2.0 + 2.0]
      pcm_speed = interp(accel, pcm_speed_BP, pcm_speed_V)
      max_accel = interp(CS.out.vEgo, P.NIDEC_MAX_ACCEL_BP, P.NIDEC_MAX_ACCEL_V)
      pcm_accel = int(clip(apply_accel/max_accel, 0.0, 1.0) * 0xc6)
      pcm_speed_BP = [-wind_brake,
                      -wind_brake*(3/4),
                      0.0]
      pcm_speed_V = [0.0,
                     CS.out.vEgo + apply_accel/2.0 - 2.0,
                     CS.out.vEgo + apply_accel/2.0 + 2.0]
      pcm_speed = interp(accel, pcm_speed_BP, pcm_speed_V)
      max_accel = interp(CS.out.vEgo, P.NIDEC_MAX_ACCEL_BP, P.NIDEC_MAX_ACCEL_V)
      pcm_accel = int(clip(apply_accel/max_accel, 0.0, 1.0) * 0xc6)
      pcm_speed_BP = [-wind_brake,
                      -wind_brake*(3/4),
                      0.0]
      pcm_speed_V = [0.0,
                     CS.out.vEgo + apply_accel/2.0 - 2.0,
                     CS.out.vEgo + apply_accel/2.0 + 2.0]
      pcm_speed = interp(accel, pcm_speed_BP, pcm_speed_V)
      max_accel = interp(CS.out.vEgo, P.NIDEC_MAX_ACCEL_BP, P.NIDEC_MAX_ACCEL_V)
      pcm_accel = int(clip(apply_accel/max_accel, 0.0, 1.0) * 0xc6)
      pcm_speed_BP = [-wind_brake,
                      -wind_brake*(3/4),
                      0.0]
      pcm_speed_V = [0.0,
                     CS.out.vEgo + apply_accel/2.0 - 2.0,
                     CS.out.vEgo + apply_accel/2.0 + 2.0]
      pcm_speed = interp(accel, pcm_speed_BP, pcm_speed_V)
      max_accel = interp(CS.out.vEgo, P.NIDEC_MAX_ACCEL_BP, P.NIDEC_MAX_ACCEL_V)
      pcm_accel = int(clip(apply_accel/max_accel, 0.0, 1.0) * 0xc6)
      pcm_speed_BP = [-wind_brake,
                      -wind_brake*(3/4),
                      0.0]
      pcm_speed_V = [0.0,
                     CS.out.vEgo + apply_accel/2.0 - 2.0,
                     CS.out.vEgo + apply_accel/2.0 + 2.0]
      pcm_speed = interp(accel, pcm_speed_BP, pcm_speed_V)
  
      if not CS.CP.openpilotLongitudinalControl:
        if (frame % 2) == 0:
          idx = frame // 2
          can_sends.append(hondacan.create_bosch_supplemental_1(self.packer, CS.CP.carFingerprint, idx))
keep keep keep keep replace replace replace replace replace replace replace replace replace replace keep keep keep keep keep
 Retune nidec long (#21941)

* retune civic

* add a deadzone

* large diffs may not be ok

* typo

* seems smooth

* improve pedal

* back to normal

* new ref

* new ref 
selfdrive/car/honda/carcontroller.py