Commit Graph

314 Commits

Author SHA1 Message Date
Matthew Kennedy fe4b531aeb
Move ETB control to a thread (#1374)
* switch to thread

* actually use default frequency define

* crank ADC too

* make space in RAM

* remove TS field

* this should work for test

* fix dt

* re-resize ram
2020-04-28 07:22:31 -04:00
rusefi 1b84406e77 dead code 2020-04-26 17:40:12 -04:00
Matthew Kennedy f128b33694
General purpose PWM: implementation & tests (#1366)
* config

* significant digits

* renumber enum, no need for a "none"

* ui

* impl base

* error handle MAP

* init & update

* don't need arg

* don't lie about sensor

* fix test build

* test stub

* initialize

* null check

* fix clamping

* test output

* types & enums

* don't need param

* test getOutput

* fix

* output pin instead of brain pin

* default config
2020-04-26 14:06:28 -04:00
Matthew Kennedy df2db7036d
ETB autotune in its own function (#1350)
* pull out autotune

* oops
2020-04-22 22:22:28 -04:00
Matthew Kennedy 99489cff67
Improve ETB idle control (#1319)
* compress idle pos

* fix tests for new behavior
2020-04-20 17:29:03 -04:00
Matthew Kennedy 1a5e0a42f8
Inject idle to ETB (#1335)
* inject idle position

* pointer

* etb idle tests

* extract mocks

* ops

* test negative case too

* don't convert for etb

* guard
2020-04-20 16:26:35 -04:00
rusefi 656331ebe9 reducing code duplication 2020-04-20 15:57:03 -04:00
Matthew Kennedy e04008610a
ETB: inject pedal map (#1334)
* add clampf

* more tests

* public

* missed a mock

* fix output duty clamping

* do it that way

* more

* ah ha!

* test negative too

* clamp pedal

* inject pedal map

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-04-20 14:34:45 -04:00
rusefi 934898f903 idle duty cycle clamping 2020-04-20 14:11:40 -04:00
Matthew Kennedy 0619575716
ETB testing: output, position clamping (#1333)
* add clampf

* more tests

* public

* missed a mock

* fix output duty clamping

* do it that way

* more

* ah ha!

* test negative too

* clamp pedal

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-04-20 13:52:20 -04:00
rusefi ad7c4f23bc Better handling in case of ETB idle without ETB #1332 2020-04-19 23:55:27 -04:00
Matthew Kennedy 8aac233a5f
rewrite etb tests with gmock (#1330) 2020-04-19 20:32:41 -04:00
Matthew Kennedy 75b009bbae
Closed loop controller base & ETB testing (#1322)
* closed loop controller base

* etb tps test

* closed loop controller tests

* test support

* update gtest

* fix for change

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-04-19 17:18:47 -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 6481b9df0a
filter ETB autotune results (#1281)
* Astrom-Hagglund

* enums

* comments

* dead

* fix

* changed enum

* ts guard

* safety

* etb autotune debug channels

* filter results

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-04-11 22:28:50 -04:00
Matthew Kennedy b526b43864
etb autotune (#1274)
* Astrom-Hagglund

* enums

* comments

* dead

* fix

* changed enum

* ts guard

* safety

* etb autotune debug channels

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-04-11 22:15:49 -04:00
Matthew Kennedy 001ef27eb8
support ETB disable pin (#1273)
* config & hand gen

* board configs

* add dc motor support

* initialization

* also set duty to zero

* use disable in etb

* fix proteus default

* add TS fields

* I guess we needed 8 bytes

* :D

* comment

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-04-10 17:27:13 -04:00
Matthew Kennedy 9831c8c874
simplify (#1275) 2020-04-10 08:12:16 -04:00
dron0gus 00417b1040
idle: add two coil idle valve support (#1271) 2020-04-06 17:55:41 -04:00
Matthew Kennedy 345bf61bd5
Goodbye, old TPS (#1266)
* clear out tps

* boost control

* aux valves

* launch, aux valves

* unused field
2020-04-05 19:33:33 -04:00
Matthew Kennedy 7d5df29fbd
yet more tps consumers (#1258)
* 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

* old tests

* kill dead stuff

* cleanup

* more

* fix

* test

* s

* fix signature

* fix test

* comment

* priming pulse

* remove mock tps

* remove more dead

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-04-05 09:11:25 -04:00
Matthew Kennedy 36477d348d
remove ETB controlPinMode (#1260) 2020-04-04 08:41:45 -04:00
Matthew Kennedy 9f75c0cea6
TPS consumers: idle and ignition and obd2 and lcd (#1254)
* advance_map

* tests

* unneeded

* idle

* use driver intent instead

* and obd and lcd

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-04-03 19:59:08 -04:00
Matthew Kennedy 1fe39e81e0
fix (#1251) 2020-04-03 07:48:12 -04:00
Matthew Kennedy b197c6ff07
run ETB on new TPS (#1248)
* run ETB on new TPS

* why did we include all those...?

* init tps for etb test

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-04-02 21:33:49 -04:00
Matthew Kennedy 22267e5479
Replace hasPedalPositionSensor (#1245)
* remove

* add Sensor::hasSensor

* consume in etb

* remove unused state

* don't use it there either

* format

* fix up tests

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2020-04-02 08:04:12 -04:00
rusefi 0edb791cff partial revert 2020-04-02 00:37:02 -04:00
rusefi e9665e1ddc less ETB in case of critical 2020-04-02 00:32:03 -04:00
Matthew Kennedy 50cd6549a2
Fully switch acc pedal to new sensors (#1212)
* proxy sensor

* header

* idle

* can

* settings

* remove old mocking

* remove old impl

* etb

* oops, gotta actually register it

* fix test

* structured bindings ftw!

* driver intent for stepper

* tear out old

* oops too much
2020-04-01 20:21:03 -04:00
Matthew Kennedy d541e04a7d
Friendlier pin names (#1233)
* enable TS error readout

* friendlier text for common errors

* improve comment

* friendlier ADC errors

* ign/inj names

* more pin names
2020-03-29 19:07:07 -04:00
Matthew Kennedy 8fd9842310
cleanup extern mess (#1237)
* cleanup

* move outside define
2020-03-29 19:06:03 -04:00
rusefi d1b5a51400 progress 2020-03-28 20:56:58 -04:00
rusefi c778a44c8f #203 2020-03-26 19:22:14 -04:00
Matthew Kennedy 53679fab54
Finally rename injector_central to bench_test (#1229)
* bench test rename

* rename consumers

* good lord what are all of these externs doing

* fix tests
2020-03-26 08:03:55 -04:00
Matthew Kennedy 2349d74f0b
Default to applyPinState (#1219)
* make applyPinState default

* consumers

* format
2020-03-25 18:14:09 -04:00
rusefi 1955af0b6c random code inspired by Ola 2020-03-24 19:50:04 -04:00
rusefi 391b0ec368 progress 2020-03-23 23:51:51 -04:00
rusefi dc769e7a2a progress 2020-03-23 23:15:44 -04:00
rusefi 0e6aacb3b8 progress 2020-03-23 23:06:52 -04:00
rusefi c0e141026c code style 2020-03-23 22:31:24 -04:00
rusefi 165160bb40 random header clean-up 2020-03-23 09:00:57 -04:00
Matthew Kennedy 4740f525ee
save some ram (#1211)
* remove dead stuff

* why store those pointers twice?
2020-03-22 19:06:29 -04:00
Matthew Kennedy c19f3e4caa
Control stepper with dual H-bridges (#1121)
* divorce stepper from hw

* oops

* ptr not ref

* hbridge stepper

* typo

* hook up twin h

* hook up hardware

* use config field

* hook up motor repo

* guard tests

* whoops

* ok fix for real

* ok that's the right thing

* do full stepping

Co-authored-by: Matthew Kennedy <matthew@mck-mbp-15.stagpad.local>
Co-authored-by: Matthew Kennedy <matthew@mck-mbp-15.local>
2020-03-10 15:18:29 -04:00
Matthew Kennedy 40b0783205
Split out EtbHardware (#1168)
* start tear out motor

* fix

* nuke reconfig

* guard for test

* test fixing

* format, condense headers

* fix todos

* undo todo

* format
2020-03-03 17:56:50 -05:00
rusefi 04a4e2bca3 ETB: expand automated testing #115 2020-02-22 23:18:02 -05:00
Matthew Kennedy 20465107ed
boost format & cleanup (#1126) 2020-02-05 06:47:31 +05:30
rusefi 6888b09c53 Three wire idle air valve #1122
ugly but should work to begin with
2020-02-04 01:22:04 -05:00
960 4b4e683957
Boost pr (#1114)
* boost control

* cleanup

* Delete rusefi_config.txt

* Add files via upload

* Delete rusefi_config.txt

* Add files via upload

* Update rusefi.input

* Update boost_control.cpp
2020-02-02 03:56:21 -05:00
rusefi 7c714e5727 opening the door to boost controller! 2020-01-31 14:29:52 -05:00
rusefi f6e7e8871a VVT refactoring & assertions for VVT test 2020-01-31 01:49:10 -05:00
Matthew Kennedy fa5b5b76fb Separate stepper control logic from hardware (#1101)
* divorce stepper from hw

* oops

* ptr not ref

* ptr not ref

* whitespace

* null check
2020-01-15 02:18:15 -05:00
rusefi bb217b01dd happy new year unification 2020-01-13 21:57:43 -05:00
rusefi 19df4661ab better method name 2020-01-10 02:02:22 -05:00
rusefi b83a5310be happy new year 2020-01-08 00:02:40 -05:00
Matthew Kennedy 5c85d53e16 Pass action_s instead of callback/param (#1084)
* change action

* consumers

* fix test

* didn't mean to add those

* simplify

* fix simulator

* fix sim for real

* oy

* maybe this time the simulator will actually be fixed, for real

* don't rely on undefined behavior
2020-01-07 00:41:18 -05:00
rusefi 0075f9492c ETB documentation improvement? 2019-12-30 10:25:52 -05:00
rusefi 1c7de824e2 typo 2019-12-14 18:33:08 -05:00
rusefi 236d952335 progress towards ETB controller mocking 2019-12-13 13:52:34 -05:00
rusefi e9e7a66cf8 etbActualCount logic to handle the scenario where only one ETB is present 2019-12-13 12:50:34 -05:00
rusefi af4f20551b getting rid of boardConfiguration / binary compatible change 2019-12-11 17:48:55 -05:00
Matthew Kennedy 0e674f7eca ETB Encapsulation & C++ Conventions (#1049)
* encapsulate etb stuff, c++ conventions

* remove DECLARE_ENGINE_PTR/INJECT_ENGINE_REFERENCE

* reduce include dependencies

* Revert "reduce include dependencies"

This reverts commit c529bbbf757cd9070f6e00616f84b1229eeb768e.

* Revert "remove DECLARE_ENGINE_PTR/INJECT_ENGINE_REFERENCE"

This reverts commit ca98b18cd4dae24b993d1263a18daf509dcd54b9.
2019-12-10 19:37:04 -05:00
rusefi 813b6aa6ce The Big Refactoring of 2019: folder structure #723 2019-12-04 01:11:10 -05:00
andreika-git 2a39c69f51 iacPidMultTbl + EFI_IDLE_PID_CIC + kinetis_hysteresis (#1043)
* rename EFI_IDLE_INCREMENTAL_PID_CIC -> EFI_IDLE_PID_CIC

* Impl. IacPidMultTable

* Kinetis: Trigger Comparator Hysteresis settings (+adaptive mode)
2019-12-04 00:37:32 -05:00
rusefi de36f76882 The Big Refactoring of 2019: folder structure #723 2019-12-03 23:52:44 -05:00
rusefi 1c96d9541e refactoring 2019-12-02 23:08:18 -05:00
rusefi 1d817e9768 dual throttle re-init bugfix thank you andreika! 2019-12-01 09:39:34 -05:00
rusefi 3ed889486e making things nicer with dual ETB settings 2019-11-30 17:38:33 -05:00
rusefi b961edc654 refactoring 2019-11-30 16:49:40 -05:00
rusefi b04166d173 that's how we can move all fields one by one from boardConfiguration to engineConfiguration
my approach is to move fields from the bottom of BC struct
2019-11-30 10:24:37 -05:00
rusefi f80fe51092 all ETBs to run in same HW mode 2019-11-30 01:00:54 -05:00
rusefi 5fa7e082c8 all ETBs to run in same HW mode
taking a step back and going to bed :(
2019-11-30 00:39:00 -05:00
rusefi 2952cd923e all ETBs to run in same HW mode 2019-11-30 00:25:33 -05:00
rusefi a78dc22bf1 better state validation, better error codes 2019-11-29 23:41:26 -05:00
rusefi 73e3edc3d8 dual ETB seems to work! 2019-11-29 20:15:29 -05:00
rusEfi e2074388ff dual ETB seems to work! 2019-11-29 19:06:50 -05:00
rusefi 76ca1aacb7 all ETBs to run in same HW mode 2019-11-29 19:02:12 -05:00
rusEfi 799027c2e9 all ETBs to run in same HW mode 2019-11-29 16:51:51 -05:00
rusefi 07f71c8dfa steps towards dual ETB 2019-11-28 15:24:30 -05:00
rusefi 067aa0aeee steps towards dual ETB 2019-11-27 22:07:36 -05:00
andreika-git 1808642af1 Starter relay + Hardcoded 'FSIO' + simulator fix (#1032)
* Starter Relay: gui + built-in FSIO impl.

* Hardcoded 'FSIO' replacement for RAM-limited boards

* fix simulator
2019-11-25 20:08:01 -05:00
Matthew Kennedy 9ee8616cb0 Use templated array references (#1027)
* update defs

* consumers, use default params

* setArrayValues in tests

* floats

* test fixing
2019-11-22 23:27:24 -05:00
rusEfi 547d9749df v12 and minor ETB 2019-11-22 23:27:03 -05:00
Matthew Kennedy 579219e8cc inject interfaces to ETB, renaming (#1026)
* inject interfaces, renaming

* format

* null check

* that was a dumb typo

* fix indent
2019-11-22 20:53:54 -05:00
Matthew Kennedy bb22296f61 DC motor improvements (#1025)
* extract interface, comments, conform names

* fwd declare
2019-11-22 16:30:44 -05:00
rusefi 4faca85fdd following the pattern 2019-11-21 13:35:57 -05:00
rusEfi f9ccaf5f01 steps towards dual ETB 2019-11-21 00:49:38 -05:00
rusefi a5db4819ae making more code testable 2019-11-20 08:46:54 -05:00
rusefi a7b7fd1005 making more code testable 2019-11-20 02:18:17 -05:00
rusefi ad7e36c228 refactoring 2019-11-20 01:35:08 -05:00
rusEfi 36dba6274a ETB docs 2019-11-18 22:25:07 -05:00
rusefi 669c75d44f trying to fix integration tests
[java] 2019-11-10_13_31_42_194<EOT>: msg,FATAL error: PID::isSame invalid,
     [java] 2019-11-10_13_31_42_194<EOT>: postMessage EngineState: FATAL error: PID::isSame invalid
     [java] 2019-11-10_13_31_42_289<EOT>: Sending packet 4F 00 00 64 01
     [java] 2019-11-10_13_31_42_289<EOT>: output channels header: waiting for 2 byte(s)
     [java] 2019-11-10_13_31_42_290<EOT>: IncomingDataBuffer: 256 byte(s) arrived
     [java] 2019-11-10_13_31_42_290<EOT>: output channels body: waiting for 361 byte(s)
     [java] 2019-11-10_13_31_42_291<EOT>: IncomingDataBuffer: 107 byte(s) arrived
2019-11-10 16:07:13 -05:00
andreika-git b996190707 Industrial PID Controller (#1002)
* Implement Industrial PID controller

* Test-Use PidIndustrial in alternator

* Meaningful unit-tests for PidIndustrial
2019-11-10 13:04:27 -05:00
rusefi ae0456e5fb fine, taking care of more warnings 2019-11-06 19:53:09 -05:00
rusefi cc6381fe96 evil manual merge of https://github.com/DonaldBecker/rusefi 2019-11-05 20:07:55 -05:00
rusefi bab1744d1d progress towards #961 2019-11-04 22:44:52 -05:00
rusefi 4d095d4844 60/2 VW trigger has running issue on 19/10/19 snapshot fix #986 2019-10-30 20:51:20 -04:00
rusefi 627f73502b steps towards #975 2019-10-18 19:45:32 -04:00
rusefi d9401fbdbc steps towards #975 2019-10-18 19:39:06 -04:00
rusefi 0e01355c15 steps towards #975 2019-10-18 18:54:32 -04: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 ca6e49dcbc preparation for #961
macro as a syntax sugar for method invocation
2019-10-10 07:28:52 -04:00
Matthew Kennedy 29804cbc8a move tsOutputChannels to header (#970) 2019-10-08 21:02:51 -04:00
rusefi 42dc9e3662 fancy C++ s/NULL/nullptr/ 2019-10-08 01:26:35 -04:00
rusefi 62bbdbb33b docs 2019-09-29 15:14:08 -04:00
rusefi df7fe0ec3b fixing build 2019-09-29 14:22:51 -04:00
rusEfi fc3b7ec1bd etbCalibrationOnStart 2019-09-29 14:00:04 -04:00
rusefi d520e0734f docs 2019-09-28 09:59:40 -04:00
rusEfi 44b2c2f89e new command 'etb_freq X' 2019-09-27 23:37:40 -04:00
rusEfi 17dc0908f2 it's a cruel world 2019-09-27 23:01:47 -04:00
rusefi 8c5be72106 idle&ETB progress 2019-09-26 00:02:47 -04:00
rusefi ff8a3f2988 fixing build 2019-09-25 08:46:26 -04:00
rusefi bc572bef51 reducing hell in unit tests 2019-09-25 08:40:33 -04:00
rusefi 2bacf53c0d HardFault related to auto r = convertFromInputValue(inputValue); #948
wow, it's a miracle anything ever worked!
2019-09-23 01:55:23 -04:00
rusefi b66f3a8229 ETB is sticky around zero and does not want to close all the way #943
fixing build
2019-09-23 00:41:35 -04:00
rusEfi 89ed15838f ETB is sticky around zero and does not want to close all the way #943 2019-09-22 23:28:11 -04:00
rusefi e7b658547b ETB target is using integer values #945
now we have a unit test! now we can fix the issue :)
2019-09-22 17:58:27 -04:00
rusefi d09e096874 ETB target is using integer values #945
refactoring
2019-09-22 08:51:02 -04:00
rusefi 1b604359a9 ETB target is using integer values #945
refactoring
2019-09-22 08:44:51 -04:00
rusEfi 9b98446846 ETB target is using integer values #945
first we will write a unit test
2019-09-22 07:58:03 -04:00
rusEfi e29318b939 ETB target is using integer values #945
first we will write a unit test
2019-09-22 00:36:13 -04:00
rusEfi f843968636 ETB target is using integer values #945
first we will write a unit test
2019-09-22 00:16:46 -04:00
rusefi 4ba441fd49 "set_etb" is now "set_etb_duty" 2019-09-21 22:15:34 -04:00
rusefi 3646ef4406 ETB idle bugfix: do not use once turned off 2019-09-21 01:22:21 -04:00
rusefi f588224559 NB2 miata on Frankenso with ETB 2019-09-21 01:21:53 -04:00
rusefi 2bbbc1c787 ETB pinEnableMode 2019-09-20 22:16:54 -04:00
rusefi b9f649a93c ETB to SD logs 2019-09-20 20:41:45 -04:00
rusefi a72d2834fb unit tests progress 2019-09-20 00:46:35 -04:00
rusefi 154092bbf5 unit tests progress 2019-09-19 22:56:54 -04:00
rusefi 221ef7d9bb unit tests progress 2019-09-19 22:10:39 -04:00
rusefi 4f4f4ddfd9 FSIO progress 2019-09-13 21:07:34 -04:00
rusefi a6fbc5036a Delayed A/C compressor switch #922 2019-09-11 20:46:50 -04:00
rusefi cc011ee081 instant RPM for idle control #925 2019-09-10 23:03:55 -04:00
rusefi d90f0481b0 one step back :) instant RPM does not look right 2019-09-10 21:35:10 -04:00
rusefi 7676261ec6 instant RPM for idle control #925 2019-09-09 19:41:41 -04:00
rusefi e79287f537 Delayed A/C compressor switch #922 2019-09-08 21:05:03 -04:00
rusefi a585835add docs 2019-09-07 22:16:56 -04:00
rusefi 270565e593 docs 2019-09-07 21:35:55 -04:00
rusefi 2e27a94ee7 BUGFIX: ETB idle should care about pedal position, not TPS position 2019-09-03 21:45:42 -04:00
rusefi 98a391011a better field name 2019-09-03 19:12:04 -04:00
rusefi 2343cd6b12 make iTerm limits visible for idle RPM pid #913 2019-09-02 00:24:10 -04:00
rusefi be1b32abf0 make iTerm limits visible for idle RPM pid #913 2019-09-02 00:19:06 -04:00
rusEfi 8126b700de NB2 progress, ETB Live Docs progress 2019-09-01 19:37:58 -04:00
rusEfi daec071b6b mock PPS voltage command in addition to mock PPS position
ETB pane progress
2019-09-01 17:35:43 -04:00
rusefi ebcb0cdf4c Live Data: more Idle & ETB data points! 2019-09-01 15:46:40 -04:00
rusefi 33cc21225c Live Data progress: using field's context 2019-09-01 15:01:57 -04:00
rusefi 1ffaa8eea2 Live Data progress 2019-09-01 13:56:46 -04:00
rusefi 4141c7b4c2 typo 2019-09-01 11:39:09 -04:00
rusefi 7842c7305f Live Data progress 2019-09-01 00:45:36 -04:00
rusEfi 47bbd6ebe4 ETB progress 2019-08-31 20:17:17 -04:00