Commit Graph

17 Commits

Author SHA1 Message Date
Matthew Kennedy ef9032bca4
Control injectors with a mask rather than pointers (#551)
* mostly implement

* tests

* tests

* tests

* properly handle single point injection

* fix tests

* fix tests

* scheduler

* format

* fix tests

* extract calculateInjectorOutputMask

* uncomment

* split injection just barely fits!

* provide a constructor so maybe mac is happy?

* don't bother storing the mask at all

* simplify

* make the pad bits predictable
2025-02-13 17:54:42 -08:00
Matthew Kennedy 5110c5bb85 pass mode in to computeInjectionAngle 2025-02-12 10:30:42 -08:00
Matthew Kennedy 48d4191932 stash injectionmode in the event 2025-02-11 22:56:05 -08:00
Matthew Kennedy 0d2ceefde3 move injection SOI function to OneCylinder 2025-01-18 02:35:06 -08:00
Matthew Kennedy 632c493c4f little bit of encapsulatino 2024-04-25 16:18:51 -07:00
Matthew Kennedy e332b32ed1 distinguish between "timestamp" and "duration" 2024-04-25 12:57:10 -07:00
Matthew Kennedy f8070a922a
implement & test backend for injection splitting (#367)
* framing dual injection

* fix test

* uncomment logic

* format

* start test

* good test

* add todo
2024-02-21 10:54:27 -08:00
Matthew Kennedy 9673ff01f3
implement staged injection (#331)
* output channel

* duty cycle etc math for second stage

* action_s utility

* basic enable switch

* staging fraction math

* implement staging logic

* wire up pins for second stage injectors

* staging UI

* Improve staged injection test, check scheduler arguments for other injection tests

* Stage 2 last pulse output channel, correct fuel consumption logic

* wall wet on the whole shot

* int vs size_t

* use a define instead of function so we get line numbers

* fix batch injection

* gauges

* bad test merge

* stub out secondary injector model
2024-01-07 15:22:39 -08:00
Matthew Kennedy a45b9ab611 minor housekeeping 2024-01-06 23:10:56 -08:00
Matthew Kennedy 7e2097056c unused parameters 2024-01-06 18:31:18 -08:00
Matthew Kennedy 38c873252e
smarter injector duty cycle limiting (#215)
* config for duty cycle limiting

* implement timeout duty cycle limiting

* comment

* make overlapping injections actually work!

* missed one

* test

* call addFuelEvents from fast callback

* update comment about why we call it again in main trigger callback

* one more extra call

* undo addFuelEvents change

* cleanup

* minor encapsulation

* fix

* changelog

* dead obd code
2023-10-14 14:27:19 -07:00
Matthew Kennedy e09ed790eb extract injection refactoring from #215 2023-10-12 18:00:33 -07:00
Matthew Kennedy 2118aaff60 Allow scheduling_s to come from a pool (#4841)
* injection events use scheduling pool

* knock and prime

* bench test

* dropped this: *

* extract action before execute

* comment

* init allocated timers

* metrics

* dropped this: ,

* guard

* injection events use scheduling pool

* knock and prime

* bench test

* dropped this: *

* extract action before execute

* comment

* init allocated timers

* metrics

* dropped this: ,

* guard

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2022-12-10 17:55:51 -05:00
rusefillc f919845c9c tear down Engine god object #4511
oh I hope this ends well
2022-09-15 23:41:06 -04:00
Andrey 556427b01d moving IO-only away from scheduling logic 2022-09-14 00:52:24 -04:00
Andrey b6eddaee59 tear down Engine god object #4511
just trying different things
2022-09-05 03:38:44 -04:00
Andrey 9a9b33401c refactoring: splitting header where cpp was already split 2022-09-05 00:48:38 -04:00