* ban cereal and msgq
* common too
* do toyota/values.py
* do all fingerprints
* example without builder
* this still works, but no type checking anymore
* stash
* wtf, how does this work
* okay actually not bad
* safe
* epic!
* stash data_structures.py
* some clean up
* hell yeah
* clean up old file
* add to delete
* delete
This reverts commit 90239b7797.
* switch more CarParams stuff over
remove unused
* fix car tests by removing cereal! mypy forgets about dataclass if we wrap it :(
* fix this too
* fix this too
* remove more cereal and add some good hyundai tests
* bunch more typing
* override default with 20hz radar
* temp capnp converter helper
* more lateralTuning
* small union replicator is better than what i was trying, and fixes mypy dynamic typing issues
* can keep all this the same now!
* type ret: CarParams, add more missing structs, revert lateralTuning changes (smaller diff!)
* revert more
* get first enum automatically, but ofc mypy doesn't pick up the new metaclass so can't use :(
would have been `CarParams.NetworkLocation()`
* Revert "get first enum automatically, but ofc mypy doesn't pick up the new metaclass so can't use :("
This reverts commit bb28b228be.
* remove cereal from car_helpers (TODO: caching)
* remove a bunch of temp lines
* use dataclass_transform!
* remove some car.CarParams from the interfaces
* remove rest of car.CarParams from the interfaces
* same which() API
* sort
* from cereal/cache from fingerprinting!
* more typing
* dataclass to capnp helper for CarParams, cached it since it's kinda slow
* (partial) fix process replay fingerprintig for new API
* latcontrollers take capnp
* forgot this
* fix test_models
* fix unit tests
* not here
* VehicleModel and controller still takes capnp CP since they get it from Params()
* fix modeld test
* more fix
* need to namespace to structs, since CarState is both class and struct
* this was never in the base class?!
* clean that up again
* fix import error
fix import error
* cmts and more structs
* remove some more cereal from toyota + convert CarState to capnp
* bruh this was wrong
* replace more cereal
* EventName is one of the last things...
* replace a bunch more cereal.car
* missing imports
* more
* can fix this typing now
* proper toyota+others CS typing!
* mypy can detect return type of CS.update() now
* fix redeclaration of cruise_buttons type
* mypy is only complaining about events now
* temp fix
* add carControl struct
* replace CarControl
i hope there's no circular imports in hyundai's CC
* fine now
* lol this was wrong too
* fix crash
* include my failed attempts at recursively converting to dataclass (doesn't implicitly convert types/recursively :( )
but attrs does, maybe will switch in the future
* clean up
* try out attr.s for its converter (doesn't work recursively yet, but interesting!)
* Revert "try out attr.s for its converter (doesn't work recursively yet, but interesting!)"
This reverts commit ff2434f7bb.
* test processes doesn't fail anymore (on toyota)!
* fix honda crash
* stash
* Revert "stash"
This reverts commit c1762af4e7.
* remove a bunch more cereal!
* LET'S GOOO
* fix these tests
* and these
* and that
* stash, something is wrong with hyundai enable
* Revert "stash, something is wrong with hyundai enable"
This reverts commit 39cf327def.
* forgot these
* remove cereal from fw_versions
* Revert "remove cereal from fw_versions"
This reverts commit 232b37cd40.
* remove rest of the cereal exceptions!
* fix that
* add typing to radard since I didn't realize RI.update() switched from cereal to structs
* and here too!
* add TODO for slots
* needed CS to be capnp, fix comparisons, and type hint car_specific so it's easier to catch type issues (capnp isn't detected by mypy :( )
* remove the struct converter
* save ~4-5% CPU at 100hz, we don't modify after so no need to deepcopy
btw pickle.loads(pickle.dumps()) is faster by ~1% CPU
* deepcopy -> copy: we can technically make a reference, but copy is almost free and less error-prone
saves ~1% CPU
* add non-copying asdict function
* should save ~3% CPU (still 4% above baseline)
* fix that, no dict support
* ~27% decrease in time for 20k iterations on 3X (3.37857 -> 2.4821s)
* give a better name
* fix
* dont support none, capitalize
* sheesh, this called type() on every field
* remove CS.events, clean up
* bump card %
* this was a bug on master!
* add a which enum
* default to pid
* revert
* update refs
* not needed, but consistent
* just Ecu
* don't need to do this in this pr
* clean up
* no cast
* consistent typing
* rm
* fix
* can do this if we're desperate for the last few %
* Revert "can do this if we're desperate for the last few %"
This reverts commit 18e11ac788.
* type this
* don't need to convert carControl
* i guess don't support set either
* fix CP type hint
* simplify that
* start
* hmm API doesn't seem great
* better
* rm line
* sendcan -> can_send callable for best static type coverage, list -> tuple msg
TODO: logcan
* more sendcan -> can_send references
* remove pandad's capnp from selfdrive/car
* fix and remove cereal from test_can_fingerprint
* test_fw_fingerprint: remove pandad, less cereal
* comment done too
* better comment
* fix test_models test
* niceeee it works
* move to can_definitions
* can't come up with a better name :(
* I think we can remove SimpleNamespace soon
* fix test_can_fingerprint.py
* maintain previous behavior
* Revert "maintain previous behavior"
This reverts commit f848fd3213.
* can test comment
* no need for get_one_can now!
* big clean up: no SimpleNamespace
* now self explanatory!
* not needed
* use empty can again since this is now real
* cmt
* content of can packet won't affect can fingerprint time
* remove get_one_can
* fix comment
* actually we still want to be able to send empty can (xx fingerprint func does this if it runs out of msgs)
* fix process replay
* ban params too with a callback
* all sorts of messed up
* use cloudlog
* consistent order
* order
* better type hint
* format
* this is a bit nicer
* hmm
* fix PLR1704
* no carvin
* fix process replay
* car logger
* try this
* fix double printing!
* clean up
* need to import where we actually use it (card won't be in submodule)
* NullHandler does not forward everything properly, need propagate=False to stop root logger from printing
* card is staying
* set up
* forward
* add function signature and behavior comment
* add test
* move chassis codes to platform config!
* add a shared chassis code test
* function
* test matching
* this commit isn't complete yet
* Revert "this commit isn't complete yet"
This reverts commit ae77d5cd54.
* need to check WMI
* TODO: test WMI
* test wmi
* radar FW sanity check
* fix test
* fixes from merge
fixes from merge
* whoops
* fix static analysis!
* do match_fw_to_car
match_fw_to_car takes vin
* makes sense to keep it one function, and we can return exact or fuzzy!
* clean up
* kinda pointless
* fix more tests
* back to function being only fuzzy
* revert test_fw_fingerprint
* revert test_fw_fingerprint
* simplify
* clean up/fixes
* rename test
* less duplicatey WMI descriptions
* fix
* convert to enum
* I am confident about these WMIs
* these are also good
* we support 5N AUS/NZ and NAR (North American) AX Tiguans
fixes
* Tiguan also Mexico
* only one user for caddy
* got from the test route
* check that the gateway type matches the platform (each platform has 1 or 2 types)
* ~gateway~ -> exact FW match
* remove re
* ensure WMIs are set
* actually no reason to delete
* move comment up to the platform config
* proper wmis typing
* spacing
* flip
* 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>
* Do Accord
* add comment
* good test
* this catches the accord/accordh issue!
* as expected, only if both radar&camera have in common FW does the test fail
* cmt
* clean up
* better
* Use HondaFlags
* detect alt brake
* for test
* hypothesis isn't installed
* test failure
* works
* Revert " works"
This reverts commit bfc0d808ab.
* Revert "test failure"
This reverts commit 10ab6eb63c.
* Revert "hypothesis isn't installed"
This reverts commit d474cc3f0e.
* Revert "for test"
This reverts commit 98e039f4fc.
* this is important too
* clean up
* more clean up
* Update ref_commit
* timing test
* test
* fix
* print
* loop
* clean up
* wider range
* Update selfdrive/car/tests/test_models.py
* Apply suggestions from code review
* run many times
* Update selfdrive/car/tests/test_models.py
* run for many its
* run with unittest and print as list
* Update .github/workflows/selfdrive_tests.yaml
* Update .github/workflows/selfdrive_tests.yaml
* total time is super inconsistent (body)
* Update selfdrive/car/tests/test_models.py
* clean up
* clean up
* clean up
* this works!
* draft
* test suite not as modular
* try something like this
* can do kb, but not too representative
* clean up
* remove kb? it depends on signals
* clean up
* more clean up
* rename
* just measure all CANParsers
* can do all this manually
* but this is way simpler
* comment
* stash
* draft
* draft
* remove old script
* clean up
* revert
* use it
* remove test
* opt
* no partial
* remove
* revert test_models
* indecisive
* rename to generic FW query
* remove code and update comment
* we need this to start off, unless we set multiplexing immediately
* draft
* draft 2
* try that
* can't do this either, boardd might read Enabled after removing, but before setting new Request param
* this should work
* use one less param
* fix params
* match behavior (set all pandas to safety param of 1, disabling multiplexing for fingerprinting
* clean up (some tests may temp break)
* fix param name and sort
* time it
* yes it does matter
* add to hyundai's bus 5 query
* remove hyundai for now
* this should work
* clean up
* clean up
* flip argument around, clean up
* fix test_startup
* some clean up
* rm line
* comment makes more sense
* required typing
* clean up common type
* comments
* Update selfdrive/car/car_helpers.py
* line
* whoops, need to set before vin!
* fix debug
* annoying
* more debugging
* bug fix (needs both keys always)
* debuGG
debuGG
* Revert "debuGG"
This reverts commit 55b2f42932.
* Revert "more debugging"
This reverts commit 02934c3403.
* Revert "annoying"
This reverts commit 8b4e5e0998.
* clean that up
* bumpback
* bumpback
* every second write param
* flip
* stuff
* move up?
* fix timing out in CI
* rm
* add flag
* actually use in fw_versions.py
* simpler
* not here
* Comment
* better name
* add param and block
* keys
keys
* block
* with a value
with a value
* add query for bosch PT bus
* different name
* fix
* .
* fix test
fix test
* add cloulogs
* mark as logging
* add adas essential ecus
* add adas ecu and query
* add queries
* add name
* after
* presence of adas ecu
* Revert "presence of adas ecu" (POC)
This reverts commit ab88a7e7df.
* no whitelist for debugging
* Apply suggestions from code review
* add adas response
* remove adas version
* temp
* read pandaStates
* works in debug script
* only fwdCamera on tucson
* fix pandaStates reading
* fix test_startup
* fix
* simpler
* use existing socket
* pass in number of pandas
* need to create sm using outcome of fingerprinting, which uses sm
fix
* move default argument
* use sock
* always ignore
always ignore
* add canfd fingerprint test
* Update selfdrive/car/hyundai/tests/test_hyundai.py
* set