* mostly implement
* tests
* tests
* tests
* properly handle single point injection
* fix tests
* fix tests
* scheduler
* format
* fix tests
* extract calculateInjectorOutputMask
* uncomment
* split injection just barely fits!
* provide a constructor so maybe mac is happy?
* don't bother storing the mask at all
* simplify
* make the pad bits predictable
* output channel
* duty cycle etc math for second stage
* action_s utility
* basic enable switch
* staging fraction math
* implement staging logic
* wire up pins for second stage injectors
* staging UI
* Improve staged injection test, check scheduler arguments for other injection tests
* Stage 2 last pulse output channel, correct fuel consumption logic
* wall wet on the whole shot
* int vs size_t
* use a define instead of function so we get line numbers
* fix batch injection
* gauges
* bad test merge
* stub out secondary injector model
* trigger decoder returns a result
* TriggerFormDetails
* s
* don't reach out and touch the engine
* injection doesn't care about teeth
* fix up existing tests
* oh look, we can actually test this logic now without trying to depend on trigger shape!!!
* fix a real bug
* simplify
* ignition controller detects rising edge on voltage
* update test
* comment
* ignore negative transients
* tweak
* test
* priming happens on ignition-on
* priming has its own scheduling
* test
* dead adjacent line of code
* big pch energy
* put back ramdisk stub
* tests are happy
* h743 nucleo
* kinetis
* I love deleting code!
* make stepper happy
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
a) removing more of stack validating - one validation within the deepest method would be enough
b) un-wrapping main callback loop for explicit order of execution