Commit Graph

303 Commits

Author SHA1 Message Date
Andrey e62877964a Move curves out of engineConfiguration in order to reduce RAM usage #4127 2022-05-01 23:43:43 -04:00
Matthew Kennedy dfe6bfb8a9
Flex fuel cranking improvements (#4043)
* improve flex cranking

* call it e85

* don't re-warn

* warning name

* ui
2022-04-04 17:41:36 -04:00
Matthew Kennedy c2eab94534
flex cranking math (#3791)
* flex cranking math

* simplify

* s

* simplify
2022-02-01 20:53:14 -05:00
Matthew Kennedy 717d931e78
refactor decel fuel cut (#3830)
* refactor dfco

* s

* output channel logs dfco

* slightly cheeky comment
2022-01-23 19:44:41 -05:00
Andrey 3bc59bfbb6 migrating to SensorType::Rpm API 2022-01-20 22:27:48 -05:00
Matthew Kennedy 7d341cfc9d
improve maf output channels and logging (#3743)
* maf channels

* s

* binary log

* if only I could type

* can

* instant RPM too

* s

* test

* graceful zero rpm

* test works

* float near
2022-01-12 15:41:35 -05:00
Matthew Kennedy ab3e3ac83f
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
Matthew Kennedy 3a4a0ba18d
simplify some table lookups (#3692)
* simplify

* expand interpolation test
2021-12-20 08:14:30 -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 69d36dad6e
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 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
Matthew Kennedy 145316c497
less macro, more c++ (#3549)
* less macro

* s
2021-11-15 12:44:40 +01:00
racer-coder 2612db570f
Fix the types in various fuel functions that actually refer to grams, not ms. (#3458) 2021-11-04 11:50:19 -04:00
rusefillc ea87d9c9be Whatever we call it, no matter how we do it - we need live data / remote view into rusEFI actual state #3353
dead code
2021-10-14 15:17:09 -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
Matthew Kennedy 2ce7777865
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
Matthew Kennedy e830a99275
lua hooks for custom airmass model (#2697)
* lua airmass

* not const any more

* bad merge

* don't change the position of others

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-07-16 00:49:14 -04:00
Matthew Kennedy 3ef969d743
warnings & assorted cleanup (#2793)
* lua hook

* validateBuffer

* tables

* simplify fsio table

* test

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-06-03 14:30:25 -04:00
Matthew Kennedy 1d10fbc7a8
const airmass (#2694) 2021-05-14 07:17:22 -04:00
Matthew Kennedy 3968204dfa
Hook up multi bank fuel trim (#2532)
* multi bank trim

* cleaning

* output channels

* output channels
2021-05-08 17:41:50 -04:00
Matthew Kennedy 650d148008
Usable fuel consumption data/gauges (#2474)
* fuel consumption

* gauge names

* consumers

* obd

* binary logging

* doesn't need explicit constructor

* getters

* it works

* correct for injections per cycle

* datalog

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-03-19 17:04:42 -04:00
Matthew Kennedy 5067b81fce
Compute injection duration later in the pipeline (#2175)
* injector model, test

* new math

* inject fuel based on new math

* tests

* fix

* it should work like this

* format

* update TPS AE even when we're cutting fuel

* comment

* conversion factor

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-03-03 07:30:56 -05:00
Matthew Kennedy 4a1d3de9a6
remove unused msg parameter (#2360)
* dead parameter

* last few
2021-02-16 09:32:16 -05:00
Matthew Kennedy 7d3cadfc87
baro in sensor model (#2306)
* baro in sensor model

* missed

* typo

* init baro

* needs an include there
2021-02-07 17:54:41 -06:00
Matthew Kennedy 0e70d08a22
Add fallback map table (#2248)
* table

* sd math

* config

* debug channel name

* ptr vs not ptr

* actually use return value

* memory

* less magic
2021-01-31 17:19:06 -05:00
Matthew Kennedy 92ea09b0a6
switch more map to read from sensor model (#2162)
* hook up map

* check for init

* switch some consumers

* that's the rest of them

* test

* tests

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-01-02 19:13:10 -05:00
rusefi 89eaae8234 LM_ALPHA_N_2 rename 2020-11-27 15:44:31 -05:00
Matthew Kennedy 09b41bb1bb
Everything in lambda! (#1893)
* lambda

* default configs, fix build

* config, gauge, UI

* more digits

* change menu text

* fix that while I'm here

* doesn't need extra word

* todo note

* tests

* last test

* missed a config

* update java

* store target lambda

* more java

* format

* hopefully enough java for CI to pass
2020-10-26 18:15:17 -04:00
Matthew Kennedy 5e06db6b75
probably fix ci (#1912) 2020-10-26 14:04:22 -04:00
Matthew Kennedy a90792fa44
convert mass -> duration later in the pipeline (#1906)
* cranking duration to mass

* implement

* units

* patch types

* suppress warning

* fix output channels

* add note about how to set it
2020-10-26 07:23:13 -04:00
Matthew Kennedy f37ed597c5
fix double deadtime (#1904)
* move global correction factor to fuel mass

* tests

* the fix
2020-10-25 00:12:05 -04:00
Matthew Kennedy 10c1ad7698
use fuel model (#1901)
* use fuel model

* spit'n'polish
2020-10-23 20:25:47 -04:00
Matthew Kennedy 83fe9dae77
ign mode overrides (#1869) 2020-10-09 17:16:49 -04:00
Matthew Kennedy 6ac9aad358
display base fuel mass in milligrams (#1838)
* switch to mg

* use the correct thing

* gauge scaling

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-09-30 20:19:51 -04:00
Matthew Kennedy 6e7d72170f
Move ve logic (#1762)
* move ve

* fix build

* fix rendering

* duh

* cleaning

* correct scaling

* put some back

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-09-06 19:06:32 -04:00
Matthew Kennedy 95798a5246
fix broken master, inject engine ptr to rpmcalculator (#1759)
* fix

* oops
2020-09-05 18:49:42 -04:00
Matthew Kennedy 33a2354e44
inject fuel & injector models so they can be mocked (#1697)
* stub injector model

* tests

* inject fuel/injector models

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-08-17 17:03:59 -04:00
Matthew Kennedy 5929164fb3
Add injector model class (#1687)
* stub injector model

* tests

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-08-17 05:22:25 -04:00
rusefi 86ad274cee HW CI CRITICAL error: Invalid airmass mode #1690 2020-08-13 22:08:59 -04:00
rusefi 2bd7d094be HW CI CRITICAL error: Invalid airmass mode #1690 2020-08-13 12:49:48 -04:00
Matthew Kennedy adbd41f2bd safety 2020-08-12 22:18:56 -07:00
Matthew Kennedy 405f12758c simplify fuel math 2020-08-11 20:35:10 -07:00
Matthew Kennedy 3c72fa93e4 fix 2020-08-10 21:53:45 -07:00
Matthew Kennedy 1f64754b57 consume 2020-08-10 21:41:03 -07:00
Matthew Kennedy e56fd5fe0d don't use 2020-07-31 23:28:12 -07:00
Matthew Kennedy 132ee12974 cleanup 2020-07-30 21:20:10 -07:00
Matthew Kennedy 53b864bdda fixing 2020-07-28 12:11:56 -07:00
Matthew Kennedy e5133de70f add mock airmass mode 2020-07-26 20:33:18 -07:00
Matthew Kennedy 8f27fc8b53 alphan 2020-07-25 01:14:35 -07:00
Matthew Kennedy 0e39c094c7 switch a pointer not logic 2020-07-24 19:38:48 -07:00
Matthew Kennedy b26bd6d891 move speed density 2020-07-24 19:30:12 -07:00
Matthew Kennedy 7e88011de5 move impl 2020-07-23 01:23:57 -07:00
Matthew Kennedy 5e7ddc9f24 start refactor 2020-07-22 13:11:07 -07:00
Matthew Kennedy 3f293e573c cleanup 2020-07-21 14:13:29 -07:00
Matthew Kennedy a3b29f9011 use ign load for ign 2020-07-20 23:11:48 -07:00
Matthew Kennedy 9c736a2c3d test 2020-07-20 03:29:43 -07:00
Matthew Kennedy 1509498cd9
dedupe mode logic (#1596) 2020-07-11 08:05:35 -04:00
Matthew Kennedy 26478ec394
Switch fueling to new axes (#1574)
* switch tables

* missed one
2020-07-05 18:14:55 -04:00
Matthew Kennedy 2b8b43ca55
plumb new load channels (#1573)
* wire up new channels

* add deprecation comment

* add gauges

* these tables are indeed used in those modes

* simplify

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-07-05 16:25:19 -04:00
Matthew Kennedy c8fb6993ac
simplify cranking corrections (#1510) 2020-06-18 08:54:02 -04:00
Matthew Kennedy a34201d1d1
fuel math simplifications (#1485)
* simplify

* fix

* tweak

* cleaning

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-06-17 17:15:04 -04:00
Matthew Kennedy 76745412c6
Factor out airmass logic (#1483)
* refactor

* extract more airmass

* rename, fix tests
2020-06-06 07:25:19 -04:00
Matthew Kennedy 2bdd8128db
refactor (#1481) 2020-06-03 21:12:12 -04:00
Matthew Kennedy d24b5d5e93
Integrate stft (#1475)
* code changes

* missed a spot

* update UI

* gauge name

* adjust gauge scaling

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-05-31 16:59:05 -04:00
Matthew Kennedy 745b0c04ac
pull out std air charge math (#1397) 2020-05-05 08:01:40 -04:00
Matthew Kennedy 4d24fdd57d
Fuel/ign correctino on new temp sensors (#1318)
* corrections

* test

* adv map

* tests

* cleanup

* lcd

* fsio

* unneeded

* more math

* last consumer

* cleanup

* fix kinetis
2020-04-18 18:45:30 -04:00
Matthew Kennedy 044766ec70
New clt consumers part 1 (#1301)
* idle

* CLT test prep

* idle target

* header

* air interpolate

* ancient comment

* fuel cut

* fuel cut, idle tests

* cleanup
2020-04-15 09:48:17 -04:00
OrchardPerformance 5739032254
Update to Matt's MAF code for VE table tuning. (#1295)
* Update rusefi_lib

* Update fuel_math.cpp

Updated Matt's MAF code to include fuel table

* fixed missing include

* Replace get_specs_displacement

* ve2Map corrected

* ve2Map fix 2

* Fix for missing TS table

* Corrected standard air charge

* Math fix, PW now good

Still have minimal response from the VE table

* rusefi.input correction

* Added extra comment

* Ease of reading update
2020-04-14 01:21:48 -04:00
Matthew Kennedy e1301f3c47
fix maf (#1287) 2020-04-12 15:52:29 -04:00
Matthew Kennedy 7d5df29fbd
yet more tps consumers (#1258)
* advance_map

* tests

* unneeded

* idle

* use driver intent instead

* and obd and lcd

* engine load

* ve lookup

* unused

* oops we needed that

* oops needed that too

* mocking

* test mocks

* oops

* helps to use the right sensor

* and cylinder cleanup

* fuel math

* typo

* old tests

* kill dead stuff

* cleanup

* more

* fix

* test

* s

* fix signature

* fix test

* comment

* priming pulse

* remove mock tps

* remove more dead

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-04-05 09:11:25 -04:00
Matthew Kennedy bc3f0c6b27
More TPS consumers: VE lookup (#1256)
* advance_map

* tests

* unneeded

* idle

* use driver intent instead

* and obd and lcd

* engine load

* ve lookup

* unused

* oops we needed that

* oops needed that too

* mocking

* test mocks

* oops

* helps to use the right sensor

* and cylinder cleanup

* fuel math

* typo

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-04-04 08:41:09 -04:00
Matthew Kennedy 8fd9842310
cleanup extern mess (#1237)
* cleanup

* move outside define
2020-03-29 19:06:03 -04:00
Matthew Kennedy 397907a06f
Support disabling most/all features (#1162)
* this flag did nothing

* guard features properly
2020-02-26 18:16:35 -05:00
rusefi ec5ec558c2 my take on useRunningMathForCranking 2020-02-18 10:47:39 -05:00
rusefi bb217b01dd happy new year unification 2020-01-13 21:57:43 -05:00
rusefi af4f20551b getting rid of boardConfiguration / binary compatible change 2019-12-11 17:48:55 -05:00
Matthew Kennedy 93d24dfc0b Merge remote-tracking branch 'origin/master' into perf-tracing 2019-11-19 16:28:58 -08:00
rusefi 487acd62de Missing dwell altogether in some corner cases #796
only additional live data here
2019-11-05 23:36:33 -05:00
rusefi 801b2eb70e progress towards #961 2019-11-04 22:52:37 -05:00
rusefi 5f9fdfe9a6 Revert "Revert "Performance improvement: call GetBaseFuel less (#979)""
This reverts commit 7eb9947fd4.
2019-10-16 23:02:24 -04:00
rusefi 7eb9947fd4 Revert "Performance improvement: call GetBaseFuel less (#979)"
This reverts commit 95e51f13
2019-10-16 22:29:19 -04:00
Matthew Kennedy 95e51f1399 Performance improvement: call GetBaseFuel less (#979)
* Remove extra calls to getInjectionDuration

* increase callback frequency
2019-10-16 22:13:10 -04:00
Matthew Kennedy d6e065f99e Merge remote-tracking branch 'upstream/master' into perf-tracing 2019-10-14 23:45:39 -07:00
rusefi d0596388e6 preparing for #961
better code style
2019-10-15 02:06:15 -04:00
Matthew Kennedy f52bdecb80 profile all the things 2019-10-13 13:14:08 -07:00
rusefi 71e904e421 preparation for #961
more unified access to pre-calculated value
2019-10-10 08:16:21 -04:00
rusefi 9a26b2eca2 preparation for #961
macro as a syntax sugar for method invocation
2019-10-10 07:37:37 -04:00
rusefi c935903162 do not let "Use fixed baro corr from MAP" kill VE fix #960 2019-09-29 09:58:29 -04:00
rusefi 1ffaa8eea2 Live Data progress 2019-09-01 13:56:46 -04:00
rusefi 4ddb0aeace LiveData progress: isChanking & hasEtbPedalPositionSensor 2019-08-31 17:07:21 -04:00
rusefi b090be14b0 cranking fuel live data fix #911 2019-08-28 00:29:55 -04:00
rusefi 2804b31e7e cranking fuel live data #911 2019-08-26 23:41:04 -04:00
Matthew Kennedy e0db83e027 Template-ize bin/value length for interpolation (#878)
* update consumers

* tests

* whitespace

* format
2019-07-09 21:16:36 +03:00
rusefi 1fce0201a5 user is unable to start with zero fuel - at least showing a warning
https://rusefi.com/forum/viewtopic.php?p=33761#p33760
2019-07-06 20:45:47 -04:00
Matthew Kennedy e47bc4b952 Fix tunerstudio ratio vs. percent (#838)
* fix ratio vs pct

* fix idle cranking clt position

* fix defaults

* fix typo

* fix baro corr gauge

* baro default

* fix degree symbols

* fix testFuelMap

* fix testPlainCrankingWithoutAdvancedFeatures

* test testFasterEngineSpinningUp
2019-06-13 09:05:22 -04:00
rusefi 09a29be80e input has sizes hard-coded #836 2019-06-10 15:45:18 -04:00
rusefi 5f642ac254 unit tests should not have global context, including mock values 2019-05-27 15:56:12 -04:00