* Add Doxygen markup for grouping decoders. Tidy-up doucumentation just enough to make
Doxygen 'Modules' page neat / somewhat consistent (w/o stripping any info, on the contrary
some info is now added for few decoders that had only name present).
Add minimally modified Doxygen Doxyfile configuration.
* Document statuses and config* structure members in globals.h:
- Convert existing documentation to doxygen
- Document some of the undocumented members cross-referencing code files
where they are used (often containing good explanations in code comments) or
deriving meaning from code (leave question mark as marker of uncertainty
or need for clarification)
- Same activity in misc .h header files w. struct declarations.
Misc .ino files with code:
- Convert existing code documentation to doxygen
- Add documentation to undocumented functions (deriving idea from raw code and
code embedded comments)
- Some additions to existing documentation.
End sentences with period, as it has many iportant meanings for Doxygen
e.g. auto-brief ends at first-sentence period and in (doxygen generated)
HTML ascii newline does not break lines (or sentences).
Doxyfile: Add README.md file as INPUT from upper (codebase root) directory.
Doxygen 'Modules' page neat / somewhat consistent (w/o stripping any info, on the contrary
some info is now added for few decoders that had only name present).
Add minimally modified Doxygen Doxyfile configuration.
* Flag unused parameters
* Fix compile warnings: abuse of static inline
Place functions in correct order & only forward
declare when necessary
* Suppress unused parameter warnings
Co-authored-by: Josh Stewart <josh@noisymime.org>
* 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.