@ -1,14 +1,16 @@
from dataclasses import dataclass
from enum import Enum , IntFlag
from enum import Enum , IntFlag
from typing import Dict , List , Union
from typing import Dict , List , Union
from cereal import car
from cereal import car
from common . conversions import Conversions as CV
from selfdrive . car import dbc_dict
from selfdrive . car import dbc_dict
from selfdrive . car . docs_definitions import CarFootnote , CarInfo , Column
from selfdrive . car . docs_definitions import CarFootnote , CarInfo , Column
from common . conversions import Conversions as CV
Ecu = car . CarParams . Ecu
Ecu = car . CarParams . Ecu
VisualAlert = car . CarControl . HUDControl . VisualAlert
VisualAlert = car . CarControl . HUDControl . VisualAlert
class CarControllerParams :
class CarControllerParams :
# Allow small margin below -3.5 m/s^2 from ISO 15622:2018 since we
# Allow small margin below -3.5 m/s^2 from ISO 15622:2018 since we
# perform the closed loop control, and might need some
# perform the closed loop control, and might need some
@ -53,6 +55,7 @@ class CruiseButtons:
CANCEL = 2
CANCEL = 2
MAIN = 1
MAIN = 1
# See dbc files for info on values
# See dbc files for info on values
VISUAL_HUD = {
VISUAL_HUD = {
VisualAlert . none : 0 ,
VisualAlert . none : 0 ,
@ -97,33 +100,39 @@ class Footnote(Enum):
Column . FSR_STEERING )
Column . FSR_STEERING )
CAR_INFO : Dict [ str , Union [ CarInfo , List [ CarInfo ] ] ] = {
@dataclass
class HondaCarInfo ( CarInfo ) :
package : str = " Honda Sensing "
min_steer_speed : float = 12. * CV . MPH_TO_MS
CAR_INFO : Dict [ str , Union [ HondaCarInfo , List [ HondaCarInfo ] ] ] = {
CAR . ACCORD : [
CAR . ACCORD : [
CarInfo ( " Honda Accord 2018-21 " , " All " , video_link = " https://www.youtube.com/watch?v=mrUwlj3Mi58 " , min_steer_speed = 3. * CV . MPH_TO_MS ) ,
Honda CarInfo( " Honda Accord 2018-21 " , " All " , video_link = " https://www.youtube.com/watch?v=mrUwlj3Mi58 " , min_steer_speed = 3. * CV . MPH_TO_MS ) ,
CarInfo ( " Honda Inspire 2018 " , " All " , min_steer_speed = 3. * CV . MPH_TO_MS ) ,
Honda CarInfo( " Honda Inspire 2018 " , " All " , min_steer_speed = 3. * CV . MPH_TO_MS ) ,
] ,
] ,
CAR . ACCORDH : CarInfo ( " Honda Accord Hybrid 2018-21 " , " All " , min_steer_speed = 3. * CV . MPH_TO_MS ) ,
CAR . ACCORDH : Honda CarInfo( " Honda Accord Hybrid 2018-21 " , " All " , min_steer_speed = 3. * CV . MPH_TO_MS ) ,
CAR . CIVIC : CarInfo ( " Honda Civic 2016-18 " , " Honda Sensing " , min_steer_speed = 12. * CV . MPH_TO_MS ) ,
CAR . CIVIC : Honda CarInfo( " Honda Civic 2016-18 " ) ,
CAR . CIVIC_BOSCH : [
CAR . CIVIC_BOSCH : [
CarInfo ( " Honda Civic 2019-20 " , " All " , video_link = " https://www.youtube.com/watch?v=4Iz1Mz5LGF8 " , footnotes = [ Footnote . CIVIC_DIESEL ] , min_steer_speed = 2. * CV . MPH_TO_MS ) ,
Honda CarInfo( " Honda Civic 2019-20 " , " All " , video_link = " https://www.youtube.com/watch?v=4Iz1Mz5LGF8 " , footnotes = [ Footnote . CIVIC_DIESEL ] , min_steer_speed = 2. * CV . MPH_TO_MS ) ,
CarInfo ( " Honda Civic Hatchback 2017-21 " , " Honda Sensing " , min_steer_speed = 12. * CV . MPH_TO_MS ) ,
Honda CarInfo( " Honda Civic Hatchback 2017-21 " ) ,
] ,
] ,
CAR . ACURA_ILX : CarInfo ( " Acura ILX 2016-19 " , " AcuraWatch Plus " , min_steer_speed = 25. * CV . MPH_TO_MS ) ,
CAR . ACURA_ILX : Honda CarInfo( " Acura ILX 2016-19 " , " AcuraWatch Plus " , min_steer_speed = 25. * CV . MPH_TO_MS ) ,
CAR . CRV : CarInfo ( " Honda CR-V 2015-16 " , " Touring " , min_steer_speed = 12. * CV . MPH_TO_MS ) ,
CAR . CRV : Honda CarInfo( " Honda CR-V 2015-16 " , " Touring " ) ,
CAR . CRV_5G : CarInfo ( " Honda CR-V 2017-21 " , " Honda Sensing " , min_steer_speed = 12. * CV . MPH_TO_MS ) ,
CAR . CRV_5G : Honda CarInfo( " Honda CR-V 2017-21 " ) ,
# CAR.CRV_EU: CarInfo("Honda CR-V EU", "Touring"), # Euro version of CRV Touring
# CAR.CRV_EU: Honda CarInfo("Honda CR-V EU", "Touring"), # Euro version of CRV Touring
CAR . CRV_HYBRID : CarInfo ( " Honda CR-V Hybrid 2017-19 " , " Honda Sensing " , min_steer_speed = 12. * CV . MPH_TO_MS ) ,
CAR . CRV_HYBRID : Honda CarInfo( " Honda CR-V Hybrid 2017-19 " ) ,
CAR . FIT : CarInfo ( " Honda Fit 2018-19 " , " Honda Sensing " , min_steer_speed = 12. * CV . MPH_TO_MS ) ,
CAR . FIT : Honda CarInfo( " Honda Fit 2018-19 " ) ,
CAR . FREED : CarInfo ( " Honda Freed 2020 " , " Honda Sensing " , min_steer_speed = 12. * CV . MPH_TO_MS ) ,
CAR . FREED : Honda CarInfo( " Honda Freed 2020 " ) ,
CAR . HRV : CarInfo ( " Honda HR-V 2019-20 " , " Honda Sensing " , min_steer_speed = 12. * CV . MPH_TO_MS ) ,
CAR . HRV : Honda CarInfo( " Honda HR-V 2019-20 " ) ,
CAR . ODYSSEY : CarInfo ( " Honda Odyssey 2018-20 " , " Honda Sensing " ) ,
CAR . ODYSSEY : Honda CarInfo( " Honda Odyssey 2018-20 " , min_steer_speed = 0. ) ,
CAR . ACURA_RDX : CarInfo ( " Acura RDX 2016-18 " , " AcuraWatch Plus " , min_steer_speed = 12. * CV . MPH_TO_MS ) ,
CAR . ACURA_RDX : Honda CarInfo( " Acura RDX 2016-18 " , " AcuraWatch Plus " ) ,
CAR . ACURA_RDX_3G : CarInfo ( " Acura RDX 2019-21 " , " All " , min_steer_speed = 3. * CV . MPH_TO_MS ) ,
CAR . ACURA_RDX_3G : Honda CarInfo( " Acura RDX 2019-21 " , " All " , min_steer_speed = 3. * CV . MPH_TO_MS ) ,
CAR . PILOT : CarInfo ( " Honda Pilot 2016-21 " , " Honda Sensing " , min_steer_speed = 12. * CV . MPH_TO_MS ) ,
CAR . PILOT : Honda CarInfo( " Honda Pilot 2016-21 " ) ,
CAR . PASSPORT : CarInfo ( " Honda Passport 2019-21 " , " All " , min_steer_speed = 12. * CV . MPH_TO_MS ) ,
CAR . PASSPORT : Honda CarInfo( " Honda Passport 2019-21 " , " All " ) ,
CAR . RIDGELINE : CarInfo ( " Honda Ridgeline 2017-21 " , " Honda Sensing " , min_steer_speed = 12. * CV . MPH_TO_MS ) ,
CAR . RIDGELINE : Honda CarInfo( " Honda Ridgeline 2017-21 " ) ,
CAR . INSIGHT : CarInfo ( " Honda Insight 2019-21 " , " All " , min_steer_speed = 3. * CV . MPH_TO_MS ) ,
CAR . INSIGHT : Honda CarInfo( " Honda Insight 2019-21 " , " All " , min_steer_speed = 3. * CV . MPH_TO_MS ) ,
CAR . HONDA_E : CarInfo ( " Honda e 2020 " , " All " , min_steer_speed = 3. * CV . MPH_TO_MS ) ,
CAR . HONDA_E : Honda CarInfo( " Honda e 2020 " , " All " , min_steer_speed = 3. * CV . MPH_TO_MS ) ,
}
}