Commit Graph

507 Commits

Author SHA1 Message Date
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 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 f9f13f0bad 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 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 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 c1941f3a49 (void) -> () (#3550)
* static functions with (void)

* more

* Revert "more"

This reverts commit 246e53441f935451437df186ac92d7df26b62fb6.

* s

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-11-15 13:02:34 +01:00
Matthew Kennedy bd04dc8352 less macro, more c++ (#3549)
* less macro

* s
2021-11-15 12:44:40 +01:00
Andrey 2166a5ba16 ETB: do not touch HW pins if function not selected, this way Lua can use DC motor hardware pins directly 2021-11-08 12:44:37 -05:00
Matthew Kennedy 72cdc52acc configurable etb maximum (#3469)
* etb maximum

* update tests and test new behavior
2021-11-05 18:16:19 -04:00
Matthew Kennedy 8ee86e0789 log vvt targets (#3417)
* log vvt target

* java

* make java happy probably

* sensorlogger
2021-11-02 15:03:57 -04:00
GitHub build-firmware Action 4aa8a793e2 Auto-generated configs and docs 2021-10-31 01:38:27 +00:00
Andrey de8b43cf94 looks like value is never assigned 2021-10-30 21:28:55 -04:00
rusefillc 40bf6a93d0 VVT is no longer aux pid 2021-10-28 23:51:46 -04:00
Matthew Kennedy 6125d97c6c etb pwm limit (#3408)
* etb pwm limit

* missed an arg

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-10-25 15:35:23 -04:00
GitHub build-firmware Action 7269a3a5e9 Auto-generated configs and docs 2021-10-17 04:35:27 +00:00
rusefillc d60e6eb9af refactoring - extracting idle state 2021-10-17 00:30:26 -04:00
GitHub build-firmware Action 9388adc683 Auto-generated configs and docs 2021-10-17 03:59:20 +00:00
rusefillc d4e9c1597a refactoring - extracting idle state 2021-10-16 23:55:29 -04:00
rusefillc 2748571986 refactoring 2021-10-16 23:40:02 -04:00
GitHub build-firmware Action 5ab712c51d Auto-generated configs and docs 2021-10-17 01:13:47 +00:00
rusefillc 94be3608a1 better file locations 2021-10-16 20:17:01 -04:00
rusefillc c9469f3820 let's see if CI would fail, i.e. let's see if this logic was covered 2021-10-16 19:03:36 -04:00
rusefillc 037535bc8e Whatever we call it, no matter how we do it - we need live data / remote view into rusEFI actual state #3353
progress
2021-10-14 15:18:13 -04:00
rusefillc 1f1c538fc0 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
rusefillc 705295dbfb Whatever we call it, how ever we implement it - we need live data / remote view into rusEFI actual state #3353 2021-10-14 00:47:26 -04:00
rusefi f24cfa3698 VAG ETB calibration is a mess? 2021-10-10 22:23:33 -04:00
rusefi b62ae72c10 etb_test_hw 2021-10-10 17:10:04 -04:00
rusefi 07e6353cb5 etb_test_hw 2021-10-10 16:29:45 -04:00
Andreika 49aedb1c74 [DRAFT] IAC H-Bridge Microstepping (#3213)
* fix for stepperHbridgeHardware

* new config fields for microstepping

* add stepper dir pin mode to the dialog

* refactor stepper hw dialog & add microstepping panel

* microstepper modes enum

* stepperDcInvertedPins needed by Hellen

* add sleep() for stepper and divisor for pause()

* microstepping impl.

* make unit-tests more happy

* small progress

* fix etb-stepper dlg conflict

Co-authored-by: Andrei <andreikagit@users.noreply.github.com>
2021-10-06 13:57:04 -04:00
Andreika 99fb5e4204 [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
Matthew Kennedy dab377d15d getOrZero (#3319) 2021-10-05 19:59:07 -04:00
rusefillc 6ddce56537 https://rusefi.com/forum/viewtopic.php?p=42468#p42468 2021-10-04 19:10:31 -04:00
rusefillc 7130e86739 https://rusefi.com/forum/viewtopic.php?p=42468#p42468 2021-10-04 18:43:37 -04:00
rusefillc 873ec4cb75 wow that was a bad setting name 2021-09-26 18:07:49 -04:00
rusefi 69f6e57ac7 Revert "Hellen Nissan defaults are no longer valid fix #3143"
This reverts commit 3f81d894
2021-09-14 15:51:58 -04:00
rusefi 3f81d89482 Hellen Nissan defaults are no longer valid fix #3143 2021-09-14 15:46:21 -04:00
Matthew Kennedy f125a14497 boost debug fields (#3228) 2021-09-07 14:07:47 -04:00
rusefillc dab0ee2b9d thank you Nik - dealing with false positive CUSTOM_OBD_LOW_FREQUENCY 2021-09-06 08:09:14 -04:00
rusefillc b7a61cd363 hysteresis for GPPWM #3222 2021-09-06 07:58:17 -04:00
rusefillc 32defc75bf hysteresis for GPPWM #3222 2021-09-06 07:21:17 -04:00
rusefillc 1d95957663 hysteresis for GPPWM #3222 2021-09-05 20:18:14 -04:00
rusefillc 0d1b6f3490 hysteresis for GPPWM #3222 2021-09-05 20:16:57 -04:00
Andrey 536567cc13 SD-card log fields improvement (warning counter & last code) #3162 2021-09-05 14:43:35 -04:00
Matthew Kennedy f6e269a3ab remove old vss implementation (#3208)
* dead vss

* remove
2021-08-28 01:39:55 -04:00
Matthew Kennedy df5f7552f2 disable closed loop boost below MAP threshold (#3206)
* boost minimum map

* changelog
2021-08-27 17:54:08 -04:00
rusefillc 6247a50662 Revert "Revert "memory savings (#3195)""
This reverts commit 86cf9cf7
2021-08-27 06:18:05 -04:00
rusefillc 86cf9cf7c9 Revert "memory savings (#3195)"
This reverts commit 1b485ca2
2021-08-27 02:32:31 -04:00
Matthew Kennedy 1b485ca2d8 memory savings (#3195)
* d

* dead code

* all your ram are belong to me

* turn off gpiochips we don't need

* save

* save by using the same file handle

* smaller stack ok

* these can be on the stack

* this is closer

* what about ccm?

* probing available

* now probe ccm

* ccm

* put stuff in ccm

* fsio

* memory usage

* memory
2021-08-26 23:05:31 +03:00
Matthew Kennedy a71c2f5139 fix ETB PWM (#2870)
* iwpm

* dc motor has configure

* consume

* format

* use fake PWM to save one SimplePwm instance

* comments

* not sure why I changed that

* init the pins otherwise

* typo

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-08-19 08:33:33 +03:00
Matthew Kennedy 28575e9dbd don't print the wrong number (#3158)
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-08-15 02:10:28 -04:00
Matthew Kennedy e056369f05 actually remove FSIO idle stuff (#3150)
* debug mode

* pid cleanup

* more dead

* more dead

* wow more dead

* much dead many death wow
2021-08-14 09:48:45 +03:00
rusefillc ef3bbb063c dead idle FSIO 2021-08-14 01:48:03 -04:00
alxrMironov 9d1ce540c4 Begin "vehicleSpeed" refactoring. Module switched to "FunctionalPointerSensor" class. #3106 #3107 #3108. (#3132)
* Add new sensor type "VehicleSpeed"

* Add "Vehicle speed" sensor to name list

* Add Vehicle speed sensor initialization with function pointer sensor.

* Add init_vehicle_speed_sensor.cpp to Makefile

* Replace dependencies from "getVehicleSpeed" to OOP-like "Sensor::get()"

* Add warning and TODO to "mock vehicle speed" call

* Replace get & mock "VehicleSpeed" methods in tests

* Remove #warning directive (cause error by current settings)

* Remove stray tab

* Remove explicitly type casting.

* Add "InitVehicleSpeedSensor" function declaration to init.h

* Add "VehicleSpeedSensor" initialization call into "InitNewSensors"

Co-authored-by: alxrMironov <330OMcorporative>
2021-08-12 22:16:51 +03:00
Matthew Kennedy 7933f50ef3 skip etb init if no primary sensor (#3136)
* skip init if no primary sensor

* specific test
2021-08-12 00:45:44 +03:00
Matthew Kennedy 39388c75d8 even more pch (#3112)
* s

* more

* s

* f7
2021-08-04 19:30:52 -04:00
Matthew Kennedy 4e6b61234f yet more pch (#3068)
* big pch energy

* put back ramdisk stub

* tests are happy

* h743 nucleo

* kinetis

* I love deleting code!

* make stepper happy

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-08-03 22:05:01 -04:00
Matthew Kennedy 0ebc59b80f perform extra-step-prevention in the stepper driver itself (#3038)
* perform extra-step-prevention in the stepper driver itself

* isBusy flag

* I am unable to type

* the court of public opinion has decided that greater-equal is correct

* that sets target in steps, not percent

* correct var name

* mock stepper motor

* testable stepper

* build is happy

* helping build
2021-08-02 07:03:57 -04:00
Andrey 84e1f216d6 unit test for vehicle_speed.cpp #3081 2021-08-01 12:09:53 -04:00
Matthew Kennedy 43915f4116 gppwm vbatt axis (#3088) 2021-07-31 21:20:19 -04:00
rusefillc 32d2cf6aab 121 vag defaults have fatal error fix #3059 2021-07-26 16:40:11 -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 863a1dddaf Clutch switch inverted options do not invert detected pedal position
#3044
2021-07-24 18:59:00 -04:00
Andrey 230a5d46e7 Clutch switch inverted options do not invert detected pedal position
#3044
2021-07-24 18:44:13 -04:00
Matthew Kennedy d3d2762847 adjust taper behavior (#3051)
* adjust taper behavior

* check that taper works in running state too
2021-07-24 16:12:07 -04:00
rusefillc 809ece6c91 Clutch switch inverted options do not invert detected pedal position #3044 2021-07-24 15:54:51 -04:00
rusefillc 5fed6d2ffe Clutch switch inverted options do not invert detected pedal position #3044 2021-07-24 15:36:03 -04:00
rusefillc e575a35008 "prettyClose": some strange code inside idle controller? #3030 2021-07-22 15:30:32 -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 122ef9f637 making code more testable 2021-07-14 22:37:05 -04:00
Matthew Kennedy ba331f4895 knock sensing peak detect (#2910)
* knock peak detect

* comments

* comment

* initialize

* test

* fix warnings while we're here

* those are functions, not values

* ram
2021-07-06 21:44:59 -04:00
Andrey 54133f21f8 Option to log VVT target #2913 2021-07-06 20:00:53 -04:00
Matthew Kennedy 16dac2e47c Disable closed loop idle during cranking->running taper (#2900)
* implement

* dead file?

* implement tests

* new phase
2021-07-06 08:47:06 -04:00
Matthew Kennedy 3247d4de00 Gate closed loop idle on road speed (#2901)
* implement

* test

* b

* config
2021-07-04 09:35:12 -04:00
Matthew Kennedy ebf6083d95 test dc_motor.cpp (#2890)
* use ipwm where possible

* mock ipwm

* initialize

* test
2021-07-01 09:21:18 -04:00
Matthew Kennedy 0defaccb15 no fan if stopped engine (#2822)
* no fan if stopped engine

* config

* use config

* more tests

* merge

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-06-28 08:52:54 -04:00
Matthew Kennedy fe6f123be5 Move AC logic out of FSIO (#2872)
* new impl

* remove fsio

* inject "is ac active" to fan

* include the correct code

* include

* test

* more AC features

* AC switch vs. actual AC indicators

* include

* duh
2021-06-27 18:51:34 -04:00
Matthew Kennedy 71cbe6a3a6 dc motor api (#2869)
* iwpm

* dc motor has configure

* consume

* format

* spelling
2021-06-26 21:42:40 -04:00
Matthew Kennedy b0ef8313cd warnings (#2862)
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-06-25 20:58:38 -04:00
Matthew Kennedy f15a017402 Etb rev limit (#2820)
* cfg

* impl

* a test

* don't break the ts channel

* text
2021-06-16 08:44:48 -04:00
Matthew Kennedy 63524c3f34 fan/AC idle improvements (#2818)
* fan 2 open loop bump

* we had an AC target bump all this time?!

* format

* enable test

* I can't type
2021-06-15 17:30:35 -04:00
Matthew Kennedy 172b11bfe9 dual fans (#2806)
* remove fsio

* hard code impl

* test it

* enable fan with AC

* make commented stuff match

* second fan config

* second fan ui

* defaults

* impl
2021-06-13 08:06:45 -04:00
Matthew Kennedy 0c0957f52a apply open loop idle when in automatic mode (#2745)
* always apply open loop in closed loop

* simplify flags

* comment

* move

* comment

* missed one

* config for fan bump

* adjust miata defaults

* test fan/ac open loop

* idle CL tests

* test coasting

* test integration case

* fix merge

* put back reset logic for now

* s

* don't need that part

* I guess use OL as baseIdlePosition

* reset condition
2021-06-12 14:21:11 -04:00
Matthew Kennedy 41104dcca8 hard coded fan logic (#2805)
* remove fsio

* hard code impl

* test it

* enable fan with AC

* make commented stuff match
2021-06-11 06:25:12 -04:00
Andrey 17c07a0828 s/controlPin1/controlPin/ 2021-06-05 16:19:01 -04:00
Matthew Kennedy 70c0db189d 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 925399168a defaults cleanup: base engine & fuel (#2790)
* build

* fuel and base

* fix build

* cleanup

* extern

* tps/tps

* alternator

* tps

* iat timing

* cranking RPM

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-06-03 00:50:07 +03:00
Matthew Kennedy f21fa3e652 idle fan/AC open loop bump (#2785)
* idle open loop ui section

* idle bump logic

* test fan/ac bump
2021-06-01 00:45:04 +03:00
Matthew Kennedy 1f3cbd67ad iac coast table (#2784) 2021-06-01 00:43:58 +03:00
Matthew Kennedy 6fbdb3c2d0 make the implementation match what the UI claims (#2779) 2021-05-31 07:37:02 -04:00
Matthew Kennedy 1b607faeba Idle test that fails (#2781)
* make member func

* failing test
2021-05-31 06:18:15 -04:00
Matthew Kennedy 6118a6adc6 code style (#2780) 2021-05-31 06:01:57 -04:00
Matthew Kennedy f51dd36622 require redundant pedal (#2758)
* require redundant pedal

* return false

* I don't typing good

* tests

* tests
2021-05-30 19:19:57 -04:00
Matthew Kennedy 4e8574beca safe boost duty (#2764) 2021-05-30 14:04:04 +03:00
Matthew Kennedy b9d8416fb2 add pedal to gppwm (#2748)
* add pedal to gppwm

* string
2021-05-28 03:38:45 -04:00
Matthew Kennedy ad505bfb1b idle indicators (#2692)
* add coasting bit

* remove useless bit
2021-05-13 17:35:00 -04:00
Matthew Kennedy 0af7a9cb2d 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 37a3de07cf remove stateChangeCallback from simplepwm (#2644)
* remove callback parameter from cj125

* remove from ext

* remove stateChangeCallback

* alt doesn't need that

* demorgan

* remove call

* bad cut/paste

* check the actual pin in the test
2021-05-07 09:38:41 -04:00
Matthew Kennedy ea6cb14780 move some stuff in to ccm (#2645)
* stuff in ccm

* used memory
2021-05-07 09:35:57 -04:00