* h90d safety
* quicker rate
* update comment
* support multi frames?
* stash
* stash
* might work?
* stash
* clean up
* revert that
* add test
* fixup tests
* clean up
* remove test
* try to combine tests
* Revert "try to combine tests"
This reverts commit f147955b94.
* seems simpler
* more explicit
* shouldn't be needed
* no hyundai stuff
* no line
* consecutively
* comment
* comment
* comment
* revert
* comment
* check earlier
check earlier
* ensure we don't set a negative value
* add todo comments
* for loop
* Match openpilot brake check
* comment
* simple
* Update test
* doesn't take an int
* msg varies in size by platform
* 2 extra bytes of zeros on Escalade
* label platforms
* space
* allow sending steering buttons msg to camera
The DBC lists both the IPMA and PCM as receiving modules for the `CcAslButtnCnclPress` and `CcAsllButtnResPress` signals used to cancel/resume ACC.
Sending resume to both buses is confirmed to work by three testers, now it's just down to tweaking openpilot to get high reliability.
* add test for both buses
* only send TJA to bus 2
* it was only checking a specific bit
* same check as openpilot
* reset on init
* unsigned
* should fix conflicts
* common
* comment
* Add missing function
* Tests
* the alternative is a mess
typo
typo
* draft
* finish common
* works but you need RegenSafetyTest before all other classes
* Revert "works but you need RegenSafetyTest before all other classes"
This reverts commit 256f3be9a8.
* This works too
* need parameterized, subtests nor super() calls correctly reset state
* Fix test and comment
* comment
* another fix...
* subclass
* ABC
* order
* fix static analysis
* can do this
* Revert "can do this"
This reverts commit 6bc63a345a.
* this is nicer, no pylint errors
* Update tests/safety/common.py
* underscore
* dynamically detect and add tests
* simpler
* only for safety modes with a regen message
* check attr
* Revert "check attr"
This reverts commit bc37a7eedd.
* need to check at test time not class init time
* toyota steer fault safety
* fix
* alternative safety
* no comment
* should be good
* same behavior, a bit simpler
* better tests
* fix comment
* update safety comment
* const is actual number of messages
* Fix bug
* misra
* Fix test
* clean up logic a bit
clean up logic a bit
fix
* fix
fix
* clean up tests
* unsigned
* forgot to rename message when merged
* Comments
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* Update names
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* rename rest of variables
* real time checks
* clean up safety tests
* revert
* add this
* clean up
* better name
* use common steering checks
* reverse order
* make common
* re-organize the safety
* clean up safety_toyota
* more clean up
* add comment back
* 19
* recover
* some variable name clean up
* rename and reset `valid_steering_msg_count`, another recover message
* move comment
* remove reset_toyota_timer, minor test clean up
* common test
* use init_tests
* threshold used to be: frame you can cut steer on, now it's min num of valid frames (next frame you can cut, 18+1)
* Update tests/safety/test_toyota.py
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* fix realtime
* Update board/safety/safety_toyota.h
* Apply suggestions from code review
* Update board/safety/safety_toyota.h
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* Hyundai: Car Port for Tucson Hybrid 2022
* Remove test comments
* Fix fwd_hook
* Allow tx on 0x1a0
* Fix byte counts
* Send LFA and HDA icons based on engageability
* Add FLAG_HYUNDAI_CANFD_HDA2 flag
* Update __init__.py
* Allow tx with CRUISE_INACTIVE
* Panda safety cleanup
* Include bus 0 in rx checks
* Missed one
* Remove redundant check
* Add comments
* start cleanup
* little more
* more cleanup
* tests
* one more test case
* rename
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* VW PQ: Updated checksum and counter handling
* first pass PQ long control safety
* refactor stock test to prep for long test
* long control tests
* falling edge enable logic and tests
* accidentally worked but this is better
* test misra/cppcheck evaluation of debug build
* Revert "test misra/cppcheck evaluation of debug build"
This reverts commit 7594fc5e2f.
* allow use of manufacturer ramp-up rate
* soften wheel-touch threshold
* fix tests
* check/test ACC main switch state
* fix CRC for Motor_5
* derp
* retry CI
* try that again
* fuuuu
* fix Motor_5 checksum validation
* use existing acc_main_on global
* re-pin opendbc
* no need for resume spam in longitudinal mode
* concise
* consistency cleanup
* comment and whitespace cleanup
* more cleanup
* more
* restore driver torque threshold
* add long control replay route
* obsolete comment
* proper flag name
* wild to mild-ish
* bump openpilot ref
* Update test_safety_replay.py
* handle non existent routes
* comment consistency/polish
* flip comparison order for falling edge clarity
* restore refs
* read the diff next time, speedy
* srsly
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* Allow brake TX on PT bus
* Initial Panda GM cam harness support
* Complete rewrite / simplification
* Add param for cam harness (default is OBD2)
- Forward btw 0 and 2
- Filter LKAS and optionally ACC from cam
* Add param for stock ACC
- Allows ACC on PT bus when set, not otherwise
- Allows ACC from cam when set, not otherwise
* Add temporary WIP EPS timing workaround in ifdef
* Remove keepalive; regen == braking
* Fix MISRA violations
* EPS timing opt-in by param
* Minor clean up
* remove timing code for readability
fix and formatting
* we only need to send one message if cam harness and stock long
* Simplify params
* Removed dup brake msg
* revised params, split 3-ways
* add test
* clean up a bit, no need to send ACC yet
like this
* split out button enable and pcm enable into seperate tests
* some formatting
some formatting
* GM CAM uses PCM cruise for controls_allowed
* fix gas safety tests
* misra
* fix static analysis
comment
* fix brake pressed
* Add OP VOACC override stock cam
* Add VOACC safetyparam to init.py
* Revert "Add VOACC safetyparam to init.py"
This reverts commit 2e46f8746f.
* Revert "Add OP VOACC override stock cam"
This reverts commit a4b096cc1e.
* better comments
* better comments
better comments
fix
* move non-base msg definitions to subclass
* various comments
* TODO: add button safety
* add button safety
* use new pcm_cruise_check
* revert regen braking change
* only cancel button allowed
* Apply suggestions from code review
* Update board/safety/safety_gm.h
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* fix suggestion
* Fix tests
* Revert "Fix tests"
This reverts commit 500577921f.
* this is a much simpler fix, do full fix in another PR
* tx button safety
Co-authored-by: Shane Smiskol <shane@smiskol.com>
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* Hyundai: Car Port for 2022 Kona Electric Camera SCC
* add missing flag
* set camera_scc in other safety modes
* Add safety test
* this will be a stock longitudinal port for now
* common cruise check
make this check common
* Fix comment typo
* Camera SCC HKG send CLU11 on bus 2
* Update CLU11 comment
* fix button test when txing
* just add bus 2 to existing addr checks
* actually no, this will never be on bus 2
* CLU11 is always on bus 0
line
* consistent param ordering
* fix test
fix test
* this is fine
* Mistook SCC for CLU, fix
* try to make this a little more clear
* add comment
* fix that
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* RamInit
* just gas and brake changes
* unsigned
* fix tests
* bump openpilot version (TEMP)
* misra
* system
Co-authored-by: Jonathan <jraycec@gmail.com>
* civic 2022
* remove
* maybe not the right way
* Honda Radarless: add tests
* update
* different bus
* other bus
* Revert "other bus"
This reverts commit 691e045f87.
* add new HUD message
* add
* different bus
* correct freq
* small updates
* comma
* remove
* remove for now
* missing
* not needed
* make into a safety param and clean up
* this can be reverted
* clean up tests (something's broken)
* fix some errors
* this message doesn't exist on any bus
* this car doesn't have BRAKE_MODULE
* make safety more explicit and fix button safety
* fix some tests
* fix tests
formatting
clean up
* radarless uses SCM_FEEDBACK too
* fix tx msgs, clean up, make test common between bosch tests
* misra
* Fix python linting errors
add comment
* not sure where that came from
* add comments
add comments
* we can guarantee honda_bosch_long is true only if not radarless
* these are the same! 🎉
* use updated route with correct tx msgs
* helper pt bus function
* this is explained above
* use function
* no more blocked messages!
* bump openpilot
* comment
* line too long
* needs system
* send on bus 0
* Camera needs bus 2 for buttons
This reverts commit f90db5d359.
* fix button tests
* bump openpilot
* move this down
* make this explicit
* comments
Co-authored-by: vanillagorillaa <ntmccoy@yahoo.com>
Co-authored-by: vanillagorillaa <31773928+vanillagorillaa@users.noreply.github.com>
* rename to torque_cmd_msg
* Move most of the driver torque tests into common.DriverTorqueSteeringSafetyTest
* fix static analysis so far
* HDA2 just works
* TODO: Subaru
* Subaru
* Move Mazda steering constants into class
* rm line
* split into classes
* move test_against_torque_driver into common driver torque tests
* rename to match all other tests
* fix linter
* revert changes
* block lkas
* taco time
* local changes
* start
* tx checks
* counter + vehicle moving
* support big can fd
* check crc
* add torque to rx checks
* tests
* little more
* little more
* get some misra coverage
Co-authored-by: Comma Device <device@comma.ai>
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* check steer_req
* think this is clearer on first glance
* add test
* also test recovery
* Update tests/safety/test_toyota.py
* Update tests/safety/test_toyota.py
* move
* safety for non-longitudinal
* flip around param for easily replaying old logs on new panda
* fix misra: a function parameter should not be modified
* safety
* the toyota tests all share common messages
* fixup tests
* update comment
* same as tesla test
* check if subset
* update comments
update comments
* add safety for hyundai stock long button-only enable
* add full logic, use 4 frames of button samples
* comment above and in openpilot is enough explanation
* make misra happy
* add tests
* add comments and better variable names
* only check button values on rising edge of PCM ACC enable
* common function
* Revert "common function"
This reverts commit 81e642ca98.
* simplify: keep track of last interaction instead
* revert changes to sample_t
* make unsigned
* clip to max and use uint8
* start at 4
* consistent
* apply suggestions
* Update board/safety/safety_hyundai.h
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* unify function
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* add safety for hyundai stock long button-only enable
* add full logic, use 4 frames of button samples
* comment above and in openpilot is enough explanation
* make misra happy
* add tests
* add comments and better variable names
* only check button values on rising edge of PCM ACC enable
* common function
* Revert "common function"
This reverts commit 81e642ca98.
* simplify: keep track of last interaction instead
* revert changes to sample_t
* make unsigned
* clip to max and use uint8
* start at 4
* consistent
* apply suggestions
* Update board/safety/safety_hyundai.h
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* unify function
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* make safety_param unsigned
* final one
* uint32_t
* change flags as well
* Revert "change flags as well"
This reverts commit ed8897dd86.
* unsigned
* update health packet version
update health packet version
* update struct H->I
* bump health version
* actually used
* update panda interceptor gains
* update test threshold
* update threshold
* don't divide second track by 2 (?)
* fix test
* we don't divide by 2 anymore
* better wording
* remove value
* bump PR
* no 1e-5
* test implemented for Toyota
* fix Toyota interceptor
* use hasattr
* do Honda (still need Nidec ACC_HUD safety)
* add longitudinal_allowed to ACC_HUD (Nidec w/ no pedal
* rx not needed
* add base test for longitudinal
* update name
* stash
* do GM
* use gas_pressed_prev
* do tesla safety
* add full tests
* add get_longitudinal_allowed for simpler tests
* remove unnecessary tests and revert honda/hyundai
* fix honda after revert
* make sure releasing gas allows longitudinal again
* clean up
* clean up
* Just check longitudinal allowed
* don't need to reset detection
* use prev and add brake detection
* only on gas
* make sure we don't change current_controls_allowed braking behavior
* clean up tests
* use current_controls_allowed for honda & GM
* this is pretty much tested in common
* fix up tests and move common tests
* revert
* better place
* add for body
* _brake_msg and _gas_msg were confusing
* use class inheritance to define test specific safety variables
* Revert "use class inheritance to define test specific safety variables"
This reverts commit 734efd96f3.
* common function to set up each test
fix honda
* Revert "common function to set up each test"
This reverts commit fe4e71b3c6.
* rename related function
* formatting
* consistent name
* revert this change
* no long actuation if controls not allowed
* comment (bump)
* don't compare floats
* tesla longitudinal test
* clean up
* forgot all
* update constant
* fix
* alternative experiences
* not unsafe
* more renames
more renames
* not yet true
* I think we import from panda now
* update comments and test
* not needed
* bump health pkt version
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* Closer to HYUNDAI
* Change tests too
* Change MAX_RT_DELTA too
* Change test too
* Lower buffer to 20%
Co-authored-by: Harald Schafer <harald.the.engineer@gmail.com>
* setUpClass never did anything
* oh, comments work as pass?
* pass
* Update tests/safety/test_honda.py
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* Honda: enter controls on falling edge of button presses
* update tests
* little nicer with enum
* remove duplicate
* fix that
* reset on init
* add honda prefix
* tesla safety cleanup + long WIP
* more long safety
* longitudinal safety tests
* fix misra
* add safety for main bus DAS_control
* acc_state is not enabled
* fix tests
* we don't want this
* fix Tesla common test
* Update safety_nissan.h
Updated brake CAN address to 0x25e and brake pressed to byte logic
* Update safety_nissan.h
missed a change
* Update safety_nissan.h
* Update safety_nissan.h
* Update safety_nissan.h
Corrected Line 79 to pull from the "CRUISE THROTTLE" message at address 0x239, byte 4, bit 6, which gets us to the "USER_BRAKE_PRESSED" bit for comparison if the brake pedal is being pressed.
* Update safety_nissan.h
Removed duplicate 0x239 message in "AddrCheckStruct"
* Update safety_nissan.h
Just adding back 0x1cc to see if that fixes things?
* leaf safety tests
* clenaup
* bump openpilot
* Update tests/safety/test_nissan.py
Co-authored-by: Kirk Miller <kirk.miller92@gmail.com>
* Change Subaru Global brake_pressed signal to Brake_Status Brake
* Change safety test to use Brake_Status Brake
* Use GET_BYTE for brake_pressed
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* use common tests for cruise and ACC state
* enter controls on rising edge of ACC
* oops
* remove old comment
* another
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* Add support for new Honda Bosch vehicles
- Support extended LKAS_HUD IDs on Honda Bosch
- Support extended ID checksum on incoming frames in safety hook (currently unused).
condense
Cleaner. Don't need to store the value in checksum at the return.
Co-Authored-By: Adeeb Shihadeh <adeebshihadeh@users.noreply.github.com>
* revert checksum change
* use full space
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@users.noreply.github.com>
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* Let refactoring begin!
* Fix pedal build
* Fix pedal safety tests
* Forgot few TIM2 instances
* Try this way with misra
* More misras...
* More misras...
* Still fighting with misra blindfolded
* Almost got it!
* Last misra error..
* Last misra error..
* Misra works locally..
* Maybe this?
* Looks like it was cppcheck bug, revert changes
* Suggested changes and reverts
* File structure change
* revert includes
* remove spaces
* remove timer delay
* endings
* more typing
* rename early to early_initialization
* Remove delay_us
* Revert RTC default values
* Revert initialization sequence
* Fix quotes
* Revert
* Return TIM6EN
* Alias slow timer to TICK_TIMER
* Refactor files structure
* Remove definition of PANDA
* Abstract timers
* Fix include
* tick_timer_init
* Split usb driver
* Move LL stuff: adc
* Move LL stuff: usb
* Fix include again...
* Will check pedal builds also locally..
* Move LL stuff: CAN
* Move LL stuff: clock
* Rename common to peripherals and move
* Move board HAL
* Change include, not needed for pedal
* llgpio to gpio and new lines fix
* remove board_has_relay, not used
* Remove board_functions.h and add to board struct
* Move include
* Fk MISRA...
* has_onboard_gmlan to has_hw_gmlan
* Typos
* Move board_declarations include
* Shuffle
* More abstraction
* fix paths, fix cppcheck test
* Fix for pedal build with USB
* WIP: new tesla safety
* fix misra
* add unit test
* use | instead of +
* other angle sensor
* change brake message
* fix cancel safety violation
* fix bus for cancel message
* add support for autopilot passthrough and fix cancel message
* fix tests
* this check fails
* fix build
* fix build on c2
* cleanup
* add back AP status to the check
* bus 2
* this check is dumb
* try this?
* add route to do replay on
* cleanup
Co-authored-by: Willem Melching <willem.melching@gmail.com>
Co-authored-by: Comma Device <device@comma.ai>
* detect safety param and get gas pressed for PHEVs
* misra guidelines
* else no action
* use explicit safety param
* update for full test coverage
* full hyundai gas press test coverage
* panda's out of date
* update commit?
* need to check out all
* need rednose too
* works without
* override _gas_msg method for each class
* update safety
* is define okay?
* misra
* like this convention better
* convention and fixes
* bump to openpilot master
* simplify
* add to non legacy rx checks
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* fix W391
* E262
* E703
* W293
* some E
* E231
* some more E
* E225
* more E
* E252
* no tabs
* more tabs
* E701
* uds.py
* almost all of them
* only e265 left
* not sure why this is triggering on commented out code
* ignore esptool
* Add pre commit checks
* untested but should work
* fix typo in dockerfile
* add sqlite
* add pylintrc to ignore usb1 members
* Typo in stage name
* Move to requirements
* Mazda: add safety test
Signed-off-by: Jafar Al-Gharaibeh <to.jafar@gmail.com>
* Update mazda safety to capture more events
* gas press
* brake press
* speed - lkas on/off
Signed-off-by: Jafar Al-Gharaibeh <to.jafar@gmail.com>
* Customize safety tests
Signed-off-by: Jafar Al-Gharaibeh <to.jafar@gmail.com>
* Add RX checks
Signed-off-by: Jafar Al-Gharaibeh <to.jafar@gmail.com>
* Format
Signed-off-by: Jafar Al-Gharaibeh <to.jafar@gmail.com>
* Set lkas enable speed at 52 kph
Signed-off-by: Jafar Al-Gharaibeh <to.jafar@gmail.com>
* Test case when speed<enable_lkas_speed
Signed-off-by: Jafar Al-Gharaibeh <to.jafar@gmail.com>
* Be consistent with names in other places
Signed-off-by: Jafar Al-Gharaibeh <to.jafar@gmail.com>
* Add test case for lkas on when speed dips below lkas enable speed
Signed-off-by: Jafar Al-Gharaibeh <to.jafar@gmail.com>
* Make sure lkas disabled
Signed-off-by: Jafar Al-Gharaibeh <to.jafar@gmail.com>
* Use car's speed signal instead of wheel speed
Signed-off-by: Jafar Al-Gharaibeh <to.jafar@gmail.com>
* Allow acc cancel msg
When gas is pressed OP disenages stock cruise doesn't get disengaged.
panda needs to know when OP engages again. OP re-enageges on cruise button
presses. This commit uses the same re-enage logic in panda.
Signed-off-by: Jafar Al-Gharaibeh <to.jafar@gmail.com>
* rebase
Signed-off-by: Jafar Al-Gharaibeh <to.jafar@gmail.com>
* allow acc_cancel in safety tests
Signed-off-by: Jafar Al-Gharaibeh <to.jafar@gmail.com>
* rename variable, fix comment
Signed-off-by: Jafar Al-Gharaibeh <to.jafar@gmail.com>
* nidec
* bosch
* button
* more common
* packer
* more packer
* readability
* tx too
* don't need that
* delete StdTest
* don't need to duplicate this
* only nidec has interceptor
* pull test_volkswagen_mqb.py from safety-test-refactor
* prev_brake is now a standard test
* abstract cruise enable/disable tests
* unused
* move
* hack to get around unittest reporting skipped tests
* bring over toyota + support code from safety-test-refactor
* old tests still use StdTest
* don't duplicate
* test fwd
* make linter happy
* fix indent
* fix ident
* fix order
* whitespace
* move some common tests
* cleanup
* unused
* comment
* Align with VW Community port 0.7.4-devel
* Import of PQ35/PQ46/NMS safety work
* Add safety replay drive for PQ35/PQ46/NMS
* Unwind community port hax for upstream, bump Panda ver
* Update comment
* Reduce whitespace diff
* Reduce whitespace diff
* Don't test the drive until it's uploaded
* Propitiate MISRA
* Ixnay on the VERSION LF
* Remove VERSION LF, update safety_replay with PQ drive
* Freshen cereal ref to include fields used in VW PQ test drive
* Remove superfluous return
* Bypass Docker caching issue
* use rear wheels for speed
* Add leaf gas message
* Add brake press check to safety
* Fix typo in comparison
* threshold on gas and brake pressed and add cruise enabled check
* Fix brake pressed result
* Use same message for cruise enabled detection
* Fix typo
* Fix tests
* Add RX checks
* Allow sending cancel from panda
* Add cancel command to TX messages in tests
* Remove angle limit
* Change speed factor
* Change speed factor in tests
* Remove max angle from tests
* Fix tests
* try cancel using seatbelt
* Try different cancel message
* Fix TX_MSGS in test
* Fix fwd test
* CRC and counter checks, standstill/brake checks
* Clean up a tsk_06 that snuck through
* Be consistent about how we call _msg_esp_05
* Reduce scope: haunted by the ghost of MISRA future
* Improved check/test for in-motion braking
* MISRA styling fix
* Checkpoint Panda refactoring updates
* Rename MQB safety tests in preparation for PQ
* Refactor MQB tests, add missing torque test
* Bring in MQB init without CRC LUT setup
* Fix to ACC_06 test case
* Fix to ACC_06 test case
* Tweak comment for clarity
* Drop superfluous return
* Started whitelisting messages
* Also toyota and cadilalc fix
* bug fixes and better checks. Need to figure out a solution for honda
* Whitelist also for subaru
* Added Chrysler as well to whitelist
* And Hyundai too
* now all supported cars should have a whitelist of messages
* Fix linter
* This should fix process replay
* Honda too is now whitelisted
* struct typedef
* Had forgot GM
* had a wrong addr for GM whitelist
* This should fix all the tests
* bump panda
* relay malfunction handling. WIP
* more cars to relay_malfunctions
* fixed safety tests
* minor change
* Fix linter
* all cars now have a relay_malfunction safety check
* added relay_malfunction safety test for fwd hooks
* added proper regression tests for relay malfunction to all cars
* temp patch to not fail regression in honda bosch
* also addr 0x194 is some nidec honda is steer control
* proper relay check for honda bosch too
* VW button spam: fix safety and add tests
* button spam is actually sent on bus 2
* Fix safety test. Still need to add gas safety test
* added gas safety test to VW and using consistent nomenclature
* style fixes
* Added uno
* Added usb switch support
* Added PWM and IR power functions
* Implemented bootkick
* Added uno as a new hw type
* Bumped version
* Added fan control and tach readout
* WIP: RTC support
* Working RTC
* Fixed python
* Misra compliance
* Added USB control messages for fan/IR power
* Added USB commands + tests for fan & IR control. Fixed bootstub and pedal compilation
* Added IR and fan to power saving mode
* Changed defaults
* Fix safety considering uno
* passing safety now
* Minor UNO tweaks
* Fixed version
* More minor temporary tweaks
* Removed usb load switch from uno
* Added power control for shutting down the fan completely
* Disable IR LEDs by default
* Fixed linter issue
* Linter fix#2
* Added pyflakes and Pylint for python
* Actually run linter in CI
* some simple pyflakes changes
* Add flake8 to panda reqs for linter test
* flake8 errors are fixed
* run flake8 in regression tests
* meant to run flake8
* hack to ignore unused import
* bug
* fix bugs in tucan_loopback
* Another fix by using set_safety_mode
* added pylintrc file
* more fixes and enabled pylint as well
* Fix pylint in circleci
* added linter to readme
* Panda safety code for Volkswagen, Audi, SEAT, and Škoda.
* First pass at MISRA compliance.
* Second pass at MISRA compliance.
* Fix scope of violation boolean.
* MISRA doesn't care for implicit cast of unsigned int to boolean.
* Remove superfluous newline.
* Remove unused VW ignition hook code, preserve commentary.
* Add 50% padding to max delta check.
* Add 50% padding to max delta check.
* Add clarity around the origin of our safety constants.
* Update test RT delta to match safety.