* shuffle around output channels
* postState should take a ref
* s
* s
* patch input file
* limits
* accel bad bounds check
* units
* units
* Revert "accel bad bounds check"
This reverts commit b2bb493be331d5d2cf40b9ed01363a53182c883e.
* missed an autoscale
* cli registry: rework this hell, add FFF and FFFFF
* kinetis: no nodefaultlib
* revert back token helpers
* cli_registery: argument parser: do not eat qoutes
* Unit test for FFF
* cli_registry: remove debug
* less dependence on that logger
* comma
* refactor a bit, make it clear what this thing actually *does*
* static
* shrink the buffer a bit and make names useful
* dead util that's just subtraction lol
* consumers and api
* dead test
* baro uses sensor model
* remove old (copy of?) map lookup logic
* I guess we don't need FastInterpolation any more?
* don't double init analog input
* ui & config
* bump flash version
* compaction
* s
* make things happy
* fsio too
* OK, well those defaults were insane
* b
* why are these defaults insane
* adjust cylinder offset ui
* s
* cleanup
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.
* overflow detector
* type list dynamic allocate
* fix the buffer length
* comment
* pr fb
* sanitize sim
* fix sim sanitizer bug
* didn't mean to turn off optimization for sim
* asan can do that, if you turn it on!
* cleaning
* Basic framework for high pressure fuel pump control
* Many changes
Move calculations to fast callback
Move main object into Engine
Respond to pin changes without requiring a reboot
* Use EngineModule for HpfpController
Schedule pin off after executing pin on so we are sure it ends, even if the motor stops.
Test scheduling.
Less RAM use by only having one event and reordering fields.
* Make scheduling test actually useful - need non-0 activation angle.
Co-authored-by: rusefillc <48498823+rusefillc@users.noreply.github.com>
* 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