Sync stock ACC state with OP

Signed-off-by: Jafar Al-Gharaibeh <to.jafar@gmail.com>
pull/988/head
Jafar Al-Gharaibeh 5 years ago committed by Adeeb Shihadeh
parent 57cb8f94d0
commit 7da6576afd
  1. 4
      selfdrive/car/mazda/carcontroller.py
  2. 7
      selfdrive/car/mazda/carstate.py
  3. 36
      selfdrive/car/mazda/mazdacan.py

@ -25,10 +25,12 @@ class CarController():
else: else:
apply_steer = 0 apply_steer = 0
self.steer_rate_limited = False self.steer_rate_limited = False
if CS.acc_active and frame % 10 == 0:
can_sends.append(mazdacan.create_cancel_acc(self.packer, CS.CP.carFingerprint))
self.apply_steer_last = apply_steer self.apply_steer_last = apply_steer
can_sends.append(mazdacan.create_steering_control(self.packer, CS.CP.carFingerprint, can_sends.append(mazdacan.create_steering_control(self.packer, CS.CP.carFingerprint,
frame, apply_steer, CS.cam_lkas)) frame, apply_steer, CS.cam_lkas))
return can_sends return can_sends

@ -73,20 +73,16 @@ class CarState(CarStateBase):
if any([cp.vl["CRZ_BTNS"]['RES'], if any([cp.vl["CRZ_BTNS"]['RES'],
cp.vl["CRZ_BTNS"]['SET_P'], cp.vl["CRZ_BTNS"]['SET_P'],
cp.vl["CRZ_BTNS"]['SET_M']]): cp.vl["CRZ_BTNS"]['SET_M']]):
self.acc_active = True
self.cruise_speed = ret.vEgoRaw self.cruise_speed = ret.vEgoRaw
ret.cruiseState.available = cp.vl["CRZ_CTRL"]['CRZ_ACTIVE'] == 1 ret.cruiseState.available = cp.vl["CRZ_CTRL"]['CRZ_ACTIVE'] == 1
if not ret.cruiseState.available or ret.gasPressed or ret.brakePressed: self.acc_active = ret.cruiseState.available
self.acc_active = False
ret.cruiseState.enabled = self.acc_active ret.cruiseState.enabled = self.acc_active
ret.cruiseState.speed = self.cruise_speed ret.cruiseState.speed = self.cruise_speed
if self.acc_active: if self.acc_active:
if not self.lkas_on: if not self.lkas_on:
if not self.acc_active_last: if not self.acc_active_last:
self.acc_active = False
self.low_speed_lockout = True self.low_speed_lockout = True
else: else:
self.low_speed_alert = True self.low_speed_alert = True
@ -149,6 +145,7 @@ class CarState(CarStateBase):
("RES", "CRZ_BTNS", 0), ("RES", "CRZ_BTNS", 0),
("SET_P", "CRZ_BTNS", 0), ("SET_P", "CRZ_BTNS", 0),
("SET_M", "CRZ_BTNS", 0), ("SET_M", "CRZ_BTNS", 0),
("CTR", "CRZ_BTNS", 0),
] ]
checks += [ checks += [

@ -55,3 +55,39 @@ def create_steering_control(packer, car_fingerprint, frame, apply_steer, lkas):
} }
return packer.make_can_msg("CAM_LKAS", 0, values) return packer.make_can_msg("CAM_LKAS", 0, values)
def create_cancel_acc(packer, car_fingerprint):
if car_fingerprint == CAR.CX5:
values = {
"CAN_OFF" : 1,
"CAN_OFF_INV" : 0,
"SET_P" : 0,
"SET_P_INV" : 1,
"RES" : 0,
"RES_INV" : 1,
"SET_M" : 0,
"SET_M_INV" : 1,
"DISTANCE_LESS" : 0,
"DISTANCE_LESS_INV" : 1,
"DISTANCE_MORE" : 0,
"DISTANCE_MORE_INV" : 1,
"MODE_X" : 0,
"MODE_X_INV" : 1,
"MODE_Y" : 0,
"MODE_Y_INV" : 1,
"BIT1" : 1,
"BIT2" : 1,
"BIT3" : 1,
"CTR" : 0
}
return packer.make_can_msg("CRZ_BTNS", 0, values)

Loading…
Cancel
Save