Commit Graph

138 Commits

Author SHA1 Message Date
Andrey 3d096b2ac1 totalFuel and totalIgnition correction gauges in Tunerstudio #4955 2023-01-15 08:26:38 -05:00
Andrey df2b073c49 totalFuel and totalIgnition correction gauges in Tunerstudio #4955 2023-01-14 23:21:23 -05:00
Matthew Kennedy 5471321363 don't warn if we intentionally skipped this spark (#4961)
* don't warn if we intentionally skipped this spark

* header

* real nb2
2023-01-10 19:07:44 -05:00
rusefillc 875a3dbe57 CI is useful 2023-01-01 11:30:50 -05:00
rusefillc 886ec74442 antilag and anti-lag #2403
TurboMarian is the ALS boss
2022-12-21 20:12:00 -05:00
Matthew Kennedy a58e687d2f TriggerScheduler cleanup (#4844)
* TriggerScheduler cleanup

* remove TRIGGER_EVENT_UNDEFINED

* remove dead overload of scheduleOrQueue

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2022-11-28 08:55:38 -05:00
Andrey G cc9b1517ac compile warnings: signed vs unsigned and unused (#4713) 2022-10-30 09:47:53 -04:00
Matthew Kennedy 58a5569006 require ignition on for firing (#4628)
* require ignition on for firing

* too much havoc for a unit test

* patch up references

* last one

* fix changelog mangling

* fix the changelog template too

* bad merge

* fix the template again

* s

* fake battery voltage on hw ci

* ugh merge

* ugh merge
2022-10-04 20:36:03 -04:00
Matthew Kennedy 90489edb96 schedule ignition charge by angle instead of tooth (#4513)
* schedule ignition charge by angle

* same mistake as #4536

* s

* wrap sparkAngle too

* AngleBasedEventNew

* function moved

* implement scheduleOrQueue

* prints
2022-09-25 11:00:55 -04:00
Matthew Kennedy 0dfba2a655 remove ignitionPin (#4608)
* remove ignitionPin

* now that's gone

* BMW test
2022-09-23 17:30:10 -04:00
Matthew Kennedy 36d9eb4164 plumbing for 4513 (#4599)
* plumbing for 4513

* not static
2022-09-20 06:19:51 -04:00
Matthew Kennedy e737141a6f add fuel/spark cut codes to TS indicators (#4592)
* add fuel/spark cut codes to TS indicators

* fix list

* only set clearReason if not cleared
2022-09-19 22:01:03 -04:00
rusefillc 4318b47e58 "angle range findAngle#a6" critical error #4593 2022-09-19 18:33:19 -04:00
Andrey b439f27284 inline method to reduce confusion 2022-09-14 01:34:52 -04:00
rusefillc f97c5ed8fd i suspect that no one cares about these 2022-09-14 00:34:04 -04:00
Andrey 7369126d91 tear down Engine god object #4511
just trying different things
2022-09-07 15:38:15 -04:00
Andrey b64e553d5d refactoring: reducing outputChannels copy 2022-09-01 01:06:49 -04:00
Andrey fcc1c72506 let spark deal with spark limpManager 2022-08-31 23:59:40 -04:00
Andrey 5392f8d13e https://github.com/rusefi/hellen154hyundai/issues/60
extra logging
2022-08-25 19:58:10 -04:00
Matthew Kennedy 8650686ab7 knock threshold table fix (#4077)
* fix knock threshold table

* defaults

* knock controller is engine module

* testable

* test builds

* knock tests work

* s

* format

* everyone loves changelogs
2022-04-18 08:03:16 -04:00
Matthew Kennedy 735b4899e2 allow setting injection phase by start or center of injection (#4068)
* allow SOI/COI

* other change

* renames and simplify

* clean up ownIndex

* double check in spark logic
2022-04-15 10:22:36 -04:00
Matthew Kennedy 258f00efa3 fix sequential mode cranking (#2919)
* fix

* use the right enum

* do it for fuel too

* earlier

* s
2022-02-01 19:04:20 -05:00
Andrey 5f3324cd6b migrating to SensorType::Rpm API 2022-01-20 23:32:59 -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
Matthew Kennedy b2af3637a2 simplify cylinder phasing (#3650) 2021-12-05 10:46:35 -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 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
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
rusefillc 46d2b21ecc proportional spark cut #3427 2021-11-17 04:06:22 -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
Andrey c201b5b0ec proportional spark cut #3427 2021-11-16 05:56:15 -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
Matthew Kennedy bd04dc8352 less macro, more c++ (#3549)
* less macro

* s
2021-11-15 12:44:40 +01:00
rusefillc 3327b0d4e7 Epic: Remove FSIO #2928 2021-11-14 10:57:19 -05:00
rusefillc 2080ae2148 script settings need names! 2021-11-13 23:10:38 -05:00
Matthew Kennedy 1cee83a56c Knock retard (#3396)
* output gauge

* knock controller

* don't need that

* inject engine ref

* test knock

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-11-01 23:33:59 -04:00
rusefillc 613ef6fe21 OBD error renames 2021-10-03 01:30:42 -04:00
Andrey 4478e7cf30 overdwell protection #3071 2021-10-02 01:33:26 -04:00
rusefillc ace0efe39a overdwell protection #3071 (#3294) 2021-10-02 01:17:53 -04:00
Matthew Kennedy ea7187bb25 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 82116d9aa1 SPARK_EXTREME_LOGGING 2021-10-01 23:50:32 -04:00
Matthew Kennedy 6ac12f2984 more knock sense unification (#3250)
* more unification

* hip stub

* comment

* guard

* channel idx

* include

* hip

* move in to engine

* hip9011
2021-09-21 17:39:21 -04:00
rusefillc 6224a0a2f3 refactoring: just a better constant name 2021-09-08 20:32:50 -04:00
rusefillc 68f94e8abc Smart ECU: misfire detection #936 2021-09-06 15:29:36 -04:00
rusefillc d4fd06db54 Smart ECU: misfire detection #936 2021-09-06 11:10:11 -04:00
rusefillc 160d7810a4 Smart ECU: misfire detection #936 2021-09-06 10:35:26 -04:00
rusefillc 06060dc43b Implement auto knock threshold sampling #3033 2021-08-10 06:42:39 -04:00
Matthew Kennedy d3ec2b21d1 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 79be2db269 trailing spark outputs fix #2931 2021-07-22 00:01:54 -04:00
Matthew Kennedy 243cba9784 not setValue (#3026) 2021-07-21 23:36:46 -04:00
rusefillc 9570458aea NB2 trigger shape does not seem to match JimStim #2980 2021-07-17 16:12:54 -04:00
Matthew Kennedy e3849b95d5 don't require EXTERN_ENGINE in every file (#2969)
* move enginePins

* no more extern engine

* uses

* more

* extern config too

* put this where it belongs

* include correct header

* merge
2021-07-16 18:13:33 -04:00
Andrey 47f285c50c FATAL on NB2 tune jim stim input signal #2965 2021-07-14 16:03:00 -04:00
Matthew Kennedy f169fbf615 trailing spark scheduling (#2932)
* enable bit

* implement trailing sparks

* test trailing spark

* it helps to call the correct function

* add pins

* gobblin ram
2021-07-09 08:37:46 -04:00
Andrey a138ab98b0 https://www.rusefi.com/forum/viewtopic.php?p=41296 2021-06-20 17:26:24 -04:00
Matthew Kennedy ccd75b5173 parser rewrite prep: normalize config (#2741)
* cleanup 1

* cleanup 2

* impl

* fix
2021-05-27 08:23:28 -04:00
Andrey G dd46591ad5 hip9011 (#2658)
* hip9011: isolate debug stuff

* hip9011: renames

* hip9011: start sensing knockDetectionWindowStart degres from fire

* engine: more realistic values for knock window

* hip9011: remove magic CS toggling

* hip9011: EFI_HIP_9011_DEBUG should depend on EFI_HIP_9011
2021-05-08 18:43:55 -04:00
Matthew Kennedy 5f0791f9fb 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
Matthew Kennedy 737ee444b8 rip the bandaid: find-replace most of scheduleMsg (#2572)
* biiiig find replace

* more trivial find replace

* pwm

* almost all of them

* few more

* gpio

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-04-21 12:53:13 -04:00
rusefillc 549839b0de engine sniffer into unit tests 2021-04-04 22:41:38 -04:00
Andrey G 5fda278503 hip9011: get callback from spark on each cylinder (#2499)
* hip9011: get callback from spark on each cylinder

* hip9011: cleanup unused
2021-03-27 14:12:49 -04:00
Andrey G aa05ff195d Hip9011 and cleanups (#2477)
* hip9011: move hipCs out of EnginePins to hip9011 driver

* hip9011: cleanup debug output, save few RAM bytes

* Supress few signed vs unsigned warnings
2021-03-20 08:40:36 -04:00
Matthew Kennedy cd03443dea Limp handles inj/ign disable (#2245)
* status loop just asks limp mgr

* put logic in limp manager

* don't need that function any more

* bye

* TIL these bits already exist in the configuration
2021-01-27 21:28:53 -05:00
rusefi 3d3b5706d3 HW_CHECK_SPARK_FSIO 2020-12-26 16:16:40 -05:00
rusefillc 56044d4dd0 avoid float -> int64 conversion #1977
cherry picking...
2020-11-24 00:06:12 -05:00
Matthew Kennedy be71d06dfc remove (#1985) 2020-11-23 20:10:17 -05:00
Matthew Kennedy 89c56a00fa minor perf tweaks (#1946)
* only start PWM if needed

* put important stuff first

* use conversion

* this broke the logic
2020-11-16 00:06:11 -05:00
Matthew Kennedy c2eb7c9f4a remove tach output pin (#1779)
* remove from cfg

* cfg

* rip out impl

* efi gpio
2020-09-09 16:52:23 -04:00
rusefi c476cd3b95 refactoring 2020-09-03 19:29:15 -04:00
Matthew Kennedy 95f858265b detect which cylinder knocked (#1732)
* s

* science

* set pin mode

* turn stuff off so it fits

* filtering maybe

* filtering actually works

* generate filter parameters internally

* shorter window

* guard behind enable flag

* use checked in filter

* add biquad reset

* tracing

* const

* exec order

* do it from a thread

* smaller buffer, comment

* configure with header

* only for proteus

* oops

* unused

* not needed

* guards

* pin config

* don't need that include

* precook filter steady state

* define sample rate

* multi cylinder knock

* TS

* only sense when running
2020-08-31 21:05:33 -04:00
Matthew Kennedy 1b07647e72 Software knock detection (#1730)
* s

* science

* set pin mode

* turn stuff off so it fits

* filtering maybe

* filtering actually works

* generate filter parameters internally

* shorter window

* guard behind enable flag

* use checked in filter

* add biquad reset

* tracing

* const

* exec order

* do it from a thread

* smaller buffer, comment

* configure with header

* only for proteus

* oops

* unused

* not needed

* guards

* pin config

* don't need that include

* precook filter steady state

* define sample rate

* config enable switch
2020-08-28 21:13:50 -04:00
Matthew Kennedy 79e3bb307d misc 2020-07-29 02:29:55 -07:00
rusefi 097ca21626 better unit test logging 2020-07-20 13:38:33 -04:00
rusefi 403603b126 logicdata into unit tests 2020-07-19 22:03:30 -04:00
rusefi 7d8236a6b3 composite log for console 2020-05-26 00:07:18 -04:00
rusefi 804f4b9db5 better file name 2020-05-25 13:02:05 -04:00
Matthew Kennedy b7b67a2a7f Multispark implementation (#1192)
* multispark prototype

* only multispark if not cut

* typo

* do some reasonableish math

* consume cfg

* todo

* bad merge

* move math out of engine2.cpp

* engine state config

* consume generated

* use new

* hand generate

* doc, debugging

* debug channel names

* don't depend on rpmcalc

* safer, fix math

* tests

* default multispark config

* remove todo

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-03-26 01:49:36 -04:00
Matthew Kennedy 45f5afe871 Remove old monitoring timestamps (#1217)
* remove monitoring timestamps

* adv map

* fuel calc

* map avg

* printing

* spark logic

* hip 9011

* new traces

* s

* missed a few
2020-03-24 20:19:19 -04:00
Matthew Kennedy a2a5b40ced Support disabling most/all features (#1162)
* this flag did nothing

* guard features properly
2020-02-26 18:16:35 -05:00
Matthew Kennedy bcbac0b47f minor simplify spark (#1150)
* simplify

* rename
2020-02-21 19:35:11 -05:00
Matthew Kennedy 36211a6738 Schedule sparks with scheduleByAngle (#1092)
* injection

* injectors

* add edge timestamp to ShaftPositionListener

* scheduleByAngle require edgeTimestamp

* schedule with nt not us

* fix all schedulers

* schedule spark based on edge timestamp

* aux valves too

* update comments

* schedule dwell with new stamp

* format
2020-01-11 00:01:54 +03:00
rusefi 63e3e84e08 happy new year 2020-01-08 00:02:40 -05:00
Matthew Kennedy 3d8c4f4179 Strongly typed action constructor (#1087)
* strong typing

* maybe we needed that one
2020-01-07 18:10:31 -05:00
Matthew Kennedy 6703705a33 Pass action_s instead of callback/param (#1084)
* change action

* consumers

* fix test

* didn't mean to add those

* simplify

* fix simulator

* fix sim for real

* oy

* maybe this time the simulator will actually be fixed, for real

* don't rely on undefined behavior
2020-01-07 00:41:18 -05:00
rusefi 579770b66f The Big Refactoring of 2019: folder structure #723 2019-12-08 13:21:35 -05:00