1
mirror of https://github.com/DarkFlippers/unleashed-firmware.git synced 2025-12-12 04:34:43 +04:00

Fix detection of GProx II cards and false detection of other cards (#3869)

* Fix detection of GProx II cards and false detection of other cards as GProx II
* Fix incorrect parity starting bit

Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
Astra
2024-09-07 20:12:06 +09:00
committed by GitHub
parent 8caa861cc7
commit 3c75356b49

View File

@@ -39,11 +39,12 @@ void protocol_gproxii_free(ProtocolGProxII* protocol) {
}
uint8_t* protocol_gproxii_get_data(ProtocolGProxII* proto) {
return proto->data;
return proto->decoded_data;
}
void protocol_gproxii_decoder_start(ProtocolGProxII* protocol) {
memset(protocol->data, 0, GPROXII_ENCODED_BYTE_FULL_SIZE);
memset(protocol->decoded_data, 0, GPROXII_DATA_SIZE);
protocol->last_short = false;
}
@@ -88,8 +89,9 @@ static bool protocol_gproxii_can_be_decoded(ProtocolGProxII* protocol) {
if(bit_lib_get_bits(protocol->data, 0, 6) != 0b111110) return false;
// Check always 0 parity on every 5th bit after preamble
if(bit_lib_test_parity(protocol->data, 5, GPROXII_ENCODED_BIT_SIZE, BitLibParityAlways0, 5))
if(!bit_lib_test_parity(protocol->data, 6, GPROXII_ENCODED_BIT_SIZE, BitLibParityAlways0, 5)) {
return false;
}
// Start GProx II decode
bit_lib_copy_bits(protocol->decoded_data, 0, GPROXII_ENCODED_BIT_SIZE, protocol->data, 6);