Removes the file list cache and related logic from protopirate_storage, deferring file browsing to the dialogs file browser. Refactors radio initialization and deinitialization to be performed on-demand in relevant scenes, reducing memory usage and improving modularity. Updates scene logic to use the new file browser and radio management, and adds detailed logging and memory usage tracking for debugging. Also includes minor formatting and heap logging improvements. Will leave logging until we don't need it anymore.
Eliminated all mutex-based locking and re-entrancy logic from protopirate_storage.c, simplifying file list management and related functions. Reduced MAX_FILES_TO_DISPLAY to 30 and shortened file entry name buffer. Updated file list builder to allocate and free memory as needed, and added yielding in file enumeration to prevent watchdog lockups. In protopirate_scene_saved.c, limited displayed items to 20 and added GUI yield to prevent lockup. Reduced encoder upload buffer size from 1024 to 512 in fiat_v0.c and ford_v0.c.
Added 'Leeroy' and 'MMX' to the contributors and protocol magic credits in README.md and protopirate_scene_about.c. Incremented application version from 1.6 to 1.7 in application.fam.
Introduced the FORD_V0_DEBUG_BITS macro to enable detailed debug logging of each bit processed in the Ford V0 protocol decoder. Logging is wrapped in a preprocessor check to avoid performance impact unless explicitly enabled.
* The Code uses 6f, all my remotes use different numbers.
* So, I am getting the required Magic Number on decode,
* and saving that to the psf.
* Then on Encode, I grab that number and use that instead of 6f
* This works with the 2 remotes I have, and I dont have to patch
* the Magic Number from Calulator anymore!
*** I noticed my Chinese Fob with Magic of 0 said CRC BAD, but Car Unlocked as it captured!
*** It also works when Emulated, car unlocks.
*** The CRC check will have to be looked at!
Reorganizes code with clearer sectioning and comments, adds explicit BS calculation, and implements robust encode/decode functions for Ford V0 protocol. Improves logging, error handling, and field extraction in encoder deserialization, and ensures protocol fields are recalculated rather than loaded from files. Cleans up and clarifies bit manipulation logic, and enhances maintainability and readability throughout the protocol implementation.
Introduced a mutex for thread safety in protopirate_storage.c, ensuring exclusive access to file operations and preventing re-entrancy. Added bounds checks for array allocations, safety limits for directory iteration, and improved error handling and logging.