Commit Graph

81 Commits

Author SHA1 Message Date
rusefillc 1b28e292e2 logging of live data structs was: data points #3614
huh?
2022-06-29 02:42:03 -04:00
Matthew Kennedy c0f290b922
Injector scheduled by angle, not tooth index (#4208)
* 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
2022-06-24 17:43:23 -04:00
Matthew Kennedy 932f5e1f30
cam/crank sync improvements (#4152)
* 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>
2022-06-09 17:21:22 -04:00
Matthew Kennedy 4ada633206
Remove third trigger channel (#4226)
* 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
2022-06-01 21:24:20 -04:00
Matthew Kennedy c0d8cbfef4
Trigger cleanup init (#4222)
* extra parameter

* name decoders in constructor

* s
2022-06-01 00:55:34 -04:00
Matthew Kennedy 70c2689f1e
remove trigger duty cycle calculation (#4213)
* This field was ignored.

* move pad out

* gone

* make trigger configuration a little clearer

* even simpler!

* format

* test fix

* remove duty cycle thing
2022-05-30 22:39:57 -04:00
Matthew Kennedy f945e6efc9
trigger configuration refactoring for clarity (#4212)
* This field was ignored.

* move pad out

* gone

* make trigger configuration a little clearer

* even simpler!

* format

* test fix
2022-05-30 19:36:47 -04:00
Andrey d38d8a7840 altering technical debt 2022-05-15 10:07:17 -04:00
Matthew Kennedy d4509cab8a
TriggerState -> TriggerDecoder (#4157) 2022-05-10 11:41:39 +03:00
rusefillc 14e37e3cf4 FasterEngineSpinUp should be enabled by default fix #4094 2022-04-23 09:51:47 -04:00
rusefillc 3c7eb93fe1 steps towards ignition live data 2022-04-13 16:48:25 -04:00
rusefillc b1de262520 toothed previous time #4019 2022-03-21 20:41:09 -04:00
Matthew Kennedy 5811f691d9
things are happy without gtest (#3999)
* things are happy without gtest

* this is not a static lib
2022-03-14 15:00:02 -04:00
Matthew Kennedy 06437f304f
dead StartupFuelPumping (#3883)
* dead

* test

* dead config too
2022-02-03 08:01:21 -05:00
Matthew Kennedy 28f39fe71c
test organization (#3882)
* organize actuators

* this test can be useful

* don't name things misc

* fewer tests called misc

* fewer tests called "big" (?)

* unnecessary
2022-02-02 16:36:35 -05:00
Andrey 9313bcca92 migrating to SensorType::Rpm API 2022-01-20 23:19:48 -05:00
Andrey e55eb28086 migrating to SensorType::Rpm API 2022-01-20 22:42:13 -05:00
Andrey c7a62bcdb3 migrating to SensorType::Rpm API 2022-01-20 22:04:45 -05:00
Matthew Kennedy a4871c703c
Autoscale all the things! (#3713)
* Map3D accepts any scaled_channel type

* consistency

* reinstate test

* fix ratio

* throttle, boost, gppwm

* scale ignition and VE

* tests
2021-12-22 08:09:41 -05:00
Matthew Kennedy 3a95e86112
calculate per-cylinder ignition timing (#3652)
* simplify cylinder phasing

* per cylinder timing

* s

* s

* s

* why was there a divide by 2?
2021-12-06 21:19:37 -05:00
Scott Smith ba4a00d3bb
Drop SingleChannelStateSequence in favor of MultiChannelStateSequenceWithData (#3519)
* 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.
2021-11-21 04:56:07 -05:00
rusefillc e54d3b9e06 On -fpermissive in Windows in unit tests #3581 2021-11-20 00:16:03 -05:00
Scott Smith 98040ad9af
Make the module API more concise. (#3571)
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.
2021-11-17 21:50:00 -05:00
Scott Smith 988aacdd91
Create a base class EngineModule for that contains various useful callbacks. (#3548)
* 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
2021-11-17 20:13:19 +03:00
Scott Smith 823d9a07e0
Programmatically replace ENGINE() and CONFIG() with engine-> etc (#3565)
git grep -l -w ENGINE | xargs sed -i -r "s/ENGINE\(([]a-zA-Z_0-9.[]+)\)/engine->\1/g"

git grep -l -w CONFIG | xargs sed -i -r "s/([^a-zA-Z_])CONFIG\(([]a-zA-Z_0-9.[]+)\)/\1engineConfiguration->\2/g"
2021-11-17 03:54:21 -05:00
Scott Smith cc95bd6c8e
Programmatically remove EnginePtr/inject, EXPAND_Engine, and WITH_ENGINE_TEST_HELPER* (#3560)
* 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.
2021-11-16 16:52:11 -05:00
Matthew Kennedy 8cdac4cac0
remove engine pointer passing (#3556)
* some

* more

* more

* the last?!
2021-11-16 04:15:29 -05:00
Scott Smith 344c9073e2
Start the process of using a global engine ptr for unit tests. (#3551)
* 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.
2021-11-16 00:23:14 -05:00
Scott Smith 62daac73c7
Use Valgrind to detect unitialized variable references. (#3555)
* Use Valgrind to detect unitialized variable references.

Fix the edge cases that pop up

* Comment and disable Mac run
2021-11-15 23:42:23 -05:00
Matthew Kennedy cb032fb1ea
(void) -> () (#3550)
* static functions with (void)

* more

* Revert "more"

This reverts commit 246e53441f935451437df186ac92d7df26b62fb6.

* s

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-11-15 13:02:34 +01:00
Scott Smith 713083baa5
Convert TriggerWaveform::wave to a pointer in preparation for code-defined sequences. (#3528)
It will eventually be class to support dynamic universal patterns in addition to ROM-based
tables.
2021-11-11 13:19:25 -05:00
Scott Smith 2f4d123052
Change users of MultiChannelStateSequence to use the API (#3524)
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.
2021-11-11 09:19:22 -05:00
Scott Smith 158f719d95
Save ~2800 bytes of RAM by not caching angle->trigger mapping (#3506)
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
2021-11-09 07:03:27 -05:00
Andrey 6111355e6c Remove Miata MX5 NB1 trigger #3488 2021-11-06 20:24:41 -04:00
Matthew Kennedy 980a7cc833
autoscale fields in generated structs (#3444)
* add to grammar

* parser

* parser

* example consumer

* build config tool

* commit the right jar
2021-11-02 18:59:19 -04:00
rusefillc b7601e063f generate java enum from C enum? generate both C and java from yaml? #2102 2021-10-24 11:40:47 -04:00
rusefillc eb05f4594e very old very dead code 2021-10-20 12:57:07 -04:00
rusefillc 1493973bea very old very dead code 2021-10-20 10:38:36 -04:00
Matthew Kennedy 0a550a70b1
overdwell protection (#3220)
* cancel event

* looks like it works...

* some tests are happy

* add enable bit

* undo test changes

* Revert "add enable bit"

This reverts commit 000afadd3fc560867302557afe26f76cd9fc4ed6.

* enable bit in engine

* only turn off for one test

* Revert "undo test changes"

This reverts commit 106db49e291b5a531a94de6ac177c6584d5337f6.
2021-10-02 01:10:24 -04:00
Andrey b71d3c6111 reducing crazy in unit tests 2021-10-01 22:29:44 -04:00
rusefillc a6fbb98193 Complete fuel cut, maybe by wall wetting? Warning on decel (?) CUSTOM_OBD_SKIPPED_FUEL = 9010 fix #3225 2021-09-27 22:04:03 -04:00
Matthew Kennedy b52d50bbf2
Use pch in lots of files (#3066)
* most engine.h

* most engine_configuration

* more

* more

* more

* more

* more

* moooooore

* ok I'm done for now

* oops
2021-07-26 01:05:17 -04:00
Andrey f5e937fe2b refactoring: getShaftSynchronized 2021-07-03 10:37:03 -04:00
Matthew Kennedy 025c32de00
Stricter miata sync (#2891)
* 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
2021-07-01 21:29:04 -04:00
rusefillc 0af5de0934
Minor change of Miata NA trigger shape #2855 #669 (#2856)
* Minor change of Miata NA trigger shape #2855 #669

* Minor change of Miata NA trigger shape #2855 #669
2021-06-25 14:12:18 -04:00
Andrey 71fdfe6756 giving unit tests a chance to use tdcMarkCallback 2021-06-25 01:31:53 -04:00
Matthew Kennedy 7d2057e74a
remove cranking dwell angle (#2814)
* config & impl

* settings

* engines & boards

* this test doesn't do anything interesting
2021-06-13 07:52:07 -04:00
Matthew Kennedy 790ac08a2e
Cranking defaults (#2787)
* defaults

* more

* cranking fuel

* cranking timing

* cranking time digits

* ugh these tests shouldn't depend on defaults
2021-06-02 08:21:36 +03:00
Matthew Kennedy 4474f9f1c2
Maf in sensor model (#2672)
* init

* consumers

* hasMafSensor

* consumers

* remove

* remove

* s

* guard

* tiny bit of ram

* ram
2021-05-09 20:59:06 -04:00
Matthew Kennedy c26987b96b
Destroy all shared logger (#2574)
* most of shared logger

* a few more

* one more

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-04-21 14:28:48 -04:00