Commit Graph

1679 Commits

Author SHA1 Message Date
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
Andrey 0f6c9e15c3 MAP phase sensing #3544
new implementation
2021-12-07 20:00:04 -05:00
Andrey c793b19538 MAP phase sensing #3544
look new unit test!
2021-12-07 16:58:10 -05:00
rusefillc ddbe875d98 MAP phase sensing #3544
trigger sync better gauges/logging
2021-12-06 17:04:05 -05:00
rusefillc e0d5a5afac trigger sync better gauges/logging 2021-12-06 13:08:41 -05:00
rusefillc 2b465be253 MAP phase sensing #3544
option to look for high and low peaks
2021-12-05 14:25:26 -05:00
rusefillc 52d770c2bf MAP phase sensing #3544 2021-12-04 18:47:14 -05:00
rusefillc e0559a8548 MAP phase sensing #3544
taking a step back to happy place
2021-12-04 18:21:10 -05:00
rusefillc f3a3d96fa9 MAP phase sensing #3544
trying longer average
2021-12-04 17:06:59 -05:00
Matthew Kennedy 99367c8348 log actual tooth angle (#3646) 2021-12-02 19:22:33 -05:00
rusefillc 9ce37314c0 Engine phase wrap around in log #3645
refactoring & docs
2021-12-02 17:06:20 -05:00
rusefillc 2476fae92a Engine phase wrap around in log #3645
refactoring & docs
2021-12-02 17:06:20 -05:00
rusefillc 37ed110750 how many more spelling mistakes?! 2021-12-02 01:06:40 -05:00
GitHub build-firmware Action f6d6fab004 Auto-generated configs and docs 2021-12-01 00:36:32 +00:00
Matthew Kennedy faf4801175 remove define_constructor (#3640)
* no define_constructor

* jar

* sim needs live doc
2021-11-30 19:31:54 -05:00
rusefillc 631d71cea7 random note 2021-11-26 15:48:42 -05:00
Andrey e3920a3159 reliable 32/2 trigger shape 2021-11-25 20:45:58 -05:00
Andrey 7fa2fa5707 MAP phase sensing #3544 2021-11-24 23:06:52 -05:00
Andrey 670bd74376 MAP phase sensing #3544 2021-11-24 22:41:49 -05:00
Andrey 695557f709 MAP phase sensing #3544 2021-11-24 22:36:36 -05:00
Andrey 4e45297145 minor progress 2021-11-24 22:35:56 -05:00
Matthew Kennedy 9bd8a19564 oh my god we've had no asserts (#3595) 2021-11-22 17:52:03 -05:00
Scott Smith 9d61fb4cfd Drop SingleChannelStateSequence in favor of MultiChannelStateSequenceWithData (#3519)
* Drop SingleChannelStateSequence in favor of MultiChannelStateSequenceWithData

Most all the users were Multi* anyways, so just improve that:
1. Allow up to 8 waveforms to share one byte per timestamp.  It could be better but this is simple
   and gets most of the benefit.
2. Use a wrapper structure to handle reserving space for the arrays.  Makes the interface simpler
   and more rigid.  Also saves 4 bytes per Multi*.  Downside is access is now via -> and *,
   not . and (nothing).

Saves 224 bytes of BSS, 1832 bytes of RAM4/CCM, 952 bytes of TEXT, and 103 bytes of RODATA

* Instantiate a base_t to make debugging easier.
Also fixes crash on real firmware by using &m_base instead - LTO optimization issue?

* No magical templated StaticAlloc thingy.  Just virtual functions.
2021-11-21 04:56:07 -05:00
Matthew Kennedy b9f8409f59 correctly compute engine revolution number (#3586)
* add param

* first revolution is revolution 0, not revolution 1

* would you look at that, we sync one rev quicker!

* changelog

* rpm value
2021-11-21 09:01:27 +03:00
Matthew Kennedy 569415930c 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
rusefillc a3fc6d3e80 brave refactoring 2021-11-19 23:56:52 -05:00
Matthew Kennedy 7dee1e42eb adjust miata sync conditions (#3577) 2021-11-19 02:30:05 -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 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
Andrey 7b790d36f6 random refactoring: trigger central encapsulation 2021-11-15 20:22:05 -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
rusefillc 8cb1f2545c trigger refactoring & docs 2021-11-14 15:35:11 -05:00
Matthew Kennedy af78ab76cb math is fun (#3545)
Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-11-14 15:32:35 -05:00
rusefi 291f815b2d Something something Automatic Compression Release #3442 2021-11-14 15:04:10 -05:00
rusefillc 29670184e2 script settings need names! 2021-11-13 22:47:46 -05:00
Matthew Kennedy 8edc91f657 mercedes two lobe trigger testing (#3543)
* mercedes

* config

* break;

* I did the gap ratio math wrong

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-11-13 21:50:04 -05:00
Scott Smith 93d31c6c9b Convert TriggerWaveform::wave to a pointer in preparation for code-defined sequences. (#3528)
It will eventually be class to support dynamic universal patterns in addition to ROM-based
tables.
2021-11-11 13:19:25 -05:00
Scott Smith aec887efc8 Change users of MultiChannelStateSequence to use the API (#3524)
Better than reaching into members that should be private. I didn't feel like actually making
them private though, as one user validates pinStates isn't NULL.
2021-11-11 09:19:22 -05:00
Scott Smith 1a299a3221 Move phaseCount into MultiChannelStateSequence (#3520)
We can them drop the field from a bunch of callers, simplifying the code.
2021-11-10 19:47:27 -05:00
Scott Smith 5bd7d8e372 Don't keep a separate MultiChannelStateSequence for the trigger emulator, version 2. (#3517)
All it wants is to use the main trigger state, so don't bother copying it.  Instead, change
PwmConfig to take a const pointer to a Multi.*Sequence, then make all the users adapt.  Worse
fallout is that SimplePwm now has its own Multi.*Sequence, but PwmConfig is downgraded to a
pointer, so that's only a net +4 bytes.  And we can make the overhead of Multi.*Sequence much lower
using embedded arrays, which only the caller can do since it knows the maximum size... (for another
day...)

Also remove SimplePwm's 2nd copy of SingleChannelStateSequence.  It served no purpose.

Saves 1992 bytes of BSS and 24 bytes of RAM4 (latter probably due to SimplePwm change)
2021-11-10 07:01:20 -05:00
rusefillc 38ea0d1835 Revert "Don't keep a separate MultiChannelStateSequence for the trigger emulator. (#3513)"
This reverts commit 4e220dc163.
2021-11-09 20:42:23 -05:00
Scott Smith 4e220dc163 Don't keep a separate MultiChannelStateSequence for the trigger emulator. (#3513)
All it wants is to use the main trigger state, so don't bother copying it.  Instead, change
PwmConfig to take a const pointer to a Multi.*Sequence, then make all the users adapt.  Worse
fallout is that SimplePwm now has its own Multi.*Sequence, but PwmConfig is downgraded to a
pointer, so that's only a net +4 bytes.  And we can make the overhead of Multi.*Sequence much lower
using embedded arrays, which only the caller can do since it knows the maximum size... (for another
day...)

Also remove SimplePwm's 2nd copy of SingleChannelStateSequence.  It served no purpose.

Saves 1992 bytes of BSS and 24 bytes of RAM4 (latter probably due to SimplePwm change)
2021-11-09 14:35:07 -05:00
Scott Smith 9b40e68155 Save ~2800 bytes of RAM by not caching angle->trigger mapping (#3506)
Memory seems more valuable than CPU; use the O(lg n) lookup by angle.  A side effect is that it
seems to fix trigger lookup for the second phase of TRIGGERTYPE 53 544 TT_TRI _TACH 0.00
2021-11-09 07:03:27 -05:00
Andrey 94faa375e1 reducing complexity 2021-11-07 01:57:32 -05:00
rusefillc d0a8bbc974 typo 2021-11-07 01:51:05 -05:00
rusefillc 4f6dc57d31 refactoring - magic constant bad
cypress and kinetis both have this macro already
2021-11-07 01:34:16 -04:00
rusefillc 73fe152db2 refactoring - magic constant bad
cypress and kinetis both have this macro already
2021-11-07 01:28:28 -04:00
rusefillc 5ddd516860 refactoring - magic constant bad 2021-11-07 00:09:17 -04:00
rusefillc fd28e82f73 refactoring - magic constant bad 2021-11-07 00:03:16 -04:00
Matthew Kennedy f45d365f24 log current engine phase on trigger teeth (#3471)
* log phase on trigger teeth

* ui

* guard
2021-11-05 20:02:15 -04:00
Matthew Kennedy 2c47f603fc make master happy (#3467) 2021-11-05 16:01:13 -04:00
Matthew Kennedy b41dbe2ed1 nissan MR18DE VVT cam pattern (#3466)
* refactoring nissan trigger

* comments

* plumbing

* b

* enums

* image

* image

* implement decoder

* reshuffle

* don't case unused

* dead trigger enums
2021-11-05 15:33:22 -04:00
Matthew Kennedy 6b85313b04 nissan 4yl crank pattern (#3462)
* refactoring nissan trigger

* comments

* plumbing

* b
2021-11-05 07:15:03 -04:00
Matthew Kennedy cadaf2a801 extract engine phase function (#3456)
* extract getCurrentEnginePhase

* inject engine ref

* never invalid RPM, use 0 instead

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-11-04 05:46:16 -04:00
Andrey cc0a93080f Honda K cam wheels #3405 2021-10-30 21:09:58 -04:00
rusefillc a2f1cd2467 Override trigger gaps feature #2734 2021-10-30 10:45:32 -04:00
Andrey 1685ec95cf Honda K cam wheels #3405 2021-10-28 19:26:59 -04:00
Andrey 965333e410 dead magic macro 2021-10-28 19:18:50 -04:00
rusefi 74d302ad50 VVT to be reported after primary 2021-10-28 16:46:54 -04:00
Andrey 68c1995044 Honda K cam wheels #3405 2021-10-28 13:49:54 -04:00
Andrey 94b5b3a089 Honda K cam wheels #3405 2021-10-28 11:40:31 -04:00
Andrey 5527f77589 Honda K cam wheels #3405 2021-10-28 10:36:41 -04:00
Andrey 5fcb2f75a5 refactoring: extracting method to improve readability 2021-10-28 10:30:05 -04:00
Andrey df67d76968 Honda K cam wheels #3405 2021-10-26 22:47:19 -04:00
rusefi 6c554e09f8 Honda K cam wheels #3405 2021-10-26 17:29:26 -04:00
rusefillc 996a39ba6e generate java enum from C enum? generate both C and java from yaml? #2102 2021-10-25 11:05:45 -04:00
Andrey 98fe894ce1 Honda K cam wheels #3405 2021-10-24 17:12:19 -04:00
rusefillc 61af92bb25 progress 2021-10-24 15:30:17 -04:00
GitHub build-firmware Action fbcacc4cc9 Auto-generated configs and docs 2021-10-23 23:05:27 +00:00
rusefi 4dd1ae7035 triggerinfo progress 2021-10-23 19:01:31 -04:00
rusefillc 45e0a0403f very old very dead code 2021-10-20 12:57:07 -04:00
rusefillc bee1eb2c6b very old very dead code 2021-10-20 10:38:36 -04:00
GitHub build-firmware Action 5ab712c51d Auto-generated configs and docs 2021-10-17 01:13:47 +00:00
rusefillc 86db25f94a progress - live doc generator works again! 2021-10-16 21:08:50 -04:00
rusefillc 94be3608a1 better file locations 2021-10-16 20:17:01 -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 b7f6c40847 https://rusefi.com/forum/viewtopic.php?f=5&t=2143 Suzuki G13B tooth pattern 2021-10-04 19:59:51 -04:00
Andrey de5af3f4ca https://rusefi.com/forum/viewtopic.php?f=5&t=2143 Suzuki G13B tooth pattern 2021-10-04 19:29:58 -04:00
rusefillc 6350d0923a https://rusefi.com/forum/viewtopic.php?f=5&t=2143 Suzuki G13B tooth pattern 2021-10-04 11:25:27 -04:00
rusefillc fec25e0a39 Nick has RPM spikes and engine hiccups #3269 2021-10-03 01:48:34 -04:00
rusefillc c89b06fa07 miata NB1 is a weird half-VR/half-Hall sensor 2021-09-29 14:31:36 -04:00
Matthew Kennedy 085709b6ba fix (#3253) 2021-09-21 00:27:14 -04:00
rusefillc 3962c20c3f https://rusefi.com/forum/viewtopic.php?f=5&t=2117 2021-09-12 13:58:03 -04:00
Andrey 60fdcbbd99 https://rusefi.com/forum/viewtopic.php?f=5&t=2117 2021-09-12 11:56:12 -04:00
rusefi fdab33d958 https://rusefi.com/forum/viewtopic.php?f=5&t=2117
Ford TFI PIP
2021-09-11 23:42:05 -04:00
rusefi ed7bb0389b https://rusefi.com/forum/viewtopic.php?f=5&t=2117
Ford TFI PIP
2021-09-11 23:16:22 -04:00
Matthew Kennedy 98c4e71f03 enable address sanitizer (#3217)
* enable asan

* lua

* this is dead and leaky

* leaky nissan

* fix pwm generator use-after-stack

* initializers

* prevent problems in case of invalid trigger shape

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-09-05 05:56:59 -04:00
Andrey G aead310023 Subaru svx trigger update (not vvt) (#3210)
* trigger: subaru: SVX: some comments

* trigger: subaru: svx: fix crank 2 offset

* trigger: subaru: svx: rework a bit

* trigger: subaru: svx: fix dtc position
2021-09-04 11:42:12 -04:00
rusefillc 67eb6d9936 Subaru svx vvt #3210
helping or not
2021-08-31 06:05:57 -04:00
rusefillc dff71b0764 Subaru svx vvt #3210
helping or not
2021-08-31 05:54:04 -04:00
rusefillc 07ac5049f4 docs 2021-08-31 04:27:31 -04:00
rusefillc 02bc451221 Pavel says there are issues 2021-08-11 04:16:51 -04:00
Andrey 76412dffde Nissan 4 cylinder QR trigger wheel #3118 2021-08-08 06:16:19 -04:00
Andrey b5313d395e Nissan 4 cylinder QR trigger wheel #3118 2021-08-08 04:56:56 -04:00
Andrey bbd855d62b Nissan 4 cylinder QR trigger wheel #3118 2021-08-08 04:45:40 -04:00
rusefillc 46e6e621da reduce chance of invalid CAM setting fix #3105 2021-08-03 22:15:40 -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 e3e5e57eac instant rpm uses full engine cycle (#3077)
* instant rpm uses full engine cycle

* turn off fast spinup for this test
2021-07-30 08:18:24 -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
rusefillc bc9f85ff31 safer NB2 progress (#3041)
* safer NB2 progress

* one step back
2021-07-23 16:43:24 -04:00
Andrey e8aef0dcd3 VVT position of first cam is off on first cycle fix #2987 2021-07-22 01:02:37 -04:00
Andrey 2a07c3df27 Nissan VVT trigger decoder #2887 2021-07-21 23:08:56 -04:00
Matthew Kennedy 3cbd983c93 adjust nb2 vvt sync (#3019)
* test existing implementation

* nb2 vvt pattern sync

* update test
2021-07-21 20:07:28 -04:00
Andrey c433c20a36 simplify quad vvt test #3018
better parameter name and explicit constraint clarification
2021-07-21 17:45:35 -04:00
Matthew Kennedy 2a4dfd0bf8 Fix prepareEventAngles for symmetrical crank triggers (#2982)
* fix and make code legible

* update test to check every tooth

* symmetrical crank

* simplify findTriggerPosition

* make getAngle intelligable
2021-07-17 23:27:20 -04:00
Andrey c9360448cc NB2 trigger shape does not seem to match JimStim #2980
only first steps of unit test
2021-07-17 17:47:32 -04:00
rusefillc a35e2cbb18 kaiju is asking for vq30de trigger wheel decoder #2974 2021-07-17 02:03:55 -04:00
Andrey 39364ced59 kaiju is asking for vq30de trigger wheel decoder #2974 2021-07-17 01:10:13 -04:00
Andrey 8a9999c87f refactoring 2021-07-17 00:56:50 -04:00
Andrey 46098135d9 refactoring 2021-07-17 00:53:51 -04:00
Andrey 1a2389b034 kaiju is asking for vq30de trigger wheel decoder #2974 2021-07-17 00:46:39 -04:00
Andrey d76132c206 refactoring 2021-07-17 00:46:39 -04:00
Andrey f69690a36a kaiju is asking for vq30de trigger wheel decoder #2974 2021-07-17 00:27:56 -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 64d95dd5aa trigger signal debug pins - logic level output #2959 2021-07-16 17:18:03 -04:00
Andrey cbbfce2123 trigger signal debug pins - logic level output #2959 2021-07-16 16:42:26 -04:00
rusefi c5399a4632 FATAL on NB2 tune jim stim input signal fix #2965 2021-07-14 21:18:05 -04:00
Andrey d93cece1dc FATAL on NB2 tune jim stim input signal #2965 2021-07-14 16:05:53 -04:00
Andrey 47f285c50c FATAL on NB2 tune jim stim input signal #2965 2021-07-14 16:03:00 -04:00
Andrey 8814476f8b trigger signal debug pins - logic level output #2959 2021-07-13 20:33:27 -04:00
Andrey 564c380851 trigger signal debug pins - logic level output #2959 2021-07-13 20:15:55 -04:00
Andrey b3f33a1249 trigger signal debug pins - logic level output #2959 2021-07-13 18:16:32 -04:00
rusefillc 206bf7adc8 reducing warnings 2021-07-13 14:50:10 -04:00
Matthew Kennedy ff9c14c239 fix vvt indication (#2926)
* wrap logic

* rename gauges

* names and ranges

* binary log

* we actually don't need that warning

* values auto wrap

* values auto wrap

* bye warnings

* comparison
2021-07-12 16:29:07 -04:00
Andrey ab3a862f19 reducing code duplication 2021-07-06 00:09:35 -04:00
Andrey 3759028a32 unit tests pass on Linux fail on Windows fix #2902
reducing code duplication
2021-07-05 23:51:13 -04:00
Andrey 8f13e5711a Nissan VVT trigger decoder #2887 2021-07-05 23:39:39 -04:00
Andrey bb181ac8fd Nissan VVT trigger decoder #2887
another bug - improper handling of three-times-symmetrical
2021-07-05 23:15:44 -04:00
Andrey 5416dd9906 refactoring - reusing magic constant 2021-07-05 23:07:36 -04:00
Andrey eceaa1f377 Nissan VVT trigger decoder #2887
that looks like one bug
2021-07-05 22:44:20 -04:00
Andrey 7ec3ef4b28 Nissan VVT trigger decoder #2887
that's all very strange
2021-07-05 22:17:26 -04:00
Andrey 59e33b3577 restore testQuadCam #2911 2021-07-05 21:04:09 -04:00
rusefi de750354a2 Nissan progress!!! 2021-07-05 20:29:49 -04:00
Andrey f8d5e3f51b Nissan 2021-07-05 18:43:39 -04:00
rusefillc e223ff4d9e Nissan 2021-07-05 18:38:34 -04:00
rusefillc 32a813339d Nissan 2021-07-05 18:37:53 -04:00
Andrey 4c19e22237 Nissan VVT trigger decoder #2887
one step back
2021-07-03 12:42:07 -04:00
Andrey fb7639f347 Nissan VVT trigger decoder #2887 2021-07-03 12:26:31 -04:00
Andrey e34b04bd46 Nissan VVT trigger decoder #2887 2021-07-03 12:02:00 -04:00
Andrey 2ad22a262b Nissan VVT trigger decoder #2887 2021-07-03 11:08:22 -04:00
Andrey 9ad5ec8044 refactoring: getShaftSynchronized 2021-07-03 10:37:03 -04:00
Andrey 26fdfb1ab6 Nissan VVT trigger decoder #2887 2021-07-03 10:15:41 -04:00
Andrey f3ffecbc2b Nissan VVT trigger decoder #2887 2021-07-03 09:43:27 -04:00
Andrey cd4842f2b8 Nissan VVT trigger decoder #2887 2021-07-02 20:28:15 -04:00
Andrey 9339f0169d Nissan progress 2021-07-02 20:12:31 -04:00
Andrey 2911e128d9 Nissan progress 2021-07-02 19:57:26 -04:00
Andrey 7b21e5cf29 wow we have weird code! 2021-07-02 19:49:00 -04:00