* use CP
* no car control, consistent _update function signatures
* eh it's fine to name it whatever
* clean up
* oops
* !!
* now we can delete this!
* nobody does anymore
* chrysler down
* honda and ford
* we can pass the class for this
* do the rest
* clean that up
* remove EventName
* fix CI
* move smallest bodies to top
* rm todo
* eps_timer_soft_disable_alert is too ingrained in carcontroller
* re-did everything w/ no diff (except just passing cereal instead of class)
* ban all of common & copy numpy_fast
* add numpy_fast
* these are okay
* and ban controls
* better name
* Conversions
* do utils, kalman
* clean up
* sorting
* don't forget
* Simplify long control
* Seperate
* Rename
* Try new api for toyota
* rm v_pid everywhere
* No speed in reset
* 0 is better default
* unassigned variable
* Update other cars
* Update gm
* SIMPLIFY
* simplify more
* fix API boundry
* Fix stopping bug
* Small fixes
* Update ref
* debug: disable FW cache
* Ford: detect missing TJA/LCA config and disable LKAS
* set dashcamOnly
* revert
* clean up
* clean up
* some CAN FD do not have 0x01 block for PSCM
* bump cereal (fork)
* remove confusing comment
* add flags/event
* remove duplicate from events
* copy can be next pr
* dashcamOnly if no config comes back either (this shouldn't happen)
* flipped
* can do this
* Revert "can do this"
This reverts commit c3d311b2ff.
* Revert "flipped"
This reverts commit 75c01fb4c5.
* Revert "dashcamOnly if no config comes back either (this shouldn't happen)"
This reverts commit f82624a0eb.
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* format card
* standalone process
* no class member CS, there's no point
also can be confusing; what else could be using this?
* rename CoS
* Update selfdrive/controls/controlsd.py
* never works first time :D
* canRcvTimeout is bool
* hack
* add cpu
* see what testing closet comes up with
* first
* some clean up
* support passable CI, fix test models
* fix startup alert
* process replay changes
* test_fuzzy
* gate carOutput valid on carControl valid
* we should publish after we update carOutput
* controlsd was using actuatorsOutput from 2 frames ago for torque, not the most up to date
* check all checks for carControl in case controlsd dies
* log more timestamps
* more generic latency logger; needs some clean up
latency_logger.py was difficult to understand and modify
* card polls on can and carControl to get latest carControl possible
* temp try to send earlier
* add log
* remove latencylogger
* no mpld3!
* old loop
* detect first event
* normal send
* revert "card polls on can and carControl to get latest carControl possible"
how it was is best
* sheesh! update should be first
* first timestamp
* temp comment ( timestamp is slow :( )
* more final ordering, and make polling on/off test repeatable
* Received can
* new plot timestamps
* clean up
* no poll
* add controllers (draft)
* Revert "add controllers (draft)"
This reverts commit e2c3f01b2f.
* fix that
* conventions
* just use CS
* consider controlsd state machine in card: not fully done
* hmm it's just becoming controlsd
* rm debugging
* Revert "hmm it's just becoming controlsd"
This reverts commit 534a357ee9.
* Revert "just use CS"
This reverts commit 9fa7406f30.
* add vCruise
* migrate car state
* Revert "migrate car state"
This reverts commit 4ae86ca163.
* Revert "add vCruise"
This reverts commit af247a8da4.
* simple state machine in card (doesn't work as is)
* Revert "simple state machine in card (doesn't work as is)"
This reverts commit b4af8a9b0a.
* poll carState without conflate
* bump
* remove state transition
* fix
* update refs
* ignore cumLagMs and don't ignore valid
* fix controls mismatch; controlsd used to set alt exp
* controlsd_config_callback not needed for card
* revert ref temp
* update refs
* no poll
* not builder!
* test fix
* need to migrate initialized
* CC will be a reader
* more as_reader!
* fix None
* init after publish like before - no real difference
* controlsd clean up
* remove redundant check and check passive for init
* stash
* flip
* migrate missing carOutput for controlsd
* Update ref_commit
* bump cereal
* comment
* no class params
* no class
* Revert "no class"
This reverts commit 5499b83c2d.
* add todo
* regen and update refs
* fix
* update refs
* and fix that
* should be controlsstate
* remove controlsState migration
CoS.initialized isn't needed yet
* fix
* flip!
* bump
* fix that
* update refs
* fix
* if canValid goes false, controlsd would still send
* bump
* rm diff
* need to be very careful with initializing
* update refs
* Ford: use platform codes to fuzzy fingerprint
TODO: write scripts/tests (print platform codes and version ranges etc.)
May close#31052
* get_platform_codes: fix return type
* add print_platform_codes.py script
* print_platform_codes: sort versions
* match_fw_to_car_fuzzy: use set comprehension, and fix typo
* Ford: add missing Mach-E fw
From the route 83a4e056c7072678/2023-11-13--16-51-33 (which is already
in selfdrive/car/tests/routes.py, added in #30691).
* add ford_fuzzy_fingerprint.ipynb notebook
* get_platform_codes: use regex to parse firmware
* test_ford: test_platform_codes_fuzzy_fw
* test_ford: use get_platform_codes in test_fw_versions
* match_fw_to_car_fuzzy: improve comments
* test_ford: add test_platform_codes_spot_check
* test_ford: add test_match_fw_fuzzy
* remove comment from notebook
* TestFordFW: remove engine ECU FW
* update print_platform_codes.py
* remove part number (unecessary)
* platform codes can just use platform hint and model year - software revision not useful
* fuzzy FP on the platform hint and model year hint range
* fix platform codes test
* update notebook
* add notebook
* explain model year hint better
* test part numbers again
* cleanup notebooks
* remove notebook
* cleanup match_fw_to_car_fuzzy and add comments
* update comment
* .
* Revert "remove notebook"
This reverts commit 5d4ca202f2.
* add notebook back
* remove PSCM from PLATFORM_CODE_ECUS
ABS and IPMA are the best for uniquely matching, and the radar is always required
* Revert "remove PSCM from PLATFORM_CODE_ECUS"
This reverts commit b7baeac19c.
* fix from merge
* more fixes
revert
* FW_RE -> FW_PATTERN
* this can actually be set
* conventions
* just add
* convention
* refactor matcher, this brings it more in line with Hyundai. IMPORTANT NOTE:
NOTE THAT WE remove the separation for the different platform code model year hint ranges, I don't see that being a problem
* better/smaller test
* add test to catch overlapping platform codes
* remove nb
* not now
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* Ford: add Ranger 2024 (CAN FD, dashcam only)
* force fingerprint
* debug
* add FW (using debug_fw_fingerprinting_offline)
* add test route
* Revert "debug"
This reverts commit 9d128cb1bb.
* Revert "force fingerprint"
This reverts commit 421d92172f.
* update package and finalise steer ratio
"Adaptive Cruise Control with Lane Centering" is part of the Raptor
Standard Equipment Group (i.e. only on the Raptor trim). However,
looking at As-Built/VIN data for Raptor LARIATs show that although Ford
does not advertise it they do come with Lane Centering (the configurator
only says they have ACC with Stop and Go).
ACC with Stop and Go can also be added to the lower XLT trim as part of
the Technology Package, but it is unclear at this point whether that
includes Lane Centering.
The 2021 Ranger had a 17.0 steer ratio. The As-Built data suggests
17/18. PlotJuggler shows the liveParameters.steerRatio between 16.5-17.5
on two short drives.
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* Ford: handle metric cruise speed (v2)
**Description**
I found a signal which appears to match the IPC "Show km/h" setting.
Requires https://github.com/commaai/opendbc/pull/1010.
**Verification**
- [ ] Test in car and confirm that toggling the "Show km/h" setting does
not result in the cruise speed shown in openpilot being incorrect.
- [ ] Test in a non-English (metric) car.
* not present on Q4
* fix freq
* test
* Revert "test"
This reverts commit 5e3a9f6df1.
* Update ref_commit
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* with brand name
* migrate
* Fix
* fixes
* more
* passes
* fix
* fix the doc
* collects
* these too
* more stuff
* body exception :/
* more
* hardcode i guess
* update ref
* toyota
* more toyota
* and here
* final!
* fix notebooks and ccs
* move this here
* get platform_str from the enum name
* fix tests
* add migration table
* remove impossible todo
* Add link to PR in MIGRATION table
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* Remove useless brand name comments and rename RAM_1500 to RAM_1500_5TH_GEN
* rename RAM_HD to RAM_HD_5TH_GEN
* rename references to RAM_HD and RAM_1500
* change "mock" to "MOCK" and rename torque data of Nissan Leaf 2018 IC
* remove MOCK from fingerprints.py
* change hard-coded car model in test_can_fingerprint.py/test_timing
* migration
* update ref
* space
* prius
---------
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
Co-authored-by: justin newberry <justin@comma.ai>
Co-authored-by: Justin Newberry <jnewberry0502@gmail.com>
* Update fingerprints.py 2022 Ford F-150 PowerBoost (fwdCamera)
* update MY
* also likely works for hybrid
* fix that
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* Ford: show longitudinal personality in IPC
Adjust the time gap to 2, 3 or 4 bars for openpilot long.
TODO: set AccTGap_D_Dsply when value changes so that the popup appears
with the new time gap
Depends on #31760.
* ACC UI: show time gap popup when distance changes
* Revert "ACC UI: show time gap popup when distance changes"
This reverts commit c4e8e10970.
* ACC UI: send on distance bars change
* don't need this check - just send on first frame
Ford: parse ACC gap toggle button
Use the ACC gap toggle button signal from the SCCM. There are two other
signals for "increase" and "decrease" gap buttons, but no supported car
has these buttons.