SubGhz: fix todo (#2984)
* [FL-3501] SubGhz: fix Handle multiple external cc1101 modules
* [FL-3502] SubGhz: fix Protocol not found error message
* [FL-3503] SubGhz: fix Handle rx buffer overflow
* {FL-3520] SubGhz: Handle RX buffer overflow with external cc1101
* [FL-3548] SubGhz: Security+ 2.0 counter start value
* [FL-3552] Sub-GHz: Check saved file
* [FL-3555] [FL-3554] Sub-GHz: RX buffer overflow handling and check that buffer has been properly written
* [FL-3557] Sub-GHz: No optimization required
* [FL-3558] Sub-GHz: Keeloq 0 discriminator
* [FL-3559] Sub-GHz: Keeloq unknown learning
* [FL-3560] Sub-GHz: callback for updating keeloq data on display
* SubGhz: fix RXFIFO_OVERFLOW
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
This commit is contained in:
co-authored by
Aleksandr Kutuzov
parent
60182aa2cd
commit
940ec36a0b
@@ -744,7 +744,6 @@ static bool
|
||||
|
||||
bin_raw_debug("\r\n\r\n");
|
||||
#endif
|
||||
//TODO FL-3557: can be optimized
|
||||
BinRAW_Markup markup_temp[BIN_RAW_MAX_MARKUP_COUNT];
|
||||
memcpy(
|
||||
markup_temp,
|
||||
@@ -770,7 +769,6 @@ static bool
|
||||
}
|
||||
}
|
||||
}
|
||||
//TODO FL-3557: can be optimized
|
||||
if(bin_raw_type == BinRAWTypeGap) {
|
||||
if(data_temp != 0) { //there are sequences with the same number of bits
|
||||
|
||||
|
||||
@@ -122,7 +122,7 @@ static bool subghz_protocol_keeloq_gen_data(SubGhzProtocolEncoderKeeloq* instanc
|
||||
uint32_t fix = (uint32_t)btn << 28 | instance->generic.serial;
|
||||
uint32_t decrypt = (uint32_t)btn << 28 |
|
||||
(instance->generic.serial & 0x3FF)
|
||||
<< 16 | //TODO FL-3558: in some protocols the discriminator is 0
|
||||
<< 16 | // In some protocols the discriminator is 0
|
||||
instance->generic.cnt;
|
||||
uint32_t hop = 0;
|
||||
uint64_t man = 0;
|
||||
@@ -149,7 +149,8 @@ static bool subghz_protocol_keeloq_gen_data(SubGhzProtocolEncoderKeeloq* instanc
|
||||
hop = subghz_protocol_keeloq_common_encrypt(decrypt, man);
|
||||
break;
|
||||
case KEELOQ_LEARNING_UNKNOWN:
|
||||
hop = 0; //TODO FL-3559
|
||||
//Invalid or missing encoding type in keeloq_mfcodes
|
||||
hop = 0;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
@@ -199,9 +200,7 @@ static bool
|
||||
furi_assert(instance);
|
||||
|
||||
//gen new key
|
||||
if(subghz_protocol_keeloq_gen_data(instance, btn)) {
|
||||
//TODO FL-3560: if you need to add a callback to automatically update the data on the display
|
||||
} else {
|
||||
if(!subghz_protocol_keeloq_gen_data(instance, btn)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -380,7 +380,6 @@ static void subghz_protocol_secplus_v2_encode(SubGhzProtocolEncoderSecPlus_v2* i
|
||||
uint8_t roll_2[9] = {0};
|
||||
|
||||
instance->generic.cnt++;
|
||||
//TODO Fl-3548: it is not known what value the counter starts
|
||||
if(instance->generic.cnt > 0xFFFFFFF) instance->generic.cnt = 0xE500000;
|
||||
uint32_t rolling = subghz_protocol_blocks_reverse_key(instance->generic.cnt, 28);
|
||||
|
||||
|
||||
@@ -165,7 +165,6 @@ static int32_t subghz_tx_rx_worker_thread(void* context) {
|
||||
SUBGHZ_TXRX_WORKER_TIMEOUT_READ_WRITE_BUF);
|
||||
subghz_tx_rx_worker_tx(instance, data, SUBGHZ_TXRX_WORKER_MAX_TXRX_SIZE);
|
||||
} else {
|
||||
//TODO FL-3554: checking that it managed to write all the data to the TX buffer
|
||||
furi_stream_buffer_receive(
|
||||
instance->stream_tx, &data, size_tx, SUBGHZ_TXRX_WORKER_TIMEOUT_READ_WRITE_BUF);
|
||||
subghz_tx_rx_worker_tx(instance, data, size_tx);
|
||||
@@ -178,7 +177,6 @@ static int32_t subghz_tx_rx_worker_thread(void* context) {
|
||||
furi_stream_buffer_bytes_available(instance->stream_rx) == 0) {
|
||||
callback_rx = true;
|
||||
}
|
||||
//TODO FL-3554: checking that it managed to write all the data to the RX buffer
|
||||
furi_stream_buffer_send(
|
||||
instance->stream_rx,
|
||||
&data,
|
||||
@@ -189,7 +187,7 @@ static int32_t subghz_tx_rx_worker_thread(void* context) {
|
||||
callback_rx = false;
|
||||
}
|
||||
} else {
|
||||
//TODO FL-3555: RX buffer overflow
|
||||
FURI_LOG_E(TAG, "Receive buffer overflow, over-the-air transmission too fast");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,6 +57,7 @@ typedef enum {
|
||||
// Encoder issue
|
||||
SubGhzProtocolStatusErrorEncoderGetUpload = (-12), ///< Payload encoder failure
|
||||
// Special Values
|
||||
SubGhzProtocolStatusErrorProtocolNotFound = (-13), ///< Protocol not found
|
||||
SubGhzProtocolStatusReserved = 0x7FFFFFFF, ///< Prevents enum down-size compiler optimization.
|
||||
} SubGhzProtocolStatus;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user