Commit Graph

634 Commits

Author SHA1 Message Date
Andrey G cc9b1517ac compile warnings: signed vs unsigned and unused (#4713) 2022-10-30 09:47:53 -04:00
rusefillc ec184423f2 send more of Engine Sniffer data #4560 2022-10-29 21:55:35 -04:00
rusefillc cc51ca3c85 send more of Engine Sniffer data #4560 2022-10-29 21:27:49 -04:00
Matthew Kennedy c23d7ec077 use offsetof instead of generated offset defines (#4696)
* constify efi_gpio, use size_t

* use offsetof instead of macros

* don't generate offsets in rusefi_generated.h

* comment explaining the madness

* java fixes

* casing
2022-10-23 16:39:18 -04:00
Matthew Kennedy 1e0144efaa constify efi_gpio, use size_t (#4695) 2022-10-23 08:25:47 -04:00
Matthew Kennedy 90489edb96 schedule ignition charge by angle instead of tooth (#4513)
* schedule ignition charge by angle

* same mistake as #4536

* s

* wrap sparkAngle too

* AngleBasedEventNew

* function moved

* implement scheduleOrQueue

* prints
2022-09-25 11:00:55 -04:00
Matthew Kennedy 4e78c4c922 two modes trigger scheduler (#4598)
* two modes trigger scheduler

* asOld

* hpfp
2022-09-20 05:28:23 -04:00
Andrey 556427b01d moving IO-only away from scheduling logic 2022-09-14 00:52:24 -04:00
Matthew Kennedy fb2565952d pwm iteration limit to avoid float math accuracy loss (#4578) 2022-09-13 21:16:35 -04:00
Andrey G 2b4012b279 dead code, reduce typedefs (#4566)
* Do lightweight checks first

* Dead getTimeIgnitionSeconds()

Dead since 5274cffff3

* Get rid of efitime_t.

Purpose are not clear. Use efitick_t where ticks are used,
use efitimeus_t for uS, use efitimems_t or efitimems64_t for mS.

* Fix unit tests

* Fix misc: stm32f1_test_project
2022-09-11 16:08:11 -04:00
rusefillc cb3c070928 refactoring: type safety 2022-09-11 02:57:35 -04:00
rusefillc 202c6ba366 send more of Engine Sniffer data #4560
new API & first usage
2022-09-10 23:42:59 -04:00
Andrey 91179ac54b brutal encapsulation 2022-09-07 20:31:04 -04:00
Andrey f8d275f64b tear down Engine god object #4511
just trying different things
2022-09-07 20:25:49 -04:00
Andrey e734bd7b07 brutal encapsulation 2022-09-07 20:20:29 -04:00
Andrey 78767c22b1 brutal encapsulation 2022-09-07 19:37:11 -04:00
Andrey a7c8ce61f4 brutal encapsulation 2022-09-07 19:37:11 -04:00
Andrey 8f14c44097 extracting prime_injection 2022-09-07 16:25:50 -04:00
Andrey 25b6d39802 os_access.h dead? 2022-09-07 15:56:45 -04:00
rusefillc 8c10cf22c4 Engine Sniffer into TS data logs fix #4535 (#4537) 2022-09-05 19:49:27 -04:00
rusefi 8ebe5a9262 lua outputs bench test 2022-08-24 13:20:14 -04:00
rusefillc 87389f152e https://github.com/rusefi/hellen154hyundai/issues/57 2022-08-09 13:26:11 -04:00
Matthew Kennedy 24142f8330 Simpler thread controller (#4327)
* s

* Start -> start

* maybe tests are happy

* s

* s
2022-08-02 01:16:13 +03:00
Matthew Kennedy f49f6494fb report injector, ignition faults (#4408)
* report injector, ignition faults

* guard
2022-08-01 15:41:47 -04:00
rusefillc 9cee48421d (insert passive-aggressive smart prefix here) HARDWARE VALIDATION has disappeared fix #4405 2022-07-30 15:03:45 -04:00
rusefillc aa08c2c320 FATAL does not light up red LED on MRE with OpenBLT fix #4404 2022-07-30 14:58:43 -04:00
Matthew Kennedy efdae2322d Start -> start (#4366) 2022-07-21 15:17:32 -04:00
Matthew Kennedy 6267b8621a big delete ICU (#4270)
* big delete

* icu vestiges

* changelog
2022-07-07 15:27:59 -04:00
Matthew Kennedy 62d55a98a4 get correct stamp (#4174) 2022-05-14 23:01:02 -04:00
rusefillc d690544793 Timestamp Error scheduleByTimestampNt too far #3395
improving error message
2022-05-14 21:24:19 -04:00
Matthew Kennedy 23d222c159 remove suspicious cast that could maybe cause an overflow (#4169)
* suspicious cast

* don't print 64b

* explicit type
2022-05-13 06:40:37 +03:00
Matthew Kennedy 83caf1ea1b 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 a2e1a079b8 allow enum_class in rusefi_hw_enums.h (#4104)
* make things c++ friendly

* install various canaries in coal mines

* using is much clearer than typedef

* fixing builds

* lps25

* trigger includes were a mess

* c -> c++ cleanup

* os util

* why did so many include os_util.h?

* fwd declare

* cypress/kinetis

* s

* eg33 happy

* happy sim

* cypress usb

* pch

* cypress

* doesn't need to include all that

* h7
2022-04-25 20:38:16 -04:00
David Holdeman d7ac0c1db8 TCU features and fixes (#4082)
* add tcc pwm freq field

* add pc fields, make trans fields conditional

* make button shift fields conditional, remove duplicates

* add 3-2 solenoid fields

* add PC curves

* try combining tcc curves

* try combining pc curves

* use airmass instead of tps for pc

* reduce airmass axis

* increase axis digits

* duplicate for per shift, change names

* add pc per shift arrays

* try moving tables

* move more tables

* init solenoid pins

* start adding pwm stuff, change some array names

* fix gear issue

* fix multiple shift issue

* fix transmission controllers not working

* fix transmission controllers not working 2

* rearrange and virtual some things

* make getMode const

* fix pwm
2022-04-18 20:09:27 -04:00
David Holdeman ae24cbf70e Some untested TCC control (#4066)
* rebase

* save changes

* save changes

* fix whitespace

* try enum class

* change field name

* Add TCC pin fields

* add TCC tables

* add a bit of TCC control logic
2022-04-12 19:15:09 -04:00
rusefillc c1dd86f1d0 User board-specific terms in error messages #3886
progress
2022-02-03 12:45:26 -05:00
Andrey eb5206dada Remove legacy check fix #3808 2022-01-18 16:01:27 -05:00
Andrey b927134b0f https://rusefi.com/forum/viewtopic.php?p=44100#p44100 2022-01-18 10:24:08 -05:00
rusefillc ffca542785 On m_event vs lobe vs scheduling #3804 2022-01-18 00:45:24 -05:00
rusefillc 376bc1a8d8 https://github.com/rusefi/alphax-2chan/issues/14 2022-01-16 23:03:14 -05:00
rusefillc 73c60f4752 warning(CUSTOM_ERR_6586, "attempting to change unassigned pin") 2022-01-16 15:53:27 -05:00
rusefillc 1955c5a3c2 mk files refactoring 2022-01-06 20:06:31 -05:00
Andrey d2c46b3310 Let's always have TS structure so that unit tests can check values in outputChannels, kind of making outputChannels a god dump for state but whatever since Live View is coming 2021-12-07 20:18:47 -05:00
rusefillc 0aaf9ccdc2 harley 2021-11-26 14:41:35 -05:00
rusefillc fc10166f97 spelling 2021-11-23 07:57:43 -05:00
Scott Smith 9d61fb4cfd 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
rusefillc 18aacc0ef6 On -fpermissive in Windows in unit tests #3581 2021-11-20 00:16:03 -05:00
Scott Smith 07d30285fc 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
Scott Smith aba4e5167e Separate out scheduleOrQueue into it's own standalone scheduler. (#3573)
It's a large enough entity that it shouldn't be buried in ignition logic.
2021-11-18 14:27:21 -05:00
rusefillc dfac1897e1 Startup Pin State Error - maybe hardware damage of STM32 pin connected to a 12v-powered TC4427? #3558 2021-11-17 04:45:55 -05:00
Scott Smith 80091498a6 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 dac2ae9b1d 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
Matthew Kennedy 7296593448 remove engine pointer passing (#3556)
* some

* more

* more

* the last?!
2021-11-16 04:15:29 -05:00
Scott Smith c354d30a71 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
Matthew Kennedy bd04dc8352 less macro, more c++ (#3549)
* less macro

* s
2021-11-15 12:44:40 +01:00
rusefillc 3327b0d4e7 Epic: Remove FSIO #2928 2021-11-14 10:57:19 -05:00
rusefillc 8fd82af0cb Epic: Remove FSIO #2928 2021-11-14 08:37:50 -05:00
Scott Smith 1a299a3221 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
Scott Smith 5bd7d8e372 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 38ea0d1835 Revert "Don't keep a separate MultiChannelStateSequence for the trigger emulator. (#3513)"
This reverts commit 4e220dc163.
2021-11-09 20:42:23 -05:00
Scott Smith 4e220dc163 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
rusefi 8bab53c1fd nicer messages 2021-11-08 20:49:12 -05:00
Matthew Kennedy 847dbaf7a8 use name of pwm (#3393) 2021-10-22 15:23:53 -04:00
Matthew Kennedy 56afeb17c8 Fix simulator (#3360)
* fix simulator

* print out halt reason

* option to close simulator after time

* workflow calls it

* test with the bug still present

* ...and fix the bug
2021-10-17 20:07:25 -04:00
Andreika 49aedb1c74 [DRAFT] IAC H-Bridge Microstepping (#3213)
* fix for stepperHbridgeHardware

* new config fields for microstepping

* add stepper dir pin mode to the dialog

* refactor stepper hw dialog & add microstepping panel

* microstepper modes enum

* stepperDcInvertedPins needed by Hellen

* add sleep() for stepper and divisor for pause()

* microstepping impl.

* make unit-tests more happy

* small progress

* fix etb-stepper dlg conflict

Co-authored-by: Andrei <andreikagit@users.noreply.github.com>
2021-10-06 13:57:04 -04:00
Andrey 82116d9aa1 SPARK_EXTREME_LOGGING 2021-10-01 23:50:32 -04:00
rusefillc a383d726de more details into CUSTOM_OBD_LOW_FREQUENCY message 2021-09-05 14:21:02 -04:00
Matthew Kennedy ad205cb15e detect "not scheduled" faster (#3200)
* fatal if not found

* handle not-scheduled

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-08-27 11:46:01 +03:00
Matthew Kennedy 9d437474b2 add cancel to scheduler (#3201)
* fw

* for tests

* simulator

* sim

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-08-27 11:30:06 +03:00
Matthew Kennedy 0b648f5960 init the timer before we try to use it (#3205)
* init the timer before we try to use it

* format

* guard
2021-08-27 10:59:00 +03:00
Matthew Kennedy 7a4a0bb608 add & test remove from linked list (#3199) 2021-08-26 23:03:09 +03:00
Matthew Kennedy 4e6b61234f 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 d3ec2b21d1 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 85da399c0e trailing spark outputs #2931 2021-07-21 20:51:51 -04:00
Matthew Kennedy 7d709950f7 force init LEDs even with fatal (#2998) 2021-07-20 17:09:52 -04:00
Matthew Kennedy e3849b95d5 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
rusefi fb2c88a37b FATAL on NB2 tune jim stim input signal #2965 2021-07-14 17:45:54 -04:00
Andrey 47f285c50c FATAL on NB2 tune jim stim input signal #2965 2021-07-14 16:03:00 -04:00
Matthew Kennedy 0a40ccd619 put names in flash (#2939)
* put names in flash

* probing freed ram

* this one too

* probing memory

* more like that much
2021-07-09 17:05:16 -04:00
Matthew Kennedy 1bba234920 inject (#2938) 2021-07-09 17:02:25 -04:00
Matthew Kennedy ff31301284 trailing coils (#2937)
* gpio wiring

* plumbing
2021-07-09 15:51:30 -04:00
Andrey 21a83351c3 random progress 2021-07-09 14:43:58 -04:00
rusefillc 06c364247f random progress 2021-07-09 14:27:10 -04:00
Andrey c5e9f2b6b5 trailing spark outputs #2931 2021-07-09 10:14:00 -04:00
Matthew Kennedy f169fbf615 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 717d4dd7ac Unified cyl count macro (#2914)
* update test framework

* eh

* hey look it's fewer warnings

* unwind

* fix

* config

* configs

* logic

* even java had some

* console needs help
2021-07-06 20:14:08 -04:00
Matthew Kennedy ebf6083d95 test dc_motor.cpp (#2890)
* use ipwm where possible

* mock ipwm

* initialize

* test
2021-07-01 09:21:18 -04:00
Matthew Kennedy 71cbe6a3a6 dc motor api (#2869)
* iwpm

* dc motor has configure

* consume

* format

* spelling
2021-06-26 21:42:40 -04:00
rusefillc dc331a3b63 unit_tests: mapAveragingTriggerCallback causes segmentation fault #2858 2021-06-25 10:21:31 -04:00
Matthew Kennedy aafb2e7def misc threading/safety improvements (#2854)
* allow termination of thread controller

* no gpio if fatal

* stub for test
2021-06-24 20:18:23 -04:00
Matthew Kennedy 172b11bfe9 dual fans (#2806)
* remove fsio

* hard code impl

* test it

* enable fan with AC

* make commented stuff match

* second fan config

* second fan ui

* defaults

* impl
2021-06-13 08:06:45 -04:00
David Holdeman 68da5c279e Doxygen titles (#2728)
* move addRow call

* undo submo bump

* add header titles
2021-05-22 22:10:58 +03:00
Matthew Kennedy 4b0d75ff92 make the simulator usable (#2717)
* these start themselves now

* dead

* configure ports

* start serial

* dead

* minimal pins

* simulator logging works

* why not enable lua

* speeeeeed

* start lua

* spammy print
2021-05-17 12:44:02 +03:00
Andrey 06bdf52b3c More low-level firmware coverage for the simulator/unit-tests #2656 2021-05-15 05:27:33 -04:00
Matthew Kennedy 37a3de07cf remove stateChangeCallback from simplepwm (#2644)
* remove callback parameter from cj125

* remove from ext

* remove stateChangeCallback

* alt doesn't need that

* demorgan

* remove call

* bad cut/paste

* check the actual pin in the test
2021-05-07 09:38:41 -04:00
Matthew Kennedy b12d392343 pack scheduling_s (#2642)
* pack scheduling_s

* ramz
2021-05-07 08:22:35 -04:00
rusefillc e6591f0658 code style 2021-05-06 10:43:42 -04:00
rusefillc 87e0b28cc4 https://rusefi.com/forum/viewtopic.php?f=16&t=1996 2021-04-25 09:18:35 -04:00
Matthew Kennedy 5f0791f9fb 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 737ee444b8 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