zfit: Compression for FIT files.
Contains a delta encoder / decoder and heatshrink compression.
heatshrink comes from https://github.com/atomicobject/heatshrink
To build:
Type "make", which builds both static and dynamically-allocated
compressor / decompressors.
To use on desktop:
Start with the dynamic/fit_*zip.c files.
The fit_zip executable can take two command-line arguments: -w sets
the window size and -l sets the lookup size. -w 0 has a special
meaning: No compression is performed, just delta encoding.
The fit_unzip executable can take one command-line flag: -d disables
decompression and performs only delta decoding.
To use embedded:
Start with static/fit_zip.c. You will need to supply FILE * file
descriptors to read and write. Only fread() and fwrite() are called
on these, so they can be search-and-replaced to a different type of
file descriptors if necessary. (or maybe macro-ized?)
See zfit.pdf to choose appropriate parameters for your device.
File descriptions:
| ./README | this file |
| ./LICENSE | ISC License, like heatshrink itself |
| ./zfit.pdf | algorithm documenatation |
| ./Makefile | Makes both static and dynamic variants |
| ./heatshrink | git pull of heatshrink source |
| ./static | statically-allocated variant. Encoder only. |
| ./dynamic | dynamically-allocated, encoder and decoder |
| ./static/heatshrink_config.h | heatshrink configuration for static alloc |
| ./static/fit_zip.c | source for for static compressor |
| ./static/Makefile | builds static compressor |
| ./verify.py | Python helper for verification / testing |
| ./dynamic/heatshrink_config.h | heatshrink configuration for dynamic alloc |
| ./dynamic/fit_zip.c | source for dynamic compressor |
| ./dynamic/fit_unzip.c | source for dynamic decompressor |
| ./dynamic/Makefile | builds dynamic compressor / decompressor |
| ./fit_delta_encode.c | fit delta encoder |