* replace large buffer instances
* handlePageReadCommand uses locked
* cleanup
* explicitly call big vs. small packet implementation
* correctness
* unused UNUSED
* cleaner TS logging & cleanup
* about time we bumped this
* remove redundant_ford_tps
* meld redundant_ford_tps logic into RedundantSensor
* default tps/ppsSecondaryMaximum is 100
* initTps uses melded RedundantSensor
* meld RedundantSensor unit tests
* RedundantSensor::showInfo prints redundancy status
* RedundantSensor::showInfo prints partial redundancy status
* assert SensorResult code in RedundantSensor tests
* RedundantSensor doesn't hide primary sensor result code
in the case of a single sensor only, don't hide the UnexpectedCode value
* Add Cranking taper duration multiplier based on CLT
* Fixed same merge error in TS config
* Fixed existing unit test for getCrankingTaperFraction, and added a new one to test multiplier table for cranking taper duration.
* Fixed existing header file for unit test getCrankingTaperFraction
* Changed naming
* changed logic
* Forgot to update name here too
* Forgot to update name here too, second time
* 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
* config for duty cycle limiting
* implement timeout duty cycle limiting
* comment
* make overlapping injections actually work!
* missed one
* test
* call addFuelEvents from fast callback
* update comment about why we call it again in main trigger callback
* one more extra call
* undo addFuelEvents change
* cleanup
* minor encapsulation
* fix
* changelog
* dead obd code