* 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.
Removed verbose debug logging and refactored CRC calculation for Ford V0 protocol, including a new function for CRC calculation during encoding and proper bit inversion for transmission and verification. Updated key2 construction to always use calculated CRC.
Implements CRC calculation and verification for Ford V0 protocol using a firmware-extracted matrix. Adds detailed logging for CRC operations, decoding, and deserialization, and updates output string to show CRC status. Also improves button naming and field extraction during deserialization.
Implemented encoder functions for the Suzuki SubGhz protocol, including allocation, freeing, deserialization, stop, and yield. Updated protocol flags to support load, save, and send operations. Refactored code structure for clarity and added protocol constants and helper functions.
Implements encoder functions for the Subaru protocol, enabling signal generation and transmission. Updates protocol flags to support loading, saving, and sending. Refactors decoder/encoder data structures for consistency, adds dynamic memory management for file entry buffers, and improves serialization/deserialization logic for protocol data.
Implemented the encoder for the Fiat V0 SubGhz protocol, including allocation, serialization, and signal generation logic. Updated the decoder and related data structures for consistency, improved serialization/deserialization, and added protocol flags for encoding support. Updated README to list Fiat V0 as an encoder.
if you want your OLD settings.txt and saved captures to work with NEW update
you need to rename files in /subghz/protopirate from .sub to .psf extension
and place them at apps_data/proto_pirate/saved after extension renaming
config can be copied to apps_data/proto_pirate/settings.txt
Refactored capture data writing into a helper and introduced functions to save and delete a temporary file for emulation purposes. Updated the receiver info and emulate scenes to use the temp file, ensuring it is deleted on exit. Also improved filename sanitization and file list building to skip temp and hidden files.
Introduces a new custom event and button for emulating receiver info when ENABLE_EMULATE_FEATURE is defined. The emulate action saves the current protocol data and transitions to the emulate scene, with appropriate logging and error handling.