* allow logging multiple warnings at once
* comment
* .Code
* Revert ".Code"
This reverts commit 2b986bd500.
* add a better comparison operator instead of conversion
* dot code
* Revert "dot code"
This reverts commit 35f6ae1007.
* force gcc-10 maybe?
* Revert "force gcc-10 maybe?"
This reverts commit 4ddf8bcefd.
* vq
* dot code
* dead
* dot code
* return may be null
* static_vector; maybe cyclic_buffer is broken or wrong tool for the job?
* move static vector
* put cyclic buffer back how it was since we don't use it now
* 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
* clarify getOperationMode
* wait for phase synchronize to transition to sequential mode
* one test
* encapsulate vvtSyncCounter
* test
* Add option to stop VVT sync above some RPM
* getOrZero
* Revert "synchronized Phase handling improvements fix #4099"
This reverts commit 32d46d1f09.
* Revert "m_hasSynchronizedSymmetrical handling improvements #4099"
This reverts commit d5e131b1d0.
* remove synchronizedPhase
* only crank needs this
* changelog
* needsDisambiguation()
* test
* s
* bad merge
* put the timer back
* s
* s
* changelog
* test for new behavior
* correct parameter order
* spelling
* s
* s
* s
* tests merge happy
* bad merge
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
* 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.
engineModules.get<FOO>(). becomes modules<FOO>()->
I believe the new API is more conducive to supporting arrays, by doing std::array<T, N> or
std::array<Mockable<T>, N>, with the support of a helper class.
* Create a base class EngineModule for that contains various useful callbacks.
This cleans up the API by not requiring the notifiers to know about who wants callbacks. The only
place you need to update to add a module is in one place.
* Add mockability.
* Convert InjectorModel to a Mockable EngineModule
* Programmatically remove EnginePtr/inject, EXPAND_Engine, and WITH_ENGINE_TEST_HELPER*
for i in ": public EnginePtr " ", public EnginePtr" "EXPAND_Engine;" "EXPAND_Engine"; do
git grep -l "$i" | xargs sed -i "s/$i//g"
done
git grep -l "inject" | xargs sed -i "/inject[(][)]/d"
for i in WITH_ENGINE_TEST_HELPER_SENS WITH_ENGINE_TEST_HELPER_BOARD_CALLBACK WITH_ENGINE_TEST_HELPER; do
git grep -l "$i" | xargs sed -i "s/$i/EngineTestHelper eth/g"
done
git checkout firmware/controllers/core/engine_ptr.h
git checkout unit_tests/global.h
* Review fixups.
* Start the process of using a global engine ptr for unit tests.
Passing around the engine, config, and persistent state wasn't buying anything. Instead, use
EngineTestHelper(Base) to correctly set and clear the global variables. Add a dummy check in
case some test tries to set them manually.
* Fix OSX build
* Adapt PR to recently added code.
Better than reaching into members that should be private. I didn't feel like actually making
them private though, as one user validates pinStates isn't NULL.
Memory seems more valuable than CPU; use the O(lg n) lookup by angle. A side effect is that it
seems to fix trigger lookup for the second phase of TRIGGERTYPE 53 544 TT_TRI _TACH 0.00
* cancel event
* looks like it works...
* some tests are happy
* add enable bit
* undo test changes
* Revert "add enable bit"
This reverts commit 000afadd3f.
* enable bit in engine
* only turn off for one test
* Revert "undo test changes"
This reverts commit 106db49e29.
* strict mazda trigger shape
* this is an even better gap
* sync point moved so things are different now
* fix
* update instantrpm in test
* s
* s
* this is safer
* test
* tests
* instant rpm
* cleanup
* injector model, test
* new math
* inject fuel based on new math
* tests
* fix
* it should work like this
* format
* update TPS AE even when we're cutting fuel
* comment
* conversion factor
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
* lambda
* default configs, fix build
* config, gauge, UI
* more digits
* change menu text
* fix that while I'm here
* doesn't need extra word
* todo note
* tests
* last test
* missed a config
* update java
* store target lambda
* more java
* format
* hopefully enough java for CI to pass
* correct batch fuel cylinder pairing
* param
* only change behavior on two wire batch
* Add tests for two wire batch & sequential
* improve testing a little bit
* comments
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>