* most of the plumbing
* easy tests
* trigger types that are rise only
* configs
* change mode of various triggers
* vvt
* 898 test is now impossible 🥳
* s
* instant rpm test
* actually remove useOnlyRisingEdgeForTrigger
* remove vvtCamSensorUseRise
* s
* print
* one happy test
* another test
* happy testSomethingWeird
* happy testCamInput
* maybe fix it a different way
* better
* quad cam
* nb2 happy
* bad merge
* vvt test
* trigger.test1995FordInline6TriggerDecoder
* hellen gm e67
* changelog
* plumbing parts of 4621
* show error list
* exit on error too!
* this test has some unhealthy undefined behavior
* no uninitialized values
* no that doesn't work
* remove the invalid data and the bug becomes obvious
* remove third trigger
* clean up the honda mess
* there was nothing novel about this engine config
* include
* missed a few
* s
* x
* changelog
* don't set the third trigger input
* don't redefine the same thing 3 times
* only two inputs!
* test
* This field was ignored.
* move pad out
* gone
* make trigger configuration a little clearer
* even simpler!
* format
* test fix
* remove duty cycle thing
* Drop SingleChannelStateSequence in favor of MultiChannelStateSequenceWithData
Most all the users were Multi* anyways, so just improve that:
1. Allow up to 8 waveforms to share one byte per timestamp. It could be better but this is simple
and gets most of the benefit.
2. Use a wrapper structure to handle reserving space for the arrays. Makes the interface simpler
and more rigid. Also saves 4 bytes per Multi*. Downside is access is now via -> and *,
not . and (nothing).
Saves 224 bytes of BSS, 1832 bytes of RAM4/CCM, 952 bytes of TEXT, and 103 bytes of RODATA
* Instantiate a base_t to make debugging easier.
Also fixes crash on real firmware by using &m_base instead - LTO optimization issue?
* No magical templated StaticAlloc thingy. Just virtual functions.