* logingcentral: check final string for prohibited chars
Invalid char can come from arguments, not only format string so
scan final buffer.
* logingcentral: comment say '\r' is also not allowed
* logingcentral: just replace all non-printable chars with space
Do not assert
* loging: remove strlen()
* Do lightweight checks first
* Dead getTimeIgnitionSeconds()
Dead since 81fffe87b7
* Get rid of efitime_t.
Purpose are not clear. Use efitick_t where ticks are used,
use efitimeus_t for uS, use efitimems_t or efitimems64_t for mS.
* Fix unit tests
* Fix misc: stm32f1_test_project
* Extract time helpers from engine_controller_misc to efitime.cpp
* Rename currentTimeMillis() to getTimeNowMs()
We have getTimeNowNt(), getTimeNowUs(), currentTimeMillis() and getTimeNowSeconds()
Align a bit.
find . -type f -name '*.c*' -exec sed -i 's/currentTimeMillis/getTimeNowMs/g' {} \;
* Rename getTimeNowSeconds() to getTimeNowS()
To align with Nt, Us, Ms versions.
* Some comments about getTimeNowLowerNt()
* allow logging multiple warnings at once
* comment
* .Code
* Revert ".Code"
This reverts commit 2b986bd50035aeec051d11aafd83fdbc1694351c.
* add a better comparison operator instead of conversion
* dot code
* Revert "dot code"
This reverts commit 35f6ae1007c41e3b30ea129a324f33ab4205036d.
* force gcc-10 maybe?
* Revert "force gcc-10 maybe?"
This reverts commit 4ddf8bcefddd354ccdc1da682c5fff1e68d44273.
* 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
* make things c++ friendly
* install various canaries in coal mines
* using is much clearer than typedef
* fixing builds
* lps25
* trigger includes were a mess
* c -> c++ cleanup
* os util
* why did so many include os_util.h?
* fwd declare
* cypress/kinetis
* s
* eg33 happy
* happy sim
* cypress usb
* pch
* cypress
* doesn't need to include all that
* h7
* 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