Commit Graph

1189 Commits

Author SHA1 Message Date
Andrey 585f2ebeea test coverage and some magic constant refactoring 2022-08-21 16:03:34 -04:00
Andrey 35a71f8960 test coverage and some magic constant refactoring 2022-08-21 15:22:22 -04:00
rusefi 25778f0890 trigger gap logging: it's a mess :( 2022-08-21 12:38:29 -04:00
rusefi 0f320448ff refactoring: default argument value 2022-08-21 12:17:50 -04:00
Matthew Kennedy 3e4965ea27
fix inverted vvt (#4464)
* fix inverted mode

* unit tests are great
2022-08-20 20:12:32 -04:00
Matthew Kennedy eebc810295
enable alwaysInstantRpm in some tests (#4461)
* test some with alwaysInstantRpm set

* more
2022-08-19 15:03:20 -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 8f6fb427eb ECU to Mainline DynoLog Data Protocol #4319 2022-08-12 23:53:48 -04:00
Matthew Kennedy 76f5832db9
resolve VVT phase using every tooth, not just sync point (#4434)
* resolve VVT phase using every tooth, not just sync point

* fix tests

* comment

* changelog
2022-08-12 08:08:23 -04:00
rusefillc b5c2b70e23 refactoring: better field name 2022-08-09 20:32:39 -04:00
Matthew Kennedy b6f1779781
implement sensor checker (#4395)
* implement sensor checker

* use default

* s

* fix

* properly report non-timeout errors

* it's not safe to read Value when invalid

* it's not safe to read Value when invalid
2022-07-30 17:08:48 -04:00
rusefillc d320dd589c it's impossible to receive AcceleratorPedal sensor via CAN/Lua #4369 2022-07-28 12:08:35 -04:00
Matthew Kennedy 923d2c2e44
unexpected contains information about why it failed (#4393)
* unexpected can contain information

* info printing

* sensors return appropriate error codes

* remove reliance on undefined behavior

* s
2022-07-28 10:04:28 +03:00
Matthew Kennedy 41318e0f9d
detect bad Lua sensor name when registering (#4391)
* format

* lua error on bad sensor

* comment

* name validation

* soft check before the hard check causes a fatal error

* s
2022-07-27 12:41:21 +03:00
Andrey 7887b9d1e1 Extra gap ratios for custom trigger wheels fix #4375 2022-07-23 03:39:19 -04:00
Andrey 20a16bd53b Extra gap ratios for custom trigger wheels fix #4375 2022-07-23 03:16:11 -04:00
rusefillc 4987a0b93c Launch control bug? "range" thing is confusing #4348
a typo and configurable behaviour without UI
2022-07-20 18:48:55 -04:00
Matthew Kennedy 848fbcf6ca
fragments (#4357) 2022-07-19 11:02:41 +03:00
Matthew Kennedy e1254f84b9
remove idle offset (#4355)
* remove offset

* remove more completely

* changelog
2022-07-18 15:49:43 -04:00
Matthew Kennedy a0d8ae3f4f
use libfirmware for a few things (#4351)
* use libfirmware

* unit tests

* crc

* missed one

* bootloader
2022-07-16 02:22:51 -04:00
rusefillc b7cfa4e702 launch control for autocross on micro rusefi #4341 2022-07-14 16:41:50 -04:00
rusefillc 55ffb45934 FSIO is dead 2022-07-14 07:52:58 -04:00
rusefillc b628c81d26 Make hard-coded gap ratios visible on trigger documentation images #4172 2022-07-12 00:11:25 -04:00
rusefillc 2f0db8b7c4 Make hard-coded gap ratios visible on trigger documentation images #4172 2022-07-11 04:21:17 -04:00
Matthew Kennedy 8bc01472b7
Add a timeout for Lua ETB adjustment (#4331)
* lua etb timeout

* mocks

* test
2022-07-10 05:46:28 +03:00
Matthew Kennedy 3c062e02bc
Lua hooks for gear detection (#4328)
* implement

* sim has vss

* write a test

* guard
2022-07-07 23:16:56 -04:00
Matthew Kennedy 0b10f7dca8
hellen board ID detect improvements (#4307)
* move call

* board detections work correctly

* improve detector

* s

* break instead of return

* tests

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2022-07-02 05:19:02 -04:00
Matthew Kennedy 3284282be7
rescale RPM values (#4300)
* rpm configs

* fix

* s

* s

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2022-06-29 18:48:30 -04:00
rusefillc 1b28e292e2 logging of live data structs was: data points #3614
huh?
2022-06-29 02:42:03 -04:00
Matthew Kennedy c0f290b922
Injector scheduled by angle, not tooth index (#4208)
* trigger decoder returns a result

* TriggerFormDetails

* s

* don't reach out and touch the engine

* injection doesn't care about teeth

* fix up existing tests

* oh look, we can actually test this logic now without trying to depend on trigger shape!!!

* fix a real bug

* simplify
2022-06-24 17:43:23 -04:00
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
Matthew Kennedy 34ee344661
fix (#4279) 2022-06-23 21:35:05 -04:00
Matthew Kennedy 29420c76aa
wideband live data (#4276)
* wideband live data magic

* test build happy

* test even happier
2022-06-23 20:04:26 -04:00
Andrey 6ef7562666 VAG Lua progress 2022-06-23 16:02:09 -04:00
Andrey e4cd9d567d VAG Lua progress 2022-06-22 22:22:49 -04:00
Matthew Kennedy 11d58f8d5a
clt based rpm limit (#4267) 2022-06-22 16:49:24 -04:00
rusefillc e793124f8d bit math is hard :( 2022-06-20 21:51:21 -04:00
rusefillc 2ae59f6bd5 bit math is hard :( 2022-06-20 21:36:10 -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
rusefillc b7743f101f helping build 2022-05-31 10:45:32 -04:00
rusefillc 22d9bf056a heling build 2022-05-31 08:48:24 -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 6f45d0fd46
Fix trigger error indicator (#4185)
* test and fix

* more shards!
2022-05-19 09:43:42 -04:00
rusefillc 458b92e6d9 reduce flash footprint by smarter code generation #4163 2022-05-16 00:00:47 -04:00
rusefillc 8168cad4d7 Revert "Revert "reduce flash footprint by smarter code generation #4163""
This reverts commit ea11cc2351.
2022-05-15 15:15:06 -04:00
rusefillc ea11cc2351 Revert "reduce flash footprint by smarter code generation #4163"
This reverts commit f327897d6c.
2022-05-15 15:14:04 -04:00
rusefillc f327897d6c reduce flash footprint by smarter code generation #4163 2022-05-15 12:05:38 -04:00
Andrey 146d887cdd reduce flash footprint by smarter code generation #4163 2022-05-15 10:07:17 -04:00
Andrey d38d8a7840 altering technical debt 2022-05-15 10:07:17 -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 098b2c87c6
Proper decoder testing (#4166)
* Write proper TriggerDecoder tests

* patch test for un-patched decoder
2022-05-11 06:14:45 -04:00
Matthew Kennedy d4509cab8a
TriggerState -> TriggerDecoder (#4157) 2022-05-10 11:41:39 +03:00
rusefillc 2132cec3fc Remove value copy from controller into outputChannels #4095 2022-05-09 06:12:17 -04:00
rusefillc bd9639b91d Remove value copy from controller into outputChannels #4095 2022-05-08 08:50:27 -04:00
Matthew Kennedy e13dad3a2a
support better wbo format (#4000)
* new format

* comment

* pr feedback

* heater duty

* extra

* comment

* test multi-accept logic

* s

* test new format

* this comment made no sense

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2022-05-07 02:19:51 -04:00
Matthew Kennedy b650bbe46c
Trigger gm 3 vs 5 (#4140)
* add parameter

* two modes

* add new mode to list

* format

* s

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2022-05-06 08:25:44 -04:00
Matthew Kennedy 58619b4115
Scaled channel ints (#4129)
* test that fails today

* Revert "int32 scaled_channel has float precision #4128"

This reverts commit 03d44b75ea.

* fix the problem

* format

* x

* s
2022-05-02 15:20:02 -04:00
Andrey 3c3ce36753 helping build 2022-05-02 06:30:06 -04:00
rusefillc 9b9b67f932 helping build 2022-05-02 05:57:53 -04:00
Andrey e62877964a Move curves out of engineConfiguration in order to reduce RAM usage #4127 2022-05-01 23:43:43 -04:00
rusefillc d24bff2d23 Technical debt: ENUM_32_BITS #3874 2022-05-01 08:48:54 -04:00
rusefillc 107685f069 this seems mostly dead? 2022-04-30 13:43:09 -04:00
rusefillc 571211501e
2 byte pin index #4097 (#4102)
* 2 byte pin index #4097

* 2 byte pin index #4097

good time to defragment configuration

* 2 byte pin index #4097

new fancy way

* 2 byte pin index #4097

smart comment

Co-authored-by: rusefillc <sdfsdfqsf2334234234>
2022-04-29 19:35:31 -04:00
Matthew Kennedy e4a0979dc2
Brain pin is enum class (#4108)
* change most usages to Gpio::

* board configs

* engine configs etc

* isBrainPinValid, smart gpio

* generator

* generator

* generator

* connector yamls

* kinetis enums

* cypress txt

* kinetis config

* frankenso

* config generator

* actually do it for the others

* disable skips for pr ci

* fix tle8888

* misc

* weird cast from int

* needs this operator too

* this can be an unsigned subtract

* happy tests

* s

* kinetis isConfigurationChanged weirdness

* missed J/K

* cypress efifeatures

* build script mistake (!)

* mistake in smart gpio

* debounce

* eg33

* kinetis, so needy

* it's pretty green, we can skip these again
2022-04-28 17:32:39 -04:00
Matthew Kennedy 38213bbc00
more missing autoscale (#4112)
* autoscale m_config->timeConstant

* min/max afr

* more

* dwell voltage

* closed loop fuel

* knock

* map estimate

* applyNonlinearBelowPulse

* fix

* add a test while we're at it for un-covered code

* test fallback MAP since we touched that

* always compute fallback MAP even if sensor is OK
2022-04-28 08:16:02 -04:00
Matthew Kennedy c3fb211d6b
fix vss/iss filter parameter validation (#4114)
* fix filter parameter validation

* use values that don't get clipped
2022-04-27 22:29:51 -04:00
rusefillc ddd85e701e Remove value copy from controller into outputChannels #4095 2022-04-23 20:38:48 -04:00
rusefillc 71275e841b
m_hasSynchronizedSymmetrical handling improvements #4099 (#4101) 2022-04-23 19:45:29 -04:00
Andrey 4492bc760a m_hasSynchronizedSymmetrical handling improvements #4099 2022-04-23 19:03:59 -04:00
Andrey 7b64aa5880 m_hasSynchronizedSymmetrical handling improvements #4099 2022-04-23 18:46:12 -04:00
rusefillc 14e37e3cf4 FasterEngineSpinUp should be enabled by default fix #4094 2022-04-23 09:51: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
Matthew Kennedy 6aef4f10d0
fragment refactoring (#4072)
* fragment refactoring

* jar

* jar?
2022-04-16 09:24:45 -04:00
rusefi 141804f490 steps towards better commands encapsulation 2022-04-14 01:44:35 -04:00
rusefillc 44ed81fce0 logging of live data structs was: data points #3614
handling request past end of fragments
2022-04-13 23:31:32 -04:00
rusefillc 53d31ee0ea logging of live data structs was: data points #3614
support for null fragments
2022-04-13 20:46:55 -04:00
rusefillc 3c7eb93fe1 steps towards ignition live data 2022-04-13 16:48:25 -04:00
Matthew Kennedy baef88d1c7
make the vss fliter parameter work again (#4056)
* vss has adjustable filter

* tooltip and validate

* s
2022-04-09 09:00:19 -04:00
Matthew Kennedy bd2b5a3dba
gear detection validation (#4053)
* gear detection validation

* test validation because why not
2022-04-09 08:59:07 -04:00
Matthew Kennedy f0b810a81c
Gear detection implementation (#4052)
* gear detect improvements

* ui

* ui for gear ratios

* ui

* output channel

* output channels etc

* implement gear detection

* name

* s

* status loop

* missing function

* ui tweaking

* s
2022-04-07 09:21:11 -04:00
Matthew Kennedy ad368b2031
Gear detection improvements (#4047)
* gear detect improvements

* ui

* ui for gear ratios

* ui
2022-04-06 16:15:58 -04:00
Andrey 8053aeb9cf Extra Idle Air if Throttle is Pressed behavior #3940
only live data
2022-04-03 20:30:09 -04:00
Andrey 093de78ff3 Proper cam speed labels in triggers #4021 2022-04-03 17:56:47 -04:00
rusefillc e631988b22 Proper cam speed labels in triggers #4021 2022-04-03 12:22:47 -04:00
Andrey 204ac3961b Trigger setup in TS is highly confusing: hide operation mode from users? #4031
WOW it works?!
2022-04-03 02:30:43 -04:00
Andrey cc9a1136c4 Trigger setup in TS is highly confusing: hide operation mode from users? #4031 2022-04-03 02:21:37 -04:00
Andrey b0be8c4b66 Trigger setup in TS is highly confusing: hide operation mode from users? #4031
progress: this way test is less fake!
2022-04-03 02:13:56 -04:00
Andrey 5840a61f55 Trigger setup in TS is highly confusing: hide operation mode from users? #4031 2022-04-03 01:02:13 -04:00
Andrey 95d36b37e3 Trigger setup in TS is highly confusing: hide operation mode from users? #4031 2022-04-03 00:34:18 -04:00
rusefillc 6b5747d4c8 refactoring: method rename 2022-04-02 21:01:29 -04:00
rusefillc 086739d20a Refactoring, technical debt: export more of trigger attributes into triggers.txt file #2077 2022-04-02 19:08:22 -04:00
rusefillc 174a3f33bd Refactoring, technical debt: export more of trigger attributes into triggers.txt file #2077 2022-04-01 22:05:25 -04:00
rusefillc b1de262520 toothed previous time #4019 2022-03-21 20:41:09 -04:00
Andrey 1b334656e1 Refactoring, technical debt: export more of trigger attributes into triggers.txt file #2077 2022-03-19 19:59:36 -04:00
Matthew Kennedy 4e57daf6d7
test AEM X-Series wideband protocol (#4002)
* break out acceptFrame, test CanListener

* test AEM xseries protocol

* tweaks

* tweaks

* maybe everyone compiles happily now
2022-03-15 15:52:50 -04:00
rusefillc cbd6879ddf JNI for test coverage #3965 2022-03-15 13:57:40 -04:00
Matthew Kennedy a0f114a9a2
break out acceptFrame, test CanListener (#4001) 2022-03-14 19:09:01 -04:00
Matthew Kennedy 5811f691d9
things are happy without gtest (#3999)
* things are happy without gtest

* this is not a static lib
2022-03-14 15:00:02 -04:00
rusefillc 3076027887 spelling 2022-03-14 13:11:10 -04:00
Matthew Kennedy 0937de1b84
flash storage uses 32 bit CRC (#3984)
* better flash logic and warning message

* comment

* s

* ssssss

* simplify logic

* use 32 bit crc

* s

* don't test things that don't exist
2022-03-08 23:17:35 -05:00
Andrey G 067055095f
cli registry: rework this hell, add FFF and FFFFF (#3964)
* cli registry: rework this hell, add FFF and FFFFF

* kinetis: no nodefaultlib

* revert back token helpers

* cli_registery: argument parser: do not eat qoutes

* Unit test for FFF

* cli_registry: remove debug
2022-02-26 16:58:10 -05:00
rusefillc 0130933dd7 BMW 6HP gatewy #3954 2022-02-22 23:13:32 -05:00
rusefillc 970d63568f Revert "lua: TDD of enabling base lib"
This reverts commit d8b3712817.
2022-02-22 20:50:38 -05:00
rusefillc d8b3712817 lua: TDD of enabling base lib 2022-02-22 16:25:41 -05:00
rusefillc 38d7f12b30 BMW 6HP gatewy #3954 2022-02-22 15:35:50 -05:00
rusefillc dc824f0c42 N73 2022-02-21 11:29:46 -05:00
rusefillc 70ea61c091 N73 2022-02-19 20:46:04 -05: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
Andreika 2beca221a3
hellen_board_id + hellen-common.mk (#3885)
* Hellen_board_id

* move EXTI init before config load

* add NT2USF()

* Hellen_board_id unit-tests

* hellen-common.mk

* fix for older macos compiler
2022-02-03 11:24:31 -05:00
Matthew Kennedy 06437f304f
dead StartupFuelPumping (#3883)
* dead

* test

* dead config too
2022-02-03 08:01:21 -05:00
Matthew Kennedy 28f39fe71c
test organization (#3882)
* organize actuators

* this test can be useful

* don't name things misc

* fewer tests called misc

* fewer tests called "big" (?)

* unnecessary
2022-02-02 16:36:35 -05:00
Matthew Kennedy 10be2d5f40
Remove FSIO, byeeeeeeeee (#3865)
* vestigial config

* replace last functionality

* engine/board configs include

* files that didn't need to include this

* remove FSIO implementation

* stragglers

* random little bits

* s

* s

* ConfigDefinition

* jar

* s
2022-02-02 02:03:31 -05:00
Matthew Kennedy 40d16291b0
Remove fsio part 2 (#3876)
* dead config stuff

* fsio state

* remove tests

* getEngineValue

* put part back
2022-02-02 00:49:44 -05:00
rusefillc 42deca0fd0
Main relay shutdown rebase (#3880)
* aggregate

* main relay controller handles delayed shutoff

* main relay controller handles delayed shutdown

Co-authored-by: Matthew Kennedy <matthewkennedy@outlook.com>
Co-authored-by: rusefillc <sdfsdfqsf2334234234>
2022-02-02 00:45:11 -05:00
Matthew Kennedy a718f3a30a
Remove fsio part 1 (#3871)
* dead includes

* move last logic out of fsio

* dead functions
2022-02-01 15:42:04 -05:00
rusefillc ca98e270e1
safer file name (#3861)
* safer file name

* safer file name

Co-authored-by: rusefillc <sdfsdfqsf2334234234>
2022-01-31 21:51:32 -05:00
Matthew Kennedy 2444090933
vss based dfco (#3845)
* vss based dfco

* fix digits while we're here

* fix some other digits for fun

* don't use custom assert

* simplify test

* less than or equal, test vss behavior

* even better than comments are tooltips
2022-01-27 14:05:18 -05:00
Matthew Kennedy eb14d74846
extract logic from wall wetting AE (#3848)
* extract logic

* extract interface

* explicitly test wall fuel
2022-01-27 07:45:50 -05:00
Matthew Kennedy d65652d7bc
vss and flex are filtered (#3839)
* vss and flex are filtered

* turbo

* freq sensor test
2022-01-26 17:33:04 -05:00
Matthew Kennedy df1635b5a0
dfco checks driver throttle intent (#3832) 2022-01-24 14:26:39 -05:00
Matthew Kennedy b5232ab5e6
decouple TPS accel enrichment from trigger (#3825)
* move call site

* move thresholding out of fast path

* adjust config

* test
2022-01-23 15:31:39 -05:00
Matthew Kennedy f5d4690fe1
baro fully in sensor model (#3829)
* consumers and api

* dead test

* baro uses sensor model

* remove old (copy of?) map lookup logic

* I guess we don't need FastInterpolation any more?

* don't double init analog input
2022-01-23 09:42:11 -05:00
Andrey 33df88d3f7 fixing NOISY_RPM handling via Sensor framework 2022-01-21 00:21:45 -05:00
Andrey 1bd71e4b2e migrating to SensorType::Rpm API 2022-01-20 23:54:52 -05:00
Andrey 4ebb3c94d3 migrating to SensorType::Rpm API 2022-01-20 23:43:18 -05:00
Andrey 9313bcca92 migrating to SensorType::Rpm API 2022-01-20 23:19:48 -05:00
Andrey 0e1f7bea8c migrating to SensorType::Rpm API 2022-01-20 23:03:45 -05:00
Andrey e37ab73f1d migrating to SensorType::Rpm API 2022-01-20 22:58:12 -05:00
Andrey e945bc4bc9 migrating to SensorType::Rpm API 2022-01-20 22:51:20 -05:00
Andrey 5ea408c033 migrating to SensorType::Rpm API 2022-01-20 22:44:59 -05:00
Andrey e55eb28086 migrating to SensorType::Rpm API 2022-01-20 22:42:13 -05:00
Andrey df5cb34fb8 migrating to SensorType::Rpm API 2022-01-20 22:40:15 -05:00
Andrey 16b3e95865 migrating to SensorType::Rpm API 2022-01-20 22:31:07 -05:00
Andrey 3183a123cd migrating to SensorType::Rpm API 2022-01-20 22:26:05 -05:00
Andrey 8361b6d1f6 migrating to SensorType::Rpm API 2022-01-20 22:22:52 -05:00
Andrey 9f08db256b migrating to SensorType::Rpm API 2022-01-20 22:12:04 -05:00
Andrey c7a62bcdb3 migrating to SensorType::Rpm API 2022-01-20 22:04:45 -05:00
Andrey c17592bfe2 what's the difference between setRpmValue and assignRpmValue #3815
refactoring
2022-01-20 21:57:27 -05:00
Matthew Kennedy 76fdb4063e
XY Idle VE Table (#3781)
* config & ui

* implement

* test idle VE switching behavior

* use the interface where we can

* s

* re-bump flash version
2022-01-20 14:08:54 -05:00
Andrey 08c1c5d969 Remove legacy check fix #3808 2022-01-18 16:01:27 -05:00
Andrey 7e007cc534 https://rusefi.com/forum/viewtopic.php?p=44100#p44100 2022-01-18 10:24:08 -05:00
rusefillc d305f2c5cf https://en.wikipedia.org/wiki/Pi 2022-01-14 21:51:03 -05:00
Matthew Kennedy 7d341cfc9d
improve maf output channels and logging (#3743)
* maf channels

* s

* binary log

* if only I could type

* can

* instant RPM too

* s

* test

* graceful zero rpm

* test works

* float near
2022-01-12 15:41:35 -05:00
Matthew Kennedy 3e56bacef9
don't start boost pwm unnecessarily (#3767)
* don't start boost pwm unnecessarily

* test
2022-01-11 20:47:50 -05:00
rusefillc 699a5ef302 RE usability: live data for idle controller 2022-01-10 21:55:52 -05:00
rusefillc 339b906aa9 RE usability: live data for idle controller
static bad, class fields better
2022-01-10 20:12:11 -05:00
rusefi 1e22f3fc4d we can live without this test 2022-01-08 20:34:31 -05:00
Andrey a07c88216d Live Data progress 2022-01-05 20:41:51 -05:00
Andrey ed6c89ec10 Live Data progress 2022-01-05 20:15:23 -05:00
rusefillc 51ade79641 itoa unit test, not a very detailed one 2022-01-03 03:31:57 -05:00
Matthew Kennedy 0932fcf94c
Improve NA/NB miata sync parameters (#3730)
* NA sync parameters

* NB vvt pattern too

* zach's car says tighten the gap

* look at that, we sync one cycle sooner!
2022-01-01 21:39: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
rusefillc f715210b39 GDI Epic #1448
live view
2021-12-31 15:28:24 -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
rusefillc 4bc9c39044 E65 2021-12-29 00:50:17 -05:00
Andrey ae5dbd63a4 extract method 2021-12-27 21:09:41 -05:00
Andrey 7322fc345e E65 2021-12-26 14:48:00 -05:00
rusefillc 6665c4fb34 docs 2021-12-26 13:41:10 -05:00
rusefillc b337fed520 live data 2021-12-26 13:00:17 -05:00
rusefillc 561a466cdb E65 2021-12-24 17:35:27 -05:00
Andrey af1259c176 E65 2021-12-24 16:58:12 -05:00
Andrey 97b3212e56 E65 2021-12-24 16:56:17 -05:00
Andrey 1f40be01b9 E65 2021-12-24 16:53:24 -05:00
Andrey 19a8685644 refactoring 2021-12-24 16:51:31 -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 0810198185
clean up timing table defaults (#3705)
* less crazy configs

* cleanup

* make that test happy
2021-12-20 08:02:38 -05:00
rusefillc 47cde8801c 2 byte table axis #3045 2021-12-20 02:07:03 -05:00
Andrey 76768d6ac4 2 byte table axis #3045
fixing build
2021-12-20 01:50:23 -05:00
rusefillc 66f82a0cdb 2 byte table axis #3045 2021-12-19 22:43:10 -05:00
Matthew Kennedy cddb9484a9
make macos happy (#3699)
* s

* explicitly include it because that's a good idea.
2021-12-19 09:58:49 -05:00
Andrey 951cea4471 ISO-TP accounting for new buffer size 2021-12-19 01:10:13 -05:00
rusefillc 907499416b is that all it needs? 2021-12-19 00:54:20 -05:00
Andrey d7e25028a0 PCAN sandbox - error requestOutputChannels fix #3698 2021-12-19 00:29:30 -05:00
Andrey 1dbcaaa6a4 TS via TCP connector and ISO-TP via PCAN #3667 2021-12-18 21:46:49 -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
Andrey 8d7452e5d1 Lua to read tsOutputs #3376
unit test fix
2021-12-15 09:23:06 -05:00
rusefillc ced403f7ee Lua to read tsOutputs #3376
let's break master!
2021-12-15 08:56:59 -05:00
rusefillc 5bdf25c3f8 Lua to read tsOutputs #3376 2021-12-14 23:16:05 -05:00
Matthew Kennedy 256df56fa7
Honda K 12+1 decoder adjustment (#3694)
* adjust trigger

* real cranking

* mk
2021-12-14 21:10:01 -05:00
Matthew Kennedy 6de8364895
maybe more working MAP sampling (#3689)
* what if we do this

* cleanup

* s

* test
2021-12-11 03:01:28 -04:00
Andrey 9ae24735f8 MAP phase sensing #3544 2021-12-10 17:28:03 -05:00
Andreika 6be915f7af
can_isotp fix? (#3678)
Co-authored-by: Andrei <andreikagit@users.noreply.github.com>
2021-12-08 18:12:51 -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
rusefillc f1855a41ae docs 2021-12-08 16:05:57 -05:00
Andreika 72cefd42de
CAN ISO-TP progress (+unit-tests fix) (#3677)
Co-authored-by: Andrei <andreikagit@users.noreply.github.com>
2021-12-08 15:11:19 -05:00
rusefillc 3a33e59b86 rusEFI console ISO-TP via PCAN #3667 2021-12-08 12:01:28 -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
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 e72d57438a MAP phase sensing #3544
new implementation
2021-12-07 20:00:04 -05:00
Andrey 6e49d66385 MAP phase sensing #3544
look new unit test!
2021-12-07 16:58:10 -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 2f45ed205c MAP phase sensing #3544
option to look for high and low peaks
2021-12-05 14:25:26 -05:00
rusefillc 0c91e77749 MAP phase sensing #3544
taking a step back to happy place
2021-12-04 18:21:10 -05:00
Andrei c6fa50d196 CAN update 2021-12-03 21:44:15 -05:00
rusefillc aaf732f738 trigger_adc unit tests 2021-12-01 13:35:44 -05:00
Andrei 1047fed77c trigger_adc unit-test data files 2021-12-01 12:28:48 -05:00
rusefillc 79e43384a5 proteus to have enlarged Lua 2021-11-30 21:37:17 -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 0c4e64fb2d Epic: Remove FSIO #2928 2021-11-28 17:54:26 -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
Andrey e2fa1af527 MAP phase sensing #3544 2021-11-24 22:36:36 -05:00
Andrey 58c0fb4539 MAP phase sensing #3544 2021-11-24 21:53:32 -05:00
Andrey 259e8744cb MAP phase sensing #3544 2021-11-24 21:53:16 -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 c75291f415 live data for wastegate #3588
i want to persist state so no 'const' sorry
2021-11-23 15:52:43 -05:00
rusefillc 50ccf1fbea harley 2021-11-22 19:16:57 -05:00
rusefillc 42da5746f4 j1850 SAE crc8 Lua 2021-11-22 14:19:19 -05:00
rusefillc da68ff5ad6 j1850 SAE crc8 2021-11-22 14:03:52 -05:00
Scott Smith ba4a00d3bb
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 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
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
rusefillc f1900b4887 On -fpermissive in Windows in unit tests #3581 2021-11-20 00:23:27 -05:00
rusefillc e54d3b9e06 On -fpermissive in Windows in unit tests #3581 2021-11-20 00:16:03 -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
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 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
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
Scott Smith 62daac73c7
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
Andrey 0cc88ec6e2 Not all launch control options are used #3554 2021-11-15 21:13:01 -05:00
Andrey 05fa6071dd refactoring launch 2021-11-15 19:55:04 -05:00
Scott Smith 7011be6f86
Test for stack use after free in ASAN. (#3552)
Fix two cases that didn't affect the product, but did affect our ability to test.
2021-11-15 19:44:39 -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 cb032fb1ea
(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 145316c497
less macro, more c++ (#3549)
* less macro

* s
2021-11-15 12:44:40 +01:00
rusefi a5764d6e67 Lua: changing "table" API 2021-11-14 16:44:52 -05:00
rusefillc c22215cea7 Epic: Remove FSIO #2928 2021-11-14 10:39:47 -05:00
rusefillc a85d1bb064 Epic: Remove FSIO #2928 2021-11-14 07:30:26 -05:00
Matthew Kennedy 73b05d2e20
lua pid class (#3411)
* lua pid

* no luaaa stl

* update luaaa

* finality

* luaaa

* luaaa

* = default

* bad merge

* gitmodules

* lua

* proteus demo script

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-11-13 03:18:16 -05:00
Matthew Kennedy 57ad75aa98
load lua libs correctly (#3529)
* fix lua lib loading

* test
2021-11-11 13:44:13 -05:00
Scott Smith 713083baa5
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 2f4d123052
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 d4c4db9a12
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
rusefi 72a2bdba66 MathMin 2021-11-10 19:23:05 -05:00
Matthew Kennedy 3f2a9c3fe8
test TS writes (#3515)
* test TS writes

* s

* this must be a gcc extension
2021-11-10 07:29:40 -05:00