Commit Graph

186 Commits

Author SHA1 Message Date
Matthew Kennedy 5c50ad2db4
infer useOnlyRisingEdge by trigger type (#4621)
* most of the plumbing

* easy tests

* trigger types that are rise only

* configs

* change mode of various triggers

* vvt

* 898 test is now impossible 🥳

* s

* instant rpm test

* actually remove useOnlyRisingEdgeForTrigger

* remove vvtCamSensorUseRise

* s

* print

* one happy test

* another test

* happy testSomethingWeird

* happy testCamInput

* maybe fix it a different way

* better

* quad cam

* nb2 happy

* bad merge

* vvt test

* trigger.test1995FordInline6TriggerDecoder

* hellen gm e67

* changelog
2022-11-08 21:48:39 -05:00
Matthew Kennedy 940e0dc369
require ignition on for firing (#4628)
* require ignition on for firing

* too much havoc for a unit test

* patch up references

* last one

* fix changelog mangling

* fix the changelog template too

* bad merge

* fix the template again

* s

* fake battery voltage on hw ci

* ugh merge

* ugh merge
2022-10-04 20:36:03 -04:00
Andrey ab4b451195 os_access.h dead? 2022-09-07 15:56:45 -04:00
Andrey 4934d76d88 tear down Engine god object #4511
just trying different things
2022-09-05 04:24:17 -04:00
Andrey d51511a15e refactoring: moving field 2022-09-05 00:53:05 -04:00
Andrey d329f8ae10 tear down Engine god object #4511
just trying different things
2022-09-03 07:44:24 -04:00
Matthew Kennedy 423f69a842
allow logging multiple warnings at once (#4414)
* allow logging multiple warnings at once

* comment

* .Code

* Revert ".Code"

This reverts commit 2b986bd50035aeec051d11aafd83fdbc1694351c.

* add a better comparison operator instead of conversion

* dot code

* Revert "dot code"

This reverts commit 35f6ae1007c41e3b30ea129a324f33ab4205036d.

* force gcc-10 maybe?

* Revert "force gcc-10 maybe?"

This reverts commit 4ddf8bcefddd354ccdc1da682c5fff1e68d44273.

* vq

* dot code

* dead

* dot code

* return may be null

* static_vector; maybe cyclic_buffer is broken or wrong tool for the job?

* move static vector

* put cyclic buffer back how it was since we don't use it now
2022-08-17 01:12:25 -04:00
rusefillc c81ede01de [SECURITY] Cheap password protection against tune modification fix #4243
helping build
2022-07-30 14:33:11 -04:00
rusefillc 26ae6f7490 [SECURITY] Cheap password protection against tune modification fix #4243 2022-07-30 12:23:53 -04:00
rusefillc cad14d6541 #4308 progress 2022-07-14 12:36:55 -04:00
rusefillc 82131e5572 Uniform reset pattern for all Lua adjustments #4308
no progress only preparation
2022-06-30 20:07:27 -04:00
Matthew Kennedy 172479e2af
fix (#4254) 2022-06-17 21:20:47 -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 16de438ab8
knock threshold table fix (#4077)
* fix knock threshold table

* defaults

* knock controller is engine module

* testable

* test builds

* knock tests work

* s

* format

* everyone loves changelogs
2022-04-18 08:03:16 -04:00
rusefillc 08c50cc1dd logging of live data structs was: data points #3614
progress
2022-04-16 21:04:02 -04:00
rusefillc 3c7eb93fe1 steps towards ignition live data 2022-04-13 16:48:25 -04:00
Matthew Kennedy f1897ba7aa
less dependence on that logger (#3884)
* less dependence on that logger

* comma

* refactor a bit, make it clear what this thing actually *does*

* static

* shrink the buffer a bit and make names useful

* dead util that's just subtraction lol
2022-02-09 06:53:16 -05:00
Matthew Kennedy d8073e8b27
remove mock adc (#3888)
* remove mock adc

* do these do /anything/?
2022-02-03 20:43:34 -05:00
Matthew Kennedy 06437f304f
dead StartupFuelPumping (#3883)
* dead

* test

* dead config too
2022-02-03 08:01:21 -05:00
Matthew Kennedy 717d931e78
refactor decel fuel cut (#3830)
* refactor dfco

* s

* output channel logs dfco

* slightly cheeky comment
2022-01-23 19:44:41 -05:00
Andrey e55eb28086 migrating to SensorType::Rpm API 2022-01-20 22:42:13 -05:00
Andrey 9f08db256b migrating to SensorType::Rpm API 2022-01-20 22:12:04 -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 ab3e3ac83f
hook up fuel trims (#3715)
* hook up fuel trims

* pass all the params

* store per-cylinder fuel mass directly

* main trigger callback only touches per-cylinder, no banks!

* test test test test

* move UI to happy land

* changelog
2022-01-01 02:19: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 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
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 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 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 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 4002c92dcc refactoring launch 2021-11-15 18:57:12 -05:00
rusefillc 4533ce4764 refactoring - extracting idle state 2021-10-16 23:55:29 -04:00
Matthew Kennedy 9797d25b7c
getOrZero (#3319) 2021-10-05 19:59:07 -04:00
rusefillc e242315773 more of LuaAdjustments 2021-09-24 00:34:06 -04:00
Matthew Kennedy 0978722225
lua hook for timing add (#3260)
* load script

* test

* needs more rams

* embiggen stack

* init system lua from lua thread

* de-embiggen stack

* infra

* hook

* system needs a little more

* semicolon

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-09-23 23:50:47 -04:00
Matthew Kennedy 0e2af73e9c
Knock count (#3240)
* knocky knocky

* check the right thing

* improve operator

* TS

* s

* bbbbb
2021-09-20 14:27:26 -04:00
rusefillc 4c7e8560e0 refactoring: reduce magic constant 2021-08-09 16:33:06 -04:00
Matthew Kennedy 25414ebdad
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 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 e00c7d0b98
trailing coils (#2937)
* gpio wiring

* plumbing
2021-07-09 15:51:30 -04:00
Matthew Kennedy 86683afca2
trailing spark scheduling (#2932)
* enable bit

* implement trailing sparks

* test trailing spark

* it helps to call the correct function

* add pins

* gobblin ram
2021-07-09 08:37:46 -04:00
Matthew Kennedy 3a30f038ce
kill engine if no oil pressure (#2800)
* min oil pressure for crank

* do it time-based

* rename field

* include

* fix existing test

* tests

* fix logic

* more test

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-06-16 17:20:28 -04:00
Matthew Kennedy 04f9019df2
Post cranking fuel tweaks (#2718)
* post cranking factor limits

* sensible defaults

* but not for tests

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-05-17 17:24:29 -04:00
Matthew Kennedy 3968204dfa
Hook up multi bank fuel trim (#2532)
* multi bank trim

* cleaning

* output channels

* output channels
2021-05-08 17:41:50 -04:00
Matthew Kennedy bbb6b6dd14
remove simple cases of LoggingWithStorage (#2569)
* remove simple cases

* more simple

* serial

* s

* more

* try memory

* easy

* mmc acc

* that's how much memory

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-04-19 08:11:59 -04:00
Matthew Kennedy 650d148008
Usable fuel consumption data/gauges (#2474)
* fuel consumption

* gauge names

* consumers

* obd

* binary logging

* doesn't need explicit constructor

* getters

* it works

* correct for injections per cycle

* datalog

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-03-19 17:04:42 -04:00
Matthew Kennedy 5067b81fce
Compute injection duration later in the pipeline (#2175)
* injector model, test

* new math

* inject fuel based on new math

* tests

* fix

* it should work like this

* format

* update TPS AE even when we're cutting fuel

* comment

* conversion factor

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-03-03 07:30:56 -05:00
Matthew Kennedy 4a1d3de9a6
remove unused msg parameter (#2360)
* dead parameter

* last few
2021-02-16 09:32:16 -05:00
rusefillc 56072ac889 M62T vanos support #2243 2021-02-08 22:30:02 -05:00
rusefillc 081357ca5e M62T vanos support #2243 2021-02-08 22:07:14 -05:00
Matthew Kennedy 571122d461
Start support for multi-bank closed loop fueling (#2184)
* cfg

* cell

* N banks

* tests

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-01-10 08:10:49 -05:00
Matthew Kennedy ff4ce2fb1f
create limp manager (#2142)
* move rev limit to limp manager

* call fatal error

* include order

* fix bug

* tests

* comment

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-12-26 17:30:46 -05:00
rusefillc 75ffe1f38e making console happier 2020-12-05 21:56:39 -05:00
shadowm60 6fb745d29c
Launch Control refactoring (#1992)
* refactor

- called from periodicFastCallback
- removed defines

* Update rusefi.input

removed unused configurations.
added clutch inversion option

* Added new tests

fixed limiting only in case we have launch condition and rpm outside of window

* Update launch_control.cpp

Unintialized config update, now it is working fine with VSS and with clutch as well.

* small fixes

updated after review findings

* Fix breaking engine rev limiter

applyLaunchControlLimiting should not overwrite booleans to false!

* Delay timer in seconds

timer uses ms, so convert seconds to ms
2020-12-01 13:03:42 -05:00
Matthew Kennedy 09b41bb1bb
Everything in lambda! (#1893)
* lambda

* default configs, fix build

* config, gauge, UI

* more digits

* change menu text

* fix that while I'm here

* doesn't need extra word

* todo note

* tests

* last test

* missed a config

* update java

* store target lambda

* more java

* format

* hopefully enough java for CI to pass
2020-10-26 18:15:17 -04:00
rusefillc b24f173892 refactoring: better method name 2020-10-17 18:45:08 -04: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 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
David Holdeman 337106cd24
DebounceButton A/C switch (#1782)
* change acSwitch name, add mode

* fix

* remove some adc stuff

* remove some adc stuff

* semicolon stupid

* left behind

* add readpinstate

* wrong var name

* add functions back

* fix name

* bool, not void, plus fix name

* move

* not sure what I broke

* try setMockValue

* namespace

* whoops missed one

* switch values because adc was set up for pullup

* try 5

* comment for now

* comment for now

* uncomment tests, add function to mock, add mock to efiReadPin

* fixes

* for F's sake

* if

* add defy

* pass params

* use ASSERT_TRUE/FALSE

* advance time

* remove ifdef from readPin

* try moving if

* move to separate func

* move extern

* move include

* try engine_test_helper

* am confuse

* move func to else

* include hal

* add efi prod check

* remove include

* try extern

* move include

* semicolon stupid

* move extern again

* include

* move mockPinStates

* size

* add if

* add comment

* clean on instantiation
2020-09-10 22:16:20 -04:00
Matthew Kennedy 6e7d72170f
Move ve logic (#1762)
* move ve

* fix build

* fix rendering

* duh

* cleaning

* correct scaling

* put some back

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-09-06 19:06:32 -04:00
Matthew Kennedy 95798a5246
fix broken master, inject engine ptr to rpmcalculator (#1759)
* fix

* oops
2020-09-05 18:49:42 -04:00
Matthew Kennedy 5fec6d0c04
move lambda in to sensor model (#1736)
* lambda sens

* fix init

* fix

* a test for good measure

* he's climbin in your windows, snatchin you ram up

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-09-01 16:22:31 -04:00
rusefi 16d16f9634 TriggerConfiguration getPrintPrefix 2020-08-29 17:25:42 -04:00
rusefi 613faa90cd verboseVVTDecoding 2020-08-29 17:05:54 -04:00
rusefi 2b77901e53 VVT support for VAG trigger #883 2020-08-27 00:06:10 -04:00
rusefi 10a6661fa5 VVT support for VAG trigger #883 2020-08-26 23:35:11 -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
Matthew Kennedy 3f293e573c cleanup 2020-07-21 14:13:29 -07:00
Matthew Kennedy 47bd4e54b0 fix for test 2020-07-21 11:54:32 -07:00
Matthew Kennedy 50873aae4c we want fuelingload there 2020-07-21 00:10:05 -07:00
Matthew Kennedy a3b29f9011 use ign load for ign 2020-07-20 23:11:48 -07:00
Matthew Kennedy a34201d1d1
fuel math simplifications (#1485)
* simplify

* fix

* tweak

* cleaning

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-06-17 17:15:04 -04:00
Matthew Kennedy 76745412c6
Factor out airmass logic (#1483)
* refactor

* extract more airmass

* rename, fix tests
2020-06-06 07:25:19 -04:00
Matthew Kennedy d24b5d5e93
Integrate stft (#1475)
* code changes

* missed a spot

* update UI

* gauge name

* adjust gauge scaling

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-05-31 16:59:05 -04:00
Matthew Kennedy 105460dada
Remove old thermistor implementation (#1458)
* remove test clt/iat

* remove warning since this code is nearly dead

* remove old therm impl

* tests & live doc

* not quite right
2020-05-28 17:51:33 -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 044766ec70
New clt consumers part 1 (#1301)
* idle

* CLT test prep

* idle target

* header

* air interpolate

* ancient comment

* fuel cut

* fuel cut, idle tests

* cleanup
2020-04-15 09:48:17 -04:00
Matthew Kennedy 8006c0a548
CLT/IAT/Aux in the new sensor world (#1269)
* hook up clt

* init test

* probably fix test

* aux temp

* relax checking

* more significant figures

* remove old aux temp

* hand generate

* claim RAM

* move to ccm

* subscribe

* info printing

* warnings

* raise high voltage failure threshold

* fix test

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-04-07 16:07:09 -04:00
Matthew Kennedy bc3f0c6b27
More TPS consumers: VE lookup (#1256)
* advance_map

* tests

* unneeded

* idle

* use driver intent instead

* and obd and lcd

* engine load

* ve lookup

* unused

* oops we needed that

* oops needed that too

* mocking

* test mocks

* oops

* helps to use the right sensor

* and cylinder cleanup

* fuel math

* typo

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-04-04 08:41:09 -04:00
rusefi fcef353b12 could this work? 2020-04-03 16:14:29 -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
rusefi d48a57d599 refactoring: extracting DEEP_IN_THE_PAST_SECONDS contant 2020-01-31 01:21:56 -05:00
Matthew Kennedy ba0c48e0ac use NT_PER_SECOND instead of convert from microseconds (#1107)
* add NT_PER_SECOND

* missed a few

* inject tooth logger timestamp

* inject
2020-01-19 22:23:41 -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
rusefi 12a828b391 codes clean-up 2019-12-02 20:16:41 -05:00
Matthew Kennedy d6e065f99e Merge remote-tracking branch 'upstream/master' into perf-tracing 2019-10-14 23:45:39 -07:00
rusefi 5cb90d0e1b preparation for #961
more unified access to pre-calculated value
2019-10-13 09:59:06 -04:00
Matthew Kennedy 763b17fb50 experiment 2019-10-11 17:43:21 -07:00
rusefi 62577c47da preparation for #961
more unified access to pre-calculated value
2019-10-10 08:25:58 -04:00
rusefi 71e904e421 preparation for #961
more unified access to pre-calculated value
2019-10-10 08:16:21 -04:00
rusefi 9a26b2eca2 preparation for #961
macro as a syntax sugar for method invocation
2019-10-10 07:37:37 -04:00
Matthew Kennedy 29804cbc8a move tsOutputChannels to header (#970) 2019-10-08 21:02:51 -04:00
rusefi e99955fce5 ETB target is using integer values #945
refactoring - ADC mocking is a mess
2019-09-22 17:43:00 -04:00
rusefi 7d65f1931e ETB target is using integer values #945
refactoring - ADC mocking is a mess
2019-09-22 17:39:13 -04:00