Skip to content

Commit a191750

Browse files
committed
clean up carstate formatting and platform grouping
1 parent 9a73f29 commit a191750

File tree

1 file changed

+98
-101
lines changed

1 file changed

+98
-101
lines changed

selfdrive/car/chrysler/carstate.py

Lines changed: 98 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -4,71 +4,73 @@
44
from opendbc.can.can_define import CANDefine
55
from selfdrive.car.interfaces import CarStateBase
66
from selfdrive.car.chrysler.values import DBC, STEER_THRESHOLD, CAR
7+
8+
79
class CarState(CarStateBase):
810
def __init__(self, CP):
911
super().__init__(CP)
1012
can_define = CANDefine(DBC[CP.carFingerprint]["pt"])
1113
self.shifter_values = can_define.dv["Transmission_Status"]["Gear_State"]
1214
self.lkasdisabled = 0
1315
self.lkasbuttonprev = 0
14-
16+
1517
def update(self, cp, cp_cam):
1618

17-
ret = car.CarState.new_message()
19+
ret = car.CarState.new_message()
1820

19-
# lock info
21+
# lock info
2022
ret.doorOpen = any([cp.vl["BCM_1"]["Driver_Door_Ajar"],
2123
cp.vl["BCM_1"]["Passenger_Door_Ajar"],
2224
cp.vl["BCM_1"]["Left_Rear_Door_Ajar"],
2325
cp.vl["BCM_1"]["Right_Rear_Door_Ajar"]])
24-
ret.seatbeltUnlatched = cp.vl["ORC_1"]['Driver_Seatbelt_Status'] == 1 #1 is unbuckled
26+
ret.seatbeltUnlatched = cp.vl["ORC_1"]['Driver_Seatbelt_Status'] == 1 # 1 is unbuckled
2527

2628
# brake pedal
27-
ret.brakePressed = cp.vl["ESP_1"]['Brake_Pedal_State'] ==1 # Physical brake pedal switch
29+
ret.brakePressed = cp.vl["ESP_1"]['Brake_Pedal_State'] == 1 # Physical brake pedal switch
2830
ret.brake = 0
2931

3032
# gas pedal
3133
ret.gas = cp.vl["ECM_5"]["Accelerator_Position"]
32-
ret.gasPressed = ret.gas > 1e-5
33-
34-
# car speed
34+
ret.gasPressed = ret.gas > 1e-5
35+
36+
# car speed
3537
ret.vEgoRaw = cp.vl["ESP_8"]["Vehicle_Speed"] * CV.KPH_TO_MS
3638
ret.vEgo, ret.aEgo = self.update_speed_kf(ret.vEgoRaw)
3739
ret.standstill = not ret.vEgoRaw > 0.001
3840
ret.wheelSpeeds = self.get_wheel_speeds(
39-
cp.vl["ESP_6"]["Wheel_RPM_Front_Left"],
40-
cp.vl["ESP_6"]["Wheel_RPM_Rear_Right"],
41-
cp.vl["ESP_6"]["Wheel_RPM_Rear_Left"],
42-
cp.vl["ESP_6"]["Wheel_RPM_Front_Right"],
43-
unit=1,
41+
cp.vl["ESP_6"]["Wheel_RPM_Front_Left"],
42+
cp.vl["ESP_6"]["Wheel_RPM_Rear_Right"],
43+
cp.vl["ESP_6"]["Wheel_RPM_Rear_Left"],
44+
cp.vl["ESP_6"]["Wheel_RPM_Front_Right"],
45+
unit=1,
4446
)
45-
#ret.aEgo = cp.vl["ESP_4"]["Acceleration"] #m/s2
46-
#ret.yawRate = cp.vl["ESP_4"]["Yaw_Rate"] #deg/s
47+
# ret.aEgo = cp.vl["ESP_4"]["Acceleration"] #m/s2
48+
# ret.yawRate = cp.vl["ESP_4"]["Yaw_Rate"] #deg/s
4749

4850
# button presses
4951
ret.leftBlinker = (cp.vl["Steering_Column_Commands"]["Turn_Signal_Status"] == 1)
5052
ret.rightBlinker = (cp.vl["Steering_Column_Commands"]["Turn_Signal_Status"] == 2)
5153
ret.genericToggle = bool(cp.vl["Steering_Column_Commands"]["High_Beam_Lever_Status"])
5254

53-
# steering wheel
55+
# steering wheel
5456
ret.steeringAngleDeg = cp.vl["Steering_Column_Angle_Status"]["Steering_Wheel_Angle"]
5557
ret.steeringRateDeg = cp.vl["Steering_Column_Angle_Status"]["Steering_Rate"]
5658
ret.steeringTorque = cp.vl["EPS_2"]["Steering_Column_Torque"]
5759
ret.steeringTorqueEps = cp.vl["EPS_2"]["EPS_Motor_Torque"]
5860
ret.steeringPressed = abs(ret.steeringTorque) > STEER_THRESHOLD
59-
ret.espDisabled = (cp.vl["Center_Stack_1"]["Traction_Button"] == 1) #button is pressed. This doesn't mean ESP is diabled.
61+
ret.espDisabled = (cp.vl["Center_Stack_1"]["Traction_Button"] == 1) # button is pressed. This doesn't mean ESP is disabled.
6062
self.frame = int(cp.vl["EPS_2"]["COUNTER"])
6163
# steer_state = cp.vl["EPS_2"]["LKAS_STATE"]
6264
# ret.steerFaultPermanent = steer_state == 4 or (steer_state == 0 and ret.vEgo > self.CP.minSteerSpeed)
6365

6466
# gear
6567
ret.gearShifter = self.parse_gear_shifter(self.shifter_values.get(cp.vl["Transmission_Status"]["Gear_State"], None))
6668

67-
# cruise state
69+
# cruise state
6870
self.lkas_counter = cp_cam.vl["DAS_3"]["COUNTER"]
6971
self.lanelines = cp_cam.vl["DAS_6"]["LKAS_LANE_LINES"]
7072
self.iconcolor = cp_cam.vl["DAS_6"]["LKAS_ICON_COLOR"]
71-
self.lkas_car_model = cp_cam.vl["DAS_6"]["CAR_MODEL"]
73+
self.lkas_car_model = cp_cam.vl["DAS_6"]["CAR_MODEL"]
7274
self.lkasalerts = cp_cam.vl["DAS_6"]["LKAS_ALERTS"]
7375
self.accaccel = cp.vl["Cruise_Control_Buttons"]["ACC_Accel"]
7476
self.accdecel = cp.vl["Cruise_Control_Buttons"]["ACC_Decel"]
@@ -81,91 +83,88 @@ def update(self, cp, cp_cam):
8183
self.button_counter = cp.vl["Cruise_Control_Buttons"]["COUNTER"]
8284
self.cruise = cp.vl["Cruise_Control_Buttons"]
8385

84-
85-
if self.CP.carFingerprint in (CAR.PACIFICA_2017_HYBRID, CAR.PACIFICA_2018_HYBRID, CAR.PACIFICA_2019_HYBRID, CAR.PACIFICA_2018, CAR.PACIFICA_2020, CAR.JEEP_CHEROKEE_2019, CAR.JEEP_CHEROKEE):
86-
self.lkasbutton = (cp.vl["Center_Stack_1"]["LKAS_Button"] == 1)
87-
#if self.lkasbutton ==1 and self.lkasdisabled== 0 and self.lkasbuttonprev == 0:
88-
# self.lkasdisabled = 1
89-
#elif self.lkasbutton ==1 and self.lkasdisabled== 1 and self.lkasbuttonprev == 0:
90-
# self.lkasdisabled = 0
91-
self.lkasbuttonprev = self.lkasbutton
92-
ret.cruiseState.enabled = cp.vl["DAS_3"]["ACC_Engaged"] == 1 # and self.lkasdisabled == 0 # ACC is green.
93-
ret.cruiseState.standstill = cp.vl["DAS_3"]["ACC_StandStill"] == 1
94-
ret.cruiseState.speed = cp.vl["DAS_4"]["ACC_Set_Speed"] * CV.KPH_TO_MS
95-
# ACC_Activation_Status is a three bit msg, 0 is off, 1 and 2 are Non-ACC mode, 3 and 4 are ACC mode
96-
ret.cruiseState.available = cp.vl["DAS_4"]['ACC_Activation_Status'] in [3, 4] #3 ACCOn and 4 ACCSet
97-
ret.cruiseState.nonAdaptive = cp.vl["DAS_4"]["ACC_Activation_Status"] in (1, 2) #1 NormalCCOn and 2 NormalCCSet
98-
#ret.cruiseState.speedOffset = ret.cruiseState.speed - ret.vEgo
99-
self.dashboard = cp.vl["DAS_4"]
100-
self.steer_state = cp.vl["EPS_2"]["Torque_Overlay_Status"]
101-
ret.steerFaultPermanent = self.steer_state == 4 or (self.steer_state == 0 and ret.vEgo > self.CP.minSteerSpeed)
102-
103-
if self.CP.carFingerprint in (CAR.RAM_1500, CAR.RAM_2500):
86+
if self.CP.carFingerprint == CAR.RAM_1500:
10487
self.lkasbutton = (cp.vl["Center_Stack_2"]["LKAS_Button"] == 1) or (cp.vl["Center_Stack_1"]["LKAS_Button"] == 1)
105-
if self.lkasbutton ==1 and self.lkasdisabled== 0 and self.lkasbuttonprev == 0:
88+
if self.lkasbutton == 1 and self.lkasdisabled == 0 and self.lkasbuttonprev == 0:
10689
self.lkasdisabled = 1
107-
elif self.lkasbutton ==1 and self.lkasdisabled== 1 and self.lkasbuttonprev == 0:
90+
elif self.lkasbutton == 1 and self.lkasdisabled == 1 and self.lkasbuttonprev == 0:
10891
self.lkasdisabled = 0
10992
self.lkasbuttonprev = self.lkasbutton
110-
ret.cruiseState.enabled = cp_cam.vl["DAS_3"]["ACC_Engaged"] == 1 and self.lkasdisabled == 0 # ACC is green.
93+
ret.cruiseState.enabled = cp_cam.vl["DAS_3"]["ACC_Engaged"] == 1 and self.lkasdisabled == 0 # ACC is green.
11194
ret.cruiseState.standstill = cp_cam.vl["DAS_3"]["ACC_StandStill"] == 1
11295
ret.cruiseState.speed = cp_cam.vl["DAS_4"]["ACC_Set_Speed"] * CV.KPH_TO_MS
11396
# ACC_Activation_Status is a three bit msg, 0 is off, 1 and 2 are Non-ACC mode, 3 and 4 are ACC mode
114-
ret.cruiseState.available = cp_cam.vl["DAS_4"]['ACC_Activation_Status'] in [3, 4] #3 ACCOn and 4 ACCSet
115-
ret.cruiseState.nonAdaptive = cp_cam.vl["DAS_4"]["ACC_Activation_Status"] in [1, 2] #1 NormalCCOn and 2 NormalCCSet
116-
self.autoHighBeamBit = cp_cam.vl["DAS_6"]['Auto_High_Beam'] #Auto High Beam isn't Located in this message on chrysler or jeep currently located in 729 message
117-
#ret.cruiseState.speedOffset = ret.cruiseState.speed - ret.vEgo
97+
ret.cruiseState.available = cp_cam.vl["DAS_4"]['ACC_Activation_Status'] in [3, 4] # 3 ACCOn and 4 ACCSet
98+
ret.cruiseState.nonAdaptive = cp_cam.vl["DAS_4"]["ACC_Activation_Status"] in [1, 2] # 1 NormalCCOn and 2 NormalCCSet
99+
self.autoHighBeamBit = cp_cam.vl["DAS_6"]['Auto_High_Beam'] # Auto High Beam isn't Located in this message on chrysler or jeep currently located in 729 message
100+
# ret.cruiseState.speedOffset = ret.cruiseState.speed - ret.vEgo
118101
self.dashboard = cp_cam.vl["DAS_4"]
119-
ret.steerFaultTemporary = cp.vl["EPS_3"]["DASM_FAULT"]==1
120-
102+
ret.steerFaultTemporary = cp.vl["EPS_3"]["DASM_FAULT"] == 1
103+
else:
104+
self.lkasbutton = (cp.vl["Center_Stack_1"]["LKAS_Button"] == 1)
105+
# if self.lkasbutton ==1 and self.lkasdisabled== 0 and self.lkasbuttonprev == 0:
106+
# self.lkasdisabled = 1
107+
# elif self.lkasbutton ==1 and self.lkasdisabled== 1 and self.lkasbuttonprev == 0:
108+
# self.lkasdisabled = 0
109+
self.lkasbuttonprev = self.lkasbutton
110+
ret.cruiseState.enabled = cp.vl["DAS_3"]["ACC_Engaged"] == 1 # and self.lkasdisabled == 0 # ACC is green.
111+
ret.cruiseState.standstill = cp.vl["DAS_3"]["ACC_StandStill"] == 1
112+
ret.cruiseState.speed = cp.vl["DAS_4"]["ACC_Set_Speed"] * CV.KPH_TO_MS
113+
# ACC_Activation_Status is a three bit msg, 0 is off, 1 and 2 are Non-ACC mode, 3 and 4 are ACC mode
114+
ret.cruiseState.available = cp.vl["DAS_4"]['ACC_Activation_Status'] in [3, 4] # 3 ACCOn and 4 ACCSet
115+
ret.cruiseState.nonAdaptive = cp.vl["DAS_4"]["ACC_Activation_Status"] in (1, 2) # 1 NormalCCOn and 2 NormalCCSet
116+
# ret.cruiseState.speedOffset = ret.cruiseState.speed - ret.vEgo
117+
self.dashboard = cp.vl["DAS_4"]
118+
self.steer_state = cp.vl["EPS_2"]["Torque_Overlay_Status"]
119+
ret.steerFaultPermanent = self.steer_state == 4 or (self.steer_state == 0 and ret.vEgo > self.CP.minSteerSpeed)
121120

122-
# blindspot sensors
121+
# blindspot sensors
123122
if self.CP.enableBsm:
124123
ret.leftBlindspot = cp.vl["BSM_1"]["Blind_Spot_Monitor_Left"] == 1
125-
ret.rightBlindspot = cp.vl["BSM_1"]["Blind_Spot_Monitor_Right"] == 1
124+
ret.rightBlindspot = cp.vl["BSM_1"]["Blind_Spot_Monitor_Right"] == 1
126125

127126
return ret
128127

129128
@staticmethod
130129
def get_can_parser(CP):
131130
signals = [
132131
# sig_name, sig_address, default
133-
("Gear_State", "Transmission_Status"), #Gear Position
134-
("Vehicle_Speed", "ESP_8"),#Vehicle Speed
135-
("Acceleration", "ESP_4"),#Acceleration Rate
136-
("Yaw_Rate", "ESP_4"),#Yaw Rate
137-
("Wheel_RPM_Front_Left", "ESP_6"),#FL Wheel Speed
138-
("Wheel_RPM_Front_Right", "ESP_6"),#FR Wheel Speed
139-
("Wheel_RPM_Rear_Left", "ESP_6"),#RL Wheel Speed
140-
("Wheel_RPM_Rear_Right", "ESP_6"),#RR Wheel Speed
141-
("Accelerator_Position", "ECM_5"), #Accelerator Position
142-
("Brake_Pedal_State", "ESP_1"),#Brake Pedal Pressed
143-
("Steering_Wheel_Angle", "Steering_Column_Angle_Status"),#Steering Angle
144-
("Steering_Rate", "Steering_Column_Angle_Status"),#Steering rate
145-
("Steering_Column_Torque", "EPS_2"),#EPS Driver applied torque
146-
("EPS_Motor_Torque", "EPS_2"),#EPS Motor Torque output
132+
("Gear_State", "Transmission_Status"), # Gear Position
133+
("Vehicle_Speed", "ESP_8"), # Vehicle Speed
134+
("Acceleration", "ESP_4"), # Acceleration Rate
135+
("Yaw_Rate", "ESP_4"), # Yaw Rate
136+
("Wheel_RPM_Front_Left", "ESP_6"), # FL Wheel Speed
137+
("Wheel_RPM_Front_Right", "ESP_6"), # FR Wheel Speed
138+
("Wheel_RPM_Rear_Left", "ESP_6"), # RL Wheel Speed
139+
("Wheel_RPM_Rear_Right", "ESP_6"), # RR Wheel Speed
140+
("Accelerator_Position", "ECM_5"), # Accelerator Position
141+
("Brake_Pedal_State", "ESP_1"), # Brake Pedal Pressed
142+
("Steering_Wheel_Angle", "Steering_Column_Angle_Status"), # Steering Angle
143+
("Steering_Rate", "Steering_Column_Angle_Status"), # Steering rate
144+
("Steering_Column_Torque", "EPS_2"), # EPS Driver applied torque
145+
("EPS_Motor_Torque", "EPS_2"), # EPS Motor Torque output
147146
("Torque_Overlay_Status", "EPS_2"),
148-
("Traction_Button", "Center_Stack_1"),#Traction Control Button
149-
("LKAS_Button", "Center_Stack_1"),#LKAS Button
150-
("Turn_Signal_Status", "Steering_Column_Commands"),#Blinker
151-
("High_Beam_Lever_Status", "Steering_Column_Commands"),#High Beam Lever
152-
("ACC_Accel", "Cruise_Control_Buttons"),#ACC Accel Button
153-
("ACC_Decel", "Cruise_Control_Buttons"),#ACC Decel Button
154-
("ACC_Cancel", "Cruise_Control_Buttons"),#ACC Cancel Button
155-
("ACC_Distance_Dec", "Cruise_Control_Buttons"),#ACC Distance Decrement Button
156-
("ACC_Distance_Inc", "Cruise_Control_Buttons"),#ACC Distance Increment Button
157-
("ACC_Resume", "Cruise_Control_Buttons"),#ACC Resume Button
158-
("Cruise_OnOff", "Cruise_Control_Buttons"),#Cruise On Off Button
159-
("ACC_OnOff", "Cruise_Control_Buttons"),#ACC On Off Button
160-
("COUNTER", "Cruise_Control_Buttons"),#ACC Counter Button
161-
("ACC_Distance_Inc", "Cruise_Control_Buttons"),#ACC Distance Increase Button
162-
("Driver_Door_Ajar", "BCM_1"),#driver Door
163-
("Passenger_Door_Ajar", "BCM_1"),#Passenger Door
164-
("Left_Rear_Door_Ajar", "BCM_1"),#Driver Rear Door
165-
("Right_Rear_Door_Ajar", "BCM_1"),#Passenger Rear Door
166-
("Driver_Seatbelt_Status", "ORC_1"), #Driver Sear Belt
167-
("COUNTER", "EPS_2"),#EPS Counter
168-
("DASM_FAULT", "EPS_3"),#EPS Fault
147+
("Traction_Button", "Center_Stack_1"), # Traction Control Button
148+
("LKAS_Button", "Center_Stack_1"), # LKAS Button
149+
("Turn_Signal_Status", "Steering_Column_Commands"), # Blinker
150+
("High_Beam_Lever_Status", "Steering_Column_Commands"), # High Beam Lever
151+
("ACC_Accel", "Cruise_Control_Buttons"), # ACC Accel Button
152+
("ACC_Decel", "Cruise_Control_Buttons"), # ACC Decel Button
153+
("ACC_Cancel", "Cruise_Control_Buttons"), # ACC Cancel Button
154+
("ACC_Distance_Dec", "Cruise_Control_Buttons"), # ACC Distance Decrement Button
155+
("ACC_Distance_Inc", "Cruise_Control_Buttons"), # ACC Distance Increment Button
156+
("ACC_Resume", "Cruise_Control_Buttons"), # ACC Resume Button
157+
("Cruise_OnOff", "Cruise_Control_Buttons"), # Cruise On Off Button
158+
("ACC_OnOff", "Cruise_Control_Buttons"), # ACC On Off Button
159+
("COUNTER", "Cruise_Control_Buttons"), # ACC Counter Button
160+
("ACC_Distance_Inc", "Cruise_Control_Buttons"), # ACC Distance Increase Button
161+
("Driver_Door_Ajar", "BCM_1"), # driver Door
162+
("Passenger_Door_Ajar", "BCM_1"), # Passenger Door
163+
("Left_Rear_Door_Ajar", "BCM_1"), # Driver Rear Door
164+
("Right_Rear_Door_Ajar", "BCM_1"), # Passenger Rear Door
165+
("Driver_Seatbelt_Status", "ORC_1"), # Driver Sear Belt
166+
("COUNTER", "EPS_2"), # EPS Counter
167+
("DASM_FAULT", "EPS_3"), # EPS Fault
169168
]
170169

171170
checks = [
@@ -193,27 +192,25 @@ def get_can_parser(CP):
193192
]
194193
checks += [("BSM_1", 2)]
195194

196-
if CP.carFingerprint in (CAR.PACIFICA_2017_HYBRID, CAR.PACIFICA_2018_HYBRID, CAR.PACIFICA_2019_HYBRID, CAR.PACIFICA_2018, CAR.PACIFICA_2020, CAR.JEEP_CHEROKEE_2019, CAR.JEEP_CHEROKEE):
195+
if CP.carFingerprint == CAR.RAM_1500:
196+
signals += [
197+
("LKAS_Button", "Center_Stack_2"), # LKAS Button
198+
]
199+
checks += [
200+
("Center_Stack_2", 1),
201+
]
202+
else:
197203
signals += [
198-
("ACC_Engaged", "DAS_3"),#ACC Engaged
199-
("ACC_StandStill", "DAS_3"),#ACC Engaged
204+
("ACC_Engaged", "DAS_3"), # ACC Engaged
205+
("ACC_StandStill", "DAS_3"), # ACC Engaged
200206
("ACC_Set_Speed", "DAS_4"),
201207
("ACC_Activation_Status", "DAS_4"),
202208
]
203209
checks += [
204210
("DAS_3", 50),
205211
("DAS_4", 50),
206-
]
207-
208-
if CP.carFingerprint in (CAR.RAM_1500, CAR.RAM_2500):
209-
signals += [
210-
("LKAS_Button", "Center_Stack_2"),#LKAS Button
211212
]
212213

213-
checks += [
214-
("Center_Stack_2", 1),
215-
]
216-
217214
return CANParser(DBC[CP.carFingerprint]["pt"], signals, checks, 0)
218215

219216
@staticmethod
@@ -230,10 +227,10 @@ def get_cam_can_parser(CP):
230227
("DAS_6", 15),
231228
]
232229

233-
if CP.carFingerprint in (CAR.RAM_1500, CAR.RAM_2500):
230+
if CP.carFingerprint == CAR.RAM_1500:
234231
signals += [
235-
("ACC_Engaged", "DAS_3"),#ACC Engaged
236-
("ACC_StandStill", "DAS_3"),#ACC Engaged
232+
("ACC_Engaged", "DAS_3"), # ACC Engaged
233+
("ACC_StandStill", "DAS_3"), # ACC Engaged
237234
("COUNTER", "DAS_3"),
238235
("ACC_Set_Speed", "DAS_4"),
239236
("ACC_Activation_Status", "DAS_4"),
@@ -242,6 +239,6 @@ def get_cam_can_parser(CP):
242239
checks += [
243240
("DAS_3", 50),
244241
("DAS_4", 50),
245-
]
242+
]
246243

247244
return CANParser(DBC[CP.carFingerprint]["pt"], signals, checks, 2)

0 commit comments

Comments
 (0)