Commit Graph

23 Commits

Author SHA1 Message Date
Daniel Tobias 7020705dbe
fix typos in code documentation (#816)
* fix typos in code documentation

* minor reverts

* fix typos in ini

Co-authored-by: Josh Stewart <josh@noisymime.org>
2022-04-11 10:49:58 +10:00
Josh Stewart 35f196930a Minor cleanup from the newComms / LegacyComms move 2022-03-01 15:27:46 +11:00
Josh Stewart 8a54c4b23b Fix calibrations tx on legacy comms
Note the renaming of newComms to comms. Old comms has been moved to _legacy files
2022-02-28 10:28:06 +11:00
tx_haggis 6c12bcc32d
Separate table axis I/O conversion from iteration (#767)
* Missing include

* 1. Add int16_byte class
2. Add axis factory function for int16_byte instances
(flyweight pattern)

* Separate out axis iteration and I/O conversions

* Optimize for size and performance.

* Fix unit test
2022-02-24 16:11:54 +11:00
Josh Stewart 5e911584d7 Add serial command for dumping/loading raw EEPROM tunes 2022-02-02 09:30:41 +11:00
Josh Stewart b1dbd812e4 Dev signatures for 202204 2022-01-16 07:27:32 +11:00
Josh Stewart 9121b45995 Signatures for interim release 202202 2022-01-09 16:26:30 +11:00
Josh Stewart 9eb61271cf Signatures for 202201 release 2022-01-07 20:55:37 +11:00
Josh Stewart 300c8699cc New Comms change to prevent lockup during large table writes 2022-01-07 16:49:04 +11:00
Josh Stewart 744621db34 Slight tweaks to composite logger 2021-12-21 14:34:54 +11:00
Josh Stewart 809fd9d55b New Comms Tooth and Composite loggers 2021-12-20 16:22:23 +11:00
Josh Stewart 2439883a69 Further SD compatibility work with new comms 2021-11-20 08:29:11 +11:00
Josh Stewart db2e667abb Initial work on new serial comms (Disabled in ini) 2021-11-19 11:07:38 +11:00
tx_haggis 5ed9ec3ca9
Reduce 3d table memory usage (>500 bytes) (#662)
* Use table_row_iterator_t to adjust ignitionTable

* Separate 2d & 3d table code, abstract page to table iterator conversion.

This is just moving code around in preparation for future changes.

* Reduce table RAM (.bss) usage

Generate a separate type for each possible
3d axis & size combination.

This turns what was runtime information into
compile time data.

* Save 1 byte per table.

Use a flag value (INT16_MAX) instead of a separate boolean
flag

* File renaming

table_iterator -> table3d_iterator.h
table3d.h -> table3d_interpolate.h
table3d.cpp -> table3d_interpolate.cpp
table3d_types.h -> table3d.h

* Optimize page.cpp: reduce code clutter, maintain performance

* Reduce flash usage

* Encapsulate table metadata

* Performance - hoist if statement

* Replace function with macro

* Use a packed enum as a type identifier

Use a packed enum as a type identifier

Slimmer data types

* Use table iterators for random access to table
values and axis.

* Centralize write buffer check

* Encapsulate 16-bit reference concept

* Performance: make table iterators proper classes

This allows us to chain calls on temporaries - not possible
with regular function calls.

* Performance: encapsulate EEPROM update
& address increment

* Save flash - don't duplicate function

* Performance: directly invalidate table cache

* Separate out iterator reversal

* Separate out entity mapping & per-byte access

Much faster, smaller code footprint & easier to understand

* Code quality fixes

* Separate out axis metadata

* Doxygen comments

* Separate int16_ref into separate file

* Separate out table axies & values into separate types

No need for metadata types & more localised code.
E.g. creating iterators is now alongside the data over
which they iterate.

* Doxygen
2021-11-18 11:30:29 +11:00
Josh Stewart 793482a27b Big chunk of SD logging work. 2021-10-13 11:53:46 +11:00
Josh Stewart 93de5eecda Initial work on common SDFat library.
Implements much of the layout and settings from #543
2021-10-04 00:09:53 +11:00
Josh Stewart 82cdbdc561 202109 dev signatures 2021-08-20 15:26:14 +10:00
Josh Stewart 95b8e6ee75 Signatures for 202108 release 2021-08-09 23:05:32 +10:00
Pasi Kemppainen 1da3fb1304
Add EMAP gauge/logging (#596) 2021-07-04 11:26:57 +10:00
Olli Hollmen 61b1401b49
Add doxygen documentation (#597)
* 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.
2021-06-22 15:30:52 +10:00
Pasi Kemppainen 982e52db1b
VVT2 addition and closed loop VVT improvement (#551)
* VVT2 and closed loop VVT improvement

* Fix building for latest changes

* Fix CRC error

Co-authored-by: Josh Stewart <josh@noisymime.org>
2021-04-22 08:56:39 +10:00
tx_haggis 1f47f8dcd6
Additional compiler warning fixes (#561)
* Remove unnecessary and invalid forward declarations

* Flag unused parameter
2021-04-21 22:24:35 +10:00
tx_haggis 02cb7bebd6
Isolate table3D member access in comms.ino (#545)
* 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 :-(
2021-04-21 14:36:27 +10:00