Skip to content

Commit de79a07

Browse files
energeerbiasini
authored andcommitted
Add support for accord hybrid (commaai#361)
1 parent 4b2c137 commit de79a07

File tree

3 files changed

+17
-15
lines changed

3 files changed

+17
-15
lines changed

selfdrive/car/honda/carstate.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ def get_can_signals(CP):
7373

7474
if CP.radarOffCan:
7575
# Civic is only bosch to use the same brake message as other hondas.
76-
if CP.carFingerprint != CAR.CIVIC_HATCH:
76+
if CP.carFingerprint not in (CAR.ACCORDH, CAR.CIVIC_HATCH):
7777
signals += [("BRAKE_PRESSED", "BRAKE_MODULE", 0)]
7878
checks += [("BRAKE_MODULE", 50)]
7979
signals += [("CAR_GAS", "GAS_PEDAL_2", 0),
@@ -88,7 +88,7 @@ def get_can_signals(CP):
8888
("CRUISE_SPEED_OFFSET", "CRUISE_PARAMS", 0)]
8989
checks += [("CRUISE_PARAMS", 50)]
9090

91-
if CP.carFingerprint in (CAR.ACCORD, CAR.ACCORD_15):
91+
if CP.carFingerprint in (CAR.ACCORD, CAR.ACCORD_15, CAR.ACCORDH):
9292
signals += [("DRIVERS_DOOR_OPEN", "SCM_FEEDBACK", 1)]
9393
else:
9494
signals += [("DOOR_OPEN_FL", "DOORS_STATUS", 1),
@@ -179,7 +179,7 @@ def update(self, cp):
179179

180180
# ******************* parse out can *******************
181181

182-
if self.CP.carFingerprint in (CAR.ACCORD, CAR.ACCORD_15): # TODO: find wheels moving bit in dbc
182+
if self.CP.carFingerprint in (CAR.ACCORD, CAR.ACCORD_15, CAR.ACCORDH): # TODO: find wheels moving bit in dbc
183183
self.standstill = cp.vl["ENGINE_DATA"]['XMISSION_SPEED'] < 0.1
184184
self.door_all_closed = not cp.vl["SCM_FEEDBACK"]['DRIVERS_DOOR_OPEN']
185185
else:
@@ -234,7 +234,7 @@ def update(self, cp):
234234
self.left_blinker_on = cp.vl["SCM_FEEDBACK"]['LEFT_BLINKER']
235235
self.right_blinker_on = cp.vl["SCM_FEEDBACK"]['RIGHT_BLINKER']
236236

237-
if self.CP.carFingerprint in (CAR.CIVIC, CAR.ODYSSEY, CAR.CRV_5G, CAR.ACCORD, CAR.ACCORD_15, CAR.CIVIC_HATCH):
237+
if self.CP.carFingerprint in (CAR.CIVIC, CAR.ODYSSEY, CAR.CRV_5G, CAR.ACCORD, CAR.ACCORD_15, CAR.ACCORDH, CAR.CIVIC_HATCH):
238238
self.park_brake = cp.vl["EPB_STATUS"]['EPB_STATE'] != 0
239239
self.brake_hold = cp.vl["VSA_STATUS"]['BRAKE_HOLD_ACTIVE']
240240
self.main_on = cp.vl["SCM_FEEDBACK"]['MAIN_ON']
@@ -261,7 +261,7 @@ def update(self, cp):
261261
if self.CP.radarOffCan:
262262
self.stopped = cp.vl["ACC_HUD"]['CRUISE_SPEED'] == 252.
263263
self.cruise_speed_offset = calc_cruise_offset(0, self.v_ego)
264-
if self.CP.carFingerprint == CAR.CIVIC_HATCH:
264+
if self.CP.carFingerprint in (CAR.CIVIC_HATCH, CAR.ACCORDH):
265265
self.brake_switch = cp.vl["POWERTRAIN_DATA"]['BRAKE_SWITCH']
266266
self.brake_pressed = cp.vl["POWERTRAIN_DATA"]['BRAKE_PRESSED'] or \
267267
(self.brake_switch and self.brake_switch_prev and \

selfdrive/car/honda/interface.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -204,9 +204,10 @@ def get_params(candidate, fingerprint):
204204
ret.longitudinalKiBP = [0., 35.]
205205
ret.longitudinalKiV = [0.18, 0.12]
206206

207-
elif candidate in (CAR.ACCORD, CAR.ACCORD_15):
207+
elif candidate in (CAR.ACCORD, CAR.ACCORD_15, CAR.ACCORDH):
208208
stop_and_go = True
209-
ret.safetyParam = 1 # Accord and CRV 5G use an alternate user brake msg
209+
if not candidate == CAR.ACCORDH: # Hybrid uses same brake msg as hatch
210+
ret.safetyParam = 1 # Accord and CRV 5G use an alternate user brake msg
210211
ret.mass = 3279. * CV.LB_TO_KG + std_cargo
211212
ret.wheelbase = 2.83
212213
ret.centerToFront = ret.wheelbase * 0.39

selfdrive/car/honda/values.py

+9-8
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ class CruiseButtons:
77
CANCEL = 2
88
MAIN = 1
99

10-
1110
#car chimes: enumeration from dbc file. Chimes are for alerts and warnings
1211
class CM:
1312
MUTE = 0
@@ -16,7 +15,6 @@ class CM:
1615
REPEATED = 1
1716
CONTINUOUS = 2
1817

19-
2018
#car beepss: enumeration from dbc file. Beeps are for activ and deactiv
2119
class BP:
2220
MUTE = 0
@@ -35,10 +33,10 @@ class AH:
3533
SEATBELT = [5, 5]
3634
SPEED_TOO_HIGH = [6, 8]
3735

38-
3936
class CAR:
4037
ACCORD = "HONDA ACCORD 2018 SPORT 2T"
4138
ACCORD_15 = "HONDA ACCORD 2018 LX 1.5T"
39+
ACCORDH = "HONDA ACCORD 2018 HYBRID TOURING"
4240
CIVIC = "HONDA CIVIC 2016 TOURING"
4341
CIVIC_HATCH = "HONDA CIVIC HATCHBACK 2017 EX"
4442
ACURA_ILX = "ACURA ILX 2016 ACURAWATCH PLUS"
@@ -50,14 +48,16 @@ class CAR:
5048
PILOT_2019 = "HONDA PILOT 2019 ELITE"
5149
RIDGELINE = "HONDA RIDGELINE 2017 BLACK EDITION"
5250

53-
5451
FINGERPRINTS = {
5552
CAR.ACCORD: [{
56-
148: 8, 228: 5, 304: 8, 330: 8, 344: 8, 380: 8, 387: 8, 388: 8, 399: 7, 419: 8, 420: 8, 427: 3, 432: 7, 441: 5, 446: 3, 450: 8, 464: 8, 477: 8, 479: 8, 495: 8, 525: 8, 545: 6, 662: 4, 773: 7, 777: 8, 780: 8, 804: 8, 806: 8, 808: 8, 829: 5, 862: 8, 884: 8, 891: 8, 927: 8, 929: 8, 1302: 8, 1600: 5, 1601: 8, 1652: 8
53+
148: 8, 228: 5, 304: 8, 330: 8, 344: 8, 380: 8, 399: 7, 419: 8, 420: 8, 427: 3, 432: 7, 441: 5, 446: 3, 450: 8, 464: 8, 477: 8, 479: 8, 495: 8, 545: 6, 662: 4, 773: 7, 777: 8, 780: 8, 804: 8, 806: 8, 808: 8, 829: 5, 862: 8, 884: 8, 891: 8, 927: 8, 929: 8, 1302: 8, 1600: 5, 1601: 8, 1652: 8
5754
}],
5855
CAR.ACCORD_15: [{
5956
148: 8, 228: 5, 304: 8, 330: 8, 344: 8, 380: 8, 399: 7, 401: 8, 420: 8, 427: 3, 432: 7, 441: 5, 446: 3, 450: 8, 464: 8, 477: 8, 479: 8, 495: 8, 545: 6, 662: 4, 773: 7, 777: 8, 780: 8, 804: 8, 806: 8, 808: 8, 829: 5, 862: 8, 884: 8, 891: 8, 927: 8, 929: 8, 1302: 8, 1600: 5, 1601: 8, 1652: 8
6057
}],
58+
CAR.ACCORDH: [{
59+
148: 8, 228: 5, 304: 8, 330: 8, 344: 8, 380: 8, 387: 8, 388: 8, 399: 7, 419: 8, 420: 8, 427: 3, 432: 7, 441: 5, 450: 8, 464: 8, 477: 8, 479: 8, 495: 8, 525: 8, 545: 6, 662: 4, 773: 7, 777: 8, 780: 8, 804: 8, 806: 8, 808: 8, 829: 5, 862: 8, 884: 8, 891: 8, 927: 8, 929: 8, 1302: 8, 1600: 5, 1601: 8, 1652: 8
60+
}],
6161
CAR.ACURA_ILX: [{
6262
57: 3, 145: 8, 228: 5, 304: 8, 316: 8, 342: 6, 344: 8, 380: 8, 398: 3, 399: 7, 419: 8, 420: 8, 422: 8, 428: 8, 432: 7, 464: 8, 476: 4, 490: 8, 506: 8, 512: 6, 513: 6, 542: 7, 545: 4, 597: 8, 660: 8, 773: 7, 777: 8, 780: 8, 800: 8, 804: 8, 808: 8, 819: 7, 821: 5, 829: 5, 882: 2, 884: 7, 887: 8, 888: 8, 892: 8, 923: 2, 929: 4, 983: 8, 985: 3, 1024: 5, 1027: 5, 1029: 8, 1030: 5, 1034: 5, 1036: 8, 1039: 8, 1057: 5, 1064: 7, 1108: 8, 1365: 5,
6363
}],
@@ -98,10 +98,10 @@ class CAR:
9898
}]
9999
}
100100

101-
102101
DBC = {
103102
CAR.ACCORD: dbc_dict('honda_accord_s2t_2018_can_generated', None),
104103
CAR.ACCORD_15: dbc_dict('honda_accord_lx15t_2018_can_generated', None),
104+
CAR.ACCORDH: dbc_dict('honda_accord_s2t_2018_can_generated', None),
105105
CAR.ACURA_ILX: dbc_dict('acura_ilx_2016_can_generated', 'acura_ilx_2016_nidec'),
106106
CAR.ACURA_RDX: dbc_dict('acura_rdx_2018_can_generated', 'acura_ilx_2016_nidec'),
107107
CAR.CIVIC: dbc_dict('honda_civic_touring_2016_can_generated', 'acura_ilx_2016_nidec'),
@@ -114,10 +114,10 @@ class CAR:
114114
CAR.RIDGELINE: dbc_dict('honda_ridgeline_black_edition_2017_can_generated', 'acura_ilx_2016_nidec'),
115115
}
116116

117-
118117
STEER_THRESHOLD = {
119118
CAR.ACCORD: 1200,
120119
CAR.ACCORD_15: 1200,
120+
CAR.ACCORDH: 1200,
121121
CAR.ACURA_ILX: 1200,
122122
CAR.ACURA_RDX: 400,
123123
CAR.CIVIC: 1200,
@@ -133,6 +133,7 @@ class CAR:
133133
SPEED_FACTOR = {
134134
CAR.ACCORD: 1.,
135135
CAR.ACCORD_15: 1.,
136+
CAR.ACCORDH: 1.,
136137
CAR.ACURA_ILX: 1.,
137138
CAR.ACURA_RDX: 1.,
138139
CAR.CIVIC: 1.,
@@ -159,4 +160,4 @@ class CAR:
159160
}
160161

161162
# TODO: get these from dbc file
162-
HONDA_BOSCH = [CAR.ACCORD, CAR.ACCORD_15, CAR.CIVIC_HATCH, CAR.CRV_5G]
163+
HONDA_BOSCH = [CAR.ACCORD, CAR.ACCORD_15, CAR.ACCORDH, CAR.CIVIC_HATCH, CAR.CRV_5G]

0 commit comments

Comments
 (0)