mirror of
https://github.com/dragonpilot/dragonpilot.git
synced 2026-08-07 17:25:40 +08:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 58811ffdeb | |||
| 811fd5086f |
+3
-1
@@ -50,6 +50,7 @@ selfdrive/sensord/_sensord
|
|||||||
system/camerad/camerad
|
system/camerad/camerad
|
||||||
system/camerad/test/ae_gray_test
|
system/camerad/test/ae_gray_test
|
||||||
selfdrive/modeld/_modeld
|
selfdrive/modeld/_modeld
|
||||||
|
selfdrive/modeld/_navmodeld
|
||||||
selfdrive/modeld/_dmonitoringmodeld
|
selfdrive/modeld/_dmonitoringmodeld
|
||||||
/src/
|
/src/
|
||||||
|
|
||||||
@@ -82,4 +83,5 @@ build/
|
|||||||
|
|
||||||
!**/.gitkeep
|
!**/.gitkeep
|
||||||
|
|
||||||
*.po~
|
poetry.toml
|
||||||
|
selfdrive/ui/_ui_nonav
|
||||||
|
|||||||
+188
-9
@@ -1,13 +1,64 @@
|
|||||||
dragonpilot 2022.09.07 - EON/C2 Release
|
dragonpilot 2023.02.08 - EON/C2 Release
|
||||||
========================
|
========================
|
||||||
* NEW: Synced to openpilot master 2022.08.29 commits.
|
* Synced with openpilot master 2022.12.14 commits.
|
||||||
* Nuclear Grade driving model.
|
* TWEAK: Ability to disable build-in NAV completely. (reduced CPU/memory load)
|
||||||
* TWEAK: Used fused location service on mapd.
|
* NEW: Lateral Controller Selector
|
||||||
* TWEAK: Used fused location service on gpxd.
|
* Ability to select between DEFAULT / PID / LQR / Torque Controller.
|
||||||
* NEW: Added back auto boot on C2.
|
* NEW: Redesigned UI to match Comma's new UI/UX style.
|
||||||
* NEW: TOYOTA - Door auto lock/unlock. (Thanks to @AlexandreSato and @cydia2020)
|
* 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: Added Camera based Driver Monitor back. (This may overheat your device).
|
* NEW: Toggle to adapt Dynamic End-to-End to Following Dist. Mode.
|
||||||
* NEW: Added a toggle to turn on/off Camera based Driver Monitor.
|
* 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
|
dragonpilot 2022.08.29 - EON/C2 Release
|
||||||
========================
|
========================
|
||||||
@@ -38,6 +89,134 @@ dragonpilot 2022.07.29 - EON/C2 Release
|
|||||||
* FIXED: Fixed Panda Flash/Recovery buttons.
|
* FIXED: Fixed Panda Flash/Recovery buttons.
|
||||||
* FIXED: Included dp_patcher.py execution.
|
* FIXED: Included dp_patcher.py execution.
|
||||||
|
|
||||||
|
dragonpilot 2023.02.08
|
||||||
|
=======================
|
||||||
|
* 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.07.20 - EON/C2 Release
|
dragonpilot 2022.07.20 - EON/C2 Release
|
||||||
========================
|
========================
|
||||||
* FIXED: Included correct camera/path offset values for EON/C2.
|
* FIXED: Included correct camera/path offset values for EON/C2.
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ We have detailed instructions for [how to mount the device in a car](https://com
|
|||||||
Running on PC
|
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.
|
||||||
|
|
||||||
@@ -119,7 +119,7 @@ Directory Structure
|
|||||||
├── debug # Tools to help you debug and do car ports
|
├── debug # Tools to help you debug and do car ports
|
||||||
├── locationd # Precise localization and vehicle parameter estimation
|
├── locationd # Precise localization and vehicle parameter estimation
|
||||||
├── loggerd # Logger and uploader of car data
|
├── 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
|
├── modeld # Driving and monitoring model runners
|
||||||
├── monitoring # Daemon to determine driver attention
|
├── monitoring # Daemon to determine driver attention
|
||||||
├── navd # Turn-by-turn navigation
|
├── navd # Turn-by-turn navigation
|
||||||
|
|||||||
+42
-5
@@ -1,7 +1,44 @@
|
|||||||
Version 0.8.17 (2022-XX-XX)
|
Version 0.9.1 (2022-12-XX)
|
||||||
|
========================
|
||||||
|
* Adjust alert volume using ambient noise level
|
||||||
|
* Removed driver monitoring timer resetting on interaction if face detected and distracted
|
||||||
|
* Chevrolet Bolt EV 2022-23 support thanks to JasonJShuler!
|
||||||
|
* Genesis GV60 2023 support thanks to sunnyhaibin!
|
||||||
|
* Hyundai Tucson 2022-23 support
|
||||||
|
* Kia Sorento Plug-in Hybrid 2022 support thanks to sunnyhaibin!
|
||||||
|
|
||||||
|
Version 0.9.0 (2022-11-21)
|
||||||
========================
|
========================
|
||||||
* New driving model
|
* New driving model
|
||||||
* Internal feature space accuracy increased tenfold during training, this makes the model dramatically more accurate.
|
* 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)
|
Version 0.8.16 (2022-08-26)
|
||||||
========================
|
========================
|
||||||
@@ -78,7 +115,7 @@ Version 0.8.14 (2022-06-01)
|
|||||||
Version 0.8.13 (2022-02-18)
|
Version 0.8.13 (2022-02-18)
|
||||||
========================
|
========================
|
||||||
* Improved driver monitoring
|
* 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
|
* Added reliance on driving model to be more scene adaptive
|
||||||
* Matched strictness between comma two and comma three
|
* Matched strictness between comma two and comma three
|
||||||
* Improved performance in turns by compensating for the road bank angle
|
* Improved performance in turns by compensating for the road bank angle
|
||||||
@@ -224,7 +261,7 @@ Version 0.8.4 (2021-05-17)
|
|||||||
* Delay controls start until system is ready
|
* Delay controls start until system is ready
|
||||||
* Fuzzy car identification, enabled with Community Features toggle
|
* Fuzzy car identification, enabled with Community Features toggle
|
||||||
* Localizer optimized for increased precision and less CPU usage
|
* 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
|
* Toyota Mirai 2021 support
|
||||||
* Lexus NX 300 2020 support thanks to goesreallyfast!
|
* Lexus NX 300 2020 support thanks to goesreallyfast!
|
||||||
* Volkswagen Atlas 2018-19 support thanks to jyoung8607!
|
* Volkswagen Atlas 2018-19 support thanks to jyoung8607!
|
||||||
@@ -389,7 +426,7 @@ Version 0.7 (2019-12-13)
|
|||||||
* Improve GM longitudinal control: proper computations for 15Hz radar
|
* Improve GM longitudinal control: proper computations for 15Hz radar
|
||||||
* Move GM port, Toyota with DSU removed, comma pedal in community features; toggle switch required
|
* 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
|
* 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
|
* Forward stock FCW for Honda Nidec
|
||||||
* Volkswagen port now standard: comma Harness intercepts stock camera
|
* Volkswagen port now standard: comma Harness intercepts stock camera
|
||||||
|
|
||||||
|
|||||||
+52
-27
@@ -17,7 +17,8 @@ struct CarEvent @0x9b1657f34caf3ad3 {
|
|||||||
immediateDisable @6 :Bool;
|
immediateDisable @6 :Bool;
|
||||||
preEnable @7 :Bool;
|
preEnable @7 :Bool;
|
||||||
permanent @8 :Bool; # alerts presented regardless of openpilot state
|
permanent @8 :Bool; # alerts presented regardless of openpilot state
|
||||||
override @9 :Bool;
|
overrideLateral @10 :Bool;
|
||||||
|
overrideLongitudinal @9 :Bool;
|
||||||
|
|
||||||
enum EventName @0xbaa8c5d505f727de {
|
enum EventName @0xbaa8c5d505f727de {
|
||||||
canError @0;
|
canError @0;
|
||||||
@@ -33,8 +34,9 @@ struct CarEvent @0x9b1657f34caf3ad3 {
|
|||||||
buttonCancel @11;
|
buttonCancel @11;
|
||||||
buttonEnable @12;
|
buttonEnable @12;
|
||||||
pedalPressed @13; # exits active state
|
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
|
gasPressedOverride @108; # added when user is pressing gas with no disengage on gas
|
||||||
|
steerOverride @114;
|
||||||
cruiseDisabled @14;
|
cruiseDisabled @14;
|
||||||
speedTooLow @17;
|
speedTooLow @17;
|
||||||
outOfSpace @18;
|
outOfSpace @18;
|
||||||
@@ -44,7 +46,6 @@ struct CarEvent @0x9b1657f34caf3ad3 {
|
|||||||
controlsMismatch @22;
|
controlsMismatch @22;
|
||||||
pcmEnable @23;
|
pcmEnable @23;
|
||||||
pcmDisable @24;
|
pcmDisable @24;
|
||||||
noTarget @25;
|
|
||||||
radarFault @26;
|
radarFault @26;
|
||||||
brakeHold @28;
|
brakeHold @28;
|
||||||
parkBrake @29;
|
parkBrake @29;
|
||||||
@@ -64,6 +65,7 @@ struct CarEvent @0x9b1657f34caf3ad3 {
|
|||||||
lowBattery @48;
|
lowBattery @48;
|
||||||
vehicleModelInvalid @50;
|
vehicleModelInvalid @50;
|
||||||
accFaulted @51;
|
accFaulted @51;
|
||||||
|
accFaultedTemp @115;
|
||||||
sensorDataInvalid @52;
|
sensorDataInvalid @52;
|
||||||
commIssue @53;
|
commIssue @53;
|
||||||
commIssueAvgFreq @109;
|
commIssueAvgFreq @109;
|
||||||
@@ -114,8 +116,8 @@ struct CarEvent @0x9b1657f34caf3ad3 {
|
|||||||
resumeBlocked @113;
|
resumeBlocked @113;
|
||||||
|
|
||||||
#dp
|
#dp
|
||||||
speedLimitActive @114;
|
speedLimitActive @116;
|
||||||
speedLimitValueChange @115;
|
speedLimitValueChange @117;
|
||||||
|
|
||||||
radarCanErrorDEPRECATED @15;
|
radarCanErrorDEPRECATED @15;
|
||||||
communityFeatureDisallowedDEPRECATED @62;
|
communityFeatureDisallowedDEPRECATED @62;
|
||||||
@@ -139,6 +141,7 @@ struct CarEvent @0x9b1657f34caf3ad3 {
|
|||||||
modelLagWarningDEPRECATED @93;
|
modelLagWarningDEPRECATED @93;
|
||||||
startupOneplusDEPRECATED @82;
|
startupOneplusDEPRECATED @82;
|
||||||
startupFuzzyFingerprintDEPRECATED @97;
|
startupFuzzyFingerprintDEPRECATED @97;
|
||||||
|
noTargetDEPRECATED @25;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -169,6 +172,7 @@ struct CarState {
|
|||||||
# brake pedal, 0.0-1.0
|
# brake pedal, 0.0-1.0
|
||||||
brake @5 :Float32; # this is user pedal only
|
brake @5 :Float32; # this is user pedal only
|
||||||
brakePressed @6 :Bool; # this is user pedal only
|
brakePressed @6 :Bool; # this is user pedal only
|
||||||
|
regenBraking @45 :Bool; # this is user pedal only
|
||||||
parkingBrake @39 :Bool;
|
parkingBrake @39 :Bool;
|
||||||
brakeHoldActive @38 :Bool;
|
brakeHoldActive @38 :Bool;
|
||||||
|
|
||||||
@@ -216,9 +220,9 @@ struct CarState {
|
|||||||
charging @43 :Bool;
|
charging @43 :Bool;
|
||||||
|
|
||||||
# dp
|
# dp
|
||||||
cruiseActualEnabled @45 :Bool;
|
cruiseActualEnabled @46 :Bool;
|
||||||
engineRPM @46 :Float32;
|
engineRPM @47 :Float32;
|
||||||
distanceLines @47:UInt8;
|
distanceLines @48:UInt8;
|
||||||
|
|
||||||
struct WheelSpeeds {
|
struct WheelSpeeds {
|
||||||
# optional wheel speeds
|
# optional wheel speeds
|
||||||
@@ -323,6 +327,9 @@ struct CarControl {
|
|||||||
# Actuator commands as computed by controlsd
|
# Actuator commands as computed by controlsd
|
||||||
actuators @6 :Actuators;
|
actuators @6 :Actuators;
|
||||||
|
|
||||||
|
leftBlinker @15: Bool;
|
||||||
|
rightBlinker @16: Bool;
|
||||||
|
|
||||||
# Any car specific rate limits or quirks applied by
|
# Any car specific rate limits or quirks applied by
|
||||||
# the CarController are reflected in actuatorsOutput
|
# the CarController are reflected in actuatorsOutput
|
||||||
# and matches what is sent to the car
|
# and matches what is sent to the car
|
||||||
@@ -340,8 +347,12 @@ struct CarControl {
|
|||||||
brake @1: Float32;
|
brake @1: Float32;
|
||||||
# range from -1.0 - 1.0
|
# range from -1.0 - 1.0
|
||||||
steer @2: Float32;
|
steer @2: Float32;
|
||||||
|
# value sent over can to the car
|
||||||
|
steerOutputCan @8: Float32;
|
||||||
steeringAngleDeg @3: Float32;
|
steeringAngleDeg @3: Float32;
|
||||||
|
|
||||||
|
curvature @7: Float32;
|
||||||
|
|
||||||
speed @6: Float32; # m/s
|
speed @6: Float32; # m/s
|
||||||
accel @4: Float32; # m/s^2
|
accel @4: Float32; # m/s^2
|
||||||
longControlState @5: LongControlState;
|
longControlState @5: LongControlState;
|
||||||
@@ -350,15 +361,14 @@ struct CarControl {
|
|||||||
off @0;
|
off @0;
|
||||||
pid @1;
|
pid @1;
|
||||||
stopping @2;
|
stopping @2;
|
||||||
|
starting @3;
|
||||||
startingDEPRECATED @3;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
struct CruiseControl {
|
struct CruiseControl {
|
||||||
cancel @0: Bool;
|
cancel @0: Bool;
|
||||||
resume @1: Bool;
|
resume @1: Bool;
|
||||||
|
override @4: Bool;
|
||||||
speedOverrideDEPRECATED @2: Float32;
|
speedOverrideDEPRECATED @2: Float32;
|
||||||
accelOverrideDEPRECATED @3: Float32;
|
accelOverrideDEPRECATED @3: Float32;
|
||||||
}
|
}
|
||||||
@@ -424,23 +434,18 @@ struct CarParams {
|
|||||||
enableGasInterceptor @2 :Bool;
|
enableGasInterceptor @2 :Bool;
|
||||||
pcmCruise @3 :Bool; # is openpilot's state tied to the PCM's cruise state?
|
pcmCruise @3 :Bool; # is openpilot's state tied to the PCM's cruise state?
|
||||||
enableDsu @5 :Bool; # driving support unit
|
enableDsu @5 :Bool; # driving support unit
|
||||||
enableApgs @6 :Bool; # advanced parking guidance system
|
|
||||||
enableBsm @56 :Bool; # blind spot monitoring
|
enableBsm @56 :Bool; # blind spot monitoring
|
||||||
flags @64 :UInt32; # flags for car specific quirks
|
flags @64 :UInt32; # flags for car specific quirks
|
||||||
|
experimentalLongitudinalAvailable @71 :Bool;
|
||||||
|
|
||||||
minEnableSpeed @7 :Float32;
|
minEnableSpeed @7 :Float32;
|
||||||
minSteerSpeed @8 :Float32;
|
minSteerSpeed @8 :Float32;
|
||||||
maxSteeringAngleDeg @54 :Float32;
|
|
||||||
safetyConfigs @62 :List(SafetyConfig);
|
safetyConfigs @62 :List(SafetyConfig);
|
||||||
alternativeExperience @65 :Int16; # panda flag for features like no disengage on gas
|
alternativeExperience @65 :Int16; # panda flag for features like no disengage on gas
|
||||||
maxLateralAccel @68 :Float32;
|
|
||||||
|
|
||||||
steerMaxBPDEPRECATED @11 :List(Float32);
|
# Car docs fields
|
||||||
steerMaxVDEPRECATED @12 :List(Float32);
|
maxLateralAccel @68 :Float32;
|
||||||
gasMaxBPDEPRECATED @13 :List(Float32);
|
autoResumeSng @69 :Bool; # describes whether car can resume from a stop automatically
|
||||||
gasMaxVDEPRECATED @14 :List(Float32);
|
|
||||||
brakeMaxBPDEPRECATED @15 :List(Float32);
|
|
||||||
brakeMaxVDEPRECATED @16 :List(Float32);
|
|
||||||
|
|
||||||
# things about the car in the manual
|
# things about the car in the manual
|
||||||
mass @17 :Float32; # [kg] curb weight: all fluids no cargo
|
mass @17 :Float32; # [kg] curb weight: all fluids no cargo
|
||||||
@@ -468,12 +473,13 @@ struct CarParams {
|
|||||||
|
|
||||||
vEgoStopping @29 :Float32; # Speed at which the car goes into stopping state
|
vEgoStopping @29 :Float32; # Speed at which the car goes into stopping state
|
||||||
vEgoStarting @59 :Float32; # Speed at which the car goes into starting 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 allow full control even at lows speeds when stopping
|
||||||
stoppingControl @31 :Bool; # Does the car allows full control even at lows speeds when stopping
|
|
||||||
stopAccel @60 :Float32; # Required acceleration to keep vehicle stationary
|
|
||||||
steerControlType @34 :SteerControlType;
|
steerControlType @34 :SteerControlType;
|
||||||
radarOffCan @35 :Bool; # True when radar objects aren't visible on CAN
|
radarOffCan @35 :Bool; # True when radar objects aren't visible on CAN
|
||||||
|
stopAccel @60 :Float32; # Required acceleration to keep vehicle stationary
|
||||||
stoppingDecelRate @52 :Float32; # m/s^2/s while trying to stop
|
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
|
steerActuatorDelay @36 :Float32; # Steering wheel actuator delay in seconds
|
||||||
longitudinalActuatorDelayLowerBound @61 :Float32; # Gas/Brake actuator delay in seconds, lower bound
|
longitudinalActuatorDelayLowerBound @61 :Float32; # Gas/Brake actuator delay in seconds, lower bound
|
||||||
@@ -517,6 +523,8 @@ struct CarParams {
|
|||||||
friction @3 :Float32;
|
friction @3 :Float32;
|
||||||
kf @4 :Float32;
|
kf @4 :Float32;
|
||||||
steeringAngleDeadzoneDeg @5 :Float32;
|
steeringAngleDeadzoneDeg @5 :Float32;
|
||||||
|
latAccelFactor @6 :Float32;
|
||||||
|
latAccelOffset @7 :Float32;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct LongitudinalPIDTuning {
|
struct LongitudinalPIDTuning {
|
||||||
@@ -594,6 +602,7 @@ struct CarParams {
|
|||||||
enum SteerControlType {
|
enum SteerControlType {
|
||||||
torque @0;
|
torque @0;
|
||||||
angle @1;
|
angle @1;
|
||||||
|
curvature @2;
|
||||||
}
|
}
|
||||||
|
|
||||||
enum TransmissionType {
|
enum TransmissionType {
|
||||||
@@ -617,7 +626,7 @@ struct CarParams {
|
|||||||
|
|
||||||
enum Ecu {
|
enum Ecu {
|
||||||
eps @0;
|
eps @0;
|
||||||
esp @1;
|
abs @1;
|
||||||
fwdRadar @2;
|
fwdRadar @2;
|
||||||
fwdCamera @3;
|
fwdCamera @3;
|
||||||
engine @4;
|
engine @4;
|
||||||
@@ -627,6 +636,10 @@ struct CarParams {
|
|||||||
gateway @10; # can gateway
|
gateway @10; # can gateway
|
||||||
hud @11; # heads up display
|
hud @11; # heads up display
|
||||||
combinationMeter @12; # instrument cluster
|
combinationMeter @12; # instrument cluster
|
||||||
|
electricBrakeBooster @15;
|
||||||
|
shiftByWire @16;
|
||||||
|
adas @19;
|
||||||
|
cornerRadar @21;
|
||||||
|
|
||||||
# Toyota only
|
# Toyota only
|
||||||
dsu @6;
|
dsu @6;
|
||||||
@@ -635,8 +648,12 @@ struct CarParams {
|
|||||||
# Honda only
|
# Honda only
|
||||||
vsa @13; # Vehicle Stability Assist
|
vsa @13; # Vehicle Stability Assist
|
||||||
programmedFuelInjection @14;
|
programmedFuelInjection @14;
|
||||||
electricBrakeBooster @15;
|
|
||||||
shiftByWire @16;
|
# Chrysler only
|
||||||
|
hcp @18; # Hybrid Control Processor
|
||||||
|
|
||||||
|
# Hyundai only
|
||||||
|
vcu @20; # Vehicle (Motor) Control Unit
|
||||||
|
|
||||||
debug @17;
|
debug @17;
|
||||||
}
|
}
|
||||||
@@ -653,6 +670,7 @@ struct CarParams {
|
|||||||
}
|
}
|
||||||
|
|
||||||
enableCameraDEPRECATED @4 :Bool;
|
enableCameraDEPRECATED @4 :Bool;
|
||||||
|
enableApgsDEPRECATED @6 :Bool;
|
||||||
steerRateCostDEPRECATED @33 :Float32;
|
steerRateCostDEPRECATED @33 :Float32;
|
||||||
isPandaBlackDEPRECATED @39 :Bool;
|
isPandaBlackDEPRECATED @39 :Bool;
|
||||||
hasStockCameraDEPRECATED @57 :Bool;
|
hasStockCameraDEPRECATED @57 :Bool;
|
||||||
@@ -660,7 +678,14 @@ struct CarParams {
|
|||||||
safetyModelDEPRECATED @9 :SafetyModel;
|
safetyModelDEPRECATED @9 :SafetyModel;
|
||||||
safetyModelPassiveDEPRECATED @42 :SafetyModel = silent;
|
safetyModelPassiveDEPRECATED @42 :SafetyModel = silent;
|
||||||
minSpeedCanDEPRECATED @51 :Float32;
|
minSpeedCanDEPRECATED @51 :Float32;
|
||||||
startAccelDEPRECATED @32 :Float32;
|
|
||||||
communityFeatureDEPRECATED @46: Bool;
|
communityFeatureDEPRECATED @46: Bool;
|
||||||
startingAccelRateDEPRECATED @53 :Float32;
|
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;
|
||||||
}
|
}
|
||||||
|
|||||||
+36
-21
@@ -11,25 +11,40 @@ struct DragonConf {
|
|||||||
dpLcMinMph @3 :UInt8;
|
dpLcMinMph @3 :UInt8;
|
||||||
dpLcAutoMinMph @4 :UInt8;
|
dpLcAutoMinMph @4 :UInt8;
|
||||||
dpLcAutoDelay @5 :Float32;
|
dpLcAutoDelay @5 :Float32;
|
||||||
dpIpAddr @6 :Text;
|
dpLateralLanelines @6 :Bool;
|
||||||
dpUiTop @7 :Bool;
|
dpLateralCameraOffset @7 :Int8;
|
||||||
dpUiSide @8 :Bool;
|
dpLateralPathOffset @8 :Int8;
|
||||||
dpUiVolume @9 :Int8;
|
dpIpAddr @9 :Text;
|
||||||
dpUiBrightness @10 :UInt8;
|
dpUiTop @10 :Bool;
|
||||||
dpUiDisplayMode @11 :UInt8;
|
dpUiSide @11 :Bool;
|
||||||
dpUiSpeed @12 :Bool;
|
dpUiVolume @12 :Int8;
|
||||||
dpUiEvent @13 :Bool;
|
dpUiBrightness @13 :UInt8;
|
||||||
dpUiFace @14 :Bool;
|
dpUiDisplayMode @14 :UInt8;
|
||||||
dpToyotaSng @15 :Bool;
|
dpUiSpeed @15 :Bool;
|
||||||
dpAccelProfileCtrl @16 :Bool;
|
dpUiEvent @16 :Bool;
|
||||||
dpAccelProfile @17 :UInt8;
|
dpUiFace @17 :Bool;
|
||||||
dpToyotaCruiseOverride @18 :Bool;
|
dpUiLeadInfo @18 :Bool;
|
||||||
dpToyotaCruiseOverrideSpeed @19 :UInt8;
|
dpUiLaneline @19 :Bool;
|
||||||
dpToyotaAutoLock @20 :Bool;
|
dpUiChevron @20 :Bool;
|
||||||
dpToyotaAutoUnlock @21 :Bool;
|
dpUiDmCam @21 :Bool;
|
||||||
dpUseLanelines @22 :Bool;
|
dpToyotaSng @22 :Bool;
|
||||||
dpMapd @23 :Bool;
|
dpAccelProfileCtrl @23 :Bool;
|
||||||
dpDashcamd @24 :Bool;
|
dpAccelProfile @24 :UInt8;
|
||||||
dpMazdaSteerAlert @25 :Bool;
|
dpToyotaCruiseOverride @25 :Bool;
|
||||||
dpCameraOffset @26 :Int8;
|
dpToyotaCruiseOverrideSpeed @26 :UInt8;
|
||||||
|
dpToyotaAutoLock @27 :Bool;
|
||||||
|
dpToyotaAutoUnlock @28 :Bool;
|
||||||
|
dpMapd @29 :Bool;
|
||||||
|
dpLocalDb @30 :Bool;
|
||||||
|
dpDashcamd @31 :Bool;
|
||||||
|
dpMazdaSteerAlert @32 :Bool;
|
||||||
|
dpSpeedCheck @33 :Bool;
|
||||||
|
dpFollowingProfileCtrl @34 :Bool;
|
||||||
|
dpFollowingProfile @35 :UInt8;
|
||||||
|
dpE2EConditional @36 :Bool;
|
||||||
|
dpE2EConditionalAtSpeed @37 :UInt8;
|
||||||
|
dpE2EConditionalAtSpeedLead @38 :UInt8;
|
||||||
|
dpE2EConditionalAdaptFp @39 :Bool;
|
||||||
|
dpE2EConditionalAdaptAp @40 :Bool;
|
||||||
|
dpE2EConditionalVoacc @41 :Bool;
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
+187
-33
@@ -138,6 +138,7 @@ struct FrameData {
|
|||||||
gain @15 :Float32; # This includes highConversionGain if enabled
|
gain @15 :Float32; # This includes highConversionGain if enabled
|
||||||
measuredGreyFraction @21 :Float32;
|
measuredGreyFraction @21 :Float32;
|
||||||
targetGreyFraction @22 :Float32;
|
targetGreyFraction @22 :Float32;
|
||||||
|
exposureValPercent @27 :Float32;
|
||||||
|
|
||||||
# Focus
|
# Focus
|
||||||
lensPos @11 :Int32;
|
lensPos @11 :Int32;
|
||||||
@@ -151,10 +152,7 @@ struct FrameData {
|
|||||||
|
|
||||||
transform @10 :List(Float32);
|
transform @10 :List(Float32);
|
||||||
|
|
||||||
androidCaptureResult @9 :AndroidCaptureResult;
|
|
||||||
|
|
||||||
image @6 :Data;
|
image @6 :Data;
|
||||||
globalGainDEPRECATED @5 :Int32;
|
|
||||||
|
|
||||||
temperaturesC @24 :List(Float32);
|
temperaturesC @24 :List(Float32);
|
||||||
|
|
||||||
@@ -165,6 +163,15 @@ struct FrameData {
|
|||||||
front @3;
|
front @3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sensor @26 :ImageSensor;
|
||||||
|
enum ImageSensor {
|
||||||
|
unknown @0;
|
||||||
|
ar0321 @1;
|
||||||
|
ox03c10 @2;
|
||||||
|
}
|
||||||
|
|
||||||
|
globalGainDEPRECATED @5 :Int32;
|
||||||
|
androidCaptureResultDEPRECATED @9 :AndroidCaptureResult;
|
||||||
struct AndroidCaptureResult {
|
struct AndroidCaptureResult {
|
||||||
sensitivity @0 :Int32;
|
sensitivity @0 :Int32;
|
||||||
frameDuration @1 :Int64;
|
frameDuration @1 :Int64;
|
||||||
@@ -221,9 +228,9 @@ struct SensorEventData {
|
|||||||
fiber @2;
|
fiber @2;
|
||||||
velodyne @3; # Velodyne IMU
|
velodyne @3; # Velodyne IMU
|
||||||
bno055 @4; # Bosch accelerometer
|
bno055 @4; # Bosch accelerometer
|
||||||
lsm6ds3 @5; # accelerometer (c2)
|
lsm6ds3 @5; # includes LSM6DS3 and LSM6DS3TR, TR = tape reel
|
||||||
bmp280 @6; # barometer (c2)
|
bmp280 @6; # barometer
|
||||||
mmc3416x @7; # magnetometer (c2)
|
mmc3416x @7; # magnetometer
|
||||||
bmx055 @8;
|
bmx055 @8;
|
||||||
rpr0521 @9;
|
rpr0521 @9;
|
||||||
lsm6ds3trc @10;
|
lsm6ds3trc @10;
|
||||||
@@ -291,7 +298,6 @@ struct CanData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
struct DeviceState @0xa4d8b5af2aa492eb {
|
struct DeviceState @0xa4d8b5af2aa492eb {
|
||||||
usbOnline @12 :Bool;
|
|
||||||
networkType @22 :NetworkType;
|
networkType @22 :NetworkType;
|
||||||
networkInfo @31 :NetworkInfo;
|
networkInfo @31 :NetworkInfo;
|
||||||
networkStrength @24 :NetworkStrength;
|
networkStrength @24 :NetworkStrength;
|
||||||
@@ -309,10 +315,6 @@ struct DeviceState @0xa4d8b5af2aa492eb {
|
|||||||
cpuUsagePercent @34 :List(Int8); # per-core cpu usage
|
cpuUsagePercent @34 :List(Int8); # per-core cpu usage
|
||||||
|
|
||||||
# power
|
# power
|
||||||
batteryPercent @8 :Int16;
|
|
||||||
batteryCurrent @15 :Int32;
|
|
||||||
chargingError @17 :Bool;
|
|
||||||
chargingDisabled @18 :Bool;
|
|
||||||
offroadPowerUsageUwh @23 :UInt32;
|
offroadPowerUsageUwh @23 :UInt32;
|
||||||
carBatteryCapacityUwh @25 :UInt32;
|
carBatteryCapacityUwh @25 :UInt32;
|
||||||
powerDrawW @40 :Float32;
|
powerDrawW @40 :Float32;
|
||||||
@@ -389,31 +391,44 @@ struct DeviceState @0xa4d8b5af2aa492eb {
|
|||||||
batteryStatusDEPRECATED @9 :Text;
|
batteryStatusDEPRECATED @9 :Text;
|
||||||
batteryVoltageDEPRECATED @16 :Int32;
|
batteryVoltageDEPRECATED @16 :Int32;
|
||||||
batteryTempCDEPRECATED @29 :Float32;
|
batteryTempCDEPRECATED @29 :Float32;
|
||||||
|
batteryPercent @8 :Int16;
|
||||||
|
batteryCurrent @15 :Int32;
|
||||||
|
chargingError @17 :Bool;
|
||||||
|
chargingDisabled @18 :Bool;
|
||||||
|
usbOnline @12 :Bool;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct PandaState @0xa7649e2575e4591e {
|
struct PandaState @0xa7649e2575e4591e {
|
||||||
ignitionLine @2 :Bool;
|
ignitionLine @2 :Bool;
|
||||||
controlsAllowed @3 :Bool;
|
|
||||||
gasInterceptorDetected @4 :Bool;
|
gasInterceptorDetected @4 :Bool;
|
||||||
canSendErrs @7 :UInt32;
|
rxBufferOverflow @7 :UInt32;
|
||||||
canFwdErrs @8 :UInt32;
|
txBufferOverflow @8 :UInt32;
|
||||||
canRxErrs @19 :UInt32;
|
|
||||||
gmlanSendErrs @9 :UInt32;
|
gmlanSendErrs @9 :UInt32;
|
||||||
pandaType @10 :PandaType;
|
pandaType @10 :PandaType;
|
||||||
ignitionCan @13 :Bool;
|
ignitionCan @13 :Bool;
|
||||||
safetyModel @14 :Car.CarParams.SafetyModel;
|
|
||||||
safetyParam @27 :UInt16;
|
|
||||||
alternativeExperience @23 :Int16;
|
|
||||||
faultStatus @15 :FaultStatus;
|
faultStatus @15 :FaultStatus;
|
||||||
powerSaveEnabled @16 :Bool;
|
powerSaveEnabled @16 :Bool;
|
||||||
uptime @17 :UInt32;
|
uptime @17 :UInt32;
|
||||||
faults @18 :List(FaultType);
|
faults @18 :List(FaultType);
|
||||||
harnessStatus @21 :HarnessStatus;
|
harnessStatus @21 :HarnessStatus;
|
||||||
heartbeatLost @22 :Bool;
|
heartbeatLost @22 :Bool;
|
||||||
blockedCnt @24 :UInt32;
|
|
||||||
interruptLoad @25 :Float32;
|
interruptLoad @25 :Float32;
|
||||||
fanPower @28 :UInt8;
|
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;
|
||||||
|
|
||||||
enum FaultStatus {
|
enum FaultStatus {
|
||||||
none @0;
|
none @0;
|
||||||
faultTemp @1;
|
faultTemp @1;
|
||||||
@@ -444,6 +459,8 @@ struct PandaState @0xa7649e2575e4591e {
|
|||||||
interruptRateClockSource @20;
|
interruptRateClockSource @20;
|
||||||
interruptRateTick @21;
|
interruptRateTick @21;
|
||||||
interruptRateExti @22;
|
interruptRateExti @22;
|
||||||
|
interruptRateSpi @23;
|
||||||
|
interruptRateUart7 @24;
|
||||||
# Update max fault type in boardd when adding faults
|
# Update max fault type in boardd when adding faults
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -456,6 +473,8 @@ struct PandaState @0xa7649e2575e4591e {
|
|||||||
uno @5;
|
uno @5;
|
||||||
dos @6;
|
dos @6;
|
||||||
redPanda @7;
|
redPanda @7;
|
||||||
|
redPandaV2 @8;
|
||||||
|
tres @9;
|
||||||
}
|
}
|
||||||
|
|
||||||
enum HarnessStatus {
|
enum HarnessStatus {
|
||||||
@@ -469,9 +488,44 @@ struct PandaState @0xa7649e2575e4591e {
|
|||||||
currentDEPRECATED @1 :UInt32;
|
currentDEPRECATED @1 :UInt32;
|
||||||
hasGpsDEPRECATED @6 :Bool;
|
hasGpsDEPRECATED @6 :Bool;
|
||||||
fanSpeedRpmDEPRECATED @11 :UInt16;
|
fanSpeedRpmDEPRECATED @11 :UInt16;
|
||||||
usbPowerModeDEPRECATED @12 :PeripheralState.UsbPowerMode;
|
usbPowerMode @12 :PeripheralState.UsbPowerMode;
|
||||||
safetyParamDEPRECATED @20 :Int16;
|
safetyParamDEPRECATED @20 :Int16;
|
||||||
safetyParam2DEPRECATED @26 :UInt32;
|
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 {
|
struct PeripheralState {
|
||||||
@@ -479,8 +533,8 @@ struct PeripheralState {
|
|||||||
voltage @1 :UInt32;
|
voltage @1 :UInt32;
|
||||||
current @2 :UInt32;
|
current @2 :UInt32;
|
||||||
fanSpeedRpm @3 :UInt16;
|
fanSpeedRpm @3 :UInt16;
|
||||||
usbPowerMode @4 :UsbPowerMode;
|
|
||||||
|
|
||||||
|
usbPowerMode @4 :UsbPowerMode;
|
||||||
enum UsbPowerMode @0xa8883583b32c9877 {
|
enum UsbPowerMode @0xa8883583b32c9877 {
|
||||||
none @0;
|
none @0;
|
||||||
client @1;
|
client @1;
|
||||||
@@ -539,6 +593,7 @@ struct LiveCalibrationData {
|
|||||||
# the direction of travel vector in device frame
|
# the direction of travel vector in device frame
|
||||||
rpyCalib @7 :List(Float32);
|
rpyCalib @7 :List(Float32);
|
||||||
rpyCalibSpread @8 :List(Float32);
|
rpyCalibSpread @8 :List(Float32);
|
||||||
|
wideFromDeviceEuler @10 :List(Float32);
|
||||||
|
|
||||||
warpMatrixDEPRECATED @0 :List(Float32);
|
warpMatrixDEPRECATED @0 :List(Float32);
|
||||||
warpMatrix2DEPRECATED @5 :List(Float32);
|
warpMatrix2DEPRECATED @5 :List(Float32);
|
||||||
@@ -568,6 +623,8 @@ struct ControlsState @0x97ff69c53601abf1 {
|
|||||||
enabled @19 :Bool;
|
enabled @19 :Bool;
|
||||||
active @36 :Bool;
|
active @36 :Bool;
|
||||||
|
|
||||||
|
experimentalMode @64 :Bool;
|
||||||
|
|
||||||
longControlState @30 :Car.CarControl.Actuators.LongControlState;
|
longControlState @30 :Car.CarControl.Actuators.LongControlState;
|
||||||
vPid @2 :Float32;
|
vPid @2 :Float32;
|
||||||
vTargetLead @3 :Float32;
|
vTargetLead @3 :Float32;
|
||||||
@@ -598,10 +655,13 @@ struct ControlsState @0x97ff69c53601abf1 {
|
|||||||
lateralControlState :union {
|
lateralControlState :union {
|
||||||
indiState @52 :LateralINDIState;
|
indiState @52 :LateralINDIState;
|
||||||
pidState @53 :LateralPIDState;
|
pidState @53 :LateralPIDState;
|
||||||
lqrState @55 :LateralLQRState;
|
|
||||||
angleState @58 :LateralAngleState;
|
angleState @58 :LateralAngleState;
|
||||||
debugState @59 :LateralDebugState;
|
debugState @59 :LateralDebugState;
|
||||||
torqueState @60 :LateralTorqueState;
|
torqueState @60 :LateralTorqueState;
|
||||||
|
curvatureState @65 :LateralCurvatureState;
|
||||||
|
|
||||||
|
#dp
|
||||||
|
lqrState @55 :LateralLQRState;
|
||||||
}
|
}
|
||||||
|
|
||||||
enum OpenpilotState @0xdbe58b96d2d1ac61 {
|
enum OpenpilotState @0xdbe58b96d2d1ac61 {
|
||||||
@@ -609,7 +669,7 @@ struct ControlsState @0x97ff69c53601abf1 {
|
|||||||
preEnabled @1;
|
preEnabled @1;
|
||||||
enabled @2;
|
enabled @2;
|
||||||
softDisabling @3;
|
softDisabling @3;
|
||||||
overriding @4;
|
overriding @4; # superset of overriding with steering or accelerator
|
||||||
}
|
}
|
||||||
|
|
||||||
enum AlertStatus {
|
enum AlertStatus {
|
||||||
@@ -686,6 +746,18 @@ struct ControlsState @0x97ff69c53601abf1 {
|
|||||||
steeringAngleDesiredDeg @4 :Float32;
|
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 {
|
struct LateralDebugState {
|
||||||
active @0 :Bool;
|
active @0 :Bool;
|
||||||
steeringAngleDeg @1 :Float32;
|
steeringAngleDeg @1 :Float32;
|
||||||
@@ -754,6 +826,9 @@ struct ModelDataV2 {
|
|||||||
|
|
||||||
meta @12 :MetaData;
|
meta @12 :MetaData;
|
||||||
|
|
||||||
|
# Model perceived motion
|
||||||
|
temporalPose @21 :Pose;
|
||||||
|
|
||||||
# All SI units and in device frame
|
# All SI units and in device frame
|
||||||
struct XYZTData {
|
struct XYZTData {
|
||||||
x @0 :List(Float32);
|
x @0 :List(Float32);
|
||||||
@@ -817,6 +892,13 @@ struct ModelDataV2 {
|
|||||||
brake4MetersPerSecondSquaredProbs @5 :List(Float32);
|
brake4MetersPerSecondSquaredProbs @5 :List(Float32);
|
||||||
brake5MetersPerSecondSquaredProbs @6 :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 {
|
struct EncodeIndex {
|
||||||
@@ -889,6 +971,8 @@ struct LongitudinalPlan @0xe00b5b3eba12876c {
|
|||||||
turnSpeedControlState @45 :SpeedLimitControlState;
|
turnSpeedControlState @45 :SpeedLimitControlState;
|
||||||
turnSign @46 :Int16;
|
turnSign @46 :Int16;
|
||||||
|
|
||||||
|
dpE2EIsBlended @49 :Bool;
|
||||||
|
|
||||||
enum LongitudinalPlanSource {
|
enum LongitudinalPlanSource {
|
||||||
cruise @0;
|
cruise @0;
|
||||||
lead0 @1;
|
lead0 @1;
|
||||||
@@ -953,11 +1037,11 @@ struct LongitudinalPlan @0xe00b5b3eba12876c {
|
|||||||
|
|
||||||
struct LateralPlan @0xe1e9318e2ae8b51e {
|
struct LateralPlan @0xe1e9318e2ae8b51e {
|
||||||
modelMonoTime @31 :UInt64;
|
modelMonoTime @31 :UInt64;
|
||||||
laneWidth @0 :Float32;
|
laneWidthDEPRECATED @0 :Float32;
|
||||||
lProb @5 :Float32;
|
lProbDEPRECATED @5 :Float32;
|
||||||
rProb @7 :Float32;
|
rProbDEPRECATED @7 :Float32;
|
||||||
dPathPoints @20 :List(Float32);
|
dPathPoints @20 :List(Float32);
|
||||||
dProb @21 :Float32;
|
dProbDEPRECATED @21 :Float32;
|
||||||
|
|
||||||
#dp
|
#dp
|
||||||
dPathWLinesX @32 :List(Float32);
|
dPathWLinesX @32 :List(Float32);
|
||||||
@@ -1176,6 +1260,7 @@ struct GnssMeasurements {
|
|||||||
# Different ultra-rapid files:
|
# Different ultra-rapid files:
|
||||||
nasaUltraRapid @1;
|
nasaUltraRapid @1;
|
||||||
glonassIacUltraRapid @2;
|
glonassIacUltraRapid @2;
|
||||||
|
qcompoly @3;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1369,7 +1454,7 @@ struct QcomGnss @0xde94674b07ae51c1 {
|
|||||||
unknown3 @3;
|
unknown3 @3;
|
||||||
unknown4 @4;
|
unknown4 @4;
|
||||||
unknown5 @5;
|
unknown5 @5;
|
||||||
unknown6 @6;
|
sbas @6;
|
||||||
}
|
}
|
||||||
|
|
||||||
enum SVObservationState @0xe81e829a0d6c83e9 {
|
enum SVObservationState @0xe81e829a0d6c83e9 {
|
||||||
@@ -1792,6 +1877,22 @@ struct LiveParametersData {
|
|||||||
roll @14 :Float32;
|
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 {
|
struct LiveMapDataDEPRECATED {
|
||||||
speedLimitValid @0 :Bool;
|
speedLimitValid @0 :Bool;
|
||||||
speedLimit @1 :Float32;
|
speedLimit @1 :Float32;
|
||||||
@@ -1819,6 +1920,8 @@ struct CameraOdometry {
|
|||||||
rot @1 :List(Float32); # rad/s in device frame
|
rot @1 :List(Float32); # rad/s in device frame
|
||||||
transStd @2 :List(Float32); # std m/s in device frame
|
transStd @2 :List(Float32); # std m/s in device frame
|
||||||
rotStd @3 :List(Float32); # std rad/s in device frame
|
rotStd @3 :List(Float32); # std rad/s in device frame
|
||||||
|
wideFromDeviceEuler @6 :List(Float32);
|
||||||
|
wideFromDeviceEulerStd @7 :List(Float32);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct LiveMapData {
|
struct LiveMapData {
|
||||||
@@ -1855,6 +1958,10 @@ struct Sentinel {
|
|||||||
signal @1 :Int32;
|
signal @1 :Int32;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct UIDebug {
|
||||||
|
drawTimeMillis @0 :Float32;
|
||||||
|
}
|
||||||
|
|
||||||
struct ManagerState {
|
struct ManagerState {
|
||||||
processes @0 :List(ProcessState);
|
processes @0 :List(ProcessState);
|
||||||
|
|
||||||
@@ -1924,6 +2031,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 {
|
struct EncodeData {
|
||||||
idx @0 :EncodeIndex;
|
idx @0 :EncodeIndex;
|
||||||
data @1 :Data;
|
data @1 :Data;
|
||||||
@@ -1934,6 +2065,15 @@ struct EncodeData {
|
|||||||
struct UserFlag {
|
struct UserFlag {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct Microphone {
|
||||||
|
soundPressure @0 :Float32;
|
||||||
|
|
||||||
|
# uncalibrated, A-weighted
|
||||||
|
soundPressureWeighted @3 :Float32;
|
||||||
|
soundPressureWeightedDb @1 :Float32;
|
||||||
|
filteredSoundPressureWeightedDb @2 :Float32;
|
||||||
|
}
|
||||||
|
|
||||||
struct Event {
|
struct Event {
|
||||||
logMonoTime @0 :UInt64; # nanoseconds
|
logMonoTime @0 :UInt64; # nanoseconds
|
||||||
valid @67 :Bool = true;
|
valid @67 :Bool = true;
|
||||||
@@ -1950,7 +2090,13 @@ struct Event {
|
|||||||
gpsNMEA @3 :GPSNMEAData;
|
gpsNMEA @3 :GPSNMEAData;
|
||||||
can @5 :List(CanData);
|
can @5 :List(CanData);
|
||||||
controlsState @7 :ControlsState;
|
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);
|
pandaStates @81 :List(PandaState);
|
||||||
peripheralState @80 :PeripheralState;
|
peripheralState @80 :PeripheralState;
|
||||||
radarState @13 :RadarState;
|
radarState @13 :RadarState;
|
||||||
@@ -1968,6 +2114,7 @@ struct Event {
|
|||||||
gpsLocation @21 :GpsLocationData;
|
gpsLocation @21 :GpsLocationData;
|
||||||
gnssMeasurements @91 :GnssMeasurements;
|
gnssMeasurements @91 :GnssMeasurements;
|
||||||
liveParameters @61 :LiveParametersData;
|
liveParameters @61 :LiveParametersData;
|
||||||
|
liveTorqueParameters @94 :LiveTorqueParametersData;
|
||||||
cameraOdometry @63 :CameraOdometry;
|
cameraOdometry @63 :CameraOdometry;
|
||||||
thumbnail @66: Thumbnail;
|
thumbnail @66: Thumbnail;
|
||||||
carEvents @68: List(Car.CarEvent);
|
carEvents @68: List(Car.CarEvent);
|
||||||
@@ -1976,6 +2123,7 @@ struct Event {
|
|||||||
liveLocationKalman @72 :LiveLocationKalman;
|
liveLocationKalman @72 :LiveLocationKalman;
|
||||||
modelV2 @75 :ModelDataV2;
|
modelV2 @75 :ModelDataV2;
|
||||||
driverStateV2 @92 :DriverStateV2;
|
driverStateV2 @92 :DriverStateV2;
|
||||||
|
navModel @104 :NavModelData;
|
||||||
|
|
||||||
# camera stuff, each camera state has a matching encode idx
|
# camera stuff, each camera state has a matching encode idx
|
||||||
roadCameraState @2 :FrameData;
|
roadCameraState @2 :FrameData;
|
||||||
@@ -1986,6 +2134,9 @@ struct Event {
|
|||||||
wideRoadEncodeIdx @77 :EncodeIndex;
|
wideRoadEncodeIdx @77 :EncodeIndex;
|
||||||
qRoadEncodeIdx @90 :EncodeIndex;
|
qRoadEncodeIdx @90 :EncodeIndex;
|
||||||
|
|
||||||
|
# microphone data
|
||||||
|
microphone @103 :Microphone;
|
||||||
|
|
||||||
# systems stuff
|
# systems stuff
|
||||||
androidLog @20 :AndroidLogEntry;
|
androidLog @20 :AndroidLogEntry;
|
||||||
managerState @78 :ManagerState;
|
managerState @78 :ManagerState;
|
||||||
@@ -2000,10 +2151,12 @@ struct Event {
|
|||||||
navInstruction @82 :NavInstruction;
|
navInstruction @82 :NavInstruction;
|
||||||
navRoute @83 :NavRoute;
|
navRoute @83 :NavRoute;
|
||||||
navThumbnail @84: Thumbnail;
|
navThumbnail @84: Thumbnail;
|
||||||
|
mapRenderState @105: MapRenderState;
|
||||||
|
|
||||||
# user flags
|
# UI services
|
||||||
userFlag @93 :UserFlag;
|
userFlag @93 :UserFlag;
|
||||||
|
uiDebug @102 :UIDebug;
|
||||||
|
# dp reserve 105,106
|
||||||
# *********** debug ***********
|
# *********** debug ***********
|
||||||
testJoystick @52 :Joystick;
|
testJoystick @52 :Joystick;
|
||||||
roadEncodeData @86 :EncodeData;
|
roadEncodeData @86 :EncodeData;
|
||||||
@@ -2011,8 +2164,8 @@ struct Event {
|
|||||||
wideRoadEncodeData @88 :EncodeData;
|
wideRoadEncodeData @88 :EncodeData;
|
||||||
qRoadEncodeData @89 :EncodeData;
|
qRoadEncodeData @89 :EncodeData;
|
||||||
|
|
||||||
dragonConf @94 :Dp.DragonConf;
|
dragonConf @106 :Dp.DragonConf;
|
||||||
liveMapData @95: LiveMapData;
|
liveMapData @107: LiveMapData;
|
||||||
|
|
||||||
# *********** legacy + deprecated ***********
|
# *********** legacy + deprecated ***********
|
||||||
model @9 :Legacy.ModelData; # TODO: rename modelV2 and mark this as deprecated
|
model @9 :Legacy.ModelData; # TODO: rename modelV2 and mark this as deprecated
|
||||||
@@ -2051,5 +2204,6 @@ struct Event {
|
|||||||
uiLayoutStateDEPRECATED @57 :Legacy.UiLayoutState;
|
uiLayoutStateDEPRECATED @57 :Legacy.UiLayoutState;
|
||||||
pandaStateDEPRECATED @12 :PandaState;
|
pandaStateDEPRECATED @12 :PandaState;
|
||||||
driverState @59 :DriverState;
|
driverState @59 :DriverState;
|
||||||
|
sensorEvents @11 :List(SensorEventData);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
@@ -1,4 +1,4 @@
|
|||||||
/* Generated by Cython 0.29.26 */
|
/* Generated by Cython 0.29.24 */
|
||||||
|
|
||||||
/* BEGIN: Cython Metadata
|
/* BEGIN: Cython Metadata
|
||||||
{
|
{
|
||||||
@@ -28,8 +28,8 @@ END: Cython Metadata */
|
|||||||
#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
|
#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
|
||||||
#error Cython requires Python 2.6+ or Python 3.3+.
|
#error Cython requires Python 2.6+ or Python 3.3+.
|
||||||
#else
|
#else
|
||||||
#define CYTHON_ABI "0_29_26"
|
#define CYTHON_ABI "0_29_24"
|
||||||
#define CYTHON_HEX_VERSION 0x001D1AF0
|
#define CYTHON_HEX_VERSION 0x001D18F0
|
||||||
#define CYTHON_FUTURE_DIVISION 1
|
#define CYTHON_FUTURE_DIVISION 1
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#ifndef offsetof
|
#ifndef offsetof
|
||||||
@@ -176,7 +176,7 @@ END: Cython Metadata */
|
|||||||
#ifndef CYTHON_USE_UNICODE_INTERNALS
|
#ifndef CYTHON_USE_UNICODE_INTERNALS
|
||||||
#define CYTHON_USE_UNICODE_INTERNALS 1
|
#define CYTHON_USE_UNICODE_INTERNALS 1
|
||||||
#endif
|
#endif
|
||||||
#if PY_VERSION_HEX < 0x030300F0 || PY_VERSION_HEX >= 0x030B00A2
|
#if PY_VERSION_HEX < 0x030300F0
|
||||||
#undef CYTHON_USE_UNICODE_WRITER
|
#undef CYTHON_USE_UNICODE_WRITER
|
||||||
#define CYTHON_USE_UNICODE_WRITER 0
|
#define CYTHON_USE_UNICODE_WRITER 0
|
||||||
#elif !defined(CYTHON_USE_UNICODE_WRITER)
|
#elif !defined(CYTHON_USE_UNICODE_WRITER)
|
||||||
@@ -195,7 +195,7 @@ END: Cython Metadata */
|
|||||||
#define CYTHON_FAST_THREAD_STATE 1
|
#define CYTHON_FAST_THREAD_STATE 1
|
||||||
#endif
|
#endif
|
||||||
#ifndef CYTHON_FAST_PYCALL
|
#ifndef CYTHON_FAST_PYCALL
|
||||||
#define CYTHON_FAST_PYCALL (PY_VERSION_HEX < 0x030B00A1)
|
#define CYTHON_FAST_PYCALL 1
|
||||||
#endif
|
#endif
|
||||||
#ifndef CYTHON_PEP489_MULTI_PHASE_INIT
|
#ifndef CYTHON_PEP489_MULTI_PHASE_INIT
|
||||||
#define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000)
|
#define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000)
|
||||||
@@ -214,9 +214,7 @@ END: Cython Metadata */
|
|||||||
#define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1)
|
#define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1)
|
||||||
#endif
|
#endif
|
||||||
#if CYTHON_USE_PYLONG_INTERNALS
|
#if CYTHON_USE_PYLONG_INTERNALS
|
||||||
#if PY_MAJOR_VERSION < 3
|
#include "longintrepr.h"
|
||||||
#include "longintrepr.h"
|
|
||||||
#endif
|
|
||||||
#undef SHIFT
|
#undef SHIFT
|
||||||
#undef BASE
|
#undef BASE
|
||||||
#undef MASK
|
#undef MASK
|
||||||
@@ -347,68 +345,9 @@ class __Pyx_FakeReference {
|
|||||||
#define __Pyx_DefaultClassType PyClass_Type
|
#define __Pyx_DefaultClassType PyClass_Type
|
||||||
#else
|
#else
|
||||||
#define __Pyx_BUILTIN_MODULE_NAME "builtins"
|
#define __Pyx_BUILTIN_MODULE_NAME "builtins"
|
||||||
#define __Pyx_DefaultClassType PyType_Type
|
#if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2
|
||||||
#if PY_VERSION_HEX >= 0x030B00A1
|
#define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
|
||||||
static CYTHON_INLINE PyCodeObject* __Pyx_PyCode_New(int a, int k, int l, int s, int f,
|
PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
|
||||||
PyObject *code, PyObject *c, PyObject* n, PyObject *v,
|
|
||||||
PyObject *fv, PyObject *cell, PyObject* fn,
|
|
||||||
PyObject *name, int fline, PyObject *lnos) {
|
|
||||||
PyObject *kwds=NULL, *argcount=NULL, *posonlyargcount=NULL, *kwonlyargcount=NULL;
|
|
||||||
PyObject *nlocals=NULL, *stacksize=NULL, *flags=NULL, *replace=NULL, *call_result=NULL, *empty=NULL;
|
|
||||||
const char *fn_cstr=NULL;
|
|
||||||
const char *name_cstr=NULL;
|
|
||||||
PyCodeObject* co=NULL;
|
|
||||||
PyObject *type, *value, *traceback;
|
|
||||||
PyErr_Fetch(&type, &value, &traceback);
|
|
||||||
if (!(kwds=PyDict_New())) goto end;
|
|
||||||
if (!(argcount=PyLong_FromLong(a))) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_argcount", argcount) != 0) goto end;
|
|
||||||
if (!(posonlyargcount=PyLong_FromLong(0))) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_posonlyargcount", posonlyargcount) != 0) goto end;
|
|
||||||
if (!(kwonlyargcount=PyLong_FromLong(k))) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_kwonlyargcount", kwonlyargcount) != 0) goto end;
|
|
||||||
if (!(nlocals=PyLong_FromLong(l))) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_nlocals", nlocals) != 0) goto end;
|
|
||||||
if (!(stacksize=PyLong_FromLong(s))) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_stacksize", stacksize) != 0) goto end;
|
|
||||||
if (!(flags=PyLong_FromLong(f))) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_flags", flags) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_code", code) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_consts", c) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_names", n) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_varnames", v) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_freevars", fv) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_cellvars", cell) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_linetable", lnos) != 0) goto end;
|
|
||||||
if (!(fn_cstr=PyUnicode_AsUTF8AndSize(fn, NULL))) goto end;
|
|
||||||
if (!(name_cstr=PyUnicode_AsUTF8AndSize(name, NULL))) goto end;
|
|
||||||
if (!(co = PyCode_NewEmpty(fn_cstr, name_cstr, fline))) goto end;
|
|
||||||
if (!(replace = PyObject_GetAttrString((PyObject*)co, "replace"))) goto cleanup_code_too;
|
|
||||||
if (!(empty = PyTuple_New(0))) goto cleanup_code_too; // unfortunately __pyx_empty_tuple isn't available here
|
|
||||||
if (!(call_result = PyObject_Call(replace, empty, kwds))) goto cleanup_code_too;
|
|
||||||
Py_XDECREF((PyObject*)co);
|
|
||||||
co = (PyCodeObject*)call_result;
|
|
||||||
call_result = NULL;
|
|
||||||
if (0) {
|
|
||||||
cleanup_code_too:
|
|
||||||
Py_XDECREF((PyObject*)co);
|
|
||||||
co = NULL;
|
|
||||||
}
|
|
||||||
end:
|
|
||||||
Py_XDECREF(kwds);
|
|
||||||
Py_XDECREF(argcount);
|
|
||||||
Py_XDECREF(posonlyargcount);
|
|
||||||
Py_XDECREF(kwonlyargcount);
|
|
||||||
Py_XDECREF(nlocals);
|
|
||||||
Py_XDECREF(stacksize);
|
|
||||||
Py_XDECREF(replace);
|
|
||||||
Py_XDECREF(call_result);
|
|
||||||
Py_XDECREF(empty);
|
|
||||||
if (type) {
|
|
||||||
PyErr_Restore(type, value, traceback);
|
|
||||||
}
|
|
||||||
return co;
|
|
||||||
}
|
|
||||||
#else
|
#else
|
||||||
#define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
|
#define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
|
||||||
PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
|
PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
|
||||||
@@ -646,10 +585,10 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
|
|||||||
#if PY_VERSION_HEX < 0x030200A4
|
#if PY_VERSION_HEX < 0x030200A4
|
||||||
typedef long Py_hash_t;
|
typedef long Py_hash_t;
|
||||||
#define __Pyx_PyInt_FromHash_t PyInt_FromLong
|
#define __Pyx_PyInt_FromHash_t PyInt_FromLong
|
||||||
#define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsHash_t
|
#define __Pyx_PyInt_AsHash_t PyInt_AsLong
|
||||||
#else
|
#else
|
||||||
#define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
|
#define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
|
||||||
#define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsSsize_t
|
#define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t
|
||||||
#endif
|
#endif
|
||||||
#if PY_MAJOR_VERSION >= 3
|
#if PY_MAJOR_VERSION >= 3
|
||||||
#define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func))
|
#define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func))
|
||||||
@@ -814,7 +753,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x);
|
|||||||
(likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
|
(likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
|
||||||
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
|
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
|
||||||
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
|
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
|
||||||
static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*);
|
|
||||||
#if CYTHON_ASSUME_SAFE_MACROS
|
#if CYTHON_ASSUME_SAFE_MACROS
|
||||||
#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
|
#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
|
||||||
#else
|
#else
|
||||||
@@ -1182,7 +1120,6 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args,
|
|||||||
#ifndef Py_MEMBER_SIZE
|
#ifndef Py_MEMBER_SIZE
|
||||||
#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member)
|
#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member)
|
||||||
#endif
|
#endif
|
||||||
#if CYTHON_FAST_PYCALL
|
|
||||||
static size_t __pyx_pyframe_localsplus_offset = 0;
|
static size_t __pyx_pyframe_localsplus_offset = 0;
|
||||||
#include "frameobject.h"
|
#include "frameobject.h"
|
||||||
#define __Pxy_PyFrame_Initialize_Offsets()\
|
#define __Pxy_PyFrame_Initialize_Offsets()\
|
||||||
@@ -1190,7 +1127,6 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args,
|
|||||||
(void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus)))
|
(void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus)))
|
||||||
#define __Pyx_PyFrame_GetLocalsplus(frame)\
|
#define __Pyx_PyFrame_GetLocalsplus(frame)\
|
||||||
(assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset))
|
(assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset))
|
||||||
#endif // CYTHON_FAST_PYCALL
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* PyObjectCallMethO.proto */
|
/* PyObjectCallMethO.proto */
|
||||||
@@ -3986,9 +3922,6 @@ static PyTypeObject __pyx_type_6cereal_9messaging_13messaging_pyx_Context = {
|
|||||||
#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
|
#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
|
||||||
0, /*tp_print*/
|
0, /*tp_print*/
|
||||||
#endif
|
#endif
|
||||||
#if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
|
|
||||||
0, /*tp_pypy_flags*/
|
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static PyObject *__pyx_tp_new_6cereal_9messaging_13messaging_pyx_Poller(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
|
static PyObject *__pyx_tp_new_6cereal_9messaging_13messaging_pyx_Poller(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
|
||||||
@@ -4122,9 +4055,6 @@ static PyTypeObject __pyx_type_6cereal_9messaging_13messaging_pyx_Poller = {
|
|||||||
#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
|
#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
|
||||||
0, /*tp_print*/
|
0, /*tp_print*/
|
||||||
#endif
|
#endif
|
||||||
#if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
|
|
||||||
0, /*tp_pypy_flags*/
|
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
static struct __pyx_vtabstruct_6cereal_9messaging_13messaging_pyx_SubSocket __pyx_vtable_6cereal_9messaging_13messaging_pyx_SubSocket;
|
static struct __pyx_vtabstruct_6cereal_9messaging_13messaging_pyx_SubSocket __pyx_vtable_6cereal_9messaging_13messaging_pyx_SubSocket;
|
||||||
|
|
||||||
@@ -4239,9 +4169,6 @@ static PyTypeObject __pyx_type_6cereal_9messaging_13messaging_pyx_SubSocket = {
|
|||||||
#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
|
#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
|
||||||
0, /*tp_print*/
|
0, /*tp_print*/
|
||||||
#endif
|
#endif
|
||||||
#if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
|
|
||||||
0, /*tp_pypy_flags*/
|
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static PyObject *__pyx_tp_new_6cereal_9messaging_13messaging_pyx_PubSocket(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
|
static PyObject *__pyx_tp_new_6cereal_9messaging_13messaging_pyx_PubSocket(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
|
||||||
@@ -4352,9 +4279,6 @@ static PyTypeObject __pyx_type_6cereal_9messaging_13messaging_pyx_PubSocket = {
|
|||||||
#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
|
#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
|
||||||
0, /*tp_print*/
|
0, /*tp_print*/
|
||||||
#endif
|
#endif
|
||||||
#if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
|
|
||||||
0, /*tp_pypy_flags*/
|
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static PyMethodDef __pyx_methods[] = {
|
static PyMethodDef __pyx_methods[] = {
|
||||||
@@ -6156,7 +6080,7 @@ static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int
|
|||||||
}
|
}
|
||||||
if (!use_cline) {
|
if (!use_cline) {
|
||||||
c_line = 0;
|
c_line = 0;
|
||||||
(void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False);
|
PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False);
|
||||||
}
|
}
|
||||||
else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
|
else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
|
||||||
c_line = 0;
|
c_line = 0;
|
||||||
@@ -6253,31 +6177,30 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) {
|
|||||||
static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
|
static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
|
||||||
const char *funcname, int c_line,
|
const char *funcname, int c_line,
|
||||||
int py_line, const char *filename) {
|
int py_line, const char *filename) {
|
||||||
PyCodeObject *py_code = NULL;
|
PyCodeObject *py_code = 0;
|
||||||
PyObject *py_funcname = NULL;
|
PyObject *py_srcfile = 0;
|
||||||
|
PyObject *py_funcname = 0;
|
||||||
#if PY_MAJOR_VERSION < 3
|
#if PY_MAJOR_VERSION < 3
|
||||||
PyObject *py_srcfile = NULL;
|
|
||||||
py_srcfile = PyString_FromString(filename);
|
py_srcfile = PyString_FromString(filename);
|
||||||
if (!py_srcfile) goto bad;
|
#else
|
||||||
|
py_srcfile = PyUnicode_FromString(filename);
|
||||||
#endif
|
#endif
|
||||||
|
if (!py_srcfile) goto bad;
|
||||||
if (c_line) {
|
if (c_line) {
|
||||||
#if PY_MAJOR_VERSION < 3
|
#if PY_MAJOR_VERSION < 3
|
||||||
py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
|
py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
|
||||||
if (!py_funcname) goto bad;
|
|
||||||
#else
|
#else
|
||||||
py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
|
py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
|
||||||
if (!py_funcname) goto bad;
|
|
||||||
funcname = PyUnicode_AsUTF8(py_funcname);
|
|
||||||
if (!funcname) goto bad;
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
#if PY_MAJOR_VERSION < 3
|
#if PY_MAJOR_VERSION < 3
|
||||||
py_funcname = PyString_FromString(funcname);
|
py_funcname = PyString_FromString(funcname);
|
||||||
if (!py_funcname) goto bad;
|
#else
|
||||||
|
py_funcname = PyUnicode_FromString(funcname);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#if PY_MAJOR_VERSION < 3
|
if (!py_funcname) goto bad;
|
||||||
py_code = __Pyx_PyCode_New(
|
py_code = __Pyx_PyCode_New(
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
@@ -6296,16 +6219,11 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
|
|||||||
__pyx_empty_bytes /*PyObject *lnotab*/
|
__pyx_empty_bytes /*PyObject *lnotab*/
|
||||||
);
|
);
|
||||||
Py_DECREF(py_srcfile);
|
Py_DECREF(py_srcfile);
|
||||||
#else
|
Py_DECREF(py_funcname);
|
||||||
py_code = PyCode_NewEmpty(filename, funcname, py_line);
|
|
||||||
#endif
|
|
||||||
Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline
|
|
||||||
return py_code;
|
return py_code;
|
||||||
bad:
|
bad:
|
||||||
Py_XDECREF(py_funcname);
|
|
||||||
#if PY_MAJOR_VERSION < 3
|
|
||||||
Py_XDECREF(py_srcfile);
|
Py_XDECREF(py_srcfile);
|
||||||
#endif
|
Py_XDECREF(py_funcname);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
static void __Pyx_AddTraceback(const char *funcname, int c_line,
|
static void __Pyx_AddTraceback(const char *funcname, int c_line,
|
||||||
@@ -7153,23 +7071,6 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
|
|||||||
Py_DECREF(x);
|
Py_DECREF(x);
|
||||||
return ival;
|
return ival;
|
||||||
}
|
}
|
||||||
static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) {
|
|
||||||
if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) {
|
|
||||||
return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o);
|
|
||||||
#if PY_MAJOR_VERSION < 3
|
|
||||||
} else if (likely(PyInt_CheckExact(o))) {
|
|
||||||
return PyInt_AS_LONG(o);
|
|
||||||
#endif
|
|
||||||
} else {
|
|
||||||
Py_ssize_t ival;
|
|
||||||
PyObject *x;
|
|
||||||
x = PyNumber_Index(o);
|
|
||||||
if (!x) return -1;
|
|
||||||
ival = PyInt_AsLong(x);
|
|
||||||
Py_DECREF(x);
|
|
||||||
return ival;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
|
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
|
||||||
return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False);
|
return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False);
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
@@ -5,7 +5,7 @@
|
|||||||
#include <atomic>
|
#include <atomic>
|
||||||
|
|
||||||
#define DEFAULT_SEGMENT_SIZE (10 * 1024 * 1024)
|
#define DEFAULT_SEGMENT_SIZE (10 * 1024 * 1024)
|
||||||
#define NUM_READERS 10
|
#define NUM_READERS 13 //default comma is 12
|
||||||
#define ALIGN(n) ((n + (8 - 1)) & -8)
|
#define ALIGN(n) ((n + (8 - 1)) & -8)
|
||||||
|
|
||||||
#define UNPACK64(higher, lower, input) do {uint64_t tmp = input; higher = tmp >> 32; lower = tmp & 0xFFFFFFFF;} while (0)
|
#define UNPACK64(higher, lower, input) do {uint64_t tmp = input; higher = tmp >> 32; lower = tmp & 0xFFFFFFFF;} while (0)
|
||||||
|
|||||||
+68
-56
@@ -3,62 +3,74 @@
|
|||||||
#define __SERVICES_H
|
#define __SERVICES_H
|
||||||
struct service { char name[0x100]; int port; bool should_log; int frequency; int decimation; };
|
struct service { char name[0x100]; int port; bool should_log; int frequency; int decimation; };
|
||||||
static struct service services[] = {
|
static struct service services[] = {
|
||||||
{ "sensorEvents", 8001, true, 100, 100 },
|
{ "gyroscope", 8001, true, 104, 104 },
|
||||||
{ "gpsNMEA", 8002, true, 9, -1 },
|
{ "gyroscope2", 8002, true, 100, 100 },
|
||||||
{ "deviceState", 8003, true, 2, 1 },
|
{ "accelerometer", 8003, true, 104, 104 },
|
||||||
{ "can", 8004, true, 100, -1 },
|
{ "accelerometer2", 8004, true, 100, 100 },
|
||||||
{ "controlsState", 8005, true, 100, 10 },
|
{ "magnetometer", 8005, true, 100, 100 },
|
||||||
{ "pandaStates", 8006, true, 2, 1 },
|
{ "lightSensor", 8006, true, 100, 100 },
|
||||||
{ "peripheralState", 8007, true, 2, 1 },
|
{ "temperatureSensor", 8007, true, 100, 100 },
|
||||||
{ "radarState", 8008, true, 20, 5 },
|
{ "gpsNMEA", 8008, true, 9, -1 },
|
||||||
{ "roadEncodeIdx", 8009, false, 20, 1 },
|
{ "deviceState", 8009, true, 2, 1 },
|
||||||
{ "liveTracks", 8010, true, 20, -1 },
|
{ "can", 8010, true, 100, -1 },
|
||||||
{ "sendcan", 8011, true, 100, 139 },
|
{ "controlsState", 8011, true, 100, 10 },
|
||||||
{ "logMessage", 8012, true, 0, -1 },
|
{ "pandaStates", 8012, true, 2, 1 },
|
||||||
{ "errorLogMessage", 8013, true, 0, 1 },
|
{ "peripheralState", 8013, true, 2, 1 },
|
||||||
{ "liveCalibration", 8014, true, 4, 4 },
|
{ "radarState", 8014, true, 20, 5 },
|
||||||
{ "androidLog", 8015, true, 0, -1 },
|
{ "roadEncodeIdx", 8015, false, 20, 1 },
|
||||||
{ "carState", 8016, true, 100, 10 },
|
{ "liveTracks", 8016, true, 20, -1 },
|
||||||
{ "carControl", 8017, true, 100, 10 },
|
{ "sendcan", 8017, true, 100, 139 },
|
||||||
{ "longitudinalPlan", 8018, true, 20, 5 },
|
{ "logMessage", 8018, true, 0, -1 },
|
||||||
{ "procLog", 8019, true, 0, -1 },
|
{ "errorLogMessage", 8019, true, 0, 1 },
|
||||||
{ "gpsLocationExternal", 8020, true, 10, 10 },
|
{ "liveCalibration", 8020, true, 4, 4 },
|
||||||
{ "gpsLocation", 8021, true, 1, 1 },
|
{ "liveTorqueParameters", 8021, true, 4, 1 },
|
||||||
{ "ubloxGnss", 8023, true, 10, -1 },
|
{ "androidLog", 8023, true, 0, -1 },
|
||||||
{ "qcomGnss", 8024, true, 2, -1 },
|
{ "carState", 8024, true, 100, 10 },
|
||||||
{ "gnssMeasurements", 8025, true, 10, 10 },
|
{ "carControl", 8025, true, 100, 10 },
|
||||||
{ "clocks", 8026, true, 1, 1 },
|
{ "longitudinalPlan", 8026, true, 20, 5 },
|
||||||
{ "ubloxRaw", 8027, true, 20, -1 },
|
{ "procLog", 8027, true, 0, -1 },
|
||||||
{ "liveLocationKalman", 8028, true, 20, 5 },
|
{ "gpsLocationExternal", 8028, true, 10, 10 },
|
||||||
{ "liveParameters", 8029, true, 20, 5 },
|
{ "gpsLocation", 8029, true, 1, 1 },
|
||||||
{ "cameraOdometry", 8030, true, 20, 5 },
|
{ "ubloxGnss", 8030, true, 10, -1 },
|
||||||
{ "lateralPlan", 8031, true, 20, 5 },
|
{ "qcomGnss", 8031, true, 2, -1 },
|
||||||
{ "thumbnail", 8032, true, 0, 1 },
|
{ "gnssMeasurements", 8032, true, 10, 10 },
|
||||||
{ "carEvents", 8033, true, 1, 1 },
|
{ "clocks", 8033, true, 1, 1 },
|
||||||
{ "carParams", 8034, true, 0, 1 },
|
{ "ubloxRaw", 8034, true, 20, -1 },
|
||||||
{ "roadCameraState", 8035, true, 20, 20 },
|
{ "liveLocationKalman", 8035, true, 20, 5 },
|
||||||
{ "driverCameraState", 8036, true, 10, 10 },
|
{ "liveParameters", 8036, true, 20, 5 },
|
||||||
{ "driverEncodeIdx", 8037, false, 10, 1 },
|
{ "cameraOdometry", 8037, true, 20, 5 },
|
||||||
{ "driverStateV2", 8038, true, 20, 10 },
|
{ "lateralPlan", 8038, true, 20, 5 },
|
||||||
{ "driverState", 8039, true, 10, 5 },
|
{ "thumbnail", 8039, true, 0, 1 },
|
||||||
{ "driverMonitoringState", 8040, true, 10, 5 },
|
{ "carEvents", 8040, true, 1, 1 },
|
||||||
{ "wideRoadEncodeIdx", 8041, false, 20, 1 },
|
{ "carParams", 8041, true, 0, 1 },
|
||||||
{ "wideRoadCameraState", 8042, true, 20, 20 },
|
{ "roadCameraState", 8042, true, 20, 20 },
|
||||||
{ "modelV2", 8043, true, 20, 40 },
|
{ "driverCameraState", 8043, true, 10, 10 },
|
||||||
{ "managerState", 8044, true, 2, 1 },
|
{ "driverEncodeIdx", 8044, false, 10, 1 },
|
||||||
{ "uploaderState", 8045, true, 0, 1 },
|
{ "driverStateV2", 8045, true, 20, 10 },
|
||||||
{ "navInstruction", 8046, true, 1, 10 },
|
{ "driverState", 8046, true, 10, 5 },
|
||||||
{ "navRoute", 8047, true, 0, -1 },
|
{ "driverMonitoringState", 8047, true, 10, 5 },
|
||||||
{ "navThumbnail", 8048, true, 0, -1 },
|
{ "wideRoadEncodeIdx", 8048, false, 20, 1 },
|
||||||
{ "qRoadEncodeIdx", 8049, false, 20, -1 },
|
{ "wideRoadCameraState", 8049, true, 20, 20 },
|
||||||
{ "userFlag", 8050, true, 0, 1 },
|
{ "modelV2", 8050, true, 20, 40 },
|
||||||
{ "testJoystick", 8051, true, 0, -1 },
|
{ "managerState", 8051, true, 2, 1 },
|
||||||
{ "roadEncodeData", 8052, false, 20, -1 },
|
{ "uploaderState", 8052, true, 0, 1 },
|
||||||
{ "driverEncodeData", 8053, false, 20, -1 },
|
{ "navInstruction", 8053, true, 1, 10 },
|
||||||
{ "wideRoadEncodeData", 8054, false, 20, -1 },
|
{ "navRoute", 8054, true, 0, -1 },
|
||||||
{ "qRoadEncodeData", 8055, false, 20, -1 },
|
{ "navThumbnail", 8055, true, 0, -1 },
|
||||||
{ "dragonConf", 8056, false, 1, -1 },
|
{ "navModel", 8056, true, 2, 4 },
|
||||||
{ "liveMapData", 8057, true, 0, -1 },
|
{ "mapRenderState", 8057, true, 2, 1 },
|
||||||
|
{ "qRoadEncodeIdx", 8058, false, 20, -1 },
|
||||||
|
{ "userFlag", 8059, true, 0, 1 },
|
||||||
|
{ "microphone", 8060, true, 10, 10 },
|
||||||
|
{ "uiDebug", 8061, true, 0, 1 },
|
||||||
|
{ "testJoystick", 8062, true, 0, -1 },
|
||||||
|
{ "roadEncodeData", 8063, false, 20, -1 },
|
||||||
|
{ "driverEncodeData", 8064, false, 20, -1 },
|
||||||
|
{ "wideRoadEncodeData", 8065, false, 20, -1 },
|
||||||
|
{ "qRoadEncodeData", 8066, false, 20, -1 },
|
||||||
|
{ "dragonConf", 8067, false, 1, -1 },
|
||||||
|
{ "liveMapData", 8068, true, 0, -1 },
|
||||||
|
{ "sensorEvents", 8069, true, 100, 100 },
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
+13
-1
@@ -21,7 +21,13 @@ class Service:
|
|||||||
services = {
|
services = {
|
||||||
# service: (should_log, frequency, qlog decimation (optional))
|
# service: (should_log, frequency, qlog decimation (optional))
|
||||||
# note: the "EncodeIdx" packets will still be in the log
|
# note: the "EncodeIdx" packets will still be in the log
|
||||||
"sensorEvents": (True, 100., 100),
|
"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.),
|
"gpsNMEA": (True, 9.),
|
||||||
"deviceState": (True, 2., 1),
|
"deviceState": (True, 2., 1),
|
||||||
"can": (True, 100.),
|
"can": (True, 100.),
|
||||||
@@ -35,6 +41,7 @@ services = {
|
|||||||
"logMessage": (True, 0.),
|
"logMessage": (True, 0.),
|
||||||
"errorLogMessage": (True, 0., 1),
|
"errorLogMessage": (True, 0., 1),
|
||||||
"liveCalibration": (True, 4., 4),
|
"liveCalibration": (True, 4., 4),
|
||||||
|
"liveTorqueParameters": (True, 4., 1),
|
||||||
"androidLog": (True, 0.),
|
"androidLog": (True, 0.),
|
||||||
"carState": (True, 100., 10),
|
"carState": (True, 100., 10),
|
||||||
"carControl": (True, 100., 10),
|
"carControl": (True, 100., 10),
|
||||||
@@ -68,10 +75,14 @@ services = {
|
|||||||
"navInstruction": (True, 1., 10),
|
"navInstruction": (True, 1., 10),
|
||||||
"navRoute": (True, 0.),
|
"navRoute": (True, 0.),
|
||||||
"navThumbnail": (True, 0.),
|
"navThumbnail": (True, 0.),
|
||||||
|
"navModel": (True, 2., 4.),
|
||||||
|
"mapRenderState": (True, 2., 1.),
|
||||||
"qRoadEncodeIdx": (False, 20.),
|
"qRoadEncodeIdx": (False, 20.),
|
||||||
"userFlag": (True, 0., 1),
|
"userFlag": (True, 0., 1),
|
||||||
|
"microphone": (True, 10., 10),
|
||||||
|
|
||||||
# debug
|
# debug
|
||||||
|
"uiDebug": (True, 0., 1),
|
||||||
"testJoystick": (True, 0.),
|
"testJoystick": (True, 0.),
|
||||||
"roadEncodeData": (False, 20.),
|
"roadEncodeData": (False, 20.),
|
||||||
"driverEncodeData": (False, 20.),
|
"driverEncodeData": (False, 20.),
|
||||||
@@ -81,6 +92,7 @@ services = {
|
|||||||
# dp
|
# dp
|
||||||
"dragonConf": (False, 1.),
|
"dragonConf": (False, 1.),
|
||||||
"liveMapData": (True, 0.),
|
"liveMapData": (True, 0.),
|
||||||
|
"sensorEvents": (True, 100., 100),
|
||||||
}
|
}
|
||||||
service_list = {name: Service(new_port(idx), *vals) for # type: ignore
|
service_list = {name: Service(new_port(idx), *vals) for # type: ignore
|
||||||
idx, (name, vals) in enumerate(services.items())}
|
idx, (name, vals) in enumerate(services.items())}
|
||||||
|
|||||||
Binary file not shown.
+23
-108
@@ -1,4 +1,4 @@
|
|||||||
/* Generated by Cython 0.29.26 */
|
/* Generated by Cython 0.29.24 */
|
||||||
|
|
||||||
/* BEGIN: Cython Metadata
|
/* BEGIN: Cython Metadata
|
||||||
{
|
{
|
||||||
@@ -23,8 +23,8 @@ END: Cython Metadata */
|
|||||||
#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
|
#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
|
||||||
#error Cython requires Python 2.6+ or Python 3.3+.
|
#error Cython requires Python 2.6+ or Python 3.3+.
|
||||||
#else
|
#else
|
||||||
#define CYTHON_ABI "0_29_26"
|
#define CYTHON_ABI "0_29_24"
|
||||||
#define CYTHON_HEX_VERSION 0x001D1AF0
|
#define CYTHON_HEX_VERSION 0x001D18F0
|
||||||
#define CYTHON_FUTURE_DIVISION 1
|
#define CYTHON_FUTURE_DIVISION 1
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#ifndef offsetof
|
#ifndef offsetof
|
||||||
@@ -171,7 +171,7 @@ END: Cython Metadata */
|
|||||||
#ifndef CYTHON_USE_UNICODE_INTERNALS
|
#ifndef CYTHON_USE_UNICODE_INTERNALS
|
||||||
#define CYTHON_USE_UNICODE_INTERNALS 1
|
#define CYTHON_USE_UNICODE_INTERNALS 1
|
||||||
#endif
|
#endif
|
||||||
#if PY_VERSION_HEX < 0x030300F0 || PY_VERSION_HEX >= 0x030B00A2
|
#if PY_VERSION_HEX < 0x030300F0
|
||||||
#undef CYTHON_USE_UNICODE_WRITER
|
#undef CYTHON_USE_UNICODE_WRITER
|
||||||
#define CYTHON_USE_UNICODE_WRITER 0
|
#define CYTHON_USE_UNICODE_WRITER 0
|
||||||
#elif !defined(CYTHON_USE_UNICODE_WRITER)
|
#elif !defined(CYTHON_USE_UNICODE_WRITER)
|
||||||
@@ -190,7 +190,7 @@ END: Cython Metadata */
|
|||||||
#define CYTHON_FAST_THREAD_STATE 1
|
#define CYTHON_FAST_THREAD_STATE 1
|
||||||
#endif
|
#endif
|
||||||
#ifndef CYTHON_FAST_PYCALL
|
#ifndef CYTHON_FAST_PYCALL
|
||||||
#define CYTHON_FAST_PYCALL (PY_VERSION_HEX < 0x030B00A1)
|
#define CYTHON_FAST_PYCALL 1
|
||||||
#endif
|
#endif
|
||||||
#ifndef CYTHON_PEP489_MULTI_PHASE_INIT
|
#ifndef CYTHON_PEP489_MULTI_PHASE_INIT
|
||||||
#define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000)
|
#define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000)
|
||||||
@@ -209,9 +209,7 @@ END: Cython Metadata */
|
|||||||
#define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1)
|
#define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1)
|
||||||
#endif
|
#endif
|
||||||
#if CYTHON_USE_PYLONG_INTERNALS
|
#if CYTHON_USE_PYLONG_INTERNALS
|
||||||
#if PY_MAJOR_VERSION < 3
|
#include "longintrepr.h"
|
||||||
#include "longintrepr.h"
|
|
||||||
#endif
|
|
||||||
#undef SHIFT
|
#undef SHIFT
|
||||||
#undef BASE
|
#undef BASE
|
||||||
#undef MASK
|
#undef MASK
|
||||||
@@ -342,68 +340,9 @@ class __Pyx_FakeReference {
|
|||||||
#define __Pyx_DefaultClassType PyClass_Type
|
#define __Pyx_DefaultClassType PyClass_Type
|
||||||
#else
|
#else
|
||||||
#define __Pyx_BUILTIN_MODULE_NAME "builtins"
|
#define __Pyx_BUILTIN_MODULE_NAME "builtins"
|
||||||
#define __Pyx_DefaultClassType PyType_Type
|
#if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2
|
||||||
#if PY_VERSION_HEX >= 0x030B00A1
|
#define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
|
||||||
static CYTHON_INLINE PyCodeObject* __Pyx_PyCode_New(int a, int k, int l, int s, int f,
|
PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
|
||||||
PyObject *code, PyObject *c, PyObject* n, PyObject *v,
|
|
||||||
PyObject *fv, PyObject *cell, PyObject* fn,
|
|
||||||
PyObject *name, int fline, PyObject *lnos) {
|
|
||||||
PyObject *kwds=NULL, *argcount=NULL, *posonlyargcount=NULL, *kwonlyargcount=NULL;
|
|
||||||
PyObject *nlocals=NULL, *stacksize=NULL, *flags=NULL, *replace=NULL, *call_result=NULL, *empty=NULL;
|
|
||||||
const char *fn_cstr=NULL;
|
|
||||||
const char *name_cstr=NULL;
|
|
||||||
PyCodeObject* co=NULL;
|
|
||||||
PyObject *type, *value, *traceback;
|
|
||||||
PyErr_Fetch(&type, &value, &traceback);
|
|
||||||
if (!(kwds=PyDict_New())) goto end;
|
|
||||||
if (!(argcount=PyLong_FromLong(a))) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_argcount", argcount) != 0) goto end;
|
|
||||||
if (!(posonlyargcount=PyLong_FromLong(0))) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_posonlyargcount", posonlyargcount) != 0) goto end;
|
|
||||||
if (!(kwonlyargcount=PyLong_FromLong(k))) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_kwonlyargcount", kwonlyargcount) != 0) goto end;
|
|
||||||
if (!(nlocals=PyLong_FromLong(l))) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_nlocals", nlocals) != 0) goto end;
|
|
||||||
if (!(stacksize=PyLong_FromLong(s))) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_stacksize", stacksize) != 0) goto end;
|
|
||||||
if (!(flags=PyLong_FromLong(f))) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_flags", flags) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_code", code) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_consts", c) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_names", n) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_varnames", v) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_freevars", fv) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_cellvars", cell) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_linetable", lnos) != 0) goto end;
|
|
||||||
if (!(fn_cstr=PyUnicode_AsUTF8AndSize(fn, NULL))) goto end;
|
|
||||||
if (!(name_cstr=PyUnicode_AsUTF8AndSize(name, NULL))) goto end;
|
|
||||||
if (!(co = PyCode_NewEmpty(fn_cstr, name_cstr, fline))) goto end;
|
|
||||||
if (!(replace = PyObject_GetAttrString((PyObject*)co, "replace"))) goto cleanup_code_too;
|
|
||||||
if (!(empty = PyTuple_New(0))) goto cleanup_code_too; // unfortunately __pyx_empty_tuple isn't available here
|
|
||||||
if (!(call_result = PyObject_Call(replace, empty, kwds))) goto cleanup_code_too;
|
|
||||||
Py_XDECREF((PyObject*)co);
|
|
||||||
co = (PyCodeObject*)call_result;
|
|
||||||
call_result = NULL;
|
|
||||||
if (0) {
|
|
||||||
cleanup_code_too:
|
|
||||||
Py_XDECREF((PyObject*)co);
|
|
||||||
co = NULL;
|
|
||||||
}
|
|
||||||
end:
|
|
||||||
Py_XDECREF(kwds);
|
|
||||||
Py_XDECREF(argcount);
|
|
||||||
Py_XDECREF(posonlyargcount);
|
|
||||||
Py_XDECREF(kwonlyargcount);
|
|
||||||
Py_XDECREF(nlocals);
|
|
||||||
Py_XDECREF(stacksize);
|
|
||||||
Py_XDECREF(replace);
|
|
||||||
Py_XDECREF(call_result);
|
|
||||||
Py_XDECREF(empty);
|
|
||||||
if (type) {
|
|
||||||
PyErr_Restore(type, value, traceback);
|
|
||||||
}
|
|
||||||
return co;
|
|
||||||
}
|
|
||||||
#else
|
#else
|
||||||
#define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
|
#define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
|
||||||
PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
|
PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
|
||||||
@@ -641,10 +580,10 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
|
|||||||
#if PY_VERSION_HEX < 0x030200A4
|
#if PY_VERSION_HEX < 0x030200A4
|
||||||
typedef long Py_hash_t;
|
typedef long Py_hash_t;
|
||||||
#define __Pyx_PyInt_FromHash_t PyInt_FromLong
|
#define __Pyx_PyInt_FromHash_t PyInt_FromLong
|
||||||
#define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsHash_t
|
#define __Pyx_PyInt_AsHash_t PyInt_AsLong
|
||||||
#else
|
#else
|
||||||
#define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
|
#define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
|
||||||
#define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsSsize_t
|
#define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t
|
||||||
#endif
|
#endif
|
||||||
#if PY_MAJOR_VERSION >= 3
|
#if PY_MAJOR_VERSION >= 3
|
||||||
#define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func))
|
#define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func))
|
||||||
@@ -803,7 +742,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x);
|
|||||||
(likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
|
(likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
|
||||||
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
|
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
|
||||||
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
|
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
|
||||||
static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*);
|
|
||||||
#if CYTHON_ASSUME_SAFE_MACROS
|
#if CYTHON_ASSUME_SAFE_MACROS
|
||||||
#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
|
#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
|
||||||
#else
|
#else
|
||||||
@@ -1864,7 +1802,7 @@ static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int
|
|||||||
}
|
}
|
||||||
if (!use_cline) {
|
if (!use_cline) {
|
||||||
c_line = 0;
|
c_line = 0;
|
||||||
(void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False);
|
PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False);
|
||||||
}
|
}
|
||||||
else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
|
else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
|
||||||
c_line = 0;
|
c_line = 0;
|
||||||
@@ -1961,31 +1899,30 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) {
|
|||||||
static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
|
static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
|
||||||
const char *funcname, int c_line,
|
const char *funcname, int c_line,
|
||||||
int py_line, const char *filename) {
|
int py_line, const char *filename) {
|
||||||
PyCodeObject *py_code = NULL;
|
PyCodeObject *py_code = 0;
|
||||||
PyObject *py_funcname = NULL;
|
PyObject *py_srcfile = 0;
|
||||||
|
PyObject *py_funcname = 0;
|
||||||
#if PY_MAJOR_VERSION < 3
|
#if PY_MAJOR_VERSION < 3
|
||||||
PyObject *py_srcfile = NULL;
|
|
||||||
py_srcfile = PyString_FromString(filename);
|
py_srcfile = PyString_FromString(filename);
|
||||||
if (!py_srcfile) goto bad;
|
#else
|
||||||
|
py_srcfile = PyUnicode_FromString(filename);
|
||||||
#endif
|
#endif
|
||||||
|
if (!py_srcfile) goto bad;
|
||||||
if (c_line) {
|
if (c_line) {
|
||||||
#if PY_MAJOR_VERSION < 3
|
#if PY_MAJOR_VERSION < 3
|
||||||
py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
|
py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
|
||||||
if (!py_funcname) goto bad;
|
|
||||||
#else
|
#else
|
||||||
py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
|
py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
|
||||||
if (!py_funcname) goto bad;
|
|
||||||
funcname = PyUnicode_AsUTF8(py_funcname);
|
|
||||||
if (!funcname) goto bad;
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
#if PY_MAJOR_VERSION < 3
|
#if PY_MAJOR_VERSION < 3
|
||||||
py_funcname = PyString_FromString(funcname);
|
py_funcname = PyString_FromString(funcname);
|
||||||
if (!py_funcname) goto bad;
|
#else
|
||||||
|
py_funcname = PyUnicode_FromString(funcname);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#if PY_MAJOR_VERSION < 3
|
if (!py_funcname) goto bad;
|
||||||
py_code = __Pyx_PyCode_New(
|
py_code = __Pyx_PyCode_New(
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
@@ -2004,16 +1941,11 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
|
|||||||
__pyx_empty_bytes /*PyObject *lnotab*/
|
__pyx_empty_bytes /*PyObject *lnotab*/
|
||||||
);
|
);
|
||||||
Py_DECREF(py_srcfile);
|
Py_DECREF(py_srcfile);
|
||||||
#else
|
Py_DECREF(py_funcname);
|
||||||
py_code = PyCode_NewEmpty(filename, funcname, py_line);
|
|
||||||
#endif
|
|
||||||
Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline
|
|
||||||
return py_code;
|
return py_code;
|
||||||
bad:
|
bad:
|
||||||
Py_XDECREF(py_funcname);
|
|
||||||
#if PY_MAJOR_VERSION < 3
|
|
||||||
Py_XDECREF(py_srcfile);
|
Py_XDECREF(py_srcfile);
|
||||||
#endif
|
Py_XDECREF(py_funcname);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
static void __Pyx_AddTraceback(const char *funcname, int c_line,
|
static void __Pyx_AddTraceback(const char *funcname, int c_line,
|
||||||
@@ -2861,23 +2793,6 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
|
|||||||
Py_DECREF(x);
|
Py_DECREF(x);
|
||||||
return ival;
|
return ival;
|
||||||
}
|
}
|
||||||
static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) {
|
|
||||||
if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) {
|
|
||||||
return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o);
|
|
||||||
#if PY_MAJOR_VERSION < 3
|
|
||||||
} else if (likely(PyInt_CheckExact(o))) {
|
|
||||||
return PyInt_AS_LONG(o);
|
|
||||||
#endif
|
|
||||||
} else {
|
|
||||||
Py_ssize_t ival;
|
|
||||||
PyObject *x;
|
|
||||||
x = PyNumber_Index(o);
|
|
||||||
if (!x) return -1;
|
|
||||||
ival = PyInt_AsLong(x);
|
|
||||||
Py_DECREF(x);
|
|
||||||
return ival;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
|
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
|
||||||
return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False);
|
return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False);
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
+37
-15
@@ -5,7 +5,7 @@ import sys
|
|||||||
import json
|
import json
|
||||||
import time
|
import time
|
||||||
from math import floor
|
from math import floor
|
||||||
from selfdrive.controls.lib.lane_planner import CAMERA_OFFSET
|
from system.hardware import TICI
|
||||||
|
|
||||||
'''
|
'''
|
||||||
* type: Bool, Int8, UInt8, UInt16, Float32
|
* type: Bool, Int8, UInt8, UInt16, Float32
|
||||||
@@ -24,6 +24,7 @@ confs = [
|
|||||||
{'name': 'dp_jetson', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
{'name': 'dp_jetson', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||||
|
|
||||||
# nav service
|
# nav service
|
||||||
|
{'name': 'dp_nav', 'default': True, 'type': 'Bool', 'conf_type': ['param']},
|
||||||
{'name': 'dp_otisserv', 'default': 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_pk', 'default': '', 'type': 'Text', 'conf_type': ['param']},
|
||||||
{'name': 'dp_nav_mapbox_token_sk', 'default': '', 'type': 'Text', 'conf_type': ['param']},
|
{'name': 'dp_nav_mapbox_token_sk', 'default': '', 'type': 'Text', 'conf_type': ['param']},
|
||||||
@@ -49,9 +50,12 @@ confs = [
|
|||||||
# lateral - alc
|
# lateral - alc
|
||||||
{'name': 'dp_lateral_mode', 'default': 1, 'type': 'UInt8', 'min': 0, 'max': 2, 'conf_type': ['param', 'struct']},
|
{'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_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_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_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']},
|
||||||
|
|
||||||
#ui
|
#ui
|
||||||
{'name': 'dp_ip_addr', 'default': '', 'type': 'Text', 'conf_type': ['struct']},
|
{'name': 'dp_ip_addr', 'default': '', 'type': 'Text', 'conf_type': ['struct']},
|
||||||
@@ -64,6 +68,10 @@ confs = [
|
|||||||
{'name': 'dp_ui_speed', 'default': True, 'type': 'Bool', '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_event', 'default': True, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||||
{'name': 'dp_ui_face', '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']},
|
||||||
|
|
||||||
#toyota
|
#toyota
|
||||||
{'name': 'dp_toyota_sng', 'default': False, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
{'name': 'dp_toyota_sng', 'default': False, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||||
@@ -74,19 +82,20 @@ confs = [
|
|||||||
{'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_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_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_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_mapd', 'default': False, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||||
|
{'name': 'dp_local_db', 'default': False, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||||
|
|
||||||
{'name': 'dp_lateral_lqr', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
|
||||||
|
|
||||||
# dashcam related
|
# dashcam related
|
||||||
{'name': 'dp_dashcamd', 'default': False, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
{'name': 'dp_dashcamd', 'default': False, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||||
# # auto shutdown
|
# # auto shutdown
|
||||||
{'name': 'dp_auto_shutdown', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
{'name': 'dp_auto_shutdown', 'default': True, 'type': 'Bool', 'conf_type': ['param']},
|
||||||
{'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_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': True, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
{'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
|
# # service
|
||||||
# {'name': 'dp_updated', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
# {'name': 'dp_updated', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||||
# {'name': 'dp_logger', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
# {'name': 'dp_logger', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||||
@@ -94,19 +103,24 @@ confs = [
|
|||||||
# {'name': 'dp_uploader', '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_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': 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
|
# # lat ctrl
|
||||||
# {'name': 'dp_lane_less_mode_ctrl', 'default': False, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
# {'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']},
|
# {'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
|
# # long ctrl
|
||||||
# {'name': 'dp_allow_gas', 'default': False, 'type': 'Bool', 'depends': [{'name': 'dp_atl', 'vals': [False]}], 'conf_type': ['param', 'struct']},
|
# {'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_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', '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_accel_profile_ctrl', 'default': False, 'type': 'Bool', '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']},
|
# {'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
|
# # safety
|
||||||
# {'name': 'dp_gear_check', 'default': True, 'type': 'Bool', 'depends': [{'name': 'dp_atl', 'vals': [False]}], 'conf_type': ['param', 'struct']},
|
# {'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
|
# # UIs
|
||||||
# {'name': 'dp_ui_display_mode', 'default': 0, 'type': 'UInt8', 'min': 0, 'max': 1, '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_speed', 'default': True, 'type': 'Bool', 'conf_type': ['param', 'struct']},
|
||||||
@@ -121,9 +135,17 @@ confs = [
|
|||||||
# {'name': 'dp_ui_brightness', 'default': 0, 'type': 'UInt8', 'min': 0, '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_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']},
|
||||||
# # toyota
|
# # 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_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_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_fp_btn_link', '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_ap_btn_link', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||||
# {'name': 'dp_toyota_disable_relay', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
# {'name': 'dp_toyota_disable_relay', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||||
@@ -134,7 +156,6 @@ confs = [
|
|||||||
# # hyundai
|
# # hyundai
|
||||||
# {'name': 'dp_hkg_smart_mdps', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
# {'name': 'dp_hkg_smart_mdps', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||||
# # honda
|
# # 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']},
|
# {'name': 'dp_honda_kmh_display', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||||
# # volkswagen
|
# # volkswagen
|
||||||
# # {'name': 'dp_vw_panda', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
# # {'name': 'dp_vw_panda', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||||
@@ -142,7 +163,7 @@ confs = [
|
|||||||
# {'name': 'dp_ip_addr', 'default': '', 'type': 'Text', 'conf_type': ['struct']},
|
# {'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_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_last_modified', 'default': str(floor(time.time())), 'type': 'Text', 'conf_type': ['param']},
|
||||||
{'name': 'dp_camera_offset', 'default': CAMERA_OFFSET, '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_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']},
|
# {'name': 'dp_reg', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||||
@@ -165,7 +186,8 @@ confs = [
|
|||||||
#
|
#
|
||||||
# {'name': 'dp_no_offroad_fix', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
# {'name': 'dp_no_offroad_fix', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||||
# {'name': 'dp_ftpd', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
# {'name': 'dp_ftpd', 'default': False, 'type': 'Bool', 'conf_type': ['param']},
|
||||||
{'name': 'dp_dm', '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']},
|
||||||
]
|
]
|
||||||
|
|
||||||
def get_definition(name):
|
def get_definition(name):
|
||||||
|
|||||||
@@ -8,6 +8,11 @@
|
|||||||
#define GPIO_UBLOX_PWR_EN 34
|
#define GPIO_UBLOX_PWR_EN 34
|
||||||
#define GPIO_STM_RST_N 124
|
#define GPIO_STM_RST_N 124
|
||||||
#define GPIO_STM_BOOT0 134
|
#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
|
#else
|
||||||
#define GPIO_HUB_RST_N 0
|
#define GPIO_HUB_RST_N 0
|
||||||
#define GPIO_UBLOX_RST_N 0
|
#define GPIO_UBLOX_RST_N 0
|
||||||
@@ -15,7 +20,14 @@
|
|||||||
#define GPIO_UBLOX_PWR_EN 0
|
#define GPIO_UBLOX_PWR_EN 0
|
||||||
#define GPIO_STM_RST_N 0
|
#define GPIO_STM_RST_N 0
|
||||||
#define GPIO_STM_BOOT0 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
|
#endif
|
||||||
|
|
||||||
int gpio_init(int pin_nr, bool output);
|
int gpio_init(int pin_nr, bool output);
|
||||||
int gpio_set(int pin_nr, bool high);
|
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:
|
def gpio_init(pin: int, output: bool) -> None:
|
||||||
try:
|
try:
|
||||||
with open(f"/sys/class/gpio/gpio{pin}/direction", 'wb') as f:
|
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:
|
except Exception as e:
|
||||||
print(f"Failed to set gpio {pin} direction: {e}")
|
print(f"Failed to set gpio {pin} direction: {e}")
|
||||||
|
|
||||||
|
|
||||||
def gpio_set(pin: int, high: bool) -> None:
|
def gpio_set(pin: int, high: bool) -> None:
|
||||||
try:
|
try:
|
||||||
with open(f"/sys/class/gpio/gpio{pin}/value", 'wb') as f:
|
with open(f"/sys/class/gpio/gpio{pin}/value", 'wb') as f:
|
||||||
f.write(b"1" if high else b"0")
|
f.write(b"1" if high else b"0")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Failed to set gpio {pin} value: {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
|
||||||
|
|||||||
+6
-3
@@ -15,9 +15,12 @@ supported_languages = {
|
|||||||
|
|
||||||
def events():
|
def events():
|
||||||
locale = Params().get("LanguageSetting", encoding='utf8')
|
locale = Params().get("LanguageSetting", encoding='utf8')
|
||||||
if locale is not None:
|
try:
|
||||||
locale = supported_languages[locale.strip()]
|
if locale is not None:
|
||||||
else:
|
locale = supported_languages[locale.strip()]
|
||||||
|
else:
|
||||||
|
locale = "en-US"
|
||||||
|
except KeyError:
|
||||||
locale = "en-US"
|
locale = "en-US"
|
||||||
i18n = gettext.translation("events", localedir=locale_dir, fallback=True, languages=[locale])
|
i18n = gettext.translation("events", localedir=locale_dir, fallback=True, languages=[locale])
|
||||||
i18n.install()
|
i18n.install()
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/* Generated by Cython 0.29.26 */
|
/* Generated by Cython 0.29.24 */
|
||||||
|
|
||||||
/* BEGIN: Cython Metadata
|
/* BEGIN: Cython Metadata
|
||||||
{
|
{
|
||||||
@@ -22,8 +22,8 @@ END: Cython Metadata */
|
|||||||
#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
|
#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
|
||||||
#error Cython requires Python 2.6+ or Python 3.3+.
|
#error Cython requires Python 2.6+ or Python 3.3+.
|
||||||
#else
|
#else
|
||||||
#define CYTHON_ABI "0_29_26"
|
#define CYTHON_ABI "0_29_24"
|
||||||
#define CYTHON_HEX_VERSION 0x001D1AF0
|
#define CYTHON_HEX_VERSION 0x001D18F0
|
||||||
#define CYTHON_FUTURE_DIVISION 1
|
#define CYTHON_FUTURE_DIVISION 1
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#ifndef offsetof
|
#ifndef offsetof
|
||||||
@@ -170,7 +170,7 @@ END: Cython Metadata */
|
|||||||
#ifndef CYTHON_USE_UNICODE_INTERNALS
|
#ifndef CYTHON_USE_UNICODE_INTERNALS
|
||||||
#define CYTHON_USE_UNICODE_INTERNALS 1
|
#define CYTHON_USE_UNICODE_INTERNALS 1
|
||||||
#endif
|
#endif
|
||||||
#if PY_VERSION_HEX < 0x030300F0 || PY_VERSION_HEX >= 0x030B00A2
|
#if PY_VERSION_HEX < 0x030300F0
|
||||||
#undef CYTHON_USE_UNICODE_WRITER
|
#undef CYTHON_USE_UNICODE_WRITER
|
||||||
#define CYTHON_USE_UNICODE_WRITER 0
|
#define CYTHON_USE_UNICODE_WRITER 0
|
||||||
#elif !defined(CYTHON_USE_UNICODE_WRITER)
|
#elif !defined(CYTHON_USE_UNICODE_WRITER)
|
||||||
@@ -189,7 +189,7 @@ END: Cython Metadata */
|
|||||||
#define CYTHON_FAST_THREAD_STATE 1
|
#define CYTHON_FAST_THREAD_STATE 1
|
||||||
#endif
|
#endif
|
||||||
#ifndef CYTHON_FAST_PYCALL
|
#ifndef CYTHON_FAST_PYCALL
|
||||||
#define CYTHON_FAST_PYCALL (PY_VERSION_HEX < 0x030B00A1)
|
#define CYTHON_FAST_PYCALL 1
|
||||||
#endif
|
#endif
|
||||||
#ifndef CYTHON_PEP489_MULTI_PHASE_INIT
|
#ifndef CYTHON_PEP489_MULTI_PHASE_INIT
|
||||||
#define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000)
|
#define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000)
|
||||||
@@ -208,9 +208,7 @@ END: Cython Metadata */
|
|||||||
#define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1)
|
#define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1)
|
||||||
#endif
|
#endif
|
||||||
#if CYTHON_USE_PYLONG_INTERNALS
|
#if CYTHON_USE_PYLONG_INTERNALS
|
||||||
#if PY_MAJOR_VERSION < 3
|
#include "longintrepr.h"
|
||||||
#include "longintrepr.h"
|
|
||||||
#endif
|
|
||||||
#undef SHIFT
|
#undef SHIFT
|
||||||
#undef BASE
|
#undef BASE
|
||||||
#undef MASK
|
#undef MASK
|
||||||
@@ -341,68 +339,9 @@ class __Pyx_FakeReference {
|
|||||||
#define __Pyx_DefaultClassType PyClass_Type
|
#define __Pyx_DefaultClassType PyClass_Type
|
||||||
#else
|
#else
|
||||||
#define __Pyx_BUILTIN_MODULE_NAME "builtins"
|
#define __Pyx_BUILTIN_MODULE_NAME "builtins"
|
||||||
#define __Pyx_DefaultClassType PyType_Type
|
#if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2
|
||||||
#if PY_VERSION_HEX >= 0x030B00A1
|
#define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
|
||||||
static CYTHON_INLINE PyCodeObject* __Pyx_PyCode_New(int a, int k, int l, int s, int f,
|
PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
|
||||||
PyObject *code, PyObject *c, PyObject* n, PyObject *v,
|
|
||||||
PyObject *fv, PyObject *cell, PyObject* fn,
|
|
||||||
PyObject *name, int fline, PyObject *lnos) {
|
|
||||||
PyObject *kwds=NULL, *argcount=NULL, *posonlyargcount=NULL, *kwonlyargcount=NULL;
|
|
||||||
PyObject *nlocals=NULL, *stacksize=NULL, *flags=NULL, *replace=NULL, *call_result=NULL, *empty=NULL;
|
|
||||||
const char *fn_cstr=NULL;
|
|
||||||
const char *name_cstr=NULL;
|
|
||||||
PyCodeObject* co=NULL;
|
|
||||||
PyObject *type, *value, *traceback;
|
|
||||||
PyErr_Fetch(&type, &value, &traceback);
|
|
||||||
if (!(kwds=PyDict_New())) goto end;
|
|
||||||
if (!(argcount=PyLong_FromLong(a))) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_argcount", argcount) != 0) goto end;
|
|
||||||
if (!(posonlyargcount=PyLong_FromLong(0))) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_posonlyargcount", posonlyargcount) != 0) goto end;
|
|
||||||
if (!(kwonlyargcount=PyLong_FromLong(k))) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_kwonlyargcount", kwonlyargcount) != 0) goto end;
|
|
||||||
if (!(nlocals=PyLong_FromLong(l))) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_nlocals", nlocals) != 0) goto end;
|
|
||||||
if (!(stacksize=PyLong_FromLong(s))) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_stacksize", stacksize) != 0) goto end;
|
|
||||||
if (!(flags=PyLong_FromLong(f))) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_flags", flags) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_code", code) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_consts", c) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_names", n) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_varnames", v) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_freevars", fv) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_cellvars", cell) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_linetable", lnos) != 0) goto end;
|
|
||||||
if (!(fn_cstr=PyUnicode_AsUTF8AndSize(fn, NULL))) goto end;
|
|
||||||
if (!(name_cstr=PyUnicode_AsUTF8AndSize(name, NULL))) goto end;
|
|
||||||
if (!(co = PyCode_NewEmpty(fn_cstr, name_cstr, fline))) goto end;
|
|
||||||
if (!(replace = PyObject_GetAttrString((PyObject*)co, "replace"))) goto cleanup_code_too;
|
|
||||||
if (!(empty = PyTuple_New(0))) goto cleanup_code_too; // unfortunately __pyx_empty_tuple isn't available here
|
|
||||||
if (!(call_result = PyObject_Call(replace, empty, kwds))) goto cleanup_code_too;
|
|
||||||
Py_XDECREF((PyObject*)co);
|
|
||||||
co = (PyCodeObject*)call_result;
|
|
||||||
call_result = NULL;
|
|
||||||
if (0) {
|
|
||||||
cleanup_code_too:
|
|
||||||
Py_XDECREF((PyObject*)co);
|
|
||||||
co = NULL;
|
|
||||||
}
|
|
||||||
end:
|
|
||||||
Py_XDECREF(kwds);
|
|
||||||
Py_XDECREF(argcount);
|
|
||||||
Py_XDECREF(posonlyargcount);
|
|
||||||
Py_XDECREF(kwonlyargcount);
|
|
||||||
Py_XDECREF(nlocals);
|
|
||||||
Py_XDECREF(stacksize);
|
|
||||||
Py_XDECREF(replace);
|
|
||||||
Py_XDECREF(call_result);
|
|
||||||
Py_XDECREF(empty);
|
|
||||||
if (type) {
|
|
||||||
PyErr_Restore(type, value, traceback);
|
|
||||||
}
|
|
||||||
return co;
|
|
||||||
}
|
|
||||||
#else
|
#else
|
||||||
#define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
|
#define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
|
||||||
PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
|
PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
|
||||||
@@ -640,10 +579,10 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
|
|||||||
#if PY_VERSION_HEX < 0x030200A4
|
#if PY_VERSION_HEX < 0x030200A4
|
||||||
typedef long Py_hash_t;
|
typedef long Py_hash_t;
|
||||||
#define __Pyx_PyInt_FromHash_t PyInt_FromLong
|
#define __Pyx_PyInt_FromHash_t PyInt_FromLong
|
||||||
#define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsHash_t
|
#define __Pyx_PyInt_AsHash_t PyInt_AsLong
|
||||||
#else
|
#else
|
||||||
#define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
|
#define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
|
||||||
#define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsSsize_t
|
#define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t
|
||||||
#endif
|
#endif
|
||||||
#if PY_MAJOR_VERSION >= 3
|
#if PY_MAJOR_VERSION >= 3
|
||||||
#define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func))
|
#define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func))
|
||||||
@@ -799,7 +738,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x);
|
|||||||
(likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
|
(likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
|
||||||
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
|
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
|
||||||
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
|
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
|
||||||
static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*);
|
|
||||||
#if CYTHON_ASSUME_SAFE_MACROS
|
#if CYTHON_ASSUME_SAFE_MACROS
|
||||||
#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
|
#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
|
||||||
#else
|
#else
|
||||||
@@ -1178,7 +1116,6 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args,
|
|||||||
#ifndef Py_MEMBER_SIZE
|
#ifndef Py_MEMBER_SIZE
|
||||||
#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member)
|
#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member)
|
||||||
#endif
|
#endif
|
||||||
#if CYTHON_FAST_PYCALL
|
|
||||||
static size_t __pyx_pyframe_localsplus_offset = 0;
|
static size_t __pyx_pyframe_localsplus_offset = 0;
|
||||||
#include "frameobject.h"
|
#include "frameobject.h"
|
||||||
#define __Pxy_PyFrame_Initialize_Offsets()\
|
#define __Pxy_PyFrame_Initialize_Offsets()\
|
||||||
@@ -1186,7 +1123,6 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args,
|
|||||||
(void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus)))
|
(void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus)))
|
||||||
#define __Pyx_PyFrame_GetLocalsplus(frame)\
|
#define __Pyx_PyFrame_GetLocalsplus(frame)\
|
||||||
(assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset))
|
(assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset))
|
||||||
#endif // CYTHON_FAST_PYCALL
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* PyObjectCall.proto */
|
/* PyObjectCall.proto */
|
||||||
@@ -4393,9 +4329,6 @@ static PyTypeObject __pyx_type_6common_6kalman_18simple_kalman_impl_KF1D = {
|
|||||||
#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
|
#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
|
||||||
0, /*tp_print*/
|
0, /*tp_print*/
|
||||||
#endif
|
#endif
|
||||||
#if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
|
|
||||||
0, /*tp_pypy_flags*/
|
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static PyMethodDef __pyx_methods[] = {
|
static PyMethodDef __pyx_methods[] = {
|
||||||
@@ -5940,7 +5873,7 @@ static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int
|
|||||||
}
|
}
|
||||||
if (!use_cline) {
|
if (!use_cline) {
|
||||||
c_line = 0;
|
c_line = 0;
|
||||||
(void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False);
|
PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False);
|
||||||
}
|
}
|
||||||
else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
|
else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
|
||||||
c_line = 0;
|
c_line = 0;
|
||||||
@@ -6037,31 +5970,30 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) {
|
|||||||
static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
|
static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
|
||||||
const char *funcname, int c_line,
|
const char *funcname, int c_line,
|
||||||
int py_line, const char *filename) {
|
int py_line, const char *filename) {
|
||||||
PyCodeObject *py_code = NULL;
|
PyCodeObject *py_code = 0;
|
||||||
PyObject *py_funcname = NULL;
|
PyObject *py_srcfile = 0;
|
||||||
|
PyObject *py_funcname = 0;
|
||||||
#if PY_MAJOR_VERSION < 3
|
#if PY_MAJOR_VERSION < 3
|
||||||
PyObject *py_srcfile = NULL;
|
|
||||||
py_srcfile = PyString_FromString(filename);
|
py_srcfile = PyString_FromString(filename);
|
||||||
if (!py_srcfile) goto bad;
|
#else
|
||||||
|
py_srcfile = PyUnicode_FromString(filename);
|
||||||
#endif
|
#endif
|
||||||
|
if (!py_srcfile) goto bad;
|
||||||
if (c_line) {
|
if (c_line) {
|
||||||
#if PY_MAJOR_VERSION < 3
|
#if PY_MAJOR_VERSION < 3
|
||||||
py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
|
py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
|
||||||
if (!py_funcname) goto bad;
|
|
||||||
#else
|
#else
|
||||||
py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
|
py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
|
||||||
if (!py_funcname) goto bad;
|
|
||||||
funcname = PyUnicode_AsUTF8(py_funcname);
|
|
||||||
if (!funcname) goto bad;
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
#if PY_MAJOR_VERSION < 3
|
#if PY_MAJOR_VERSION < 3
|
||||||
py_funcname = PyString_FromString(funcname);
|
py_funcname = PyString_FromString(funcname);
|
||||||
if (!py_funcname) goto bad;
|
#else
|
||||||
|
py_funcname = PyUnicode_FromString(funcname);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#if PY_MAJOR_VERSION < 3
|
if (!py_funcname) goto bad;
|
||||||
py_code = __Pyx_PyCode_New(
|
py_code = __Pyx_PyCode_New(
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
@@ -6080,16 +6012,11 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
|
|||||||
__pyx_empty_bytes /*PyObject *lnotab*/
|
__pyx_empty_bytes /*PyObject *lnotab*/
|
||||||
);
|
);
|
||||||
Py_DECREF(py_srcfile);
|
Py_DECREF(py_srcfile);
|
||||||
#else
|
Py_DECREF(py_funcname);
|
||||||
py_code = PyCode_NewEmpty(filename, funcname, py_line);
|
|
||||||
#endif
|
|
||||||
Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline
|
|
||||||
return py_code;
|
return py_code;
|
||||||
bad:
|
bad:
|
||||||
Py_XDECREF(py_funcname);
|
|
||||||
#if PY_MAJOR_VERSION < 3
|
|
||||||
Py_XDECREF(py_srcfile);
|
Py_XDECREF(py_srcfile);
|
||||||
#endif
|
Py_XDECREF(py_funcname);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
static void __Pyx_AddTraceback(const char *funcname, int c_line,
|
static void __Pyx_AddTraceback(const char *funcname, int c_line,
|
||||||
@@ -6937,23 +6864,6 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
|
|||||||
Py_DECREF(x);
|
Py_DECREF(x);
|
||||||
return ival;
|
return ival;
|
||||||
}
|
}
|
||||||
static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) {
|
|
||||||
if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) {
|
|
||||||
return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o);
|
|
||||||
#if PY_MAJOR_VERSION < 3
|
|
||||||
} else if (likely(PyInt_CheckExact(o))) {
|
|
||||||
return PyInt_AS_LONG(o);
|
|
||||||
#endif
|
|
||||||
} else {
|
|
||||||
Py_ssize_t ival;
|
|
||||||
PyObject *x;
|
|
||||||
x = PyNumber_Index(o);
|
|
||||||
if (!x) return -1;
|
|
||||||
ival = PyInt_AsLong(x);
|
|
||||||
Py_DECREF(x);
|
|
||||||
return ival;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
|
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
|
||||||
return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False);
|
return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False);
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
+1
-1
@@ -4,7 +4,7 @@
|
|||||||
#include "common/mat.h"
|
#include "common/mat.h"
|
||||||
#include "system/hardware/hw.h"
|
#include "system/hardware/hw.h"
|
||||||
|
|
||||||
const int TRAJECTORY_SIZE = 33;
|
const int TRAJECTORY_SIZE = 33;
|
||||||
const int LAT_MPC_N = 16;
|
const int LAT_MPC_N = 16;
|
||||||
const int LON_MPC_N = 32;
|
const int LON_MPC_N = 32;
|
||||||
const float MIN_DRAW_DISTANCE = 10.0;
|
const float MIN_DRAW_DISTANCE = 10.0;
|
||||||
|
|||||||
+4
-2
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
enum ParamKeyType {
|
enum ParamKeyType {
|
||||||
PERSISTENT = 0x02,
|
PERSISTENT = 0x02,
|
||||||
@@ -15,6 +16,7 @@ enum ParamKeyType {
|
|||||||
class Params {
|
class Params {
|
||||||
public:
|
public:
|
||||||
Params(const std::string &path = {});
|
Params(const std::string &path = {});
|
||||||
|
std::vector<std::string> allKeys() const;
|
||||||
bool checkKey(const std::string &key);
|
bool checkKey(const std::string &key);
|
||||||
ParamKeyType getKeyType(const std::string &key);
|
ParamKeyType getKeyType(const std::string &key);
|
||||||
inline std::string getParamPath(const std::string &key = {}) {
|
inline std::string getParamPath(const std::string &key = {}) {
|
||||||
@@ -27,8 +29,8 @@ public:
|
|||||||
|
|
||||||
// helpers for reading values
|
// helpers for reading values
|
||||||
std::string get(const std::string &key, bool block = false);
|
std::string get(const std::string &key, bool block = false);
|
||||||
inline bool getBool(const std::string &key) {
|
inline bool getBool(const std::string &key, bool block = false) {
|
||||||
return get(key) == "1";
|
return get(key, block) == "1";
|
||||||
}
|
}
|
||||||
std::map<std::string, std::string> readAll();
|
std::map<std::string, std::string> readAll();
|
||||||
|
|
||||||
|
|||||||
+660
-247
File diff suppressed because it is too large
Load Diff
@@ -2,6 +2,7 @@
|
|||||||
# cython: language_level = 3
|
# cython: language_level = 3
|
||||||
from libcpp cimport bool
|
from libcpp cimport bool
|
||||||
from libcpp.string cimport string
|
from libcpp.string cimport string
|
||||||
|
from libcpp.vector cimport vector
|
||||||
import threading
|
import threading
|
||||||
|
|
||||||
cdef extern from "common/params.h":
|
cdef extern from "common/params.h":
|
||||||
@@ -15,13 +16,14 @@ cdef extern from "common/params.h":
|
|||||||
cdef cppclass c_Params "Params":
|
cdef cppclass c_Params "Params":
|
||||||
c_Params(string) nogil
|
c_Params(string) nogil
|
||||||
string get(string, bool) nogil
|
string get(string, bool) nogil
|
||||||
bool getBool(string) nogil
|
bool getBool(string, bool) nogil
|
||||||
int remove(string) nogil
|
int remove(string) nogil
|
||||||
int put(string, string) nogil
|
int put(string, string) nogil
|
||||||
int putBool(string, bool) nogil
|
int putBool(string, bool) nogil
|
||||||
bool checkKey(string) nogil
|
bool checkKey(string) nogil
|
||||||
string getParamPath(string) nogil
|
string getParamPath(string) nogil
|
||||||
void clearAll(ParamKeyType)
|
void clearAll(ParamKeyType)
|
||||||
|
vector[string] allKeys()
|
||||||
|
|
||||||
|
|
||||||
def ensure_bytes(v):
|
def ensure_bytes(v):
|
||||||
@@ -66,11 +68,11 @@ cdef class Params:
|
|||||||
|
|
||||||
return val if encoding is None else val.decode(encoding)
|
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 string k = self.check_key(key)
|
||||||
cdef bool r
|
cdef bool r
|
||||||
with nogil:
|
with nogil:
|
||||||
r = self.p.getBool(k)
|
r = self.p.getBool(k, block)
|
||||||
return r
|
return r
|
||||||
|
|
||||||
def put(self, key, dat):
|
def put(self, key, dat):
|
||||||
@@ -99,6 +101,9 @@ cdef class Params:
|
|||||||
cdef string key_bytes = ensure_bytes(key)
|
cdef string key_bytes = ensure_bytes(key)
|
||||||
return self.p.getParamPath(key_bytes).decode("utf-8")
|
return self.p.getParamPath(key_bytes).decode("utf-8")
|
||||||
|
|
||||||
|
def all_keys(self):
|
||||||
|
return self.p.allKeys()
|
||||||
|
|
||||||
def put_nonblocking(key, val, d=""):
|
def put_nonblocking(key, val, d=""):
|
||||||
threading.Thread(target=lambda: Params(d).put(key, val)).start()
|
threading.Thread(target=lambda: Params(d).put(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;
|
||||||
|
};
|
||||||
+1
-1
@@ -31,7 +31,7 @@ class Priority:
|
|||||||
|
|
||||||
def set_realtime_priority(level: int) -> None:
|
def set_realtime_priority(level: int) -> None:
|
||||||
if not PC:
|
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:
|
def set_core_affinity(cores: List[int]) -> None:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/* Generated by Cython 0.29.26 */
|
/* Generated by Cython 0.29.24 */
|
||||||
|
|
||||||
/* BEGIN: Cython Metadata
|
/* BEGIN: Cython Metadata
|
||||||
{
|
{
|
||||||
@@ -32,8 +32,8 @@ END: Cython Metadata */
|
|||||||
#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
|
#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
|
||||||
#error Cython requires Python 2.6+ or Python 3.3+.
|
#error Cython requires Python 2.6+ or Python 3.3+.
|
||||||
#else
|
#else
|
||||||
#define CYTHON_ABI "0_29_26"
|
#define CYTHON_ABI "0_29_24"
|
||||||
#define CYTHON_HEX_VERSION 0x001D1AF0
|
#define CYTHON_HEX_VERSION 0x001D18F0
|
||||||
#define CYTHON_FUTURE_DIVISION 1
|
#define CYTHON_FUTURE_DIVISION 1
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#ifndef offsetof
|
#ifndef offsetof
|
||||||
@@ -180,7 +180,7 @@ END: Cython Metadata */
|
|||||||
#ifndef CYTHON_USE_UNICODE_INTERNALS
|
#ifndef CYTHON_USE_UNICODE_INTERNALS
|
||||||
#define CYTHON_USE_UNICODE_INTERNALS 1
|
#define CYTHON_USE_UNICODE_INTERNALS 1
|
||||||
#endif
|
#endif
|
||||||
#if PY_VERSION_HEX < 0x030300F0 || PY_VERSION_HEX >= 0x030B00A2
|
#if PY_VERSION_HEX < 0x030300F0
|
||||||
#undef CYTHON_USE_UNICODE_WRITER
|
#undef CYTHON_USE_UNICODE_WRITER
|
||||||
#define CYTHON_USE_UNICODE_WRITER 0
|
#define CYTHON_USE_UNICODE_WRITER 0
|
||||||
#elif !defined(CYTHON_USE_UNICODE_WRITER)
|
#elif !defined(CYTHON_USE_UNICODE_WRITER)
|
||||||
@@ -199,7 +199,7 @@ END: Cython Metadata */
|
|||||||
#define CYTHON_FAST_THREAD_STATE 1
|
#define CYTHON_FAST_THREAD_STATE 1
|
||||||
#endif
|
#endif
|
||||||
#ifndef CYTHON_FAST_PYCALL
|
#ifndef CYTHON_FAST_PYCALL
|
||||||
#define CYTHON_FAST_PYCALL (PY_VERSION_HEX < 0x030B00A1)
|
#define CYTHON_FAST_PYCALL 1
|
||||||
#endif
|
#endif
|
||||||
#ifndef CYTHON_PEP489_MULTI_PHASE_INIT
|
#ifndef CYTHON_PEP489_MULTI_PHASE_INIT
|
||||||
#define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000)
|
#define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000)
|
||||||
@@ -218,9 +218,7 @@ END: Cython Metadata */
|
|||||||
#define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1)
|
#define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1)
|
||||||
#endif
|
#endif
|
||||||
#if CYTHON_USE_PYLONG_INTERNALS
|
#if CYTHON_USE_PYLONG_INTERNALS
|
||||||
#if PY_MAJOR_VERSION < 3
|
#include "longintrepr.h"
|
||||||
#include "longintrepr.h"
|
|
||||||
#endif
|
|
||||||
#undef SHIFT
|
#undef SHIFT
|
||||||
#undef BASE
|
#undef BASE
|
||||||
#undef MASK
|
#undef MASK
|
||||||
@@ -351,68 +349,9 @@ class __Pyx_FakeReference {
|
|||||||
#define __Pyx_DefaultClassType PyClass_Type
|
#define __Pyx_DefaultClassType PyClass_Type
|
||||||
#else
|
#else
|
||||||
#define __Pyx_BUILTIN_MODULE_NAME "builtins"
|
#define __Pyx_BUILTIN_MODULE_NAME "builtins"
|
||||||
#define __Pyx_DefaultClassType PyType_Type
|
#if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2
|
||||||
#if PY_VERSION_HEX >= 0x030B00A1
|
#define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
|
||||||
static CYTHON_INLINE PyCodeObject* __Pyx_PyCode_New(int a, int k, int l, int s, int f,
|
PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
|
||||||
PyObject *code, PyObject *c, PyObject* n, PyObject *v,
|
|
||||||
PyObject *fv, PyObject *cell, PyObject* fn,
|
|
||||||
PyObject *name, int fline, PyObject *lnos) {
|
|
||||||
PyObject *kwds=NULL, *argcount=NULL, *posonlyargcount=NULL, *kwonlyargcount=NULL;
|
|
||||||
PyObject *nlocals=NULL, *stacksize=NULL, *flags=NULL, *replace=NULL, *call_result=NULL, *empty=NULL;
|
|
||||||
const char *fn_cstr=NULL;
|
|
||||||
const char *name_cstr=NULL;
|
|
||||||
PyCodeObject* co=NULL;
|
|
||||||
PyObject *type, *value, *traceback;
|
|
||||||
PyErr_Fetch(&type, &value, &traceback);
|
|
||||||
if (!(kwds=PyDict_New())) goto end;
|
|
||||||
if (!(argcount=PyLong_FromLong(a))) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_argcount", argcount) != 0) goto end;
|
|
||||||
if (!(posonlyargcount=PyLong_FromLong(0))) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_posonlyargcount", posonlyargcount) != 0) goto end;
|
|
||||||
if (!(kwonlyargcount=PyLong_FromLong(k))) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_kwonlyargcount", kwonlyargcount) != 0) goto end;
|
|
||||||
if (!(nlocals=PyLong_FromLong(l))) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_nlocals", nlocals) != 0) goto end;
|
|
||||||
if (!(stacksize=PyLong_FromLong(s))) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_stacksize", stacksize) != 0) goto end;
|
|
||||||
if (!(flags=PyLong_FromLong(f))) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_flags", flags) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_code", code) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_consts", c) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_names", n) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_varnames", v) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_freevars", fv) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_cellvars", cell) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_linetable", lnos) != 0) goto end;
|
|
||||||
if (!(fn_cstr=PyUnicode_AsUTF8AndSize(fn, NULL))) goto end;
|
|
||||||
if (!(name_cstr=PyUnicode_AsUTF8AndSize(name, NULL))) goto end;
|
|
||||||
if (!(co = PyCode_NewEmpty(fn_cstr, name_cstr, fline))) goto end;
|
|
||||||
if (!(replace = PyObject_GetAttrString((PyObject*)co, "replace"))) goto cleanup_code_too;
|
|
||||||
if (!(empty = PyTuple_New(0))) goto cleanup_code_too; // unfortunately __pyx_empty_tuple isn't available here
|
|
||||||
if (!(call_result = PyObject_Call(replace, empty, kwds))) goto cleanup_code_too;
|
|
||||||
Py_XDECREF((PyObject*)co);
|
|
||||||
co = (PyCodeObject*)call_result;
|
|
||||||
call_result = NULL;
|
|
||||||
if (0) {
|
|
||||||
cleanup_code_too:
|
|
||||||
Py_XDECREF((PyObject*)co);
|
|
||||||
co = NULL;
|
|
||||||
}
|
|
||||||
end:
|
|
||||||
Py_XDECREF(kwds);
|
|
||||||
Py_XDECREF(argcount);
|
|
||||||
Py_XDECREF(posonlyargcount);
|
|
||||||
Py_XDECREF(kwonlyargcount);
|
|
||||||
Py_XDECREF(nlocals);
|
|
||||||
Py_XDECREF(stacksize);
|
|
||||||
Py_XDECREF(replace);
|
|
||||||
Py_XDECREF(call_result);
|
|
||||||
Py_XDECREF(empty);
|
|
||||||
if (type) {
|
|
||||||
PyErr_Restore(type, value, traceback);
|
|
||||||
}
|
|
||||||
return co;
|
|
||||||
}
|
|
||||||
#else
|
#else
|
||||||
#define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
|
#define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
|
||||||
PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
|
PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
|
||||||
@@ -650,10 +589,10 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
|
|||||||
#if PY_VERSION_HEX < 0x030200A4
|
#if PY_VERSION_HEX < 0x030200A4
|
||||||
typedef long Py_hash_t;
|
typedef long Py_hash_t;
|
||||||
#define __Pyx_PyInt_FromHash_t PyInt_FromLong
|
#define __Pyx_PyInt_FromHash_t PyInt_FromLong
|
||||||
#define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsHash_t
|
#define __Pyx_PyInt_AsHash_t PyInt_AsLong
|
||||||
#else
|
#else
|
||||||
#define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
|
#define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
|
||||||
#define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsSsize_t
|
#define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t
|
||||||
#endif
|
#endif
|
||||||
#if PY_MAJOR_VERSION >= 3
|
#if PY_MAJOR_VERSION >= 3
|
||||||
#define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func))
|
#define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func))
|
||||||
@@ -823,7 +762,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x);
|
|||||||
(likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
|
(likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
|
||||||
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
|
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
|
||||||
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
|
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
|
||||||
static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*);
|
|
||||||
#if CYTHON_ASSUME_SAFE_MACROS
|
#if CYTHON_ASSUME_SAFE_MACROS
|
||||||
#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
|
#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
|
||||||
#else
|
#else
|
||||||
@@ -1407,7 +1345,6 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args,
|
|||||||
#ifndef Py_MEMBER_SIZE
|
#ifndef Py_MEMBER_SIZE
|
||||||
#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member)
|
#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member)
|
||||||
#endif
|
#endif
|
||||||
#if CYTHON_FAST_PYCALL
|
|
||||||
static size_t __pyx_pyframe_localsplus_offset = 0;
|
static size_t __pyx_pyframe_localsplus_offset = 0;
|
||||||
#include "frameobject.h"
|
#include "frameobject.h"
|
||||||
#define __Pxy_PyFrame_Initialize_Offsets()\
|
#define __Pxy_PyFrame_Initialize_Offsets()\
|
||||||
@@ -1415,7 +1352,6 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args,
|
|||||||
(void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus)))
|
(void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus)))
|
||||||
#define __Pyx_PyFrame_GetLocalsplus(frame)\
|
#define __Pyx_PyFrame_GetLocalsplus(frame)\
|
||||||
(assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset))
|
(assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset))
|
||||||
#endif // CYTHON_FAST_PYCALL
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* PyObjectCall.proto */
|
/* PyObjectCall.proto */
|
||||||
@@ -6342,9 +6278,6 @@ static PyTypeObject __pyx_type_6common_15transformations_15transformations_Local
|
|||||||
#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
|
#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
|
||||||
0, /*tp_print*/
|
0, /*tp_print*/
|
||||||
#endif
|
#endif
|
||||||
#if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
|
|
||||||
0, /*tp_pypy_flags*/
|
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static PyMethodDef __pyx_methods[] = {
|
static PyMethodDef __pyx_methods[] = {
|
||||||
@@ -9109,7 +9042,7 @@ static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int
|
|||||||
}
|
}
|
||||||
if (!use_cline) {
|
if (!use_cline) {
|
||||||
c_line = 0;
|
c_line = 0;
|
||||||
(void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False);
|
PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False);
|
||||||
}
|
}
|
||||||
else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
|
else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
|
||||||
c_line = 0;
|
c_line = 0;
|
||||||
@@ -9206,31 +9139,30 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) {
|
|||||||
static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
|
static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
|
||||||
const char *funcname, int c_line,
|
const char *funcname, int c_line,
|
||||||
int py_line, const char *filename) {
|
int py_line, const char *filename) {
|
||||||
PyCodeObject *py_code = NULL;
|
PyCodeObject *py_code = 0;
|
||||||
PyObject *py_funcname = NULL;
|
PyObject *py_srcfile = 0;
|
||||||
|
PyObject *py_funcname = 0;
|
||||||
#if PY_MAJOR_VERSION < 3
|
#if PY_MAJOR_VERSION < 3
|
||||||
PyObject *py_srcfile = NULL;
|
|
||||||
py_srcfile = PyString_FromString(filename);
|
py_srcfile = PyString_FromString(filename);
|
||||||
if (!py_srcfile) goto bad;
|
#else
|
||||||
|
py_srcfile = PyUnicode_FromString(filename);
|
||||||
#endif
|
#endif
|
||||||
|
if (!py_srcfile) goto bad;
|
||||||
if (c_line) {
|
if (c_line) {
|
||||||
#if PY_MAJOR_VERSION < 3
|
#if PY_MAJOR_VERSION < 3
|
||||||
py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
|
py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
|
||||||
if (!py_funcname) goto bad;
|
|
||||||
#else
|
#else
|
||||||
py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
|
py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
|
||||||
if (!py_funcname) goto bad;
|
|
||||||
funcname = PyUnicode_AsUTF8(py_funcname);
|
|
||||||
if (!funcname) goto bad;
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
#if PY_MAJOR_VERSION < 3
|
#if PY_MAJOR_VERSION < 3
|
||||||
py_funcname = PyString_FromString(funcname);
|
py_funcname = PyString_FromString(funcname);
|
||||||
if (!py_funcname) goto bad;
|
#else
|
||||||
|
py_funcname = PyUnicode_FromString(funcname);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#if PY_MAJOR_VERSION < 3
|
if (!py_funcname) goto bad;
|
||||||
py_code = __Pyx_PyCode_New(
|
py_code = __Pyx_PyCode_New(
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
@@ -9249,16 +9181,11 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
|
|||||||
__pyx_empty_bytes /*PyObject *lnotab*/
|
__pyx_empty_bytes /*PyObject *lnotab*/
|
||||||
);
|
);
|
||||||
Py_DECREF(py_srcfile);
|
Py_DECREF(py_srcfile);
|
||||||
#else
|
Py_DECREF(py_funcname);
|
||||||
py_code = PyCode_NewEmpty(filename, funcname, py_line);
|
|
||||||
#endif
|
|
||||||
Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline
|
|
||||||
return py_code;
|
return py_code;
|
||||||
bad:
|
bad:
|
||||||
Py_XDECREF(py_funcname);
|
|
||||||
#if PY_MAJOR_VERSION < 3
|
|
||||||
Py_XDECREF(py_srcfile);
|
Py_XDECREF(py_srcfile);
|
||||||
#endif
|
Py_XDECREF(py_funcname);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
static void __Pyx_AddTraceback(const char *funcname, int c_line,
|
static void __Pyx_AddTraceback(const char *funcname, int c_line,
|
||||||
@@ -10434,23 +10361,6 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
|
|||||||
Py_DECREF(x);
|
Py_DECREF(x);
|
||||||
return ival;
|
return ival;
|
||||||
}
|
}
|
||||||
static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) {
|
|
||||||
if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) {
|
|
||||||
return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o);
|
|
||||||
#if PY_MAJOR_VERSION < 3
|
|
||||||
} else if (likely(PyInt_CheckExact(o))) {
|
|
||||||
return PyInt_AS_LONG(o);
|
|
||||||
#endif
|
|
||||||
} else {
|
|
||||||
Py_ssize_t ival;
|
|
||||||
PyObject *x;
|
|
||||||
x = PyNumber_Index(o);
|
|
||||||
if (!x) return -1;
|
|
||||||
ival = PyInt_AsLong(x);
|
|
||||||
Py_DECREF(x);
|
|
||||||
return ival;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
|
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
|
||||||
return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False);
|
return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False);
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
@@ -75,16 +75,19 @@ int getenv(const char* key, int default_val);
|
|||||||
float getenv(const char* key, float default_val);
|
float getenv(const char* key, float default_val);
|
||||||
|
|
||||||
std::string hexdump(const uint8_t* in, const size_t size);
|
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);
|
std::string dir_name(std::string const& path);
|
||||||
|
|
||||||
// **** file fhelpers *****
|
// **** file fhelpers *****
|
||||||
std::string read_file(const std::string& fn);
|
std::string read_file(const std::string& fn);
|
||||||
std::map<std::string, std::string> read_files_in_dir(const std::string& path);
|
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);
|
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);
|
FILE* safe_fopen(const char* filename, const char* mode);
|
||||||
size_t safe_fwrite(const void * ptr, size_t size, size_t count, FILE * stream);
|
size_t safe_fwrite(const void * ptr, size_t size, size_t count, FILE * stream);
|
||||||
int safe_fflush(FILE *stream);
|
int safe_fflush(FILE *stream);
|
||||||
|
int safe_ioctl(int fd, unsigned long request, void *argp);
|
||||||
|
|
||||||
std::string readlink(const std::string& path);
|
std::string readlink(const std::string& path);
|
||||||
bool file_exists(const std::string& fn);
|
bool file_exists(const std::string& fn);
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
#define COMMA_VERSION "2022.09.07"
|
#define COMMA_VERSION "2023.02.08"
|
||||||
|
|||||||
+233
-216
@@ -4,225 +4,242 @@
|
|||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
||||||
# 205 Supported Cars
|
# 220 Supported Cars
|
||||||
|
|
||||||
|Make|Model|Supported Package|ACC|No ACC accel below|No ALC below|Steering Torque|Harness|
|
|Make|Model|Supported Package|ACC|No ACC accel below|No ALC below|Steering Torque|Resume from stop|Harness|
|
||||||
|---|---|---|:---:|:---:|:---:|:---:|:---:|
|
|---|---|---|:---:|:---:|:---:|:---:|:---:|:---:|
|
||||||
|Acura|ILX 2016-19|AcuraWatch Plus|openpilot|25 mph|25 mph|[](##)|Honda Nidec|
|
|Acura|ILX 2016-19|AcuraWatch Plus|openpilot|25 mph|25 mph|[](##)|[](##)|Honda Nidec|
|
||||||
|Acura|RDX 2016-18|AcuraWatch Plus|openpilot|25 mph|12 mph|[](##)|Honda Nidec|
|
|Acura|RDX 2016-18|AcuraWatch Plus|openpilot|25 mph|12 mph|[](##)|[](##)|Honda Nidec|
|
||||||
|Acura|RDX 2019-22|All|Stock|0 mph|3 mph|[](##)|Honda Bosch A|
|
|Acura|RDX 2019-22|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|3 mph|[](##)|[](##)|Honda Bosch A|
|
||||||
|Audi|A3 2014-19|ACC + Lane Assist|Stock|0 mph|0 mph|[](##)|VW|
|
|Audi|A3 2014-19|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|Audi|A3 Sportback e-tron 2017-18|ACC + Lane Assist|Stock|0 mph|0 mph|[](##)|VW|
|
|Audi|A3 Sportback e-tron 2017-18|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|Audi|Q2 2018|ACC + Lane Assist|Stock|0 mph|0 mph|[](##)|VW|
|
|Audi|Q2 2018|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|Audi|Q3 2020-21|ACC + Lane Assist|Stock|0 mph|0 mph|[](##)|VW|
|
|Audi|Q3 2019-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|Audi|RS3 2018|ACC + Lane Assist|Stock|0 mph|0 mph|[](##)|VW|
|
|Audi|RS3 2018|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|Audi|S3 2015-17|ACC + Lane Assist|Stock|0 mph|0 mph|[](##)|VW|
|
|Audi|S3 2015-17|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|Cadillac|Escalade ESV 2016[<sup>1</sup>](#footnotes)|Adaptive Cruise Control (ACC) & LKAS|openpilot|0 mph|7 mph|[](##)|OBD-II|
|
|Cadillac|Escalade ESV 2016[<sup>3</sup>](#footnotes)|Adaptive Cruise Control (ACC) & LKAS|openpilot|0 mph|6 mph|[](##)|[](##)|OBD-II|
|
||||||
|Chevrolet|Bolt EUV 2022-23|Premier or Premier Redline Trim without Super Cruise Package|Stock|0 mph|7 mph|[](##)|GM|
|
|Chevrolet|Bolt EUV 2022-23|Premier or Premier Redline Trim without Super Cruise Package|openpilot available[<sup>1</sup>](#footnotes)|3 mph|6 mph|[](##)|[](##)|GM|
|
||||||
|Chevrolet|Silverado 1500 2020-21|Safety Package II|Stock|0 mph|7 mph|[](##)|GM|
|
|Chevrolet|Bolt EV 2022-23|2LT Trim with Adaptive Cruise Control Package|openpilot available[<sup>1</sup>](#footnotes)|3 mph|6 mph|[](##)|[](##)|GM|
|
||||||
|Chevrolet|Volt 2017-18[<sup>1</sup>](#footnotes)|Adaptive Cruise Control|openpilot|0 mph|7 mph|[](##)|OBD-II|
|
|Chevrolet|Silverado 1500 2020-21|Safety Package II|openpilot available[<sup>1</sup>](#footnotes)|3 mph|6 mph|[](##)|[](##)|GM|
|
||||||
|Chrysler|Pacifica 2017-18|Adaptive Cruise Control|Stock|0 mph|9 mph|[](##)|FCA|
|
|Chevrolet|Volt 2017-18[<sup>3</sup>](#footnotes)|Adaptive Cruise Control (ACC)|openpilot|0 mph|6 mph|[](##)|[](##)|OBD-II|
|
||||||
|Chrysler|Pacifica 2019-20|Adaptive Cruise Control|Stock|0 mph|39 mph|[](##)|FCA|
|
|Chrysler|Pacifica 2017-18|Adaptive Cruise Control (ACC)|Stock|0 mph|9 mph|[](##)|[](##)|FCA|
|
||||||
|Chrysler|Pacifica 2021|All|Stock|0 mph|39 mph|[](##)|FCA|
|
|Chrysler|Pacifica 2019-20|Adaptive Cruise Control (ACC)|Stock|0 mph|39 mph|[](##)|[](##)|FCA|
|
||||||
|Chrysler|Pacifica Hybrid 2017-18|Adaptive Cruise Control|Stock|0 mph|9 mph|[](##)|FCA|
|
|Chrysler|Pacifica 2021|All|Stock|0 mph|39 mph|[](##)|[](##)|FCA|
|
||||||
|Chrysler|Pacifica Hybrid 2019-22|Adaptive Cruise Control|Stock|0 mph|39 mph|[](##)|FCA|
|
|Chrysler|Pacifica Hybrid 2017-18|Adaptive Cruise Control (ACC)|Stock|0 mph|9 mph|[](##)|[](##)|FCA|
|
||||||
|comma|body|All|Stock|0 mph|0 mph|[](##)|None|
|
|Chrysler|Pacifica Hybrid 2019-22|Adaptive Cruise Control (ACC)|Stock|0 mph|39 mph|[](##)|[](##)|FCA|
|
||||||
|Genesis|G70 2018-19|All|Stock|0 mph|0 mph|[](##)|Hyundai F|
|
|comma|body|All|openpilot|0 mph|0 mph|[](##)|[](##)|None|
|
||||||
|Genesis|G70 2020|All|openpilot|0 mph|0 mph|[](##)|Hyundai F|
|
|Genesis|G70 2018-19|All|Stock|0 mph|0 mph|[](##)|[](##)|Hyundai F|
|
||||||
|Genesis|G80 2017-19|All|Stock|0 mph|0 mph|[](##)|Hyundai H|
|
|Genesis|G70 2020|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Hyundai F|
|
||||||
|Genesis|G90 2017-18|All|Stock|0 mph|0 mph|[](##)|Hyundai C|
|
|Genesis|G80 2017-19|All|Stock|0 mph|0 mph|[](##)|[](##)|Hyundai H|
|
||||||
|GMC|Acadia 2018[<sup>1</sup>](#footnotes)|Adaptive Cruise Control|openpilot|0 mph|7 mph|[](##)|OBD-II|
|
|Genesis|G90 2017-18|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Hyundai C|
|
||||||
|GMC|Sierra 1500 2020-21|Driver Alert Package II|Stock|0 mph|7 mph|[](##)|GM|
|
|Genesis|GV60 2023[<sup>5</sup>](#footnotes)|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Hyundai K|
|
||||||
|Honda|Accord 2018-22|All|Stock|0 mph|3 mph|[](##)|Honda Bosch A|
|
|Genesis|GV70 2022-23[<sup>5</sup>](#footnotes)|All|Stock|0 mph|0 mph|[](##)|[](##)|Hyundai L|
|
||||||
|Honda|Accord Hybrid 2018-22|All|Stock|0 mph|3 mph|[](##)|Honda Bosch A|
|
|GMC|Acadia 2018[<sup>3</sup>](#footnotes)|Adaptive Cruise Control (ACC)|openpilot|0 mph|6 mph|[](##)|[](##)|OBD-II|
|
||||||
|Honda|Civic 2016-18|Honda Sensing|openpilot|0 mph|12 mph|[](##)|Honda Nidec|
|
|GMC|Sierra 1500 2020-21|Driver Alert Package II|openpilot available[<sup>1</sup>](#footnotes)|3 mph|6 mph|[](##)|[](##)|GM|
|
||||||
|Honda|Civic 2019-21|All|Stock|0 mph|2 mph[<sup>2</sup>](#footnotes)|[](##)|Honda Bosch A|
|
|Honda|Accord 2018-22|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|3 mph|[](##)|[](##)|Honda Bosch A|
|
||||||
|Honda|Civic 2022|All|Stock|0 mph|0 mph|[](##)|Honda Bosch B|
|
|Honda|Accord Hybrid 2018-22|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|3 mph|[](##)|[](##)|Honda Bosch A|
|
||||||
|Honda|Civic Hatchback 2017-21|Honda Sensing|Stock|0 mph|12 mph|[](##)|Honda Bosch A|
|
|Honda|Civic 2016-18|Honda Sensing|openpilot|0 mph|12 mph|[](##)|[](##)|Honda Nidec|
|
||||||
|Honda|Civic Hatchback 2022|All|Stock|0 mph|0 mph|[](##)|Honda Bosch B|
|
|Honda|Civic 2019-21|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|2 mph[<sup>4</sup>](#footnotes)|[](##)|[](##)|Honda Bosch A|
|
||||||
|Honda|CR-V 2015-16|Touring Trim|openpilot|25 mph|12 mph|[](##)|Honda Nidec|
|
|Honda|Civic 2022|All|Stock|0 mph|0 mph|[](##)|[](##)|Honda Bosch B|
|
||||||
|Honda|CR-V 2017-22|Honda Sensing|Stock|0 mph|12 mph|[](##)|Honda Bosch A|
|
|Honda|Civic Hatchback 2017-21|Honda Sensing|openpilot available[<sup>1</sup>](#footnotes)|0 mph|12 mph|[](##)|[](##)|Honda Bosch A|
|
||||||
|Honda|CR-V Hybrid 2017-19|Honda Sensing|Stock|0 mph|12 mph|[](##)|Honda Bosch A|
|
|Honda|Civic Hatchback 2022|All|Stock|0 mph|0 mph|[](##)|[](##)|Honda Bosch B|
|
||||||
|Honda|e 2020|All|Stock|0 mph|3 mph|[](##)|Honda Bosch A|
|
|Honda|CR-V 2015-16|Touring Trim|openpilot|25 mph|12 mph|[](##)|[](##)|Honda Nidec|
|
||||||
|Honda|Fit 2018-20|Honda Sensing|openpilot|25 mph|12 mph|[](##)|Honda Nidec|
|
|Honda|CR-V 2017-22|Honda Sensing|openpilot available[<sup>1</sup>](#footnotes)|0 mph|12 mph|[](##)|[](##)|Honda Bosch A|
|
||||||
|Honda|Freed 2020|Honda Sensing|openpilot|25 mph|12 mph|[](##)|Honda Nidec|
|
|Honda|CR-V Hybrid 2017-19|Honda Sensing|openpilot available[<sup>1</sup>](#footnotes)|0 mph|12 mph|[](##)|[](##)|Honda Bosch A|
|
||||||
|Honda|HR-V 2019-22|Honda Sensing|openpilot|25 mph|12 mph|[](##)|Honda Nidec|
|
|Honda|e 2020|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|3 mph|[](##)|[](##)|Honda Bosch A|
|
||||||
|Honda|Insight 2019-22|All|Stock|0 mph|3 mph|[](##)|Honda Bosch A|
|
|Honda|Fit 2018-20|Honda Sensing|openpilot|25 mph|12 mph|[](##)|[](##)|Honda Nidec|
|
||||||
|Honda|Inspire 2018|All|Stock|0 mph|3 mph|[](##)|Honda Bosch A|
|
|Honda|Freed 2020|Honda Sensing|openpilot|25 mph|12 mph|[](##)|[](##)|Honda Nidec|
|
||||||
|Honda|Odyssey 2018-20|Honda Sensing|openpilot|25 mph|0 mph|[](##)|Honda Nidec|
|
|Honda|HR-V 2019-22|Honda Sensing|openpilot|25 mph|12 mph|[](##)|[](##)|Honda Nidec|
|
||||||
|Honda|Passport 2019-21|All|openpilot|25 mph|12 mph|[](##)|Honda Nidec|
|
|Honda|Insight 2019-22|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|3 mph|[](##)|[](##)|Honda Bosch A|
|
||||||
|Honda|Pilot 2016-22|Honda Sensing|openpilot|25 mph|12 mph|[](##)|Honda Nidec|
|
|Honda|Inspire 2018|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|3 mph|[](##)|[](##)|Honda Bosch A|
|
||||||
|Honda|Ridgeline 2017-22|Honda Sensing|openpilot|25 mph|12 mph|[](##)|Honda Nidec|
|
|Honda|Odyssey 2018-20|Honda Sensing|openpilot|25 mph|0 mph|[](##)|[](##)|Honda Nidec|
|
||||||
|Hyundai|Elantra 2017-19|Smart Cruise Control (SCC) & LKAS|Stock|19 mph|32 mph|[](##)|Hyundai B|
|
|Honda|Passport 2019-21|All|openpilot|25 mph|12 mph|[](##)|[](##)|Honda Nidec|
|
||||||
|Hyundai|Elantra 2021-22|Smart Cruise Control (SCC) & LKAS|Stock|0 mph|0 mph|[](##)|Hyundai K|
|
|Honda|Pilot 2016-22|Honda Sensing|openpilot|25 mph|12 mph|[](##)|[](##)|Honda Nidec|
|
||||||
|Hyundai|Elantra Hybrid 2021-22|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|Hyundai K|
|
|Honda|Ridgeline 2017-22|Honda Sensing|openpilot|25 mph|12 mph|[](##)|[](##)|Honda Nidec|
|
||||||
|Hyundai|Genesis 2015-16|Smart Cruise Control (SCC) & LKAS|Stock|19 mph|37 mph|[](##)|Hyundai J|
|
|Hyundai|Elantra 2017-19|Smart Cruise Control (SCC)|Stock|19 mph|32 mph|[](##)|[](##)|Hyundai B|
|
||||||
|Hyundai|Ioniq 5 2022|Highway Driving Assist II|Stock|0 mph|0 mph|[](##)|Hyundai Q|
|
|Hyundai|Elantra 2021-22|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Hyundai K|
|
||||||
|Hyundai|Ioniq Electric 2019|Smart Cruise Control (SCC) & LKAS|Stock|0 mph|32 mph|[](##)|Hyundai C|
|
|Hyundai|Elantra GT 2017-19|Smart Cruise Control (SCC)|Stock|0 mph|32 mph|[](##)|[](##)|Hyundai E|
|
||||||
|Hyundai|Ioniq Electric 2020|Smart Cruise Control (SCC) & LKAS|Stock|0 mph|0 mph|[](##)|Hyundai H|
|
|Hyundai|Elantra Hybrid 2021-23|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Hyundai K|
|
||||||
|Hyundai|Ioniq Hybrid 2017-19|Smart Cruise Control (SCC) & LKAS|Stock|0 mph|32 mph|[](##)|Hyundai C|
|
|Hyundai|Genesis 2015-16|Smart Cruise Control (SCC)|Stock|19 mph|37 mph|[](##)|[](##)|Hyundai J|
|
||||||
|Hyundai|Ioniq Hybrid 2020-22|Smart Cruise Control (SCC) & LFA|Stock|0 mph|0 mph|[](##)|Hyundai H|
|
|Hyundai|i30 2017-19|Smart Cruise Control (SCC)|Stock|0 mph|32 mph|[](##)|[](##)|Hyundai E|
|
||||||
|Hyundai|Ioniq Plug-in Hybrid 2019|Smart Cruise Control (SCC) & LKAS|Stock|0 mph|32 mph|[](##)|Hyundai C|
|
|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|[](##)|[](##)|Hyundai Q|
|
||||||
|Hyundai|Ioniq Plug-in Hybrid 2020-21|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|Hyundai H|
|
|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|[](##)|[](##)|Hyundai K|
|
||||||
|Hyundai|Kona 2020|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|Hyundai B|
|
|Hyundai|Ioniq Electric 2019|Smart Cruise Control (SCC)|Stock|0 mph|32 mph|[](##)|[](##)|Hyundai C|
|
||||||
|Hyundai|Kona Electric 2018-21|Smart Cruise Control (SCC) & LKAS|Stock|0 mph|0 mph|[](##)|Hyundai G|
|
|Hyundai|Ioniq Electric 2020|All|Stock|0 mph|0 mph|[](##)|[](##)|Hyundai H|
|
||||||
|Hyundai|Kona Electric 2022|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|Hyundai O|
|
|Hyundai|Ioniq Hybrid 2017-19|Smart Cruise Control (SCC)|Stock|0 mph|32 mph|[](##)|[](##)|Hyundai C|
|
||||||
|Hyundai|Kona Hybrid 2020|Smart Cruise Control (SCC) & LKAS|Stock|0 mph|0 mph|[](##)|Hyundai I|
|
|Hyundai|Ioniq Hybrid 2020-22|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|[](##)|Hyundai H|
|
||||||
|Hyundai|Palisade 2020-22|All|openpilot|0 mph|0 mph|[](##)|Hyundai H|
|
|Hyundai|Ioniq Plug-in Hybrid 2019|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|32 mph|[](##)|[](##)|Hyundai C|
|
||||||
|Hyundai|Santa Fe 2019-20|All|openpilot|0 mph|0 mph|[](##)|Hyundai D|
|
|Hyundai|Ioniq Plug-in Hybrid 2020-21|All|Stock|0 mph|0 mph|[](##)|[](##)|Hyundai H|
|
||||||
|Hyundai|Santa Fe 2021-22|All|Stock|0 mph|0 mph|[](##)|Hyundai L|
|
|Hyundai|Kona 2020|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Hyundai B|
|
||||||
|Hyundai|Santa Fe Hybrid 2022|All|Stock|0 mph|0 mph|[](##)|Hyundai L|
|
|Hyundai|Kona Electric 2018-21|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|[](##)|Hyundai G|
|
||||||
|Hyundai|Santa Fe Plug-in Hybrid 2022|All|Stock|0 mph|0 mph|[](##)|Hyundai L|
|
|Hyundai|Kona Electric 2022|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|[](##)|Hyundai O|
|
||||||
|Hyundai|Sonata 2018-19|Smart Cruise Control (SCC) & LKAS|Stock|0 mph|0 mph|[](##)|Hyundai E|
|
|Hyundai|Kona Hybrid 2020|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Hyundai I|
|
||||||
|Hyundai|Sonata 2020-22|All|openpilot|0 mph|0 mph|[](##)|Hyundai A|
|
|Hyundai|Palisade 2020-22|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Hyundai H|
|
||||||
|Hyundai|Sonata Hybrid 2020-22|All|openpilot|0 mph|0 mph|[](##)|Hyundai A|
|
|Hyundai|Santa Cruz 2021-22[<sup>5</sup>](#footnotes)|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|[](##)|Hyundai N|
|
||||||
|Hyundai|Tucson 2021|Smart Cruise Control (SCC)|Stock|19 mph|0 mph|[](##)|Hyundai L|
|
|Hyundai|Santa Fe 2019-20|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Hyundai D|
|
||||||
|Hyundai|Tucson Diesel 2019|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|Hyundai L|
|
|Hyundai|Santa Fe 2021-22|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Hyundai L|
|
||||||
|Hyundai|Tucson Hybrid 2022|All|Stock|0 mph|0 mph|[](##)|Hyundai N|
|
|Hyundai|Santa Fe Hybrid 2022|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Hyundai L|
|
||||||
|Hyundai|Veloster 2019-20|Smart Cruise Control (SCC)|Stock|5 mph|0 mph|[](##)|Hyundai E|
|
|Hyundai|Santa Fe Plug-in Hybrid 2022|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Hyundai L|
|
||||||
|Jeep|Grand Cherokee 2016-18|Adaptive Cruise Control|Stock|0 mph|9 mph|[](##)|FCA|
|
|Hyundai|Sonata 2018-19|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|[](##)|Hyundai E|
|
||||||
|Jeep|Grand Cherokee 2019-21|Adaptive Cruise Control|Stock|0 mph|39 mph|[](##)|FCA|
|
|Hyundai|Sonata 2020-22|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Hyundai A|
|
||||||
|Kia|Ceed 2019|Smart Cruise Control (SCC) & LKAS|Stock|0 mph|0 mph|[](##)|Hyundai E|
|
|Hyundai|Sonata Hybrid 2020-22|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Hyundai A|
|
||||||
|Kia|EV6 2022|Highway Driving Assist II|Stock|0 mph|0 mph|[](##)|Hyundai P|
|
|Hyundai|Tucson 2021|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|19 mph|0 mph|[](##)|[](##)|Hyundai L|
|
||||||
|Kia|Forte 2018|Smart Cruise Control (SCC) & LKAS|Stock|0 mph|0 mph|[](##)|Hyundai B|
|
|Hyundai|Tucson 2022[<sup>5</sup>](#footnotes)|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|[](##)|Hyundai N|
|
||||||
|Kia|Forte 2019-21|All|Stock|0 mph|0 mph|[](##)|Hyundai G|
|
|Hyundai|Tucson 2023[<sup>5</sup>](#footnotes)|All|Stock|0 mph|0 mph|[](##)|[](##)|Hyundai N|
|
||||||
|Kia|K5 2021-22|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|Hyundai A|
|
|Hyundai|Tucson Diesel 2019|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Hyundai L|
|
||||||
|Kia|Niro Electric 2019|All|openpilot|0 mph|0 mph|[](##)|Hyundai H|
|
|Hyundai|Tucson Hybrid 2022[<sup>5</sup>](#footnotes)|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Hyundai N|
|
||||||
|Kia|Niro Electric 2020|All|openpilot|0 mph|0 mph|[](##)|Hyundai F|
|
|Hyundai|Veloster 2019-20|Smart Cruise Control (SCC)|Stock|5 mph|0 mph|[](##)|[](##)|Hyundai E|
|
||||||
|Kia|Niro Electric 2021|All|openpilot|0 mph|0 mph|[](##)|Hyundai C|
|
|Jeep|Grand Cherokee 2016-18|Adaptive Cruise Control (ACC)|Stock|0 mph|9 mph|[](##)|[](##)|FCA|
|
||||||
|Kia|Niro Electric 2022|All|openpilot|0 mph|0 mph|[](##)|Hyundai H|
|
|Jeep|Grand Cherokee 2019-21|Adaptive Cruise Control (ACC)|Stock|0 mph|39 mph|[](##)|[](##)|FCA|
|
||||||
|Kia|Niro Hybrid 2021|Smart Cruise Control (SCC) & LKAS|Stock|0 mph|0 mph|[](##)|Hyundai F|
|
|Kia|Ceed 2019|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|[](##)|Hyundai E|
|
||||||
|Kia|Niro Hybrid 2022|Smart Cruise Control (SCC) & LKAS|Stock|0 mph|0 mph|[](##)|Hyundai H|
|
|Kia|EV6 (with HDA II) 2022[<sup>5</sup>](#footnotes)|Highway Driving Assist II|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Hyundai P|
|
||||||
|Kia|Niro Plug-in Hybrid 2018-19|Smart Cruise Control (SCC) & LKAS|openpilot|10 mph|32 mph|[](##)|Hyundai C|
|
|Kia|EV6 (without HDA II) 2022[<sup>5</sup>](#footnotes)|Highway Driving Assist|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Hyundai L|
|
||||||
|Kia|Optima 2017|Smart Cruise Control (SCC) & LKAS|Stock|0 mph|32 mph|[](##)|Hyundai B|
|
|Kia|Forte 2019-21|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Hyundai G|
|
||||||
|Kia|Optima 2019|Smart Cruise Control (SCC) & LKAS|Stock|0 mph|0 mph|[](##)|Hyundai G|
|
|Kia|K5 2021-22|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Hyundai A|
|
||||||
|Kia|Seltos 2021|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|Hyundai A|
|
|Kia|Niro EV 2019|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Hyundai H|
|
||||||
|Kia|Sorento 2018|Smart Cruise Control (SCC) & LKAS|Stock|0 mph|0 mph|[](##)|Hyundai C|
|
|Kia|Niro EV 2020|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Hyundai F|
|
||||||
|Kia|Sorento 2019|Smart Cruise Control (SCC) & LKAS|Stock|0 mph|0 mph|[](##)|Hyundai E|
|
|Kia|Niro EV 2021|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Hyundai C|
|
||||||
|Kia|Stinger 2018-20|Smart Cruise Control (SCC) & LKAS|Stock|0 mph|0 mph|[](##)|Hyundai C|
|
|Kia|Niro EV 2022|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Hyundai H|
|
||||||
|Kia|Telluride 2020|All|openpilot|0 mph|0 mph|[](##)|Hyundai H|
|
|Kia|Niro Hybrid 2021|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Hyundai F|
|
||||||
|Lexus|CT Hybrid 2017-18|Lexus Safety System+|Stock[<sup>3</sup>](#footnotes)|0 mph|0 mph|[](##)|Toyota|
|
|Kia|Niro Hybrid 2022|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Hyundai H|
|
||||||
|Lexus|ES 2019-22|All|openpilot|0 mph|0 mph|[](##)|Toyota|
|
|Kia|Niro Plug-in Hybrid 2018-19|All|openpilot available[<sup>1</sup>](#footnotes)|10 mph|32 mph|[](##)|[](##)|Hyundai C|
|
||||||
|Lexus|ES Hybrid 2017-18|Lexus Safety System+|Stock[<sup>3</sup>](#footnotes)|0 mph|0 mph|[](##)|Toyota|
|
|Kia|Optima 2017|Advanced Smart Cruise Control|Stock|0 mph|32 mph|[](##)|[](##)|Hyundai B|
|
||||||
|Lexus|ES Hybrid 2019-22|All|openpilot|0 mph|0 mph|[](##)|Toyota|
|
|Kia|Optima 2019-20|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|[](##)|Hyundai G|
|
||||||
|Lexus|IS 2017-19|All|Stock|19 mph|0 mph|[](##)|Toyota|
|
|Kia|Seltos 2021|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Hyundai A|
|
||||||
|Lexus|NX 2018-19|All|Stock[<sup>3</sup>](#footnotes)|0 mph|0 mph|[](##)|Toyota|
|
|Kia|Sorento 2018|Advanced Smart Cruise Control|Stock|0 mph|0 mph|[](##)|[](##)|Hyundai C|
|
||||||
|Lexus|NX 2020-21|All|openpilot|0 mph|0 mph|[](##)|Toyota|
|
|Kia|Sorento 2019|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|[](##)|Hyundai E|
|
||||||
|Lexus|NX Hybrid 2018-19|All|Stock[<sup>3</sup>](#footnotes)|0 mph|0 mph|[](##)|Toyota|
|
|Kia|Sorento Plug-in Hybrid 2022-23[<sup>5</sup>](#footnotes)|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|[](##)|Hyundai A|
|
||||||
|Lexus|NX Hybrid 2020-21|All|openpilot|0 mph|0 mph|[](##)|Toyota|
|
|Kia|Sportage 2023[<sup>5</sup>](#footnotes)|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|[](##)|Hyundai N|
|
||||||
|Lexus|RC 2017-20|All|Stock|19 mph|0 mph|[](##)|Toyota|
|
|Kia|Sportage Hybrid 2023[<sup>5</sup>](#footnotes)|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Hyundai N|
|
||||||
|Lexus|RX 2016-19|All|Stock[<sup>3</sup>](#footnotes)|0 mph|0 mph|[](##)|Toyota|
|
|Kia|Stinger 2018-20|Smart Cruise Control (SCC)|Stock|0 mph|0 mph|[](##)|[](##)|Hyundai C|
|
||||||
|Lexus|RX 2020-22|All|openpilot|0 mph|0 mph|[](##)|Toyota|
|
|Kia|Stinger 2022|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Hyundai K|
|
||||||
|Lexus|RX Hybrid 2016-19|All|Stock[<sup>3</sup>](#footnotes)|0 mph|0 mph|[](##)|Toyota|
|
|Kia|Telluride 2020-22|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Hyundai H|
|
||||||
|Lexus|RX Hybrid 2020-21|All|openpilot|0 mph|0 mph|[](##)|Toyota|
|
|Lexus|CT Hybrid 2017-18|Lexus Safety System+|openpilot available[<sup>2</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Lexus|UX Hybrid 2019-22|All|openpilot|0 mph|0 mph|[](##)|Toyota|
|
|Lexus|ES 2019-22|All|openpilot|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Mazda|CX-5 2022|All|Stock|0 mph|0 mph|[](##)|Mazda|
|
|Lexus|ES Hybrid 2017-18|Lexus Safety System+|openpilot available[<sup>2</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Mazda|CX-9 2021-22|All|Stock|0 mph|28 mph|[](##)|Mazda|
|
|Lexus|ES Hybrid 2019-22|All|openpilot|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Nissan|Altima 2019-20|ProPILOT Assist|Stock|0 mph|0 mph|[](##)|Nissan B|
|
|Lexus|IS 2017-19|All|Stock|19 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Nissan|Leaf 2018-22|ProPILOT Assist|Stock|0 mph|0 mph|[](##)|Nissan A|
|
|Lexus|NX 2018-19|All|openpilot available[<sup>2</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Nissan|Rogue 2018-20|ProPILOT Assist|Stock|0 mph|0 mph|[](##)|Nissan A|
|
|Lexus|NX 2020-21|All|openpilot|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Nissan|X-Trail 2017|ProPILOT Assist|Stock|0 mph|0 mph|[](##)|Nissan A|
|
|Lexus|NX Hybrid 2018-19|All|openpilot available[<sup>2</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Ram|1500 2019-22|Adaptive Cruise Control|Stock|0 mph|32 mph|[](##)|Ram|
|
|Lexus|NX Hybrid 2020-21|All|openpilot|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|SEAT|Ateca 2018|Driver Assistance|Stock|0 mph|0 mph|[](##)|VW|
|
|Lexus|RC 2017-20|All|Stock|19 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|SEAT|Leon 2014-20|Driver Assistance|Stock|0 mph|0 mph|[](##)|VW|
|
|Lexus|RX 2016|Lexus Safety System+|openpilot available[<sup>2</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Subaru|Ascent 2019-21|All|Stock|0 mph|0 mph|[](##)|Subaru A|
|
|Lexus|RX 2017-19|All|openpilot available[<sup>2</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Subaru|Crosstrek 2018-19|EyeSight Driver Assistance|Stock|0 mph|0 mph|[](##)|Subaru A|
|
|Lexus|RX 2020-22|All|openpilot|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Subaru|Crosstrek 2020-21|EyeSight Driver Assistance|Stock|0 mph|0 mph|[](##)|Subaru A|
|
|Lexus|RX Hybrid 2016|Lexus Safety System+|openpilot available[<sup>2</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Subaru|Forester 2019-21|All|Stock|0 mph|0 mph|[](##)|Subaru A|
|
|Lexus|RX Hybrid 2017-19|All|openpilot available[<sup>2</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Subaru|Impreza 2017-19|EyeSight Driver Assistance|Stock|0 mph|0 mph|[](##)|Subaru A|
|
|Lexus|RX Hybrid 2020-21|All|openpilot|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Subaru|Impreza 2020-22|EyeSight Driver Assistance|Stock|0 mph|0 mph|[](##)|Subaru A|
|
|Lexus|UX Hybrid 2019-22|All|openpilot|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Subaru|Legacy 2020-22|All|Stock|0 mph|0 mph|[](##)|Subaru B|
|
|Mazda|CX-5 2022-23|All|Stock|0 mph|0 mph|[](##)|[](##)|Mazda|
|
||||||
|Subaru|Outback 2020-22|All|Stock|0 mph|0 mph|[](##)|Subaru B|
|
|Mazda|CX-9 2021-23|All|Stock|0 mph|28 mph|[](##)|[](##)|Mazda|
|
||||||
|Subaru|XV 2018-19|EyeSight Driver Assistance|Stock|0 mph|0 mph|[](##)|Subaru A|
|
|Nissan|Altima 2019-20|ProPILOT Assist|Stock|0 mph|0 mph|[](##)|[](##)|Nissan B|
|
||||||
|Subaru|XV 2020-21|EyeSight Driver Assistance|Stock|0 mph|0 mph|[](##)|Subaru A|
|
|Nissan|Leaf 2018-22|ProPILOT Assist|Stock|0 mph|0 mph|[](##)|[](##)|Nissan A|
|
||||||
|Škoda|Kamiq 2021[<sup>5</sup>](#footnotes)|Driver Assistance|Stock|0 mph|0 mph|[](##)|VW|
|
|Nissan|Rogue 2018-20|ProPILOT Assist|Stock|0 mph|0 mph|[](##)|[](##)|Nissan A|
|
||||||
|Škoda|Karoq 2019-21[<sup>7</sup>](#footnotes)|Driver Assistance|Stock|0 mph|0 mph|[](##)|VW|
|
|Nissan|X-Trail 2017|ProPILOT Assist|Stock|0 mph|0 mph|[](##)|[](##)|Nissan A|
|
||||||
|Škoda|Kodiaq 2018-19|Driver Assistance|Stock|0 mph|0 mph|[](##)|VW|
|
|Ram|1500 2019-22|Adaptive Cruise Control (ACC)|Stock|0 mph|32 mph|[](##)|[](##)|Ram|
|
||||||
|Škoda|Octavia 2015, 2018-19|Driver Assistance|Stock|0 mph|0 mph|[](##)|VW|
|
|SEAT|Ateca 2018|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|Škoda|Octavia RS 2016|Driver Assistance|Stock|0 mph|0 mph|[](##)|VW|
|
|SEAT|Leon 2014-20|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|Škoda|Scala 2020|Driver Assistance|Stock|0 mph|0 mph|[](##)|VW|
|
|Subaru|Ascent 2019-21|All|Stock|0 mph|0 mph|[](##)|[](##)|Subaru A|
|
||||||
|Škoda|Superb 2015-18|Driver Assistance|Stock|0 mph|0 mph|[](##)|VW|
|
|Subaru|Crosstrek 2018-19|EyeSight Driver Assistance|Stock|0 mph|0 mph|[](##)|[](##)|Subaru A|
|
||||||
|Toyota|Alphard 2019-20|All|openpilot|0 mph|0 mph|[](##)|Toyota|
|
|Subaru|Crosstrek 2020-23|EyeSight Driver Assistance|Stock|0 mph|0 mph|[](##)|[](##)|Subaru A|
|
||||||
|Toyota|Alphard Hybrid 2021|All|openpilot|0 mph|0 mph|[](##)|Toyota|
|
|Subaru|Forester 2019-21|All|Stock|0 mph|0 mph|[](##)|[](##)|Subaru A|
|
||||||
|Toyota|Avalon 2016|Toyota Safety Sense P|Stock[<sup>3</sup>](#footnotes)|19 mph|0 mph|[](##)|Toyota|
|
|Subaru|Impreza 2017-19|EyeSight Driver Assistance|Stock|0 mph|0 mph|[](##)|[](##)|Subaru A|
|
||||||
|Toyota|Avalon 2017-18|All|Stock[<sup>3</sup>](#footnotes)|19 mph|0 mph|[](##)|Toyota|
|
|Subaru|Impreza 2020-22|EyeSight Driver Assistance|Stock|0 mph|0 mph|[](##)|[](##)|Subaru A|
|
||||||
|Toyota|Avalon 2019-21|All|Stock[<sup>3</sup>](#footnotes)|0 mph|0 mph|[](##)|Toyota|
|
|Subaru|Legacy 2020-22|All|Stock|0 mph|0 mph|[](##)|[](##)|Subaru B|
|
||||||
|Toyota|Avalon 2022|All|openpilot|0 mph|0 mph|[](##)|Toyota|
|
|Subaru|Outback 2020-22|All|Stock|0 mph|0 mph|[](##)|[](##)|Subaru B|
|
||||||
|Toyota|Avalon Hybrid 2019-21|All|Stock[<sup>3</sup>](#footnotes)|0 mph|0 mph|[](##)|Toyota|
|
|Subaru|XV 2018-19|EyeSight Driver Assistance|Stock|0 mph|0 mph|[](##)|[](##)|Subaru A|
|
||||||
|Toyota|Avalon Hybrid 2022|All|openpilot|0 mph|0 mph|[](##)|Toyota|
|
|Subaru|XV 2020-21|EyeSight Driver Assistance|Stock|0 mph|0 mph|[](##)|[](##)|Subaru A|
|
||||||
|Toyota|C-HR 2017-21|All|Stock|0 mph|0 mph|[](##)|Toyota|
|
|Škoda|Kamiq 2021[<sup>7</sup>](#footnotes)|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533[<sup>10</sup>](#footnotes)|
|
||||||
|Toyota|C-HR Hybrid 2017-19|All|Stock|0 mph|0 mph|[](##)|Toyota|
|
|Škoda|Karoq 2019-21|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|Toyota|Camry 2018-20|All|Stock|0 mph[<sup>4</sup>](#footnotes)|0 mph|[](##)|Toyota|
|
|Škoda|Kodiaq 2018-19|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|Toyota|Camry 2021-22|All|openpilot|0 mph[<sup>4</sup>](#footnotes)|0 mph|[](##)|Toyota|
|
|Škoda|Octavia 2015, 2018-19|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|Toyota|Camry Hybrid 2018-20|All|Stock|0 mph|0 mph|[](##)|Toyota|
|
|Škoda|Octavia RS 2016|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|Toyota|Camry Hybrid 2021-22|All|openpilot|0 mph|0 mph|[](##)|Toyota|
|
|Škoda|Scala 2020|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533[<sup>10</sup>](#footnotes)|
|
||||||
|Toyota|Corolla 2017-19|All|Stock[<sup>3</sup>](#footnotes)|19 mph|0 mph|[](##)|Toyota|
|
|Škoda|Superb 2015-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|Toyota|Corolla 2020-22|All|openpilot|0 mph|0 mph|[](##)|Toyota|
|
|Toyota|Alphard 2019-20|All|openpilot|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Toyota|Corolla Cross (Non-US only) 2020-21|All|openpilot|17 mph|0 mph|[](##)|Toyota|
|
|Toyota|Alphard Hybrid 2021|All|openpilot|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Toyota|Corolla Cross Hybrid (Non-US only) 2020-22|All|openpilot|17 mph|0 mph|[](##)|Toyota|
|
|Toyota|Avalon 2016|Toyota Safety Sense P|openpilot available[<sup>2</sup>](#footnotes)|19 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Toyota|Corolla Hatchback 2019-22|All|openpilot|0 mph|0 mph|[](##)|Toyota|
|
|Toyota|Avalon 2017-18|All|openpilot available[<sup>2</sup>](#footnotes)|19 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Toyota|Corolla Hybrid 2020-22|All|openpilot|0 mph|0 mph|[](##)|Toyota|
|
|Toyota|Avalon 2019-21|All|openpilot available[<sup>2</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Toyota|Highlander 2017-19|All|Stock[<sup>3</sup>](#footnotes)|0 mph|0 mph|[](##)|Toyota|
|
|Toyota|Avalon 2022|All|openpilot|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Toyota|Highlander 2020-22|All|openpilot|0 mph|0 mph|[](##)|Toyota|
|
|Toyota|Avalon Hybrid 2019-21|All|openpilot available[<sup>2</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Toyota|Highlander Hybrid 2017-19|All|Stock[<sup>3</sup>](#footnotes)|0 mph|0 mph|[](##)|Toyota|
|
|Toyota|Avalon Hybrid 2022|All|openpilot|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Toyota|Highlander Hybrid 2020-22|All|openpilot|0 mph|0 mph|[](##)|Toyota|
|
|Toyota|C-HR 2017-21|All|Stock|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Toyota|Mirai 2021|All|openpilot|0 mph|0 mph|[](##)|Toyota|
|
|Toyota|C-HR Hybrid 2017-19|All|Stock|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Toyota|Prius 2016|Toyota Safety Sense P|Stock[<sup>3</sup>](#footnotes)|0 mph|0 mph|[](##)|Toyota|
|
|Toyota|Camry 2018-20|All|Stock|0 mph[<sup>6</sup>](#footnotes)|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Toyota|Prius 2017-20|All|Stock[<sup>3</sup>](#footnotes)|0 mph|0 mph|[](##)|Toyota|
|
|Toyota|Camry 2021-22|All|openpilot|0 mph[<sup>6</sup>](#footnotes)|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Toyota|Prius 2021-22|All|openpilot|0 mph|0 mph|[](##)|Toyota|
|
|Toyota|Camry Hybrid 2018-20|All|Stock|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Toyota|Prius Prime 2017-20|All|Stock[<sup>3</sup>](#footnotes)|0 mph|0 mph|[](##)|Toyota|
|
|Toyota|Camry Hybrid 2021-23|All|openpilot|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Toyota|Prius Prime 2021-22|All|openpilot|0 mph|0 mph|[](##)|Toyota|
|
|Toyota|Corolla 2017-19|All|openpilot available[<sup>2</sup>](#footnotes)|19 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Toyota|Prius v 2017|Toyota Safety Sense P|Stock[<sup>3</sup>](#footnotes)|19 mph|0 mph|[](##)|Toyota|
|
|Toyota|Corolla 2020-22|All|openpilot|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Toyota|RAV4 2016|Toyota Safety Sense P|Stock[<sup>3</sup>](#footnotes)|19 mph|0 mph|[](##)|Toyota|
|
|Toyota|Corolla Cross (Non-US only) 2020-23|All|openpilot|17 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Toyota|RAV4 2017-18|All|Stock[<sup>3</sup>](#footnotes)|19 mph|0 mph|[](##)|Toyota|
|
|Toyota|Corolla Cross Hybrid (Non-US only) 2020-22|All|openpilot|17 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Toyota|RAV4 2019-21|All|openpilot|0 mph|0 mph|[](##)|Toyota|
|
|Toyota|Corolla Hatchback 2019-22|All|openpilot|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Toyota|RAV4 2022|All|Stock|0 mph|0 mph|[](##)|Toyota|
|
|Toyota|Corolla Hybrid 2020-22|All|openpilot|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Toyota|RAV4 Hybrid 2016|Toyota Safety Sense P|Stock[<sup>3</sup>](#footnotes)|0 mph|0 mph|[](##)|Toyota|
|
|Toyota|Highlander 2017-19|All|openpilot available[<sup>2</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Toyota|RAV4 Hybrid 2017-18|All|Stock[<sup>3</sup>](#footnotes)|0 mph|0 mph|[](##)|Toyota|
|
|Toyota|Highlander 2020-22|All|openpilot|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Toyota|RAV4 Hybrid 2019-21|All|openpilot|0 mph|0 mph|[](##)|Toyota|
|
|Toyota|Highlander Hybrid 2017-19|All|openpilot available[<sup>2</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Toyota|RAV4 Hybrid 2022|All|Stock|0 mph|0 mph|[](##)|Toyota|
|
|Toyota|Highlander Hybrid 2020-22|All|openpilot|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Toyota|Sienna 2018-20|All|Stock[<sup>3</sup>](#footnotes)|19 mph|0 mph|[](##)|Toyota|
|
|Toyota|Mirai 2021|All|openpilot|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Volkswagen|Arteon 2018-22[<sup>7,8</sup>](#footnotes)|Driver Assistance|Stock|0 mph|0 mph|[](##)|J533|
|
|Toyota|Prius 2016|Toyota Safety Sense P|openpilot available[<sup>2</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Volkswagen|Arteon eHybrid 2020-22[<sup>7,8</sup>](#footnotes)|Driver Assistance|Stock|0 mph|0 mph|[](##)|J533|
|
|Toyota|Prius 2017-20|All|openpilot available[<sup>2</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Volkswagen|Arteon R 2020-22[<sup>7,8</sup>](#footnotes)|Driver Assistance|Stock|0 mph|0 mph|[](##)|J533|
|
|Toyota|Prius 2021-22|All|openpilot|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Volkswagen|Atlas 2018-22[<sup>7</sup>](#footnotes)|Driver Assistance|Stock|0 mph|0 mph|[](##)|J533|
|
|Toyota|Prius Prime 2017-20|All|openpilot available[<sup>2</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Volkswagen|Atlas Cross Sport 2021-22[<sup>7</sup>](#footnotes)|Driver Assistance|Stock|0 mph|0 mph|[](##)|J533|
|
|Toyota|Prius Prime 2021-22|All|openpilot|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Volkswagen|California 2021[<sup>7</sup>](#footnotes)|Driver Assistance|Stock|0 mph|31 mph|[](##)|J533|
|
|Toyota|Prius v 2017|Toyota Safety Sense P|openpilot available[<sup>2</sup>](#footnotes)|19 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Volkswagen|Caravelle 2020[<sup>7</sup>](#footnotes)|Driver Assistance|Stock|0 mph|31 mph|[](##)|J533|
|
|Toyota|RAV4 2016|Toyota Safety Sense P|openpilot available[<sup>2</sup>](#footnotes)|19 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Volkswagen|CC 2018-22[<sup>7,8</sup>](#footnotes)|Driver Assistance|Stock|0 mph|0 mph|[](##)|J533|
|
|Toyota|RAV4 2017-18|All|openpilot available[<sup>2</sup>](#footnotes)|19 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Volkswagen|e-Golf 2014-20|Driver Assistance|Stock|0 mph|0 mph|[](##)|VW|
|
|Toyota|RAV4 2019-21|All|openpilot|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Volkswagen|Golf 2015-20[<sup>8</sup>](#footnotes)|Driver Assistance|Stock|0 mph|0 mph|[](##)|VW|
|
|Toyota|RAV4 2022|All|Stock|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Volkswagen|Golf Alltrack 2015-19|Driver Assistance|Stock|0 mph|0 mph|[](##)|VW|
|
|Toyota|RAV4 Hybrid 2016|Toyota Safety Sense P|openpilot available[<sup>2</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Volkswagen|Golf GTD 2015-20|Driver Assistance|Stock|0 mph|0 mph|[](##)|VW|
|
|Toyota|RAV4 Hybrid 2017-18|All|openpilot available[<sup>2</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Volkswagen|Golf GTE 2015-20|Driver Assistance|Stock|0 mph|0 mph|[](##)|VW|
|
|Toyota|RAV4 Hybrid 2019-21|All|openpilot|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Volkswagen|Golf GTI 2015-21|Driver Assistance|Stock|0 mph|0 mph|[](##)|VW|
|
|Toyota|RAV4 Hybrid 2022|All|Stock|0 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Volkswagen|Golf R 2015-19[<sup>8</sup>](#footnotes)|Driver Assistance|Stock|0 mph|0 mph|[](##)|VW|
|
|Toyota|Sienna 2018-20|All|openpilot available[<sup>2</sup>](#footnotes)|19 mph|0 mph|[](##)|[](##)|Toyota|
|
||||||
|Volkswagen|Golf SportsVan 2015-20|Driver Assistance|Stock|0 mph|0 mph|[](##)|VW|
|
|Volkswagen|Arteon 2018-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|Volkswagen|Jetta 2018-22[<sup>7</sup>](#footnotes)|Driver Assistance|Stock|0 mph|0 mph|[](##)|J533|
|
|Volkswagen|Arteon eHybrid 2020-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|Volkswagen|Jetta GLI 2021-22[<sup>7</sup>](#footnotes)|Driver Assistance|Stock|0 mph|0 mph|[](##)|J533|
|
|Volkswagen|Arteon R 2020-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|Volkswagen|Passat 2015-22[<sup>6,7,8</sup>](#footnotes)|Driver Assistance|Stock|0 mph|0 mph|[](##)|J533|
|
|Volkswagen|Atlas 2018-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|Volkswagen|Passat Alltrack 2015-22[<sup>7</sup>](#footnotes)|Driver Assistance|Stock|0 mph|0 mph|[](##)|J533|
|
|Volkswagen|Atlas Cross Sport 2021-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|Volkswagen|Passat GTE 2015-22[<sup>7,8</sup>](#footnotes)|Driver Assistance|Stock|0 mph|0 mph|[](##)|J533|
|
|Volkswagen|California 2021|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|31 mph|[](##)|[](##)|J533|
|
||||||
|Volkswagen|Polo 2020-22[<sup>7</sup>](#footnotes)|Driver Assistance|Stock|0 mph|0 mph|[](##)|J533|
|
|Volkswagen|Caravelle 2020|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|31 mph|[](##)|[](##)|J533|
|
||||||
|Volkswagen|Polo GTI 2020-22[<sup>7</sup>](#footnotes)|Driver Assistance|Stock|0 mph|0 mph|[](##)|J533|
|
|Volkswagen|CC 2018-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|Volkswagen|T-Cross 2021[<sup>7</sup>](#footnotes)|Driver Assistance|Stock|0 mph|0 mph|[](##)|J533|
|
|Volkswagen|e-Golf 2014-20|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|Volkswagen|T-Roc 2021[<sup>7</sup>](#footnotes)|Driver Assistance|Stock|0 mph|0 mph|[](##)|J533|
|
|Volkswagen|Golf 2015-20|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|Volkswagen|Taos 2022[<sup>7</sup>](#footnotes)|Driver Assistance|Stock|0 mph|0 mph|[](##)|J533|
|
|Volkswagen|Golf Alltrack 2015-19|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|Volkswagen|Teramont 2018-22[<sup>7</sup>](#footnotes)|Driver Assistance|Stock|0 mph|0 mph|[](##)|J533|
|
|Volkswagen|Golf GTD 2015-20|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|Volkswagen|Teramont Cross Sport 2021-22[<sup>7</sup>](#footnotes)|Driver Assistance|Stock|0 mph|0 mph|[](##)|J533|
|
|Volkswagen|Golf GTE 2015-20|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|Volkswagen|Teramont X 2021-22[<sup>7</sup>](#footnotes)|Driver Assistance|Stock|0 mph|0 mph|[](##)|J533|
|
|Volkswagen|Golf GTI 2015-21|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|Volkswagen|Tiguan 2019-22[<sup>7</sup>](#footnotes)|Driver Assistance|Stock|0 mph|0 mph|[](##)|J533|
|
|Volkswagen|Golf R 2015-19|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|Volkswagen|Touran 2017|Driver Assistance|Stock|0 mph|0 mph|[](##)|VW|
|
|Volkswagen|Golf SportsVan 2015-20|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|
|Volkswagen|Jetta 2018-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|
|Volkswagen|Jetta GLI 2021-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|
|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|[](##)|[](##)|J533|
|
||||||
|
|Volkswagen|Passat Alltrack 2015-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|
|Volkswagen|Passat GTE 2015-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|
|Volkswagen|Polo 2020-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533[<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|[](##)|[](##)|J533[<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|[](##)|[](##)|J533[<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|[](##)|[](##)|J533[<sup>10</sup>](#footnotes)|
|
||||||
|
|Volkswagen|Taos 2022|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|
|Volkswagen|Teramont 2018-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|
|Volkswagen|Teramont Cross Sport 2021-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|
|Volkswagen|Teramont X 2021-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|
|Volkswagen|Tiguan 2019-22|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|
|Volkswagen|Touran 2017|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[](##)|[](##)|J533|
|
||||||
|
|
||||||
<a id="footnotes"></a>
|
<a id="footnotes"></a>
|
||||||
<sup>1</sup>Requires a <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>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>2019 Honda Civic 1.6L Diesel Sedan does not have ALC below 12mph. <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>When the Driver Support Unit (DSU) is disconnected, 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>3</sup>Requires a <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>4</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>4</sup>2019 Honda Civic 1.6L Diesel Sedan does not have ALC below 12mph. <br />
|
||||||
<sup>5</sup>Not including the China market Kamiq, which is based on the (currently) unsupported PQ34 platform. <br />
|
<sup>5</sup>Requires a <a href="https://comma.ai/shop/panda" target="_blank">red panda</a>, additional <a href="https://comma.ai/shop/harness-box" target="_blank">harness box</a>, additional <a href="https://comma.ai/shop/obd-c-cable" target="_blank">OBD-C cable</a>, USB-A to USB-A cable, and a USB-A to USB-C OTG dongle. <br />
|
||||||
<sup>6</sup>Refers only to the MQB-based European B8 Passat, not the NMS Passat in the USA/China/Mideast markets. <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>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). In the interim, if your car has a J533 connector CAN gateway inside the dashboard, choose "VW J533 Development" from the vehicle drop-down for a suitable harness. (Some newer models are also observed to not have a J533 connector.) <br />
|
<sup>7</sup>Not including the China market Kamiq, which is based on the (currently) unsupported PQ34 platform. <br />
|
||||||
<sup>8</sup>Includes versions with extra rear cargo space (may be called Variant, Estate, SportWagen, Shooting Brake, etc.) <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
|
## 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/).
|
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/).
|
||||||
|
|||||||
+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.
|
* Stock ACC is replaced by openpilot ACC.
|
||||||
* openpilot FCW operates in addition to stock FCW.
|
* 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
|
||||||
+27
-28
@@ -11,8 +11,9 @@ from datetime import datetime
|
|||||||
from math import sin, cos, sqrt, fabs, atan2
|
from math import sin, cos, sqrt, fabs, atan2
|
||||||
|
|
||||||
from .gps_time import GPSTime, utc_to_gpst
|
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 .constants import SPEED_OF_LIGHT, SECS_IN_MIN, SECS_IN_HR, SECS_IN_DAY, \
|
||||||
from .helpers import get_constellation
|
SECS_IN_WEEK, EARTH_ROTATION_RATE, EARTH_GM
|
||||||
|
from .helpers import get_constellation, get_prn_from_nmea_id
|
||||||
|
|
||||||
|
|
||||||
def read4(f, rinex_ver):
|
def read4(f, rinex_ver):
|
||||||
@@ -74,7 +75,7 @@ class EphemerisType(IntEnum):
|
|||||||
FINAL_ORBIT = 1
|
FINAL_ORBIT = 1
|
||||||
RAPID_ORBIT = 2
|
RAPID_ORBIT = 2
|
||||||
ULTRA_RAPID_ORBIT = 3
|
ULTRA_RAPID_ORBIT = 3
|
||||||
QCOM_POLY = 4 # Currently not supported
|
QCOM_POLY = 4
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def all_orbits():
|
def all_orbits():
|
||||||
@@ -225,7 +226,8 @@ class GLONASSEphemeris(Ephemeris):
|
|||||||
|
|
||||||
|
|
||||||
class PolyEphemeris(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):
|
def __init__(self, prn: str, data, epoch: GPSTime, ephem_type: EphemerisType,
|
||||||
|
file_epoch: GPSTime=None, file_name: str=None, 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)
|
super().__init__(prn, data, epoch, ephem_type, healthy, max_time_diff=SECS_IN_HR, file_epoch=file_epoch, file_name=file_name)
|
||||||
self.tgd = tgd
|
self.tgd = tgd
|
||||||
self.to_json()
|
self.to_json()
|
||||||
@@ -530,28 +532,25 @@ def parse_rinex_nav_msg_glonass(file_name):
|
|||||||
return ephems
|
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):
|
poly_data['clock'] = [1e-3*data.other[3], 1e-3*data.other[2], 1e-3*data.other[1], 1e-3*data.other[0]]
|
||||||
ephems = []
|
poly_data['deg'] = 3
|
||||||
for qcom_poly in qcom_polys:
|
poly_data['deg_t'] = 3
|
||||||
svId = qcom_poly.qcomGnss.drSvPoly.svId
|
return PolyEphemeris(prn, poly_data, epoch, ephem_type=EphemerisType.QCOM_POLY)
|
||||||
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
|
|
||||||
'''
|
|
||||||
|
|||||||
+5
-3
@@ -32,11 +32,13 @@ class ConstellationId(IntEnum):
|
|||||||
def from_qcom_source(cls, report_source: int):
|
def from_qcom_source(cls, report_source: int):
|
||||||
if report_source == 0:
|
if report_source == 0:
|
||||||
return ConstellationId.GPS
|
return ConstellationId.GPS
|
||||||
|
if report_source == 1:
|
||||||
|
return ConstellationId.GLONASS
|
||||||
|
if report_source == 2:
|
||||||
|
return ConstellationId.BEIDOU
|
||||||
if report_source == 6:
|
if report_source == 6:
|
||||||
return ConstellationId.SBAS
|
return ConstellationId.SBAS
|
||||||
elif report_source == 1:
|
raise NotImplementedError('Only GPS (0), GLONASS (1), BEIDOU (2) and SBAS (6) are supported from qcom, not:', {report_source})
|
||||||
return ConstellationId.GLONASS
|
|
||||||
raise NotImplementedError('Only GPS (0), SBAS (1) and GLONASS (6) are supported from qcom, not:', {report_source})
|
|
||||||
|
|
||||||
|
|
||||||
# From https://gpsd.gitlab.io/gpsd/NMEA.html#_satellite_ids
|
# From https://gpsd.gitlab.io/gpsd/NMEA.html#_satellite_ids
|
||||||
|
|||||||
+27
-2
@@ -166,6 +166,11 @@ function two_init {
|
|||||||
echo "Installing $MODULE..."
|
echo "Installing $MODULE..."
|
||||||
tar -zxvf "$LIB_PATH/$MODULE.tar.gz" -C "$PY_LIB_DEST/"
|
tar -zxvf "$LIB_PATH/$MODULE.tar.gz" -C "$PY_LIB_DEST/"
|
||||||
fi
|
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
|
mount -o remount,r /system
|
||||||
|
|
||||||
# Check for NEOS update
|
# Check for NEOS update
|
||||||
@@ -216,7 +221,18 @@ function agnos_init {
|
|||||||
fi
|
fi
|
||||||
$DIR/system/hardware/tici/updater $AGNOS_PY $MANIFEST
|
$DIR/system/hardware/tici/updater $AGNOS_PY $MANIFEST
|
||||||
fi
|
fi
|
||||||
./custom_dep.py
|
|
||||||
|
#dp: change splash logo
|
||||||
|
if [ -f "/usr/comma/.dp_splash" ]; then
|
||||||
|
echo "DP splash exists."
|
||||||
|
else
|
||||||
|
echo "DP splash not deployed yet"
|
||||||
|
sudo mount -o rw,remount /
|
||||||
|
sudo cp /data/openpilot/selfdrive/dragonpilot/bg.jpg /usr/comma/bg.jpg
|
||||||
|
sudo touch /usr/comma/.dp_splash
|
||||||
|
sudo mount -o ro,remount /
|
||||||
|
sudo reboot
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function launch {
|
function launch {
|
||||||
@@ -280,7 +296,16 @@ function launch {
|
|||||||
|
|
||||||
# start manager
|
# start manager
|
||||||
cd selfdrive/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
|
# if broken, keep on screen error
|
||||||
while true; do sleep 1; done
|
while true; do sleep 1; done
|
||||||
|
|||||||
+1
-1
@@ -11,7 +11,7 @@ if [ -z "$NEOS_VERSION" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z "$AGNOS_VERSION" ]; then
|
if [ -z "$AGNOS_VERSION" ]; then
|
||||||
export AGNOS_VERSION="5.2"
|
export AGNOS_VERSION="6.2"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z "$PASSIVE" ]; then
|
if [ -z "$PASSIVE" ]; then
|
||||||
|
|||||||
+2
-1
@@ -52,5 +52,6 @@ COPY SConstruct .
|
|||||||
COPY ./site_scons /project/site_scons
|
COPY ./site_scons /project/site_scons
|
||||||
COPY . /project/opendbc
|
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)
|
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
|
## 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.
|
Use [panda](https://github.com/commaai/panda) to connect your car to a computer.
|
||||||
|
|
||||||
|
|||||||
@@ -71,8 +71,19 @@ struct DBC {
|
|||||||
std::vector<Msg> msgs;
|
std::vector<Msg> msgs;
|
||||||
std::vector<Val> vals;
|
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
|
#ifndef QCOM
|
||||||
DBC* dbc_parse(const std::string& dbc_path);
|
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);
|
const DBC* dbc_lookup(const std::string& dbc_name);
|
||||||
std::vector<std::string> get_dbc_names();
|
std::vector<std::string> get_dbc_names();
|
||||||
#else
|
#else
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
+254
-253
@@ -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_ 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_ 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_ 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
|
BO_ 985 IPMA_Data2: 8 IPMA_ADAS
|
||||||
SG_ LdwChime_B_Rq : 34|1@0+ (1,0) [0|1] "SED" GWM
|
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_ 342 : ECM_Diesel,PCM,PCM_HEV;
|
||||||
BO_TX_BU_ 71 : 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_ BO_ "OvtpPushApplication" ENUM "FALSE","TRUE";
|
||||||
BA_DEF_ BU_ "OvtpOperationMode" ENUM "SERVER","CLIENT";
|
BA_DEF_ BU_ "OvtpOperationMode" ENUM "SERVER","CLIENT";
|
||||||
BA_DEF_ BU_ "OvtpEcuAddress" INT 0 1022;
|
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 DcacPlugPrsnt_B_Stat 1 "Yes" 0 "No";
|
||||||
VAL_ 922 DcacClntFlw_D_Rq 3 "High" 2 "Medium" 1 "Low" 0 "Off";
|
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";
|
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";
|
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ BO_ 201 ECMEngineStatus: 8 K20_ECM
|
|||||||
SG_ EngineTPS : 39|8@0+ (0.392156863,0) [0|100.000000065] "%" NEO
|
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_ EngineRPM : 15|16@0+ (0.25,0) [0|0] "RPM" NEO
|
||||||
SG_ CruiseMainOn : 29|1@0+ (1,0) [0|1] "" 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_ Standstill : 2|1@0+ (1,0) [0|1] "" NEO
|
||||||
SG_ CruiseActive : 31|2@0+ (1,0) [0|3] "" NEO
|
SG_ CruiseActive : 31|2@0+ (1,0) [0|3] "" NEO
|
||||||
|
|
||||||
@@ -84,6 +84,7 @@ BO_ 209 EBCMBrakePedalSensors: 7 K17_EBCM
|
|||||||
SG_ BrakeNormalized2 : 47|8@0- (-1,0) [0|255] "" XXX
|
SG_ BrakeNormalized2 : 47|8@0- (-1,0) [0|255] "" XXX
|
||||||
|
|
||||||
BO_ 241 EBCMBrakePedalPosition: 6 K17_EBCM
|
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
|
SG_ BrakePedalPosition : 15|8@0+ (1,0) [0|255] "" NEO
|
||||||
|
|
||||||
BO_ 298 BCMDoorBeltStatus: 8 K9_BCM
|
BO_ 298 BCMDoorBeltStatus: 8 K9_BCM
|
||||||
@@ -123,6 +124,8 @@ BO_ 388 PSCMStatus: 8 K43_PSCM
|
|||||||
SG_ LKADriverAppldTrq : 50|11@0- (0.01,0) [-10.24|10.23] "Nm" NEO
|
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_ 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_ 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
|
BO_ 417 AcceleratorPedal: 7 XXX
|
||||||
SG_ AcceleratorPedal : 55|8@0+ (1,0) [0|0] "" NEO
|
SG_ AcceleratorPedal : 55|8@0+ (1,0) [0|0] "" NEO
|
||||||
@@ -137,6 +140,7 @@ BO_ 452 AcceleratorPedal2: 8 XXX
|
|||||||
BO_ 481 ASCMSteeringButton: 7 K124_ASCM
|
BO_ 481 ASCMSteeringButton: 7 K124_ASCM
|
||||||
SG_ DistanceButton : 22|1@0+ (1,0) [0|0] "" NEO
|
SG_ DistanceButton : 22|1@0+ (1,0) [0|0] "" NEO
|
||||||
SG_ LKAButton : 23|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_ ACCButtons : 46|3@0+ (1,0) [0|0] "" NEO
|
||||||
SG_ DriveModeButton : 39|1@0+ (1,0) [0|1] "" XXX
|
SG_ DriveModeButton : 39|1@0+ (1,0) [0|1] "" XXX
|
||||||
SG_ RollingCounter : 33|2@0+ (1,0) [0|3] "" NEO
|
SG_ RollingCounter : 33|2@0+ (1,0) [0|3] "" NEO
|
||||||
@@ -164,6 +168,9 @@ BO_ 501 ECMPRDNL2: 8 K20_ECM
|
|||||||
SG_ PRNDL2 : 27|4@0+ (1,0) [0|255] "" NEO
|
SG_ PRNDL2 : 27|4@0+ (1,0) [0|255] "" NEO
|
||||||
SG_ ManualMode : 41|1@0+ (1,0) [0|1] "" 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
|
BO_ 560 EPBStatus: 8 EPB
|
||||||
SG_ EPBClosed : 12|1@0+ (1,0) [0|1] "" NEO
|
SG_ EPBClosed : 12|1@0+ (1,0) [0|1] "" NEO
|
||||||
|
|
||||||
@@ -184,6 +191,9 @@ BO_ 715 ASCMGasRegenCmd: 8 K124_ASCM
|
|||||||
|
|
||||||
BO_ 717 ASCM_2CD: 5 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
|
BO_ 789 EBCMFrictionBrakeCmd: 5 K124_ASCM
|
||||||
SG_ RollingCounter : 33|2@0+ (1,0) [0|0] "" NEO
|
SG_ RollingCounter : 33|2@0+ (1,0) [0|0] "" NEO
|
||||||
SG_ FrictionBrakeMode : 7|4@0+ (1,0) [0|0] "" NEO
|
SG_ FrictionBrakeMode : 7|4@0+ (1,0) [0|0] "" NEO
|
||||||
@@ -201,17 +211,22 @@ BO_ 810 TCICOnStarGPSPosition: 8 K73_TCIC
|
|||||||
SG_ GPSLongitude : 39|32@0+ (1,-2147483648) [0|0] "milliarcsecond" NEO
|
SG_ GPSLongitude : 39|32@0+ (1,-2147483648) [0|0] "milliarcsecond" NEO
|
||||||
SG_ GPSLatitude : 7|32@0+ (1,0) [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_ 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
|
SG_ FRWheelSpd : 23|16@0+ (0.0311,0) [0|255] "km/h" NEO
|
||||||
|
|
||||||
BO_ 842 EBCMWheelSpdRear: 5 K17_EBCM
|
BO_ 842 EBCMWheelSpdRear: 5 K17_EBCM
|
||||||
SG_ RLWheelSpd : 7|16@0+ (0.0311,0) [0|255] "km/h" NEO
|
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_ 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_ 869 ASCM_365: 4 K124_ASCM
|
||||||
|
|
||||||
BO_ 880 ASCMActiveCruiseControlStatus: 6 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_ ACCLeadCar : 44|1@0+ (1,0) [0|0] "" Vector__XXX
|
||||||
SG_ ACCAlwaysOne2 : 32|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_ ACCAlwaysOne : 0|1@0+ (1,0) [0|0] "" Vector__XXX
|
||||||
@@ -267,11 +282,15 @@ CM_ BU_ K114B_HPCM "Hybrid Powertrain Control Module";
|
|||||||
CM_ BU_ NEO "Comma NEO";
|
CM_ BU_ NEO "Comma NEO";
|
||||||
CM_ BU_ K124_ASCM "Active Safety Control Module";
|
CM_ BU_ K124_ASCM "Active Safety Control Module";
|
||||||
CM_ SG_ 381 MSG17D_AccPower "Need to investigate";
|
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_ 190 GasPedalAndAcc "ACC baseline is 62";
|
||||||
CM_ SG_ 352 Ignition "Non-zero when ignition is on";
|
CM_ SG_ 352 Ignition "Non-zero when ignition is on";
|
||||||
CM_ SG_ 451 GasPedalAndAcc2 "ACC baseline is 62";
|
CM_ SG_ 451 GasPedalAndAcc2 "ACC baseline is 62";
|
||||||
|
CM_ SG_ 481 ACCAlwaysOne "Usually 1 if the car is equipped with ACC";
|
||||||
CM_ SG_ 497 Ignition "Describes ignition + preconditioning mode, noisy";
|
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_ 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_ 761 UserBrakePressure2 "Similar to BRAKE_RELATED->UserBrakePressure";
|
||||||
CM_ SG_ 1001 VehicleSpeed "Spinouts show here on 2wd. Speed derived from right front wheel (drive tire)";
|
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_ "UseGMParameterIDs" INT 0 0;
|
||||||
BA_DEF_ "ProtocolType" STRING ;
|
BA_DEF_ "ProtocolType" STRING ;
|
||||||
@@ -290,6 +309,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 PRNDL 3 "R" 2 "D" 1 "N" 0 "P" ;
|
||||||
VAL_ 309 ESPButton 1 "Active" 0 "Inactive" ;
|
VAL_ 309 ESPButton 1 "Active" 0 "Inactive" ;
|
||||||
VAL_ 384 LKASteeringCmdActive 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 ACCLeadCar 1 "Present" 0 "Not Present" ;
|
||||||
VAL_ 880 ACCGapLevel 3 "Far" 2 "Med" 1 "Near" 0 "Inactive" ;
|
VAL_ 880 ACCGapLevel 3 "Far" 2 "Med" 1 "Near" 0 "Inactive" ;
|
||||||
VAL_ 880 ACCResumeButton 1 "Pressed" 0 "Depressed" ;
|
VAL_ 880 ACCResumeButton 1 "Pressed" 0 "Depressed" ;
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ BO_ 432 STANDSTILL: 7 VSA
|
|||||||
BO_ 456 ACC_CONTROL: 8 XXX
|
BO_ 456 ACC_CONTROL: 8 XXX
|
||||||
SG_ ACCEL_COMMAND : 7|12@0- (0.01,0) [0|0] "m/s^2" 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_ CONTROL_OFF : 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_ CONTROL_ON : 10|1@0+ (1,0) [0|1] "" XXX
|
||||||
SG_ BOH : 23|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
|
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_ COUNTER : 61|2@0+ (1,0) [0|3] "" XXX
|
||||||
SG_ CHECKSUM : 59|4@0+ (1,0) [0|15] "" XXX
|
SG_ CHECKSUM : 59|4@0+ (1,0) [0|15] "" XXX
|
||||||
|
|
||||||
CM_ BO 456 "not sure which bit enables cruise";
|
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 STANDSTILL "set to 1 when camera requests -4.0 m/s^2";
|
||||||
CM_ SG_ 456 BOH "could be cruise standstill?";
|
|
||||||
|
|
||||||
VAL_ 401 GEAR_SHIFTER 32 "L" 16 "S" 8 "D" 4 "N" 2 "R" 1 "P";
|
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";
|
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
|
||||||
|
""")
|
||||||
@@ -83,9 +83,10 @@ BO_ 466 PCM_CRUISE: 8 XXX
|
|||||||
|
|
||||||
BO_ 467 PCM_CRUISE_2: 8 XXX
|
BO_ 467 PCM_CRUISE_2: 8 XXX
|
||||||
SG_ PCM_FOLLOW_DISTANCE : 12|2@0+ (1,0) [0|3] "" 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_ 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_ 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
|
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
BO_ 552 ACCELEROMETER: 8 XXX
|
BO_ 552 ACCELEROMETER: 8 XXX
|
||||||
@@ -164,8 +165,9 @@ BO_ 836 PRE_COLLISION_2: 8 DSU
|
|||||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|0] "" XXX
|
SG_ CHECKSUM : 63|8@0+ (1,0) [0|0] "" XXX
|
||||||
|
|
||||||
BO_ 865 CLUTCH: 8 XXX
|
BO_ 865 CLUTCH: 8 XXX
|
||||||
SG_ CLUTCH_RELEASED : 38|1@0+ (1,0) [0|1] "" 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_ 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
|
BO_ 869 DSU_CRUISE : 7 DSU
|
||||||
SG_ RES_BTN : 3|1@0+ (1,0) [0|0] "" XXX
|
SG_ RES_BTN : 3|1@0+ (1,0) [0|0] "" XXX
|
||||||
@@ -180,6 +182,7 @@ BO_ 921 PCM_CRUISE_SM: 8 XXX
|
|||||||
SG_ MAIN_ON : 4|1@0+ (1,0) [0|1] "" 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_ CRUISE_CONTROL_STATE : 11|4@0+ (1,0) [0|15] "" XXX
|
||||||
SG_ DISTANCE_LINES : 14|2@0+ (1,0) [0|3] "" 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
|
SG_ UI_SET_SPEED : 31|8@0+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
BO_ 951 ESP_CONTROL: 8 ESP
|
BO_ 951 ESP_CONTROL: 8 ESP
|
||||||
@@ -204,7 +207,7 @@ BO_ 1005 REVERSE_CAMERA_STATE: 2 BGM
|
|||||||
BO_ 1009 PCM_CRUISE_ALT: 8 XXX
|
BO_ 1009 PCM_CRUISE_ALT: 8 XXX
|
||||||
SG_ MAIN_ON : 13|1@0+ (1,0) [0|3] "" XXX
|
SG_ MAIN_ON : 13|1@0+ (1,0) [0|3] "" XXX
|
||||||
SG_ CRUISE_STATE : 10|1@0+ (1,0) [0|1] "" 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
|
BO_ 1020 SOLAR_SENSOR: 8 XXX
|
||||||
SG_ LUX_SENSOR : 55|13@0+ (1,0) [0|0] "" XXX
|
SG_ LUX_SENSOR : 55|13@0+ (1,0) [0|0] "" XXX
|
||||||
@@ -328,6 +331,7 @@ BO_ 1552 BODY_CONTROL_STATE_2: 8 XXX
|
|||||||
SG_ METER_SLIDER_BRIGHTNESS_PCT : 30|7@0+ (1,0) [12|100] "%" 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_LOW_BRIGHTNESS : 37|1@0+ (1,0) [0|1] "" XXX
|
||||||
SG_ METER_SLIDER_DIMMED : 38|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
|
BO_ 1553 UI_SETTING: 8 XXX
|
||||||
SG_ UNITS : 26|2@0+ (1,0) [0|3] "" XXX
|
SG_ UNITS : 26|2@0+ (1,0) [0|3] "" XXX
|
||||||
@@ -370,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_ 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 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_ 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 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_ 467 LOW_SPEED_LOCKOUT "in low speed lockout, system would always disengage below 28mph";
|
||||||
CM_ SG_ 560 BRAKE_PRESSED "another brake pressed?";
|
CM_ SG_ 560 BRAKE_PRESSED "another brake pressed?";
|
||||||
@@ -391,10 +396,12 @@ CM_ SG_ 835 PERMIT_BRAKING "Original ACC has this going high when a car in front
|
|||||||
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_ 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 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 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 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_ 951 BRAKE_LIGHTS_ACC "brake lights when ACC commands decel";
|
||||||
CM_ SG_ 956 GEAR "on 6MT, only R shows.";
|
CM_ SG_ 956 GEAR "on 6MT, only R shows.";
|
||||||
CM_ SG_ 1009 SET_SPEED "units seem to be whatever the car is set to";
|
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_INDICATOR "Pre-Collision System Indicator";
|
||||||
CM_ SG_ 1041 PCS_SENSITIVITY "Pre-Collision System Sensitivity";
|
CM_ SG_ 1041 PCS_SENSITIVITY "Pre-Collision System Sensitivity";
|
||||||
CM_ SG_ 1042 LDA_SA_TOGGLE "LDA Steering Assist Toggle";
|
CM_ SG_ 1042 LDA_SA_TOGGLE "LDA Steering Assist Toggle";
|
||||||
@@ -427,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 OVSPVALM "-5 at start then 5 after 2 seconds";
|
||||||
CM_ SG_ 1163 OVSPVALH "-5 at start then 10 after 2 seconds";
|
CM_ SG_ 1163 OVSPVALH "-5 at start then 10 after 2 seconds";
|
||||||
CM_ SG_ 1163 TSRSPU "always 1";
|
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_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_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";
|
CM_ SG_ 1552 METER_SLIDER_DIMMED "Combination display slider not at max, reflects combination meter settings only, not linked with headlight state";
|
||||||
@@ -479,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_ 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_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 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_ 1553 UNITS 1 "km" 2 "miles";
|
||||||
VAL_ 1556 TURN_SIGNALS 3 "none" 2 "right" 1 "left";
|
VAL_ 1556 TURN_SIGNALS 3 "none" 2 "right" 1 "left";
|
||||||
VAL_ 1592 LOCK_STATUS 0 "locked" 1 "unlocked";
|
VAL_ 1592 LOCK_STATUS 0 "locked" 1 "unlocked";
|
||||||
|
|||||||
@@ -8,10 +8,11 @@ BO_ 401 STEERING_LTA: 8 XXX
|
|||||||
SG_ SETME_X64 : 47|8@0+ (1,0) [0|255] "" XXX
|
SG_ SETME_X64 : 47|8@0+ (1,0) [0|255] "" XXX
|
||||||
SG_ ANGLE : 55|8@0- (0.5,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_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_ BIT : 30|1@0+ (1,0) [0|1] "" XXX
|
||||||
SG_ COUNTER : 6|6@0+ (1,0) [0|255] "" 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
|
SG_ SETME_X1 : 7|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
|
||||||
BO_ 550 BRAKE_MODULE: 8 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 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 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_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 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 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_PRESSURE "seems prop to pedal force";
|
||||||
CM_ SG_ 550 BRAKE_POSITION "seems proportional to pedal displacement, unclear the max value of 0x1c8";
|
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";
|
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";
|
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 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 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" 1 "standby";
|
VAL_ 610 LTA_STATE 25 "temporary_fault" 9 "temporary_fault2" 5 "active" 3 "lta_missing_unavailable" 1 "standby";
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ BO_ 201 ECMEngineStatus: 8 K20_ECM
|
|||||||
SG_ EngineTPS : 39|8@0+ (0.392156863,0) [0|100.000000065] "%" NEO
|
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_ EngineRPM : 15|16@0+ (0.25,0) [0|0] "RPM" NEO
|
||||||
SG_ CruiseMainOn : 29|1@0+ (1,0) [0|1] "" 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_ Standstill : 2|1@0+ (1,0) [0|1] "" NEO
|
||||||
SG_ CruiseActive : 31|2@0+ (1,0) [0|3] "" NEO
|
SG_ CruiseActive : 31|2@0+ (1,0) [0|3] "" NEO
|
||||||
|
|
||||||
@@ -104,6 +104,7 @@ BO_ 209 EBCMBrakePedalSensors: 7 K17_EBCM
|
|||||||
SG_ BrakeNormalized2 : 47|8@0- (-1,0) [0|255] "" XXX
|
SG_ BrakeNormalized2 : 47|8@0- (-1,0) [0|255] "" XXX
|
||||||
|
|
||||||
BO_ 241 EBCMBrakePedalPosition: 6 K17_EBCM
|
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
|
SG_ BrakePedalPosition : 15|8@0+ (1,0) [0|255] "" NEO
|
||||||
|
|
||||||
BO_ 298 BCMDoorBeltStatus: 8 K9_BCM
|
BO_ 298 BCMDoorBeltStatus: 8 K9_BCM
|
||||||
@@ -143,6 +144,8 @@ BO_ 388 PSCMStatus: 8 K43_PSCM
|
|||||||
SG_ LKADriverAppldTrq : 50|11@0- (0.01,0) [-10.24|10.23] "Nm" NEO
|
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_ 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_ 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
|
BO_ 417 AcceleratorPedal: 7 XXX
|
||||||
SG_ AcceleratorPedal : 55|8@0+ (1,0) [0|0] "" NEO
|
SG_ AcceleratorPedal : 55|8@0+ (1,0) [0|0] "" NEO
|
||||||
@@ -157,6 +160,7 @@ BO_ 452 AcceleratorPedal2: 8 XXX
|
|||||||
BO_ 481 ASCMSteeringButton: 7 K124_ASCM
|
BO_ 481 ASCMSteeringButton: 7 K124_ASCM
|
||||||
SG_ DistanceButton : 22|1@0+ (1,0) [0|0] "" NEO
|
SG_ DistanceButton : 22|1@0+ (1,0) [0|0] "" NEO
|
||||||
SG_ LKAButton : 23|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_ ACCButtons : 46|3@0+ (1,0) [0|0] "" NEO
|
||||||
SG_ DriveModeButton : 39|1@0+ (1,0) [0|1] "" XXX
|
SG_ DriveModeButton : 39|1@0+ (1,0) [0|1] "" XXX
|
||||||
SG_ RollingCounter : 33|2@0+ (1,0) [0|3] "" NEO
|
SG_ RollingCounter : 33|2@0+ (1,0) [0|3] "" NEO
|
||||||
@@ -184,6 +188,9 @@ BO_ 501 ECMPRDNL2: 8 K20_ECM
|
|||||||
SG_ PRNDL2 : 27|4@0+ (1,0) [0|255] "" NEO
|
SG_ PRNDL2 : 27|4@0+ (1,0) [0|255] "" NEO
|
||||||
SG_ ManualMode : 41|1@0+ (1,0) [0|1] "" 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
|
BO_ 560 EPBStatus: 8 EPB
|
||||||
SG_ EPBClosed : 12|1@0+ (1,0) [0|1] "" NEO
|
SG_ EPBClosed : 12|1@0+ (1,0) [0|1] "" NEO
|
||||||
|
|
||||||
@@ -204,6 +211,9 @@ BO_ 715 ASCMGasRegenCmd: 8 K124_ASCM
|
|||||||
|
|
||||||
BO_ 717 ASCM_2CD: 5 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
|
BO_ 789 EBCMFrictionBrakeCmd: 5 K124_ASCM
|
||||||
SG_ RollingCounter : 33|2@0+ (1,0) [0|0] "" NEO
|
SG_ RollingCounter : 33|2@0+ (1,0) [0|0] "" NEO
|
||||||
SG_ FrictionBrakeMode : 7|4@0+ (1,0) [0|0] "" NEO
|
SG_ FrictionBrakeMode : 7|4@0+ (1,0) [0|0] "" NEO
|
||||||
@@ -221,17 +231,22 @@ BO_ 810 TCICOnStarGPSPosition: 8 K73_TCIC
|
|||||||
SG_ GPSLongitude : 39|32@0+ (1,-2147483648) [0|0] "milliarcsecond" NEO
|
SG_ GPSLongitude : 39|32@0+ (1,-2147483648) [0|0] "milliarcsecond" NEO
|
||||||
SG_ GPSLatitude : 7|32@0+ (1,0) [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_ 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
|
SG_ FRWheelSpd : 23|16@0+ (0.0311,0) [0|255] "km/h" NEO
|
||||||
|
|
||||||
BO_ 842 EBCMWheelSpdRear: 5 K17_EBCM
|
BO_ 842 EBCMWheelSpdRear: 5 K17_EBCM
|
||||||
SG_ RLWheelSpd : 7|16@0+ (0.0311,0) [0|255] "km/h" NEO
|
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_ 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_ 869 ASCM_365: 4 K124_ASCM
|
||||||
|
|
||||||
BO_ 880 ASCMActiveCruiseControlStatus: 6 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_ ACCLeadCar : 44|1@0+ (1,0) [0|0] "" Vector__XXX
|
||||||
SG_ ACCAlwaysOne2 : 32|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_ ACCAlwaysOne : 0|1@0+ (1,0) [0|0] "" Vector__XXX
|
||||||
@@ -287,11 +302,15 @@ CM_ BU_ K114B_HPCM "Hybrid Powertrain Control Module";
|
|||||||
CM_ BU_ NEO "Comma NEO";
|
CM_ BU_ NEO "Comma NEO";
|
||||||
CM_ BU_ K124_ASCM "Active Safety Control Module";
|
CM_ BU_ K124_ASCM "Active Safety Control Module";
|
||||||
CM_ SG_ 381 MSG17D_AccPower "Need to investigate";
|
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_ 190 GasPedalAndAcc "ACC baseline is 62";
|
||||||
CM_ SG_ 352 Ignition "Non-zero when ignition is on";
|
CM_ SG_ 352 Ignition "Non-zero when ignition is on";
|
||||||
CM_ SG_ 451 GasPedalAndAcc2 "ACC baseline is 62";
|
CM_ SG_ 451 GasPedalAndAcc2 "ACC baseline is 62";
|
||||||
|
CM_ SG_ 481 ACCAlwaysOne "Usually 1 if the car is equipped with ACC";
|
||||||
CM_ SG_ 497 Ignition "Describes ignition + preconditioning mode, noisy";
|
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_ 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_ 761 UserBrakePressure2 "Similar to BRAKE_RELATED->UserBrakePressure";
|
||||||
CM_ SG_ 1001 VehicleSpeed "Spinouts show here on 2wd. Speed derived from right front wheel (drive tire)";
|
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_ "UseGMParameterIDs" INT 0 0;
|
||||||
BA_DEF_ "ProtocolType" STRING ;
|
BA_DEF_ "ProtocolType" STRING ;
|
||||||
@@ -310,6 +329,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 PRNDL 3 "R" 2 "D" 1 "N" 0 "P" ;
|
||||||
VAL_ 309 ESPButton 1 "Active" 0 "Inactive" ;
|
VAL_ 309 ESPButton 1 "Active" 0 "Inactive" ;
|
||||||
VAL_ 384 LKASteeringCmdActive 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 ACCLeadCar 1 "Present" 0 "Not Present" ;
|
||||||
VAL_ 880 ACCGapLevel 3 "Far" 2 "Med" 1 "Near" 0 "Inactive" ;
|
VAL_ 880 ACCGapLevel 3 "Far" 2 "Med" 1 "Near" 0 "Inactive" ;
|
||||||
VAL_ 880 ACCResumeButton 1 "Pressed" 0 "Depressed" ;
|
VAL_ 880 ACCResumeButton 1 "Pressed" 0 "Depressed" ;
|
||||||
|
|||||||
@@ -448,6 +448,7 @@ BO_ 432 STANDSTILL: 7 VSA
|
|||||||
BO_ 456 ACC_CONTROL: 8 XXX
|
BO_ 456 ACC_CONTROL: 8 XXX
|
||||||
SG_ ACCEL_COMMAND : 7|12@0- (0.01,0) [0|0] "m/s^2" 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_ CONTROL_OFF : 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_ CONTROL_ON : 10|1@0+ (1,0) [0|1] "" XXX
|
||||||
SG_ BOH : 23|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
|
SG_ AEB_STATUS : 33|1@1+ (1,0) [0|7] "" XXX
|
||||||
@@ -495,9 +496,8 @@ BO_ 254913108 LKAS_HUD_2: 8 ADAS
|
|||||||
SG_ COUNTER : 61|2@0+ (1,0) [0|3] "" XXX
|
SG_ COUNTER : 61|2@0+ (1,0) [0|3] "" XXX
|
||||||
SG_ CHECKSUM : 59|4@0+ (1,0) [0|15] "" XXX
|
SG_ CHECKSUM : 59|4@0+ (1,0) [0|15] "" XXX
|
||||||
|
|
||||||
CM_ BO 456 "not sure which bit enables cruise";
|
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 STANDSTILL "set to 1 when camera requests -4.0 m/s^2";
|
||||||
CM_ SG_ 456 BOH "could be cruise standstill?";
|
|
||||||
|
|
||||||
VAL_ 401 GEAR_SHIFTER 32 "L" 16 "S" 8 "D" 4 "N" 2 "R" 1 "P";
|
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";
|
VAL_ 401 GEAR 7 "L" 10 "S" 4 "D" 3 "N" 2 "R" 1 "P";
|
||||||
|
|||||||
+277
-47
@@ -33,7 +33,7 @@ NS_ :
|
|||||||
|
|
||||||
BS_:
|
BS_:
|
||||||
|
|
||||||
BU_: XXX CAMERA
|
BU_: XXX CAMERA FRONT_RADAR ADRV APRK
|
||||||
|
|
||||||
|
|
||||||
BO_ 53 ACCELERATOR: 32 XXX
|
BO_ 53 ACCELERATOR: 32 XXX
|
||||||
@@ -42,6 +42,11 @@ BO_ 53 ACCELERATOR: 32 XXX
|
|||||||
SG_ GEAR : 192|3@1+ (1,0) [0|7] "" XXX
|
SG_ GEAR : 192|3@1+ (1,0) [0|7] "" XXX
|
||||||
SG_ ACCELERATOR_PEDAL : 40|8@1+ (1,0) [0|255] "" XXX
|
SG_ ACCELERATOR_PEDAL : 40|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 64 GEAR_ALT: 32 XXX
|
||||||
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ GEAR : 32|3@1+ (1,0) [0|7] "" XXX
|
||||||
|
|
||||||
BO_ 69 GEAR: 24 XXX
|
BO_ 69 GEAR: 24 XXX
|
||||||
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
@@ -62,15 +67,23 @@ BO_ 80 LKAS: 16 XXX
|
|||||||
SG_ NEW_SIGNAL_2 : 70|2@0+ (1,0) [0|3] "" XXX
|
SG_ NEW_SIGNAL_2 : 70|2@0+ (1,0) [0|3] "" XXX
|
||||||
SG_ SET_ME_1 : 80|1@0+ (1,0) [0|1] "" XXX
|
SG_ SET_ME_1 : 80|1@0+ (1,0) [0|1] "" XXX
|
||||||
SG_ NEW_SIGNAL_3 : 111|8@0+ (1,0) [0|255] "" XXX
|
SG_ NEW_SIGNAL_3 : 111|8@0+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ FCA_SYSWARN : 40|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
|
||||||
|
BO_ 81 ADRV_0x51: 32 ADRV
|
||||||
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
|
|
||||||
BO_ 96 ESP_STATUS: 32 XXX
|
BO_ 96 ESP_STATUS: 32 XXX
|
||||||
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
SG_ ESP_DISABLED : 42|3@1+ (1,0) [0|63] "" XXX
|
SG_ ESP_DISABLED : 42|3@1+ (1,0) [0|63] "" XXX
|
||||||
|
SG_ BRAKE_PRESSURE : 128|10@1+ (1,0) [0|65535] "" XXX
|
||||||
|
SG_ BRAKE_PRESSED : 148|1@1+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
BO_ 101 BRAKE: 32 XXX
|
BO_ 101 BRAKE: 32 XXX
|
||||||
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ BRAKE_POSITION : 40|16@1- (1,0) [0|65535] "" XXX
|
||||||
SG_ BRAKE_PRESSED : 57|1@1+ (1,0) [0|3] "" XXX
|
SG_ BRAKE_PRESSED : 57|1@1+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
BO_ 160 WHEEL_SPEEDS: 24 XXX
|
BO_ 160 WHEEL_SPEEDS: 24 XXX
|
||||||
@@ -85,11 +98,18 @@ BO_ 234 MDPS: 24 XXX
|
|||||||
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
SG_ LKA_ACTIVE : 48|1@0+ (1,0) [0|16777215] "" XXX
|
SG_ LKA_ACTIVE : 48|1@0+ (1,0) [0|16777215] "" XXX
|
||||||
|
SG_ LKA_FAULT : 54|1@0+ (1,0) [0|1] "" XXX
|
||||||
SG_ STEERING_OUT_TORQUE : 64|12@1+ (0.1,-204.8) [0|65535] "" XXX
|
SG_ STEERING_OUT_TORQUE : 64|12@1+ (0.1,-204.8) [0|65535] "" XXX
|
||||||
SG_ STEERING_COL_TORQUE : 80|13@1+ (1,-4095) [0|4095] "" XXX
|
SG_ STEERING_COL_TORQUE : 80|13@1+ (1,-4095) [0|4095] "" XXX
|
||||||
SG_ STEERING_ANGLE : 96|16@1- (-0.1,0) [0|255] "deg" XXX
|
SG_ STEERING_ANGLE : 96|16@1- (-0.1,0) [0|255] "deg" XXX
|
||||||
SG_ STEERING_ANGLE_2 : 128|16@1- (-0.1,0) [0|65535] "deg" XXX
|
SG_ STEERING_ANGLE_2 : 128|16@1- (-0.1,0) [0|65535] "deg" XXX
|
||||||
|
|
||||||
|
BO_ 256 ACCELERATOR_BRAKE_ALT: 32 XXX
|
||||||
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ BRAKE_PRESSED : 32|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ ACCELERATOR_PEDAL_PRESSED : 176|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
|
||||||
BO_ 261 ACCELERATOR_ALT: 32 XXX
|
BO_ 261 ACCELERATOR_ALT: 32 XXX
|
||||||
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
@@ -98,10 +118,10 @@ BO_ 261 ACCELERATOR_ALT: 32 XXX
|
|||||||
BO_ 293 STEERING_SENSORS: 16 XXX
|
BO_ 293 STEERING_SENSORS: 16 XXX
|
||||||
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
SG_ STEERING_RATE : 40|8@1- (-0.1,0) [0|255] "deg/s" XXX
|
SG_ STEERING_RATE : 40|8@1+ (4,0) [0|1016] "deg/s" XXX
|
||||||
SG_ STEERING_ANGLE : 24|16@1- (-0.1,0) [0|255] "deg" XXX
|
SG_ STEERING_ANGLE : 24|16@1- (-0.1,0) [0|255] "deg" XXX
|
||||||
|
|
||||||
BO_ 298 LFA: 16 XXX
|
BO_ 298 LFA: 16 ADRV
|
||||||
SG_ STEER_REQ : 52|1@1+ (1,0) [0|1] "" XXX
|
SG_ STEER_REQ : 52|1@1+ (1,0) [0|1] "" XXX
|
||||||
SG_ TORQUE_REQUEST : 41|11@1+ (1,-1024) [0|4095] "" XXX
|
SG_ TORQUE_REQUEST : 41|11@1+ (1,-1024) [0|4095] "" XXX
|
||||||
SG_ LKA_ICON : 38|2@1+ (1,0) [0|255] "" XXX
|
SG_ LKA_ICON : 38|2@1+ (1,0) [0|255] "" XXX
|
||||||
@@ -124,15 +144,45 @@ BO_ 304 GEAR_SHIFTER: 16 XXX
|
|||||||
SG_ GEAR : 64|3@1+ (1,0) [0|7] "" XXX
|
SG_ GEAR : 64|3@1+ (1,0) [0|7] "" XXX
|
||||||
SG_ KNOB_POSITION : 40|3@1+ (1,0) [0|3] "" XXX
|
SG_ KNOB_POSITION : 40|3@1+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
BO_ 373 SCC1: 24 XXX
|
BO_ 357 SPAS1: 24 APRK
|
||||||
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
SG_ COUNTER : 16|8@1+ (1,0) [0|0] "" XXX
|
||||||
SG_ ACCEL_REQ : 48|13@1- (1,0) [0|1023] "" XXX
|
SG_ NEW_SIGNAL_1 : 96|16@1- (0.1,0) [0|0] "" XXX
|
||||||
SG_ CRUISE_ACTIVE : 68|1@0+ (1,0) [0|1] "" XXX
|
SG_ NEW_SIGNAL_2 : 90|3@1+ (1,0) [0|0] "" XXX
|
||||||
|
|
||||||
BO_ 352 CAM_0x160: 16 CAMERA
|
BO_ 362 SPAS2: 32 APRK
|
||||||
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
|
SG_ COUNTER : 16|8@1+ (1,0) [0|0] "" XXX
|
||||||
|
SG_ BLINKER_CONTROL : 133|3@1+ (1,0) [0|0] "" XXX
|
||||||
|
|
||||||
|
BO_ 373 TCS: 24 XXX
|
||||||
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_1 : 80|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_2 : 74|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_3 : 76|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_4 : 24|7@1+ (1,0) [0|127] "" XXX
|
||||||
|
SG_ aBasis : 32|11@1+ (0.01,-10.23) [0|7] "m/s^2" XXX
|
||||||
|
SG_ NEW_SIGNAL_5 : 72|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_6 : 128|4@1+ (1,0) [0|15] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_7 : 135|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ PROBABLY_EQUIP : 136|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ AEB_EQUIP_MAYBE : 96|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ EQUIP_MAYBE : 64|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ DriverBraking : 81|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ DriverBrakingLowSens : 84|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ ACC_REQ : 68|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ ACCEL_REF_ACC : 48|11@1- (1,0) [0|1023] "" XXX
|
||||||
|
SG_ ACCEnable : 67|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
|
BO_ 352 ADRV_0x160: 16 ADRV
|
||||||
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ SET_ME_FF : 64|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ SET_ME_FC : 72|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ SET_ME_2 : 56|8@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ AEB_SETTING : 24|2@1+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ SET_ME_9 : 80|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
BO_ 384 CAM_0x180: 32 CAMERA
|
BO_ 384 CAM_0x180: 32 CAMERA
|
||||||
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
@@ -158,49 +208,50 @@ BO_ 389 CAM_0x185: 8 CAMERA
|
|||||||
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
BO_ 416 CRUISE_INFO: 32 XXX
|
BO_ 416 SCC_CONTROL: 32 ADRV
|
||||||
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
|
||||||
SG_ BYTE3 : 24|8@1+ (1,0) [0|255] "" XXX
|
|
||||||
SG_ BYTE4 : 32|8@1+ (1,0) [0|255] "" XXX
|
|
||||||
SG_ BYTE5 : 40|8@1+ (1,0) [0|255] "" XXX
|
|
||||||
SG_ BYTE6 : 48|8@1+ (1,0) [0|255] "" XXX
|
|
||||||
SG_ BYTE7 : 56|8@1+ (1,0) [0|255] "" XXX
|
|
||||||
SG_ NEW_SIGNAL_1 : 64|2@1+ (1,0) [0|3] "" XXX
|
SG_ NEW_SIGNAL_1 : 64|2@1+ (1,0) [0|3] "" XXX
|
||||||
SG_ CRUISE_MAIN : 66|1@1+ (1,0) [0|1] "" XXX
|
SG_ NEW_SIGNAL_8 : 170|4@1+ (1,0) [0|15] "" XXX
|
||||||
SG_ CRUISE_STATUS : 67|3@1+ (1,0) [0|7] "" XXX
|
SG_ NEW_SIGNAL_10 : 156|5@0+ (1,0) [0|3] "" XXX
|
||||||
SG_ CRUISE_INACTIVE : 70|1@1+ (1,0) [0|1] "" XXX
|
SG_ ZEROS : 215|48@0+ (1,0) [0|281474976710655] "" XXX
|
||||||
SG_ NEW_SIGNAL_2 : 71|5@1+ (1,0) [0|15] "" XXX
|
SG_ ZEROS_3 : 191|7@0+ (1,0) [0|127] "" XXX
|
||||||
|
SG_ ZEROS_4 : 183|4@0+ (1,0) [0|63] "" XXX
|
||||||
|
SG_ ZEROS_6 : 119|16@0+ (1,0) [0|65535] "" XXX
|
||||||
|
SG_ ZEROS_8 : 95|5@0+ (1,0) [0|31] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_3 : 109|2@0+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ SET_ME_TMP_64 : 55|8@0+ (1,0) [0|63] "" XXX
|
||||||
|
SG_ SET_ME_2 : 105|3@1+ (1,0) [0|7] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_6 : 104|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ ZEROS_9 : 71|5@1+ (1,0) [0|15] "" XXX
|
||||||
|
SG_ ZEROS_10 : 111|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ SET_ME_3 : 45|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ ObjValid : 46|1@0+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_2 : 168|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ OBJ_STATUS : 176|3@1+ (1,0) [0|7] "" XXX
|
||||||
|
SG_ ACC_ObjDist : 24|11@1+ (0.1,0) [0|204.7] "m" XXX
|
||||||
|
SG_ ZEROS_5 : 77|11@1+ (1,0) [0|2047] "" XXX
|
||||||
|
SG_ DISTANCE_SETTING : 88|3@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ ZEROS_2 : 207|5@0+ (1,0) [0|63] "" XXX
|
||||||
SG_ CRUISE_STANDSTILL : 76|1@1+ (1,0) [0|1] "" XXX
|
SG_ CRUISE_STANDSTILL : 76|1@1+ (1,0) [0|1] "" XXX
|
||||||
SG_ NEW_SIGNAL_3 : 77|11@1+ (1,0) [0|2047] "" XXX
|
SG_ aReqRaw : 140|11@1+ (0.01,-10.23) [-10.23|10.24] "m/s^2" XXX
|
||||||
SG_ BYTE11 : 88|8@1+ (1,0) [0|127] "" XXX
|
SG_ aReqValue : 128|11@1+ (0.01,-10.23) [-10.23|10.24] "m/s^2" XXX
|
||||||
SG_ SET_SPEED : 102|7@0+ (1,0) [0|127] "km/h or mph" XXX
|
SG_ ZEROS_7 : 63|8@0+ (1,0) [0|255] "" XXX
|
||||||
SG_ NEW_SIGNAL_4 : 103|1@1+ (1,0) [0|1] "" XXX
|
SG_ NEW_SIGNAL_4 : 158|2@0+ (1,0) [0|3] "" XXX
|
||||||
SG_ BYTE13 : 104|8@1+ (1,0) [0|255] "" XXX
|
SG_ ACCMode : 68|3@1+ (1,0) [0|7] "" XXX
|
||||||
SG_ BYTE14 : 112|8@1+ (1,0) [0|255] "" XXX
|
SG_ NEW_SIGNAL_12 : 35|9@1+ (0.1,0) [0|255] "" XXX
|
||||||
SG_ BYTE15 : 120|8@1+ (1,0) [0|255] "" XXX
|
SG_ JerkLowerLimit : 166|7@0+ (0.1,0) [0|12.7] "m/s^3" XXX
|
||||||
SG_ BYTE16 : 128|8@1+ (1,0) [0|255] "" XXX
|
SG_ StopReq : 184|1@0+ (1,0) [0|1] "" XXX
|
||||||
SG_ BYTE17 : 136|8@1+ (1,0) [0|255] "" XXX
|
SG_ NEW_SIGNAL_15 : 192|11@1+ (0.1,0) [0|204.7] "m" XXX
|
||||||
SG_ BYTE18 : 144|8@1+ (1,0) [0|255] "" XXX
|
SG_ VSetDis : 103|8@0+ (1,0) [0|255] "km/h or mph" XXX
|
||||||
SG_ BYTE19 : 152|8@1+ (1,0) [0|255] "" XXX
|
SG_ MainMode_ACC : 66|1@1+ (1,0) [0|1] "" XXX
|
||||||
SG_ BYTE20 : 160|8@1+ (1,0) [0|255] "" XXX
|
|
||||||
SG_ BYTE21 : 168|8@1+ (1,0) [0|255] "" XXX
|
|
||||||
SG_ BYTE22 : 176|8@1+ (1,0) [0|255] "" XXX
|
|
||||||
SG_ BYTE23 : 184|8@1+ (1,0) [0|255] "" XXX
|
|
||||||
SG_ BYTE24 : 192|8@1+ (1,0) [0|255] "" XXX
|
|
||||||
SG_ BYTE25 : 200|8@1+ (1,0) [0|255] "" XXX
|
|
||||||
SG_ BYTE26 : 208|8@1+ (1,0) [0|255] "" XXX
|
|
||||||
SG_ BYTE27 : 216|8@1+ (1,0) [0|255] "" XXX
|
|
||||||
SG_ BYTE28 : 224|8@1+ (1,0) [0|255] "" XXX
|
|
||||||
SG_ BYTE29 : 232|8@1+ (1,0) [0|255] "" XXX
|
|
||||||
SG_ BYTE30 : 240|8@1+ (1,0) [0|255] "" XXX
|
|
||||||
SG_ BYTE31 : 248|8@1+ (1,0) [0|255] "" XXX
|
|
||||||
|
|
||||||
BO_ 426 CRUISE_BUTTONS_ALT: 16 XXX
|
BO_ 426 CRUISE_BUTTONS_ALT: 16 XXX
|
||||||
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
SG_ NEW_SIGNAL_1 : 24|4@1+ (1,0) [0|15] "" XXX
|
SG_ NEW_SIGNAL_1 : 24|4@1+ (1,0) [0|15] "" XXX
|
||||||
SG_ SET_ME_1 : 28|3@1+ (1,0) [0|7] "" XXX
|
SG_ SET_ME_1 : 28|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ DISTANCE_UNIT : 30|1@1+ (1,0) [0|1] "" XXX
|
||||||
SG_ NEW_SIGNAL_2 : 31|3@1+ (1,0) [0|7] "" XXX
|
SG_ NEW_SIGNAL_2 : 31|3@1+ (1,0) [0|7] "" XXX
|
||||||
SG_ ADAPTIVE_CRUISE_MAIN_BTN : 34|1@1+ (1,0) [0|1] "" XXX
|
SG_ ADAPTIVE_CRUISE_MAIN_BTN : 34|1@1+ (1,0) [0|1] "" XXX
|
||||||
SG_ NEW_SIGNAL_3 : 35|1@1+ (1,0) [0|1] "" XXX
|
SG_ NEW_SIGNAL_3 : 35|1@1+ (1,0) [0|1] "" XXX
|
||||||
@@ -247,16 +298,136 @@ BO_ 463 CRUISE_BUTTONS: 8 XXX
|
|||||||
SG_ COUNTER : 12|4@1+ (1,0) [0|255] "" XXX
|
SG_ COUNTER : 12|4@1+ (1,0) [0|255] "" XXX
|
||||||
SG_ CRUISE_BUTTONS : 16|3@1+ (1,0) [0|3] "" XXX
|
SG_ CRUISE_BUTTONS : 16|3@1+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
BO_ 480 LFAHDA_CLUSTER: 16 XXX
|
BO_ 474 ADRV_0x1da: 32 ADRV
|
||||||
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ SET_ME_22 : 31|8@0+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ SET_ME_41 : 47|8@0+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 480 LFAHDA_CLUSTER: 16 ADRV
|
||||||
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
SG_ HDA_ICON : 31|1@1+ (1,0) [0|1] "" XXX
|
SG_ HDA_ICON : 31|1@1+ (1,0) [0|1] "" XXX
|
||||||
SG_ LFA_ICON : 47|2@1+ (1,0) [0|3] "" XXX
|
SG_ LFA_ICON : 47|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_1 : 32|3@1+ (1,0) [0|7] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_2 : 30|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_3 : 49|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_4 : 24|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
|
||||||
|
BO_ 490 ADRV_0x1ea: 32 ADRV
|
||||||
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ SET_ME_1C : 31|8@0+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_1 : 32|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_2 : 47|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_3 : 55|8@0+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_4 : 64|6@1+ (1,0) [0|31] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_5 : 72|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_6 : 75|5@1+ (1,0) [0|31] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_7 : 80|5@1+ (1,0) [0|31] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_8 : 88|7@1+ (1,0) [0|127] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_9 : 96|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_10 : 143|5@0+ (1,0) [0|31] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_11 : 144|3@1+ (1,0) [0|7] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_12 : 152|6@1+ (1,0) [0|63] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_13 : 160|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_14 : 163|5@1+ (1,0) [0|31] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_15 : 175|4@0+ (1,0) [0|63] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_16 : 168|3@1+ (1,0) [0|7] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_17 : 176|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_18 : 184|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_19 : 208|3@1+ (1,0) [0|7] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_20 : 212|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ SET_ME_FF : 120|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ SET_ME_TMP_F : 232|5@1+ (1,0) [0|31] "" XXX
|
||||||
|
SG_ SET_ME_TMP_F_2 : 240|5@1+ (1,0) [0|31] "" XXX
|
||||||
|
|
||||||
BO_ 507 CAM_0x1fb: 32 CAMERA
|
BO_ 507 CAM_0x1fb: 32 CAMERA
|
||||||
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 512 ADRV_0x200: 8 ADRV
|
||||||
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ SET_ME_E1 : 24|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ SET_ME_3A : 32|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 513 RADAR_0x201: 32 FRONT_RADAR
|
||||||
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 528 RADAR_0x210: 32 FRONT_RADAR
|
||||||
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 529 RADAR_0x211: 32 FRONT_RADAR
|
||||||
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 530 RADAR_0x212: 32 FRONT_RADAR
|
||||||
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 531 RADAR_0x213: 32 FRONT_RADAR
|
||||||
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 532 RADAR_0x214: 32 FRONT_RADAR
|
||||||
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 533 RADAR_0x215: 32 FRONT_RADAR
|
||||||
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 534 RADAR_0x216: 32 FRONT_RADAR
|
||||||
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 535 RADAR_0x217: 32 FRONT_RADAR
|
||||||
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 536 RADAR_0x218: 32 FRONT_RADAR
|
||||||
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 537 RADAR_0x219: 32 FRONT_RADAR
|
||||||
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 538 RADAR_0x21a: 32 FRONT_RADAR
|
||||||
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 539 RADAR_0x21b: 32 FRONT_RADAR
|
||||||
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 540 RADAR_0x21c: 32 FRONT_RADAR
|
||||||
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 541 RADAR_0x21d: 32 FRONT_RADAR
|
||||||
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 542 RADAR_0x21e: 32 FRONT_RADAR
|
||||||
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 543 RADAR_0x21f: 32 FRONT_RADAR
|
||||||
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 576 RADAR_0x240: 16 FRONT_RADAR
|
||||||
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 593 RADAR_0x251: 16 FRONT_RADAR
|
||||||
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
BO_ 674 CAM_0x2a2: 32 CAMERA
|
BO_ 674 CAM_0x2a2: 32 CAMERA
|
||||||
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
@@ -306,6 +477,11 @@ BO_ 702 CAM_0x2be: 32 CAMERA
|
|||||||
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 837 ADRV_0x345: 8 ADRV
|
||||||
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ SET_ME_15 : 24|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
BO_ 961 BLINKER_STALKS: 8 XXX
|
BO_ 961 BLINKER_STALKS: 8 XXX
|
||||||
SG_ COUNTER_ALT : 15|4@0+ (1,0) [0|15] "" XXX
|
SG_ COUNTER_ALT : 15|4@0+ (1,0) [0|15] "" XXX
|
||||||
SG_ CHECKSUM_MAYBE : 7|8@0+ (1,0) [0|255] "" XXX
|
SG_ CHECKSUM_MAYBE : 7|8@0+ (1,0) [0|255] "" XXX
|
||||||
@@ -329,19 +505,73 @@ BO_ 1043 BLINKERS: 8 XXX
|
|||||||
BO_ 1240 CLUSTER_INFO: 8 XXX
|
BO_ 1240 CLUSTER_INFO: 8 XXX
|
||||||
SG_ DISTANCE_UNIT : 0|1@1+ (1,0) [0|1] "" XXX
|
SG_ DISTANCE_UNIT : 0|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
|
||||||
|
BO_ 442 BLINDSPOTS_REAR_CORNERS: 24 XXX
|
||||||
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_2 : 96|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ COLLISION_AVOIDANCE_ACTIVE : 68|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ LEFT_MB : 30|1@0+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ LEFT_BLOCKED : 24|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ MORE_LEFT_PROB : 32|1@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ FL_INDICATOR : 46|6@0+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ FR_INDICATOR : 54|6@0+ (1,0) [0|63] "" XXX
|
||||||
|
SG_ RIGHT_BLOCKED : 64|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
|
||||||
|
BO_ 874 BLINDSPOTS_FRONT_CORNER_2: 16 XXX
|
||||||
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
|
|
||||||
|
BO_ 485 BLINDSPOTS_FRONT_CORNER_1: 16 XXX
|
||||||
|
SG_ COUNTER : 16|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ CHECKSUM : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_1 : 108|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_2 : 96|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_3 : 88|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_4 : 80|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_5 : 31|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_6 : 24|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_7 : 32|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_8 : 47|8@0+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ NEW_SIGNAL_9 : 55|8@0+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 506 CLUSTER_SPEED_LIMIT: 32 XXX
|
||||||
|
SG_ SPEED_LIMIT_3 : 119|8@0+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ SPEED_LIMIT_2 : 47|7@0+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ SPEED_LIMIT_1 : 39|7@0+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ SPEED_CHANGE_BLINKING : 129|1@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ CHIME_2 : 122|2@1+ (1,0) [0|7] "" XXX
|
||||||
|
SG_ CHIME_1 : 133|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ ARROW_DOWN : 120|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ ARROW_UP : 121|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ SECONDARY_LIMIT_1 : 79|8@0+ (1,0) [0|127] "" XXX
|
||||||
|
SG_ SECONDARY_LIMIT_2 : 103|8@0+ (1,0) [0|127] "" XXX
|
||||||
|
SG_ SCHOOL_ZONE : 155|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CM_ SG_ 96 BRAKE_PRESSURE "User applied brake pedal pressure. Ramps from computer applied pressure on falling edge of cruise. Cruise cancels if !=0";
|
||||||
|
CM_ SG_ 101 BRAKE_POSITION "User applied brake pedal position, max is ~700. Signed on some vehicles";
|
||||||
|
CM_ SG_ 373 PROBABLY_EQUIP "aeb equip?";
|
||||||
|
CM_ SG_ 373 ACCEnable "Likely a copy of CAN's TCS13->ACCEnable";
|
||||||
|
CM_ SG_ 373 DriverBraking "Likely derived from BRAKE->BRAKE_POSITION";
|
||||||
|
CM_ SG_ 373 DriverBrakingLowSens "Higher threshold version of DriverBraking";
|
||||||
|
CM_ SG_ 352 SET_ME_9 "has something to do with AEB settings";
|
||||||
|
CM_ SG_ 416 VSetDis "set speed in display units";
|
||||||
CM_ SG_ 961 COUNTER_ALT "only increments on change";
|
CM_ SG_ 961 COUNTER_ALT "only increments on change";
|
||||||
CM_ SG_ 1041 COUNTER_ALT "only increments on change";
|
CM_ SG_ 1041 COUNTER_ALT "only increments on change";
|
||||||
CM_ SG_ 1043 COUNTER_ALT "only increments on change";
|
CM_ SG_ 1043 COUNTER_ALT "only increments on change";
|
||||||
|
|
||||||
VAL_ 53 GEAR 0 "P" 5 "D" 6 "N" 7 "R" ;
|
VAL_ 53 GEAR 0 "P" 5 "D" 6 "N" 7 "R" ;
|
||||||
|
VAL_ 64 GEAR 0 "P" 5 "D" 6 "N" 7 "R" ;
|
||||||
VAL_ 69 GEAR 0 "P" 5 "D" 6 "N" 7 "R" ;
|
VAL_ 69 GEAR 0 "P" 5 "D" 6 "N" 7 "R" ;
|
||||||
VAL_ 304 GEAR 1 "P" 2 "R" 3 "N" 4 "D";
|
|
||||||
VAL_ 80 LKA_ICON 0 "hidden" 1 "grey" 2 "green" 3 "flashing green" ;
|
VAL_ 80 LKA_ICON 0 "hidden" 1 "grey" 2 "green" 3 "flashing green" ;
|
||||||
VAL_ 80 LKA_MODE 1 "warning only" 2 "assist" 6 "off" ;
|
VAL_ 80 LKA_MODE 1 "warning only" 2 "assist" 6 "off" ;
|
||||||
|
VAL_ 234 LKA_FAULT 0 "ok" 1 "lka fault" ;
|
||||||
VAL_ 298 LKA_ICON 0 "hidden" 1 "grey" 2 "green" 3 "flashing green" ;
|
VAL_ 298 LKA_ICON 0 "hidden" 1 "grey" 2 "green" 3 "flashing green" ;
|
||||||
VAL_ 298 LKA_MODE 1 "warning only" 2 "assist" 6 "off" ;
|
VAL_ 298 LKA_MODE 1 "warning only" 2 "assist" 6 "off" ;
|
||||||
VAL_ 416 CRUISE_STATUS 0 "cruise_inactive" 2 "cruise_active" 4 "driver_override" ;
|
VAL_ 304 GEAR 1 "P" 2 "R" 3 "N" 4 "D" ;
|
||||||
|
VAL_ 352 AEB_SETTING 1 "off" 2 "warning only" 3 "active assist" ;
|
||||||
|
VAL_ 362 BLINKER_CONTROL 1 "hazards" 2 "hazards button backlight" 3 "left blinkers" 4 "right blinkers";
|
||||||
|
VAL_ 373 ACCEnable 0 "SCC ready" 1 "SCC temp fault" 2 "SCC permanent fault" 3 "SCC permanent fault, communication issue";
|
||||||
|
VAL_ 416 ACCMode 0 "off" 1 "enabled" 2 "driver_override" 3 "off_maybe_fault" 4 "cancelled" ;
|
||||||
VAL_ 426 CRUISE_BUTTONS 0 "none" 1 "res_accel" 2 "set_decel" 3 "gap_distance" 4 "pause_resume" ;
|
VAL_ 426 CRUISE_BUTTONS 0 "none" 1 "res_accel" 2 "set_decel" 3 "gap_distance" 4 "pause_resume" ;
|
||||||
VAL_ 463 CRUISE_BUTTONS 0 "none" 1 "res_accel" 2 "set_decel" 3 "gap_distance" 4 "pause_resume" ;
|
VAL_ 463 CRUISE_BUTTONS 0 "none" 1 "res_accel" 2 "set_decel" 3 "gap_distance" 4 "pause_resume" ;
|
||||||
|
|||||||
@@ -1440,11 +1440,10 @@ BO_ 909 FCA11: 8 FCA
|
|||||||
SG_ FCA_DrvSetStatus : 22|3@1+ (1,0) [0|7] "" CLU,ESC
|
SG_ FCA_DrvSetStatus : 22|3@1+ (1,0) [0|7] "" CLU,ESC
|
||||||
SG_ CF_VSM_DecCmdAct : 31|1@1+ (1,0) [0|1] "" ESC
|
SG_ CF_VSM_DecCmdAct : 31|1@1+ (1,0) [0|1] "" ESC
|
||||||
SG_ FCA_Failinfo : 32|3@1+ (1,0) [0|7] "" ACU,CLU,ESC
|
SG_ FCA_Failinfo : 32|3@1+ (1,0) [0|7] "" ACU,CLU,ESC
|
||||||
|
SG_ CR_FCA_Alive : 35|4@1+ (1,0) [0|15] "" ESC
|
||||||
SG_ FCA_RelativeVelocity : 39|9@1+ (0.1,-25.5) [-25.5|25.5] "m/s" iBAU
|
SG_ FCA_RelativeVelocity : 39|9@1+ (0.1,-25.5) [-25.5|25.5] "m/s" iBAU
|
||||||
SG_ FCA_TimetoCollision : 48|8@1+ (10,0) [0|2540] "ms" iBAU
|
SG_ FCA_TimetoCollision : 48|8@1+ (10,0) [0|2540] "ms" iBAU
|
||||||
SG_ CR_FCA_Alive : 56|4@1+ (1,0) [0|15] "" ESC
|
SG_ CR_FCA_ChkSum : 56|8@1+ (1,0) [0|255] "" ESC
|
||||||
SG_ CR_FCA_ChkSum : 60|4@1+ (1,0) [0|15] "" ESC
|
|
||||||
SG_ Supplemental_Counter : 35|4@1+ (1,0) [0|15] "" XXX
|
|
||||||
SG_ PAINT1_Status : 16|2@1+ (1,0) [0|1] "" XXX
|
SG_ PAINT1_Status : 16|2@1+ (1,0) [0|1] "" XXX
|
||||||
|
|
||||||
BO_ 1156 HDA11_MFC: 8 XXX
|
BO_ 1156 HDA11_MFC: 8 XXX
|
||||||
@@ -1645,10 +1644,11 @@ CM_ "BO_ E_EMS11: All (plug-in) hybrids use this gas signal: CR_Vcu_AccPedDep_Po
|
|||||||
CM_ SG_ 1348 SpeedLim_Nav_Clu "Speed limit displayed on Nav, Cluster and HUD";
|
CM_ SG_ 1348 SpeedLim_Nav_Clu "Speed limit displayed on Nav, Cluster and HUD";
|
||||||
|
|
||||||
VAL_ 274 CUR_GR 1 "D" 2 "D" 3 "D" 4 "D" 5 "D" 6 "D" 7 "D" 8 "D" 14 "R" 0 "P";
|
VAL_ 274 CUR_GR 1 "D" 2 "D" 3 "D" 4 "D" 5 "D" 6 "D" 7 "D" 8 "D" 14 "R" 0 "P";
|
||||||
VAL_ 871 CF_Lvr_Gear 5 "D" 8 "S" 6 "N" 7 "R" 0 "P";
|
VAL_ 871 CF_Lvr_Gear 12 "T" 5 "D" 8 "S" 6 "N" 7 "R" 0 "P";
|
||||||
VAL_ 882 Elect_Gear_Shifter 5 "D" 8 "S" 6 "N" 7 "R" 0 "P";
|
VAL_ 882 Elect_Gear_Shifter 5 "D" 8 "S" 6 "N" 7 "R" 0 "P";
|
||||||
VAL_ 905 ACCMode 0 "off" 1 "enabled" 2 "driver_override" 3 "off_maybe_fault" 4 "cancelled";
|
VAL_ 905 ACCMode 0 "off" 1 "enabled" 2 "driver_override" 3 "off_maybe_fault" 4 "cancelled";
|
||||||
VAL_ 909 CF_VSM_Warn 2 "FCW" 3 "AEB";
|
VAL_ 909 CF_VSM_Warn 2 "FCW" 3 "AEB";
|
||||||
|
VAL_ 916 ACCEnable 0 "SCC ready" 1 "SCC temp fault" 2 "SCC permanent fault" 3 "SCC permanent fault, communication issue";
|
||||||
VAL_ 1057 ACCMode 0 "off" 1 "enabled" 2 "driver_override" 3 "off_maybe_fault";
|
VAL_ 1057 ACCMode 0 "off" 1 "enabled" 2 "driver_override" 3 "off_maybe_fault";
|
||||||
VAL_ 1157 HDA_Icon_State 0 "no_hda" 1 "white_hda" 2 "green_hda";
|
VAL_ 1157 HDA_Icon_State 0 "no_hda" 1 "white_hda" 2 "green_hda";
|
||||||
VAL_ 1157 LFA_SysWarning 0 "no_message" 1 "switching_to_hda" 2 "switching_to_scc" 3 "lfa_error" 4 "check_hda" 5 "keep_hands_on_wheel_orange" 6 "keep_hands_on_wheel_red";
|
VAL_ 1157 LFA_SysWarning 0 "no_message" 1 "switching_to_hda" 2 "switching_to_scc" 3 "lfa_error" 4 "check_hda" 5 "keep_hands_on_wheel_orange" 6 "keep_hands_on_wheel_red";
|
||||||
|
|||||||
@@ -0,0 +1,374 @@
|
|||||||
|
CM_ "AUTOGENERATED FILE, DO NOT EDIT";
|
||||||
|
|
||||||
|
CM_ "hyundai_kia_mando_corner_radar.dbc starts here";
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
BO_ 256 RADAR_POINTS_METADATA_0x100: 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
|
||||||
|
|
||||||
|
BO_ 512 RADAR_POINTS_METADATA_0x200: 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
|
||||||
|
|
||||||
|
BO_ 257 RADAR_POINTS_0x101: 64 RADAR
|
||||||
|
SG_ MESSAGE_ID : 0|5@1+ (1,0) [0|31] "" XXX
|
||||||
|
SG_ LAYOUT_ID : 5|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_1_DISTANCE : 7|14@1+ (0.015625,0) [0|255.984375] "" XXX
|
||||||
|
SG_ POINT_1_SIGNAL_2 : 21|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_1_SIGNAL_3 : 23|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX
|
||||||
|
SG_ POINT_1_REL_VELOCITY : 31|13@1+ (0.03125,-66) [-66|189.96875] "" XXX
|
||||||
|
SG_ POINT_1_SIGNAL_5 : 44|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_1_SIGNAL_6 : 46|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_1_AZIMUTH : 48|12@1+ (0.001953125,-3.998046875) [-3.998046875|4.0] "" XXX
|
||||||
|
SG_ POINT_1_SIGNAL_8 : 60|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_1_SIGNAL_9 : 62|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_1_SIGNAL_10 : 63|7@1+ (1,0) [0|127] "" XXX
|
||||||
|
SG_ POINT_1_SIGNAL_11 : 70|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_1_SIGNAL_12 : 71|6@1+ (1,0) [0|63] "" XXX
|
||||||
|
SG_ POINT_1_SIGNAL_13 : 77|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_1_SIGNAL_14 : 79|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX
|
||||||
|
SG_ POINT_1_SIGNAL_15 : 87|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_1_SIGNAL_16 : 88|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_1_SIGNAL_17 : 90|3@1+ (1,0) [0|7] "" XXX
|
||||||
|
SG_ POINT_1_SIGNAL_18 : 93|6@1+ (1,0) [0|63] "" XXX
|
||||||
|
SG_ POINT_1_SIGNAL_19 : 99|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ POINT_1_SIGNAL_20 : 107|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_2_DISTANCE : 108|14@1+ (0.015625,0) [0|255.984375] "" XXX
|
||||||
|
SG_ POINT_2_SIGNAL_2 : 122|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_2_SIGNAL_3 : 124|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX
|
||||||
|
SG_ POINT_2_REL_VELOCITY : 132|13@1+ (0.03125,-66) [-66|189.96875] "" XXX
|
||||||
|
SG_ POINT_2_SIGNAL_5 : 145|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_2_SIGNAL_6 : 147|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_2_AZIMUTH : 149|12@1+ (0.001953125,-3.998046875) [-3.998046875|4.0] "" XXX
|
||||||
|
SG_ POINT_2_SIGNAL_8 : 161|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_2_SIGNAL_9 : 163|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_2_SIGNAL_10 : 164|7@1+ (1,0) [0|127] "" XXX
|
||||||
|
SG_ POINT_2_SIGNAL_11 : 171|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_2_SIGNAL_12 : 172|6@1+ (1,0) [0|63] "" XXX
|
||||||
|
SG_ POINT_2_SIGNAL_13 : 178|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_2_SIGNAL_14 : 180|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX
|
||||||
|
SG_ POINT_2_SIGNAL_15 : 188|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_2_SIGNAL_16 : 189|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_2_SIGNAL_17 : 191|3@1+ (1,0) [0|7] "" XXX
|
||||||
|
SG_ POINT_2_SIGNAL_18 : 194|6@1+ (1,0) [0|63] "" XXX
|
||||||
|
SG_ POINT_2_SIGNAL_19 : 200|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ POINT_2_SIGNAL_20 : 208|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_3_DISTANCE : 209|14@1+ (0.015625,0) [0|255.984375] "" XXX
|
||||||
|
SG_ POINT_3_SIGNAL_2 : 223|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_3_SIGNAL_3 : 225|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX
|
||||||
|
SG_ POINT_3_REL_VELOCITY : 233|13@1+ (0.03125,-66) [-66|189.96875] "" XXX
|
||||||
|
SG_ POINT_3_SIGNAL_5 : 246|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_3_SIGNAL_6 : 248|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_3_AZIMUTH : 250|12@1+ (0.001953125,-3.998046875) [-3.998046875|4.0] "" XXX
|
||||||
|
SG_ POINT_3_SIGNAL_8 : 262|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_3_SIGNAL_9 : 264|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_3_SIGNAL_10 : 265|7@1+ (1,0) [0|127] "" XXX
|
||||||
|
SG_ POINT_3_SIGNAL_11 : 272|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_3_SIGNAL_12 : 273|6@1+ (1,0) [0|63] "" XXX
|
||||||
|
SG_ POINT_3_SIGNAL_13 : 279|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_3_SIGNAL_14 : 281|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX
|
||||||
|
SG_ POINT_3_SIGNAL_15 : 289|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_3_SIGNAL_16 : 290|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_3_SIGNAL_17 : 292|3@1+ (1,0) [0|7] "" XXX
|
||||||
|
SG_ POINT_3_SIGNAL_18 : 295|6@1+ (1,0) [0|63] "" XXX
|
||||||
|
SG_ POINT_3_SIGNAL_19 : 301|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ POINT_3_SIGNAL_20 : 309|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_4_DISTANCE : 310|14@1+ (0.015625,0) [0|255.984375] "" XXX
|
||||||
|
SG_ POINT_4_SIGNAL_2 : 324|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_4_SIGNAL_3 : 326|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX
|
||||||
|
SG_ POINT_4_REL_VELOCITY : 334|13@1+ (0.03125,-66) [-66|189.96875] "" XXX
|
||||||
|
SG_ POINT_4_SIGNAL_5 : 347|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_4_SIGNAL_6 : 349|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_4_AZIMUTH : 351|12@1+ (0.001953125,-3.998046875) [-3.998046875|4.0] "" XXX
|
||||||
|
SG_ POINT_4_SIGNAL_8 : 363|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_4_SIGNAL_9 : 365|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_4_SIGNAL_10 : 366|7@1+ (1,0) [0|127] "" XXX
|
||||||
|
SG_ POINT_4_SIGNAL_11 : 373|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_4_SIGNAL_12 : 374|6@1+ (1,0) [0|63] "" XXX
|
||||||
|
SG_ POINT_4_SIGNAL_13 : 380|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_4_SIGNAL_14 : 382|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX
|
||||||
|
SG_ POINT_4_SIGNAL_15 : 390|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_4_SIGNAL_16 : 391|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_4_SIGNAL_17 : 393|3@1+ (1,0) [0|7] "" XXX
|
||||||
|
SG_ POINT_4_SIGNAL_18 : 396|6@1+ (1,0) [0|63] "" XXX
|
||||||
|
SG_ POINT_4_SIGNAL_19 : 402|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ POINT_4_SIGNAL_20 : 410|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_5_DISTANCE : 411|14@1+ (0.015625,0) [0|255.984375] "" XXX
|
||||||
|
SG_ POINT_5_SIGNAL_2 : 425|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_5_SIGNAL_3 : 427|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX
|
||||||
|
SG_ POINT_5_REL_VELOCITY : 435|13@1+ (0.03125,-66) [-66|189.96875] "" XXX
|
||||||
|
SG_ POINT_5_SIGNAL_5 : 448|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_5_SIGNAL_6 : 450|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_5_AZIMUTH : 452|12@1+ (0.001953125,-3.998046875) [-3.998046875|4.0] "" XXX
|
||||||
|
SG_ POINT_5_SIGNAL_8 : 464|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_5_SIGNAL_9 : 466|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_5_SIGNAL_10 : 467|7@1+ (1,0) [0|127] "" XXX
|
||||||
|
SG_ POINT_5_SIGNAL_11 : 474|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_5_SIGNAL_12 : 475|6@1+ (1,0) [0|63] "" XXX
|
||||||
|
SG_ POINT_5_SIGNAL_13 : 481|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_5_SIGNAL_14 : 483|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX
|
||||||
|
SG_ POINT_5_SIGNAL_15 : 491|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_5_SIGNAL_16 : 492|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_5_SIGNAL_17 : 494|3@1+ (1,0) [0|7] "" XXX
|
||||||
|
SG_ POINT_5_SIGNAL_18 : 497|6@1+ (1,0) [0|63] "" XXX
|
||||||
|
SG_ POINT_5_SIGNAL_19 : 503|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ POINT_5_SIGNAL_20 : 511|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
|
||||||
|
BO_ 513 RADAR_POINTS_0x201: 64 RADAR
|
||||||
|
SG_ MESSAGE_ID : 0|5@1+ (1,0) [0|31] "" XXX
|
||||||
|
SG_ LAYOUT_ID : 5|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_1_DISTANCE : 7|14@1+ (0.015625,0) [0|255.984375] "" XXX
|
||||||
|
SG_ POINT_1_SIGNAL_2 : 21|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_1_SIGNAL_3 : 23|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX
|
||||||
|
SG_ POINT_1_REL_VELOCITY : 31|13@1+ (0.03125,-66) [-66|189.96875] "" XXX
|
||||||
|
SG_ POINT_1_SIGNAL_5 : 44|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_1_SIGNAL_6 : 46|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_1_AZIMUTH : 48|12@1+ (0.001953125,-3.998046875) [-3.998046875|4.0] "" XXX
|
||||||
|
SG_ POINT_1_SIGNAL_8 : 60|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_1_SIGNAL_9 : 62|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_1_SIGNAL_10 : 63|7@1+ (1,0) [0|127] "" XXX
|
||||||
|
SG_ POINT_1_SIGNAL_11 : 70|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_1_SIGNAL_12 : 71|6@1+ (1,0) [0|63] "" XXX
|
||||||
|
SG_ POINT_1_SIGNAL_13 : 77|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_1_SIGNAL_14 : 79|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX
|
||||||
|
SG_ POINT_1_SIGNAL_15 : 87|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_1_SIGNAL_16 : 88|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_1_SIGNAL_17 : 90|3@1+ (1,0) [0|7] "" XXX
|
||||||
|
SG_ POINT_1_SIGNAL_18 : 93|6@1+ (1,0) [0|63] "" XXX
|
||||||
|
SG_ POINT_1_SIGNAL_19 : 99|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ POINT_1_SIGNAL_20 : 107|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_2_DISTANCE : 108|14@1+ (0.015625,0) [0|255.984375] "" XXX
|
||||||
|
SG_ POINT_2_SIGNAL_2 : 122|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_2_SIGNAL_3 : 124|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX
|
||||||
|
SG_ POINT_2_REL_VELOCITY : 132|13@1+ (0.03125,-66) [-66|189.96875] "" XXX
|
||||||
|
SG_ POINT_2_SIGNAL_5 : 145|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_2_SIGNAL_6 : 147|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_2_AZIMUTH : 149|12@1+ (0.001953125,-3.998046875) [-3.998046875|4.0] "" XXX
|
||||||
|
SG_ POINT_2_SIGNAL_8 : 161|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_2_SIGNAL_9 : 163|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_2_SIGNAL_10 : 164|7@1+ (1,0) [0|127] "" XXX
|
||||||
|
SG_ POINT_2_SIGNAL_11 : 171|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_2_SIGNAL_12 : 172|6@1+ (1,0) [0|63] "" XXX
|
||||||
|
SG_ POINT_2_SIGNAL_13 : 178|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_2_SIGNAL_14 : 180|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX
|
||||||
|
SG_ POINT_2_SIGNAL_15 : 188|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_2_SIGNAL_16 : 189|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_2_SIGNAL_17 : 191|3@1+ (1,0) [0|7] "" XXX
|
||||||
|
SG_ POINT_2_SIGNAL_18 : 194|6@1+ (1,0) [0|63] "" XXX
|
||||||
|
SG_ POINT_2_SIGNAL_19 : 200|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ POINT_2_SIGNAL_20 : 208|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_3_DISTANCE : 209|14@1+ (0.015625,0) [0|255.984375] "" XXX
|
||||||
|
SG_ POINT_3_SIGNAL_2 : 223|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_3_SIGNAL_3 : 225|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX
|
||||||
|
SG_ POINT_3_REL_VELOCITY : 233|13@1+ (0.03125,-66) [-66|189.96875] "" XXX
|
||||||
|
SG_ POINT_3_SIGNAL_5 : 246|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_3_SIGNAL_6 : 248|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_3_AZIMUTH : 250|12@1+ (0.001953125,-3.998046875) [-3.998046875|4.0] "" XXX
|
||||||
|
SG_ POINT_3_SIGNAL_8 : 262|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_3_SIGNAL_9 : 264|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_3_SIGNAL_10 : 265|7@1+ (1,0) [0|127] "" XXX
|
||||||
|
SG_ POINT_3_SIGNAL_11 : 272|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_3_SIGNAL_12 : 273|6@1+ (1,0) [0|63] "" XXX
|
||||||
|
SG_ POINT_3_SIGNAL_13 : 279|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_3_SIGNAL_14 : 281|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX
|
||||||
|
SG_ POINT_3_SIGNAL_15 : 289|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_3_SIGNAL_16 : 290|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_3_SIGNAL_17 : 292|3@1+ (1,0) [0|7] "" XXX
|
||||||
|
SG_ POINT_3_SIGNAL_18 : 295|6@1+ (1,0) [0|63] "" XXX
|
||||||
|
SG_ POINT_3_SIGNAL_19 : 301|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ POINT_3_SIGNAL_20 : 309|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_4_DISTANCE : 310|14@1+ (0.015625,0) [0|255.984375] "" XXX
|
||||||
|
SG_ POINT_4_SIGNAL_2 : 324|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_4_SIGNAL_3 : 326|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX
|
||||||
|
SG_ POINT_4_REL_VELOCITY : 334|13@1+ (0.03125,-66) [-66|189.96875] "" XXX
|
||||||
|
SG_ POINT_4_SIGNAL_5 : 347|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_4_SIGNAL_6 : 349|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_4_AZIMUTH : 351|12@1+ (0.001953125,-3.998046875) [-3.998046875|4.0] "" XXX
|
||||||
|
SG_ POINT_4_SIGNAL_8 : 363|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_4_SIGNAL_9 : 365|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_4_SIGNAL_10 : 366|7@1+ (1,0) [0|127] "" XXX
|
||||||
|
SG_ POINT_4_SIGNAL_11 : 373|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_4_SIGNAL_12 : 374|6@1+ (1,0) [0|63] "" XXX
|
||||||
|
SG_ POINT_4_SIGNAL_13 : 380|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_4_SIGNAL_14 : 382|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX
|
||||||
|
SG_ POINT_4_SIGNAL_15 : 390|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_4_SIGNAL_16 : 391|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_4_SIGNAL_17 : 393|3@1+ (1,0) [0|7] "" XXX
|
||||||
|
SG_ POINT_4_SIGNAL_18 : 396|6@1+ (1,0) [0|63] "" XXX
|
||||||
|
SG_ POINT_4_SIGNAL_19 : 402|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ POINT_4_SIGNAL_20 : 410|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_5_DISTANCE : 411|14@1+ (0.015625,0) [0|255.984375] "" XXX
|
||||||
|
SG_ POINT_5_SIGNAL_2 : 425|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_5_SIGNAL_3 : 427|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX
|
||||||
|
SG_ POINT_5_REL_VELOCITY : 435|13@1+ (0.03125,-66) [-66|189.96875] "" XXX
|
||||||
|
SG_ POINT_5_SIGNAL_5 : 448|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_5_SIGNAL_6 : 450|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_5_AZIMUTH : 452|12@1+ (0.001953125,-3.998046875) [-3.998046875|4.0] "" XXX
|
||||||
|
SG_ POINT_5_SIGNAL_8 : 464|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_5_SIGNAL_9 : 466|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_5_SIGNAL_10 : 467|7@1+ (1,0) [0|127] "" XXX
|
||||||
|
SG_ POINT_5_SIGNAL_11 : 474|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_5_SIGNAL_12 : 475|6@1+ (1,0) [0|63] "" XXX
|
||||||
|
SG_ POINT_5_SIGNAL_13 : 481|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_5_SIGNAL_14 : 483|8@1+ (0.001953125,-0.248046875) [-0.248046875|0.25] "" XXX
|
||||||
|
SG_ POINT_5_SIGNAL_15 : 491|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ POINT_5_SIGNAL_16 : 492|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ POINT_5_SIGNAL_17 : 494|3@1+ (1,0) [0|7] "" XXX
|
||||||
|
SG_ POINT_5_SIGNAL_18 : 497|6@1+ (1,0) [0|63] "" XXX
|
||||||
|
SG_ POINT_5_SIGNAL_19 : 503|8@1+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ POINT_5_SIGNAL_20 : 511|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
|
||||||
|
BO_ 260 RADAR_POINTS_CHECKSUM_0x104: 3 RADAR
|
||||||
|
SG_ CRC16 : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
|
|
||||||
|
BO_ 516 RADAR_POINTS_CHECKSUM_0x204: 3 RADAR
|
||||||
|
SG_ CRC16 : 0|16@1+ (1,0) [0|65535] "" XXX
|
||||||
@@ -1,57 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
print("""
|
|
||||||
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):
|
|
||||||
print(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
|
|
||||||
""")
|
|
||||||
+36
-65
@@ -1,3 +1,6 @@
|
|||||||
|
CM_ "AUTOGENERATED FILE, DO NOT EDIT";
|
||||||
|
|
||||||
|
CM_ "hyundai_kia_mando_front_radar.dbc starts here";
|
||||||
|
|
||||||
VERSION ""
|
VERSION ""
|
||||||
|
|
||||||
@@ -35,8 +38,7 @@ NS_ :
|
|||||||
BS_:
|
BS_:
|
||||||
|
|
||||||
BU_: XXX
|
BU_: XXX
|
||||||
|
|
||||||
|
|
||||||
BO_ 1280 RADAR_TRACK_500: 8 RADAR
|
BO_ 1280 RADAR_TRACK_500: 8 RADAR
|
||||||
SG_ UNKNOWN_1 : 7|8@0- (1,0) [-128|127] "" XXX
|
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_ AZIMUTH : 12|10@0- (0.2,0) [-102.4|102.2] "" XXX
|
||||||
@@ -48,8 +50,7 @@ BO_ 1280 RADAR_TRACK_500: 8 RADAR
|
|||||||
SG_ STATE_3 : 39|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_ REL_SPEED : 53|14@0- (0.01,0) [-81.92|81.92] "" XXX
|
||||||
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
|
|
||||||
BO_ 1281 RADAR_TRACK_501: 8 RADAR
|
BO_ 1281 RADAR_TRACK_501: 8 RADAR
|
||||||
SG_ UNKNOWN_1 : 7|8@0- (1,0) [-128|127] "" XXX
|
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_ AZIMUTH : 12|10@0- (0.2,0) [-102.4|102.2] "" XXX
|
||||||
@@ -61,8 +62,7 @@ BO_ 1281 RADAR_TRACK_501: 8 RADAR
|
|||||||
SG_ STATE_3 : 39|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_ REL_SPEED : 53|14@0- (0.01,0) [-81.92|81.92] "" XXX
|
||||||
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
|
|
||||||
BO_ 1282 RADAR_TRACK_502: 8 RADAR
|
BO_ 1282 RADAR_TRACK_502: 8 RADAR
|
||||||
SG_ UNKNOWN_1 : 7|8@0- (1,0) [-128|127] "" XXX
|
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_ AZIMUTH : 12|10@0- (0.2,0) [-102.4|102.2] "" XXX
|
||||||
@@ -74,8 +74,7 @@ BO_ 1282 RADAR_TRACK_502: 8 RADAR
|
|||||||
SG_ STATE_3 : 39|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_ REL_SPEED : 53|14@0- (0.01,0) [-81.92|81.92] "" XXX
|
||||||
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
|
|
||||||
BO_ 1283 RADAR_TRACK_503: 8 RADAR
|
BO_ 1283 RADAR_TRACK_503: 8 RADAR
|
||||||
SG_ UNKNOWN_1 : 7|8@0- (1,0) [-128|127] "" XXX
|
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_ AZIMUTH : 12|10@0- (0.2,0) [-102.4|102.2] "" XXX
|
||||||
@@ -87,8 +86,7 @@ BO_ 1283 RADAR_TRACK_503: 8 RADAR
|
|||||||
SG_ STATE_3 : 39|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_ REL_SPEED : 53|14@0- (0.01,0) [-81.92|81.92] "" XXX
|
||||||
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
|
|
||||||
BO_ 1284 RADAR_TRACK_504: 8 RADAR
|
BO_ 1284 RADAR_TRACK_504: 8 RADAR
|
||||||
SG_ UNKNOWN_1 : 7|8@0- (1,0) [-128|127] "" XXX
|
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_ AZIMUTH : 12|10@0- (0.2,0) [-102.4|102.2] "" XXX
|
||||||
@@ -100,8 +98,7 @@ BO_ 1284 RADAR_TRACK_504: 8 RADAR
|
|||||||
SG_ STATE_3 : 39|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_ REL_SPEED : 53|14@0- (0.01,0) [-81.92|81.92] "" XXX
|
||||||
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
|
|
||||||
BO_ 1285 RADAR_TRACK_505: 8 RADAR
|
BO_ 1285 RADAR_TRACK_505: 8 RADAR
|
||||||
SG_ UNKNOWN_1 : 7|8@0- (1,0) [-128|127] "" XXX
|
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_ AZIMUTH : 12|10@0- (0.2,0) [-102.4|102.2] "" XXX
|
||||||
@@ -113,8 +110,7 @@ BO_ 1285 RADAR_TRACK_505: 8 RADAR
|
|||||||
SG_ STATE_3 : 39|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_ REL_SPEED : 53|14@0- (0.01,0) [-81.92|81.92] "" XXX
|
||||||
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
|
|
||||||
BO_ 1286 RADAR_TRACK_506: 8 RADAR
|
BO_ 1286 RADAR_TRACK_506: 8 RADAR
|
||||||
SG_ UNKNOWN_1 : 7|8@0- (1,0) [-128|127] "" XXX
|
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_ AZIMUTH : 12|10@0- (0.2,0) [-102.4|102.2] "" XXX
|
||||||
@@ -126,8 +122,7 @@ BO_ 1286 RADAR_TRACK_506: 8 RADAR
|
|||||||
SG_ STATE_3 : 39|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_ REL_SPEED : 53|14@0- (0.01,0) [-81.92|81.92] "" XXX
|
||||||
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
|
|
||||||
BO_ 1287 RADAR_TRACK_507: 8 RADAR
|
BO_ 1287 RADAR_TRACK_507: 8 RADAR
|
||||||
SG_ UNKNOWN_1 : 7|8@0- (1,0) [-128|127] "" XXX
|
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_ AZIMUTH : 12|10@0- (0.2,0) [-102.4|102.2] "" XXX
|
||||||
@@ -139,8 +134,7 @@ BO_ 1287 RADAR_TRACK_507: 8 RADAR
|
|||||||
SG_ STATE_3 : 39|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_ REL_SPEED : 53|14@0- (0.01,0) [-81.92|81.92] "" XXX
|
||||||
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
|
|
||||||
BO_ 1288 RADAR_TRACK_508: 8 RADAR
|
BO_ 1288 RADAR_TRACK_508: 8 RADAR
|
||||||
SG_ UNKNOWN_1 : 7|8@0- (1,0) [-128|127] "" XXX
|
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_ AZIMUTH : 12|10@0- (0.2,0) [-102.4|102.2] "" XXX
|
||||||
@@ -152,8 +146,7 @@ BO_ 1288 RADAR_TRACK_508: 8 RADAR
|
|||||||
SG_ STATE_3 : 39|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_ REL_SPEED : 53|14@0- (0.01,0) [-81.92|81.92] "" XXX
|
||||||
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
|
|
||||||
BO_ 1289 RADAR_TRACK_509: 8 RADAR
|
BO_ 1289 RADAR_TRACK_509: 8 RADAR
|
||||||
SG_ UNKNOWN_1 : 7|8@0- (1,0) [-128|127] "" XXX
|
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_ AZIMUTH : 12|10@0- (0.2,0) [-102.4|102.2] "" XXX
|
||||||
@@ -165,8 +158,7 @@ BO_ 1289 RADAR_TRACK_509: 8 RADAR
|
|||||||
SG_ STATE_3 : 39|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_ REL_SPEED : 53|14@0- (0.01,0) [-81.92|81.92] "" XXX
|
||||||
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
|
|
||||||
BO_ 1290 RADAR_TRACK_50a: 8 RADAR
|
BO_ 1290 RADAR_TRACK_50a: 8 RADAR
|
||||||
SG_ UNKNOWN_1 : 7|8@0- (1,0) [-128|127] "" XXX
|
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_ AZIMUTH : 12|10@0- (0.2,0) [-102.4|102.2] "" XXX
|
||||||
@@ -178,8 +170,7 @@ BO_ 1290 RADAR_TRACK_50a: 8 RADAR
|
|||||||
SG_ STATE_3 : 39|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_ REL_SPEED : 53|14@0- (0.01,0) [-81.92|81.92] "" XXX
|
||||||
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
|
|
||||||
BO_ 1291 RADAR_TRACK_50b: 8 RADAR
|
BO_ 1291 RADAR_TRACK_50b: 8 RADAR
|
||||||
SG_ UNKNOWN_1 : 7|8@0- (1,0) [-128|127] "" XXX
|
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_ AZIMUTH : 12|10@0- (0.2,0) [-102.4|102.2] "" XXX
|
||||||
@@ -191,8 +182,7 @@ BO_ 1291 RADAR_TRACK_50b: 8 RADAR
|
|||||||
SG_ STATE_3 : 39|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_ REL_SPEED : 53|14@0- (0.01,0) [-81.92|81.92] "" XXX
|
||||||
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
|
|
||||||
BO_ 1292 RADAR_TRACK_50c: 8 RADAR
|
BO_ 1292 RADAR_TRACK_50c: 8 RADAR
|
||||||
SG_ UNKNOWN_1 : 7|8@0- (1,0) [-128|127] "" XXX
|
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_ AZIMUTH : 12|10@0- (0.2,0) [-102.4|102.2] "" XXX
|
||||||
@@ -204,8 +194,7 @@ BO_ 1292 RADAR_TRACK_50c: 8 RADAR
|
|||||||
SG_ STATE_3 : 39|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_ REL_SPEED : 53|14@0- (0.01,0) [-81.92|81.92] "" XXX
|
||||||
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
|
|
||||||
BO_ 1293 RADAR_TRACK_50d: 8 RADAR
|
BO_ 1293 RADAR_TRACK_50d: 8 RADAR
|
||||||
SG_ UNKNOWN_1 : 7|8@0- (1,0) [-128|127] "" XXX
|
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_ AZIMUTH : 12|10@0- (0.2,0) [-102.4|102.2] "" XXX
|
||||||
@@ -217,8 +206,7 @@ BO_ 1293 RADAR_TRACK_50d: 8 RADAR
|
|||||||
SG_ STATE_3 : 39|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_ REL_SPEED : 53|14@0- (0.01,0) [-81.92|81.92] "" XXX
|
||||||
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
|
|
||||||
BO_ 1294 RADAR_TRACK_50e: 8 RADAR
|
BO_ 1294 RADAR_TRACK_50e: 8 RADAR
|
||||||
SG_ UNKNOWN_1 : 7|8@0- (1,0) [-128|127] "" XXX
|
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_ AZIMUTH : 12|10@0- (0.2,0) [-102.4|102.2] "" XXX
|
||||||
@@ -230,8 +218,7 @@ BO_ 1294 RADAR_TRACK_50e: 8 RADAR
|
|||||||
SG_ STATE_3 : 39|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_ REL_SPEED : 53|14@0- (0.01,0) [-81.92|81.92] "" XXX
|
||||||
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
|
|
||||||
BO_ 1295 RADAR_TRACK_50f: 8 RADAR
|
BO_ 1295 RADAR_TRACK_50f: 8 RADAR
|
||||||
SG_ UNKNOWN_1 : 7|8@0- (1,0) [-128|127] "" XXX
|
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_ AZIMUTH : 12|10@0- (0.2,0) [-102.4|102.2] "" XXX
|
||||||
@@ -243,8 +230,7 @@ BO_ 1295 RADAR_TRACK_50f: 8 RADAR
|
|||||||
SG_ STATE_3 : 39|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_ REL_SPEED : 53|14@0- (0.01,0) [-81.92|81.92] "" XXX
|
||||||
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
|
|
||||||
BO_ 1296 RADAR_TRACK_510: 8 RADAR
|
BO_ 1296 RADAR_TRACK_510: 8 RADAR
|
||||||
SG_ UNKNOWN_1 : 7|8@0- (1,0) [-128|127] "" XXX
|
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_ AZIMUTH : 12|10@0- (0.2,0) [-102.4|102.2] "" XXX
|
||||||
@@ -256,8 +242,7 @@ BO_ 1296 RADAR_TRACK_510: 8 RADAR
|
|||||||
SG_ STATE_3 : 39|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_ REL_SPEED : 53|14@0- (0.01,0) [-81.92|81.92] "" XXX
|
||||||
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
|
|
||||||
BO_ 1297 RADAR_TRACK_511: 8 RADAR
|
BO_ 1297 RADAR_TRACK_511: 8 RADAR
|
||||||
SG_ UNKNOWN_1 : 7|8@0- (1,0) [-128|127] "" XXX
|
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_ AZIMUTH : 12|10@0- (0.2,0) [-102.4|102.2] "" XXX
|
||||||
@@ -269,8 +254,7 @@ BO_ 1297 RADAR_TRACK_511: 8 RADAR
|
|||||||
SG_ STATE_3 : 39|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_ REL_SPEED : 53|14@0- (0.01,0) [-81.92|81.92] "" XXX
|
||||||
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
|
|
||||||
BO_ 1298 RADAR_TRACK_512: 8 RADAR
|
BO_ 1298 RADAR_TRACK_512: 8 RADAR
|
||||||
SG_ UNKNOWN_1 : 7|8@0- (1,0) [-128|127] "" XXX
|
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_ AZIMUTH : 12|10@0- (0.2,0) [-102.4|102.2] "" XXX
|
||||||
@@ -282,8 +266,7 @@ BO_ 1298 RADAR_TRACK_512: 8 RADAR
|
|||||||
SG_ STATE_3 : 39|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_ REL_SPEED : 53|14@0- (0.01,0) [-81.92|81.92] "" XXX
|
||||||
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
|
|
||||||
BO_ 1299 RADAR_TRACK_513: 8 RADAR
|
BO_ 1299 RADAR_TRACK_513: 8 RADAR
|
||||||
SG_ UNKNOWN_1 : 7|8@0- (1,0) [-128|127] "" XXX
|
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_ AZIMUTH : 12|10@0- (0.2,0) [-102.4|102.2] "" XXX
|
||||||
@@ -295,8 +278,7 @@ BO_ 1299 RADAR_TRACK_513: 8 RADAR
|
|||||||
SG_ STATE_3 : 39|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_ REL_SPEED : 53|14@0- (0.01,0) [-81.92|81.92] "" XXX
|
||||||
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
|
|
||||||
BO_ 1300 RADAR_TRACK_514: 8 RADAR
|
BO_ 1300 RADAR_TRACK_514: 8 RADAR
|
||||||
SG_ UNKNOWN_1 : 7|8@0- (1,0) [-128|127] "" XXX
|
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_ AZIMUTH : 12|10@0- (0.2,0) [-102.4|102.2] "" XXX
|
||||||
@@ -308,8 +290,7 @@ BO_ 1300 RADAR_TRACK_514: 8 RADAR
|
|||||||
SG_ STATE_3 : 39|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_ REL_SPEED : 53|14@0- (0.01,0) [-81.92|81.92] "" XXX
|
||||||
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
|
|
||||||
BO_ 1301 RADAR_TRACK_515: 8 RADAR
|
BO_ 1301 RADAR_TRACK_515: 8 RADAR
|
||||||
SG_ UNKNOWN_1 : 7|8@0- (1,0) [-128|127] "" XXX
|
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_ AZIMUTH : 12|10@0- (0.2,0) [-102.4|102.2] "" XXX
|
||||||
@@ -321,8 +302,7 @@ BO_ 1301 RADAR_TRACK_515: 8 RADAR
|
|||||||
SG_ STATE_3 : 39|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_ REL_SPEED : 53|14@0- (0.01,0) [-81.92|81.92] "" XXX
|
||||||
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
|
|
||||||
BO_ 1302 RADAR_TRACK_516: 8 RADAR
|
BO_ 1302 RADAR_TRACK_516: 8 RADAR
|
||||||
SG_ UNKNOWN_1 : 7|8@0- (1,0) [-128|127] "" XXX
|
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_ AZIMUTH : 12|10@0- (0.2,0) [-102.4|102.2] "" XXX
|
||||||
@@ -334,8 +314,7 @@ BO_ 1302 RADAR_TRACK_516: 8 RADAR
|
|||||||
SG_ STATE_3 : 39|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_ REL_SPEED : 53|14@0- (0.01,0) [-81.92|81.92] "" XXX
|
||||||
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
|
|
||||||
BO_ 1303 RADAR_TRACK_517: 8 RADAR
|
BO_ 1303 RADAR_TRACK_517: 8 RADAR
|
||||||
SG_ UNKNOWN_1 : 7|8@0- (1,0) [-128|127] "" XXX
|
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_ AZIMUTH : 12|10@0- (0.2,0) [-102.4|102.2] "" XXX
|
||||||
@@ -347,8 +326,7 @@ BO_ 1303 RADAR_TRACK_517: 8 RADAR
|
|||||||
SG_ STATE_3 : 39|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_ REL_SPEED : 53|14@0- (0.01,0) [-81.92|81.92] "" XXX
|
||||||
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
|
|
||||||
BO_ 1304 RADAR_TRACK_518: 8 RADAR
|
BO_ 1304 RADAR_TRACK_518: 8 RADAR
|
||||||
SG_ UNKNOWN_1 : 7|8@0- (1,0) [-128|127] "" XXX
|
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_ AZIMUTH : 12|10@0- (0.2,0) [-102.4|102.2] "" XXX
|
||||||
@@ -360,8 +338,7 @@ BO_ 1304 RADAR_TRACK_518: 8 RADAR
|
|||||||
SG_ STATE_3 : 39|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_ REL_SPEED : 53|14@0- (0.01,0) [-81.92|81.92] "" XXX
|
||||||
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
|
|
||||||
BO_ 1305 RADAR_TRACK_519: 8 RADAR
|
BO_ 1305 RADAR_TRACK_519: 8 RADAR
|
||||||
SG_ UNKNOWN_1 : 7|8@0- (1,0) [-128|127] "" XXX
|
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_ AZIMUTH : 12|10@0- (0.2,0) [-102.4|102.2] "" XXX
|
||||||
@@ -373,8 +350,7 @@ BO_ 1305 RADAR_TRACK_519: 8 RADAR
|
|||||||
SG_ STATE_3 : 39|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_ REL_SPEED : 53|14@0- (0.01,0) [-81.92|81.92] "" XXX
|
||||||
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
|
|
||||||
BO_ 1306 RADAR_TRACK_51a: 8 RADAR
|
BO_ 1306 RADAR_TRACK_51a: 8 RADAR
|
||||||
SG_ UNKNOWN_1 : 7|8@0- (1,0) [-128|127] "" XXX
|
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_ AZIMUTH : 12|10@0- (0.2,0) [-102.4|102.2] "" XXX
|
||||||
@@ -386,8 +362,7 @@ BO_ 1306 RADAR_TRACK_51a: 8 RADAR
|
|||||||
SG_ STATE_3 : 39|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_ REL_SPEED : 53|14@0- (0.01,0) [-81.92|81.92] "" XXX
|
||||||
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
|
|
||||||
BO_ 1307 RADAR_TRACK_51b: 8 RADAR
|
BO_ 1307 RADAR_TRACK_51b: 8 RADAR
|
||||||
SG_ UNKNOWN_1 : 7|8@0- (1,0) [-128|127] "" XXX
|
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_ AZIMUTH : 12|10@0- (0.2,0) [-102.4|102.2] "" XXX
|
||||||
@@ -399,8 +374,7 @@ BO_ 1307 RADAR_TRACK_51b: 8 RADAR
|
|||||||
SG_ STATE_3 : 39|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_ REL_SPEED : 53|14@0- (0.01,0) [-81.92|81.92] "" XXX
|
||||||
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
|
|
||||||
BO_ 1308 RADAR_TRACK_51c: 8 RADAR
|
BO_ 1308 RADAR_TRACK_51c: 8 RADAR
|
||||||
SG_ UNKNOWN_1 : 7|8@0- (1,0) [-128|127] "" XXX
|
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_ AZIMUTH : 12|10@0- (0.2,0) [-102.4|102.2] "" XXX
|
||||||
@@ -412,8 +386,7 @@ BO_ 1308 RADAR_TRACK_51c: 8 RADAR
|
|||||||
SG_ STATE_3 : 39|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_ REL_SPEED : 53|14@0- (0.01,0) [-81.92|81.92] "" XXX
|
||||||
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
|
|
||||||
BO_ 1309 RADAR_TRACK_51d: 8 RADAR
|
BO_ 1309 RADAR_TRACK_51d: 8 RADAR
|
||||||
SG_ UNKNOWN_1 : 7|8@0- (1,0) [-128|127] "" XXX
|
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_ AZIMUTH : 12|10@0- (0.2,0) [-102.4|102.2] "" XXX
|
||||||
@@ -425,8 +398,7 @@ BO_ 1309 RADAR_TRACK_51d: 8 RADAR
|
|||||||
SG_ STATE_3 : 39|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_ REL_SPEED : 53|14@0- (0.01,0) [-81.92|81.92] "" XXX
|
||||||
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
|
|
||||||
BO_ 1310 RADAR_TRACK_51e: 8 RADAR
|
BO_ 1310 RADAR_TRACK_51e: 8 RADAR
|
||||||
SG_ UNKNOWN_1 : 7|8@0- (1,0) [-128|127] "" XXX
|
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_ AZIMUTH : 12|10@0- (0.2,0) [-102.4|102.2] "" XXX
|
||||||
@@ -438,8 +410,7 @@ BO_ 1310 RADAR_TRACK_51e: 8 RADAR
|
|||||||
SG_ STATE_3 : 39|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_ REL_SPEED : 53|14@0- (0.01,0) [-81.92|81.92] "" XXX
|
||||||
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
|
|
||||||
BO_ 1311 RADAR_TRACK_51f: 8 RADAR
|
BO_ 1311 RADAR_TRACK_51f: 8 RADAR
|
||||||
SG_ UNKNOWN_1 : 7|8@0- (1,0) [-128|127] "" XXX
|
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_ AZIMUTH : 12|10@0- (0.2,0) [-102.4|102.2] "" XXX
|
||||||
@@ -451,4 +422,4 @@ BO_ 1311 RADAR_TRACK_51f: 8 RADAR
|
|||||||
SG_ STATE_3 : 39|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_ REL_SPEED : 53|14@0- (0.01,0) [-81.92|81.92] "" XXX
|
||||||
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
SG_ STATE_2 : 55|2@0+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
@@ -5,4 +5,4 @@ numpy==1.21.0
|
|||||||
pycapnp==1.0.0
|
pycapnp==1.0.0
|
||||||
pylint==2.4.3
|
pylint==2.4.3
|
||||||
pyyaml==5.4
|
pyyaml==5.4
|
||||||
scons==3.1.1
|
scons
|
||||||
|
|||||||
@@ -128,9 +128,10 @@ BO_ 466 PCM_CRUISE: 8 XXX
|
|||||||
|
|
||||||
BO_ 467 PCM_CRUISE_2: 8 XXX
|
BO_ 467 PCM_CRUISE_2: 8 XXX
|
||||||
SG_ PCM_FOLLOW_DISTANCE : 12|2@0+ (1,0) [0|3] "" 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_ 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_ 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
|
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
BO_ 552 ACCELEROMETER: 8 XXX
|
BO_ 552 ACCELEROMETER: 8 XXX
|
||||||
@@ -209,8 +210,9 @@ BO_ 836 PRE_COLLISION_2: 8 DSU
|
|||||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|0] "" XXX
|
SG_ CHECKSUM : 63|8@0+ (1,0) [0|0] "" XXX
|
||||||
|
|
||||||
BO_ 865 CLUTCH: 8 XXX
|
BO_ 865 CLUTCH: 8 XXX
|
||||||
SG_ CLUTCH_RELEASED : 38|1@0+ (1,0) [0|1] "" 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_ 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
|
BO_ 869 DSU_CRUISE : 7 DSU
|
||||||
SG_ RES_BTN : 3|1@0+ (1,0) [0|0] "" XXX
|
SG_ RES_BTN : 3|1@0+ (1,0) [0|0] "" XXX
|
||||||
@@ -225,6 +227,7 @@ BO_ 921 PCM_CRUISE_SM: 8 XXX
|
|||||||
SG_ MAIN_ON : 4|1@0+ (1,0) [0|1] "" 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_ CRUISE_CONTROL_STATE : 11|4@0+ (1,0) [0|15] "" XXX
|
||||||
SG_ DISTANCE_LINES : 14|2@0+ (1,0) [0|3] "" 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
|
SG_ UI_SET_SPEED : 31|8@0+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
BO_ 951 ESP_CONTROL: 8 ESP
|
BO_ 951 ESP_CONTROL: 8 ESP
|
||||||
@@ -249,7 +252,7 @@ BO_ 1005 REVERSE_CAMERA_STATE: 2 BGM
|
|||||||
BO_ 1009 PCM_CRUISE_ALT: 8 XXX
|
BO_ 1009 PCM_CRUISE_ALT: 8 XXX
|
||||||
SG_ MAIN_ON : 13|1@0+ (1,0) [0|3] "" XXX
|
SG_ MAIN_ON : 13|1@0+ (1,0) [0|3] "" XXX
|
||||||
SG_ CRUISE_STATE : 10|1@0+ (1,0) [0|1] "" 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
|
BO_ 1020 SOLAR_SENSOR: 8 XXX
|
||||||
SG_ LUX_SENSOR : 55|13@0+ (1,0) [0|0] "" XXX
|
SG_ LUX_SENSOR : 55|13@0+ (1,0) [0|0] "" XXX
|
||||||
@@ -373,6 +376,7 @@ BO_ 1552 BODY_CONTROL_STATE_2: 8 XXX
|
|||||||
SG_ METER_SLIDER_BRIGHTNESS_PCT : 30|7@0+ (1,0) [12|100] "%" 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_LOW_BRIGHTNESS : 37|1@0+ (1,0) [0|1] "" XXX
|
||||||
SG_ METER_SLIDER_DIMMED : 38|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
|
BO_ 1553 UI_SETTING: 8 XXX
|
||||||
SG_ UNITS : 26|2@0+ (1,0) [0|3] "" XXX
|
SG_ UNITS : 26|2@0+ (1,0) [0|3] "" XXX
|
||||||
@@ -415,6 +419,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_ 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 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_ 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 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_ 467 LOW_SPEED_LOCKOUT "in low speed lockout, system would always disengage below 28mph";
|
||||||
CM_ SG_ 560 BRAKE_PRESSED "another brake pressed?";
|
CM_ SG_ 560 BRAKE_PRESSED "another brake pressed?";
|
||||||
@@ -436,10 +441,12 @@ CM_ SG_ 835 PERMIT_BRAKING "Original ACC has this going high when a car in front
|
|||||||
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_ 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 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 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 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_ 951 BRAKE_LIGHTS_ACC "brake lights when ACC commands decel";
|
||||||
CM_ SG_ 956 GEAR "on 6MT, only R shows.";
|
CM_ SG_ 956 GEAR "on 6MT, only R shows.";
|
||||||
CM_ SG_ 1009 SET_SPEED "units seem to be whatever the car is set to";
|
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_INDICATOR "Pre-Collision System Indicator";
|
||||||
CM_ SG_ 1041 PCS_SENSITIVITY "Pre-Collision System Sensitivity";
|
CM_ SG_ 1041 PCS_SENSITIVITY "Pre-Collision System Sensitivity";
|
||||||
CM_ SG_ 1042 LDA_SA_TOGGLE "LDA Steering Assist Toggle";
|
CM_ SG_ 1042 LDA_SA_TOGGLE "LDA Steering Assist Toggle";
|
||||||
@@ -472,7 +479,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 OVSPVALM "-5 at start then 5 after 2 seconds";
|
||||||
CM_ SG_ 1163 OVSPVALH "-5 at start then 10 after 2 seconds";
|
CM_ SG_ 1163 OVSPVALH "-5 at start then 10 after 2 seconds";
|
||||||
CM_ SG_ 1163 TSRSPU "always 1";
|
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_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_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";
|
CM_ SG_ 1552 METER_SLIDER_DIMMED "Combination display slider not at max, reflects combination meter settings only, not linked with headlight state";
|
||||||
@@ -524,6 +531,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_ 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_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 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_ 1553 UNITS 1 "km" 2 "miles";
|
||||||
VAL_ 1556 TURN_SIGNALS 3 "none" 2 "right" 1 "left";
|
VAL_ 1556 TURN_SIGNALS 3 "none" 2 "right" 1 "left";
|
||||||
VAL_ 1592 LOCK_STATUS 0 "locked" 1 "unlocked";
|
VAL_ 1592 LOCK_STATUS 0 "locked" 1 "unlocked";
|
||||||
|
|||||||
@@ -128,9 +128,10 @@ BO_ 466 PCM_CRUISE: 8 XXX
|
|||||||
|
|
||||||
BO_ 467 PCM_CRUISE_2: 8 XXX
|
BO_ 467 PCM_CRUISE_2: 8 XXX
|
||||||
SG_ PCM_FOLLOW_DISTANCE : 12|2@0+ (1,0) [0|3] "" 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_ 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_ 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
|
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
BO_ 552 ACCELEROMETER: 8 XXX
|
BO_ 552 ACCELEROMETER: 8 XXX
|
||||||
@@ -209,8 +210,9 @@ BO_ 836 PRE_COLLISION_2: 8 DSU
|
|||||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|0] "" XXX
|
SG_ CHECKSUM : 63|8@0+ (1,0) [0|0] "" XXX
|
||||||
|
|
||||||
BO_ 865 CLUTCH: 8 XXX
|
BO_ 865 CLUTCH: 8 XXX
|
||||||
SG_ CLUTCH_RELEASED : 38|1@0+ (1,0) [0|1] "" 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_ 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
|
BO_ 869 DSU_CRUISE : 7 DSU
|
||||||
SG_ RES_BTN : 3|1@0+ (1,0) [0|0] "" XXX
|
SG_ RES_BTN : 3|1@0+ (1,0) [0|0] "" XXX
|
||||||
@@ -225,6 +227,7 @@ BO_ 921 PCM_CRUISE_SM: 8 XXX
|
|||||||
SG_ MAIN_ON : 4|1@0+ (1,0) [0|1] "" 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_ CRUISE_CONTROL_STATE : 11|4@0+ (1,0) [0|15] "" XXX
|
||||||
SG_ DISTANCE_LINES : 14|2@0+ (1,0) [0|3] "" 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
|
SG_ UI_SET_SPEED : 31|8@0+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
BO_ 951 ESP_CONTROL: 8 ESP
|
BO_ 951 ESP_CONTROL: 8 ESP
|
||||||
@@ -250,7 +253,7 @@ BO_ 1005 REVERSE_CAMERA_STATE: 2 BGM
|
|||||||
BO_ 1009 PCM_CRUISE_ALT: 8 XXX
|
BO_ 1009 PCM_CRUISE_ALT: 8 XXX
|
||||||
SG_ MAIN_ON : 13|1@0+ (1,0) [0|3] "" XXX
|
SG_ MAIN_ON : 13|1@0+ (1,0) [0|3] "" XXX
|
||||||
SG_ CRUISE_STATE : 10|1@0+ (1,0) [0|1] "" 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
|
BO_ 1020 SOLAR_SENSOR: 8 XXX
|
||||||
SG_ LUX_SENSOR : 55|13@0+ (1,0) [0|0] "" XXX
|
SG_ LUX_SENSOR : 55|13@0+ (1,0) [0|0] "" XXX
|
||||||
@@ -374,6 +377,7 @@ BO_ 1552 BODY_CONTROL_STATE_2: 8 XXX
|
|||||||
SG_ METER_SLIDER_BRIGHTNESS_PCT : 30|7@0+ (1,0) [12|100] "%" 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_LOW_BRIGHTNESS : 37|1@0+ (1,0) [0|1] "" XXX
|
||||||
SG_ METER_SLIDER_DIMMED : 38|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
|
BO_ 1553 UI_SETTING: 8 XXX
|
||||||
SG_ UNITS : 26|2@0+ (1,0) [0|3] "" XXX
|
SG_ UNITS : 26|2@0+ (1,0) [0|3] "" XXX
|
||||||
@@ -416,6 +420,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_ 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 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_ 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 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_ 467 LOW_SPEED_LOCKOUT "in low speed lockout, system would always disengage below 28mph";
|
||||||
CM_ SG_ 560 BRAKE_PRESSED "another brake pressed?";
|
CM_ SG_ 560 BRAKE_PRESSED "another brake pressed?";
|
||||||
@@ -437,10 +442,12 @@ CM_ SG_ 835 PERMIT_BRAKING "Original ACC has this going high when a car in front
|
|||||||
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_ 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 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 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 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_ 951 BRAKE_LIGHTS_ACC "brake lights when ACC commands decel";
|
||||||
CM_ SG_ 956 GEAR "on 6MT, only R shows.";
|
CM_ SG_ 956 GEAR "on 6MT, only R shows.";
|
||||||
CM_ SG_ 1009 SET_SPEED "units seem to be whatever the car is set to";
|
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_INDICATOR "Pre-Collision System Indicator";
|
||||||
CM_ SG_ 1041 PCS_SENSITIVITY "Pre-Collision System Sensitivity";
|
CM_ SG_ 1041 PCS_SENSITIVITY "Pre-Collision System Sensitivity";
|
||||||
CM_ SG_ 1042 LDA_SA_TOGGLE "LDA Steering Assist Toggle";
|
CM_ SG_ 1042 LDA_SA_TOGGLE "LDA Steering Assist Toggle";
|
||||||
@@ -473,7 +480,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 OVSPVALM "-5 at start then 5 after 2 seconds";
|
||||||
CM_ SG_ 1163 OVSPVALH "-5 at start then 10 after 2 seconds";
|
CM_ SG_ 1163 OVSPVALH "-5 at start then 10 after 2 seconds";
|
||||||
CM_ SG_ 1163 TSRSPU "always 1";
|
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_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_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";
|
CM_ SG_ 1552 METER_SLIDER_DIMMED "Combination display slider not at max, reflects combination meter settings only, not linked with headlight state";
|
||||||
@@ -526,6 +533,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_ 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_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 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_ 1553 UNITS 1 "km" 2 "miles";
|
||||||
VAL_ 1556 TURN_SIGNALS 3 "none" 2 "right" 1 "left";
|
VAL_ 1556 TURN_SIGNALS 3 "none" 2 "right" 1 "left";
|
||||||
VAL_ 1592 LOCK_STATUS 0 "locked" 1 "unlocked";
|
VAL_ 1592 LOCK_STATUS 0 "locked" 1 "unlocked";
|
||||||
@@ -539,10 +547,11 @@ BO_ 401 STEERING_LTA: 8 XXX
|
|||||||
SG_ SETME_X64 : 47|8@0+ (1,0) [0|255] "" XXX
|
SG_ SETME_X64 : 47|8@0+ (1,0) [0|255] "" XXX
|
||||||
SG_ ANGLE : 55|8@0- (0.5,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_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_ BIT : 30|1@0+ (1,0) [0|1] "" XXX
|
||||||
SG_ COUNTER : 6|6@0+ (1,0) [0|255] "" 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
|
SG_ SETME_X1 : 7|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
|
||||||
BO_ 550 BRAKE_MODULE: 8 XXX
|
BO_ 550 BRAKE_MODULE: 8 XXX
|
||||||
@@ -569,9 +578,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 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 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_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 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 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_PRESSURE "seems prop to pedal force";
|
||||||
CM_ SG_ 550 BRAKE_POSITION "seems proportional to pedal displacement, unclear the max value of 0x1c8";
|
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";
|
CM_ SG_ 610 TYPE "seems 1 on Corolla, 0 on all others";
|
||||||
@@ -583,5 +593,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";
|
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 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 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" 1 "standby";
|
VAL_ 610 LTA_STATE 25 "temporary_fault" 9 "temporary_fault2" 5 "active" 3 "lta_missing_unavailable" 1 "standby";
|
||||||
|
|||||||
@@ -0,0 +1,194 @@
|
|||||||
|
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 RADAR
|
||||||
|
|
||||||
|
BO_ 768 BUTTONS: 8 RADAR
|
||||||
|
SG_ LKAS_PRESS : 2|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ DISTANCE_PRESS : 5|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
|
||||||
|
BO_ 769 OBJECT_0: 8 RADAR
|
||||||
|
SG_ ID : 5|6@0+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ LONG_DIST : 7|13@1+ (0.03,0) [0|65535] "m" XXX
|
||||||
|
SG_ LAT_DIST : 20|11@1- (0.018,0) [0|15] "" XXX
|
||||||
|
SG_ SPEED : 31|10@1- (0.06944444444,0) [0|71] "m/s" XXX
|
||||||
|
SG_ LAT_SPEED : 48|7@1- (0.1,0) [0|127] "m/s" XXX
|
||||||
|
SG_ RCS : 63|8@0+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 771 OBJECT_1: 8 RADAR
|
||||||
|
SG_ ID : 5|6@0+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ LONG_DIST : 7|13@1+ (0.03,0) [0|65535] "m" XXX
|
||||||
|
SG_ LAT_DIST : 20|11@1- (0.018,0) [0|15] "" XXX
|
||||||
|
SG_ SPEED : 31|10@1- (0.06944444444,0) [0|71] "m/s" XXX
|
||||||
|
SG_ LAT_SPEED : 48|7@1- (0.1,0) [0|127] "m/s" XXX
|
||||||
|
SG_ RCS : 63|8@0+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 773 OBJECT_2: 8 RADAR
|
||||||
|
SG_ ID : 5|6@0+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ LONG_DIST : 7|13@1+ (0.03,0) [0|65535] "m" XXX
|
||||||
|
SG_ LAT_DIST : 20|11@1- (0.018,0) [0|15] "" XXX
|
||||||
|
SG_ SPEED : 31|10@1- (0.06944444444,0) [0|71] "m/s" XXX
|
||||||
|
SG_ LAT_SPEED : 48|7@1- (0.1,0) [0|127] "m/s" XXX
|
||||||
|
SG_ RCS : 63|8@0+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 775 OBJECT_3: 8 RADAR
|
||||||
|
SG_ ID : 5|6@0+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ LONG_DIST : 7|13@1+ (0.03,0) [0|65535] "m" XXX
|
||||||
|
SG_ LAT_DIST : 20|11@1- (0.018,0) [0|15] "" XXX
|
||||||
|
SG_ SPEED : 31|10@1- (0.06944444444,0) [0|71] "m/s" XXX
|
||||||
|
SG_ LAT_SPEED : 48|7@1- (0.1,0) [0|127] "m/s" XXX
|
||||||
|
SG_ RCS : 63|8@0+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 777 OBJECT_4: 8 RADAR
|
||||||
|
SG_ ID : 5|6@0+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ LONG_DIST : 7|13@1+ (0.03,0) [0|65535] "m" XXX
|
||||||
|
SG_ LAT_DIST : 20|11@1- (0.018,0) [0|15] "" XXX
|
||||||
|
SG_ SPEED : 31|10@1- (0.06944444444,0) [0|71] "m/s" XXX
|
||||||
|
SG_ LAT_SPEED : 48|7@1- (0.1,0) [0|127] "m/s" XXX
|
||||||
|
SG_ RCS : 63|8@0+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 779 OBJECT_5: 8 RADAR
|
||||||
|
SG_ ID : 5|6@0+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ LONG_DIST : 7|13@1+ (0.03,0) [0|65535] "m" XXX
|
||||||
|
SG_ LAT_DIST : 20|11@1- (0.018,0) [0|15] "" XXX
|
||||||
|
SG_ SPEED : 31|10@1- (0.06944444444,0) [0|71] "m/s" XXX
|
||||||
|
SG_ LAT_SPEED : 48|7@1- (0.1,0) [0|127] "m/s" XXX
|
||||||
|
SG_ RCS : 63|8@0+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 781 OBJECT_6: 8 RADAR
|
||||||
|
SG_ ID : 5|6@0+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ LONG_DIST : 7|13@1+ (0.03,0) [0|65535] "m" XXX
|
||||||
|
SG_ LAT_DIST : 20|11@1- (0.018,0) [0|15] "" XXX
|
||||||
|
SG_ SPEED : 31|10@1- (0.06944444444,0) [0|71] "m/s" XXX
|
||||||
|
SG_ LAT_SPEED : 48|7@1- (0.1,0) [0|127] "m/s" XXX
|
||||||
|
SG_ RCS : 63|8@0+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 783 OBJECT_7: 8 RADAR
|
||||||
|
SG_ ID : 5|6@0+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ LONG_DIST : 7|13@1+ (0.03,0) [0|65535] "m" XXX
|
||||||
|
SG_ LAT_DIST : 20|11@1- (0.018,0) [0|15] "" XXX
|
||||||
|
SG_ SPEED : 31|10@1- (0.06944444444,0) [0|71] "m/s" XXX
|
||||||
|
SG_ LAT_SPEED : 48|7@1- (0.1,0) [0|127] "m/s" XXX
|
||||||
|
SG_ RCS : 63|8@0+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 785 OBJECT_8: 8 RADAR
|
||||||
|
SG_ ID : 5|6@0+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ LONG_DIST : 7|13@1+ (0.03,0) [0|65535] "m" XXX
|
||||||
|
SG_ LAT_DIST : 20|11@1- (0.018,0) [0|15] "" XXX
|
||||||
|
SG_ SPEED : 31|10@1- (0.06944444444,0) [0|71] "m/s" XXX
|
||||||
|
SG_ LAT_SPEED : 48|7@1- (0.1,0) [0|127] "m/s" XXX
|
||||||
|
SG_ RCS : 63|8@0+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 787 OBJECT_9: 8 RADAR
|
||||||
|
SG_ ID : 5|6@0+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ LONG_DIST : 7|13@1+ (0.03,0) [0|65535] "m" XXX
|
||||||
|
SG_ LAT_DIST : 20|11@1- (0.018,0) [0|15] "" XXX
|
||||||
|
SG_ SPEED : 31|10@1- (0.06944444444,0) [0|71] "m/s" XXX
|
||||||
|
SG_ LAT_SPEED : 48|7@1- (0.1,0) [0|127] "m/s" XXX
|
||||||
|
SG_ RCS : 63|8@0+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 789 OBJECT_10: 8 RADAR
|
||||||
|
SG_ ID : 5|6@0+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ LONG_DIST : 7|13@1+ (0.03,0) [0|65535] "m" XXX
|
||||||
|
SG_ LAT_DIST : 20|11@1- (0.018,0) [0|15] "" XXX
|
||||||
|
SG_ SPEED : 31|10@1- (0.06944444444,0) [0|71] "m/s" XXX
|
||||||
|
SG_ LAT_SPEED : 48|7@1- (0.1,0) [0|127] "m/s" XXX
|
||||||
|
SG_ RCS : 63|8@0+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
BO_ 791 OBJECT_11: 8 RADAR
|
||||||
|
SG_ ID : 5|6@0+ (1,0) [0|255] "" XXX
|
||||||
|
SG_ LONG_DIST : 7|13@1+ (0.03,0) [0|65535] "m" XXX
|
||||||
|
SG_ LAT_DIST : 20|11@1- (0.018,0) [0|15] "" XXX
|
||||||
|
SG_ SPEED : 31|10@1- (0.06944444444,0) [0|71] "m/s" XXX
|
||||||
|
SG_ LAT_SPEED : 48|7@1- (0.1,0) [0|127] "m/s" XXX
|
||||||
|
SG_ RCS : 63|8@0+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
CM_ "Front target"
|
||||||
|
BO_ 1664 CLUSTER_F: 8 RADAR
|
||||||
|
SG_ LONG_DIST : 7|13@1+ (0.03,0) [0|255] "m" XXX
|
||||||
|
SG_ LAT_DIST : 20|11@1- (0.015,0) [-20|20] "m" XXX
|
||||||
|
SG_ SPEED : 31|10@1- (0.06944444444,0) [0|71] "m/s" XXX
|
||||||
|
SG_ ID : 0|6@1+ (1,0) [0|63] "" XXX
|
||||||
|
SG_ LAT_SPEED : 48|7@1- (0.1,0) [0|127] "m/s" XXX
|
||||||
|
SG_ RCS : 63|8@0+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
CM_ "Front target ahead"
|
||||||
|
BO_ 1665 CLUSTER_F_A: 8 RADAR
|
||||||
|
SG_ LONG_DIST : 7|13@1+ (0.03,0) [0|255] "m" XXX
|
||||||
|
SG_ LAT_DIST : 20|11@1- (0.015,0) [-20|20] "m" XXX
|
||||||
|
SG_ SPEED : 31|10@1- (0.06944444444,0) [0|71] "m/s" XXX
|
||||||
|
SG_ ID : 0|6@1+ (1,0) [0|63] "" XXX
|
||||||
|
SG_ LAT_SPEED : 48|7@1- (0.1,0) [0|127] "m/s" XXX
|
||||||
|
SG_ RCS : 63|8@0+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
CM_ "Left target"
|
||||||
|
BO_ 1666 CLUSTER_L: 8 RADAR
|
||||||
|
SG_ LONG_DIST : 7|13@1+ (0.03,0) [0|255] "m" XXX
|
||||||
|
SG_ LAT_DIST : 20|11@1- (0.015,0) [-20|20] "m" XXX
|
||||||
|
SG_ SPEED : 31|10@1- (0.06944444444,0) [0|71] "m/s" XXX
|
||||||
|
SG_ VALID : 6|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ ID : 0|6@1+ (1,0) [0|63] "" XXX
|
||||||
|
SG_ LAT_SPEED : 48|7@1- (0.1,0) [0|127] "m/s" XXX
|
||||||
|
SG_ RCS : 63|8@0+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
CM_ "Right target"
|
||||||
|
BO_ 1667 CLUSTER_R: 8 RADAR
|
||||||
|
SG_ LONG_DIST : 7|13@1+ (0.03,0) [0|255] "m" XXX
|
||||||
|
SG_ LAT_DIST : 20|11@1- (0.015,0) [-20|20] "m" XXX
|
||||||
|
SG_ SPEED : 31|10@1- (0.06944444444,0) [0|71] "m/s" XXX
|
||||||
|
SG_ VALID : 6|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ ID : 0|6@1+ (1,0) [0|63] "" XXX
|
||||||
|
SG_ LAT_SPEED : 48|7@1- (0.1,0) [0|127] "m/s" XXX
|
||||||
|
SG_ RCS : 63|8@0+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
CM_ "Left target ahead"
|
||||||
|
BO_ 1668 CLUSTER_L_A: 8 RADAR
|
||||||
|
SG_ LONG_DIST : 7|13@1+ (0.03,0) [0|255] "m" XXX
|
||||||
|
SG_ LAT_DIST : 20|11@1- (0.015,0) [-20|20] "m" XXX
|
||||||
|
SG_ SPEED : 31|10@1- (0.06944444444,0) [0|71] "m/s" XXX
|
||||||
|
SG_ VALID : 6|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ ID : 0|6@1+ (1,0) [0|63] "" XXX
|
||||||
|
SG_ LAT_SPEED : 48|7@1- (0.1,0) [0|127] "m/s" XXX
|
||||||
|
SG_ RCS : 63|8@0+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
|
CM_ "Right target ahead"
|
||||||
|
BO_ 1669 CLUSTER_R_A: 8 RADAR
|
||||||
|
SG_ LONG_DIST : 7|13@1+ (0.03,0) [0|255] "m" XXX
|
||||||
|
SG_ LAT_DIST : 20|11@1- (0.015,0) [-20|20] "m" XXX
|
||||||
|
SG_ SPEED : 31|10@1- (0.06944444444,0) [0|71] "m/s" XXX
|
||||||
|
SG_ VALID : 6|1@0+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ ID : 0|6@1+ (1,0) [0|63] "" XXX
|
||||||
|
SG_ LAT_SPEED : 48|7@1- (0.1,0) [0|127] "m/s" XXX
|
||||||
|
SG_ RCS : 63|8@0+ (1,0) [0|255] "" XXX
|
||||||
@@ -128,9 +128,10 @@ BO_ 466 PCM_CRUISE: 8 XXX
|
|||||||
|
|
||||||
BO_ 467 PCM_CRUISE_2: 8 XXX
|
BO_ 467 PCM_CRUISE_2: 8 XXX
|
||||||
SG_ PCM_FOLLOW_DISTANCE : 12|2@0+ (1,0) [0|3] "" 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_ 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_ 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
|
SG_ CHECKSUM : 63|8@0+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
BO_ 552 ACCELEROMETER: 8 XXX
|
BO_ 552 ACCELEROMETER: 8 XXX
|
||||||
@@ -209,8 +210,9 @@ BO_ 836 PRE_COLLISION_2: 8 DSU
|
|||||||
SG_ CHECKSUM : 63|8@0+ (1,0) [0|0] "" XXX
|
SG_ CHECKSUM : 63|8@0+ (1,0) [0|0] "" XXX
|
||||||
|
|
||||||
BO_ 865 CLUTCH: 8 XXX
|
BO_ 865 CLUTCH: 8 XXX
|
||||||
SG_ CLUTCH_RELEASED : 38|1@0+ (1,0) [0|1] "" 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_ 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
|
BO_ 869 DSU_CRUISE : 7 DSU
|
||||||
SG_ RES_BTN : 3|1@0+ (1,0) [0|0] "" XXX
|
SG_ RES_BTN : 3|1@0+ (1,0) [0|0] "" XXX
|
||||||
@@ -225,6 +227,7 @@ BO_ 921 PCM_CRUISE_SM: 8 XXX
|
|||||||
SG_ MAIN_ON : 4|1@0+ (1,0) [0|1] "" 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_ CRUISE_CONTROL_STATE : 11|4@0+ (1,0) [0|15] "" XXX
|
||||||
SG_ DISTANCE_LINES : 14|2@0+ (1,0) [0|3] "" 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
|
SG_ UI_SET_SPEED : 31|8@0+ (1,0) [0|255] "" XXX
|
||||||
|
|
||||||
BO_ 951 ESP_CONTROL: 8 ESP
|
BO_ 951 ESP_CONTROL: 8 ESP
|
||||||
@@ -249,7 +252,7 @@ BO_ 1005 REVERSE_CAMERA_STATE: 2 BGM
|
|||||||
BO_ 1009 PCM_CRUISE_ALT: 8 XXX
|
BO_ 1009 PCM_CRUISE_ALT: 8 XXX
|
||||||
SG_ MAIN_ON : 13|1@0+ (1,0) [0|3] "" XXX
|
SG_ MAIN_ON : 13|1@0+ (1,0) [0|3] "" XXX
|
||||||
SG_ CRUISE_STATE : 10|1@0+ (1,0) [0|1] "" 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
|
BO_ 1020 SOLAR_SENSOR: 8 XXX
|
||||||
SG_ LUX_SENSOR : 55|13@0+ (1,0) [0|0] "" XXX
|
SG_ LUX_SENSOR : 55|13@0+ (1,0) [0|0] "" XXX
|
||||||
@@ -373,6 +376,7 @@ BO_ 1552 BODY_CONTROL_STATE_2: 8 XXX
|
|||||||
SG_ METER_SLIDER_BRIGHTNESS_PCT : 30|7@0+ (1,0) [12|100] "%" 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_LOW_BRIGHTNESS : 37|1@0+ (1,0) [0|1] "" XXX
|
||||||
SG_ METER_SLIDER_DIMMED : 38|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
|
BO_ 1553 UI_SETTING: 8 XXX
|
||||||
SG_ UNITS : 26|2@0+ (1,0) [0|3] "" XXX
|
SG_ UNITS : 26|2@0+ (1,0) [0|3] "" XXX
|
||||||
@@ -415,6 +419,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_ 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 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_ 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 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_ 467 LOW_SPEED_LOCKOUT "in low speed lockout, system would always disengage below 28mph";
|
||||||
CM_ SG_ 560 BRAKE_PRESSED "another brake pressed?";
|
CM_ SG_ 560 BRAKE_PRESSED "another brake pressed?";
|
||||||
@@ -436,10 +441,12 @@ CM_ SG_ 835 PERMIT_BRAKING "Original ACC has this going high when a car in front
|
|||||||
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_ 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 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 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 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_ 951 BRAKE_LIGHTS_ACC "brake lights when ACC commands decel";
|
||||||
CM_ SG_ 956 GEAR "on 6MT, only R shows.";
|
CM_ SG_ 956 GEAR "on 6MT, only R shows.";
|
||||||
CM_ SG_ 1009 SET_SPEED "units seem to be whatever the car is set to";
|
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_INDICATOR "Pre-Collision System Indicator";
|
||||||
CM_ SG_ 1041 PCS_SENSITIVITY "Pre-Collision System Sensitivity";
|
CM_ SG_ 1041 PCS_SENSITIVITY "Pre-Collision System Sensitivity";
|
||||||
CM_ SG_ 1042 LDA_SA_TOGGLE "LDA Steering Assist Toggle";
|
CM_ SG_ 1042 LDA_SA_TOGGLE "LDA Steering Assist Toggle";
|
||||||
@@ -472,7 +479,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 OVSPVALM "-5 at start then 5 after 2 seconds";
|
||||||
CM_ SG_ 1163 OVSPVALH "-5 at start then 10 after 2 seconds";
|
CM_ SG_ 1163 OVSPVALH "-5 at start then 10 after 2 seconds";
|
||||||
CM_ SG_ 1163 TSRSPU "always 1";
|
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_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_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";
|
CM_ SG_ 1552 METER_SLIDER_DIMMED "Combination display slider not at max, reflects combination meter settings only, not linked with headlight state";
|
||||||
@@ -524,6 +531,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_ 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_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 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_ 1553 UNITS 1 "km" 2 "miles";
|
||||||
VAL_ 1556 TURN_SIGNALS 3 "none" 2 "right" 1 "left";
|
VAL_ 1556 TURN_SIGNALS 3 "none" 2 "right" 1 "left";
|
||||||
VAL_ 1592 LOCK_STATUS 0 "locked" 1 "unlocked";
|
VAL_ 1592 LOCK_STATUS 0 "locked" 1 "unlocked";
|
||||||
|
|||||||
+182
-71
@@ -36,39 +36,69 @@ BS_:
|
|||||||
BU_: Airbag_MQB BAP_Tester_MQB BMS_MQB Datenlogger_MQB Gateway_MQB Getriebe_DQ_Hybrid_MQB Getriebe_DQ_MQB LEH_MQB Motor_Diesel_MQB Motor_Hybrid_MQB Motor_Otto_MQB SAK_MQB Waehlhebel_MQB Vector__XXX l c i XXX
|
BU_: Airbag_MQB BAP_Tester_MQB BMS_MQB Datenlogger_MQB Gateway_MQB Getriebe_DQ_Hybrid_MQB Getriebe_DQ_MQB LEH_MQB Motor_Diesel_MQB Motor_Hybrid_MQB Motor_Otto_MQB SAK_MQB Waehlhebel_MQB Vector__XXX l c i XXX
|
||||||
|
|
||||||
|
|
||||||
BO_ 290 ACC_06: 8 Gateway_MQB
|
BO_ 290 ACC_06: 8 XXX
|
||||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB
|
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||||
SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB
|
SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX
|
||||||
SG_ ACC_limitierte_Anfahrdyn : 12|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB
|
SG_ ACC_limitierte_Anfahrdyn : 12|1@1+ (1,0) [0|1] "" XXX
|
||||||
SG_ ACC_zul_Regelabw_unten : 16|6@1+ (0.024,0) [0|1.512] "Unit_MeterPerSeconSquar" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB
|
SG_ ACC_nachtr_Stopp_Anf : 13|1@1+ (1,0) [0|1] "" XXX
|
||||||
SG_ ACC_StartStopp_Info : 22|2@1+ (1,0) [0|3] "" Motor_Diesel_MQB,Motor_Otto_MQB
|
SG_ ACC_DynErhoehung : 14|1@1+ (1.0,0.0) [0.0|1] "" XXX
|
||||||
SG_ ACC_Sollbeschleunigung_02 : 24|11@1+ (0.005,-7.22) [-7.22|3.005] "Unit_MeterPerSeconSquar" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB
|
SG_ ACC_Freilaufstrategie_TSK : 15|1@1+ (1.0,0.0) [0.0|1] "" XXX
|
||||||
SG_ ACC_zul_Regelabw_oben : 35|5@1+ (0.0625,0) [0|1.9375] "Unit_MeterPerSeconSquar" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB
|
SG_ ACC_zul_Regelabw_unten : 16|6@1+ (0.024,0) [0|1.512] "Unit_MeterPerSeconSquar" XXX
|
||||||
SG_ ACC_neg_Sollbeschl_Grad_02 : 40|8@1+ (0.05,0) [0|12.75] "Unit_MeterPerCubicSecon" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB
|
SG_ ACC_StartStopp_Info : 22|2@1+ (1,0) [0|3] "" XXX
|
||||||
SG_ ACC_pos_Sollbeschl_Grad_02 : 48|8@1+ (0.05,0) [0|12.75] "Unit_MeterPerCubicSecon" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB
|
SG_ ACC_Sollbeschleunigung_02 : 24|11@1+ (0.005,-7.22) [-7.22|3.005] "Unit_MeterPerSeconSquar" XXX
|
||||||
SG_ ACC_Anfahren : 56|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB
|
SG_ ACC_zul_Regelabw_oben : 35|5@1+ (0.0625,0) [0|1.9375] "Unit_MeterPerSeconSquar" XXX
|
||||||
SG_ ACC_Anhalten : 57|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB
|
SG_ ACC_neg_Sollbeschl_Grad_02 : 40|8@1+ (0.05,0) [0|12.75] "Unit_MeterPerCubicSecon" XXX
|
||||||
SG_ ACC_Typ : 58|2@1+ (1,0) [0|3] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB
|
SG_ ACC_pos_Sollbeschl_Grad_02 : 48|8@1+ (0.05,0) [0|12.75] "Unit_MeterPerCubicSecon" XXX
|
||||||
SG_ ACC_Status_ACC : 60|3@1+ (1,0) [0|7] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB
|
SG_ ACC_Anfahren : 56|1@1+ (1,0) [0|1] "" XXX
|
||||||
SG_ ACC_Minimale_Bremsung : 63|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB
|
SG_ ACC_Anhalten : 57|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ ACC_Typ : 58|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ ACC_Status_ACC : 60|3@1+ (1,0) [0|7] "" XXX
|
||||||
|
SG_ ACC_Minimale_Bremsung : 63|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
|
||||||
BO_ 279 ACC_10: 8 Gateway_MQB
|
BO_ 279 ACC_10: 8 XXX
|
||||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Airbag_MQB
|
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||||
SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Airbag_MQB
|
SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX
|
||||||
SG_ AWV1_Anf_Prefill : 16|1@1+ (1,0) [0|1] "" Airbag_MQB
|
SG_ AWV1_Anf_Prefill : 16|1@1+ (1,0) [0|1] "" XXX
|
||||||
SG_ ANB_CM_Info : 17|1@1+ (1,0) [0|1] "" Vector__XXX
|
SG_ ANB_CM_Info : 17|1@1+ (1,0) [0|1] "" XXX
|
||||||
SG_ AWV2_Freigabe : 18|1@1+ (1,0) [0|1] "" Airbag_MQB
|
SG_ AWV2_Freigabe : 18|1@1+ (1,0) [0|1] "" XXX
|
||||||
SG_ AWV1_HBA_Param : 19|2@1+ (1,0) [0|3] "" Vector__XXX
|
SG_ AWV1_HBA_Param : 19|2@1+ (1,0) [0|3] "" XXX
|
||||||
SG_ AWV2_Ruckprofil : 21|3@1+ (1,0) [0|7] "" Vector__XXX
|
SG_ AWV2_Ruckprofil : 21|3@1+ (1,0) [0|7] "" XXX
|
||||||
SG_ AWV2_Priowarnung : 24|1@1+ (1,0) [0|1] "" Vector__XXX
|
SG_ AWV2_Priowarnung : 24|1@1+ (1,0) [0|1] "" XXX
|
||||||
SG_ ANB_CM_Anforderung : 25|1@1+ (1,0) [0|1] "" Airbag_MQB
|
SG_ ANB_CM_Anforderung : 25|1@1+ (1,0) [0|1] "" XXX
|
||||||
SG_ ANB_Info_Teilbremsung : 26|1@1+ (1,0) [0|1] "" Vector__XXX
|
SG_ ANB_Info_Teilbremsung : 26|1@1+ (1,0) [0|1] "" XXX
|
||||||
SG_ ANB_Notfallblinken : 27|1@1+ (1,0) [0|1] "" Vector__XXX
|
SG_ ANB_Notfallblinken : 27|1@1+ (1,0) [0|1] "" XXX
|
||||||
SG_ ANB_Teilbremsung_Freigabe : 28|1@1+ (1,0) [0|1] "" Airbag_MQB
|
SG_ ANB_Teilbremsung_Freigabe : 28|1@1+ (1,0) [0|1] "" XXX
|
||||||
SG_ ANB_Zielbrems_Teilbrems_Verz_Anf : 29|10@1+ (0.024,-20.016) [-20.016|4.536] "Unit_MeterPerSeconSquar" Airbag_MQB
|
SG_ ANB_Zielbrems_Teilbrems_Verz_Anf : 29|10@1+ (0.024,-20.016) [-20.016|4.536] "Unit_MeterPerSeconSquar" XXX
|
||||||
SG_ ANB_Zielbremsung_Freigabe : 39|1@1+ (1,0) [0|1] "" Airbag_MQB
|
SG_ ANB_Zielbremsung_Freigabe : 39|1@1+ (1,0) [0|1] "" XXX
|
||||||
SG_ AWV_Vorstufe : 40|1@1+ (1,0) [0|1] "" Vector__XXX
|
SG_ AWV_Vorstufe : 40|1@1+ (1,0) [0|1] "" XXX
|
||||||
SG_ AWV_Halten : 41|1@1+ (1,0) [0|1] "" Vector__XXX
|
SG_ AWV_Halten : 41|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ AWV_CityANB_Auspraegung : 42|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ PCF_Freigabe : 43|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ AWV1_ECD_Anlauf : 44|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ AWV_AWA_VZ_Anf_Lenkmomoffset : 46|1@1+ (1.0,0.0) [0.0|1] "" XXX
|
||||||
|
SG_ AWV_AWA_Anf_Lenkmomoffset : 47|9@1+ (0.01,0) [0.00|5.11] "Unit_NewtoMeter" XXX
|
||||||
|
SG_ PCF_Time_to_collision : 56|8@1+ (0.01,0) [0|2.5] "Unit_Secon" XXX
|
||||||
|
|
||||||
|
BO_ 679 ACC_13: 8 XXX
|
||||||
|
SG_ ACC_Regelgeschw : 12|10@1+ (0.32,0) [0|327.04] "Unit_KiloMeterPerHour" XXX
|
||||||
|
SG_ ACC_Einheit_maxSetzgeschw : 22|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ ACC_maxSetzgeschw : 23|9@1+ (1,0) [0|510] "" XXX
|
||||||
|
SG_ ACC_minRegelgeschw : 32|8@1+ (0.32,0) [0|81.28] "Unit_KiloMeterPerHour" XXX
|
||||||
|
SG_ ACC_maxRegelgeschw : 40|8@1+ (0.32,0) [0|81.28] "Unit_KiloMeterPerHour" XXX
|
||||||
|
SG_ ACC_Tempolimitassistent : 48|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ ACC_Kurvenassistent : 52|3@1+ (1,0) [0|7] "" XXX
|
||||||
|
SG_ ACC_RUV : 56|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ ACC_Tachokranz : 58|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ ACC_Typ_Tachokranz_unten : 59|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ ACC_ENG_Texte : 60|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
|
BO_ 681 ACC_15: 8 XXX
|
||||||
|
SG_ AWV_Warnung : 16|3@1+ (1,0) [0|7] "" XXX
|
||||||
|
SG_ AWV_Texte : 24|3@1+ (1,0) [0|7] "" XXX
|
||||||
|
SG_ AWV_Status_Anzeige : 32|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ AWV_Einstellung_System_FSG : 34|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ AWV_Einstellung_Warnung_FSG : 36|3@1+ (1,0) [0|7] "" XXX
|
||||||
|
SG_ AWV_Warnlevel : 58|6@1+ (1,0) [0|63] "" XXX
|
||||||
|
|
||||||
BO_ 64 Airbag_01: 8 Airbag_MQB
|
BO_ 64 Airbag_01: 8 Airbag_MQB
|
||||||
SG_ Airbag_01_CRC : 0|8@1+ (1,0) [0|255] "" BMS_MQB,Gateway_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB
|
SG_ Airbag_01_CRC : 0|8@1+ (1,0) [0|255] "" BMS_MQB,Gateway_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB
|
||||||
@@ -1237,33 +1267,35 @@ BO_ 919 LDW_02: 8 XXX
|
|||||||
BO_ 780 ACC_02: 8 XXX
|
BO_ 780 ACC_02: 8 XXX
|
||||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||||
SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX
|
SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX
|
||||||
SG_ ACC_Wunschgeschw : 12|10@1+ (0.32,0) [0.00|326.72] "Unit_KiloMeterPerHour" XXX
|
SG_ ACC_Wunschgeschw_02 : 12|10@1+ (0.32,0) [0|327.04] "Unit_KiloMeterPerHour" XXX
|
||||||
SG_ ACC_Status_Prim_Anz : 22|2@1+ (1.0,0.0) [0.0|3] "" XXX
|
SG_ ACC_Status_Prim_Anz : 22|2@1+ (1,0) [0|3] "" XXX
|
||||||
SG_ ACC_Abstandsindex : 24|10@1+ (1,0) [1|1021] "" XXX
|
SG_ ACC_Abstandsindex : 24|10@1+ (1,0) [1|1021] "" XXX
|
||||||
SG_ ACC_Akustik : 34|3@1+ (1.0,0.0) [0.0|7] "" XXX
|
SG_ ACC_Akustik_02 : 34|2@1+ (1,0) [0|3] "" XXX
|
||||||
SG_ ACC_Gesetzte_Zeitluecke : 37|3@1+ (1.0,0.0) [0.0|7] "" XXX
|
SG_ ACC_Warnung_Verkehrszeichen_1 : 36|1@1+ (1,0) [0|1] "" XXX
|
||||||
SG_ ACC_Optischer_Fahrerhinweis : 40|1@1+ (1.0,0.0) [0.0|1] "" XXX
|
SG_ ACC_Gesetzte_Zeitluecke : 37|3@1+ (1,0) [0|7] "" XXX
|
||||||
SG_ ACC_Typ_Tachokranz : 41|1@1+ (1.0,0.0) [0.0|1] "" XXX
|
SG_ ACC_Optischer_Fahrerhinweis : 40|1@1+ (1,0) [0|1] "" XXX
|
||||||
SG_ ACC_Anzeige_Zeitluecke : 42|1@1+ (1.0,0.0) [0.0|1] "" XXX
|
SG_ ACC_Typ_Tachokranz : 41|1@1+ (1,0) [0|1] "" XXX
|
||||||
SG_ ACC_Tachokranz : 43|1@1+ (1.0,0.0) [0.0|1] "" XXX
|
SG_ ACC_Anzeige_Zeitluecke : 42|1@1+ (1,0) [0|1] "" XXX
|
||||||
SG_ ACC_Display_Prio : 44|2@1+ (1.0,0.0) [0.0|3] "" XXX
|
SG_ ACC_Tachokranz : 43|1@1+ (1,0) [0|1] "" XXX
|
||||||
SG_ ACC_Relevantes_Objekt : 46|2@1+ (1.0,0.0) [0.0|3] "" XXX
|
SG_ ACC_Display_Prio : 44|2@1+ (1,0) [0|3] "" XXX
|
||||||
SG_ ACC_Texte_Primaeranz : 48|7@1+ (1.0,0.0) [0.0|127] "" XXX
|
SG_ ACC_Relevantes_Objekt : 46|2@1+ (1,0) [0|3] "" XXX
|
||||||
SG_ ACC_Wunschgeschw_erreicht : 55|1@1+ (1.0,0.0) [0.0|1] "" XXX
|
SG_ ACC_Texte_Primaeranz : 48|7@1+ (1,0) [0|127] "" XXX
|
||||||
SG_ ACC_Status_Anzeige : 61|3@1+ (1.0,0.0) [0.0|7] "" XXX
|
SG_ ACC_Wunschgeschw_erreicht : 55|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ ACC_Typ_Tachokranz_unten : 60|1@1+ (1,0) [0|1] "" XXX
|
||||||
|
SG_ ACC_Status_Anzeige : 61|3@1+ (1,0) [0|7] "" XXX
|
||||||
|
|
||||||
BO_ 302 ACC_07: 8 XXX
|
BO_ 302 ACC_07: 8 XXX
|
||||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||||
SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX
|
SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX
|
||||||
SG_ ACC_Distance_to_Stop : 12|11@1+ (0.01,0) [0|1] "m" XXX
|
SG_ ACC_Anhalteweg : 12|11@1+ (0.01,0) [0|20.45] "Unit_Meter" XXX
|
||||||
SG_ ACC_Hold_Request : 23|1@1+ (1,0) [0|1] "x" XXX
|
SG_ ACC_Anhalten : 23|1@1+ (1,0) [0|1] "" XXX
|
||||||
SG_ ACC_Boost_Request : 24|1@1+ (1,0) [0|1] "" XXX
|
SG_ ACC_Boost_Anf : 24|1@1+ (1,0) [0|1] "" XXX
|
||||||
SG_ ACC_Freewheel_Request : 25|1@1+ (1,0) [0|1] "" XXX
|
SG_ ACC_Freilauf_Anf : 25|1@1+ (1,0) [0|1] "" XXX
|
||||||
SG_ ACC_Freewheel_Type : 26|2@1+ (1,0) [0|3] "enum" XXX
|
SG_ ACC_Freilauf_Info : 26|2@1+ (1,0) [0|3] "" XXX
|
||||||
SG_ ACC_Hold_Type : 28|3@1+ (1,0) [0|15] "enum" XXX
|
SG_ ACC_Anforderung_HMS : 28|3@1+ (1,0) [0|7] "" XXX
|
||||||
SG_ ACC_Hold_Release : 31|1@1+ (1,0) [0|1] "" XXX
|
SG_ ACC_Anfahren : 31|1@1+ (1,0) [0|1] "" XXX
|
||||||
SG_ ACC_Accel_Secondary : 32|8@1+ (0.03,-4.6) [-4.6|2.99] "m/s2" XXX
|
SG_ ACC_Folgebeschl : 32|8@1+ (0.03,-4.6) [-4.6|2.99] "Unit_MeterPerSeconSquar" XXX
|
||||||
SG_ ACC_Accel_TSK : 53|11@1+ (0.005,-7.22) [-7.22|3.005] "m/s2" XXX
|
SG_ ACC_Sollbeschleunigung_02 : 53|11@1+ (0.005,-7.22) [-7.22|3.005] "Unit_MeterPerSeconSquar" XXX
|
||||||
|
|
||||||
BO_ 264 Fahrwerk_01: 8 XXX
|
BO_ 264 Fahrwerk_01: 8 XXX
|
||||||
SG_ Fahrwerk_01_BZ : 8|4@1+ (1,0) [0|15] "" XXX
|
SG_ Fahrwerk_01_BZ : 8|4@1+ (1,0) [0|15] "" XXX
|
||||||
@@ -1297,15 +1329,18 @@ BO_ 783 SWA_01: 8 Gateway_MQB
|
|||||||
BO_ 804 ACC_04: 8 XXX
|
BO_ 804 ACC_04: 8 XXX
|
||||||
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX
|
||||||
SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX
|
SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX
|
||||||
SG_ ACC_Texte_Zusatzanz : 16|6@1+ (1.0,0.0) [0.0|63] "" XXX
|
SG_ ACC_Texte_Sekundaeranz : 12|4@1+ (1,0) [0|15] "" XXX
|
||||||
SG_ ACC_Status_Zusatzanz : 22|5@1+ (1.0,0.0) [0.0|31] "" XXX
|
SG_ ACC_Texte_Zusatzanz : 16|6@1+ (1,0) [0|63] "" XXX
|
||||||
SG_ ACC_Texte : 27|5@1+ (1.0,0.0) [0.0|31] "" XXX
|
SG_ ACC_Status_Zusatzanz : 22|5@1+ (1,0) [0|31] "" XXX
|
||||||
SG_ ACC_Texte_braking_guard : 32|3@1+ (1.0,0.0) [0.0|7] "" XXX
|
SG_ ACC_Texte : 27|5@1+ (1,0) [0|31] "" XXX
|
||||||
SG_ ACC_Warnhinweis : 35|1@1+ (1.0,0.0) [0.0|1] "" XXX
|
SG_ ACC_Texte_braking_guard : 32|3@1+ (1,0) [0|7] "" XXX
|
||||||
SG_ ACC_Geschw_Zielfahrzeug : 40|10@1+ (0.32,0) [0.00|326.72] "Unit_KiloMeterPerHour" XXX
|
SG_ ACC_Warnhinweis : 35|1@1+ (1,0) [0|1] "" XXX
|
||||||
SG_ ACC_Charisma_FahrPr : 56|3@1+ (1.0,0.0) [0.0|7] "" XXX
|
SG_ ACC_Zeitluecke_Abstandswarner : 36|6@1+ (0.1,0) [0|6] "Unit_Secon" XXX
|
||||||
SG_ ACC_Charisma_Status : 59|2@1+ (1.0,0.0) [0.0|3] "" XXX
|
SG_ ACC_Abstand_Abstandswarner : 42|9@1+ (1,0) [0|508] "" XXX
|
||||||
SG_ ACC_Charisma_Umschaltung : 61|2@1+ (1.0,0.0) [0.0|3] "" XXX
|
SG_ ACC_Tempolimit : 51|5@1+ (1,0) [0|31] "" XXX
|
||||||
|
SG_ ACC_Charisma_FahrPr : 56|4@1+ (1,0) [0|15] "" XXX
|
||||||
|
SG_ ACC_Charisma_Status : 60|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
SG_ ACC_Texte_Abstandswarner : 62|2@1+ (1,0) [0|3] "" XXX
|
||||||
|
|
||||||
BO_ 917 LWR_AFS_01: 8 XXX
|
BO_ 917 LWR_AFS_01: 8 XXX
|
||||||
|
|
||||||
@@ -1437,14 +1472,90 @@ CM_ SG_ 1720 KBI_Variante "Zeigt an ob es sich um ein konventionelles Zeiger-Kom
|
|||||||
CM_ SG_ 1720 KBI_Variante_USA "In diesem Signal wird die HW-Variante des Kombis ausgegeben, ACC plausibilisiert auf dieses Signal hin seine US-Codierung";
|
CM_ SG_ 1720 KBI_Variante_USA "In diesem Signal wird die HW-Variante des Kombis ausgegeben, ACC plausibilisiert auf dieses Signal hin seine US-Codierung";
|
||||||
|
|
||||||
|
|
||||||
VAL_ 159 EPS_HCA_Status 0 "disabled" 1 "initializing" 2 "fault" 3 "ready" 4 "rejected" 5 "active";
|
VAL_ 159 EPS_HCA_Status 0 "disabled" 1 "initializing" 2 "fault" 3 "ready" 4 "rejected" 5 "active" ;
|
||||||
VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "S" 10 "E" 13 "T" 14 "T";
|
VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "S" 10 "E" 13 "T" 14 "T" ;
|
||||||
VAL_ 288 TSK_Status 0 "init" 1 "disabled" 2 "enabled" 3 "regulating" 4 "accel_pedal_override" 5 "brake_only" 6 "temp_fault" 7 "perm_fault";
|
VAL_ 288 TSK_Status 0 "init" 1 "disabled" 2 "enabled" 3 "regulating" 4 "accel_pedal_override" 5 "brake_only" 6 "temp_fault" 7 "perm_fault" ;
|
||||||
VAL_ 302 ACC_Freewheel_Type 0 "freewheel_released" 1 "freewheel_not_permitted" 2 "freewheel_not_released" 3 "freewheel_requested" ;
|
VAL_ 780 ACC_Wunschgeschw_02 1023 "keine_Anzeige" ;
|
||||||
VAL_ 302 ACC_Hold_Type 0 "no_request" 1 "hold" 2 "park" 3 "hold_standby" 4 "startup" 5 "loosen_over_ramp" ;
|
VAL_ 780 ACC_Status_Prim_Anz 0 "Symbol nicht beleuchtet" 1 "Farbe 1 (typisch 'gruen')" 2 "Farbe 2 (typisch 'rot')" 3 "Farbe 3 (typisch 'gelb')" ;
|
||||||
VAL_ 391 GearPosition 2 "P" 3 "R" 4 "N" 5 "D" 6 "D";
|
VAL_ 780 ACC_Abstandsindex 0 "Sonderanzeige_graue_Fahrbahn" 1022 "Sonderanzeige_graue_Fahrbahn" 1023 "Sonderanzeige_Fahrbahn_mit_gruenem_roten_Bereich" ;
|
||||||
VAL_ 391 RegenBrakingMode 0 "default" 1 "B1" 2 "B2" 3 "B3";
|
VAL_ 780 ACC_Akustik_02 0 "keine_Akustik" 1 "hochpriore_Akustik" 2 "niederpriore_Akustik" 3 "hochpriore_Dauerakustik" ;
|
||||||
VAL_ 870 Fast_Send_Rate_Active 0 "1 Hz" 1 "50 Hz";
|
VAL_ 780 ACC_Warnung_Verkehrszeichen_1 0 "keine_Warnung_Initialwert" 1 "Warnung" ;
|
||||||
|
VAL_ 780 ACC_Gesetzte_Zeitluecke 0 "keine_Anzeige" 1 "Zeitluecke_1" 2 "Zeitluecke_2" 3 "Zeitluecke_3" 4 "Zeitluecke_4" 5 "Zeitluecke_5" 6 "nicht_definiert" 7 "nicht_definiert" ;
|
||||||
|
VAL_ 780 ACC_Optischer_Fahrerhinweis 0 "optischer_Fahrerhinweis_AUS" 1 "optischer_Fahrerhinweis_EIN" ;
|
||||||
|
VAL_ 780 ACC_Typ_Tachokranz 0 "Tachokranz_lang" 1 "Tachokranz_kurz" ;
|
||||||
|
VAL_ 780 ACC_Anzeige_Zeitluecke 0 "Anzeige_Zeitluecke_nicht_angefordert" 1 "Anzeige_Zeitluecke_angefordert" ;
|
||||||
|
VAL_ 780 ACC_Tachokranz 0 "Tachokranz_nicht_beleuchtet" 1 "Tachokranz_beleuchtet" ;
|
||||||
|
VAL_ 780 ACC_Display_Prio 0 "hoechste_Prio" 1 "mittlere_Prio" 2 "geringe_Prio" 3 "keine_Prio" ;
|
||||||
|
VAL_ 780 ACC_Relevantes_Objekt 0 "Symbol_nicht_beleuchtet" 1 "Farbe_1_typisch_gruen" 2 "Farbe_2_typisch_rot" 3 "Farbe_3_typisch_gelb" ;
|
||||||
|
VAL_ 780 ACC_Texte_Primaeranz 0 "keine Anzeige" 1 "ACC nicht verfuegbar !" 2 "Auto_Auto_ _ _" 3 "Auto_ _Auto_ _" 4 "Auto_ _ _Auto_" 5 "Auto_ _ _ _Auto" 6 "Auto_Auto_ _ _ Gong (durchgestrichen)" 7 "Auto_ _Auto_ _ Gong (durchgestrichen)" 8 "Auto_ _ _Auto_ Gong (durchgestrichen)" 9 "Auto_ _ _ _Auto Gong (durchgestrichen)" 10 "ACC bereit" 11 "keine Abstandsregelung" 12 "ACC Sensor Sicht !" 13 "ACC nicht verfuegbar" 14 "o o o" 15 "Hochschalten" 16 "ESP Eingriff" 17 "Herunterschalten" 18 "Parkbremse !" 19 "Geschwindigkeitsgrenze" 20 "Waehlhebelposition !" 21 "VDA ACC-Symbol YYY km/h / mph" 22 "Tempolimit XXX km/h / mph" 23 "Kurve XXX km/h / mph" 24 "ACC Abschaltung" 25 "Symbol 'Eieruhr'" 26 "!" 27 "--- km/h / mph" 28 "XXX km/h / mph (Schriftart 2)" 29 "Lenkradwinkel" 30 "Anfahren bestaetigen" 31 "Fahrzeug verloren" 32 "Im Stand nicht moeglich" 33 "Ungueltiger Anfahrbefehl" 34 "Tuer offen !" 35 "Fahrer Gurtschloss offen !" 36 "Schalthebelposition !" 37 "Drehzahl !" 38 "Kurvenassistent aus" 39 "Tempolimit aus" 40 "Abbiegeassistent" 41 "Ortsanfang XXX km/h / mph" 42 "Ortsende XXX km/h / mph" 43 "Tempolimit Ende XXX km/h / mph" 44 "HDC aktiv" 45 "braking guard Bremsruck" 46 "braking guard aus" 47 "braking guard aus" 48 "Uebernehmen !" 49 "Steigung zu gross" 50 "Stehendes Objekt voraus" 51 "SET / 'GRA Symbol'___xxx km/h / mph" 52 "SET / 'GRA Symbol' xxx km/h / mph" 53 "ACC aus" 54 "ACC startet" 55 "ACC reinigen" 56 "ACC Fehler" 57 "ACC haelt an !" 58 "Bremse betaetigen !" 59 "Kupplung betaetigt" 60 "LIM AUS" 61 "LIM AKTIV" 62 "LIM PASSIV" 63 "LIM FEHLER" 64 "Bremse ueberhitzt !" 65 "Bremse haelt !" 66 "ESP PASSIV !" 67 "ACC_anfahrbereit" 68 "Gang_einlegen" 69 "Rechtsueberholen_verhindert" 70 "Linksueberholen_verhindert" 71 "Achtung_Geschwindigkeitsueberschreitung" 72 "Tempolimit_und_Kurvenassistent_nicht_verfuegbar" ;
|
||||||
|
VAL_ 780 ACC_Wunschgeschw_erreicht 0 "Wunschgeschwindigkeit_nicht_erreicht" 1 "Wunschgeschwindigkeit_erreicht" ;
|
||||||
|
VAL_ 780 ACC_Typ_Tachokranz_unten 0 "LEDs_an" 1 "LEDs_aus" ;
|
||||||
|
VAL_ 780 ACC_Status_Anzeige 0 "ACC_GRA_Hauptschalter_aus" 1 "ACC_in_Init_nicht_bei_GRA" 2 "ACC_GRA_passiv" 3 "ACC_GRA_aktiv" 4 "ACC_GRA_im_Hintergrund_uebertreten" 5 "ACC_GRA_Abschaltreaktion" 6 "ACC_reversibel_aus_nicht_bei_GRA" 7 "ACC_GRA_irreversibel_aus" ;
|
||||||
|
VAL_ 804 ACC_Texte_Sekundaeranz 0 "keine_Anzeige" 1 "Zielfahrzeug_erkannt" 2 "Rechtskurve_voraus" 3 "Linkskurve_voraus" 4 "Tempolimit_voraus" 5 "Sensorsicht" 6 "Anfahrbereit" 7 "Tempolimit_erkannt" 8 "Kreuzung_voraus" 9 "Kreisverkehr_voraus" ;
|
||||||
|
VAL_ 804 ACC_Texte_Zusatzanz 0 "keine_Anzeige" 1 "ACC_AUS" 2 "ACC_BEREIT" 3 "UEBERTRETEN" 4 "ABSTAND" 5 "DISTANZ_1" 6 "DISTANZ_2" 7 "DISTANZ_3" 8 "DISTANZ_4" 9 "DISTANZ_1__dyn" 10 "DISTANZ_2__dyn" 11 "DISTANZ_3__dyn" 12 "DISTANZ_4__dyn" 13 "DISTANZ_1__stand" 14 "DISTANZ_2__stand" 15 "DISTANZ_3__stand" 16 "DISTANZ_4__stand" 17 "DISTANZ_1__comf" 18 "DISTANZ_2__comf" 19 "DISTANZ_3__comf" 20 "DISTANZ_4__comf" 21 "DISTANZ_1__efficiency" 22 "DISTANZ_2__efficiency" 23 "DISTANZ_3__efficiency" 24 "DISTANZ_4__efficiency" 25 "DISTANZ_5" 26 "DISTANZ_5__dyn" 27 "DISTANZ_5__stand" 28 "DISTANZ_5__comf" 29 "DISTANZ_5__efficiency" 30 "ACHTUNG" 31 "Abstandsanzeige" 32 "Abstandsanz_Warnung_aktiviert" ;
|
||||||
|
VAL_ 804 ACC_Status_Zusatzanz 0 "keine Anzeige" 1 "Bild 1 (Fzg. Silhouette, typ. farblos)" 2 "Bild 2 (Fzg. Farbe 1, typ. grau)" 3 "Bild 3 (Fzg. Farbe 2, typ. rot)" 4 "Bild 4 (Symbol 1 ACCplus, typ. Doppelfzg. gelb)" 5 "Bild 5 (Symbol 2 ACCplus, typ. Doppelfzg. grau)" 6 "Bild 6 (Fzg. Farbe 2, typ. rot) mit Priorität im Kombi (Pop-up)" ;
|
||||||
|
VAL_ 804 ACC_Texte 0 "keine_Anzeige" 1 "ACC_nicht_verfuegbar" 2 "ACC_und_AWV_nicht_verfuegbar" 3 "ACC_keine_Sensorsicht" 4 "ACC_und_AWV_keine_Sensorsicht" 5 "ACC_Steigung_zu_gross" 6 "ACC_nur_in_Fahrstufe_verfuegbar" 7 "ACC_Parkbremse_betaetigt" 8 "ACC_ESP_Eingriff" 9 "ACC_Bitte_uebernehmen" 10 "ACC_HDC_betaetigt" 11 "ACC_Geschwindigkeitsgrenze" 12 "ACC_Schalthebelposition" 13 "ACC_Drehzahl" 14 "ACC_Kupplung_betaetigt" 15 "ACC_Aktivierverhinderung" 16 "ACC_Abschaltung" 17 "ACC_Parkassistent_aktiv" 18 "ACC_ESC_aus" 19 "ACC_Charisma_Modus_inkompatibel" 20 "ACC_Stehendes_Objekt_voraus" 21 "ACA_Fahreruebernahme" 22 "ACA_Querfuehrung_nicht_verfuegbar" ;
|
||||||
|
VAL_ 804 ACC_Texte_braking_guard 0 "keine_Anzeige" 1 "AWV_aus" 2 "AWV_Warnung" 3 "AWV_Demomodus" 4 "AWV_Systemstoerung" 5 "AWV_Eingriff" 6 "AWV_Vorwarnung_aus" 7 "AWV_keine_Sensorsicht" ;
|
||||||
|
VAL_ 804 ACC_Warnhinweis 0 "kein_Warnhinweis" 1 "Warnhinweis" ;
|
||||||
|
VAL_ 804 ACC_Zeitluecke_Abstandswarner 61 "Freifahrt" 62 "nicht_definiert" 63 "keine_Anzeige" ;
|
||||||
|
VAL_ 804 ACC_Abstand_Abstandswarner 509 "Freifahrt" 510 "nicht_definiert" 511 "keine_Anzeige" ;
|
||||||
|
VAL_ 804 ACC_Tempolimit 0 "keine_Anzeige" 1 "5_zulHoechstgeschw" 2 "7_zulHoechstgeschw" 3 "10_zulHoechstgeschw" 4 "15_zulHoechstgeschw" 5 "20_zulHoechstgeschw" 6 "25_zulHoechstgeschw" 7 "30_zulHoechstgeschw" 8 "35_zulHoechstgeschw" 9 "40_zulHoechstgeschw" 10 "45_zulHoechstgeschw" 11 "50_zulHoechstgeschw" 12 "55_zulHoechstgeschw" 13 "60_zulHoechstgeschw" 14 "65_zulHoechstgeschw" 15 "70_zulHoechstgeschw" 16 "75_zulHoechstgeschw" 17 "80_zulHoechstgeschw" 18 "85_zulHoechstgeschw" 19 "90_zulHoechstgeschw" 20 "95_zulHoechstgeschw" 21 "100_zulHoechstgeschw" 22 "110_zulHoechstgeschw" 23 "120_zulHoechstgeschw" 24 "130_zulHoechstgeschw" 25 "140_zulHoechstgeschw" 26 "150_zulHoechstgeschw" 27 "160_zulHoechstgeschw" 28 "200_zulHoechstgeschw" 30 "250_zulHoechstgeschw" 31 "Ende_zulHoechstgeschw" ;
|
||||||
|
VAL_ 804 ACC_Charisma_FahrPr 0 "keine_Funktion" 1 "Programm_1" 2 "Programm_2" 3 "Programm_3" 4 "Programm_4" 5 "Programm_5" 6 "Programm_6" 7 "Programm_7" 8 "Programm_8" 9 "Programm_9" 10 "Programm_10" 11 "Programm_11" 12 "Programm_12" 13 "Programm_13" 14 "Programm_14" 15 "Programm_15" ;
|
||||||
|
VAL_ 804 ACC_Charisma_Status 0 "Init" 1 "verfuegbar" 2 "nicht_verfuegbar" 3 "asynchron_durch_Fahrerwunsch" ;
|
||||||
|
VAL_ 804 ACC_Texte_Abstandswarner 0 "keine_Anzeige" 1 "Systemstoerung" 2 "keine_Sensorsicht" 3 "zurzeit_eingeschraenkt" ;
|
||||||
|
VAL_ 290 ACC_limitierte_Anfahrdyn 0 "keine_Limitierung" 1 "Limitierung_Anfahrdynamik_angefordert" ;
|
||||||
|
VAL_ 290 ACC_nachtr_Stopp_Anf 0 "nicht_angefordert" 1 "angefordert" ;
|
||||||
|
VAL_ 290 ACC_StartStopp_Info 0 "Motorlauf_langfristig_nicht_notwendig_Stoppfreigabe" 1 "Motoranlauf_nicht_zwingend_notwendig_Stoppverbot_keine_Startanforderung" 2 "Motoranlauf_zwingend_notwendig_Startanforderung" 3 "Systemfehler" ;
|
||||||
|
VAL_ 290 ACC_Sollbeschleunigung_02 2046 "Neutralwert" 2047 "Fehler" ;
|
||||||
|
VAL_ 290 ACC_Anfahren 0 "keine_Anforderung_Anfahren" 1 "Anforderung_Anfahren" ;
|
||||||
|
VAL_ 290 ACC_Anhalten 0 "kein_Anhalten_gewuenscht" 1 "Anhalten_gewuenscht" ;
|
||||||
|
VAL_ 290 ACC_Typ 0 "Basis_ACC" 1 "ACC_mit_FollowToStop" 2 "ACC_mit_StopAndGo" 3 "ACC_nicht_codiert" ;
|
||||||
|
VAL_ 290 ACC_Status_ACC 0 "ACC_OFF_Hauptschalter_aus" 1 "ACC_INIT" 2 "ACC_STANDBY" 3 "ACC_AKTIV_regelt" 4 "ACC_OVERRIDE" 5 "ACC_Abschaltreaktion" 6 "reversibler_Fehler_im_ACC_System" 7 "irreversibler_Fehler_im_ACC_System" ;
|
||||||
|
VAL_ 290 ACC_Minimale_Bremsung 0 "Anforderung_Minimale_Bremsung_nicht_aktiv" 1 "Anforderung_Minimale_Bremsung_aktiv" ;
|
||||||
|
VAL_ 302 ACC_Anhalteweg 2046 "Neutralwert" 2047 "Fehler" ;
|
||||||
|
VAL_ 302 ACC_Anhalten 0 "kein_Anhalten_gewuenscht" 1 "Anhalten_gewuenscht" ;
|
||||||
|
VAL_ 302 ACC_Freilauf_Anf 0 "keine Freilauf-Anforderung" 1 "Freilauf-Anforderung" ;
|
||||||
|
VAL_ 302 ACC_Freilauf_Info 0 "Freilauf_freigegeben" 1 "kein_Uebergang_in_Freilauf_zulaessig" 2 "Freilauf_nicht_freigegeben" 3 "Freilauf_Anforderung" ;
|
||||||
|
VAL_ 302 ACC_Anforderung_HMS 0 "keine_Anforderung" 1 "halten" 2 "parken" 3 "halten_Standby" 4 "anfahren" 5 "Loesen_ueber_Rampe" ;
|
||||||
|
VAL_ 302 ACC_Anfahren 0 "keine_Anforderung_Anfahren" 1 "Anforderung_Anfahren" ;
|
||||||
|
VAL_ 302 ACC_Folgebeschl 254 "Neutralwert" ;
|
||||||
|
VAL_ 302 ACC_Sollbeschleunigung_02 2046 "Neutralwert" 2047 "Fehler" ;
|
||||||
|
VAL_ 279 AWV1_Anf_Prefill 0 "Prefill_nicht_aktivieren" 1 "Prefill_aktivieren" ;
|
||||||
|
VAL_ 279 ANB_CM_Info 0 "Standard" 1 "Erweitert" ;
|
||||||
|
VAL_ 279 AWV2_Freigabe 0 "keine_Freigabe" 1 "Freigabe" ;
|
||||||
|
VAL_ 279 AWV1_HBA_Param 0 "Defaultparametersatz" 1 "Parametersatz_mit_leicht_erhoehter_Empfindlichkeit" 2 "Parametersatz_mit_erhoehter_Empfindlichkeit" 3 "Parametersatz_mit_hoechster_Empfindlichkeit" ;
|
||||||
|
VAL_ 279 AWV2_Priowarnung 0 "Anzeige_Verlassen_der_Fahrspur_wird_nicht_unterdrueckt" 1 "Anzeige_Verlassen_der_Fahrspur_wird_unterdrueckt" ;
|
||||||
|
VAL_ 279 ANB_CM_Anforderung 0 "keine_Anforderung" 1 "Anforderung_aktiv" ;
|
||||||
|
VAL_ 279 ANB_Info_Teilbremsung 0 "Auspraegung_Standard" 1 "Auspraegung_Erweitert" ;
|
||||||
|
VAL_ 279 ANB_Notfallblinken 0 "kein_ANB_Notfallblinken" 1 "Notfallblinken_ANB_angefordert" ;
|
||||||
|
VAL_ 279 ANB_Teilbremsung_Freigabe 0 "Teilbremsung_nicht_freigegeben" 1 "Teilbremsung_freigegeben" ;
|
||||||
|
VAL_ 279 ANB_Zielbremsung_Freigabe 0 "Zielbremsung_nicht_freigegeben" 1 "Zielbremsung_freigegeben" ;
|
||||||
|
VAL_ 279 AWV_Vorstufe 0 "keine_Notbremsung_erwartet" 1 "Notbremsung_in_Kuerze" ;
|
||||||
|
VAL_ 279 AWV_Halten 0 "keine_Anforderung" 1 "Anforderung_das_Fzg_im_Stillstand_zu_halten" ;
|
||||||
|
VAL_ 279 AWV_CityANB_Auspraegung 0 "autom_Bremsung_im_ges_vBereich" 1 "autom_Bremsung_im_def_vBereich" ;
|
||||||
|
VAL_ 279 PCF_Freigabe 0 "keine_Freigabe_PreCrashFront" 1 "Freigabe_PreCrashFront" ;
|
||||||
|
VAL_ 279 AWV1_ECD_Anlauf 0 "ECD_Anlauf_nicht_aktivieren" 1 "ECD_Anlauf_aktivieren" ;
|
||||||
|
VAL_ 279 PCF_Time_to_collision 255 "Objektstatus=0x0__oder_berechneter_TTC_Wert_groesser_als_Maximalwert" ;
|
||||||
|
VAL_ 679 ACC_Regelgeschw 1023 "keine_Anzeige" ;
|
||||||
|
VAL_ 679 ACC_Einheit_maxSetzgeschw 0 "kmh" 1 "mph" ;
|
||||||
|
VAL_ 679 ACC_maxSetzgeschw 511 "Init_Neutralwert" ;
|
||||||
|
VAL_ 679 ACC_minRegelgeschw 255 "keine_Anzeige" ;
|
||||||
|
VAL_ 679 ACC_maxRegelgeschw 255 "keine_Anzeige" ;
|
||||||
|
VAL_ 679 ACC_Tempolimitassistent 0 "keine_Anzeige" 1 "Tempolimitassistent_aktiv" 2 "Tempolimitassistent_nicht_verfuegbar" 3 "Tempolimitassistent_Fahreruebernahme" ;
|
||||||
|
VAL_ 679 ACC_Kurvenassistent 0 "keine_Anzeige" 1 "Kreuzung" 2 "Rechtskurve" 3 "Linkskurve" 4 "Kreisverkehr" ;
|
||||||
|
VAL_ 679 ACC_RUV 0 "keine_Anzeige" 1 "RUV_aktiv_Rechtsverkehr" 2 "RUV_aktiv_Linksverkehr" ;
|
||||||
|
VAL_ 679 ACC_Tachokranz 0 "Tachokranz_nicht_beleuchtet" 1 "Tachokranz_beleuchtet" ;
|
||||||
|
VAL_ 679 ACC_Typ_Tachokranz_unten 0 "LEDs_an" 1 "LEDs_aus" ;
|
||||||
|
VAL_ 679 ACC_ENG_Texte 0 "keine_Anzeige" 1 "keine_Laenderverfuegbarkeit" 2 "nicht_verfuegbar" 3 "Geschwindigkeitsgrenze" ;
|
||||||
|
VAL_ 681 AWV_Warnung 0 "keine_Anzeige" 1 "latente_Vorwarnung" 2 "Vorwarnung" 3 "Akutwarnung" 4 "Eingriff" 5 "Fahreruebernahmeaufforderung" 6 "Abbiegewarnung" ;
|
||||||
|
VAL_ 681 AWV_Texte 0 "keine_Anzeige" 1 "Systemstoerung" 2 "keine_Sensorsicht" 3 "Demomodus" 4 "System_aus" 5 "nicht_definiert" 6 "ESC_aus" 7 "zurzeit_eingeschraenkt" ;
|
||||||
|
VAL_ 681 AWV_Status_Anzeige 0 "Init" 1 "verfuegbar" 2 "nicht_verfuegbar" ;
|
||||||
|
VAL_ 681 AWV_Einstellung_System_FSG 0 "deaktiviert" 1 "aktiviert" ;
|
||||||
|
VAL_ 681 AWV_Einstellung_Warnung_FSG 0 "Aus" 1 "Setting_2" 2 "Setting_3" 3 "Setting_4" 4 "Setting_5" 5 "Ein" ;
|
||||||
|
VAL_ 681 AWV_Warnlevel 0 "keine_Gefaehrdung" 63 "max_Gefaehrdung" ;
|
||||||
|
VAL_ 391 GearPosition 2 "P" 3 "R" 4 "N" 5 "D" 6 "D" ;
|
||||||
|
VAL_ 391 RegenBrakingMode 0 "default" 1 "B1" 2 "B2" 3 "B3" ;
|
||||||
|
VAL_ 870 Fast_Send_Rate_Active 0 "1 Hz" 1 "50 Hz" ;
|
||||||
VAL_ 1720 KBI_Variante_USA 0 "keine USA-Variante" 1 "USA-Variante" ;
|
VAL_ 1720 KBI_Variante_USA 0 "keine USA-Variante" 1 "USA-Variante" ;
|
||||||
VAL_ 1720 KBI_Variante 0 "Zeiger Kombiinstrument" 1 "Volldisplay Kombiinstrument" ;
|
VAL_ 1720 KBI_Variante 0 "Zeiger Kombiinstrument" 1 "Volldisplay Kombiinstrument" ;
|
||||||
VAL_ 1720 KBI_BCmE_aktiv 0 "Anzeige_nicht_aktiv" 1 "Anzeige_aktiv" ;
|
VAL_ 1720 KBI_BCmE_aktiv 0 "Anzeige_nicht_aktiv" 1 "Anzeige_aktiv" ;
|
||||||
|
|||||||
@@ -18,3 +18,6 @@ examples/output.csv
|
|||||||
nosetests.xml
|
nosetests.xml
|
||||||
.mypy_cache/
|
.mypy_cache/
|
||||||
.sconsign.dblite
|
.sconsign.dblite
|
||||||
|
|
||||||
|
# CTU info files generated by Cppcheck
|
||||||
|
*.*.ctu-info
|
||||||
|
|||||||
+9
-9
@@ -1,10 +1,10 @@
|
|||||||
# flake8: noqa
|
from .python import (Panda, PandaDFU, # noqa: F401
|
||||||
# pylint: skip-file
|
BASEDIR, pack_can_buffer, unpack_can_buffer,
|
||||||
from .python import Panda, PandaDFU, flash_release, \
|
DEFAULT_FW_FN, DEFAULT_H7_FW_FN, MCU_TYPE_H7, MCU_TYPE_F4, DLC_TO_LEN, LEN_TO_DLC,
|
||||||
BASEDIR, ensure_st_up_to_date, PandaSerial, pack_can_buffer, unpack_can_buffer, \
|
ALTERNATIVE_EXPERIENCE, USBPACKET_MAX_SIZE)
|
||||||
DEFAULT_FW_FN, DEFAULT_H7_FW_FN, MCU_TYPE_H7, MCU_TYPE_F4, DLC_TO_LEN, LEN_TO_DLC, \
|
|
||||||
ALTERNATIVE_EXPERIENCE
|
|
||||||
|
|
||||||
from .python.config import BOOTSTUB_ADDRESS, BLOCK_SIZE_FX, APP_ADDRESS_FX, \
|
from .python.serial import PandaSerial # noqa: F401
|
||||||
BLOCK_SIZE_H7, APP_ADDRESS_H7, DEVICE_SERIAL_NUMBER_ADDR_H7, \
|
|
||||||
DEVICE_SERIAL_NUMBER_ADDR_FX
|
from .python.config import (BOOTSTUB_ADDRESS, BLOCK_SIZE_FX, APP_ADDRESS_FX, # noqa: F401
|
||||||
|
BLOCK_SIZE_H7, APP_ADDRESS_H7, DEVICE_SERIAL_NUMBER_ADDR_H7, # noqa: F401
|
||||||
|
DEVICE_SERIAL_NUMBER_ADDR_FX)
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+172
-139
@@ -8,33 +8,39 @@ import hashlib
|
|||||||
import datetime
|
import datetime
|
||||||
import traceback
|
import traceback
|
||||||
import warnings
|
import warnings
|
||||||
|
import logging
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
from itertools import accumulate
|
from itertools import accumulate
|
||||||
from .dfu import PandaDFU, MCU_TYPE_F2, MCU_TYPE_F4, MCU_TYPE_H7 # pylint: disable=import-error
|
|
||||||
from .flash_release import flash_release # noqa pylint: disable=import-error
|
from .config import DEFAULT_FW_FN, DEFAULT_H7_FW_FN, SECTOR_SIZES_FX, SECTOR_SIZES_H7
|
||||||
from .update import ensure_st_up_to_date # noqa pylint: disable=import-error
|
from .dfu import PandaDFU, MCU_TYPE_F2, MCU_TYPE_F4, MCU_TYPE_H7
|
||||||
from .serial import PandaSerial # noqa pylint: disable=import-error
|
from .isotp import isotp_send, isotp_recv
|
||||||
from .isotp import isotp_send, isotp_recv # pylint: disable=import-error
|
from .spi import SpiHandle
|
||||||
from .config import DEFAULT_FW_FN, DEFAULT_H7_FW_FN, SECTOR_SIZES_FX, SECTOR_SIZES_H7 # noqa pylint: disable=import-error
|
|
||||||
|
|
||||||
__version__ = '0.0.10'
|
__version__ = '0.0.10'
|
||||||
|
|
||||||
|
# setup logging
|
||||||
|
LOGLEVEL = os.environ.get('LOGLEVEL', 'INFO').upper()
|
||||||
|
logging.basicConfig(level=LOGLEVEL, format='%(message)s')
|
||||||
|
|
||||||
|
|
||||||
BASEDIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), "../")
|
BASEDIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), "../")
|
||||||
|
|
||||||
DEBUG = os.getenv("PANDADEBUG") is not None
|
DEBUG = os.getenv("PANDADEBUG") is not None
|
||||||
|
|
||||||
|
CAN_TRANSACTION_MAGIC = struct.pack("<I", 0x43414E2F)
|
||||||
|
USBPACKET_MAX_SIZE = 0x40
|
||||||
CANPACKET_HEAD_SIZE = 0x5
|
CANPACKET_HEAD_SIZE = 0x5
|
||||||
DLC_TO_LEN = [0, 1, 2, 3, 4, 5, 6, 7, 8, 12, 16, 20, 24, 32, 48, 64]
|
DLC_TO_LEN = [0, 1, 2, 3, 4, 5, 6, 7, 8, 12, 16, 20, 24, 32, 48, 64]
|
||||||
LEN_TO_DLC = {length: dlc for (dlc, length) in enumerate(DLC_TO_LEN)}
|
LEN_TO_DLC = {length: dlc for (dlc, length) in enumerate(DLC_TO_LEN)}
|
||||||
|
|
||||||
def pack_can_buffer(arr):
|
def pack_can_buffer(arr):
|
||||||
snds = [b'']
|
snds = [CAN_TRANSACTION_MAGIC]
|
||||||
idx = 0
|
|
||||||
for address, _, dat, bus in arr:
|
for address, _, dat, bus in arr:
|
||||||
assert len(dat) in LEN_TO_DLC
|
assert len(dat) in LEN_TO_DLC
|
||||||
if DEBUG:
|
#logging.debug(" W 0x%x: 0x%s", address, dat.hex())
|
||||||
print(f" W 0x{address:x}: 0x{dat.hex()}")
|
|
||||||
extended = 1 if address >= 0x800 else 0
|
extended = 1 if address >= 0x800 else 0
|
||||||
data_len_code = LEN_TO_DLC[len(dat)]
|
data_len_code = LEN_TO_DLC[len(dat)]
|
||||||
header = bytearray(5)
|
header = bytearray(5)
|
||||||
@@ -44,57 +50,50 @@ def pack_can_buffer(arr):
|
|||||||
header[2] = (word_4b >> 8) & 0xFF
|
header[2] = (word_4b >> 8) & 0xFF
|
||||||
header[3] = (word_4b >> 16) & 0xFF
|
header[3] = (word_4b >> 16) & 0xFF
|
||||||
header[4] = (word_4b >> 24) & 0xFF
|
header[4] = (word_4b >> 24) & 0xFF
|
||||||
snds[idx] += header + dat
|
|
||||||
if len(snds[idx]) > 256: # Limit chunks to 256 bytes
|
|
||||||
snds.append(b'')
|
|
||||||
idx += 1
|
|
||||||
|
|
||||||
#Apply counter to each 64 byte packet
|
snds[-1] += header + dat
|
||||||
for idx in range(len(snds)):
|
if len(snds[-1]) > 256: # Limit chunks to 256 bytes
|
||||||
tx = b''
|
snds.append(CAN_TRANSACTION_MAGIC)
|
||||||
counter = 0
|
|
||||||
for i in range (0, len(snds[idx]), 63):
|
|
||||||
tx += bytes([counter]) + snds[idx][i:i+63]
|
|
||||||
counter += 1
|
|
||||||
snds[idx] = tx
|
|
||||||
return snds
|
return snds
|
||||||
|
|
||||||
def unpack_can_buffer(dat):
|
def unpack_can_buffer(dat):
|
||||||
ret = []
|
ret = []
|
||||||
counter = 0
|
if len(dat) < len(CAN_TRANSACTION_MAGIC):
|
||||||
tail = bytearray()
|
return ret
|
||||||
for i in range(0, len(dat), 64):
|
|
||||||
if counter != dat[i]:
|
if dat[:len(CAN_TRANSACTION_MAGIC)] != CAN_TRANSACTION_MAGIC:
|
||||||
print("CAN: LOST RECV PACKET COUNTER")
|
logging.error("CAN: recv didn't start with magic")
|
||||||
break
|
return ret
|
||||||
counter+=1
|
|
||||||
chunk = tail + dat[i+1:i+64]
|
dat = dat[len(CAN_TRANSACTION_MAGIC):]
|
||||||
tail = bytearray()
|
|
||||||
pos = 0
|
while len(dat) >= CANPACKET_HEAD_SIZE:
|
||||||
while pos<len(chunk):
|
data_len = DLC_TO_LEN[(dat[0]>>4)]
|
||||||
data_len = DLC_TO_LEN[(chunk[pos]>>4)]
|
|
||||||
pckt_len = CANPACKET_HEAD_SIZE + data_len
|
header = dat[:CANPACKET_HEAD_SIZE]
|
||||||
if pckt_len <= len(chunk[pos:]):
|
dat = dat[CANPACKET_HEAD_SIZE:]
|
||||||
header = chunk[pos:pos+CANPACKET_HEAD_SIZE]
|
|
||||||
if len(header) < 5:
|
bus = (header[0] >> 1) & 0x7
|
||||||
print("CAN: MALFORMED USB RECV PACKET")
|
address = (header[4] << 24 | header[3] << 16 | header[2] << 8 | header[1]) >> 3
|
||||||
break
|
|
||||||
bus = (header[0] >> 1) & 0x7
|
if (header[1] >> 1) & 0x1:
|
||||||
address = (header[4] << 24 | header[3] << 16 | header[2] << 8 | header[1]) >> 3
|
# returned
|
||||||
returned = (header[1] >> 1) & 0x1
|
bus += 128
|
||||||
rejected = header[1] & 0x1
|
if header[1] & 0x1:
|
||||||
data = chunk[pos + CANPACKET_HEAD_SIZE:pos + CANPACKET_HEAD_SIZE + data_len]
|
# rejected
|
||||||
if returned:
|
bus += 192
|
||||||
bus += 128
|
|
||||||
if rejected:
|
data = dat[:data_len]
|
||||||
bus += 192
|
dat = dat[data_len:]
|
||||||
if DEBUG:
|
|
||||||
print(f" R 0x{address:x}: 0x{data.hex()}")
|
#logging.debug(" R 0x%x: 0x%s", address, data.hex())
|
||||||
ret.append((address, 0, data, bus))
|
|
||||||
pos += pckt_len
|
ret.append((address, 0, data, bus))
|
||||||
else:
|
|
||||||
tail = chunk[pos:]
|
if len(dat) > 0:
|
||||||
break
|
logging.error("CAN: malformed packet. leftover data")
|
||||||
|
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
def ensure_health_packet_version(fn):
|
def ensure_health_packet_version(fn):
|
||||||
@@ -117,11 +116,22 @@ def ensure_can_packet_version(fn):
|
|||||||
return fn(self, *args, **kwargs)
|
return fn(self, *args, **kwargs)
|
||||||
return wrapper
|
return wrapper
|
||||||
|
|
||||||
|
def ensure_can_health_packet_version(fn):
|
||||||
|
@wraps(fn)
|
||||||
|
def wrapper(self, *args, **kwargs):
|
||||||
|
if self.can_health_version < self.CAN_HEALTH_PACKET_VERSION:
|
||||||
|
raise RuntimeError("Panda firmware has outdated CAN health packet definition. Reflash panda firmware.")
|
||||||
|
elif self.can_health_version > self.CAN_HEALTH_PACKET_VERSION:
|
||||||
|
raise RuntimeError("Panda python library has outdated CAN health packet definition. Update panda python library.")
|
||||||
|
return fn(self, *args, **kwargs)
|
||||||
|
return wrapper
|
||||||
|
|
||||||
class ALTERNATIVE_EXPERIENCE:
|
class ALTERNATIVE_EXPERIENCE:
|
||||||
DEFAULT = 0
|
DEFAULT = 0
|
||||||
DISABLE_DISENGAGE_ON_GAS = 1
|
DISABLE_DISENGAGE_ON_GAS = 1
|
||||||
DISABLE_STOCK_AEB = 2
|
DISABLE_STOCK_AEB = 2
|
||||||
RAISE_LONGITUDINAL_LIMITS_TO_ISO_MAX = 8
|
RAISE_LONGITUDINAL_LIMITS_TO_ISO_MAX = 8
|
||||||
|
ALKA = 16
|
||||||
|
|
||||||
class Panda:
|
class Panda:
|
||||||
|
|
||||||
@@ -152,11 +162,14 @@ class Panda:
|
|||||||
SAFETY_FAW = 26
|
SAFETY_FAW = 26
|
||||||
SAFETY_BODY = 27
|
SAFETY_BODY = 27
|
||||||
SAFETY_HYUNDAI_CANFD = 28
|
SAFETY_HYUNDAI_CANFD = 28
|
||||||
|
SAFETY_VOLVO_C1 = 29
|
||||||
|
SAFETY_VOLVO_EUCD = 30
|
||||||
|
|
||||||
SERIAL_DEBUG = 0
|
SERIAL_DEBUG = 0
|
||||||
SERIAL_ESP = 1
|
SERIAL_ESP = 1
|
||||||
SERIAL_LIN1 = 2
|
SERIAL_LIN1 = 2
|
||||||
SERIAL_LIN2 = 3
|
SERIAL_LIN2 = 3
|
||||||
|
SERIAL_SOM_DEBUG = 4
|
||||||
|
|
||||||
GMLAN_CAN2 = 1
|
GMLAN_CAN2 = 1
|
||||||
GMLAN_CAN3 = 2
|
GMLAN_CAN3 = 2
|
||||||
@@ -172,14 +185,21 @@ class Panda:
|
|||||||
HW_TYPE_UNO = b'\x05'
|
HW_TYPE_UNO = b'\x05'
|
||||||
HW_TYPE_DOS = b'\x06'
|
HW_TYPE_DOS = b'\x06'
|
||||||
HW_TYPE_RED_PANDA = b'\x07'
|
HW_TYPE_RED_PANDA = b'\x07'
|
||||||
|
HW_TYPE_RED_PANDA_V2 = b'\x08'
|
||||||
|
HW_TYPE_TRES = b'\x09'
|
||||||
|
|
||||||
CAN_PACKET_VERSION = 2
|
CAN_PACKET_VERSION = 3
|
||||||
HEALTH_PACKET_VERSION = 8
|
HEALTH_PACKET_VERSION = 11
|
||||||
HEALTH_STRUCT = struct.Struct("<IIIIIIIIBBBBBBBHBBBHIfB")
|
CAN_HEALTH_PACKET_VERSION = 3
|
||||||
|
HEALTH_STRUCT = struct.Struct("<IIIIIIIIIBBBBBBHBBBHfBBB")
|
||||||
|
CAN_HEALTH_STRUCT = struct.Struct("<BIBBBBBBBBIIIIIIHHBBB")
|
||||||
|
|
||||||
F2_DEVICES = (HW_TYPE_PEDAL, )
|
F2_DEVICES = (HW_TYPE_PEDAL, )
|
||||||
F4_DEVICES = (HW_TYPE_WHITE_PANDA, HW_TYPE_GREY_PANDA, HW_TYPE_BLACK_PANDA, HW_TYPE_UNO, HW_TYPE_DOS)
|
F4_DEVICES = (HW_TYPE_WHITE_PANDA, HW_TYPE_GREY_PANDA, HW_TYPE_BLACK_PANDA, HW_TYPE_UNO, HW_TYPE_DOS)
|
||||||
H7_DEVICES = (HW_TYPE_RED_PANDA, )
|
H7_DEVICES = (HW_TYPE_RED_PANDA, HW_TYPE_RED_PANDA_V2, HW_TYPE_TRES)
|
||||||
|
|
||||||
|
INTERNAL_DEVICES = (HW_TYPE_UNO, HW_TYPE_DOS)
|
||||||
|
HAS_OBD = (HW_TYPE_BLACK_PANDA, HW_TYPE_UNO, HW_TYPE_DOS, HW_TYPE_RED_PANDA, HW_TYPE_RED_PANDA_V2, HW_TYPE_TRES)
|
||||||
|
|
||||||
CLOCK_SOURCE_MODE_DISABLED = 0
|
CLOCK_SOURCE_MODE_DISABLED = 0
|
||||||
CLOCK_SOURCE_MODE_FREE_RUNNING = 1
|
CLOCK_SOURCE_MODE_FREE_RUNNING = 1
|
||||||
@@ -197,9 +217,9 @@ class Panda:
|
|||||||
FLAG_HYUNDAI_HYBRID_GAS = 2
|
FLAG_HYUNDAI_HYBRID_GAS = 2
|
||||||
FLAG_HYUNDAI_LONG = 4
|
FLAG_HYUNDAI_LONG = 4
|
||||||
FLAG_HYUNDAI_CAMERA_SCC = 8
|
FLAG_HYUNDAI_CAMERA_SCC = 8
|
||||||
|
FLAG_HYUNDAI_CANFD_HDA2 = 16
|
||||||
FLAG_HYUNDAI_CANFD_HDA2 = 1
|
FLAG_HYUNDAI_CANFD_ALT_BUTTONS = 32
|
||||||
FLAG_HYUNDAI_CANFD_ALT_BUTTONS = 2
|
FLAG_HYUNDAI_ALT_LIMITS = 64
|
||||||
|
|
||||||
FLAG_TESLA_POWERTRAIN = 1
|
FLAG_TESLA_POWERTRAIN = 1
|
||||||
FLAG_TESLA_LONG_CONTROL = 2
|
FLAG_TESLA_LONG_CONTROL = 2
|
||||||
@@ -212,8 +232,9 @@ class Panda:
|
|||||||
FLAG_SUBARU_GEN2 = 1
|
FLAG_SUBARU_GEN2 = 1
|
||||||
|
|
||||||
FLAG_GM_HW_CAM = 1
|
FLAG_GM_HW_CAM = 1
|
||||||
|
FLAG_GM_HW_CAM_LONG = 2
|
||||||
|
|
||||||
def __init__(self, serial: Optional[str] = None, claim: bool = True, disable_checks: bool = True):
|
def __init__(self, serial: Optional[str] = None, claim: bool = True, spi: bool = False, disable_checks: bool = True):
|
||||||
self._serial = serial
|
self._serial = serial
|
||||||
self._disable_checks = disable_checks
|
self._disable_checks = disable_checks
|
||||||
|
|
||||||
@@ -221,9 +242,9 @@ class Panda:
|
|||||||
self._bcd_device = None
|
self._bcd_device = None
|
||||||
|
|
||||||
# connect and set mcu type
|
# connect and set mcu type
|
||||||
|
self._spi = spi
|
||||||
self.connect(claim)
|
self.connect(claim)
|
||||||
|
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
self._handle.close()
|
self._handle.close()
|
||||||
self._handle = None
|
self._handle = None
|
||||||
@@ -231,10 +252,30 @@ class Panda:
|
|||||||
def connect(self, claim=True, wait=False):
|
def connect(self, claim=True, wait=False):
|
||||||
if self._handle is not None:
|
if self._handle is not None:
|
||||||
self.close()
|
self.close()
|
||||||
|
|
||||||
context = usb1.USBContext()
|
|
||||||
self._handle = None
|
self._handle = None
|
||||||
|
|
||||||
|
if self._spi:
|
||||||
|
self._handle = SpiHandle()
|
||||||
|
|
||||||
|
# TODO implement
|
||||||
|
self._serial = "SPIDEV"
|
||||||
|
self.bootstub = False
|
||||||
|
|
||||||
|
else:
|
||||||
|
self.usb_connect(claim=claim, wait=wait)
|
||||||
|
|
||||||
|
assert self._handle is not None
|
||||||
|
self._mcu_type = self.get_mcu_type()
|
||||||
|
self.health_version, self.can_version, self.can_health_version = self.get_packets_versions()
|
||||||
|
print("connected")
|
||||||
|
|
||||||
|
# disable openpilot's heartbeat checks
|
||||||
|
if self._disable_checks:
|
||||||
|
self.set_heartbeat_disabled()
|
||||||
|
self.set_power_save(0)
|
||||||
|
|
||||||
|
def usb_connect(self, claim=True, wait=False):
|
||||||
|
context = usb1.USBContext()
|
||||||
while 1:
|
while 1:
|
||||||
try:
|
try:
|
||||||
for device in context.getDeviceList(skip_on_error=True):
|
for device in context.getDeviceList(skip_on_error=True):
|
||||||
@@ -267,16 +308,6 @@ class Panda:
|
|||||||
break
|
break
|
||||||
context = usb1.USBContext() # New context needed so new devices show up
|
context = usb1.USBContext() # New context needed so new devices show up
|
||||||
|
|
||||||
assert self._handle is not None
|
|
||||||
self._mcu_type = self.get_mcu_type()
|
|
||||||
self.health_version, self.can_version = self.get_packets_versions()
|
|
||||||
print("connected")
|
|
||||||
|
|
||||||
# disable openpilot's heartbeat checks
|
|
||||||
if self._disable_checks:
|
|
||||||
self.set_heartbeat_disabled()
|
|
||||||
self.set_power_save(0)
|
|
||||||
|
|
||||||
def reset(self, enter_bootstub=False, enter_bootloader=False, reconnect=True):
|
def reset(self, enter_bootstub=False, enter_bootloader=False, reconnect=True):
|
||||||
try:
|
try:
|
||||||
if enter_bootloader:
|
if enter_bootloader:
|
||||||
@@ -435,26 +466,65 @@ class Panda:
|
|||||||
"uptime": a[0],
|
"uptime": a[0],
|
||||||
"voltage": a[1],
|
"voltage": a[1],
|
||||||
"current": a[2],
|
"current": a[2],
|
||||||
"can_rx_errs": a[3],
|
"safety_tx_blocked": a[3],
|
||||||
"can_send_errs": a[4],
|
"safety_rx_invalid": a[4],
|
||||||
"can_fwd_errs": a[5],
|
"tx_buffer_overflow": a[5],
|
||||||
"gmlan_send_errs": a[6],
|
"rx_buffer_overflow": a[6],
|
||||||
"faults": a[7],
|
"gmlan_send_errs": a[7],
|
||||||
"ignition_line": a[8],
|
"faults": a[8],
|
||||||
"ignition_can": a[9],
|
"ignition_line": a[9],
|
||||||
"controls_allowed": a[10],
|
"ignition_can": a[10],
|
||||||
"gas_interceptor_detected": a[11],
|
"controls_allowed": a[11],
|
||||||
"car_harness_status": a[12],
|
"gas_interceptor_detected": a[12],
|
||||||
"usb_power_mode": a[13],
|
"car_harness_status": a[13],
|
||||||
"safety_mode": a[14],
|
"safety_mode": a[14],
|
||||||
"safety_param": a[15],
|
"safety_param": a[15],
|
||||||
"fault_status": a[16],
|
"fault_status": a[16],
|
||||||
"power_save_enabled": a[17],
|
"power_save_enabled": a[17],
|
||||||
"heartbeat_lost": a[18],
|
"heartbeat_lost": a[18],
|
||||||
"alternative_experience": a[19],
|
"alternative_experience": a[19],
|
||||||
"blocked_msg_cnt": a[20],
|
"interrupt_load": a[20],
|
||||||
"interrupt_load": a[21],
|
"fan_power": a[21],
|
||||||
"fan_power": a[22],
|
"safety_rx_checks_invalid": a[22],
|
||||||
|
"usb_power_mode": a[23],
|
||||||
|
}
|
||||||
|
|
||||||
|
@ensure_can_health_packet_version
|
||||||
|
def can_health(self, can_number):
|
||||||
|
LEC_ERROR_CODE = {
|
||||||
|
0: "No error",
|
||||||
|
1: "Stuff error",
|
||||||
|
2: "Form error",
|
||||||
|
3: "AckError",
|
||||||
|
4: "Bit1Error",
|
||||||
|
5: "Bit0Error",
|
||||||
|
6: "CRCError",
|
||||||
|
7: "NoChange",
|
||||||
|
}
|
||||||
|
dat = self._handle.controlRead(Panda.REQUEST_IN, 0xc2, int(can_number), 0, self.CAN_HEALTH_STRUCT.size)
|
||||||
|
a = self.CAN_HEALTH_STRUCT.unpack(dat)
|
||||||
|
return {
|
||||||
|
"bus_off": a[0],
|
||||||
|
"bus_off_cnt": a[1],
|
||||||
|
"error_warning": a[2],
|
||||||
|
"error_passive": a[3],
|
||||||
|
"last_error": LEC_ERROR_CODE[a[4]],
|
||||||
|
"last_stored_error": LEC_ERROR_CODE[a[5]],
|
||||||
|
"last_data_error": LEC_ERROR_CODE[a[6]],
|
||||||
|
"last_data_stored_error": LEC_ERROR_CODE[a[7]],
|
||||||
|
"receive_error_cnt": a[8],
|
||||||
|
"transmit_error_cnt": a[9],
|
||||||
|
"total_error_cnt": a[10],
|
||||||
|
"total_tx_lost_cnt": a[11],
|
||||||
|
"total_rx_lost_cnt": a[12],
|
||||||
|
"total_tx_cnt": a[13],
|
||||||
|
"total_rx_cnt": a[14],
|
||||||
|
"total_fwd_cnt": a[15],
|
||||||
|
"can_speed": a[16],
|
||||||
|
"can_data_speed": a[17],
|
||||||
|
"canfd_enabled": a[18],
|
||||||
|
"brs_enabled": a[19],
|
||||||
|
"canfd_non_iso": a[20],
|
||||||
}
|
}
|
||||||
|
|
||||||
# ******************* control *******************
|
# ******************* control *******************
|
||||||
@@ -491,33 +561,12 @@ class Panda:
|
|||||||
|
|
||||||
# Returns tuple with health packet version and CAN packet/USB packet version
|
# Returns tuple with health packet version and CAN packet/USB packet version
|
||||||
def get_packets_versions(self):
|
def get_packets_versions(self):
|
||||||
dat = self._handle.controlRead(Panda.REQUEST_IN, 0xdd, 0, 0, 2)
|
dat = self._handle.controlRead(Panda.REQUEST_IN, 0xdd, 0, 0, 3)
|
||||||
if dat:
|
if dat and len(dat) == 3:
|
||||||
a = struct.unpack("BB", dat)
|
a = struct.unpack("BBB", dat)
|
||||||
return (a[0], a[1])
|
return (a[0], a[1], a[2])
|
||||||
else:
|
else:
|
||||||
return (0, 0)
|
return (0, 0, 0)
|
||||||
|
|
||||||
def is_white(self):
|
|
||||||
return self.get_type() == Panda.HW_TYPE_WHITE_PANDA
|
|
||||||
|
|
||||||
def is_grey(self):
|
|
||||||
return self.get_type() == Panda.HW_TYPE_GREY_PANDA
|
|
||||||
|
|
||||||
def is_black(self):
|
|
||||||
return self.get_type() == Panda.HW_TYPE_BLACK_PANDA
|
|
||||||
|
|
||||||
def is_pedal(self):
|
|
||||||
return self.get_type() == Panda.HW_TYPE_PEDAL
|
|
||||||
|
|
||||||
def is_uno(self):
|
|
||||||
return self.get_type() == Panda.HW_TYPE_UNO
|
|
||||||
|
|
||||||
def is_dos(self):
|
|
||||||
return self.get_type() == Panda.HW_TYPE_DOS
|
|
||||||
|
|
||||||
def is_red(self):
|
|
||||||
return self.get_type() == Panda.HW_TYPE_RED_PANDA
|
|
||||||
|
|
||||||
def get_mcu_type(self):
|
def get_mcu_type(self):
|
||||||
hw_type = self.get_type()
|
hw_type = self.get_type()
|
||||||
@@ -530,13 +579,10 @@ class Panda:
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
def has_obd(self):
|
def has_obd(self):
|
||||||
return (self.is_uno() or self.is_dos() or self.is_black() or self.is_red())
|
return self.get_type() in Panda.HAS_OBD
|
||||||
|
|
||||||
def has_canfd(self) -> bool:
|
def is_internal(self):
|
||||||
return self.get_type() in Panda.H7_DEVICES
|
return self.get_type() in Panda.INTERNAL_DEVICES
|
||||||
|
|
||||||
def is_internal(self) -> bool:
|
|
||||||
return self.get_type() in (Panda.HW_TYPE_UNO, Panda.HW_TYPE_DOS)
|
|
||||||
|
|
||||||
def get_serial(self):
|
def get_serial(self):
|
||||||
dat = self._handle.controlRead(Panda.REQUEST_IN, 0xd0, 0, 0, 0x20)
|
dat = self._handle.controlRead(Panda.REQUEST_IN, 0xd0, 0, 0, 0x20)
|
||||||
@@ -552,9 +598,6 @@ class Panda:
|
|||||||
|
|
||||||
# ******************* configuration *******************
|
# ******************* configuration *******************
|
||||||
|
|
||||||
def set_usb_power(self, on):
|
|
||||||
self._handle.controlWrite(Panda.REQUEST_OUT, 0xe6, int(on), 0, b'')
|
|
||||||
|
|
||||||
def set_power_save(self, power_save_enabled=0):
|
def set_power_save(self, power_save_enabled=0):
|
||||||
self._handle.controlWrite(Panda.REQUEST_OUT, 0xe7, int(power_save_enabled), 0, b'')
|
self._handle.controlWrite(Panda.REQUEST_OUT, 0xe7, int(power_save_enabled), 0, b'')
|
||||||
|
|
||||||
@@ -596,14 +639,8 @@ class Panda:
|
|||||||
def set_can_data_speed_kbps(self, bus, speed):
|
def set_can_data_speed_kbps(self, bus, speed):
|
||||||
self._handle.controlWrite(Panda.REQUEST_OUT, 0xf9, bus, int(speed * 10), b'')
|
self._handle.controlWrite(Panda.REQUEST_OUT, 0xf9, bus, int(speed * 10), b'')
|
||||||
|
|
||||||
# CAN FD and BRS status
|
def set_canfd_non_iso(self, bus, non_iso):
|
||||||
def get_canfd_status(self, bus):
|
self._handle.controlWrite(Panda.REQUEST_OUT, 0xfc, bus, int(non_iso), b'')
|
||||||
dat = self._handle.controlRead(Panda.REQUEST_IN, 0xfa, bus, 0, 2)
|
|
||||||
if dat:
|
|
||||||
a = struct.unpack("BB", dat)
|
|
||||||
return (a[0], a[1])
|
|
||||||
else:
|
|
||||||
return (None, None)
|
|
||||||
|
|
||||||
def set_uart_baud(self, uart, rate):
|
def set_uart_baud(self, uart, rate):
|
||||||
self._handle.controlWrite(Panda.REQUEST_OUT, 0xe4, uart, int(rate / 300), b'')
|
self._handle.controlWrite(Panda.REQUEST_OUT, 0xe4, uart, int(rate / 300), b'')
|
||||||
@@ -686,7 +723,7 @@ class Panda:
|
|||||||
def serial_write(self, port_number, ln):
|
def serial_write(self, port_number, ln):
|
||||||
ret = 0
|
ret = 0
|
||||||
for i in range(0, len(ln), 0x20):
|
for i in range(0, len(ln), 0x20):
|
||||||
ret += self._handle.bulkWrite(2, struct.pack("B", port_number) + ln[i:i + 0x20])
|
ret += self._handle.bulkWrite(2, struct.pack("B", port_number) + bytes(ln[i:i + 0x20], 'utf-8'))
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
def serial_clear(self, port_number):
|
def serial_clear(self, port_number):
|
||||||
@@ -809,7 +846,3 @@ class Panda:
|
|||||||
# ****************** Siren *****************
|
# ****************** Siren *****************
|
||||||
def set_siren(self, enabled):
|
def set_siren(self, enabled):
|
||||||
self._handle.controlWrite(Panda.REQUEST_OUT, 0xf6, int(enabled), 0, b'')
|
self._handle.controlWrite(Panda.REQUEST_OUT, 0xf6, int(enabled), 0, b'')
|
||||||
|
|
||||||
# ****************** Debug *****************
|
|
||||||
def set_green_led(self, enabled):
|
|
||||||
self._handle.controlWrite(Panda.REQUEST_OUT, 0xf7, int(enabled), 0, b'')
|
|
||||||
|
|||||||
@@ -9,29 +9,6 @@ APP_ADDRESS_FX = 0x8004000
|
|||||||
SECTOR_SIZES_FX = [0x4000 for _ in range(4)] + [0x10000] + [0x20000 for _ in range(11)]
|
SECTOR_SIZES_FX = [0x4000 for _ in range(4)] + [0x10000] + [0x20000 for _ in range(11)]
|
||||||
DEVICE_SERIAL_NUMBER_ADDR_FX = 0x1FFF79C0
|
DEVICE_SERIAL_NUMBER_ADDR_FX = 0x1FFF79C0
|
||||||
DEFAULT_FW_FN = os.path.join(BASEDIR, "board", "obj", "panda.bin.signed")
|
DEFAULT_FW_FN = os.path.join(BASEDIR, "board", "obj", "panda.bin.signed")
|
||||||
DEFAULT_SSPOOF_FW_FN = os.path.join(BASEDIR, "board", "obj", "panda.bin.sspoof.signed")
|
|
||||||
TESTING_FW_FN = os.path.join(BASEDIR, "board", "obj", "panda.bin.testing.signed")
|
|
||||||
TESTING_SSPOOF_FW_FN = os.path.join(BASEDIR, "board", "obj", "panda.bin.testing.sspoof.signed")
|
|
||||||
|
|
||||||
atl_enabled = False
|
|
||||||
if os.path.exists('/data/params/d/dp_atl'):
|
|
||||||
with open('/data/params/d/dp_atl') as f:
|
|
||||||
if (int(f.read().strip())) != 0:
|
|
||||||
atl_enabled = True
|
|
||||||
|
|
||||||
sspoof_enabled = False
|
|
||||||
if os.path.exists('/data/params/d/dp_sspoof'):
|
|
||||||
with open('/data/params/d/dp_sspoof') as f:
|
|
||||||
if (int(f.read().strip())) != 0:
|
|
||||||
sspoof_enabled = True
|
|
||||||
|
|
||||||
if atl_enabled and sspoof_enabled and os.path.exists(TESTING_SSPOOF_FW_FN):
|
|
||||||
DEFAULT_FW_FN = TESTING_SSPOOF_FW_FN
|
|
||||||
elif atl_enabled and not sspoof_enabled and os.path.exists(TESTING_FW_FN):
|
|
||||||
DEFAULT_FW_FN = TESTING_FW_FN
|
|
||||||
elif not atl_enabled and sspoof_enabled and os.path.exists(DEFAULT_SSPOOF_FW_FN):
|
|
||||||
DEFAULT_FW_FN = DEFAULT_SSPOOF_FW_FN
|
|
||||||
|
|
||||||
DEFAULT_BOOTSTUB_FN = os.path.join(BASEDIR, "board", "obj", "bootstub.panda.bin")
|
DEFAULT_BOOTSTUB_FN = os.path.join(BASEDIR, "board", "obj", "bootstub.panda.bin")
|
||||||
|
|
||||||
BLOCK_SIZE_H7 = 0x400
|
BLOCK_SIZE_H7 = 0x400
|
||||||
|
|||||||
@@ -1,74 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
|
|
||||||
import sys
|
|
||||||
import time
|
|
||||||
import requests
|
|
||||||
import json
|
|
||||||
import io
|
|
||||||
|
|
||||||
def flash_release(path=None, st_serial=None):
|
|
||||||
from panda import Panda, PandaDFU
|
|
||||||
from zipfile import ZipFile
|
|
||||||
|
|
||||||
def status(x):
|
|
||||||
print("\033[1;32;40m" + x + "\033[00m")
|
|
||||||
|
|
||||||
if st_serial is not None:
|
|
||||||
# look for Panda
|
|
||||||
panda_list = Panda.list()
|
|
||||||
if len(panda_list) == 0:
|
|
||||||
raise Exception("panda not found, make sure it's connected and your user can access it")
|
|
||||||
elif len(panda_list) > 1:
|
|
||||||
raise Exception("Please only connect one panda")
|
|
||||||
st_serial = panda_list[0]
|
|
||||||
print("Using panda with serial %s" % st_serial)
|
|
||||||
|
|
||||||
if path is None:
|
|
||||||
print("Fetching latest firmware from github.com/commaai/panda-artifacts")
|
|
||||||
r = requests.get("https://raw.githubusercontent.com/commaai/panda-artifacts/master/latest.json")
|
|
||||||
url = json.loads(r.text)['url']
|
|
||||||
r = requests.get(url)
|
|
||||||
print("Fetching firmware from %s" % url)
|
|
||||||
path = io.BytesIO(r.content)
|
|
||||||
|
|
||||||
zf = ZipFile(path)
|
|
||||||
zf.printdir()
|
|
||||||
|
|
||||||
version = zf.read("version").decode().strip()
|
|
||||||
status("0. Preparing to flash " + str(version))
|
|
||||||
|
|
||||||
code_bootstub = zf.read("bootstub.panda.bin")
|
|
||||||
code_panda = zf.read("panda.bin")
|
|
||||||
|
|
||||||
# enter DFU mode
|
|
||||||
status("1. Entering DFU mode")
|
|
||||||
panda = Panda(st_serial)
|
|
||||||
panda.reset(enter_bootstub=True)
|
|
||||||
panda.reset(enter_bootloader=True)
|
|
||||||
time.sleep(1)
|
|
||||||
|
|
||||||
# program bootstub
|
|
||||||
status("2. Programming bootstub")
|
|
||||||
dfu = PandaDFU(PandaDFU.st_serial_to_dfu_serial(st_serial))
|
|
||||||
dfu.program_bootstub(code_bootstub)
|
|
||||||
time.sleep(1)
|
|
||||||
|
|
||||||
# flash main code
|
|
||||||
status("3. Flashing main code")
|
|
||||||
panda = Panda(st_serial)
|
|
||||||
panda.flash(code=code_panda)
|
|
||||||
panda.close()
|
|
||||||
|
|
||||||
# check for connection
|
|
||||||
status("4. Verifying version")
|
|
||||||
panda = Panda(st_serial)
|
|
||||||
my_version = panda.get_version()
|
|
||||||
print("dongle id: %s" % panda.get_serial()[0])
|
|
||||||
print(my_version, "should be", version)
|
|
||||||
assert(str(version) == str(my_version))
|
|
||||||
|
|
||||||
# done!
|
|
||||||
status("6. Success!")
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
flash_release(*sys.argv[1:])
|
|
||||||
@@ -0,0 +1,105 @@
|
|||||||
|
import math
|
||||||
|
import struct
|
||||||
|
import spidev
|
||||||
|
import logging
|
||||||
|
from functools import reduce
|
||||||
|
from typing import List
|
||||||
|
|
||||||
|
# Constants
|
||||||
|
SYNC = 0x5A
|
||||||
|
HACK = 0x79
|
||||||
|
DACK = 0x85
|
||||||
|
NACK = 0x1F
|
||||||
|
CHECKSUM_START = 0xAB
|
||||||
|
|
||||||
|
MAX_RETRY_COUNT = 5
|
||||||
|
|
||||||
|
USB_MAX_SIZE = 0x40
|
||||||
|
|
||||||
|
# This mimics the handle given by libusb1 for easy interoperability
|
||||||
|
class SpiHandle:
|
||||||
|
def __init__(self):
|
||||||
|
self.spi = spidev.SpiDev() # pylint: disable=c-extension-no-member
|
||||||
|
self.spi.open(0, 0)
|
||||||
|
|
||||||
|
self.spi.max_speed_hz = 30000000
|
||||||
|
|
||||||
|
# helpers
|
||||||
|
def _calc_checksum(self, data: List[int]) -> int:
|
||||||
|
cksum = CHECKSUM_START
|
||||||
|
for b in data:
|
||||||
|
cksum ^= b
|
||||||
|
return cksum
|
||||||
|
|
||||||
|
def _transfer(self, endpoint: int, data, max_rx_len: int = 1000) -> bytes:
|
||||||
|
logging.debug("starting transfer: endpoint=%d, max_rx_len=%d", endpoint, max_rx_len)
|
||||||
|
logging.debug("==============================================")
|
||||||
|
|
||||||
|
for n in range(MAX_RETRY_COUNT):
|
||||||
|
logging.debug("\ntry #%d", n+1)
|
||||||
|
try:
|
||||||
|
logging.debug("- send header")
|
||||||
|
packet = struct.pack("<BBHH", SYNC, endpoint, len(data), max_rx_len)
|
||||||
|
packet += bytes([reduce(lambda x, y: x^y, packet) ^ CHECKSUM_START])
|
||||||
|
self.spi.xfer2(packet)
|
||||||
|
|
||||||
|
logging.debug("- waiting for ACK")
|
||||||
|
# TODO: add timeout?
|
||||||
|
dat = b"\x00"
|
||||||
|
while dat[0] not in [HACK, NACK]:
|
||||||
|
dat = self.spi.xfer2(b"\x12")
|
||||||
|
|
||||||
|
if dat[0] == NACK:
|
||||||
|
raise Exception("Got NACK response for header")
|
||||||
|
|
||||||
|
# send data
|
||||||
|
logging.debug("- sending data")
|
||||||
|
packet = bytes([*data, self._calc_checksum(data)])
|
||||||
|
self.spi.xfer2(packet)
|
||||||
|
|
||||||
|
logging.debug("- waiting for ACK")
|
||||||
|
dat = b"\x00"
|
||||||
|
while dat[0] not in [DACK, NACK]:
|
||||||
|
dat = self.spi.xfer2(b"\xab")
|
||||||
|
|
||||||
|
if dat[0] == NACK:
|
||||||
|
raise Exception("Got NACK response for data")
|
||||||
|
|
||||||
|
# get response length, then response
|
||||||
|
response_len_bytes = bytes(self.spi.xfer2(b"\x00" * 2))
|
||||||
|
response_len = struct.unpack("<H", response_len_bytes)[0]
|
||||||
|
|
||||||
|
logging.debug("- receiving response")
|
||||||
|
dat = bytes(self.spi.xfer2(b"\x00" * (response_len + 1)))
|
||||||
|
if self._calc_checksum([DACK, *response_len_bytes, *dat]) != 0:
|
||||||
|
raise Exception("SPI got bad checksum")
|
||||||
|
|
||||||
|
return dat[:-1]
|
||||||
|
except Exception:
|
||||||
|
logging.exception("SPI transfer failed, %d retries left", n)
|
||||||
|
raise Exception(f"SPI transaction failed {MAX_RETRY_COUNT} times")
|
||||||
|
|
||||||
|
# libusb1 functions
|
||||||
|
def close(self):
|
||||||
|
self.spi.close()
|
||||||
|
|
||||||
|
def controlWrite(self, request_type: int, request: int, value: int, index: int, data, timeout: int = 0):
|
||||||
|
return self._transfer(0, struct.pack("<BHHH", request, value, index, 0))
|
||||||
|
|
||||||
|
def controlRead(self, request_type: int, request: int, value: int, index: int, length: int, timeout: int = 0):
|
||||||
|
return self._transfer(0, struct.pack("<BHHH", request, value, index, length))
|
||||||
|
|
||||||
|
# TODO: implement these properly
|
||||||
|
def bulkWrite(self, endpoint: int, data: List[int], timeout: int = 0) -> int:
|
||||||
|
for x in range(math.ceil(len(data) / USB_MAX_SIZE)):
|
||||||
|
self._transfer(endpoint, data[USB_MAX_SIZE*x:USB_MAX_SIZE*(x+1)])
|
||||||
|
return len(data)
|
||||||
|
|
||||||
|
def bulkRead(self, endpoint: int, length: int, timeout: int = 0) -> bytes:
|
||||||
|
ret: List[int] = []
|
||||||
|
for _ in range(math.ceil(length / USB_MAX_SIZE)):
|
||||||
|
d = self._transfer(endpoint, [], max_rx_len=USB_MAX_SIZE)
|
||||||
|
ret += d
|
||||||
|
if len(d) < USB_MAX_SIZE:
|
||||||
|
break
|
||||||
|
return bytes(ret)
|
||||||
+39
-16
@@ -376,13 +376,31 @@ class CanClient():
|
|||||||
self._recv_buffer()
|
self._recv_buffer()
|
||||||
|
|
||||||
class IsoTpMessage():
|
class IsoTpMessage():
|
||||||
def __init__(self, can_client: CanClient, timeout: float = 1, debug: bool = False, max_len: int = 8):
|
def __init__(self, can_client: CanClient, timeout: float = 1, single_frame_mode: bool = False, separation_time: float = 0,
|
||||||
|
debug: bool = False, max_len: int = 8):
|
||||||
self._can_client = can_client
|
self._can_client = can_client
|
||||||
self.timeout = timeout
|
self.timeout = timeout
|
||||||
|
self.single_frame_mode = single_frame_mode
|
||||||
self.debug = debug
|
self.debug = debug
|
||||||
self.max_len = max_len
|
self.max_len = max_len
|
||||||
|
|
||||||
def send(self, dat: bytes) -> None:
|
# <= 127, separation time in milliseconds
|
||||||
|
# 0xF1 to 0xF9 UF, 100 to 900 microseconds
|
||||||
|
if 1e-4 <= separation_time <= 9e-4:
|
||||||
|
offset = int(round(separation_time, 4) * 1e4) - 1
|
||||||
|
separation_time = 0xF1 + offset
|
||||||
|
elif 0 <= separation_time <= 0.127:
|
||||||
|
separation_time = round(separation_time * 1000)
|
||||||
|
else:
|
||||||
|
raise Exception("Separation time not in range")
|
||||||
|
|
||||||
|
self.flow_control_msg = bytes([
|
||||||
|
0x30, # flow control
|
||||||
|
0x01 if self.single_frame_mode else 0x00, # block size
|
||||||
|
separation_time,
|
||||||
|
]).ljust(self.max_len, b"\x00")
|
||||||
|
|
||||||
|
def send(self, dat: bytes, setup_only: bool = False) -> None:
|
||||||
# throw away any stale data
|
# throw away any stale data
|
||||||
self._can_client.recv(drain=True)
|
self._can_client.recv(drain=True)
|
||||||
|
|
||||||
@@ -396,39 +414,42 @@ class IsoTpMessage():
|
|||||||
self.rx_idx = 0
|
self.rx_idx = 0
|
||||||
self.rx_done = False
|
self.rx_done = False
|
||||||
|
|
||||||
if self.debug:
|
if self.debug and not setup_only:
|
||||||
print(f"ISO-TP: REQUEST - {hex(self._can_client.tx_addr)} 0x{bytes.hex(self.tx_dat)}")
|
print(f"ISO-TP: REQUEST - {hex(self._can_client.tx_addr)} 0x{bytes.hex(self.tx_dat)}")
|
||||||
self._tx_first_frame()
|
self._tx_first_frame(setup_only=setup_only)
|
||||||
|
|
||||||
def _tx_first_frame(self) -> None:
|
def _tx_first_frame(self, setup_only: bool = False) -> None:
|
||||||
if self.tx_len < self.max_len:
|
if self.tx_len < self.max_len:
|
||||||
# single frame (send all bytes)
|
# single frame (send all bytes)
|
||||||
if self.debug:
|
if self.debug and not setup_only:
|
||||||
print(f"ISO-TP: TX - single frame - {hex(self._can_client.tx_addr)}")
|
print(f"ISO-TP: TX - single frame - {hex(self._can_client.tx_addr)}")
|
||||||
msg = (bytes([self.tx_len]) + self.tx_dat).ljust(self.max_len, b"\x00")
|
msg = (bytes([self.tx_len]) + self.tx_dat).ljust(self.max_len, b"\x00")
|
||||||
self.tx_done = True
|
self.tx_done = True
|
||||||
else:
|
else:
|
||||||
# first frame (send first 6 bytes)
|
# first frame (send first 6 bytes)
|
||||||
if self.debug:
|
if self.debug and not setup_only:
|
||||||
print(f"ISO-TP: TX - first frame - {hex(self._can_client.tx_addr)}")
|
print(f"ISO-TP: TX - first frame - {hex(self._can_client.tx_addr)}")
|
||||||
msg = (struct.pack("!H", 0x1000 | self.tx_len) + self.tx_dat[:self.max_len - 2]).ljust(self.max_len - 2, b"\x00")
|
msg = (struct.pack("!H", 0x1000 | self.tx_len) + self.tx_dat[:self.max_len - 2]).ljust(self.max_len - 2, b"\x00")
|
||||||
self._can_client.send([msg])
|
if not setup_only:
|
||||||
|
self._can_client.send([msg])
|
||||||
|
|
||||||
def recv(self, timeout=None) -> Optional[bytes]:
|
def recv(self, timeout=None) -> Tuple[Optional[bytes], bool]:
|
||||||
if timeout is None:
|
if timeout is None:
|
||||||
timeout = self.timeout
|
timeout = self.timeout
|
||||||
|
|
||||||
start_time = time.monotonic()
|
start_time = time.monotonic()
|
||||||
|
updated = False
|
||||||
try:
|
try:
|
||||||
while True:
|
while True:
|
||||||
for msg in self._can_client.recv():
|
for msg in self._can_client.recv():
|
||||||
self._isotp_rx_next(msg)
|
self._isotp_rx_next(msg)
|
||||||
start_time = time.monotonic()
|
start_time = time.monotonic()
|
||||||
|
updated = True
|
||||||
if self.tx_done and self.rx_done:
|
if self.tx_done and self.rx_done:
|
||||||
return self.rx_dat
|
return self.rx_dat, updated
|
||||||
# no timeout indicates non-blocking
|
# no timeout indicates non-blocking
|
||||||
if timeout == 0:
|
if timeout == 0:
|
||||||
return None
|
return None, updated
|
||||||
if time.monotonic() - start_time > timeout:
|
if time.monotonic() - start_time > timeout:
|
||||||
raise MessageTimeoutError("timeout waiting for response")
|
raise MessageTimeoutError("timeout waiting for response")
|
||||||
finally:
|
finally:
|
||||||
@@ -456,9 +477,8 @@ class IsoTpMessage():
|
|||||||
print(f"ISO-TP: RX - first frame - {hex(self._can_client.rx_addr)} idx={self.rx_idx} done={self.rx_done}")
|
print(f"ISO-TP: RX - first frame - {hex(self._can_client.rx_addr)} idx={self.rx_idx} done={self.rx_done}")
|
||||||
if self.debug:
|
if self.debug:
|
||||||
print(f"ISO-TP: TX - flow control continue - {hex(self._can_client.tx_addr)}")
|
print(f"ISO-TP: TX - flow control continue - {hex(self._can_client.tx_addr)}")
|
||||||
# send flow control message (send all bytes)
|
# send flow control message
|
||||||
msg = b"\x30\x00\x00".ljust(self.max_len, b"\x00")
|
self._can_client.send([self.flow_control_msg])
|
||||||
self._can_client.send([msg])
|
|
||||||
return
|
return
|
||||||
|
|
||||||
# consecutive rx frame
|
# consecutive rx frame
|
||||||
@@ -470,6 +490,9 @@ class IsoTpMessage():
|
|||||||
self.rx_dat += rx_data[1:1 + rx_size]
|
self.rx_dat += rx_data[1:1 + rx_size]
|
||||||
if self.rx_len == len(self.rx_dat):
|
if self.rx_len == len(self.rx_dat):
|
||||||
self.rx_done = True
|
self.rx_done = True
|
||||||
|
elif self.single_frame_mode:
|
||||||
|
# notify ECU to send next frame
|
||||||
|
self._can_client.send([self.flow_control_msg])
|
||||||
if self.debug:
|
if self.debug:
|
||||||
print(f"ISO-TP: RX - consecutive frame - {hex(self._can_client.rx_addr)} idx={self.rx_idx} done={self.rx_done}")
|
print(f"ISO-TP: RX - consecutive frame - {hex(self._can_client.rx_addr)} idx={self.rx_idx} done={self.rx_done}")
|
||||||
return
|
return
|
||||||
@@ -548,12 +571,12 @@ class UdsClient():
|
|||||||
req += data
|
req += data
|
||||||
|
|
||||||
# send request, wait for response
|
# send request, wait for response
|
||||||
isotp_msg = IsoTpMessage(self._can_client, self.timeout, self.debug)
|
isotp_msg = IsoTpMessage(self._can_client, timeout=self.timeout, debug=self.debug)
|
||||||
isotp_msg.send(req)
|
isotp_msg.send(req)
|
||||||
response_pending = False
|
response_pending = False
|
||||||
while True:
|
while True:
|
||||||
timeout = self.response_pending_timeout if response_pending else self.timeout
|
timeout = self.response_pending_timeout if response_pending else self.timeout
|
||||||
resp = isotp_msg.recv(timeout)
|
resp, _ = isotp_msg.recv(timeout)
|
||||||
|
|
||||||
if resp is None:
|
if resp is None:
|
||||||
continue
|
continue
|
||||||
|
|||||||
@@ -1,44 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
import os
|
|
||||||
import time
|
|
||||||
|
|
||||||
def ensure_st_up_to_date():
|
|
||||||
from panda import Panda, PandaDFU, BASEDIR
|
|
||||||
|
|
||||||
with open(os.path.join(BASEDIR, "VERSION")) as f:
|
|
||||||
repo_version = f.read()
|
|
||||||
|
|
||||||
repo_version += "-EON" if os.path.isfile('/EON') else "-DEV"
|
|
||||||
|
|
||||||
panda = None
|
|
||||||
panda_dfu = None
|
|
||||||
|
|
||||||
while 1:
|
|
||||||
# break on normal mode Panda
|
|
||||||
panda_list = Panda.list()
|
|
||||||
if len(panda_list) > 0:
|
|
||||||
panda = Panda(panda_list[0])
|
|
||||||
break
|
|
||||||
|
|
||||||
# flash on DFU mode Panda
|
|
||||||
panda_dfu = PandaDFU.list()
|
|
||||||
if len(panda_dfu) > 0:
|
|
||||||
panda_dfu = PandaDFU(panda_dfu[0])
|
|
||||||
panda_dfu.recover()
|
|
||||||
|
|
||||||
print("waiting for board...")
|
|
||||||
time.sleep(1)
|
|
||||||
|
|
||||||
if panda.bootstub or not panda.get_version().startswith(repo_version):
|
|
||||||
panda.flash()
|
|
||||||
|
|
||||||
if panda.bootstub:
|
|
||||||
panda.recover()
|
|
||||||
|
|
||||||
assert(not panda.bootstub)
|
|
||||||
version = str(panda.get_version())
|
|
||||||
print("%s should be %s" % (version, repo_version))
|
|
||||||
assert(version.startswith(repo_version))
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
ensure_st_up_to_date()
|
|
||||||
Binary file not shown.
@@ -3,42 +3,13 @@
|
|||||||
DFU_UTIL="dfu-util"
|
DFU_UTIL="dfu-util"
|
||||||
|
|
||||||
DEFAULT_FW_FN="/data/openpilot/panda/board/obj/panda.bin.signed"
|
DEFAULT_FW_FN="/data/openpilot/panda/board/obj/panda.bin.signed"
|
||||||
DEFAULT_SSPOOF_FW_FN="/data/openpilot/panda/board/obj/panda.bin.sspoof.signed"
|
|
||||||
TESTING_FW_FN="/data/openpilot/panda/board/obj/panda.bin.testing.signed"
|
|
||||||
TESTING_SSPOOF_FW_FN="/data/openpilot/panda/board/obj/panda.bin.testing.sspoof.signed"
|
|
||||||
|
|
||||||
ATL_ENABLED=0
|
|
||||||
ATL=`cat /data/params/d/dp_atl`
|
|
||||||
if [ -f /data/params/d/dp_atl ] && [ $ATL != "0" ]; then
|
|
||||||
ATL_ENABLED=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
SSPOOF_ENABLED=0
|
|
||||||
SSPOOF=`cat /data/params/d/dp_sspoof`
|
|
||||||
if [ -f /data/params/d/dp_sspoof ] && [ $SSPOOF != "0" ]; then
|
|
||||||
SSPOOF_ENABLED=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
FW=$DEFAULT_FW_FN
|
|
||||||
if [ "$ATL_ENABLED" = "1" ] && [ "$SSPOOF_ENABLED" = "1" ] && [ -f $TESTING_SSPOOF_FW_FN ]; then
|
|
||||||
echo "Use testing + sspoof firmware..."
|
|
||||||
FW=$TESTING_SSPOOF_FW_FN
|
|
||||||
elif [ "$ATL_ENABLED" = "1" ] && [ "$SSPOOF_ENABLED" = "0" ] && [ -f $TESTING_FW_FN ]; then
|
|
||||||
echo "Use testing firmware..."
|
|
||||||
FW=$TESTING_FW_FN
|
|
||||||
elif [ "$ATL_ENABLED" = "0" ] && [ "$SSPOOF_ENABLED" = "1" ] && [ -f $DEFAULT_SSPOOF_FW_FN ]; then
|
|
||||||
echo "Use sspoof firmware..."
|
|
||||||
FW=$DEFAULT_SSPOOF_FW_FN
|
|
||||||
else
|
|
||||||
echo "Use stock firmware..."
|
|
||||||
fi
|
|
||||||
|
|
||||||
/data/openpilot/selfdrive/ui/qt/spinner &
|
/data/openpilot/selfdrive/ui/qt/spinner &
|
||||||
pkill -f boardd
|
pkill -f boardd
|
||||||
python -c "from panda import Panda; Panda().reset(enter_bootstub=True); Panda().reset(enter_bootloader=True)" || true
|
python -c "from panda import Panda; Panda().reset(enter_bootstub=True); Panda().reset(enter_bootloader=True)" || true
|
||||||
sleep 1
|
sleep 1
|
||||||
echo "\n\n\nUpdating panda.bin..."
|
echo "\n\n\nUpdating panda.bin..."
|
||||||
$DFU_UTIL -d 0483:df11 -a 0 -s 0x08004000 -D $FW
|
$DFU_UTIL -d 0483:df11 -a 0 -s 0x08004000 -D $DEFAULT_FW_FN
|
||||||
echo "\n\n\nUpdating bootstub.panda.bin..."
|
echo "\n\n\nUpdating bootstub.panda.bin..."
|
||||||
$DFU_UTIL -d 0483:df11 -a 0 -s 0x08000000:leave -D /data/openpilot/panda/board/obj/bootstub.panda.bin
|
$DFU_UTIL -d 0483:df11 -a 0 -s 0x08000000:leave -D /data/openpilot/panda/board/obj/bootstub.panda.bin
|
||||||
sleep 1
|
sleep 1
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 1.6 KiB |
@@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<svg viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M 278.364 122.673 C 282.129 126.545 284.418 132.064 284.5 137.465 L 284.5 200.562 C 284.419 205.963 282.129 211.48 278.364 215.352 C 274.492 219.119 268.972 221.407 263.571 221.488 L 259.262 221.488 L 259.262 238.417 C 259.128 241.171 257.425 244.12 255.107 245.614 C 252.655 246.875 249.249 246.874 246.796 245.613 C 244.48 244.12 242.777 241.171 242.643 238.417 L 242.643 221.488 L 57.357 221.488 L 57.357 238.417 C 57.223 241.171 55.519 244.121 53.203 245.614 C 50.75 246.875 47.344 246.875 44.892 245.614 C 42.575 244.12 40.872 241.171 40.738 238.417 L 40.738 221.488 L 36.427 221.488 C 31.027 221.407 25.508 219.119 21.636 215.352 C 17.871 211.48 15.582 205.961 15.5 200.56 L 15.5 137.463 C 15.581 132.062 17.871 126.545 21.636 122.673 C 25.508 118.906 31.029 116.618 36.429 116.536 L 40.738 116.536 L 40.738 87.024 C 40.426 78.719 43.434 70.271 48.95 64.028 C 54.579 57.887 62.818 53.986 71.131 53.441 L 228.982 53.444 C 237.295 53.989 245.421 57.888 251.05 64.028 C 256.566 70.272 259.574 78.719 259.262 87.024 L 259.262 116.536 L 263.573 116.536 C 268.974 116.618 274.492 118.906 278.364 122.673 Z M 60.911 75.581 C 58.147 78.782 56.932 82.617 57.35 86.825 L 57.357 118.356 C 60.791 119.893 63.643 122.022 66.115 125.423 C 68.512 128.877 69.916 133.256 69.976 137.46 L 69.976 167.014 L 230.024 167.014 L 230.024 137.466 C 230.084 133.262 231.488 128.877 233.884 125.423 C 236.357 122.021 239.208 119.892 242.643 118.356 L 242.643 86.988 C 243.06 82.779 241.852 78.782 239.089 75.581 C 236.438 72.283 232.951 70.432 228.785 70.059 L 71.215 70.059 C 67.049 70.433 63.563 72.283 60.911 75.581 Z M 33.383 203.605 C 34.241 204.572 35.14 204.944 36.431 204.87 L 53.357 204.87 L 53.357 137.465 C 53.432 136.174 53.06 135.278 52.093 134.42 C 51.236 133.454 50.336 133.08 49.046 133.155 L 36.429 133.155 C 35.139 133.08 34.295 133.506 33.382 134.419 C 32.47 135.332 32.044 136.176 32.119 137.466 L 32.119 200.56 C 32.044 201.851 32.416 202.747 33.383 203.605 Z M 69.976 204.87 L 230.024 204.87 L 230.024 183.631 L 69.976 183.631 L 69.976 204.87 Z M 267.881 137.465 C 267.956 136.174 267.584 135.278 266.618 134.419 C 265.758 133.453 264.86 133.08 263.57 133.155 L 250.953 133.155 C 249.663 133.08 248.766 133.452 247.908 134.419 C 246.941 135.277 246.568 136.176 246.643 137.466 L 246.643 204.87 L 263.571 204.87 C 264.862 204.944 265.759 204.572 266.616 203.606 C 267.583 202.748 267.956 201.849 267.881 200.559 L 267.881 137.465 Z" fill="black" style="stroke-width: 4px; vector-effect: non-scaling-stroke; fill-opacity: 0.4;"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.6 KiB |
@@ -0,0 +1,10 @@
|
|||||||
|
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M182.019 181.218C123.429 239.83 67.543 258.769 54.9241 245.243C51.3182 241.636 51.3182 236.226 51.3182 231.717C51.3182 207.37 74.7548 160.481 124.331 114.489C129.74 109.98 129.74 101.864 125.233 96.454C120.725 91.0438 112.612 91.0438 107.204 95.5525C95.4866 106.373 85.5713 117.194 76.5569 128.016C51.3181 89.242 45.9096 61.2866 54.0213 52.2701C63.9367 42.351 100.894 50.4672 144.162 82.9291C157.683 92.8482 171.203 104.57 183.823 117.196C193.738 127.115 203.654 137.936 211.767 148.757C202.754 160.48 192.838 170.399 182.021 181.22L182.019 181.218ZM246.019 54.0753C255.033 63.0928 248.724 91.9498 225.287 128.918C217.174 118.999 209.062 109.982 200.048 100.063C191.034 91.0451 181.119 82.0274 171.204 73.9125C209.064 49.5654 237.006 45.0578 246.019 54.0753ZM264.048 36.04C243.316 15.3002 200.047 24.318 150.471 58.5842C100.894 24.317 56.7244 15.3005 35.9947 36.04C15.2627 56.7799 24.2771 99.1619 59.4313 149.66C38.6993 179.417 26.0793 208.272 26.0793 231.718C26.0793 247.949 32.3888 257.868 36.896 263.278C45.0091 271.394 54.9244 275 67.5433 275C105.403 275 158.583 241.635 200.049 200.157C209.063 191.14 218.077 181.22 225.288 171.301C249.625 209.176 255.034 237.128 246.02 246.144C238.809 253.357 218.076 250.653 193.739 238.028C187.43 235.322 180.218 237.127 176.613 243.438C173.008 249.75 175.712 256.965 182.022 260.571C200.951 270.49 218.979 274.999 232.501 274.999C245.121 274.999 255.036 271.391 263.148 263.277C283.88 242.537 274.866 199.252 240.612 149.657C272.163 105.473 286.583 59.4852 264.05 36.0397L264.048 36.04Z" fill="url(#paint0_radial_1352_397)"/>
|
||||||
|
<path d="M175.414 154.169C175.414 171.6 161.29 185.729 143.866 185.729C126.441 185.729 112.317 171.6 112.317 154.169C112.317 136.738 126.441 122.609 143.866 122.609C161.29 122.609 175.414 136.738 175.414 154.169Z" fill="#E11C1C"/>
|
||||||
|
<defs>
|
||||||
|
<radialGradient id="paint0_radial_1352_397" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(150 150) rotate(90) scale(125)">
|
||||||
|
<stop offset="0.135417" stop-color="#E11C1C"/>
|
||||||
|
<stop offset="1" stop-color="#FF8C22"/>
|
||||||
|
</radialGradient>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.1 KiB |
@@ -0,0 +1,4 @@
|
|||||||
|
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M182.019 181.218C123.429 239.83 67.543 258.769 54.9241 245.243C51.3182 241.636 51.3182 236.226 51.3182 231.717C51.3182 207.37 74.7548 160.481 124.331 114.489C129.74 109.98 129.74 101.864 125.233 96.454C120.725 91.0438 112.612 91.0438 107.204 95.5525C95.4866 106.373 85.5713 117.194 76.5569 128.016C51.3181 89.242 45.9096 61.2866 54.0213 52.2701C63.9367 42.351 100.894 50.4672 144.162 82.9291C157.683 92.8482 171.203 104.57 183.823 117.196C193.738 127.115 203.654 137.936 211.767 148.757C202.754 160.48 192.838 170.399 182.021 181.22L182.019 181.218ZM246.019 54.0753C255.033 63.0928 248.724 91.9498 225.287 128.918C217.174 118.999 209.062 109.982 200.048 100.063C191.034 91.0451 181.119 82.0274 171.204 73.9125C209.064 49.5654 237.006 45.0578 246.019 54.0753ZM264.048 36.04C243.316 15.3002 200.047 24.318 150.471 58.5842C100.894 24.317 56.7244 15.3005 35.9947 36.04C15.2627 56.7799 24.2771 99.1619 59.4313 149.66C38.6993 179.417 26.0793 208.272 26.0793 231.718C26.0793 247.949 32.3888 257.868 36.896 263.278C45.0091 271.394 54.9244 275 67.5433 275C105.403 275 158.583 241.635 200.049 200.157C209.063 191.14 218.077 181.22 225.288 171.301C249.625 209.176 255.034 237.128 246.02 246.144C238.809 253.357 218.076 250.653 193.739 238.028C187.43 235.322 180.218 237.127 176.613 243.438C173.008 249.75 175.712 256.965 182.022 260.571C200.951 270.49 218.979 274.999 232.501 274.999C245.121 274.999 255.036 271.391 263.148 263.277C283.88 242.537 274.866 199.252 240.612 149.657C272.163 105.473 286.583 59.4852 264.05 36.0397L264.048 36.04Z" fill="black" fill-opacity="0.36"/>
|
||||||
|
<path d="M175.414 154.169C175.414 171.6 161.29 185.729 143.866 185.729C126.441 185.729 112.317 171.6 112.317 154.169C112.317 136.738 126.441 122.609 143.866 122.609C161.29 122.609 175.414 136.738 175.414 154.169Z" fill="black" fill-opacity="0.36"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.9 KiB |
@@ -0,0 +1,4 @@
|
|||||||
|
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M182.019 181.218C123.429 239.83 67.543 258.769 54.9241 245.243C51.3182 241.636 51.3182 236.226 51.3182 231.717C51.3182 207.37 74.7548 160.481 124.331 114.489C129.74 109.98 129.74 101.864 125.233 96.454C120.725 91.0438 112.612 91.0438 107.204 95.5525C95.4866 106.373 85.5713 117.194 76.5569 128.016C51.3181 89.242 45.9096 61.2866 54.0213 52.2701C63.9367 42.351 100.894 50.4672 144.162 82.9291C157.683 92.8482 171.203 104.57 183.823 117.196C193.738 127.115 203.654 137.936 211.767 148.757C202.754 160.48 192.838 170.399 182.021 181.22L182.019 181.218ZM246.019 54.0753C255.033 63.0928 248.724 91.9498 225.287 128.918C217.174 118.999 209.062 109.982 200.048 100.063C191.034 91.0451 181.119 82.0274 171.204 73.9125C209.064 49.5654 237.006 45.0578 246.019 54.0753ZM264.048 36.04C243.316 15.3002 200.047 24.318 150.471 58.5842C100.894 24.317 56.7244 15.3005 35.9947 36.04C15.2627 56.7799 24.2771 99.1619 59.4313 149.66C38.6993 179.417 26.0793 208.272 26.0793 231.718C26.0793 247.949 32.3888 257.868 36.896 263.278C45.0091 271.394 54.9244 275 67.5433 275C105.403 275 158.583 241.635 200.049 200.157C209.063 191.14 218.077 181.22 225.288 171.301C249.625 209.176 255.034 237.128 246.02 246.144C238.809 253.357 218.076 250.653 193.739 238.028C187.43 235.322 180.218 237.127 176.613 243.438C173.008 249.75 175.712 256.965 182.022 260.571C200.951 270.49 218.979 274.999 232.501 274.999C245.121 274.999 255.036 271.391 263.148 263.277C283.88 242.537 274.866 199.252 240.612 149.657C272.163 105.473 286.583 59.4852 264.05 36.0397L264.048 36.04Z" fill="white"/>
|
||||||
|
<path d="M175.414 154.169C175.414 171.6 161.29 185.729 143.866 185.729C126.441 185.729 112.317 171.6 112.317 154.169C112.317 136.738 126.441 122.609 143.866 122.609C161.29 122.609 175.414 136.738 175.414 154.169Z" fill="white"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.8 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+134
-89
@@ -1,4 +1,6 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
import base64
|
import base64
|
||||||
import bz2
|
import bz2
|
||||||
import hashlib
|
import hashlib
|
||||||
@@ -14,14 +16,15 @@ import sys
|
|||||||
import tempfile
|
import tempfile
|
||||||
import threading
|
import threading
|
||||||
import time
|
import time
|
||||||
from collections import namedtuple
|
from dataclasses import asdict, dataclass, replace
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from functools import partial
|
from functools import partial
|
||||||
from typing import Any, Dict
|
from queue import Queue
|
||||||
|
from typing import BinaryIO, Callable, Dict, List, Optional, Set, Union, cast
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
from jsonrpc import JSONRPCResponseManager, dispatcher
|
from jsonrpc import JSONRPCResponseManager, dispatcher
|
||||||
from websocket import (ABNF, WebSocketException, WebSocketTimeoutException,
|
from websocket import (ABNF, WebSocket, WebSocketException, WebSocketTimeoutException,
|
||||||
create_connection)
|
create_connection)
|
||||||
|
|
||||||
import cereal.messaging as messaging
|
import cereal.messaging as messaging
|
||||||
@@ -54,19 +57,54 @@ WS_FRAME_SIZE = 4096
|
|||||||
|
|
||||||
NetworkType = log.DeviceState.NetworkType
|
NetworkType = log.DeviceState.NetworkType
|
||||||
|
|
||||||
|
UploadFileDict = Dict[str, Union[str, int, float, bool]]
|
||||||
|
UploadItemDict = Dict[str, Union[str, bool, int, float, Dict[str, str]]]
|
||||||
|
|
||||||
|
UploadFilesToUrlResponse = Dict[str, Union[int, List[UploadItemDict], List[str]]]
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class UploadFile:
|
||||||
|
fn: str
|
||||||
|
url: str
|
||||||
|
headers: Dict[str, str]
|
||||||
|
allow_cellular: bool
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def from_dict(cls, d: Dict) -> UploadFile:
|
||||||
|
return cls(d.get("fn", ""), d.get("url", ""), d.get("headers", {}), d.get("allow_cellular", False))
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class UploadItem:
|
||||||
|
path: str
|
||||||
|
url: str
|
||||||
|
headers: Dict[str, str]
|
||||||
|
created_at: int
|
||||||
|
id: Optional[str]
|
||||||
|
retry_count: int = 0
|
||||||
|
current: bool = False
|
||||||
|
progress: float = 0
|
||||||
|
allow_cellular: bool = False
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def from_dict(cls, d: Dict) -> UploadItem:
|
||||||
|
return cls(d["path"], d["url"], d["headers"], d["created_at"], d["id"], d["retry_count"], d["current"],
|
||||||
|
d["progress"], d["allow_cellular"])
|
||||||
|
|
||||||
|
|
||||||
dispatcher["echo"] = lambda s: s
|
dispatcher["echo"] = lambda s: s
|
||||||
recv_queue: Any = queue.Queue()
|
recv_queue: Queue[str] = queue.Queue()
|
||||||
send_queue: Any = queue.Queue()
|
send_queue: Queue[str] = queue.Queue()
|
||||||
upload_queue: Any = queue.Queue()
|
upload_queue: Queue[UploadItem] = queue.Queue()
|
||||||
low_priority_send_queue: Any = queue.Queue()
|
low_priority_send_queue: Queue[str] = queue.Queue()
|
||||||
log_recv_queue: Any = queue.Queue()
|
log_recv_queue: Queue[str] = queue.Queue()
|
||||||
cancelled_uploads: Any = set()
|
cancelled_uploads: Set[str] = set()
|
||||||
UploadItem = namedtuple('UploadItem', ['path', 'url', 'headers', 'created_at', 'id', 'retry_count', 'current', 'progress', 'allow_cellular'], defaults=(0, False, 0, False))
|
|
||||||
|
|
||||||
cur_upload_items: Dict[int, Any] = {}
|
cur_upload_items: Dict[int, Optional[UploadItem]] = {}
|
||||||
|
|
||||||
|
|
||||||
def strip_bz2_extension(fn):
|
def strip_bz2_extension(fn: str) -> str:
|
||||||
if fn.endswith('.bz2'):
|
if fn.endswith('.bz2'):
|
||||||
return fn[:-4]
|
return fn[:-4]
|
||||||
return fn
|
return fn
|
||||||
@@ -76,29 +114,30 @@ class AbortTransferException(Exception):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class UploadQueueCache():
|
class UploadQueueCache:
|
||||||
params = Params()
|
params = Params()
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def initialize(upload_queue):
|
def initialize(upload_queue: Queue[UploadItem]) -> None:
|
||||||
try:
|
try:
|
||||||
upload_queue_json = UploadQueueCache.params.get("AthenadUploadQueue")
|
upload_queue_json = UploadQueueCache.params.get("AthenadUploadQueue")
|
||||||
if upload_queue_json is not None:
|
if upload_queue_json is not None:
|
||||||
for item in json.loads(upload_queue_json):
|
for item in json.loads(upload_queue_json):
|
||||||
upload_queue.put(UploadItem(**item))
|
upload_queue.put(UploadItem.from_dict(item))
|
||||||
except Exception:
|
except Exception:
|
||||||
cloudlog.exception("athena.UploadQueueCache.initialize.exception")
|
cloudlog.exception("athena.UploadQueueCache.initialize.exception")
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def cache(upload_queue):
|
def cache(upload_queue: Queue[UploadItem]) -> None:
|
||||||
try:
|
try:
|
||||||
items = [i._asdict() for i in upload_queue.queue if i.id not in cancelled_uploads]
|
queue: List[Optional[UploadItem]] = list(upload_queue.queue)
|
||||||
|
items = [asdict(i) for i in queue if i is not None and (i.id not in cancelled_uploads)]
|
||||||
UploadQueueCache.params.put("AthenadUploadQueue", json.dumps(items))
|
UploadQueueCache.params.put("AthenadUploadQueue", json.dumps(items))
|
||||||
except Exception:
|
except Exception:
|
||||||
cloudlog.exception("athena.UploadQueueCache.cache.exception")
|
cloudlog.exception("athena.UploadQueueCache.cache.exception")
|
||||||
|
|
||||||
|
|
||||||
def handle_long_poll(ws):
|
def handle_long_poll(ws: WebSocket) -> None:
|
||||||
end_event = threading.Event()
|
end_event = threading.Event()
|
||||||
|
|
||||||
threads = [
|
threads = [
|
||||||
@@ -126,7 +165,7 @@ def handle_long_poll(ws):
|
|||||||
thread.join()
|
thread.join()
|
||||||
|
|
||||||
|
|
||||||
def jsonrpc_handler(end_event):
|
def jsonrpc_handler(end_event: threading.Event) -> None:
|
||||||
dispatcher["startLocalProxy"] = partial(startLocalProxy, end_event)
|
dispatcher["startLocalProxy"] = partial(startLocalProxy, end_event)
|
||||||
while not end_event.is_set():
|
while not end_event.is_set():
|
||||||
try:
|
try:
|
||||||
@@ -147,11 +186,12 @@ def jsonrpc_handler(end_event):
|
|||||||
|
|
||||||
|
|
||||||
def retry_upload(tid: int, end_event: threading.Event, increase_count: bool = True) -> None:
|
def retry_upload(tid: int, end_event: threading.Event, increase_count: bool = True) -> None:
|
||||||
if cur_upload_items[tid].retry_count < MAX_RETRY_COUNT:
|
item = cur_upload_items[tid]
|
||||||
item = cur_upload_items[tid]
|
if item is not None and item.retry_count < MAX_RETRY_COUNT:
|
||||||
new_retry_count = item.retry_count + 1 if increase_count else item.retry_count
|
new_retry_count = item.retry_count + 1 if increase_count else item.retry_count
|
||||||
|
|
||||||
item = item._replace(
|
item = replace(
|
||||||
|
item,
|
||||||
retry_count=new_retry_count,
|
retry_count=new_retry_count,
|
||||||
progress=0,
|
progress=0,
|
||||||
current=False
|
current=False
|
||||||
@@ -175,44 +215,44 @@ def upload_handler(end_event: threading.Event) -> None:
|
|||||||
cur_upload_items[tid] = None
|
cur_upload_items[tid] = None
|
||||||
|
|
||||||
try:
|
try:
|
||||||
cur_upload_items[tid] = upload_queue.get(timeout=1)._replace(current=True)
|
cur_upload_items[tid] = item = replace(upload_queue.get(timeout=1), current=True)
|
||||||
|
|
||||||
if cur_upload_items[tid].id in cancelled_uploads:
|
if item.id in cancelled_uploads:
|
||||||
cancelled_uploads.remove(cur_upload_items[tid].id)
|
cancelled_uploads.remove(item.id)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# Remove item if too old
|
# Remove item if too old
|
||||||
age = datetime.now() - datetime.fromtimestamp(cur_upload_items[tid].created_at / 1000)
|
age = datetime.now() - datetime.fromtimestamp(item.created_at / 1000)
|
||||||
if age.total_seconds() > MAX_AGE:
|
if age.total_seconds() > MAX_AGE:
|
||||||
cloudlog.event("athena.upload_handler.expired", item=cur_upload_items[tid], error=True)
|
cloudlog.event("athena.upload_handler.expired", item=item, error=True)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# Check if uploading over metered connection is allowed
|
# Check if uploading over metered connection is allowed
|
||||||
sm.update(0)
|
sm.update(0)
|
||||||
metered = sm['deviceState'].networkMetered
|
metered = sm['deviceState'].networkMetered
|
||||||
network_type = sm['deviceState'].networkType.raw
|
network_type = sm['deviceState'].networkType.raw
|
||||||
if metered and (not cur_upload_items[tid].allow_cellular):
|
if metered and (not item.allow_cellular):
|
||||||
retry_upload(tid, end_event, False)
|
retry_upload(tid, end_event, False)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
try:
|
try:
|
||||||
def cb(sz, cur):
|
def cb(sz: int, cur: int) -> None:
|
||||||
# Abort transfer if connection changed to metered after starting upload
|
# Abort transfer if connection changed to metered after starting upload
|
||||||
sm.update(0)
|
sm.update(0)
|
||||||
metered = sm['deviceState'].networkMetered
|
metered = sm['deviceState'].networkMetered
|
||||||
if metered and (not cur_upload_items[tid].allow_cellular):
|
if metered and (not item.allow_cellular):
|
||||||
raise AbortTransferException
|
raise AbortTransferException
|
||||||
|
|
||||||
cur_upload_items[tid] = cur_upload_items[tid]._replace(progress=cur / sz if sz else 1)
|
cur_upload_items[tid] = replace(item, progress=cur / sz if sz else 1)
|
||||||
|
|
||||||
fn = cur_upload_items[tid].path
|
fn = item.path
|
||||||
try:
|
try:
|
||||||
sz = os.path.getsize(fn)
|
sz = os.path.getsize(fn)
|
||||||
except OSError:
|
except OSError:
|
||||||
sz = -1
|
sz = -1
|
||||||
|
|
||||||
cloudlog.event("athena.upload_handler.upload_start", fn=fn, sz=sz, network_type=network_type, metered=metered, retry_count=cur_upload_items[tid].retry_count)
|
cloudlog.event("athena.upload_handler.upload_start", fn=fn, sz=sz, network_type=network_type, metered=metered, retry_count=item.retry_count)
|
||||||
response = _do_upload(cur_upload_items[tid], cb)
|
response = _do_upload(item, cb)
|
||||||
|
|
||||||
if response.status_code not in (200, 201, 401, 403, 412):
|
if response.status_code not in (200, 201, 401, 403, 412):
|
||||||
cloudlog.event("athena.upload_handler.retry", status_code=response.status_code, fn=fn, sz=sz, network_type=network_type, metered=metered)
|
cloudlog.event("athena.upload_handler.retry", status_code=response.status_code, fn=fn, sz=sz, network_type=network_type, metered=metered)
|
||||||
@@ -234,7 +274,7 @@ def upload_handler(end_event: threading.Event) -> None:
|
|||||||
cloudlog.exception("athena.upload_handler.exception")
|
cloudlog.exception("athena.upload_handler.exception")
|
||||||
|
|
||||||
|
|
||||||
def _do_upload(upload_item, callback=None):
|
def _do_upload(upload_item: UploadItem, callback: Optional[Callable] = None) -> requests.Response:
|
||||||
path = upload_item.path
|
path = upload_item.path
|
||||||
compress = False
|
compress = False
|
||||||
|
|
||||||
@@ -244,27 +284,25 @@ def _do_upload(upload_item, callback=None):
|
|||||||
compress = True
|
compress = True
|
||||||
|
|
||||||
with open(path, "rb") as f:
|
with open(path, "rb") as f:
|
||||||
|
data: BinaryIO
|
||||||
if compress:
|
if compress:
|
||||||
cloudlog.event("athena.upload_handler.compress", fn=path, fn_orig=upload_item.path)
|
cloudlog.event("athena.upload_handler.compress", fn=path, fn_orig=upload_item.path)
|
||||||
data = bz2.compress(f.read())
|
compressed = bz2.compress(f.read())
|
||||||
size = len(data)
|
size = len(compressed)
|
||||||
data = io.BytesIO(data)
|
data = io.BytesIO(compressed)
|
||||||
else:
|
else:
|
||||||
size = os.fstat(f.fileno()).st_size
|
size = os.fstat(f.fileno()).st_size
|
||||||
data = f
|
data = f
|
||||||
|
|
||||||
if callback:
|
|
||||||
data = CallbackReader(data, callback, size)
|
|
||||||
|
|
||||||
return requests.put(upload_item.url,
|
return requests.put(upload_item.url,
|
||||||
data=data,
|
data=CallbackReader(data, callback, size) if callback else data,
|
||||||
headers={**upload_item.headers, 'Content-Length': str(size)},
|
headers={**upload_item.headers, 'Content-Length': str(size)},
|
||||||
timeout=30)
|
timeout=30)
|
||||||
|
|
||||||
|
|
||||||
# security: user should be able to request any message from their car
|
# security: user should be able to request any message from their car
|
||||||
@dispatcher.add_method
|
@dispatcher.add_method
|
||||||
def getMessage(service=None, timeout=1000):
|
def getMessage(service: str, timeout: int = 1000) -> Dict:
|
||||||
if service is None or service not in service_list:
|
if service is None or service not in service_list:
|
||||||
raise Exception("invalid service")
|
raise Exception("invalid service")
|
||||||
|
|
||||||
@@ -274,7 +312,8 @@ def getMessage(service=None, timeout=1000):
|
|||||||
if ret is None:
|
if ret is None:
|
||||||
raise TimeoutError
|
raise TimeoutError
|
||||||
|
|
||||||
return ret.to_dict()
|
# this is because capnp._DynamicStructReader doesn't have typing information
|
||||||
|
return cast(Dict, ret.to_dict())
|
||||||
|
|
||||||
|
|
||||||
@dispatcher.add_method
|
@dispatcher.add_method
|
||||||
@@ -288,7 +327,7 @@ def getVersion() -> Dict[str, str]:
|
|||||||
|
|
||||||
|
|
||||||
@dispatcher.add_method
|
@dispatcher.add_method
|
||||||
def setNavDestination(latitude=0, longitude=0, place_name=None, place_details=None):
|
def setNavDestination(latitude: int = 0, longitude: int = 0, place_name: Optional[str] = None, place_details: Optional[str] = None) -> Dict[str, int]:
|
||||||
destination = {
|
destination = {
|
||||||
"latitude": latitude,
|
"latitude": latitude,
|
||||||
"longitude": longitude,
|
"longitude": longitude,
|
||||||
@@ -300,8 +339,8 @@ def setNavDestination(latitude=0, longitude=0, place_name=None, place_details=No
|
|||||||
return {"success": 1}
|
return {"success": 1}
|
||||||
|
|
||||||
|
|
||||||
def scan_dir(path, prefix):
|
def scan_dir(path: str, prefix: str) -> List[str]:
|
||||||
files = list()
|
files = []
|
||||||
# only walk directories that match the prefix
|
# only walk directories that match the prefix
|
||||||
# (glob and friends traverse entire dir tree)
|
# (glob and friends traverse entire dir tree)
|
||||||
with os.scandir(path) as i:
|
with os.scandir(path) as i:
|
||||||
@@ -320,18 +359,18 @@ def scan_dir(path, prefix):
|
|||||||
return files
|
return files
|
||||||
|
|
||||||
@dispatcher.add_method
|
@dispatcher.add_method
|
||||||
def listDataDirectory(prefix=''):
|
def listDataDirectory(prefix='') -> List[str]:
|
||||||
return scan_dir(ROOT, prefix)
|
return scan_dir(ROOT, prefix)
|
||||||
|
|
||||||
|
|
||||||
@dispatcher.add_method
|
@dispatcher.add_method
|
||||||
def reboot():
|
def reboot() -> Dict[str, int]:
|
||||||
sock = messaging.sub_sock("deviceState", timeout=1000)
|
sock = messaging.sub_sock("deviceState", timeout=1000)
|
||||||
ret = messaging.recv_one(sock)
|
ret = messaging.recv_one(sock)
|
||||||
if ret is None or ret.deviceState.started:
|
if ret is None or ret.deviceState.started:
|
||||||
raise Exception("Reboot unavailable")
|
raise Exception("Reboot unavailable")
|
||||||
|
|
||||||
def do_reboot():
|
def do_reboot() -> None:
|
||||||
time.sleep(2)
|
time.sleep(2)
|
||||||
HARDWARE.reboot()
|
HARDWARE.reboot()
|
||||||
|
|
||||||
@@ -341,50 +380,53 @@ def reboot():
|
|||||||
|
|
||||||
|
|
||||||
@dispatcher.add_method
|
@dispatcher.add_method
|
||||||
def uploadFileToUrl(fn, url, headers):
|
def uploadFileToUrl(fn: str, url: str, headers: Dict[str, str]) -> UploadFilesToUrlResponse:
|
||||||
return uploadFilesToUrls([{
|
# this is because mypy doesn't understand that the decorator doesn't change the return type
|
||||||
|
response: UploadFilesToUrlResponse = uploadFilesToUrls([{
|
||||||
"fn": fn,
|
"fn": fn,
|
||||||
"url": url,
|
"url": url,
|
||||||
"headers": headers,
|
"headers": headers,
|
||||||
}])
|
}])
|
||||||
|
return response
|
||||||
|
|
||||||
|
|
||||||
@dispatcher.add_method
|
@dispatcher.add_method
|
||||||
def uploadFilesToUrls(files_data):
|
def uploadFilesToUrls(files_data: List[UploadFileDict]) -> UploadFilesToUrlResponse:
|
||||||
items = []
|
files = map(UploadFile.from_dict, files_data)
|
||||||
failed = []
|
|
||||||
for file in files_data:
|
items: List[UploadItemDict] = []
|
||||||
fn = file.get('fn', '')
|
failed: List[str] = []
|
||||||
if len(fn) == 0 or fn[0] == '/' or '..' in fn or 'url' not in file:
|
for file in files:
|
||||||
failed.append(fn)
|
if len(file.fn) == 0 or file.fn[0] == '/' or '..' in file.fn or len(file.url) == 0:
|
||||||
|
failed.append(file.fn)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
path = os.path.join(ROOT, fn)
|
path = os.path.join(ROOT, file.fn)
|
||||||
if not os.path.exists(path) and not os.path.exists(strip_bz2_extension(path)):
|
if not os.path.exists(path) and not os.path.exists(strip_bz2_extension(path)):
|
||||||
failed.append(fn)
|
failed.append(file.fn)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# Skip item if already in queue
|
# Skip item if already in queue
|
||||||
url = file['url'].split('?')[0]
|
url = file.url.split('?')[0]
|
||||||
if any(url == item['url'].split('?')[0] for item in listUploadQueue()):
|
if any(url == item['url'].split('?')[0] for item in listUploadQueue()):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
item = UploadItem(
|
item = UploadItem(
|
||||||
path=path,
|
path=path,
|
||||||
url=file['url'],
|
url=file.url,
|
||||||
headers=file.get('headers', {}),
|
headers=file.headers,
|
||||||
created_at=int(time.time() * 1000),
|
created_at=int(time.time() * 1000),
|
||||||
id=None,
|
id=None,
|
||||||
allow_cellular=file.get('allow_cellular', False),
|
allow_cellular=file.allow_cellular,
|
||||||
)
|
)
|
||||||
upload_id = hashlib.sha1(str(item).encode()).hexdigest()
|
upload_id = hashlib.sha1(str(item).encode()).hexdigest()
|
||||||
item = item._replace(id=upload_id)
|
item = replace(item, id=upload_id)
|
||||||
upload_queue.put_nowait(item)
|
upload_queue.put_nowait(item)
|
||||||
items.append(item._asdict())
|
items.append(asdict(item))
|
||||||
|
|
||||||
UploadQueueCache.cache(upload_queue)
|
UploadQueueCache.cache(upload_queue)
|
||||||
|
|
||||||
resp = {"enqueued": len(items), "items": items}
|
resp: UploadFilesToUrlResponse = {"enqueued": len(items), "items": items}
|
||||||
if failed:
|
if failed:
|
||||||
resp["failed"] = failed
|
resp["failed"] = failed
|
||||||
|
|
||||||
@@ -392,32 +434,32 @@ def uploadFilesToUrls(files_data):
|
|||||||
|
|
||||||
|
|
||||||
@dispatcher.add_method
|
@dispatcher.add_method
|
||||||
def listUploadQueue():
|
def listUploadQueue() -> List[UploadItemDict]:
|
||||||
items = list(upload_queue.queue) + list(cur_upload_items.values())
|
items = list(upload_queue.queue) + list(cur_upload_items.values())
|
||||||
return [i._asdict() for i in items if (i is not None) and (i.id not in cancelled_uploads)]
|
return [asdict(i) for i in items if (i is not None) and (i.id not in cancelled_uploads)]
|
||||||
|
|
||||||
|
|
||||||
@dispatcher.add_method
|
@dispatcher.add_method
|
||||||
def cancelUpload(upload_id):
|
def cancelUpload(upload_id: Union[str, List[str]]) -> Dict[str, Union[int, str]]:
|
||||||
if not isinstance(upload_id, list):
|
if not isinstance(upload_id, list):
|
||||||
upload_id = [upload_id]
|
upload_id = [upload_id]
|
||||||
|
|
||||||
uploading_ids = {item.id for item in list(upload_queue.queue)}
|
uploading_ids = {item.id for item in list(upload_queue.queue)}
|
||||||
cancelled_ids = uploading_ids.intersection(upload_id)
|
cancelled_ids = uploading_ids.intersection(upload_id)
|
||||||
if len(cancelled_ids) == 0:
|
if len(cancelled_ids) == 0:
|
||||||
return 404
|
return {"success": 0, "error": "not found"}
|
||||||
|
|
||||||
cancelled_uploads.update(cancelled_ids)
|
cancelled_uploads.update(cancelled_ids)
|
||||||
return {"success": 1}
|
return {"success": 1}
|
||||||
|
|
||||||
|
|
||||||
@dispatcher.add_method
|
@dispatcher.add_method
|
||||||
def primeActivated(activated):
|
def primeActivated(activated: bool) -> Dict[str, int]:
|
||||||
return {"success": 1}
|
return {"success": 1}
|
||||||
|
|
||||||
|
|
||||||
@dispatcher.add_method
|
@dispatcher.add_method
|
||||||
def setBandwithLimit(upload_speed_kbps, download_speed_kbps):
|
def setBandwithLimit(upload_speed_kbps: int, download_speed_kbps: int) -> Dict[str, Union[int, str]]:
|
||||||
if not AGNOS:
|
if not AGNOS:
|
||||||
return {"success": 0, "error": "only supported on AGNOS"}
|
return {"success": 0, "error": "only supported on AGNOS"}
|
||||||
|
|
||||||
@@ -428,7 +470,7 @@ def setBandwithLimit(upload_speed_kbps, download_speed_kbps):
|
|||||||
return {"success": 0, "error": "failed to set limit", "stdout": e.stdout, "stderr": e.stderr}
|
return {"success": 0, "error": "failed to set limit", "stdout": e.stdout, "stderr": e.stderr}
|
||||||
|
|
||||||
|
|
||||||
def startLocalProxy(global_end_event, remote_ws_uri, local_port):
|
def startLocalProxy(global_end_event: threading.Event, remote_ws_uri: str, local_port: int) -> Dict[str, int]:
|
||||||
try:
|
try:
|
||||||
if local_port not in LOCAL_PORT_WHITELIST:
|
if local_port not in LOCAL_PORT_WHITELIST:
|
||||||
raise Exception("Requested local port not whitelisted")
|
raise Exception("Requested local port not whitelisted")
|
||||||
@@ -462,7 +504,7 @@ def startLocalProxy(global_end_event, remote_ws_uri, local_port):
|
|||||||
|
|
||||||
|
|
||||||
@dispatcher.add_method
|
@dispatcher.add_method
|
||||||
def getPublicKey():
|
def getPublicKey() -> Optional[str]:
|
||||||
if not os.path.isfile(PERSIST + '/comma/id_rsa.pub'):
|
if not os.path.isfile(PERSIST + '/comma/id_rsa.pub'):
|
||||||
return None
|
return None
|
||||||
|
|
||||||
@@ -471,7 +513,7 @@ def getPublicKey():
|
|||||||
|
|
||||||
|
|
||||||
@dispatcher.add_method
|
@dispatcher.add_method
|
||||||
def getSshAuthorizedKeys():
|
def getSshAuthorizedKeys() -> str:
|
||||||
return Params().get("GithubSshKeys", encoding='utf8') or ''
|
return Params().get("GithubSshKeys", encoding='utf8') or ''
|
||||||
|
|
||||||
|
|
||||||
@@ -486,7 +528,7 @@ def getNetworkType():
|
|||||||
|
|
||||||
|
|
||||||
@dispatcher.add_method
|
@dispatcher.add_method
|
||||||
def getNetworkMetered():
|
def getNetworkMetered() -> bool:
|
||||||
network_type = HARDWARE.get_network_type()
|
network_type = HARDWARE.get_network_type()
|
||||||
return HARDWARE.get_network_metered(network_type)
|
return HARDWARE.get_network_metered(network_type)
|
||||||
|
|
||||||
@@ -497,7 +539,7 @@ def getNetworks():
|
|||||||
|
|
||||||
|
|
||||||
@dispatcher.add_method
|
@dispatcher.add_method
|
||||||
def takeSnapshot():
|
def takeSnapshot() -> Optional[Union[str, Dict[str, str]]]:
|
||||||
from system.camerad.snapshot.snapshot import jpeg_write, snapshot
|
from system.camerad.snapshot.snapshot import jpeg_write, snapshot
|
||||||
ret = snapshot()
|
ret = snapshot()
|
||||||
if ret is not None:
|
if ret is not None:
|
||||||
@@ -514,16 +556,19 @@ def takeSnapshot():
|
|||||||
raise Exception("not available while camerad is started")
|
raise Exception("not available while camerad is started")
|
||||||
|
|
||||||
|
|
||||||
def get_logs_to_send_sorted():
|
def get_logs_to_send_sorted() -> List[str]:
|
||||||
# TODO: scan once then use inotify to detect file creation/deletion
|
# TODO: scan once then use inotify to detect file creation/deletion
|
||||||
curr_time = int(time.time())
|
curr_time = int(time.time())
|
||||||
logs = []
|
logs = []
|
||||||
for log_entry in os.listdir(SWAGLOG_DIR):
|
for log_entry in os.listdir(SWAGLOG_DIR):
|
||||||
log_path = os.path.join(SWAGLOG_DIR, log_entry)
|
log_path = os.path.join(SWAGLOG_DIR, log_entry)
|
||||||
|
time_sent = 0
|
||||||
try:
|
try:
|
||||||
time_sent = int.from_bytes(getxattr(log_path, LOG_ATTR_NAME), sys.byteorder)
|
value = getxattr(log_path, LOG_ATTR_NAME)
|
||||||
|
if value is not None:
|
||||||
|
time_sent = int.from_bytes(value, sys.byteorder)
|
||||||
except (ValueError, TypeError):
|
except (ValueError, TypeError):
|
||||||
time_sent = 0
|
pass
|
||||||
# assume send failed and we lost the response if sent more than one hour ago
|
# assume send failed and we lost the response if sent more than one hour ago
|
||||||
if not time_sent or curr_time - time_sent > 3600:
|
if not time_sent or curr_time - time_sent > 3600:
|
||||||
logs.append(log_entry)
|
logs.append(log_entry)
|
||||||
@@ -531,7 +576,7 @@ def get_logs_to_send_sorted():
|
|||||||
return sorted(logs)[:-1]
|
return sorted(logs)[:-1]
|
||||||
|
|
||||||
|
|
||||||
def log_handler(end_event):
|
def log_handler(end_event: threading.Event) -> None:
|
||||||
# dont upload any logs for now
|
# dont upload any logs for now
|
||||||
if True:
|
if True:
|
||||||
return
|
return
|
||||||
@@ -594,7 +639,7 @@ def log_handler(end_event):
|
|||||||
cloudlog.exception("athena.log_handler.exception")
|
cloudlog.exception("athena.log_handler.exception")
|
||||||
|
|
||||||
|
|
||||||
def stat_handler(end_event):
|
def stat_handler(end_event: threading.Event) -> None:
|
||||||
while not end_event.is_set():
|
while not end_event.is_set():
|
||||||
last_scan = 0
|
last_scan = 0
|
||||||
curr_scan = sec_since_boot()
|
curr_scan = sec_since_boot()
|
||||||
@@ -620,7 +665,7 @@ def stat_handler(end_event):
|
|||||||
time.sleep(0.1)
|
time.sleep(0.1)
|
||||||
|
|
||||||
|
|
||||||
def ws_proxy_recv(ws, local_sock, ssock, end_event, global_end_event):
|
def ws_proxy_recv(ws: WebSocket, local_sock: socket.socket, ssock: socket.socket, end_event: threading.Event, global_end_event: threading.Event) -> None:
|
||||||
while not (end_event.is_set() or global_end_event.is_set()):
|
while not (end_event.is_set() or global_end_event.is_set()):
|
||||||
try:
|
try:
|
||||||
data = ws.recv()
|
data = ws.recv()
|
||||||
@@ -639,7 +684,7 @@ def ws_proxy_recv(ws, local_sock, ssock, end_event, global_end_event):
|
|||||||
end_event.set()
|
end_event.set()
|
||||||
|
|
||||||
|
|
||||||
def ws_proxy_send(ws, local_sock, signal_sock, end_event):
|
def ws_proxy_send(ws: WebSocket, local_sock: socket.socket, signal_sock: socket.socket, end_event: threading.Event) -> None:
|
||||||
while not end_event.is_set():
|
while not end_event.is_set():
|
||||||
try:
|
try:
|
||||||
r, _, _ = select.select((local_sock, signal_sock), (), ())
|
r, _, _ = select.select((local_sock, signal_sock), (), ())
|
||||||
@@ -664,7 +709,7 @@ def ws_proxy_send(ws, local_sock, signal_sock, end_event):
|
|||||||
cloudlog.debug("athena.ws_proxy_send done closing sockets")
|
cloudlog.debug("athena.ws_proxy_send done closing sockets")
|
||||||
|
|
||||||
|
|
||||||
def ws_recv(ws, end_event):
|
def ws_recv(ws: WebSocket, end_event: threading.Event) -> None:
|
||||||
last_ping = int(sec_since_boot() * 1e9)
|
last_ping = int(sec_since_boot() * 1e9)
|
||||||
while not end_event.is_set():
|
while not end_event.is_set():
|
||||||
try:
|
try:
|
||||||
@@ -686,7 +731,7 @@ def ws_recv(ws, end_event):
|
|||||||
end_event.set()
|
end_event.set()
|
||||||
|
|
||||||
|
|
||||||
def ws_send(ws, end_event):
|
def ws_send(ws: WebSocket, end_event: threading.Event) -> None:
|
||||||
while not end_event.is_set():
|
while not end_event.is_set():
|
||||||
try:
|
try:
|
||||||
try:
|
try:
|
||||||
@@ -705,7 +750,7 @@ def ws_send(ws, end_event):
|
|||||||
end_event.set()
|
end_event.set()
|
||||||
|
|
||||||
|
|
||||||
def backoff(retries):
|
def backoff(retries: int) -> int:
|
||||||
return random.randrange(0, min(128, int(2 ** retries)))
|
return random.randrange(0, min(128, int(2 ** retries)))
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@@ -1,4 +1,4 @@
|
|||||||
/* Generated by Cython 0.29.26 */
|
/* Generated by Cython 0.29.24 */
|
||||||
|
|
||||||
/* BEGIN: Cython Metadata
|
/* BEGIN: Cython Metadata
|
||||||
{
|
{
|
||||||
@@ -23,8 +23,8 @@ END: Cython Metadata */
|
|||||||
#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
|
#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
|
||||||
#error Cython requires Python 2.6+ or Python 3.3+.
|
#error Cython requires Python 2.6+ or Python 3.3+.
|
||||||
#else
|
#else
|
||||||
#define CYTHON_ABI "0_29_26"
|
#define CYTHON_ABI "0_29_24"
|
||||||
#define CYTHON_HEX_VERSION 0x001D1AF0
|
#define CYTHON_HEX_VERSION 0x001D18F0
|
||||||
#define CYTHON_FUTURE_DIVISION 1
|
#define CYTHON_FUTURE_DIVISION 1
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#ifndef offsetof
|
#ifndef offsetof
|
||||||
@@ -171,7 +171,7 @@ END: Cython Metadata */
|
|||||||
#ifndef CYTHON_USE_UNICODE_INTERNALS
|
#ifndef CYTHON_USE_UNICODE_INTERNALS
|
||||||
#define CYTHON_USE_UNICODE_INTERNALS 1
|
#define CYTHON_USE_UNICODE_INTERNALS 1
|
||||||
#endif
|
#endif
|
||||||
#if PY_VERSION_HEX < 0x030300F0 || PY_VERSION_HEX >= 0x030B00A2
|
#if PY_VERSION_HEX < 0x030300F0
|
||||||
#undef CYTHON_USE_UNICODE_WRITER
|
#undef CYTHON_USE_UNICODE_WRITER
|
||||||
#define CYTHON_USE_UNICODE_WRITER 0
|
#define CYTHON_USE_UNICODE_WRITER 0
|
||||||
#elif !defined(CYTHON_USE_UNICODE_WRITER)
|
#elif !defined(CYTHON_USE_UNICODE_WRITER)
|
||||||
@@ -190,7 +190,7 @@ END: Cython Metadata */
|
|||||||
#define CYTHON_FAST_THREAD_STATE 1
|
#define CYTHON_FAST_THREAD_STATE 1
|
||||||
#endif
|
#endif
|
||||||
#ifndef CYTHON_FAST_PYCALL
|
#ifndef CYTHON_FAST_PYCALL
|
||||||
#define CYTHON_FAST_PYCALL (PY_VERSION_HEX < 0x030B00A1)
|
#define CYTHON_FAST_PYCALL 1
|
||||||
#endif
|
#endif
|
||||||
#ifndef CYTHON_PEP489_MULTI_PHASE_INIT
|
#ifndef CYTHON_PEP489_MULTI_PHASE_INIT
|
||||||
#define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000)
|
#define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000)
|
||||||
@@ -209,9 +209,7 @@ END: Cython Metadata */
|
|||||||
#define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1)
|
#define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1)
|
||||||
#endif
|
#endif
|
||||||
#if CYTHON_USE_PYLONG_INTERNALS
|
#if CYTHON_USE_PYLONG_INTERNALS
|
||||||
#if PY_MAJOR_VERSION < 3
|
#include "longintrepr.h"
|
||||||
#include "longintrepr.h"
|
|
||||||
#endif
|
|
||||||
#undef SHIFT
|
#undef SHIFT
|
||||||
#undef BASE
|
#undef BASE
|
||||||
#undef MASK
|
#undef MASK
|
||||||
@@ -342,68 +340,9 @@ class __Pyx_FakeReference {
|
|||||||
#define __Pyx_DefaultClassType PyClass_Type
|
#define __Pyx_DefaultClassType PyClass_Type
|
||||||
#else
|
#else
|
||||||
#define __Pyx_BUILTIN_MODULE_NAME "builtins"
|
#define __Pyx_BUILTIN_MODULE_NAME "builtins"
|
||||||
#define __Pyx_DefaultClassType PyType_Type
|
#if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2
|
||||||
#if PY_VERSION_HEX >= 0x030B00A1
|
#define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
|
||||||
static CYTHON_INLINE PyCodeObject* __Pyx_PyCode_New(int a, int k, int l, int s, int f,
|
PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
|
||||||
PyObject *code, PyObject *c, PyObject* n, PyObject *v,
|
|
||||||
PyObject *fv, PyObject *cell, PyObject* fn,
|
|
||||||
PyObject *name, int fline, PyObject *lnos) {
|
|
||||||
PyObject *kwds=NULL, *argcount=NULL, *posonlyargcount=NULL, *kwonlyargcount=NULL;
|
|
||||||
PyObject *nlocals=NULL, *stacksize=NULL, *flags=NULL, *replace=NULL, *call_result=NULL, *empty=NULL;
|
|
||||||
const char *fn_cstr=NULL;
|
|
||||||
const char *name_cstr=NULL;
|
|
||||||
PyCodeObject* co=NULL;
|
|
||||||
PyObject *type, *value, *traceback;
|
|
||||||
PyErr_Fetch(&type, &value, &traceback);
|
|
||||||
if (!(kwds=PyDict_New())) goto end;
|
|
||||||
if (!(argcount=PyLong_FromLong(a))) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_argcount", argcount) != 0) goto end;
|
|
||||||
if (!(posonlyargcount=PyLong_FromLong(0))) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_posonlyargcount", posonlyargcount) != 0) goto end;
|
|
||||||
if (!(kwonlyargcount=PyLong_FromLong(k))) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_kwonlyargcount", kwonlyargcount) != 0) goto end;
|
|
||||||
if (!(nlocals=PyLong_FromLong(l))) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_nlocals", nlocals) != 0) goto end;
|
|
||||||
if (!(stacksize=PyLong_FromLong(s))) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_stacksize", stacksize) != 0) goto end;
|
|
||||||
if (!(flags=PyLong_FromLong(f))) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_flags", flags) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_code", code) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_consts", c) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_names", n) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_varnames", v) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_freevars", fv) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_cellvars", cell) != 0) goto end;
|
|
||||||
if (PyDict_SetItemString(kwds, "co_linetable", lnos) != 0) goto end;
|
|
||||||
if (!(fn_cstr=PyUnicode_AsUTF8AndSize(fn, NULL))) goto end;
|
|
||||||
if (!(name_cstr=PyUnicode_AsUTF8AndSize(name, NULL))) goto end;
|
|
||||||
if (!(co = PyCode_NewEmpty(fn_cstr, name_cstr, fline))) goto end;
|
|
||||||
if (!(replace = PyObject_GetAttrString((PyObject*)co, "replace"))) goto cleanup_code_too;
|
|
||||||
if (!(empty = PyTuple_New(0))) goto cleanup_code_too; // unfortunately __pyx_empty_tuple isn't available here
|
|
||||||
if (!(call_result = PyObject_Call(replace, empty, kwds))) goto cleanup_code_too;
|
|
||||||
Py_XDECREF((PyObject*)co);
|
|
||||||
co = (PyCodeObject*)call_result;
|
|
||||||
call_result = NULL;
|
|
||||||
if (0) {
|
|
||||||
cleanup_code_too:
|
|
||||||
Py_XDECREF((PyObject*)co);
|
|
||||||
co = NULL;
|
|
||||||
}
|
|
||||||
end:
|
|
||||||
Py_XDECREF(kwds);
|
|
||||||
Py_XDECREF(argcount);
|
|
||||||
Py_XDECREF(posonlyargcount);
|
|
||||||
Py_XDECREF(kwonlyargcount);
|
|
||||||
Py_XDECREF(nlocals);
|
|
||||||
Py_XDECREF(stacksize);
|
|
||||||
Py_XDECREF(replace);
|
|
||||||
Py_XDECREF(call_result);
|
|
||||||
Py_XDECREF(empty);
|
|
||||||
if (type) {
|
|
||||||
PyErr_Restore(type, value, traceback);
|
|
||||||
}
|
|
||||||
return co;
|
|
||||||
}
|
|
||||||
#else
|
#else
|
||||||
#define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
|
#define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
|
||||||
PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
|
PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
|
||||||
@@ -641,10 +580,10 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
|
|||||||
#if PY_VERSION_HEX < 0x030200A4
|
#if PY_VERSION_HEX < 0x030200A4
|
||||||
typedef long Py_hash_t;
|
typedef long Py_hash_t;
|
||||||
#define __Pyx_PyInt_FromHash_t PyInt_FromLong
|
#define __Pyx_PyInt_FromHash_t PyInt_FromLong
|
||||||
#define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsHash_t
|
#define __Pyx_PyInt_AsHash_t PyInt_AsLong
|
||||||
#else
|
#else
|
||||||
#define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
|
#define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
|
||||||
#define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsSsize_t
|
#define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t
|
||||||
#endif
|
#endif
|
||||||
#if PY_MAJOR_VERSION >= 3
|
#if PY_MAJOR_VERSION >= 3
|
||||||
#define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func))
|
#define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func))
|
||||||
@@ -807,7 +746,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x);
|
|||||||
(likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
|
(likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
|
||||||
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
|
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
|
||||||
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
|
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
|
||||||
static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*);
|
|
||||||
#if CYTHON_ASSUME_SAFE_MACROS
|
#if CYTHON_ASSUME_SAFE_MACROS
|
||||||
#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
|
#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
|
||||||
#else
|
#else
|
||||||
@@ -2630,7 +2568,7 @@ static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int
|
|||||||
}
|
}
|
||||||
if (!use_cline) {
|
if (!use_cline) {
|
||||||
c_line = 0;
|
c_line = 0;
|
||||||
(void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False);
|
PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False);
|
||||||
}
|
}
|
||||||
else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
|
else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
|
||||||
c_line = 0;
|
c_line = 0;
|
||||||
@@ -2727,31 +2665,30 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) {
|
|||||||
static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
|
static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
|
||||||
const char *funcname, int c_line,
|
const char *funcname, int c_line,
|
||||||
int py_line, const char *filename) {
|
int py_line, const char *filename) {
|
||||||
PyCodeObject *py_code = NULL;
|
PyCodeObject *py_code = 0;
|
||||||
PyObject *py_funcname = NULL;
|
PyObject *py_srcfile = 0;
|
||||||
|
PyObject *py_funcname = 0;
|
||||||
#if PY_MAJOR_VERSION < 3
|
#if PY_MAJOR_VERSION < 3
|
||||||
PyObject *py_srcfile = NULL;
|
|
||||||
py_srcfile = PyString_FromString(filename);
|
py_srcfile = PyString_FromString(filename);
|
||||||
if (!py_srcfile) goto bad;
|
#else
|
||||||
|
py_srcfile = PyUnicode_FromString(filename);
|
||||||
#endif
|
#endif
|
||||||
|
if (!py_srcfile) goto bad;
|
||||||
if (c_line) {
|
if (c_line) {
|
||||||
#if PY_MAJOR_VERSION < 3
|
#if PY_MAJOR_VERSION < 3
|
||||||
py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
|
py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
|
||||||
if (!py_funcname) goto bad;
|
|
||||||
#else
|
#else
|
||||||
py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
|
py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
|
||||||
if (!py_funcname) goto bad;
|
|
||||||
funcname = PyUnicode_AsUTF8(py_funcname);
|
|
||||||
if (!funcname) goto bad;
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
#if PY_MAJOR_VERSION < 3
|
#if PY_MAJOR_VERSION < 3
|
||||||
py_funcname = PyString_FromString(funcname);
|
py_funcname = PyString_FromString(funcname);
|
||||||
if (!py_funcname) goto bad;
|
#else
|
||||||
|
py_funcname = PyUnicode_FromString(funcname);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#if PY_MAJOR_VERSION < 3
|
if (!py_funcname) goto bad;
|
||||||
py_code = __Pyx_PyCode_New(
|
py_code = __Pyx_PyCode_New(
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
@@ -2770,16 +2707,11 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
|
|||||||
__pyx_empty_bytes /*PyObject *lnotab*/
|
__pyx_empty_bytes /*PyObject *lnotab*/
|
||||||
);
|
);
|
||||||
Py_DECREF(py_srcfile);
|
Py_DECREF(py_srcfile);
|
||||||
#else
|
Py_DECREF(py_funcname);
|
||||||
py_code = PyCode_NewEmpty(filename, funcname, py_line);
|
|
||||||
#endif
|
|
||||||
Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline
|
|
||||||
return py_code;
|
return py_code;
|
||||||
bad:
|
bad:
|
||||||
Py_XDECREF(py_funcname);
|
|
||||||
#if PY_MAJOR_VERSION < 3
|
|
||||||
Py_XDECREF(py_srcfile);
|
Py_XDECREF(py_srcfile);
|
||||||
#endif
|
Py_XDECREF(py_funcname);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
static void __Pyx_AddTraceback(const char *funcname, int c_line,
|
static void __Pyx_AddTraceback(const char *funcname, int c_line,
|
||||||
@@ -3627,23 +3559,6 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
|
|||||||
Py_DECREF(x);
|
Py_DECREF(x);
|
||||||
return ival;
|
return ival;
|
||||||
}
|
}
|
||||||
static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) {
|
|
||||||
if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) {
|
|
||||||
return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o);
|
|
||||||
#if PY_MAJOR_VERSION < 3
|
|
||||||
} else if (likely(PyInt_CheckExact(o))) {
|
|
||||||
return PyInt_AS_LONG(o);
|
|
||||||
#endif
|
|
||||||
} else {
|
|
||||||
Py_ssize_t ival;
|
|
||||||
PyObject *x;
|
|
||||||
x = PyNumber_Index(o);
|
|
||||||
if (!x) return -1;
|
|
||||||
ival = PyInt_AsLong(x);
|
|
||||||
Py_DECREF(x);
|
|
||||||
return ival;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
|
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
|
||||||
return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False);
|
return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False);
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
+29
-34
@@ -1,29 +1,26 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <atomic>
|
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <ctime>
|
#include <ctime>
|
||||||
#include <functional>
|
#include <functional>
|
||||||
#include <list>
|
#include <list>
|
||||||
#include <mutex>
|
#include <memory>
|
||||||
#include <optional>
|
#include <optional>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include <libusb-1.0/libusb.h>
|
|
||||||
|
|
||||||
#include "cereal/gen/cpp/car.capnp.h"
|
#include "cereal/gen/cpp/car.capnp.h"
|
||||||
#include "cereal/gen/cpp/log.capnp.h"
|
#include "cereal/gen/cpp/log.capnp.h"
|
||||||
#include "panda/board/health.h"
|
#include "panda/board/health.h"
|
||||||
|
#include "panda/board/can_definitions.h"
|
||||||
|
#include "selfdrive/boardd/panda_comms.h"
|
||||||
|
|
||||||
#define TIMEOUT 0
|
|
||||||
#define PANDA_BUS_CNT 4
|
|
||||||
#define RECV_SIZE (0x4000U)
|
|
||||||
#define USB_TX_SOFT_LIMIT (0x100U)
|
#define USB_TX_SOFT_LIMIT (0x100U)
|
||||||
#define USBPACKET_MAX_SIZE (0x40)
|
#define USBPACKET_MAX_SIZE (0x40)
|
||||||
#define CANPACKET_HEAD_SIZE 5U
|
|
||||||
#define CANPACKET_MAX_SIZE 72U
|
#define RECV_SIZE (0x4000U)
|
||||||
#define CANPACKET_REJECTED (0xC0U)
|
|
||||||
#define CANPACKET_RETURNED (0x80U)
|
#define CAN_REJECTED_BUS_OFFSET 0xC0U
|
||||||
|
#define CAN_RETURNED_BUS_OFFSET 0x80U
|
||||||
|
|
||||||
struct __attribute__((packed)) can_header {
|
struct __attribute__((packed)) can_header {
|
||||||
uint8_t reserved : 1;
|
uint8_t reserved : 1;
|
||||||
@@ -36,42 +33,31 @@ struct __attribute__((packed)) can_header {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct can_frame {
|
struct can_frame {
|
||||||
long address;
|
long address;
|
||||||
std::string dat;
|
std::string dat;
|
||||||
long busTime;
|
long busTime;
|
||||||
long src;
|
long src;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class Panda {
|
class Panda {
|
||||||
private:
|
private:
|
||||||
libusb_context *ctx = NULL;
|
std::unique_ptr<PandaCommsHandle> handle;
|
||||||
libusb_device_handle *dev_handle = NULL;
|
|
||||||
std::mutex usb_lock;
|
|
||||||
std::vector<uint8_t> recv_buf;
|
|
||||||
void handle_usb_issue(int err, const char func[]);
|
|
||||||
void cleanup();
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Panda(std::string serial="", uint32_t bus_offset=0);
|
Panda(std::string serial="", uint32_t bus_offset=0);
|
||||||
~Panda();
|
|
||||||
|
|
||||||
std::string usb_serial;
|
std::string hw_serial;
|
||||||
std::atomic<bool> connected = true;
|
|
||||||
std::atomic<bool> comms_healthy = true;
|
|
||||||
cereal::PandaState::PandaType hw_type = cereal::PandaState::PandaType::UNKNOWN;
|
cereal::PandaState::PandaType hw_type = cereal::PandaState::PandaType::UNKNOWN;
|
||||||
bool has_rtc = false;
|
bool has_rtc = false;
|
||||||
const uint32_t bus_offset;
|
const uint32_t bus_offset;
|
||||||
bool has_gps = true;
|
|
||||||
|
bool connected();
|
||||||
|
bool comms_healthy();
|
||||||
|
|
||||||
// Static functions
|
// Static functions
|
||||||
static std::vector<std::string> list();
|
static std::vector<std::string> list();
|
||||||
|
|
||||||
// HW communication
|
|
||||||
int usb_write(uint8_t bRequest, uint16_t wValue, uint16_t wIndex, unsigned int timeout=TIMEOUT);
|
|
||||||
int usb_read(uint8_t bRequest, uint16_t wValue, uint16_t wIndex, unsigned char *data, uint16_t wLength, unsigned int timeout=TIMEOUT);
|
|
||||||
int usb_bulk_write(unsigned char endpoint, unsigned char* data, int length, unsigned int timeout=TIMEOUT);
|
|
||||||
int usb_bulk_read(unsigned char endpoint, unsigned char* data, int length, unsigned int timeout=TIMEOUT);
|
|
||||||
|
|
||||||
// Panda functionality
|
// Panda functionality
|
||||||
cereal::PandaState::PandaType get_hw_type();
|
cereal::PandaState::PandaType get_hw_type();
|
||||||
void set_safety_model(cereal::CarParams::SafetyModel safety_model, uint16_t safety_param=0U);
|
void set_safety_model(cereal::CarParams::SafetyModel safety_model, uint16_t safety_param=0U);
|
||||||
@@ -82,6 +68,7 @@ class Panda {
|
|||||||
uint16_t get_fan_speed();
|
uint16_t get_fan_speed();
|
||||||
void set_ir_pwr(uint16_t ir_pwr);
|
void set_ir_pwr(uint16_t ir_pwr);
|
||||||
std::optional<health_t> get_state();
|
std::optional<health_t> get_state();
|
||||||
|
std::optional<can_health_t> get_can_state(uint16_t can_number);
|
||||||
void set_loopback(bool loopback);
|
void set_loopback(bool loopback);
|
||||||
std::optional<std::vector<uint8_t>> get_firmware_version();
|
std::optional<std::vector<uint8_t>> get_firmware_version();
|
||||||
std::optional<std::string> get_serial();
|
std::optional<std::string> get_serial();
|
||||||
@@ -91,8 +78,16 @@ class Panda {
|
|||||||
void send_heartbeat(bool engaged);
|
void send_heartbeat(bool engaged);
|
||||||
void set_can_speed_kbps(uint16_t bus, uint16_t speed);
|
void set_can_speed_kbps(uint16_t bus, uint16_t speed);
|
||||||
void set_data_speed_kbps(uint16_t bus, uint16_t speed);
|
void set_data_speed_kbps(uint16_t bus, uint16_t speed);
|
||||||
|
void set_canfd_non_iso(uint16_t bus, bool non_iso);
|
||||||
void can_send(capnp::List<cereal::CanData>::Reader can_data_list);
|
void can_send(capnp::List<cereal::CanData>::Reader can_data_list);
|
||||||
bool can_receive(std::vector<can_frame>& out_vec);
|
bool can_receive(std::vector<can_frame>& out_vec);
|
||||||
|
// dp
|
||||||
|
void set_pigeon_baud(int baud);
|
||||||
|
bool has_gps = true;
|
||||||
|
// dp - passthru for pigeon
|
||||||
|
int control_write(uint8_t request, uint16_t param1, uint16_t param2);
|
||||||
|
int control_read(uint8_t request, uint16_t param1, uint16_t param2, unsigned char *data, uint16_t length);
|
||||||
|
int bulk_write(unsigned char endpoint, unsigned char* data, int length);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// for unit tests
|
// for unit tests
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user