Commit Graph

283 Commits

Author SHA1 Message Date
Matthew Kennedy 8828c8a101 #3815 (#3816) 2022-01-19 17:38:17 -05:00
Matthew Kennedy 4c693ff3ca add option to always use instant RPM (#3813)
* option to always use instant RPM

* duh
2022-01-19 07:34:22 -05:00
rusefillc 9fb9997b73 On m_event vs lobe vs scheduling #3804 2022-01-18 22:36:05 -05:00
rusefillc 1c0d74a8ad On m_event vs lobe vs scheduling #3804 2022-01-18 21:01:49 -05:00
rusefillc 342ea1d8d1 On m_event vs lobe vs scheduling #3804 2022-01-18 20:57:24 -05:00
rusefillc d885a38d98 On m_event vs lobe vs scheduling #3804 2022-01-18 10:16:47 -05:00
rusefillc 3e8207f393 GDI Epic #1448 2022-01-18 00:27:20 -05:00
GitHub build-firmware Action 82c918df6c Auto-generated configs and docs 2022-01-18 05:10:57 +00:00
rusefillc 53cf23b178 live data 2022-01-18 00:05:34 -05:00
Andrey 19ff671aaf Better handling of RPM during stop of cranking #3803
reuse existing magic constant
2022-01-17 21:18:43 -05:00
rusefillc 2da6593305 Better handling of RPM during stop of cranking #3803
refactoring: reusing existing method
2022-01-17 21:00:49 -05:00
rusefillc 9b38a7d445 limp ClearReason 2022-01-08 22:13:20 -05:00
GitHub build-firmware Action e4f828c0a1 Auto-generated configs and docs 2022-01-05 06:49:51 +00:00
GitHub build-firmware Action fd23938b2a Auto-generated configs and docs 2022-01-05 05:09:04 +00:00
Scott Smith e084914160 GDI/HPFP: Don't take P term into account when clamping I. (#3732) 2022-01-02 18:45:31 -05:00
rusefillc 62abbd173e GDI Epic #1448 2022-01-01 17:18:11 -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 213c22fde3 GDI Epic #1448
live view
2021-12-31 15:28:24 -05:00
rusefillc f4f51f4416 GDI Epic #1448 2021-12-31 03:09:04 -05:00
rusefillc 730dd57a69 GDI Epic #1448 2021-12-31 03:09:04 -05:00
Matthew Kennedy d90d6705cf adjustment to #3722 (#3723)
* s

* behold, another bug a test caught

* test

* test generates usable trigger pattern so it works correctly

* comment

* don't need that
2021-12-31 01:21:21 -05:00
rusefillc 7f386f4910 GDI Epic #1448 2021-12-30 19:14:49 -05:00
Matthew Kennedy 513187decc remove vvtSyncTimeNt (#3722)
* s

* poke

* poke again for science

* kick for science

* kick

* kick

* comment kick

* s

* don't try to compare the array decay pointer to 0 (!)

* collateral damage

* adjust miata sync

* reset trigger states correctly on engine stop

* s

* check synchronized bit

* now we don't need it at all?!

* and *NOT* synced

* start VVT sync earlier
2021-12-28 00:00:26 -05:00
Matthew Kennedy b392a7120e improved noFiringUntilVvtSync logic (#3696)
* s

* poke

* poke again for science

* kick for science

* kick

* kick

* comment kick

* s

* don't try to compare the array decay pointer to 0 (!)

* collateral damage

* adjust miata sync

* reset trigger states correctly on engine stop

* s

* nissan MR too
2021-12-27 12:09:38 -05:00
rusefillc 02e31e1555 MAP phase sensing #3544
removing dead implementation
2021-12-16 21:13:55 -05:00
rusefillc 77361a19b2 MAP phase sensing #3544 2021-12-16 21:11:29 -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
Andrey d2c46b3310 Let's always have TS structure so that unit tests can check values in outputChannels, kind of making outputChannels a god dump for state but whatever since Live View is coming 2021-12-07 20:18:47 -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
rusefillc 2b465be253 MAP phase sensing #3544
option to look for high and low peaks
2021-12-05 14:25:26 -05:00
Matthew Kennedy b2af3637a2 simplify cylinder phasing (#3650) 2021-12-05 10:46:35 -05:00
rusefillc e0559a8548 MAP phase sensing #3544
taking a step back to happy place
2021-12-04 18:21:10 -05:00
rusefillc af70aacde2 MAP phase sensing #3544 2021-12-04 17:19:35 -05:00
rusefillc 8f1e7d5b98 MAP phase sensing #3544 2021-12-02 22:32:07 -05:00
rusefillc 3cf4be3aa9 why so many channels are hidden in debug ? #3614 2021-11-29 14:11:19 -05:00
rusefillc 7bc85f5e9c automation around outputs section #197 2021-11-27 13:36:37 -05:00
Andrey 7fa2fa5707 MAP phase sensing #3544 2021-11-24 23:06:52 -05:00
Andrey 695557f709 MAP phase sensing #3544 2021-11-24 22:36:36 -05:00
Matthew Kennedy 5752b4ba92 bye (#3609) 2021-11-24 22:03:17 -05:00
Matthew Kennedy 5f01898dfd fix map avg logging (#3606)
* s

* s
2021-11-24 18:24:39 -05:00
Matthew Kennedy 1c8c22f9f1 map averaging usability (#3603) 2021-11-24 14:39:54 -05:00
rusefillc 6c23986cf0 MAP phase sensing #3544 2021-11-24 14:26:41 -05:00
Matthew Kennedy 9bd8a19564 oh my god we've had no asserts (#3595) 2021-11-22 17:52:03 -05:00
Matthew Kennedy e2a4504728 rpm calculator refactoring, gm 24x test (#3585)
* data

* stub test

* use getTimeSinceSyncPoint

* s

* s

* no

* test

* stray ;

* those were 1/10 what they were supposed to be

* actually check something

* dead log line?
2021-11-20 14:59:02 +03:00
Scott Smith 07d30285fc Basic framework for high pressure fuel pump control (#3476)
* 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>
2021-11-19 23:06:51 -05:00
Matthew Kennedy e7956a53f6 fuel pump doesn't use fsio (#3576)
* fuel pump

* s

* call correct callback

* more dead

* test adjustment

* don't overflow

* don't need separate function

* java

* give it a name

* generated

* generated

* add to generate script

* import *

* this is so cheap we don't need a flag
2021-11-19 22:23:12 -05:00
Scott Smith aba4e5167e Separate out scheduleOrQueue into it's own standalone scheduler. (#3573)
It's a large enough entity that it shouldn't be buried in ignition logic.
2021-11-18 14:27:21 -05:00
Scott Smith b3e0b28c75 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 a5b0604880 Add a lock for scheduleOrQueue events. (#3572)
Ignition callers are all tooth based, but aux valves calls it from both the microsecond timer and
the main initialization thread.  HPFP will also soon call it from both those places too.
2021-11-18 05:08:32 +03:00