From f9140ac2cde38ae8e983efd4224d36bab134ec91 Mon Sep 17 00:00:00 2001 From: Skorpionm <85568270+Skorpionm@users.noreply.github.com> Date: Fri, 22 Apr 2022 15:33:43 +0400 Subject: [PATCH 1/6] SubGhz: fix waiting for UPLOAD to be sent, for RAW file worker (#1146) * SubGhz: fix waiting for UPLOAD to be sent * SubGhz: remove debug output Co-authored-by: Aleksandr Kutuzov --- lib/subghz/subghz_file_encoder_worker.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/subghz/subghz_file_encoder_worker.c b/lib/subghz/subghz_file_encoder_worker.c index ca763d70..0331213c 100644 --- a/lib/subghz/subghz_file_encoder_worker.c +++ b/lib/subghz/subghz_file_encoder_worker.c @@ -167,7 +167,10 @@ static int32_t subghz_file_encoder_worker_thread(void* context) { } //waiting for the end of the transfer FURI_LOG_I(TAG, "End read file"); - + while(!furi_hal_subghz_is_async_tx_complete()) { + osDelay(5); + } + FURI_LOG_I(TAG, "End transmission"); while(instance->worker_running) { if(instance->worker_stoping) { if(instance->callback_end) instance->callback_end(instance->context_end); From 799eb3f5024b997b31586924a4ae8098ef8d5d9b Mon Sep 17 00:00:00 2001 From: gornekich Date: Fri, 22 Apr 2022 15:41:10 +0300 Subject: [PATCH 2/6] Fix Mifare NTAG read #1147 Fix #1145 --- lib/nfc_protocols/mifare_classic.c | 2 +- lib/nfc_protocols/mifare_ultralight.c | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/nfc_protocols/mifare_classic.c b/lib/nfc_protocols/mifare_classic.c index 7aa39991..c738accc 100644 --- a/lib/nfc_protocols/mifare_classic.c +++ b/lib/nfc_protocols/mifare_classic.c @@ -220,7 +220,7 @@ bool mf_classic_read_block( tx_rx->tx_bits = 4 * 9; tx_rx->tx_rx_type = FuriHalNfcTxRxTypeRaw; - if(furi_hal_nfc_tx_rx(tx_rx, 5)) { + if(furi_hal_nfc_tx_rx(tx_rx, 50)) { if(tx_rx->rx_bits == 8 * 18) { for(uint8_t i = 0; i < 18; i++) { block->value[i] = crypto1_byte(crypto, 0, 0) ^ tx_rx->rx_data[i]; diff --git a/lib/nfc_protocols/mifare_ultralight.c b/lib/nfc_protocols/mifare_ultralight.c index c824c646..31ac8e77 100644 --- a/lib/nfc_protocols/mifare_ultralight.c +++ b/lib/nfc_protocols/mifare_ultralight.c @@ -27,7 +27,7 @@ bool mf_ultralight_read_version( tx_rx->tx_data[0] = MF_UL_GET_VERSION_CMD; tx_rx->tx_bits = 8; tx_rx->tx_rx_type = FuriHalNfcTxRxTypeDefault; - if(!furi_hal_nfc_tx_rx(tx_rx, 4)) { + if(!furi_hal_nfc_tx_rx(tx_rx, 50)) { FURI_LOG_D(TAG, "Failed reading version"); mf_ul_set_default_version(reader, data); furi_hal_nfc_sleep(); @@ -78,7 +78,7 @@ bool mf_ultralight_read_pages( tx_rx->tx_data[1] = i; tx_rx->tx_bits = 16; tx_rx->tx_rx_type = FuriHalNfcTxRxTypeDefault; - if(!furi_hal_nfc_tx_rx(tx_rx, 4)) { + if(!furi_hal_nfc_tx_rx(tx_rx, 50)) { FURI_LOG_D(TAG, "Failed to read pages %d - %d", i, i + 3); break; } @@ -105,7 +105,7 @@ bool mf_ultralight_fast_read_pages( tx_rx->tx_data[2] = reader->pages_to_read - 1; tx_rx->tx_bits = 24; tx_rx->tx_rx_type = FuriHalNfcTxRxTypeDefault; - if(furi_hal_nfc_tx_rx(tx_rx, 20)) { + if(furi_hal_nfc_tx_rx(tx_rx, 50)) { reader->pages_read = reader->pages_to_read; data->data_size = reader->pages_read * 4; memcpy(data->data, tx_rx->rx_data, data->data_size); @@ -124,7 +124,7 @@ bool mf_ultralight_read_signature(FuriHalNfcTxRxContext* tx_rx, MfUltralightData tx_rx->tx_data[1] = 0; tx_rx->tx_bits = 16; tx_rx->tx_rx_type = FuriHalNfcTxRxTypeDefault; - if(furi_hal_nfc_tx_rx(tx_rx, 7)) { + if(furi_hal_nfc_tx_rx(tx_rx, 50)) { memcpy(data->signature, tx_rx->rx_data, sizeof(data->signature)); signature_read = true; } else { @@ -143,7 +143,7 @@ bool mf_ultralight_read_counters(FuriHalNfcTxRxContext* tx_rx, MfUltralightData* tx_rx->rx_data[1] = i; tx_rx->tx_bits = 16; tx_rx->tx_rx_type = FuriHalNfcTxRxTypeDefault; - if(!furi_hal_nfc_tx_rx(tx_rx, 4)) { + if(!furi_hal_nfc_tx_rx(tx_rx, 50)) { FURI_LOG_D(TAG, "Failed to read %d counter", i); break; } @@ -164,7 +164,7 @@ bool mf_ultralight_read_tearing_flags(FuriHalNfcTxRxContext* tx_rx, MfUltralight tx_rx->rx_data[1] = i; tx_rx->tx_bits = 16; tx_rx->tx_rx_type = FuriHalNfcTxRxTypeDefault; - if(!furi_hal_nfc_tx_rx(tx_rx, 4)) { + if(!furi_hal_nfc_tx_rx(tx_rx, 50)) { FURI_LOG_D(TAG, "Failed to read %d tearing flag", i); break; } From 7ed5b9053a526119fe02ba39056a4c1bbdd0c1b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=82=E3=81=8F?= Date: Fri, 22 Apr 2022 17:10:33 +0300 Subject: [PATCH 3/6] Assets: update URL (#1148) --- assets/compiled/assets_dolphin_blocking.c | 8 ++++---- .../blocking/L0_Url_128x51/frame_0.png | Bin 1387 -> 1358 bytes .../blocking/L0_Url_128x51/frame_1.png | Bin 1390 -> 1964 bytes .../blocking/L0_Url_128x51/frame_2.png | Bin 1381 -> 1956 bytes .../blocking/L0_Url_128x51/frame_3.png | Bin 1377 -> 1955 bytes .../dolphin/blocking/L0_Url_128x51/meta.txt | 2 +- 6 files changed, 5 insertions(+), 5 deletions(-) diff --git a/assets/compiled/assets_dolphin_blocking.c b/assets/compiled/assets_dolphin_blocking.c index d2b9b297..a1ec14b4 100644 --- a/assets/compiled/assets_dolphin_blocking.c +++ b/assets/compiled/assets_dolphin_blocking.c @@ -156,19 +156,19 @@ const BubbleAnimation BA_L0_SdOk_128x51 = { const uint8_t _A_L0_Url_128x51_0[] = { - 0x1,0x0,0x33,0x1,0x0,0x78,0x3,0xc0,0x1e,0x0,0xf8,0x7,0xfc,0x0,0x33,0xf0,0x75,0x60,0x1,0xe5,0x7f,0x7,0xde,0x4e,0x49,0x49,0xb9,0x3,0xfc,0x16,0xf0,0x38,0x80,0x3f,0x28,0x10,0x40,0x7f,0x58,0x27,0x10,0x32,0x7d,0xd0,0x32,0xd9,0x8,0x20,0x3f,0x32,0x80,0xff,0x7,0xee,0x2,0xc7,0x10,0x1f,0xe2,0x7f,0xc1,0xfe,0xf,0xf0,0x7f,0x83,0xd6,0xe,0xf,0x29,0xf0,0x20,0x60,0x30,0x1d,0x40,0x10,0x8e,0x63,0xff,0xfc,0xff,0x1,0xe3,0x47,0x7,0x9c,0x90,0x1e,0x7a,0xf,0xfe,0x3b,0xf7,0x7f,0xc0,0x6b,0xa9,0x1c,0x7d,0xcc,0xcf,0x49,0xce,0xe0,0xe6,0x60,0x9d,0xb,0xff,0xef,0xee,0xf,0x1d,0xe5,0x22,0x53,0x25,0xa4,0xeb,0x2a,0x52,0x2d,0x2c,0x13,0xe1,0xbf,0xfe,0xfb,0xc1,0xe3,0x8f,0x7,0x95,0xe7,0x48,0xf,0x1d,0xe8,0x3c,0xbf,0xe0,0xf2,0xcf,0x3,0xca,0x12,0xf,0x2c,0x28,0x3c,0x7b,0xf1,0xfe,0xf8,0x3c,0x7b,0xd7,0xe,0x3c,0xe6,0x63,0xa5,0xe7,0x72,0x63,0x30,0x30,0x78,0xfb,0xfb,0xc5,0xf1,0x0,0x89,0x64,0x40,0x3,0x42,0x1,0x90,0x3c,0x7f,0xe0,0xf2,0x3f,0x88,0x3d,0xf8,0x2,0xd1,0x0,0x8a,0x7e,0x81,0xe3,0xbf,0x7,0xe9,0x7c,0xc1,0xf9,0xbf,0x7,0xc7,0xe1,0xb4,0x30,0x1a,0x5,0xff,0xff,0xe7,0x7,0xbc,0x18,0x4,0x30,0x25,0xf8,0xff,0xb8,0x60,0xf7,0x81,0x80,0x85,0x7e,0x2d,0xf1,0xc0,0x3,0xef,0xe0,0xff,0x18,0x38,0x3d,0xf8,0x78,0x98,0x40,0x3c,0xbf,0xf0,0xfb,0xf0,0x3d,0xa4,0x74,0xa8,0xc0,0x3c,0xe3,0xf7,0xc0,0x7b,0xca,0xa7,0x0,0xf3,0x9f,0xde,0x1,0xef,0x1a,0xbc,0x3,0xce,0xfe,0xf,0x80,0xfa,0xff,0xc1,0xf0,0x3f,0x51,0x0,0x97,0xf4,0x1f,0x7,0xf5,0x7,0xf8,0x3e,0x60,0xeb,0xf2,0x7,0xdf,0xf9,0xbe,0x5e,0x0,0x79,0x4f,0xc1,0xed,0xfc,0x5,0x8,0x25,0x80,0x1e,0x0,0xf0,0x7,0x80,0x24 + 0x1,0x0,0x2d,0x1,0x0,0x78,0x3,0xc0,0x1e,0x0,0xf8,0x7,0xfc,0x0,0x33,0xf0,0x75,0x60,0x1,0xe5,0x7f,0x7,0xde,0x4e,0x49,0x49,0xb9,0x3,0xfc,0x16,0xf0,0x38,0x80,0x3f,0x28,0x10,0x40,0x7f,0x58,0x27,0x10,0x32,0x7d,0xd0,0x32,0xd9,0x8,0x20,0x3f,0x32,0x80,0xff,0x7,0xee,0x2,0xc7,0x10,0x1f,0xe2,0x7f,0xc1,0xfe,0xf,0xf0,0x7d,0x7e,0x1,0x89,0x4,0x7,0x9c,0x1c,0x1e,0x71,0xca,0xc,0x16,0x1,0x8,0x7,0x94,0xa,0x81,0xff,0xfc,0xff,0x1,0xe5,0xba,0x91,0x40,0x41,0xe5,0x2,0x0,0x8e,0x83,0xff,0x8e,0xfd,0x83,0xcb,0xe5,0x22,0xba,0xc3,0xb9,0xd2,0x4c,0x96,0x3a,0x7,0xd0,0xbf,0xfe,0xfe,0xe0,0xf2,0x9f,0x58,0xb2,0xb1,0x29,0x4c,0x97,0x23,0x52,0x81,0x7c,0x37,0xff,0xdf,0x78,0x3c,0xaf,0x52,0x20,0x78,0xfa,0x41,0xeb,0xff,0x7,0xa4,0x8c,0x3e,0x5a,0x4c,0x80,0x3c,0xbb,0xf1,0xfe,0xf8,0x3c,0xbf,0x92,0x1b,0xad,0x3b,0x9d,0x98,0xf0,0xf,0xc4,0x1e,0x3e,0xfe,0xf1,0xfd,0x22,0x5,0xc1,0x0,0x8,0xc,0x41,0xe3,0xff,0x7,0x98,0x0,0x41,0xed,0xc0,0x16,0x88,0xbc,0xc0,0x10,0xf,0x1d,0xf8,0x3f,0x4b,0xea,0xf,0xad,0xf8,0x3e,0x3f,0xd,0xa1,0x80,0xd0,0x2f,0xff,0xff,0x38,0x3d,0xe0,0xc5,0x2,0x5f,0x8f,0xfb,0x86,0xf,0x78,0x1b,0xc4,0xba,0xd,0xf1,0xc0,0x3,0xef,0xe0,0xff,0x18,0x38,0x3d,0xf8,0x78,0x98,0x40,0x3c,0xbf,0xf0,0xfb,0xf0,0x3d,0xa4,0x74,0xa8,0xc0,0x3c,0xe3,0xf7,0xc0,0x7b,0xca,0xa7,0x0,0xf3,0x9f,0xde,0x1,0xef,0x1a,0xbc,0x3,0xce,0xfe,0xf,0x80,0xfa,0xff,0xc1,0xf0,0x3f,0x51,0x0,0x97,0xf4,0x1f,0x7,0xf5,0x7,0xf8,0x3e,0x60,0xeb,0xf2,0x7,0xdf,0xf9,0xbe,0x5e,0x0,0x79,0x4f,0xc1,0xed,0xfc,0x5,0x8,0x25,0x80,0x1e,0x0,0xf0,0x7,0x80,0x24 }; const uint8_t _A_L0_Url_128x51_1[] = { - 0x1,0x0,0x33,0x1,0x0,0x78,0x3,0xc0,0x1e,0x0,0xf8,0x7,0xfc,0x0,0x33,0xf0,0x75,0x60,0x1,0xe5,0x7f,0x7,0xde,0x4e,0x49,0x49,0xb9,0x3,0xfc,0x16,0xf0,0x38,0x80,0x3f,0x28,0x10,0x40,0x7f,0x58,0x27,0x10,0x32,0x7d,0xd0,0x32,0xd9,0x8,0x20,0x3f,0x32,0x80,0xff,0x7,0xee,0x2,0xc7,0x10,0x1f,0xe2,0x7f,0xc1,0xfe,0xf,0xf0,0x7f,0x83,0xd6,0x3f,0xfc,0x7,0x8c,0xf8,0x10,0x30,0x18,0xe,0xa0,0x8,0x47,0x31,0xff,0xf9,0xfe,0x60,0xf1,0xa3,0x83,0xce,0x48,0xf,0x3d,0x7,0xfe,0x77,0xee,0xbf,0xe0,0x35,0xd4,0x8e,0x3e,0xe6,0x67,0xa4,0xe7,0x70,0x73,0x30,0x4e,0x87,0xff,0xdb,0xdf,0x7,0x8e,0xf2,0x91,0x29,0x92,0xd2,0x75,0x95,0x29,0x16,0x96,0x9,0xf0,0xff,0xfd,0xb7,0xe0,0xf1,0xc7,0x83,0xca,0xf3,0xa4,0x7,0x8e,0xf4,0x1e,0x5f,0xe0,0x79,0x67,0x81,0xe5,0x9,0x7,0x96,0x14,0x1e,0x37,0xf8,0xfd,0xfc,0x1e,0x3d,0xeb,0x87,0x1e,0x73,0x31,0xd2,0xf3,0xb9,0x31,0x98,0x18,0x3c,0x7d,0xf7,0xe2,0xf8,0x80,0x44,0xb2,0x20,0x1,0xa1,0x0,0xc8,0x1e,0x3f,0xf0,0x79,0x1f,0xc4,0x1e,0xfc,0x1,0x68,0x80,0x5,0x3f,0x40,0xf1,0x27,0x8,0x3f,0xb,0xe6,0xf,0xcd,0xf0,0x3e,0x3f,0xd,0xa1,0x80,0xaf,0xc7,0xfb,0x9f,0x7,0xbc,0x18,0x4,0x30,0x25,0xf8,0xfe,0xe1,0xe0,0xf7,0x81,0x80,0x85,0x7e,0x5e,0x78,0x1d,0xf8,0x1f,0x4a,0xf1,0x8f,0xc7,0x2f,0x80,0xf6,0xe1,0xe2,0x61,0x0,0xf2,0xff,0xcf,0xef,0x0,0xf6,0x91,0xd2,0xa3,0x0,0xf3,0xbf,0xdc,0x1,0xef,0x2a,0x9c,0x3,0xcf,0xff,0x60,0x7,0xbc,0x6a,0xf0,0xf,0x4b,0x8,0x7f,0xac,0x63,0xfd,0x20,0x9,0x7f,0x41,0xf0,0x7f,0x50,0x7f,0x83,0xe6,0xe,0xbf,0x20,0x7d,0xff,0x9b,0xe5,0xe0,0x7,0x94,0xfc,0x1e,0xdf,0xc0,0x50,0x82,0x58,0x1,0xe0,0xf,0x0,0x78,0x2,0x40 + 0x1,0x0,0x2d,0x1,0x0,0x78,0x3,0xc0,0x1e,0x0,0xf8,0x7,0xfc,0x0,0x33,0xf0,0x75,0x60,0x1,0xe5,0x7f,0x7,0xde,0x4e,0x49,0x49,0xb9,0x3,0xfc,0x16,0xf0,0x38,0x80,0x3f,0x28,0x10,0x40,0x7f,0x58,0x27,0x10,0x32,0x7d,0xd0,0x32,0xd9,0x8,0x20,0x3f,0x32,0x80,0xff,0x7,0xee,0x2,0xc7,0x10,0x1f,0xe2,0x7f,0xc1,0xfe,0xf,0xf0,0x7d,0x7e,0x1,0x89,0x4,0x7,0x9c,0x7f,0xf8,0xf,0x28,0xe5,0x6,0xb,0x0,0x84,0x3,0xca,0x5,0x40,0xff,0xf9,0xfe,0x60,0xf2,0xdd,0x48,0xa0,0x20,0xf2,0x81,0x0,0x47,0x41,0xff,0x9d,0xfb,0x81,0xe5,0xf2,0x91,0x5d,0x61,0xdc,0xe9,0x26,0x4b,0x1d,0x3,0xe8,0x7f,0xfd,0xbd,0xf0,0x79,0x4f,0xac,0x59,0x58,0x94,0xa6,0x4b,0x91,0xa9,0x40,0xbe,0x1f,0xff,0xb6,0xfc,0x1e,0x57,0xa9,0x10,0x3c,0x7d,0x20,0xf5,0xff,0x3,0xd2,0x46,0x1f,0x2d,0x26,0x40,0x1e,0x57,0xf8,0xfd,0xfc,0x1e,0x5f,0xc9,0xd,0xd6,0x9d,0xce,0xcc,0x78,0x7,0xe2,0xf,0x1f,0x7d,0xf8,0xfe,0x91,0x2,0xe0,0x80,0x4,0x6,0x20,0xf1,0xff,0x83,0xcc,0x0,0x20,0xf6,0xe0,0xb,0x44,0x5e,0x60,0x8,0x7,0x89,0x38,0x41,0xf8,0x5f,0x50,0x7d,0x6f,0x81,0xf1,0xf8,0x6d,0xc,0x5,0x7e,0x3f,0xdc,0xf8,0x3d,0xe0,0xc5,0x2,0x5f,0x8f,0xee,0x1e,0xf,0x78,0x1b,0xc4,0x97,0xe3,0xe7,0x81,0xdf,0x81,0xf4,0xaf,0x18,0xfc,0x72,0xf8,0xf,0x6e,0x1e,0x26,0x10,0xf,0x2f,0xfc,0xfe,0xf0,0xf,0x69,0x1d,0x2a,0x30,0xf,0x3b,0xfd,0xc0,0x1e,0xf2,0xa9,0xc0,0x3c,0xff,0xf6,0x0,0x7b,0xc6,0xaf,0x0,0xf4,0xb0,0x87,0xfa,0xc6,0x3f,0xd2,0x0,0x97,0xf4,0x1f,0x7,0xf5,0x7,0xf8,0x3e,0x60,0xeb,0xf2,0x7,0xdf,0xf9,0xbe,0x5e,0x0,0x79,0x4f,0xc1,0xed,0xfc,0x5,0x8,0x25,0x80,0x1e,0x0,0xf0,0x7,0x80,0x24 }; const uint8_t _A_L0_Url_128x51_2[] = { - 0x1,0x0,0x2e,0x1,0x0,0x78,0x3,0xc0,0x1e,0x0,0xf8,0x7,0xfc,0x0,0x33,0xf0,0x75,0x60,0x1,0xe5,0x7f,0x7,0xde,0x4e,0x49,0x49,0xb9,0x3,0xfc,0x16,0xf0,0x38,0x80,0x3f,0x28,0x10,0x40,0x7f,0x58,0x27,0x10,0x32,0x7d,0xd0,0x32,0xd9,0x8,0x20,0x3f,0x32,0x80,0xff,0x7,0xee,0x2,0xc7,0x10,0x1f,0xe2,0x7f,0xc1,0xfe,0xf,0xf0,0x7f,0x83,0xe6,0x7c,0x8,0x18,0xc,0x7,0x50,0x4,0x23,0x98,0x83,0xd2,0x8e,0xf,0x39,0x20,0x3c,0xf4,0x1f,0xf8,0xff,0xf2,0xff,0x80,0xd7,0x52,0x38,0xfb,0x99,0x9e,0x93,0x9d,0xc1,0xcc,0xc1,0x3a,0x1f,0xff,0x3f,0xcc,0x1e,0x3b,0xca,0x44,0xa6,0x4b,0x49,0xd6,0x54,0xa4,0x5a,0x58,0x27,0xc3,0xff,0x3b,0xf7,0x3,0xc7,0x1e,0xf,0x2b,0xce,0x90,0x1e,0x3b,0xd0,0x79,0x7b,0x7b,0xe0,0xf1,0xcf,0x3,0xca,0x12,0xf,0x2c,0x28,0x3c,0xa2,0xdb,0xf0,0x78,0xf7,0xae,0x1c,0x79,0xcc,0xc7,0x4b,0xce,0xe4,0xc6,0x60,0x60,0xf1,0xf7,0x6f,0x8b,0xe2,0x1,0x12,0xc8,0x80,0x6,0x84,0x3,0x2f,0x85,0xff,0xff,0x7e,0x3f,0x98,0x3d,0xf8,0x17,0xf0,0x1,0x27,0xe8,0x1e,0x23,0xe1,0x7,0xea,0x78,0x43,0xfe,0xf,0x7f,0xc2,0xe8,0x60,0x2b,0xf1,0xff,0x4,0x4,0x1e,0xd0,0x60,0x10,0xc0,0x97,0xe2,0xf,0x98,0x18,0x8,0x57,0xe5,0xfd,0xcf,0x83,0xed,0x1e,0x3f,0xb8,0x78,0x3d,0xf8,0x78,0x98,0x40,0x3c,0xbc,0xf0,0x3b,0xf0,0x3d,0xa4,0x74,0xa8,0xc0,0x3c,0xa3,0xf1,0xcb,0xe0,0x3d,0xe5,0x53,0x80,0x79,0x7f,0xe7,0xf7,0x80,0x7b,0xc6,0xaf,0x0,0xf3,0xbf,0xdc,0x3,0xfb,0xff,0xb0,0xf,0xf0,0x0,0x36,0x12,0xfe,0x0,0x6,0xc6,0x7f,0xc2,0x1,0x3,0xfc,0x1e,0xd0,0x75,0xf9,0x3,0xef,0xfc,0xdf,0x2f,0x0,0x3c,0xa7,0xe0,0xf6,0xfe,0x2,0x84,0x12,0xc0,0xf,0x0,0x78,0x3,0xc0,0x12 + 0x1,0x0,0x29,0x1,0x0,0x78,0x3,0xc0,0x1e,0x0,0xf8,0x7,0xfc,0x0,0x33,0xf0,0x75,0x60,0x1,0xe5,0x7f,0x7,0xde,0x4e,0x49,0x49,0xb9,0x3,0xfc,0x16,0xf0,0x38,0x80,0x3f,0x28,0x10,0x40,0x7f,0x58,0x27,0x10,0x32,0x7d,0xd0,0x32,0xd9,0x8,0x20,0x3f,0x32,0x80,0xff,0x7,0xee,0x2,0xc7,0x10,0x1f,0xe2,0x7f,0xc1,0xfe,0xf,0xf0,0x7d,0x7e,0x1,0x89,0x4,0x7,0xc4,0x72,0x83,0x5,0x80,0x42,0x1,0xe5,0x2,0xa0,0x3,0xd7,0x75,0x22,0x80,0x83,0xca,0x4,0x1,0x1d,0x7,0xfe,0x3f,0xfc,0x7,0x97,0xca,0x45,0x75,0x87,0x73,0xa4,0x99,0x2c,0x74,0xf,0xa1,0xff,0xf3,0xfc,0xc1,0xe5,0x3e,0xb1,0x65,0x62,0x52,0x99,0x2e,0x46,0xa5,0x2,0xf8,0x7f,0xe7,0x7e,0xe0,0x79,0x5e,0xa4,0x40,0xf1,0xf4,0x83,0xd7,0xdb,0xdf,0x7,0x9c,0x8c,0x3e,0x5a,0x4c,0x80,0x3c,0xe2,0xdb,0xf0,0x79,0x7f,0x24,0x37,0x5a,0x77,0x3b,0x31,0xe0,0x1f,0x88,0x3c,0x7d,0xdb,0xe3,0xfa,0x44,0xb,0x82,0x0,0x10,0x18,0xfc,0x2f,0xff,0xfb,0xf2,0x7d,0x1,0xed,0xc0,0xbf,0x80,0x9,0x5f,0x40,0xf1,0x1f,0x8,0x3f,0x53,0xc2,0x1f,0xf0,0x7b,0xfe,0x17,0x43,0x1,0x5f,0x8f,0xf8,0xde,0x60,0x4,0x83,0x14,0x9,0x7e,0x20,0xf9,0x81,0xbc,0x49,0x7e,0x3f,0xdc,0xf8,0x3e,0xd1,0xe3,0xfb,0x87,0x83,0xdf,0x87,0x89,0x84,0x3,0xcb,0xcf,0x3,0xbf,0x3,0xda,0x47,0x4a,0x8c,0x3,0xca,0x3f,0x1c,0xbe,0x3,0xde,0x55,0x38,0x7,0x97,0xfe,0x7f,0x78,0x7,0xbc,0x6a,0xf0,0xf,0x3b,0xfd,0xc0,0x3f,0xbf,0xfb,0x0,0xff,0x0,0x3,0x61,0x2f,0xe0,0x0,0x6c,0x67,0xfc,0x20,0x10,0x3f,0xc1,0xed,0x7,0x5f,0x90,0x3e,0xff,0xcd,0xf2,0xf0,0x3,0xca,0x7e,0xf,0x6f,0xe0,0x28,0x41,0x2c,0x0,0xf0,0x7,0x80,0x3c,0x1,0x20 }; const uint8_t _A_L0_Url_128x51_3[] = { - 0x1,0x0,0x31,0x1,0x0,0x78,0x3,0xc0,0x1e,0x0,0xf8,0x7,0xfc,0x0,0x33,0xf0,0x75,0x60,0x1,0xe5,0x7f,0x7,0xde,0x4e,0x49,0x49,0xb9,0x3,0xfc,0x16,0xf0,0x38,0x80,0x3f,0x28,0x10,0x40,0x7f,0x58,0x27,0x10,0x32,0x7d,0xd0,0x32,0xd9,0x8,0x20,0x3f,0x32,0x80,0xff,0x7,0xee,0x2,0xc7,0x10,0x1f,0xe2,0x7f,0xc1,0xfe,0xf,0xf0,0x7f,0x83,0xe6,0x7c,0x8,0x18,0xc,0x7,0x50,0x4,0x23,0x98,0x83,0xd2,0x8e,0xf,0x39,0x20,0x3c,0xf4,0x1f,0xf8,0x38,0x3c,0x70,0x1a,0xea,0x47,0x1f,0x73,0x33,0xd2,0x73,0xb8,0x39,0x98,0x27,0x43,0xff,0xf9,0xfe,0x3,0xc7,0x79,0x48,0x94,0xc9,0x69,0x3a,0xca,0x94,0x8b,0x4b,0x4,0xf8,0x7f,0xf1,0xdf,0xb0,0x78,0xe3,0xc1,0xe5,0x79,0xd2,0x3,0xc7,0x7a,0xf,0x1b,0xff,0xef,0xee,0xf,0x1c,0xf0,0x3c,0xa1,0x20,0xf2,0xc2,0x83,0xc7,0x7f,0x1d,0xf7,0x83,0xc7,0xbd,0x70,0xe3,0xce,0x66,0x3a,0x5e,0x77,0x26,0x33,0x3,0x7,0x8f,0xbf,0xdc,0x5f,0x10,0x8,0x96,0x44,0x0,0x34,0x20,0x19,0x7c,0x3b,0xff,0xfe,0xf1,0xfc,0xc1,0xef,0xc0,0xef,0xdf,0xc0,0x22,0x9f,0xa0,0x78,0xef,0xc1,0xfd,0xff,0xf,0xf8,0x3e,0x3f,0xb,0xa1,0x80,0xd0,0x37,0xff,0xf3,0x78,0x83,0xda,0xc,0x2,0x18,0x16,0x80,0x1f,0x50,0x30,0x10,0xaf,0xc6,0xff,0xff,0xf3,0x83,0xed,0x7e,0x3f,0xee,0x18,0x3d,0xf8,0x78,0x98,0x40,0x3c,0xbf,0x38,0x0,0x7b,0xc8,0xe9,0x51,0x80,0x79,0x41,0xe0,0xe0,0xf8,0x95,0x4e,0x1,0xe5,0xff,0x87,0xdf,0x81,0xef,0x1a,0xbc,0x3,0xce,0x3f,0x7c,0xf,0xec,0xfe,0xf0,0x3f,0xcf,0xfd,0xfc,0x1e,0xe5,0xf5,0x0,0x8,0x3d,0xcf,0xea,0x20,0x20,0x7f,0x83,0xda,0xe,0xbf,0x20,0x7d,0xff,0x9b,0xe5,0xe0,0x7,0x94,0xfc,0x1e,0xdf,0xc0,0x50,0x82,0x58,0x1,0xe0,0xf,0x0,0x78,0x2,0x40 + 0x1,0x0,0x2a,0x1,0x0,0x78,0x3,0xc0,0x1e,0x0,0xf8,0x7,0xfc,0x0,0x33,0xf0,0x75,0x60,0x1,0xe5,0x7f,0x7,0xde,0x4e,0x49,0x49,0xb9,0x3,0xfc,0x16,0xf0,0x38,0x80,0x3f,0x28,0x10,0x40,0x7f,0x58,0x27,0x10,0x32,0x7d,0xd0,0x32,0xd9,0x8,0x20,0x3f,0x32,0x80,0xff,0x7,0xee,0x2,0xc7,0x10,0x1f,0xe2,0x7f,0xc1,0xfe,0xf,0xf0,0x7d,0x7e,0x1,0x89,0x4,0x7,0xc4,0x72,0x83,0x5,0x80,0x42,0x1,0xe5,0x2,0xa0,0x3,0xd7,0x75,0x22,0x80,0x83,0xca,0x4,0x1,0x1d,0x7,0xfe,0xe,0xf,0x3f,0x94,0x8a,0xeb,0xe,0xe7,0x49,0x32,0x58,0xe8,0x1f,0x43,0xff,0xf9,0xfe,0x3,0xca,0x7d,0x62,0xca,0xc4,0xa5,0x32,0x5c,0x8d,0x4a,0x5,0xf0,0xff,0xe3,0xbf,0x60,0xf2,0xbd,0x48,0x81,0xe3,0xe9,0x7,0xa5,0xff,0xf7,0xf7,0x7,0x9c,0x8c,0x3e,0x5a,0x4c,0x80,0x3c,0xb7,0xf1,0xdf,0x78,0x3c,0xbf,0x92,0x1b,0xad,0x3b,0x9d,0x98,0xf0,0xf,0xc4,0x1e,0x3e,0xff,0x71,0xfd,0x22,0x5,0xc1,0x0,0x8,0xc,0x7e,0x1d,0xff,0xff,0x79,0x3e,0x80,0xf6,0xe0,0x77,0xef,0xe0,0x11,0x57,0xd0,0x3c,0x77,0xe0,0xfe,0xff,0x87,0xfc,0x1f,0x1f,0x85,0xd0,0xc0,0x68,0x1b,0xff,0xf9,0xbc,0xc0,0x9,0x6,0x28,0x16,0x80,0x1f,0x50,0x37,0x89,0x74,0x2f,0xff,0xff,0x38,0x3e,0xd7,0xe3,0xfe,0xe1,0x83,0xdf,0x87,0x89,0x84,0x3,0xcb,0xf3,0x80,0x7,0xbc,0x8e,0x95,0x18,0x7,0x94,0x1e,0xe,0xf,0x89,0x54,0xe0,0x1e,0x5f,0xf8,0x7d,0xf8,0x1e,0xf1,0xab,0xc0,0x3c,0xe3,0xf7,0xc0,0xfe,0xcf,0xef,0x3,0xfc,0xff,0xdf,0xc1,0xee,0x5f,0x50,0x0,0x83,0xdc,0xfe,0xa2,0x2,0x7,0xf8,0x3d,0xa0,0xeb,0xf2,0x7,0xdf,0xf9,0xbe,0x5e,0x0,0x79,0x4f,0xc1,0xed,0xfc,0x5,0x8,0x25,0x80,0x1e,0x0,0xf0,0x7,0x80,0x24 }; diff --git a/assets/dolphin/blocking/L0_Url_128x51/frame_0.png b/assets/dolphin/blocking/L0_Url_128x51/frame_0.png index 276f70e577ba68cbffe6616bd1117192c68ea053..5d4b5cf2e2225740ab091164f50d8747361b24cf 100644 GIT binary patch delta 532 zcmaFOb&hL-Cu8PBuNksQ25A;asg?#h3PuJ-hWds^`i7>uMut{KrdEcg8~?>J$~(H4 z89Eu88#pzvD;kkzM&XA<XY$y&^4Bov^VU#aU+zxh6g!^?Y7x(333j26^r=jj?;HK;W& zW;}QMvZ;3Kp>^rN)`C zNlaz;JJ(d$u+Qd0ZbMs?fv^I*?xioO7VD+#>%;6BDme`p?1P2*(>hjGF#v(5tDnm{ Irv%0(0G2b$&j0`b delta 611 zcmV-p0-XKM3hN4xNdbP5N|+pEVPaupVqz>HGB7eRFEBJOF*GeOFgi0iIy5w~|6Ku- zRRbZDeF7Vk83Q7dx&mK+GBaZ}H)SwmEiyAXW-T-~Wiu^eW@ch7VPj@EVP-QqGGt*f zA|P{gQe|d3WN%}2ZDnqBNkly&VPtP&WjbVUV`*eMaA zVK`+iIA%0BEnzidVJ$Hw8ccA*00006 zP)t-s00030|No`gpWOfe0dYx0K~#9!?AVJAgCGnA(A)q2=_QKvK`l%XoO40U*3x4*(_!1YmjN-yZ-_m%w-cRM<&?B?`yF&?Hc|xoNveM3r+%L z`L>fEY=?y49Kif6Kq~;z7U&2-O>PT-1ziAQ&9?&36>wk%a%Y~D1L#!;4z7ZJfbZ(S x(*O;<;7R~hu85{0UxwFp5KpX diff --git a/assets/dolphin/blocking/L0_Url_128x51/frame_1.png b/assets/dolphin/blocking/L0_Url_128x51/frame_1.png index 07adf2e75b2111f291c8e4c100d832e2e1b46a70..69f1fb365988f248aa238fa6a2d672fa7d8bcee1 100644 GIT binary patch delta 1065 zcmaFIwT6F!%H+$;g5nIE1s;*b3=G`DAk4@xYmNj11MAI+UNdBq4ALx;QY{U16pRdv z4D}6-^bJjQjSQ`fOsxz}C;q#`T3q5!&2^r{<*Q0+ki(8|oSAD=Adug47mdawd57+ zC8p#jrRpW;=jy|xCx2yJq+(=XZeV0&Xr!BFkY=uHlA4&RYnf=7tZSBJnPz5TWMpoV zVljC;lTkg;>;fz2qSVBaR2Lw&RRVcJ*U%8?gAhXtD z(<GdD3kRlguF zT}c7vA)x#6bMlLTHiMiu`32MRdZ0^ueXTq)i%as0D(w_(ic-?7f>R5jtei{*aF|;q zCYNO9=h-S1CzhqAC_x1?^NLFn^O93NU2K(r=ICW+rdSaZTrmCR8L9O^GlAiR%kvP+ zi}TY;$`gxH9n*m^X{+Q2iYSEuSR5)C8S5D-X!s^3XXb%oRTE}>azwfFS~D;(rhB?LhD02GJLC4IW(6MC@PGf8|9;SVR+U4k z%5U{$$u+@~T|G7}ym44u|G<341yyI+8`?Qo4xIU0!|0IG^qaBcjvY%vTKC+e;@j08 zKAL#-zTM_%#y8s;ubC)W?6qY7=dNDExQo&15{j)}dTd$e41+hrU==P$6au$;i)!4%~$zaVvS{HkL~ zXZjgWZ9C7v(Ny{PNm!5Z$KQ;%Rww8+)W>oLOx+&C&9%ya<-y+Q>r9#-9U1R`f^4T9aH3SP@ zP`)Z`dBC*xL5XM#>xJ9w`?wc4a;GufXmp+B*Y^3!kH4FLv2NhETPe(cQ9$_w0}yz+ MviZ5Jb4q9e0Q6~jxBvhE delta 540 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 D#w~QD delta 526 zcmV+p0`dK$58(=sBqkYjMObuGZ)S9NVRB^vL1b@YWgtmyVP|DhWnpA_ami&o000Ai zkxZBzWMN`qV`5?~ATlsAF)uJQFEKPNFfckZIXW~nlK}zTlNWHbF2k zI5aabGBGhlLqRx0G&nanMMO73L^3luFq2*bGLu0BrjzUiJp>4A`k|2_6n_C{Nklw(0U*py0@$n+TL?|U-6E2`>{%!P{Wm~LBNU^-Iq(i8TmWwYaClJ5EcVK4Z$NS} z^a7-M>HvVb-LV0reJdo)D}NlG;TUFl2iJL|7=U$?JS~Mt*v~1CD4_-*Oa=hH6oIC=tAAcVP5^MleA{)| z3&sQZkJ`P!=n4@4Zr+Uo;PS15PgUO&IWh!59ShI|;GNr$-b(;tX&=DanG6A7HQxt- z)+R6_0*oLu2Q)!&71RW=IxzZR@&JI2UT`M>ovetigV}xEc>P(u0O%*c0H~=F_KtN% Q0000007*qoM6N<$f@d+yNB{r; diff --git a/assets/dolphin/blocking/L0_Url_128x51/meta.txt b/assets/dolphin/blocking/L0_Url_128x51/meta.txt index 2c8d9871..f1c9925e 100644 --- a/assets/dolphin/blocking/L0_Url_128x51/meta.txt +++ b/assets/dolphin/blocking/L0_Url_128x51/meta.txt @@ -11,4 +11,4 @@ Frame rate: 2 Duration: 0 Active cooldown: 0 -Bubble slots: 0 +Bubble slots: 0 \ No newline at end of file From ec71a5c9d8b2b6e31a532a7e675a02c610a5a943 Mon Sep 17 00:00:00 2001 From: Dmitry Pavlov Date: Fri, 22 Apr 2022 22:01:21 +0300 Subject: [PATCH 4/6] [FL-2455] LFRFID, iButton: more-menu fix (#1151) * Items order changed * iButton,Rfid: correct order in enums Co-authored-by: Aleksandr Kutuzov --- .../ibutton/scene/ibutton_scene_read_key_menu.cpp | 10 +++++----- .../lfrfid/scene/lfrfid_app_scene_read_menu.cpp | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/applications/ibutton/scene/ibutton_scene_read_key_menu.cpp b/applications/ibutton/scene/ibutton_scene_read_key_menu.cpp index b7757224..215eb76f 100644 --- a/applications/ibutton/scene/ibutton_scene_read_key_menu.cpp +++ b/applications/ibutton/scene/ibutton_scene_read_key_menu.cpp @@ -2,9 +2,9 @@ #include "../ibutton_app.h" typedef enum { - SubmenuIndexWrite, - SubmenuIndexEmulate, SubmenuIndexSave, + SubmenuIndexEmulate, + SubmenuIndexWrite, } SubmenuIndex; static void submenu_callback(void* context, uint32_t index) { @@ -22,11 +22,11 @@ void iButtonSceneReadKeyMenu::on_enter(iButtonApp* app) { iButtonAppViewManager* view_manager = app->get_view_manager(); Submenu* submenu = view_manager->get_submenu(); + submenu_add_item(submenu, "Save", SubmenuIndexSave, submenu_callback, app); + submenu_add_item(submenu, "Emulate", SubmenuIndexEmulate, submenu_callback, app); if(ibutton_key_get_type(app->get_key()) == iButtonKeyDS1990) { submenu_add_item(submenu, "Write", SubmenuIndexWrite, submenu_callback, app); } - submenu_add_item(submenu, "Save", SubmenuIndexSave, submenu_callback, app); - submenu_add_item(submenu, "Emulate", SubmenuIndexEmulate, submenu_callback, app); submenu_set_selected_item(submenu, submenu_item_selected); view_manager->switch_to(iButtonAppViewManager::Type::iButtonAppViewSubmenu); @@ -62,4 +62,4 @@ void iButtonSceneReadKeyMenu::on_exit(iButtonApp* app) { Submenu* submenu = view->get_submenu(); submenu_reset(submenu); -} \ No newline at end of file +} diff --git a/applications/lfrfid/scene/lfrfid_app_scene_read_menu.cpp b/applications/lfrfid/scene/lfrfid_app_scene_read_menu.cpp index ce0461f9..76c91230 100644 --- a/applications/lfrfid/scene/lfrfid_app_scene_read_menu.cpp +++ b/applications/lfrfid/scene/lfrfid_app_scene_read_menu.cpp @@ -1,17 +1,17 @@ #include "lfrfid_app_scene_read_menu.h" typedef enum { - SubmenuWrite, SubmenuSave, SubmenuEmulate, + SubmenuWrite, } SubmenuIndex; void LfRfidAppSceneReadKeyMenu::on_enter(LfRfidApp* app, bool need_restore) { auto submenu = app->view_controller.get(); - submenu->add_item("Write", SubmenuWrite, submenu_callback, app); submenu->add_item("Save", SubmenuSave, submenu_callback, app); submenu->add_item("Emulate", SubmenuEmulate, submenu_callback, app); + submenu->add_item("Write", SubmenuWrite, submenu_callback, app); if(need_restore) { submenu->set_selected_item(submenu_item_selected); From cc99ce1f07e6d0a5682ed4ca30ec60b0cc02e05f Mon Sep 17 00:00:00 2001 From: Skorpionm <85568270+Skorpionm@users.noreply.github.com> Date: Fri, 22 Apr 2022 23:05:27 +0400 Subject: [PATCH 5/6] [FL-2496] SubGhz: fix freezing of the interface when the transmission of the RAW signal is forcibly canceled (#1152) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: あく --- lib/subghz/subghz_file_encoder_worker.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/subghz/subghz_file_encoder_worker.c b/lib/subghz/subghz_file_encoder_worker.c index 0331213c..91538e1f 100644 --- a/lib/subghz/subghz_file_encoder_worker.c +++ b/lib/subghz/subghz_file_encoder_worker.c @@ -167,7 +167,7 @@ static int32_t subghz_file_encoder_worker_thread(void* context) { } //waiting for the end of the transfer FURI_LOG_I(TAG, "End read file"); - while(!furi_hal_subghz_is_async_tx_complete()) { + while(!furi_hal_subghz_is_async_tx_complete() && instance->worker_running) { osDelay(5); } FURI_LOG_I(TAG, "End transmission"); From b28d408b49cdb18543c08eaebd6877f3c798303f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=82=E3=81=8F?= Date: Sat, 23 Apr 2022 04:56:59 +0300 Subject: [PATCH 6/6] [FL-2493] Infrared: fix crash on invalid name. Input: cancel info in dump command. (#1153) * Infrared: fix crash on invalid name. Input: cancel info in dump command. * FuriHal: add abort handler --- applications/infrared/infrared_app.cpp | 19 +++++++++++-------- applications/input/input_cli.c | 8 ++------ firmware/targets/f7/Src/main.c | 4 ++++ 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/applications/infrared/infrared_app.cpp b/applications/infrared/infrared_app.cpp index 64bdb2b2..c9a7ee4f 100644 --- a/applications/infrared/infrared_app.cpp +++ b/applications/infrared/infrared_app.cpp @@ -14,14 +14,17 @@ int32_t InfraredApp::run(void* args) { if(args) { std::string path = static_cast(args); std::string remote_name(path, path.find_last_of('/') + 1, path.size()); - remote_name.erase(remote_name.find_last_of('.')); - path.erase(path.find_last_of('/')); - bool result = remote_manager.load(path, remote_name); - if(result) { - current_scene = InfraredApp::Scene::Remote; - } else { - printf("Failed to load remote \'%s\'\r\n", remote_name.c_str()); - return -1; + auto last_dot = remote_name.find_last_of('.'); + if(last_dot != std::string::npos) { + remote_name.erase(last_dot); + path.erase(path.find_last_of('/')); + bool result = remote_manager.load(path, remote_name); + if(result) { + current_scene = InfraredApp::Scene::Remote; + } else { + printf("Failed to load remote \'%s\'\r\n", remote_name.c_str()); + return -1; + } } } diff --git a/applications/input/input_cli.c b/applications/input/input_cli.c index eb510f6c..00591a75 100644 --- a/applications/input/input_cli.c +++ b/applications/input/input_cli.c @@ -24,19 +24,15 @@ static void input_cli_dump(Cli* cli, string_t args, Input* input) { FuriPubSubSubscription* input_subscription = furi_pubsub_subscribe(input->event_pubsub, input_cli_dump_events_callback, input_queue); - bool stop = false; InputEvent input_event; - while(!stop) { + printf("Press CTRL+C to stop\r\n"); + while(!cli_cmd_interrupt_received(cli)) { if(osMessageQueueGet(input_queue, &input_event, NULL, 100) == osOK) { printf( "key: %s type: %s\r\n", input_get_key_name(input_event.key), input_get_type_name(input_event.type)); } - - if(cli_cmd_interrupt_received(cli)) { - stop = true; - } } furi_pubsub_unsubscribe(input->event_pubsub, input_subscription); diff --git a/firmware/targets/f7/Src/main.c b/firmware/targets/f7/Src/main.c index 759626a2..1865f8d1 100644 --- a/firmware/targets/f7/Src/main.c +++ b/firmware/targets/f7/Src/main.c @@ -65,6 +65,10 @@ void Error_Handler(void) { furi_crash("ErrorHandler"); } +void abort() { + furi_crash("AbortHandler"); +} + #ifdef USE_FULL_ASSERT /** * @brief Reports the name of the source file and the source line number