* 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>
* maybe that wasn't a good idea
* we don't need a copy because you can't clear the func after setting it
* no longer a template - move logic to cpp
* fix tests
* rename to avoid object collision
* 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