List of things to finish before I consider this library ready for public
consumption:
[ ] Define an actual public API.
* Going to split the API into two parts, a low-level API and a high-level
API.
* Low Level will consist of Register structs, the CalibrationData trait,
others? The purpose of the low-level API is to allow users of this library
who need to save a handful of bytes or CPU cycles to do that if they know
what they're doing.
* User story (taken from an issue on the Melexis mlx90640 GitHub repo): Sam
is using a very memory constrained microcontroller, and to reduce RAM
usage has stored the calculated EEPROM constants in the microcontroller's
flash. This can be facilitated by mlx9064x by exposing the
CalibrationData trait and having the overall camera operations generic
over the trait.
* User story: Alex is trying to squeeze as much throughput as possible out
of their hardware, so they're batching every register access they can. The
high level interface (in this story at least) is cautios and does a
read-update-write cycle, but Alex knows the exact values the registers
need to be for maximum performance. Right now the Register srtuctures
aren't exposed publicly, but they should be. The read and write functions
for the registers should also be rewritten so they only do *exactly*
what's required, and nothing more (and use the high level API to build in
the cautious part).
[ ] Implement MLX90641 support.