* fix!: fix ODR violations
* refactor: move page specific code into a separate CPP file
* refactor: page getter/setter share mapping logic
Extract common page-to-entity mapping logic from
getPageValue() & setPageValue() - place in map_page_offset_to_entity()
and share.
* performance: optimize CRC calc
Calculate page CRC by iterating over entities & tables.
* CRC table calculation - use table iterator
* refactor: use iterators for sendPage()
Re-implement sendPage() using page & table iterators
Future proof & fast
* refactor: sendPageASCII()
Pull put shared code into functions.
Use table iterator
* refactor: use shared axis factor
This puts the axis factor usage in one place
* refactor: encapsulate page size & count
Added getPageCount() & getPageSize()
* Added static_assert for all pages.
* Remove C++ language elements
namesapces, scope resolution, enum struct
* Rename comms.ino to comms.cpp
Provides better encapsulation of non-global
data & functions.
INO files are all mashed together by some
custom process. So everything becomes global and
static functions/variables aren't really private to
the translation unit. Thus breaking encapsulation :-(
* STM32 fixes and tweaks
Removed generic STM32F103 options from PlatformIO
Added optional serial compilations on PlatforIO
Make sure all timers are stoped at boot
Small speed improve at SPIasEEPROM
Added timers usage table to board_stm32_official.h
* Added base board
* Vss condition in Idle Advance.
VSS value condition to activate Idle Advance.
* Update 1
Adequacy of verification
Co-authored-by: Josh Stewart <josh@noisymime.org>
* Allow staged injection if we have throttle body injection regardless of the number of cylinders.
* Allow staged injection if we have throttle body injection regardless of the number of cylinders.
Co-authored-by: David Smith <dave@smithfamily.org.uk>
Co-authored-by: Josh Stewart <josh@noisymime.org>
* poll-level setting for speeduino.ini
* Update globals.h
* Simple poll level decoder
* Changed the poll level check to happen at tooth #1. Not at missing tooth.
* Set trigger edge automatically correct to work with closed loop VVT.
* Fix typo
* Changed to READ_SEC_TRIGGER() -macro
Co-authored-by: Pasi Kemppainen <pazi88@users.noreply.github.com>
* refactor: extract coomon EEPROM load code
* refactor: optimize value indexing
* refactor: use EEPtr instead of raw index
* refactor: use STL style templates
* refactor: extract common EEPROM write code
* fix: EERef & EEPtr don't exist on all platforms
Use raw integer indexes and call EEPROM
methods instead.
* refactor: remove templates
This adds a decoder for the Ford ST170 engine.
This setup uses a 36-1 primary and a unique 8-3 secondary trigger.
The existing missing tooth deooder with fixed parameters is used as the primary to reduce duplication.
* the TS_CMD_VSS_RATIO* id values overflow signed 16 bit int on avr
switch to unsigned 16 bit value
define TS_CMD_VSS_60KMH 39168 //0x99x00
define TS_CMD_VSS_RATIO1 39169
define TS_CMD_VSS_RATIO2 39170
define TS_CMD_VSS_RATIO3 39171
define TS_CMD_VSS_RATIO4 39172
define TS_CMD_VSS_RATIO5 39173
define TS_CMD_VSS_RATIO6 39174
* make sure we don't overflow and accidentally set negative timing
currentStatus.advance can only hold a signed 8 bit value
* make sure we can't have a negative multiplier
* Pin definition for the Juice Box board
Ignition-only user board
* Update platformio.ini
Formatting corrections.
* Added JUICEBOX user board
User board and pin mappings
* Updated platformio.ini to reflect noisymime
* Add platformio.ini to gitignore
* Updated pin mappings
Pin mappings updated. Serial 2 now working
* Removed platformio.ini
* Match noisymime version
* Match noisymime version (2nd attempt)
* Update speeduino.ini
Match noisymime version to allow merge.
* JuiceBox pin layout added back in
* refactor: parameterize the MISRA checking script
The script contained hardcoded paths, which made it difficult
to use as part of the development workflow.
* ci!: use script relative path to pick source folder
* ci!: default output folder within source tree
* refactor: have cppcheck run the misra script
* refactor: use "rm -f" - remove existence check
* refactor: encapsulate into functions
* ci!: merge git MISRA logic into check_misra.sh
* ci!: count true errors, not style violations
* ci: use common MISRA check script
Co-authored-by: adbancroft <adbancroft@users.noreply.github.com>