This exposed a buffer overrun, so double the size of the buffer (to account for 720 degree engine
cycle vs 360 degree crank events).
Also use proper numeric limits when computing min/max.
Finally, add a lock around the call to cyclic_buffer that actually caused the contention.
* delimeter is not comma
* do it in config txt
* use txt
* s
* string
* compat
* also, spelling is hard
* use new name
* use new name
* generate enough for happy console
* use an even less common character
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
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
* load script
* test
* needs more rams
* embiggen stack
* init system lua from lua thread
* de-embiggen stack
* infra
* hook
* system needs a little more
* semicolon
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
* 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>
* min oil pressure for crank
* do it time-based
* rename field
* include
* fix existing test
* tests
* fix logic
* more test
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
* remove simple cases
* more simple
* serial
* s
* more
* try memory
* easy
* mmc acc
* that's how much memory
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
* 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>
* move rev limit to limp manager
* call fatal error
* include order
* fix bug
* tests
* comment
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
* refactor
- called from periodicFastCallback
- removed defines
* Update rusefi.input
removed unused configurations.
added clutch inversion option
* Added new tests
fixed limiting only in case we have launch condition and rpm outside of window
* Update launch_control.cpp
Unintialized config update, now it is working fine with VSS and with clutch as well.
* small fixes
updated after review findings
* Fix breaking engine rev limiter
applyLaunchControlLimiting should not overwrite booleans to false!
* Delay timer in seconds
timer uses ms, so convert seconds to ms
* 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
* change acSwitch name, add mode
* fix
* remove some adc stuff
* remove some adc stuff
* semicolon stupid
* left behind
* add readpinstate
* wrong var name
* add functions back
* fix name
* bool, not void, plus fix name
* move
* not sure what I broke
* try setMockValue
* namespace
* whoops missed one
* switch values because adc was set up for pullup
* try 5
* comment for now
* comment for now
* uncomment tests, add function to mock, add mock to efiReadPin
* fixes
* for F's sake
* if
* add defy
* pass params
* use ASSERT_TRUE/FALSE
* advance time
* remove ifdef from readPin
* try moving if
* move to separate func
* move extern
* move include
* try engine_test_helper
* am confuse
* move func to else
* include hal
* add efi prod check
* remove include
* try extern
* move include
* semicolon stupid
* move extern again
* include
* move mockPinStates
* size
* add if
* add comment
* clean on instantiation
* lambda sens
* fix init
* fix
* a test for good measure
* he's climbin in your windows, snatchin you ram up
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>