Commit Graph

202 Commits

Author SHA1 Message Date
rusefillc 107685f069 this seems mostly dead? 2022-04-30 13:43:09 -04:00
Matthew Kennedy 38213bbc00
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
Matthew Kennedy 76fdb4063e
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 338c14c3a8
cylinder ignition trim (#3709)
* cylinder ignition trim

* changelog

* changelog

* test

* move UI
2022-01-01 15:47:47 -05:00
Matthew Kennedy 3a4a0ba18d
simplify some table lookups (#3692)
* simplify

* expand interpolation test
2021-12-20 08:14:30 -05:00
Matthew Kennedy 0810198185
clean up timing table defaults (#3705)
* less crazy configs

* cleanup

* make that test happy
2021-12-20 08:02:38 -05:00
Andrey 940b04ab24 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
rusefillc 89f92e1694 why so many channels are hidden in debug ? #3614 2021-11-29 11:54:55 -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
Matthew Kennedy 8cdac4cac0
remove engine pointer passing (#3556)
* some

* more

* more

* the last?!
2021-11-16 04:15:29 -05:00
Andrey 928c673695 refactoring launch 2021-11-15 20:09:03 -05:00
Matthew Kennedy 75a2b5ef02
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
Andreika d917cc8cc2
[DRAFT] Fix cranking->idling taper phase for useSeparate*ForIdle tables (#3168)
* Rename Phase::CrankToRunTaper -> CrankToIdleTaper

* Change isIdling() to isIdlingOrTaper()

* test_idle_controller.cpp

* useSeparateIdleTablesForCrankingTaper setting

Co-authored-by: Andrei <andreikagit@users.noreply.github.com>
2021-10-06 12:05:20 -04:00
rusefillc b4884498cb OBD error renames 2021-10-03 01:30:42 -04:00
rusefillc 063ab4af35 dead FSIO 2021-08-14 11:52:41 -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 e7f17b0365
move ign & cranking defaults (#2791)
* ignition defaults

* cranking

* s
2021-06-03 14:40:19 -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 ab214f974c
Bandaid for 2735 (#2788)
* bandaid

* fix test

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-06-02 12:02:52 +03: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
rusefillc 590f5e4f99 cranking timing not costant #2733 2021-05-23 13:54:49 -04:00
Matthew Kennedy dd6105cfa3
shrink canned tables (#2651)
* helper

* use it miata

* do type safe copy

* miata vvt

* etb

* default iat correction

* magic is afoot here

* hunchback

* misc

* neon

* neon

* aspire

* citroen

* neon

* missed one

* dead

* festiva

* remove andreyism

* very dead

* no need for copy of that function

* cleanup
2021-05-09 14:37:16 -04:00
Matthew Kennedy 8b3aa6c40d
goodbye ignitionOffset (#2503)
* remove

* set the timing map to do what the offset used to do

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-03-28 08:00:09 -04:00
Matthew Kennedy 4a1d3de9a6
remove unused msg parameter (#2360)
* dead parameter

* last few
2021-02-16 09:32:16 -05:00
Matthew Kennedy 868f0d47ac
Enable idle timing/ve tables based on idle phase logic (#2213)
* add helper

* advance

* ve

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-01-11 00:54:37 -05:00
Matthew Kennedy 7a90692187
Idle timing uses phase logic, remove falloff (#2169)
* use phase computation

* move & simplify implementation

* test

* bad merge

* initialize

* wonderful changelog

* now unused parameter

* put back deadzone

* ui

* test deadzone

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-01-07 08:06:36 -05:00
rusefillc 46583b2a19 Revert "Idle timing PID uses phase logic (#2156)"
This reverts commit 9634a803
2020-12-31 12:22:54 -05:00
Matthew Kennedy 9634a803f1
Idle timing PID uses phase logic (#2156)
* use phase computation

* move & simplify implementation

* test

* bad merge

* initialize

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-12-29 23:50:56 -05:00
Matthew Kennedy aeea50ada2
move target computation (#2091) 2020-12-17 17:46:51 -05:00
rusefillc 662eaea384 avoid float -> int64 conversion #1977
both cases have to be relatively small durations of time cherry picking...
2020-12-03 13:32:01 -05:00
Matthew Kennedy 0e3673e78c
remove idle thread; just call from periodicSlowCallback (#1924)
* remove thread

* remove ui
2020-11-11 21:47:19 -05:00
Matthew Kennedy 95798a5246
fix broken master, inject engine ptr to rpmcalculator (#1759)
* fix

* oops
2020-09-05 18:49:42 -04:00
rusefi 1703152427 reducing code duplication? 2020-07-29 23:01:55 -04:00
Matthew Kennedy 0aa42762d9 remove 2020-07-21 00:08:41 -07:00
Matthew Kennedy 2c9cb4e291
remove "plain MAP" mode (#1398)
* consumers

* enums, input, config

* java

* default config cleanup
2020-05-05 15:04:55 -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 9f75c0cea6
TPS consumers: idle and ignition and obd2 and lcd (#1254)
* advance_map

* tests

* unneeded

* idle

* use driver intent instead

* and obd and lcd

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-04-03 19:59:08 -04:00
Matthew Kennedy f958047d14
only correct timing in dynamic mode (#1247)
* only correct in dynamic mode

* redundant check
2020-04-02 08:54:55 -04:00
Matthew Kennedy 8fd9842310
cleanup extern mess (#1237)
* cleanup

* move outside define
2020-03-29 19:06:03 -04:00
Matthew Kennedy a5d4d06868
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 2c809e4475
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
rusefi 9e125ecbdf launch control #203 2020-03-24 19:55:12 -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
ola d49e253bff Some initial work at Launch/ALS
(cherry picked from commit 07b3a0632f6673ad57db5b2d6b8ad21674cf3509)
2020-02-02 12:17:06 -05:00
rusefi b83a5310be happy new year 2020-01-08 00:02:40 -05:00
rusefi af4f20551b getting rid of boardConfiguration / binary compatible change 2019-12-11 17:48:55 -05:00
Matthew Kennedy 9ee8616cb0 Use templated array references (#1027)
* update defs

* consumers, use default params

* setArrayValues in tests

* floats

* test fixing
2019-11-22 23:27:24 -05:00
rusefi 801b2eb70e progress towards #961 2019-11-04 22:52:37 -05:00
rusefi 62577c47da preparation for #961
more unified access to pre-calculated value
2019-10-10 08:25:58 -04:00
Matthew Kennedy 29804cbc8a move tsOutputChannels to header (#970) 2019-10-08 21:02:51 -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 cdac02429c refactoring: better file name 2019-07-06 20:15:49 -04:00
rusefi ff39a72633 typo 2019-06-14 00:57:24 -04:00
rusefi 09a29be80e input has sizes hard-coded #836 2019-06-10 15:45:18 -04:00
rusefi 01e481db31 fix #802 2019-05-25 13:36:29 -04:00
rusefi d7fd0ce6c1 refactoring: better method name 2019-05-07 19:32:08 -04:00
rusefi f04732830f PID - fix dTime usages #776 2019-04-25 21:31:33 -04:00
rusefi 541c445a2d defined(__DOXYGEN__) ? #748 2019-04-12 22:07:03 -04:00
rusefi be9651cb95 The Big Refactoring of 2019: folder structure #723 2019-03-31 17:44:34 -04:00
andreika-git 984fc12f73 Idle timing PID control & TPS-based VE table (#713)
* Add new config settings for idleTimingPidControl & TPSBasedVeTable

* Add dialogs for idleTimingPidControl settings

* Add dialogs for TPSBasedVeTable settings

* Share the code for getTargetRpmForIdleCorrection() and move it from idle_thread.cpp

* Implement TPSBasedVeTable

* Add PID to advance_map.cpp

* Implement idleTimingPidControl

* Make getAdvanceCorrections() visible to unit-tests

* Unit-tests! Yeah!
2019-03-22 22:55:51 -04:00
rusefi da4fb3a19f better conditional compilation 2019-01-31 17:55:23 -05:00
rusefi 1b0c46aaa7 better fields location, better initialization logic 2019-01-19 21:10:58 -05:00
rusefi 6bb8da7b39 Question: something strange trigger errors #662 2019-01-11 09:24:24 -05:00
rusefi 60d96c4216 refactoring: method name consistency 2019-01-10 23:48:05 -05:00
rusefi dd8e2d9326 The Big Refactoring of 2019: DECLARE_ENGINE_PARAMETER_SUFFIX consistency and simplification #657 2019-01-10 19:25:07 -05:00
rusefi cbd2d69731 The Big Refactoring of 2019: DECLARE_ENGINE_PARAMETER_SUFFIX consistency and simplification #657 2019-01-09 22:57:33 -05:00
andreika-git 23fea3c0c5 STM32 Nucleo144-F767ZI board: Initial support (#620)
* More EFI_ #ifdefs for config flexibility

* Even more config flexibility

* New firmware/config/stm32f7ems/* files

* New firmware/config/boards/NUCLEO_F767/* files

* New firmware/hw_layer/stm32f7/* files

* Fix for EFI_USB_SERIAL

* Adding #if defined(STM32F7XX)

* SPI flags changed in F7: SPI_CR1_DFF --> SPI_CR1_CRCL

* I2Cv2 config changed in F7

* More versatile CCM defines

* Makefiles

* Double #ifs cleanup

* docs
2018-11-16 07:40:06 -05:00
rusefi d49954f9c1 better state validation 2018-10-07 14:22:05 -04:00
andreika-git bd40691e67 AirFlow-interpolated tCharge Mode (#612)
* Add vars & enums

* updateTChargeK()

* limitRateOfChange()

* Impl. AirFlow-interpolated tCharge mode

* Update tsOutputChannels: tCharge & airFlow

* Set default config params

* Unit-tests

* Fix tChargeMode_e
2018-09-29 12:16:36 -04:00
rusefi ea9bac7bb5 better state validation 2018-09-29 11:11:25 -07:00
andreika-git 967b852752 Tps-based Advance Table (#611)
* typedefs

* Impl. TPS-based Advance
2018-09-26 04:13:16 -04:00
rusefi 1f90cf153d refactoring 2018-09-16 22:26:57 -04:00
rusefi 04b4e69de9 better state validation 2018-09-16 22:11:59 -04:00
rusefi 7b37195d64 names for error codes 2018-09-10 22:00:13 -04:00
rusefi 99e74635ef step towards more unique codes 2018-07-25 23:30:00 -04:00
rusEfi 9cce922b78 per error code 2018-07-23 21:38:05 -04:00
rusefi 74bd1d7e10 error code into angle validation 2018-07-23 21:03:20 -04:00
rusefi e3dfcc4df9 more detailed warning 2018-06-12 05:45:11 -04:00
rusefi f959619a59 better state validation 2018-05-24 22:12:57 -04:00
andreika-git 9424d39ab3 Impl. useSeparateAdvanceForCranking & useAdvanceCorrectionsForCranking (#565) 2018-02-02 08:18:00 -05:00
andreika-git 66d7c2bd5d Fix advance corrections for cranking (#547) 2018-01-22 23:47:58 -05:00
rusefi 1d31067d19 happy new year 2018-01-20 20:55:31 -05:00
rusEfi 9684549124 better method name 2018-01-07 11:17:49 -05:00
andreika-git e33f9db120 Fix useSeparateAdvanceForIdle now using corrections (#527) 2018-01-02 21:11:49 -05:00
andreika-git 58cff1697e Impl. useSeparateVeForIdle/useSeparateAdvanceForIdle (#522) 2017-12-23 12:24:20 -05:00
rusEfi e00fff9ca0 better state check 2017-12-03 16:45:39 -05:00
rusefi 6c25d4a4cf better state validation 2017-12-03 16:16:15 -05:00
andreika-git 6290befc71 Implement Cranking to Running Adv.Angle Interpolation for faster start (#506)
* Implement Cranking to Running Adv.Angle Interpolation for faster start

* Reduce code dup. and rename minRpm

* fix
2017-12-03 13:25:24 -05:00
rusefi 0d3bed02b2 refactoring 2017-12-03 13:22:29 -05:00
rusefi 7fd158f547 useFSIO16ForTimingAdjustment 2017-08-03 21:21:16 -04:00
rusefi e1e17bab2a rpm refactoring 2017-07-06 08:43:15 -04:00
rusefi 2a9f3cdede better macro name 2017-05-15 23:28:49 -04:00
rusefi b193e17b7d refactoring - reducing GPIO complexity 2017-04-21 16:27:15 -04:00
rusefi a9fca33dea refactoring - extracting sensors storage class 2017-03-07 02:24:57 -05:00
rusEfi 8782c80749 auto-sync 2017-02-09 12:03:46 -05:00
rusEfi 13e255cb50 auto-sync 2017-01-06 11:02:49 -05:00