mirror of
https://github.com/dragonpilot/dragonpilot.git
synced 2026-08-07 09:15:40 +08:00
Compare commits
30 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c6efa8341a | |||
| 0bb2cfda06 | |||
| 4c8fe7af7e | |||
| a9f879e64d | |||
| cf18a8fb09 | |||
| ca1186a7bf | |||
| d244592a40 | |||
| b0e747ea3b | |||
| c0ac87c36c | |||
| eeb43a5107 | |||
| ea800c8f74 | |||
| f770882b7f | |||
| 34925962d5 | |||
| 3977b6d1ff | |||
| 77edcc0058 | |||
| 8555e48fc9 | |||
| 1f2e3aa8b6 | |||
| 398aeb927b | |||
| de34fa87ee | |||
| 1fdc1202d1 | |||
| 4c3c884245 | |||
| fe6459224b | |||
| 30a852791f | |||
| 9546ca4273 | |||
| e55a27c37e | |||
| 99f7f6023e | |||
| 58e0b3246f | |||
| 66006fe0e9 | |||
| b437663252 | |||
| 4d7a40310f |
+7
-5
@@ -44,17 +44,14 @@ selfdrive/mapd/default_speeds_by_region.json
|
||||
system/proclogd/proclogd
|
||||
selfdrive/ui/_ui
|
||||
selfdrive/test/longitudinal_maneuvers/out
|
||||
selfdrive/visiond/visiond
|
||||
selfdrive/sensord/_gpsd
|
||||
selfdrive/sensord/_sensord
|
||||
system/camerad/camerad
|
||||
system/camerad/test/ae_gray_test
|
||||
selfdrive/modeld/_modeld
|
||||
selfdrive/modeld/_navmodeld
|
||||
selfdrive/modeld/_dmonitoringmodeld
|
||||
/src/
|
||||
|
||||
one
|
||||
/body/
|
||||
openpilot
|
||||
notebooks
|
||||
xx
|
||||
@@ -64,7 +61,7 @@ panda_jungle
|
||||
provisioning
|
||||
|
||||
.coverage*
|
||||
coverage.xml
|
||||
coverage.xmlcar
|
||||
htmlcov
|
||||
pandaextra
|
||||
|
||||
@@ -83,4 +80,9 @@ build/
|
||||
|
||||
!**/.gitkeep
|
||||
|
||||
poetry.toml
|
||||
selfdrive/ui/_ui_nonav
|
||||
*.po~
|
||||
selfdrive/loggerd/bootlog
|
||||
selfdrive/loggerd/loggerd
|
||||
selfdrive/proclogd/proclogd
|
||||
|
||||
+182
-29
@@ -1,4 +1,185 @@
|
||||
dragonpilot 2022.07.29 - EON/C2 Release
|
||||
dragonpilot [2023.3.27]
|
||||
=======================
|
||||
* Synced with openpilot master 2023.03.26 commits.
|
||||
* comma 0.9.2 release
|
||||
* Draw MPC path instead of model predicted path, this is a more accurate representation of what the car will do.
|
||||
* DP Highlight
|
||||
* Dynamic Rainbow mode. (fancy lol)
|
||||
* Different color when Always On Lateral is enabled.
|
||||
* RoadEdge detection has it's own toggle now.
|
||||
* IMPROVEMENT: Better TSS2 Long and DF tune. @cgw1968-5779
|
||||
* NEW: Alternative Lateral Controller
|
||||
* Ability to switch to another lateral controller when SET speed is higher than configure speed.
|
||||
* E.g. Use Torque + Laneless when belows 80kph and use PID + Laneline when above.
|
||||
|
||||
dragonpilot [2023.2.15]
|
||||
=======================
|
||||
* Synced with openpilot master 2022.12.14 commits.
|
||||
* Comma 0.9.1 release
|
||||
* New driving model
|
||||
* 30% improved height estimation resulting in better driving performance for tall cars
|
||||
* UI updates
|
||||
* Adjust alert volume using ambient noise level
|
||||
* Driver monitoring icon shows driver's head pose
|
||||
* NEW: Always On Lateral v2 (For Toyota/VAG/HKG/Honda).
|
||||
* NEW: Block ALC if it's close to the road edges.
|
||||
* NEW: Rinbow path toggle. (This effect is purely cosmetic)
|
||||
* IMPROVEMENT: Better TSS2 Long and DF tune. @cgw1968-5779
|
||||
* Bug fixes and improvement.
|
||||
|
||||
dragonpilot [2023.1.10]
|
||||
=======================
|
||||
* Synced with openpilot master 2023.1.3 commits.
|
||||
* IMPROVEMENT: Dynamic end to end refactored. It will automatically turn on and off for red light for smoother u/x. Now Supports (honda and vw that cab take advantage of VOACC).
|
||||
* IMPROVEMENT: Better TSS2 Long and DF tune. @cgw1968-5779
|
||||
* ADDED: support for Chevrolet Trailblazer 2022 (Thanks @TurboCE)
|
||||
* ADDED: support for Honda odyssey hybrid 2022 China (Thanks @lijunhao731)
|
||||
* ADDED: GPS accuracy on the sidebar.
|
||||
* Bug fixes and improvement.
|
||||
|
||||
HOTFIX:
|
||||
=======================
|
||||
* Allow Experimental Mode in release branch. (@Stupefacient)
|
||||
* Happy Holiday / New Years! Safe Travel, cya in 2023!
|
||||
|
||||
dragonpilot 2022.12.13
|
||||
=======================
|
||||
* Synced with openpilot master 2022.12.13 commits.
|
||||
* COMMA: New model, Toyota users can now configure SWAY settings.
|
||||
* ADDED: Dashcam for comma 3. Store in /data/media/0/video/ (@neokii)
|
||||
* ADDED: Better TSS2 Long and DF tune. @cgw1968-5779
|
||||
* NEW: Toggle to adapt Dynamic End-to-End to Following Dist. Mode.
|
||||
* NEW: Toggle to adapt Dynamic End-to-End to Accel Mode.
|
||||
* Improvement: Dynamic end to end is much more reliable and smoother experience
|
||||
* Bug fixes and improvement.
|
||||
* Happy Holiday / New Years! Safe Travel, cya in 2023!
|
||||
|
||||
dragonpilot [2022.11.25]
|
||||
=======================
|
||||
* Synced with openpilot master 2022.11.25 commits.
|
||||
* ADDED: Lateral Controller Selector.
|
||||
- Ability to select between DEFAULT / PID / LQR / Torque Controller.
|
||||
* ADDED: Redesigned UI to match Comma's new UI/UX style.
|
||||
* ADDED: Dynamic End-to-End can be turned on when lead car is going below x km/h. (Useful for stop and go traffic.)
|
||||
* ADDED: Toggle to adapt Dynamic End-to-End to Following Dist. Mode.
|
||||
* ADDED: Toggle to adapt Dynamic End-to-End to Accel Mode.
|
||||
* bug fix and improvement.
|
||||
|
||||
dragonpilot [2022.11.14]
|
||||
=======================
|
||||
* Synced with openpilot master 2022.11.14 commits.
|
||||
* COMMA: New Model.
|
||||
* COMMA: RAV4 TSS2 now uses PID.
|
||||
* REFACTORED: Turning off nav will free up some system resource. QR for nav has been move to home button / sidebar.
|
||||
* ADDED: 2 new toggle to turn on or off laneline / path and chevron.
|
||||
* ADDED: When reversing it will now show DM cam.
|
||||
|
||||
dragonpilot [2022.11.01]
|
||||
=======================
|
||||
* Synced with openpilot master 2022.11.01 commits.
|
||||
* COMMA: New Model.
|
||||
* ADDED: Multi Lateral Planner: Ability to choose different Lateral Planner (0 = LATEST, 1 = 0.8.13, 2 = 0.8.16).
|
||||
* READD: Toyota Prius ZSS support.
|
||||
* Improvement: Better User experience for installing mapd database.
|
||||
* Improvement: Turning on Lane Line will automatically will use DLP (Dynamic Lane Profile).
|
||||
* bug fix and improvement
|
||||
|
||||
dragonpilot [2022.10.26]
|
||||
=======================
|
||||
* Synced with openpilot master 2022.10.26 commits.
|
||||
* COMMA: Torque controller used on all Toyota, Lexus, Hyundai, Kia, and Genesis models.
|
||||
* COMMA: New Model with much improved e2e long.
|
||||
* ADDED: Mapd Database selector menu to use mapd offline located in software. When installing Database it will take some time. It is not stuck just be patience run `tmux a` for more info. DO NOT RESTART When database is being installed.
|
||||
* ADDED: Better TSS2 Long and DF tune. @cgw1968-5779
|
||||
* ADDED: Toggle to bypass dashcam mode for Mazda.
|
||||
* Improvement: Dynamic End to End tune.
|
||||
* Improvement: Better Optimization for Vision Turn Controller with laneline mode.
|
||||
* bug fix and improvement
|
||||
|
||||
dragonpilot [2022.10.18]
|
||||
=======================
|
||||
* Synced with openpilot master 2022.10.18 commits.
|
||||
* ADDED: Laneline toggle.
|
||||
* ADDED: Turn and BSM indicator. (turn = green, turn + bsm = yellow, bsm = red)
|
||||
* Improvement: Dynamic End to End tune.
|
||||
* bug fix and improvement
|
||||
|
||||
|
||||
dragonpilot [2022.10.04]
|
||||
=======================
|
||||
* Synced with openpilot master 2022.10.04 commits.
|
||||
* ADDED: Dynamic End to End long. For more detail read the setting description.
|
||||
* ADDED: Mpad now support's Stop Sign, Yield, Speed Bump, Sharp Curve. (For best experience map you area. https://www.openstreetmap.org/)
|
||||
* ADDED: Chevron can display either distance or speed.
|
||||
* ADDED: Toggles to force enabling torque control / torque tune for some vehicles
|
||||
* Improvement: Dynamic Follow, Toyota Longitudinal and Decel tune.
|
||||
* bug fix and improvement
|
||||
|
||||
dragonpilot [2022.09.27]
|
||||
=======================
|
||||
* Synced with openpilot master 2022.09.27 commits.
|
||||
* ADDED: Always On Lateral toggle under dp-controls!
|
||||
* ADDED: Live torque fix pr#25868
|
||||
* ADDED: RAV4 and HIGHLANDER with sdsu can use follow distance button on the wheel.
|
||||
* bug fix and improvement
|
||||
|
||||
dragonpilot [2022.09.19]
|
||||
========================
|
||||
* Synced with openpilot master 2022.09.19 commits.
|
||||
* READD: refactored dyanmaic follow. support all car with op long.
|
||||
* ADDED: PRIUS_TSS2 (2020-2022) now uses torque as default and auto learns.
|
||||
* ADDED: Added a TSS2 RAV4 Special PID Tune toggle.
|
||||
* ADDED: Added a PRIUS 2017 Special Torque Tune toggle.
|
||||
* ADDED: Toggle to turn on and off Torque controller.
|
||||
* ADDED: Toggle to turn on and off auto tune torque controller.
|
||||
* ADDED: Vision Turn Controller.
|
||||
* bug fix and improvement
|
||||
|
||||
dragonpilot [2022.09.09]
|
||||
========================
|
||||
* Synced with openpilot master 2022.09.09 commits.
|
||||
* ADDED: us-west coast can now use mapd without data. See toggle description for more detail.
|
||||
* READD: Temp check toggl e, max speed toggle and couple other UI toggles.
|
||||
* bug fix and improvement
|
||||
|
||||
dragonpilot [2022.09.04]
|
||||
========================
|
||||
* Synced with openpilot master 2022.09.01 commits.
|
||||
* Refactor: Dynamic Follow has been removerd temporary. Needs a refactor. (wip)
|
||||
* ADDED: Auto Toyota door lock/unlock **only works on some car**
|
||||
* READDED: Camera offset toggle.
|
||||
* Improvement: gpxd now uses liveLocationKalman better performance.
|
||||
* bug fix and improvement.
|
||||
|
||||
dragonpilot [2022.08.07]
|
||||
========================
|
||||
Synced to openpilot master 2022.08.07 commits.
|
||||
NEW: Added back auto shutdown toggle.
|
||||
NEW: Added back LQR tune toggle.
|
||||
NEW: MAZDA - Ability to enable/disable below steer speed alert. (Thanks to @TheCrowd)
|
||||
TWEAKED: Panda Recovery should kill boardd process first.
|
||||
FIXED: Fixed stop working issue when mapd crashed.
|
||||
|
||||
dragonpilot 2022.07.27
|
||||
========================
|
||||
NEW: Synced to openpilot 2022.07.27 commits.
|
||||
NEW: Included Mazda vehicles.
|
||||
TWEAK: Only show road name bar when it's not empty.
|
||||
TWEAK: Enlarged lead car distance text.
|
||||
TWEAK: TOYOTA - Updated lowest speed override feature.
|
||||
FIXED: Fixed Panda Flash/Recovery buttons.
|
||||
FIXED: Included dp_patcher.py execution.
|
||||
|
||||
dragonpilot [2022.08.07]
|
||||
========================
|
||||
* Synced to openpilot master 2022.08.07 commits.
|
||||
* NEW: Added back auto shutdown toggle.
|
||||
* NEW: Added back LQR tune toggle.
|
||||
* NEW: MAZDA - Ability to enable/disable below steer speed alert. (Thanks to @TheCrowd)
|
||||
* TWEAKED: Panda Recovery should kill boardd process first.
|
||||
* FIXED: Fixed stop working issue when mapd crashed.
|
||||
|
||||
dragonpilot 2022.07.27
|
||||
========================
|
||||
* NEW: Synced to openpilot 2022.07.27 commits.
|
||||
* NEW: Included Mazda vehicles.
|
||||
@@ -8,34 +189,6 @@ dragonpilot 2022.07.29 - EON/C2 Release
|
||||
* FIXED: Fixed Panda Flash/Recovery buttons.
|
||||
* FIXED: Included dp_patcher.py execution.
|
||||
|
||||
dragonpilot 2022.07.20 - EON/C2 Release
|
||||
========================
|
||||
* FIXED: Included correct camera/path offset values for EON/C2.
|
||||
* FIXED: Param bug in HKG. (Thanks to @sunnyhaibin).
|
||||
* FIXED: Included fan controller for UNO (C2).
|
||||
* TWEAK: Auto set a decent date/time to prevent onroad incorrect date/time detection.
|
||||
* TWEAK: Removed sounds unavailable warning.
|
||||
* TWEAK: Removed unused loggers.
|
||||
* TWEAK: Disabled IR controls completely.
|
||||
|
||||
dragonpilot 2022.07.14 - EON/C2 Release
|
||||
========================
|
||||
* FIXED: DM bug.
|
||||
* FIXED: white / grey panda support.
|
||||
* FIXED: Removed No GPS signal warning.
|
||||
|
||||
dragonpilot 2022.07.12 - EON/C2 Release
|
||||
========================
|
||||
* Synced up with dragonpilot 2022.06.25 C3 release
|
||||
* Running on latest AI model.
|
||||
* Steering monitor only.
|
||||
* Works on EON/C2 + white/grey/black panda (tested only on Toyotas).
|
||||
* Buggy!
|
||||
|
||||
dragonpilot 2022.06.25
|
||||
========================
|
||||
* Synced with openpilot master 2022.07.26 commits.
|
||||
|
||||
dragonpilot 2022.07.01
|
||||
========================
|
||||
* Synced with openpilot master 2022.06.29 commits.
|
||||
|
||||
@@ -0,0 +1,976 @@
|
||||
dragonpilot [Latest] - EON/C2 Release
|
||||
========================
|
||||
* Synced with openpilot master 2023.03.26 commits.
|
||||
* DP Highlight
|
||||
* NEW: Manual Lane Change.
|
||||
* NEW: Road Edge detection when Lane Change.
|
||||
* NEW: Rainbow mode. (fancy lol)
|
||||
* NEW: Local Trip counter.
|
||||
* NEW: Alternative Lateral Controller
|
||||
* Ability to switch to another lateral controller when SET speed is higher than configure speed.
|
||||
* E.g. Use Torque + Laneless when belows 80kph and use PID + Laneline when above.
|
||||
* TWEAK: **10s Lat MPC is removed due to poor performance on EON/C2**
|
||||
* TWEAK: Refactored cameraview widget.
|
||||
* TWEAK: Different color when Always On Lateral is enabled.
|
||||
* TWEAK: Better TSS2 Long and DF tune. @cgw1968-5779
|
||||
* TWEAK: e2e Lateral will display lanelines in white.
|
||||
* TWEAK: Updated VisionIPC to match current version.
|
||||
* TWEAK: DM reverted to 0.8.13 model and algorithm.
|
||||
* TWEAK: E2E Initial speed matches ACC initial speed. (105 -> 40)
|
||||
* FIXED: Fixed Reverse message not showing issue.
|
||||
* FIXED: Honda - ALKA not working. @loveloveses
|
||||
* FIXED: Display Mode.
|
||||
* FIXED: Toyota - Speed Override.
|
||||
* FIXED: Re-include CJK system font for EON/C2.
|
||||
|
||||
dragonpilot 2023.02.08 - EON/C2 Release
|
||||
========================
|
||||
* Synced with openpilot master 2022.12.14 commits.
|
||||
* TWEAK: Ability to disable build-in NAV completely. (reduced CPU/memory load)
|
||||
* NEW: Lateral Controller Selector
|
||||
* Ability to select between DEFAULT / PID / LQR / Torque Controller.
|
||||
* NEW: Redesigned UI to match Comma's new UI/UX style.
|
||||
* NEW: Dynamic End-to-End can be turned on when lead car is going below x km/h. (Useful for stop and go traffic.)
|
||||
* NEW: Toggle to adapt Dynamic End-to-End to Following Dist. Mode.
|
||||
* NEW: Toggle to adapt Dynamic End-to-End to Accel Mode.
|
||||
* NEW: Always On Lateral v2 (For Toyota/VAG/HKG/Honda).
|
||||
* NEW: VAG - vw-spam-resume (Thanks to @jyoung8607)
|
||||
* FIXED: Bugs in updated.
|
||||
* FIXED: Issue in C2 fan control.
|
||||
* TWEAK: Bug fixes and improvement.
|
||||
|
||||
dragonpilot 2022.11.09 - EON/C2 Release
|
||||
========================
|
||||
* Synced with openpilot master 2022.10.26 commits.
|
||||
* COMMA: Torque controller used on all Toyota, Lexus, Hyundai, Kia, and Genesis models.
|
||||
* NEW: Mapd Database selector menu to use mapd offline located in software. When installing Database it will take some time. It is not stuck just be patience run `tmux a` for more info. DO NOT RESTART When database is being installed.
|
||||
* Ability to use MapD without internet connection.
|
||||
* NEW: TOYOTA - Better TSS2 Long and DF tune. @cgw1968-5779
|
||||
* NEW: MAZDA - Toggle to bypass dashcam mode.
|
||||
* NEW: Added lanelines mode.
|
||||
* Ability to adjust camera/path offset.
|
||||
* NEW: Lateral Planner option.
|
||||
* Ability to select 0.8.13, 0.8.16 and the latest/current planner.
|
||||
* NEW: Offline OSM map database.
|
||||
* NEW: Turn and BSM indicator. (turn = blink green, turn + bsm = blink yellow, bsm = solid yellow)
|
||||
* TWEAK: Better Optimization for Vision Turn Controller with laneline mode.
|
||||
* FIXED: When going offroad, the screen does not turn off. (w/ CP or w/ Battery)
|
||||
* bug fix and improvement.
|
||||
|
||||
|
||||
dragonpilot 2022.10.17 - EON/C2 Release
|
||||
========================
|
||||
* Synced with openpilot master 2022.09.22 commits.
|
||||
* Live Torque Tune (Only available to certain vehicle models with op long.)
|
||||
* NEW: TOYOTA - Added a TSS2 RAV4 Special PID Tune toggle.
|
||||
* NEW: TOYOTA - Added a PRIUS 2017 Special Torque Tune toggle.
|
||||
* NEW: TOYOTA - PRIUS_TSS2 (2020-2022) now uses torque as default and auto learns.
|
||||
* NEW: Added a toggle to force enable torque controller. (may not work on some vehicles)
|
||||
* NEW: Added a toggle to force enable live torque tune. (may not work on some vehicles)
|
||||
* NEW: VAG - Added auto resume fix toggle.
|
||||
* NEW: refactored dynamic follow. support all car with op long.
|
||||
* NEW: New blinker and BSM indicators.
|
||||
* NEW: Lead Info is now displaying both speed and distance.
|
||||
* FIXED: Minor bug fixes and improvement.
|
||||
|
||||
dragonpilot 2022.09.22 - EON/C2 Release
|
||||
========================
|
||||
* Synced with openpilot master 2022.09.17 commits.
|
||||
* e2e longitudinal toggle. (Extremely alpha feature)
|
||||
* Deprecated SNPE lib and switched to tinygrad.
|
||||
* NEW: Added back nav support on EON/C2.
|
||||
* WARNING: DUE TO THE INTRODUCTION OF END TO END LONGITUDINAL FEATURE, FOLLOWING FEATURES HAS BEEN CHANGED:
|
||||
* WIP: Dynamic Follow has been temporary removed for refactoring.
|
||||
* WIP: Vision Turn Control has been temporary removed for refactoring.
|
||||
* REMOVED: Camera offset has been removed permanently due to new e2e implementation.
|
||||
* EON/C2 WILL NO LONGER RECEIVE ANY DRIVING/DRIVER MONITORING MODEL UPDATES.
|
||||
|
||||
dragonpilot 2022.08.29 - EON/C2 Release
|
||||
========================
|
||||
* NEW: Synced to openpilot master 2022.08.23 commits.
|
||||
* New driving model.
|
||||
* NEW: Added back honda eps mod toggle.
|
||||
* NEW: Added back camera offset toggle.
|
||||
* TWEAK: Resume logic to adapt ATL mode.
|
||||
|
||||
dragonpilot 2022.08.17 - EON/C2 Release
|
||||
========================
|
||||
* NEW: Synced to openpilot master 2022.08.07 commits.
|
||||
* NEW: Added back auto shutdown toggle.
|
||||
* NEW: Added back On-Road Dashcam toggle. (You should not replace this with your dashcam!!!)
|
||||
* NEW: Added back LQR tune toggle.
|
||||
* NEW: MAZDA - Ability to enable/disable below steer speed alert. (Thanks to @TheCrowd)
|
||||
* NEW: Included all vehicles.
|
||||
* TWEAK: Panda Recovery should kill boardd process first.
|
||||
* FIXED: Fixed stop working issue when mapd crashed.
|
||||
|
||||
dragonpilot 2022.07.29 - EON/C2 Release
|
||||
========================
|
||||
* NEW: Synced to openpilot 2022.07.27 commits.
|
||||
* NEW: Included Mazda vehicles.
|
||||
* TWEAK: Only show road name bar when it's not empty.
|
||||
* TWEAK: Enlarged lead car distance text.
|
||||
* TWEAK: TOYOTA - Updated lowest speed override feature.
|
||||
* FIXED: Fixed Panda Flash/Recovery buttons.
|
||||
* FIXED: Included dp_patcher.py execution.
|
||||
|
||||
dragonpilot 2022.07.20 - EON/C2 Release
|
||||
========================
|
||||
* FIXED: Included correct camera/path offset values for EON/C2.
|
||||
* FIXED: Param bug in HKG. (Thanks to @sunnyhaibin).
|
||||
* FIXED: Included fan controller for UNO (C2).
|
||||
* TWEAK: Auto set a decent date/time to prevent onroad incorrect date/time detection.
|
||||
* TWEAK: Removed sounds unavailable warning.
|
||||
* TWEAK: Removed unused loggers.
|
||||
* TWEAK: Disabled IR controls completely.
|
||||
|
||||
dragonpilot 2022.07.14 - EON/C2 Release
|
||||
========================
|
||||
* FIXED: DM bug.
|
||||
* FIXED: white / grey panda support.
|
||||
* FIXED: Removed No GPS signal warning.
|
||||
|
||||
dragonpilot 2022.07.12 - EON/C2 Release
|
||||
========================
|
||||
* Synced up with dragonpilot 2022.06.25 C3 release
|
||||
* Running on latest AI model.
|
||||
* Steering monitor only.
|
||||
* Works on EON/C2 + white/grey/black panda (tested only on Toyotas).
|
||||
* Buggy!
|
||||
|
||||
dragonpilot 2022.07.01
|
||||
========================
|
||||
* Synced with openpilot master 2022.06.29 commits.
|
||||
* ADDED: MapD based off @move-fast. Thanks to @sunnyhaibin for mapbox as datapoint and ui refactor. (setting destination will use mapxbox speedlimit data which is more accurate. MapD priority: Mapbox(if nav active), OSM, RSA )
|
||||
|
||||
dragonpilot 2022.06.25
|
||||
========================
|
||||
* Synced with openpilot master 2022.06.25 commits.
|
||||
* Updated zh-TW translation.
|
||||
* ADDED: Dynamid follow @krkeegan version. (press the distance button)
|
||||
* ADDED: dp ui vol.
|
||||
* ADDED: dp ui brightness.
|
||||
* ADDED: dp ui top/side bar.
|
||||
* ADDED: dp display mode (0=off/normal, 1=turn off the screen when onroad).
|
||||
|
||||
dragonpilot 2022.06.16
|
||||
========================
|
||||
* Synced with openpilot master 2022.06.16 commits.
|
||||
* ADDED: Toyota SnG hack.
|
||||
* ADDED: Accel Profile.
|
||||
* FIXED: Car Selection.
|
||||
* FLXED: ALCA Delay Setting UI.
|
||||
* FIXED: Lane lines mode (w/ DLP built-in).
|
||||
|
||||
dragonpilot 2022.06.11
|
||||
========================
|
||||
* Synced with openpilot master 2022.06.07 commits
|
||||
* Migrating more features soon, stay tuned!
|
||||
|
||||
dragonpilot 0.8.13-1
|
||||
========================
|
||||
* Based on openpilot 0.8.13 devel.
|
||||
* ADDED: Support for SDSU. Can now control distance with the button on the steering wheel. (Thanks to @CT9212)
|
||||
* FIXED: DLP fix. (Thank to @Hikari1023)
|
||||
* Bug fixes.
|
||||
|
||||
dragonpilot 0.8.12-3
|
||||
========================
|
||||
* Bug fixes.
|
||||
* ADDED: Car Selector for C3.
|
||||
* ADDED: ColorBlind mode eon only. (thanks to @ihsakashi)
|
||||
* TUNNING: Toyota long improvement.
|
||||
* Reimplement: Following Distance and added @krkeegan implementation (toyota only with sdsu/tss2).
|
||||
|
||||
dragonpilot 0.8.12-2
|
||||
========================
|
||||
* Bug fixes.
|
||||
* ADDED: FTP to easily manage storage.
|
||||
* Readded: camera offset, path offset and autoshutdown.
|
||||
|
||||
dragonpilot 0.8.12-1
|
||||
========================
|
||||
* Based on openpilot 0.8.12 devel.
|
||||
* ADDED: Support for no gps (mr.one panda).
|
||||
* Reimplement: camera offset, path offset, nav for c2 and autoshutdown.
|
||||
|
||||
dragonpilot 0.8.10-4
|
||||
========================
|
||||
* FIXED: Allow gas press. (Thanks to @loveloveses)
|
||||
* FIXED: Honda SnG. (Thanks to @loveloveses
|
||||
* ADDED: Toyota: Display Blue Barriers When Engaged. (Thanks to @krkeegan)
|
||||
|
||||
dragonpilot 0.8.10-3
|
||||
========================
|
||||
* NAV: Gaode/amap to use new key combination. (Thanks to @loveloveses)
|
||||
|
||||
dragonpilot 0.8.10
|
||||
========================
|
||||
* Based on openpilot 0.8.10 devel.
|
||||
* Reimplement: Following Distance.
|
||||
* Better Subaru support. (Thanks to @martinl https://github.com/martinl/openpilot)
|
||||
* NAV: Added use of Navigation tab to access home/work/recent dest.
|
||||
* NAV: Added auto Day/Night Mode.
|
||||
* NAV: Added customizable style.
|
||||
* NAV: Added Gaode/amap Search. (Thanks to @loveloveses)
|
||||
* FIXED: Device w/ battery no longer need to set auto shutdown to 1 min.
|
||||
* FIXED: Auto shutdown while on bench (Thanks to @sunnyhaibin)
|
||||
* REMOVED: Timebomb feature for VW.
|
||||
* REMOVED: Support of running Android apps.
|
||||
|
||||
dragonpilot 0.8.9-3
|
||||
========================
|
||||
* Bug fixes.
|
||||
* Fixed up auto updater.
|
||||
* Fixed Honda Jade dbc. (Thanks to @lijunhao731)
|
||||
* ADDED: 0.8.10 model.
|
||||
* ADDED: Nav for all device.
|
||||
* ADDED: Support for Nvidia Xavier.
|
||||
|
||||
dragonpilot 0.8.9-2
|
||||
========================
|
||||
* Bug fixes.
|
||||
* Refactor UI related changes.
|
||||
* Updated Simplified Chinese translation. (Thanks to @CCZ)
|
||||
* WARNING: Due to recent OP change, Device w/ battery recommended setting autoshutdown to 1 min to prevent libusb error.
|
||||
* Re-tuned acceleraton profile. (Thank to @wer5lcy)
|
||||
* ADDED: Car port for Toyota Prius Alpha. (Thanks to @CT921)
|
||||
|
||||
dragonpilot 0.8.9-1
|
||||
========================
|
||||
* Based on openpilot 0.8.8 devel.
|
||||
* Re-introduce Follow Distance 4th profile (2.2s / 1.8s / 1.5s / 1.2s).
|
||||
* ADDED: New softer sound for c3.
|
||||
* ADDED: Dynamic Lane Profile. (Thanks to @sunnyhaibin)
|
||||
* Bug Fixes.
|
||||
|
||||
dragonpilot 0.8.8-2
|
||||
========================
|
||||
* ADDED: newer faster and modularized mapd and slow down for curve. (Thanks to @move-fast)
|
||||
* ADDED: Street name on the bottom bar.
|
||||
* ADDED: Now supports 1+3t / C2 / C3 / Jetson Xavier NX.
|
||||
* ADDED: Smoother tune for PRIUS_TSS2.
|
||||
* Bug fixes.
|
||||
|
||||
dragonpilot 0.8.8-1
|
||||
========================
|
||||
** BETA TESTING ONLY **
|
||||
* Based on openpilot 0.8.8 devel.
|
||||
* FIXED: dashcam issue.
|
||||
* FIXED: some VW vehicles issue. (Thanks to @yayism)
|
||||
* FIXED: white panda + j533 acc issue. (Thanks to @lirudy)
|
||||
* ADDED: Auto fake black panda.
|
||||
* ADDED: 2018 chinese camry hybrid fingerprint (Thanks to @stingshen)
|
||||
* WIP: mapd.
|
||||
|
||||
dragonpilot 0.8.7-4
|
||||
========================
|
||||
* 2017 JADE w/ Added Comma Pedal Support. (Thanks to @lijunhao731)
|
||||
* Fixed toyota / honda brake light display. (Thanks to @loveloveses)
|
||||
* Fixed UI toggle. (Thanks to @鄧育林、@謝聖鴻)
|
||||
* Fixed VW resume/display issue. (Thanks to @SKY)
|
||||
* Fixed CJK font installation issue.
|
||||
|
||||
dragonpilot 0.8.7-3
|
||||
========================
|
||||
* Bug fixes.
|
||||
* Fixed gpxd.
|
||||
* Added some Chinese support.
|
||||
|
||||
dragonpilot 0.8.7-2
|
||||
========================
|
||||
* Fixed sound issue.
|
||||
* Changed gpx logs to OSM compatible format.
|
||||
* HONDA: Added BSM support for CRV-Hybrid.
|
||||
* HONDA: Added toggle to force displaying km/h in HUD.
|
||||
* TOYOTA: Add new Toggles under DP - Cars to enable/disable Following Modes / Accel Modes with physical button feature.
|
||||
|
||||
dragonpilot 0.8.7-1
|
||||
========================
|
||||
* Based on openpilot 0.8.7 devel.
|
||||
* Support 1+3t / C2 / Jetson Xavier NX.
|
||||
* Support White / Grey Panda.
|
||||
* TOYOTA: Can now change Following Modes with physical button from the steering wheel.
|
||||
* TOYOTA: Can now change Acceleration Modes with physical button if your car supports it.
|
||||
* TOYOTA: Added Low speed override toggles.
|
||||
* Dev UI now displays RPM reading.
|
||||
* Added Prebuilt toggle for faster boot.
|
||||
* Lexus RX high RPM fix. (Thanks to @crazysim).
|
||||
* Added toggle to launch Language settings.
|
||||
* Added toggle to launch Volume settings.
|
||||
* Added toggle to launch date/time settings.
|
||||
* Added toggle to flash panda.
|
||||
* Added toggle to recover panda firmware.
|
||||
* Added toggle to delete logging (/sdcard/realdata).
|
||||
* Added GPS Logger.
|
||||
|
||||
dragonpilot 0.8.6-1
|
||||
========================
|
||||
* Based on openpilot 0.8.6 devel.
|
||||
* Support 1+3t / C2 / Jetson Xavier NX.
|
||||
* Support White / Grey Panda.
|
||||
|
||||
dragonpilot 0.8.5-4
|
||||
========================
|
||||
* Added multiple toggles.
|
||||
* Code clean up.
|
||||
* Android app support. (see selfdrive/dragonpilot/HOWTO-APPD.md)
|
||||
* Better support for VW MPQ (Thanks to @Saber)
|
||||
|
||||
dragonpilot 0.8.5-3
|
||||
========================
|
||||
* Added Jetson support toggle.
|
||||
* Added Steering Ratio controller.
|
||||
* Reduce Following Profile to 3 modes only. (1.8s / 1.5s / 1.2s)
|
||||
* Bug fixes.
|
||||
|
||||
dragonpilot 0.8.5-2
|
||||
========================
|
||||
* Added black panda simulation toggle.
|
||||
* Added No GPS toggle.
|
||||
* Added No Battery Toggle.
|
||||
* Bug fixes.
|
||||
|
||||
dragonpilot 0.8.5-1
|
||||
========================
|
||||
* Based on openpilot 0.8.5 devel.
|
||||
* 基於 openpilot 0.8.5 devel.
|
||||
* Support 1+3t / C2 / Jetson Xavier NX.
|
||||
* 支持 1+3t / C2 / Jetson Xavier NX.
|
||||
* No White/Grey Panda Support.
|
||||
* 不支持白灰熊.
|
||||
|
||||
dragonpilot 0.8.4-3
|
||||
========================
|
||||
* 簡化 1+3t 安裝方法. (請查閱 HOWTO-ONEPLUS.md)
|
||||
* Simplied 1+3t installation. (See HOWTO-ONEPLUS.md)
|
||||
* 加回舊 ssh 登錄.
|
||||
* Good old ssh key.
|
||||
* 修復本田錯誤. (感謝 @loveloveses)
|
||||
* Fixed Honda bug. (Thanks to @loveloveses)
|
||||
|
||||
dragonpilot 0.8.4-2
|
||||
========================
|
||||
* 加回可調整加速/跟車設定.
|
||||
* Added back Accel/Following Profile.
|
||||
* 支持 Headless Jetson Xavier NX (https://github.com/efinilan/xnxpilot.git)
|
||||
* Support Headless Jetson Xavier NX (https://github.com/efinilan/xnxpilot.git)
|
||||
* 支持 1+3t (需額外安裝手續)
|
||||
* Support 1+3t (Require additional install procedure)
|
||||
* 支持白/灰熊
|
||||
* Support White/Grey Panda.
|
||||
|
||||
dragonpilot 0.8.4-1
|
||||
========================
|
||||
* 基於 openpilot 0.8.4 devel.
|
||||
* Based on openpilot 0.8.4 devel.
|
||||
|
||||
dragonpilot 0.8.1
|
||||
========================
|
||||
* 基於最新 openpilot 0.8.1 devel.
|
||||
* Based on latest openpilot 0.8.1 devel.
|
||||
* 加入行車記錄按鈕。(感謝 @toyboxZ 提供)
|
||||
* Added REC screen button. (Thanks to @toyboxZ)
|
||||
|
||||
dragonpilot 0.8.0
|
||||
========================
|
||||
* 基於最新 openpilot 0.8.0 devel.
|
||||
* Based on latest openpilot 0.8.0 devel.
|
||||
* 加入 git 錯誤修正。(感謝 @toyboxZ 提供)
|
||||
* Added git error fix. (Thanks to @toyboxZ)
|
||||
|
||||
dragonpilot 0.7.10.1
|
||||
========================
|
||||
* HYUNDAI_GENESIS 使用 INDI 控制器。(感謝 @donfyffe 提供)
|
||||
* HYUNDAI_GENESIS uses INDI controller. (Thanks to @donfyffe)
|
||||
* HYUNDAI_GENESIS 加入 Cruise 按紐 和 lkMode 支援。(感謝 @donfyffe 建議)
|
||||
* HYUNDAI_GENESIS added Cruise button event and lkMode feature. (Thanks to @donfyffe)
|
||||
* 支援台灣版 2018 Huyndai IONIQ + smart MDPS (dp_hkg_smart_mdps) (感謝 @andy741217 提供)
|
||||
* Support 2018 Taiwan Hyundai IONIQ + smart MDPS (dp_hkg_smart_mdps) (Thanks to @andy741217)
|
||||
* 使用 openpilot v0.8 的模型。(感謝 @eisenheim)
|
||||
* Use openpilot v0.8 model. (Thanks to @eisenheim)
|
||||
* 加入 0.8 測試版的部分優化。
|
||||
* Added optimizations from pre-0.8.
|
||||
* 加入 dp_honda_eps_mod 設定來使用更高的扭力 (需 eps mod)。(感謝 @Wuxl_369 提供)
|
||||
* Added dp_honda_eps_mod setting to enable higher torque (eps mod required). (Thanks to @Wuxl_369)
|
||||
* 修正 VW 對白/灰熊的支援 (感謝 @lirudy 提供)
|
||||
* Fixed issue with white/grey panda support for VW (Thanks to @lirudy)
|
||||
* GENESIS_G70 優化 (感謝 @sebastian4k 提供)
|
||||
* GENESIS_G70 Optimisation (Thanks to @sebastian4k)
|
||||
* HYUNDAI_GENESIS 優化 (感謝 @donfyffe 提供)
|
||||
* HYUNDAI_GENESIS Optimisation (Thanks to @donfyffe)
|
||||
* 加入 Dynamic gas Lite。(感謝 @toyboxZ 提供)
|
||||
* Added Dynamic Gas Lite. (Thanks to @toyboxZ)
|
||||
* 加入來自 afa 的 Honda inspire, accord, crv SnG 優化。(感謝 @menwenliang 提供)
|
||||
* Added Honda inspire, accord, crv SnG optimisation from afa fork. (Thanks to @menwenliang)
|
||||
* 加入 dp_toyota_lowest_cruise_override_vego。(感謝 @toyboxZ 提供)
|
||||
* Added dp_toyota_lowest_cruise_override_vego. (Thanks to @toyboxZ)
|
||||
|
||||
dragonpilot 0.7.10.0
|
||||
========================
|
||||
* 基於最新 openpilot 0.7.10 devel.
|
||||
* Based on latest openpilot 0.7.10 devel.
|
||||
* 修正 Prius 特定情況下無法操控方向盤的問題。
|
||||
* Fixed unable to regain Prius steering control under certain condition.
|
||||
* 更新 VW MQB 的支援。(需執行 scripts/vw.sh 腳本)
|
||||
* Updated support of VW MQB. (scripts/vw.sh script required)
|
||||
* 新增 2018 China Toyota CHR 指紋v2。(感謝 @xiaohongcheung 提供)
|
||||
* Added 2018 China Toyota CHR FPv2. (Thanks to @xiaohongcheung)
|
||||
* 加入 Headunit Reloaded Android Auto App 支援。(感謝 @Ninjaa 提供)
|
||||
* Added Headunit Reloaded Android Auto App Support. (Thanks to @Ninjaa)
|
||||
* 優化 nanovg。(感謝 @piggy 提供)
|
||||
* Optomized nanovg. (Thanks to @piggy)
|
||||
* 加入 complete_setup.sh (感謝 @深鲸希西 提供)
|
||||
* Added complete_setup.sh (Thanks to @深鲸希西)
|
||||
* Based on latest openpilot 0.7.10 devel.
|
||||
* 修正 EON 接 PC/USB 充電器時仍會自動關機的錯誤。(感謝 @小愛 回報)
|
||||
* Fixed auto shutdown issue when EON connect to PC/USB Charger. (Thanks to @LOVEChen)
|
||||
* HYUNDAI_GENESIS 使用 INDI 控制器。(感謝 @donfyffe 提供)
|
||||
* HYUNDAI_GENESIS uses INDI controller. (Thanks to @donfyffe)
|
||||
|
||||
dragonpilot 0.7.8.3
|
||||
========================
|
||||
* VW 加入 6 分鐘時間方向盤控制限制輔助方案。(特別感謝 @actuallylemoncurd 提供代碼)
|
||||
* VW added 6 minutes timebomb assist. (dp_timebomb_assist, special thanks to @actuallylemoncurd)
|
||||
|
||||
dragonpilot 0.7.8.2
|
||||
========================
|
||||
* 修正在沒網路的情況下,開機超過五分鐘的問題。
|
||||
* Fixed 5+ minutes boot time issue when there is no internet connection.
|
||||
* 錯誤回傳改使用 dp 的主機。
|
||||
* Used dp server for error reporting.
|
||||
* 更新服務改使用 gitee 的 IP 檢查連線狀態。
|
||||
* updated service uses gitee IP address instead.
|
||||
|
||||
dragonpilot 0.7.8.1
|
||||
========================
|
||||
* 加入 ko-KR 翻譯。
|
||||
* Added ko-KR translation.
|
||||
* 加入 Honda Jade 支援。(感謝 @李俊灝)
|
||||
* Added Honda Jade support. (Thanks to @lijunhao731)
|
||||
* 修正 ui.cc 內存越界的問題。(感謝 @piggy 提供)
|
||||
* Fixed ui.cc memory out of bound issue. (Thanks to @piggy)
|
||||
* gpxd 記錄改自動存成 zip 格式。
|
||||
* gpxd now store in zip format.
|
||||
* 強制關閉 panda 檢查 DOS 硬體。
|
||||
* Force disabled DOS hardware check in panda.
|
||||
|
||||
dragonpilot 0.7.8.0
|
||||
========================
|
||||
* 基於最新 openpilot 0.7.8 devel.
|
||||
* Based on latest openpilot 0.7.8 devel.
|
||||
* 加入重置 DP 設定按鈕。(感謝 @LOVEChen 建議)
|
||||
* Added "Reset DP Settings" button. (Thanks to @LOVEChen)
|
||||
* 將警示訊息更改為類似於概念 UI 的設計。
|
||||
* Alert messages changed to concept UI alike design.
|
||||
* 當 manager 出現錯誤後,按 Exit 按鈕會執行 reset_update 腳本。
|
||||
* Added ability to execute reset_update.sh when press "Exit" button once manager returned errors.
|
||||
|
||||
dragonpilot 0.7.7.3
|
||||
========================
|
||||
* 修正方向盤監控。
|
||||
* Fixed steering monitor timer param.
|
||||
* 修正行駛時關閉畫面導致當機的錯誤。(感謝 @salmankhan, @stevej99, @bobbydough 回報)
|
||||
* Fixed screen frozen issue when "screen off while driving" toggle is enabled. (Thanks to @salmankhan, @stevej99, @bobbydough)
|
||||
* 加回 Dev Mini UI 開關。(感謝 @Ninjaa 建議)
|
||||
* Re-added Dev Mini UI. (Thanks to @Ninjaa)
|
||||
* 新增 (dp_reset_live_parameters_on_start) 每次發車重設 LiveParameters 值。(感謝 @eisenheim)
|
||||
* Added ability (dp_reset_live_param_on_start) to reset LiveParameters on each start. (Thanks @eisenheim)
|
||||
* 修正同時開啟 dp_toyota_zss 和 dp_lqr 產生的錯誤。(感謝 @bobbydough)
|
||||
* Fixed error cuased by enabling both dp_toyota_zss and dp_lqr at the same time. (Thanks to @bobbydough)
|
||||
* 新增 (dp_gpxd) 將 GPS 軌跡導出至 GPX 格式 (/sdcard/gpx_logs/)的功能。 (感謝 @mageymoo1)
|
||||
* Added ability (dp_gpxd) to export GPS track into GPX files (/sdcard/gpx_logs/). (Thanks to @mageymoo1)
|
||||
* 使用德國的車道寬度估算值。 (感謝 @arne182)
|
||||
* Used lane width estimate value from Germany. (Thanks to @arne182)
|
||||
|
||||
dragonpilot 0.7.7.2
|
||||
========================
|
||||
* 加入 d_poly offset。 (感謝 @ShaneSmiskol)
|
||||
* Added d_poly offset. (Thanks to @ShaneSmiskol)
|
||||
* 加入 ZSS 支援。(感謝 @bobbydough, @WilliamPrius 建議, @bobbydough 測試)
|
||||
* Added ZSS support. (Thanks to @bobbydough, @WilliamPrius for recommendation, @bobbydough for testing)
|
||||
* 加入錯誤記錄至 /sdcard/crash_logs/ (感謝 @ShaneSmiskol 提供代碼)
|
||||
* Added error logs to /sdcard/crash_logs/ (Special Thanks to @ShaneSmiskol)
|
||||
* 加入 LQR 控制器開關進設定畫面。
|
||||
* Added LQR Controller toggle to settings.
|
||||
|
||||
dragonpilot 0.7.7.1
|
||||
========================
|
||||
* 加入 C2 風扇靜音模式。(感謝 @dingliangxue)
|
||||
* Added C2 quiet fan mode. (Thanks to @dingliangxue)
|
||||
* 加入「輔助換道最低啟動速度」、「自動換道最低啟動速度」設定。
|
||||
* Added "Assisted Lane Change Min Engage Speed" and "Auto Lane Change Min Engage Speed" settings.
|
||||
* 加入回調校介面。(感謝 @Kent)
|
||||
* Re-added Dev UI. (Thanks to @Kent)
|
||||
* 加入 "dp_lqr" 設定來強制使用 RAV4 的 lqr 調校。(感謝 @eisenheim)
|
||||
* Added "dp_lqr" setting to force enable lqr tuning from RAV4. (Thanks to eisenheim)
|
||||
|
||||
dragonpilot 0.7.7.0
|
||||
========================
|
||||
* 基於最新 openpilot 0.7.7 devel.
|
||||
* Based on latest openpilot 0.7.7 devel.
|
||||
* 當 Manager 出現錯誤時,顯示 IP 位置。(感謝 @dingliangxue)
|
||||
* When Manager failed, display IP address. (Thanks to @dingliangxue)
|
||||
* 加回 sr learner 開關。
|
||||
* Re-added sr learner toggle.
|
||||
* 加回 加速模式 開關。
|
||||
* Re-added Accel Profile toggle.
|
||||
* Toyota 加入改寫最低巡航速度功能。(感謝 @Mojo)
|
||||
* Added Toyota to override lowerest cruise speed. (Thanks to @Mojo)
|
||||
* 介面加入盲點偵測顯示。(感謝 @wabes)
|
||||
* Added BSM indicator to UI. (Thanks to @wabes)
|
||||
* 加回彎道減速功能。(感謝 @Mojo)
|
||||
* re-added Slow On Curve functionality. (Thanks to @Mojo)
|
||||
|
||||
dragonpilot 0.7.6.2
|
||||
========================
|
||||
* 修正無法正確關閉駕駛監控的問題。
|
||||
* Fixed unable to properly turn off driver monitor issue.
|
||||
|
||||
dragonpilot 0.7.6.1
|
||||
========================
|
||||
* 基於最新 openpilot 0.7.6.1 devel.
|
||||
* Based on latest openpilot 0.7.6.1 devel.
|
||||
* 優化並整合 dp 服務。 (所有的設定檔已改名,請重新設定所有的功能)
|
||||
* Optimized and integrated several dp services. (Settings have been renamed, please re-config all settings)
|
||||
* 完全關閉 steer ratio learner。
|
||||
* Completely disabled steer ratio learner.
|
||||
* 移除「加速模式」。
|
||||
* Removed Accel Profile.
|
||||
* 加入本田皓影混電版指紋v1。(感謝 @劉駿)
|
||||
* Added Honda Breeze Hybrid FPv1. (Thanks to @劉駿)
|
||||
* 加入台灣版 Toyota Prius 4.5 指紋v1。(感謝 @jeekid)
|
||||
* Added Taiwan Toyota Prius 4.5 FPv1. (Thanks to @jeekid)
|
||||
|
||||
dragonpilot 0.7.5.4
|
||||
========================
|
||||
* Dynamic Follow 更新模型。(感謝 @ShaneSmiskol 提供代碼、 @cgw1968 測試)
|
||||
* Updated Dynamic Follow model. (Special Thanks to @ShaneSmiskol for the feature and @cgw1968 for testing)
|
||||
|
||||
dragonpilot 0.7.5.3
|
||||
========================
|
||||
* Dynamic Follow 更新至 ShaneSmiskol:stock_additions 0.7.5 版。(感謝 @ShaneSmiskol 提供代碼、 @Wei 測試)
|
||||
* Updated Dynamic Follow to ShaneSmiskol:stock_additions 0.7.5. (Special Thanks to @ShaneSmiskol for the feature and @Wei for testing)
|
||||
* 優化 Lexus GSH 轉向。(感謝 @簡銘佑 測試)
|
||||
* Optimize Lexus GSH steering. (Thanks to @簡銘佑)
|
||||
* C2 支援自動關機「DragonAutoShutdownAt」參數。(感謝 @cgw1968 建議)
|
||||
* C2 to support auto shutdown "DragonAutoShutDownAt" param. (Thanks to @cgw1968)
|
||||
* 修正出現「pedalPressed」的錯誤。(感謝 @Wei 回報)
|
||||
* Fixed issue showing "pedalPressed" error. (Thanks to @Wei)
|
||||
* 將剎車狀熊顯示於 dp 資訊欄。
|
||||
* Added brake indicator to dp infobar.
|
||||
* 修正「溫度監控」燈示。
|
||||
* Fixed "Temp monitor" indicator.
|
||||
* 加入「方向燈取消控制」延遲控制設。(感謝 @wabes 建議)
|
||||
* Added delay config to "Disable Lat Control on Blinker". (Thanks to @wabes)
|
||||
* 加入巴西版 2020 Corolla Hybrid 指紋v2。(感謝 @berno22 提供)
|
||||
* Added Brazil 2020 Corolla Hybrid FPv2. (Thanks to @berno22)
|
||||
|
||||
dragonpilot 0.7.5.2
|
||||
========================
|
||||
* 加入對 VW MQB/PQ 的支援。(感謝 @dingliangxue 移植)
|
||||
* Added support to VW MQB/PQ platform. (Thanks to @dingliangxue)
|
||||
* 修改成 3 小時後停止供電。(感謝 @Wei 建議)
|
||||
* Updated to stop charging after 3 hrs. (Thanks to @Wei)
|
||||
* 移除行車記錄下的「碰撞偵測」功能。
|
||||
* Removed Impact Detection in Dashcam.
|
||||
* 修正開啟「Noctua 風扇」模式導致的錯誤。(感謝 @阿濤 回報)
|
||||
* Fixed a bug caused by enabling "Noctua Mod". (Thanks to @阿濤)
|
||||
* 修正「位智模式」無法顯示警示的問題。(感謝 @axandres 回報)
|
||||
* Fixed alert issue in waze mode. (Thanks to @axandres)
|
||||
* 修正無法顯示更新中圖示的問題。
|
||||
* Fixed unable to display "UPDATING" icon issue.
|
||||
* 加入「允許多次自動換道」功能。(感謝 @阿濤 建議)
|
||||
* Added "Allow Continuous Auto Lane Change" Toggle. (Thanks to @阿濤)
|
||||
* 修正開機後設定頁面有時會錯誤的問題。(感謝 @salmankhan、@Wei 回報)
|
||||
* Fixed setting page crash issue. (Thanks to @salmankhan, @Wei)
|
||||
* 修正熄火後一直出現更新訊息的錯誤。(感謝 @Sky Chang 回報)
|
||||
* Fixed issue that keep showing update prompt. (Thanks to @Sky Chang)
|
||||
|
||||
dragonpilot 0.7.5.1
|
||||
========================
|
||||
* 修正因同時使用「社群功能」和「自定車型」造成的加減速問題。(特別感謝 @Wei、@Sky Chang、@Han9365、@鄧育林 的測試以及回報。)
|
||||
* Fixed acceleration issue caused by used of both "Community Maintain Feature" and "Custom Car Model". (Special Thanks to @Wei, @Sky Chang, @Han9365, @鄧育林)
|
||||
* 新增 DragonMaxSpeedLimit 設定值 (mph),當如果車速高於此值 op 將會停止操控。(感謝 @Anthony 建議)
|
||||
* Added DragonMaxSpeedLimit parameter (mph), op will stop controlling when car speed is high than the value. (Thanks to @Anthony)
|
||||
* 更新 appd 使用 cnpmjs 來下載 APKs。
|
||||
* Updated appd to use cnpmjs to download APKs.
|
||||
* 修正更新服務。(感謝 @Wei)
|
||||
* Fixed Update Service. (Thanks to @Wei)
|
||||
* 新增加拿大版 2018 Toyota Sienna LTD 指紋(v2)。(感謝 明峰 提供)
|
||||
* Added Canada 2018 Toyota Sienna LTD fingerprint (v2). (Thanks to 明峰)
|
||||
* 新增「通過移動網路上傳」開關
|
||||
* Added Upload Over Mobile Network toggle.
|
||||
* 新增「通過熱點上傳」開關
|
||||
* Added Upload Over Hotspot toggle.
|
||||
* 新增加拿大版 2018 Toyota Sienna LTD 指紋(v1)。(感謝 明峰 提供)
|
||||
* Added Canada 2018 Toyota Sienna LTD fingerprint (v1). (Thanks to 明峰)
|
||||
* 新增大陸版 Volkswagen Golf GTI 指紋 (v1)。(感謝 easyeiji 提供)
|
||||
* Added China Volkswagen Golf GTI fingerprint (v1). (Thanks to easyeiji)
|
||||
|
||||
dragonpilot 0.7.5.0
|
||||
========================
|
||||
* 基於最新 openpilot 0.7.5 devel-staging.
|
||||
* Based on latest openpilot 0.7.5 devel-staging.
|
||||
* 更新 dp 圖示 (特別感謝 @wabes 的設計與提供)。
|
||||
* Updated dp logo, special thanks to @wabes for the design.
|
||||
* 簡/繁中文版和 i18n 整合成為單一版本。
|
||||
* Merged zhs/zht/i18n versions into one.
|
||||
* 新增大陸版 CAMRY HYBRID 指紋v2。(感謝 @杜子腾)
|
||||
* Added China Camery Hybrid FPv2. (Thanks to @杜子腾)
|
||||
* 新增台灣版 Altis HYBRID 指紋v1。(感謝 @Fish)
|
||||
* Added Taiwan Altis Hybrid FPv1. (Thanks to @Fish)
|
||||
* 新增行駛時關閉畫面功能。
|
||||
* Added Screen off while driving feature.
|
||||
* 新增倒車時關閉畫面功能。
|
||||
* Added Screen off while reversing feature.
|
||||
* 新增駕駛介面加入「加速模式」切換鈕。
|
||||
* Added acceleration profile toggle onto driving UI.
|
||||
* 新增自定車型功能,取代指紋暫存功能。
|
||||
* Replaced fingerprint cache with custom car model selector.
|
||||
* 新增可調亮度。
|
||||
* Added Brightness changer.
|
||||
* 新增部分德語支持。(特別感謝 @arne182 提供)
|
||||
* Added partial de_DE language support (Thanks to @arne182)
|
||||
* 新增停車碰撞偵測記錄功能。
|
||||
* Added off road impact detection to dashcam.
|
||||
|
||||
2020-05-06
|
||||
========================
|
||||
* 更新 dp 圖示 (特別感謝 @wabes 的設計與提供)。
|
||||
* 中文版整合進 i18n 版。
|
||||
* 刪除指紋暫存功能。
|
||||
* 新增 CAMERY HIBRID 指紋。(感謝 @杜子腾)
|
||||
* 新增行駛時關閉畫面功能。
|
||||
* 新增倒車時關閉畫面功能。
|
||||
* 新增駕駛介面加入「加速模式」切換鈕。
|
||||
* 新增自定義車型。
|
||||
|
||||
2020-04-16
|
||||
========================
|
||||
* [DEVEL] 加入台灣版 2016 Lexus IS200t 指紋。(感謝 Philip / Cody Dai)
|
||||
* [DEVEL] 加入台灣版 2016 Toyota Prius 4.5 代指紋。(感謝 Philip)
|
||||
* [DEVEL] 加入台灣版 201x Toyota RAV4 4WD 指紋。(感謝 Philip)
|
||||
* [DEVEL] 加入台灣版 2020 Toyota Auris w/ LTA 指紋。(感謝 Philip)
|
||||
* [DEVEL] 修正 commIssue 錯誤。(感謝 Kent 協助)
|
||||
|
||||
2020-04-13
|
||||
========================
|
||||
* [DEVEL] 加入可調整 Toyota Sng 起步反應值 (DragonToyotaSngResponse)。 (特別感謝 @Wei 提供 PR)
|
||||
* [DEVEL] 駕駛介面加入「動態調整車距」按鈕。(感謝 @cgw1968-5779 建議)
|
||||
* [DEVEL] 更新 update script。(感謝 深鯨希西 回報)
|
||||
|
||||
2020-04-10
|
||||
========================
|
||||
* [DEVEL] 更新 panda 至最新的 comma:master 分支。
|
||||
* [DEVEL] 移除所有的第三方應用改為自動下載。
|
||||
* [DEVEL] 移除「啟用原廠 DSU 模式」、「安全帶檢查」、「車門檢查」開關。
|
||||
|
||||
2020-03-31
|
||||
========================
|
||||
* [DEVEL] 更新至 2020-03-31 testing 分支。
|
||||
|
||||
2020-03-27
|
||||
========================
|
||||
* [DEVEL] 更新至最新的 testing 分支:
|
||||
* 加入波蘭版 2015 Lexus NX200T 支援。(感謝 wabes 提供)
|
||||
* 調整「啟用原廠 DSU 模式」為不再需要 AHB 。(Enable Stock DSU Mode no longer requires "AHB" toggle)
|
||||
* 加入「安全帶檢查」、「車門檢查」、「檔位檢查」、「溫度檢查」開關。
|
||||
* 加入曲率學習功能 - Curvature Learner 。(感謝 zorrobyte 提供)
|
||||
* 加入大陸版 2018 Toyota Highlander 支援。(感謝 toyboxZ 提供)
|
||||
* 加入大陸版 2018 Toyota Camry 2.0 支援。(感謝 Rming 提供)
|
||||
* 加入韓文支持。(感謝 crwusiz 提供)
|
||||
* 調整 OFFROAD 主頁翻譯將 "dragonpilot" 改回 "openpilot"。
|
||||
|
||||
2020-03-22
|
||||
========================
|
||||
* [DEVEL] 更新至最新的 testing 分支。
|
||||
|
||||
2020-03-17
|
||||
========================
|
||||
* [DEVEL] 更新至最新的 testing 分支 (commaai:devel-staging 0.7.4)。
|
||||
* [DEVEL] 加入動態調整車距功能。(特別感謝 @ShaneSmiskol 提供 PR)
|
||||
|
||||
2020-03-14
|
||||
========================
|
||||
* [DEVEL] 更新 pt-Br (葡萄牙語) 翻譯。(感謝 berno22 提供)
|
||||
* [DEVEL] 加入自動關機開關。(感謝 Rzxd 建議)
|
||||
* [DEVEL] 調高 Toyota 扭力容錯值。
|
||||
* [DEVEL] 優化讀取 dp 設定值。
|
||||
* [DEVEL] 加入 2019 手動 Civic 指紋。感謝 (AlexNoop 提供)
|
||||
* [DEVEL] dp 功能加入對 Subaru 車系的支援。
|
||||
|
||||
2020-03-06
|
||||
========================
|
||||
* [DEVEL] 加入葡萄牙語支持。(感謝 berno22 提供)
|
||||
* [DEVEL] 加入大陸 2018 Camry、2020 RAV4 指紋。(感謝 笨木匠 提供)
|
||||
* [DEVEL] 建立 devel-i18n 取代 devel-en。
|
||||
* [DEVEL] devel-en is deprecated, please switch to devel-i18n instead.
|
||||
|
||||
2020-03-04
|
||||
========================
|
||||
* [DEVEL] 加入顯示駕駛監控畫面。
|
||||
* [DEVEL] 加入加速模式選項。(特別感謝 @arne182, @cgw1968-5779 提供 PR)
|
||||
* [DEVEL] 修正 shutdownd 在 comma two 可能會不正常關機的錯誤。(感謝 @Wei, @Rzxd 回報)
|
||||
|
||||
2020-02-25
|
||||
========================
|
||||
* [DEVEL] 更新至最新的 commaai:devel (0.7.3)。
|
||||
|
||||
2020-02-21
|
||||
========================
|
||||
* [DEVEL] 更新至最新的 commaai:devel (0.7.3)。
|
||||
|
||||
2020-02-14
|
||||
========================
|
||||
* [DEVEL] 更新至最新的 commaai:devel (0.7.2)。
|
||||
* [DEVEL] 修正錯誤。
|
||||
|
||||
2020-02-08
|
||||
========================
|
||||
* [DEVEL] 更新至最新的 commaai:devel (0.7.2)。
|
||||
* [DEVEL] dp 功能加入對現代 (Hyundai) 車系的支援。
|
||||
* [DEVEL] 加入神盾測速照相自動啟動的開關。
|
||||
* [DEVEL] 更新高德地圖至 v4.5.0.600053。
|
||||
* [DEVEL] 使用 0.6.6 版的更新系統。
|
||||
* [DEVEL] 修正急剎問題。(感謝 kumar 提供)
|
||||
|
||||
2020-01-31
|
||||
========================
|
||||
* [DEVEL] 移除行車介面電量、溫度顯示,(修正畫面當機、黑屏問題)
|
||||
|
||||
2020-01-29
|
||||
========================
|
||||
* [DEVEL] 修正行車介面錯誤。(感謝 深鲸希西 測試;eisenheim、HeatNation 反應)
|
||||
|
||||
2020-01-23
|
||||
========================
|
||||
* [DEVEL] 加入 Steer Ratio Learner 關閉。(感謝 eisenheim 建議)
|
||||
* [DEVEL] 行車介面加入電量、溫度。(感謝 eisenheim 建議)
|
||||
* [DEVEL] 優化 appd。
|
||||
|
||||
2020-01-19
|
||||
========================
|
||||
* [DEVEL] 更新至最新的 commaai:devel (0.7.1)。
|
||||
* [DEVEL] 調整 appd 和 ALC 邏輯。
|
||||
|
||||
2020-01-14
|
||||
========================
|
||||
* [DEVEL] 加入開機啟動個人熱點。(感謝 eisenheim 建議)
|
||||
|
||||
2020-01-08
|
||||
========================
|
||||
* [DEVEL] 加入大陸版 2018 Lexus RX300 支援。(感謝 cafe 提供)
|
||||
* [DEVEL] 加入 DragonBTG 設定。(感謝 CloudJ、低調哥、歐姓Altis車主 提供)
|
||||
|
||||
2019-12-31
|
||||
========================
|
||||
* [DEVEL-ZHS] 加回第三方應用。
|
||||
|
||||
2019-12-29
|
||||
========================
|
||||
* [DEVEL] 更新至最新的 commaai:devel (0.7.0)。
|
||||
* [DEVEL] 輔助/自動變道改為可調整參數 (進階用戶)。(DragonAssistedLCMinMPH、DragonAutoLCMinMPH、DragonAutoLCDelay)
|
||||
* [DEVEL-ZHS] 修正無法運行第三方應用錯誤。(感謝 深鲸希西 反應)
|
||||
|
||||
2019-12-18
|
||||
========================
|
||||
* [DEVEL] 修正自動換道邏輯。
|
||||
* [DEVEL] 更新 offroad 翻譯。
|
||||
* [DEVEL] 錯誤修正。
|
||||
* [DEVEL] 移除美版 2017 Civic Hatchback 指紋。(與其它車型衝突)
|
||||
|
||||
2019-12-17
|
||||
========================
|
||||
* [DEVEL] 更新至最新的 commaai:devel (0.7.0)。
|
||||
* [DEVEL] 加入輔助換道開關。(24mph / 40kph 以上)
|
||||
* [DEVEL] 加入自動換道開關。(40mph / 65kph 以上)
|
||||
* [DEVEL] 加入大陸版 2019 雷凌汽油版指紋。 (感謝 Shell 提供)
|
||||
* [DEVEL] 加入大陸版 2019 卡羅拉汽油版指紋。 (感謝 Shell 提供)
|
||||
* [DEVEL] 加入美版 2017 Civic Hatchback 指紋。(感謝 CFranHonda 提供)
|
||||
|
||||
2019-12-10
|
||||
========================
|
||||
* [DEVEL] 加入位智車機模式。 (Waze Mode)
|
||||
|
||||
2019-11-21
|
||||
========================
|
||||
* [DEVEL] 修正 offroad 翻譯。(感謝 鄧育林 回報)
|
||||
* [DEVEL] 調整前車靜止移動偵測參數。
|
||||
* [DEVEL] 前車靜止移動偵測可在未啟用 dp 時運作。
|
||||
|
||||
2019-11-18
|
||||
========================
|
||||
* [DEVEL] 修正 offroad 翻譯。(感謝 Cody、鄧育林 回報)
|
||||
|
||||
2019-11-18
|
||||
========================
|
||||
* [DEVEL] 修正 frame 翻譯。
|
||||
|
||||
2019-11-15
|
||||
========================
|
||||
* [DEVEL] 修正不會充電的錯誤。 (感謝 袁昊 反應)
|
||||
|
||||
2019-11-15
|
||||
========================
|
||||
* [DEVEL] 修正充電控制。 (感謝 KT 反應)
|
||||
* [DEVEL] 更新 frame 翻譯,改為多語言版。 (感謝 深鲸希西、shaoching885、鄧育林 反應)
|
||||
* [DEVEL] 更新至最新的 commaai:devel (0.6.6)。
|
||||
|
||||
2019-11-12
|
||||
========================
|
||||
* [DEVEL] 只顯示電量文字 (注意:有時不會更新,需要拔插 USB 線)
|
||||
* [DEVEL] 自動偵測並鎖定硬體 (EON / UNO)。
|
||||
|
||||
2019-11-12
|
||||
========================
|
||||
* [DEVEL] 加入鎖定硬體 (EON / UNO) 的程式碼。
|
||||
|
||||
2019-11-11
|
||||
========================
|
||||
* [DEVEL] 更新高德地圖至 v4.3.0.600310 R2098NSLAE
|
||||
* [DEVEL] 更新 MiXplorer 至 v6.40.3
|
||||
* [DEVEL] 更新至最新的 commaai:devel (0.6.6)。
|
||||
* [DEVEL] 前車靜止移動偵測加入偵測警示。
|
||||
|
||||
2019-11-07
|
||||
========================
|
||||
* [DEVEL] 讓 Bosch 系統顯示三角。 (感謝 ching885 回報)
|
||||
* [DEVEL] 更新 offroad 多語言版簡體中文翻譯 (感謝 Rming 提供)
|
||||
|
||||
2019-11-06
|
||||
========================
|
||||
* [DEVEL] 修正 0.6.6 appd 和 dashcamd 錯誤。 (感謝 鄧育林 回報)
|
||||
* [DEVEL] 更新至最新的 commaai:devel (0.6.6)。
|
||||
|
||||
2019-11-05
|
||||
========================
|
||||
* [DEVEL] 加入台灣 Lexus 2017 GS450h 支援。 (感謝 簡銘佑 提供指紋)
|
||||
|
||||
2019-11-01
|
||||
========================
|
||||
* [DEVEL] 新增神盾測速照相。 (感謝 Sky Chang 和 Wei Yi Chen)
|
||||
* [DEVEL] 修正 offroad 翻譯。 (感謝 Leo Hsieh)
|
||||
|
||||
2019-11-01
|
||||
========================
|
||||
* [DEVEL] 移除 Miui 字型,縮小 dp 使用空間。
|
||||
* [DEVEL] 更新 offroad 為多語言版
|
||||
* [DEVEL] 更新至最新的 commaai:devel (0.6.5)。
|
||||
|
||||
2019-10-29
|
||||
========================
|
||||
* [DEVEL] 加入 SnG 補丁。(感謝 楊雅智)
|
||||
|
||||
2019-10-28
|
||||
========================
|
||||
* [DEVEL] 更新至最新的 commaai:devel (0.6.5)。
|
||||
* [DEVEL] 調整 dragon_allow_gas 邏輯 (請回報任何問題,需更新 Panda 韌體)
|
||||
|
||||
2019-10-18
|
||||
========================
|
||||
* [DEVEL] 加入前車靜止移動偵測。(測試版,感謝 ucolchen)
|
||||
* [DEVEL] 移除強迫網路連線提示。(感謝 Shell)
|
||||
* [DEVEL] 修正 allow_gas 功能。
|
||||
|
||||
2019-10-18
|
||||
========================
|
||||
* [DEVEL] 加入彎道減速功能開關。
|
||||
* [DEVEL] 強迫使用 dp 版 Panda 韌體。
|
||||
* [DEVEL] 更新至最新的 commaai:devel (0.6.5)。
|
||||
|
||||
2019-10-17
|
||||
========================
|
||||
* [DEVEL] 加入「車型」顯示於 dp 設定畫面。
|
||||
* [DEVEL] 修正充電控制讀取預設值的錯誤。
|
||||
* [DEVEL] 修正無法顯示更新記錄的錯誤。
|
||||
|
||||
2019-10-16
|
||||
========================
|
||||
* [DEVEL] 刷新 Panda 韌體按鈕將會自動重啟 EON。(感謝 鄧育林 建議)
|
||||
* [DEVEL] 下載更新記錄時使用 "no-cache" 標頭。
|
||||
* [DEVEL] 更新高德地圖至 v4.3.0
|
||||
* [DEVEL] 刪除 bs (Branch Switcher)
|
||||
|
||||
2019-10-14
|
||||
========================
|
||||
* [DEVEL] 啟用自動更新功能。(感謝 鄧育林 提供)
|
||||
* [DEVEL] 清除不再使用的 dp params。
|
||||
* [DEVEL] 加入數字電量指示。(感謝 鄧育林 建議)
|
||||
* [DEVEL] 加入刷新 Panda 韌體按鈕。
|
||||
|
||||
2019-10-11
|
||||
========================
|
||||
* [DEVEL] 更新至最新的 commaai:devel (0.6.5)。
|
||||
* [DEVEL] 加入台灣 2019 RAV4 汽油版指紋。 (感謝 Max Duan / CloudJ 提供)
|
||||
|
||||
2019-10-09
|
||||
========================
|
||||
* [DEVEL] 加入當 LatCtrl 關閉時,畫面顯示提示訊息。
|
||||
|
||||
2019-10-08
|
||||
========================
|
||||
* [DEVEL] 加回駕駛監控開關。
|
||||
* [DEVEL] 加入 bs (branch switcher) 程式。
|
||||
|
||||
2019-10-07
|
||||
========================
|
||||
* [DEVEL] 加入台灣版 2019 RAV4H 油電版指紋。(感謝 Max Duan 提供)
|
||||
|
||||
2019-10-05
|
||||
========================
|
||||
* [DEVEL] 移除 curvature learner: 轉角明顯比原廠小。
|
||||
* [DEVEL] 更新至最新的 commaai:devel (0.6.4)。
|
||||
|
||||
2019-09-30
|
||||
========================
|
||||
* [DEVEL] 更新 curvature learner 版本至 v4。
|
||||
* [DEVEL] Lexus ISH 使用更精確的 EPS Steering Angle Sensor
|
||||
|
||||
2019-09-27
|
||||
========================
|
||||
* [DEVEL] 加入 Zorrobyte 的 curvature learner (https://github.com/zorrobyte/openpilot)
|
||||
* [DEVEL] 加入可開關駕駛監控的程式碼。
|
||||
* [DEVEL] 取消當 steering 出現錯誤時,自動切斷方向控制 2 秒的機制。
|
||||
* [DEVEL] 讓行車介面的「方向盤」/「轉彎」圖示半透明化。
|
||||
|
||||
2019-09-26
|
||||
========================
|
||||
* [DEVEL] 修正當「啟用記錄服務」關閉時,make 會有問題的錯誤。 (感謝 shaoching885 和 afa 回報)
|
||||
|
||||
2019-09-24
|
||||
========================
|
||||
* [DEVEL] 行車介面加入可開關的「前車」、「路線」、「車道」設定。
|
||||
* [DEVEL] 行車介面加入可開關的「方向燈號」提示。 (感謝 CloudJ 建議,程式碼來源: https://github.com/kegman/openpilot)
|
||||
|
||||
2019-09-23
|
||||
========================
|
||||
* [DEVEL] 優化讀取 params 的次數。
|
||||
* [DEVEL] 加入可開關的車道偏移警示。
|
||||
* [DEVEL] 修正充電控制邏輯。
|
||||
* [DEVEL] 加入台灣 Prius 4.5 指紋。 (感謝 Lin Hsin Hung 提供)
|
||||
|
||||
2019-09-20
|
||||
========================
|
||||
* [DEVEL] 加入充電控制功能。 (感謝 loveloveses 和 KT 建議)
|
||||
|
||||
2019-09-16
|
||||
========================
|
||||
* [DEVEL] 加入台灣 CT200h 指紋。 (感謝 CloudJ 提供)
|
||||
* [DEVEL] 加入美版 CT200h 移植。 (感謝 thomaspich 提供)
|
||||
|
||||
2019-09-13
|
||||
========================
|
||||
* [DEVEL] 行車介面加入可開關的「速度顯示」設定。
|
||||
|
||||
2019-09-09
|
||||
========================
|
||||
* [DEVEL] 加入 GreyPanda 模式。
|
||||
|
||||
2019-08-28
|
||||
========================
|
||||
* [DEVEL] 加入可調警示音量。
|
||||
|
||||
2019-08-27
|
||||
========================
|
||||
* [DEVEL] 自動關機改為可調時長。
|
||||
@@ -1,3 +1,15 @@
|
||||
LIMITATION
|
||||
------
|
||||
* CAN-FD vehicles WILL NOT WORK: this is due to the library in EON/C2 is old and cannot build red panda firmware.
|
||||
* Body WILL NOT WORK: again this is due to the library in EON/C2 cannot build its firmware.
|
||||
* AI Model REMAINS IN 0.8.16: Too much effort to port tinygrad/pyopencl onto EON/C2, still investigating workarounds.
|
||||
* NOO (Navigation On Openpilot) WILL NOT WORK: NOO requires newer driving model to work with nav model, until we resolved the last statement.
|
||||
* Logger WILL NOT WORK: It's running at near full capacity with the 0.8.16 driving model, Logger will cause performance/thermal issue.
|
||||
|
||||
** In short, consider it as openpilot 0.8.16 version PLUS latest vehicle model support from openpilot master branch.**
|
||||
|
||||
** THE BUILD IS VERY DIRTY, for porting/logging purpose we suggest using [openpilot mastertwo branch](https://github.com/commaai/openpilot/tree/commatwo_master).**
|
||||
|
||||

|
||||
|
||||
Table of Contents
|
||||
@@ -17,7 +29,7 @@ Table of Contents
|
||||
What is openpilot?
|
||||
------
|
||||
|
||||
[openpilot](http://github.com/commaai/openpilot) is an open source driver assistance system. Currently, openpilot performs the functions of Adaptive Cruise Control (ACC), Automated Lane Centering (ALC), Forward Collision Warning (FCW) and Lane Departure Warning (LDW) for a growing variety of [supported car makes, models and model years](docs/CARS.md). In addition, while openpilot is engaged, a camera based Driver Monitoring (DM) feature alerts distracted and asleep drivers. See more about [the vehicle integration](docs/INTEGRATION.md) and [limitations](docs/LIMITATIONS.md).
|
||||
[openpilot](http://github.com/commaai/openpilot) is an open source driver assistance system. Currently, openpilot performs the functions of Adaptive Cruise Control (ACC), Automated Lane Centering (ALC), Forward Collision Warning (FCW), and Lane Departure Warning (LDW) for a growing variety of [supported car makes, models, and model years](docs/CARS.md). In addition, while openpilot is engaged, a camera-based Driver Monitoring (DM) feature alerts distracted and asleep drivers. See more about [the vehicle integration](docs/INTEGRATION.md) and [limitations](docs/LIMITATIONS.md).
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
@@ -40,9 +52,9 @@ Running on a dedicated device in a car
|
||||
|
||||
To use openpilot in a car, you need four things
|
||||
* A supported device to run this software: a [comma three](https://comma.ai/shop/products/three).
|
||||
* This software. The setup procedure of the comma three allows the user to enter a url for custom software.
|
||||
The url, openpilot.comma.ai will install the release version of openpilot. To install openpilot master, you can use installer.comma.ai/commaai/master, and replacing commaai with another github username can install a fork.
|
||||
* One of [the 150+ supported cars](docs/CARS.md). We support Honda, Toyota, Hyundai, Nissan, Kia, Chrysler, Lexus, Acura, Audi, VW, and more. If your car is not supported, but has adaptive cruise control and lane keeping assist, it's likely able to run openpilot.
|
||||
* This software. The setup procedure of the comma three allows the user to enter a URL for custom software.
|
||||
The URL, openpilot.comma.ai will install the release version of openpilot. To install openpilot master, you can use installer.comma.ai/commaai/master, and replacing commaai with another GitHub username can install a fork.
|
||||
* One of [the 200+ supported cars](docs/CARS.md). We support Honda, Toyota, Hyundai, Nissan, Kia, Chrysler, Lexus, Acura, Audi, VW, and more. If your car is not supported but has adaptive cruise control and lane-keeping assist, it's likely able to run openpilot.
|
||||
* A [car harness](https://comma.ai/shop/products/car-harness) to connect to your car.
|
||||
|
||||
We have detailed instructions for [how to mount the device in a car](https://comma.ai/setup).
|
||||
@@ -50,13 +62,13 @@ We have detailed instructions for [how to mount the device in a car](https://com
|
||||
Running on PC
|
||||
------
|
||||
|
||||
All of openpilot's services can run as normal on a PC, even without special hardware or a car. To develop or experiment with openpilot you can run openpilot on recorded or simulated data.
|
||||
All openpilot services can run as usual on a PC without requiring special hardware or a car. You can also run openpilot on recorded or simulated data to develop or experiment with openpilot.
|
||||
|
||||
With openpilot's tools you can plot logs, replay drives and watch the full-res camera streams. See [the tools README](tools/README.md) for more information.
|
||||
With openpilot's tools, you can plot logs, replay drives, and watch the full-res camera streams. See [the tools README](tools/README.md) for more information.
|
||||
|
||||
You can also run openpilot in simulation [with the CARLA simulator](tools/sim/README.md). This allows openpilot to drive around a virtual car on your Ubuntu machine. The whole setup should only take a few minutes, but does require a decent GPU.
|
||||
You can also run openpilot in simulation [with the CARLA simulator](tools/sim/README.md). This allows openpilot to drive around a virtual car on your Ubuntu machine. The whole setup should only take a few minutes but does require a decent GPU.
|
||||
|
||||
A PC running openpilot can also control your vehicle if it is connected to a [a webcam](https://github.com/commaai/openpilot/tree/master/tools/webcam), a [black panda](https://comma.ai/shop/products/panda), and [a harness](https://comma.ai/shop/products/car-harness).
|
||||
A PC running openpilot can also control your vehicle if it is connected to a [webcam](https://github.com/commaai/openpilot/tree/master/tools/webcam), a [black panda](https://comma.ai/shop/products/panda), and a [harness](https://comma.ai/shop/products/car-harness).
|
||||
|
||||
Community and Contributing
|
||||
------
|
||||
@@ -78,8 +90,8 @@ By default, openpilot uploads the driving data to our servers. You can also acce
|
||||
|
||||
openpilot is open source software: the user is free to disable data collection if they wish to do so.
|
||||
|
||||
openpilot logs the road facing cameras, CAN, GPS, IMU, magnetometer, thermal sensors, crashes, and operating system logs.
|
||||
The driver facing camera is only logged if you explicitly opt-in in settings. The microphone is not recorded.
|
||||
openpilot logs the road-facing cameras, CAN, GPS, IMU, magnetometer, thermal sensors, crashes, and operating system logs.
|
||||
The driver-facing camera is only logged if you explicitly opt-in in settings. The microphone is not recorded.
|
||||
|
||||
By using openpilot, you agree to [our Privacy Policy](https://comma.ai/privacy). You understand that use of this software or its related services will generate certain types of user data, which may be logged and stored at the sole discretion of comma. By accepting this agreement, you grant an irrevocable, perpetual, worldwide right to comma for the use of this data.
|
||||
|
||||
@@ -87,11 +99,11 @@ Safety and Testing
|
||||
----
|
||||
|
||||
* openpilot observes ISO26262 guidelines, see [SAFETY.md](docs/SAFETY.md) for more details.
|
||||
* openpilot has software in the loop [tests](.github/workflows/selfdrive_tests.yaml) that run on every commit.
|
||||
* openpilot has software-in-the-loop [tests](.github/workflows/selfdrive_tests.yaml) that run on every commit.
|
||||
* The code enforcing the safety model lives in panda and is written in C, see [code rigor](https://github.com/commaai/panda#code-rigor) for more details.
|
||||
* panda has software in the loop [safety tests](https://github.com/commaai/panda/tree/master/tests/safety).
|
||||
* Internally, we have a hardware in the loop Jenkins test suite that builds and unit tests the various processes.
|
||||
* panda has additional hardware in the loop [tests](https://github.com/commaai/panda/blob/master/Jenkinsfile).
|
||||
* panda has software-in-the-loop [safety tests](https://github.com/commaai/panda/tree/master/tests/safety).
|
||||
* Internally, we have a hardware-in-the-loop Jenkins test suite that builds and unit tests the various processes.
|
||||
* panda has additional hardware-in-the-loop [tests](https://github.com/commaai/panda/blob/master/Jenkinsfile).
|
||||
* We run the latest openpilot in a testing closet containing 10 comma devices continuously replaying routes.
|
||||
|
||||
Directory Structure
|
||||
@@ -109,7 +121,10 @@ Directory Structure
|
||||
├── clocksd # Broadcasts current time
|
||||
├── hardware # Hardware abstraction classes
|
||||
├── logcatd # systemd journal as a service
|
||||
└── proclogd # Logs information from /proc
|
||||
├── loggerd # Logger and uploader of car data
|
||||
├── proclogd # Logs information from /proc
|
||||
├── sensord # IMU interface code
|
||||
└── ubloxd # u-blox GNSS module interface code
|
||||
└── selfdrive # Code needed to drive the car
|
||||
├── assets # Fonts, images, and sounds for UI
|
||||
├── athena # Allows communication with the app
|
||||
@@ -118,12 +133,10 @@ Directory Structure
|
||||
├── controls # Planning and controls
|
||||
├── debug # Tools to help you debug and do car ports
|
||||
├── locationd # Precise localization and vehicle parameter estimation
|
||||
├── loggerd # Logger and uploader of car data
|
||||
├── manager # Deamon that starts/stops all other daemons as needed
|
||||
├── manager # Daemon that starts/stops all other daemons as needed
|
||||
├── modeld # Driving and monitoring model runners
|
||||
├── monitoring # Daemon to determine driver attention
|
||||
├── navd # Turn-by-turn navigation
|
||||
├── sensord # IMU interface code
|
||||
├── test # Unit tests, system tests, and a car simulator
|
||||
└── ui # The UI
|
||||
|
||||
@@ -143,7 +156,4 @@ NO WARRANTY EXPRESSED OR IMPLIED.**
|
||||
<img src="https://d1qb2nb5cznatu.cloudfront.net/startups/i/1061157-bc7e9bf3b246ece7322e6ffe653f6af8-medium_jpg.jpg?buster=1458363130" width="75"></img> <img src="https://cdn-images-1.medium.com/max/1600/1*C87EjxGeMPrkTuVRVWVg4w.png" width="225"></img>
|
||||
|
||||
[](https://github.com/commaai/openpilot/actions)
|
||||
[](https://lgtm.com/projects/g/commaai/openpilot/alerts/)
|
||||
[](https://lgtm.com/projects/g/commaai/openpilot/context:python)
|
||||
[](https://lgtm.com/projects/g/commaai/openpilot/context:cpp)
|
||||
[](https://codecov.io/gh/commaai/openpilot)
|
||||
|
||||
+79
-4
@@ -1,5 +1,80 @@
|
||||
Version 0.8.16 (2022-XX-XX)
|
||||
Version 0.9.2 (2023-03-XX)
|
||||
========================
|
||||
* Draw MPC path instead of model predicted path, this is a more accurate representation of what the car will do.
|
||||
* Buick LaCrosse 2017-19 support thanks to koch-cf!
|
||||
* Škoda Fabia 2022-23 support thanks to jyoung8607!
|
||||
|
||||
Version 0.9.1 (2023-02-28)
|
||||
========================
|
||||
* New driving model
|
||||
* 30% improved height estimation resulting in better driving performance for tall cars
|
||||
* Driver monitoring: removed timer resetting on user interaction if distracted
|
||||
* UI updates
|
||||
* Adjust alert volume using ambient noise level
|
||||
* Driver monitoring icon shows driver's head pose
|
||||
* German translation thanks to Vrabetz and CzokNorris!
|
||||
* Cadillac Escalade 2017 support thanks to rickygilleland!
|
||||
* Chevrolet Bolt EV 2022-23 support thanks to JasonJShuler!
|
||||
* Genesis GV60 2023 support thanks to sunnyhaibin!
|
||||
* Hyundai Tucson 2022-23 support
|
||||
* Kia K5 Hybrid 2020 support thanks to sunnyhaibin!
|
||||
* Kia Niro Hybrid 2023 support thanks to sunnyhaibin!
|
||||
* Kia Sorento 2022-23 support thanks to sunnyhaibin!
|
||||
* Kia Sorento Plug-in Hybrid 2022 support thanks to sunnyhaibin!
|
||||
* Toyota C-HR 2021 support thanks to eFiniLan!
|
||||
* Toyota C-HR Hybrid 2022 support thanks to Korben00!
|
||||
* Volkswagen Crafter and MAN TGE 2017-23 support thanks to jyoung8607!
|
||||
|
||||
Version 0.9.0 (2022-11-21)
|
||||
========================
|
||||
* New driving model
|
||||
* Internal feature space information content increased tenfold during training to ~700 bits, which makes the model dramatically more accurate
|
||||
* Less reliance on previous frames makes model more reactive and snappy
|
||||
* Trained in new reprojective simulator
|
||||
* Trained in 36 hours from scratch, compared to one week for previous releases
|
||||
* Training now simulates both lateral and longitudinal behavior, which allows openpilot to slow down for turns, stop at traffic lights, and more in experimental mode
|
||||
* Experimental driving mode
|
||||
* End-to-end longitudinal control
|
||||
* Stops for traffic lights and stop signs
|
||||
* Slows down for turns
|
||||
* openpilot defaults to chill mode, enable experimental mode in settings
|
||||
* Driver monitoring updates
|
||||
* New bigger model with added end-to-end distracted trigger
|
||||
* Reduced false positives during driver calibration
|
||||
* Self-tuning torque controller: learns parameters live for each car
|
||||
* Torque controller used on all Toyota, Lexus, Hyundai, Kia, and Genesis models
|
||||
* UI updates
|
||||
* Matched speeds shown on car's dash
|
||||
* Multi-language in navigation
|
||||
* Improved update experience
|
||||
* Border turns grey while overriding steering
|
||||
* Bookmark events while driving; view them in comma connect
|
||||
* New onroad visualization for experimental mode
|
||||
* tools: new and improved cabana thanks to deanlee!
|
||||
* Experimental longitudinal support for Volkswagen, CAN-FD Hyundai, and new GM models
|
||||
* Genesis GV70 2022-23 support thanks to zunichky and sunnyhaibin!
|
||||
* Hyundai Santa Cruz 2021-22 support thanks to sunnyhaibin!
|
||||
* Kia Sportage 2023 support thanks to sunnyhaibin!
|
||||
* Kia Sportage Hybrid 2023 support thanks to sunnyhaibin!
|
||||
* Kia Stinger 2022 support thanks to sunnyhaibin!
|
||||
|
||||
Version 0.8.16 (2022-08-26)
|
||||
========================
|
||||
* New driving model
|
||||
* Reduced turn cutting
|
||||
* Auto-detect right hand drive setting with driver monitoring model
|
||||
* Improved fan controller for comma three
|
||||
* New translations
|
||||
* Japanese thanks to cydia2020!
|
||||
* Brazilian Portuguese thanks to AlexandreSato!
|
||||
* Chevrolet Bolt EUV 2022-23 support thanks to JasonJShuler!
|
||||
* Chevrolet Silverado 1500 2020-21 support thanks to JasonJShuler!
|
||||
* GMC Sierra 1500 2020-21 support thanks to JasonJShuler!
|
||||
* Hyundai Ioniq 5 2022 support thanks to sunnyhaibin!
|
||||
* Hyundai Kona Electric 2022 support thanks to sunnyhaibin!
|
||||
* Hyundai Tucson Hybrid 2022 support thanks to sunnyhaibin!
|
||||
* Subaru Legacy 2020-22 support thanks to martinl!
|
||||
* Subaru Outback 2020-22 support
|
||||
|
||||
Version 0.8.15 (2022-07-20)
|
||||
========================
|
||||
@@ -58,7 +133,7 @@ Version 0.8.14 (2022-06-01)
|
||||
Version 0.8.13 (2022-02-18)
|
||||
========================
|
||||
* Improved driver monitoring
|
||||
* Retuned driver pose learner for relaxed driving positions
|
||||
* Re-tuned driver pose learner for relaxed driving positions
|
||||
* Added reliance on driving model to be more scene adaptive
|
||||
* Matched strictness between comma two and comma three
|
||||
* Improved performance in turns by compensating for the road bank angle
|
||||
@@ -204,7 +279,7 @@ Version 0.8.4 (2021-05-17)
|
||||
* Delay controls start until system is ready
|
||||
* Fuzzy car identification, enabled with Community Features toggle
|
||||
* Localizer optimized for increased precision and less CPU usage
|
||||
* Retuned lateral control to be more aggressive when model is confident
|
||||
* Re-tuned lateral control to be more aggressive when model is confident
|
||||
* Toyota Mirai 2021 support
|
||||
* Lexus NX 300 2020 support thanks to goesreallyfast!
|
||||
* Volkswagen Atlas 2018-19 support thanks to jyoung8607!
|
||||
@@ -369,7 +444,7 @@ Version 0.7 (2019-12-13)
|
||||
* Improve GM longitudinal control: proper computations for 15Hz radar
|
||||
* Move GM port, Toyota with DSU removed, comma pedal in community features; toggle switch required
|
||||
* Remove upload over cellular toggle: only upload qlog and qcamera files if not on wifi
|
||||
* Refactor Panda code towards ISO26262 and SIL2 compliancy
|
||||
* Refactor Panda code towards ISO26262 and SIL2 compliance
|
||||
* Forward stock FCW for Honda Nidec
|
||||
* Volkswagen port now standard: comma Harness intercepts stock camera
|
||||
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
/gen/
|
||||
*.tmp
|
||||
*.pyc
|
||||
__pycache__
|
||||
.*.swp
|
||||
.*.swo
|
||||
*.os
|
||||
*.o
|
||||
*.a
|
||||
|
||||
test_runner
|
||||
|
||||
libmessaging.*
|
||||
libmessaging_shared.*
|
||||
services.h
|
||||
.sconsign.dblite
|
||||
libcereal_shared.*
|
||||
.mypy_cache/
|
||||
+4
-3
@@ -39,11 +39,12 @@ RUN pyenv install 3.8.10 && \
|
||||
pyenv rehash && \
|
||||
pip3 install --no-cache-dir pyyaml==5.1.2 Cython==0.29.14 scons==3.1.1 pycapnp==1.0.0 pre-commit==2.15.0 pylint==2.5.2 parameterized==0.7.4 coverage==5.1 numpy==1.21.1
|
||||
|
||||
WORKDIR /project/cereal/messaging
|
||||
RUN git clone https://github.com/catchorg/Catch2.git && \
|
||||
WORKDIR /project/
|
||||
RUN cd /tmp/ && \
|
||||
git clone https://github.com/catchorg/Catch2.git && \
|
||||
cd Catch2 && \
|
||||
git checkout 229cc4823c8cbe67366da8179efc6089dd3893e9 && \
|
||||
mv single_include/catch2 ../catch2 && \
|
||||
mv single_include/catch2/ /project/ && \
|
||||
cd .. \
|
||||
rm -rf Catch2
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
What is cereal? [](https://github.com/commaai/cereal/actions) [](https://codecov.io/gh/commaai/cereal)
|
||||
What is cereal? [](https://github.com/commaai/cereal/actions) [](https://codecov.io/gh/commaai/cereal)
|
||||
----
|
||||
|
||||
cereal is both a messaging spec for robotics systems as well as generic high performance IPC pub sub messaging with a single publisher and multiple subscribers.
|
||||
|
||||
+83
-36
@@ -17,7 +17,8 @@ struct CarEvent @0x9b1657f34caf3ad3 {
|
||||
immediateDisable @6 :Bool;
|
||||
preEnable @7 :Bool;
|
||||
permanent @8 :Bool; # alerts presented regardless of openpilot state
|
||||
override @9 :Bool;
|
||||
overrideLateral @10 :Bool;
|
||||
overrideLongitudinal @9 :Bool;
|
||||
|
||||
enum EventName @0xbaa8c5d505f727de {
|
||||
canError @0;
|
||||
@@ -33,8 +34,9 @@ struct CarEvent @0x9b1657f34caf3ad3 {
|
||||
buttonCancel @11;
|
||||
buttonEnable @12;
|
||||
pedalPressed @13; # exits active state
|
||||
pedalPressedPreEnable @73; # added during pre-enable state for either pedal
|
||||
preEnableStandstill @73; # added during pre-enable state with brake
|
||||
gasPressedOverride @108; # added when user is pressing gas with no disengage on gas
|
||||
steerOverride @114;
|
||||
cruiseDisabled @14;
|
||||
speedTooLow @17;
|
||||
outOfSpace @18;
|
||||
@@ -44,7 +46,6 @@ struct CarEvent @0x9b1657f34caf3ad3 {
|
||||
controlsMismatch @22;
|
||||
pcmEnable @23;
|
||||
pcmDisable @24;
|
||||
noTarget @25;
|
||||
radarFault @26;
|
||||
brakeHold @28;
|
||||
parkBrake @29;
|
||||
@@ -64,6 +65,7 @@ struct CarEvent @0x9b1657f34caf3ad3 {
|
||||
lowBattery @48;
|
||||
vehicleModelInvalid @50;
|
||||
accFaulted @51;
|
||||
accFaultedTemp @115;
|
||||
sensorDataInvalid @52;
|
||||
commIssue @53;
|
||||
commIssueAvgFreq @109;
|
||||
@@ -111,10 +113,14 @@ struct CarEvent @0x9b1657f34caf3ad3 {
|
||||
lkasDisabled @107;
|
||||
canBusMissing @111;
|
||||
controlsdLagging @112;
|
||||
resumeBlocked @113;
|
||||
|
||||
#dp
|
||||
speedLimitActive @113;
|
||||
speedLimitValueChange @114;
|
||||
speedLimitActive @116;
|
||||
speedLimitValueChange @117;
|
||||
leadMovingAlertSilent @118;
|
||||
leadMovingAlert @119;
|
||||
manualSteeringRequiredBlinkersOn @120;
|
||||
|
||||
radarCanErrorDEPRECATED @15;
|
||||
communityFeatureDisallowedDEPRECATED @62;
|
||||
@@ -138,6 +144,7 @@ struct CarEvent @0x9b1657f34caf3ad3 {
|
||||
modelLagWarningDEPRECATED @93;
|
||||
startupOneplusDEPRECATED @82;
|
||||
startupFuzzyFingerprintDEPRECATED @97;
|
||||
noTargetDEPRECATED @25;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -168,6 +175,7 @@ struct CarState {
|
||||
# brake pedal, 0.0-1.0
|
||||
brake @5 :Float32; # this is user pedal only
|
||||
brakePressed @6 :Bool; # this is user pedal only
|
||||
regenBraking @45 :Bool; # this is user pedal only
|
||||
parkingBrake @39 :Bool;
|
||||
brakeHoldActive @38 :Bool;
|
||||
|
||||
@@ -204,9 +212,6 @@ struct CarState {
|
||||
# clutch (manual transmission only)
|
||||
clutchPressed @28 :Bool;
|
||||
|
||||
# which packets this state came from
|
||||
canMonoTimes @12: List(UInt64);
|
||||
|
||||
# blindspot sensors
|
||||
leftBlindspot @33 :Bool; # Is there something blocking the left lane change
|
||||
rightBlindspot @34 :Bool; # Is there something blocking the right lane change
|
||||
@@ -215,9 +220,13 @@ struct CarState {
|
||||
charging @43 :Bool;
|
||||
|
||||
# dp
|
||||
cruiseActualEnabled @45 :Bool;
|
||||
engineRPM @46 :Float32;
|
||||
distanceLines @47:UInt8;
|
||||
distanceLines @47 :UInt8;
|
||||
rightBlindspotD1 @48 :Float32;
|
||||
rightBlindspotD2 @49 :Float32;
|
||||
leftBlindspotD1 @50 :Float32;
|
||||
leftBlindspotD2 @51 :Float32;
|
||||
blindspotside @52 :Float32;
|
||||
|
||||
struct WheelSpeeds {
|
||||
# optional wheel speeds
|
||||
@@ -272,9 +281,11 @@ struct CarState {
|
||||
}
|
||||
}
|
||||
|
||||
# deprecated
|
||||
errorsDEPRECATED @0 :List(CarEvent.EventName);
|
||||
brakeLightsDEPRECATED @19 :Bool;
|
||||
steeringRateLimitedDEPRECATED @29 :Bool;
|
||||
canMonoTimesDEPRECATED @12: List(UInt64);
|
||||
}
|
||||
|
||||
# ******* radar state @ 20hz *******
|
||||
@@ -283,9 +294,6 @@ struct RadarData @0x888ad6581cf0aacb {
|
||||
errors @0 :List(Error);
|
||||
points @1 :List(RadarPoint);
|
||||
|
||||
# which packets this state came from
|
||||
canMonoTimes @2 :List(UInt64);
|
||||
|
||||
enum Error {
|
||||
canError @0;
|
||||
fault @1;
|
||||
@@ -309,6 +317,9 @@ struct RadarData @0x888ad6581cf0aacb {
|
||||
# some radars flag measurements VS estimates
|
||||
measured @6 :Bool;
|
||||
}
|
||||
|
||||
# deprecated
|
||||
canMonoTimesDEPRECATED @2 :List(UInt64);
|
||||
}
|
||||
|
||||
# ******* car controls @ 100hz *******
|
||||
@@ -322,6 +333,9 @@ struct CarControl {
|
||||
# Actuator commands as computed by controlsd
|
||||
actuators @6 :Actuators;
|
||||
|
||||
leftBlinker @15: Bool;
|
||||
rightBlinker @16: Bool;
|
||||
|
||||
# Any car specific rate limits or quirks applied by
|
||||
# the CarController are reflected in actuatorsOutput
|
||||
# and matches what is sent to the car
|
||||
@@ -333,14 +347,20 @@ struct CarControl {
|
||||
cruiseControl @4 :CruiseControl;
|
||||
hudControl @5 :HUDControl;
|
||||
|
||||
latController @17 :Text;
|
||||
|
||||
struct Actuators {
|
||||
# range from 0.0 - 1.0
|
||||
gas @0: Float32;
|
||||
brake @1: Float32;
|
||||
# range from -1.0 - 1.0
|
||||
steer @2: Float32;
|
||||
# value sent over can to the car
|
||||
steerOutputCan @8: Float32;
|
||||
steeringAngleDeg @3: Float32;
|
||||
|
||||
curvature @7: Float32;
|
||||
|
||||
speed @6: Float32; # m/s
|
||||
accel @4: Float32; # m/s^2
|
||||
longControlState @5: LongControlState;
|
||||
@@ -349,15 +369,14 @@ struct CarControl {
|
||||
off @0;
|
||||
pid @1;
|
||||
stopping @2;
|
||||
|
||||
startingDEPRECATED @3;
|
||||
starting @3;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
struct CruiseControl {
|
||||
cancel @0: Bool;
|
||||
resume @1: Bool;
|
||||
override @4: Bool;
|
||||
speedOverrideDEPRECATED @2: Float32;
|
||||
accelOverrideDEPRECATED @3: Float32;
|
||||
}
|
||||
@@ -423,23 +442,27 @@ struct CarParams {
|
||||
enableGasInterceptor @2 :Bool;
|
||||
pcmCruise @3 :Bool; # is openpilot's state tied to the PCM's cruise state?
|
||||
enableDsu @5 :Bool; # driving support unit
|
||||
enableApgs @6 :Bool; # advanced parking guidance system
|
||||
enableBsm @56 :Bool; # blind spot monitoring
|
||||
flags @64 :UInt32; # flags for car specific quirks
|
||||
experimentalLongitudinalAvailable @71 :Bool;
|
||||
#dp: enable torque interceptor
|
||||
enableTorqueInterceptor @72 :Bool;
|
||||
#dp: alt tune collection
|
||||
latTuneCollection @73 :LatTunes;
|
||||
struct LatTunes {
|
||||
pid @0 :LateralPIDTuning;
|
||||
lqr @1 :LateralLQRTuning;
|
||||
torque @2 :LateralTorqueTuning;
|
||||
}
|
||||
|
||||
minEnableSpeed @7 :Float32;
|
||||
minSteerSpeed @8 :Float32;
|
||||
maxSteeringAngleDeg @54 :Float32;
|
||||
safetyConfigs @62 :List(SafetyConfig);
|
||||
alternativeExperience @65 :Int16; # panda flag for features like no disengage on gas
|
||||
maxLateralAccel @68 :Float32;
|
||||
|
||||
steerMaxBPDEPRECATED @11 :List(Float32);
|
||||
steerMaxVDEPRECATED @12 :List(Float32);
|
||||
gasMaxBPDEPRECATED @13 :List(Float32);
|
||||
gasMaxVDEPRECATED @14 :List(Float32);
|
||||
brakeMaxBPDEPRECATED @15 :List(Float32);
|
||||
brakeMaxVDEPRECATED @16 :List(Float32);
|
||||
# Car docs fields
|
||||
maxLateralAccel @68 :Float32;
|
||||
autoResumeSng @69 :Bool; # describes whether car can resume from a stop automatically
|
||||
|
||||
# things about the car in the manual
|
||||
mass @17 :Float32; # [kg] curb weight: all fluids no cargo
|
||||
@@ -467,12 +490,13 @@ struct CarParams {
|
||||
|
||||
vEgoStopping @29 :Float32; # Speed at which the car goes into stopping state
|
||||
vEgoStarting @59 :Float32; # Speed at which the car goes into starting state
|
||||
directAccelControl @30 :Bool; # Does the car have direct accel control or just gas/brake
|
||||
stoppingControl @31 :Bool; # Does the car allows full control even at lows speeds when stopping
|
||||
stopAccel @60 :Float32; # Required acceleraton to keep vehicle stationary
|
||||
stoppingControl @31 :Bool; # Does the car allow full control even at lows speeds when stopping
|
||||
steerControlType @34 :SteerControlType;
|
||||
radarOffCan @35 :Bool; # True when radar objects aren't visible on CAN
|
||||
radarUnavailable @35 :Bool; # True when radar objects aren't visible on CAN or aren't parsed out
|
||||
stopAccel @60 :Float32; # Required acceleration to keep vehicle stationary
|
||||
stoppingDecelRate @52 :Float32; # m/s^2/s while trying to stop
|
||||
startAccel @32 :Float32; # Required acceleration to get car moving
|
||||
startingState @70 :Bool; # Does this car make use of special starting state
|
||||
|
||||
steerActuatorDelay @36 :Float32; # Steering wheel actuator delay in seconds
|
||||
longitudinalActuatorDelayLowerBound @61 :Float32; # Gas/Brake actuator delay in seconds, lower bound
|
||||
@@ -516,6 +540,8 @@ struct CarParams {
|
||||
friction @3 :Float32;
|
||||
kf @4 :Float32;
|
||||
steeringAngleDeadzoneDeg @5 :Float32;
|
||||
latAccelFactor @6 :Float32;
|
||||
latAccelOffset @7 :Float32;
|
||||
}
|
||||
|
||||
struct LongitudinalPIDTuning {
|
||||
@@ -584,15 +610,17 @@ struct CarParams {
|
||||
subaruLegacy @22; # pre-Global platform
|
||||
hyundaiLegacy @23;
|
||||
hyundaiCommunity @24;
|
||||
stellantis @25;
|
||||
faw @26;
|
||||
volkswagenMlb @25;
|
||||
hongqi @26;
|
||||
body @27;
|
||||
hyundaiHDA2 @28;
|
||||
hyundaiCanfd @28;
|
||||
volvoC1 @29;
|
||||
}
|
||||
|
||||
enum SteerControlType {
|
||||
torque @0;
|
||||
angle @1;
|
||||
curvature @2;
|
||||
}
|
||||
|
||||
enum TransmissionType {
|
||||
@@ -612,11 +640,13 @@ struct CarParams {
|
||||
request @5 :List(Data);
|
||||
brand @6 :Text;
|
||||
bus @7 :UInt8;
|
||||
logging @8 :Bool;
|
||||
obdMultiplexing @9 :Bool;
|
||||
}
|
||||
|
||||
enum Ecu {
|
||||
eps @0;
|
||||
esp @1;
|
||||
abs @1;
|
||||
fwdRadar @2;
|
||||
fwdCamera @3;
|
||||
engine @4;
|
||||
@@ -626,6 +656,11 @@ struct CarParams {
|
||||
gateway @10; # can gateway
|
||||
hud @11; # heads up display
|
||||
combinationMeter @12; # instrument cluster
|
||||
electricBrakeBooster @15;
|
||||
shiftByWire @16;
|
||||
adas @19;
|
||||
cornerRadar @21;
|
||||
hvac @20;
|
||||
|
||||
# Toyota only
|
||||
dsu @6;
|
||||
@@ -634,8 +669,12 @@ struct CarParams {
|
||||
# Honda only
|
||||
vsa @13; # Vehicle Stability Assist
|
||||
programmedFuelInjection @14;
|
||||
electricBrakeBooster @15;
|
||||
shiftByWire @16;
|
||||
|
||||
# Chrysler only
|
||||
hcp @18; # Hybrid Control Processor
|
||||
|
||||
# Hyundai only
|
||||
parking @22; # ADAS parking ECU
|
||||
|
||||
debug @17;
|
||||
}
|
||||
@@ -652,6 +691,7 @@ struct CarParams {
|
||||
}
|
||||
|
||||
enableCameraDEPRECATED @4 :Bool;
|
||||
enableApgsDEPRECATED @6 :Bool;
|
||||
steerRateCostDEPRECATED @33 :Float32;
|
||||
isPandaBlackDEPRECATED @39 :Bool;
|
||||
hasStockCameraDEPRECATED @57 :Bool;
|
||||
@@ -659,7 +699,14 @@ struct CarParams {
|
||||
safetyModelDEPRECATED @9 :SafetyModel;
|
||||
safetyModelPassiveDEPRECATED @42 :SafetyModel = silent;
|
||||
minSpeedCanDEPRECATED @51 :Float32;
|
||||
startAccelDEPRECATED @32 :Float32;
|
||||
communityFeatureDEPRECATED @46: Bool;
|
||||
startingAccelRateDEPRECATED @53 :Float32;
|
||||
steerMaxBPDEPRECATED @11 :List(Float32);
|
||||
steerMaxVDEPRECATED @12 :List(Float32);
|
||||
gasMaxBPDEPRECATED @13 :List(Float32);
|
||||
gasMaxVDEPRECATED @14 :List(Float32);
|
||||
brakeMaxBPDEPRECATED @15 :List(Float32);
|
||||
brakeMaxVDEPRECATED @16 :List(Float32);
|
||||
directAccelControlDEPRECATED @30 :Bool;
|
||||
maxSteeringAngleDegDEPRECATED @54 :Float32;
|
||||
}
|
||||
|
||||
+44
-12
@@ -11,16 +11,48 @@ struct DragonConf {
|
||||
dpLcMinMph @3 :UInt8;
|
||||
dpLcAutoMinMph @4 :UInt8;
|
||||
dpLcAutoDelay @5 :Float32;
|
||||
dpIpAddr @6 :Text;
|
||||
dpUiTop @7 :Bool;
|
||||
dpUiSide @8 :Bool;
|
||||
dpUiVolume @9 :Int8;
|
||||
dpUiBrightness @10 :UInt8;
|
||||
dpUiDisplayMode @11 :UInt8;
|
||||
dpToyotaSng @12 :Bool;
|
||||
dpAccelProfileCtrl @13 :Bool;
|
||||
dpAccelProfile @14 :UInt8;
|
||||
dpToyotaCruiseOverride @15 :Bool;
|
||||
dpUseLanelines @16 :Bool;
|
||||
dpMapd @17 :Bool;
|
||||
dpLateralLanelines @6 :Bool;
|
||||
dpLateralCameraOffset @7 :Int8;
|
||||
dpLateralPathOffset @8 :Int8;
|
||||
dpLateralRoadEdgeDetected @9 :Bool;
|
||||
dpIpAddr @10 :Text;
|
||||
dpUiTop @11 :Bool;
|
||||
dpUiSide @12 :Bool;
|
||||
dpUiBrightness @13 :UInt8;
|
||||
dpUiDisplayMode @14 :UInt8;
|
||||
dpUiSpeed @15 :Bool;
|
||||
dpUiEvent @16 :Bool;
|
||||
dpUiFace @17 :Bool;
|
||||
dpUiLeadInfo @18 :Bool;
|
||||
dpUiLaneline @19 :Bool;
|
||||
dpUiChevron @20 :Bool;
|
||||
dpUiDmCam @21 :Bool;
|
||||
dpUiRainbow @22 :Bool;
|
||||
dpToyotaSng @23 :Bool;
|
||||
dpAccelProfileCtrl @24 :Bool;
|
||||
dpAccelProfile @25 :UInt8;
|
||||
dpToyotaCruiseOverride @26 :Bool;
|
||||
dpToyotaCruiseOverrideSpeed @27 :UInt8;
|
||||
dpToyotaAutoLock @28 :Bool;
|
||||
dpToyotaAutoUnlock @29 :Bool;
|
||||
dpToyotaDebugBsm @30 :Bool;
|
||||
dpMapd @31 :Bool;
|
||||
dpLocalDb @32 :Bool;
|
||||
dpDashcamd @33 :Bool;
|
||||
dpMazdaSteerAlert @34 :Bool;
|
||||
dpSpeedCheck @35 :Bool;
|
||||
dpFollowingProfileCtrl @36 :Bool;
|
||||
dpFollowingProfile @37 :UInt8;
|
||||
dpLateralAlt @38 :Bool;
|
||||
dpLateralAltSpeed @39 :UInt8;
|
||||
dpLateralAltCtrl @40 :UInt8;
|
||||
dpLateralAltLanelines @41 :Bool;
|
||||
dpLateralAltCameraOffset @42 :Int8;
|
||||
dpLateralAltPathOffset @43 :Int8;
|
||||
dpE2EConditional @44 :Bool;
|
||||
dpE2EConditionalAdaptFp @45 :Bool;
|
||||
dpE2EConditionalAdaptAp @46 :Bool;
|
||||
dpE2EConditionalVoacc @47 :Bool;
|
||||
dpLongLeadMovingAlert @48 :Int8;
|
||||
dpLateralLcManual @49 :Bool;
|
||||
}
|
||||
|
||||
Binary file not shown.
+325
-68
@@ -38,6 +38,8 @@ struct InitData {
|
||||
passive @12 :Bool;
|
||||
params @17 :Map(Text, Data);
|
||||
|
||||
commands @19 :Map(Text, Data);
|
||||
|
||||
enum DeviceType {
|
||||
unknown @0;
|
||||
neo @1;
|
||||
@@ -136,6 +138,7 @@ struct FrameData {
|
||||
gain @15 :Float32; # This includes highConversionGain if enabled
|
||||
measuredGreyFraction @21 :Float32;
|
||||
targetGreyFraction @22 :Float32;
|
||||
exposureValPercent @27 :Float32;
|
||||
|
||||
# Focus
|
||||
lensPos @11 :Int32;
|
||||
@@ -149,10 +152,7 @@ struct FrameData {
|
||||
|
||||
transform @10 :List(Float32);
|
||||
|
||||
androidCaptureResult @9 :AndroidCaptureResult;
|
||||
|
||||
image @6 :Data;
|
||||
globalGainDEPRECATED @5 :Int32;
|
||||
|
||||
temperaturesC @24 :List(Float32);
|
||||
|
||||
@@ -163,6 +163,15 @@ struct FrameData {
|
||||
front @3;
|
||||
}
|
||||
|
||||
sensor @26 :ImageSensor;
|
||||
enum ImageSensor {
|
||||
unknown @0;
|
||||
ar0231 @1;
|
||||
ox03c10 @2;
|
||||
}
|
||||
|
||||
globalGainDEPRECATED @5 :Int32;
|
||||
androidCaptureResultDEPRECATED @9 :AndroidCaptureResult;
|
||||
struct AndroidCaptureResult {
|
||||
sensitivity @0 :Int32;
|
||||
frameDuration @1 :Int64;
|
||||
@@ -219,9 +228,9 @@ struct SensorEventData {
|
||||
fiber @2;
|
||||
velodyne @3; # Velodyne IMU
|
||||
bno055 @4; # Bosch accelerometer
|
||||
lsm6ds3 @5; # accelerometer (c2)
|
||||
bmp280 @6; # barometer (c2)
|
||||
mmc3416x @7; # magnetometer (c2)
|
||||
lsm6ds3 @5; # includes LSM6DS3 and LSM6DS3TR, TR = tape reel
|
||||
bmp280 @6; # barometer
|
||||
mmc3416x @7; # magnetometer
|
||||
bmx055 @8;
|
||||
rpr0521 @9;
|
||||
lsm6ds3trc @10;
|
||||
@@ -252,9 +261,7 @@ struct GpsLocationData {
|
||||
# Represents expected accuracy in meters. (presumably 1 sigma?)
|
||||
accuracy @6 :Float32;
|
||||
|
||||
# Timestamp for the location fix.
|
||||
# Milliseconds since January 1, 1970.
|
||||
timestamp @7 :Int64;
|
||||
unixTimestampMillis @7 :Int64;
|
||||
|
||||
source @8 :SensorSource;
|
||||
|
||||
@@ -291,10 +298,10 @@ struct CanData {
|
||||
}
|
||||
|
||||
struct DeviceState @0xa4d8b5af2aa492eb {
|
||||
usbOnline @12 :Bool;
|
||||
networkType @22 :NetworkType;
|
||||
networkInfo @31 :NetworkInfo;
|
||||
networkStrength @24 :NetworkStrength;
|
||||
networkStats @43 :NetworkStats;
|
||||
networkMetered @41 :Bool;
|
||||
lastAthenaPingTime @32 :UInt64;
|
||||
|
||||
@@ -308,10 +315,6 @@ struct DeviceState @0xa4d8b5af2aa492eb {
|
||||
cpuUsagePercent @34 :List(Int8); # per-core cpu usage
|
||||
|
||||
# power
|
||||
batteryPercent @8 :Int16;
|
||||
batteryCurrent @15 :Int32;
|
||||
chargingError @17 :Bool;
|
||||
chargingDisabled @18 :Bool;
|
||||
offroadPowerUsageUwh @23 :UInt32;
|
||||
carBatteryCapacityUwh @25 :UInt32;
|
||||
powerDrawW @40 :Float32;
|
||||
@@ -370,6 +373,11 @@ struct DeviceState @0xa4d8b5af2aa492eb {
|
||||
state @5 :Text;
|
||||
}
|
||||
|
||||
struct NetworkStats {
|
||||
wwanTx @0 :Int64;
|
||||
wwanRx @1 :Int64;
|
||||
}
|
||||
|
||||
# deprecated
|
||||
cpu0DEPRECATED @0 :UInt16;
|
||||
cpu1DEPRECATED @1 :UInt16;
|
||||
@@ -383,29 +391,45 @@ struct DeviceState @0xa4d8b5af2aa492eb {
|
||||
batteryStatusDEPRECATED @9 :Text;
|
||||
batteryVoltageDEPRECATED @16 :Int32;
|
||||
batteryTempCDEPRECATED @29 :Float32;
|
||||
batteryPercent @8 :Int16;
|
||||
batteryCurrent @15 :Int32;
|
||||
chargingError @17 :Bool;
|
||||
chargingDisabled @18 :Bool;
|
||||
usbOnline @12 :Bool;
|
||||
}
|
||||
|
||||
struct PandaState @0xa7649e2575e4591e {
|
||||
ignitionLine @2 :Bool;
|
||||
controlsAllowed @3 :Bool;
|
||||
gasInterceptorDetected @4 :Bool;
|
||||
canSendErrs @7 :UInt32;
|
||||
canFwdErrs @8 :UInt32;
|
||||
canRxErrs @19 :UInt32;
|
||||
rxBufferOverflow @7 :UInt32;
|
||||
txBufferOverflow @8 :UInt32;
|
||||
gmlanSendErrs @9 :UInt32;
|
||||
pandaType @10 :PandaType;
|
||||
ignitionCan @13 :Bool;
|
||||
safetyModel @14 :Car.CarParams.SafetyModel;
|
||||
safetyParam @27 :UInt16;
|
||||
alternativeExperience @23 :Int16;
|
||||
faultStatus @15 :FaultStatus;
|
||||
powerSaveEnabled @16 :Bool;
|
||||
uptime @17 :UInt32;
|
||||
faults @18 :List(FaultType);
|
||||
harnessStatus @21 :HarnessStatus;
|
||||
heartbeatLost @22 :Bool;
|
||||
blockedCnt @24 :UInt32;
|
||||
interruptLoad @25 :Float32;
|
||||
fanPower @28 :UInt8;
|
||||
|
||||
# can health
|
||||
canState0 @29 :PandaCanState;
|
||||
canState1 @30 :PandaCanState;
|
||||
canState2 @31 :PandaCanState;
|
||||
|
||||
# safety stuff
|
||||
controlsAllowed @3 :Bool;
|
||||
safetyRxInvalid @19 :UInt32;
|
||||
safetyTxBlocked @24 :UInt32;
|
||||
safetyModel @14 :Car.CarParams.SafetyModel;
|
||||
safetyParam @27 :UInt16;
|
||||
alternativeExperience @23 :Int16;
|
||||
safetyRxChecksInvalid @32 :Bool;
|
||||
#dp: enable torque interceptor
|
||||
torqueInterceptorDetected @33 :Bool;
|
||||
|
||||
enum FaultStatus {
|
||||
none @0;
|
||||
@@ -437,6 +461,8 @@ struct PandaState @0xa7649e2575e4591e {
|
||||
interruptRateClockSource @20;
|
||||
interruptRateTick @21;
|
||||
interruptRateExti @22;
|
||||
interruptRateSpi @23;
|
||||
interruptRateUart7 @24;
|
||||
# Update max fault type in boardd when adding faults
|
||||
}
|
||||
|
||||
@@ -449,6 +475,8 @@ struct PandaState @0xa7649e2575e4591e {
|
||||
uno @5;
|
||||
dos @6;
|
||||
redPanda @7;
|
||||
redPandaV2 @8;
|
||||
tres @9;
|
||||
}
|
||||
|
||||
enum HarnessStatus {
|
||||
@@ -462,9 +490,44 @@ struct PandaState @0xa7649e2575e4591e {
|
||||
currentDEPRECATED @1 :UInt32;
|
||||
hasGpsDEPRECATED @6 :Bool;
|
||||
fanSpeedRpmDEPRECATED @11 :UInt16;
|
||||
usbPowerModeDEPRECATED @12 :PeripheralState.UsbPowerMode;
|
||||
usbPowerMode @12 :PeripheralState.UsbPowerMode;
|
||||
safetyParamDEPRECATED @20 :Int16;
|
||||
safetyParam2DEPRECATED @26 :UInt32;
|
||||
|
||||
struct PandaCanState {
|
||||
busOff @0 :Bool;
|
||||
busOffCnt @1 :UInt32;
|
||||
errorWarning @2 :Bool;
|
||||
errorPassive @3 :Bool;
|
||||
lastError @4 :LecErrorCode;
|
||||
lastStoredError @5 :LecErrorCode;
|
||||
lastDataError @6 :LecErrorCode;
|
||||
lastDataStoredError @7 :LecErrorCode;
|
||||
receiveErrorCnt @8 :UInt8;
|
||||
transmitErrorCnt @9 :UInt8;
|
||||
totalErrorCnt @10 :UInt32;
|
||||
totalTxLostCnt @11 :UInt32;
|
||||
totalRxLostCnt @12 :UInt32;
|
||||
totalTxCnt @13 :UInt32;
|
||||
totalRxCnt @14 :UInt32;
|
||||
totalFwdCnt @15 :UInt32;
|
||||
canSpeed @16 :UInt16;
|
||||
canDataSpeed @17 :UInt16;
|
||||
canfdEnabled @18 :Bool;
|
||||
brsEnabled @19 :Bool;
|
||||
canfdNonIso @20 :Bool;
|
||||
|
||||
enum LecErrorCode {
|
||||
noError @0;
|
||||
stuffError @1;
|
||||
formError @2;
|
||||
ackError @3;
|
||||
bit1Error @4;
|
||||
bit0Error @5;
|
||||
crcError @6;
|
||||
noChange @7;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct PeripheralState {
|
||||
@@ -472,8 +535,8 @@ struct PeripheralState {
|
||||
voltage @1 :UInt32;
|
||||
current @2 :UInt32;
|
||||
fanSpeedRpm @3 :UInt16;
|
||||
usbPowerMode @4 :UsbPowerMode;
|
||||
|
||||
usbPowerMode @4 :UsbPowerMode;
|
||||
enum UsbPowerMode @0xa8883583b32c9877 {
|
||||
none @0;
|
||||
client @1;
|
||||
@@ -483,7 +546,6 @@ struct PeripheralState {
|
||||
}
|
||||
|
||||
struct RadarState @0x9a185389d6fdd05f {
|
||||
canMonoTimes @10 :List(UInt64);
|
||||
mdMonoTime @6 :UInt64;
|
||||
carStateMonoTime @11 :UInt64;
|
||||
radarErrors @12 :List(Car.RadarData.Error);
|
||||
@@ -518,6 +580,7 @@ struct RadarState @0x9a185389d6fdd05f {
|
||||
calStatusDEPRECATED @2 :Int8;
|
||||
calCycleDEPRECATED @8 :Int32;
|
||||
calPercDEPRECATED @9 :Int8;
|
||||
canMonoTimesDEPRECATED @10 :List(UInt64);
|
||||
}
|
||||
|
||||
struct LiveCalibrationData {
|
||||
@@ -532,6 +595,7 @@ struct LiveCalibrationData {
|
||||
# the direction of travel vector in device frame
|
||||
rpyCalib @7 :List(Float32);
|
||||
rpyCalibSpread @8 :List(Float32);
|
||||
wideFromDeviceEuler @10 :List(Float32);
|
||||
|
||||
warpMatrixDEPRECATED @0 :List(Float32);
|
||||
warpMatrix2DEPRECATED @5 :List(Float32);
|
||||
@@ -553,7 +617,6 @@ struct LiveTracks {
|
||||
|
||||
struct ControlsState @0x97ff69c53601abf1 {
|
||||
startMonoTime @48 :UInt64;
|
||||
canMonoTimes @21 :List(UInt64);
|
||||
longitudinalPlanMonoTime @28 :UInt64;
|
||||
lateralPlanMonoTime @50 :UInt64;
|
||||
|
||||
@@ -561,6 +624,8 @@ struct ControlsState @0x97ff69c53601abf1 {
|
||||
enabled @19 :Bool;
|
||||
active @36 :Bool;
|
||||
|
||||
experimentalMode @64 :Bool;
|
||||
|
||||
longControlState @30 :Car.CarControl.Actuators.LongControlState;
|
||||
vPid @2 :Float32;
|
||||
vTargetLead @3 :Float32;
|
||||
@@ -588,13 +653,19 @@ struct ControlsState @0x97ff69c53601abf1 {
|
||||
cumLagMs @15 :Float32;
|
||||
canErrorCounter @57 :UInt32;
|
||||
|
||||
# dp - for alt lateral
|
||||
dpLateralAltActive @66 :Bool;
|
||||
|
||||
lateralControlState :union {
|
||||
indiState @52 :LateralINDIState;
|
||||
pidState @53 :LateralPIDState;
|
||||
lqrState @55 :LateralLQRState;
|
||||
angleState @58 :LateralAngleState;
|
||||
debugState @59 :LateralDebugState;
|
||||
torqueState @60 :LateralTorqueState;
|
||||
curvatureState @65 :LateralCurvatureState;
|
||||
|
||||
#dp
|
||||
lqrState @55 :LateralLQRState;
|
||||
}
|
||||
|
||||
enum OpenpilotState @0xdbe58b96d2d1ac61 {
|
||||
@@ -602,7 +673,7 @@ struct ControlsState @0x97ff69c53601abf1 {
|
||||
preEnabled @1;
|
||||
enabled @2;
|
||||
softDisabling @3;
|
||||
overriding @4;
|
||||
overriding @4; # superset of overriding with steering or accelerator
|
||||
}
|
||||
|
||||
enum AlertStatus {
|
||||
@@ -679,6 +750,18 @@ struct ControlsState @0x97ff69c53601abf1 {
|
||||
steeringAngleDesiredDeg @4 :Float32;
|
||||
}
|
||||
|
||||
struct LateralCurvatureState {
|
||||
active @0 :Bool;
|
||||
actualCurvature @1 :Float32;
|
||||
desiredCurvature @2 :Float32;
|
||||
error @3 :Float32;
|
||||
p @4 :Float32;
|
||||
i @5 :Float32;
|
||||
f @6 :Float32;
|
||||
output @7 :Float32;
|
||||
saturated @8 :Bool;
|
||||
}
|
||||
|
||||
struct LateralDebugState {
|
||||
active @0 :Bool;
|
||||
steeringAngleDeg @1 :Float32;
|
||||
@@ -715,6 +798,18 @@ struct ControlsState @0x97ff69c53601abf1 {
|
||||
jerkFactorDEPRECATED @12 :Float32;
|
||||
steerOverrideDEPRECATED @20 :Bool;
|
||||
steeringAngleDesiredDegDEPRECATED @29 :Float32;
|
||||
canMonoTimesDEPRECATED @21 :List(UInt64);
|
||||
}
|
||||
|
||||
# All SI units and in device frame
|
||||
struct XYZTData @0xc3cbae1fd505ae80 {
|
||||
x @0 :List(Float32);
|
||||
y @1 :List(Float32);
|
||||
z @2 :List(Float32);
|
||||
t @3 :List(Float32);
|
||||
xStd @4 :List(Float32);
|
||||
yStd @5 :List(Float32);
|
||||
zStd @6 :List(Float32);
|
||||
}
|
||||
|
||||
struct ModelDataV2 {
|
||||
@@ -747,16 +842,9 @@ struct ModelDataV2 {
|
||||
|
||||
meta @12 :MetaData;
|
||||
|
||||
# All SI units and in device frame
|
||||
struct XYZTData {
|
||||
x @0 :List(Float32);
|
||||
y @1 :List(Float32);
|
||||
z @2 :List(Float32);
|
||||
t @3 :List(Float32);
|
||||
xStd @4 :List(Float32);
|
||||
yStd @5 :List(Float32);
|
||||
zStd @6 :List(Float32);
|
||||
}
|
||||
# Model perceived motion
|
||||
temporalPose @21 :Pose;
|
||||
|
||||
|
||||
struct LeadDataV2 {
|
||||
prob @0 :Float32; # probability that car is your lead at time t
|
||||
@@ -810,6 +898,13 @@ struct ModelDataV2 {
|
||||
brake4MetersPerSecondSquaredProbs @5 :List(Float32);
|
||||
brake5MetersPerSecondSquaredProbs @6 :List(Float32);
|
||||
}
|
||||
|
||||
struct Pose {
|
||||
trans @0 :List(Float32); # m/s in device frame
|
||||
rot @1 :List(Float32); # rad/s in device frame
|
||||
transStd @2 :List(Float32); # std m/s in device frame
|
||||
rotStd @3 :List(Float32); # std rad/s in device frame
|
||||
}
|
||||
}
|
||||
|
||||
struct EncodeIndex {
|
||||
@@ -882,6 +977,8 @@ struct LongitudinalPlan @0xe00b5b3eba12876c {
|
||||
turnSpeedControlState @45 :SpeedLimitControlState;
|
||||
turnSign @46 :Int16;
|
||||
|
||||
dpE2EIsBlended @49 :Bool;
|
||||
|
||||
enum LongitudinalPlanSource {
|
||||
cruise @0;
|
||||
lead0 @1;
|
||||
@@ -943,14 +1040,19 @@ struct LongitudinalPlan @0xe00b5b3eba12876c {
|
||||
leaving @3; # Road ahead straightens. Start to allow positive acceleration.
|
||||
}
|
||||
}
|
||||
struct UiPlan {
|
||||
frameId @2 :UInt32;
|
||||
position @0 :XYZTData;
|
||||
accel @1 :List(Float32);
|
||||
}
|
||||
|
||||
struct LateralPlan @0xe1e9318e2ae8b51e {
|
||||
modelMonoTime @31 :UInt64;
|
||||
laneWidth @0 :Float32;
|
||||
lProb @5 :Float32;
|
||||
rProb @7 :Float32;
|
||||
laneWidthDEPRECATED @0 :Float32;
|
||||
lProbDEPRECATED @5 :Float32;
|
||||
rProbDEPRECATED @7 :Float32;
|
||||
dPathPoints @20 :List(Float32);
|
||||
dProb @21 :Float32;
|
||||
dProbDEPRECATED @21 :Float32;
|
||||
|
||||
#dp
|
||||
dPathWLinesX @32 :List(Float32);
|
||||
@@ -1119,18 +1221,27 @@ struct ProcLog {
|
||||
}
|
||||
|
||||
struct GnssMeasurements {
|
||||
ubloxMonoTime @0 :UInt64;
|
||||
measTime @0 :UInt64;
|
||||
gpsWeek @1 :Int16;
|
||||
gpsTimeOfWeek @2 :Float64;
|
||||
|
||||
correctedMeasurements @3 :List(CorrectedMeasurement);
|
||||
ephemerisStatuses @9 :List(EphemerisStatus);
|
||||
|
||||
positionECEF @4 :LiveLocationKalman.Measurement;
|
||||
velocityECEF @5 :LiveLocationKalman.Measurement;
|
||||
# Used for debugging:
|
||||
positionFixECEF @6 :LiveLocationKalman.Measurement;
|
||||
kalmanPositionECEF @4 :LiveLocationKalman.Measurement;
|
||||
kalmanVelocityECEF @5 :LiveLocationKalman.Measurement;
|
||||
positionECEF @6 :LiveLocationKalman.Measurement;
|
||||
velocityECEF @7 :LiveLocationKalman.Measurement;
|
||||
timeToFirstFix @8 :Float32;
|
||||
# Todo sync this with timing pulse of ublox
|
||||
|
||||
struct EphemerisStatus {
|
||||
constellationId @0 :ConstellationId;
|
||||
svId @1 :UInt8;
|
||||
type @2 :EphemerisType;
|
||||
source @3 :EphemerisSource;
|
||||
}
|
||||
|
||||
struct CorrectedMeasurement {
|
||||
constellationId @0 :ConstellationId;
|
||||
svId @1 :UInt8;
|
||||
@@ -1143,32 +1254,41 @@ struct GnssMeasurements {
|
||||
# Satellite position and velocity [x,y,z]
|
||||
satPos @7 :List(Float64);
|
||||
satVel @8 :List(Float64);
|
||||
ephemerisSource @9 :EphemerisSource;
|
||||
ephemerisSourceDEPRECATED @9 :EphemerisSourceDEPRECATED;
|
||||
}
|
||||
|
||||
struct EphemerisSource {
|
||||
type @0 :EphemerisSourceType;
|
||||
struct EphemerisSourceDEPRECATED {
|
||||
type @0 :EphemerisType;
|
||||
# first epoch in file:
|
||||
gpsWeek @1 :Int16; # -1 if Nav
|
||||
gpsTimeOfWeek @2 :Int32; # -1 if Nav. Integer for seconds is good enough for logs.
|
||||
}
|
||||
|
||||
enum ConstellationId {
|
||||
# Satellite Constellation using the Ublox gnssid as index
|
||||
gps @0;
|
||||
sbas @1;
|
||||
galileo @2;
|
||||
beidou @3;
|
||||
imes @4;
|
||||
qznss @5;
|
||||
glonass @6;
|
||||
# Satellite Constellation using the Ublox gnssid as index
|
||||
gps @0;
|
||||
sbas @1;
|
||||
galileo @2;
|
||||
beidou @3;
|
||||
imes @4;
|
||||
qznss @5;
|
||||
glonass @6;
|
||||
}
|
||||
|
||||
enum EphemerisSourceType {
|
||||
enum EphemerisType {
|
||||
nav @0;
|
||||
# Different ultra-rapid files:
|
||||
nasaUltraRapid @1;
|
||||
glonassIacUltraRapid @2;
|
||||
# dp - eon/c2 need this renamed
|
||||
qcompoly @3;
|
||||
}
|
||||
|
||||
enum EphemerisSource {
|
||||
gnssChip @0;
|
||||
internet @1;
|
||||
cache @2;
|
||||
unknown @3;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1179,6 +1299,20 @@ struct UbloxGnss {
|
||||
ionoData @2 :IonoData;
|
||||
hwStatus @3 :HwStatus;
|
||||
hwStatus2 @4 :HwStatus2;
|
||||
glonassEphemeris @5 :GlonassEphemeris;
|
||||
satReport @6 :SatReport;
|
||||
}
|
||||
|
||||
struct SatReport {
|
||||
#received time of week in gps time in seconds and gps week
|
||||
iTow @0 :UInt32;
|
||||
svs @1 :List(SatInfo);
|
||||
|
||||
struct SatInfo {
|
||||
svId @0 :UInt8;
|
||||
gnssId @1 :UInt8;
|
||||
flagsBitfield @2 :UInt32;
|
||||
}
|
||||
}
|
||||
|
||||
struct MeasurementReport {
|
||||
@@ -1231,7 +1365,7 @@ struct UbloxGnss {
|
||||
carrierPhaseValid @1 :Bool;
|
||||
# half cycle valid
|
||||
halfCycleValid @2 :Bool;
|
||||
# half sycle subtracted from phase
|
||||
# half cycle subtracted from phase
|
||||
halfCycleSubtracted @3 :Bool;
|
||||
}
|
||||
}
|
||||
@@ -1272,7 +1406,7 @@ struct UbloxGnss {
|
||||
|
||||
iDot @26 :Float64;
|
||||
codesL2 @27 :Float64;
|
||||
gpsWeek @28 :Float64;
|
||||
gpsWeekDEPRECATED @28 :Float64;
|
||||
l2 @29 :Float64;
|
||||
|
||||
svAcc @30 :Float64;
|
||||
@@ -1289,6 +1423,9 @@ struct UbloxGnss {
|
||||
ionoAlpha @38 :List(Float64);
|
||||
ionoBeta @39 :List(Float64);
|
||||
|
||||
towCount @40 :UInt32;
|
||||
toeWeek @41 :UInt16;
|
||||
tocWeek @42 :UInt16;
|
||||
}
|
||||
|
||||
struct IonoData {
|
||||
@@ -1343,6 +1480,49 @@ struct UbloxGnss {
|
||||
flash @4;
|
||||
}
|
||||
}
|
||||
|
||||
struct GlonassEphemeris {
|
||||
svId @0 :UInt16;
|
||||
year @1 :UInt16;
|
||||
dayInYear @2 :UInt16;
|
||||
hour @3 :UInt16;
|
||||
minute @4 :UInt16;
|
||||
second @5 :Float32;
|
||||
|
||||
x @6 :Float64;
|
||||
xVel @7 :Float64;
|
||||
xAccel @8 :Float64;
|
||||
y @9 :Float64;
|
||||
yVel @10 :Float64;
|
||||
yAccel @11 :Float64;
|
||||
z @12 :Float64;
|
||||
zVel @13 :Float64;
|
||||
zAccel @14 :Float64;
|
||||
|
||||
svType @15 :UInt8;
|
||||
svURA @16 :Float32;
|
||||
age @17 :UInt8;
|
||||
|
||||
svHealth @18 :UInt8;
|
||||
tkDEPRECATED @19 :UInt16;
|
||||
tb @20 :UInt16;
|
||||
|
||||
tauN @21 :Float64;
|
||||
deltaTauN @22 :Float64;
|
||||
gammaN @23 :Float64;
|
||||
|
||||
p1 @24 :UInt8;
|
||||
p2 @25 :UInt8;
|
||||
p3 @26 :UInt8;
|
||||
p4 @27 :UInt8;
|
||||
|
||||
freqNumDEPRECATED @28 :UInt32;
|
||||
|
||||
n4 @29 :UInt8;
|
||||
nt @30 :UInt16;
|
||||
freqNum @31 :Int16;
|
||||
tkSeconds @32 :UInt32;
|
||||
}
|
||||
}
|
||||
|
||||
struct QcomGnss @0xde94674b07ae51c1 {
|
||||
@@ -1362,7 +1542,7 @@ struct QcomGnss @0xde94674b07ae51c1 {
|
||||
unknown3 @3;
|
||||
unknown4 @4;
|
||||
unknown5 @5;
|
||||
unknown6 @6;
|
||||
sbas @6;
|
||||
}
|
||||
|
||||
enum SVObservationState @0xe81e829a0d6c83e9 {
|
||||
@@ -1703,7 +1883,7 @@ struct DriverStateV2 {
|
||||
}
|
||||
}
|
||||
|
||||
struct DriverStateDEPRECATED @0xb83c6cc593ed0a00 {
|
||||
struct DriverState @0xb83c6cc593ed0a00 {
|
||||
frameId @0 :UInt32;
|
||||
modelExecutionTime @14 :Float32;
|
||||
dspExecutionTime @16 :Float32;
|
||||
@@ -1785,6 +1965,22 @@ struct LiveParametersData {
|
||||
roll @14 :Float32;
|
||||
}
|
||||
|
||||
struct LiveTorqueParametersData {
|
||||
liveValid @0 :Bool;
|
||||
latAccelFactorRaw @1 :Float32;
|
||||
latAccelOffsetRaw @2 :Float32;
|
||||
frictionCoefficientRaw @3 :Float32;
|
||||
latAccelFactorFiltered @4 :Float32;
|
||||
latAccelOffsetFiltered @5 :Float32;
|
||||
frictionCoefficientFiltered @6 :Float32;
|
||||
totalBucketPoints @7 :Float32;
|
||||
decay @8 :Float32;
|
||||
maxResets @9 :Float32;
|
||||
points @10 :List(List(Float32));
|
||||
version @11 :Int32;
|
||||
useParams @12 :Bool;
|
||||
}
|
||||
|
||||
struct LiveMapDataDEPRECATED {
|
||||
speedLimitValid @0 :Bool;
|
||||
speedLimit @1 :Float32;
|
||||
@@ -1812,6 +2008,8 @@ struct CameraOdometry {
|
||||
rot @1 :List(Float32); # rad/s in device frame
|
||||
transStd @2 :List(Float32); # std m/s in device frame
|
||||
rotStd @3 :List(Float32); # std rad/s in device frame
|
||||
wideFromDeviceEuler @6 :List(Float32);
|
||||
wideFromDeviceEulerStd @7 :List(Float32);
|
||||
}
|
||||
|
||||
struct LiveMapData {
|
||||
@@ -1848,6 +2046,10 @@ struct Sentinel {
|
||||
signal @1 :Int32;
|
||||
}
|
||||
|
||||
struct UIDebug {
|
||||
drawTimeMillis @0 :Float32;
|
||||
}
|
||||
|
||||
struct ManagerState {
|
||||
processes @0 :List(ProcessState);
|
||||
|
||||
@@ -1917,6 +2119,30 @@ struct NavRoute {
|
||||
}
|
||||
}
|
||||
|
||||
struct MapRenderState {
|
||||
locationMonoTime @0 :UInt64;
|
||||
renderTime @1 :Float32;
|
||||
frameId @2: UInt32;
|
||||
}
|
||||
|
||||
struct NavModelData {
|
||||
frameId @0 :UInt32;
|
||||
modelExecutionTime @1 :Float32;
|
||||
dspExecutionTime @2 :Float32;
|
||||
features @3 :List(Float32);
|
||||
# predicted future position
|
||||
position @4 :XYData;
|
||||
desirePrediction @5 :List(Float32);
|
||||
|
||||
# All SI units and in device frame
|
||||
struct XYData {
|
||||
x @0 :List(Float32);
|
||||
y @1 :List(Float32);
|
||||
xStd @2 :List(Float32);
|
||||
yStd @3 :List(Float32);
|
||||
}
|
||||
}
|
||||
|
||||
struct EncodeData {
|
||||
idx @0 :EncodeIndex;
|
||||
data @1 :Data;
|
||||
@@ -1924,6 +2150,18 @@ struct EncodeData {
|
||||
unixTimestampNanos @3 :UInt64;
|
||||
}
|
||||
|
||||
struct UserFlag {
|
||||
}
|
||||
|
||||
struct Microphone {
|
||||
soundPressure @0 :Float32;
|
||||
|
||||
# uncalibrated, A-weighted
|
||||
soundPressureWeighted @3 :Float32;
|
||||
soundPressureWeightedDb @1 :Float32;
|
||||
filteredSoundPressureWeightedDb @2 :Float32;
|
||||
}
|
||||
|
||||
struct Event {
|
||||
logMonoTime @0 :UInt64; # nanoseconds
|
||||
valid @67 :Bool = true;
|
||||
@@ -1940,7 +2178,13 @@ struct Event {
|
||||
gpsNMEA @3 :GPSNMEAData;
|
||||
can @5 :List(CanData);
|
||||
controlsState @7 :ControlsState;
|
||||
sensorEvents @11 :List(SensorEventData);
|
||||
gyroscope @99 :SensorEventData;
|
||||
gyroscope2 @100 :SensorEventData;
|
||||
accelerometer @98 :SensorEventData;
|
||||
accelerometer2 @101 :SensorEventData;
|
||||
magnetometer @95 :SensorEventData;
|
||||
lightSensor @96 :SensorEventData;
|
||||
temperatureSensor @97 :SensorEventData;
|
||||
pandaStates @81 :List(PandaState);
|
||||
peripheralState @80 :PeripheralState;
|
||||
radarState @13 :RadarState;
|
||||
@@ -1951,12 +2195,15 @@ struct Event {
|
||||
carControl @23 :Car.CarControl;
|
||||
longitudinalPlan @24 :LongitudinalPlan;
|
||||
lateralPlan @64 :LateralPlan;
|
||||
uiPlan @106 :UiPlan;
|
||||
ubloxGnss @34 :UbloxGnss;
|
||||
ubloxRaw @39 :Data;
|
||||
qcomGnss @31 :QcomGnss;
|
||||
gpsLocationExternal @48 :GpsLocationData;
|
||||
gpsLocation @21 :GpsLocationData;
|
||||
gnssMeasurements @91 :GnssMeasurements;
|
||||
liveParameters @61 :LiveParametersData;
|
||||
liveTorqueParameters @94 :LiveTorqueParametersData;
|
||||
cameraOdometry @63 :CameraOdometry;
|
||||
thumbnail @66: Thumbnail;
|
||||
carEvents @68: List(Car.CarEvent);
|
||||
@@ -1965,6 +2212,7 @@ struct Event {
|
||||
liveLocationKalman @72 :LiveLocationKalman;
|
||||
modelV2 @75 :ModelDataV2;
|
||||
driverStateV2 @92 :DriverStateV2;
|
||||
navModel @104 :NavModelData;
|
||||
|
||||
# camera stuff, each camera state has a matching encode idx
|
||||
roadCameraState @2 :FrameData;
|
||||
@@ -1975,6 +2223,9 @@ struct Event {
|
||||
wideRoadEncodeIdx @77 :EncodeIndex;
|
||||
qRoadEncodeIdx @90 :EncodeIndex;
|
||||
|
||||
# microphone data
|
||||
microphone @103 :Microphone;
|
||||
|
||||
# systems stuff
|
||||
androidLog @20 :AndroidLogEntry;
|
||||
managerState @78 :ManagerState;
|
||||
@@ -1989,7 +2240,12 @@ struct Event {
|
||||
navInstruction @82 :NavInstruction;
|
||||
navRoute @83 :NavRoute;
|
||||
navThumbnail @84: Thumbnail;
|
||||
mapRenderState @105: MapRenderState;
|
||||
|
||||
# UI services
|
||||
userFlag @93 :UserFlag;
|
||||
uiDebug @102 :UIDebug;
|
||||
# dp reserve 107,108
|
||||
# *********** debug ***********
|
||||
testJoystick @52 :Joystick;
|
||||
roadEncodeData @86 :EncodeData;
|
||||
@@ -1997,8 +2253,8 @@ struct Event {
|
||||
wideRoadEncodeData @88 :EncodeData;
|
||||
qRoadEncodeData @89 :EncodeData;
|
||||
|
||||
dragonConf @93 :Dp.DragonConf;
|
||||
liveMapData @94: LiveMapData;
|
||||
dragonConf @107 :Dp.DragonConf;
|
||||
liveMapData @108 :LiveMapData;
|
||||
|
||||
# *********** legacy + deprecated ***********
|
||||
model @9 :Legacy.ModelData; # TODO: rename modelV2 and mark this as deprecated
|
||||
@@ -2034,9 +2290,10 @@ struct Event {
|
||||
orbFeaturesSummaryDEPRECATED @58 :Legacy.OrbFeaturesSummary;
|
||||
featuresDEPRECATED @10 :Legacy.CalibrationFeatures;
|
||||
kalmanOdometryDEPRECATED @65 :Legacy.KalmanOdometry;
|
||||
gpsLocationDEPRECATED @21 :GpsLocationData;
|
||||
uiLayoutStateDEPRECATED @57 :Legacy.UiLayoutState;
|
||||
pandaStateDEPRECATED @12 :PandaState;
|
||||
driverStateDEPRECATED @59 :DriverStateDEPRECATED;
|
||||
# dp - legacy
|
||||
driverState @59 :DriverState;
|
||||
sensorEvents @11 :List(SensorEventData);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -259,4 +259,4 @@ class PubMaster:
|
||||
self.sock[s].send(dat)
|
||||
|
||||
def all_readers_updated(self, s: str) -> bool:
|
||||
return self.sock[s].all_readers_updated()
|
||||
return self.sock[s].all_readers_updated() # type: ignore
|
||||
|
||||
Binary file not shown.
@@ -1,8 +1,10 @@
|
||||
#pragma once
|
||||
#include "messaging.h"
|
||||
#include "msgq.h"
|
||||
#include <zmq.h>
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "cereal/messaging/messaging.h"
|
||||
#include "cereal/messaging/msgq.h"
|
||||
|
||||
#define MAX_POLLERS 128
|
||||
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
#pragma once
|
||||
#include "messaging.h"
|
||||
|
||||
#include <zmq.h>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "cereal/messaging/messaging.h"
|
||||
|
||||
#define MAX_POLLERS 128
|
||||
|
||||
|
||||
@@ -1,10 +1,15 @@
|
||||
#pragma once
|
||||
|
||||
#include <cstddef>
|
||||
#include <map>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <utility>
|
||||
#include <time.h>
|
||||
|
||||
#include <capnp/serialize.h>
|
||||
#include "../gen/cpp/log.capnp.h"
|
||||
|
||||
#include "cereal/gen/cpp/log.capnp.h"
|
||||
|
||||
#ifdef __APPLE__
|
||||
#define CLOCK_BOOTTIME CLOCK_MONOTONIC
|
||||
@@ -18,7 +23,7 @@ class Context {
|
||||
public:
|
||||
virtual void * getRawContext() = 0;
|
||||
static Context * create();
|
||||
virtual ~Context(){};
|
||||
virtual ~Context(){}
|
||||
};
|
||||
|
||||
class Message {
|
||||
@@ -66,7 +71,7 @@ public:
|
||||
|
||||
class SubMaster {
|
||||
public:
|
||||
SubMaster(const std::vector<const char *> &service_list,
|
||||
SubMaster(const std::vector<const char *> &service_list, const std::vector<const char *> &poll = {},
|
||||
const char *address = nullptr, const std::vector<const char *> &ignore_alive = {});
|
||||
void update(int timeout = 1000);
|
||||
void update_msgs(uint64_t current_time, const std::vector<std::pair<std::string, cereal::Event::Reader>> &messages);
|
||||
|
||||
@@ -6,7 +6,7 @@ from libcpp.vector cimport vector
|
||||
from libcpp cimport bool
|
||||
|
||||
|
||||
cdef extern from "messaging.h":
|
||||
cdef extern from "cereal/messaging/messaging.h":
|
||||
cdef cppclass Context:
|
||||
@staticmethod
|
||||
Context * create()
|
||||
|
||||
@@ -6,9 +6,6 @@
|
||||
"depends": [
|
||||
"cereal/messaging/messaging.h"
|
||||
],
|
||||
"include_dirs": [
|
||||
"./cereal/messaging"
|
||||
],
|
||||
"language": "c++",
|
||||
"name": "cereal.messaging.messaging_pyx",
|
||||
"sources": [
|
||||
@@ -717,7 +714,7 @@ static CYTHON_INLINE float __PYX_NAN() {
|
||||
#include "typeinfo"
|
||||
#include <errno.h>
|
||||
#include <vector>
|
||||
#include "messaging.h"
|
||||
#include "cereal/messaging/messaging.h"
|
||||
#ifdef _OPENMP
|
||||
#include <omp.h>
|
||||
#endif /* _OPENMP */
|
||||
|
||||
Binary file not shown.
@@ -1,15 +1,17 @@
|
||||
#pragma once
|
||||
|
||||
#include <cstdint>
|
||||
#include <cstring>
|
||||
#include <string>
|
||||
#include <atomic>
|
||||
|
||||
#define DEFAULT_SEGMENT_SIZE (10 * 1024 * 1024)
|
||||
#define NUM_READERS 10
|
||||
#define NUM_READERS 18 //default comma is 12
|
||||
#define ALIGN(n) ((n + (8 - 1)) & -8)
|
||||
|
||||
#define UNUSED(x) (void)x
|
||||
#define UNPACK64(higher, lower, input) do {uint64_t tmp = input; higher = tmp >> 32; lower = tmp & 0xFFFFFFFF;} while (0)
|
||||
#define PACK64(output, higher, lower) output = ((uint64_t)higher << 32 ) | ((uint64_t)lower & 0xFFFFFFFF)
|
||||
#define PACK64(output, higher, lower) output = ((uint64_t)higher << 32) | ((uint64_t)lower & 0xFFFFFFFF)
|
||||
|
||||
struct msgq_header_t {
|
||||
uint64_t num_readers;
|
||||
|
||||
+45
-41
@@ -3,29 +3,29 @@
|
||||
#define __SERVICES_H
|
||||
struct service { char name[0x100]; int port; bool should_log; int frequency; int decimation; };
|
||||
static struct service services[] = {
|
||||
{ "sensorEvents", 8001, true, 100, 100 },
|
||||
{ "gpsNMEA", 8002, true, 9, -1 },
|
||||
{ "deviceState", 8003, true, 2, 1 },
|
||||
{ "can", 8004, true, 100, -1 },
|
||||
{ "controlsState", 8005, true, 100, 10 },
|
||||
{ "pandaStates", 8006, true, 2, 1 },
|
||||
{ "peripheralState", 8007, true, 2, 1 },
|
||||
{ "radarState", 8008, true, 20, 5 },
|
||||
{ "roadEncodeIdx", 8009, false, 20, 1 },
|
||||
{ "liveTracks", 8010, true, 20, -1 },
|
||||
{ "sendcan", 8011, true, 100, 139 },
|
||||
{ "logMessage", 8012, true, 0, -1 },
|
||||
{ "errorLogMessage", 8013, true, 0, 1 },
|
||||
{ "liveCalibration", 8014, true, 4, 4 },
|
||||
{ "androidLog", 8015, true, 0, -1 },
|
||||
{ "carState", 8016, true, 100, 10 },
|
||||
{ "carControl", 8017, true, 100, 10 },
|
||||
{ "longitudinalPlan", 8018, true, 20, 5 },
|
||||
{ "procLog", 8019, true, 0, -1 },
|
||||
{ "gpsLocationExternal", 8020, true, 10, 10 },
|
||||
{ "deviceState", 8001, true, 2, 1 },
|
||||
{ "can", 8002, true, 100, 1223 },
|
||||
{ "controlsState", 8003, true, 100, 10 },
|
||||
{ "pandaStates", 8004, true, 2, 1 },
|
||||
{ "peripheralState", 8005, true, 2, 1 },
|
||||
{ "radarState", 8006, true, 20, 5 },
|
||||
{ "roadEncodeIdx", 8007, false, 20, 1 },
|
||||
{ "liveTracks", 8008, true, 20, -1 },
|
||||
{ "sendcan", 8009, true, 100, 139 },
|
||||
{ "logMessage", 8010, true, 0, -1 },
|
||||
{ "errorLogMessage", 8011, true, 0, 1 },
|
||||
{ "liveCalibration", 8012, true, 4, 4 },
|
||||
{ "liveTorqueParameters", 8013, true, 4, 1 },
|
||||
{ "androidLog", 8014, true, 0, -1 },
|
||||
{ "carState", 8015, true, 100, 10 },
|
||||
{ "carControl", 8016, true, 100, 10 },
|
||||
{ "longitudinalPlan", 8017, true, 20, 5 },
|
||||
{ "procLog", 8018, true, 0, -1 },
|
||||
{ "gpsLocationExternal", 8019, true, 10, 10 },
|
||||
{ "gpsLocation", 8020, true, 1, 1 },
|
||||
{ "ubloxGnss", 8021, true, 10, -1 },
|
||||
{ "qcomGnss", 8023, true, 2, -1 },
|
||||
{ "gnssMeasurements", 8024, true, 10, -1 },
|
||||
{ "gnssMeasurements", 8024, true, 10, 10 },
|
||||
{ "clocks", 8025, true, 1, 1 },
|
||||
{ "ubloxRaw", 8026, true, 20, -1 },
|
||||
{ "liveLocationKalman", 8027, true, 20, 5 },
|
||||
@@ -36,26 +36,30 @@ static struct service services[] = {
|
||||
{ "carEvents", 8032, true, 1, 1 },
|
||||
{ "carParams", 8033, true, 0, 1 },
|
||||
{ "roadCameraState", 8034, true, 20, 20 },
|
||||
{ "driverCameraState", 8035, true, 20, 20 },
|
||||
{ "driverEncodeIdx", 8036, false, 20, 1 },
|
||||
{ "driverStateV2", 8037, true, 20, 10 },
|
||||
{ "driverMonitoringState", 8038, true, 20, 10 },
|
||||
{ "wideRoadEncodeIdx", 8039, false, 20, 1 },
|
||||
{ "wideRoadCameraState", 8040, true, 20, 20 },
|
||||
{ "modelV2", 8041, true, 20, 40 },
|
||||
{ "managerState", 8042, true, 2, 1 },
|
||||
{ "uploaderState", 8043, true, 0, 1 },
|
||||
{ "navInstruction", 8044, true, 1, 10 },
|
||||
{ "navRoute", 8045, true, 0, -1 },
|
||||
{ "navThumbnail", 8046, true, 0, -1 },
|
||||
{ "qRoadEncodeIdx", 8047, false, 20, -1 },
|
||||
{ "testJoystick", 8048, true, 0, -1 },
|
||||
{ "roadEncodeData", 8049, false, 20, -1 },
|
||||
{ "driverEncodeData", 8050, false, 20, -1 },
|
||||
{ "wideRoadEncodeData", 8051, false, 20, -1 },
|
||||
{ "qRoadEncodeData", 8052, false, 20, -1 },
|
||||
{ "dragonConf", 8053, false, 1, -1 },
|
||||
{ "liveMapData", 8054, true, 0, -1 },
|
||||
{ "modelV2", 8035, true, 20, 40 },
|
||||
{ "managerState", 8036, true, 2, 1 },
|
||||
{ "uploaderState", 8037, true, 0, 1 },
|
||||
{ "navInstruction", 8038, true, 1, 10 },
|
||||
{ "navRoute", 8039, true, 0, -1 },
|
||||
{ "navThumbnail", 8040, true, 0, -1 },
|
||||
{ "navModel", 8041, true, 2, 4 },
|
||||
{ "mapRenderState", 8042, true, 2, 1 },
|
||||
{ "uiPlan", 8043, true, 20, 40 },
|
||||
{ "qRoadEncodeIdx", 8044, false, 20, -1 },
|
||||
{ "userFlag", 8045, true, 0, 1 },
|
||||
{ "uiDebug", 8046, true, 0, 1 },
|
||||
{ "testJoystick", 8047, true, 0, -1 },
|
||||
{ "roadEncodeData", 8048, false, 20, -1 },
|
||||
{ "driverEncodeData", 8049, false, 20, -1 },
|
||||
{ "wideRoadEncodeData", 8050, false, 20, -1 },
|
||||
{ "qRoadEncodeData", 8051, false, 20, -1 },
|
||||
{ "driverCameraState", 8052, true, 10, 10 },
|
||||
{ "driverEncodeIdx", 8053, false, 10, 1 },
|
||||
{ "driverState", 8054, true, 10, 5 },
|
||||
{ "driverMonitoringState", 8055, true, 10, 5 },
|
||||
{ "sensorEvents", 8056, true, 100, 100 },
|
||||
{ "dragonConf", 8057, false, 1, -1 },
|
||||
{ "liveMapData", 8058, true, 0, -1 },
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
+32
-10
@@ -21,10 +21,16 @@ class Service:
|
||||
services = {
|
||||
# service: (should_log, frequency, qlog decimation (optional))
|
||||
# note: the "EncodeIdx" packets will still be in the log
|
||||
"sensorEvents": (True, 100., 100),
|
||||
"gpsNMEA": (True, 9.),
|
||||
# "gyroscope": (True, 104., 104),
|
||||
# "gyroscope2": (True, 100., 100),
|
||||
# "accelerometer": (True, 104., 104),
|
||||
# "accelerometer2": (True, 100., 100),
|
||||
# "magnetometer": (True, 100., 100),
|
||||
# "lightSensor": (True, 100., 100),
|
||||
# "temperatureSensor": (True, 100., 100),
|
||||
# "gpsNMEA": (True, 9.),
|
||||
"deviceState": (True, 2., 1),
|
||||
"can": (True, 100.),
|
||||
"can": (True, 100., 1223), # decimation gives ~5 msgs in a full segment
|
||||
"controlsState": (True, 100., 10),
|
||||
"pandaStates": (True, 2., 1),
|
||||
"peripheralState": (True, 2., 1),
|
||||
@@ -35,15 +41,17 @@ services = {
|
||||
"logMessage": (True, 0.),
|
||||
"errorLogMessage": (True, 0., 1),
|
||||
"liveCalibration": (True, 4., 4),
|
||||
"liveTorqueParameters": (True, 4., 1),
|
||||
"androidLog": (True, 0.),
|
||||
"carState": (True, 100., 10),
|
||||
"carControl": (True, 100., 10),
|
||||
"longitudinalPlan": (True, 20., 5),
|
||||
"procLog": (True, 0.5),
|
||||
"gpsLocationExternal": (True, 10., 10),
|
||||
"gpsLocation": (True, 1., 1),
|
||||
"ubloxGnss": (True, 10.),
|
||||
"qcomGnss": (True, 2.),
|
||||
"gnssMeasurements": (True, 10.),
|
||||
"gnssMeasurements": (True, 10., 10),
|
||||
"clocks": (True, 1., 1),
|
||||
"ubloxRaw": (True, 20.),
|
||||
"liveLocationKalman": (True, 20., 5),
|
||||
@@ -54,21 +62,27 @@ services = {
|
||||
"carEvents": (True, 1., 1),
|
||||
"carParams": (True, 0.02, 1),
|
||||
"roadCameraState": (True, 20., 20),
|
||||
"driverCameraState": (True, 20., 20),
|
||||
"driverEncodeIdx": (False, 20., 1),
|
||||
"driverStateV2": (True, 20., 10),
|
||||
"driverMonitoringState": (True, 20., 10),
|
||||
"wideRoadEncodeIdx": (False, 20., 1),
|
||||
"wideRoadCameraState": (True, 20., 20),
|
||||
# "driverCameraState": (True, 20., 20),
|
||||
# "driverEncodeIdx": (False, 20., 1),
|
||||
# "driverStateV2": (True, 20., 10),
|
||||
# "driverMonitoringState": (True, 20., 10),
|
||||
# "wideRoadEncodeIdx": (False, 20., 1),
|
||||
# "wideRoadCameraState": (True, 20., 20),
|
||||
"modelV2": (True, 20., 40),
|
||||
"managerState": (True, 2., 1),
|
||||
"uploaderState": (True, 0., 1),
|
||||
"navInstruction": (True, 1., 10),
|
||||
"navRoute": (True, 0.),
|
||||
"navThumbnail": (True, 0.),
|
||||
"navModel": (True, 2., 4.),
|
||||
"mapRenderState": (True, 2., 1.),
|
||||
"uiPlan": (True, 20., 40.),
|
||||
"qRoadEncodeIdx": (False, 20.),
|
||||
"userFlag": (True, 0., 1),
|
||||
# "microphone": (True, 10., 10),
|
||||
|
||||
# debug
|
||||
"uiDebug": (True, 0., 1),
|
||||
"testJoystick": (True, 0.),
|
||||
"roadEncodeData": (False, 20.),
|
||||
"driverEncodeData": (False, 20.),
|
||||
@@ -76,7 +90,15 @@ services = {
|
||||
"qRoadEncodeData": (False, 20.),
|
||||
|
||||
# dp
|
||||
# legacy
|
||||
"driverCameraState": (True, 10., 10),
|
||||
"driverEncodeIdx": (False, 10., 1),
|
||||
"driverState": (True, 10, 5),
|
||||
"driverMonitoringState": (True, 10., 5),
|
||||
"sensorEvents": (True, 100., 100),
|
||||
# conf
|
||||
"dragonConf": (False, 1.),
|
||||
# mapd
|
||||
"liveMapData": (True, 0.),
|
||||
}
|
||||
service_list = {name: Service(new_port(idx), *vals) for # type: ignore
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
from cereal.visionipc.visionipc_pyx import VisionIpcClient, VisionIpcServer, VisionStreamType # pylint: disable=no-name-in-module, import-error
|
||||
assert VisionIpcClient
|
||||
assert VisionIpcServer
|
||||
assert VisionStreamType
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#pragma once
|
||||
#include "visionipc.h"
|
||||
|
||||
#include "cereal/visionipc/visionipc.h"
|
||||
|
||||
#define CL_USE_DEPRECATED_OPENCL_1_2_APIS
|
||||
#ifdef __APPLE__
|
||||
@@ -20,7 +21,7 @@ enum VisionStreamType {
|
||||
VISION_STREAM_DRIVER,
|
||||
VISION_STREAM_WIDE_ROAD,
|
||||
|
||||
VISION_STREAM_RGB_MAP,
|
||||
VISION_STREAM_MAP,
|
||||
VISION_STREAM_MAX,
|
||||
};
|
||||
|
||||
@@ -36,11 +37,13 @@ class VisionBuf {
|
||||
size_t width = 0;
|
||||
size_t height = 0;
|
||||
size_t stride = 0;
|
||||
size_t uv_offset = 0;
|
||||
|
||||
// YUV
|
||||
uint8_t * y = nullptr;
|
||||
uint8_t * u = nullptr;
|
||||
uint8_t * v = nullptr;
|
||||
uint8_t * uv = nullptr;
|
||||
|
||||
// Visionipc
|
||||
uint64_t server_id = 0;
|
||||
@@ -58,7 +61,7 @@ class VisionBuf {
|
||||
void import();
|
||||
void init_cl(cl_device_id device_id, cl_context ctx);
|
||||
void init_rgb(size_t width, size_t height, size_t stride);
|
||||
void init_yuv(size_t width, size_t height);
|
||||
void init_yuv(size_t width, size_t height, size_t stride, size_t uv_offset);
|
||||
int sync(int dir);
|
||||
int free();
|
||||
|
||||
|
||||
@@ -3,10 +3,11 @@
|
||||
|
||||
from libcpp.string cimport string
|
||||
from libcpp.vector cimport vector
|
||||
from libcpp.set cimport set
|
||||
from libc.stdint cimport uint32_t, uint64_t
|
||||
from libcpp cimport bool
|
||||
|
||||
cdef extern from "visionbuf.h":
|
||||
cdef extern from "cereal/visionipc/visionbuf.h":
|
||||
cdef enum VisionStreamType:
|
||||
pass
|
||||
|
||||
@@ -16,24 +17,29 @@ cdef extern from "visionbuf.h":
|
||||
size_t width
|
||||
size_t height
|
||||
size_t stride
|
||||
size_t uv_offset
|
||||
void set_frame_id(uint64_t id)
|
||||
|
||||
cdef extern from "visionipc.h":
|
||||
cdef extern from "cereal/visionipc/visionipc.h":
|
||||
struct VisionIpcBufExtra:
|
||||
uint32_t frame_id
|
||||
uint64_t timestamp_sof
|
||||
uint64_t timestamp_eof
|
||||
|
||||
cdef extern from "visionipc_server.h":
|
||||
cdef extern from "cereal/visionipc/visionipc_server.h":
|
||||
cdef cppclass VisionIpcServer:
|
||||
VisionIpcServer(string, void*, void*)
|
||||
void create_buffers(VisionStreamType, size_t, bool, size_t, size_t)
|
||||
void create_buffers_with_sizes(VisionStreamType, size_t, bool, size_t, size_t, size_t, size_t, size_t)
|
||||
VisionBuf * get_buffer(VisionStreamType)
|
||||
void send(VisionBuf *, VisionIpcBufExtra *, bool)
|
||||
void start_listener()
|
||||
|
||||
cdef extern from "visionipc_client.h":
|
||||
cdef extern from "cereal/visionipc/visionipc_client.h":
|
||||
cdef cppclass VisionIpcClient:
|
||||
VisionIpcClient(string, VisionStreamType, bool, void*, void*)
|
||||
VisionBuf * recv(VisionIpcBufExtra *, int)
|
||||
bool connect(bool)
|
||||
bool is_connected()
|
||||
@staticmethod
|
||||
set[VisionStreamType] getAvailableStreams(string, bool)
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
#pragma once
|
||||
#include <vector>
|
||||
|
||||
#include <set>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "messaging/messaging.h"
|
||||
#include "visionipc/visionipc.h"
|
||||
#include "visionipc/visionbuf.h"
|
||||
#include "cereal/messaging/messaging.h"
|
||||
#include "cereal/visionipc/visionipc.h"
|
||||
#include "cereal/visionipc/visionbuf.h"
|
||||
|
||||
class VisionIpcClient {
|
||||
private:
|
||||
@@ -14,8 +16,6 @@ private:
|
||||
SubSocket * sock;
|
||||
Poller * poller;
|
||||
|
||||
VisionStreamType type;
|
||||
|
||||
cl_device_id device_id = nullptr;
|
||||
cl_context ctx = nullptr;
|
||||
|
||||
@@ -23,6 +23,7 @@ private:
|
||||
|
||||
public:
|
||||
bool connected = false;
|
||||
VisionStreamType type;
|
||||
int num_buffers = 0;
|
||||
VisionBuf buffers[VISIONIPC_MAX_FDS];
|
||||
VisionIpcClient(std::string name, VisionStreamType type, bool conflate, cl_device_id device_id=nullptr, cl_context ctx=nullptr);
|
||||
@@ -30,4 +31,5 @@ public:
|
||||
VisionBuf * recv(VisionIpcBufExtra * extra=nullptr, const int timeout_ms=100);
|
||||
bool connect(bool blocking=true);
|
||||
bool is_connected() { return connected; }
|
||||
static std::set<VisionStreamType> getAvailableStreams(const std::string &name, bool blocking = true);
|
||||
};
|
||||
|
||||
+1678
-1054
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -5,9 +5,9 @@
|
||||
#include <atomic>
|
||||
#include <map>
|
||||
|
||||
#include "messaging/messaging.h"
|
||||
#include "visionipc/visionipc.h"
|
||||
#include "visionipc/visionbuf.h"
|
||||
#include "cereal/messaging/messaging.h"
|
||||
#include "cereal/visionipc/visionipc.h"
|
||||
#include "cereal/visionipc/visionbuf.h"
|
||||
|
||||
std::string get_endpoint_name(std::string name, VisionStreamType type);
|
||||
|
||||
@@ -37,6 +37,7 @@ class VisionIpcServer {
|
||||
VisionBuf * get_buffer(VisionStreamType type);
|
||||
|
||||
void create_buffers(VisionStreamType type, size_t num_buffers, bool rgb, size_t width, size_t height);
|
||||
void create_buffers_with_sizes(VisionStreamType type, size_t num_buffers, bool rgb, size_t width, size_t height, size_t size, size_t stride, size_t uv_offset);
|
||||
void send(VisionBuf * buf, VisionIpcBufExtra * extra, bool sync=true);
|
||||
void start_listener();
|
||||
};
|
||||
|
||||
+64
-17
@@ -5,7 +5,7 @@ import sys
|
||||
import json
|
||||
import time
|
||||
from math import floor
|
||||
# from system.hardware import EON, TICI
|
||||
from system.hardware import TICI
|
||||
|
||||
'''
|
||||
* type: Bool, Int8, UInt8, UInt16, Float32
|
||||
@@ -24,6 +24,7 @@ confs = [
|
||||
{'name': 'dp_jetson', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||
|
||||
# nav service
|
||||
{'name': 'dp_nav', 'default': True if TICI else False, 'type': 'Bool', 'conf_type': ['param']},
|
||||
{'name': 'dp_otisserv', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||
{'name': 'dp_nav_mapbox_token_pk', 'default': '', 'type': 'Text', 'conf_type': ['param']},
|
||||
{'name': 'dp_nav_mapbox_token_sk', 'default': '', 'type': 'Text', 'conf_type': ['param']},
|
||||
@@ -49,18 +50,30 @@ confs = [
|
||||
# lateral - alc
|
||||
{'name': 'dp_lateral_mode', 'default': 1, 'type': 'UInt8', 'min': 0, 'max': 2, 'conf_type': ['param', 'struct']},
|
||||
# {'name': 'dp_signal_off_delay', 'default': 3., 'type': 'Float32', 'min': 0., 'max': 10., 'depends': [{'name': 'dp_lateral_mode', 'vals': [0]}], 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_lc_min_mph', 'default': 30, 'type': 'UInt8', 'min': 0, 'max': 255, 'depends': [{'name': 'dp_lateral_mode', 'vals': [1, 2]}], 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_lc_min_mph', 'default': 15, 'type': 'UInt8', 'min': 0, 'max': 255, 'depends': [{'name': 'dp_lateral_mode', 'vals': [1, 2]}], 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_lc_auto_min_mph', 'default': 40, 'type': 'UInt8', 'min': 0, 'max': 255, 'depends': [{'name': 'dp_lateral_mode', 'vals': [2]}], 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_lc_auto_delay', 'default': 3., 'type': 'Float32', 'min': 0., 'max': 10., 'depends': [{'name': 'dp_lateral_mode', 'vals': [2]}], 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_lateral_lanelines', 'default': False, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_lateral_camera_offset', 'default': 4 if TICI else -6, 'type': 'Int8', 'min': -100, 'max': 100, 'depends': [{'name': 'dp_lateral_lanelines', 'vals': [True]}], 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_lateral_path_offset', 'default': 4 if TICI else 0, 'type': 'Int8', 'min': -100, 'max': 100, 'depends': [{'name': 'dp_lateral_lanelines', 'vals': [True]}], 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_lateral_road_edge_detected', 'default': False, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||
|
||||
#ui
|
||||
{'name': 'dp_ip_addr', 'default': '', 'type': 'Text', 'conf_type': ['struct']},
|
||||
{'name': 'dp_quiet_drive', 'default': False, 'type': 'Boolean', 'conf_type': ['param']},
|
||||
{'name': 'dp_quiet_drive', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||
{'name': 'dp_ui_top', 'default': False, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_ui_side', 'default': False, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_ui_volume', 'default': -5, 'type': 'Int8', 'min': -5, 'max': 100, 'conf_type': ['param', 'struct']},
|
||||
#{'name': 'dp_ui_volume', 'default': -5, 'type': 'Int8', 'min': -5, 'max': 100, 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_ui_brightness', 'default': 0, 'type': 'UInt8', 'min': 0, 'max': 100, 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_ui_display_mode', 'default': 0, 'type': 'UInt8', 'min': 0, 'max': 1, 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_ui_speed', 'default': True, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||
# {'name': 'dp_ui_event', 'default': True, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_ui_face', 'default': True, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_ui_lead_info', 'default': True, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_ui_laneline', 'default': True, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_ui_chevron', 'default': True, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_ui_dm_cam', 'default': True, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_ui_rainbow', 'default': False, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||
|
||||
#toyota
|
||||
{'name': 'dp_toyota_sng', 'default': False, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||
@@ -68,35 +81,54 @@ confs = [
|
||||
{'name': 'dp_accel_profile', 'default': 0, 'type': 'UInt8', 'min': 0, 'max': 2, 'depends': [{'name': 'dp_accel_profile_ctrl', 'vals': [True]}], 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_toyota_ap_btn_link', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||
{'name': 'dp_toyota_cruise_override', 'default': False, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_toyota_cruise_override_speed', 'default': 30, 'type': 'UInt8', 'min': 5, 'max': 60, 'depends': [{'name': 'dp_accel_profile_ctrl', 'vals': [True]}], 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_toyota_auto_lock', 'default': False, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_toyota_auto_unlock', 'default': False, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_toyota_fp_btn_link', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||
|
||||
{'name': 'dp_use_lanelines', 'default': False, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_mapd', 'default': False, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_local_db', 'default': False, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||
|
||||
# # dashcam related
|
||||
# {'name': 'dp_dashcamd', 'default': False, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||
|
||||
# dashcam related
|
||||
{'name': 'dp_dashcamd', 'default': False, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||
# # auto shutdown
|
||||
# {'name': 'dp_auto_shutdown', 'default': False, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||
# {'name': 'dp_auto_shutdown_in', 'default': 90, 'type': 'UInt16', 'min': 0, 'max': 600, 'depends': [{'name': 'dp_auto_shutdown', 'vals': [True]}], 'conf_type': ['param']},
|
||||
{'name': 'dp_auto_shutdown', 'default': True, 'type': 'Bool', 'conf_type': ['param']},
|
||||
{'name': 'dp_auto_shutdown_in', 'default': 60, 'type': 'UInt16', 'min': 0, 'max': 600, 'depends': [{'name': 'dp_auto_shutdown', 'vals': [True]}], 'conf_type': ['param']},
|
||||
|
||||
{'name': 'dp_mazda_steer_alert', 'default': False, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_mazda_dashcam_bypass', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||
# # service
|
||||
# {'name': 'dp_updated', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||
# {'name': 'dp_logger', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||
# {'name': 'dp_athenad', 'default': False, 'type': 'Bool', 'depends': [{'name': 'dp_atl', 'vals': [False]}], 'conf_type': ['param', 'struct'], 'update_once': True},
|
||||
# {'name': 'dp_uploader', 'default': False, 'type': 'Bool', 'depends': [{'name': 'dp_atl', 'vals': [False]}], 'conf_type': ['param', 'struct'], 'update_once': True},
|
||||
# # {'name': 'dp_gpxd', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||
# {'name': 'dp_hotspot_on_boot', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||
{'name': 'dp_hotspot_on_boot', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||
{'name': 'dp_honda_eps_mod', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||
{'name': 'dp_dm', 'default': True if not TICI else False, 'type': 'Bool', 'conf_type': ['param']},
|
||||
{'name': 'dp_speed_check', 'default': True, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_temp_check', 'default': True, 'type': 'Bool', 'conf_type': ['param']},
|
||||
# {'name': 'dp_vag_resume_fix', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||
# # lat ctrl
|
||||
# {'name': 'dp_lane_less_mode_ctrl', 'default': False, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||
# {'name': 'dp_lane_less_mode', 'default': 2, 'type': 'UInt8', 'min': 0, 'max': 2, 'depends': [{'name': 'dp_lane_less_mode_ctrl', 'vals': [True]}], 'conf_type': ['param', 'struct']},
|
||||
# # long ctrl
|
||||
# {'name': 'dp_allow_gas', 'default': False, 'type': 'Bool', 'depends': [{'name': 'dp_atl', 'vals': [False]}], 'conf_type': ['param', 'struct']},
|
||||
# #{'name': 'dp_following_profile_ctrl', 'default': False, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||
# #{'name': 'dp_following_profile', 'default': 0, 'type': 'UInt8', 'min': 0, 'max': 3, 'depends': [{'name': 'dp_following_profile_ctrl', 'vals': [True]}], 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_following_profile_ctrl', 'default': False, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_following_profile', 'default': 0, 'type': 'UInt8', 'min': 0, 'max': 2, 'depends': [{'name': 'dp_following_profile_ctrl', 'vals': [True]}], 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_lateral_tune', 'default': 0, 'type': 'UInt8', 'conf_type': ['param']},
|
||||
{'name': 'dp_lateral_torque_live_tune', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||
{'name': 'dp_lateral_alt', 'default': False, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_lateral_alt_speed', 'default': 80, 'type': 'UInt8', 'min': 10, 'max': 130, 'depends': [{'name': 'dp_lateral_alt', 'vals': [True]}], 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_lateral_alt_ctrl', 'default': 0, 'type': 'UInt8', 'min': 0, 'max': 3, 'depends': [{'name': 'dp_lateral_alt', 'vals': [True]}], 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_lateral_alt_lanelines', 'default': False, 'type': 'Bool', 'depends': [{'name': 'dp_lateral_alt', 'vals': [True]}], 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_lateral_alt_camera_offset', 'default': 4 if TICI else -6, 'type': 'Int8', 'min': -100, 'max': 100, 'depends': [{'name': 'dp_lateral_alt', 'vals': [True]}, {'name': 'dp_lateral_alt_lanelines', 'vals': [True]}], 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_lateral_alt_path_offset', 'default': 4 if TICI else 0, 'type': 'Int8', 'min': -100, 'max': 100, 'depends': [{'name': 'dp_lateral_alt', 'vals': [True]}, {'name': 'dp_lateral_alt_lanelines', 'vals': [True]}], 'conf_type': ['param', 'struct']},
|
||||
# {'name': 'dp_accel_profile_ctrl', 'default': False, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||
# {'name': 'dp_accel_profile', 'default': 0, 'type': 'UInt8', 'min': 0, 'max': 2, 'depends': [{'name': 'dp_accel_profile_ctrl', 'vals': [True]}], 'conf_type': ['param', 'struct']},
|
||||
# # safety
|
||||
# {'name': 'dp_gear_check', 'default': True, 'type': 'Bool', 'depends': [{'name': 'dp_atl', 'vals': [False]}], 'conf_type': ['param', 'struct']},
|
||||
# {'name': 'dp_speed_check', 'default': True, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||
# {'name': 'dp_temp_monitor', 'default': True, 'type': 'Bool', 'conf_type': ['param']},
|
||||
# # UIs
|
||||
# {'name': 'dp_ui_display_mode', 'default': 0, 'type': 'UInt8', 'min': 0, 'max': 1, 'conf_type': ['param', 'struct']},
|
||||
# {'name': 'dp_ui_speed', 'default': True, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||
@@ -111,9 +143,18 @@ confs = [
|
||||
# {'name': 'dp_ui_brightness', 'default': 0, 'type': 'UInt8', 'min': 0, 'max': 100, 'conf_type': ['param', 'struct']},
|
||||
# {'name': 'dp_ui_volume', 'default': -5, 'type': 'Int8', 'min': -5, 'max': 100, 'conf_type': ['param', 'struct']},
|
||||
# # toyota
|
||||
{'name': 'dp_toyota_rav4_tss2_tune', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||
{'name': 'dp_toyota_prius_bad_angle_tune', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||
{'name': 'dp_e2e_conditional', 'default': False, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||
#{'name': 'dp_e2e_conditional_at_speed', 'default': 60, 'type': 'UInt8', 'min': 30, 'max': 80, 'depends': [{'name': 'dp_e2e_conditional', 'vals': [True]}], 'conf_type': ['param', 'struct']},
|
||||
#{'name': 'dp_e2e_conditional_at_speed_lead', 'default': 40, 'type': 'UInt8', 'min': 0, 'max': 80, 'depends': [{'name': 'dp_e2e_conditional', 'vals': [True]}], 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_e2e_conditional_adapt_fp', 'default': False, 'type': 'Bool', 'depends': [{'name': 'dp_e2e_conditional', 'vals': [True]}], 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_e2e_conditional_adapt_ap', 'default': False, 'type': 'Bool', 'depends': [{'name': 'dp_e2e_conditional', 'vals': [True]}], 'conf_type': ['param', 'struct']},
|
||||
{'name': 'dp_e2e_conditional_voacc', 'default': False, 'type': 'Bool', 'depends': [{'name': 'dp_e2e_conditional', 'vals': [True]}], 'conf_type': ['param', 'struct']},
|
||||
# {'name': 'dp_toyota_no_min_acc_limit', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||
# {'name': 'dp_toyota_ldw', 'default': True, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||
# {'name': 'dp_toyota_zss', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||
{'name': 'dp_toyota_zss', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||
{'name': 'dp_toyota_change5speed', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||
# {'name': 'dp_toyota_fp_btn_link', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||
# {'name': 'dp_toyota_ap_btn_link', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||
# {'name': 'dp_toyota_disable_relay', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||
@@ -124,7 +165,6 @@ confs = [
|
||||
# # hyundai
|
||||
# {'name': 'dp_hkg_smart_mdps', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||
# # honda
|
||||
# {'name': 'dp_honda_eps_mod', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||
# {'name': 'dp_honda_kmh_display', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||
# # volkswagen
|
||||
# # {'name': 'dp_vw_panda', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||
@@ -132,7 +172,7 @@ confs = [
|
||||
# {'name': 'dp_ip_addr', 'default': '', 'type': 'Text', 'conf_type': ['struct']},
|
||||
# {'name': 'dp_fan_mode', 'default': 0, 'type': 'UInt8', 'min': 0, 'max': 2, 'conf_type': ['param']},
|
||||
# {'name': 'dp_last_modified', 'default': str(floor(time.time())), 'type': 'Text', 'conf_type': ['param']},
|
||||
# {'name': 'dp_camera_offset', 'default': 6 if EON else -4 if TICI else 0, 'type': 'Int8', 'min': -100, 'max': 100, 'conf_type': ['param', 'struct']},
|
||||
# {'name': 'dp_camera_offset', 'default': CAMERA_OFFSET, 'type': 'Int8', 'min': -100, 'max': 100, 'conf_type': ['param', 'struct']},
|
||||
# {'name': 'dp_path_offset', 'default': 0 if EON else -4 if TICI else 0, 'type': 'Int8', 'min': -100, 'max': 100, 'conf_type': ['param', 'struct']},
|
||||
#
|
||||
# {'name': 'dp_reg', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||
@@ -155,6 +195,13 @@ confs = [
|
||||
#
|
||||
# {'name': 'dp_no_offroad_fix', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||
# {'name': 'dp_ftpd', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||
{'name': 'dp_lateral_version', 'default': 0, 'min': 0, 'max': 2, 'type': 'UInt8', 'conf_type': ['param']},
|
||||
{'name': 'dp_lateral_steer_rate_cost', 'default': 1.0, 'min': 0.5, 'max': 2.0, 'type': 'Float32', 'conf_type': ['param']},
|
||||
{'name': 'dp_upload_ignored', 'default': True, 'type': 'Bool', 'conf_type': ['param']},
|
||||
{'name': 'local_trip_count_total', 'default': 0.0, 'type': 'Float32', 'conf_type': ['param']},
|
||||
{'name': 'local_trip_meter_total', 'default': 0.0, 'type': 'Float32', 'conf_type': ['param']},
|
||||
{'name': 'local_trip_min_total', 'default': 0.0, 'type': 'Float32', 'conf_type': ['param']},
|
||||
{'name': 'dp_lateral_lc_manual', 'default': False, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||
]
|
||||
|
||||
def get_definition(name):
|
||||
|
||||
@@ -8,6 +8,11 @@
|
||||
#define GPIO_UBLOX_PWR_EN 34
|
||||
#define GPIO_STM_RST_N 124
|
||||
#define GPIO_STM_BOOT0 134
|
||||
#define GPIO_BMX_ACCEL_INT 21
|
||||
#define GPIO_BMX_GYRO_INT 23
|
||||
#define GPIO_BMX_MAGN_INT 87
|
||||
#define GPIO_LSM_INT 84
|
||||
#define GPIOCHIP_INT 0
|
||||
#else
|
||||
#define GPIO_HUB_RST_N 0
|
||||
#define GPIO_UBLOX_RST_N 0
|
||||
@@ -15,7 +20,14 @@
|
||||
#define GPIO_UBLOX_PWR_EN 0
|
||||
#define GPIO_STM_RST_N 0
|
||||
#define GPIO_STM_BOOT0 0
|
||||
#define GPIO_BMX_ACCEL_INT 0
|
||||
#define GPIO_BMX_GYRO_INT 0
|
||||
#define GPIO_BMX_MAGN_INT 0
|
||||
#define GPIO_LSM_INT 0
|
||||
#define GPIOCHIP_INT 0
|
||||
#endif
|
||||
|
||||
int gpio_init(int pin_nr, bool output);
|
||||
int gpio_set(int pin_nr, bool high);
|
||||
|
||||
int gpiochip_get_ro_value_fd(const char* consumer_label, int gpiochiop_id, int pin_nr);
|
||||
|
||||
+12
-1
@@ -1,3 +1,5 @@
|
||||
from typing import Optional
|
||||
|
||||
def gpio_init(pin: int, output: bool) -> None:
|
||||
try:
|
||||
with open(f"/sys/class/gpio/gpio{pin}/direction", 'wb') as f:
|
||||
@@ -5,10 +7,19 @@ def gpio_init(pin: int, output: bool) -> None:
|
||||
except Exception as e:
|
||||
print(f"Failed to set gpio {pin} direction: {e}")
|
||||
|
||||
|
||||
def gpio_set(pin: int, high: bool) -> None:
|
||||
try:
|
||||
with open(f"/sys/class/gpio/gpio{pin}/value", 'wb') as f:
|
||||
f.write(b"1" if high else b"0")
|
||||
except Exception as e:
|
||||
print(f"Failed to set gpio {pin} value: {e}")
|
||||
|
||||
def gpio_read(pin: int) -> Optional[bool]:
|
||||
val = None
|
||||
try:
|
||||
with open(f"/sys/class/gpio/gpio{pin}/value", 'rb') as f:
|
||||
val = bool(int(f.read().strip()))
|
||||
except Exception as e:
|
||||
print(f"Failed to set gpio {pin} value: {e}")
|
||||
|
||||
return val
|
||||
|
||||
+10
-3
@@ -4,16 +4,23 @@ from common.params import Params
|
||||
locale_dir = "/data/openpilot/selfdrive/assets/locales"
|
||||
# supported_language = ["en-US", "zh-TW", "zh-CN", "ja-JP", "ko-KR"]
|
||||
supported_languages = {
|
||||
"main_en": "en-US",
|
||||
"main_zh-CHT": "zh-TW",
|
||||
"main_zh-CHS": "zh-CN",
|
||||
"main_ko": "ko-KR",
|
||||
"main_ja": "ja-JP",
|
||||
"main_de": "de-DE",
|
||||
"main_pt-BR": "pt_BR",
|
||||
}
|
||||
|
||||
def events():
|
||||
locale = Params().get("LanguageSetting", encoding='utf8')
|
||||
if locale is not None:
|
||||
locale = supported_languages[locale.strip()]
|
||||
else:
|
||||
try:
|
||||
if locale is not None:
|
||||
locale = supported_languages[locale.strip()]
|
||||
else:
|
||||
locale = "en-US"
|
||||
except KeyError:
|
||||
locale = "en-US"
|
||||
i18n = gettext.translation("events", localedir=locale_dir, fallback=True, languages=[locale])
|
||||
i18n.install()
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
#include "common/mat.h"
|
||||
#include "system/hardware/hw.h"
|
||||
|
||||
const int TRAJECTORY_SIZE = 33;
|
||||
const int TRAJECTORY_SIZE = 33;
|
||||
const int LAT_MPC_N = 16;
|
||||
const int LON_MPC_N = 32;
|
||||
const float MIN_DRAW_DISTANCE = 10.0;
|
||||
|
||||
+4
-2
@@ -2,6 +2,7 @@
|
||||
|
||||
#include <map>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
enum ParamKeyType {
|
||||
PERSISTENT = 0x02,
|
||||
@@ -15,6 +16,7 @@ enum ParamKeyType {
|
||||
class Params {
|
||||
public:
|
||||
Params(const std::string &path = {});
|
||||
std::vector<std::string> allKeys() const;
|
||||
bool checkKey(const std::string &key);
|
||||
ParamKeyType getKeyType(const std::string &key);
|
||||
inline std::string getParamPath(const std::string &key = {}) {
|
||||
@@ -27,8 +29,8 @@ public:
|
||||
|
||||
// helpers for reading values
|
||||
std::string get(const std::string &key, bool block = false);
|
||||
inline bool getBool(const std::string &key) {
|
||||
return get(key) == "1";
|
||||
inline bool getBool(const std::string &key, bool block = false) {
|
||||
return get(key, block) == "1";
|
||||
}
|
||||
std::map<std::string, std::string> readAll();
|
||||
|
||||
|
||||
+2
-1
@@ -1,8 +1,9 @@
|
||||
from common.params_pyx import Params, ParamKeyType, UnknownKeyName, put_nonblocking # pylint: disable=no-name-in-module, import-error
|
||||
from common.params_pyx import Params, ParamKeyType, UnknownKeyName, put_nonblocking, put_bool_nonblocking # pylint: disable=no-name-in-module, import-error
|
||||
assert Params
|
||||
assert ParamKeyType
|
||||
assert UnknownKeyName
|
||||
assert put_nonblocking
|
||||
assert put_bool_nonblocking
|
||||
|
||||
if __name__ == "__main__":
|
||||
import sys
|
||||
|
||||
+1244
-502
File diff suppressed because it is too large
Load Diff
+13
-12
@@ -2,6 +2,7 @@
|
||||
# cython: language_level = 3
|
||||
from libcpp cimport bool
|
||||
from libcpp.string cimport string
|
||||
from libcpp.vector cimport vector
|
||||
import threading
|
||||
|
||||
cdef extern from "common/params.h":
|
||||
@@ -15,13 +16,14 @@ cdef extern from "common/params.h":
|
||||
cdef cppclass c_Params "Params":
|
||||
c_Params(string) nogil
|
||||
string get(string, bool) nogil
|
||||
bool getBool(string) nogil
|
||||
bool getBool(string, bool) nogil
|
||||
int remove(string) nogil
|
||||
int put(string, string) nogil
|
||||
int putBool(string, bool) nogil
|
||||
bool checkKey(string) nogil
|
||||
string getParamPath(string) nogil
|
||||
void clearAll(ParamKeyType)
|
||||
vector[string] allKeys()
|
||||
|
||||
|
||||
def ensure_bytes(v):
|
||||
@@ -66,11 +68,11 @@ cdef class Params:
|
||||
|
||||
return val if encoding is None else val.decode(encoding)
|
||||
|
||||
def get_bool(self, key):
|
||||
def get_bool(self, key, bool block=False):
|
||||
cdef string k = self.check_key(key)
|
||||
cdef bool r
|
||||
with nogil:
|
||||
r = self.p.getBool(k)
|
||||
r = self.p.getBool(k, block)
|
||||
return r
|
||||
|
||||
def put(self, key, dat):
|
||||
@@ -90,7 +92,7 @@ cdef class Params:
|
||||
with nogil:
|
||||
self.p.putBool(k, val)
|
||||
|
||||
def delete(self, key):
|
||||
def remove(self, key):
|
||||
cdef string k = self.check_key(key)
|
||||
with nogil:
|
||||
self.p.remove(k)
|
||||
@@ -99,12 +101,11 @@ cdef class Params:
|
||||
cdef string key_bytes = ensure_bytes(key)
|
||||
return self.p.getParamPath(key_bytes).decode("utf-8")
|
||||
|
||||
def put_nonblocking(key, val, d=""):
|
||||
def f(key, val):
|
||||
params = Params(d)
|
||||
cdef string k = ensure_bytes(key)
|
||||
params.put(k, val)
|
||||
def all_keys(self):
|
||||
return self.p.allKeys()
|
||||
|
||||
t = threading.Thread(target=f, args=(key, val))
|
||||
t.start()
|
||||
return t
|
||||
def put_nonblocking(key, val, d=""):
|
||||
threading.Thread(target=lambda: Params(d).put(key, val)).start()
|
||||
|
||||
def put_bool_nonblocking(key, bool val, d=""):
|
||||
threading.Thread(target=lambda: Params(d).put_bool(key, val)).start()
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,34 @@
|
||||
#pragma once
|
||||
|
||||
#include <cassert>
|
||||
#include <string>
|
||||
|
||||
#include "common/params.h"
|
||||
#include "common/util.h"
|
||||
|
||||
class OpenpilotPrefix {
|
||||
public:
|
||||
OpenpilotPrefix(std::string prefix = {}) {
|
||||
if (prefix.empty()) {
|
||||
prefix = util::random_string(15);
|
||||
}
|
||||
msgq_path = "/dev/shm/" + prefix;
|
||||
bool ret = util::create_directories(msgq_path, 0777);
|
||||
assert(ret);
|
||||
setenv("OPENPILOT_PREFIX", prefix.c_str(), 1);
|
||||
}
|
||||
|
||||
~OpenpilotPrefix() {
|
||||
auto param_path = Params().getParamPath();
|
||||
if (util::file_exists(param_path)) {
|
||||
std::string real_path = util::readlink(param_path);
|
||||
system(util::string_format("rm %s -rf", real_path.c_str()).c_str());
|
||||
unlink(param_path.c_str());
|
||||
}
|
||||
system(util::string_format("rm %s -rf", msgq_path.c_str()).c_str());
|
||||
unsetenv("OPENPILOT_PREFIX");
|
||||
}
|
||||
|
||||
private:
|
||||
std::string msgq_path;
|
||||
};
|
||||
+2
-2
@@ -15,7 +15,7 @@ from system.hardware import PC, TICI
|
||||
DT_CTRL = 0.01 # controlsd
|
||||
DT_MDL = 0.05 # model
|
||||
DT_TRML = 0.5 # thermald and manager
|
||||
DT_DMON = 0.05 # driver monitoring
|
||||
DT_DMON = 0.1 # driver monitoring
|
||||
|
||||
|
||||
class Priority:
|
||||
@@ -31,7 +31,7 @@ class Priority:
|
||||
|
||||
def set_realtime_priority(level: int) -> None:
|
||||
if not PC:
|
||||
os.sched_setscheduler(0, os.SCHED_FIFO, os.sched_param(level)) # type: ignore[attr-defined] # pylint: disable=no-member
|
||||
os.sched_setscheduler(0, os.SCHED_FIFO, os.sched_param(level)) # pylint: disable=no-member
|
||||
|
||||
|
||||
def set_core_affinity(cores: List[int]) -> None:
|
||||
|
||||
@@ -90,6 +90,7 @@ def get_view_frame_from_road_frame(roll, pitch, yaw, height):
|
||||
return np.hstack((view_from_road, [[0], [height], [0]]))
|
||||
|
||||
|
||||
|
||||
# aka 'extrinsic_matrix'
|
||||
def get_view_frame_from_calib_frame(roll, pitch, yaw, height):
|
||||
device_from_calib= orient.rot_from_euler([roll, pitch, yaw])
|
||||
@@ -107,12 +108,6 @@ def vp_from_ke(m):
|
||||
return (m[0, 0]/m[2, 0], m[1, 0]/m[2, 0])
|
||||
|
||||
|
||||
def vp_from_rpy(rpy, intrinsics=fcam_intrinsics):
|
||||
e = get_view_frame_from_road_frame(rpy[0], rpy[1], rpy[2], 1.22)
|
||||
ke = np.dot(intrinsics, e)
|
||||
return vp_from_ke(ke)
|
||||
|
||||
|
||||
def roll_from_ke(m):
|
||||
# note: different from calibration.h/RollAnglefromKE: i think that one's just wrong
|
||||
return np.arctan2(-(m[1, 0] - m[1, 1] * m[2, 0] / m[2, 1]),
|
||||
@@ -176,11 +171,3 @@ def img_from_device(pt_device):
|
||||
pt_img = pt_view/pt_view[:, 2:3]
|
||||
return pt_img.reshape(input_shape)[:, :2]
|
||||
|
||||
|
||||
def get_camera_frame_from_calib_frame(camera_frame_from_road_frame, intrinsics=fcam_intrinsics):
|
||||
camera_frame_from_ground = camera_frame_from_road_frame[:, (0, 1, 3)]
|
||||
calib_frame_from_ground = np.dot(intrinsics,
|
||||
get_view_frame_from_road_frame(0, 0, 0, 1.22))[:, (0, 1, 3)]
|
||||
ground_from_calib_frame = np.linalg.inv(calib_frame_from_ground)
|
||||
camera_frame_from_calib_frame = np.dot(camera_frame_from_ground, ground_from_calib_frame)
|
||||
return camera_frame_from_calib_frame
|
||||
|
||||
+54
-103
@@ -1,10 +1,7 @@
|
||||
import numpy as np
|
||||
|
||||
from common.transformations.camera import (FULL_FRAME_SIZE,
|
||||
FOCAL,
|
||||
get_view_frame_from_road_frame,
|
||||
get_view_frame_from_calib_frame,
|
||||
vp_from_ke)
|
||||
get_view_frame_from_calib_frame)
|
||||
|
||||
# segnet
|
||||
SEGNET_SIZE = (512, 384)
|
||||
@@ -14,21 +11,6 @@ def get_segnet_frame_from_camera_frame(segnet_size=SEGNET_SIZE, full_frame_size=
|
||||
[0.0, float(segnet_size[1]) / full_frame_size[1]]])
|
||||
segnet_frame_from_camera_frame = get_segnet_frame_from_camera_frame() # xx
|
||||
|
||||
# model
|
||||
MODEL_INPUT_SIZE = (320, 160)
|
||||
MODEL_YUV_SIZE = (MODEL_INPUT_SIZE[0], MODEL_INPUT_SIZE[1] * 3 // 2)
|
||||
MODEL_CX = MODEL_INPUT_SIZE[0] / 2.
|
||||
MODEL_CY = 21.
|
||||
|
||||
model_fl = 728.0
|
||||
model_height = 1.22
|
||||
|
||||
# canonical model transform
|
||||
model_intrinsics = np.array([
|
||||
[model_fl, 0.0, MODEL_CX],
|
||||
[0.0, model_fl, MODEL_CY],
|
||||
[0.0, 0.0, 1.0]])
|
||||
|
||||
|
||||
# MED model
|
||||
MEDMODEL_INPUT_SIZE = (512, 256)
|
||||
@@ -63,104 +45,73 @@ sbigmodel_intrinsics = np.array([
|
||||
[0.0, sbigmodel_fl, 0.5 * (256 + MEDMODEL_CY)],
|
||||
[0.0, 0.0, 1.0]])
|
||||
|
||||
model_frame_from_road_frame = np.dot(model_intrinsics,
|
||||
get_view_frame_from_road_frame(0, 0, 0, model_height))
|
||||
|
||||
bigmodel_frame_from_road_frame = np.dot(bigmodel_intrinsics,
|
||||
get_view_frame_from_road_frame(0, 0, 0, model_height))
|
||||
|
||||
bigmodel_frame_from_calib_frame = np.dot(bigmodel_intrinsics,
|
||||
get_view_frame_from_calib_frame(0, 0, 0, 0))
|
||||
|
||||
sbigmodel_frame_from_road_frame = np.dot(sbigmodel_intrinsics,
|
||||
get_view_frame_from_road_frame(0, 0, 0, model_height))
|
||||
|
||||
sbigmodel_frame_from_calib_frame = np.dot(sbigmodel_intrinsics,
|
||||
get_view_frame_from_calib_frame(0, 0, 0, 0))
|
||||
|
||||
medmodel_frame_from_road_frame = np.dot(medmodel_intrinsics,
|
||||
get_view_frame_from_road_frame(0, 0, 0, model_height))
|
||||
|
||||
medmodel_frame_from_calib_frame = np.dot(medmodel_intrinsics,
|
||||
get_view_frame_from_calib_frame(0, 0, 0, 0))
|
||||
|
||||
model_frame_from_bigmodel_frame = np.dot(model_intrinsics, np.linalg.inv(bigmodel_intrinsics))
|
||||
medmodel_frame_from_bigmodel_frame = np.dot(medmodel_intrinsics, np.linalg.inv(bigmodel_intrinsics))
|
||||
|
||||
|
||||
# 'camera from model camera'
|
||||
def get_model_height_transform(camera_frame_from_road_frame, height):
|
||||
camera_frame_from_road_ground = np.dot(camera_frame_from_road_frame, np.array([
|
||||
[1, 0, 0],
|
||||
[0, 1, 0],
|
||||
[0, 0, 0],
|
||||
[0, 0, 1],
|
||||
]))
|
||||
### This function mimics the update_calibration logic in modeld.cc
|
||||
### Manually verified to give similar results to xx.uncommon.utils.transform_img
|
||||
def get_warp_matrix(rpy_calib, wide_cam=False, big_model=False, tici=True):
|
||||
from common.transformations.orientation import rot_from_euler
|
||||
from common.transformations.camera import view_frame_from_device_frame, eon_fcam_intrinsics, tici_ecam_intrinsics, tici_fcam_intrinsics
|
||||
|
||||
camera_frame_from_road_high = np.dot(camera_frame_from_road_frame, np.array([
|
||||
[1, 0, 0],
|
||||
[0, 1, 0],
|
||||
[0, 0, height - model_height],
|
||||
[0, 0, 1],
|
||||
]))
|
||||
|
||||
road_high_from_camera_frame = np.linalg.inv(camera_frame_from_road_high)
|
||||
high_camera_from_low_camera = np.dot(camera_frame_from_road_ground, road_high_from_camera_frame)
|
||||
|
||||
return high_camera_from_low_camera
|
||||
|
||||
|
||||
# camera_frame_from_model_frame aka 'warp matrix'
|
||||
# was: calibration.h/CalibrationTransform
|
||||
def get_camera_frame_from_model_frame(camera_frame_from_road_frame, height=model_height, camera_fl=FOCAL):
|
||||
vp = vp_from_ke(camera_frame_from_road_frame)
|
||||
|
||||
model_zoom = camera_fl / model_fl
|
||||
model_camera_from_model_frame = np.array([
|
||||
[model_zoom, 0.0, vp[0] - MODEL_CX * model_zoom],
|
||||
[0.0, model_zoom, vp[1] - MODEL_CY * model_zoom],
|
||||
[0.0, 0.0, 1.0],
|
||||
])
|
||||
|
||||
# This function is super slow, so skip it if height is very close to canonical
|
||||
# TODO: speed it up!
|
||||
if abs(height - model_height) > 0.001:
|
||||
camera_from_model_camera = get_model_height_transform(camera_frame_from_road_frame, height)
|
||||
if tici and wide_cam:
|
||||
intrinsics = tici_ecam_intrinsics
|
||||
elif tici:
|
||||
intrinsics = tici_fcam_intrinsics
|
||||
else:
|
||||
camera_from_model_camera = np.eye(3)
|
||||
intrinsics = eon_fcam_intrinsics
|
||||
|
||||
return np.dot(camera_from_model_camera, model_camera_from_model_frame)
|
||||
|
||||
|
||||
def get_camera_frame_from_medmodel_frame(camera_frame_from_road_frame):
|
||||
camera_frame_from_ground = camera_frame_from_road_frame[:, (0, 1, 3)]
|
||||
medmodel_frame_from_ground = medmodel_frame_from_road_frame[:, (0, 1, 3)]
|
||||
|
||||
ground_from_medmodel_frame = np.linalg.inv(medmodel_frame_from_ground)
|
||||
camera_frame_from_medmodel_frame = np.dot(camera_frame_from_ground, ground_from_medmodel_frame)
|
||||
|
||||
return camera_frame_from_medmodel_frame
|
||||
|
||||
|
||||
def get_camera_frame_from_bigmodel_frame(camera_frame_from_road_frame):
|
||||
camera_frame_from_ground = camera_frame_from_road_frame[:, (0, 1, 3)]
|
||||
bigmodel_frame_from_ground = bigmodel_frame_from_road_frame[:, (0, 1, 3)]
|
||||
|
||||
ground_from_bigmodel_frame = np.linalg.inv(bigmodel_frame_from_ground)
|
||||
camera_frame_from_bigmodel_frame = np.dot(camera_frame_from_ground, ground_from_bigmodel_frame)
|
||||
|
||||
return camera_frame_from_bigmodel_frame
|
||||
|
||||
|
||||
def get_model_frame(snu_full, camera_frame_from_model_frame, size):
|
||||
idxs = camera_frame_from_model_frame.dot(np.column_stack([np.tile(np.arange(size[0]), size[1]),
|
||||
np.tile(np.arange(size[1]), (size[0], 1)).T.flatten(),
|
||||
np.ones(size[0] * size[1])]).T).T.astype(int)
|
||||
calib_flat = snu_full[idxs[:, 1], idxs[:, 0]]
|
||||
if len(snu_full.shape) == 3:
|
||||
calib = calib_flat.reshape((size[1], size[0], 3))
|
||||
elif len(snu_full.shape) == 2:
|
||||
calib = calib_flat.reshape((size[1], size[0]))
|
||||
if big_model:
|
||||
sbigmodel_from_calib = sbigmodel_frame_from_calib_frame[:, (0,1,2)]
|
||||
calib_from_model = np.linalg.inv(sbigmodel_from_calib)
|
||||
else:
|
||||
raise ValueError("shape of input img is weird")
|
||||
return calib
|
||||
medmodel_from_calib = medmodel_frame_from_calib_frame[:, (0,1,2)]
|
||||
calib_from_model = np.linalg.inv(medmodel_from_calib)
|
||||
device_from_calib = rot_from_euler(rpy_calib)
|
||||
camera_from_calib = intrinsics.dot(view_frame_from_device_frame.dot(device_from_calib))
|
||||
warp_matrix = camera_from_calib.dot(calib_from_model)
|
||||
return warp_matrix
|
||||
|
||||
|
||||
### This is old, just for debugging
|
||||
def get_warp_matrix_old(rpy_calib, wide_cam=False, big_model=False, tici=True):
|
||||
from common.transformations.orientation import rot_from_euler
|
||||
from common.transformations.camera import view_frame_from_device_frame, eon_fcam_intrinsics, tici_ecam_intrinsics, tici_fcam_intrinsics
|
||||
|
||||
|
||||
def get_view_frame_from_road_frame(roll, pitch, yaw, height):
|
||||
device_from_road = rot_from_euler([roll, pitch, yaw]).dot(np.diag([1, -1, -1]))
|
||||
view_from_road = view_frame_from_device_frame.dot(device_from_road)
|
||||
return np.hstack((view_from_road, [[0], [height], [0]]))
|
||||
|
||||
if tici and wide_cam:
|
||||
intrinsics = tici_ecam_intrinsics
|
||||
elif tici:
|
||||
intrinsics = tici_fcam_intrinsics
|
||||
else:
|
||||
intrinsics = eon_fcam_intrinsics
|
||||
|
||||
model_height = 1.22
|
||||
if big_model:
|
||||
model_from_road = np.dot(sbigmodel_intrinsics,
|
||||
get_view_frame_from_road_frame(0, 0, 0, model_height))
|
||||
else:
|
||||
model_from_road = np.dot(medmodel_intrinsics,
|
||||
get_view_frame_from_road_frame(0, 0, 0, model_height))
|
||||
ground_from_model = np.linalg.inv(model_from_road[:, (0, 1, 3)])
|
||||
|
||||
E = get_view_frame_from_road_frame(*rpy_calib, 1.22)
|
||||
camera_frame_from_road_frame = intrinsics.dot(E)
|
||||
camera_frame_from_ground = camera_frame_from_road_frame[:,(0,1,3)]
|
||||
warp_matrix = camera_frame_from_ground .dot(ground_from_model)
|
||||
return warp_matrix
|
||||
|
||||
@@ -75,16 +75,19 @@ int getenv(const char* key, int default_val);
|
||||
float getenv(const char* key, float default_val);
|
||||
|
||||
std::string hexdump(const uint8_t* in, const size_t size);
|
||||
std::string random_string(std::string::size_type length);
|
||||
std::string dir_name(std::string const& path);
|
||||
|
||||
// **** file fhelpers *****
|
||||
std::string read_file(const std::string& fn);
|
||||
std::map<std::string, std::string> read_files_in_dir(const std::string& path);
|
||||
void remove_files_in_dir(const std::string& path);
|
||||
int write_file(const char* path, const void* data, size_t size, int flags = O_WRONLY, mode_t mode = 0664);
|
||||
|
||||
FILE* safe_fopen(const char* filename, const char* mode);
|
||||
size_t safe_fwrite(const void * ptr, size_t size, size_t count, FILE * stream);
|
||||
int safe_fflush(FILE *stream);
|
||||
int safe_ioctl(int fd, unsigned long request, void *argp);
|
||||
|
||||
std::string readlink(const std::string& path);
|
||||
bool file_exists(const std::string& fn);
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
#define COMMA_VERSION "2022.07.29"
|
||||
#define COMMA_VERSION "2023.04.13"
|
||||
|
||||
+260
-230
@@ -2,234 +2,263 @@
|
||||
|
||||
# Supported Cars
|
||||
|
||||
A supported vehicle is one that just works when you install a comma device. Every car performs differently with openpilot, but all supported cars should provide a better experience than any stock system.
|
||||
A supported vehicle is one that just works when you install a comma three. All supported cars provide a better experience than any stock system.
|
||||
|
||||
## How We Rate The Cars
|
||||
# 239 Supported Cars
|
||||
|
||||
### Stop and Go
|
||||
- [](##) - openpilot operates down to 0 mph.
|
||||
- [](##) - openpilot operates only above a minimum speed. See your car's manual for the minimum speed.
|
||||
|
||||
### Steer to 0
|
||||
- [](##) - openpilot can control the steering wheel down to 0 mph.
|
||||
- [](##) - No steering control below certain speeds. See your car's manual for the minimum speed.
|
||||
|
||||
### Steering Torque
|
||||
- [](##) - Car has enough steering torque to comfortably take most highway turns.
|
||||
- [](##) - Limited ability to make tighter turns.
|
||||
|
||||
|
||||
# 196 Supported Cars
|
||||
|
||||
|Make|Model|Supported Package|openpilot ACC|Stop and Go|Steer to 0|Steering Torque|
|
||||
|---|---|---|:---:|:---:|:---:|:---:|
|
||||
|Acura|ILX 2016-19|AcuraWatch Plus|[](##)|[](##)|[](##)|[](##)|
|
||||
|Acura|RDX 2016-18|AcuraWatch Plus|[](##)|[](##)|[](##)|[](##)|
|
||||
|Acura|RDX 2019-22|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Audi|A3 2014-19|ACC + Lane Assist|[](##)|[](##)|[](##)|[](##)|
|
||||
|Audi|A3 Sportback e-tron 2017-18|ACC + Lane Assist|[](##)|[](##)|[](##)|[](##)|
|
||||
|Audi|Q2 2018|ACC + Lane Assist|[](##)|[](##)|[](##)|[](##)|
|
||||
|Audi|Q3 2020-21|ACC + Lane Assist|[](##)|[](##)|[](##)|[](##)|
|
||||
|Audi|RS3 2018|ACC + Lane Assist|[](##)|[](##)|[](##)|[](##)|
|
||||
|Audi|S3 2015-17|ACC + Lane Assist|[](##)|[](##)|[](##)|[](##)|
|
||||
|Cadillac|Escalade ESV 2016[<sup>1</sup>](#footnotes)|ACC + LKAS|[](##)|[](##)|[](##)|[](##)|
|
||||
|Chevrolet|Volt 2017-18[<sup>1</sup>](#footnotes)|Adaptive Cruise|[](##)|[](##)|[](##)|[](##)|
|
||||
|Chrysler|Pacifica 2017-18|Adaptive Cruise|[](##)|[](##)|[](##)|[](##)|
|
||||
|Chrysler|Pacifica 2019-20|Adaptive Cruise|[](##)|[](##)|[](##)|[](##)|
|
||||
|Chrysler|Pacifica 2021|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Chrysler|Pacifica Hybrid 2017-18|Adaptive Cruise|[](##)|[](##)|[](##)|[](##)|
|
||||
|Chrysler|Pacifica Hybrid 2019-22|Adaptive Cruise|[](##)|[](##)|[](##)|[](##)|
|
||||
|comma|body|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Genesis|G70 2018-19|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Genesis|G70 2020|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Genesis|G80 2017-19|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Genesis|G90 2017-18|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|GMC|Acadia 2018[<sup>1</sup>](#footnotes)|Adaptive Cruise|[](##)|[](##)|[](##)|[](##)|
|
||||
|Honda|Accord 2018-22|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Honda|Accord Hybrid 2018-22|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Honda|Civic 2016-18|Honda Sensing|[](##)|[](##)|[](##)|[](##)|
|
||||
|Honda|Civic 2019-21|All|[](##)|[](##)|[](##)[<sup>2</sup>](#footnotes)|[](##)|
|
||||
|Honda|Civic 2022|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Honda|Civic Hatchback 2017-21|Honda Sensing|[](##)|[](##)|[](##)|[](##)|
|
||||
|Honda|Civic Hatchback 2022|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Honda|CR-V 2015-16|Touring|[](##)|[](##)|[](##)|[](##)|
|
||||
|Honda|CR-V 2017-22|Honda Sensing|[](##)|[](##)|[](##)|[](##)|
|
||||
|Honda|CR-V Hybrid 2017-19|Honda Sensing|[](##)|[](##)|[](##)|[](##)|
|
||||
|Honda|e 2020|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Honda|Fit 2018-20|Honda Sensing|[](##)|[](##)|[](##)|[](##)|
|
||||
|Honda|Freed 2020|Honda Sensing|[](##)|[](##)|[](##)|[](##)|
|
||||
|Honda|HR-V 2019-22|Honda Sensing|[](##)|[](##)|[](##)|[](##)|
|
||||
|Honda|Insight 2019-22|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Honda|Inspire 2018|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Honda|Odyssey 2018-22|Honda Sensing|[](##)|[](##)|[](##)|[](##)|
|
||||
|Honda|Passport 2019-21|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Honda|Pilot 2016-22|Honda Sensing|[](##)|[](##)|[](##)|[](##)|
|
||||
|Honda|Ridgeline 2017-22|Honda Sensing|[](##)|[](##)|[](##)|[](##)|
|
||||
|Hyundai|Elantra 2017-19|SCC + LKAS|[](##)|[](##)|[](##)|[](##)|
|
||||
|Hyundai|Elantra 2021-22|SCC + LKAS|[](##)|[](##)|[](##)|[](##)|
|
||||
|Hyundai|Elantra Hybrid 2021-22|SCC + LKAS|[](##)|[](##)|[](##)|[](##)|
|
||||
|Hyundai|Genesis 2015-16|SCC + LKAS|[](##)|[](##)|[](##)|[](##)|
|
||||
|Hyundai|Ioniq Electric 2019|SCC + LKAS|[](##)|[](##)|[](##)|[](##)|
|
||||
|Hyundai|Ioniq Electric 2020|SCC + LKAS|[](##)|[](##)|[](##)|[](##)|
|
||||
|Hyundai|Ioniq Hybrid 2017-19|SCC + LKAS|[](##)|[](##)|[](##)|[](##)|
|
||||
|Hyundai|Ioniq Hybrid 2020-22|SCC + LFA|[](##)|[](##)|[](##)|[](##)|
|
||||
|Hyundai|Ioniq Plug-in Hybrid 2019|SCC + LKAS|[](##)|[](##)|[](##)|[](##)|
|
||||
|Hyundai|Ioniq Plug-in Hybrid 2020-21|SCC + LKAS|[](##)|[](##)|[](##)|[](##)|
|
||||
|Hyundai|Kona 2020|SCC + LKAS|[](##)|[](##)|[](##)|[](##)|
|
||||
|Hyundai|Kona Electric 2018-21|SCC + LKAS|[](##)|[](##)|[](##)|[](##)|
|
||||
|Hyundai|Kona Hybrid 2020|SCC + LKAS|[](##)|[](##)|[](##)|[](##)|
|
||||
|Hyundai|Palisade 2020-22|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Hyundai|Santa Fe 2019-20|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Hyundai|Santa Fe 2021-22|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Hyundai|Santa Fe Hybrid 2022|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Hyundai|Santa Fe Plug-in Hybrid 2022|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Hyundai|Sonata 2018-19|SCC + LKAS|[](##)|[](##)|[](##)|[](##)|
|
||||
|Hyundai|Sonata 2020-22|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Hyundai|Sonata Hybrid 2020-22|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Hyundai|Tucson 2021|SCC + LKAS|[](##)|[](##)|[](##)|[](##)|
|
||||
|Hyundai|Tucson Diesel 2019|SCC + LKAS|[](##)|[](##)|[](##)|[](##)|
|
||||
|Hyundai|Veloster 2019-20|SCC + LKAS|[](##)|[](##)|[](##)|[](##)|
|
||||
|Jeep|Grand Cherokee 2016-18|Adaptive Cruise|[](##)|[](##)|[](##)|[](##)|
|
||||
|Jeep|Grand Cherokee 2019-21|Adaptive Cruise|[](##)|[](##)|[](##)|[](##)|
|
||||
|Kia|Ceed 2019|SCC + LKAS|[](##)|[](##)|[](##)|[](##)|
|
||||
|Kia|EV6 2022[<sup>3</sup>](#footnotes)|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Kia|Forte 2018|SCC + LKAS|[](##)|[](##)|[](##)|[](##)|
|
||||
|Kia|Forte 2019-21|SCC + LKAS|[](##)|[](##)|[](##)|[](##)|
|
||||
|Kia|K5 2021-22|SCC|[](##)|[](##)|[](##)|[](##)|
|
||||
|Kia|Niro Electric 2019-20|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Kia|Niro Electric 2021|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Kia|Niro Electric 2022|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Kia|Niro Hybrid 2021|SCC + LKAS|[](##)|[](##)|[](##)|[](##)|
|
||||
|Kia|Niro Hybrid 2022|SCC + LKAS|[](##)|[](##)|[](##)|[](##)|
|
||||
|Kia|Niro Plug-in Hybrid 2018-19|SCC + LKAS|[](##)|[](##)|[](##)|[](##)|
|
||||
|Kia|Optima 2017|SCC + LKAS|[](##)|[](##)|[](##)|[](##)|
|
||||
|Kia|Optima 2019|SCC + LKAS|[](##)|[](##)|[](##)|[](##)|
|
||||
|Kia|Seltos 2021|SCC + LKAS|[](##)|[](##)|[](##)|[](##)|
|
||||
|Kia|Sorento 2018|SCC + LKAS|[](##)|[](##)|[](##)|[](##)|
|
||||
|Kia|Sorento 2019|SCC + LKAS|[](##)|[](##)|[](##)|[](##)|
|
||||
|Kia|Stinger 2018-20|SCC + LKAS|[](##)|[](##)|[](##)|[](##)|
|
||||
|Kia|Telluride 2020|SCC + LKAS|[](##)|[](##)|[](##)|[](##)|
|
||||
|Lexus|CT Hybrid 2017-18|LSS|[](##)[<sup>4</sup>](#footnotes)|[](##)|[](##)|[](##)|
|
||||
|Lexus|ES 2019-22|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Lexus|ES Hybrid 2017-18|LSS|[](##)[<sup>4</sup>](#footnotes)|[](##)|[](##)|[](##)|
|
||||
|Lexus|ES Hybrid 2019-22|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Lexus|IS 2017-19|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Lexus|NX 2018-19|All|[](##)[<sup>4</sup>](#footnotes)|[](##)|[](##)|[](##)|
|
||||
|Lexus|NX 2020-21|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Lexus|NX Hybrid 2018-19|All|[](##)[<sup>4</sup>](#footnotes)|[](##)|[](##)|[](##)|
|
||||
|Lexus|NX Hybrid 2020-21|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Lexus|RC 2017-20|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Lexus|RX 2016-18|All|[](##)[<sup>4</sup>](#footnotes)|[](##)|[](##)|[](##)|
|
||||
|Lexus|RX 2020-22|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Lexus|RX Hybrid 2016-19|All|[](##)[<sup>4</sup>](#footnotes)|[](##)|[](##)|[](##)|
|
||||
|Lexus|RX Hybrid 2020-21|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Lexus|UX Hybrid 2019-22|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Mazda|CX-5 2022|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Mazda|CX-9 2021-22|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Nissan|Altima 2019-20|ProPILOT|[](##)|[](##)|[](##)|[](##)|
|
||||
|Nissan|Leaf 2018-22|ProPILOT|[](##)|[](##)|[](##)|[](##)|
|
||||
|Nissan|Rogue 2018-20|ProPILOT|[](##)|[](##)|[](##)|[](##)|
|
||||
|Nissan|X-Trail 2017|ProPILOT|[](##)|[](##)|[](##)|[](##)|
|
||||
|Ram|1500 2019-22|Adaptive Cruise|[](##)|[](##)|[](##)|[](##)|
|
||||
|SEAT|Ateca 2018|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|SEAT|Leon 2014-20|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Subaru|Ascent 2019-21|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Subaru|Crosstrek 2018-19|EyeSight|[](##)|[](##)|[](##)|[](##)|
|
||||
|Subaru|Crosstrek 2020-21|EyeSight|[](##)|[](##)|[](##)|[](##)|
|
||||
|Subaru|Forester 2019-21|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Subaru|Impreza 2017-19|EyeSight|[](##)|[](##)|[](##)|[](##)|
|
||||
|Subaru|Impreza 2020-22|EyeSight|[](##)|[](##)|[](##)|[](##)|
|
||||
|Subaru|XV 2018-19|EyeSight|[](##)|[](##)|[](##)|[](##)|
|
||||
|Subaru|XV 2020-21|EyeSight|[](##)|[](##)|[](##)|[](##)|
|
||||
|Škoda|Kamiq 2021[<sup>6</sup>](#footnotes)|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Škoda|Karoq 2019-21|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Škoda|Kodiaq 2018-19|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Škoda|Octavia 2015, 2018-19|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Škoda|Octavia RS 2016|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Škoda|Scala 2020|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Škoda|Superb 2015-18|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Toyota|Alphard 2019-20|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Toyota|Alphard Hybrid 2021|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Toyota|Avalon 2016|TSS-P|[](##)[<sup>4</sup>](#footnotes)|[](##)|[](##)|[](##)|
|
||||
|Toyota|Avalon 2017-18|All|[](##)[<sup>4</sup>](#footnotes)|[](##)|[](##)|[](##)|
|
||||
|Toyota|Avalon 2019-21|All|[](##)[<sup>4</sup>](#footnotes)|[](##)|[](##)|[](##)|
|
||||
|Toyota|Avalon 2022|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Toyota|Avalon Hybrid 2019-21|All|[](##)[<sup>4</sup>](#footnotes)|[](##)|[](##)|[](##)|
|
||||
|Toyota|Avalon Hybrid 2022|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Toyota|C-HR 2017-21|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Toyota|C-HR Hybrid 2017-19|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Toyota|Camry 2018-20|All|[](##)|[](##)[<sup>5</sup>](#footnotes)|[](##)|[](##)|
|
||||
|Toyota|Camry 2021-22|All|[](##)|[](##)[<sup>5</sup>](#footnotes)|[](##)|[](##)|
|
||||
|Toyota|Camry Hybrid 2018-20|All|[](##)|[](##)[<sup>5</sup>](#footnotes)|[](##)|[](##)|
|
||||
|Toyota|Camry Hybrid 2021-22|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Toyota|Corolla 2017-19|All|[](##)[<sup>4</sup>](#footnotes)|[](##)|[](##)|[](##)|
|
||||
|Toyota|Corolla 2020-22|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Toyota|Corolla Cross (Non-US only) 2020-21|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Toyota|Corolla Cross Hybrid (Non-US only) 2020-22|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Toyota|Corolla Hatchback 2019-22|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Toyota|Corolla Hybrid 2020-22|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Toyota|Highlander 2017-19|All|[](##)[<sup>4</sup>](#footnotes)|[](##)|[](##)|[](##)|
|
||||
|Toyota|Highlander 2020-22|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Toyota|Highlander Hybrid 2017-19|All|[](##)[<sup>4</sup>](#footnotes)|[](##)|[](##)|[](##)|
|
||||
|Toyota|Highlander Hybrid 2020-22|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Toyota|Mirai 2021|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Toyota|Prius 2016|TSS-P|[](##)[<sup>4</sup>](#footnotes)|[](##)|[](##)|[](##)|
|
||||
|Toyota|Prius 2017-20|All|[](##)[<sup>4</sup>](#footnotes)|[](##)|[](##)|[](##)|
|
||||
|Toyota|Prius 2021-22|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Toyota|Prius Prime 2017-20|All|[](##)[<sup>4</sup>](#footnotes)|[](##)|[](##)|[](##)|
|
||||
|Toyota|Prius Prime 2021-22|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Toyota|Prius v 2017|TSS-P|[](##)[<sup>4</sup>](#footnotes)|[](##)|[](##)|[](##)|
|
||||
|Toyota|RAV4 2016|TSS-P|[](##)[<sup>4</sup>](#footnotes)|[](##)|[](##)|[](##)|
|
||||
|Toyota|RAV4 2017-18|All|[](##)[<sup>4</sup>](#footnotes)|[](##)|[](##)|[](##)|
|
||||
|Toyota|RAV4 2019-21|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Toyota|RAV4 2022|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Toyota|RAV4 Hybrid 2016|TSS-P|[](##)[<sup>4</sup>](#footnotes)|[](##)|[](##)|[](##)|
|
||||
|Toyota|RAV4 Hybrid 2017-18|All|[](##)[<sup>4</sup>](#footnotes)|[](##)|[](##)|[](##)|
|
||||
|Toyota|RAV4 Hybrid 2019-21|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Toyota|RAV4 Hybrid 2022|All|[](##)|[](##)|[](##)|[](##)|
|
||||
|Toyota|Sienna 2018-20|All|[](##)[<sup>4</sup>](#footnotes)|[](##)|[](##)|[](##)|
|
||||
|Volkswagen|Arteon 2018-22[<sup>8,9</sup>](#footnotes)|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Volkswagen|Arteon eHybrid 2020-22[<sup>8,9</sup>](#footnotes)|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Volkswagen|Arteon R 2020-22[<sup>8,9</sup>](#footnotes)|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Volkswagen|Atlas 2018-22[<sup>8</sup>](#footnotes)|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Volkswagen|Atlas Cross Sport 2021-22[<sup>8</sup>](#footnotes)|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Volkswagen|California 2021[<sup>8</sup>](#footnotes)|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Volkswagen|Caravelle 2020[<sup>8</sup>](#footnotes)|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Volkswagen|CC 2018-22[<sup>8,9</sup>](#footnotes)|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Volkswagen|e-Golf 2014-20|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Volkswagen|Golf 2015-20[<sup>9</sup>](#footnotes)|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Volkswagen|Golf Alltrack 2015-19|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Volkswagen|Golf GTD 2015-20|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Volkswagen|Golf GTE 2015-20|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Volkswagen|Golf GTI 2015-21|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Volkswagen|Golf R 2015-19[<sup>9</sup>](#footnotes)|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Volkswagen|Golf SportsVan 2015-20|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Volkswagen|Jetta 2018-22[<sup>8</sup>](#footnotes)|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Volkswagen|Jetta GLI 2021-22[<sup>8</sup>](#footnotes)|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Volkswagen|Passat 2015-22[<sup>7,8,9</sup>](#footnotes)|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Volkswagen|Passat Alltrack 2015-22[<sup>8</sup>](#footnotes)|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Volkswagen|Passat GTE 2015-22[<sup>8,9</sup>](#footnotes)|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Volkswagen|Polo 2020-22[<sup>8</sup>](#footnotes)|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Volkswagen|Polo GTI 2020-22[<sup>8</sup>](#footnotes)|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Volkswagen|T-Cross 2021[<sup>8</sup>](#footnotes)|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Volkswagen|T-Roc 2021[<sup>8</sup>](#footnotes)|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Volkswagen|Taos 2022[<sup>8</sup>](#footnotes)|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Volkswagen|Teramont 2018-22[<sup>8</sup>](#footnotes)|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Volkswagen|Teramont Cross Sport 2021-22[<sup>8</sup>](#footnotes)|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Volkswagen|Teramont X 2021-22[<sup>8</sup>](#footnotes)|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Volkswagen|Tiguan 2019-22[<sup>8</sup>](#footnotes)|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Volkswagen|Touran 2017|Driver Assistance|[](##)|[](##)|[](##)|[](##)|
|
||||
|Make|Model|Supported Package|ACC|No ACC accel below|No ALC below|Steering Torque|Resume from stop|Harness|Video|
|
||||
|---|---|---|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|
||||
|Acura|ILX 2016-19|AcuraWatch Plus|openpilot|25 mph|25 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Acura&model=ILX 2016-19">Honda Nidec</a>||
|
||||
|Acura|RDX 2016-18|AcuraWatch Plus|openpilot|25 mph|12 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Acura&model=RDX 2016-18">Honda Nidec</a>||
|
||||
|Acura|RDX 2019-22|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|3 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Acura&model=RDX 2019-22">Honda Bosch A</a>||
|
||||
|Audi|A3 2014-19|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Audi&model=A3 2014-19">J533</a>||
|
||||
|Audi|A3 Sportback e-tron 2017-18|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Audi&model=A3 Sportback e-tron 2017-18">J533</a>||
|
||||
|Audi|Q2 2018|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Audi&model=Q2 2018">J533</a>||
|
||||
|Audi|Q3 2019-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Audi&model=Q3 2019-23">J533</a>||
|
||||
|Audi|RS3 2018|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Audi&model=RS3 2018">J533</a>||
|
||||
|Audi|S3 2015-17|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Audi&model=S3 2015-17">J533</a>||
|
||||
|Buick|LaCrosse 2017-19[<sup>3</sup>](#footnotes)|Driver Confidence Package 2|openpilot|18 mph|7 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Buick&model=LaCrosse 2017-19">OBD-II</a>||
|
||||
|Cadillac|Escalade 2017[<sup>3</sup>](#footnotes)|Driver Assist Package|openpilot|0 mph|7 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Cadillac&model=Escalade 2017">OBD-II</a>||
|
||||
|Cadillac|Escalade ESV 2016[<sup>3</sup>](#footnotes)|Adaptive Cruise Control (ACC) & LKAS|openpilot|0 mph|7 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Cadillac&model=Escalade ESV 2016">OBD-II</a>||
|
||||
|Chevrolet|Bolt EUV 2022-23|Premier or Premier Redline Trim without Super Cruise Package|openpilot available[<sup>1</sup>](#footnotes)|3 mph|6 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Chevrolet&model=Bolt EUV 2022-23">GM</a>|<a href="https://youtu.be/xvwzGMUA210" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Chevrolet|Bolt EV 2022-23|2LT Trim with Adaptive Cruise Control Package|openpilot available[<sup>1</sup>](#footnotes)|3 mph|6 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Chevrolet&model=Bolt EV 2022-23">GM</a>||
|
||||
|Chevrolet|Silverado 1500 2020-21|Safety Package II|openpilot available[<sup>1</sup>](#footnotes)|3 mph|6 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Chevrolet&model=Silverado 1500 2020-21">GM</a>||
|
||||
|Chevrolet|Volt 2017-18[<sup>3</sup>](#footnotes)|Adaptive Cruise Control (ACC)|openpilot|0 mph|7 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Chevrolet&model=Volt 2017-18">OBD-II</a>|<a href="https://youtu.be/QeMCN_4TFfQ" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Chrysler|Pacifica 2017-18|Adaptive Cruise Control (ACC)|Stock|0 mph|9 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Chrysler&model=Pacifica 2017-18">FCA</a>||
|
||||
|Chrysler|Pacifica 2019-20|Adaptive Cruise Control (ACC)|Stock|0 mph|39 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Chrysler&model=Pacifica 2019-20">FCA</a>||
|
||||
|Chrysler|Pacifica 2021|All|Stock|0 mph|39 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Chrysler&model=Pacifica 2021">FCA</a>||
|
||||
|Chrysler|Pacifica Hybrid 2017-18|Adaptive Cruise Control (ACC)|Stock|0 mph|9 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Chrysler&model=Pacifica Hybrid 2017-18">FCA</a>||
|
||||
|Chrysler|Pacifica Hybrid 2019-22|Adaptive Cruise Control (ACC)|Stock|0 mph|39 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Chrysler&model=Pacifica Hybrid 2019-22">FCA</a>||
|
||||
|comma|body|All|openpilot|0 mph|0 mph|[](##)|[](##)|None||
|
||||
|Genesis|G70 2018-19|All|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Genesis&model=G70 2018-19">Hyundai F</a>||
|
||||
|Genesis|G70 2020|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Genesis&model=G70 2020">Hyundai F</a>||
|
||||
|Genesis|G80 2017|All|Stock|19 mph|37 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Genesis&model=G80 2017">Hyundai J</a>||
|
||||
|Genesis|G80 2018-19|All|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Genesis&model=G80 2018-19">Hyundai H</a>||
|
||||
|Genesis|G90 2017-18|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Genesis&model=G90 2017-18">Hyundai C</a>||
|
||||
|Genesis|GV60 (Advanced Trim) 2023[<sup>5</sup>](#footnotes)|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Genesis&model=GV60 (Advanced Trim) 2023">Hyundai A</a>||
|
||||
|Genesis|GV60 (Performance Trim) 2023[<sup>5</sup>](#footnotes)|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Genesis&model=GV60 (Performance Trim) 2023">Hyundai K</a>||
|
||||
|Genesis|GV70 2022-23[<sup>5</sup>](#footnotes)|All|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Genesis&model=GV70 2022-23">Hyundai L</a>||
|
||||
|GMC|Acadia 2018[<sup>3</sup>](#footnotes)|Adaptive Cruise Control (ACC)|openpilot|0 mph|7 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=GMC&model=Acadia 2018">OBD-II</a>|<a href="https://www.youtube.com/watch?v=0ZN6DdsBUZo" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|GMC|Sierra 1500 2020-21|Driver Alert Package II|openpilot available[<sup>1</sup>](#footnotes)|3 mph|6 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=GMC&model=Sierra 1500 2020-21">GM</a>|<a href="https://youtu.be/5HbNoBLzRwE" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Honda|Accord 2018-22|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|3 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Honda&model=Accord 2018-22">Honda Bosch A</a>|<a href="https://www.youtube.com/watch?v=mrUwlj3Mi58" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Honda|Accord Hybrid 2018-22|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|3 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Honda&model=Accord Hybrid 2018-22">Honda Bosch A</a>||
|
||||
|Honda|Civic 2016-18|Honda Sensing|openpilot|0 mph|12 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Honda&model=Civic 2016-18">Honda Nidec</a>|<a href="https://youtu.be/-IkImTe1NYE" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Honda|Civic 2019-21|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|2 mph[<sup>4</sup>](#footnotes)|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Honda&model=Civic 2019-21">Honda Bosch A</a>|<a href="https://www.youtube.com/watch?v=4Iz1Mz5LGF8" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Honda|Civic 2022|All|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Honda&model=Civic 2022">Honda Bosch B</a>||
|
||||
|Honda|Civic Hatchback 2017-21|Honda Sensing|openpilot available[<sup>1</sup>](#footnotes)|0 mph|12 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Honda&model=Civic Hatchback 2017-21">Honda Bosch A</a>||
|
||||
|Honda|Civic Hatchback 2022|All|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Honda&model=Civic Hatchback 2022">Honda Bosch B</a>||
|
||||
|Honda|CR-V 2015-16|Touring Trim|openpilot|25 mph|12 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Honda&model=CR-V 2015-16">Honda Nidec</a>||
|
||||
|Honda|CR-V 2017-22|Honda Sensing|openpilot available[<sup>1</sup>](#footnotes)|0 mph|12 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Honda&model=CR-V 2017-22">Honda Bosch A</a>||
|
||||
|Honda|CR-V Hybrid 2017-19|Honda Sensing|openpilot available[<sup>1</sup>](#footnotes)|0 mph|12 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Honda&model=CR-V Hybrid 2017-19">Honda Bosch A</a>||
|
||||
|Honda|e 2020|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|3 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Honda&model=e 2020">Honda Bosch A</a>||
|
||||
|Honda|Fit 2018-20|Honda Sensing|openpilot|25 mph|12 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Honda&model=Fit 2018-20">Honda Nidec</a>||
|
||||
|Honda|Freed 2020|Honda Sensing|openpilot|25 mph|12 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Honda&model=Freed 2020">Honda Nidec</a>||
|
||||
|Honda|HR-V 2019-22|Honda Sensing|openpilot|25 mph|12 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Honda&model=HR-V 2019-22">Honda Nidec</a>||
|
||||
|Honda|Insight 2019-22|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|3 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Honda&model=Insight 2019-22">Honda Bosch A</a>||
|
||||
|Honda|Inspire 2018|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|3 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Honda&model=Inspire 2018">Honda Bosch A</a>||
|
||||
|Honda|Odyssey 2018-20|Honda Sensing|openpilot|25 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Honda&model=Odyssey 2018-20">Honda Nidec</a>||
|
||||
|Honda|Passport 2019-21|All|openpilot|25 mph|12 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Honda&model=Passport 2019-21">Honda Nidec</a>||
|
||||
|Honda|Pilot 2016-22|Honda Sensing|openpilot|25 mph|12 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Honda&model=Pilot 2016-22">Honda Nidec</a>||
|
||||
|Honda|Ridgeline 2017-22|Honda Sensing|openpilot|25 mph|12 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Honda&model=Ridgeline 2017-22">Honda Nidec</a>||
|
||||
|Hyundai|Elantra 2017-19|Smart Cruise Control (SCC)|Stock|19 mph|32 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Hyundai&model=Elantra 2017-19">Hyundai B</a>||
|
||||
|Hyundai|Elantra 2021-23|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Hyundai&model=Elantra 2021-23">Hyundai K</a>|<a href="https://youtu.be/_EdYQtV52-c" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Hyundai|Elantra GT 2017-19|Smart Cruise Control (SCC)|Stock|0 mph|32 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Hyundai&model=Elantra GT 2017-19">Hyundai E</a>||
|
||||
|Hyundai|Elantra Hybrid 2021-23|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Hyundai&model=Elantra Hybrid 2021-23">Hyundai K</a>|<a href="https://youtu.be/_EdYQtV52-c" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Hyundai|Genesis 2015-16|Smart Cruise Control (SCC)|Stock|19 mph|37 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Hyundai&model=Genesis 2015-16">Hyundai J</a>||
|
||||
|Hyundai|i30 2017-19|Smart Cruise Control (SCC)|Stock|0 mph|32 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Hyundai&model=i30 2017-19">Hyundai E</a>||
|
||||
|Hyundai|Ioniq 5 (Southeast Asia only) 2022-23[<sup>5</sup>](#footnotes)|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Hyundai&model=Ioniq 5 (Southeast Asia only) 2022-23">Hyundai Q</a>||
|
||||
|Hyundai|Ioniq 5 (with HDA II) 2022-23[<sup>5</sup>](#footnotes)|Highway Driving Assist II|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Hyundai&model=Ioniq 5 (with HDA II) 2022-23">Hyundai Q</a>||
|
||||
|Hyundai|Ioniq 5 (without HDA II) 2022-23[<sup>5</sup>](#footnotes)|Highway Driving Assist|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Hyundai&model=Ioniq 5 (without HDA II) 2022-23">Hyundai K</a>||
|
||||
|Hyundai|Ioniq Electric 2019|Smart Cruise Control (SCC)|Stock|0 mph|32 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Hyundai&model=Ioniq Electric 2019">Hyundai C</a>||
|
||||
|Hyundai|Ioniq Electric 2020|All|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Hyundai&model=Ioniq Electric 2020">Hyundai H</a>||
|
||||
|Hyundai|Ioniq Hybrid 2017-19|Smart Cruise Control (SCC)|Stock|0 mph|32 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Hyundai&model=Ioniq Hybrid 2017-19">Hyundai C</a>||
|
||||
|Hyundai|Ioniq Hybrid 2020-22|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Hyundai&model=Ioniq Hybrid 2020-22">Hyundai H</a>||
|
||||
|Hyundai|Ioniq Plug-in Hybrid 2019|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|32 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Hyundai&model=Ioniq Plug-in Hybrid 2019">Hyundai C</a>||
|
||||
|Hyundai|Ioniq Plug-in Hybrid 2020-21|All|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Hyundai&model=Ioniq Plug-in Hybrid 2020-21">Hyundai H</a>||
|
||||
|Hyundai|Kona 2020|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Hyundai&model=Kona 2020">Hyundai B</a>||
|
||||
|Hyundai|Kona Electric 2018-21|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Hyundai&model=Kona Electric 2018-21">Hyundai G</a>||
|
||||
|Hyundai|Kona Electric 2022|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Hyundai&model=Kona Electric 2022">Hyundai O</a>||
|
||||
|Hyundai|Kona Hybrid 2020|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Hyundai&model=Kona Hybrid 2020">Hyundai I</a>|<a href="https://youtu.be/0dwpAHiZgFo" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Hyundai|Palisade 2020-22|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Hyundai&model=Palisade 2020-22">Hyundai H</a>|<a href="https://youtu.be/TAnDqjF4fDY?t=456" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Hyundai|Santa Cruz 2022-23[<sup>5</sup>](#footnotes)|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Hyundai&model=Santa Cruz 2022-23">Hyundai N</a>||
|
||||
|Hyundai|Santa Fe 2019-20|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Hyundai&model=Santa Fe 2019-20">Hyundai D</a>||
|
||||
|Hyundai|Santa Fe 2021-22|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Hyundai&model=Santa Fe 2021-22">Hyundai L</a>|<a href="https://youtu.be/VnHzSTygTS4" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Hyundai|Santa Fe Hybrid 2022|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Hyundai&model=Santa Fe Hybrid 2022">Hyundai L</a>||
|
||||
|Hyundai|Santa Fe Plug-in Hybrid 2022|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Hyundai&model=Santa Fe Plug-in Hybrid 2022">Hyundai L</a>||
|
||||
|Hyundai|Sonata 2018-19|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Hyundai&model=Sonata 2018-19">Hyundai E</a>||
|
||||
|Hyundai|Sonata 2020-23|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Hyundai&model=Sonata 2020-23">Hyundai A</a>|<a href="https://www.youtube.com/watch?v=ix63r9kE3Fw" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Hyundai|Sonata Hybrid 2020-22|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Hyundai&model=Sonata Hybrid 2020-22">Hyundai A</a>||
|
||||
|Hyundai|Tucson 2021|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|19 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Hyundai&model=Tucson 2021">Hyundai L</a>||
|
||||
|Hyundai|Tucson 2022[<sup>5</sup>](#footnotes)|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Hyundai&model=Tucson 2022">Hyundai N</a>||
|
||||
|Hyundai|Tucson 2023[<sup>5</sup>](#footnotes)|All|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Hyundai&model=Tucson 2023">Hyundai N</a>||
|
||||
|Hyundai|Tucson Diesel 2019|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Hyundai&model=Tucson Diesel 2019">Hyundai L</a>||
|
||||
|Hyundai|Tucson Hybrid 2022[<sup>5</sup>](#footnotes)|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Hyundai&model=Tucson Hybrid 2022">Hyundai N</a>||
|
||||
|Hyundai|Veloster 2019-20|Smart Cruise Control (SCC)|Stock|5 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Hyundai&model=Veloster 2019-20">Hyundai E</a>||
|
||||
|Jeep|Grand Cherokee 2016-18|Adaptive Cruise Control (ACC)|Stock|0 mph|9 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Jeep&model=Grand Cherokee 2016-18">FCA</a>|<a href="https://www.youtube.com/watch?v=eLR9o2JkuRk" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Jeep|Grand Cherokee 2019-21|Adaptive Cruise Control (ACC)|Stock|0 mph|39 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Jeep&model=Grand Cherokee 2019-21">FCA</a>|<a href="https://www.youtube.com/watch?v=jBe4lWnRSu4" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Kia|Ceed 2019|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Kia&model=Ceed 2019">Hyundai E</a>||
|
||||
|Kia|EV6 (Southeast Asia only) 2022-23[<sup>5</sup>](#footnotes)|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Kia&model=EV6 (Southeast Asia only) 2022-23">Hyundai P</a>||
|
||||
|Kia|EV6 (with HDA II) 2022[<sup>5</sup>](#footnotes)|Highway Driving Assist II|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Kia&model=EV6 (with HDA II) 2022">Hyundai P</a>||
|
||||
|Kia|EV6 (without HDA II) 2022[<sup>5</sup>](#footnotes)|Highway Driving Assist|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Kia&model=EV6 (without HDA II) 2022">Hyundai L</a>||
|
||||
|Kia|Forte 2019-21|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Kia&model=Forte 2019-21">Hyundai G</a>||
|
||||
|Kia|K5 2021-22|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Kia&model=K5 2021-22">Hyundai A</a>||
|
||||
|Kia|K5 Hybrid 2020|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Kia&model=K5 Hybrid 2020">Hyundai A</a>||
|
||||
|Kia|Niro EV 2019|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Kia&model=Niro EV 2019">Hyundai H</a>|<a href="https://www.youtube.com/watch?v=lT7zcG6ZpGo" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Kia|Niro EV 2020|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Kia&model=Niro EV 2020">Hyundai F</a>|<a href="https://www.youtube.com/watch?v=lT7zcG6ZpGo" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Kia|Niro EV 2021|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Kia&model=Niro EV 2021">Hyundai C</a>|<a href="https://www.youtube.com/watch?v=lT7zcG6ZpGo" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Kia|Niro EV 2022|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Kia&model=Niro EV 2022">Hyundai H</a>|<a href="https://www.youtube.com/watch?v=lT7zcG6ZpGo" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Kia|Niro Hybrid 2021|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Kia&model=Niro Hybrid 2021">Hyundai F</a>||
|
||||
|Kia|Niro Hybrid 2022|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Kia&model=Niro Hybrid 2022">Hyundai H</a>||
|
||||
|Kia|Niro Hybrid 2023[<sup>5</sup>](#footnotes)|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Kia&model=Niro Hybrid 2023">Hyundai A</a>||
|
||||
|Kia|Niro Plug-in Hybrid 2018-19|All|openpilot available[<sup>1</sup>](#footnotes)|10 mph|32 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Kia&model=Niro Plug-in Hybrid 2018-19">Hyundai C</a>||
|
||||
|Kia|Niro Plug-in Hybrid 2020|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|32 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Kia&model=Niro Plug-in Hybrid 2020">Hyundai D</a>||
|
||||
|Kia|Optima 2017|Advanced Smart Cruise Control|Stock|0 mph|32 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Kia&model=Optima 2017">Hyundai B</a>||
|
||||
|Kia|Optima 2019-20|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Kia&model=Optima 2019-20">Hyundai G</a>||
|
||||
|Kia|Seltos 2021|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Kia&model=Seltos 2021">Hyundai A</a>||
|
||||
|Kia|Sorento 2018|Advanced Smart Cruise Control|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Kia&model=Sorento 2018">Hyundai C</a>|<a href="https://www.youtube.com/watch?v=Fkh3s6WHJz8" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Kia|Sorento 2019|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Kia&model=Sorento 2019">Hyundai E</a>|<a href="https://www.youtube.com/watch?v=Fkh3s6WHJz8" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Kia|Sorento 2021-23[<sup>5</sup>](#footnotes)|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Kia&model=Sorento 2021-23">Hyundai K</a>||
|
||||
|Kia|Sorento Plug-in Hybrid 2022-23[<sup>5</sup>](#footnotes)|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Kia&model=Sorento Plug-in Hybrid 2022-23">Hyundai A</a>||
|
||||
|Kia|Sportage 2023[<sup>5</sup>](#footnotes)|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Kia&model=Sportage 2023">Hyundai N</a>||
|
||||
|Kia|Sportage Hybrid 2023[<sup>5</sup>](#footnotes)|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Kia&model=Sportage Hybrid 2023">Hyundai N</a>||
|
||||
|Kia|Stinger 2018-20|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Kia&model=Stinger 2018-20">Hyundai C</a>|<a href="https://www.youtube.com/watch?v=MJ94qoofYw0" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Kia|Stinger 2022|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Kia&model=Stinger 2022">Hyundai K</a>||
|
||||
|Kia|Telluride 2020-22|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Kia&model=Telluride 2020-22">Hyundai H</a>||
|
||||
|Lexus|CT Hybrid 2017-18|Lexus Safety System+|openpilot available[<sup>2</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Lexus&model=CT Hybrid 2017-18">Toyota</a>||
|
||||
|Lexus|ES 2019-22|All|openpilot|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Lexus&model=ES 2019-22">Toyota</a>||
|
||||
|Lexus|ES Hybrid 2017-18|All|openpilot available[<sup>2</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Lexus&model=ES Hybrid 2017-18">Toyota</a>||
|
||||
|Lexus|ES Hybrid 2019-23|All|openpilot|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Lexus&model=ES Hybrid 2019-23">Toyota</a>|<a href="https://youtu.be/BZ29osRVJeg?t=12" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Lexus|IS 2017-19|All|Stock|19 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Lexus&model=IS 2017-19">Toyota</a>||
|
||||
|Lexus|NX 2018-19|All|openpilot available[<sup>2</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Lexus&model=NX 2018-19">Toyota</a>||
|
||||
|Lexus|NX 2020-21|All|openpilot|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Lexus&model=NX 2020-21">Toyota</a>||
|
||||
|Lexus|NX Hybrid 2018-19|All|openpilot available[<sup>2</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Lexus&model=NX Hybrid 2018-19">Toyota</a>||
|
||||
|Lexus|NX Hybrid 2020-21|All|openpilot|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Lexus&model=NX Hybrid 2020-21">Toyota</a>||
|
||||
|Lexus|RC 2018-20|All|Stock|19 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Lexus&model=RC 2018-20">Toyota</a>||
|
||||
|Lexus|RX 2016|Lexus Safety System+|openpilot available[<sup>2</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Lexus&model=RX 2016">Toyota</a>||
|
||||
|Lexus|RX 2017-19|All|openpilot available[<sup>2</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Lexus&model=RX 2017-19">Toyota</a>||
|
||||
|Lexus|RX 2020-22|All|openpilot|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Lexus&model=RX 2020-22">Toyota</a>||
|
||||
|Lexus|RX Hybrid 2016|Lexus Safety System+|openpilot available[<sup>2</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Lexus&model=RX Hybrid 2016">Toyota</a>||
|
||||
|Lexus|RX Hybrid 2017-19|All|openpilot available[<sup>2</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Lexus&model=RX Hybrid 2017-19">Toyota</a>||
|
||||
|Lexus|RX Hybrid 2020-21|All|openpilot|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Lexus&model=RX Hybrid 2020-21">Toyota</a>||
|
||||
|Lexus|UX Hybrid 2019-22|All|openpilot|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Lexus&model=UX Hybrid 2019-22">Toyota</a>||
|
||||
|MAN|eTGE 2020-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|31 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=MAN&model=eTGE 2020-23">J533</a>|<a href="https://youtu.be/4100gLeabmo" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|MAN|TGE 2017-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|31 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=MAN&model=TGE 2017-23">J533</a>|<a href="https://youtu.be/4100gLeabmo" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Mazda|CX-5 2022-23|All|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Mazda&model=CX-5 2022-23">Mazda</a>||
|
||||
|Mazda|CX-9 2021-23|All|Stock|0 mph|28 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Mazda&model=CX-9 2021-23">Mazda</a>|<a href="https://youtu.be/dA3duO4a0O4" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Nissan|Altima 2019-20|ProPILOT Assist|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Nissan&model=Altima 2019-20">Nissan B</a>||
|
||||
|Nissan|Leaf 2018-22|ProPILOT Assist|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Nissan&model=Leaf 2018-22">Nissan A</a>|<a href="https://youtu.be/vaMbtAh_0cY" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Nissan|Rogue 2018-20|ProPILOT Assist|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Nissan&model=Rogue 2018-20">Nissan A</a>||
|
||||
|Nissan|X-Trail 2017|ProPILOT Assist|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Nissan&model=X-Trail 2017">Nissan A</a>||
|
||||
|Ram|1500 2019-23|Adaptive Cruise Control (ACC)|Stock|0 mph|32 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Ram&model=1500 2019-23">Ram</a>||
|
||||
|SEAT|Ateca 2018|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=SEAT&model=Ateca 2018">J533</a>||
|
||||
|SEAT|Leon 2014-20|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=SEAT&model=Leon 2014-20">J533</a>||
|
||||
|Subaru|Ascent 2019-21|All|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Subaru&model=Ascent 2019-21">Subaru A</a>||
|
||||
|Subaru|Crosstrek 2018-19|EyeSight Driver Assistance|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Subaru&model=Crosstrek 2018-19">Subaru A</a>|<a href="https://youtu.be/Agww7oE1k-s?t=26" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Subaru|Crosstrek 2020-23|EyeSight Driver Assistance|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Subaru&model=Crosstrek 2020-23">Subaru A</a>||
|
||||
|Subaru|Forester 2019-21|All|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Subaru&model=Forester 2019-21">Subaru A</a>||
|
||||
|Subaru|Impreza 2017-19|EyeSight Driver Assistance|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Subaru&model=Impreza 2017-19">Subaru A</a>||
|
||||
|Subaru|Impreza 2020-22|EyeSight Driver Assistance|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Subaru&model=Impreza 2020-22">Subaru A</a>||
|
||||
|Subaru|Legacy 2020-22|All|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Subaru&model=Legacy 2020-22">Subaru B</a>||
|
||||
|Subaru|Outback 2020-22|All|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Subaru&model=Outback 2020-22">Subaru B</a>||
|
||||
|Subaru|XV 2018-19|EyeSight Driver Assistance|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Subaru&model=XV 2018-19">Subaru A</a>|<a href="https://youtu.be/Agww7oE1k-s?t=26" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Subaru|XV 2020-21|EyeSight Driver Assistance|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Subaru&model=XV 2020-21">Subaru A</a>||
|
||||
|Škoda|Fabia 2022-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Škoda&model=Fabia 2022-23">J533</a>[<sup>10</sup>](#footnotes)||
|
||||
|Škoda|Kamiq 2021[<sup>7</sup>](#footnotes)|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Škoda&model=Kamiq 2021">J533</a>[<sup>10</sup>](#footnotes)||
|
||||
|Škoda|Karoq 2019-21|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Škoda&model=Karoq 2019-21">J533</a>||
|
||||
|Škoda|Kodiaq 2017-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Škoda&model=Kodiaq 2017-23">J533</a>||
|
||||
|Škoda|Octavia 2015, 2018-19|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Škoda&model=Octavia 2015, 2018-19">J533</a>||
|
||||
|Škoda|Octavia RS 2016|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Škoda&model=Octavia RS 2016">J533</a>||
|
||||
|Škoda|Scala 2020|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Škoda&model=Scala 2020">J533</a>[<sup>10</sup>](#footnotes)||
|
||||
|Škoda|Superb 2015-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Škoda&model=Superb 2015-22">J533</a>||
|
||||
|Toyota|Alphard 2019-20|All|openpilot|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=Alphard 2019-20">Toyota</a>||
|
||||
|Toyota|Alphard Hybrid 2021|All|openpilot|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=Alphard Hybrid 2021">Toyota</a>||
|
||||
|Toyota|Avalon 2016|Toyota Safety Sense P|openpilot available[<sup>2</sup>](#footnotes)|19 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=Avalon 2016">Toyota</a>||
|
||||
|Toyota|Avalon 2017-18|All|openpilot available[<sup>2</sup>](#footnotes)|19 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=Avalon 2017-18">Toyota</a>||
|
||||
|Toyota|Avalon 2019-21|All|openpilot available[<sup>2</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=Avalon 2019-21">Toyota</a>||
|
||||
|Toyota|Avalon 2022|All|openpilot|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=Avalon 2022">Toyota</a>||
|
||||
|Toyota|Avalon Hybrid 2019-21|All|openpilot available[<sup>2</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=Avalon Hybrid 2019-21">Toyota</a>||
|
||||
|Toyota|Avalon Hybrid 2022|All|openpilot|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=Avalon Hybrid 2022">Toyota</a>||
|
||||
|Toyota|C-HR 2017-20|All|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=C-HR 2017-20">Toyota</a>||
|
||||
|Toyota|C-HR 2021|All|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=C-HR 2021">Toyota</a>||
|
||||
|Toyota|C-HR Hybrid 2017-20|All|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=C-HR Hybrid 2017-20">Toyota</a>||
|
||||
|Toyota|C-HR Hybrid 2021-22|All|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=C-HR Hybrid 2021-22">Toyota</a>||
|
||||
|Toyota|Camry 2018-20|All|Stock|0 mph[<sup>6</sup>](#footnotes)|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=Camry 2018-20">Toyota</a>|<a href="https://www.youtube.com/watch?v=fkcjviZY9CM" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Toyota|Camry 2021-23|All|openpilot|0 mph[<sup>6</sup>](#footnotes)|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=Camry 2021-23">Toyota</a>||
|
||||
|Toyota|Camry Hybrid 2018-20|All|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=Camry Hybrid 2018-20">Toyota</a>|<a href="https://www.youtube.com/watch?v=Q2DYY0AWKgk" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Toyota|Camry Hybrid 2021-23|All|openpilot|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=Camry Hybrid 2021-23">Toyota</a>||
|
||||
|Toyota|Corolla 2017-19|All|openpilot available[<sup>2</sup>](#footnotes)|19 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=Corolla 2017-19">Toyota</a>||
|
||||
|Toyota|Corolla 2020-22|All|openpilot|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=Corolla 2020-22">Toyota</a>|<a href="https://www.youtube.com/watch?v=_66pXk0CBYA" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Toyota|Corolla Cross (Non-US only) 2020-23|All|openpilot|17 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=Corolla Cross (Non-US only) 2020-23">Toyota</a>||
|
||||
|Toyota|Corolla Cross Hybrid (Non-US only) 2020-22|All|openpilot|17 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=Corolla Cross Hybrid (Non-US only) 2020-22">Toyota</a>||
|
||||
|Toyota|Corolla Hatchback 2019-22|All|openpilot|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=Corolla Hatchback 2019-22">Toyota</a>|<a href="https://www.youtube.com/watch?v=_66pXk0CBYA" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Toyota|Corolla Hybrid 2020-22|All|openpilot|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=Corolla Hybrid 2020-22">Toyota</a>||
|
||||
|Toyota|Corolla Hybrid (Non-US only) 2020-23|All|openpilot|17 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=Corolla Hybrid (Non-US only) 2020-23">Toyota</a>||
|
||||
|Toyota|Highlander 2017-19|All|openpilot available[<sup>2</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=Highlander 2017-19">Toyota</a>|<a href="https://www.youtube.com/watch?v=0wS0wXSLzoo" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Toyota|Highlander 2020-23|All|openpilot|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=Highlander 2020-23">Toyota</a>||
|
||||
|Toyota|Highlander Hybrid 2017-19|All|openpilot available[<sup>2</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=Highlander Hybrid 2017-19">Toyota</a>||
|
||||
|Toyota|Highlander Hybrid 2020-23|All|openpilot|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=Highlander Hybrid 2020-23">Toyota</a>||
|
||||
|Toyota|Mirai 2021|All|openpilot|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=Mirai 2021">Toyota</a>||
|
||||
|Toyota|Prius 2016|Toyota Safety Sense P|openpilot available[<sup>2</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=Prius 2016">Toyota</a>|<a href="https://www.youtube.com/watch?v=8zopPJI8XQ0" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Toyota|Prius 2017-20|All|openpilot available[<sup>2</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=Prius 2017-20">Toyota</a>|<a href="https://www.youtube.com/watch?v=8zopPJI8XQ0" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Toyota|Prius 2021-22|All|openpilot|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=Prius 2021-22">Toyota</a>|<a href="https://www.youtube.com/watch?v=J58TvCpUd4U" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Toyota|Prius Prime 2017-20|All|openpilot available[<sup>2</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=Prius Prime 2017-20">Toyota</a>|<a href="https://www.youtube.com/watch?v=8zopPJI8XQ0" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Toyota|Prius Prime 2021-22|All|openpilot|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=Prius Prime 2021-22">Toyota</a>|<a href="https://www.youtube.com/watch?v=J58TvCpUd4U" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Toyota|Prius v 2017|Toyota Safety Sense P|openpilot available[<sup>2</sup>](#footnotes)|19 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=Prius v 2017">Toyota</a>||
|
||||
|Toyota|RAV4 2016|Toyota Safety Sense P|openpilot available[<sup>2</sup>](#footnotes)|19 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=RAV4 2016">Toyota</a>||
|
||||
|Toyota|RAV4 2017-18|All|openpilot available[<sup>2</sup>](#footnotes)|19 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=RAV4 2017-18">Toyota</a>||
|
||||
|Toyota|RAV4 2019-21|All|openpilot|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=RAV4 2019-21">Toyota</a>|<a href="https://www.youtube.com/watch?v=wJxjDd42gGA" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Toyota|RAV4 2022|All|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=RAV4 2022">Toyota</a>||
|
||||
|Toyota|RAV4 Hybrid 2016|Toyota Safety Sense P|openpilot available[<sup>2</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=RAV4 Hybrid 2016">Toyota</a>|<a href="https://youtu.be/LhT5VzJVfNI?t=26" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Toyota|RAV4 Hybrid 2017-18|All|openpilot available[<sup>2</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=RAV4 Hybrid 2017-18">Toyota</a>|<a href="https://youtu.be/LhT5VzJVfNI?t=26" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Toyota|RAV4 Hybrid 2019-21|All|openpilot|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=RAV4 Hybrid 2019-21">Toyota</a>||
|
||||
|Toyota|RAV4 Hybrid 2022|All|Stock|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=RAV4 Hybrid 2022">Toyota</a>|<a href="https://youtu.be/U0nH9cnrFB0" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Toyota|Sienna 2018-20|All|openpilot available[<sup>2</sup>](#footnotes)|19 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Toyota&model=Sienna 2018-20">Toyota</a>|<a href="https://www.youtube.com/watch?v=q1UPOo4Sh68" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Volkswagen|Arteon 2018-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Volkswagen&model=Arteon 2018-22">J533</a>|<a href="https://youtu.be/FAomFKPFlDA" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Volkswagen|Arteon eHybrid 2020-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Volkswagen&model=Arteon eHybrid 2020-22">J533</a>|<a href="https://youtu.be/FAomFKPFlDA" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Volkswagen|Arteon R 2020-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Volkswagen&model=Arteon R 2020-22">J533</a>|<a href="https://youtu.be/FAomFKPFlDA" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Volkswagen|Atlas 2018-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Volkswagen&model=Atlas 2018-23">J533</a>||
|
||||
|Volkswagen|Atlas Cross Sport 2021-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Volkswagen&model=Atlas Cross Sport 2021-22">J533</a>||
|
||||
|Volkswagen|California 2021|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|31 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Volkswagen&model=California 2021">J533</a>||
|
||||
|Volkswagen|Caravelle 2020|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|31 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Volkswagen&model=Caravelle 2020">J533</a>||
|
||||
|Volkswagen|CC 2018-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Volkswagen&model=CC 2018-22">J533</a>|<a href="https://youtu.be/FAomFKPFlDA" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Volkswagen|Crafter 2017-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|31 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Volkswagen&model=Crafter 2017-23">J533</a>|<a href="https://youtu.be/4100gLeabmo" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Volkswagen|e-Crafter 2018-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|31 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Volkswagen&model=e-Crafter 2018-23">J533</a>|<a href="https://youtu.be/4100gLeabmo" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Volkswagen|e-Golf 2014-20|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Volkswagen&model=e-Golf 2014-20">J533</a>||
|
||||
|Volkswagen|Golf 2015-20|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Volkswagen&model=Golf 2015-20">J533</a>||
|
||||
|Volkswagen|Golf Alltrack 2015-19|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Volkswagen&model=Golf Alltrack 2015-19">J533</a>||
|
||||
|Volkswagen|Golf GTD 2015-20|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Volkswagen&model=Golf GTD 2015-20">J533</a>||
|
||||
|Volkswagen|Golf GTE 2015-20|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Volkswagen&model=Golf GTE 2015-20">J533</a>||
|
||||
|Volkswagen|Golf GTI 2015-21|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Volkswagen&model=Golf GTI 2015-21">J533</a>||
|
||||
|Volkswagen|Golf R 2015-19|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Volkswagen&model=Golf R 2015-19">J533</a>||
|
||||
|Volkswagen|Golf SportsVan 2015-20|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Volkswagen&model=Golf SportsVan 2015-20">J533</a>||
|
||||
|Volkswagen|Grand California 2019-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|31 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Volkswagen&model=Grand California 2019-23">J533</a>|<a href="https://youtu.be/4100gLeabmo" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>|
|
||||
|Volkswagen|Jetta 2018-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Volkswagen&model=Jetta 2018-22">J533</a>||
|
||||
|Volkswagen|Jetta GLI 2021-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Volkswagen&model=Jetta GLI 2021-22">J533</a>||
|
||||
|Volkswagen|Passat 2015-22[<sup>8</sup>](#footnotes)|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Volkswagen&model=Passat 2015-22">J533</a>||
|
||||
|Volkswagen|Passat Alltrack 2015-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Volkswagen&model=Passat Alltrack 2015-22">J533</a>||
|
||||
|Volkswagen|Passat GTE 2015-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Volkswagen&model=Passat GTE 2015-22">J533</a>||
|
||||
|Volkswagen|Polo 2020-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Volkswagen&model=Polo 2020-22">J533</a>[<sup>10</sup>](#footnotes)||
|
||||
|Volkswagen|Polo GTI 2020-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Volkswagen&model=Polo GTI 2020-22">J533</a>[<sup>10</sup>](#footnotes)||
|
||||
|Volkswagen|T-Cross 2021|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Volkswagen&model=T-Cross 2021">J533</a>[<sup>10</sup>](#footnotes)||
|
||||
|Volkswagen|T-Roc 2021|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Volkswagen&model=T-Roc 2021">J533</a>[<sup>10</sup>](#footnotes)||
|
||||
|Volkswagen|Taos 2022|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Volkswagen&model=Taos 2022">J533</a>||
|
||||
|Volkswagen|Teramont 2018-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Volkswagen&model=Teramont 2018-22">J533</a>||
|
||||
|Volkswagen|Teramont Cross Sport 2021-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Volkswagen&model=Teramont Cross Sport 2021-22">J533</a>||
|
||||
|Volkswagen|Teramont X 2021-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Volkswagen&model=Teramont X 2021-22">J533</a>||
|
||||
|Volkswagen|Tiguan 2018-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Volkswagen&model=Tiguan 2018-23">J533</a>||
|
||||
|Volkswagen|Touran 2017|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|<a href="https://comma.ai/shop/comma-three.html?make=Volkswagen&model=Touran 2017">J533</a>||
|
||||
|
||||
<a id="footnotes"></a>
|
||||
<sup>1</sup>Requires an <a href="https://comma.ai/shop/products/comma-car-harness">OBD-II car harness</a> and <a href="https://github.com/commaai/openpilot/wiki/GM#hardware">community built ASCM harness</a>. <b><i>NOTE: disconnecting the ASCM disables Automatic Emergency Braking (AEB).</i></b> <br />
|
||||
<sup>2</sup>2019 Honda Civic 1.6L Diesel Sedan does not have ALC below 12mph. <br />
|
||||
<sup>3</sup>Requires a <a href='https://comma.ai/shop/products/panda'>red panda</a> and additional <a href='https://comma.ai/shop/products/harness-box'>harness box.</a> <br />
|
||||
<sup>4</sup>When disconnecting the Driver Support Unit (DSU), openpilot Adaptive Cruise Control (ACC) will replace stock Adaptive Cruise Control (ACC). <b><i> NOTE: disconnecting the DSU disables Automatic Emergency Braking (AEB).</i></b> <br />
|
||||
<sup>5</sup>28mph for Camry 4CYL L, 4CYL LE and 4CYL SE which don't have Full-Speed Range Dynamic Radar Cruise Control. <br />
|
||||
<sup>6</sup>Not including the China market Kamiq, which is based on the (currently) unsupported PQ34 platform. <br />
|
||||
<sup>7</sup>Not including the USA/China market Passat, which is based on the (currently) unsupported PQ35/NMS platform. <br />
|
||||
<sup>8</sup>Model-years 2021 and beyond may have a new camera harness design, which isn't yet available from the comma store. Before ordering, remove the Lane Assist camera cover and check to see if the connector is black (older design) or light brown (newer design). For the newer design, in the interim, choose "VW J533 Development" from the vehicle drop-down for a harness that integrates at the CAN gateway inside the dashboard. <br />
|
||||
<sup>9</sup>Includes versions with extra rear cargo space (may be called Variant, Estate, SportWagen, Shooting Brake, etc.) <br />
|
||||
<sup>1</sup>Experimental openpilot longitudinal control is available behind a toggle; the toggle is only available in non-release branches such as `devel` or `master-ci`. <br />
|
||||
<sup>2</sup>By default, this car will use the stock Adaptive Cruise Control (ACC) for longitudinal control. If the Driver Support Unit (DSU) is disconnected, openpilot ACC will replace stock ACC. <b><i>NOTE: disconnecting the DSU disables Automatic Emergency Braking (AEB).</i></b> <br />
|
||||
<sup>3</sup>Requires a <a href="https://github.com/commaai/openpilot/wiki/GM#hardware" target="_blank">community built ASCM harness</a>. <b><i>NOTE: disconnecting the ASCM disables Automatic Emergency Braking (AEB).</i></b> <br />
|
||||
<sup>4</sup>2019 Honda Civic 1.6L Diesel Sedan does not have ALC below 12mph. <br />
|
||||
<sup>5</sup>Requires a <a href="https://comma.ai/shop/panda" target="_blank">red panda</a> for this <a href="https://en.wikipedia.org/wiki/CAN_FD" target="_blank">CAN FD car</a>. All the hardware needed is sold in the <a href="https://comma.ai/shop/can-fd-panda-kit" target="_blank">CAN FD kit</a>. <br />
|
||||
<sup>6</sup>openpilot operates above 28mph for Camry 4CYL L, 4CYL LE and 4CYL SE which don't have Full-Speed Range Dynamic Radar Cruise Control. <br />
|
||||
<sup>7</sup>Not including the China market Kamiq, which is based on the (currently) unsupported PQ34 platform. <br />
|
||||
<sup>8</sup>Refers only to the MQB-based European B8 Passat, not the NMS Passat in the USA/China/Mideast markets. <br />
|
||||
<sup>9</sup>Only available for vehicles using a gateway (J533) harness. At this time, vehicles using a camera harness are limited to using stock ACC. <br />
|
||||
<sup>10</sup>Model-years 2022 and beyond may have a combined CAN gateway and BCM, which is supported by openpilot in software, but doesn't yet have a harness available from the comma store. <br />
|
||||
|
||||
## Community Maintained Cars
|
||||
Although they're not upstream, the community has openpilot running on other makes and models. See the 'Community Supported Models' section of each make [on our wiki](https://wiki.comma.ai/).
|
||||
@@ -237,13 +266,13 @@ Although they're not upstream, the community has openpilot running on other make
|
||||
# Don't see your car here?
|
||||
|
||||
**openpilot can support many more cars than it currently does.** There are a few reasons your car may not be supported.
|
||||
If your car doesn't fit into any of the incompatibility criteria here, then there's a good chance it can be supported! We're adding support for new cars all the time. We don't have a roadmap for car support, and in fact, most car support comes from users like you!
|
||||
If your car doesn't fit into any of the incompatibility criteria here, then there's a good chance it can be supported! We're adding support for new cars all the time. **We don't have a roadmap for car support**, and in fact, most car support comes from users like you!
|
||||
|
||||
### Which cars are able to be supported?
|
||||
|
||||
openpilot uses the existing steering, gas, and brake interfaces in your car. If your car lacks any one of these interfaces, openpilot will not be able to control the car. If your car has any form of [LKAS](https://en.wikipedia.org/wiki/Automated_Lane_Keeping_Systems)/[LCA](https://en.wikipedia.org/wiki/Lane_centering) and [ACC](https://en.wikipedia.org/wiki/Adaptive_cruise_control), then it almost certainly has these interfaces. These interfaces generally started shipping on cars around 2016.
|
||||
openpilot uses the existing steering, gas, and brake interfaces in your car. If your car lacks any one of these interfaces, openpilot will not be able to control the car. If your car has [ACC](https://en.wikipedia.org/wiki/Adaptive_cruise_control) and any form of [LKAS](https://en.wikipedia.org/wiki/Automated_Lane_Keeping_Systems)/[LCA](https://en.wikipedia.org/wiki/Lane_centering), then it almost certainly has these interfaces. These features generally started shipping on cars around 2016. Note that manufacturers will often make their own [marketing terms](https://en.wikipedia.org/wiki/Adaptive_cruise_control#Vehicle_models_supporting_adaptive_cruise_control) for these features, such as Hyundai's "Smart Cruise Control" branding of Adaptive Cruise Control.
|
||||
|
||||
If your car has the following packages or features, then it's a good candidate for support. If it does not, then it's unlikely able to be supported.
|
||||
If your car has the following packages or features, then it's a good candidate for support.
|
||||
|
||||
| Make | Required Package/Features |
|
||||
| ---- | ------------------------- |
|
||||
@@ -261,8 +290,9 @@ All the cars that openpilot supports use a [CAN bus](https://en.wikipedia.org/wi
|
||||
|
||||
### Toyota Security
|
||||
|
||||
Specific new Toyota models are shipping with a new message authentication method that openpilot does not yet support.
|
||||
So far, this list includes:
|
||||
openpilot does not yet support these Toyota models due to a new message authentication method.
|
||||
[Vote](https://comma.ai/shop/products/vote) if you'd like to see openpilot support on these models.
|
||||
|
||||
* Toyota RAV4 Prime 2021+
|
||||
* Toyota Sienna 2021+
|
||||
* Toyota Venza 2021+
|
||||
@@ -271,4 +301,4 @@ So far, this list includes:
|
||||
* Toyota Corolla Cross 2022+ (only US model)
|
||||
* Lexus NX 2022+
|
||||
* Toyota bZ4x 2023+
|
||||
* Subaru Solterra 2023+
|
||||
* Subaru Solterra 2023+
|
||||
|
||||
+1
-1
@@ -8,4 +8,4 @@ Additionally, on specific supported cars (see ACC column in [supported cars](CAR
|
||||
* Stock ACC is replaced by openpilot ACC.
|
||||
* openpilot FCW operates in addition to stock FCW.
|
||||
|
||||
openpilot should preserve all other vehicle's stock features, including, but are not limited to: FCW, Automatic Emergency Braking (AEB), auto high-beam, blind spot warning, and side collision warning.
|
||||
openpilot should preserve all other vehicle's stock features, including, but not limited to: FCW, Automatic Emergency Braking (AEB), auto high-beam, blind spot warning, and side collision warning.
|
||||
|
||||
Executable
+39
@@ -0,0 +1,39 @@
|
||||
# OSM Installation instructions:
|
||||
# https://wiki.openstreetmap.org/wiki/Overpass_API/Installation
|
||||
|
||||
# Install expat. All other needed libraries are already installed.
|
||||
# g++ make expat libexpat1-dev zlib1g-dev
|
||||
#sudo apt-get update
|
||||
#sudo apt-get install expat
|
||||
|
||||
# Add required path variables to environment
|
||||
export OSM_ROOT=/data/media/0/osm
|
||||
if [ -f /TICI ]; then
|
||||
export OSM_VERSION=0.7.57
|
||||
else
|
||||
export OSM_VERSION=0.7.56
|
||||
fi
|
||||
export GZ_FILE=osm-3s_v${OSM_VERSION}.tar.xz
|
||||
export OSM_DIR=${OSM_ROOT}/${OSM_VERSION}
|
||||
# export DB_DIR=/data/osm/db/
|
||||
|
||||
# Download and extract overpass library
|
||||
|
||||
if [ ! -d ${OSM_ROOT} ]; then
|
||||
mkdir -p ${OSM_ROOT}
|
||||
fi
|
||||
tar -vxf /data/openpilot/selfdrive/mapd/assets/${GZ_FILE} -C ${OSM_ROOT}
|
||||
|
||||
# Configure and install overpass
|
||||
#cd $(ls | grep $SOURCE_FILE_ROOT\.[0-9]*)
|
||||
#cd osm-3s_v0.7.56
|
||||
#./configure CXXFLAGS="-O2" --prefix=$EXEC_DIR
|
||||
#make install
|
||||
|
||||
# Remove source files after installation
|
||||
#cd ..
|
||||
if [ -d ${OSM_DIR} ]; then
|
||||
rm -fr ${OSM_DIR}
|
||||
fi
|
||||
|
||||
mv ${OSM_ROOT}/osm-3s_v${OSM_VERSION} ${OSM_ROOT}/v${OSM_VERSION}
|
||||
Executable
+34
@@ -0,0 +1,34 @@
|
||||
export OSM_DIR=/data/media/0/osm
|
||||
|
||||
export OSM_LOCATION=$(cat /data/params/d/OsmLocationUrl)
|
||||
|
||||
export OSM_LOCATION_TEXT=$(cat /data/params/d/OsmLocationName)
|
||||
|
||||
export XZ_MAP_FILE_NAME=${OSM_LOCATION_TEXT}.tar.xz
|
||||
export XZ_MAP_FILE=${OSM_DIR}/${XZ_MAP_FILE_NAME}
|
||||
|
||||
# WD
|
||||
cd $OSM_DIR
|
||||
|
||||
# Remove legacy compressed map file if existing
|
||||
rm -rf $XZ_MAP_FILE
|
||||
|
||||
# Download map file
|
||||
wget -O ${XZ_MAP_FILE_NAME} ${OSM_LOCATION}
|
||||
|
||||
if [[ "$?" != 0 ]]; then
|
||||
echo "Error downloading map file"
|
||||
else
|
||||
echo "Successfully downloaded map file"
|
||||
# Remove current db dir if existing
|
||||
rm -rf ${DB_DIR}/db
|
||||
if [ -d ${OSM_DIR}/${OSM_LOCATION_TEXT} ]; then
|
||||
rm -rf ${OSM_DIR}/${OSM_LOCATION_TEXT}
|
||||
fi
|
||||
# Decompressing
|
||||
tar -vxf ${XZ_MAP_FILE_NAME}
|
||||
mv ${OSM_LOCATION_TEXT} db
|
||||
|
||||
# Remove compressed map files after expanding
|
||||
rm -rf $XZ_MAP_FILE
|
||||
fi
|
||||
+8
-9
@@ -48,13 +48,13 @@ class AstroDog:
|
||||
self.valid_ephem_types = valid_ephem_types
|
||||
|
||||
self.orbit_fetched_times = TimeRangeHolder()
|
||||
self.nav_fetched_times = TimeRangeHolder()
|
||||
self.navs_fetched_times = TimeRangeHolder()
|
||||
self.dcbs_fetched_times = TimeRangeHolder()
|
||||
|
||||
self.dgps_delays = []
|
||||
self.ionex_maps: List[IonexMap] = []
|
||||
self.orbits: DefaultDict[str, List[PolyEphemeris]] = defaultdict(list)
|
||||
self.nav: DefaultDict[str, List[Union[GPSEphemeris, GLONASSEphemeris]]] = defaultdict(list)
|
||||
self.navs: DefaultDict[str, List[Union[GPSEphemeris, GLONASSEphemeris]]] = defaultdict(list)
|
||||
self.dcbs: DefaultDict[str, List[DCB]] = defaultdict(list)
|
||||
|
||||
self.cached_ionex: Optional[IonexMap] = None
|
||||
@@ -73,8 +73,8 @@ class AstroDog:
|
||||
return ionex
|
||||
|
||||
def get_nav(self, prn, time):
|
||||
skip_download = time in self.nav_fetched_times
|
||||
nav = self._get_latest_valid_data(self.nav[prn], self.cached_nav[prn], self.get_nav_data, time, skip_download)
|
||||
skip_download = time in self.navs_fetched_times
|
||||
nav = self._get_latest_valid_data(self.navs[prn], self.cached_nav[prn], self.get_nav_data, time, skip_download)
|
||||
if nav is not None:
|
||||
self.cached_nav[prn] = nav
|
||||
return nav
|
||||
@@ -97,9 +97,9 @@ class AstroDog:
|
||||
return result
|
||||
|
||||
def get_navs(self, time):
|
||||
if time not in self.nav_fetched_times and self.auto_update:
|
||||
if time not in self.navs_fetched_times:
|
||||
self.get_nav_data(time)
|
||||
return AstroDog._select_valid_temporal_items(self.nav, time, self.cached_nav)
|
||||
return AstroDog._select_valid_temporal_items(self.navs, time, self.cached_nav)
|
||||
|
||||
def get_orbit(self, prn: str, time: GPSTime):
|
||||
skip_download = time in self.orbit_fetched_times
|
||||
@@ -133,7 +133,7 @@ class AstroDog:
|
||||
self._add_ephems(new_ephems, self.orbits, self.orbit_fetched_times)
|
||||
|
||||
def add_navs(self, new_ephems: Dict[str, List[Ephemeris]]):
|
||||
self._add_ephems(new_ephems, self.nav, self.nav_fetched_times)
|
||||
self._add_ephems(new_ephems, self.navs, self.navs_fetched_times)
|
||||
|
||||
def _add_ephems(self, new_ephems: Dict[str, List[Ephemeris]], ephems_dict, fetched_times):
|
||||
for k, v in new_ephems.items():
|
||||
@@ -172,7 +172,7 @@ class AstroDog:
|
||||
if sum([len(v) for v in fetched_ephems.values()]) == 0:
|
||||
begin_day = GPSTime(time.week, SECS_IN_DAY * (time.tow // SECS_IN_DAY))
|
||||
end_day = GPSTime(time.week, SECS_IN_DAY * (1 + (time.tow // SECS_IN_DAY)))
|
||||
self.nav_fetched_times.add(begin_day, end_day)
|
||||
self.navs_fetched_times.add(begin_day, end_day)
|
||||
|
||||
def download_parse_orbit(self, gps_time: GPSTime, skip_before_epoch=None) -> Dict[str, List[PolyEphemeris]]:
|
||||
# Download multiple days to be able to polyfit at the start-end of the day
|
||||
@@ -265,7 +265,6 @@ class AstroDog:
|
||||
eph = self.get_orbit(prn, time)
|
||||
if not eph and self.pull_nav:
|
||||
eph = self.get_nav(prn, time)
|
||||
|
||||
if eph:
|
||||
return eph.get_sat_info(time)
|
||||
return None
|
||||
|
||||
+4
-2
@@ -5,6 +5,7 @@ from datetime import datetime
|
||||
from .gps_time import GPSTime
|
||||
from .constants import SECS_IN_YEAR
|
||||
from . import raw_gnss as raw
|
||||
from . import opt
|
||||
from .rinex_file import RINEXFile
|
||||
from .downloader import download_cors_coords
|
||||
from .helpers import get_constellation
|
||||
@@ -107,8 +108,9 @@ def parse_dgps(station_id, station_obs_file_path, dog, max_distance=100000, requ
|
||||
station_delays[signal] = {}
|
||||
for i, proc_measurement in enumerate(proc_measurements):
|
||||
times.append(proc_measurement[0].recv_time)
|
||||
Fx_pos = raw.pr_residual(proc_measurement, signal=signal)
|
||||
residual = -np.array(Fx_pos(list(station_pos) + [0, 0]))
|
||||
Fx_pos = opt.pr_residual(proc_measurement, signal=signal)
|
||||
residual, _ = Fx_pos(list(station_pos) + [0,0])
|
||||
residual = -np.array(residual)
|
||||
for j, m in enumerate(proc_measurement):
|
||||
prn = m.prn
|
||||
if prn not in station_delays[signal]:
|
||||
|
||||
+60
-40
@@ -7,18 +7,18 @@ import urllib.error
|
||||
import pycurl
|
||||
import re
|
||||
import time
|
||||
import tempfile
|
||||
import socket
|
||||
|
||||
from datetime import datetime, timedelta
|
||||
from urllib.parse import urlparse
|
||||
from io import BytesIO
|
||||
from ftplib import FTP_TLS
|
||||
|
||||
from atomicwrites import atomic_write
|
||||
|
||||
from laika.ephemeris import EphemerisType
|
||||
from .constants import SECS_IN_HR, SECS_IN_DAY, SECS_IN_WEEK
|
||||
from .gps_time import GPSTime
|
||||
from .gps_time import GPSTime, tow_to_datetime
|
||||
from .helpers import ConstellationId
|
||||
|
||||
dir_path = os.path.dirname(os.path.realpath(__file__))
|
||||
@@ -177,24 +177,6 @@ def http_download_files(url_base, folder_path, cacheDir, filenames):
|
||||
|
||||
|
||||
def https_download_file(url):
|
||||
if 'nasa.gov/' not in url:
|
||||
netrc_path = None
|
||||
f = None
|
||||
elif os.path.isfile(dir_path + '/.netrc'):
|
||||
netrc_path = dir_path + '/.netrc'
|
||||
f = None
|
||||
else:
|
||||
try:
|
||||
username = os.environ['NASA_USERNAME']
|
||||
password = os.environ['NASA_PASSWORD']
|
||||
f = tempfile.NamedTemporaryFile()
|
||||
netrc = f"machine urs.earthdata.nasa.gov login {username} password {password}"
|
||||
f.write(netrc.encode())
|
||||
f.flush()
|
||||
netrc_path = f.name
|
||||
except KeyError:
|
||||
raise DownloadFailed('Could not find .netrc file and no NASA_USERNAME and NASA_PASSWORD in environment for urs.earthdata.nasa.gov authentication')
|
||||
|
||||
crl = pycurl.Curl()
|
||||
crl.setopt(crl.CAINFO, certifi.where())
|
||||
crl.setopt(crl.URL, url)
|
||||
@@ -202,17 +184,12 @@ def https_download_file(url):
|
||||
crl.setopt(crl.SSL_CIPHER_LIST, 'DEFAULT@SECLEVEL=1')
|
||||
crl.setopt(crl.COOKIEJAR, '/tmp/cddis_cookies')
|
||||
crl.setopt(pycurl.CONNECTTIMEOUT, 10)
|
||||
if netrc_path is not None:
|
||||
crl.setopt(crl.NETRC_FILE, netrc_path)
|
||||
crl.setopt(crl.NETRC, 2)
|
||||
|
||||
|
||||
buf = BytesIO()
|
||||
crl.setopt(crl.WRITEDATA, buf)
|
||||
crl.perform()
|
||||
response = crl.getinfo(pycurl.RESPONSE_CODE)
|
||||
crl.close()
|
||||
if f is not None:
|
||||
f.close()
|
||||
|
||||
if response != 200:
|
||||
raise DownloadFailed('HTTPS error ' + str(response))
|
||||
@@ -228,6 +205,17 @@ def ftp_download_file(url):
|
||||
except urllib.error.URLError as e:
|
||||
raise DownloadFailed(e)
|
||||
|
||||
def ftps_download_file(url):
|
||||
parsed = urlparse(url)
|
||||
try:
|
||||
buf = BytesIO()
|
||||
with FTP_TLS(parsed.hostname) as ftps:
|
||||
ftps.login(user='anonymous')
|
||||
ftps.prot_p()
|
||||
ftps.retrbinary('RETR ' + parsed.path, buf.write)
|
||||
return buf.getvalue()
|
||||
except ftplib.all_errors as e:
|
||||
raise DownloadFailed(e)
|
||||
|
||||
@retryable
|
||||
def download_files(url_base, folder_path, cacheDir, filenames):
|
||||
@@ -242,11 +230,13 @@ def download_files(url_base, folder_path, cacheDir, filenames):
|
||||
def download_file(url_base, folder_path, filename_zipped):
|
||||
url = url_base + folder_path + filename_zipped
|
||||
print('Downloading ' + url)
|
||||
if url.startswith('https'):
|
||||
if url.startswith('https://'):
|
||||
return https_download_file(url)
|
||||
if url.startswith('ftp'):
|
||||
elif url.startswith('ftp://'):
|
||||
return ftp_download_file(url)
|
||||
raise NotImplementedError('Did find ftp or https preamble')
|
||||
elif url.startswith('sftp://'):
|
||||
return ftps_download_file(url)
|
||||
raise NotImplementedError('Did not find supported url scheme')
|
||||
|
||||
|
||||
def download_and_cache_file_return_first_success(url_bases, folder_and_file_names, cache_dir, compression='', overwrite=False, raise_error=False):
|
||||
@@ -308,26 +298,51 @@ def download_nav(time: GPSTime, cache_dir, constellation: ConstellationId):
|
||||
if GPSTime.from_datetime(datetime.utcnow()) - time > SECS_IN_DAY:
|
||||
url_bases = (
|
||||
'https://github.com/commaai/gnss-data/raw/master/gnss/data/daily/',
|
||||
'https://cddis.nasa.gov/archive/gnss/data/daily/',
|
||||
'sftp://gdc.cddis.eosdis.nasa.gov/gnss/data/daily/',
|
||||
)
|
||||
filename = t.strftime(f"brdc%j0.%y{c}")
|
||||
folder_path = t.strftime(f'%Y/%j/%y{c}/')
|
||||
compression = '.gz' if folder_path >= '2020/335/' else '.Z'
|
||||
return download_and_cache_file(url_bases, folder_path, cache_dir+'daily_nav/', filename, compression)
|
||||
elif constellation == ConstellationId.GPS:
|
||||
url_base = 'https://cddis.nasa.gov/archive/gnss/data/hourly/'
|
||||
filename = t.strftime(f"hour%j0.%y{c}")
|
||||
folder_path = t.strftime('%Y/%j/')
|
||||
compression = '.gz' if folder_path >= '2020/336/' else '.Z'
|
||||
return download_and_cache_file(url_base, folder_path, cache_dir+'hourly_nav/', filename, compression)
|
||||
else:
|
||||
url_bases = (
|
||||
'https://github.com/commaai/gnss-data-hourly/raw/master/',
|
||||
'sftp://gdc.cddis.eosdis.nasa.gov/gnss/data/hourly/',
|
||||
)
|
||||
times = [t, (t - timedelta(hours=1))]
|
||||
folder_and_filenames = [(t.strftime('%Y/%j/'), t.strftime(f"hour%j0.%y{c}")) for t in times]
|
||||
compression = '.gz' if folder_and_filenames[0][0] >= '2020/336/' else '.Z'
|
||||
# always overwrite as this file is appended
|
||||
return download_and_cache_file_return_first_success(url_bases,
|
||||
folder_and_filenames, cache_dir+'hourly_nav/', compression, overwrite=True)
|
||||
except DownloadFailed:
|
||||
pass
|
||||
|
||||
|
||||
def download_orbits_gps_cod0(time, cache_dir, ephem_types):
|
||||
url_bases = (
|
||||
'https://github.com/commaai/gnss-data/raw/master/gnss/products/',
|
||||
'sftp://gdc.cddis.eosdis.nasa.gov/gnss/products/',
|
||||
)
|
||||
|
||||
if EphemerisType.ULTRA_RAPID_ORBIT not in ephem_types:
|
||||
# TODO: raise error here
|
||||
return None
|
||||
|
||||
tm = tow_to_datetime(time.tow, time.week).timetuple()
|
||||
doy = str(tm.tm_yday).zfill(3)
|
||||
filename = f"COD0OPSULT_{tm.tm_year}{doy}0000_02D_05M_ORB.SP3"
|
||||
# TODO: add hour management
|
||||
|
||||
folder_path = "%i/" % time.week
|
||||
folder_file_names = [(folder_path, filename)]
|
||||
return download_and_cache_file_return_first_success(url_bases, folder_file_names, cache_dir+'cddis_products/', compression='.gz')
|
||||
|
||||
|
||||
def download_orbits_gps(time, cache_dir, ephem_types):
|
||||
url_bases = (
|
||||
'https://github.com/commaai/gnss-data/raw/master/gnss/products/',
|
||||
'https://cddis.nasa.gov/archive/gnss/products/',
|
||||
'sftp://gdc.cddis.eosdis.nasa.gov/gnss/products/',
|
||||
'ftp://igs.ign.fr/pub/igs/products/',
|
||||
)
|
||||
folder_path = "%i/" % time.week
|
||||
@@ -344,7 +359,12 @@ def download_orbits_gps(time, cache_dir, ephem_types):
|
||||
f"igu{time_str}_06.sp3",
|
||||
f"igu{time_str}_00.sp3"])
|
||||
folder_file_names = [(folder_path, filename) for filename in filenames]
|
||||
return download_and_cache_file_return_first_success(url_bases, folder_file_names, cache_dir+'cddis_products/', compression='.Z')
|
||||
ret = download_and_cache_file_return_first_success(url_bases, folder_file_names, cache_dir+'cddis_products/', compression='.Z')
|
||||
if ret is not None:
|
||||
return ret
|
||||
|
||||
# fallback to COD0 Ultra Rapid Orbits
|
||||
return download_orbits_gps_cod0(time, cache_dir, ephem_types)
|
||||
|
||||
|
||||
def download_prediction_orbits_russia_src(gps_time, cache_dir):
|
||||
@@ -406,7 +426,7 @@ def download_ionex(time, cache_dir):
|
||||
t = time.as_datetime()
|
||||
url_bases = (
|
||||
'https://github.com/commaai/gnss-data/raw/master/gnss/products/ionex/',
|
||||
'https://cddis.nasa.gov/archive/gnss/products/ionex/',
|
||||
'sftp://gdc.cddis.eosdis.nasa.gov/gnss/products/ionex/',
|
||||
'ftp://igs.ensg.ign.fr/pub/igs/products/ionosphere/',
|
||||
'ftp://gssc.esa.int/gnss/products/ionex/',
|
||||
)
|
||||
@@ -422,7 +442,7 @@ def download_dcb(time, cache_dir):
|
||||
folder_paths = []
|
||||
url_bases = (
|
||||
'https://github.com/commaai/gnss-data/raw/master/gnss/products/bias/',
|
||||
'https://cddis.nasa.gov/archive/gnss/products/bias/',
|
||||
'sftp://gdc.cddis.eosdis.nasa.gov/gnss/products/bias/',
|
||||
'ftp://igs.ign.fr/pub/igs/products/mgex/dcb/',
|
||||
)
|
||||
# seem to be a lot of data missing, so try many days
|
||||
|
||||
+83
-42
@@ -7,12 +7,13 @@ from typing import Dict, List, Optional
|
||||
|
||||
import numpy as np
|
||||
import numpy.polynomial.polynomial as poly
|
||||
from datetime import datetime
|
||||
from datetime import datetime, timedelta
|
||||
from math import sin, cos, sqrt, fabs, atan2
|
||||
|
||||
from .gps_time import GPSTime, utc_to_gpst
|
||||
from .constants import SPEED_OF_LIGHT, SECS_IN_MIN, SECS_IN_HR, SECS_IN_DAY, EARTH_ROTATION_RATE, EARTH_GM
|
||||
from .helpers import get_constellation
|
||||
from .constants import SPEED_OF_LIGHT, SECS_IN_MIN, SECS_IN_HR, SECS_IN_DAY, \
|
||||
SECS_IN_WEEK, EARTH_ROTATION_RATE, EARTH_GM
|
||||
from .helpers import get_constellation, get_prn_from_nmea_id
|
||||
|
||||
|
||||
def read4(f, rinex_ver):
|
||||
@@ -23,7 +24,7 @@ def read4(f, rinex_ver):
|
||||
return float(line[4:23]), float(line[23:42]), float(line[42:61]), float(line[61:80])
|
||||
|
||||
|
||||
def convert_ublox_ephem(ublox_ephem, current_time: Optional[datetime] = None):
|
||||
def convert_ublox_gps_ephem(ublox_ephem, current_time: Optional[datetime] = None):
|
||||
# Week time of ephemeris gps msg has a roll-over period of 10 bits (19.6 years)
|
||||
# The latest roll-over was on 2019-04-07
|
||||
week = ublox_ephem.gpsWeek
|
||||
@@ -37,6 +38,12 @@ def convert_ublox_ephem(ublox_ephem, current_time: Optional[datetime] = None):
|
||||
roll_overs = GPSTime.from_datetime(current_time).week // 1024
|
||||
week += (roll_overs - (week // 1024)) * 1024
|
||||
|
||||
# GPS week refers to current week, the ephemeris can be valid for the next
|
||||
# if toe equals 0, this can be verified by the TOW count if it is within the
|
||||
# last 2 hours of the week (gps ephemeris valid for 4hours)
|
||||
if ublox_ephem.toe == 0 and ublox_ephem.towCount*6 >= (SECS_IN_WEEK - 2*SECS_IN_HR):
|
||||
week += 1
|
||||
|
||||
ephem = {}
|
||||
ephem['sv_id'] = ublox_ephem.svId
|
||||
ephem['toe'] = GPSTime(week, ublox_ephem.toe)
|
||||
@@ -64,17 +71,55 @@ def convert_ublox_ephem(ublox_ephem, current_time: Optional[datetime] = None):
|
||||
ephem['omegadot'] = ublox_ephem.omegaDot
|
||||
ephem['omega0'] = ublox_ephem.omega0
|
||||
|
||||
ephem['healthy'] = ublox_ephem.svHealth == 0.0
|
||||
|
||||
epoch = ephem['toe']
|
||||
return GPSEphemeris(ephem, epoch)
|
||||
|
||||
|
||||
def convert_ublox_glonass_ephem(ublox_ephem, current_time: Optional[datetime] = None):
|
||||
ephem = {}
|
||||
ephem['prn'] = 'R%02i' % ublox_ephem.svId
|
||||
|
||||
etime = datetime.strptime(f"{ublox_ephem.year}-{ublox_ephem.dayInYear}", "%Y-%j")
|
||||
# glonass time: UTC + 3h
|
||||
time_in_day = timedelta(hours=ublox_ephem.hour, minutes=ublox_ephem.minute, seconds=ublox_ephem.second)
|
||||
ephem['toc'] = GPSTime.from_datetime(etime + time_in_day - timedelta(hours=3))
|
||||
ephem['toe'] = GPSTime.from_datetime(etime + timedelta(minutes=(ublox_ephem.tb*15 - 180)))
|
||||
|
||||
ephem['x'] = ublox_ephem.x # km
|
||||
ephem['x_vel'] = ublox_ephem.xVel # km/s
|
||||
ephem['x_acc'] = ublox_ephem.xAccel # km/s*s
|
||||
|
||||
ephem['y'] = ublox_ephem.y # km
|
||||
ephem['y_vel'] = ublox_ephem.yVel # km/s
|
||||
ephem['y_acc'] = ublox_ephem.yAccel # km/s*s
|
||||
|
||||
ephem['z'] = ublox_ephem.z # km
|
||||
ephem['z_vel'] = ublox_ephem.zVel # km/s
|
||||
ephem['z_acc'] = ublox_ephem.zAccel # km/s*s
|
||||
|
||||
ephem['healthy'] = ublox_ephem.svHealth == 0.0
|
||||
ephem['age'] = ublox_ephem.age # age of information [days]
|
||||
|
||||
# tauN compared to ephemeris from gdc.cddis.eosdis.nasa.gov is times -1
|
||||
ephem['min_tauN'] = ublox_ephem.tauN * (-1) # time correction relative to GLONASS tc
|
||||
ephem['GammaN'] = ublox_ephem.gammaN
|
||||
|
||||
# TODO: channel is in string 7, which is not parsed
|
||||
ephem['freq_num'] = "1"
|
||||
|
||||
# NOTE: ublox_ephem.tk is in a different format than rinex tk
|
||||
return GLONASSEphemeris(ephem, ephem['toe'])
|
||||
|
||||
|
||||
class EphemerisType(IntEnum):
|
||||
# Matches the enum in log.capnp
|
||||
NAV = 0
|
||||
FINAL_ORBIT = 1
|
||||
RAPID_ORBIT = 2
|
||||
ULTRA_RAPID_ORBIT = 3
|
||||
QCOM_POLY = 4 # Currently not supported
|
||||
QCOM_POLY = 4
|
||||
|
||||
@staticmethod
|
||||
def all_orbits():
|
||||
@@ -86,7 +131,7 @@ class EphemerisType(IntEnum):
|
||||
return EphemerisType.FINAL_ORBIT
|
||||
if "/rapid" in file_name or "/igr" in file_name:
|
||||
return EphemerisType.RAPID_ORBIT
|
||||
if "/ultra" in file_name or "/igu" in file_name:
|
||||
if "/ultra" in file_name or "/igu" in file_name or "COD0OPSULT" in file_name:
|
||||
return EphemerisType.ULTRA_RAPID_ORBIT
|
||||
raise RuntimeError(f"Ephemeris type not found in filename: {file_name}")
|
||||
|
||||
@@ -157,8 +202,8 @@ class EphemerisSerializer(json.JSONEncoder):
|
||||
|
||||
|
||||
class GLONASSEphemeris(Ephemeris):
|
||||
def __init__(self, data, epoch, healthy=True, file_name=None):
|
||||
super().__init__(data['prn'], data, epoch, EphemerisType.NAV, healthy, max_time_diff=25*SECS_IN_MIN, file_name=file_name)
|
||||
def __init__(self, data, epoch, file_name=None):
|
||||
super().__init__(data['prn'], data, epoch, EphemerisType.NAV, data['healthy'], max_time_diff=25*SECS_IN_MIN, file_name=file_name)
|
||||
self.channel = data['freq_num']
|
||||
self.to_json()
|
||||
|
||||
@@ -167,9 +212,7 @@ class GLONASSEphemeris(Ephemeris):
|
||||
# http://gauss.gge.unb.ca/GLONASS.ICD.pdf
|
||||
|
||||
eph = self.data
|
||||
# TODO should handle leap seconds better
|
||||
toc_gps_time = utc_to_gpst(eph['toc'])
|
||||
tdiff = time - toc_gps_time
|
||||
tdiff = time - utc_to_gpst(eph['toe'])
|
||||
|
||||
# Clock correction (except for general relativity which is applied later)
|
||||
clock_err = eph['min_tauN'] + tdiff * (eph['GammaN'])
|
||||
@@ -225,8 +268,10 @@ class GLONASSEphemeris(Ephemeris):
|
||||
|
||||
|
||||
class PolyEphemeris(Ephemeris):
|
||||
def __init__(self, prn: str, data, epoch: GPSTime, ephem_type: EphemerisType, file_epoch: GPSTime, file_name: str, healthy=True, tgd=0):
|
||||
super().__init__(prn, data, epoch, ephem_type, healthy, max_time_diff=SECS_IN_HR, file_epoch=file_epoch, file_name=file_name)
|
||||
def __init__(self, prn: str, data, epoch: GPSTime, ephem_type: EphemerisType,
|
||||
file_epoch: GPSTime=None, file_name: str=None, healthy=True, tgd=0,
|
||||
max_time_diff: int=SECS_IN_HR):
|
||||
super().__init__(prn, data, epoch, ephem_type, healthy, max_time_diff=max_time_diff, file_epoch=file_epoch, file_name=file_name)
|
||||
self.tgd = tgd
|
||||
self.to_json()
|
||||
|
||||
@@ -245,8 +290,8 @@ class PolyEphemeris(Ephemeris):
|
||||
|
||||
|
||||
class GPSEphemeris(Ephemeris):
|
||||
def __init__(self, data, epoch, healthy=True, file_name=None):
|
||||
super().__init__('G%02i' % data['sv_id'], data, epoch, EphemerisType.NAV, healthy, max_time_diff=2*SECS_IN_HR, file_name=file_name)
|
||||
def __init__(self, data, epoch, file_name=None):
|
||||
super().__init__('G%02i' % data['sv_id'], data, epoch, EphemerisType.NAV, data['healthy'], max_time_diff=2*SECS_IN_HR, file_name=file_name)
|
||||
self.max_time_diff_tgd = SECS_IN_DAY
|
||||
self.to_json()
|
||||
|
||||
@@ -401,7 +446,7 @@ def read_prn_data(data, prn, deg=16, deg_t=1):
|
||||
measurements = np_data_prn[i:i + deg + 1, 1:5]
|
||||
|
||||
times = (measurements[:, 0] - epoch).astype(float)
|
||||
if (np.diff(times) != 900).any():
|
||||
if not (np.diff(times) != 900).any() and not (np.diff(times) != 300).any():
|
||||
continue
|
||||
|
||||
poly_data = {}
|
||||
@@ -514,7 +559,7 @@ def parse_rinex_nav_msg_glonass(file_name):
|
||||
|
||||
line = line.replace('D', 'E') # Handle bizarro float format
|
||||
e = {'epoch': epoch, 'prn': prn}
|
||||
e['toc'] = epoch
|
||||
e['toe'] = epoch
|
||||
e['min_tauN'] = float(line[23:42])
|
||||
e['GammaN'] = float(line[42:61])
|
||||
e['tk'] = float(line[61:80])
|
||||
@@ -524,34 +569,30 @@ def parse_rinex_nav_msg_glonass(file_name):
|
||||
e['z'], e['z_vel'], e['z_acc'], e['age'] = read4(f, rinex_ver)
|
||||
|
||||
e['healthy'] = (e['health'] == 0.0)
|
||||
|
||||
ephems[prn].append(GLONASSEphemeris(e, epoch, file_name=file_name))
|
||||
f.close()
|
||||
return ephems
|
||||
|
||||
|
||||
'''
|
||||
def parse_qcom_ephem(qcom_poly, current_week):
|
||||
svId = qcom_poly.svId
|
||||
data = qcom_poly
|
||||
t0 = data.t0
|
||||
# fix glonass time
|
||||
prn = get_prn_from_nmea_id(svId)
|
||||
if prn == 'GLONASS':
|
||||
# TODO should handle leap seconds better
|
||||
epoch = GPSTime(current_week, (t0 + 3*SECS_IN_WEEK) % (SECS_IN_WEEK) + 18)
|
||||
else:
|
||||
epoch = GPSTime(current_week, t0)
|
||||
poly_data = {}
|
||||
poly_data['t0'] = epoch
|
||||
poly_data['xyz'] = np.array([
|
||||
[data.xyz0[0], data.xyzN[0], data.xyzN[1], data.xyzN[2]],
|
||||
[data.xyz0[1], data.xyzN[3], data.xyzN[4], data.xyzN[5]],
|
||||
[data.xyz0[2], data.xyzN[6], data.xyzN[7], data.xyzN[8]] ]).T
|
||||
|
||||
def parse_qcom_ephems(qcom_polys, current_week):
|
||||
ephems = []
|
||||
for qcom_poly in qcom_polys:
|
||||
svId = qcom_poly.qcomGnss.drSvPoly.svId
|
||||
data = qcom_poly.qcomGnss.drSvPoly
|
||||
t0 = data.t0
|
||||
# fix glonass time
|
||||
if get_constellation(svId) == 'GLONASS':
|
||||
# TODO should handle leap seconds better
|
||||
epoch = GPSTime(current_week, (t0 + 3*SECS_IN_WEEK) % (SECS_IN_WEEK) + 18)
|
||||
else:
|
||||
epoch = GPSTime(current_week, t0)
|
||||
poly_data = {}
|
||||
poly_data['t0'] = epoch
|
||||
poly_data['x'] = [data.xyzN[2], data.xyzN[1], data.xyzN[0], data.xyz0[0]]
|
||||
poly_data['y'] = [data.xyzN[5], data.xyzN[4], data.xyzN[3], data.xyz0[1]]
|
||||
poly_data['z'] = [data.xyzN[8], data.xyzN[7], data.xyzN[6], data.xyz0[2]]
|
||||
poly_data['clock'] = [1e-3*data.other[3], 1e-3*data.other[2], 1e-3*data.other[1], 1e-3*data.other[0]]
|
||||
poly_data['deg'] = 3
|
||||
poly_data['deg_t'] = 3
|
||||
ephems.append(PolyEphemeris(svId, poly_data, epoch, eph_type=EphemerisType.QCOM_POLY))
|
||||
return ephems
|
||||
'''
|
||||
poly_data['clock'] = [1e-3*data.other[3], 1e-3*data.other[2], 1e-3*data.other[1], 1e-3*data.other[0]]
|
||||
poly_data['deg'] = 3
|
||||
poly_data['deg_t'] = 3
|
||||
return PolyEphemeris(prn, poly_data, epoch, ephem_type=EphemerisType.QCOM_POLY, max_time_diff=180)
|
||||
|
||||
+5
-1
@@ -53,6 +53,7 @@ def tow_to_datetime(tow, week):
|
||||
|
||||
|
||||
def get_leap_seconds(time):
|
||||
# TODO use library for this
|
||||
if time <= GPSTime.from_datetime(datetime.datetime(2006, 1, 1)):
|
||||
raise ValueError("Don't know how many leap seconds to use before 2006")
|
||||
elif time <= GPSTime.from_datetime(datetime.datetime(2009, 1, 1)):
|
||||
@@ -61,7 +62,7 @@ def get_leap_seconds(time):
|
||||
return 15
|
||||
elif time <= GPSTime.from_datetime(datetime.datetime(2015, 7, 1)):
|
||||
return 16
|
||||
elif time <= GPSTime.from_datetime(datetime.datetime(2017, 7, 1)):
|
||||
elif time <= GPSTime.from_datetime(datetime.datetime(2017, 1, 1)):
|
||||
return 17
|
||||
else:
|
||||
return 18
|
||||
@@ -151,6 +152,9 @@ class GPSTime:
|
||||
def as_datetime(self):
|
||||
return tow_to_datetime(self.tow, self.week)
|
||||
|
||||
def as_unix_timestamp(self):
|
||||
return (gpst_to_utc(self).as_datetime() - datetime.datetime(1970, 1, 1)).total_seconds()
|
||||
|
||||
@property
|
||||
def day(self):
|
||||
return int(self.tow/(24*3600))
|
||||
|
||||
+5
-3
@@ -32,11 +32,13 @@ class ConstellationId(IntEnum):
|
||||
def from_qcom_source(cls, report_source: int):
|
||||
if report_source == 0:
|
||||
return ConstellationId.GPS
|
||||
if report_source == 1:
|
||||
return ConstellationId.GLONASS
|
||||
if report_source == 2:
|
||||
return ConstellationId.BEIDOU
|
||||
if report_source == 6:
|
||||
return ConstellationId.SBAS
|
||||
elif report_source == 1:
|
||||
return ConstellationId.GLONASS
|
||||
raise NotImplementedError('Only GPS (0), SBAS (1) and GLONASS (6) are supported from qcom, not:', {report_source})
|
||||
raise NotImplementedError('Only GPS (0), GLONASS (1), BEIDOU (2) and SBAS (6) are supported from qcom, not:', {report_source})
|
||||
|
||||
|
||||
# From https://gpsd.gitlab.io/gpsd/NMEA.html#_satellite_ids
|
||||
|
||||
+191
@@ -0,0 +1,191 @@
|
||||
import sympy
|
||||
import numpy as np
|
||||
from typing import List
|
||||
|
||||
from .constants import EARTH_ROTATION_RATE, SPEED_OF_LIGHT
|
||||
from .helpers import ConstellationId
|
||||
from .raw_gnss import GNSSMeasurement
|
||||
|
||||
|
||||
def gauss_newton(fun, b, xtol=1e-8, max_n=25):
|
||||
for _ in range(max_n):
|
||||
# Compute function and jacobian on current estimate
|
||||
r, J = fun(b)
|
||||
|
||||
# Update estimate
|
||||
delta = np.linalg.pinv(J) @ r
|
||||
b -= delta
|
||||
|
||||
# Check step size for stopping condition
|
||||
if np.linalg.norm(delta) < xtol:
|
||||
break
|
||||
return b
|
||||
|
||||
|
||||
def calc_pos_fix(measurements, posfix_functions=None, x0=None, no_weight=False, signal='C1C', min_measurements=6):
|
||||
'''
|
||||
Calculates gps fix using gauss newton method
|
||||
To solve the problem a minimal of 4 measurements are required.
|
||||
If Glonass is included 5 are required to solve for the additional free variable.
|
||||
returns:
|
||||
0 -> list with positions
|
||||
1 -> pseudorange errs
|
||||
'''
|
||||
if x0 is None:
|
||||
x0 = [0, 0, 0, 0, 0]
|
||||
|
||||
if len(measurements) < min_measurements:
|
||||
return [],[]
|
||||
|
||||
Fx_pos = pr_residual(measurements, posfix_functions, signal=signal, no_weight=no_weight, no_nans=True)
|
||||
x = gauss_newton(Fx_pos, x0)
|
||||
residual, _ = Fx_pos(x, no_weight=True)
|
||||
return x.tolist(), residual.tolist()
|
||||
|
||||
|
||||
def calc_vel_fix(measurements, est_pos, velfix_function=None, v0=None, no_weight=False, signal='D1C', min_measurements=6):
|
||||
'''
|
||||
Calculates gps velocity fix using gauss newton method
|
||||
returns:
|
||||
0 -> list with velocities
|
||||
1 -> pseudorange_rate errs
|
||||
'''
|
||||
if v0 is None:
|
||||
v0 = [0, 0, 0, 0]
|
||||
|
||||
if len(measurements) < min_measurements:
|
||||
return [], []
|
||||
|
||||
Fx_vel = prr_residual(measurements, est_pos, velfix_function, signal=signal, no_weight=no_weight, no_nans=True)
|
||||
v = gauss_newton(Fx_vel, v0)
|
||||
residual, _ = Fx_vel(v, no_weight=True)
|
||||
return v.tolist(), residual.tolist()
|
||||
|
||||
|
||||
def get_posfix_sympy_fun(constellation):
|
||||
# Unknowns
|
||||
x, y, z = sympy.Symbol('x'), sympy.Symbol('y'), sympy.Symbol('z')
|
||||
bc = sympy.Symbol('bc')
|
||||
bg = sympy.Symbol('bg')
|
||||
zero_theta = sympy.Symbol('zero_theta')
|
||||
var = [x, y, z, bc, bg]
|
||||
|
||||
# Knowns
|
||||
pr = sympy.Symbol('pr')
|
||||
sat_x, sat_y, sat_z = sympy.Symbol('sat_x'), sympy.Symbol('sat_y'), sympy.Symbol('sat_z')
|
||||
weight = sympy.Symbol('weight')
|
||||
|
||||
theta = (EARTH_ROTATION_RATE * (pr - bc) / SPEED_OF_LIGHT)*zero_theta
|
||||
val = sympy.sqrt(
|
||||
(sat_x * sympy.cos(theta) + sat_y * sympy.sin(theta) - x) ** 2 +
|
||||
(sat_y * sympy.cos(theta) - sat_x * sympy.sin(theta) - y) ** 2 +
|
||||
(sat_z - z) ** 2
|
||||
)
|
||||
|
||||
if constellation == ConstellationId.GLONASS:
|
||||
res = weight * (val - (pr - bc - bg))
|
||||
elif constellation == ConstellationId.GPS:
|
||||
res = weight * (val - (pr - bc))
|
||||
else:
|
||||
raise NotImplementedError(f"Constellation {constellation} not supported")
|
||||
|
||||
res = [res] + [sympy.diff(res, v) for v in var]
|
||||
|
||||
return sympy.lambdify([x, y, z, bc, bg, pr, zero_theta, sat_x, sat_y, sat_z, weight], res, modules=["numpy"])
|
||||
|
||||
|
||||
def get_velfix_sympy_func():
|
||||
# implementing this without sympy.Matrix gives a 2x speedup at generation
|
||||
|
||||
# knowns, receiver position, satellite position, satellite velocity
|
||||
ep_x, ep_y, ep_z = sympy.Symbol('ep_x'), sympy.Symbol('ep_y'), sympy.Symbol('ep_z')
|
||||
est_pos = np.array([ep_x, ep_y, ep_z])
|
||||
sp_x, sp_y, sp_z = sympy.Symbol('sp_x'), sympy.Symbol('sp_y'), sympy.Symbol('sp_z')
|
||||
sat_pos = np.array([sp_x, sp_y, sp_z])
|
||||
sv_x, sv_y, sv_z = sympy.Symbol('sv_x'), sympy.Symbol('sv_y'), sympy.Symbol('sv_z')
|
||||
sat_vel = np.array([sv_x, sv_y, sv_z])
|
||||
observables = sympy.Symbol('observables')
|
||||
weight = sympy.Symbol('weight')
|
||||
|
||||
# unknown, receiver velocity
|
||||
v_x, v_y, v_z = sympy.Symbol('v_x'), sympy.Symbol('v_y'), sympy.Symbol('v_z')
|
||||
vel = np.array([v_x, v_y, v_z])
|
||||
vel_o = sympy.Symbol('vel_o')
|
||||
|
||||
loss = sat_pos - est_pos
|
||||
loss /= sympy.sqrt(loss.dot(loss))
|
||||
|
||||
nv = loss.dot(sat_vel - vel)
|
||||
ov = (observables - vel_o)
|
||||
res = (nv - ov)*weight
|
||||
|
||||
res = [res] + [sympy.diff(res, v) for v in [v_x, v_y, v_z, vel_o]]
|
||||
|
||||
return sympy.lambdify([
|
||||
ep_x, ep_y, ep_z, sp_x, sp_y, sp_z,
|
||||
sv_x, sv_y, sv_z, observables, weight,
|
||||
v_x, v_y, v_z, vel_o
|
||||
],
|
||||
res, modules=["numpy"])
|
||||
|
||||
|
||||
def pr_residual(measurements: List[GNSSMeasurement], posfix_functions=None, signal='C1C', no_weight=False, no_nans=False):
|
||||
|
||||
if posfix_functions is None:
|
||||
posfix_functions = {constellation: get_posfix_sympy_fun(constellation) for constellation in (ConstellationId.GPS, ConstellationId.GLONASS)}
|
||||
|
||||
def Fx_pos(inp, no_weight=no_weight):
|
||||
vals, gradients = [], []
|
||||
|
||||
for meas in measurements:
|
||||
if signal in meas.observables_final and np.isfinite(meas.observables_final[signal]):
|
||||
pr = meas.observables_final[signal]
|
||||
sat_pos = meas.sat_pos_final
|
||||
zero_theta = 0
|
||||
elif signal in meas.observables and np.isfinite(meas.observables[signal]) and meas.processed:
|
||||
pr = meas.observables[signal]
|
||||
pr += meas.sat_clock_err * SPEED_OF_LIGHT
|
||||
sat_pos = meas.sat_pos
|
||||
zero_theta = 1
|
||||
else:
|
||||
if not no_nans:
|
||||
vals.append(np.nan)
|
||||
gradients.append(np.nan)
|
||||
continue
|
||||
|
||||
w = 1.0 if no_weight or meas.observables_std[signal] == 0 else (1 / meas.observables_std[signal])
|
||||
val, *gradient = posfix_functions[meas.constellation_id](*inp, pr, zero_theta, *sat_pos, w)
|
||||
vals.append(val)
|
||||
gradients.append(gradient)
|
||||
return np.asarray(vals), np.asarray(gradients)
|
||||
return Fx_pos
|
||||
|
||||
|
||||
def prr_residual(measurements: List[GNSSMeasurement], est_pos, velfix_function=None, signal='D1C', no_weight=False, no_nans=False):
|
||||
|
||||
if velfix_function is None:
|
||||
velfix_function = get_velfix_sympy_func()
|
||||
|
||||
def Fx_vel(vel, no_weight=no_weight):
|
||||
vals, gradients = [], []
|
||||
|
||||
for meas in measurements:
|
||||
if signal not in meas.observables or not np.isfinite(meas.observables[signal]):
|
||||
if not no_nans:
|
||||
vals.append(np.nan)
|
||||
gradients.append(np.nan)
|
||||
continue
|
||||
|
||||
sat_pos = meas.sat_pos_final if meas.corrected else meas.sat_pos
|
||||
weight = 1.0 if no_weight or meas.observables_std[signal] == 0 else (1 / meas.observables_std[signal])
|
||||
|
||||
val, *gradient = velfix_function(est_pos[0], est_pos[1], est_pos[2],
|
||||
sat_pos[0], sat_pos[1], sat_pos[2],
|
||||
meas.sat_vel[0], meas.sat_vel[1], meas.sat_vel[2],
|
||||
meas.observables[signal], weight,
|
||||
vel[0], vel[1], vel[2], vel[3])
|
||||
vals.append(val)
|
||||
gradients.append(gradient)
|
||||
|
||||
return np.asarray(vals), np.asarray(gradients)
|
||||
return Fx_vel
|
||||
+4
-106
@@ -92,11 +92,11 @@ class GNSSMeasurement:
|
||||
self.processed = True
|
||||
return True
|
||||
|
||||
def correct(self, est_pos, dog, allow_incomplete_delay=False):
|
||||
def correct(self, est_pos, dog):
|
||||
for obs in self.observables:
|
||||
if obs[0] == 'C': # or obs[0] == 'L':
|
||||
delay = dog.get_delay(self.prn, self.recv_time, est_pos, signal=obs)
|
||||
if delay is not None and (allow_incomplete_delay or delay != 0):
|
||||
if delay is not None:
|
||||
self.observables_final[obs] = (self.observables[obs] +
|
||||
self.sat_clock_err*constants.SPEED_OF_LIGHT -
|
||||
delay)
|
||||
@@ -147,10 +147,10 @@ def process_measurements(measurements: List[GNSSMeasurement], dog) -> List[GNSSM
|
||||
return proc_measurements
|
||||
|
||||
|
||||
def correct_measurements(measurements: List[GNSSMeasurement], est_pos, dog, allow_incomplete_delay=False) -> List[GNSSMeasurement]:
|
||||
def correct_measurements(measurements: List[GNSSMeasurement], est_pos, dog) -> List[GNSSMeasurement]:
|
||||
corrected_measurements = []
|
||||
for meas in measurements:
|
||||
if meas.correct(est_pos, dog, allow_incomplete_delay):
|
||||
if meas.correct(est_pos, dog):
|
||||
corrected_measurements.append(meas)
|
||||
return corrected_measurements
|
||||
|
||||
@@ -292,108 +292,6 @@ def read_rinex_obs(obsdata) -> List[List[GNSSMeasurement]]:
|
||||
return measurements
|
||||
|
||||
|
||||
def calc_pos_fix(measurements, x0=[0, 0, 0, 0, 0], no_weight=False, signal='C1C', min_measurements=6):
|
||||
'''
|
||||
Calculates gps fix with WLS optimizer
|
||||
|
||||
returns:
|
||||
0 -> list with positions
|
||||
1 -> pseudorange errs
|
||||
'''
|
||||
import scipy.optimize as opt # Only use scipy here
|
||||
|
||||
n = len(measurements)
|
||||
if n < min_measurements:
|
||||
return []
|
||||
|
||||
Fx_pos = pr_residual(measurements, signal=signal, no_weight=no_weight, no_nans=True)
|
||||
opt_pos = opt.least_squares(Fx_pos, x0).x
|
||||
return opt_pos, Fx_pos(opt_pos, no_weight=True)
|
||||
|
||||
|
||||
def calc_vel_fix(measurements, est_pos, v0=[0, 0, 0, 0], no_weight=False, signal='D1C'):
|
||||
'''
|
||||
Calculates gps velocity fix with WLS optimizer
|
||||
|
||||
returns:
|
||||
0 -> list with velocities
|
||||
1 -> pseudorange_rate errs
|
||||
'''
|
||||
import scipy.optimize as opt # Only use scipy here
|
||||
|
||||
n = len(measurements)
|
||||
if n < 6:
|
||||
return []
|
||||
|
||||
Fx_vel = prr_residual(measurements, est_pos, signal=signal, no_weight=no_weight, no_nans=True)
|
||||
opt_vel = opt.least_squares(Fx_vel, v0).x
|
||||
return opt_vel, Fx_vel(opt_vel, no_weight=True)
|
||||
|
||||
|
||||
def pr_residual(measurements: List[GNSSMeasurement], signal='C1C', no_weight=False, no_nans=False):
|
||||
# solve for pos
|
||||
def Fx_pos(xxx_todo_changeme, no_weight=no_weight):
|
||||
(x, y, z, bc, bg) = xxx_todo_changeme
|
||||
rows = []
|
||||
|
||||
for meas in measurements:
|
||||
if signal in meas.observables_final and np.isfinite(meas.observables_final[signal]):
|
||||
pr = meas.observables_final[signal]
|
||||
sat_pos = meas.sat_pos_final
|
||||
theta = 0
|
||||
elif signal in meas.observables and np.isfinite(meas.observables[signal]) and meas.processed:
|
||||
pr = meas.observables[signal]
|
||||
pr += meas.sat_clock_err * constants.SPEED_OF_LIGHT
|
||||
sat_pos = meas.sat_pos
|
||||
theta = constants.EARTH_ROTATION_RATE * (pr - bc) / constants.SPEED_OF_LIGHT
|
||||
else:
|
||||
if not no_nans:
|
||||
rows.append(np.nan)
|
||||
continue
|
||||
if no_weight:
|
||||
weight = 1
|
||||
else:
|
||||
weight = (1 / meas.observables_std[signal])
|
||||
|
||||
val = np.sqrt(
|
||||
(sat_pos[0] * np.cos(theta) + sat_pos[1] * np.sin(theta) - x) ** 2 +
|
||||
(sat_pos[1] * np.cos(theta) - sat_pos[0] * np.sin(theta) - y) ** 2 +
|
||||
(sat_pos[2] - z) ** 2
|
||||
)
|
||||
if meas.constellation_id == ConstellationId.GLONASS:
|
||||
rows.append(weight * (val - (pr - bc - bg)))
|
||||
elif meas.constellation_id == ConstellationId.GPS:
|
||||
rows.append(weight * (val - (pr - bc)))
|
||||
return rows
|
||||
return Fx_pos
|
||||
|
||||
|
||||
def prr_residual(measurements, est_pos, signal='D1C', no_weight=False, no_nans=False):
|
||||
# solve for vel
|
||||
def Fx_vel(vel, no_weight=no_weight):
|
||||
rows = []
|
||||
for meas in measurements:
|
||||
if signal not in meas.observables or not np.isfinite(meas.observables[signal]):
|
||||
if not no_nans:
|
||||
rows.append(np.nan)
|
||||
continue
|
||||
if meas.corrected:
|
||||
sat_pos = meas.sat_pos_final
|
||||
else:
|
||||
sat_pos = meas.sat_pos
|
||||
if no_weight:
|
||||
weight = 1
|
||||
else:
|
||||
weight = (1 / meas.observables[signal])
|
||||
los_vector = (sat_pos - est_pos[0:3]
|
||||
) / np.linalg.norm(sat_pos - est_pos[0:3])
|
||||
rows.append(
|
||||
weight * ((meas.sat_vel - vel[0:3]).dot(los_vector) -
|
||||
(meas.observables[signal] - vel[3])))
|
||||
return rows
|
||||
return Fx_vel
|
||||
|
||||
|
||||
def get_Q(recv_pos, sat_positions):
|
||||
local = LocalCoord.from_ecef(recv_pos)
|
||||
sat_positions_rel = local.ecef2ned(sat_positions)
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ def saast(pos, el, humi=0.75, temp0=15.0):
|
||||
:return: tropospheric delay (m)
|
||||
"""
|
||||
pos_rad = ecef2geodetic(pos, radians=True)
|
||||
if pos_rad[2] < -100.0 or 1E4 < pos_rad[2] or el <= 0:
|
||||
if pos_rad[2] < -1E3 or 1E4 < pos_rad[2] or el <= 0:
|
||||
return 0.0
|
||||
|
||||
# /* standard atmosphere */
|
||||
|
||||
+31
-2
@@ -9,6 +9,20 @@ source "$BASEDIR/launch_env.sh"
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
|
||||
|
||||
function two_init {
|
||||
if [ -f /EON ]; then
|
||||
if [ ! -f /system/fonts/NotoSansCJKtc-Regular.otf ]; then
|
||||
mount -o remount,rw /system
|
||||
rm -fr /system/fonts/NotoSansTC*.otf
|
||||
rm -fr /system/fonts/NotoSansSC*.otf
|
||||
rm -fr /system/fonts/NotoSansKR*.otf
|
||||
rm -fr /system/fonts/NotoSansJP*.otf
|
||||
cp -rf /data/openpilot/selfdrive/assets/fonts/NotoSansCJKtc-* /system/fonts/
|
||||
cp -rf /data/openpilot/selfdrive/assets/fonts/fonts.xml /system/etc/fonts.xml
|
||||
chmod 644 /system/etc/fonts.xml
|
||||
chmod 644 /system/fonts/NotoSansCJKtc-*
|
||||
mount -o remount,r /system
|
||||
fi
|
||||
fi
|
||||
|
||||
dt=$(date +%s)
|
||||
|
||||
@@ -166,6 +180,11 @@ function two_init {
|
||||
echo "Installing $MODULE..."
|
||||
tar -zxvf "$LIB_PATH/$MODULE.tar.gz" -C "$PY_LIB_DEST/"
|
||||
fi
|
||||
# panda
|
||||
if [ ! -f "$PY_LIB_DEST/spidev.cpython-38.so" ]; then
|
||||
echo "Installing spidev.cpython-38.so..."
|
||||
cp -f "$LIB_PATH/spidev.cpython-38.so" "$PY_LIB_DEST/"
|
||||
fi
|
||||
mount -o remount,r /system
|
||||
|
||||
# Check for NEOS update
|
||||
@@ -216,7 +235,6 @@ function agnos_init {
|
||||
fi
|
||||
$DIR/system/hardware/tici/updater $AGNOS_PY $MANIFEST
|
||||
fi
|
||||
./custom_dep.py
|
||||
}
|
||||
|
||||
function launch {
|
||||
@@ -269,6 +287,8 @@ function launch {
|
||||
if [ -f "/data/media/0/dp_patcher.py" ]; then
|
||||
python /data/media/0/dp_patcher.py
|
||||
fi
|
||||
# dp - install default ssh key
|
||||
python /data/openpilot/scripts/sshkey_installer.py
|
||||
|
||||
# hardware specific init
|
||||
two_init
|
||||
@@ -278,7 +298,16 @@ function launch {
|
||||
|
||||
# start manager
|
||||
cd selfdrive/manager
|
||||
./build.py && ./manager.py
|
||||
if [ -f /data/params/d/OsmLocal ]; then
|
||||
OSM_LOCAL=`cat /data/params/d/OsmLocal`
|
||||
else
|
||||
OSM_LOCAL="0"
|
||||
fi
|
||||
if [ $OSM_LOCAL = "1" ]; then
|
||||
./build.py && ./local_osm_install.py && ./manager.py
|
||||
else
|
||||
./build.py && ./manager.py
|
||||
fi
|
||||
|
||||
# if broken, keep on screen error
|
||||
while true; do sleep 1; done
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@ if [ -z "$NEOS_VERSION" ]; then
|
||||
fi
|
||||
|
||||
if [ -z "$AGNOS_VERSION" ]; then
|
||||
export AGNOS_VERSION="5.2"
|
||||
export AGNOS_VERSION="6.2"
|
||||
fi
|
||||
|
||||
if [ -z "$PASSIVE" ]; then
|
||||
|
||||
+6
-2
@@ -29,6 +29,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
python-openssl \
|
||||
xz-utils \
|
||||
zlib1g-dev \
|
||||
cmake \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
|
||||
@@ -45,11 +46,14 @@ ENV PYTHONPATH=/project
|
||||
|
||||
WORKDIR /project
|
||||
# TODO: Add tag to cereal
|
||||
RUN git clone https://github.com/commaai/cereal.git /project/cereal && cd /project/cereal && git checkout d46f37c314bb92306207db44693b2f58c31f66b9
|
||||
RUN git clone https://github.com/commaai/cereal.git /project/cereal && \
|
||||
cd /project/cereal && \
|
||||
git checkout 959ff79963b80829be9902d146c31fda44dbbd20
|
||||
|
||||
COPY SConstruct .
|
||||
COPY ./site_scons /project/site_scons
|
||||
COPY . /project/opendbc
|
||||
|
||||
RUN rm -rf /project/opendbc/.git
|
||||
RUN rm -rf /project/opendbc/.git && \
|
||||
rm -rf /project/cereal/.git
|
||||
RUN scons -c && scons -j$(nproc)
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ Wondering what's the DBC file format? [Here](http://www.socialledge.com/sjsu/ind
|
||||
|
||||
## How to start reverse engineering cars
|
||||
|
||||
[opendbc](https://github.com/commaai/opendbc) is integrated with [cabana](https://community.comma.ai/cabana/).
|
||||
[opendbc](https://github.com/commaai/opendbc) is integrated with [cabana](https://github.com/commaai/openpilot/tree/master/tools/cabana).
|
||||
|
||||
Use [panda](https://github.com/commaai/panda) to connect your car to a computer.
|
||||
|
||||
|
||||
@@ -182,7 +182,7 @@ BO_ 880 ASCMActiveCruiseControlStatus: 6 K124_ASCM
|
||||
SG_ ACCLeadCar : 44|1@0+ (1,0) [0|0] "" Vector__XXX
|
||||
SG_ ACCAlwaysOne2 : 32|1@0+ (1,0) [0|0] "" Vector__XXX
|
||||
SG_ ACCAlwaysOne : 0|1@0+ (1,0) [0|0] "" Vector__XXX
|
||||
SG_ ACCSpeedSetpoint : 19|12@0+ (1,0) [0|0] "km/h" NEO
|
||||
SG_ ACCSpeedSetpoint : 19|12@0+ (0.0625,0) [0|255.9375] "km/h" NEO
|
||||
SG_ ACCGapLevel : 21|2@0+ (1,0) [0|0] "" NEO
|
||||
SG_ ACCResumeButton : 1|1@0+ (1,0) [0|0] "" NEO
|
||||
SG_ ACCCmdActive : 23|1@0+ (1,0) [0|0] "" NEO
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
#pragma once
|
||||
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <string>
|
||||
#include <utility>
|
||||
#include <unordered_map>
|
||||
#include <vector>
|
||||
|
||||
#include "common_dbc.h"
|
||||
#include <capnp/dynamic.h>
|
||||
#include <capnp/serialize.h>
|
||||
|
||||
@@ -12,12 +13,15 @@
|
||||
#include "cereal/gen/cpp/log.capnp.h"
|
||||
#endif
|
||||
|
||||
#include "opendbc/can/common_dbc.h"
|
||||
|
||||
#define INFO printf
|
||||
#define WARN printf
|
||||
#define DEBUG(...)
|
||||
//#define DEBUG printf
|
||||
|
||||
#define MAX_BAD_COUNTER 5
|
||||
#define CAN_INVALID_CNT 5
|
||||
|
||||
void init_crc_lookup_tables();
|
||||
|
||||
@@ -68,6 +72,7 @@ public:
|
||||
uint64_t last_sec = 0;
|
||||
uint64_t last_nonempty_sec = 0;
|
||||
uint64_t bus_timeout_threshold = 0;
|
||||
uint64_t can_invalid_cnt = CAN_INVALID_CNT;
|
||||
|
||||
CANParser(int abus, const std::string& dbc_name,
|
||||
const std::vector<MessageParseOptions> &options,
|
||||
|
||||
@@ -61,6 +61,7 @@ cdef extern from "common_dbc.h":
|
||||
|
||||
cdef struct SignalValue:
|
||||
uint32_t address
|
||||
uint64_t ts_nanos
|
||||
string name
|
||||
double value
|
||||
vector[double] all_values
|
||||
|
||||
@@ -24,6 +24,7 @@ struct MessageParseOptions {
|
||||
|
||||
struct SignalValue {
|
||||
uint32_t address;
|
||||
uint64_t ts_nanos;
|
||||
std::string name;
|
||||
double value; // latest value
|
||||
std::vector<double> all_values; // all values from this cycle
|
||||
@@ -71,8 +72,19 @@ struct DBC {
|
||||
std::vector<Msg> msgs;
|
||||
std::vector<Val> vals;
|
||||
};
|
||||
|
||||
typedef struct ChecksumState {
|
||||
int checksum_size;
|
||||
int counter_size;
|
||||
int checksum_start_bit;
|
||||
int counter_start_bit;
|
||||
bool little_endian;
|
||||
SignalType checksum_type;
|
||||
unsigned int (*calc_checksum)(uint32_t address, const Signal &sig, const std::vector<uint8_t> &d);
|
||||
} ChecksumState;
|
||||
#ifndef QCOM
|
||||
DBC* dbc_parse(const std::string& dbc_path);
|
||||
DBC* dbc_parse_from_stream(const std::string &dbc_name, std::istream &stream, ChecksumState *checksum = nullptr);
|
||||
const DBC* dbc_lookup(const std::string& dbc_name);
|
||||
std::vector<std::string> get_dbc_names();
|
||||
#else
|
||||
|
||||
Binary file not shown.
@@ -1,3 +1,2 @@
|
||||
# pylint: skip-file
|
||||
from opendbc.can.packer_pyx import CANPacker
|
||||
from opendbc.can.packer_pyx import CANPacker # pylint: disable=no-name-in-module, import-error
|
||||
assert CANPacker
|
||||
|
||||
Binary file not shown.
+1097
-933
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -9,6 +9,17 @@ BO_ 258 STEERING: 8 XXX
|
||||
SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 264 ECM_1: 8 XXX
|
||||
SG_ ENGINE_RPM : 7|16@0+ (1,0) [0|65535] "" XXX
|
||||
SG_ ENGINE_TORQUE : 20|13@0+ (0.25,-500) [-500|1547.5] "Nm" XXX
|
||||
SG_ EXPECTED_ENGINE_TORQUE : 36|13@0+ (0.25,-500) [-500|1547.5] "Nm" XXX
|
||||
SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 280 ECM_TRQ: 8 XXX
|
||||
SG_ ENGINE_TORQ_MAX : 4|13@0+ (.25,-500) [-500|1547.5] "NM" XXX
|
||||
SG_ ENGINE_TORQ_MIN : 20|13@0+ (.25,-500) [-500|1547.5] "NM" XXX
|
||||
|
||||
BO_ 284 ESP_8: 8 XXX
|
||||
SG_ BRK_PRESSURE : 3|12@0+ (1,0) [0|1] "" XXX
|
||||
SG_ BRAKE_PEDAL : 19|12@0+ (1,0) [0|1] "" XXX
|
||||
@@ -29,6 +40,11 @@ BO_ 344 ESP_6: 8 XXX
|
||||
SG_ WHEEL_SPEED_RL : 37|14@0+ (0.5,0) [0|8191] "rpm" XXX
|
||||
SG_ WHEEL_SPEED_RR : 53|14@0+ (0.5,0) [0|8191] "rpm" XXX
|
||||
|
||||
BO_ 368 Transmission_Status: 8 XXX
|
||||
SG_ Gear_State : 2|3@1+ (1,0) [0|15] "" XXX
|
||||
SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 464 ORC_1: 8 XXX
|
||||
SG_ SEATBELT_DRIVER_UNLATCHED : 13|1@0+ (1,0) [0|1] "" XXX
|
||||
|
||||
@@ -36,10 +52,17 @@ BO_ 500 DAS_3: 8 XXX
|
||||
SG_ ENGINE_TORQUE_REQUEST : 4|13@0+ (0.25,-500) [-500|1547.5] "Nm" XXX
|
||||
SG_ ENGINE_TORQUE_REQUEST_MAX : 7|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ ACC_STANDSTILL : 5|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ ACC_GO : 6|1@1+ (1,0) [0|0] "" XXX
|
||||
SG_ ACC_DECEL : 19|12@0+ (0.004885,-16) [-16|4] "m/s2" XXX
|
||||
SG_ ACC_AVAILABLE : 20|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ ACC_ACTIVE : 21|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ DISABLE_FUEL_SHUTOFF : 23|1@1+ (1,0) [0|0] "" XXX
|
||||
SG_ GR_MAX_REQ : 32|4@1+ (1,0) [0|0] "" XXX
|
||||
SG_ ACC_DECEL_REQ : 36|3@1+ (1,0) [0|0] "" XXX
|
||||
SG_ STS : 46|2@1+ (1,0) [0|0] "" XXX
|
||||
SG_ ACC_FAULTED : 47|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ BRAKE_MAYBE : 18|11@0+ (1,0) [0|255] "" XXX
|
||||
SG_ COLLISION_BRK_PREP : 48|1@1+ (1,0) [0|0] "" XXX
|
||||
SG_ ACC_BRK_PREP : 49|1@1+ (1,0) [0|0] "" XXX
|
||||
SG_ BRAKE_BOOL_1 : 36|1@0+ (1,0) [0|3] "" XXX
|
||||
SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
@@ -58,6 +81,7 @@ BO_ 544 EPS_2: 8 XXX
|
||||
SG_ TORQUE_OVERLAY_STATUS : 6|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ EPS_TORQUE_MOTOR_RAW : 19|12@0+ (1,-2048) [-2048|2047] "" XXX
|
||||
SG_ EPS_TORQUE_MOTOR : 34|11@0+ (1,-1024) [-1024|1023] "" XXX
|
||||
SG_ LKAS_TEMPORARY_FAULT : 38|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ AUTO_PARK_HAS_CONTROL_2 : 51|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
@@ -104,7 +128,11 @@ BO_ 820 BCM_1: 8 XXX
|
||||
SG_ TURN_LIGHT_RIGHT : 30|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ HIGH_BEAM_DISPLAY : 58|1@0+ (1,0) [0|1] "" XXX
|
||||
|
||||
VAL_ 368 Gear_State 4 "D" 2 "N" 1 "R" 0 "P" ;
|
||||
|
||||
CM_ SG_ 258 STEERING_ANGLE_HP "Steering angle high precision";
|
||||
CM_ SG_ 264 ENGINE_TORQUE "Effective engine torque";
|
||||
CM_ SG_ 264 EXPECTED_ENGINE_TORQUE "Expected Engine Torque based on target engine speed";
|
||||
CM_ SG_ 678 LKAS_ICON_COLOR "3 is yellow, 2 is green, 1 is white, 0 is null";
|
||||
CM_ SG_ 678 LKAS_LANE_LINES "0x01 transparent lines, 0x02 left white, 0x03 right white, 0x04 left yellow with car on top, 0x05 left yellow with car on top, 0x06 both white, 0x07 left yellow, 0x08 left yellow right white, 0x09 right yellow, 0x0a right yellow left white, 0x0b left yellow with car on top right white, 0x0c right yellow with car on top left white, (0x00, 0x0d, 0x0e, 0x0f) null";
|
||||
CM_ SG_ 678 LKAS_ALERTS "(0x01, 0x02) lane sense off, (0x03, 0x04, 0x06) place hands on steering wheel, 0x07 lane departure detected + place hands on steering wheel, (0x08, 0x09) lane sense unavailable + clean front windshield, 0x0b lane sense and auto high beam unavailable + clean front windshield, 0x0c lane sense unavailable + service required, (0x00, 0x05, 0x0a, 0x0d, 0x0e, 0x0f) null";
|
||||
@@ -128,11 +156,6 @@ BO_ 736 TRIP: 8 XXX
|
||||
SG_ COUNTER : 7|16@0+ (1,0) [0|65535] "Meters" XXX
|
||||
SG_ COUNTER_2 : 23|16@0+ (1,0) [0|65535] "Meters" XXX
|
||||
|
||||
BO_ 264 ACCEL_PEDAL_MSG: 8 XXX
|
||||
SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
SG_ ACCEL_PEDAL : 35|1@0+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 658 LKAS_COMMAND: 6 XXX
|
||||
SG_ COUNTER : 39|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 47|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
CM_ "AUTOGENERATED FILE, DO NOT EDIT";
|
||||
|
||||
|
||||
CM_ "Imported file _stellantis_common_ram.dbc starts here";
|
||||
CM_ "Imported file _stellantis_common_ram_dt_generated.dbc starts here";
|
||||
CM_ "Generated from _stellantis_common.dbc"
|
||||
|
||||
BO_ 35 STEERING: 8 XXX
|
||||
@@ -11,6 +11,17 @@ BO_ 35 STEERING: 8 XXX
|
||||
SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 37 ECM_1: 8 XXX
|
||||
SG_ ENGINE_RPM : 7|16@0+ (1,0) [0|65535] "" XXX
|
||||
SG_ ENGINE_TORQUE : 20|13@0+ (0.25,-500) [-500|1547.5] "Nm" XXX
|
||||
SG_ EXPECTED_ENGINE_TORQUE : 36|13@0+ (0.25,-500) [-500|1547.5] "Nm" XXX
|
||||
SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 181 ECM_TRQ: 8 XXX
|
||||
SG_ ENGINE_TORQ_MAX : 4|13@0+ (.25,-500) [-500|1547.5] "NM" XXX
|
||||
SG_ ENGINE_TORQ_MIN : 20|13@0+ (.25,-500) [-500|1547.5] "NM" XXX
|
||||
|
||||
BO_ 121 ESP_8: 8 XXX
|
||||
SG_ BRK_PRESSURE : 3|12@0+ (1,0) [0|1] "" XXX
|
||||
SG_ BRAKE_PEDAL : 19|12@0+ (1,0) [0|1] "" XXX
|
||||
@@ -31,6 +42,11 @@ BO_ 139 ESP_6: 8 XXX
|
||||
SG_ WHEEL_SPEED_RL : 37|14@0+ (0.5,0) [0|8191] "rpm" XXX
|
||||
SG_ WHEEL_SPEED_RR : 53|14@0+ (0.5,0) [0|8191] "rpm" XXX
|
||||
|
||||
BO_ 147 Transmission_Status: 8 XXX
|
||||
SG_ Gear_State : 2|3@1+ (1,0) [0|15] "" XXX
|
||||
SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 464 ORC_1: 8 XXX
|
||||
SG_ SEATBELT_DRIVER_UNLATCHED : 13|1@0+ (1,0) [0|1] "" XXX
|
||||
|
||||
@@ -38,10 +54,17 @@ BO_ 153 DAS_3: 8 XXX
|
||||
SG_ ENGINE_TORQUE_REQUEST : 4|13@0+ (0.25,-500) [-500|1547.5] "Nm" XXX
|
||||
SG_ ENGINE_TORQUE_REQUEST_MAX : 7|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ ACC_STANDSTILL : 5|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ ACC_GO : 6|1@1+ (1,0) [0|0] "" XXX
|
||||
SG_ ACC_DECEL : 19|12@0+ (0.004885,-16) [-16|4] "m/s2" XXX
|
||||
SG_ ACC_AVAILABLE : 20|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ ACC_ACTIVE : 21|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ DISABLE_FUEL_SHUTOFF : 23|1@1+ (1,0) [0|0] "" XXX
|
||||
SG_ GR_MAX_REQ : 32|4@1+ (1,0) [0|0] "" XXX
|
||||
SG_ ACC_DECEL_REQ : 36|3@1+ (1,0) [0|0] "" XXX
|
||||
SG_ STS : 46|2@1+ (1,0) [0|0] "" XXX
|
||||
SG_ ACC_FAULTED : 47|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ BRAKE_MAYBE : 18|11@0+ (1,0) [0|255] "" XXX
|
||||
SG_ COLLISION_BRK_PREP : 48|1@1+ (1,0) [0|0] "" XXX
|
||||
SG_ ACC_BRK_PREP : 49|1@1+ (1,0) [0|0] "" XXX
|
||||
SG_ BRAKE_BOOL_1 : 36|1@0+ (1,0) [0|3] "" XXX
|
||||
SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
@@ -60,6 +83,7 @@ BO_ 49 EPS_2: 8 XXX
|
||||
SG_ TORQUE_OVERLAY_STATUS : 6|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ EPS_TORQUE_MOTOR_RAW : 19|12@0+ (1,-2048) [-2048|2047] "" XXX
|
||||
SG_ EPS_TORQUE_MOTOR : 34|11@0+ (1,-1024) [-1024|1023] "" XXX
|
||||
SG_ LKAS_TEMPORARY_FAULT : 38|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ AUTO_PARK_HAS_CONTROL_2 : 51|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
@@ -106,19 +130,17 @@ BO_ 657 BCM_1: 8 XXX
|
||||
SG_ TURN_LIGHT_RIGHT : 30|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ HIGH_BEAM_DISPLAY : 58|1@0+ (1,0) [0|1] "" XXX
|
||||
|
||||
VAL_ 147 Gear_State 4 "D" 2 "N" 1 "R" 0 "P" ;
|
||||
|
||||
CM_ SG_ 258 STEERING_ANGLE_HP "Steering angle high precision";
|
||||
CM_ SG_ 264 ENGINE_TORQUE "Effective engine torque";
|
||||
CM_ SG_ 264 EXPECTED_ENGINE_TORQUE "Expected Engine Torque based on target engine speed";
|
||||
CM_ SG_ 678 LKAS_ICON_COLOR "3 is yellow, 2 is green, 1 is white, 0 is null";
|
||||
CM_ SG_ 678 LKAS_LANE_LINES "0x01 transparent lines, 0x02 left white, 0x03 right white, 0x04 left yellow with car on top, 0x05 left yellow with car on top, 0x06 both white, 0x07 left yellow, 0x08 left yellow right white, 0x09 right yellow, 0x0a right yellow left white, 0x0b left yellow with car on top right white, 0x0c right yellow with car on top left white, (0x00, 0x0d, 0x0e, 0x0f) null";
|
||||
CM_ SG_ 678 LKAS_ALERTS "(0x01, 0x02) lane sense off, (0x03, 0x04, 0x06) place hands on steering wheel, 0x07 lane departure detected + place hands on steering wheel, (0x08, 0x09) lane sense unavailable + clean front windshield, 0x0b lane sense and auto high beam unavailable + clean front windshield, 0x0c lane sense unavailable + service required, (0x00, 0x05, 0x0a, 0x0d, 0x0e, 0x0f) null";
|
||||
|
||||
CM_ "chrysler_ram_dt.dbc starts here";
|
||||
|
||||
BO_ 37 PCM_1: 8 XXX
|
||||
SG_ ENGINE_RPM : 7|16@0+ (1,0) [0|1] "" XXX
|
||||
SG_ ENGINE_TRQ_REQ : 23|12@0+ (1,0) [0|1] "" XXX
|
||||
SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 53 PCM_2: 8 XXX
|
||||
SG_ ENG_TORQUE_REQ : 3|12@0+ (1,0) [0|7] "" XXX
|
||||
SG_ ENG_TORQUE_OUT : 19|12@0+ (1,0) [0|1] "" XXX
|
||||
@@ -140,11 +162,6 @@ BO_ 137 ESP_4: 8 XXX
|
||||
SG_ Yaw_Rate : 7|16@0+ (0.01,-327.68) [-327.68|327.66] "deg/s" XXX
|
||||
SG_ Acceleration : 32|8@1+ (0.08,-10.24) [-10.24|10.08] "m/s2" XXX
|
||||
|
||||
BO_ 147 Transmission_Status: 8 XXX
|
||||
SG_ Gear_State : 2|3@1+ (1,0) [0|15] "" XXX
|
||||
SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 164 EPS_3: 8 XXX
|
||||
SG_ DASM_FAULT : 34|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ Activation_Status : 48|3@1+ (1,0) [0|1] "" XXX
|
||||
@@ -175,4 +192,3 @@ CM_ SG_ 250 Auto_High_Beam "1 = HIGH BEAMS OK 0 = HIGH BEAMS OFF ";
|
||||
CM_ SG_ 250 LKAS_LANE_LINES "9 = LEFT CAUTION, 11 = VERY LEFT CAUTION 10 = RIGHT CAUTION, 14 = VERY RIGHT, 4 = NO LINES DETECTED, 3 = LINES DETECTED, SYSTEM ACTIVE";
|
||||
CM_ SG_ 464 Driver_Seatbelt_Status "1 unbuckled 0 buckled";
|
||||
CM_ SG_ 792 High_Beam_Lever_Status "1 is high beam, 0 reg";
|
||||
VAL_ 147 Gear_State 4 "D" 2 "N" 1 "R" 0 "P" ;
|
||||
|
||||
@@ -0,0 +1,158 @@
|
||||
CM_ "AUTOGENERATED FILE, DO NOT EDIT";
|
||||
|
||||
|
||||
CM_ "Imported file _stellantis_common_ram_hd_generated.dbc starts here";
|
||||
CM_ "Generated from _stellantis_common.dbc"
|
||||
|
||||
BO_ 258 STEERING: 8 XXX
|
||||
SG_ STEERING_ANGLE : 5|14@0+ (0.5,-2048) [-2048|2047] "deg" XXX
|
||||
SG_ STEERING_RATE : 21|14@0+ (0.5,-2048) [-2048|2047] "deg/s" XXX
|
||||
SG_ STEERING_ANGLE_HP : 48|4@1+ (0.1,-0.4) [-0.4|0.4] "deg" XXX
|
||||
SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 264 ECM_1: 8 XXX
|
||||
SG_ ENGINE_RPM : 7|16@0+ (1,0) [0|65535] "" XXX
|
||||
SG_ ENGINE_TORQUE : 20|13@0+ (0.25,-500) [-500|1547.5] "Nm" XXX
|
||||
SG_ EXPECTED_ENGINE_TORQUE : 36|13@0+ (0.25,-500) [-500|1547.5] "Nm" XXX
|
||||
SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 280 ECM_TRQ: 8 XXX
|
||||
SG_ ENGINE_TORQ_MAX : 4|13@0+ (.25,-500) [-500|1547.5] "NM" XXX
|
||||
SG_ ENGINE_TORQ_MIN : 20|13@0+ (.25,-500) [-500|1547.5] "NM" XXX
|
||||
|
||||
BO_ 284 ESP_8: 8 XXX
|
||||
SG_ BRK_PRESSURE : 3|12@0+ (1,0) [0|1] "" XXX
|
||||
SG_ BRAKE_PEDAL : 19|12@0+ (1,0) [0|1] "" XXX
|
||||
SG_ Vehicle_Speed : 39|16@0+ (0.0078125,0) [0|511.984375] "km/h" XXX
|
||||
SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 320 ESP_1: 8 XXX
|
||||
SG_ Brake_Pedal_State : 2|2@1+ (1,0) [0|0] "" XXX
|
||||
SG_ Vehicle_Speed : 33|10@0+ (0.5,0) [0|511] "km/h" XXX
|
||||
SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
SG_ BRAKE_PRESSED_ACC : 6|1@0+ (1,0) [0|3] "" XXX
|
||||
|
||||
BO_ 344 ESP_6: 8 XXX
|
||||
SG_ WHEEL_SPEED_FL : 5|14@0+ (0.5,0) [0|8191] "rpm" XXX
|
||||
SG_ WHEEL_SPEED_FR : 21|14@0+ (0.5,0) [0|8191] "rpm" XXX
|
||||
SG_ WHEEL_SPEED_RL : 37|14@0+ (0.5,0) [0|8191] "rpm" XXX
|
||||
SG_ WHEEL_SPEED_RR : 53|14@0+ (0.5,0) [0|8191] "rpm" XXX
|
||||
|
||||
BO_ 368 Transmission_Status: 8 XXX
|
||||
SG_ Gear_State : 2|3@1+ (1,0) [0|15] "" XXX
|
||||
SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 464 ORC_1: 8 XXX
|
||||
SG_ SEATBELT_DRIVER_UNLATCHED : 13|1@0+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 500 DAS_3: 8 XXX
|
||||
SG_ ENGINE_TORQUE_REQUEST : 4|13@0+ (0.25,-500) [-500|1547.5] "Nm" XXX
|
||||
SG_ ENGINE_TORQUE_REQUEST_MAX : 7|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ ACC_STANDSTILL : 5|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ ACC_GO : 6|1@1+ (1,0) [0|0] "" XXX
|
||||
SG_ ACC_DECEL : 19|12@0+ (0.004885,-16) [-16|4] "m/s2" XXX
|
||||
SG_ ACC_AVAILABLE : 20|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ ACC_ACTIVE : 21|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ DISABLE_FUEL_SHUTOFF : 23|1@1+ (1,0) [0|0] "" XXX
|
||||
SG_ GR_MAX_REQ : 32|4@1+ (1,0) [0|0] "" XXX
|
||||
SG_ ACC_DECEL_REQ : 36|3@1+ (1,0) [0|0] "" XXX
|
||||
SG_ STS : 46|2@1+ (1,0) [0|0] "" XXX
|
||||
SG_ ACC_FAULTED : 47|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ COLLISION_BRK_PREP : 48|1@1+ (1,0) [0|0] "" XXX
|
||||
SG_ ACC_BRK_PREP : 49|1@1+ (1,0) [0|0] "" XXX
|
||||
SG_ BRAKE_BOOL_1 : 36|1@0+ (1,0) [0|3] "" XXX
|
||||
SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 501 DAS_4: 8 XXX
|
||||
SG_ ACC_SET_SPEED_KPH : 15|8@0+ (1,0) [0|3] "km/h" XXX
|
||||
SG_ ACC_SET_SPEED_MPH : 23|8@0+ (1,0) [0|3] "mph" XXX
|
||||
SG_ ACC_DISTANCE_CONFIG_1 : 1|2@0+ (1,0) [0|3] "" XXX
|
||||
SG_ ACC_DISTANCE_CONFIG_2 : 41|2@0+ (1,0) [0|3] "" XXX
|
||||
SG_ SPEED_DIGITAL : 63|8@0+ (1,0) [0|255] "mph" XXX
|
||||
SG_ ACC_STATE : 38|3@0+ (1,0) [0|7] "" XXX
|
||||
|
||||
BO_ 544 EPS_2: 8 XXX
|
||||
SG_ LKAS_STATE : 23|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ COLUMN_TORQUE : 2|11@0+ (1,-1024) [-1024|1023] "" XXX
|
||||
SG_ TORQUE_OVERLAY_STATUS : 6|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ EPS_TORQUE_MOTOR_RAW : 19|12@0+ (1,-2048) [-2048|2047] "" XXX
|
||||
SG_ EPS_TORQUE_MOTOR : 34|11@0+ (1,-1024) [-1024|1023] "" XXX
|
||||
SG_ LKAS_TEMPORARY_FAULT : 38|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ AUTO_PARK_HAS_CONTROL_2 : 51|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 559 ECM_5: 8 XXX
|
||||
SG_ Accelerator_Position : 0|8@1+ (0.4,0) [0|100] "%" XXX
|
||||
SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 570 CRUISE_BUTTONS: 3 XXX
|
||||
SG_ ACC_Cancel : 0|1@1+ (1,0) [0|0] "" XXX
|
||||
SG_ ACC_Distance_Dec : 1|1@1+ (1,0) [0|0] "" XXX
|
||||
SG_ ACC_Accel : 2|1@1+ (1,0) [0|0] "" XXX
|
||||
SG_ ACC_Decel : 3|1@1+ (1,0) [0|0] "" XXX
|
||||
SG_ ACC_Resume : 4|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ Cruise_OnOff : 6|1@1+ (1,0) [0|0] "" XXX
|
||||
SG_ ACC_OnOff : 7|1@1+ (1,0) [0|0] "" XXX
|
||||
SG_ ACC_Distance_Inc : 8|1@1+ (1,0) [0|0] "" XXX
|
||||
SG_ COUNTER : 15|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 23|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 629 DAS_6: 8 XXX
|
||||
SG_ LKAS_ICON_COLOR : 1|2@0+ (1,0) [0|3] "" XXX
|
||||
SG_ LKAS_LANE_LINES : 19|4@0+ (1,0) [0|1] "" XXX
|
||||
SG_ LKAS_ALERTS : 27|4@0+ (1,0) [0|1] "" XXX
|
||||
SG_ CAR_MODEL : 15|8@0+ (1,0) [0|255] "" XXX
|
||||
SG_ AUTO_HIGH_BEAM_ON : 47|1@1+ (1,0) [0|0] "" XXX
|
||||
|
||||
BO_ 720 BSM_1: 6 XXX
|
||||
SG_ RIGHT_STATUS : 5|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ LEFT_STATUS : 2|1@0+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 792 STEERING_LEVERS: 8 XXX
|
||||
SG_ TURN_SIGNALS : 0|2@1+ (1,0) [0|3] "" XXX
|
||||
SG_ HIGH_BEAM_PRESSED : 2|1@0+ (1,0) [0|3] "" XXX
|
||||
|
||||
BO_ 820 BCM_1: 8 XXX
|
||||
SG_ DOOR_OPEN_FL : 17|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ DOOR_OPEN_FR : 18|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ DOOR_OPEN_RL : 19|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ DOOR_OPEN_RR : 20|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ DOOR_OPEN_TRUNK : 22|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ TURN_LIGHT_LEFT : 31|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ TURN_LIGHT_RIGHT : 30|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ HIGH_BEAM_DISPLAY : 58|1@0+ (1,0) [0|1] "" XXX
|
||||
|
||||
VAL_ 368 Gear_State 4 "D" 2 "N" 1 "R" 0 "P" ;
|
||||
|
||||
CM_ SG_ 258 STEERING_ANGLE_HP "Steering angle high precision";
|
||||
CM_ SG_ 264 ENGINE_TORQUE "Effective engine torque";
|
||||
CM_ SG_ 264 EXPECTED_ENGINE_TORQUE "Expected Engine Torque based on target engine speed";
|
||||
CM_ SG_ 678 LKAS_ICON_COLOR "3 is yellow, 2 is green, 1 is white, 0 is null";
|
||||
CM_ SG_ 678 LKAS_LANE_LINES "0x01 transparent lines, 0x02 left white, 0x03 right white, 0x04 left yellow with car on top, 0x05 left yellow with car on top, 0x06 both white, 0x07 left yellow, 0x08 left yellow right white, 0x09 right yellow, 0x0a right yellow left white, 0x0b left yellow with car on top right white, 0x0c right yellow with car on top left white, (0x00, 0x0d, 0x0e, 0x0f) null";
|
||||
CM_ SG_ 678 LKAS_ALERTS "(0x01, 0x02) lane sense off, (0x03, 0x04, 0x06) place hands on steering wheel, 0x07 lane departure detected + place hands on steering wheel, (0x08, 0x09) lane sense unavailable + clean front windshield, 0x0b lane sense and auto high beam unavailable + clean front windshield, 0x0c lane sense unavailable + service required, (0x00, 0x05, 0x0a, 0x0d, 0x0e, 0x0f) null";
|
||||
|
||||
CM_ "chrysler_ram_hd.dbc starts here";
|
||||
|
||||
BO_ 545 EPS_3: 8 XXX
|
||||
SG_ DASM_FAULT : 34|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ Activation_Status : 48|3@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Driver_Override : 35|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ Hands_on_Wheel : 51|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 630 LKAS_COMMAND: 8 XXX
|
||||
SG_ STEERING_TORQUE : 10|11@0+ (1,-1024) [0|1] "" XXX
|
||||
SG_ LKAS_CONTROL_BIT : 24|3@1+ (1,0) [0|1] "" XXX
|
||||
SG_ DASM_FAULT : 51|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
+58
-3
@@ -1,10 +1,10 @@
|
||||
VERSION ""
|
||||
VERSION "0.0.02"
|
||||
|
||||
BO_ 513 MOTORS_DATA: 8 XXX
|
||||
SG_ SPEED_L : 7|16@0- (1,0) [-1000|1000] "" XXX
|
||||
SG_ SPEED_R : 23|16@0- (1,0) [-1000|1000] "" XXX
|
||||
SG_ ELEC_ANGLE_L : 39|8@0+ (1,0) [0|360] "" XXX
|
||||
SG_ ELEC_ANGLE_R : 47|8@0+ (1,0) [0|360] "" XXX
|
||||
SG_ ELEC_ANGLE_L : 39|8@0+ (1,0) [0|0] "deprecated" XXX
|
||||
SG_ ELEC_ANGLE_R : 47|8@0+ (1,0) [0|0] "deprecated" XXX
|
||||
SG_ COUNTER : 51|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
@@ -27,8 +27,63 @@ BO_ 516 MOTORS_CURRENT: 8 XXX
|
||||
SG_ RIGHT_PHA_AB : 39|16@0- (1,0) [-32768|32767] "" XXX
|
||||
SG_ RIGHT_PHA_BC : 55|16@0- (1,0) [-32768|32767] "" XXX
|
||||
|
||||
BO_ 517 MOTORS_ANGLE: 8 XXX
|
||||
SG_ LEFT_ANGLE_SENSOR : 7|16@0+ (1,0) [0|16384] "" XXX
|
||||
SG_ RIGHT_ANGLE_SENSOR : 23|16@0+ (1,0) [0|16384] "" XXX
|
||||
SG_ LEFT_HALL_SENSOR : 39|16@0+ (1,0) [0|360] "" XXX
|
||||
SG_ RIGHT_HALL_SENSOR : 55|16@0+ (1,0) [0|360] "" XXX
|
||||
|
||||
BO_ 592 TORQUE_CMD: 6 XXX
|
||||
SG_ TORQUE_L : 7|16@0- (1,0) [-1000|1000] "" XXX
|
||||
SG_ TORQUE_R : 23|16@0- (1,0) [-1000|1000] "" XXX
|
||||
SG_ COUNTER : 35|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 47|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 593 MAX_MOTOR_RPM_CMD: 5 XXX
|
||||
SG_ MAX_RPM_L : 7|16@0+ (1,0) [0|1000] "" XXX
|
||||
SG_ MAX_RPM_R : 23|16@0+ (1,0) [0|1000] "" XXX
|
||||
SG_ CHECKSUM : 39|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 769 KNEE_MOTORS_DATA: 8 XXX
|
||||
SG_ SPEED_L : 7|16@0- (1,0) [-1000|1000] "" XXX
|
||||
SG_ SPEED_R : 23|16@0- (1,0) [-1000|1000] "" XXX
|
||||
SG_ ELEC_ANGLE_L : 39|8@0+ (1,0) [0|0] "deprecated" XXX
|
||||
SG_ ELEC_ANGLE_R : 47|8@0+ (1,0) [0|0] "deprecated" XXX
|
||||
SG_ COUNTER : 51|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 770 KNEE_VAR_VALUES: 3 XXX
|
||||
SG_ IGNITION : 0|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ ENABLE_MOTORS : 1|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ FAULT : 7|6@0+ (1,0) [0|63] "" XXX
|
||||
SG_ MOTOR_ERR_L : 15|8@0+ (1,0) [0|255] "" XXX
|
||||
SG_ MOTOR_ERR_R : 23|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 771 KNEE_DATA: 4 XXX
|
||||
SG_ MCU_TEMP : 7|8@0+ (0.1,0) [0|125] "" XXX
|
||||
SG_ BATT_VOLTAGE : 15|16@0+ (0.01,0) [0|60] "" XXX
|
||||
SG_ BATT_PERCENTAGE : 31|7@0+ (1,0) [0|100] "" XXX
|
||||
SG_ CHARGER_CONNECTED : 24|1@0+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 772 KNEE_MOTORS_CURRENT: 8 XXX
|
||||
SG_ LEFT_PHA_AB : 7|16@0- (1,0) [-32768|32767] "" XXX
|
||||
SG_ LEFT_PHA_BC : 23|16@0- (1,0) [-32768|32767] "" XXX
|
||||
SG_ RIGHT_PHA_AB : 39|16@0- (1,0) [-32768|32767] "" XXX
|
||||
SG_ RIGHT_PHA_BC : 55|16@0- (1,0) [-32768|32767] "" XXX
|
||||
|
||||
BO_ 773 KNEE_MOTORS_ANGLE: 8 XXX
|
||||
SG_ LEFT_ANGLE_SENSOR : 7|16@0+ (1,0) [0|16384] "" XXX
|
||||
SG_ RIGHT_ANGLE_SENSOR : 23|16@0+ (1,0) [0|16384] "" XXX
|
||||
SG_ LEFT_HALL_SENSOR : 39|16@0+ (1,0) [0|360] "" XXX
|
||||
SG_ RIGHT_HALL_SENSOR : 55|16@0+ (1,0) [0|360] "" XXX
|
||||
|
||||
BO_ 848 KNEE_TORQUE_CMD: 6 XXX
|
||||
SG_ TORQUE_L : 7|16@0- (1,0) [-1000|1000] "" XXX
|
||||
SG_ TORQUE_R : 23|16@0- (1,0) [-1000|1000] "" XXX
|
||||
SG_ COUNTER : 35|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 47|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 849 KNEE_MAX_MOTOR_RPM_CMD: 5 XXX
|
||||
SG_ MAX_RPM_L : 7|16@0+ (1,0) [0|1000] "" XXX
|
||||
SG_ MAX_RPM_R : 23|16@0+ (1,0) [0|1000] "" XXX
|
||||
SG_ CHECKSUM : 39|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
+255
-254
@@ -153,7 +153,7 @@ VAL_TABLE_ ChrgCordLck_D_Stat 7 "Faulty" 6 "LockFail" 5 "UnlockFail" 4 "LockInPr
|
||||
VAL_TABLE_ LkaActvStats_D2_Req 7 "NotUsed" 6 "LkaIncrIntervRight" 5 "LkaSupprRight" 4 "LkaStandIntervRight" 3 "LkaSupprLeft" 2 "LkaStandIntervLeft" 1 "LkaIncrIntervLeft" 0 "LkaNoInterv";
|
||||
VAL_TABLE_ OffOnNoDataFaulty 3 "Faulty" 2 "No_Data_Exists" 1 "On" 0 "Off";
|
||||
VAL_TABLE_ NoMessage_Msg1_3 3 "Message3" 2 "Message2" 1 "Message1" 0 "NoMessage";
|
||||
VAL_TABLE_ TrnRng_D_RqGsm 15 "Fault" 14 "UnknownPosition" 13 "Undefined_2" 12 "Undefined_1" 11 "_6" 10 "_5" 9 "_4" 8 "_3" 7 "_2" 6 "_1" 5 "Low" 4 "Sport_DriveSport" 3 "Drive" 2 "Neutral" 1 "Reverse" 0 "Park";
|
||||
VAL_TABLE_ TrnRng_D_RqGsm 15 "Fault" 14 "UnknownPosition" 13 "Undefined_2" 12 "Undefined_1" 11 "_6" 10 "_5" 9 "_4" 8 "_3" 7 "_2" 6 "_1" 5 "Low" 4 "Sport" 3 "Drive" 2 "Neutral" 1 "Reverse" 0 "Park";
|
||||
VAL_TABLE_ PrkBrkActv_D_RqGsmGear 3 "NotUsed" 2 "RequestParkBrakeEngage" 1 "NoRequest" 0 "Null";
|
||||
VAL_TABLE_ TrnPrkSys_D_Actl 15 "Faulty" 14 "NotUsed_5" 13 "NotUsed_4" 12 "NotUsed_3" 11 "NotUsed_2" 10 "NotUsed_1" 9 "FrequencyError" 8 "OutOfRangeHigh" 7 "OutOfRangeLow" 6 "Override" 5 "OutOfPark" 4 "TransitionCloseToOutOfPark" 3 "AtNoSpring" 2 "TransitionCloseToPark" 1 "Park" 0 "NotKnown";
|
||||
VAL_TABLE_ OKLowUnknownInvalid 3 "Invalid" 2 "Unknown" 1 "Low" 0 "OK";
|
||||
@@ -1126,7 +1126,8 @@ BO_ 984 IPMA_Data: 8 IPMA_ADAS
|
||||
SG_ DasStats_D_Dsply : 47|2@0+ (1,0) [0|3] "SED" GWM
|
||||
SG_ DasWarn_D_Dsply : 44|2@0+ (1,0) [0|3] "SED" GWM
|
||||
SG_ AhbHiBeam_D_Rq : 59|2@0+ (1,0) [0|3] "SED" GWM
|
||||
SG_ Set_Me_X1 : 63|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ Passthru_63 : 63|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ Passthru_48 : 48|1@0+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 985 IPMA_Data2: 8 IPMA_ADAS
|
||||
SG_ LdwChime_B_Rq : 34|1@0+ (1,0) [0|1] "SED" GWM
|
||||
@@ -3645,6 +3646,258 @@ BO_TX_BU_ 357 : ECM_Diesel,PCM,PCM_HEV;
|
||||
BO_TX_BU_ 342 : ECM_Diesel,PCM,PCM_HEV;
|
||||
BO_TX_BU_ 71 : ECM_Diesel,PCM,PCM_HEV;
|
||||
|
||||
CM_ "New CAN FD network";
|
||||
CM_ BU_ CMR_DSMC "Driver Status Monitor Camera";
|
||||
CM_ BU_ IPMA_ADAS "Assist Driving Alert System";
|
||||
CM_ BU_ PSCM "Passenger Front Climate Control Seat Module";
|
||||
CM_ BU_ ABS_ESC "Anti-lock Brake / Traction Control Module";
|
||||
CM_ BU_ TCCM "Transfer Case Control Module, 4x4 Control Module";
|
||||
CM_ BU_ TCM_DSL "Transmission Control Module";
|
||||
CM_ BU_ PCM "Powertrain Control Module";
|
||||
CM_ BU_ ECM_Diesel "Diesel";
|
||||
CM_ BU_ GWM "Gateway Module CGEA1.3(Star Architecture)";
|
||||
CM_ BU_ TSTR "Diagnostic Tester";
|
||||
|
||||
CM_ SG_ 524 PrplWhlTotTqRqMxAwd_No_Cs "Signal not transmitted on gas variants.";
|
||||
CM_ SG_ 524 PrplWhlTotTqRqMxAwd_No_Cnt "Signal not transmitted on gas variants.";
|
||||
CM_ SG_ 1150 LocationServices_1 "Tx by HS3 APIM";
|
||||
CM_ SG_ 542 LocationServices_3 "Tx by HS3 APIM";
|
||||
CM_ SG_ 810 NtfyDrvTrgtDist_L_Rq "Object.SetTripRangeAlert_Rq This signal is meant to provide the customer settings for the target distance remote notification";
|
||||
CM_ SG_ 810 NtfyDrvSocLvl1_Pc_Rq "Object.SetCustomerLevelAlert_Rq This signal is meant to provide the customer settings for the SOC remote notification.";
|
||||
CM_ SG_ 810 PtRmtRprt_D_Stat "Object.RemoteDataReport_St";
|
||||
CM_ SG_ 550 PtWakeupActv1_B_Rq "ECG Application signal";
|
||||
CM_ SG_ 982 LatCtlPath_No_Cnt "Signal not transmitted on gas variants.";
|
||||
CM_ SG_ 982 LatCtlPath_No_Cs "Signal not transmitted on gas variants.";
|
||||
CM_ SG_ 1104 DrvEngageLevel_No_Cs "Signal not transmitted on gas variants.";
|
||||
CM_ SG_ 1104 DrvEngageLevel_No_Cnt "Signal not transmitted on gas variants.";
|
||||
CM_ SG_ 1085 ULoRgenTestMde_B_Stat "Signal not transmitted on HEV variants.";
|
||||
CM_ SG_ 1085 PwSrcULoComm_B_Falt "Signal not transmitted on HEV variants.";
|
||||
CM_ SG_ 1445 SOBDMC_AutoSarNMReserved4 "Signal not transmitted on gas and diesel variants.";
|
||||
CM_ SG_ 1445 SOBDMC_AutoSarNMReserved3 "Signal not transmitted on gas and diesel variants.";
|
||||
CM_ SG_ 1445 SOBDMC_AutoSarNMReserved2 "Signal not transmitted on gas and diesel variants.";
|
||||
CM_ SG_ 1445 SOBDMC_AutoSarNMReserved1 "Signal not transmitted on gas and diesel variants.";
|
||||
CM_ SG_ 1445 SOBDMC_AutoSarNMNodeId "Signal not transmitted on gas and diesel variants.";
|
||||
CM_ SG_ 1445 SOBDMC_AutoSarNMControl "Signal not transmitted on gas and diesel variants.";
|
||||
CM_ SG_ 1088 HvacPrecondMode2_D_Rq "Signal not transmitted on vehicles that do not have the Fuel operated heater feature.";
|
||||
CM_ SG_ 1088 HvacPrecondBlwr2_D_Rq "Signal not transmitted on vehicles that do not have the Fuel operated heater feature.";
|
||||
CM_ SG_ 786 ChrgStat_D_Dsply "Signal not transmitted by PCM_HEV";
|
||||
CM_ SG_ 66 immoControlData_T2 "Not transmitted on all vehicle variants";
|
||||
CM_ SG_ 66 immoControlCmd_T2 "Not transmitted on all vehicle variants";
|
||||
CM_ SG_ 549 BeltminderAudioMute "Object.MyKey.BeltMinderAudioMute.St";
|
||||
CM_ SG_ 549 Power_Up_Chime_Modules "Object.AlertMethod.IPC _Infotainment";
|
||||
CM_ SG_ 549 Chime_Source "Object.AlertMethod.IPC_infotainment";
|
||||
CM_ SG_ 611 AwdStat_D_RqDsply "Signal not transmitted on programs that do not have AWD.";
|
||||
CM_ SG_ 611 AwdSrvcRqd_B_Rq "Signal not transmitted on programs that do not have AWD.";
|
||||
CM_ SG_ 611 AwdLck_Tq_Rq "Signal not transmitted on programs that do not have AWD.";
|
||||
CM_ SG_ 130 VehVTrlrAid_B_Rq "VR session start- req. limit blower speed no more than X volts. CC restriction on time msg. will be honored.Double Event msg1st event to request limit, 2nd event to release limit, No msg. CC Grammar v7.xls";
|
||||
CM_ SG_ 130 SteMdule_U_Meas "DCR 1745 to update Tx from GWM to EP100ms. SteMdule_I_Est & SteMdule_U_Meas are used by BMS system & filtered. The filter uses standard periodic rate & changing to EP would adversely affect the filter.(jweinfur)";
|
||||
CM_ SG_ 130 SteMdule_I_Est "DCR 1745 to update Tx from GWM to EP100ms. SteMdule_I_Est & SteMdule_U_Meas are used by BMS system & filtered. The filter uses standard periodic rate & changing to EP would adversely affect the filter.(jweinfur)";
|
||||
CM_ SG_ 126 StePinRelInit_An_Sns "SASM will transmit these signals on vehicles with SASM and without PSCM. SCCM will not Tx this signal when SASM is present.";
|
||||
CM_ SG_ 126 StePinAn_No_Cs "Signal not transmitted on gas variants.";
|
||||
CM_ SG_ 1200 BrkTot_Tq_RqDrv "DCR 1836 to update Tx from GWM to EP100ms rejected due MPS6 TCM requires BrkTot_Tq_RqDrv at 20ms (bshu1).";
|
||||
CM_ SG_ 1046 TCMode "Signal data set to 0x0 for ABS only vehicle option content";
|
||||
CM_ SG_ 1046 DrvAntiLckLamp_D_Rq "update value table v8.34, not align w/GSDB, need etracker. ABS & IPC implemented as updated.";
|
||||
CM_ SG_ 1046 BpedMove_D_Actl "CCMGenSigTimeoutTime=1000";
|
||||
CM_ SG_ 1044 StePinOffst_An_Est "SASM will transmit these signals on vehicles with SASM and without PSCM. SCCM will not Tx this signal when SASM is present.";
|
||||
CM_ SG_ 1044 StePinOffst_No_Cs "Signal not transmitted on gas variants.";
|
||||
CM_ SG_ 534 BrkObdData_No_Actl "Signal not transmitted on gas, diesel and HEV. Only supported on PHEV.";
|
||||
CM_ SG_ 534 BrkObdIndex_No_Actl "Signal not transmitted on gas, diesel and HEV. Only supported on PHEV.";
|
||||
CM_ SG_ 534 WhlRotatRr_No_Cnt "DCR 1833 to update Tx from GWM to EP100ms. Wheel Count signals are used by complex algorithm to determine Tire Pressure by Location & can't change from 20msec. (jweinfur)";
|
||||
CM_ SG_ 534 WhlRotatRl_No_Cnt "DCR 1833 to update Tx from GWM to EP100ms. Wheel Count signals are used by complex algorithm to determine Tire Pressure by Location & can't change from 20msec. (jweinfur)";
|
||||
CM_ SG_ 534 WhlRotatFr_No_Cnt "DCR 1833 to update Tx from GWM to EP100ms. Wheel Count signals are used by complex algorithm to determine Tire Pressure by Location & can't change from 20msec. (jweinfur)";
|
||||
CM_ SG_ 534 WhlRotatFl_No_Cnt "DCR 1833 to update Tx from GWM to EP100ms. Wheel Count signals are used by complex algorithm to determine Tire Pressure by Location & can't change from 20msec. (jweinfur)";
|
||||
CM_ SG_ 531 VehLongOvrGnd_A_Est "CCMGenSigTimeoutTime=1000";
|
||||
CM_ SG_ 1034 VehicleGGCCData "RCMGenSigTimeout=6000";
|
||||
CM_ SG_ 1090 Mtr2State_D_ActlMntr "Signal Not transmitted on PCM_HEV variant";
|
||||
CM_ SG_ 1090 Inv1Ain_I_ActlMntr "Signal Not transmitted on PCM_HEV variant";
|
||||
CM_ SG_ 1090 VehElRnge_L_Dsply "Signal Not transmitted on HPCM variant";
|
||||
CM_ SG_ 374 TrnRng_D_Rq "Powersplit HEVs with HF45, HPCM will Tx this message. For all other programs it will be Tx by PCM or TCM. ";
|
||||
CM_ SG_ 374 TrnPrkSys_D_Actl "Powersplit HEVs with HF45, HPCM will Tx this message. For all other programs it will be Tx by PCM or TCM. ";
|
||||
CM_ SG_ 374 GearLvr_D_ActlDrv "Powersplit HEVs with HF45, HPCM will Tx this message. For all other programs it will be Tx by PCM or TCM. ";
|
||||
CM_ SG_ 374 GearPos_No_Cs "Powersplit HEVs with HF45, HPCM will Tx this message. For all other programs it will be Tx by PCM or TCM. ";
|
||||
CM_ SG_ 374 GearPos_D_Trg "Powersplit HEVs with HF45, HPCM will Tx this message. For all other programs it will be Tx by PCM or TCM. ";
|
||||
CM_ SG_ 374 GearPos_No_Cnt "Powersplit HEVs with HF45, HPCM will Tx this message. For all other programs it will be Tx by PCM or TCM. ";
|
||||
CM_ SG_ 374 GearPos_D_Actl "Powersplit HEVs with HF45, HPCM will Tx this message. For all other programs it will be Tx by PCM or TCM. ";
|
||||
CM_ SG_ 603 WhlDirAvgDrv_D_Actl "48V mHEV: ECM_HEVDSL is Tx, MHT HEV: PCM_HEV is Tx, Powersplit HEV: SOBDMC_HPCM is Tx";
|
||||
CM_ SG_ 603 PrplTqMnRgen_B_Actl "48V mHEV: ECM_HEVDSL is Tx, MHT HEV: PCM_HEV is Tx, Powersplit HEV: SOBDMC_HPCM is Tx";
|
||||
CM_ SG_ 603 BattTracCnnct_D_Rq "48V mHEV: ECM_HEVDSL is Tx, MHT HEV: PCM_HEV is Tx, Powersplit HEV: SOBDMC_HPCM is Tx";
|
||||
CM_ SG_ 872 HybMdeStat_D_Dsply "Signal not transmitted by HPCM";
|
||||
CM_ SG_ 560 SelDrvMdeSwtch_D_Stat3 "ECM_HEV, PCM & PCM_HEV do not support or Transmit signal.";
|
||||
CM_ SG_ 560 TrnSrvcRqd_B_Rq "Signal not transmitted on Diesel & HEV variants. MHT(U611/625) HPCM Rx 0x230 from PCM_HEV. Powersplit FWD HEVs(Cx482/3 430) HPCM Tx 0x230.";
|
||||
CM_ SG_ 560 TrnShifActv_B_Actl "Signal not transmitted on HEV variants. MHT(U611/625) HPCM Rx 0x230 from PCM_HEV. Powersplit FWD HEVs(Cx482/3 430) HPCM Tx 0x230.";
|
||||
CM_ SG_ 560 GboxOil_Te_Actl "Signal not transmitted on HEV variants. MHT(U611/625) HPCM Rx 0x230 from PCM_HEV. Powersplit FWD HEVs(Cx482/3 430) HPCM Tx 0x230.";
|
||||
CM_ SG_ 369 SeatWorkSrfc_B_Falt "Signal Not transmitted by TCM_DSL";
|
||||
CM_ SG_ 369 TrnIpcDsplyRng2_D_Actl "Signal not transmitted on HEV variants.";
|
||||
CM_ SG_ 369 TrnIpcDsplyRng_D_Stat "Signal not transmitted on HEV variants.";
|
||||
CM_ SG_ 92 TrnLvrV_D_Rq "Signal not transmitted on vehicles with PCM_HEV";
|
||||
CM_ SG_ 92 TrnSbwSysHlth_D_Actl "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 92 TrnGearNtmAllow_B_Stat "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 92 TrnDtpCmd_D_Actl "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 92 TrnGearCmd_No_Cs "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 92 TrnValidGear_D_Cnfm "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 92 TrnNtrlTowCmd_D_Actl "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 92 TrnGearCmd_Pc_ActlPt "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 92 TrnGear_D_RqPt "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 92 TrnCmdState_B_Actl "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 92 TrnCmdCnt_B_Actl "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 92 PrkBrkActv_D_RqTrnGear "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 92 TrnGearMsgTxt_D_Rq "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 92 TrnGearCmd_No_Cnt "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 1087 BattRgenLoChrg_D_RqEng "Signal not transmitted on diesel variant";
|
||||
CM_ SG_ 1087 BattRgenLoDChrg_D_RqEng "Signal not transmitted on diesel variant";
|
||||
CM_ SG_ 1087 FapLcInhbt_B_Rq "Signal not transmitted on diesel variant";
|
||||
CM_ SG_ 1100 EngExhMdeQuiet_D2_Stat "Signal not transmitted on HEV & Diesel programs";
|
||||
CM_ SG_ 1100 HvacCmprLim_D_Stat "Signal not transmitted on Diesel variants";
|
||||
CM_ SG_ 1100 WakeAlarm1_T_Rq "Signal not transmitted on Gas variants";
|
||||
CM_ SG_ 1100 WakeAlarm1_B_Typ "Signal not transmitted on Gas variants";
|
||||
CM_ SG_ 1100 Veh_V_DsplyTrailCtlSet "Signal not transmitted on HEV & Diesel programs";
|
||||
CM_ SG_ 1100 TrailCtlPt_B_Falt "Signal not transmitted on HEV & Diesel programs";
|
||||
CM_ SG_ 1100 AutoTowAllw_D_StatMnu "Signal not transmitted on Gas & Diesel variants";
|
||||
CM_ SG_ 1100 AutoTowActv_B_Stat "Signal not transmitted on Gas & Diesel variants";
|
||||
CM_ SG_ 1086 EngMnfld_P_Actl "Signal not transmitted on HEV & Diesel programs";
|
||||
CM_ SG_ 1086 ElLoadCtl_D_Rq "Signal not transmitted on HEV variants.";
|
||||
CM_ SG_ 1071 CluPdl_PcRate_Actl "Signal not transmitted on HEV and Gas variants.";
|
||||
CM_ SG_ 1071 CluPdlPosPcMeas_D_Qf "Signal not transmitted on HEV and Gas variants.";
|
||||
CM_ SG_ 1071 CluPdlPos_Pc_Meas "Signal not transmitted on HEV and Gas variants.";
|
||||
CM_ SG_ 1071 EngAoutIdl_N_Ntrl "Signal not transmitted on HEV variants and diesel.";
|
||||
CM_ SG_ 1069 SlMde_D_Stat "IPC and HUD_ADV Receve from HS3 FGW 0x42D, not HS3 0x38A, MSG DCR 506. Signal not transmitted on Gas & HEV variants";
|
||||
CM_ SG_ 1069 SlMde_D_RqDsply "IPC and HUD_ADV Receve from HS3 FGW 0x42D, not HS3 0x38A, MSG DCR 506. Signal not transmitted on Gas & HEV variants";
|
||||
CM_ SG_ 1069 IsaOffst_D_Stat "Signal not transmitted on Gas & HEV variants";
|
||||
CM_ SG_ 1069 ObdWarmUp_B_Complt "Signal not transmitted on diesel variants.";
|
||||
CM_ SG_ 1069 EngMsgTxt_D_Rq "Signal not transmitted on diesel variants.";
|
||||
CM_ SG_ 1069 EngClnt_Te_ActlDiag "Signal not transmitted on gas variants.";
|
||||
CM_ SG_ 1069 EngLoad_Pc_CalcDiag "Signal not transmitted on gas variants.";
|
||||
CM_ SG_ 1069 ApedPos_Pc_ActlDiag "Signal not transmitted on gas variants.";
|
||||
CM_ SG_ 1060 RearDiffOilTeWarn_B_Rq "Signal not transmitted on HEV & Diesel programs";
|
||||
CM_ SG_ 1060 RearDiffOil_Te_Actl "Signal not transmitted on HEV & Diesel programs";
|
||||
CM_ SG_ 1057 FohEng_D_Rq "Signal not transmitted on vehicles that do not have the fuel operated heater feature. Signal not transmitted on HEV programs";
|
||||
CM_ SG_ 1057 EngIdlShutDown_D_Stat "Signal not transmitted on diesel variants.";
|
||||
CM_ SG_ 1057 FUEL_ALCOHOL_PERCNT "signal not transmitted on diesel and HEV variants.";
|
||||
CM_ SG_ 1057 TrnTotTq_Rt_Est "Signal not transmitted on gas and HEV variants.";
|
||||
CM_ SG_ 1057 TrnTotLss_Tq_Est "Signal not transmitted on gas and HEV variants.";
|
||||
CM_ SG_ 1057 VehVLimStat_D_Actl "Signal not transmitted on gas and HEV variants.";
|
||||
CM_ SG_ 1057 VehVLimActv_B_Actl "Signal not transmitted on gas and HEV variants.";
|
||||
CM_ SG_ 562 GearNtrl_No_Cs "Powersplit HEVs with HF45, HPCM will Tx this message. For all other programs it will be Tx by PCM or TCM. ";
|
||||
CM_ SG_ 562 GearNtrl_No_Cnt "Powersplit HEVs with HF45, HPCM will Tx this message. For all other programs it will be Tx by PCM or TCM. ";
|
||||
CM_ SG_ 516 EngAoutNActl_D_QF "Signal not transmitted on Gas & HEV variants";
|
||||
CM_ SG_ 516 EngAout3_N_Actl "Signal not transmitted on gas and diesel variants.";
|
||||
CM_ SG_ 516 ApedPos_Pc_ActlArb "ABSGenSigTimeoutTime=1000";
|
||||
CM_ SG_ 516 ApedPosPcActl_No_Cnt "Signal not transmitted on gas and diesel variants.";
|
||||
CM_ SG_ 516 ApedPosPcActl_No_Cs "Signal not transmitted on gas and diesel variants.";
|
||||
CM_ SG_ 514 VehVTrlrAid_B_Avail "Signal not transmitted on HEV variants.";
|
||||
CM_ SG_ 514 GearRvrse_D_Actl "Do not implement GearRvrse_D_Actl until eTracker 8804151 is approved, 11/24/09";
|
||||
CM_ SG_ 512 PrplWhlTotTqRq_No_Cs "Signal not transmitted on gas & Diesel variants.";
|
||||
CM_ SG_ 512 PrplWhlTotTqRq_No_Cnt "Signal not transmitted on gas & Diesel variants.";
|
||||
CM_ SG_ 512 PtDrvMde_D_Stat "Signal not transmitted on Gas & HEV variants.";
|
||||
CM_ SG_ 380 EngExhBrkOnLamp_B_Rq "Signal not transmitted on Gas variants";
|
||||
CM_ SG_ 380 EngExhBrkAutoLamp_B_Rq "Signal not transmitted on Gas variants";
|
||||
CM_ SG_ 380 EngAout_N_MxAllw "Signal not transmitted on Gas variants";
|
||||
CM_ SG_ 380 EngExhBrkMde_D_Actl "Signal not transmitted on Gas variants";
|
||||
CM_ SG_ 377 HvacAirFullOut_B_Rq "Signal not transmitted on diesel variant";
|
||||
CM_ SG_ 377 FuelFlw_Vl_Dsply "Signal not transmitted on diesel variants.";
|
||||
CM_ SG_ 377 FuelFillInlet_B_Dsply "Signal not transmitted on diesel variants.";
|
||||
CM_ SG_ 377 OdoCount "Signal not transmitted on diesel variants.";
|
||||
CM_ SG_ 377 EngOilLife_Pc_Actl "Signal not transmitted on diesel variants.";
|
||||
CM_ SG_ 377 FuelFilterLamp_B_Dsply "Signal not transmitted on Gas & HEV variants";
|
||||
CM_ SG_ 377 AirCondRec_B_Rq "Signal not transmitted on diesel variants.";
|
||||
CM_ SG_ 377 AirCondClutch_B_Stats "Signal not transmitted on diesel variants.";
|
||||
CM_ SG_ 376 GasPrtc_D_RqDsply "Signal not transmitted on HEV & Diesel variants.";
|
||||
CM_ SG_ 376 EngAout_Aa_Actl "Signal not transmitted on HEV variants.";
|
||||
CM_ SG_ 376 AslIconDsply_D_Rq "Signal not transmitted on HEV variants.";
|
||||
CM_ SG_ 376 AslChime_B_Rq "Signal not transmitted on HEV variants.";
|
||||
CM_ SG_ 376 HvacHtrCore2_Te_Actl "Signal not transmitted on Gas & Diesel variants";
|
||||
CM_ SG_ 376 EcssLamp_D_RqDsply "Signal not transmitted on Gas & HEV variants";
|
||||
CM_ SG_ 376 AirAmb_Te_Actl "Signal not transmitted on Gas variants";
|
||||
CM_ SG_ 359 PrplWhlRgenMn_Tq_Actl "Signal not transmitted on Gas & Diesel variants";
|
||||
CM_ SG_ 359 ElPw_D_StatStrtStop "Signal not transmitted on HEV variants.";
|
||||
CM_ SG_ 359 TrnAin_Tq_Actl "Signal not transmitted on HEV variances.";
|
||||
CM_ SG_ 359 PlgActvArb_B_Actl "Only supported on PHEV programs. PlgActvArb_B_Actl HPCM will Tx on Powersplit PHEVs, On MHT PHEVs the PCM_HEV will Tx and HPCM will Rx.";
|
||||
CM_ SG_ 359 TrnAinTq_D_Qf "Signal not transmitted on HEV variances.";
|
||||
CM_ SG_ 358 StopStrtStdby_D_Indic "Signal not transmitted on HEV variants.";
|
||||
CM_ SG_ 358 StopStrtIODTxt_D_Rq "Signal not transmitted on HEV variants.";
|
||||
CM_ SG_ 358 StopStrtDrvMde_D_Indic "Signal not transmitted on HEV variants.";
|
||||
CM_ SG_ 358 StopStrtMsgTxt_D_Rq "Signal not transmitted on HEV variants.";
|
||||
CM_ SG_ 358 HiElPwInhbt_B_Stat "Signal not transmitted on HEV programs";
|
||||
CM_ SG_ 358 AutoStopPtDelta_I_Est "Signal not transmitted on HEV variants. ";
|
||||
CM_ SG_ 357 BpedDrvAppl_D_Actl "CCMGenSigTimeoutTime=1000";
|
||||
CM_ SG_ 357 CcStat_D_Actl "ABSGenSigTimeoutTime=1000";
|
||||
CM_ SG_ 357 EngAout_N_MnAllw "Signal not transmitted on Gas & Diesel variants.";
|
||||
CM_ SG_ 357 AccStopMde_D_Rq "ABSGenSigTimeoutTime=1000";
|
||||
CM_ SG_ 342 EngOvrhtMitgActv_D_Ind "Signal not transmitted on diesel.";
|
||||
CM_ SG_ 342 EngGoutLss_Tq_Est "Signal not transmitted on gas and diesel variants.";
|
||||
CM_ SG_ 342 EngOil_Te_Actl "Signal not transmitted on Gas & HEV variants. ";
|
||||
CM_ SG_ 954 GenericSwtch2_No_Actl "U625 Police Wig Wag feature";
|
||||
CM_ SG_ 935 SodRight_D_Stat "IPCGenSigTimeoutTime=1600";
|
||||
CM_ SG_ 935 Side_Detect_R_Illum "DDMGenSigTimeoutTime=2000";
|
||||
CM_ SG_ 935 SodSnsRight_D_Stat "IPCGenSigTimeoutTime=1600";
|
||||
CM_ SG_ 935 SodAlrtRight_D_Stat "DDMGenSigTimeoutTime=2000";
|
||||
CM_ SG_ 1112 BattTracClntPmp_D_Stat "48V mHEV: ECM_HEVDSL is Tx, MHT HEV: PCM_HEV is Tx, Powersplit HEV: SOBDMC_HPCM is Tx";
|
||||
CM_ SG_ 1050 Outside_Air_Temp_Stat "Filtered value, i.e. same as disply for customer";
|
||||
CM_ SG_ 1009 CenterStackRing_D_Actl "The Center Stack sends the CPLR a signal to turn On or Off the light Ring, This is a customer selectable preference switch";
|
||||
CM_ SG_ 1009 APIM_NumberofTracks_St "Object NumberofTracks";
|
||||
CM_ SG_ 1009 APIM_ActiveTrackNum_St "Object.ActiveTrackNum";
|
||||
CM_ SG_ 360 GsmSrvcRqd_B_Rq "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 360 TrnGearPwmFalt_B_Actl "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 360 GearButtnStuck_B_Actl "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGsmNtmState_D_Actl "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 DrQltyDrv_D_StatGsm "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnBtsiOvrrd_B_Stat "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnValidGearRq_D_Stat "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGearRqCnt_B_Actl "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGearButtn_U_Actl "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGearButtn_B_ActlR2 "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGearButtn_B_ActlR1 "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGearButtn_B_ActlR0 "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGearButtn_B_ActlP2 "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGearButtn_B_ActlP1 "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGearButtn_B_ActlP0 "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGearButtn_B_ActlN2 "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGearButtn_B_ActlN1 "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGearButtn_B_ActlN0 "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGearButtn_B_ActlM2 "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGearButtn_B_ActlM1 "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGearButtn_B_ActlM0 "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGearButtn_B_ActlD2 "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGearButtn_B_ActlD1 "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGearButtn_B_ActlD0 "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGear_No_Cs "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGear_No_Cnt "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGear_D_RqDrv "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 BrkSwtchPos_B_ActlGsm "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 138 SteWhlRelCalib_An_Sns "Signal is not transmitted on vehicles where PSCM is transmitting the message that contains this signal. Signal data set to 0x0 for ABS only vehicle option content";
|
||||
CM_ SG_ 1093 StopLamp_B_RqTrlrBrk "Signal not transmitted on all variants.";
|
||||
CM_ SG_ 792 ElTrip_L_Dsply "Key cycle trip distance driven with the engine off (Trip EV Miles)";
|
||||
CM_ SG_ 792 ElLongTerm_L_Dsply "Long term distance distance driven with the engine off since the last long term reset (Long Term EV Miles).";
|
||||
CM_ SG_ 765 Mc_VehTimeFrmtUsrSel_St "Object.BodyInterface.Settings.VehicleTimeFormatUserSelection";
|
||||
CM_ SG_ 765 Mc_VehUntTrpCoUsrSel_St "Object.VehicleSettings.Disp_Miles_Kilometers.Rq";
|
||||
CM_ SG_ 765 Mc_VehUnitTempUsrSel_St "Object.VehicleSettings.Disp_Temperature.Rq";
|
||||
CM_ SG_ 765 Mc_VehLangUsrSel_St "Object.BodyInterface.Settings.VehicleLanguageUserSelection Object Vehicle Settings.Disp_LangSel";
|
||||
CM_ SG_ 934 Side_Detect_L_Illum "DDMGenSigTimeoutTime=2000";
|
||||
CM_ SG_ 934 SodLeft_D_Stat "IPCGenSigTimeoutTime=1600";
|
||||
CM_ SG_ 934 SodSnsLeft_D_Stat "IPCGenSigTimeoutTime=1600";
|
||||
CM_ SG_ 934 SodAlrtLeft_D_Stat "DDMGenSigTimeoutTime=2000";
|
||||
CM_ SG_ 1072 MetricActv_B_Actl "0 =Inactive(English), 1=Active(Metric)";
|
||||
CM_ SG_ 145 VehYaw_W_Actl "CCMGenSigTimeoutTime=1000";
|
||||
CM_ SG_ 931 CrnkInhbt_No_Cs "Signal not transmitted on gas and HEV variants.";
|
||||
CM_ SG_ 931 CrnkInhbt_No_Cnt "Signal not transmitted on gas and HEV variants.";
|
||||
CM_ SG_ 947 Dimming_Lvl "Refer to Vehicle Interior Illum Dimming Ctrl Sys Eng Spec, Table 2";
|
||||
CM_ SG_ 947 PrkBrkActv_B_Actl "Signal not transmitted on vehicles with electric park brake. ";
|
||||
CM_ SG_ 394 HaDsply_No_Cs "Signal not transmitted on gas variants.";
|
||||
CM_ SG_ 394 HaDsply_No_Cnt "Signal not transmitted on gas variants.";
|
||||
CM_ SG_ 391 CmbbBrkDecel_A_Rq "ABSGenSigTimeoutTime=1000";
|
||||
CM_ SG_ 391 CmbbBrkPrchg_D_Rq "ABSGenSigTimeoutTime=1000";
|
||||
CM_ SG_ 391 CmbbBrkDecel_B_Rq "ABSGenSigTimeoutTime=1000";
|
||||
CM_ SG_ 391 CmbbBaSens_D_Rq "ABSGenSigTimeoutTime=1000";
|
||||
CM_ SG_ 390 AccBrkTot_A_Rq "ABSGenSigTimeoutTime=1000";
|
||||
CM_ SG_ 390 AccBrkPrkEl_B_Rq "ABSGenSigTimeoutTime=1000";
|
||||
CM_ SG_ 390 AccPrpl_A_Rq "PCMGenSigTimeoutTime=1000";
|
||||
CM_ SG_ 390 AccBrkPrchg_B_Rq "ABSGenSigTimeoutTime=1000";
|
||||
CM_ SG_ 390 AccBrkDecel_B_Rq "ABSGenSigTimeoutTime=1000";
|
||||
CM_ SG_ 390 AccStopStat_B_Rq "ABSGenSigTimeoutTime=1000";
|
||||
CM_ SG_ 942 PrkAidRdiusRight_L_Dsply "MSGDCR 679, set all signals to OnChange";
|
||||
CM_ SG_ 942 PrkAidRdiusLeft_L_Dsply "MSGDCR 679, set all signals to OnChange";
|
||||
CM_ SG_ 942 PrkAidDrvDir_D_Stat "MSGDCR 679, set all signals to OnChange";
|
||||
|
||||
BA_DEF_ BO_ "OvtpPushApplication" ENUM "FALSE","TRUE";
|
||||
BA_DEF_ BU_ "OvtpOperationMode" ENUM "SERVER","CLIENT";
|
||||
BA_DEF_ BU_ "OvtpEcuAddress" INT 0 1022;
|
||||
@@ -12440,255 +12693,3 @@ VAL_ 922 DcacRdy_D_Stat 7 "NotUsed_2" 6 "NotUsed_1" 5 "Faulted" 4 "ProtectionTem
|
||||
VAL_ 922 DcacPlugPrsnt_B_Stat 1 "Yes" 0 "No";
|
||||
VAL_ 922 DcacClntFlw_D_Rq 3 "High" 2 "Medium" 1 "Low" 0 "Off";
|
||||
VAL_ 922 CoolFanDcac_D_Rq 3 "High" 2 "Medium" 1 "Low" 0 "Off";
|
||||
|
||||
CM_ "New CAN FD network";
|
||||
CM_ BU_ CMR_DSMC "Driver Status Monitor Camera";
|
||||
CM_ BU_ IPMA_ADAS "Assist Driving Alert System";
|
||||
CM_ BU_ PSCM "Passenger Front Climate Control Seat Module";
|
||||
CM_ BU_ ABS_ESC "Anti-lock Brake / Traction Control Module";
|
||||
CM_ BU_ TCCM "Transfer Case Control Module, 4x4 Control Module";
|
||||
CM_ BU_ TCM_DSL "Transmission Control Module";
|
||||
CM_ BU_ PCM "Powertrain Control Module";
|
||||
CM_ BU_ ECM_Diesel "Diesel";
|
||||
CM_ BU_ GWM "Gateway Module CGEA1.3(Star Architecture)";
|
||||
CM_ BU_ TSTR "Diagnostic Tester";
|
||||
|
||||
CM_ SG_ 524 PrplWhlTotTqRqMxAwd_No_Cs "Signal not transmitted on gas variants.";
|
||||
CM_ SG_ 524 PrplWhlTotTqRqMxAwd_No_Cnt "Signal not transmitted on gas variants.";
|
||||
CM_ SG_ 1150 LocationServices_1 "Tx by HS3 APIM";
|
||||
CM_ SG_ 542 LocationServices_3 "Tx by HS3 APIM";
|
||||
CM_ SG_ 810 NtfyDrvTrgtDist_L_Rq "Object.SetTripRangeAlert_Rq This signal is meant to provide the customer settings for the target distance remote notification";
|
||||
CM_ SG_ 810 NtfyDrvSocLvl1_Pc_Rq "Object.SetCustomerLevelAlert_Rq This signal is meant to provide the customer settings for the SOC remote notification.";
|
||||
CM_ SG_ 810 PtRmtRprt_D_Stat "Object.RemoteDataReport_St";
|
||||
CM_ SG_ 550 PtWakeupActv1_B_Rq "ECG Application signal";
|
||||
CM_ SG_ 982 LatCtlPath_No_Cnt "Signal not transmitted on gas variants.";
|
||||
CM_ SG_ 982 LatCtlPath_No_Cs "Signal not transmitted on gas variants.";
|
||||
CM_ SG_ 1104 DrvEngageLevel_No_Cs "Signal not transmitted on gas variants.";
|
||||
CM_ SG_ 1104 DrvEngageLevel_No_Cnt "Signal not transmitted on gas variants.";
|
||||
CM_ SG_ 1085 ULoRgenTestMde_B_Stat "Signal not transmitted on HEV variants.";
|
||||
CM_ SG_ 1085 PwSrcULoComm_B_Falt "Signal not transmitted on HEV variants.";
|
||||
CM_ SG_ 1445 SOBDMC_AutoSarNMReserved4 "Signal not transmitted on gas and diesel variants.";
|
||||
CM_ SG_ 1445 SOBDMC_AutoSarNMReserved3 "Signal not transmitted on gas and diesel variants.";
|
||||
CM_ SG_ 1445 SOBDMC_AutoSarNMReserved2 "Signal not transmitted on gas and diesel variants.";
|
||||
CM_ SG_ 1445 SOBDMC_AutoSarNMReserved1 "Signal not transmitted on gas and diesel variants.";
|
||||
CM_ SG_ 1445 SOBDMC_AutoSarNMNodeId "Signal not transmitted on gas and diesel variants.";
|
||||
CM_ SG_ 1445 SOBDMC_AutoSarNMControl "Signal not transmitted on gas and diesel variants.";
|
||||
CM_ SG_ 1088 HvacPrecondMode2_D_Rq "Signal not transmitted on vehicles that do not have the Fuel operated heater feature.";
|
||||
CM_ SG_ 1088 HvacPrecondBlwr2_D_Rq "Signal not transmitted on vehicles that do not have the Fuel operated heater feature.";
|
||||
CM_ SG_ 786 ChrgStat_D_Dsply "Signal not transmitted by PCM_HEV";
|
||||
CM_ SG_ 66 immoControlData_T2 "Not transmitted on all vehicle variants";
|
||||
CM_ SG_ 66 immoControlCmd_T2 "Not transmitted on all vehicle variants";
|
||||
CM_ SG_ 549 BeltminderAudioMute "Object.MyKey.BeltMinderAudioMute.St";
|
||||
CM_ SG_ 549 Power_Up_Chime_Modules "Object.AlertMethod.IPC _Infotainment";
|
||||
CM_ SG_ 549 Chime_Source "Object.AlertMethod.IPC_infotainment";
|
||||
CM_ SG_ 611 AwdStat_D_RqDsply "Signal not transmitted on programs that do not have AWD.";
|
||||
CM_ SG_ 611 AwdSrvcRqd_B_Rq "Signal not transmitted on programs that do not have AWD.";
|
||||
CM_ SG_ 611 AwdLck_Tq_Rq "Signal not transmitted on programs that do not have AWD.";
|
||||
CM_ SG_ 130 VehVTrlrAid_B_Rq "VR session start- req. limit blower speed no more than X volts. CC restriction on time msg. will be honored.Double Event msg1st event to request limit, 2nd event to release limit, No msg. CC Grammar v7.xls";
|
||||
CM_ SG_ 130 SteMdule_U_Meas "DCR 1745 to update Tx from GWM to EP100ms. SteMdule_I_Est & SteMdule_U_Meas are used by BMS system & filtered. The filter uses standard periodic rate & changing to EP would adversely affect the filter.(jweinfur)";
|
||||
CM_ SG_ 130 SteMdule_I_Est "DCR 1745 to update Tx from GWM to EP100ms. SteMdule_I_Est & SteMdule_U_Meas are used by BMS system & filtered. The filter uses standard periodic rate & changing to EP would adversely affect the filter.(jweinfur)";
|
||||
CM_ SG_ 126 StePinRelInit_An_Sns "SASM will transmit these signals on vehicles with SASM and without PSCM. SCCM will not Tx this signal when SASM is present.";
|
||||
CM_ SG_ 126 StePinAn_No_Cs "Signal not transmitted on gas variants.";
|
||||
CM_ SG_ 1200 BrkTot_Tq_RqDrv "DCR 1836 to update Tx from GWM to EP100ms rejected due MPS6 TCM requires BrkTot_Tq_RqDrv at 20ms (bshu1).";
|
||||
CM_ SG_ 1046 TCMode "Signal data set to 0x0 for ABS only vehicle option content";
|
||||
CM_ SG_ 1046 DrvAntiLckLamp_D_Rq "update value table v8.34, not align w/GSDB, need etracker. ABS & IPC implemented as updated.";
|
||||
CM_ SG_ 1046 BpedMove_D_Actl "CCMGenSigTimeoutTime=1000";
|
||||
CM_ SG_ 1044 StePinOffst_An_Est "SASM will transmit these signals on vehicles with SASM and without PSCM. SCCM will not Tx this signal when SASM is present.";
|
||||
CM_ SG_ 1044 StePinOffst_No_Cs "Signal not transmitted on gas variants.";
|
||||
CM_ SG_ 534 BrkObdData_No_Actl "Signal not transmitted on gas, diesel and HEV. Only supported on PHEV.";
|
||||
CM_ SG_ 534 BrkObdIndex_No_Actl "Signal not transmitted on gas, diesel and HEV. Only supported on PHEV.";
|
||||
CM_ SG_ 534 WhlRotatRr_No_Cnt "DCR 1833 to update Tx from GWM to EP100ms. Wheel Count signals are used by complex algorithm to determine Tire Pressure by Location & can't change from 20msec. (jweinfur)";
|
||||
CM_ SG_ 534 WhlRotatRl_No_Cnt "DCR 1833 to update Tx from GWM to EP100ms. Wheel Count signals are used by complex algorithm to determine Tire Pressure by Location & can't change from 20msec. (jweinfur)";
|
||||
CM_ SG_ 534 WhlRotatFr_No_Cnt "DCR 1833 to update Tx from GWM to EP100ms. Wheel Count signals are used by complex algorithm to determine Tire Pressure by Location & can't change from 20msec. (jweinfur)";
|
||||
CM_ SG_ 534 WhlRotatFl_No_Cnt "DCR 1833 to update Tx from GWM to EP100ms. Wheel Count signals are used by complex algorithm to determine Tire Pressure by Location & can't change from 20msec. (jweinfur)";
|
||||
CM_ SG_ 531 VehLongOvrGnd_A_Est "CCMGenSigTimeoutTime=1000";
|
||||
CM_ SG_ 1034 VehicleGGCCData "RCMGenSigTimeout=6000";
|
||||
CM_ SG_ 1090 Mtr2State_D_ActlMntr "Signal Not transmitted on PCM_HEV variant";
|
||||
CM_ SG_ 1090 Inv1Ain_I_ActlMntr "Signal Not transmitted on PCM_HEV variant";
|
||||
CM_ SG_ 1090 VehElRnge_L_Dsply "Signal Not transmitted on HPCM variant";
|
||||
CM_ SG_ 374 TrnRng_D_Rq "Powersplit HEVs with HF45, HPCM will Tx this message. For all other programs it will be Tx by PCM or TCM. ";
|
||||
CM_ SG_ 374 TrnPrkSys_D_Actl "Powersplit HEVs with HF45, HPCM will Tx this message. For all other programs it will be Tx by PCM or TCM. ";
|
||||
CM_ SG_ 374 GearLvr_D_ActlDrv "Powersplit HEVs with HF45, HPCM will Tx this message. For all other programs it will be Tx by PCM or TCM. ";
|
||||
CM_ SG_ 374 GearPos_No_Cs "Powersplit HEVs with HF45, HPCM will Tx this message. For all other programs it will be Tx by PCM or TCM. ";
|
||||
CM_ SG_ 374 GearPos_D_Trg "Powersplit HEVs with HF45, HPCM will Tx this message. For all other programs it will be Tx by PCM or TCM. ";
|
||||
CM_ SG_ 374 GearPos_No_Cnt "Powersplit HEVs with HF45, HPCM will Tx this message. For all other programs it will be Tx by PCM or TCM. ";
|
||||
CM_ SG_ 374 GearPos_D_Actl "Powersplit HEVs with HF45, HPCM will Tx this message. For all other programs it will be Tx by PCM or TCM. ";
|
||||
CM_ SG_ 603 WhlDirAvgDrv_D_Actl "48V mHEV: ECM_HEVDSL is Tx, MHT HEV: PCM_HEV is Tx, Powersplit HEV: SOBDMC_HPCM is Tx";
|
||||
CM_ SG_ 603 PrplTqMnRgen_B_Actl "48V mHEV: ECM_HEVDSL is Tx, MHT HEV: PCM_HEV is Tx, Powersplit HEV: SOBDMC_HPCM is Tx";
|
||||
CM_ SG_ 603 BattTracCnnct_D_Rq "48V mHEV: ECM_HEVDSL is Tx, MHT HEV: PCM_HEV is Tx, Powersplit HEV: SOBDMC_HPCM is Tx";
|
||||
CM_ SG_ 872 HybMdeStat_D_Dsply "Signal not transmitted by HPCM";
|
||||
CM_ SG_ 560 SelDrvMdeSwtch_D_Stat3 "ECM_HEV, PCM & PCM_HEV do not support or Transmit signal.";
|
||||
CM_ SG_ 560 TrnSrvcRqd_B_Rq "Signal not transmitted on Diesel & HEV variants. MHT(U611/625) HPCM Rx 0x230 from PCM_HEV. Powersplit FWD HEVs(Cx482/3 430) HPCM Tx 0x230.";
|
||||
CM_ SG_ 560 TrnShifActv_B_Actl "Signal not transmitted on HEV variants. MHT(U611/625) HPCM Rx 0x230 from PCM_HEV. Powersplit FWD HEVs(Cx482/3 430) HPCM Tx 0x230.";
|
||||
CM_ SG_ 560 GboxOil_Te_Actl "Signal not transmitted on HEV variants. MHT(U611/625) HPCM Rx 0x230 from PCM_HEV. Powersplit FWD HEVs(Cx482/3 430) HPCM Tx 0x230.";
|
||||
CM_ SG_ 369 SeatWorkSrfc_B_Falt "Signal Not transmitted by TCM_DSL";
|
||||
CM_ SG_ 369 TrnIpcDsplyRng2_D_Actl "Signal not transmitted on HEV variants.";
|
||||
CM_ SG_ 369 TrnIpcDsplyRng_D_Stat "Signal not transmitted on HEV variants.";
|
||||
CM_ SG_ 92 TrnLvrV_D_Rq "Signal not transmitted on vehicles with PCM_HEV";
|
||||
CM_ SG_ 92 TrnSbwSysHlth_D_Actl "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 92 TrnGearNtmAllow_B_Stat "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 92 TrnDtpCmd_D_Actl "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 92 TrnGearCmd_No_Cs "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 92 TrnValidGear_D_Cnfm "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 92 TrnNtrlTowCmd_D_Actl "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 92 TrnGearCmd_Pc_ActlPt "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 92 TrnGear_D_RqPt "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 92 TrnCmdState_B_Actl "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 92 TrnCmdCnt_B_Actl "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 92 PrkBrkActv_D_RqTrnGear "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 92 TrnGearMsgTxt_D_Rq "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 92 TrnGearCmd_No_Cnt "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 1087 BattRgenLoChrg_D_RqEng "Signal not transmitted on diesel variant";
|
||||
CM_ SG_ 1087 BattRgenLoDChrg_D_RqEng "Signal not transmitted on diesel variant";
|
||||
CM_ SG_ 1087 FapLcInhbt_B_Rq "Signal not transmitted on diesel variant";
|
||||
CM_ SG_ 1100 EngExhMdeQuiet_D2_Stat "Signal not transmitted on HEV & Diesel programs";
|
||||
CM_ SG_ 1100 HvacCmprLim_D_Stat "Signal not transmitted on Diesel variants";
|
||||
CM_ SG_ 1100 WakeAlarm1_T_Rq "Signal not transmitted on Gas variants";
|
||||
CM_ SG_ 1100 WakeAlarm1_B_Typ "Signal not transmitted on Gas variants";
|
||||
CM_ SG_ 1100 Veh_V_DsplyTrailCtlSet "Signal not transmitted on HEV & Diesel programs";
|
||||
CM_ SG_ 1100 TrailCtlPt_B_Falt "Signal not transmitted on HEV & Diesel programs";
|
||||
CM_ SG_ 1100 AutoTowAllw_D_StatMnu "Signal not transmitted on Gas & Diesel variants";
|
||||
CM_ SG_ 1100 AutoTowActv_B_Stat "Signal not transmitted on Gas & Diesel variants";
|
||||
CM_ SG_ 1086 EngMnfld_P_Actl "Signal not transmitted on HEV & Diesel programs";
|
||||
CM_ SG_ 1086 ElLoadCtl_D_Rq "Signal not transmitted on HEV variants.";
|
||||
CM_ SG_ 1071 CluPdl_PcRate_Actl "Signal not transmitted on HEV and Gas variants.";
|
||||
CM_ SG_ 1071 CluPdlPosPcMeas_D_Qf "Signal not transmitted on HEV and Gas variants.";
|
||||
CM_ SG_ 1071 CluPdlPos_Pc_Meas "Signal not transmitted on HEV and Gas variants.";
|
||||
CM_ SG_ 1071 EngAoutIdl_N_Ntrl "Signal not transmitted on HEV variants and diesel.";
|
||||
CM_ SG_ 1069 SlMde_D_Stat "IPC and HUD_ADV Receve from HS3 FGW 0x42D, not HS3 0x38A, MSG DCR 506. Signal not transmitted on Gas & HEV variants";
|
||||
CM_ SG_ 1069 SlMde_D_RqDsply "IPC and HUD_ADV Receve from HS3 FGW 0x42D, not HS3 0x38A, MSG DCR 506. Signal not transmitted on Gas & HEV variants";
|
||||
CM_ SG_ 1069 IsaOffst_D_Stat "Signal not transmitted on Gas & HEV variants";
|
||||
CM_ SG_ 1069 ObdWarmUp_B_Complt "Signal not transmitted on diesel variants.";
|
||||
CM_ SG_ 1069 EngMsgTxt_D_Rq "Signal not transmitted on diesel variants.";
|
||||
CM_ SG_ 1069 EngClnt_Te_ActlDiag "Signal not transmitted on gas variants.";
|
||||
CM_ SG_ 1069 EngLoad_Pc_CalcDiag "Signal not transmitted on gas variants.";
|
||||
CM_ SG_ 1069 ApedPos_Pc_ActlDiag "Signal not transmitted on gas variants.";
|
||||
CM_ SG_ 1060 RearDiffOilTeWarn_B_Rq "Signal not transmitted on HEV & Diesel programs";
|
||||
CM_ SG_ 1060 RearDiffOil_Te_Actl "Signal not transmitted on HEV & Diesel programs";
|
||||
CM_ SG_ 1057 FohEng_D_Rq "Signal not transmitted on vehicles that do not have the fuel operated heater feature. Signal not transmitted on HEV programs";
|
||||
CM_ SG_ 1057 EngIdlShutDown_D_Stat "Signal not transmitted on diesel variants.";
|
||||
CM_ SG_ 1057 FUEL_ALCOHOL_PERCNT "signal not transmitted on diesel and HEV variants.";
|
||||
CM_ SG_ 1057 TrnTotTq_Rt_Est "Signal not transmitted on gas and HEV variants.";
|
||||
CM_ SG_ 1057 TrnTotLss_Tq_Est "Signal not transmitted on gas and HEV variants.";
|
||||
CM_ SG_ 1057 VehVLimStat_D_Actl "Signal not transmitted on gas and HEV variants.";
|
||||
CM_ SG_ 1057 VehVLimActv_B_Actl "Signal not transmitted on gas and HEV variants.";
|
||||
CM_ SG_ 562 GearNtrl_No_Cs "Powersplit HEVs with HF45, HPCM will Tx this message. For all other programs it will be Tx by PCM or TCM. ";
|
||||
CM_ SG_ 562 GearNtrl_No_Cnt "Powersplit HEVs with HF45, HPCM will Tx this message. For all other programs it will be Tx by PCM or TCM. ";
|
||||
CM_ SG_ 516 EngAoutNActl_D_QF "Signal not transmitted on Gas & HEV variants";
|
||||
CM_ SG_ 516 EngAout3_N_Actl "Signal not transmitted on gas and diesel variants.";
|
||||
CM_ SG_ 516 ApedPos_Pc_ActlArb "ABSGenSigTimeoutTime=1000";
|
||||
CM_ SG_ 516 ApedPosPcActl_No_Cnt "Signal not transmitted on gas and diesel variants.";
|
||||
CM_ SG_ 516 ApedPosPcActl_No_Cs "Signal not transmitted on gas and diesel variants.";
|
||||
CM_ SG_ 514 VehVTrlrAid_B_Avail "Signal not transmitted on HEV variants.";
|
||||
CM_ SG_ 514 GearRvrse_D_Actl "Do not implement GearRvrse_D_Actl until eTracker 8804151 is approved, 11/24/09";
|
||||
CM_ SG_ 512 PrplWhlTotTqRq_No_Cs "Signal not transmitted on gas & Diesel variants.";
|
||||
CM_ SG_ 512 PrplWhlTotTqRq_No_Cnt "Signal not transmitted on gas & Diesel variants.";
|
||||
CM_ SG_ 512 PtDrvMde_D_Stat "Signal not transmitted on Gas & HEV variants.";
|
||||
CM_ SG_ 380 EngExhBrkOnLamp_B_Rq "Signal not transmitted on Gas variants";
|
||||
CM_ SG_ 380 EngExhBrkAutoLamp_B_Rq "Signal not transmitted on Gas variants";
|
||||
CM_ SG_ 380 EngAout_N_MxAllw "Signal not transmitted on Gas variants";
|
||||
CM_ SG_ 380 EngExhBrkMde_D_Actl "Signal not transmitted on Gas variants";
|
||||
CM_ SG_ 377 HvacAirFullOut_B_Rq "Signal not transmitted on diesel variant";
|
||||
CM_ SG_ 377 FuelFlw_Vl_Dsply "Signal not transmitted on diesel variants.";
|
||||
CM_ SG_ 377 FuelFillInlet_B_Dsply "Signal not transmitted on diesel variants.";
|
||||
CM_ SG_ 377 OdoCount "Signal not transmitted on diesel variants.";
|
||||
CM_ SG_ 377 EngOilLife_Pc_Actl "Signal not transmitted on diesel variants.";
|
||||
CM_ SG_ 377 FuelFilterLamp_B_Dsply "Signal not transmitted on Gas & HEV variants";
|
||||
CM_ SG_ 377 AirCondRec_B_Rq "Signal not transmitted on diesel variants.";
|
||||
CM_ SG_ 377 AirCondClutch_B_Stats "Signal not transmitted on diesel variants.";
|
||||
CM_ SG_ 376 GasPrtc_D_RqDsply "Signal not transmitted on HEV & Diesel variants.";
|
||||
CM_ SG_ 376 EngAout_Aa_Actl "Signal not transmitted on HEV variants.";
|
||||
CM_ SG_ 376 AslIconDsply_D_Rq "Signal not transmitted on HEV variants.";
|
||||
CM_ SG_ 376 AslChime_B_Rq "Signal not transmitted on HEV variants.";
|
||||
CM_ SG_ 376 HvacHtrCore2_Te_Actl "Signal not transmitted on Gas & Diesel variants";
|
||||
CM_ SG_ 376 EcssLamp_D_RqDsply "Signal not transmitted on Gas & HEV variants";
|
||||
CM_ SG_ 376 AirAmb_Te_Actl "Signal not transmitted on Gas variants";
|
||||
CM_ SG_ 359 PrplWhlRgenMn_Tq_Actl "Signal not transmitted on Gas & Diesel variants";
|
||||
CM_ SG_ 359 ElPw_D_StatStrtStop "Signal not transmitted on HEV variants.";
|
||||
CM_ SG_ 359 TrnAin_Tq_Actl "Signal not transmitted on HEV variances.";
|
||||
CM_ SG_ 359 PlgActvArb_B_Actl "Only supported on PHEV programs. PlgActvArb_B_Actl HPCM will Tx on Powersplit PHEVs, On MHT PHEVs the PCM_HEV will Tx and HPCM will Rx.";
|
||||
CM_ SG_ 359 TrnAinTq_D_Qf "Signal not transmitted on HEV variances.";
|
||||
CM_ SG_ 358 StopStrtStdby_D_Indic "Signal not transmitted on HEV variants.";
|
||||
CM_ SG_ 358 StopStrtIODTxt_D_Rq "Signal not transmitted on HEV variants.";
|
||||
CM_ SG_ 358 StopStrtDrvMde_D_Indic "Signal not transmitted on HEV variants.";
|
||||
CM_ SG_ 358 StopStrtMsgTxt_D_Rq "Signal not transmitted on HEV variants.";
|
||||
CM_ SG_ 358 HiElPwInhbt_B_Stat "Signal not transmitted on HEV programs";
|
||||
CM_ SG_ 358 AutoStopPtDelta_I_Est "Signal not transmitted on HEV variants. ";
|
||||
CM_ SG_ 357 BpedDrvAppl_D_Actl "CCMGenSigTimeoutTime=1000";
|
||||
CM_ SG_ 357 CcStat_D_Actl "ABSGenSigTimeoutTime=1000";
|
||||
CM_ SG_ 357 EngAout_N_MnAllw "Signal not transmitted on Gas & Diesel variants.";
|
||||
CM_ SG_ 357 AccStopMde_D_Rq "ABSGenSigTimeoutTime=1000";
|
||||
CM_ SG_ 342 EngOvrhtMitgActv_D_Ind "Signal not transmitted on diesel.";
|
||||
CM_ SG_ 342 EngGoutLss_Tq_Est "Signal not transmitted on gas and diesel variants.";
|
||||
CM_ SG_ 342 EngOil_Te_Actl "Signal not transmitted on Gas & HEV variants. ";
|
||||
CM_ SG_ 954 GenericSwtch2_No_Actl "U625 Police Wig Wag feature";
|
||||
CM_ SG_ 935 SodRight_D_Stat "IPCGenSigTimeoutTime=1600";
|
||||
CM_ SG_ 935 Side_Detect_R_Illum "DDMGenSigTimeoutTime=2000";
|
||||
CM_ SG_ 935 SodSnsRight_D_Stat "IPCGenSigTimeoutTime=1600";
|
||||
CM_ SG_ 935 SodAlrtRight_D_Stat "DDMGenSigTimeoutTime=2000";
|
||||
CM_ SG_ 1112 BattTracClntPmp_D_Stat "48V mHEV: ECM_HEVDSL is Tx, MHT HEV: PCM_HEV is Tx, Powersplit HEV: SOBDMC_HPCM is Tx";
|
||||
CM_ SG_ 1050 Outside_Air_Temp_Stat "Filtered value, i.e. same as disply for customer";
|
||||
CM_ SG_ 1009 CenterStackRing_D_Actl "The Center Stack sends the CPLR a signal to turn On or Off the light Ring, This is a customer selectable preference switch";
|
||||
CM_ SG_ 1009 APIM_NumberofTracks_St "Object NumberofTracks";
|
||||
CM_ SG_ 1009 APIM_ActiveTrackNum_St "Object.ActiveTrackNum";
|
||||
CM_ SG_ 360 GsmSrvcRqd_B_Rq "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 360 TrnGearPwmFalt_B_Actl "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 360 GearButtnStuck_B_Actl "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGsmNtmState_D_Actl "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 DrQltyDrv_D_StatGsm "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnBtsiOvrrd_B_Stat "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnValidGearRq_D_Stat "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGearRqCnt_B_Actl "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGearButtn_U_Actl "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGearButtn_B_ActlR2 "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGearButtn_B_ActlR1 "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGearButtn_B_ActlR0 "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGearButtn_B_ActlP2 "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGearButtn_B_ActlP1 "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGearButtn_B_ActlP0 "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGearButtn_B_ActlN2 "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGearButtn_B_ActlN1 "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGearButtn_B_ActlN0 "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGearButtn_B_ActlM2 "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGearButtn_B_ActlM1 "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGearButtn_B_ActlM0 "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGearButtn_B_ActlD2 "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGearButtn_B_ActlD1 "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGearButtn_B_ActlD0 "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGear_No_Cs "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGear_No_Cnt "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 TrnGear_D_RqDrv "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 90 BrkSwtchPos_B_ActlGsm "Signal not transmitted on vehicles that do not have shift by wire.";
|
||||
CM_ SG_ 138 SteWhlRelCalib_An_Sns "Signal is not transmitted on vehicles where PSCM is transmitting the message that contains this signal. Signal data set to 0x0 for ABS only vehicle option content";
|
||||
CM_ SG_ 1093 StopLamp_B_RqTrlrBrk "Signal not transmitted on all variants.";
|
||||
CM_ SG_ 792 ElTrip_L_Dsply "Key cycle trip distance driven with the engine off (Trip EV Miles)";
|
||||
CM_ SG_ 792 ElLongTerm_L_Dsply "Long term distance distance driven with the engine off since the last long term reset (Long Term EV Miles).";
|
||||
CM_ SG_ 765 Mc_VehTimeFrmtUsrSel_St "Object.BodyInterface.Settings.VehicleTimeFormatUserSelection";
|
||||
CM_ SG_ 765 Mc_VehUntTrpCoUsrSel_St "Object.VehicleSettings.Disp_Miles_Kilometers.Rq";
|
||||
CM_ SG_ 765 Mc_VehUnitTempUsrSel_St "Object.VehicleSettings.Disp_Temperature.Rq";
|
||||
CM_ SG_ 765 Mc_VehLangUsrSel_St "Object.BodyInterface.Settings.VehicleLanguageUserSelection Object Vehicle Settings.Disp_LangSel";
|
||||
CM_ SG_ 934 Side_Detect_L_Illum "DDMGenSigTimeoutTime=2000";
|
||||
CM_ SG_ 934 SodLeft_D_Stat "IPCGenSigTimeoutTime=1600";
|
||||
CM_ SG_ 934 SodSnsLeft_D_Stat "IPCGenSigTimeoutTime=1600";
|
||||
CM_ SG_ 934 SodAlrtLeft_D_Stat "DDMGenSigTimeoutTime=2000";
|
||||
CM_ SG_ 1072 MetricActv_B_Actl "0 =Inactive(English), 1=Active(Metric)";
|
||||
CM_ SG_ 145 VehYaw_W_Actl "CCMGenSigTimeoutTime=1000";
|
||||
CM_ SG_ 931 CrnkInhbt_No_Cs "Signal not transmitted on gas and HEV variants.";
|
||||
CM_ SG_ 931 CrnkInhbt_No_Cnt "Signal not transmitted on gas and HEV variants.";
|
||||
CM_ SG_ 947 Dimming_Lvl "Refer to Vehicle Interior Illum Dimming Ctrl Sys Eng Spec, Table 2";
|
||||
CM_ SG_ 947 PrkBrkActv_B_Actl "Signal not transmitted on vehicles with electric park brake. ";
|
||||
CM_ SG_ 394 HaDsply_No_Cs "Signal not transmitted on gas variants.";
|
||||
CM_ SG_ 394 HaDsply_No_Cnt "Signal not transmitted on gas variants.";
|
||||
CM_ SG_ 391 CmbbBrkDecel_A_Rq "ABSGenSigTimeoutTime=1000";
|
||||
CM_ SG_ 391 CmbbBrkPrchg_D_Rq "ABSGenSigTimeoutTime=1000";
|
||||
CM_ SG_ 391 CmbbBrkDecel_B_Rq "ABSGenSigTimeoutTime=1000";
|
||||
CM_ SG_ 391 CmbbBaSens_D_Rq "ABSGenSigTimeoutTime=1000";
|
||||
CM_ SG_ 390 AccBrkTot_A_Rq "ABSGenSigTimeoutTime=1000";
|
||||
CM_ SG_ 390 AccBrkPrkEl_B_Rq "ABSGenSigTimeoutTime=1000";
|
||||
CM_ SG_ 390 AccPrpl_A_Rq "PCMGenSigTimeoutTime=1000";
|
||||
CM_ SG_ 390 AccBrkPrchg_B_Rq "ABSGenSigTimeoutTime=1000";
|
||||
CM_ SG_ 390 AccBrkDecel_B_Rq "ABSGenSigTimeoutTime=1000";
|
||||
CM_ SG_ 390 AccStopStat_B_Rq "ABSGenSigTimeoutTime=1000";
|
||||
CM_ SG_ 942 PrkAidRdiusRight_L_Dsply "MSGDCR 679, set all signals to OnChange";
|
||||
CM_ SG_ 942 PrkAidRdiusLeft_L_Dsply "MSGDCR 679, set all signals to OnChange";
|
||||
CM_ SG_ 942 PrkAidDrvDir_D_Stat "MSGDCR 679, set all signals to OnChange";
|
||||
|
||||
@@ -1 +1 @@
|
||||
_stellantis_common_ram.dbc
|
||||
_*generated.dbc
|
||||
|
||||
@@ -5,6 +5,17 @@ BO_ 258 STEERING: 8 XXX
|
||||
SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 264 ECM_1: 8 XXX
|
||||
SG_ ENGINE_RPM : 7|16@0+ (1,0) [0|65535] "" XXX
|
||||
SG_ ENGINE_TORQUE : 20|13@0+ (0.25,-500) [-500|1547.5] "Nm" XXX
|
||||
SG_ EXPECTED_ENGINE_TORQUE : 36|13@0+ (0.25,-500) [-500|1547.5] "Nm" XXX
|
||||
SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 280 ECM_TRQ: 8 XXX
|
||||
SG_ ENGINE_TORQ_MAX : 4|13@0+ (.25,-500) [-500|1547.5] "NM" XXX
|
||||
SG_ ENGINE_TORQ_MIN : 20|13@0+ (.25,-500) [-500|1547.5] "NM" XXX
|
||||
|
||||
BO_ 284 ESP_8: 8 XXX
|
||||
SG_ BRK_PRESSURE : 3|12@0+ (1,0) [0|1] "" XXX
|
||||
SG_ BRAKE_PEDAL : 19|12@0+ (1,0) [0|1] "" XXX
|
||||
@@ -25,6 +36,11 @@ BO_ 344 ESP_6: 8 XXX
|
||||
SG_ WHEEL_SPEED_RL : 37|14@0+ (0.5,0) [0|8191] "rpm" XXX
|
||||
SG_ WHEEL_SPEED_RR : 53|14@0+ (0.5,0) [0|8191] "rpm" XXX
|
||||
|
||||
BO_ 368 Transmission_Status: 8 XXX
|
||||
SG_ Gear_State : 2|3@1+ (1,0) [0|15] "" XXX
|
||||
SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 464 ORC_1: 8 XXX
|
||||
SG_ SEATBELT_DRIVER_UNLATCHED : 13|1@0+ (1,0) [0|1] "" XXX
|
||||
|
||||
@@ -32,10 +48,17 @@ BO_ 500 DAS_3: 8 XXX
|
||||
SG_ ENGINE_TORQUE_REQUEST : 4|13@0+ (0.25,-500) [-500|1547.5] "Nm" XXX
|
||||
SG_ ENGINE_TORQUE_REQUEST_MAX : 7|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ ACC_STANDSTILL : 5|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ ACC_GO : 6|1@1+ (1,0) [0|0] "" XXX
|
||||
SG_ ACC_DECEL : 19|12@0+ (0.004885,-16) [-16|4] "m/s2" XXX
|
||||
SG_ ACC_AVAILABLE : 20|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ ACC_ACTIVE : 21|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ DISABLE_FUEL_SHUTOFF : 23|1@1+ (1,0) [0|0] "" XXX
|
||||
SG_ GR_MAX_REQ : 32|4@1+ (1,0) [0|0] "" XXX
|
||||
SG_ ACC_DECEL_REQ : 36|3@1+ (1,0) [0|0] "" XXX
|
||||
SG_ STS : 46|2@1+ (1,0) [0|0] "" XXX
|
||||
SG_ ACC_FAULTED : 47|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ BRAKE_MAYBE : 18|11@0+ (1,0) [0|255] "" XXX
|
||||
SG_ COLLISION_BRK_PREP : 48|1@1+ (1,0) [0|0] "" XXX
|
||||
SG_ ACC_BRK_PREP : 49|1@1+ (1,0) [0|0] "" XXX
|
||||
SG_ BRAKE_BOOL_1 : 36|1@0+ (1,0) [0|3] "" XXX
|
||||
SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
@@ -54,6 +77,7 @@ BO_ 544 EPS_2: 8 XXX
|
||||
SG_ TORQUE_OVERLAY_STATUS : 6|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ EPS_TORQUE_MOTOR_RAW : 19|12@0+ (1,-2048) [-2048|2047] "" XXX
|
||||
SG_ EPS_TORQUE_MOTOR : 34|11@0+ (1,-1024) [-1024|1023] "" XXX
|
||||
SG_ LKAS_TEMPORARY_FAULT : 38|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ AUTO_PARK_HAS_CONTROL_2 : 51|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
@@ -100,7 +124,11 @@ BO_ 820 BCM_1: 8 XXX
|
||||
SG_ TURN_LIGHT_RIGHT : 30|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ HIGH_BEAM_DISPLAY : 58|1@0+ (1,0) [0|1] "" XXX
|
||||
|
||||
VAL_ 368 Gear_State 4 "D" 2 "N" 1 "R" 0 "P" ;
|
||||
|
||||
CM_ SG_ 258 STEERING_ANGLE_HP "Steering angle high precision";
|
||||
CM_ SG_ 264 ENGINE_TORQUE "Effective engine torque";
|
||||
CM_ SG_ 264 EXPECTED_ENGINE_TORQUE "Expected Engine Torque based on target engine speed";
|
||||
CM_ SG_ 678 LKAS_ICON_COLOR "3 is yellow, 2 is green, 1 is white, 0 is null";
|
||||
CM_ SG_ 678 LKAS_LANE_LINES "0x01 transparent lines, 0x02 left white, 0x03 right white, 0x04 left yellow with car on top, 0x05 left yellow with car on top, 0x06 both white, 0x07 left yellow, 0x08 left yellow right white, 0x09 right yellow, 0x0a right yellow left white, 0x0b left yellow with car on top right white, 0x0c right yellow with car on top left white, (0x00, 0x0d, 0x0e, 0x0f) null";
|
||||
CM_ SG_ 678 LKAS_ALERTS "(0x01, 0x02) lane sense off, (0x03, 0x04, 0x06) place hands on steering wheel, 0x07 lane departure detected + place hands on steering wheel, (0x08, 0x09) lane sense unavailable + clean front windshield, 0x0b lane sense and auto high beam unavailable + clean front windshield, 0x0c lane sense unavailable + service required, (0x00, 0x05, 0x0a, 0x0d, 0x0e, 0x0f) null";
|
||||
|
||||
@@ -1,42 +1,50 @@
|
||||
#!/usr/bin/env python3
|
||||
import os
|
||||
from pathlib import Path
|
||||
|
||||
CHRYSLER_TO_RAM_ADDR = {
|
||||
258: 35,
|
||||
284: 121,
|
||||
320: 131,
|
||||
344: 139,
|
||||
464: 464,
|
||||
500: 153,
|
||||
501: 232,
|
||||
544: 49,
|
||||
571: 177,
|
||||
559: 157,
|
||||
678: 250,
|
||||
720: 720,
|
||||
792: 792,
|
||||
820: 657,
|
||||
chrysler_to_ram = {
|
||||
"_stellantis_common_ram_dt_generated.dbc": {
|
||||
258: 35,
|
||||
264: 37,
|
||||
280: 181,
|
||||
284: 121,
|
||||
320: 131,
|
||||
344: 139,
|
||||
368: 147,
|
||||
464: 464,
|
||||
500: 153,
|
||||
501: 232,
|
||||
544: 49,
|
||||
571: 177,
|
||||
559: 157,
|
||||
678: 250,
|
||||
720: 720,
|
||||
792: 792,
|
||||
820: 657,
|
||||
},
|
||||
"_stellantis_common_ram_hd_generated.dbc": {
|
||||
571: 570,
|
||||
678: 629,
|
||||
},
|
||||
}
|
||||
|
||||
if __name__ == "__main__":
|
||||
src = '_stellantis_common.dbc'
|
||||
out = Path(__file__).stem + '.dbc'
|
||||
chrysler_path = os.path.dirname(os.path.realpath(__file__))
|
||||
|
||||
with open(os.path.join(chrysler_path, src)) as in_f, open(os.path.join(chrysler_path, out), 'w') as out_f:
|
||||
out_f.write(f'CM_ "Generated from {src}"\n\n')
|
||||
for out, addr_lookup in chrysler_to_ram.items():
|
||||
with open(os.path.join(chrysler_path, src)) as in_f, open(os.path.join(chrysler_path, out), 'w') as out_f:
|
||||
out_f.write(f'CM_ "Generated from {src}"\n\n')
|
||||
|
||||
wrote_addrs = set()
|
||||
for line in in_f.readlines():
|
||||
if line.startswith('BO_'):
|
||||
sl = line.split(' ')
|
||||
addr = int(sl[1])
|
||||
wrote_addrs.add(addr)
|
||||
wrote_addrs = set()
|
||||
for line in in_f.readlines():
|
||||
if line.startswith(('BO_', 'VAL_')):
|
||||
sl = line.split(' ')
|
||||
addr = int(sl[1])
|
||||
wrote_addrs.add(addr)
|
||||
|
||||
sl[1] = str(CHRYSLER_TO_RAM_ADDR.get(addr, addr))
|
||||
line = ' '.join(sl)
|
||||
out_f.write(line)
|
||||
sl[1] = str(addr_lookup.get(addr, addr))
|
||||
line = ' '.join(sl)
|
||||
out_f.write(line)
|
||||
|
||||
missing_addrs = set(CHRYSLER_TO_RAM_ADDR.keys()) - wrote_addrs
|
||||
assert len(missing_addrs) == 0, f"Missing addrs from {src}: {missing_addrs}"
|
||||
missing_addrs = set(addr_lookup.keys()) - wrote_addrs
|
||||
assert len(missing_addrs) == 0, f"Missing addrs from {src}: {missing_addrs}"
|
||||
|
||||
@@ -17,11 +17,6 @@ BO_ 736 TRIP: 8 XXX
|
||||
SG_ COUNTER : 7|16@0+ (1,0) [0|65535] "Meters" XXX
|
||||
SG_ COUNTER_2 : 23|16@0+ (1,0) [0|65535] "Meters" XXX
|
||||
|
||||
BO_ 264 ACCEL_PEDAL_MSG: 8 XXX
|
||||
SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
SG_ ACCEL_PEDAL : 35|1@0+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 658 LKAS_COMMAND: 6 XXX
|
||||
SG_ COUNTER : 39|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 47|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
@@ -1,10 +1,4 @@
|
||||
CM_ "IMPORT _stellantis_common_ram.dbc";
|
||||
|
||||
BO_ 37 PCM_1: 8 XXX
|
||||
SG_ ENGINE_RPM : 7|16@0+ (1,0) [0|1] "" XXX
|
||||
SG_ ENGINE_TRQ_REQ : 23|12@0+ (1,0) [0|1] "" XXX
|
||||
SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
CM_ "IMPORT _stellantis_common_ram_dt_generated.dbc";
|
||||
|
||||
BO_ 53 PCM_2: 8 XXX
|
||||
SG_ ENG_TORQUE_REQ : 3|12@0+ (1,0) [0|7] "" XXX
|
||||
@@ -27,11 +21,6 @@ BO_ 137 ESP_4: 8 XXX
|
||||
SG_ Yaw_Rate : 7|16@0+ (0.01,-327.68) [-327.68|327.66] "deg/s" XXX
|
||||
SG_ Acceleration : 32|8@1+ (0.08,-10.24) [-10.24|10.08] "m/s2" XXX
|
||||
|
||||
BO_ 147 Transmission_Status: 8 XXX
|
||||
SG_ Gear_State : 2|3@1+ (1,0) [0|15] "" XXX
|
||||
SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 164 EPS_3: 8 XXX
|
||||
SG_ DASM_FAULT : 34|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ Activation_Status : 48|3@1+ (1,0) [0|1] "" XXX
|
||||
@@ -62,4 +51,3 @@ CM_ SG_ 250 Auto_High_Beam "1 = HIGH BEAMS OK 0 = HIGH BEAMS OFF ";
|
||||
CM_ SG_ 250 LKAS_LANE_LINES "9 = LEFT CAUTION, 11 = VERY LEFT CAUTION 10 = RIGHT CAUTION, 14 = VERY RIGHT, 4 = NO LINES DETECTED, 3 = LINES DETECTED, SYSTEM ACTIVE";
|
||||
CM_ SG_ 464 Driver_Seatbelt_Status "1 unbuckled 0 buckled";
|
||||
CM_ SG_ 792 High_Beam_Lever_Status "1 is high beam, 0 reg";
|
||||
VAL_ 147 Gear_State 4 "D" 2 "N" 1 "R" 0 "P" ;
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
CM_ "IMPORT _stellantis_common_ram_hd_generated.dbc";
|
||||
|
||||
BO_ 545 EPS_3: 8 XXX
|
||||
SG_ DASM_FAULT : 34|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ Activation_Status : 48|3@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Driver_Override : 35|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ Hands_on_Wheel : 51|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 630 LKAS_COMMAND: 8 XXX
|
||||
SG_ STEERING_TORQUE : 10|11@0+ (1,-1024) [0|1] "" XXX
|
||||
SG_ LKAS_CONTROL_BIT : 24|3@1+ (1,0) [0|1] "" XXX
|
||||
SG_ DASM_FAULT : 51|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ COUNTER : 55|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
@@ -10,12 +10,12 @@ include_pattern = re.compile(r'CM_ "IMPORT (.*?)";\n')
|
||||
generated_suffix = '_generated.dbc'
|
||||
|
||||
|
||||
def read_dbc(src_dir, filename):
|
||||
def read_dbc(src_dir: str, filename: str) -> str:
|
||||
with open(os.path.join(src_dir, filename)) as file_in:
|
||||
return file_in.read()
|
||||
|
||||
|
||||
def create_dbc(src_dir, filename, output_path):
|
||||
def create_dbc(src_dir: str, filename: str, output_path: str):
|
||||
dbc_file_in = read_dbc(src_dir, filename)
|
||||
|
||||
includes = include_pattern.findall(dbc_file_in)
|
||||
@@ -39,7 +39,7 @@ def create_dbc(src_dir, filename, output_path):
|
||||
dbc_file_out.write(core_dbc)
|
||||
|
||||
|
||||
def create_all(output_path):
|
||||
def create_all(output_path: str):
|
||||
# clear out old DBCs
|
||||
for f in glob.glob(f"{output_path}/*{generated_suffix}"):
|
||||
os.remove(f)
|
||||
|
||||
@@ -71,8 +71,9 @@ BO_ 201 ECMEngineStatus: 8 K20_ECM
|
||||
SG_ EngineTPS : 39|8@0+ (0.392156863,0) [0|100.000000065] "%" NEO
|
||||
SG_ EngineRPM : 15|16@0+ (0.25,0) [0|0] "RPM" NEO
|
||||
SG_ CruiseMainOn : 29|1@0+ (1,0) [0|1] "" NEO
|
||||
SG_ Brake_Pressed : 40|1@0+ (1,0) [0|1] "" NEO
|
||||
SG_ BrakePressed : 40|1@0+ (1,0) [0|1] "" NEO
|
||||
SG_ Standstill : 2|1@0+ (1,0) [0|1] "" NEO
|
||||
SG_ CruiseActive : 31|2@0+ (1,0) [0|3] "" NEO
|
||||
|
||||
BO_ 209 EBCMBrakePedalSensors: 7 K17_EBCM
|
||||
SG_ Counter1 : 7|2@0+ (1,0) [0|3] "" XXX
|
||||
@@ -83,6 +84,7 @@ BO_ 209 EBCMBrakePedalSensors: 7 K17_EBCM
|
||||
SG_ BrakeNormalized2 : 47|8@0- (-1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 241 EBCMBrakePedalPosition: 6 K17_EBCM
|
||||
SG_ BrakePressed : 1|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ BrakePedalPosition : 15|8@0+ (1,0) [0|255] "" NEO
|
||||
|
||||
BO_ 298 BCMDoorBeltStatus: 8 K9_BCM
|
||||
@@ -122,6 +124,8 @@ BO_ 388 PSCMStatus: 8 K43_PSCM
|
||||
SG_ LKADriverAppldTrq : 50|11@0- (0.01,0) [-10.24|10.23] "Nm" NEO
|
||||
SG_ LKATorqueDelivered : 18|11@0- (0.01,0) [0|1] "" NEO
|
||||
SG_ LKATotalTorqueDelivered : 2|11@0- (0.01,0) [-10.24|10.23] "Nm" NEO
|
||||
SG_ RollingCounter : 38|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ PSCMStatusChecksum : 33|10@0+ (1,0) [0|1023] "" XXX
|
||||
|
||||
BO_ 417 AcceleratorPedal: 7 XXX
|
||||
SG_ AcceleratorPedal : 55|8@0+ (1,0) [0|0] "" NEO
|
||||
@@ -136,8 +140,11 @@ BO_ 452 AcceleratorPedal2: 8 XXX
|
||||
BO_ 481 ASCMSteeringButton: 7 K124_ASCM
|
||||
SG_ DistanceButton : 22|1@0+ (1,0) [0|0] "" NEO
|
||||
SG_ LKAButton : 23|1@0+ (1,0) [0|0] "" NEO
|
||||
SG_ ACCAlwaysOne : 24|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ ACCButtons : 46|3@0+ (1,0) [0|0] "" NEO
|
||||
SG_ DriveModeButton : 39|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ RollingCounter : 33|2@0+ (1,0) [0|3] "" NEO
|
||||
SG_ SteeringButtonChecksum : 43|12@0+ (1,0) [0|255] "" NEO
|
||||
|
||||
BO_ 485 PSCMSteeringAngle: 8 K43_PSCM
|
||||
SG_ SteeringWheelAngle : 15|16@0- (0.0625,0) [-2047|2047] "deg" NEO
|
||||
@@ -161,9 +168,19 @@ BO_ 501 ECMPRDNL2: 8 K20_ECM
|
||||
SG_ PRNDL2 : 27|4@0+ (1,0) [0|255] "" NEO
|
||||
SG_ ManualMode : 41|1@0+ (1,0) [0|1] "" NEO
|
||||
|
||||
BO_ 532 BRAKE_RELATED: 6 XXX
|
||||
SG_ UserBrakePressure : 0|9@0+ (1,0) [0|511] "" XXX
|
||||
|
||||
BO_ 560 EPBStatus: 8 EPB
|
||||
SG_ EPBClosed : 12|1@0+ (1,0) [0|1] "" NEO
|
||||
|
||||
BO_ 562 EBCMFrictionBrakeStatus: 8 XXX
|
||||
SG_ FrictionBrakeUnavailable : 46|1@0+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 608 SPEED_RELATED: 8 XXX
|
||||
SG_ RollingCounter : 5|2@0+ (1,0) [0|0] "" XXX
|
||||
SG_ ClusterSpeed : 31|8@0+ (1,0) [0|0] "" XXX
|
||||
|
||||
BO_ 711 BECMBatteryVoltageCurrent: 6 K17_EBCM
|
||||
SG_ HVBatteryVoltage : 31|12@0+ (0.125,0) [0|511.875] "V" NEO
|
||||
SG_ HVBatteryCurrent : 12|13@0- (0.15,0) [-614.4|614.25] "A" NEO
|
||||
@@ -181,6 +198,9 @@ BO_ 715 ASCMGasRegenCmd: 8 K124_ASCM
|
||||
|
||||
BO_ 717 ASCM_2CD: 5 K124_ASCM
|
||||
|
||||
BO_ 761 BRAKE_RELATED_2: 7 XXX
|
||||
SG_ UserBrakePressure2 : 47|9@0+ (1,0) [0|511] "" XXX
|
||||
|
||||
BO_ 789 EBCMFrictionBrakeCmd: 5 K124_ASCM
|
||||
SG_ RollingCounter : 33|2@0+ (1,0) [0|0] "" NEO
|
||||
SG_ FrictionBrakeMode : 7|4@0+ (1,0) [0|0] "" NEO
|
||||
@@ -189,36 +209,47 @@ BO_ 789 EBCMFrictionBrakeCmd: 5 K124_ASCM
|
||||
|
||||
BO_ 800 AEBCmd: 6 K124_ASCM
|
||||
SG_ RollingCounter : 5|2@0+ (1,0) [0|3] "" NEO
|
||||
SG_ Checksum : 27|20@0+ (1,0) [0|2047] "" NEO
|
||||
SG_ BrakeCmdActive : 3|1@1+ (1,0) [0|1] "" NEO
|
||||
SG_ BrakingForce : 2|7@0+ (1,0) [0|7] "" NEO
|
||||
SG_ AEBChecksum : 27|20@0+ (1,0) [0|0] "" NEO
|
||||
SG_ AEBCmdActive : 3|1@1+ (1,0) [0|1] "" NEO
|
||||
SG_ AEBCmd : 2|11@0+ (1,0) [0|0] "" NEO
|
||||
SG_ AEBCmd2 : 23|8@0+ (1,0) [0|0] "" NEO
|
||||
|
||||
BO_ 810 TCICOnStarGPSPosition: 8 K73_TCIC
|
||||
SG_ GPSLongitude : 39|32@0+ (1,-2147483648) [0|0] "milliarcsecond" NEO
|
||||
SG_ GPSLatitude : 7|32@0+ (1,0) [0|0] "milliarcsecond" NEO
|
||||
|
||||
BO_ 840 EBCMWheelSpdFront: 4 K17_EBCM
|
||||
BO_ 840 EBCMWheelSpdFront: 5 K17_EBCM
|
||||
SG_ FLWheelSpd : 7|16@0+ (0.0311,0) [0|255] "km/h" NEO
|
||||
SG_ FRWheelSpd : 23|16@0+ (0.0311,0) [0|255] "km/h" NEO
|
||||
|
||||
BO_ 842 EBCMWheelSpdRear: 5 K17_EBCM
|
||||
SG_ RLWheelSpd : 7|16@0+ (0.0311,0) [0|255] "km/h" NEO
|
||||
SG_ RRWheelSpd : 23|16@0+ (0.0311,0) [0|255] "km/h" NEO
|
||||
SG_ MovingForward : 32|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ MovingBackward : 33|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ MovingForward2 : 35|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ MovingBackward2 : 36|1@0+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 869 ASCM_365: 4 K124_ASCM
|
||||
|
||||
BO_ 880 ASCMActiveCruiseControlStatus: 6 K124_ASCM
|
||||
SG_ ACCCruiseState : 8|3@1+ (1,0) [0|7] "" XXX
|
||||
SG_ ACCLeadCar : 44|1@0+ (1,0) [0|0] "" Vector__XXX
|
||||
SG_ ACCAlwaysOne2 : 32|1@0+ (1,0) [0|0] "" Vector__XXX
|
||||
SG_ ACCAlwaysOne : 0|1@0+ (1,0) [0|0] "" Vector__XXX
|
||||
SG_ ACCSpeedSetpoint : 19|12@0+ (1,0) [0|0] "km/h" NEO
|
||||
SG_ ACCSpeedSetpoint : 19|12@0+ (0.0625,0) [0|255.9375] "km/h" NEO
|
||||
SG_ ACCGapLevel : 21|2@0+ (1,0) [0|0] "" NEO
|
||||
SG_ ACCResumeButton : 1|1@0+ (1,0) [0|0] "" NEO
|
||||
SG_ ACCCmdActive : 23|1@0+ (1,0) [0|0] "" NEO
|
||||
SG_ FCWAlert : 41|2@0+ (1,0) [0|3] "" XXX
|
||||
|
||||
BO_ 977 ECMCruiseControl: 8 K20_ECM
|
||||
SG_ CruiseActive : 39|1@0+ (1,0) [0|3] "" NEO
|
||||
SG_ CruiseSetSpeed : 19|12@0+ (0.0625,0) [0|0] "km/h" NEO
|
||||
|
||||
BO_ 1001 ECMVehicleSpeed: 8 K20_ECM
|
||||
SG_ VehicleSpeed : 7|16@0+ (0.01,0) [0|0] "mph" NEO
|
||||
SG_ VehicleSpeedLeft : 39|16@0+ (0.01,0) [0|0] "mph" NEO
|
||||
|
||||
BO_ 1033 ASCMKeepAlive: 7 NEO
|
||||
SG_ ASCMKeepAliveAllZero : 7|56@0+ (1,0) [0|0] "" NEO
|
||||
@@ -258,11 +289,18 @@ CM_ BU_ K114B_HPCM "Hybrid Powertrain Control Module";
|
||||
CM_ BU_ NEO "Comma NEO";
|
||||
CM_ BU_ K124_ASCM "Active Safety Control Module";
|
||||
CM_ SG_ 381 MSG17D_AccPower "Need to investigate";
|
||||
CM_ BO_ 190 "Length varies from 6 to 8 bytes by car";
|
||||
CM_ SG_ 190 GasPedalAndAcc "ACC baseline is 62";
|
||||
CM_ SG_ 352 Ignition "Non-zero when ignition is on";
|
||||
CM_ SG_ 451 GasPedalAndAcc2 "ACC baseline is 62";
|
||||
CM_ SG_ 481 ACCAlwaysOne "Usually 1 if the car is equipped with ACC";
|
||||
CM_ SG_ 562 FrictionBrakeUnavailable "1 when ACC brake control is unavailable. Stays high if brake command messages are blocked for a period of time";
|
||||
CM_ SG_ 497 Ignition "Describes ignition + preconditioning mode, noisy";
|
||||
CM_ SG_ 501 PRNDL2 "When ManualMode is Active, Value is 13=L1 12=L2 11=L3 ... 4=L10";
|
||||
CM_ SG_ 532 UserBrakePressure "can be lower than other brake position signals when the brakes are pre-filled from ACC braking and the user presses on the brakes. user-only pressure?";
|
||||
CM_ SG_ 608 ClusterSpeed "Cluster speed signal seems to match dash on newer cars, but is a lower rate and can be noisier.";
|
||||
CM_ SG_ 761 UserBrakePressure2 "Similar to BRAKE_RELATED->UserBrakePressure";
|
||||
CM_ SG_ 1001 VehicleSpeed "Spinouts show here on 2wd. Speed derived from right front wheel (drive tire)";
|
||||
BA_DEF_ "UseGMParameterIDs" INT 0 0;
|
||||
BA_DEF_ "ProtocolType" STRING ;
|
||||
BA_DEF_ "BusType" STRING ;
|
||||
@@ -280,6 +318,7 @@ VAL_ 452 CruiseState 4 "Standstill" 3 "Faulted" 1 "Active" 0 "Off" ;
|
||||
VAL_ 309 PRNDL 3 "R" 2 "D" 1 "N" 0 "P" ;
|
||||
VAL_ 309 ESPButton 1 "Active" 0 "Inactive" ;
|
||||
VAL_ 384 LKASteeringCmdActive 1 "Active" 0 "Inactive" ;
|
||||
VAL_ 880 ACCCruiseState 2 "Adaptive" 3 "Adaptive" 4 "Non-adaptive" 5 "Non-adaptive" ;
|
||||
VAL_ 880 ACCLeadCar 1 "Present" 0 "Not Present" ;
|
||||
VAL_ 880 ACCGapLevel 3 "Far" 2 "Med" 1 "Near" 0 "Inactive" ;
|
||||
VAL_ 880 ACCResumeButton 1 "Pressed" 0 "Depressed" ;
|
||||
|
||||
@@ -21,7 +21,8 @@ BO_ 432 STANDSTILL: 7 VSA
|
||||
|
||||
BO_ 456 ACC_CONTROL: 8 XXX
|
||||
SG_ ACCEL_COMMAND : 7|12@0- (0.01,0) [0|0] "m/s^2" XXX
|
||||
SG_ CONTROL_OFF : 8|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ IDLESTOP_ALLOW : 8|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ STANDSTILL : 9|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ CONTROL_ON : 10|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ BOH : 23|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ AEB_STATUS : 33|1@1+ (1,0) [0|7] "" XXX
|
||||
@@ -69,9 +70,8 @@ BO_ 254913108 LKAS_HUD_2: 8 ADAS
|
||||
SG_ COUNTER : 61|2@0+ (1,0) [0|3] "" XXX
|
||||
SG_ CHECKSUM : 59|4@0+ (1,0) [0|15] "" XXX
|
||||
|
||||
CM_ BO 456 "not sure which bit enables cruise";
|
||||
CM_ SG_ 456 ACCEL_COMMAND "seems to be m/s^2? need to verify";
|
||||
CM_ SG_ 456 BOH "could be cruise standstill?";
|
||||
CM_ SG_ 456 IDLESTOP_ALLOW "allows car to turn off engine at a standstill";
|
||||
CM_ SG_ 456 STANDSTILL "set to 1 when camera requests -4.0 m/s^2";
|
||||
|
||||
VAL_ 401 GEAR_SHIFTER 32 "L" 16 "S" 8 "D" 4 "N" 2 "R" 1 "P";
|
||||
VAL_ 401 GEAR 7 "L" 10 "S" 4 "D" 3 "N" 2 "R" 1 "P";
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
hyundai_kia_mando_front_radar.dbc
|
||||
hyundai_kia_mando_corner_radar.dbc
|
||||
+170
@@ -0,0 +1,170 @@
|
||||
#!/usr/bin/env python3
|
||||
from collections import namedtuple
|
||||
import os
|
||||
|
||||
if __name__ == "__main__":
|
||||
dbc_name = os.path.basename(__file__).replace(".py", ".dbc")
|
||||
hyundai_path = os.path.dirname(os.path.realpath(__file__))
|
||||
with open(os.path.join(hyundai_path, dbc_name), "w") as f:
|
||||
f.write("""
|
||||
VERSION ""
|
||||
|
||||
|
||||
NS_ :
|
||||
NS_DESC_
|
||||
CM_
|
||||
BA_DEF_
|
||||
BA_
|
||||
VAL_
|
||||
CAT_DEF_
|
||||
CAT_
|
||||
FILTER
|
||||
BA_DEF_DEF_
|
||||
EV_DATA_
|
||||
ENVVAR_DATA_
|
||||
SGTYPE_
|
||||
SGTYPE_VAL_
|
||||
BA_DEF_SGTYPE_
|
||||
BA_SGTYPE_
|
||||
SIG_TYPE_REF_
|
||||
VAL_TABLE_
|
||||
SIG_GROUP_
|
||||
SIG_VALTYPE_
|
||||
SIGTYPE_VALTYPE_
|
||||
BO_TX_BU_
|
||||
BA_DEF_REL_
|
||||
BA_REL_
|
||||
BA_DEF_DEF_REL_
|
||||
BU_SG_REL_
|
||||
BU_EV_REL_
|
||||
BU_BO_REL_
|
||||
SG_MUL_VAL_
|
||||
|
||||
BS_:
|
||||
|
||||
BU_: XXX
|
||||
""")
|
||||
|
||||
for a in [0x100, 0x200]:
|
||||
f.write(f"""
|
||||
BO_ {a} RADAR_POINTS_METADATA_0x{a:x}: 64 RADAR
|
||||
SG_ SIGNAL_1 : 0|32@1+ (1,0) [0|255] "" XXX
|
||||
SG_ SIGNAL_2 : 32|32@1+ (1,0) [0|65535] "" XXX
|
||||
SG_ SIGNAL_3 : 64|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ SIGNAL_4 : 68|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ RADAR_POINT_COUNT : 72|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ SIGNAL_6 : 80|7@1+ (0.015625,0) [0|3] "" XXX
|
||||
SG_ SIGNAL_7 : 87|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ SIGNAL_8 : 88|3@1+ (1,0) [0|7] "" XXX
|
||||
SG_ SIGNAL_9 : 91|5@1+ (0.0625,0) [0|31] "" XXX
|
||||
SG_ SIGNAL_10 : 96|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ SIGNAL_11 : 104|7@1+ (0.015625,0) [0|127] "" XXX
|
||||
SG_ SIGNAL_12 : 111|2@1+ (1,0) [0|65535] "" XXX
|
||||
SG_ SIGNAL_13 : 113|7@1+ (0.015625,0) [0|127] "" XXX
|
||||
SG_ SIGNAL_14 : 120|7@1+ (0.015625,0) [0|127] "" XXX
|
||||
SG_ SIGNAL_15 : 127|3@1+ (1,0) [0|3] "" XXX
|
||||
SG_ SIGNAL_16 : 130|2@1+ (1,0) [0|3] "" XXX
|
||||
SG_ SIGNAL_17 : 133|2@0+ (1,0) [0|3] "" XXX
|
||||
SG_ SIGNAL_18 : 134|1@0+ (1,0) [0|3] "" XXX
|
||||
SG_ SIGNAL_19 : 135|3@1+ (1,0) [0|3] "" XXX
|
||||
SG_ SIGNAL_20 : 138|8@1+ (1,0) [0|63] "" XXX
|
||||
SG_ SIGNAL_21 : 146|2@1+ (1,0) [0|3] "" XXX
|
||||
SG_ SIGNAL_22 : 148|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ SIGNAL_23 : 149|4@1+ (1,0) [0|7] "" XXX
|
||||
SG_ SIGNAL_24 : 153|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ SIGNAL_25 : 154|2@1+ (1,0) [0|3] "" XXX
|
||||
SG_ SIGNAL_26 : 157|2@0+ (1,0) [0|3] "" XXX
|
||||
SG_ SIGNAL_27 : 158|7@1+ (0.125,0) [0|3] "" XXX
|
||||
SG_ SIGNAL_28 : 165|7@1+ (0.015625,0) [0|31] "" XXX
|
||||
SG_ SIGNAL_29 : 172|7@1+ (0.125,0) [0|3] "" XXX
|
||||
SG_ SIGNAL_30 : 179|7@1+ (0.015625,0) [0|1] "" XXX
|
||||
SG_ SIGNAL_31 : 186|4@1+ (1,0) [0|7] "" XXX
|
||||
SG_ SIGNAL_32 : 190|14@1+ (0.015625,0) [0|15] "" XXX
|
||||
SG_ SIGNAL_33 : 204|11@1+ (0.03125,0) [0|8191] "" XXX
|
||||
SG_ SIGNAL_34 : 215|2@1+ (1,0) [0|3] "" XXX
|
||||
SG_ SIGNAL_35 : 217|7@1+ (1,0) [0|127] "" XXX
|
||||
SG_ SIGNAL_36 : 224|6@1+ (1,0) [0|63] "" XXX
|
||||
SG_ SIGNAL_37 : 230|6@1+ (0.2,0) [0|31] "" XXX
|
||||
SG_ SIGNAL_38 : 236|6@1+ (0.2,0) [0|7] "" XXX
|
||||
SG_ SIGNAL_39 : 242|8@1+ (1,-90) [0|255] "" XXX
|
||||
SG_ SIGNAL_40 : 250|6@1+ (1,0) [0|63] "" XXX
|
||||
SG_ SIGNAL_41 : 256|8@1+ (0.25,0) [0|255] "" XXX
|
||||
SG_ SIGNAL_42 : 264|3@1+ (1,0) [0|3] "" XXX
|
||||
SG_ SIGNAL_43 : 267|12@1+ (0.01,0) [0|31] "" XXX
|
||||
SG_ SIGNAL_44 : 279|32@1+ (1,0) [0|63] "" XXX
|
||||
SG_ SIGNAL_45 : 311|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ SIGNAL_46 : 312|2@1+ (1,0) [0|3] "" XXX
|
||||
SG_ SIGNAL_47 : 314|32@1+ (1,0) [0|255] "" XXX
|
||||
SG_ SIGNAL_48 : 346|6@1+ (1,0) [0|63] "" XXX
|
||||
SG_ SIGNAL_49 : 352|7@1+ (0.25,0) [0|127] "" XXX
|
||||
SG_ SIGNAL_50 : 359|6@1+ (0.03125,0) [0|31] "" XXX
|
||||
SG_ SIGNAL_51 : 365|10@1+ (0.125,0) [0|3] "" XXX
|
||||
SG_ SIGNAL_52 : 375|10@1+ (0.125,0) [0|63] "" XXX
|
||||
SG_ SIGNAL_53 : 385|7@1+ (1,0) [0|127] "" XXX
|
||||
SG_ SIGNAL_54 : 392|7@1+ (1,0) [0|127] "" XXX
|
||||
SG_ SIGNAL_55 : 399|8@1+ (0.00390625,0) [0|31] "" XXX
|
||||
SG_ SIGNAL_56 : 407|10@1+ (0.125,0) [0|63] "" XXX
|
||||
SG_ SIGNAL_57 : 417|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ SIGNAL_58 : 418|1@1+ (1,0) [0|3] "" XXX
|
||||
""")
|
||||
|
||||
# radar points are sent at 20 Hz in groups of 1 to 13 messages
|
||||
# each message has 5 radar points for a total of 65 points max
|
||||
# each radar point is 101 bits so the alignment is not consistent
|
||||
RadarPointSignal = namedtuple("RadarPointSignal", ["name", "start", "length", "scale", "offset"])
|
||||
radar_point_signals = (
|
||||
RadarPointSignal("DISTANCE", 7, 14, 1/64, 0),
|
||||
RadarPointSignal("", 21, 2, 1, 0),
|
||||
RadarPointSignal("", 23, 8, 1/512, -127/512),
|
||||
RadarPointSignal("REL_VELOCITY", 31, 13, 1/32, -66),
|
||||
RadarPointSignal("", 44, 2, 1, 0),
|
||||
RadarPointSignal("", 46, 2, 1, 0),
|
||||
RadarPointSignal("AZIMUTH", 48, 12, 1/512, -2047/512),
|
||||
RadarPointSignal("", 60, 2, 1, 0),
|
||||
RadarPointSignal("", 62, 1, 1, 0),
|
||||
RadarPointSignal("", 63, 7, 1, 0),
|
||||
RadarPointSignal("", 70, 1, 1, 0),
|
||||
RadarPointSignal("", 71, 6, 1, 0),
|
||||
RadarPointSignal("", 77, 2, 1, 0),
|
||||
RadarPointSignal("", 79, 8, 1/512, -127/512),
|
||||
RadarPointSignal("", 87, 1, 1, 0),
|
||||
RadarPointSignal("", 88, 2, 1, 0),
|
||||
RadarPointSignal("", 90, 3, 1, 0),
|
||||
# last 15 bits are controlled by LAYOUT_ID (seems to always zero, so below is layout 0)
|
||||
RadarPointSignal("", 93, 6, 1, 0),
|
||||
RadarPointSignal("", 99, 8, 1, 0),
|
||||
RadarPointSignal("", 107, 1, 1, 0),
|
||||
)
|
||||
radar_point_bit_count = sum([s.length for s in radar_point_signals])
|
||||
|
||||
for a in [0x101, 0x201]:
|
||||
f.write(f"""
|
||||
BO_ {a} RADAR_POINTS_0x{a:x}: 64 RADAR
|
||||
SG_ MESSAGE_ID : 0|5@1+ (1,0) [0|31] "" XXX
|
||||
SG_ LAYOUT_ID : 5|2@1+ (1,0) [0|3] "" XXX
|
||||
""")
|
||||
bit_idx = radar_point_signals[0].start
|
||||
for i in range(5):
|
||||
signal_idx = 1
|
||||
for sig in radar_point_signals:
|
||||
if sig.name:
|
||||
sig_name = f"POINT_{i+1}_{sig.name}"
|
||||
else:
|
||||
sig_name = f"POINT_{i+1}_SIGNAL_{signal_idx}"
|
||||
signal_idx += 1
|
||||
|
||||
sig_start_idx = i * radar_point_bit_count + sig.start
|
||||
assert bit_idx == sig_start_idx, f"signal overlap or gap!!! {bit_idx} != {sig_start_idx}"
|
||||
min_val = round(sig.offset, 10)
|
||||
max_val = round((2**sig.length - 1) * sig.scale + sig.offset, 10)
|
||||
|
||||
f.write(f" SG_ {sig_name} : {sig_start_idx}|{sig.length}@1+ ({sig.scale},{sig.offset}) [{min_val}|{max_val}] \"\" XXX\n")
|
||||
bit_idx += sig.length
|
||||
|
||||
# checksum is across a group of 0x100/200 and 0x101/201 messages (no checksums inside the other messages)
|
||||
# ccitt_crc16 = mkCrcFun(0x11021, initCrc=0xffff, xorOut=0x0000, rev=False)
|
||||
for a in [0x104, 0x204]:
|
||||
f.write(f"""
|
||||
BO_ {a} RADAR_POINTS_CHECKSUM_0x{a:x}: 3 RADAR
|
||||
SG_ CRC16 : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||
""")
|
||||
@@ -0,0 +1,61 @@
|
||||
#!/usr/bin/env python3
|
||||
import os
|
||||
|
||||
if __name__ == "__main__":
|
||||
dbc_name = os.path.basename(__file__).replace(".py", ".dbc")
|
||||
hyundai_path = os.path.dirname(os.path.realpath(__file__))
|
||||
with open(os.path.join(hyundai_path, dbc_name), "w") as f:
|
||||
f.write("""
|
||||
VERSION ""
|
||||
|
||||
|
||||
NS_ :
|
||||
NS_DESC_
|
||||
CM_
|
||||
BA_DEF_
|
||||
BA_
|
||||
VAL_
|
||||
CAT_DEF_
|
||||
CAT_
|
||||
FILTER
|
||||
BA_DEF_DEF_
|
||||
EV_DATA_
|
||||
ENVVAR_DATA_
|
||||
SGTYPE_
|
||||
SGTYPE_VAL_
|
||||
BA_DEF_SGTYPE_
|
||||
BA_SGTYPE_
|
||||
SIG_TYPE_REF_
|
||||
VAL_TABLE_
|
||||
SIG_GROUP_
|
||||
SIG_VALTYPE_
|
||||
SIGTYPE_VALTYPE_
|
||||
BO_TX_BU_
|
||||
BA_DEF_REL_
|
||||
BA_REL_
|
||||
BA_DEF_DEF_REL_
|
||||
BU_SG_REL_
|
||||
BU_EV_REL_
|
||||
BU_BO_REL_
|
||||
SG_MUL_VAL_
|
||||
|
||||
BS_:
|
||||
|
||||
BU_: XXX
|
||||
""")
|
||||
|
||||
# note: 0x501/0x502 seem to be special in 0x5XX range
|
||||
for a in range(0x500, 0x500 + 32):
|
||||
f.write(f"""
|
||||
BO_ {a} RADAR_TRACK_{a:x}: 8 RADAR
|
||||
SG_ UNKNOWN_1 : 7|8@0- (1,0) [-128|127] "" XXX
|
||||
SG_ AZIMUTH : 12|10@0- (0.2,0) [-102.4|102.2] "" XXX
|
||||
SG_ STATE : 15|3@0+ (1,0) [0|7] "" XXX
|
||||
SG_ LONG_DIST : 18|11@0+ (0.1,0) [0|204.7] "" XXX
|
||||
SG_ REL_ACCEL : 33|10@0- (0.02,0) [-10.24|10.22] "" XXX
|
||||
SG_ ZEROS : 37|4@0+ (1,0) [0|255] "" XXX
|
||||
SG_ COUNTER : 38|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ STATE_3 : 39|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ REL_SPEED : 53|14@0- (0.01,0) [-81.92|81.92] "" XXX
|
||||
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
||||
""")
|
||||
@@ -96,7 +96,7 @@ BO_ 281 Steering_Torque: 8 XXX
|
||||
SG_ Steer_Error_2 : 28|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Steer_Warning : 29|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Steering_Angle : 32|16@1- (-0.0217,0) [-600|600] "" X
|
||||
SG_ Steer_Torque_Output : 48|11@1- (-1,0) [-1000|1000] "" XXX
|
||||
SG_ Steer_Torque_Output : 48|11@1- (-10,0) [-1000|1000] "" XXX
|
||||
|
||||
BO_ 312 Brake_Pressure_L_R: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
@@ -116,9 +116,9 @@ BO_ 313 Brake_Pedal: 8 XXX
|
||||
SG_ Signal4 : 48|16@1+ (1,0) [0|65535] "" XXX
|
||||
|
||||
BO_ 372 Engine_Stop_Start: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ STOP_START_STATE : 39|2@0+ (1,0) [0|3] "" XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Counter : 8|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ STOP_START_STATE : 39|2@0+ (1,0) [0|3] "" XXX
|
||||
|
||||
BO_ 290 ES_LKAS: 8 XXX
|
||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||
@@ -205,7 +205,7 @@ BO_ 801 ES_DashStatus: 8 XXX
|
||||
SG_ Brake_Lights : 51|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Car_Follow : 52|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Signal7 : 53|3@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Far_Distance : 56|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Far_Distance : 56|4@1+ (5,0) [0|75] "m" XXX
|
||||
SG_ Cruise_State : 60|4@1+ (1,0) [0|15] "" XXX
|
||||
|
||||
BO_ 802 ES_LKAS_State: 8 XXX
|
||||
|
||||
@@ -139,7 +139,7 @@ BO_ 353 ES_Distance: 8 XXX
|
||||
SG_ Distance_Swap : 21|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Standstill : 22|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Signal3 : 23|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Close_Distance : 24|8@1+ (0.0196,0) [0|255] "m" XXX
|
||||
SG_ Close_Distance : 24|8@1+ (0.019607,0) [0|5] "m" XXX
|
||||
SG_ Signal4 : 32|9@1+ (1,0) [0|255] "" XXX
|
||||
SG_ Standstill_2 : 41|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Cruise_Fault : 42|1@1+ (1,0) [0|1] "" XXX
|
||||
|
||||
@@ -8,7 +8,7 @@ BO_ 355 ES_DashStatus: 8 XXX
|
||||
SG_ COUNTER : 40|3@1+ (1,0) [0|7] "" XXX
|
||||
SG_ Brake : 43|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Car_Follow : 54|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Far_Distance : 56|4@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Far_Distance : 56|4@1+ (5,0) [0|75] "m" XXX
|
||||
|
||||
BO_ 881 Steering_Torque: 8 XXX
|
||||
SG_ Steering_Motor_Flat : 0|10@1+ (32,0) [0|1000] "" XXX
|
||||
|
||||
@@ -19,12 +19,14 @@ BO_ 545 ES_Distance: 8 XXX
|
||||
SG_ Cruise_Throttle : 16|12@1+ (1,0) [0|4095] "" XXX
|
||||
SG_ Signal2 : 28|4@1+ (1,0) [0|15] "" XXX
|
||||
SG_ Car_Follow : 32|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Signal3 : 33|3@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Signal3 : 33|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Cruise_Soft_Disable : 34|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Signal7 : 35|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Cruise_Brake_Active : 36|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Distance_Swap : 37|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Cruise_EPB : 38|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Signal4 : 39|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ Close_Distance : 40|8@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Close_Distance : 40|8@1+ (0.019607,0) [0|5] "m" XXX
|
||||
SG_ Signal5 : 48|8@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Cruise_Cancel : 56|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Cruise_Set : 57|1@1+ (1,0) [0|1] "" XXX
|
||||
@@ -54,6 +56,7 @@ BO_ 576 CruiseControl: 8 XXX
|
||||
CM_ SG_ 545 Cruise_Throttle "RPM-like output signal";
|
||||
CM_ SG_ 545 Cruise_EPB "1 = Electric Parking Brake set";
|
||||
CM_ SG_ 545 Distance_Swap "Switch from Close to Far distance";
|
||||
CM_ SG_ 545 Cruise_Soft_Disable "Eyesight Temporary disable, sets CruiseControl Activated = 0";
|
||||
CM_ SG_ 546 Cruise_RPM "ES RPM output for ECM and TCM";
|
||||
CM_ SG_ 546 Signal3 "0 when cruise_activated = 1";
|
||||
VAL_ 72 Gear 2 "N" 3 "R" 4 "P" 121 "D" 137 "1" 145 "2" 153 "3" 161 "4" 169 "5" 177 "6";
|
||||
|
||||
@@ -16,7 +16,7 @@ BO_ 358 ES_DashStatus: 8 XXX
|
||||
SG_ COUNTER : 37|3@1+ (1,0) [0|7] "" XXX
|
||||
SG_ Steep_Hill_Disengage : 44|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Car_Follow : 46|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Far_Distance : 48|4@1+ (5,0) [0|15] "m" XXX
|
||||
SG_ Far_Distance : 48|4@1+ (5,0) [0|75] "m" XXX
|
||||
|
||||
BO_ 881 Steering_Torque: 8 XXX
|
||||
SG_ Steering_Motor_Flat : 0|10@1+ (32,0) [0|1000] "" XXX
|
||||
|
||||
@@ -16,7 +16,7 @@ BO_ 358 ES_DashStatus: 8 XXX
|
||||
SG_ COUNTER : 37|3@1+ (1,0) [0|7] "" XXX
|
||||
SG_ Steep_Hill_Disengage : 44|1@1+ (1,0) [0|3] "" XXX
|
||||
SG_ Car_Follow : 46|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ Far_Distance : 48|4@1+ (5,0) [0|15] "m" XXX
|
||||
SG_ Far_Distance : 48|4@1+ (5,0) [0|75] "m" XXX
|
||||
|
||||
BO_ 881 Steering_Torque: 8 XXX
|
||||
SG_ Steering_Motor_Flat : 0|10@1+ (32,0) [0|1000] "" XXX
|
||||
|
||||
@@ -11,7 +11,11 @@ def test_generator():
|
||||
|
||||
ignore = [f for f in os.listdir(opendbc_root) if not f.endswith('_generated.dbc')]
|
||||
comp = filecmp.dircmp(opendbc_root, d, ignore=ignore)
|
||||
assert len(comp.diff_files) == 0, f"Different files: {comp.diff_files}"
|
||||
|
||||
err = "Generated DBC mismatch\n\n"
|
||||
err += f"Different files: {comp.diff_files}\n\n"
|
||||
err += "Run opendbc/generator/generator.py to regenerate DBC files."
|
||||
assert len(comp.diff_files) == 0, err
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
@@ -61,7 +61,7 @@ BO_ 180 SPEED: 8 XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 295 GEAR_PACKET_HYBRID: 8 XXX
|
||||
SG_ CAR_MOVEMENT : 39|8@0- (1,0) [0|255] "" XXX
|
||||
SG_ CAR_MOVEMENT : 25|10@0- (1,0) [0|255] "" XXX
|
||||
SG_ COUNTER : 55|8@0+ (1,0) [0|255] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
SG_ GEAR : 47|4@0+ (1,0) [0|15] "" XXX
|
||||
@@ -82,10 +82,12 @@ BO_ 466 PCM_CRUISE: 8 XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 467 PCM_CRUISE_2: 8 XXX
|
||||
SG_ BRAKE_PRESSED : 3|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ PCM_FOLLOW_DISTANCE : 12|2@0+ (1,0) [0|3] "" XXX
|
||||
SG_ MAIN_ON : 15|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ LOW_SPEED_LOCKOUT : 14|2@0+ (1,0) [0|3] "" XXX
|
||||
SG_ MAIN_ON : 15|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ SET_SPEED : 23|8@0+ (1,0) [0|255] "km/h" XXX
|
||||
SG_ ACC_FAULTED : 47|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 552 ACCELEROMETER: 8 XXX
|
||||
@@ -117,7 +119,7 @@ BO_ 614 STEERING_IPAS: 8 IPAS
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 643 PRE_COLLISION: 7 DSU
|
||||
SG_ COUNTER : 7|8@0+ (1,0) [0|255] "" XXX
|
||||
SG_ _COUNTER : 7|8@0+ (1,0) [0|255] "" XXX
|
||||
SG_ SET_ME_X00 : 15|8@0+ (1,0) [0|255] "" XXX
|
||||
SG_ FORCE : 23|16@0- (2,0) [0|255] "N" XXX
|
||||
SG_ SET_ME_X002 : 33|8@0+ (1,0) [0|3] "" XXX
|
||||
@@ -163,6 +165,11 @@ BO_ 835 ACC_CONTROL: 8 DSU
|
||||
BO_ 836 PRE_COLLISION_2: 8 DSU
|
||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|0] "" XXX
|
||||
|
||||
BO_ 865 CLUTCH: 8 XXX
|
||||
SG_ ACC_FAULTED : 32|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ GAS_PEDAL_ALT : 23|8@0+ (0.005,0) [0|1] "" XXX
|
||||
SG_ CLUTCH_RELEASED : 38|1@0+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 869 DSU_CRUISE : 7 DSU
|
||||
SG_ RES_BTN : 3|1@0+ (1,0) [0|0] "" XXX
|
||||
SG_ SET_BTN : 2|1@0+ (1,0) [0|0] "" XXX
|
||||
@@ -176,6 +183,7 @@ BO_ 921 PCM_CRUISE_SM: 8 XXX
|
||||
SG_ MAIN_ON : 4|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ CRUISE_CONTROL_STATE : 11|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ DISTANCE_LINES : 14|2@0+ (1,0) [0|3] "" XXX
|
||||
SG_ TEMP_ACC_FAULTED : 15|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ UI_SET_SPEED : 31|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 951 ESP_CONTROL: 8 ESP
|
||||
@@ -200,7 +208,7 @@ BO_ 1005 REVERSE_CAMERA_STATE: 2 BGM
|
||||
BO_ 1009 PCM_CRUISE_ALT: 8 XXX
|
||||
SG_ MAIN_ON : 13|1@0+ (1,0) [0|3] "" XXX
|
||||
SG_ CRUISE_STATE : 10|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ SET_SPEED : 23|8@0+ (1,0) [0|255] "mph" XXX
|
||||
SG_ UI_SET_SPEED : 23|8@0+ (1,0) [0|255] "mph" XXX
|
||||
|
||||
BO_ 1020 SOLAR_SENSOR: 8 XXX
|
||||
SG_ LUX_SENSOR : 55|13@0+ (1,0) [0|0] "" XXX
|
||||
@@ -324,11 +332,11 @@ BO_ 1552 BODY_CONTROL_STATE_2: 8 XXX
|
||||
SG_ METER_SLIDER_BRIGHTNESS_PCT : 30|7@0+ (1,0) [12|100] "%" XXX
|
||||
SG_ METER_SLIDER_LOW_BRIGHTNESS : 37|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ METER_SLIDER_DIMMED : 38|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ UNITS : 63|3@0+ (1,0) [1|4] "" XXX
|
||||
|
||||
BO_ 1553 UI_SETTING: 8 XXX
|
||||
SG_ UNITS : 26|2@0+ (1,0) [0|3] "" XXX
|
||||
SG_ ODOMETER : 43|20@0+ (1,0) [0|1048575] "" XXX
|
||||
|
||||
SG_ ODOMETER : 39|32@0+ (1,0) [0|1048575] "" XXX
|
||||
BO_ 1556 BLINKERS_STATE: 8 XXX
|
||||
SG_ TURN_SIGNALS : 29|2@0+ (1,0) [0|3] "" XXX
|
||||
SG_ HAZARD_LIGHT : 27|1@0+ (1,0) [0|1] "" XXX
|
||||
@@ -366,6 +374,7 @@ CM_ SG_ 37 STEER_FRACTION "1/15th of the signal STEER_ANGLE, which is 1.5 deg; n
|
||||
CM_ SG_ 37 STEER_RATE "factor is tbd";
|
||||
CM_ SG_ 466 ACCEL_NET "net acceleration produced by the system, given ACCEL_CMD, road grade and other factors";
|
||||
CM_ SG_ 466 CRUISE_STATE "Active state is 8, if standstill is requested will switch to state 11(3 sec timer), after timer is elapsed will switch into state 7(standstill). If plus button was pressed - status 9, minus button pressed - status 10";
|
||||
CM_ SG_ 467 ACC_FAULTED "1 when ACC is faulted and the PCM disallows engagement";
|
||||
CM_ SG_ 467 SET_SPEED "43 km/h are shown as 28 mph, so conversion isn't perfect";
|
||||
CM_ SG_ 467 LOW_SPEED_LOCKOUT "in low speed lockout, system would always disengage below 28mph";
|
||||
CM_ SG_ 560 BRAKE_PRESSED "another brake pressed?";
|
||||
@@ -385,9 +394,14 @@ CM_ SG_ 835 ITS_CONNECT_LEAD "Displayed when lead car is capable of ITS Connect"
|
||||
CM_ SG_ 835 ALLOW_LONG_PRESS "Enable Toyota's factory set speed increment behaviour, available on both metrics cars and imperial unit cars";
|
||||
CM_ SG_ 835 PERMIT_BRAKING "Original ACC has this going high when a car in front is detected. In openpilot and before the PERMIT_BRAKING name, this was 'SET_ME_1' and is hardcoded to be high. Unsure if only informational or has an effect though existing usage in openpilot is to always set it to 1. Originally 'PMTBRKG' in the leaked toyota_2017_ref_pt.dbc file and name expansion speculated to be PerMiT BRaKinG.";
|
||||
CM_ SG_ 835 ACCEL_CMD_ALT "Copy of main ACCEL_CMD, but across 8 bits instead of 16 bits like ACCEL_CMD. Unsure if only informational or has an effect. Likely informational as existing openpilot sets this to 0 and no loss of functionality observed. Originally 'AT_RAW' in leaked toyota_2017_ref_pt.dbc file.";
|
||||
CM_ SG_ 865 GAS_PEDAL_ALT "copy of main GAS_PEDAL. Both use 8 bits. Might indicate that this message is for pedals.";
|
||||
CM_ SG_ 865 CLUTCH_RELEASED "boolean of clutch for 6MT.";
|
||||
CM_ SG_ 865 ACC_FAULTED "1 when ACC is faulted and the PCM disallows engagement";
|
||||
CM_ SG_ 921 UI_SET_SPEED "set speed shown in the vehicle's UI with the vehicle's unit";
|
||||
CM_ SG_ 921 TEMP_ACC_FAULTED "1 when the UI is displaying or playing fault-related alerts or sounds. Also 1 when pressing main on.";
|
||||
CM_ SG_ 951 BRAKE_LIGHTS_ACC "brake lights when ACC commands decel";
|
||||
CM_ SG_ 1009 SET_SPEED "units seem to be whatever the car is set to";
|
||||
CM_ SG_ 956 GEAR "on 6MT, only R shows.";
|
||||
CM_ SG_ 1009 UI_SET_SPEED "units seem to be whatever the car is set to";
|
||||
CM_ SG_ 1041 PCS_INDICATOR "Pre-Collision System Indicator";
|
||||
CM_ SG_ 1041 PCS_SENSITIVITY "Pre-Collision System Sensitivity";
|
||||
CM_ SG_ 1042 LDA_SA_TOGGLE "LDA Steering Assist Toggle";
|
||||
@@ -420,7 +434,7 @@ CM_ SG_ 1163 OVSPVALL "-5 at start then 2 after 2 seconds";
|
||||
CM_ SG_ 1163 OVSPVALM "-5 at start then 5 after 2 seconds";
|
||||
CM_ SG_ 1163 OVSPVALH "-5 at start then 10 after 2 seconds";
|
||||
CM_ SG_ 1163 TSRSPU "always 1";
|
||||
CM_ SG_ 1552 UI_SPEED "Vehicle's speedometer's display speed after Toyota's offset was applied, uses vehicle's unit";
|
||||
CM_ SG_ 1552 UI_SPEED "Does not appear to match dash";
|
||||
CM_ SG_ 1552 METER_SLIDER_BRIGHTNESS_PCT "Combination display brightness setting, scales from 12 per cent to 100 per cent, reflects combination meter settings only, not linked with headlight state";
|
||||
CM_ SG_ 1552 METER_SLIDER_LOW_BRIGHTNESS "Combination display low brightness mode, also controls footwell lighting";
|
||||
CM_ SG_ 1552 METER_SLIDER_DIMMED "Combination display slider not at max, reflects combination meter settings only, not linked with headlight state";
|
||||
@@ -440,6 +454,7 @@ VAL_ 835 ACC_TYPE 2 "permanent low speed lockout" 1 "ok";
|
||||
VAL_ 835 ACC_MALFUNCTION 1 "faulted" 0 "ok";
|
||||
VAL_ 835 ACC_CUT_IN 1 "CUT-IN Detected" 0 "clear";
|
||||
VAL_ 835 ALLOW_LONG_PRESS 2 "set speed increase by 5 speed units regardless" 1 "set speed increase by 1 speed unit on short press, 5 speed units on long press";
|
||||
VAL_ 865 CLUTCH_RELEASED 0 "clutch pressed any amount" 1 "clutch released"
|
||||
VAL_ 921 CRUISE_CONTROL_STATE 2 "disabled" 11 "hold" 10 "hold_waiting_user_cmd" 6 "enabled" 5 "faulted";
|
||||
VAL_ 956 SPORT_ON 0 "off" 1 "on";
|
||||
VAL_ 956 GEAR 0 "D" 1 "S" 8 "N" 16 "R" 32 "P";
|
||||
@@ -471,6 +486,7 @@ VAL_ 1162 TSGN3 0 "none" 1 "speed sign" 2 "0 unlimited" 7 "unlimited" 16 "highwa
|
||||
VAL_ 1162 SPLSGN3 15 "conditional blank" 4 "wet road" 5 "rain" 0 "none";
|
||||
VAL_ 1552 METER_SLIDER_LOW_BRIGHTNESS 1 "Low brightness mode, footwell lights off" 0 "Normal mode, footwell lights on";
|
||||
VAL_ 1552 METER_SLIDER_DIMMED 1 "Dimmed" 0 "Not Dimmed";
|
||||
VAL_ 1552 UNITS 1 "km (km/L)" 2 "km (L/100km)" 3 "miles (MPG US)" 4 "miles (MPG Imperial)";
|
||||
VAL_ 1553 UNITS 1 "km" 2 "miles";
|
||||
VAL_ 1556 TURN_SIGNALS 3 "none" 2 "right" 1 "left";
|
||||
VAL_ 1592 LOCK_STATUS 0 "locked" 1 "unlocked";
|
||||
|
||||
@@ -11,6 +11,9 @@ BO_ 610 EPS_STATUS: 5 EPS
|
||||
SG_ TYPE : 24|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ CHECKSUM : 39|8@0+ (1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 1178 BRAKE_RELATED: 8 XXX
|
||||
SG_ BRAKE_PRESSED : 48|1@0+ (1,0) [0|1] "" XXX
|
||||
|
||||
CM_ SG_ 548 BRAKE_PRESSURE "seems prop to pedal force";
|
||||
CM_ SG_ 548 BRAKE_POSITION "seems proportional to pedal displacement, unclear the max value of 0x1c8";
|
||||
CM_ SG_ 610 TYPE "seems 1 on Corolla, 0 on all others";
|
||||
|
||||
@@ -8,10 +8,11 @@ BO_ 401 STEERING_LTA: 8 XXX
|
||||
SG_ SETME_X64 : 47|8@0+ (1,0) [0|255] "" XXX
|
||||
SG_ ANGLE : 55|8@0- (0.5,0) [0|255] "" XXX
|
||||
SG_ STEER_ANGLE_CMD : 15|16@0- (0.0573,0) [-540|540] "" XXX
|
||||
SG_ STEER_REQUEST : 25|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ STEER_REQUEST_2 : 25|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ LKA_ACTIVE : 26|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ BIT : 30|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ COUNTER : 6|6@0+ (1,0) [0|255] "" XXX
|
||||
SG_ STEER_REQUEST_2 : 0|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ STEER_REQUEST : 0|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ SETME_X1 : 7|1@0+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 550 BRAKE_MODULE: 8 XXX
|
||||
@@ -38,9 +39,10 @@ CM_ SG_ 401 PERCENTAGE "driver override percentage (0-100), very close to steeri
|
||||
CM_ SG_ 401 SETME_X64 "ramps to 0 smoothly then back on falling edge of STEER_REQUEST if BIT isn't 1";
|
||||
CM_ SG_ 401 ANGLE "angle of car relative to lane center on LTA camera";
|
||||
CM_ SG_ 401 STEER_ANGLE_CMD "desired angle, OEM steers up to 95 degrees, no angle limit but torque will bottom out";
|
||||
CM_ SG_ 401 STEER_REQUEST "enable bit for steering, 1 to steer, 0 to not";
|
||||
CM_ SG_ 401 BIT "has correlation to STEER_REQUEST";
|
||||
CM_ SG_ 401 STEER_REQUEST "enable bit for steering, 1 to steer, 0 to not";
|
||||
CM_ SG_ 401 STEER_REQUEST_2 "enable bit for steering, 1 to steer, 0 to not";
|
||||
CM_ SG_ 401 LKA_ACTIVE "1 when using LTA for LKA";
|
||||
CM_ SG_ 550 BRAKE_PRESSURE "seems prop to pedal force";
|
||||
CM_ SG_ 550 BRAKE_POSITION "seems proportional to pedal displacement, unclear the max value of 0x1c8";
|
||||
CM_ SG_ 610 TYPE "seems 1 on Corolla, 0 on all others";
|
||||
@@ -52,5 +54,5 @@ CM_ SG_ 1014 ADJACENT_ENABLED "when BSM is enabled in settings, this is on along
|
||||
CM_ SG_ 1014 APPROACHING_ENABLED "when BSM is enabled in settings, this is on along with ADJACENT_ENABLED. this controls bsm alert visibility";
|
||||
|
||||
VAL_ 610 IPAS_STATE 5 "override" 3 "enabled" 1 "disabled";
|
||||
VAL_ 610 LKA_STATE 25 "temporary_fault" 17 "permanent_fault" 9 "temporary_fault2" 5 "active" 1 "standby";
|
||||
VAL_ 610 LTA_STATE 25 "temporary_fault" 9 "temporary_fault2" 5 "active" 1 "standby";
|
||||
VAL_ 610 LKA_STATE 25 "temporary_fault" 17 "permanent_fault" 11 "lka_missing_unavailable2" 9 "temporary_fault2" 5 "active" 3 "lka_missing_unavailable" 1 "standby";
|
||||
VAL_ 610 LTA_STATE 25 "temporary_fault" 9 "temporary_fault2" 5 "active" 3 "lta_missing_unavailable" 1 "standby";
|
||||
|
||||
@@ -91,8 +91,9 @@ BO_ 201 ECMEngineStatus: 8 K20_ECM
|
||||
SG_ EngineTPS : 39|8@0+ (0.392156863,0) [0|100.000000065] "%" NEO
|
||||
SG_ EngineRPM : 15|16@0+ (0.25,0) [0|0] "RPM" NEO
|
||||
SG_ CruiseMainOn : 29|1@0+ (1,0) [0|1] "" NEO
|
||||
SG_ Brake_Pressed : 40|1@0+ (1,0) [0|1] "" NEO
|
||||
SG_ BrakePressed : 40|1@0+ (1,0) [0|1] "" NEO
|
||||
SG_ Standstill : 2|1@0+ (1,0) [0|1] "" NEO
|
||||
SG_ CruiseActive : 31|2@0+ (1,0) [0|3] "" NEO
|
||||
|
||||
BO_ 209 EBCMBrakePedalSensors: 7 K17_EBCM
|
||||
SG_ Counter1 : 7|2@0+ (1,0) [0|3] "" XXX
|
||||
@@ -103,6 +104,7 @@ BO_ 209 EBCMBrakePedalSensors: 7 K17_EBCM
|
||||
SG_ BrakeNormalized2 : 47|8@0- (-1,0) [0|255] "" XXX
|
||||
|
||||
BO_ 241 EBCMBrakePedalPosition: 6 K17_EBCM
|
||||
SG_ BrakePressed : 1|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ BrakePedalPosition : 15|8@0+ (1,0) [0|255] "" NEO
|
||||
|
||||
BO_ 298 BCMDoorBeltStatus: 8 K9_BCM
|
||||
@@ -142,6 +144,8 @@ BO_ 388 PSCMStatus: 8 K43_PSCM
|
||||
SG_ LKADriverAppldTrq : 50|11@0- (0.01,0) [-10.24|10.23] "Nm" NEO
|
||||
SG_ LKATorqueDelivered : 18|11@0- (0.01,0) [0|1] "" NEO
|
||||
SG_ LKATotalTorqueDelivered : 2|11@0- (0.01,0) [-10.24|10.23] "Nm" NEO
|
||||
SG_ RollingCounter : 38|4@0+ (1,0) [0|15] "" XXX
|
||||
SG_ PSCMStatusChecksum : 33|10@0+ (1,0) [0|1023] "" XXX
|
||||
|
||||
BO_ 417 AcceleratorPedal: 7 XXX
|
||||
SG_ AcceleratorPedal : 55|8@0+ (1,0) [0|0] "" NEO
|
||||
@@ -156,8 +160,11 @@ BO_ 452 AcceleratorPedal2: 8 XXX
|
||||
BO_ 481 ASCMSteeringButton: 7 K124_ASCM
|
||||
SG_ DistanceButton : 22|1@0+ (1,0) [0|0] "" NEO
|
||||
SG_ LKAButton : 23|1@0+ (1,0) [0|0] "" NEO
|
||||
SG_ ACCAlwaysOne : 24|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ ACCButtons : 46|3@0+ (1,0) [0|0] "" NEO
|
||||
SG_ DriveModeButton : 39|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ RollingCounter : 33|2@0+ (1,0) [0|3] "" NEO
|
||||
SG_ SteeringButtonChecksum : 43|12@0+ (1,0) [0|255] "" NEO
|
||||
|
||||
BO_ 485 PSCMSteeringAngle: 8 K43_PSCM
|
||||
SG_ SteeringWheelAngle : 15|16@0- (0.0625,0) [-2047|2047] "deg" NEO
|
||||
@@ -181,9 +188,19 @@ BO_ 501 ECMPRDNL2: 8 K20_ECM
|
||||
SG_ PRNDL2 : 27|4@0+ (1,0) [0|255] "" NEO
|
||||
SG_ ManualMode : 41|1@0+ (1,0) [0|1] "" NEO
|
||||
|
||||
BO_ 532 BRAKE_RELATED: 6 XXX
|
||||
SG_ UserBrakePressure : 0|9@0+ (1,0) [0|511] "" XXX
|
||||
|
||||
BO_ 560 EPBStatus: 8 EPB
|
||||
SG_ EPBClosed : 12|1@0+ (1,0) [0|1] "" NEO
|
||||
|
||||
BO_ 562 EBCMFrictionBrakeStatus: 8 XXX
|
||||
SG_ FrictionBrakeUnavailable : 46|1@0+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 608 SPEED_RELATED: 8 XXX
|
||||
SG_ RollingCounter : 5|2@0+ (1,0) [0|0] "" XXX
|
||||
SG_ ClusterSpeed : 31|8@0+ (1,0) [0|0] "" XXX
|
||||
|
||||
BO_ 711 BECMBatteryVoltageCurrent: 6 K17_EBCM
|
||||
SG_ HVBatteryVoltage : 31|12@0+ (0.125,0) [0|511.875] "V" NEO
|
||||
SG_ HVBatteryCurrent : 12|13@0- (0.15,0) [-614.4|614.25] "A" NEO
|
||||
@@ -201,6 +218,9 @@ BO_ 715 ASCMGasRegenCmd: 8 K124_ASCM
|
||||
|
||||
BO_ 717 ASCM_2CD: 5 K124_ASCM
|
||||
|
||||
BO_ 761 BRAKE_RELATED_2: 7 XXX
|
||||
SG_ UserBrakePressure2 : 47|9@0+ (1,0) [0|511] "" XXX
|
||||
|
||||
BO_ 789 EBCMFrictionBrakeCmd: 5 K124_ASCM
|
||||
SG_ RollingCounter : 33|2@0+ (1,0) [0|0] "" NEO
|
||||
SG_ FrictionBrakeMode : 7|4@0+ (1,0) [0|0] "" NEO
|
||||
@@ -209,36 +229,47 @@ BO_ 789 EBCMFrictionBrakeCmd: 5 K124_ASCM
|
||||
|
||||
BO_ 800 AEBCmd: 6 K124_ASCM
|
||||
SG_ RollingCounter : 5|2@0+ (1,0) [0|3] "" NEO
|
||||
SG_ Checksum : 27|20@0+ (1,0) [0|2047] "" NEO
|
||||
SG_ BrakeCmdActive : 3|1@1+ (1,0) [0|1] "" NEO
|
||||
SG_ BrakingForce : 2|7@0+ (1,0) [0|7] "" NEO
|
||||
SG_ AEBChecksum : 27|20@0+ (1,0) [0|0] "" NEO
|
||||
SG_ AEBCmdActive : 3|1@1+ (1,0) [0|1] "" NEO
|
||||
SG_ AEBCmd : 2|11@0+ (1,0) [0|0] "" NEO
|
||||
SG_ AEBCmd2 : 23|8@0+ (1,0) [0|0] "" NEO
|
||||
|
||||
BO_ 810 TCICOnStarGPSPosition: 8 K73_TCIC
|
||||
SG_ GPSLongitude : 39|32@0+ (1,-2147483648) [0|0] "milliarcsecond" NEO
|
||||
SG_ GPSLatitude : 7|32@0+ (1,0) [0|0] "milliarcsecond" NEO
|
||||
|
||||
BO_ 840 EBCMWheelSpdFront: 4 K17_EBCM
|
||||
BO_ 840 EBCMWheelSpdFront: 5 K17_EBCM
|
||||
SG_ FLWheelSpd : 7|16@0+ (0.0311,0) [0|255] "km/h" NEO
|
||||
SG_ FRWheelSpd : 23|16@0+ (0.0311,0) [0|255] "km/h" NEO
|
||||
|
||||
BO_ 842 EBCMWheelSpdRear: 5 K17_EBCM
|
||||
SG_ RLWheelSpd : 7|16@0+ (0.0311,0) [0|255] "km/h" NEO
|
||||
SG_ RRWheelSpd : 23|16@0+ (0.0311,0) [0|255] "km/h" NEO
|
||||
SG_ MovingForward : 32|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ MovingBackward : 33|1@0+ (1,0) [0|1] "" XXX
|
||||
SG_ MovingForward2 : 35|1@1+ (1,0) [0|1] "" XXX
|
||||
SG_ MovingBackward2 : 36|1@0+ (1,0) [0|1] "" XXX
|
||||
|
||||
BO_ 869 ASCM_365: 4 K124_ASCM
|
||||
|
||||
BO_ 880 ASCMActiveCruiseControlStatus: 6 K124_ASCM
|
||||
SG_ ACCCruiseState : 8|3@1+ (1,0) [0|7] "" XXX
|
||||
SG_ ACCLeadCar : 44|1@0+ (1,0) [0|0] "" Vector__XXX
|
||||
SG_ ACCAlwaysOne2 : 32|1@0+ (1,0) [0|0] "" Vector__XXX
|
||||
SG_ ACCAlwaysOne : 0|1@0+ (1,0) [0|0] "" Vector__XXX
|
||||
SG_ ACCSpeedSetpoint : 19|12@0+ (1,0) [0|0] "km/h" NEO
|
||||
SG_ ACCSpeedSetpoint : 19|12@0+ (0.0625,0) [0|255.9375] "km/h" NEO
|
||||
SG_ ACCGapLevel : 21|2@0+ (1,0) [0|0] "" NEO
|
||||
SG_ ACCResumeButton : 1|1@0+ (1,0) [0|0] "" NEO
|
||||
SG_ ACCCmdActive : 23|1@0+ (1,0) [0|0] "" NEO
|
||||
SG_ FCWAlert : 41|2@0+ (1,0) [0|3] "" XXX
|
||||
|
||||
BO_ 977 ECMCruiseControl: 8 K20_ECM
|
||||
SG_ CruiseActive : 39|1@0+ (1,0) [0|3] "" NEO
|
||||
SG_ CruiseSetSpeed : 19|12@0+ (0.0625,0) [0|0] "km/h" NEO
|
||||
|
||||
BO_ 1001 ECMVehicleSpeed: 8 K20_ECM
|
||||
SG_ VehicleSpeed : 7|16@0+ (0.01,0) [0|0] "mph" NEO
|
||||
SG_ VehicleSpeedLeft : 39|16@0+ (0.01,0) [0|0] "mph" NEO
|
||||
|
||||
BO_ 1033 ASCMKeepAlive: 7 NEO
|
||||
SG_ ASCMKeepAliveAllZero : 7|56@0+ (1,0) [0|0] "" NEO
|
||||
@@ -278,11 +309,18 @@ CM_ BU_ K114B_HPCM "Hybrid Powertrain Control Module";
|
||||
CM_ BU_ NEO "Comma NEO";
|
||||
CM_ BU_ K124_ASCM "Active Safety Control Module";
|
||||
CM_ SG_ 381 MSG17D_AccPower "Need to investigate";
|
||||
CM_ BO_ 190 "Length varies from 6 to 8 bytes by car";
|
||||
CM_ SG_ 190 GasPedalAndAcc "ACC baseline is 62";
|
||||
CM_ SG_ 352 Ignition "Non-zero when ignition is on";
|
||||
CM_ SG_ 451 GasPedalAndAcc2 "ACC baseline is 62";
|
||||
CM_ SG_ 481 ACCAlwaysOne "Usually 1 if the car is equipped with ACC";
|
||||
CM_ SG_ 562 FrictionBrakeUnavailable "1 when ACC brake control is unavailable. Stays high if brake command messages are blocked for a period of time";
|
||||
CM_ SG_ 497 Ignition "Describes ignition + preconditioning mode, noisy";
|
||||
CM_ SG_ 501 PRNDL2 "When ManualMode is Active, Value is 13=L1 12=L2 11=L3 ... 4=L10";
|
||||
CM_ SG_ 532 UserBrakePressure "can be lower than other brake position signals when the brakes are pre-filled from ACC braking and the user presses on the brakes. user-only pressure?";
|
||||
CM_ SG_ 608 ClusterSpeed "Cluster speed signal seems to match dash on newer cars, but is a lower rate and can be noisier.";
|
||||
CM_ SG_ 761 UserBrakePressure2 "Similar to BRAKE_RELATED->UserBrakePressure";
|
||||
CM_ SG_ 1001 VehicleSpeed "Spinouts show here on 2wd. Speed derived from right front wheel (drive tire)";
|
||||
BA_DEF_ "UseGMParameterIDs" INT 0 0;
|
||||
BA_DEF_ "ProtocolType" STRING ;
|
||||
BA_DEF_ "BusType" STRING ;
|
||||
@@ -300,6 +338,7 @@ VAL_ 452 CruiseState 4 "Standstill" 3 "Faulted" 1 "Active" 0 "Off" ;
|
||||
VAL_ 309 PRNDL 3 "R" 2 "D" 1 "N" 0 "P" ;
|
||||
VAL_ 309 ESPButton 1 "Active" 0 "Inactive" ;
|
||||
VAL_ 384 LKASteeringCmdActive 1 "Active" 0 "Inactive" ;
|
||||
VAL_ 880 ACCCruiseState 2 "Adaptive" 3 "Adaptive" 4 "Non-adaptive" 5 "Non-adaptive" ;
|
||||
VAL_ 880 ACCLeadCar 1 "Present" 0 "Not Present" ;
|
||||
VAL_ 880 ACCGapLevel 3 "Far" 2 "Med" 1 "Near" 0 "Inactive" ;
|
||||
VAL_ 880 ACCResumeButton 1 "Pressed" 0 "Depressed" ;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user