Commit Graph

2893 Commits

Author SHA1 Message Date
rusefillc 6665c4fb34 docs 2021-12-26 13:41:10 -05:00
rusefillc b337fed520 live data 2021-12-26 13:00:17 -05:00
rusefillc 7cb3eb4c9a live data 2021-12-26 13:00:17 -05:00
rusefillc 9f8ccececd docs & refactoring 2021-12-26 12:35:41 -05:00
rusefillc 63c6621dd0 E65 2021-12-23 16:59:30 -05:00
GitHub build-firmware Action 2c645bd130 Auto-generated configs and docs 2021-12-23 21:46:59 +00:00
rusefillc 713e9133b5 E65 2021-12-23 16:41:06 -05:00
Matthew Kennedy a4871c703c
Autoscale all the things! (#3713)
* Map3D accepts any scaled_channel type

* consistency

* reinstate test

* fix ratio

* throttle, boost, gppwm

* scale ignition and VE

* tests
2021-12-22 08:09:41 -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
rusefillc 66f82a0cdb 2 byte table axis #3045 2021-12-19 22:43:10 -05:00
rusefillc 8bc542b40b https://github.com/rusefi/hellen154hyundai/issues/49 2021-12-17 16:39:12 -05:00
rusefillc 4292c2fb1d MAP phase sensing fix #3544
removing dead implementation
2021-12-16 21:28:27 -05:00
rusefillc 06ccf524dd MAP phase sensing #3544
removing dead implementation
2021-12-16 21:13:55 -05:00
rusefillc f27b4dbd95 dead code? 2021-12-16 21:06:23 -05:00
GitHub build-firmware Action 1de1809074 Auto-generated configs and docs 2021-12-16 21:24:43 +00:00
rusefillc f685bab9eb live data for wastegate and launch control #3588 2021-12-16 16:19:33 -05:00
rusefillc 6542533946 live data for wastegate and launch control #3588 2021-12-16 15:17:35 -05:00
rusefillc 81759802d0 live data for wastegate and launch control #3588 2021-12-16 14:47:00 -05:00
rusefillc 655f12b45d live data for wastegate and launch control #3588 2021-12-16 14:29:39 -05:00
rusefillc 804d396fd6 live data for wastegate and launch control #3588 2021-12-16 14:28:01 -05:00
rusefillc 31ed18fe84 clutch input via CAN #3605 2021-12-15 19:20:07 -05:00
rusefillc b3a240f893 clutch input via CAN #3605 2021-12-15 17:48:21 -05:00
Matthew Kennedy 4148ee76bf
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 2050580a16
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
GitHub build-firmware Action 161d75197d Auto-generated configs and docs 2021-12-08 12:10:47 +00:00
Matthew Kennedy c83e8ae5a5
AiM dash (#3673)
* aim dash

* enum
2021-12-08 07:04:59 -05:00
Matthew Kennedy 91ec135cf8
ignition controller detects rising edge on voltage (#3636)
* ignition controller detects rising edge on voltage

* update test

* comment

* ignore negative transients

* tweak

* test
2021-12-07 21:28:04 -05:00
Andrey 50038167d8 MAP phase sensing #3544
new implementation seems complete?
2021-12-07 21:08:25 -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
Andrey e9d16bfa13 MAP phase sensing #3544
new implementation
2021-12-07 20:00:50 -05:00
Matthew Kennedy 2d05d51cf8
consolidate tps accel (#3671) 2021-12-07 18:49:21 -05:00
rusefillc b778aa7173 Pause CAN broadcast on engine stop #3665 2021-12-07 10:35:52 -05:00
rusefillc b4c07798b5 MAP phase sensing #3544 2021-12-07 08:57:23 -05:00
rusefillc 1dd3370b56 https://rusefi.com/forum/viewtopic.php?f=18&t=2236 2021-12-06 21:31:49 -05:00
Matthew Kennedy 3a95e86112
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 f826fe13aa MAP phase sensing #3544
trigger sync better gauges/logging
2021-12-06 17:04:05 -05:00
rusefillc dbb3de3618 tune via CAN #3361
pauseCANdueToSerial
2021-12-05 21:21:36 -05:00
Matthew Kennedy 7dc20b368a
Alternator controller is engine module (#3663)
* alternator is engine module

* user can't set pid period
2021-12-05 18:33:50 -05:00
Matthew Kennedy 555a8d5f43
simplify cylinder phasing (#3650) 2021-12-05 10:46:35 -05:00
Andrei 99daecb7c7 better ignition_voltage_detected message 2021-12-04 01:41:25 -05:00
rusefillc 168a899ba9 how many more spelling mistakes?! 2021-12-02 01:06:40 -05:00
rusefillc f4ab23eb2b Requesting LUA Torque intervention #3638 2021-12-02 01:02:56 -05:00
GitHub build-firmware Action 4392161ac9 Auto-generated configs and docs 2021-12-02 05:04:17 +00:00
rusefillc 0ce025b1f5 fix vBatt false-detection 2021-12-01 11:22:13 -05:00
Matthew Kennedy a37c9bca9e
Remove the EFI_NO_CONFIG_WORKING_COPY option (#3630)
* no working copy

* oops
2021-11-29 16:44:45 -05:00
rusefillc e75590fd45 why so many channels are hidden in debug ? #3614 2021-11-29 14:11:19 -05:00
rusefillc 89f92e1694 why so many channels are hidden in debug ? #3614 2021-11-29 11:54:55 -05:00
rusefillc 11e81cfb57 why so many channels are hidden in debug ? #3614 2021-11-29 10:44:41 -05:00
rusefillc 818d12f68e why so many channels are hidden in debug ? #3614 2021-11-29 10:16:45 -05:00
rusefillc 26997ab9e3 why so many channels are hidden in debug ? #3614 2021-11-29 01:02:40 -05:00
Matthew Kennedy d5363b814a
better VSS configuration (#3542)
* vss uses real values

* some defaults

* test and correct math

* km, not miles!

* comment

* tooltip

* that macro went away

* 100hz and default settings gives 9kph

* changelog

* order of operations safety

* make the test like the pwm test

* housekeeping

* this is why we need sensor automation

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-11-27 08:49:07 -05:00
rusefillc bdde177e04 skipspark script kills ECU fix #3611 2021-11-25 22:40:19 -05:00
GitHub build-firmware Action c0d3de4128 Auto-generated configs and docs 2021-11-26 02:06:11 +00:00
Andrey 0ec8b8d46c reliable 32/2 trigger shape 2021-11-25 20:45:58 -05:00
Matthew Kennedy f8403543d6
wall fuel tweaks (#3617) 2021-11-25 18:45:44 -05:00
Matthew Kennedy 0badb6b2ff
AC is EngineModule (#3604)
* AC is engine module

* missed a spot with main relay while we're at it

* TS
2021-11-25 07:59:31 -05:00
Andrey 12d5106614 isCylinderCleanupEnabled would be nice by default 2021-11-24 23:32:55 -05:00
Andrey e2fa1af527 MAP phase sensing #3544 2021-11-24 22:36:36 -05:00
Andrey f1b8acb1fd MAP phase sensing #3544 2021-11-24 22:35:56 -05:00
Matthew Kennedy 992689ced5
bye (#3609) 2021-11-24 22:03:17 -05:00
rusefillc 3077f795c4 live data for wastegate #3588 2021-11-24 12:59:57 -05:00
Matthew Kennedy 81fffe87b7
main relay doesn't use fsio (#3580)
* 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

* main relay

* plumbing

* dead fsio stuff

* test it

* by 100%, we mean 99.98%
2021-11-24 07:47:51 -05:00
rusefillc 794ec5e2b8 well Lua wants to be BIG 2021-11-23 16:40:04 -05:00
GitHub build-firmware Action 174b03e8be Auto-generated configs and docs 2021-11-22 23:12:52 +00:00
Matthew Kennedy 3334a6963c
oh my god we've had no asserts (#3595) 2021-11-22 17:52:03 -05:00
rusefillc a369e7e3d3 unusedLogFormat 2021-11-22 13:37:06 -05:00
Matthew Kennedy a342bee57e
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 cbc7c61b3e
Fix potential buffer overrun in cyclic_buffer. (#3583)
This exposed a buffer overrun, so double the size of the buffer (to account for 720 degree engine
cycle vs 360 degree crank events).

Also use proper numeric limits when computing min/max.
Finally, add a lock around the call to cyclic_buffer that actually caused the contention.
2021-11-20 03:01:11 -05:00
Matthew Kennedy bb57a4b084
detect more overflows with asan (#3582)
* overflow detector

* type list dynamic allocate

* fix the buffer length

* comment

* pr fb

* sanitize sim

* fix sim sanitizer bug

* didn't mean to turn off optimization for sim

* asan can do that, if you turn it on!

* cleaning
2021-11-20 01:38:39 -05:00
Scott Smith 5bc1949aef
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 d40ca0f581
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
rusefillc 684622e476 debug mode for skipped count for 4 cylinders #3570 2021-11-19 07:02:21 -05:00
Matthew Kennedy caee2a5439
delimeter is not comma (#3533)
* delimeter is not comma

* do it in config txt

* use txt

* s

* string

* compat

* also, spelling is hard

* use new name

* use new name

* generate enough for happy console

* use an even less common character

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-11-19 12:01:45 +03:00
Scott Smith 18c27a6e9c
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
rusefillc 877535b8ff proportional spark cut #3427 2021-11-17 23:35:26 -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 70ad9724c0
Make engine* and friends be const pointers in production. (#3564)
This allows the compiler to see through the pointer and make accesses faster.
It saves 1336 bytes of text.
2021-11-17 03:53:17 -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
rusefillc 17d4646dce spelling 2021-11-16 16:46:54 -05:00
rusefillc dad00adc28 helping launch enter simulator 2021-11-16 16:45:14 -05:00
rusefillc 678a756275 helping launch enter simulator 2021-11-16 16:31:35 -05:00
Andrey a61043e570 proportional spark cut #3427 2021-11-16 13:23:08 -05:00
Matthew Kennedy 8cdac4cac0
remove engine pointer passing (#3556)
* some

* more

* more

* the last?!
2021-11-16 04:15:29 -05:00
Scott Smith 344c9073e2
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
Andrey 0cc88ec6e2 Not all launch control options are used #3554 2021-11-15 21:13:01 -05:00
Andrey 3b0825181c technical debt: enableOverdwellProtection #3553
only documentation
2021-11-15 20:32:25 -05:00
Andrey 655b77dc3f random refactoring: trigger central encapsulation 2021-11-15 20:22:05 -05:00
Andrey 928c673695 refactoring launch 2021-11-15 20:09:03 -05:00
Andrey 05fa6071dd refactoring launch 2021-11-15 19:55:04 -05:00
Andrey 0d5df34f36 refactoring launch 2021-11-15 19:55:04 -05:00
Andrey c18204325c refactoring launch 2021-11-15 19:34:42 -05:00
Andrey f510cb8b29 refactoring launch 2021-11-15 19:24:00 -05:00
Andrey 4002c92dcc refactoring launch 2021-11-15 18:57:12 -05:00
Andrey 34015eceee refactoring launch 2021-11-15 14:40:35 -05:00
Matthew Kennedy 145316c497
less macro, more c++ (#3549)
* less macro

* s
2021-11-15 12:44:40 +01:00
GitHub build-firmware Action adbb32e9b6 Auto-generated configs and docs 2021-11-15 03:03:29 +00:00