Commit Graph

110 Commits

Author SHA1 Message Date
Matthew Kennedy 7b47e77e58 infer useOnlyRisingEdge by trigger type (#4621)
* most of the plumbing

* easy tests

* trigger types that are rise only

* configs

* change mode of various triggers

* vvt

* 898 test is now impossible 🥳

* s

* instant rpm test

* actually remove useOnlyRisingEdgeForTrigger

* remove vvtCamSensorUseRise

* s

* print

* one happy test

* another test

* happy testSomethingWeird

* happy testCamInput

* maybe fix it a different way

* better

* quad cam

* nb2 happy

* bad merge

* vvt test

* trigger.test1995FordInline6TriggerDecoder

* hellen gm e67

* changelog
2022-11-08 21:48:39 -05:00
rusefillc cc7af64ed3 minor trigger refactoring 2022-11-06 00:59:29 -04:00
Matthew Kennedy 32b170810e duplicate log field names (#4730)
* remove duplicate target lambda/afr

* names on fuel computer

* remove more copies

* sensor.java

* everybody loves hard dependencies on generated fields

* target afr gauge fix

* test

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2022-11-05 20:23:09 -04:00
Matthew Kennedy 890a8e0fed implement "ford mode" injector correction (#4686)
* implement "ford mode"

* missed the enum value
2022-10-20 22:25:39 -04:00
Matthew Kennedy 9cd5553617 plumbing parts of 4621 (#4622)
* plumbing parts of 4621

* show error list

* exit on error too!

* this test has some unhealthy undefined behavior

* no uninitialized values

* no that doesn't work

* remove the invalid data and the bug becomes obvious
2022-09-25 18:49:54 -04:00
Matthew Kennedy 02aad24c59 explicitly pass which edges we sync trigger on (#4607)
* require sync edge type

* s

* fix neon

* info printing

* put enums back

* auto gen enum fiddling
2022-09-23 20:39:41 -04:00
Matthew Kennedy 0dfba2a655 remove ignitionPin (#4608)
* remove ignitionPin

* now that's gone

* BMW test
2022-09-23 17:30:10 -04:00
rusefillc 921b97431f refactoring: type safety 2022-09-11 03:46:50 -04:00
rusefillc cb3c070928 refactoring: type safety 2022-09-11 02:57:35 -04:00
Andrey ab3d92b995 tear down Engine god object #4511
just trying different things
2022-09-05 04:24:17 -04:00
Andrey 75b1549853 refactoring: moving field 2022-09-05 01:15:45 -04:00
Andrey 3eaaf5e293 english do you speak it 2022-08-31 22:56:38 -04:00
Matthew Kennedy 234909a91f remove some uses of EFI_ERROR_CODE (#4496)
* lua hooks

* findAngleMatch

* s

* s
2022-08-28 09:43:21 -04:00
Matthew Kennedy 08d2aee17b dfco delay (#4482)
* dfco delay

* config

* using a function that doesn't exist? who does that

* test new behavior

* clearer test
2022-08-25 21:26:17 -04:00
Matthew Kennedy 2d033df11b more missing autoscale (#4112)
* autoscale m_config->timeConstant

* min/max afr

* more

* dwell voltage

* closed loop fuel

* knock

* map estimate

* applyNonlinearBelowPulse

* fix

* add a test while we're at it for un-covered code

* test fallback MAP since we touched that

* always compute fallback MAP even if sensor is OK
2022-04-28 08:16:02 -04:00
rusefillc e0e61f7f44 FasterEngineSpinUp should be enabled by default fix #4094 2022-04-23 09:51:47 -04:00
Andrey 298ea5f8c0 Trigger setup in TS is highly confusing: hide operation mode from users? #4031 2022-04-03 02:21:37 -04:00
Andrey 4adaf71e18 Trigger setup in TS is highly confusing: hide operation mode from users? #4031 2022-04-03 01:02:13 -04:00
Andrey b96c51874c Trigger setup in TS is highly confusing: hide operation mode from users? #4031 2022-04-03 00:34:18 -04:00
rusefillc 9ae96ea7e5 refactoring: method rename 2022-04-02 21:01:29 -04:00
Matthew Kennedy 9d213b6584 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 31c0afc79f remove mock adc (#3888)
* remove mock adc

* do these do /anything/?
2022-02-03 20:43:34 -05:00
Matthew Kennedy 57525283ac Remove FSIO, byeeeeeeeee (#3865)
* vestigial config

* replace last functionality

* engine/board configs include

* files that didn't need to include this

* remove FSIO implementation

* stragglers

* random little bits

* s

* s

* ConfigDefinition

* jar

* s
2022-02-02 02:03:31 -05:00
Matthew Kennedy 60b9ddeb1e vss based dfco (#3845)
* vss based dfco

* fix digits while we're here

* fix some other digits for fun

* don't use custom assert

* simplify test

* less than or equal, test vss behavior

* even better than comments are tooltips
2022-01-27 14:05:18 -05:00
Matthew Kennedy 50c31b78ae extract logic from wall wetting AE (#3848)
* extract logic

* extract interface

* explicitly test wall fuel
2022-01-27 07:45:50 -05:00
Matthew Kennedy 1a0682aa0e dfco checks driver throttle intent (#3832) 2022-01-24 14:26:39 -05:00
Andrey 5353d13d96 migrating to SensorType::Rpm API 2022-01-20 23:19:48 -05:00
Andrey f7f6a31530 migrating to SensorType::Rpm API 2022-01-20 22:58:12 -05:00
Andrey 5d6985f085 migrating to SensorType::Rpm API 2022-01-20 22:12:04 -05:00
Matthew Kennedy 6fc4503ee2 XY Idle VE Table (#3781)
* config & ui

* implement

* test idle VE switching behavior

* use the interface where we can

* s

* re-bump flash version
2022-01-20 14:08:54 -05:00
Matthew Kennedy c2cc5c8cc7 cylinder ignition trim (#3709)
* cylinder ignition trim

* changelog

* changelog

* test

* move UI
2022-01-01 15:47:47 -05:00
Matthew Kennedy 265f005239 hook up fuel trims (#3715)
* hook up fuel trims

* pass all the params

* store per-cylinder fuel mass directly

* main trigger callback only touches per-cylinder, no banks!

* test test test test

* move UI to happy land

* changelog
2022-01-01 02:19:59 -05:00
rusefillc 917c13ef50 docs 2021-12-26 13:41:10 -05:00
rusefillc 98423f2046 live data 2021-12-26 13:00:17 -05:00
Andrey 436dec6df5 refactoring 2021-12-24 16:51:31 -05:00
Matthew Kennedy fae8b9ec06 clean up timing table defaults (#3705)
* less crazy configs

* cleanup

* make that test happy
2021-12-20 08:02:38 -05:00
Andrey faa29f0dc2 2 byte table axis #3045
fixing build
2021-12-20 01:50:23 -05:00
Matthew Kennedy bdf6583306 smarter priming logic (#3674)
* ignition controller detects rising edge on voltage

* update test

* comment

* ignore negative transients

* tweak

* test

* priming happens on ignition-on

* priming has its own scheduling

* config & UI

* dead config

* implementation

* look, the test caught a bug

* keep the watchdog happy

* bad merge

* changelog

* easier to read the test

* test naming
2021-12-08 16:20:19 -05:00
Matthew Kennedy e80654511d prime upon ignition voltage, not on power on (#3662)
* ignition controller detects rising edge on voltage

* update test

* comment

* ignore negative transients

* tweak

* test

* priming happens on ignition-on

* priming has its own scheduling

* test

* dead adjacent line of code
2021-12-08 07:26:49 -05:00
Matthew Kennedy aa8584d89a 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 9d61fb4cfd 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
Matthew Kennedy b9f8409f59 correctly compute engine revolution number (#3586)
* add param

* first revolution is revolution 0, not revolution 1

* would you look at that, we sync one rev quicker!

* changelog

* rpm value
2021-11-21 09:01:27 +03:00
Scott Smith 659cc68be1 Final cleanup of ENGINE macros (#3567)
Fix some uses of ENGINE() not detected by regex due to parenthesis.
Remove now empty engine_ptr.h
Don't worry about EFI_* not being defined, the compiler defaults to 0 if they aren't.
2021-11-17 13:45:10 -05:00
Scott Smith 80091498a6 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 dac2ae9b1d 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 7296593448 remove engine pointer passing (#3556)
* some

* more

* more

* the last?!
2021-11-16 04:15:29 -05:00
Scott Smith 2cfc4af998 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 c354d30a71 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 bd04dc8352 less macro, more c++ (#3549)
* less macro

* s
2021-11-15 12:44:40 +01:00
rusefillc 94320910e9 Epic: Remove FSIO #2928 2021-11-14 07:30:26 -05:00