Commit Graph

493 Commits

Author SHA1 Message Date
Matthew Kennedy fcd3d991ee
trigger tweaks cleanup (#4278)
* simplify some math

* we say yes to the todo

* and put back that test

* test
2022-06-23 23:11:29 -04:00
rusefi 271dddf61e verbose trigger sync should reuse engineSnifferRpmThreshold fix #4259 2022-06-18 15:18:45 -04:00
rusefillc 9a9047c3f9 more info verbose trigger/vvt 2022-06-17 22:11:09 -04:00
Matthew Kennedy 932f5e1f30
cam/crank sync improvements (#4152)
* clarify getOperationMode

* wait for phase synchronize to transition to sequential mode

* one test

* encapsulate vvtSyncCounter

* test

* Add option to stop VVT sync above some RPM

* getOrZero

* Revert "synchronized Phase handling improvements fix #4099"

This reverts commit 32d46d1f09.

* Revert "m_hasSynchronizedSymmetrical handling improvements #4099"

This reverts commit d5e131b1d0.

* remove synchronizedPhase

* only crank needs this

* changelog

* needsDisambiguation()

* test

* s

* bad merge

* put the timer back

* s

* s

* changelog

* test for new behavior

* correct parameter order

* spelling

* s

* s

* s

* tests merge happy

* bad merge

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2022-06-09 17:21:22 -04:00
Matthew Kennedy 4ada633206
Remove third trigger channel (#4226)
* remove third trigger

* clean up the honda mess

* there was nothing novel about this engine config

* include

* missed a few

* s

* x

* changelog

* don't set the third trigger input

* don't redefine the same thing 3 times

* only two inputs!

* test
2022-06-01 21:24:20 -04:00
Matthew Kennedy c0d8cbfef4
Trigger cleanup init (#4222)
* extra parameter

* name decoders in constructor

* s
2022-06-01 00:55:34 -04:00
Matthew Kennedy 70c2689f1e
remove trigger duty cycle calculation (#4213)
* This field was ignored.

* move pad out

* gone

* make trigger configuration a little clearer

* even simpler!

* format

* test fix

* remove duty cycle thing
2022-05-30 22:39:57 -04:00
Matthew Kennedy f945e6efc9
trigger configuration refactoring for clarity (#4212)
* This field was ignored.

* move pad out

* gone

* make trigger configuration a little clearer

* even simpler!

* format

* test fix
2022-05-30 19:36:47 -04:00
Matthew Kennedy 66fffee321
More trigger encapsulation (#4207)
* trigger decoder returns a result

* TriggerFormDetails

* s

* don't reach out and touch the engine
2022-05-29 13:49:00 -04:00
Matthew Kennedy 720c463ffb
trigger decoder returns a result (#4206) 2022-05-28 09:01:45 -04:00
Matthew Kennedy ae91b2aea8
don't rely on triggerStateListener to detect trigger errors (#4164)
* Write proper TriggerDecoder tests

* Improve logic around sync loss

* these tests I understand

* these I sort of understand....

* the one error in the noiseless decoder is gone!
2022-05-13 18:48:26 -04:00
Matthew Kennedy 170d574a5d
move logic in to trigger decoder (#4162)
* move logic in to trigger decoder

* status loop

* minor cleanup

* s
2022-05-10 23:55:28 +03:00
Matthew Kennedy d4509cab8a
TriggerState -> TriggerDecoder (#4157) 2022-05-10 11:41:39 +03:00
Matthew Kennedy 7e0f2d8337
switch back to flag (#4155) 2022-05-10 07:52:29 +03:00
Matthew Kennedy 7f5672aaec
encapsulate stuff properly (#4154) 2022-05-09 15:46:36 -04:00
rusefillc 32d46d1f09 synchronized Phase handling improvements fix #4099 2022-05-09 04:36:03 -04:00
rusefillc d5e131b1d0 m_hasSynchronizedSymmetrical handling improvements #4099
API progress
2022-05-09 04:04:38 -04:00
rusefillc 88a6b34577 helping build 2022-05-08 09:14:50 -04:00
rusefillc bd8459875d refactoring: bringing method names up to date 2022-05-08 09:04:27 -04:00
rusefillc bd9639b91d Remove value copy from controller into outputChannels #4095 2022-05-08 08:50:27 -04:00
rusefillc 1ceabed6a5 humans need humane warning messages 2022-04-18 11:35:19 -04:00
rusefillc 06e899e1bb very random progress 2022-04-16 17:07:57 -04:00
Matthew Kennedy 7d657106d7
warning cleanup (#4020) 2022-03-22 16:53:24 -04:00
rusefillc b1de262520 toothed previous time #4019 2022-03-21 20:41:09 -04:00
Andrey 26c2d76f6c migrating to SensorType::Rpm API 2022-01-20 23:36:09 -05:00
Andrey cda2b711cf migrating to SensorType::Rpm API 2022-01-20 23:32:59 -05:00
Matthew Kennedy d5c4b79b1a
Nb2 crank sync special case (#3727)
* extract isSyncPoint

* test because why not

* check vvt resync nb2

* custom nb decoder

* test only resyncs once!

* good job valgrind, you found a bug!
2021-12-31 15:47:25 -05:00
Matthew Kennedy b3de217c1b
adjustment to #3722 (#3723)
* s

* behold, another bug a test caught

* test

* test generates usable trigger pattern so it works correctly

* comment

* don't need that
2021-12-31 01:21:21 -05:00
Matthew Kennedy 4981eb43d0
extract isSyncPoint function (#3726)
* extract isSyncPoint

* test because why not

* check vvt resync nb2

* clean up noise from test case

* clarify and comment
2021-12-30 11:39:04 -05:00
Matthew Kennedy 95ad75318d
improved noFiringUntilVvtSync logic (#3696)
* s

* poke

* poke again for science

* kick for science

* kick

* kick

* comment kick

* s

* don't try to compare the array decay pointer to 0 (!)

* collateral damage

* adjust miata sync

* reset trigger states correctly on engine stop

* s

* nissan MR too
2021-12-27 12:09:38 -05:00
rusefillc f826fe13aa MAP phase sensing #3544
trigger sync better gauges/logging
2021-12-06 17:04:05 -05:00
rusefillc 934b005acb trigger sync better gauges/logging 2021-12-06 13:08:41 -05:00
rusefillc 5c0795f034 random note 2021-11-26 15:48:42 -05:00
Andrey c2fa1cea78 minor progress 2021-11-24 22:35:56 -05:00
Matthew Kennedy 9a28e8d938
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
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
Scott Smith dac67235c4
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 1db9a02f1d Revert "Don't keep a separate MultiChannelStateSequence for the trigger emulator. (#3513)"
This reverts commit 280dfa94e7.
2021-11-09 20:42:23 -05:00
Scott Smith 280dfa94e7
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 158f719d95
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
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 0d983855b9
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 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
Andrey 6fc693aea2 VVT position of first cam is off on first cycle fix #2987 2021-07-22 01:02:37 -04:00
Andrey 24cfbeba35 Nissan VVT trigger decoder #2887 2021-07-21 23:08:56 -04:00
Andrey f2cb242090 simplify quad vvt test #3018
better parameter name and explicit constraint clarification
2021-07-21 17:45:35 -04:00
Matthew Kennedy 5f3464b204
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
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
Andrey 8e30c513da unit tests pass on Linux fail on Windows fix #2902
reducing code duplication
2021-07-05 23:51:13 -04:00
Andrey 9fb7e39864 Nissan VVT trigger decoder #2887 2021-07-05 23:39:39 -04:00
rusefillc 9814264bdf Nissan 2021-07-05 18:37:53 -04:00
Andrey f5e937fe2b refactoring: getShaftSynchronized 2021-07-03 10:37:03 -04:00
Andrey 00ea760979 wow we have weird code! 2021-07-02 19:49:00 -04:00
Matthew Kennedy 8569f028d6
Fix pre sync timestamp copy (#2892)
* fix tests

* fix pre sync copy

* this fixes the issue
2021-07-01 18:58:28 -04:00
Andrey eaff083377 refactoring - explicit read method 2021-06-26 22:17:07 -04:00
Andrey bd48753682 Override trigger gaps feature #2734 2021-05-23 20:06:19 -04:00
Matthew Kennedy c26987b96b
Destroy all shared logger (#2574)
* most of shared logger

* a few more

* one more

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-04-21 14:28:48 -04:00
Matthew Kennedy ad71016862
rip the bandaid: find-replace most of scheduleMsg (#2572)
* biiiig find replace

* more trivial find replace

* pwm

* almost all of them

* few more

* gpio

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-04-21 12:53:13 -04:00
rusefi 3f914bf3ed trigger and VVT duty cycle integration into limp manager #2523 2021-04-07 15:17:01 -04:00
rusefillc 40c50adf88 trigger and VVT duty cycle integration into limp manager #2523 2021-04-07 12:16:23 -04:00
rusefillc e02f09495b trigger and VVT duty cycle integration into limp manager #2523 2021-04-07 01:21:28 -04:00
Matthew Kennedy 57b79ab6bb
trigger decoder timer (#2427)
* part 2

* stale comment

* include

* why was this a macro

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-03-07 16:35:58 -05:00
Matthew Kennedy bdacda558c
fix instant rpm (#2180)
* consumers

* impl

* instant rpm in idle timing
2021-01-14 20:45:55 -05:00
rusefillc 43f37c677a RAM efficiency of VR crank trigger shapes #2182
Audi OEM 5-cyl trigger pattern aka "Tri-Tach" https://rusefi.com/forum/viewtopic.php?f=5&t=1912

fixing build?
2021-01-04 22:13:59 -05:00
rusefillc 8c7ab1cbe3 RAM efficiency of VR crank trigger shapes #2182
Audi OEM 5-cyl trigger pattern aka "Tri-Tach" https://rusefi.com/forum/viewtopic.php?f=5&t=1912
2021-01-04 22:00:37 -05:00
rusefillc 8fb32b517b Audi OEM 5-cyl trigger pattern aka "Tri-Tach" https://rusefi.com/forum/viewtopic.php?f=5&t=1912 2021-01-04 21:30:54 -05:00
rusefillc 15665484e5 Audi OEM 5-cyl trigger pattern aka "Tri-Tach" https://rusefi.com/forum/viewtopic.php?f=5&t=1912 2021-01-03 13:52:53 -05:00
rusefi 719ad92681 FATAL while bench testing VR #2153 2021-01-01 14:07:52 -05:00
rusefillc 9efd231915 minor fixes 2020-12-06 19:25:48 -05:00
Matthew Kennedy c9fdde4472
remove virtual calls from hot path (#1857)
* const ref-ify

* no virtual 

* even more const

* tests

* fix tests
2020-10-05 16:42:50 -04:00
Matthew Kennedy 5925a5f4bd
const ref-ify trigger (#1856)
* const ref-ify

* tests
2020-10-05 14:22:59 -04:00
Matthew Kennedy 3aa4f2bd97
trigger decode cleanup and perf (#1853)
* trigger decode cleanup

* test config ptr patchup

* disable CDM by default
2020-10-04 19:29:26 -04:00
rusefillc 348b387483 Trigger performance: variable gapTrackingLength #1851
cool change but looks to have made zero difference
2020-10-04 13:05:49 -04:00
rusefi 16d16f9634 TriggerConfiguration getPrintPrefix 2020-08-29 17:25:42 -04:00
rusefi 4e5f53493d common sense change? "should be safe" famous last words 2020-08-27 00:31:59 -04:00
rusefi 2b77901e53 VVT support for VAG trigger #883 2020-08-27 00:06:10 -04:00
rusefi e4386be937 VVT support for VAG trigger #883 2020-08-26 20:57:11 -04:00
rusefi c27a79760c const 2020-08-26 17:37:15 -04:00
rusefi 0c5db46438 const 2020-08-26 17:30:13 -04:00
rusefi ce01c1bfaa VVT support for VAG trigger #883 2020-08-25 13:14:46 -04:00
rusefi b09091774a VVT support for VAG trigger #883 2020-08-25 12:45:18 -04:00
rusefi 540eef5e0d VVT support for VAG trigger #883 2020-08-25 00:59:07 -04:00
rusefi 5f5a16867a VVT support for VAG trigger #883
a bit of dead code?
2020-08-24 02:31:27 -04:00
rusefi a98c622b54 VVT support for VAG trigger #883 2020-08-24 02:23:13 -04:00
rusefi 3a2670d5de VVT support for VAG trigger #883 2020-08-24 02:07:58 -04:00
rusefi 7867e83e43 VVT support for VAG trigger #883 2020-08-24 02:01:50 -04:00
rusefi 95bd50da94 VVT support for VAG trigger #883 2020-08-24 01:21:42 -04:00
rusefi 74f8efd7e1 Trigger gap-check toothDuration array samples time at any event? fix #1658 2020-07-30 19:24:55 -04:00
rusefi 49e9e08c65 better unit test logging 2020-07-19 15:47:21 -04:00
rusefi fbfef8290c better unit test logging 2020-07-19 14:17:15 -04:00
Matthew Kennedy b11c5cd8c8
switch some firmware warnings to errors (#1465)
* warnings as errors

* throw instead of exit

* test massaging

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-05-23 10:46:28 -04:00
rusefi f233628c2c lovely, yet another minor confusion 2020-05-13 01:16:05 -04:00
rusefi 38ec6d812d https://github.com/rusefi/hw_microRusEfi/issues/157 2020-05-12 23:37:12 -04:00
Matthew Kennedy 1f16228bdb
Perf Trace Improvements (#1383)
* add tid field to thread

* change perf trace format

* trace consumers

* Update java parsing

* guard for test + kinetis

* stubs

* ram

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-04-29 10:53:35 -04:00
rusefi e5f97a4ccf more verbose 2020-04-15 20:07:56 -04:00
Matthew Kennedy ff867b9301
fix warnings (#1282)
* warnings

* don't need to template those
2020-04-12 09:39:14 -04:00
rusefi 6a94a58796 progress 2020-04-10 13:32:06 -04:00
rusefi fb06813e12 DBG_TRIGGER_SYNC merged into DBG_TRIGGER_COUNTERS 2020-04-10 13:19:54 -04:00
rusefi 607692695e safer version by Dron0Gus 2020-04-06 11:29:09 -04:00