* multispark prototype
* only multispark if not cut
* typo
* do some reasonableish math
* consume cfg
* todo
* bad merge
* move math out of engine2.cpp
* engine state config
* consume generated
* use new
* hand generate
* doc, debugging
* debug channel names
* don't depend on rpmcalc
* safer, fix math
* tests
* default multispark config
* remove todo
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
* add framework, tests
* move oil pressure to new way
* add init logic
* brackets on the same line
* spaces -> tabs
* spaces -> tabs for tests
* bracket on same line
* hook up sensor mocking
* add nan check
* fix nan check
* I wrote an essay
* casing
* only init if we have a sensor to init
* style, actually call init
* format
* fix casing
* typo
* implement linear sensor
* wire up producer
* smarter limiting
* setup comments
* add reporting
* doxyfile
* oops
* add adc subscription
* clarity
* fix logic
* multiply voltage
* test styling
* test guards
* remove dependencies
* linear sensor test
* remove unused
* fix merge
* format, implicit convert op
* explicit
* format tests
* fix merge
* Annotations in C++ code to produce formulas in rusEfi console #807
firmware part of the change
* removing unneeded stuff & fixing unit test compilation
* not complete better unit test compilation fix :(
* better C++ usage
* Add new config settings for idleTimingPidControl & TPSBasedVeTable
* Add dialogs for idleTimingPidControl settings
* Add dialogs for TPSBasedVeTable settings
* Share the code for getTargetRpmForIdleCorrection() and move it from idle_thread.cpp
* Implement TPSBasedVeTable
* Add PID to advance_map.cpp
* Implement idleTimingPidControl
* Make getAdvanceCorrections() visible to unit-tests
* Unit-tests! Yeah!