1
1
from collections import defaultdict
2
2
from dataclasses import dataclass
3
- from enum import IntFlag
3
+ from enum import Enum , IntFlag
4
4
from typing import Dict , List , Union
5
5
6
6
from cereal import car
@@ -74,18 +74,17 @@ class CAR:
74
74
LEXUS_RXH_TSS2 = "LEXUS RX HYBRID 2020"
75
75
76
76
77
- FOOTNOTES : Dict [ str , CarFootnote ] = {
78
- " DSU" : CarFootnote (
77
+ class Footnote ( Enum ):
78
+ DSU = CarFootnote (
79
79
"When disconnecting the Driver Support Unit (DSU), openpilot Adaptive Cruise Control (ACC) will replace " +
80
80
"stock Adaptive Cruise Control (ACC). NOTE: disconnecting the DSU disables Automatic Emergency Braking (AEB)." ,
81
- Column .LONGITUDINAL , star = Star .HALF ),
82
- " CAMRY" : CarFootnote (
81
+ Column .LONGITUDINAL , star = Star .HALF )
82
+ CAMRY = CarFootnote (
83
83
"28mph for Camry 4CYL L, 4CYL LE and 4CYL SE which don't have Full-Speed Range Dynamic Radar Cruise Control." ,
84
- Column .FSR_LONGITUDINAL ),
85
- " ANGLE_SENSOR" : CarFootnote (
84
+ Column .FSR_LONGITUDINAL )
85
+ ANGLE_SENSOR = CarFootnote (
86
86
"An inaccurate steering wheel angle sensor makes precise control difficult." ,
87
- Column .STEERING_TORQUE , Star .HALF )
88
- }
87
+ Column .STEERING_TORQUE , star = Star .HALF )
89
88
90
89
91
90
@dataclass
@@ -97,17 +96,17 @@ class ToyotaCarInfo(CarInfo):
97
96
CAR_INFO : Dict [str , Union [ToyotaCarInfo , List [ToyotaCarInfo ]]] = {
98
97
# Toyota
99
98
CAR .ALPHARD_TSS2 : ToyotaCarInfo ("Toyota Alphard 2019-20" ),
100
- CAR .AVALON : ToyotaCarInfo ("Toyota Avalon 2016-18" , "TSS-P" , footnotes = [FOOTNOTES [ " DSU" ] ]),
101
- CAR .AVALON_2019 : ToyotaCarInfo ("Toyota Avalon 2019-21" , "TSS-P" , footnotes = [FOOTNOTES [ " DSU" ] ]),
102
- CAR .AVALONH_2019 : ToyotaCarInfo ("Toyota Avalon Hybrid 2019-21" , "TSS-P" , footnotes = [FOOTNOTES [ " DSU" ] ]),
99
+ CAR .AVALON : ToyotaCarInfo ("Toyota Avalon 2016-18" , "TSS-P" , footnotes = [Footnote . DSU ]),
100
+ CAR .AVALON_2019 : ToyotaCarInfo ("Toyota Avalon 2019-21" , "TSS-P" , footnotes = [Footnote . DSU ]),
101
+ CAR .AVALONH_2019 : ToyotaCarInfo ("Toyota Avalon Hybrid 2019-21" , "TSS-P" , footnotes = [Footnote . DSU ]),
103
102
CAR .AVALON_TSS2 : ToyotaCarInfo ("Toyota Avalon 2022" ),
104
- CAR .CAMRY : ToyotaCarInfo ("Toyota Camry 2018-20" , video_link = "https://www.youtube.com/watch?v=fkcjviZY9CM" , footnotes = [FOOTNOTES [ " CAMRY" ] ]),
105
- CAR .CAMRYH : ToyotaCarInfo ("Toyota Camry Hybrid 2018-20" , video_link = "https://www.youtube.com/watch?v=Q2DYY0AWKgk" , footnotes = [FOOTNOTES [ " CAMRY" ] ]),
106
- CAR .CAMRY_TSS2 : ToyotaCarInfo ("Toyota Camry 2021-22" , footnotes = [FOOTNOTES [ " CAMRY" ] ]),
103
+ CAR .CAMRY : ToyotaCarInfo ("Toyota Camry 2018-20" , video_link = "https://www.youtube.com/watch?v=fkcjviZY9CM" , footnotes = [Footnote . CAMRY ]),
104
+ CAR .CAMRYH : ToyotaCarInfo ("Toyota Camry Hybrid 2018-20" , video_link = "https://www.youtube.com/watch?v=Q2DYY0AWKgk" , footnotes = [Footnote . CAMRY ]),
105
+ CAR .CAMRY_TSS2 : ToyotaCarInfo ("Toyota Camry 2021-22" , footnotes = [Footnote . CAMRY ]),
107
106
CAR .CAMRYH_TSS2 : ToyotaCarInfo ("Toyota Camry Hybrid 2021-22" ),
108
107
CAR .CHR : ToyotaCarInfo ("Toyota C-HR 2017-21" ),
109
108
CAR .CHRH : ToyotaCarInfo ("Toyota C-HR Hybrid 2017-19" ),
110
- CAR .COROLLA : ToyotaCarInfo ("Toyota Corolla 2017-19" , footnotes = [FOOTNOTES [ " DSU" ] ]),
109
+ CAR .COROLLA : ToyotaCarInfo ("Toyota Corolla 2017-19" , footnotes = [Footnote . DSU ]),
111
110
CAR .COROLLA_TSS2 : [
112
111
ToyotaCarInfo ("Toyota Corolla 2020-22" , video_link = "https://www.youtube.com/watch?v=_66pXk0CBYA" ),
113
112
ToyotaCarInfo ("Toyota Corolla Hatchback 2019-22" , video_link = "https://www.youtube.com/watch?v=_66pXk0CBYA" ),
@@ -116,38 +115,38 @@ class ToyotaCarInfo(CarInfo):
116
115
ToyotaCarInfo ("Toyota Corolla Hybrid 2020-22" ),
117
116
ToyotaCarInfo ("Lexus UX Hybrid 2019-21" ),
118
117
],
119
- CAR .HIGHLANDER : ToyotaCarInfo ("Toyota Highlander 2017-19" , video_link = "https://www.youtube.com/watch?v=0wS0wXSLzoo" , footnotes = [FOOTNOTES [ " DSU" ] ]),
118
+ CAR .HIGHLANDER : ToyotaCarInfo ("Toyota Highlander 2017-19" , video_link = "https://www.youtube.com/watch?v=0wS0wXSLzoo" , footnotes = [Footnote . DSU ]),
120
119
CAR .HIGHLANDER_TSS2 : ToyotaCarInfo ("Toyota Highlander 2020-22" ),
121
- CAR .HIGHLANDERH : ToyotaCarInfo ("Toyota Highlander Hybrid 2017-19" , footnotes = [FOOTNOTES [ " DSU" ] ]),
120
+ CAR .HIGHLANDERH : ToyotaCarInfo ("Toyota Highlander Hybrid 2017-19" , footnotes = [Footnote . DSU ]),
122
121
CAR .HIGHLANDERH_TSS2 : ToyotaCarInfo ("Toyota Highlander Hybrid 2020-22" ),
123
122
CAR .PRIUS : [
124
- ToyotaCarInfo ("Toyota Prius 2016-20" , "TSS-P" , video_link = "https://www.youtube.com/watch?v=8zopPJI8XQ0" , footnotes = [FOOTNOTES [ " DSU" ], FOOTNOTES [ " ANGLE_SENSOR" ] ]),
125
- ToyotaCarInfo ("Toyota Prius Prime 2017-20" , video_link = "https://www.youtube.com/watch?v=8zopPJI8XQ0" , footnotes = [FOOTNOTES [ " DSU" ], FOOTNOTES [ " ANGLE_SENSOR" ] ]),
123
+ ToyotaCarInfo ("Toyota Prius 2016-20" , "TSS-P" , video_link = "https://www.youtube.com/watch?v=8zopPJI8XQ0" , footnotes = [Footnote . DSU , Footnote . ANGLE_SENSOR ]),
124
+ ToyotaCarInfo ("Toyota Prius Prime 2017-20" , video_link = "https://www.youtube.com/watch?v=8zopPJI8XQ0" , footnotes = [Footnote . DSU , Footnote . ANGLE_SENSOR ]),
126
125
],
127
- CAR .PRIUS_V : ToyotaCarInfo ("Toyota Prius v 2017" , "TSS-P" , min_enable_speed = MIN_ACC_SPEED , footnotes = [FOOTNOTES [ " DSU" ], FOOTNOTES [ " ANGLE_SENSOR" ] ]),
126
+ CAR .PRIUS_V : ToyotaCarInfo ("Toyota Prius v 2017" , "TSS-P" , min_enable_speed = MIN_ACC_SPEED , footnotes = [Footnote . DSU , Footnote . ANGLE_SENSOR ]),
128
127
CAR .PRIUS_TSS2 : [
129
128
ToyotaCarInfo ("Toyota Prius 2021-22" , video_link = "https://www.youtube.com/watch?v=J58TvCpUd4U" ),
130
129
ToyotaCarInfo ("Toyota Prius Prime 2021-22" , video_link = "https://www.youtube.com/watch?v=J58TvCpUd4U" ),
131
130
],
132
- CAR .RAV4 : ToyotaCarInfo ("Toyota RAV4 2016-18" , "TSS-P" , footnotes = [FOOTNOTES [ " DSU" ] ]),
133
- CAR .RAV4H : ToyotaCarInfo ("Toyota RAV4 Hybrid 2016-18" , "TSS-P" , footnotes = [FOOTNOTES [ " DSU" ] ]),
131
+ CAR .RAV4 : ToyotaCarInfo ("Toyota RAV4 2016-18" , "TSS-P" , footnotes = [Footnote . DSU ]),
132
+ CAR .RAV4H : ToyotaCarInfo ("Toyota RAV4 Hybrid 2016-18" , "TSS-P" , footnotes = [Footnote . DSU ]),
134
133
CAR .RAV4_TSS2 : ToyotaCarInfo ("Toyota RAV4 2019-21" , video_link = "https://www.youtube.com/watch?v=wJxjDd42gGA" ),
135
134
CAR .RAV4H_TSS2 : ToyotaCarInfo ("Toyota RAV4 Hybrid 2019-21" ),
136
135
CAR .MIRAI : ToyotaCarInfo ("Toyota Mirai 2021" ),
137
- CAR .SIENNA : ToyotaCarInfo ("Toyota Sienna 2018-20" , video_link = "https://www.youtube.com/watch?v=q1UPOo4Sh68" , footnotes = [FOOTNOTES [ " DSU" ] ]),
136
+ CAR .SIENNA : ToyotaCarInfo ("Toyota Sienna 2018-20" , video_link = "https://www.youtube.com/watch?v=q1UPOo4Sh68" , footnotes = [Footnote . DSU ]),
138
137
139
138
# Lexus
140
- CAR .LEXUS_CTH : ToyotaCarInfo ("Lexus CT Hybrid 2017-18" , "LSS" , footnotes = [FOOTNOTES [ " DSU" ] ]),
141
- CAR .LEXUS_ESH : ToyotaCarInfo ("Lexus ES Hybrid 2017-18" , "LSS" , footnotes = [FOOTNOTES [ " DSU" ] ]),
139
+ CAR .LEXUS_CTH : ToyotaCarInfo ("Lexus CT Hybrid 2017-18" , "LSS" , footnotes = [Footnote . DSU ]),
140
+ CAR .LEXUS_ESH : ToyotaCarInfo ("Lexus ES Hybrid 2017-18" , "LSS" , footnotes = [Footnote . DSU ]),
142
141
CAR .LEXUS_ES_TSS2 : ToyotaCarInfo ("Lexus ES 2019-21" ),
143
142
CAR .LEXUS_ESH_TSS2 : ToyotaCarInfo ("Lexus ES Hybrid 2019-21" ),
144
143
CAR .LEXUS_IS : ToyotaCarInfo ("Lexus IS 2017-19" ),
145
- CAR .LEXUS_NX : ToyotaCarInfo ("Lexus NX 2018-19" , footnotes = [FOOTNOTES [ " DSU" ] ]),
146
- CAR .LEXUS_NXH : ToyotaCarInfo ("Lexus NX Hybrid 2018-19" , footnotes = [FOOTNOTES [ " DSU" ] ]),
144
+ CAR .LEXUS_NX : ToyotaCarInfo ("Lexus NX 2018-19" , footnotes = [Footnote . DSU ]),
145
+ CAR .LEXUS_NXH : ToyotaCarInfo ("Lexus NX Hybrid 2018-19" , footnotes = [Footnote . DSU ]),
147
146
CAR .LEXUS_NX_TSS2 : ToyotaCarInfo ("Lexus NX 2020" ),
148
147
CAR .LEXUS_RC : ToyotaCarInfo ("Lexus RC 2020" ),
149
- CAR .LEXUS_RX : ToyotaCarInfo ("Lexus RX 2016-18" , footnotes = [FOOTNOTES [ " DSU" ] ]),
150
- CAR .LEXUS_RXH : ToyotaCarInfo ("Lexus RX Hybrid 2016-19" , footnotes = [FOOTNOTES [ " DSU" ] ]),
148
+ CAR .LEXUS_RX : ToyotaCarInfo ("Lexus RX 2016-18" , footnotes = [Footnote . DSU ]),
149
+ CAR .LEXUS_RXH : ToyotaCarInfo ("Lexus RX Hybrid 2016-19" , footnotes = [Footnote . DSU ]),
151
150
CAR .LEXUS_RX_TSS2 : ToyotaCarInfo ("Lexus RX 2020-21" ),
152
151
CAR .LEXUS_RXH_TSS2 : ToyotaCarInfo ("Lexus RX Hybrid 2020-21" ),
153
152
}
0 commit comments