# Changelog All notable changes to this project will be documented in this file. ## [0.15] - 22-01-2025 ### Added - add fuzzer for cmp_tool ### Changed - error handling is now consistent with the --binary option when model file size does not match original data size ## [0.14] - 16-01-2025 ### Added - check for model file size mismatch errors ## [0.13] - 08-11-2024 ### Added - added chunk-specific compression parameter guessing functionality - added chunk compression parameter file I/O functionality - added fuzz target for decompression - added Github action to compile with Werror and run tests - added unit tests to improve code coverage ### Changed - improved spillover threshold calculation logic for chunk compression - downgraded reserved field check from error to warning in decompression - added const qualifiers for (de)compression parameters - renamed CMP_ERROR_SMALL_BUF_ to CMP_ERROR_SMALL_BUFFER - replaced dynamic max_used_bits struct with constant definition - separated RDCU configuration into its own struct - consolidated l_fx_variance and l_cob_variance into single l_fx_cob_variance field - changed return type of compress_like_rdcu from int32_t to uint32_t - updated Doxygen configuration and comments - updated doxygen-awesome-css submodule to latest version - fixed spelling errors and grammar in documentation and messages ### Fixed - corrected size calculation when `dst` is NULL in `compress_chunk()` - fix be24_to_cpu function for big-endian systems - fix collection size validation in decompression header ### Removed - remove deprecated ICU compression interface - remove (de)compression from fast cadence data products ## [0.12] - 2024-05-02 ### Added - added chunk (de)compression - added test case for chunk (de)compression - added -vv flag for extra verbose output - fuzzing - added fuzzing targets configuration in meson build system - added GitHub Actions workflow for ClusterFuzzLite integration - added compression speed test bench - added wrapper to execute programmes on a LEON setup - added examples for software and hardware compression - updated unit tests - added compression and decompression for DATA_TYPE_F_CAM_OFFSET and DATA_TYPE_F_CAM_BACKGROUND - documentation was improved with additional comments and doxygen strings ### Changed - enhanced error handling in chunk compression functions - compression function now returns error code upon failure - Added error code checking with cmp_get_error_code() - added descriptive strings for each error code - updated debug_print() for better environment adaptability - adapted to C standard GNU89 with GCC extensions - restructured file layout: - split lib folder into common, decompress, icu_compress rdcu_compress - moved cmp_tool files into programs directory ### Fixed - Fixed cross-compilation to Windows on Ubuntu/Debian - Fixed cmp_tool chunk compression entity header - Fixed model update for NULL dst and worst case model mode - Fixed unaligned access when compressing imagettes - Fixed sparc compiler warnings and compatibility issues - Fixed compiler warning for datetime deprecation ### Removed - removed unused CMP_MODE_STUFF compression mode - removed unused files and code ## [0.11] - 2023-04-26 ### Added - add -b or --binary option for read and write files in binary format - add cross compile file for sparc - add tests for the compression entity - add test for cmp_rdcu_cfg.c - add sparc inttypes.h definitions ### Changed - refactor function and constants names - refactor configure check functions - move the rdcu setup functions to cmp_rdcu_cfg.c - update Documentation - update Doxygen setup ### Fixed - remove memory leaks from tests - fixed incorrect error message when using rdcu_pkt option without .rdcu_pkt_mode_cfg file - set the rdcu_par option when using the rdcu_pkt option - fixed several bug when using the last_info option - fix a bug in the calculation of the adaptive compression sizes ## [0.09] - 2022-09-30 ### Added - decompression/compression for non-imagette data - functions to create and configure a compression configuration - add max_used_bits feature - add max used bit version field to the compression entity ### Changed - Change the build system form make to meson - Change DEFAULT_CFG_MODEL and DEFAULT_CFG_DIFF to CMP_DIF_XXX constants ### Fixed - now the adaptive compression size (ap1_cmp_size, ap2_cmp_size) is calculate when the --rdcu_par option is used ## [0.08] - 2021-01-19 ### Added - Relax the requirements on the input format A whitespace (space (0x20), form feed (0x0c), line feed (0x0a), carriage return (0x0d), horizontal tab (0x09), or vertical tab (0x0b) or several in a sequence are used as separators. If a string contains more than three hexadecimal numeric characters (0123456789abcdefABCDEF) in a row without separators, a separator is added after every second hexadecimal numeric character. Comments after a '#' symbol until the end of the line are ignored. E.g. "# comment\n ABCD 1 2\n34B 12\n" are interpreted as {0xAB, 0xCD, 0x01, 0x02, 0x34, 0x0B, 0x12}. ### Changed - update the header definition according to PLATO-UVIE-PL-UM-0001 Draft 6 - changed version_id from 16 to 32 bit in the generic header. Add spare bits to the adaptive imagette header and the non-imagette header, so that the compressed data start address is 4 byte-aligned. ### Fixed - Fix a bug in the definition in imagette header ### Changed - Rename cmp_tool_lib.c to cmp_io.c ## [0.07] - 2021-12-13 - **NOTE:** The behaviour of the cmp_tool has changed. From now on, the compressed data will be preceded by a header by default. The old behaviour can be achieved with the `--no_header` option. - Implement the compression entity header as defined in PLATO-UVIE-PL-UM-0001 for compression and decompression - small bug fixes ## [0.06] - 2021-11-12 - if samples = 0 the cmp_tool counts the samples in the data file and uses them - if buffer_length = 0 the 2*samples parameter is used as buffer_length - added feature to guess the compression configuration - some code restructuring - added more detailed error messages - small bug fixes ## [0.05] - 2021-04-23 ### Removed - discard old file format. Now the only input format is like: 12 AB 23 CD .. .. ### Changed - change to new compression and decompression library ## [0.05 Beta 2] - 2020-12-04 ### Fixed - packet file number now 4 digits long - now the mtu size in .rdcu_pkt_mode_cfg file for the data packets ## [0.05 Beta] - 2020-11-17 ### Fixed - fixes small errors when reading the data ### Added - add frame script to manage multiple compression in a raw - add last_info option to generate RMAP packets to read the last compression results in parallel ## [0.04] - 2020-08-12 ### Fixed - fixes an error when reading compressed data for decompression when compiled for a 32-bit system where a long integer has 4 bytes - fixes a bug that generates wrong packets for reading data from the RDCU with the --rdcu_pkt option ## [0.03] - 2020-07-07 ### Added - README: add a note for the --rdcu_pkt option ### Fixed - if the --rdcu_pkt option is set the program did not create the TC_FILES directory for the tc files - if the --rdcu_pkt option is set the program did not build the data and model packets correctly. - if the --rdcu_pkt option is set the program now also sets the RDCU Interrupt Enable bit. - fix typo in Help and README ## [0.02] - 2020-06-02 ### Added - add --rdcu_pkt option to generate the packets to set a RDCU compression - add --model_cfg, --diff_cfg option to print default model/1d-diff configuration - add --rdcu_par option to add the RDCU parameters to compression configuration and decompression information - check the cfg file and the info file for plausibility ### Changed - change .info file format ### Fixed - include fixes of rmap lib ### Removed - removes comma symbol as indicator for a comment ## [0.01] - 2020-05-06 ### Added - initialte realse