diff --git a/applications/debug/unit_tests/manifest/manifest.c b/applications/debug/unit_tests/manifest/manifest.c new file mode 100644 index 000000000..0b24ad1ed --- /dev/null +++ b/applications/debug/unit_tests/manifest/manifest.c @@ -0,0 +1,75 @@ +#include +#include "../minunit.h" +#include + +#define TAG "Manifest" + +MU_TEST(manifest_type_test) { + mu_assert(ResourceManifestEntryTypeUnknown == 0, "ResourceManifestEntryTypeUnknown != 0\r\n"); + mu_assert(ResourceManifestEntryTypeVersion == 1, "ResourceManifestEntryTypeVersion != 1\r\n"); + mu_assert( + ResourceManifestEntryTypeTimestamp == 2, "ResourceManifestEntryTypeTimestamp != 2\r\n"); + mu_assert( + ResourceManifestEntryTypeDirectory == 3, "ResourceManifestEntryTypeDirectory != 3\r\n"); + mu_assert(ResourceManifestEntryTypeFile == 4, "ResourceManifestEntryTypeFile != 4\r\n"); +} + +MU_TEST(manifest_iteration_test) { + bool result = true; + size_t counters[5] = {0}; + + Storage* storage = furi_record_open(RECORD_STORAGE); + ResourceManifestReader* manifest_reader = resource_manifest_reader_alloc(storage); + do { + // Open manifest file + if(!resource_manifest_reader_open(manifest_reader, EXT_PATH("unit_tests/Manifest"))) { + result = false; + break; + } + + // Iterate forward + ResourceManifestEntry* entry_ptr = NULL; + while((entry_ptr = resource_manifest_reader_next(manifest_reader))) { + FURI_LOG_D(TAG, "F:%u:%s", entry_ptr->type, furi_string_get_cstr(entry_ptr->name)); + if(entry_ptr->type > 4) { + mu_fail("entry_ptr->type > 4\r\n"); + result = false; + break; + } + counters[entry_ptr->type]++; + } + if(!result) break; + + // Iterate backward + while((entry_ptr = resource_manifest_reader_previous(manifest_reader))) { + FURI_LOG_D(TAG, "B:%u:%s", entry_ptr->type, furi_string_get_cstr(entry_ptr->name)); + if(entry_ptr->type > 4) { + mu_fail("entry_ptr->type > 4\r\n"); + result = false; + break; + } + counters[entry_ptr->type]--; + } + } while(false); + + resource_manifest_reader_free(manifest_reader); + furi_record_close(RECORD_STORAGE); + + mu_assert(counters[ResourceManifestEntryTypeUnknown] == 0, "Unknown counter != 0\r\n"); + mu_assert(counters[ResourceManifestEntryTypeVersion] == 0, "Version counter != 0\r\n"); + mu_assert(counters[ResourceManifestEntryTypeTimestamp] == 0, "Timestamp counter != 0\r\n"); + mu_assert(counters[ResourceManifestEntryTypeDirectory] == 0, "Directory counter != 0\r\n"); + mu_assert(counters[ResourceManifestEntryTypeFile] == 0, "File counter != 0\r\n"); + + mu_assert(result, "Manifest forward iterate failed\r\n"); +} + +MU_TEST_SUITE(manifest_suite) { + MU_RUN_TEST(manifest_type_test); + MU_RUN_TEST(manifest_iteration_test); +} + +int run_minunit_test_manifest() { + MU_RUN_SUITE(manifest_suite); + return MU_EXIT_CODE; +} \ No newline at end of file diff --git a/applications/debug/unit_tests/stream/stream_test.c b/applications/debug/unit_tests/stream/stream_test.c index 802e34025..2fa3b21a2 100644 --- a/applications/debug/unit_tests/stream/stream_test.c +++ b/applications/debug/unit_tests/stream/stream_test.c @@ -72,8 +72,32 @@ MU_TEST_1(stream_composite_subtest, Stream* stream) { mu_check(stream_seek(stream, -3, StreamOffsetFromEnd)); mu_check(stream_tell(stream) == 4); - // write string with replacemet + // test seeks to char. content: '1337_69' + stream_rewind(stream); + mu_check(stream_seek_to_char(stream, '3', StreamDirectionForward)); + mu_check(stream_tell(stream) == 1); + mu_check(stream_seek_to_char(stream, '3', StreamDirectionForward)); + mu_check(stream_tell(stream) == 2); + mu_check(stream_seek_to_char(stream, '_', StreamDirectionForward)); + mu_check(stream_tell(stream) == 4); + mu_check(stream_seek_to_char(stream, '9', StreamDirectionForward)); + mu_check(stream_tell(stream) == 6); + mu_check(!stream_seek_to_char(stream, '9', StreamDirectionForward)); + mu_check(stream_tell(stream) == 6); + mu_check(stream_seek_to_char(stream, '_', StreamDirectionBackward)); + mu_check(stream_tell(stream) == 4); + mu_check(stream_seek_to_char(stream, '3', StreamDirectionBackward)); + mu_check(stream_tell(stream) == 2); + mu_check(stream_seek_to_char(stream, '3', StreamDirectionBackward)); + mu_check(stream_tell(stream) == 1); + mu_check(!stream_seek_to_char(stream, '3', StreamDirectionBackward)); + mu_check(stream_tell(stream) == 1); + mu_check(stream_seek_to_char(stream, '1', StreamDirectionBackward)); + mu_check(stream_tell(stream) == 0); + + // write string with replacement // "1337_69" -> "1337lee" + mu_check(stream_seek(stream, 4, StreamOffsetFromStart)); mu_check(stream_write_string(stream, string_lee) == 3); mu_check(stream_size(stream) == 7); mu_check(stream_tell(stream) == 7); diff --git a/applications/debug/unit_tests/test_index.c b/applications/debug/unit_tests/test_index.c index ccf471531..2bb9c423f 100644 --- a/applications/debug/unit_tests/test_index.c +++ b/applications/debug/unit_tests/test_index.c @@ -13,6 +13,7 @@ int run_minunit_test_furi_hal(); int run_minunit_test_furi_string(); int run_minunit_test_infrared(); int run_minunit_test_rpc(); +int run_minunit_test_manifest(); int run_minunit_test_flipper_format(); int run_minunit_test_flipper_format_string(); int run_minunit_test_stream(); @@ -41,6 +42,7 @@ const UnitTest unit_tests[] = { {.name = "storage", .entry = run_minunit_test_storage}, {.name = "stream", .entry = run_minunit_test_stream}, {.name = "dirwalk", .entry = run_minunit_test_dirwalk}, + {.name = "manifest", .entry = run_minunit_test_manifest}, {.name = "flipper_format", .entry = run_minunit_test_flipper_format}, {.name = "flipper_format_string", .entry = run_minunit_test_flipper_format_string}, {.name = "rpc", .entry = run_minunit_test_rpc}, diff --git a/applications/main/application.fam b/applications/main/application.fam index ef4933630..376af8c42 100644 --- a/applications/main/application.fam +++ b/applications/main/application.fam @@ -3,27 +3,19 @@ App( name="Basic applications for main menu", apptype=FlipperAppType.METAPACKAGE, provides=[ - "clock_loader", - # "gpio", - "gpio_loader", - # "ibutton", - "ibutton_loader", - # "infrared", - "infrared_loader", + "gpio", + "ibutton", + "infrared", "lfrfid", - # "lfrfid_loader", "nfc", "subghz", - #"bad_usb", - "bad_usb_loader", - # "u2f", - "u2f_loader", + "bad_usb", + "u2f", "fap_loader", + "sub_playlist", "archive", - # "Clock", - #"SubGHz_Remote", - "SubGHz_Remote_loader", - # "Spectrum_Analyzer", + "clock", + "unirfremix", ], ) diff --git a/applications/main/archive/helpers/archive_browser.c b/applications/main/archive/helpers/archive_browser.c index 988124e0b..1cf7be854 100644 --- a/applications/main/archive/helpers/archive_browser.c +++ b/applications/main/archive/helpers/archive_browser.c @@ -64,7 +64,7 @@ static void archive_add_file_item(browser, is_folder, furi_string_get_cstr(item_path)); } else { with_view_model( - browser->view, ArchiveBrowserViewModel * model, { model->list_loading = false; }, true); + browser->view, ArchiveBrowserViewModel * model, { files_array_sort(model->files); model->list_loading = false; }, true); } } @@ -527,4 +527,4 @@ void archive_refresh_dir(ArchiveBrowserView* browser) { with_view_model( browser->view, ArchiveBrowserViewModel * model, { idx_temp = model->item_idx; }, false); file_browser_worker_folder_refresh(browser->worker, idx_temp); -} \ No newline at end of file +} diff --git a/applications/main/archive/scenes/archive_scene_browser.c b/applications/main/archive/scenes/archive_scene_browser.c index ea85d6559..f88efb0c4 100644 --- a/applications/main/archive/scenes/archive_scene_browser.c +++ b/applications/main/archive/scenes/archive_scene_browser.c @@ -45,55 +45,10 @@ static void archive_run_in_app(ArchiveBrowserView* browser, ArchiveFile_t* selec if(param != NULL) { param++; } - - if(strcmp(flipper_app_name[selected->type], "U2F") == 0) { - char* tmpType = "/ext/apps/Main/U2F.fap¯"; - char* result = - malloc(strlen(tmpType) + strlen(furi_string_get_cstr(selected->path)) + 1); - - strcpy(result, tmpType); - strcat(result, furi_string_get_cstr(selected->path)); - status = loader_start(loader, "Applications", result); - } else { - status = loader_start(loader, flipper_app_name[selected->type], param); - } + status = loader_start(loader, flipper_app_name[selected->type], param); } else { - if(strcmp(flipper_app_name[selected->type], "iButton") == 0) { - char* tmpType = "/ext/apps/Main/ibutton.fap¯"; - char* result = - malloc(strlen(tmpType) + strlen(furi_string_get_cstr(selected->path)) + 1); - - strcpy(result, tmpType); - strcat(result, furi_string_get_cstr(selected->path)); - status = loader_start(loader, "Applications", result); - } else if(strcmp(flipper_app_name[selected->type], "Bad USB") == 0) { - char* tmpType = "/ext/apps/Main/bad_usb.fap¯"; - char* result = - malloc(strlen(tmpType) + strlen(furi_string_get_cstr(selected->path)) + 1); - - strcpy(result, tmpType); - strcat(result, furi_string_get_cstr(selected->path)); - status = loader_start(loader, "Applications", result); - // } else if(strcmp(flipper_app_name[selected->type], "125 kHz RFID") == 0) { - // char* tmpType = "/ext/apps/Main/lfrfid.fap¯"; - // char* result = - // malloc(strlen(tmpType) + strlen(furi_string_get_cstr(selected->path)) + 1); - - // strcpy(result, tmpType); - // strcat(result, furi_string_get_cstr(selected->path)); - // status = loader_start(loader, "Applications", result); - } else if(strcmp(flipper_app_name[selected->type], "Infrared") == 0) { - char* tmpType = "/ext/apps/Main/infrared.fap¯"; - char* result = - malloc(strlen(tmpType) + strlen(furi_string_get_cstr(selected->path)) + 1); - - strcpy(result, tmpType); - strcat(result, furi_string_get_cstr(selected->path)); - status = loader_start(loader, "Applications", result); - } else { - status = loader_start( - loader, flipper_app_name[selected->type], furi_string_get_cstr(selected->path)); - } + status = loader_start( + loader, flipper_app_name[selected->type], furi_string_get_cstr(selected->path)); } if(status != LoaderStatusOk) { diff --git a/applications/main/bad_usb/application.fam b/applications/main/bad_usb/application.fam index d068bc8a2..2442dd3aa 100644 --- a/applications/main/bad_usb/application.fam +++ b/applications/main/bad_usb/application.fam @@ -1,7 +1,7 @@ App( appid="bad_usb", name="Bad USB", - apptype=FlipperAppType.EXTERNAL, + apptype=FlipperAppType.APP, entry_point="bad_usb_app", cdefines=["APP_BAD_USB"], requires=[ @@ -9,10 +9,7 @@ App( "dialogs", ], stack_size=2 * 1024, - # icon="A_BadUsb_14", + icon="A_BadUsb_14", order=70, - fap_category="Main", - fap_icon="badusb_10px.png", - fap_icon_assets="images", fap_libs=["assets"], ) diff --git a/applications/main/bad_usb/bad_usb_app_i.h b/applications/main/bad_usb/bad_usb_app_i.h index eda67eae5..b3fbb1679 100644 --- a/applications/main/bad_usb/bad_usb_app_i.h +++ b/applications/main/bad_usb/bad_usb_app_i.h @@ -5,7 +5,7 @@ #include "bad_usb_script.h" #include -#include +#include #include #include #include diff --git a/applications/main/bad_usb/bad_usb_script.c b/applications/main/bad_usb/bad_usb_script.c index aad79a329..62a826ed6 100644 --- a/applications/main/bad_usb/bad_usb_script.c +++ b/applications/main/bad_usb/bad_usb_script.c @@ -462,14 +462,7 @@ static int32_t ducky_script_execute_next(BadUsbScript* bad_usb, File* script_fil return 0; } else if(delay_val < 0) { bad_usb->st.error_line = bad_usb->st.line_cur; - if(delay_val == SCRIPT_STATE_NEXT_LINE) { - snprintf( - bad_usb->st.error, sizeof(bad_usb->st.error), "Forbidden empty line"); - FURI_LOG_E( - WORKER_TAG, "Forbidden empty line at line %u", bad_usb->st.line_cur); - } else { - FURI_LOG_E(WORKER_TAG, "Unknown command at line %u", bad_usb->st.line_cur); - } + FURI_LOG_E(WORKER_TAG, "Unknown command at line %u", bad_usb->st.line_cur); return SCRIPT_STATE_ERROR; } else { return (delay_val + bad_usb->defdelay); diff --git a/applications/main/bad_usb/badusb_10px.png b/applications/main/bad_usb/badusb_10px.png deleted file mode 100644 index 037474aa3..000000000 Binary files a/applications/main/bad_usb/badusb_10px.png and /dev/null differ diff --git a/applications/main/bad_usb/images/ActiveConnection_50x64.png b/applications/main/bad_usb/images/ActiveConnection_50x64.png deleted file mode 100644 index 1d7686ddd..000000000 Binary files a/applications/main/bad_usb/images/ActiveConnection_50x64.png and /dev/null differ diff --git a/applications/main/bad_usb/images/Clock_18x18.png b/applications/main/bad_usb/images/Clock_18x18.png deleted file mode 100644 index ab06d008e..000000000 Binary files a/applications/main/bad_usb/images/Clock_18x18.png and /dev/null differ diff --git a/applications/main/bad_usb/images/Error_18x18.png b/applications/main/bad_usb/images/Error_18x18.png deleted file mode 100644 index 16a5a74d9..000000000 Binary files a/applications/main/bad_usb/images/Error_18x18.png and /dev/null differ diff --git a/applications/main/bad_usb/images/EviSmile1_18x21.png b/applications/main/bad_usb/images/EviSmile1_18x21.png deleted file mode 100644 index 987af3258..000000000 Binary files a/applications/main/bad_usb/images/EviSmile1_18x21.png and /dev/null differ diff --git a/applications/main/bad_usb/images/EviSmile2_18x21.png b/applications/main/bad_usb/images/EviSmile2_18x21.png deleted file mode 100644 index 7e28c9f01..000000000 Binary files a/applications/main/bad_usb/images/EviSmile2_18x21.png and /dev/null differ diff --git a/applications/main/bad_usb/images/EviWaiting1_18x21.png b/applications/main/bad_usb/images/EviWaiting1_18x21.png deleted file mode 100644 index d39d21733..000000000 Binary files a/applications/main/bad_usb/images/EviWaiting1_18x21.png and /dev/null differ diff --git a/applications/main/bad_usb/images/EviWaiting2_18x21.png b/applications/main/bad_usb/images/EviWaiting2_18x21.png deleted file mode 100644 index 15ca088fd..000000000 Binary files a/applications/main/bad_usb/images/EviWaiting2_18x21.png and /dev/null differ diff --git a/applications/main/bad_usb/images/Percent_10x14.png b/applications/main/bad_usb/images/Percent_10x14.png deleted file mode 100644 index 677911fd4..000000000 Binary files a/applications/main/bad_usb/images/Percent_10x14.png and /dev/null differ diff --git a/applications/main/bad_usb/images/SDQuestion_35x43.png b/applications/main/bad_usb/images/SDQuestion_35x43.png deleted file mode 100644 index 9b9c9a58e..000000000 Binary files a/applications/main/bad_usb/images/SDQuestion_35x43.png and /dev/null differ diff --git a/applications/main/bad_usb/images/Smile_18x18.png b/applications/main/bad_usb/images/Smile_18x18.png deleted file mode 100644 index d2aae0dc3..000000000 Binary files a/applications/main/bad_usb/images/Smile_18x18.png and /dev/null differ diff --git a/applications/main/bad_usb/images/UsbTree_48x22.png b/applications/main/bad_usb/images/UsbTree_48x22.png deleted file mode 100644 index cc41b5b9a..000000000 Binary files a/applications/main/bad_usb/images/UsbTree_48x22.png and /dev/null differ diff --git a/applications/main/bad_usb/images/badusb_10px.png b/applications/main/bad_usb/images/badusb_10px.png deleted file mode 100644 index 037474aa3..000000000 Binary files a/applications/main/bad_usb/images/badusb_10px.png and /dev/null differ diff --git a/applications/main/bad_usb/images/keyboard_10px.png b/applications/main/bad_usb/images/keyboard_10px.png deleted file mode 100644 index 74a10e6db..000000000 Binary files a/applications/main/bad_usb/images/keyboard_10px.png and /dev/null differ diff --git a/applications/main/bad_usb/scenes/bad_usb_scene_file_select.c b/applications/main/bad_usb/scenes/bad_usb_scene_file_select.c index de84e3406..21a2ce024 100644 --- a/applications/main/bad_usb/scenes/bad_usb_scene_file_select.c +++ b/applications/main/bad_usb/scenes/bad_usb_scene_file_select.c @@ -49,4 +49,4 @@ bool bad_usb_scene_file_select_on_event(void* context, SceneManagerEvent event) void bad_usb_scene_file_select_on_exit(void* context) { UNUSED(context); // BadUsbApp* bad_usb = context; -} \ No newline at end of file +} diff --git a/applications/main/bad_usb/views/bad_usb_view.c b/applications/main/bad_usb/views/bad_usb_view.c index 2a15c4d4e..26b6ed27d 100644 --- a/applications/main/bad_usb/views/bad_usb_view.c +++ b/applications/main/bad_usb/views/bad_usb_view.c @@ -2,7 +2,7 @@ #include "../bad_usb_script.h" #include #include -#include +#include #include "../../../settings/desktop_settings/desktop_settings_app.h" #define MAX_NAME_LEN 64 diff --git a/applications/main/bad_usb_loader/application.fam b/applications/main/bad_usb_loader/application.fam deleted file mode 100644 index d3bc81cf0..000000000 --- a/applications/main/bad_usb_loader/application.fam +++ /dev/null @@ -1,14 +0,0 @@ -App( - appid="bad_usb_loader", - name="Bad USB", - apptype=FlipperAppType.APP, - entry_point="bad_usb_loader_app", - requires=[ - "gui", - "dialogs", - ], - stack_size=int(2 * 1024), - icon="A_BadUsb_14", - order=70, - link="/ext/apps/Main/bad_usb.fap", -) diff --git a/applications/main/bad_usb_loader/bad_usb_loader_app.c b/applications/main/bad_usb_loader/bad_usb_loader_app.c deleted file mode 100644 index cede52b55..000000000 --- a/applications/main/bad_usb_loader/bad_usb_loader_app.c +++ /dev/null @@ -1,9 +0,0 @@ -#include - -#define TAG "bad_usb_loader_app" - -int32_t bad_usb_loader_app(void* p) { - UNUSED(p); - - return 0; -} \ No newline at end of file diff --git a/applications/main/clock/ClockIcon.png b/applications/main/clock/ClockIcon.png deleted file mode 100644 index 71ccaeabb..000000000 Binary files a/applications/main/clock/ClockIcon.png and /dev/null differ diff --git a/applications/main/clock/application.fam b/applications/main/clock/application.fam deleted file mode 100644 index a5486947a..000000000 --- a/applications/main/clock/application.fam +++ /dev/null @@ -1,14 +0,0 @@ -App( - appid="Clock", - name="Clock", - apptype=FlipperAppType.EXTERNAL, - entry_point="clock_app", - cdefines=["APP_CLOCK"], - requires=["gui"], - # icon="A_Clock_14", - stack_size=2 * 1024, - order=9, - fap_icon="ClockIcon.png", - fap_category="Main", - fap_icon_assets="icons", -) \ No newline at end of file diff --git a/applications/main/clock/icons/EviSmile1_18x21.png b/applications/main/clock/icons/EviSmile1_18x21.png deleted file mode 100644 index 987af3258..000000000 Binary files a/applications/main/clock/icons/EviSmile1_18x21.png and /dev/null differ diff --git a/applications/main/clock/icons/EviSmile2_18x21.png b/applications/main/clock/icons/EviSmile2_18x21.png deleted file mode 100644 index 7e28c9f01..000000000 Binary files a/applications/main/clock/icons/EviSmile2_18x21.png and /dev/null differ diff --git a/applications/main/clock/icons/EviWaiting1_18x21.png b/applications/main/clock/icons/EviWaiting1_18x21.png deleted file mode 100644 index d39d21733..000000000 Binary files a/applications/main/clock/icons/EviWaiting1_18x21.png and /dev/null differ diff --git a/applications/main/clock/icons/EviWaiting2_18x21.png b/applications/main/clock/icons/EviWaiting2_18x21.png deleted file mode 100644 index 15ca088fd..000000000 Binary files a/applications/main/clock/icons/EviWaiting2_18x21.png and /dev/null differ diff --git a/applications/main/clock/icons/G0ku.png b/applications/main/clock/icons/G0ku.png deleted file mode 100644 index 84389c4f4..000000000 Binary files a/applications/main/clock/icons/G0ku.png and /dev/null differ diff --git a/applications/main/clock/icons/GameMode_11x8.png b/applications/main/clock/icons/GameMode_11x8.png deleted file mode 100644 index 49f2e25bf..000000000 Binary files a/applications/main/clock/icons/GameMode_11x8.png and /dev/null differ diff --git a/applications/main/clock/icons/HappyFlipper_128x64.png b/applications/main/clock/icons/HappyFlipper_128x64.png deleted file mode 100644 index d95412f3f..000000000 Binary files a/applications/main/clock/icons/HappyFlipper_128x64.png and /dev/null differ diff --git a/applications/main/clock/icons/frame_01.png b/applications/main/clock/icons/frame_01.png deleted file mode 100644 index 0cd187053..000000000 Binary files a/applications/main/clock/icons/frame_01.png and /dev/null differ diff --git a/applications/main/clock/icons/frame_02.png b/applications/main/clock/icons/frame_02.png deleted file mode 100644 index 3c37cdb8b..000000000 Binary files a/applications/main/clock/icons/frame_02.png and /dev/null differ diff --git a/applications/main/clock/icons/frame_03.png b/applications/main/clock/icons/frame_03.png deleted file mode 100644 index a111ce163..000000000 Binary files a/applications/main/clock/icons/frame_03.png and /dev/null differ diff --git a/applications/main/clock/icons/g0ku_1.png b/applications/main/clock/icons/g0ku_1.png deleted file mode 100644 index 900d5113f..000000000 Binary files a/applications/main/clock/icons/g0ku_1.png and /dev/null differ diff --git a/applications/main/clock/icons/g0ku_2.png b/applications/main/clock/icons/g0ku_2.png deleted file mode 100644 index 202353bb9..000000000 Binary files a/applications/main/clock/icons/g0ku_2.png and /dev/null differ diff --git a/applications/main/clock/icons/g0ku_3.png b/applications/main/clock/icons/g0ku_3.png deleted file mode 100644 index 517c1653f..000000000 Binary files a/applications/main/clock/icons/g0ku_3.png and /dev/null differ diff --git a/applications/main/clock_loader/application.fam b/applications/main/clock_loader/application.fam deleted file mode 100644 index cbb627c9c..000000000 --- a/applications/main/clock_loader/application.fam +++ /dev/null @@ -1,11 +0,0 @@ -App( - appid="clock_loader", - name="Clock", - apptype=FlipperAppType.APP, - entry_point="clock_loader_app", - requires=["gui"], - stack_size=int(1.5 * 1024), - icon="A_Clock_14", - order=9, - link="/ext/apps/Main/Clock.fap", -) diff --git a/applications/main/clock_loader/clock_loader_app.c b/applications/main/clock_loader/clock_loader_app.c deleted file mode 100644 index cf345d9f3..000000000 --- a/applications/main/clock_loader/clock_loader_app.c +++ /dev/null @@ -1,9 +0,0 @@ -#include - -#define TAG "clock_loader_app" - -int32_t clock_loader_app(void* p) { - UNUSED(p); - - return 0; -} \ No newline at end of file diff --git a/applications/main/fap_loader/fap_loader_app.c b/applications/main/fap_loader/fap_loader_app.c index fbec8b718..7911aa068 100644 --- a/applications/main/fap_loader/fap_loader_app.c +++ b/applications/main/fap_loader/fap_loader_app.c @@ -17,7 +17,6 @@ struct FapLoader { DialogsApp* dialogs; Gui* gui; FuriString* fap_path; - FuriString* fap_args; ViewDispatcher* view_dispatcher; Loading* loading; }; @@ -105,26 +104,14 @@ static bool fap_loader_run_selected_app(FapLoader* loader) { FURI_LOG_I(TAG, "Loaded in %ums", (size_t)(furi_get_tick() - start)); FURI_LOG_I(TAG, "FAP Loader is starting app"); - if(strcmp(furi_string_get_cstr(loader->fap_args), "false") == 0) { - FuriThread* thread = flipper_application_spawn(loader->app, NULL); - furi_thread_start(thread); - furi_thread_join(thread); + FuriThread* thread = flipper_application_spawn(loader->app, NULL); + furi_thread_start(thread); + furi_thread_join(thread); - show_error = false; - int ret = furi_thread_get_return_code(thread); + show_error = false; + int ret = furi_thread_get_return_code(thread); - FURI_LOG_I(TAG, "FAP app returned: %i", ret); - } else { - FuriThread* thread = flipper_application_spawn( - loader->app, (void*)furi_string_get_cstr(loader->fap_args)); - furi_thread_start(thread); - furi_thread_join(thread); - - show_error = false; - int ret = furi_thread_get_return_code(thread); - - FURI_LOG_I(TAG, "FAP app returned: %i", ret); - } + FURI_LOG_I(TAG, "FAP app returned: %i", ret); } while(0); if(show_error) { @@ -169,28 +156,8 @@ static bool fap_loader_select_app(FapLoader* loader) { } static FapLoader* fap_loader_alloc(const char* path) { - FapLoader* loader = malloc(sizeof(FapLoader)); //-V773 - - char* tmp = malloc(strlen(path) + 1); - strcpy(tmp, path); - char* new_path; - - new_path = strtok(tmp, "¯"); - - if(new_path) { - loader->fap_path = furi_string_alloc_set(new_path); - } else { - loader->fap_path = furi_string_alloc_set(path); - } - - new_path = strtok(NULL, "¯"); - - if(new_path) { - loader->fap_args = furi_string_alloc_set(new_path); - } else { - loader->fap_args = furi_string_alloc_set("false"); - } - + FapLoader* loader = malloc(sizeof(FapLoader)); //-V799 + loader->fap_path = furi_string_alloc_set(path); loader->storage = furi_record_open(RECORD_STORAGE); loader->dialogs = furi_record_open(RECORD_DIALOGS); loader->gui = furi_record_open(RECORD_GUI); @@ -207,7 +174,6 @@ static void fap_loader_free(FapLoader* loader) { loading_free(loader->loading); view_dispatcher_free(loader->view_dispatcher); furi_string_free(loader->fap_path); - furi_string_free(loader->fap_args); furi_record_close(RECORD_GUI); furi_record_close(RECORD_DIALOGS); furi_record_close(RECORD_STORAGE); diff --git a/applications/main/gpio/application.fam b/applications/main/gpio/application.fam index 8c6fa3897..efeb8b6fe 100644 --- a/applications/main/gpio/application.fam +++ b/applications/main/gpio/application.fam @@ -1,15 +1,12 @@ App( appid="gpio", name="GPIO", - apptype=FlipperAppType.EXTERNAL, + apptype=FlipperAppType.APP, entry_point="gpio_app", cdefines=["APP_GPIO"], requires=["gui"], stack_size=1 * 1024, - # icon="A_GPIO_14", + icon="A_GPIO_14", order=50, - fap_icon="gpioIcon.png", - fap_category="Main", - fap_icon_assets="images", fap_libs=["assets"], ) diff --git a/applications/main/gpio/gpioIcon.png b/applications/main/gpio/gpioIcon.png deleted file mode 100644 index 5b2f4293c..000000000 Binary files a/applications/main/gpio/gpioIcon.png and /dev/null differ diff --git a/applications/main/gpio/gpio_app_i.h b/applications/main/gpio/gpio_app_i.h index 06c7621fc..ac6c77a8e 100644 --- a/applications/main/gpio/gpio_app_i.h +++ b/applications/main/gpio/gpio_app_i.h @@ -17,7 +17,7 @@ #include "views/gpio_usb_uart.h" #include "views/gpio_i2c_scanner.h" #include "views/gpio_i2c_sfp.h" -#include +#include struct GpioApp { Gui* gui; diff --git a/applications/main/gpio/images/ActiveConnection_50x64.png b/applications/main/gpio/images/ActiveConnection_50x64.png deleted file mode 100644 index 1d7686ddd..000000000 Binary files a/applications/main/gpio/images/ActiveConnection_50x64.png and /dev/null differ diff --git a/applications/main/gpio/images/ArrowDownEmpty_14x15.png b/applications/main/gpio/images/ArrowDownEmpty_14x15.png deleted file mode 100644 index 8c6d54f9c..000000000 Binary files a/applications/main/gpio/images/ArrowDownEmpty_14x15.png and /dev/null differ diff --git a/applications/main/gpio/images/ArrowDownFilled_14x15.png b/applications/main/gpio/images/ArrowDownFilled_14x15.png deleted file mode 100644 index 6cef0f4a7..000000000 Binary files a/applications/main/gpio/images/ArrowDownFilled_14x15.png and /dev/null differ diff --git a/applications/main/gpio/images/ArrowUpEmpty_14x15.png b/applications/main/gpio/images/ArrowUpEmpty_14x15.png deleted file mode 100644 index 261c6d89e..000000000 Binary files a/applications/main/gpio/images/ArrowUpEmpty_14x15.png and /dev/null differ diff --git a/applications/main/gpio/images/ArrowUpFilled_14x15.png b/applications/main/gpio/images/ArrowUpFilled_14x15.png deleted file mode 100644 index fa35eb2f8..000000000 Binary files a/applications/main/gpio/images/ArrowUpFilled_14x15.png and /dev/null differ diff --git a/applications/main/gpio_loader/application.fam b/applications/main/gpio_loader/application.fam deleted file mode 100644 index 08a5b7967..000000000 --- a/applications/main/gpio_loader/application.fam +++ /dev/null @@ -1,14 +0,0 @@ -App( - appid="gpio_loader", - name="GPIO", - apptype=FlipperAppType.APP, - entry_point="gpio_loader_app", - requires=[ - "gui", - "storage", - ], - stack_size=int(1.5 * 1024), - icon="A_GPIO_14", - order=50, - link="/ext/apps/Main/gpio.fap", -) diff --git a/applications/main/gpio_loader/gpio_loader_app.c b/applications/main/gpio_loader/gpio_loader_app.c deleted file mode 100644 index ba7fb4e31..000000000 --- a/applications/main/gpio_loader/gpio_loader_app.c +++ /dev/null @@ -1,9 +0,0 @@ -#include - -#define TAG "gpio_loader_app" - -int32_t gpio_loader_app(void* p) { - UNUSED(p); - - return 0; -} \ No newline at end of file diff --git a/applications/main/ibutton/application.fam b/applications/main/ibutton/application.fam index fc3333ae7..77bb9a33c 100644 --- a/applications/main/ibutton/application.fam +++ b/applications/main/ibutton/application.fam @@ -1,18 +1,24 @@ App( appid="ibutton", name="iButton", - apptype=FlipperAppType.EXTERNAL, + apptype=FlipperAppType.APP, entry_point="ibutton_app", cdefines=["APP_IBUTTON"], requires=[ "gui", "dialogs", ], - # icon="A_iButton_14", + provides=["ibutton_start"], + icon="A_iButton_14", stack_size=2 * 1024, order=60, - fap_icon="iBIcon.png", - fap_category="Main", - fap_icon_assets="images", fap_libs=["assets"], ) + +App( + appid="ibutton_start", + apptype=FlipperAppType.STARTUP, + entry_point="ibutton_on_system_start", + requires=["ibutton"], + order=60, +) diff --git a/applications/main/ibutton/iBIcon.png b/applications/main/ibutton/iBIcon.png deleted file mode 100644 index f6e3ecbcc..000000000 Binary files a/applications/main/ibutton/iBIcon.png and /dev/null differ diff --git a/applications/main/ibutton/ibutton.c b/applications/main/ibutton/ibutton.c index 86ff384a8..85212f42b 100644 --- a/applications/main/ibutton/ibutton.c +++ b/applications/main/ibutton/ibutton.c @@ -1,4 +1,5 @@ #include "ibutton.h" +#include "assets_icons.h" #include "ibutton_i.h" #include "ibutton/scenes/ibutton_scene.h" #include diff --git a/applications/services/ibuttonsrv/ibuttonsrv_cli.c b/applications/main/ibutton/ibutton_cli.c similarity index 100% rename from applications/services/ibuttonsrv/ibuttonsrv_cli.c rename to applications/main/ibutton/ibutton_cli.c diff --git a/applications/main/ibutton/ibutton_i.h b/applications/main/ibutton/ibutton_i.h index f79ae0d81..0a8099351 100644 --- a/applications/main/ibutton/ibutton_i.h +++ b/applications/main/ibutton/ibutton_i.h @@ -4,7 +4,7 @@ #include #include -#include "ibutton_icons.h" +#include #include #include #include diff --git a/applications/main/ibutton/images/DolphinMafia_115x62.png b/applications/main/ibutton/images/DolphinMafia_115x62.png deleted file mode 100644 index 53dffb4fa..000000000 Binary files a/applications/main/ibutton/images/DolphinMafia_115x62.png and /dev/null differ diff --git a/applications/main/ibutton/images/DolphinMafia_115x62_sfw.png b/applications/main/ibutton/images/DolphinMafia_115x62_sfw.png deleted file mode 100644 index 66fdb40ff..000000000 Binary files a/applications/main/ibutton/images/DolphinMafia_115x62_sfw.png and /dev/null differ diff --git a/applications/main/ibutton/images/DolphinNice_96x59.png b/applications/main/ibutton/images/DolphinNice_96x59.png deleted file mode 100644 index 43cc58bd9..000000000 Binary files a/applications/main/ibutton/images/DolphinNice_96x59.png and /dev/null differ diff --git a/applications/main/ibutton/images/DolphinNice_96x59_sfw.png b/applications/main/ibutton/images/DolphinNice_96x59_sfw.png deleted file mode 100644 index a299d3630..000000000 Binary files a/applications/main/ibutton/images/DolphinNice_96x59_sfw.png and /dev/null differ diff --git a/applications/main/ibutton/images/DolphinReadingSuccess_59x63.png b/applications/main/ibutton/images/DolphinReadingSuccess_59x63.png deleted file mode 100644 index 46f559f65..000000000 Binary files a/applications/main/ibutton/images/DolphinReadingSuccess_59x63.png and /dev/null differ diff --git a/applications/main/ibutton/images/DolphinWait_61x59.png b/applications/main/ibutton/images/DolphinWait_61x59.png deleted file mode 100644 index 4beec55ef..000000000 Binary files a/applications/main/ibutton/images/DolphinWait_61x59.png and /dev/null differ diff --git a/applications/main/ibutton/images/DolphinWait_61x59_sfw.png b/applications/main/ibutton/images/DolphinWait_61x59_sfw.png deleted file mode 100644 index 423e07919..000000000 Binary files a/applications/main/ibutton/images/DolphinWait_61x59_sfw.png and /dev/null differ diff --git a/applications/main/ibutton/images/iButtonDolphinVerySuccess_108x52.png b/applications/main/ibutton/images/iButtonDolphinVerySuccess_108x52.png deleted file mode 100644 index 90b589ff8..000000000 Binary files a/applications/main/ibutton/images/iButtonDolphinVerySuccess_108x52.png and /dev/null differ diff --git a/applications/main/ibutton/images/iButtonDolphinVerySuccess_108x52_sfw.png b/applications/main/ibutton/images/iButtonDolphinVerySuccess_108x52_sfw.png deleted file mode 100644 index 2b4bec7c6..000000000 Binary files a/applications/main/ibutton/images/iButtonDolphinVerySuccess_108x52_sfw.png and /dev/null differ diff --git a/applications/main/ibutton/images/iButtonKey_49x44.png b/applications/main/ibutton/images/iButtonKey_49x44.png deleted file mode 100644 index db895ec52..000000000 Binary files a/applications/main/ibutton/images/iButtonKey_49x44.png and /dev/null differ diff --git a/applications/main/ibutton/images/ibutt_10px.png b/applications/main/ibutton/images/ibutt_10px.png deleted file mode 100644 index 2fdaf123a..000000000 Binary files a/applications/main/ibutton/images/ibutt_10px.png and /dev/null differ diff --git a/applications/main/ibutton_loader/application.fam b/applications/main/ibutton_loader/application.fam deleted file mode 100644 index b4150f46b..000000000 --- a/applications/main/ibutton_loader/application.fam +++ /dev/null @@ -1,14 +0,0 @@ -App( - appid="ibutton_loader", - name="iButton", - apptype=FlipperAppType.APP, - entry_point="ibutton_loader_app", - requires=[ - "gui", - "storage", - ], - stack_size=int(1.5 * 1024), - icon="A_iButton_14", - order=60, - link="/ext/apps/Main/ibutton.fap", -) diff --git a/applications/main/ibutton_loader/ibutton_loader_app.c b/applications/main/ibutton_loader/ibutton_loader_app.c deleted file mode 100644 index 8738d9491..000000000 --- a/applications/main/ibutton_loader/ibutton_loader_app.c +++ /dev/null @@ -1,9 +0,0 @@ -#include - -#define TAG "ibutton_loader_app" - -int32_t ibutton_loader_app(void* p) { - UNUSED(p); - - return 0; -} \ No newline at end of file diff --git a/applications/main/infrared/application.fam b/applications/main/infrared/application.fam index 405224d80..9c5eaf392 100644 --- a/applications/main/infrared/application.fam +++ b/applications/main/infrared/application.fam @@ -1,19 +1,24 @@ App( appid="infrared", name="Infrared", - apptype=FlipperAppType.EXTERNAL, + apptype=FlipperAppType.APP, entry_point="infrared_app", cdefines=["APP_INFRARED"], requires=[ "gui", "dialogs", ], - # provides=["infrared_start"], - # icon="A_Infrared_14", + provides=["infrared_start"], + icon="A_Infrared_14", stack_size=3 * 1024, order=40, - fap_category="Main", - fap_icon="ir_10px.png", - fap_icon_assets="images", fap_libs=["assets"], ) + +App( + appid="infrared_start", + apptype=FlipperAppType.STARTUP, + entry_point="infrared_on_system_start", + requires=["infrared"], + order=20, +) diff --git a/applications/main/infrared/images/DolphinMafia_115x62.png b/applications/main/infrared/images/DolphinMafia_115x62.png deleted file mode 100644 index 53dffb4fa..000000000 Binary files a/applications/main/infrared/images/DolphinMafia_115x62.png and /dev/null differ diff --git a/applications/main/infrared/images/DolphinNice_96x59.png b/applications/main/infrared/images/DolphinNice_96x59.png deleted file mode 100644 index b111196c7..000000000 Binary files a/applications/main/infrared/images/DolphinNice_96x59.png and /dev/null differ diff --git a/applications/main/infrared/images/DolphinReadingSuccess_59x63.png b/applications/main/infrared/images/DolphinReadingSuccess_59x63.png deleted file mode 100644 index 46f559f65..000000000 Binary files a/applications/main/infrared/images/DolphinReadingSuccess_59x63.png and /dev/null differ diff --git a/applications/main/infrared/images/Down_25x27.png b/applications/main/infrared/images/Down_25x27.png deleted file mode 100644 index c13097778..000000000 Binary files a/applications/main/infrared/images/Down_25x27.png and /dev/null differ diff --git a/applications/main/infrared/images/Down_hvr_25x27.png b/applications/main/infrared/images/Down_hvr_25x27.png deleted file mode 100644 index 76d181924..000000000 Binary files a/applications/main/infrared/images/Down_hvr_25x27.png and /dev/null differ diff --git a/applications/main/infrared/images/InfraredArrowDown_4x8.png b/applications/main/infrared/images/InfraredArrowDown_4x8.png deleted file mode 100644 index 2ac7bcdbe..000000000 Binary files a/applications/main/infrared/images/InfraredArrowDown_4x8.png and /dev/null differ diff --git a/applications/main/infrared/images/InfraredArrowUp_4x8.png b/applications/main/infrared/images/InfraredArrowUp_4x8.png deleted file mode 100644 index 4c9a16b3f..000000000 Binary files a/applications/main/infrared/images/InfraredArrowUp_4x8.png and /dev/null differ diff --git a/applications/main/infrared/images/InfraredLearnShort_128x31.png b/applications/main/infrared/images/InfraredLearnShort_128x31.png deleted file mode 100644 index 783ad0877..000000000 Binary files a/applications/main/infrared/images/InfraredLearnShort_128x31.png and /dev/null differ diff --git a/applications/main/infrared/images/Mode_25x27.png b/applications/main/infrared/images/Mode_25x27.png deleted file mode 100644 index 381ba8296..000000000 Binary files a/applications/main/infrared/images/Mode_25x27.png and /dev/null differ diff --git a/applications/main/infrared/images/Mode_hvr_25x27.png b/applications/main/infrared/images/Mode_hvr_25x27.png deleted file mode 100644 index 64f459f55..000000000 Binary files a/applications/main/infrared/images/Mode_hvr_25x27.png and /dev/null differ diff --git a/applications/main/infrared/images/Mute_25x27.png b/applications/main/infrared/images/Mute_25x27.png deleted file mode 100644 index d8812dd4f..000000000 Binary files a/applications/main/infrared/images/Mute_25x27.png and /dev/null differ diff --git a/applications/main/infrared/images/Mute_hvr_25x27.png b/applications/main/infrared/images/Mute_hvr_25x27.png deleted file mode 100644 index 155bd9004..000000000 Binary files a/applications/main/infrared/images/Mute_hvr_25x27.png and /dev/null differ diff --git a/applications/main/infrared/images/Pin_back_arrow_10x8.png b/applications/main/infrared/images/Pin_back_arrow_10x8.png deleted file mode 100644 index 3bafabd14..000000000 Binary files a/applications/main/infrared/images/Pin_back_arrow_10x8.png and /dev/null differ diff --git a/applications/main/infrared/images/Power_25x27.png b/applications/main/infrared/images/Power_25x27.png deleted file mode 100644 index 5ae493fbe..000000000 Binary files a/applications/main/infrared/images/Power_25x27.png and /dev/null differ diff --git a/applications/main/infrared/images/Power_hvr_25x27.png b/applications/main/infrared/images/Power_hvr_25x27.png deleted file mode 100644 index 9425072c0..000000000 Binary files a/applications/main/infrared/images/Power_hvr_25x27.png and /dev/null differ diff --git a/applications/main/infrared/images/RFIDDolphinSend_97x61.png b/applications/main/infrared/images/RFIDDolphinSend_97x61.png deleted file mode 100644 index 343b9f734..000000000 Binary files a/applications/main/infrared/images/RFIDDolphinSend_97x61.png and /dev/null differ diff --git a/applications/main/infrared/images/Rotate_25x27.png b/applications/main/infrared/images/Rotate_25x27.png deleted file mode 100644 index 648634a09..000000000 Binary files a/applications/main/infrared/images/Rotate_25x27.png and /dev/null differ diff --git a/applications/main/infrared/images/Rotate_hvr_25x27.png b/applications/main/infrared/images/Rotate_hvr_25x27.png deleted file mode 100644 index a2b5cf93d..000000000 Binary files a/applications/main/infrared/images/Rotate_hvr_25x27.png and /dev/null differ diff --git a/applications/main/infrared/images/SDQuestion_35x43.png b/applications/main/infrared/images/SDQuestion_35x43.png deleted file mode 100644 index 9b9c9a58e..000000000 Binary files a/applications/main/infrared/images/SDQuestion_35x43.png and /dev/null differ diff --git a/applications/main/infrared/images/Swing_25x27.png b/applications/main/infrared/images/Swing_25x27.png deleted file mode 100644 index 38a6c9040..000000000 Binary files a/applications/main/infrared/images/Swing_25x27.png and /dev/null differ diff --git a/applications/main/infrared/images/Swing_hvr_25x27.png b/applications/main/infrared/images/Swing_hvr_25x27.png deleted file mode 100644 index 6e65b4e2e..000000000 Binary files a/applications/main/infrared/images/Swing_hvr_25x27.png and /dev/null differ diff --git a/applications/main/infrared/images/Timer_25x27.png b/applications/main/infrared/images/Timer_25x27.png deleted file mode 100644 index 2f1853a34..000000000 Binary files a/applications/main/infrared/images/Timer_25x27.png and /dev/null differ diff --git a/applications/main/infrared/images/Timer_hvr_25x27.png b/applications/main/infrared/images/Timer_hvr_25x27.png deleted file mode 100644 index d4dffa544..000000000 Binary files a/applications/main/infrared/images/Timer_hvr_25x27.png and /dev/null differ diff --git a/applications/main/infrared/images/Up_25x27.png b/applications/main/infrared/images/Up_25x27.png deleted file mode 100644 index b81a02e8a..000000000 Binary files a/applications/main/infrared/images/Up_25x27.png and /dev/null differ diff --git a/applications/main/infrared/images/Up_hvr_25x27.png b/applications/main/infrared/images/Up_hvr_25x27.png deleted file mode 100644 index cf71e5965..000000000 Binary files a/applications/main/infrared/images/Up_hvr_25x27.png and /dev/null differ diff --git a/applications/main/infrared/images/Vol_down_25x27.png b/applications/main/infrared/images/Vol_down_25x27.png deleted file mode 100644 index d7ae44558..000000000 Binary files a/applications/main/infrared/images/Vol_down_25x27.png and /dev/null differ diff --git a/applications/main/infrared/images/Vol_down_hvr_25x27.png b/applications/main/infrared/images/Vol_down_hvr_25x27.png deleted file mode 100644 index c556a037a..000000000 Binary files a/applications/main/infrared/images/Vol_down_hvr_25x27.png and /dev/null differ diff --git a/applications/main/infrared/images/Vol_up_25x27.png b/applications/main/infrared/images/Vol_up_25x27.png deleted file mode 100644 index c4d9e87a0..000000000 Binary files a/applications/main/infrared/images/Vol_up_25x27.png and /dev/null differ diff --git a/applications/main/infrared/images/Vol_up_hvr_25x27.png b/applications/main/infrared/images/Vol_up_hvr_25x27.png deleted file mode 100644 index 90c2df47d..000000000 Binary files a/applications/main/infrared/images/Vol_up_hvr_25x27.png and /dev/null differ diff --git a/applications/main/infrared/images/ir_10px.png b/applications/main/infrared/images/ir_10px.png deleted file mode 100644 index 22c986180..000000000 Binary files a/applications/main/infrared/images/ir_10px.png and /dev/null differ diff --git a/applications/services/infraredsrv/infrared_cli.c b/applications/main/infrared/infrared_cli.c similarity index 100% rename from applications/services/infraredsrv/infrared_cli.c rename to applications/main/infrared/infrared_cli.c diff --git a/applications/main/infrared/infrared_i.h b/applications/main/infrared/infrared_i.h index 4bf0631f5..6972d53b4 100644 --- a/applications/main/infrared/infrared_i.h +++ b/applications/main/infrared/infrared_i.h @@ -32,7 +32,7 @@ #include "rpc/rpc_app.h" -#include +#include #define INFRARED_FILE_NAME_SIZE 100 #define INFRARED_TEXT_STORE_NUM 2 diff --git a/applications/main/infrared/ir_10px.png b/applications/main/infrared/ir_10px.png deleted file mode 100644 index 22c986180..000000000 Binary files a/applications/main/infrared/ir_10px.png and /dev/null differ diff --git a/applications/main/infrared/views/infrared_progress_view.c b/applications/main/infrared/views/infrared_progress_view.c index bb1f982c5..3c50f89e4 100644 --- a/applications/main/infrared/views/infrared_progress_view.c +++ b/applications/main/infrared/views/infrared_progress_view.c @@ -1,5 +1,6 @@ #include #include "furi_hal_resources.h" +#include "assets_icons.h" #include "gui/canvas.h" #include "gui/view.h" #include "input/input.h" @@ -8,7 +9,6 @@ #include "infrared_progress_view.h" #include "gui/modules/button_panel.h" #include -#include struct InfraredProgressView { View* view; diff --git a/applications/main/infrared_loader/application.fam b/applications/main/infrared_loader/application.fam deleted file mode 100644 index c3d87a24e..000000000 --- a/applications/main/infrared_loader/application.fam +++ /dev/null @@ -1,14 +0,0 @@ -App( - appid="infrared_loader", - name="Infrared", - apptype=FlipperAppType.APP, - entry_point="infrared_loader_app", - requires=[ - "gui", - "dialogs", - ], - stack_size=int(2 * 1024), - icon="A_Infrared_14", - order=40, - link="/ext/apps/Main/infrared.fap", -) diff --git a/applications/main/infrared_loader/infrared_loader_app.c b/applications/main/infrared_loader/infrared_loader_app.c deleted file mode 100644 index 1fd2a59ed..000000000 --- a/applications/main/infrared_loader/infrared_loader_app.c +++ /dev/null @@ -1,9 +0,0 @@ -#include - -#define TAG "infrared_loader_app" - -int32_t infrared_loader_app(void* p) { - UNUSED(p); - - return 0; -} \ No newline at end of file diff --git a/applications/main/lfrfid/125_10px.png b/applications/main/lfrfid/125_10px.png deleted file mode 100644 index ce01284a2..000000000 Binary files a/applications/main/lfrfid/125_10px.png and /dev/null differ diff --git a/applications/main/lfrfid/application.fam b/applications/main/lfrfid/application.fam index 41d3b8fa7..150a6f3db 100644 --- a/applications/main/lfrfid/application.fam +++ b/applications/main/lfrfid/application.fam @@ -8,12 +8,19 @@ App( "gui", "dialogs", ], - # provides=[ "lfrfid_start", ], + provides=[ + "lfrfid_start", + ], icon="A_125khz_14", stack_size=2 * 1024, order=20, - # fap_category="Main", - # fap_icon="125_10px.png", - # fap_icon_assets="images", - # fap_libs=["assets"], + fap_libs=["assets"], +) + +App( + appid="lfrfid_start", + apptype=FlipperAppType.STARTUP, + entry_point="lfrfid_on_system_start", + requires=["lfrfid"], + order=50, ) diff --git a/applications/main/lfrfid/images/125_10px.png b/applications/main/lfrfid/images/125_10px.png deleted file mode 100644 index ce01284a2..000000000 Binary files a/applications/main/lfrfid/images/125_10px.png and /dev/null differ diff --git a/applications/main/lfrfid/images/DolphinCommon_56x48.png b/applications/main/lfrfid/images/DolphinCommon_56x48.png deleted file mode 100644 index 089aaed83..000000000 Binary files a/applications/main/lfrfid/images/DolphinCommon_56x48.png and /dev/null differ diff --git a/applications/main/lfrfid/images/DolphinMafia_115x62.png b/applications/main/lfrfid/images/DolphinMafia_115x62.png deleted file mode 100644 index 53dffb4fa..000000000 Binary files a/applications/main/lfrfid/images/DolphinMafia_115x62.png and /dev/null differ diff --git a/applications/main/lfrfid/images/DolphinNice_96x59.png b/applications/main/lfrfid/images/DolphinNice_96x59.png deleted file mode 100644 index b111196c7..000000000 Binary files a/applications/main/lfrfid/images/DolphinNice_96x59.png and /dev/null differ diff --git a/applications/main/lfrfid/images/NFC_manual_60x50.png b/applications/main/lfrfid/images/NFC_manual_60x50.png deleted file mode 100644 index 787c0bcfe..000000000 Binary files a/applications/main/lfrfid/images/NFC_manual_60x50.png and /dev/null differ diff --git a/applications/main/lfrfid/images/RFIDDolphinReceive_97x61.png b/applications/main/lfrfid/images/RFIDDolphinReceive_97x61.png deleted file mode 100644 index ff967599c..000000000 Binary files a/applications/main/lfrfid/images/RFIDDolphinReceive_97x61.png and /dev/null differ diff --git a/applications/main/lfrfid/images/RFIDDolphinSend_97x61.png b/applications/main/lfrfid/images/RFIDDolphinSend_97x61.png deleted file mode 100644 index 343b9f734..000000000 Binary files a/applications/main/lfrfid/images/RFIDDolphinSend_97x61.png and /dev/null differ diff --git a/applications/main/lfrfid/images/RFIDDolphinSuccess_108x57.png b/applications/main/lfrfid/images/RFIDDolphinSuccess_108x57.png deleted file mode 100644 index 341999109..000000000 Binary files a/applications/main/lfrfid/images/RFIDDolphinSuccess_108x57.png and /dev/null differ diff --git a/applications/main/lfrfid/images/RFIDSmallChip_14x14.png b/applications/main/lfrfid/images/RFIDSmallChip_14x14.png deleted file mode 100644 index 24219a548..000000000 Binary files a/applications/main/lfrfid/images/RFIDSmallChip_14x14.png and /dev/null differ diff --git a/applications/main/lfrfid/images/Round_loader_8x8/frame_01.png b/applications/main/lfrfid/images/Round_loader_8x8/frame_01.png deleted file mode 100644 index a5dc239d8..000000000 Binary files a/applications/main/lfrfid/images/Round_loader_8x8/frame_01.png and /dev/null differ diff --git a/applications/main/lfrfid/images/Round_loader_8x8/frame_02.png b/applications/main/lfrfid/images/Round_loader_8x8/frame_02.png deleted file mode 100644 index 162d8a8f4..000000000 Binary files a/applications/main/lfrfid/images/Round_loader_8x8/frame_02.png and /dev/null differ diff --git a/applications/main/lfrfid/images/Round_loader_8x8/frame_03.png b/applications/main/lfrfid/images/Round_loader_8x8/frame_03.png deleted file mode 100644 index 5483e4734..000000000 Binary files a/applications/main/lfrfid/images/Round_loader_8x8/frame_03.png and /dev/null differ diff --git a/applications/main/lfrfid/images/Round_loader_8x8/frame_04.png b/applications/main/lfrfid/images/Round_loader_8x8/frame_04.png deleted file mode 100644 index ce2fbbd47..000000000 Binary files a/applications/main/lfrfid/images/Round_loader_8x8/frame_04.png and /dev/null differ diff --git a/applications/main/lfrfid/images/Round_loader_8x8/frame_05.png b/applications/main/lfrfid/images/Round_loader_8x8/frame_05.png deleted file mode 100644 index 8b786c029..000000000 Binary files a/applications/main/lfrfid/images/Round_loader_8x8/frame_05.png and /dev/null differ diff --git a/applications/main/lfrfid/images/Round_loader_8x8/frame_rate b/applications/main/lfrfid/images/Round_loader_8x8/frame_rate deleted file mode 100644 index d8263ee98..000000000 --- a/applications/main/lfrfid/images/Round_loader_8x8/frame_rate +++ /dev/null @@ -1 +0,0 @@ -2 \ No newline at end of file diff --git a/applications/main/lfrfid/images/SDQuestion_35x43.png b/applications/main/lfrfid/images/SDQuestion_35x43.png deleted file mode 100644 index 9b9c9a58e..000000000 Binary files a/applications/main/lfrfid/images/SDQuestion_35x43.png and /dev/null differ diff --git a/applications/services/lfrfidsrv/lfrfid_cli.c b/applications/main/lfrfid/lfrfid_cli.c similarity index 100% rename from applications/services/lfrfidsrv/lfrfid_cli.c rename to applications/main/lfrfid/lfrfid_cli.c diff --git a/applications/main/lfrfid/scenes/lfrfid_scene_save_type.c b/applications/main/lfrfid/scenes/lfrfid_scene_save_type.c index dd20ae489..eb73b1123 100644 --- a/applications/main/lfrfid/scenes/lfrfid_scene_save_type.c +++ b/applications/main/lfrfid/scenes/lfrfid_scene_save_type.c @@ -17,9 +17,10 @@ void lfrfid_scene_save_type_on_enter(void* context) { SaveTypeCtx* state = malloc(sizeof(SaveTypeCtx)); FuriString* protocol_string = furi_string_alloc(); for(uint8_t i = 0; i < LFRFIDProtocolMax; i++) { - if(strcmp( - protocol_dict_get_manufacturer(app->dict, i), - protocol_dict_get_name(app->dict, i)) != 0) { + if((strcmp( + protocol_dict_get_manufacturer(app->dict, i), + protocol_dict_get_name(app->dict, i)) != 0) && + (strcmp(protocol_dict_get_manufacturer(app->dict, i), "N/A") != 0)) { furi_string_printf( protocol_string, "%s %s", diff --git a/applications/main/lfrfid/views/lfrfid_view_read.c b/applications/main/lfrfid/views/lfrfid_view_read.c index 4828e21a7..094afb617 100644 --- a/applications/main/lfrfid/views/lfrfid_view_read.c +++ b/applications/main/lfrfid/views/lfrfid_view_read.c @@ -1,7 +1,6 @@ #include "lfrfid_view_read.h" #include #include -// #include #define TEMP_STR_LEN 128 diff --git a/applications/main/lfrfid_loader/application.fam b/applications/main/lfrfid_loader/application.fam deleted file mode 100644 index 947762085..000000000 --- a/applications/main/lfrfid_loader/application.fam +++ /dev/null @@ -1,14 +0,0 @@ -App( - appid="lfrfid_loader", - name="125 kHz RFID", - apptype=FlipperAppType.APP, - entry_point="lfrfid_loader_app", - requires=[ - "gui", - "dialogs", - ], - stack_size=int(2 * 1024), - icon="A_125khz_14", - order=20, - link="/ext/apps/Main/lfrfid.fap", -) diff --git a/applications/main/lfrfid_loader/lfrfid_loader_app.c b/applications/main/lfrfid_loader/lfrfid_loader_app.c deleted file mode 100644 index ad6a96c64..000000000 --- a/applications/main/lfrfid_loader/lfrfid_loader_app.c +++ /dev/null @@ -1,9 +0,0 @@ -#include - -#define TAG "lfrfid_loader_app" - -int32_t lfrfid_loader_app(void* p) { - UNUSED(p); - - return 0; -} \ No newline at end of file diff --git a/applications/main/nfc/nfc.c b/applications/main/nfc/nfc.c index 90fcf9f27..2ff224ec2 100644 --- a/applications/main/nfc/nfc.c +++ b/applications/main/nfc/nfc.c @@ -305,7 +305,7 @@ int32_t nfc_app(void* p) { scene_manager_next_scene(nfc->scene_manager, NfcSceneEmulateNfcV); DOLPHIN_DEED(DolphinDeedNfcEmulate); } else if(nfc->dev->format == NfcDeviceSaveFormatBankCard) { - scene_manager_next_scene(nfc->scene_manager, NfcSceneDeviceInfo); + scene_manager_next_scene(nfc->scene_manager, NfcSceneEmulateUid); } else { scene_manager_next_scene(nfc->scene_manager, NfcSceneEmulateUid); DOLPHIN_DEED(DolphinDeedNfcEmulate); diff --git a/applications/main/nfc/scenes/nfc_scene_delete_success.c b/applications/main/nfc/scenes/nfc_scene_delete_success.c index 1664a9e5b..faa7fd7bb 100644 --- a/applications/main/nfc/scenes/nfc_scene_delete_success.c +++ b/applications/main/nfc/scenes/nfc_scene_delete_success.c @@ -1,4 +1,5 @@ #include "../nfc_i.h" +#include "../../../settings/desktop_settings/desktop_settings_app.h" void nfc_scene_delete_success_popup_callback(void* context) { Nfc* nfc = context; @@ -7,16 +8,24 @@ void nfc_scene_delete_success_popup_callback(void* context) { void nfc_scene_delete_success_on_enter(void* context) { Nfc* nfc = context; + DesktopSettings* settings = malloc(sizeof(DesktopSettings)); + DESKTOP_SETTINGS_LOAD(settings); // Setup view Popup* popup = nfc->popup; - popup_set_icon(popup, 0, 2, &I_DolphinMafia_115x62); + if (settings->sfw_mode) { + popup_set_icon(popup, 0, 2, &I_DolphinMafia_115x62_sfw); + } + else { + popup_set_icon(popup, 0, 2, &I_DolphinMafia_115x62); + } popup_set_header(popup, "Deleted", 83, 19, AlignLeft, AlignBottom); popup_set_timeout(popup, 1500); popup_set_context(popup, nfc); popup_set_callback(popup, nfc_scene_delete_success_popup_callback); popup_enable_timeout(popup); view_dispatcher_switch_to_view(nfc->view_dispatcher, NfcViewPopup); + free(settings); } bool nfc_scene_delete_success_on_event(void* context, SceneManagerEvent event) { diff --git a/applications/main/nfc/scenes/nfc_scene_emulate_uid.c b/applications/main/nfc/scenes/nfc_scene_emulate_uid.c index 7316eebe0..eec43c92c 100644 --- a/applications/main/nfc/scenes/nfc_scene_emulate_uid.c +++ b/applications/main/nfc/scenes/nfc_scene_emulate_uid.c @@ -1,4 +1,5 @@ #include "../nfc_i.h" +#include "../../../settings/desktop_settings/desktop_settings_app.h" #define NFC_SCENE_EMULATE_UID_LOG_SIZE_MAX (200) @@ -36,8 +37,15 @@ static void nfc_scene_emulate_uid_widget_config(Nfc* nfc, bool data_received) { widget_reset(widget); FuriString* info_str; info_str = furi_string_alloc(); + DesktopSettings* settings = malloc(sizeof(DesktopSettings)); + DESKTOP_SETTINGS_LOAD(settings); - widget_add_icon_element(widget, 0, 3, &I_NFC_dolphin_emulation_47x61); + if (settings->sfw_mode) { + widget_add_icon_element(widget, 0, 3, &I_NFC_dolphin_emulation_47x61_sfw); + } + else { + widget_add_icon_element(widget, 0, 3, &I_NFC_dolphin_emulation_47x61); + } widget_add_string_element(widget, 57, 13, AlignLeft, AlignTop, FontPrimary, "Emulating UID"); if(strcmp(nfc->dev->dev_name, "") != 0) { furi_string_printf(info_str, "%s", nfc->dev->dev_name); @@ -54,6 +62,7 @@ static void nfc_scene_emulate_uid_widget_config(Nfc* nfc, bool data_received) { widget_add_button_element( widget, GuiButtonTypeCenter, "Log", nfc_scene_emulate_uid_widget_callback, nfc); } + free(settings); } void nfc_scene_emulate_uid_on_enter(void* context) { diff --git a/applications/main/nfc/scenes/nfc_scene_mf_classic_dict_attack.c b/applications/main/nfc/scenes/nfc_scene_mf_classic_dict_attack.c index 9b477e301..b82bf5521 100644 --- a/applications/main/nfc/scenes/nfc_scene_mf_classic_dict_attack.c +++ b/applications/main/nfc/scenes/nfc_scene_mf_classic_dict_attack.c @@ -58,7 +58,7 @@ static void nfc_scene_mf_classic_dict_attack_prepare_view(Nfc* nfc, DictAttackSt // If failed to load user dictionary - try the system dictionary if(!dict) { - FURI_LOG_E(TAG, "User Dictionary Not Found"); + FURI_LOG_E(TAG, "User dictionary not found"); state = DictAttackStateFlipperDictInProgress; } } @@ -67,8 +67,8 @@ static void nfc_scene_mf_classic_dict_attack_prepare_view(Nfc* nfc, DictAttackSt dict_attack_set_header(nfc->dict_attack, "MF Classic System Dictionary"); dict = mf_classic_dict_alloc(MfClassicDictTypeSystem); if(!dict) { - FURI_LOG_E(TAG, "Flipper Dictionary Not Found"); - // Pass through to let worker handle the failure + FURI_LOG_E(TAG, "Flipper dictionary not found"); + // Pass through to let the worker handle the failure } } // Free previous dictionary diff --git a/applications/main/nfc/scenes/nfc_scene_mf_classic_emulate.c b/applications/main/nfc/scenes/nfc_scene_mf_classic_emulate.c index 8c0f493e1..0fa624ad9 100644 --- a/applications/main/nfc/scenes/nfc_scene_mf_classic_emulate.c +++ b/applications/main/nfc/scenes/nfc_scene_mf_classic_emulate.c @@ -1,4 +1,5 @@ #include "../nfc_i.h" +#include "../../../settings/desktop_settings/desktop_settings_app.h" #define NFC_MF_CLASSIC_DATA_NOT_CHANGED (0UL) #define NFC_MF_CLASSIC_DATA_CHANGED (1UL) @@ -14,6 +15,8 @@ bool nfc_mf_classic_emulate_worker_callback(NfcWorkerEvent event, void* context) void nfc_scene_mf_classic_emulate_on_enter(void* context) { Nfc* nfc = context; + DesktopSettings* settings = malloc(sizeof(DesktopSettings)); + DESKTOP_SETTINGS_LOAD(settings); // Setup view Popup* popup = nfc->popup; @@ -23,7 +26,12 @@ void nfc_scene_mf_classic_emulate_on_enter(void* context) { } else { nfc_text_store_set(nfc, "MIFARE\nClassic"); } - popup_set_icon(popup, 0, 3, &I_NFC_dolphin_emulation_47x61); + if (settings->sfw_mode) { + popup_set_icon(popup, 0, 3, &I_NFC_dolphin_emulation_47x61_sfw); + } + else { + popup_set_icon(popup, 0, 3, &I_NFC_dolphin_emulation_47x61); + } popup_set_text(popup, nfc->text_store, 90, 28, AlignCenter, AlignTop); // Setup and start worker @@ -35,6 +43,7 @@ void nfc_scene_mf_classic_emulate_on_enter(void* context) { nfc_mf_classic_emulate_worker_callback, nfc); nfc_blink_emulate_start(nfc); + free(settings); } bool nfc_scene_mf_classic_emulate_on_event(void* context, SceneManagerEvent event) { diff --git a/applications/main/nfc/scenes/nfc_scene_mf_classic_keys.c b/applications/main/nfc/scenes/nfc_scene_mf_classic_keys.c index 8b61904b4..8a7dc2c18 100644 --- a/applications/main/nfc/scenes/nfc_scene_mf_classic_keys.c +++ b/applications/main/nfc/scenes/nfc_scene_mf_classic_keys.c @@ -28,9 +28,9 @@ void nfc_scene_mf_classic_keys_on_enter(void* context) { widget_add_string_element( nfc->widget, 0, 0, AlignLeft, AlignTop, FontPrimary, "MIFARE Classic Keys"); char temp_str[32]; - snprintf(temp_str, sizeof(temp_str), "System Dict: %ld", flipper_dict_keys_total); + snprintf(temp_str, sizeof(temp_str), "System dict: %lu", flipper_dict_keys_total); widget_add_string_element(nfc->widget, 0, 20, AlignLeft, AlignTop, FontSecondary, temp_str); - snprintf(temp_str, sizeof(temp_str), "User Dict: %ld", user_dict_keys_total); + snprintf(temp_str, sizeof(temp_str), "User dict: %lu", user_dict_keys_total); widget_add_string_element(nfc->widget, 0, 32, AlignLeft, AlignTop, FontSecondary, temp_str); widget_add_button_element( nfc->widget, GuiButtonTypeCenter, "Add", nfc_scene_mf_classic_keys_widget_callback, nfc); diff --git a/applications/main/nfc/scenes/nfc_scene_mf_classic_update_success.c b/applications/main/nfc/scenes/nfc_scene_mf_classic_update_success.c index fef8fd5e9..a76a758b6 100644 --- a/applications/main/nfc/scenes/nfc_scene_mf_classic_update_success.c +++ b/applications/main/nfc/scenes/nfc_scene_mf_classic_update_success.c @@ -1,5 +1,6 @@ #include "../nfc_i.h" #include +#include "../../../settings/desktop_settings/desktop_settings_app.h" void nfc_scene_mf_classic_update_success_popup_callback(void* context) { Nfc* nfc = context; @@ -9,11 +10,18 @@ void nfc_scene_mf_classic_update_success_popup_callback(void* context) { void nfc_scene_mf_classic_update_success_on_enter(void* context) { Nfc* nfc = context; DOLPHIN_DEED(DolphinDeedNfcSave); + DesktopSettings* settings = malloc(sizeof(DesktopSettings)); + DESKTOP_SETTINGS_LOAD(settings); notification_message(nfc->notifications, &sequence_success); Popup* popup = nfc->popup; - popup_set_icon(popup, 32, 5, &I_DolphinNice_96x59); + if (settings->sfw_mode) { + popup_set_icon(popup, 32, 5, &I_DolphinNice_96x59_sfw); + } + else { + popup_set_icon(popup, 32, 5, &I_DolphinNice_96x59); + } popup_set_header(popup, "Updated!", 11, 20, AlignLeft, AlignBottom); popup_set_timeout(popup, 1500); popup_set_context(popup, nfc); @@ -21,6 +29,7 @@ void nfc_scene_mf_classic_update_success_on_enter(void* context) { popup_enable_timeout(popup); view_dispatcher_switch_to_view(nfc->view_dispatcher, NfcViewPopup); + free(settings); } bool nfc_scene_mf_classic_update_success_on_event(void* context, SceneManagerEvent event) { diff --git a/applications/main/nfc/scenes/nfc_scene_mf_classic_write_success.c b/applications/main/nfc/scenes/nfc_scene_mf_classic_write_success.c index 2f2a3beb1..e425d8c3a 100644 --- a/applications/main/nfc/scenes/nfc_scene_mf_classic_write_success.c +++ b/applications/main/nfc/scenes/nfc_scene_mf_classic_write_success.c @@ -1,5 +1,6 @@ #include "../nfc_i.h" #include +#include "../../../settings/desktop_settings/desktop_settings_app.h" void nfc_scene_mf_classic_write_success_popup_callback(void* context) { Nfc* nfc = context; @@ -9,11 +10,18 @@ void nfc_scene_mf_classic_write_success_popup_callback(void* context) { void nfc_scene_mf_classic_write_success_on_enter(void* context) { Nfc* nfc = context; DOLPHIN_DEED(DolphinDeedNfcSave); + DesktopSettings* settings = malloc(sizeof(DesktopSettings)); + DESKTOP_SETTINGS_LOAD(settings); notification_message(nfc->notifications, &sequence_success); Popup* popup = nfc->popup; - popup_set_icon(popup, 32, 5, &I_DolphinNice_96x59); + if (settings->sfw_mode) { + popup_set_icon(popup, 32, 5, &I_DolphinNice_96x59_sfw); + } + else { + popup_set_icon(popup, 32, 5, &I_DolphinNice_96x59); + } popup_set_header(popup, "Successfully\nwritten", 13, 22, AlignLeft, AlignBottom); popup_set_timeout(popup, 1500); popup_set_context(popup, nfc); @@ -21,6 +29,7 @@ void nfc_scene_mf_classic_write_success_on_enter(void* context) { popup_enable_timeout(popup); view_dispatcher_switch_to_view(nfc->view_dispatcher, NfcViewPopup); + free(settings); } bool nfc_scene_mf_classic_write_success_on_event(void* context, SceneManagerEvent event) { diff --git a/applications/main/nfc/scenes/nfc_scene_mf_desfire_app.c b/applications/main/nfc/scenes/nfc_scene_mf_desfire_app.c index afc5f0dee..882dc5fea 100644 --- a/applications/main/nfc/scenes/nfc_scene_mf_desfire_app.c +++ b/applications/main/nfc/scenes/nfc_scene_mf_desfire_app.c @@ -51,23 +51,18 @@ void nfc_scene_mf_desfire_app_on_enter(void* context) { nfc_scene_mf_desfire_app_submenu_callback, nfc); - uint16_t cap = NFC_TEXT_STORE_SIZE; - char* buf = nfc->text_store; + FuriString* label = furi_string_alloc(); int idx = SubmenuIndexDynamic; for(MifareDesfireFile* file = app->file_head; file; file = file->next) { - int size = snprintf(buf, cap, "File %d", file->id); - if(size < 0 || size >= cap) { - FURI_LOG_W( - TAG, - "Exceeded NFC_TEXT_STORE_SIZE when preparing file id strings; menu truncated"); - break; - } - char* label = buf; - cap -= size + 1; - buf += size + 1; + furi_string_printf(label, "File %d", file->id); submenu_add_item( - nfc->submenu, label, idx++, nfc_scene_mf_desfire_app_submenu_callback, nfc); + nfc->submenu, + furi_string_get_cstr(label), + idx++, + nfc_scene_mf_desfire_app_submenu_callback, + nfc); } + furi_string_free(label); view_dispatcher_switch_to_view(nfc->view_dispatcher, NfcViewMenu); } diff --git a/applications/main/nfc/scenes/nfc_scene_mf_desfire_data.c b/applications/main/nfc/scenes/nfc_scene_mf_desfire_data.c index e619d0377..c7caee8dc 100644 --- a/applications/main/nfc/scenes/nfc_scene_mf_desfire_data.c +++ b/applications/main/nfc/scenes/nfc_scene_mf_desfire_data.c @@ -33,21 +33,18 @@ void nfc_scene_mf_desfire_data_on_enter(void* context) { nfc_scene_mf_desfire_data_submenu_callback, nfc); - uint16_t cap = NFC_TEXT_STORE_SIZE; - char* buf = nfc->text_store; + FuriString* label = furi_string_alloc(); int idx = SubmenuIndexDynamic; for(MifareDesfireApplication* app = data->app_head; app; app = app->next) { - int size = snprintf(buf, cap, "App %02x%02x%02x", app->id[0], app->id[1], app->id[2]); - if(size < 0 || size >= cap) { - FURI_LOG_W( - TAG, "Exceeded NFC_TEXT_STORE_SIZE when preparing app id strings; menu truncated"); - break; - } - char* label = buf; - cap -= size + 1; - buf += size + 1; - submenu_add_item(submenu, label, idx++, nfc_scene_mf_desfire_data_submenu_callback, nfc); + furi_string_printf(label, "App %02x%02x%02x", app->id[0], app->id[1], app->id[2]); + submenu_add_item( + submenu, + furi_string_get_cstr(label), + idx++, + nfc_scene_mf_desfire_data_submenu_callback, + nfc); } + furi_string_free(label); if(state >= MifareDesfireDataStateItem) { submenu_set_selected_item( diff --git a/applications/main/nfc/scenes/nfc_scene_mf_ultralight_emulate.c b/applications/main/nfc/scenes/nfc_scene_mf_ultralight_emulate.c index 88b6b71d9..4dc35c68d 100644 --- a/applications/main/nfc/scenes/nfc_scene_mf_ultralight_emulate.c +++ b/applications/main/nfc/scenes/nfc_scene_mf_ultralight_emulate.c @@ -1,5 +1,6 @@ #include "../nfc_i.h" #include +#include "../../../settings/desktop_settings/desktop_settings_app.h" #define NFC_SCENE_MF_ULTRALIGHT_EMULATE_LOG_SIZE_MAX (200) @@ -89,6 +90,8 @@ void nfc_scene_mf_ultralight_emulate_on_enter(void* context) { Nfc* nfc = context; uint32_t state = scene_manager_get_scene_state(nfc->scene_manager, NfcSceneMfUltralightEmulate); + DesktopSettings* settings = malloc(sizeof(DesktopSettings)); + DESKTOP_SETTINGS_LOAD(settings); // Setup Widget nfc_scene_mf_ultralight_emulate_widget_config(nfc, false); @@ -111,7 +114,12 @@ void nfc_scene_mf_ultralight_emulate_on_enter(void* context) { } else { nfc_text_store_set(nfc, "MIFARE\nNTAG"); } - popup_set_icon(popup, 0, 3, &I_NFC_dolphin_emulation_47x61); + if (settings->sfw_mode) { + popup_set_icon(popup, 0, 3, &I_NFC_dolphin_emulation_47x61_sfw); + } + else { + popup_set_icon(popup, 0, 3, &I_NFC_dolphin_emulation_47x61); + } popup_set_text(popup, nfc->text_store, 90, 28, AlignCenter, AlignTop); // Set Widget state and view @@ -127,6 +135,7 @@ void nfc_scene_mf_ultralight_emulate_on_enter(void* context) { nfc_mf_ultralight_emulate_worker_callback, nfc); nfc_blink_emulate_start(nfc); + free(settings); } bool nfc_scene_mf_ultralight_emulate_on_event(void* context, SceneManagerEvent event) { diff --git a/applications/main/nfc/scenes/nfc_scene_mf_ultralight_key_input.c b/applications/main/nfc/scenes/nfc_scene_mf_ultralight_key_input.c index 174d1a406..089187d5b 100644 --- a/applications/main/nfc/scenes/nfc_scene_mf_ultralight_key_input.c +++ b/applications/main/nfc/scenes/nfc_scene_mf_ultralight_key_input.c @@ -11,7 +11,7 @@ void nfc_scene_mf_ultralight_key_input_on_enter(void* context) { // Setup view ByteInput* byte_input = nfc->byte_input; - byte_input_set_header_text(byte_input, "Enter The Password In Hex"); + byte_input_set_header_text(byte_input, "Enter the password in hex"); byte_input_set_result_callback( byte_input, nfc_scene_mf_ultralight_key_input_byte_input_callback, diff --git a/applications/main/nfc/scenes/nfc_scene_mf_ultralight_read_auth.c b/applications/main/nfc/scenes/nfc_scene_mf_ultralight_read_auth.c index 8e2dd0c22..2ab5e3f3f 100644 --- a/applications/main/nfc/scenes/nfc_scene_mf_ultralight_read_auth.c +++ b/applications/main/nfc/scenes/nfc_scene_mf_ultralight_read_auth.c @@ -24,22 +24,21 @@ void nfc_scene_mf_ultralight_read_auth_set_state(Nfc* nfc, NfcSceneMfUlReadState if(curr_state != state) { if(state == NfcSceneMfUlReadStateDetecting) { popup_reset(nfc->popup); - popup_set_text( - nfc->popup, "Apply Card To\nFlipper's Back", 97, 24, AlignCenter, AlignTop); + popup_set_text(nfc->popup, "Apply the\ntarget card", 97, 24, AlignCenter, AlignTop); popup_set_icon(nfc->popup, 0, 8, &I_NFC_manual_60x50); nfc_blink_read_start(nfc); } else if(state == NfcSceneMfUlReadStateReading) { popup_reset(nfc->popup); popup_set_header( - nfc->popup, "Reading Card\nDon't Move...", 85, 24, AlignCenter, AlignTop); + nfc->popup, "Reading card\nDon't move...", 85, 24, AlignCenter, AlignTop); popup_set_icon(nfc->popup, 12, 23, &A_Loading_24); nfc_blink_detect_start(nfc); } else if(state == NfcSceneMfUlReadStateNotSupportedCard) { popup_reset(nfc->popup); - popup_set_header(nfc->popup, "Wrong Type Of Card!", 64, 3, AlignCenter, AlignTop); + popup_set_header(nfc->popup, "Wrong type of card!", 64, 3, AlignCenter, AlignTop); popup_set_text( nfc->popup, - "Only MIFARE\nUltralight & NTAG\n Are Supported", + "Only MIFARE\nUltralight & NTAG\nare supported", 4, 22, AlignLeft, diff --git a/applications/main/nfc/scenes/nfc_scene_restore_original.c b/applications/main/nfc/scenes/nfc_scene_restore_original.c index 3ecf5c048..3709008fd 100644 --- a/applications/main/nfc/scenes/nfc_scene_restore_original.c +++ b/applications/main/nfc/scenes/nfc_scene_restore_original.c @@ -1,4 +1,5 @@ #include "../nfc_i.h" +#include "../../../settings/desktop_settings/desktop_settings_app.h" void nfc_scene_restore_original_popup_callback(void* context) { Nfc* nfc = context; @@ -7,16 +8,24 @@ void nfc_scene_restore_original_popup_callback(void* context) { void nfc_scene_restore_original_on_enter(void* context) { Nfc* nfc = context; + DesktopSettings* settings = malloc(sizeof(DesktopSettings)); + DESKTOP_SETTINGS_LOAD(settings); // Setup view Popup* popup = nfc->popup; - popup_set_icon(popup, 32, 5, &I_DolphinNice_96x59); + if (settings->sfw_mode) { + popup_set_icon(popup, 32, 5, &I_DolphinNice_96x59_sfw); + } + else { + popup_set_icon(popup, 32, 5, &I_DolphinNice_96x59); + } popup_set_header(popup, "Original file\nrestored", 13, 22, AlignLeft, AlignBottom); popup_set_timeout(popup, 1500); popup_set_context(popup, nfc); popup_set_callback(popup, nfc_scene_restore_original_popup_callback); popup_enable_timeout(popup); view_dispatcher_switch_to_view(nfc->view_dispatcher, NfcViewPopup); + free(settings); } bool nfc_scene_restore_original_on_event(void* context, SceneManagerEvent event) { diff --git a/applications/main/nfc/scenes/nfc_scene_rpc.c b/applications/main/nfc/scenes/nfc_scene_rpc.c index d06ee7564..edf63faf4 100644 --- a/applications/main/nfc/scenes/nfc_scene_rpc.c +++ b/applications/main/nfc/scenes/nfc_scene_rpc.c @@ -1,17 +1,26 @@ #include "../nfc_i.h" +#include "../../../settings/desktop_settings/desktop_settings_app.h" void nfc_scene_rpc_on_enter(void* context) { Nfc* nfc = context; Popup* popup = nfc->popup; + DesktopSettings* settings = malloc(sizeof(DesktopSettings)); + DESKTOP_SETTINGS_LOAD(settings); popup_set_header(popup, "NFC", 89, 42, AlignCenter, AlignBottom); popup_set_text(popup, "RPC mode", 89, 44, AlignCenter, AlignTop); - popup_set_icon(popup, 0, 12, &I_NFC_dolphin_emulation_47x61); + if (settings->sfw_mode) { + popup_set_icon(popup, 0, 12, &I_NFC_dolphin_emulation_47x61_sfw); + } + else { + popup_set_icon(popup, 0, 12, &I_NFC_dolphin_emulation_47x61); + } view_dispatcher_switch_to_view(nfc->view_dispatcher, NfcViewPopup); notification_message(nfc->notifications, &sequence_display_backlight_on); + free(settings); } static bool nfc_scene_rpc_emulate_callback(NfcWorkerEvent event, void* context) { diff --git a/applications/main/nfc/scenes/nfc_scene_save_name.c b/applications/main/nfc/scenes/nfc_scene_save_name.c index 8f0e889ec..007274226 100644 --- a/applications/main/nfc/scenes/nfc_scene_save_name.c +++ b/applications/main/nfc/scenes/nfc_scene_save_name.c @@ -22,7 +22,7 @@ void nfc_scene_save_name_on_enter(void* context) { } else { nfc_text_store_set(nfc, nfc->dev->dev_name); } - text_input_set_header_text(text_input, "Name The Card"); + text_input_set_header_text(text_input, "Name the card"); text_input_set_result_callback( text_input, nfc_scene_save_name_text_input_callback, diff --git a/applications/main/nfc/scenes/nfc_scene_save_success.c b/applications/main/nfc/scenes/nfc_scene_save_success.c index 43f2246cd..67dd4a6dd 100644 --- a/applications/main/nfc/scenes/nfc_scene_save_success.c +++ b/applications/main/nfc/scenes/nfc_scene_save_success.c @@ -1,4 +1,5 @@ #include "../nfc_i.h" +#include "../../../settings/desktop_settings/desktop_settings_app.h" void nfc_scene_save_success_popup_callback(void* context) { Nfc* nfc = context; @@ -7,16 +8,24 @@ void nfc_scene_save_success_popup_callback(void* context) { void nfc_scene_save_success_on_enter(void* context) { Nfc* nfc = context; + DesktopSettings* settings = malloc(sizeof(DesktopSettings)); + DESKTOP_SETTINGS_LOAD(settings); // Setup view Popup* popup = nfc->popup; - popup_set_icon(popup, 32, 5, &I_DolphinNice_96x59); + if (settings->sfw_mode) { + popup_set_icon(popup, 32, 5, &I_DolphinNice_96x59_sfw); + } + else { + popup_set_icon(popup, 32, 5, &I_DolphinNice_96x59); + } popup_set_header(popup, "Saved!", 13, 22, AlignLeft, AlignBottom); popup_set_timeout(popup, 1500); popup_set_context(popup, nfc); popup_set_callback(popup, nfc_scene_save_success_popup_callback); popup_enable_timeout(popup); view_dispatcher_switch_to_view(nfc->view_dispatcher, NfcViewPopup); + free(settings); } bool nfc_scene_save_success_on_event(void* context, SceneManagerEvent event) { diff --git a/applications/main/nfc/scenes/nfc_scene_start.c b/applications/main/nfc/scenes/nfc_scene_start.c index f8b9f52c6..2a116fe09 100644 --- a/applications/main/nfc/scenes/nfc_scene_start.c +++ b/applications/main/nfc/scenes/nfc_scene_start.c @@ -7,7 +7,7 @@ enum SubmenuIndex { SubmenuIndexDetectReader, SubmenuIndexSaved, SubmenuIndexExtraAction, - SubmenuIndexAddManualy, + SubmenuIndexAddManually, SubmenuIndexDebug, }; @@ -28,7 +28,7 @@ void nfc_scene_start_on_enter(void* context) { submenu_add_item( submenu, "Extra Actions", SubmenuIndexExtraAction, nfc_scene_start_submenu_callback, nfc); submenu_add_item( - submenu, "Add Manually", SubmenuIndexAddManualy, nfc_scene_start_submenu_callback, nfc); + submenu, "Add Manually", SubmenuIndexAddManually, nfc_scene_start_submenu_callback, nfc); if(furi_hal_rtc_is_flag_set(FuriHalRtcFlagDebug)) { submenu_add_item( @@ -68,7 +68,7 @@ bool nfc_scene_start_on_event(void* context, SceneManagerEvent event) { } else if(event.event == SubmenuIndexExtraAction) { scene_manager_next_scene(nfc->scene_manager, NfcSceneExtraActions); consumed = true; - } else if(event.event == SubmenuIndexAddManualy) { + } else if(event.event == SubmenuIndexAddManually) { scene_manager_next_scene(nfc->scene_manager, NfcSceneSetType); consumed = true; } else if(event.event == SubmenuIndexDebug) { diff --git a/applications/main/nfc/views/dict_attack.c b/applications/main/nfc/views/dict_attack.c index 9ee9b1e15..a539e514b 100644 --- a/applications/main/nfc/views/dict_attack.c +++ b/applications/main/nfc/views/dict_attack.c @@ -32,7 +32,7 @@ static void dict_attack_draw_callback(Canvas* canvas, void* model) { DictAttackViewModel* m = model; if(m->state == DictAttackStateCardRemoved) { canvas_set_font(canvas, FontPrimary); - canvas_draw_str_aligned(canvas, 64, 4, AlignCenter, AlignTop, "Lost The Tag!"); + canvas_draw_str_aligned(canvas, 64, 4, AlignCenter, AlignTop, "Lost the tag!"); canvas_set_font(canvas, FontSecondary); elements_multiline_text_aligned( canvas, 64, 23, AlignCenter, AlignTop, "Make sure the tag is\npositioned correctly."); @@ -69,7 +69,7 @@ static void dict_attack_draw_callback(Canvas* canvas, void* model) { } elements_progress_bar_with_text(canvas, 0, 20, 128, dict_progress, draw_str); canvas_set_font(canvas, FontSecondary); - snprintf(draw_str, sizeof(draw_str), "Keys Found: %d/%d", m->keys_found, m->keys_total); + snprintf(draw_str, sizeof(draw_str), "Keys found: %d/%d", m->keys_found, m->keys_total); canvas_draw_str_aligned(canvas, 0, 33, AlignLeft, AlignTop, draw_str); snprintf( draw_str, sizeof(draw_str), "Sectors Read: %d/%d", m->sectors_read, m->sectors_total); diff --git a/applications/plugins/playlist/application.fam b/applications/main/sub_playlist/application.fam similarity index 60% rename from applications/plugins/playlist/application.fam rename to applications/main/sub_playlist/application.fam index 31acd8ea2..3a6de14da 100644 --- a/applications/plugins/playlist/application.fam +++ b/applications/main/sub_playlist/application.fam @@ -1,13 +1,12 @@ App( - appid="SubGHz_Playlist", + appid="sub_playlist", name="Sub-GHz Playlist", - apptype=FlipperAppType.EXTERNAL, + apptype=FlipperAppType.APP, entry_point="playlist_app", cdefines=["APP_PLAYLIST"], requires=["storage", "gui", "dialogs", "subghz"], stack_size=2 * 1024, - order=200, + order=12, fap_icon="playlist_10px.png", - fap_category="Tools", - fap_icon_assets="images", + icon="A_Sub_Playlist_14", ) diff --git a/applications/plugins/playlist/canvas_helper.c b/applications/main/sub_playlist/canvas_helper.c similarity index 100% rename from applications/plugins/playlist/canvas_helper.c rename to applications/main/sub_playlist/canvas_helper.c diff --git a/applications/plugins/playlist/canvas_helper.h b/applications/main/sub_playlist/canvas_helper.h similarity index 100% rename from applications/plugins/playlist/canvas_helper.h rename to applications/main/sub_playlist/canvas_helper.h diff --git a/applications/main/lfrfid/images/ButtonRight_4x7.png b/applications/main/sub_playlist/images/ButtonRight_4x7.png similarity index 100% rename from applications/main/lfrfid/images/ButtonRight_4x7.png rename to applications/main/sub_playlist/images/ButtonRight_4x7.png diff --git a/applications/main/unirfremix/images/sub1_10px.png b/applications/main/sub_playlist/images/sub1_10px.png similarity index 100% rename from applications/main/unirfremix/images/sub1_10px.png rename to applications/main/sub_playlist/images/sub1_10px.png diff --git a/applications/plugins/playlist/playlist.c b/applications/main/sub_playlist/playlist.c similarity index 99% rename from applications/plugins/playlist/playlist.c rename to applications/main/sub_playlist/playlist.c index ecf2f2817..4e996c062 100644 --- a/applications/plugins/playlist/playlist.c +++ b/applications/main/sub_playlist/playlist.c @@ -6,7 +6,7 @@ #include #include -#include +#include #include #include diff --git a/applications/main/sub_playlist/playlist_10px.png b/applications/main/sub_playlist/playlist_10px.png new file mode 100644 index 000000000..94ad885c3 Binary files /dev/null and b/applications/main/sub_playlist/playlist_10px.png differ diff --git a/applications/plugins/playlist/playlist_file.c b/applications/main/sub_playlist/playlist_file.c similarity index 100% rename from applications/plugins/playlist/playlist_file.c rename to applications/main/sub_playlist/playlist_file.c diff --git a/applications/plugins/playlist/playlist_file.h b/applications/main/sub_playlist/playlist_file.h similarity index 100% rename from applications/plugins/playlist/playlist_file.h rename to applications/main/sub_playlist/playlist_file.h diff --git a/applications/main/subghz/helpers/subghz_custom_event.h b/applications/main/subghz/helpers/subghz_custom_event.h index 350e68ee6..0559ac67e 100644 --- a/applications/main/subghz/helpers/subghz_custom_event.h +++ b/applications/main/subghz/helpers/subghz_custom_event.h @@ -50,6 +50,7 @@ typedef enum { SubGhzCustomEventSceneAnalyzerLock, SubGhzCustomEventSceneAnalyzerUnlock, SubGhzCustomEventSceneSettingLock, + SubGhzCustomEventSceneSettingError, SubGhzCustomEventSceneExit, SubGhzCustomEventSceneStay, diff --git a/applications/main/subghz/scenes/subghz_scene_config.h b/applications/main/subghz/scenes/subghz_scene_config.h index 1ad41a8b5..694683f52 100644 --- a/applications/main/subghz/scenes/subghz_scene_config.h +++ b/applications/main/subghz/scenes/subghz_scene_config.h @@ -32,3 +32,4 @@ ADD_SCENE(subghz, decode_raw, DecodeRAW) ADD_SCENE(subghz, delete_raw, DeleteRAW) ADD_SCENE(subghz, need_saving, NeedSaving) ADD_SCENE(subghz, rpc, Rpc) +ADD_SCENE(subghz, region_info, RegionInfo) diff --git a/applications/main/subghz/scenes/subghz_scene_read_raw.c b/applications/main/subghz/scenes/subghz_scene_read_raw.c index e81aac5ba..fea4b6aef 100644 --- a/applications/main/subghz/scenes/subghz_scene_read_raw.c +++ b/applications/main/subghz/scenes/subghz_scene_read_raw.c @@ -3,10 +3,9 @@ #include #include #include -#include #include -#define RAW_FILE_NAME "R_" +#define RAW_FILE_NAME "RAW_" #define TAG "SubGhzSceneReadRAW" #define RAW_THRESHOLD_RSSI_LOW_COUNT 10 @@ -295,28 +294,8 @@ bool subghz_scene_read_raw_on_event(void* context, SceneManagerEvent event) { FuriString* temp_str; temp_str = furi_string_alloc(); - - uint32_t time = LL_RTC_TIME_Get(RTC); // 0x00HHMMSS - uint32_t date = LL_RTC_DATE_Get(RTC); // 0xWWDDMMYY - char strings[1][25]; - snprintf( - strings[0], - sizeof(strings[0]), - "%s%.4d%.2d%.2d%.2d%.2d", - "R", - __LL_RTC_CONVERT_BCD2BIN((date >> 0) & 0xFF) + 2000 // YEAR - , - __LL_RTC_CONVERT_BCD2BIN((date >> 8) & 0xFF) // MONTH - , - __LL_RTC_CONVERT_BCD2BIN((date >> 16) & 0xFF) // DAY - , - __LL_RTC_CONVERT_BCD2BIN((time >> 16) & 0xFF) // HOUR - , - __LL_RTC_CONVERT_BCD2BIN((time >> 8) & 0xFF) // DAY - ); - furi_string_printf( - temp_str, "%s/%s%s", SUBGHZ_RAW_FOLDER, strings[0], SUBGHZ_APP_EXTENSION); + temp_str, "%s/%s%s", SUBGHZ_RAW_FOLDER, RAW_FILE_NAME, SUBGHZ_APP_EXTENSION); subghz_protocol_raw_gen_fff_data( subghz->txrx->fff_data, furi_string_get_cstr(temp_str)); furi_string_free(temp_str); @@ -337,29 +316,10 @@ bool subghz_scene_read_raw_on_event(void* context, SceneManagerEvent event) { if(subghz->txrx->rx_key_state != SubGhzRxKeyStateIDLE) { scene_manager_next_scene(subghz->scene_manager, SubGhzSceneNeedSaving); } else { - uint32_t time = LL_RTC_TIME_Get(RTC); // 0x00HHMMSS - uint32_t date = LL_RTC_DATE_Get(RTC); // 0xWWDDMMYY - char strings[1][25]; - snprintf( - strings[0], - sizeof(strings[0]), - "%s%.4d%.2d%.2d%.2d%.2d", - "R", - __LL_RTC_CONVERT_BCD2BIN((date >> 0) & 0xFF) + 2000 // YEAR - , - __LL_RTC_CONVERT_BCD2BIN((date >> 8) & 0xFF) // MONTH - , - __LL_RTC_CONVERT_BCD2BIN((date >> 16) & 0xFF) // DAY - , - __LL_RTC_CONVERT_BCD2BIN((time >> 16) & 0xFF) // HOUR - , - __LL_RTC_CONVERT_BCD2BIN((time >> 8) & 0xFF) // DAY - ); - //subghz_get_preset_name(subghz, subghz->error_str); subghz->txrx->raw_threshold_rssi_low_count = RAW_THRESHOLD_RSSI_LOW_COUNT; if(subghz_protocol_raw_save_to_file_init( (SubGhzProtocolDecoderRAW*)subghz->txrx->decoder_result, - strings[0], + RAW_FILE_NAME, subghz->txrx->preset)) { DOLPHIN_DEED(DolphinDeedSubGhzRawRec); if((subghz->txrx->txrx_state == SubGhzTxRxStateIDLE) || @@ -468,4 +428,4 @@ void subghz_scene_read_raw_on_exit(void* context) { #else subghz_receiver_set_filter(subghz->txrx->receiver, SubGhzProtocolFlag_Decodable); #endif -} +} \ No newline at end of file diff --git a/applications/main/subghz/scenes/subghz_scene_receiver_config.c b/applications/main/subghz/scenes/subghz_scene_receiver_config.c index 82debf4c0..c23d93496 100644 --- a/applications/main/subghz/scenes/subghz_scene_receiver_config.c +++ b/applications/main/subghz/scenes/subghz_scene_receiver_config.c @@ -45,6 +45,35 @@ const float raw_theshold_rssi_value[RAW_THRESHOLD_RSSI_COUNT] = { -40.0f, }; +#define BANDWIDTH_COUNT 16 +const char* const bandwidth_labels[BANDWIDTH_COUNT] = { + "58 kHz", + "68 kHz", + "81 kHz", + "102 kHz", + "116 kHz", + "135 kHz", + "162 kHz", + "203 kHz", + "232 kHz", + "270 kHz", + "325 kHz", + "406 kHz", + "464 kHz", + "541 kHz", + "650 kHz", + "812 kHz", +}; + +// Bandwidths values are ordered from F (58kHz) to 0 (812kHz) +#define BANDWIDTH_INDEX(value) ((uint8_t)15 - ((uint8_t)(value >> 4) & 0x0F)) + +#define MANCHESTER_FLAG_COUNT 2 +const char* const manchester_flag_text[MANCHESTER_FLAG_COUNT] = { + "OFF", + "ON", +}; + #define HOPPING_COUNT 2 const char* const hopping_text[HOPPING_COUNT] = { "OFF", @@ -99,6 +128,18 @@ const uint32_t speaker_value[SPEAKER_COUNT] = { SubGhzSpeakerStateEnable, }; +// Allow advanced edit only on specific preset +bool subghz_scene_receiver_config_can_edit_current_preset(SubGhz* subghz) { + SubGhzRadioPreset* preset = subghz->txrx->preset; + + bool preset_name_allow_edit = + !strcmp(furi_string_get_cstr(preset->name), ADVANCED_AM_PRESET_NAME) || + !strcmp(furi_string_get_cstr(preset->name), "CUSTOM"); + + return preset && preset_name_allow_edit && + subghz_preset_custom_is_ook_modulation(preset->data, preset->data_size); +} + uint8_t subghz_scene_receiver_config_next_frequency(const uint32_t value, void* context) { furi_assert(context); SubGhz* subghz = context; @@ -129,6 +170,52 @@ uint8_t subghz_scene_receiver_config_next_preset(const char* preset_name, void* return index; } +// Advanced settings of preset may change if preset was changed. +// In that case - update values +static void subghz_scene_receiver_config_update_advanced(SubGhz* subghz) { + uint8_t value_index; + + if(subghz->variable_item_bandwidth) { + value_index = BANDWIDTH_INDEX(subghz->txrx->raw_bandwidth); + variable_item_set_current_value_index(subghz->variable_item_bandwidth, value_index); + variable_item_set_current_value_text( + subghz->variable_item_bandwidth, bandwidth_labels[value_index]); + } + + if(subghz->variable_item_datarate) { + variable_item_set_current_value_index(subghz->variable_item_datarate, 0); + + char datarate_str[16] = {0}; + subghz_preset_custom_printf_datarate( + subghz->txrx->raw_datarate, datarate_str, sizeof(datarate_str)); + variable_item_set_current_value_text(subghz->variable_item_datarate, datarate_str); + } + + if(subghz->variable_item_manchester) { + value_index = subghz->txrx->raw_manchester_enabled ? 1 : 0; + + variable_item_set_current_value_index(subghz->variable_item_manchester, value_index); + variable_item_set_current_value_text( + subghz->variable_item_manchester, manchester_flag_text[value_index]); + } +} + +// Apply advanced configuration to advanced am preset +static void subghz_scene_receiver_config_apply_advanced(SubGhz* subghz) { + if(subghz_scene_receiver_config_can_edit_current_preset(subghz)) { + SubGhzRadioPreset* preset = subghz->txrx->preset; + + subghz_preset_custom_set_bandwidth( + preset->data, preset->data_size, subghz->txrx->raw_bandwidth); + + subghz_preset_custom_set_machester_enable( + preset->data, preset->data_size, subghz->txrx->raw_manchester_enabled); + + subghz_preset_custom_set_datarate( + preset->data, preset->data_size, subghz->txrx->raw_datarate); + } +} + uint8_t subghz_scene_receiver_config_hopper_value_index( const uint32_t value, const uint32_t values[], @@ -214,6 +301,8 @@ static void subghz_scene_receiver_config_set_preset(VariableItem* item) { subghz->txrx->preset->frequency, subghz_setting_get_preset_data(subghz->setting, index), subghz_setting_get_preset_data_size(subghz->setting, index)); + + subghz_scene_receiver_config_update_advanced(subghz); } static void subghz_scene_receiver_config_set_rssi_threshold(VariableItem* item) { @@ -307,6 +396,107 @@ static void subghz_scene_receiver_config_set_raw_threshold_rssi(VariableItem* it subghz->txrx->raw_threshold_rssi = raw_theshold_rssi_value[index]; } +static void subghz_scene_receiver_config_set_raw_ook_bandwidth(VariableItem* item) { + SubGhz* subghz = variable_item_get_context(item); + if(subghz_scene_receiver_config_can_edit_current_preset(subghz)) { + // update bandwidth value from selected index + uint8_t index = variable_item_get_current_value_index(item); + subghz->txrx->raw_bandwidth = subghz_preset_custom_bandwidth_values[index]; + + subghz_scene_receiver_config_update_advanced(subghz); + } else { + furi_string_set( + subghz->error_str, "Read-only\nsetting!\nUse '" ADVANCED_AM_PRESET_NAME "'\npreset."); + view_dispatcher_send_custom_event( + subghz->view_dispatcher, SubGhzCustomEventSceneSettingError); + } +} + +static void subghz_scene_receiver_config_set_manchester_flag(VariableItem* item) { + SubGhz* subghz = variable_item_get_context(item); + if(subghz_scene_receiver_config_can_edit_current_preset(subghz)) { + // update enable flag from view + uint8_t index = variable_item_get_current_value_index(item); + subghz->txrx->raw_manchester_enabled = index == 0 ? false : true; + + subghz_scene_receiver_config_update_advanced(subghz); + } else { + furi_string_set( + subghz->error_str, "Read-only\nsetting!\nUse '" ADVANCED_AM_PRESET_NAME "'\npreset."); + view_dispatcher_send_custom_event( + subghz->view_dispatcher, SubGhzCustomEventSceneSettingError); + } +} + +static void subghz_scene_receiver_config_datarate_input_callback(void* context) { + furi_assert(context); + SubGhz* subghz = context; + + float value = atoff(subghz->datarate_input_str); + if(value != 0 && value > 0) { + subghz->txrx->raw_datarate = value; + subghz_scene_receiver_config_update_advanced(subghz); + } + + // show list view + view_dispatcher_switch_to_view(subghz->view_dispatcher, SubGhzViewIdVariableItemList); +} + +static bool subghz_scene_receiver_config_datarate_input_validate( + const char* text, + FuriString* error, + void* context) { + UNUSED(context); + + float value = atoff(text); + if(value == 0) { + furi_string_printf(error, "Cannot parse\r\nvalue"); + } else if(value < 0) { + furi_string_printf(error, "Value\r\nshould be\r\ngreater\r\nthan 0"); + } else { + return true; + } + + return false; +} + +static void subghz_scene_receiver_config_show_datarate_input(SubGhz* subghz) { + TextInput* text_input = subghz->text_input; + + snprintf( + subghz->datarate_input_str, + sizeof(subghz->datarate_input_str), + "%.2f", + (double)subghz->txrx->raw_datarate); + + text_input_set_header_text(text_input, "Datarate bauds (not kBauds)"); + text_input_set_result_callback( + text_input, + subghz_scene_receiver_config_datarate_input_callback, + subghz, + subghz->datarate_input_str, + sizeof(subghz->datarate_input_str), + false); + + text_input_set_validator( + text_input, subghz_scene_receiver_config_datarate_input_validate, NULL); + view_dispatcher_switch_to_view(subghz->view_dispatcher, SubGhzViewIdTextInput); +} + +static void subghz_scene_receiver_config_set_datarate(VariableItem* item) { + SubGhz* subghz = variable_item_get_context(item); + if(subghz_scene_receiver_config_can_edit_current_preset(subghz)) { + // reset value index in order to show '>' symbol always + variable_item_set_current_value_index(item, 0); + subghz_scene_receiver_config_show_datarate_input(subghz); + } else { + furi_string_set( + subghz->error_str, "Read-only\nsetting!\nUse '" ADVANCED_AM_PRESET_NAME "'\npreset."); + view_dispatcher_send_custom_event( + subghz->view_dispatcher, SubGhzCustomEventSceneSettingError); + } +} + static void subghz_scene_receiver_config_var_list_enter_callback(void* context, uint32_t index) { furi_assert(context); SubGhz* subghz = context; @@ -437,6 +627,33 @@ void subghz_scene_receiver_config_on_enter(void* context) { subghz->txrx->raw_threshold_rssi, raw_theshold_rssi_value, RAW_THRESHOLD_RSSI_COUNT); variable_item_set_current_value_index(item, value_index); variable_item_set_current_value_text(item, raw_theshold_rssi_text[value_index]); + + // Advanced MODEM settings. RW only for ADVANCED_AM_PRESET_NAME + // Bandwidth + subghz->variable_item_bandwidth = variable_item_list_add( + subghz->variable_item_list, + "Bandwidth:", + BANDWIDTH_COUNT, + subghz_scene_receiver_config_set_raw_ook_bandwidth, + subghz); + + // Data rate (editable via OK click) + subghz->variable_item_datarate = variable_item_list_add( + subghz->variable_item_list, + "Data rate:", + 2, + subghz_scene_receiver_config_set_datarate, + subghz); + + // Manchester codec flag + subghz->variable_item_manchester = variable_item_list_add( + subghz->variable_item_list, + "Manch. Enc.:", + MANCHESTER_FLAG_COUNT, + subghz_scene_receiver_config_set_manchester_flag, + subghz); + + subghz_scene_receiver_config_update_advanced(subghz); } view_dispatcher_switch_to_view(subghz->view_dispatcher, SubGhzViewIdVariableItemList); } @@ -450,6 +667,11 @@ bool subghz_scene_receiver_config_on_event(void* context, SceneManagerEvent even subghz->lock = SubGhzLockOn; scene_manager_previous_scene(subghz->scene_manager); consumed = true; + } else if(event.event == SubGhzCustomEventSceneSettingError) { + scene_manager_next_scene(subghz->scene_manager, SubGhzSceneShowErrorSub); + scene_manager_set_scene_state( + subghz->scene_manager, SubGhzSceneShowErrorSub, event.event); + consumed = true; } } return consumed; @@ -457,6 +679,16 @@ bool subghz_scene_receiver_config_on_event(void* context, SceneManagerEvent even void subghz_scene_receiver_config_on_exit(void* context) { SubGhz* subghz = context; + + // reset UI variable list items (next scene may be not RAW config) + subghz->variable_item_bandwidth = NULL; + subghz->variable_item_datarate = NULL; + subghz->variable_item_manchester = NULL; + text_input_set_validator(subghz->text_input, NULL, NULL); + + // apply advanced preset variables (if applicable) + subghz_scene_receiver_config_apply_advanced(subghz); + variable_item_list_set_selected_item(subghz->variable_item_list, 0); variable_item_list_reset(subghz->variable_item_list); subghz_last_settings_save(subghz->last_settings); diff --git a/applications/main/subghz/scenes/subghz_scene_region_info.c b/applications/main/subghz/scenes/subghz_scene_region_info.c new file mode 100644 index 000000000..82486314d --- /dev/null +++ b/applications/main/subghz/scenes/subghz_scene_region_info.c @@ -0,0 +1,39 @@ +#include "../subghz_i.h" + +#include + +void subghz_scene_region_info_on_enter(void* context) { + SubGhz* subghz = context; + const FuriHalRegion* const region = furi_hal_region_get(); + FuriString* buffer; + buffer = furi_string_alloc(); + if(region) { + furi_string_cat_printf(buffer, "Region: %s, bands:\n", region->country_code); + for(uint16_t i = 0; i < region->bands_count; ++i) { + furi_string_cat_printf( + buffer, + " %lu-%lu kHz\n", + region->bands[i].start / 1000, + region->bands[i].end / 1000); + } + } else { + furi_string_cat_printf(buffer, "Region: N/A\n"); + } + + widget_add_string_multiline_element( + subghz->widget, 0, 0, AlignLeft, AlignTop, FontSecondary, furi_string_get_cstr(buffer)); + + furi_string_free(buffer); + view_dispatcher_switch_to_view(subghz->view_dispatcher, SubGhzViewIdWidget); +} + +bool subghz_scene_region_info_on_event(void* context, SceneManagerEvent event) { + UNUSED(context); + UNUSED(event); + return false; +} + +void subghz_scene_region_info_on_exit(void* context) { + SubGhz* subghz = context; + widget_reset(subghz->widget); +} diff --git a/applications/main/subghz/scenes/subghz_scene_save_name.c b/applications/main/subghz/scenes/subghz_scene_save_name.c index 1a85501de..4f37ebc0b 100644 --- a/applications/main/subghz/scenes/subghz_scene_save_name.c +++ b/applications/main/subghz/scenes/subghz_scene_save_name.c @@ -19,7 +19,7 @@ void subghz_scene_save_name_get_timefilename(FuriString* name) { furi_hal_rtc_get_datetime(&datetime); furi_string_printf( name, - "R_%.4d.%.2d.%.2d-%.2d.%.2d.%.2d", + "RAW_%.4d%.2d%.2d-%.2d%.2d%.2d", datetime.year, datetime.month, datetime.day, diff --git a/applications/main/subghz/scenes/subghz_scene_show_error_sub.c b/applications/main/subghz/scenes/subghz_scene_show_error_sub.c index 113e7ae74..2943c764a 100644 --- a/applications/main/subghz/scenes/subghz_scene_show_error_sub.c +++ b/applications/main/subghz/scenes/subghz_scene_show_error_sub.c @@ -26,8 +26,16 @@ bool subghz_scene_show_error_sub_on_event(void* context, SceneManagerEvent event SubGhz* subghz = context; if(event.type == SceneManagerEventTypeCustom) { if(event.event == SubGhzCustomEventSceneShowErrorSub) { - scene_manager_search_and_switch_to_previous_scene( - subghz->scene_manager, SubGhzSceneStart); + if(scene_manager_get_scene_state(subghz->scene_manager, SubGhzSceneShowErrorSub) == + SubGhzCustomEventSceneSettingError) { + scene_manager_set_scene_state( + subghz->scene_manager, SubGhzSceneReadRAW, SubGhzCustomEventManagerSet); + scene_manager_search_and_switch_to_previous_scene( + subghz->scene_manager, SubGhzSceneReceiverConfig); + } else { + scene_manager_search_and_switch_to_previous_scene( + subghz->scene_manager, SubGhzSceneStart); + } return true; } } diff --git a/applications/main/subghz/scenes/subghz_scene_start.c b/applications/main/subghz/scenes/subghz_scene_start.c index 03e2f9b06..1177b6454 100644 --- a/applications/main/subghz/scenes/subghz_scene_start.c +++ b/applications/main/subghz/scenes/subghz_scene_start.c @@ -7,11 +7,31 @@ enum SubmenuIndex { SubmenuIndexRead = 10, SubmenuIndexSaved, SubmenuIndexTest, - SubmenuIndexAddManualy, + SubmenuIndexAddManually, SubmenuIndexFrequencyAnalyzer, SubmenuIndexReadRAW, + SubmenuIndexShowRegionInfo }; +void subghz_scene_start_remove_advanced_preset(SubGhz* subghz) { + // delete operation is harmless + subghz_setting_delete_custom_preset(subghz->setting, ADVANCED_AM_PRESET_NAME); +} + +void subghz_scene_start_load_advanced_preset(SubGhz* subghz) { + for(uint8_t i = 0; i < subghz_setting_get_preset_count(subghz->setting); i++) { + if(!strcmp(subghz_setting_get_preset_name(subghz->setting, i), ADVANCED_AM_PRESET_NAME)) { + return; // already exists + } + } + + // Load custom advanced AM preset with configurable CFGMDM settings + FlipperFormat* advanced_am_preset = subghz_preset_custom_advanced_am_preset_alloc(); + subghz_setting_load_custom_preset( + subghz->setting, ADVANCED_AM_PRESET_NAME, advanced_am_preset); + flipper_format_free(advanced_am_preset); +} + void subghz_scene_start_submenu_callback(void* context, uint32_t index) { SubGhz* subghz = context; view_dispatcher_send_custom_event(subghz->view_dispatcher, index); @@ -45,7 +65,7 @@ void subghz_scene_start_on_enter(void* context) { submenu_add_item( subghz->submenu, "Add Manually", - SubmenuIndexAddManualy, + SubmenuIndexAddManually, subghz_scene_start_submenu_callback, subghz); submenu_add_item( @@ -54,6 +74,12 @@ void subghz_scene_start_on_enter(void* context) { SubmenuIndexFrequencyAnalyzer, subghz_scene_start_submenu_callback, subghz); + submenu_add_item( + subghz->submenu, + "Region Information", + SubmenuIndexShowRegionInfo, + subghz_scene_start_submenu_callback, + subghz); if(furi_hal_rtc_is_flag_set(FuriHalRtcFlagDebug)) { submenu_add_item( subghz->submenu, "Test", SubmenuIndexTest, subghz_scene_start_submenu_callback, subghz); @@ -73,12 +99,14 @@ bool subghz_scene_start_on_event(void* context, SceneManagerEvent event) { return true; } else if(event.type == SceneManagerEventTypeCustom) { if(event.event == SubmenuIndexReadRAW) { + subghz_scene_start_load_advanced_preset(subghz); scene_manager_set_scene_state( subghz->scene_manager, SubGhzSceneStart, SubmenuIndexReadRAW); subghz->txrx->rx_key_state = SubGhzRxKeyStateIDLE; scene_manager_next_scene(subghz->scene_manager, SubGhzSceneReadRAW); return true; } else if(event.event == SubmenuIndexRead) { + subghz_scene_start_remove_advanced_preset(subghz); scene_manager_set_scene_state( subghz->scene_manager, SubGhzSceneStart, SubmenuIndexRead); scene_manager_next_scene(subghz->scene_manager, SubGhzSceneReceiver); @@ -88,9 +116,9 @@ bool subghz_scene_start_on_event(void* context, SceneManagerEvent event) { subghz->scene_manager, SubGhzSceneStart, SubmenuIndexSaved); scene_manager_next_scene(subghz->scene_manager, SubGhzSceneSaved); return true; - } else if(event.event == SubmenuIndexAddManualy) { + } else if(event.event == SubmenuIndexAddManually) { scene_manager_set_scene_state( - subghz->scene_manager, SubGhzSceneStart, SubmenuIndexAddManualy); + subghz->scene_manager, SubGhzSceneStart, SubmenuIndexAddManually); scene_manager_next_scene(subghz->scene_manager, SubGhzSceneSetType); return true; } else if(event.event == SubmenuIndexFrequencyAnalyzer) { @@ -105,6 +133,11 @@ bool subghz_scene_start_on_event(void* context, SceneManagerEvent event) { subghz->scene_manager, SubGhzSceneStart, SubmenuIndexTest); scene_manager_next_scene(subghz->scene_manager, SubGhzSceneTest); return true; + } else if(event.event == SubmenuIndexShowRegionInfo) { + scene_manager_set_scene_state( + subghz->scene_manager, SubGhzSceneStart, SubmenuIndexShowRegionInfo); + scene_manager_next_scene(subghz->scene_manager, SubGhzSceneRegionInfo); + return true; } } return false; diff --git a/applications/main/subghz/subghz.c b/applications/main/subghz/subghz.c index a37ed1cd4..c39c35679 100644 --- a/applications/main/subghz/subghz.c +++ b/applications/main/subghz/subghz.c @@ -182,7 +182,8 @@ SubGhz* subghz_alloc(bool alloc_for_tx_only) { //init setting subghz->setting = subghz_setting_alloc(); - subghz_setting_load(subghz->setting, EXT_PATH("subghz/assets/setting_user.txt")); + + subghz_setting_load(subghz->setting, EXT_PATH("subghz/assets/setting_user")); // Custom Presets load without using config file diff --git a/applications/main/subghz/subghz_i.c b/applications/main/subghz/subghz_i.c index 77ee7c950..bac25759a 100644 --- a/applications/main/subghz/subghz_i.c +++ b/applications/main/subghz/subghz_i.c @@ -30,6 +30,12 @@ void subghz_preset_init( subghz->txrx->preset->frequency = frequency; subghz->txrx->preset->data = preset_data; subghz->txrx->preset->data_size = preset_data_size; + + subghz->txrx->raw_bandwidth = + subghz_preset_custom_get_bandwidth(preset_data, preset_data_size); + subghz->txrx->raw_manchester_enabled = + subghz_preset_custom_get_machester_enable(preset_data, preset_data_size); + subghz->txrx->raw_datarate = subghz_preset_custom_get_datarate(preset_data, preset_data_size); } bool subghz_set_preset(SubGhz* subghz, const char* preset) { diff --git a/applications/main/subghz/subghz_i.h b/applications/main/subghz/subghz_i.h index 3eac0ea74..a6c96cb69 100644 --- a/applications/main/subghz/subghz_i.h +++ b/applications/main/subghz/subghz_i.h @@ -3,6 +3,7 @@ #include "helpers/subghz_types.h" #include "helpers/subghz_error_type.h" #include +#include #include "subghz.h" #include "views/receiver.h" #include "views/transmitter.h" @@ -78,6 +79,13 @@ struct SubGhzTxRx { float raw_threshold_rssi; uint8_t raw_threshold_rssi_low_count; + + // one of the 16 possible bandwidth values + uint8_t raw_bandwidth; + // datarate in bauds + float raw_datarate; + // flag if manchester encoding/decoding enabled + bool raw_manchester_enabled; }; typedef struct SubGhzTxRx SubGhzTxRx; @@ -106,6 +114,13 @@ struct SubGhz { SubGhzViewTransmitter* subghz_transmitter; VariableItemList* variable_item_list; + // Advanced config items + VariableItem* variable_item_bandwidth; // specific config list view item: bandwidth + VariableItem* variable_item_datarate; // specific config list view item: data rate + VariableItem* variable_item_manchester; // specific config list view item: manchester enc flag + // Advanced config strings + char datarate_input_str[16]; + SubGhzFrequencyAnalyzer* subghz_frequency_analyzer; SubGhzReadRAW* subghz_read_raw; bool raw_send_only; @@ -161,7 +176,6 @@ void subghz_file_name_clear(SubGhz* subghz); bool subghz_path_is_file(FuriString* path); uint32_t subghz_random_serial(void); void subghz_hopper_update(SubGhz* subghz); - void subghz_speaker_on(SubGhz* subghz); void subghz_speaker_off(SubGhz* subghz); void subghz_speaker_mute(SubGhz* subghz); diff --git a/applications/main/u2f/U2FIcon.png b/applications/main/u2f/U2FIcon.png deleted file mode 100644 index 81341f1ee..000000000 Binary files a/applications/main/u2f/U2FIcon.png and /dev/null differ diff --git a/applications/main/u2f/application.fam b/applications/main/u2f/application.fam index d2e695a3f..82010ffb4 100644 --- a/applications/main/u2f/application.fam +++ b/applications/main/u2f/application.fam @@ -1,7 +1,7 @@ App( appid="u2f", name="U2F", - apptype=FlipperAppType.EXTERNAL, + apptype=FlipperAppType.APP, entry_point="u2f_app", cdefines=["APP_U2F"], requires=[ @@ -9,10 +9,7 @@ App( "dialogs", ], stack_size=2 * 1024, - # icon="A_U2F_14", + icon="A_U2F_14", order=80, - fap_icon="U2FIcon.png", - fap_category="Main", - fap_icon_assets="images", fap_libs=["assets"], ) diff --git a/applications/main/u2f/images/ActiveConnection_50x64.png b/applications/main/u2f/images/ActiveConnection_50x64.png deleted file mode 100644 index 1d7686ddd..000000000 Binary files a/applications/main/u2f/images/ActiveConnection_50x64.png and /dev/null differ diff --git a/applications/main/u2f/images/Auth_62x31.png b/applications/main/u2f/images/Auth_62x31.png deleted file mode 100644 index dd220bb65..000000000 Binary files a/applications/main/u2f/images/Auth_62x31.png and /dev/null differ diff --git a/applications/main/u2f/images/Auth_62x31_sfw.png b/applications/main/u2f/images/Auth_62x31_sfw.png deleted file mode 100644 index 40f094ac9..000000000 Binary files a/applications/main/u2f/images/Auth_62x31_sfw.png and /dev/null differ diff --git a/applications/main/u2f/images/Connect_me_62x31.png b/applications/main/u2f/images/Connect_me_62x31.png deleted file mode 100644 index 495e8ab55..000000000 Binary files a/applications/main/u2f/images/Connect_me_62x31.png and /dev/null differ diff --git a/applications/main/u2f/images/Connect_me_62x31_sfw.png b/applications/main/u2f/images/Connect_me_62x31_sfw.png deleted file mode 100644 index 68c48c0e6..000000000 Binary files a/applications/main/u2f/images/Connect_me_62x31_sfw.png and /dev/null differ diff --git a/applications/main/u2f/images/Connected_62x31.png b/applications/main/u2f/images/Connected_62x31.png deleted file mode 100644 index bc1010ca9..000000000 Binary files a/applications/main/u2f/images/Connected_62x31.png and /dev/null differ diff --git a/applications/main/u2f/images/Connected_62x31_sfw.png b/applications/main/u2f/images/Connected_62x31_sfw.png deleted file mode 100644 index eeaf660b1..000000000 Binary files a/applications/main/u2f/images/Connected_62x31_sfw.png and /dev/null differ diff --git a/applications/main/u2f/images/Drive_112x35.png b/applications/main/u2f/images/Drive_112x35.png deleted file mode 100644 index 6f7b9c834..000000000 Binary files a/applications/main/u2f/images/Drive_112x35.png and /dev/null differ diff --git a/applications/main/u2f/images/Error_62x31.png b/applications/main/u2f/images/Error_62x31.png deleted file mode 100644 index b78e010b7..000000000 Binary files a/applications/main/u2f/images/Error_62x31.png and /dev/null differ diff --git a/applications/main/u2f/images/Error_62x31_sfw.png b/applications/main/u2f/images/Error_62x31_sfw.png deleted file mode 100644 index bb280e751..000000000 Binary files a/applications/main/u2f/images/Error_62x31_sfw.png and /dev/null differ diff --git a/applications/main/u2f/images/SDQuestion_35x43.png b/applications/main/u2f/images/SDQuestion_35x43.png deleted file mode 100644 index 9b9c9a58e..000000000 Binary files a/applications/main/u2f/images/SDQuestion_35x43.png and /dev/null differ diff --git a/applications/main/u2f/u2f_app_i.h b/applications/main/u2f/u2f_app_i.h index c7bac40b4..2896684c3 100644 --- a/applications/main/u2f/u2f_app_i.h +++ b/applications/main/u2f/u2f_app_i.h @@ -4,7 +4,7 @@ #include "scenes/u2f_scene.h" #include -#include +#include #include #include #include diff --git a/applications/main/u2f/views/u2f_view.c b/applications/main/u2f/views/u2f_view.c index fb5eaac1f..af55ea7ce 100644 --- a/applications/main/u2f/views/u2f_view.c +++ b/applications/main/u2f/views/u2f_view.c @@ -1,6 +1,6 @@ #include "u2f_view.h" #include -#include +#include #include "../../../settings/desktop_settings/desktop_settings_app.h" struct U2fView { diff --git a/applications/main/u2f_loader/application.fam b/applications/main/u2f_loader/application.fam deleted file mode 100644 index 3da5bf205..000000000 --- a/applications/main/u2f_loader/application.fam +++ /dev/null @@ -1,14 +0,0 @@ -App( - appid="u2f_loader", - name="U2F", - apptype=FlipperAppType.APP, - entry_point="u2f_loader_app", - requires=[ - "gui", - "dialogs", - ], - stack_size=int(2 * 1024), - icon="A_U2F_14", - order=80, - link="/ext/apps/Main/u2f.fap", -) diff --git a/applications/main/u2f_loader/u2f_loader_app.c b/applications/main/u2f_loader/u2f_loader_app.c deleted file mode 100644 index 186d2489b..000000000 --- a/applications/main/u2f_loader/u2f_loader_app.c +++ /dev/null @@ -1,9 +0,0 @@ -#include - -#define TAG "u2f_loader_app" - -int32_t u2f_loader_app(void* p) { - UNUSED(p); - - return 0; -} \ No newline at end of file diff --git a/applications/main/unirfremix/application.fam b/applications/main/unirfremix/application.fam index 73c063197..fd3553947 100644 --- a/applications/main/unirfremix/application.fam +++ b/applications/main/unirfremix/application.fam @@ -1,14 +1,14 @@ App( - appid="SubGHz_Remote", + appid="unirfremix", name="Sub-GHz Remote", - apptype=FlipperAppType.EXTERNAL, + apptype=FlipperAppType.APP, entry_point="unirfremix_app", cdefines=["APP_UNIRFREMIX"], - requires=["storage", "gui", "dialogs", "subghz"], + requires=[ + "gui", + "dialogs", + ], icon="A_UniRFRemix_14", stack_size=4 * 1024, order=11, - fap_icon="unirfIcon.png", - fap_category="Main", - fap_icon_assets="images", ) diff --git a/applications/main/unirfremix/images/ButtonDown_7x4.png b/applications/main/unirfremix/images/ButtonDown_7x4.png deleted file mode 100644 index 2954bb6a6..000000000 Binary files a/applications/main/unirfremix/images/ButtonDown_7x4.png and /dev/null differ diff --git a/applications/main/unirfremix/images/ButtonLeft_4x7.png b/applications/main/unirfremix/images/ButtonLeft_4x7.png deleted file mode 100644 index 0b4655d43..000000000 Binary files a/applications/main/unirfremix/images/ButtonLeft_4x7.png and /dev/null differ diff --git a/applications/main/unirfremix/images/ButtonRight_4x7.png b/applications/main/unirfremix/images/ButtonRight_4x7.png deleted file mode 100644 index 8e1c74c1c..000000000 Binary files a/applications/main/unirfremix/images/ButtonRight_4x7.png and /dev/null differ diff --git a/applications/main/unirfremix/images/ButtonUp_7x4.png b/applications/main/unirfremix/images/ButtonUp_7x4.png deleted file mode 100644 index 1be79328b..000000000 Binary files a/applications/main/unirfremix/images/ButtonUp_7x4.png and /dev/null differ diff --git a/applications/main/unirfremix/images/Ok_btn_9x9.png b/applications/main/unirfremix/images/Ok_btn_9x9.png deleted file mode 100644 index 9a1539da2..000000000 Binary files a/applications/main/unirfremix/images/Ok_btn_9x9.png and /dev/null differ diff --git a/applications/main/unirfremix/images/Pin_arrow_down_7x9.png b/applications/main/unirfremix/images/Pin_arrow_down_7x9.png deleted file mode 100644 index 9687397af..000000000 Binary files a/applications/main/unirfremix/images/Pin_arrow_down_7x9.png and /dev/null differ diff --git a/applications/main/unirfremix/images/Pin_arrow_left_9x7.png b/applications/main/unirfremix/images/Pin_arrow_left_9x7.png deleted file mode 100644 index fb4ded78f..000000000 Binary files a/applications/main/unirfremix/images/Pin_arrow_left_9x7.png and /dev/null differ diff --git a/applications/main/unirfremix/images/Pin_arrow_right_9x7.png b/applications/main/unirfremix/images/Pin_arrow_right_9x7.png deleted file mode 100644 index 97648d176..000000000 Binary files a/applications/main/unirfremix/images/Pin_arrow_right_9x7.png and /dev/null differ diff --git a/applications/main/unirfremix/images/Pin_arrow_up_7x9.png b/applications/main/unirfremix/images/Pin_arrow_up_7x9.png deleted file mode 100644 index a91a6fd5e..000000000 Binary files a/applications/main/unirfremix/images/Pin_arrow_up_7x9.png and /dev/null differ diff --git a/applications/main/unirfremix/images/Pin_cell_13x13.png b/applications/main/unirfremix/images/Pin_cell_13x13.png deleted file mode 100644 index 1b1ff0c2f..000000000 Binary files a/applications/main/unirfremix/images/Pin_cell_13x13.png and /dev/null differ diff --git a/applications/main/unirfremix/images/Pin_star_7x7.png b/applications/main/unirfremix/images/Pin_star_7x7.png deleted file mode 100644 index 42fdea86e..000000000 Binary files a/applications/main/unirfremix/images/Pin_star_7x7.png and /dev/null differ diff --git a/applications/main/unirfremix/images/back_10px.png b/applications/main/unirfremix/images/back_10px.png deleted file mode 100644 index f9c615a99..000000000 Binary files a/applications/main/unirfremix/images/back_10px.png and /dev/null differ diff --git a/applications/main/unirfremix/unirfIcon.png b/applications/main/unirfremix/unirfIcon.png deleted file mode 100644 index ae1417827..000000000 Binary files a/applications/main/unirfremix/unirfIcon.png and /dev/null differ diff --git a/applications/main/unirfremix/unirfremix_app.c b/applications/main/unirfremix/unirfremix_app.c index c9391ea7c..2c0b68ae7 100644 --- a/applications/main/unirfremix/unirfremix_app.c +++ b/applications/main/unirfremix/unirfremix_app.c @@ -8,6 +8,8 @@ #include #include +#include + #include #include #include @@ -18,33 +20,11 @@ #include #include -#include - #define UNIRFMAP_FOLDER "/ext/subghz/unirf" #define UNIRFMAP_EXTENSION ".txt" #define TAG "UniRF Remix" -static const char* mfname; - -static int kl_type; - -void keeloq_reset_mfname() { - mfname = ""; -} - -void keeloq_reset_kl_type() { - kl_type = 0; -} - -void star_line_reset_mfname() { - mfname = ""; -} - -void star_line_reset_kl_type() { - kl_type = 0; -} - typedef struct { uint32_t frequency; FuriString* name; @@ -707,8 +687,6 @@ static void render_callback(Canvas* canvas, void* ctx) { canvas_draw_icon(canvas, 113, 15, &I_Pin_cell_13x13); canvas_draw_icon(canvas, 116, 18, &I_Pin_star_7x7); break; - default: - break; } //Repeat indicator @@ -728,7 +706,7 @@ static void input_callback(InputEvent* input_event, void* ctx) { void unirfremix_subghz_alloc(UniRFRemix* app) { // load subghz presets app->setting = subghz_setting_alloc(); - subghz_setting_load(app->setting, EXT_PATH("subghz/assets/setting_user.txt")); + subghz_setting_load(app->setting, EXT_PATH("subghz/assets/setting_user")); // load mfcodes app->environment = subghz_environment_alloc(); @@ -1004,8 +982,6 @@ int32_t unirfremix_app(void* p) { case 5: app->send_status_c = 5; break; - default: - break; } app->processing = 2; @@ -1069,4 +1045,4 @@ int32_t unirfremix_app(void* p) { unirfremix_free(app, true); return 0; -} \ No newline at end of file +} diff --git a/applications/main/unirfremix_loader/application.fam b/applications/main/unirfremix_loader/application.fam deleted file mode 100644 index 070bc9cf7..000000000 --- a/applications/main/unirfremix_loader/application.fam +++ /dev/null @@ -1,11 +0,0 @@ -App( - appid="SubGHz_Remote_loader", - name="Sub-GHz Remote", - apptype=FlipperAppType.APP, - entry_point="unirfremix_loader_app", - requires=["gui"], - stack_size=int(1.5 * 1024), - icon="A_UniRFRemix_14", - order=11, - link="/ext/apps/Main/SubGHz_Remote.fap", -) diff --git a/applications/main/unirfremix_loader/unirfremix_loader_app.c b/applications/main/unirfremix_loader/unirfremix_loader_app.c deleted file mode 100644 index 1acfe41fb..000000000 --- a/applications/main/unirfremix_loader/unirfremix_loader_app.c +++ /dev/null @@ -1,9 +0,0 @@ -#include - -#define TAG "unirfremix_loader_app" - -int32_t unirfremix_loader_app(void* p) { - UNUSED(p); - - return 0; -} \ No newline at end of file diff --git a/applications/plugins/clock/clock_app.c b/applications/plugins/clock/clock_app.c deleted file mode 100644 index 9d87ff950..000000000 --- a/applications/plugins/clock/clock_app.c +++ /dev/null @@ -1,136 +0,0 @@ -#include -#include - -#include -#include - -typedef enum { - ClockEventTypeTick, - ClockEventTypeKey, -} ClockEventType; - -typedef struct { - ClockEventType type; - InputEvent input; -} ClockEvent; - -typedef struct { - FuriString* buffer; - FuriHalRtcDateTime datetime; - LocaleTimeFormat timeformat; - LocaleDateFormat dateformat; -} ClockData; - -typedef struct { - FuriMutex* mutex; - FuriMessageQueue* queue; - ClockData* data; -} Clock; - -static void clock_input_callback(InputEvent* input_event, FuriMessageQueue* queue) { - furi_assert(queue); - ClockEvent event = {.type = ClockEventTypeKey, .input = *input_event}; - furi_message_queue_put(queue, &event, FuriWaitForever); -} - -static void clock_render_callback(Canvas* canvas, void* ctx) { - Clock* clock = ctx; - if(furi_mutex_acquire(clock->mutex, 200) != FuriStatusOk) { - return; - } - - ClockData* data = clock->data; - - canvas_set_font(canvas, FontBigNumbers); - locale_format_time(data->buffer, &data->datetime, data->timeformat, true); - canvas_draw_str_aligned( - canvas, 64, 28, AlignCenter, AlignCenter, furi_string_get_cstr(data->buffer)); - - // Special case to cover missing glyphs in FontBigNumbers - if(data->timeformat == LocaleTimeFormat12h) { - size_t time_width = canvas_string_width(canvas, furi_string_get_cstr(data->buffer)); - canvas_set_font(canvas, FontPrimary); - canvas_draw_str_aligned( - canvas, - 64 + (time_width / 2) - 10, - 31, - AlignLeft, - AlignCenter, - (data->datetime.hour > 12) ? "PM" : "AM"); - } - - canvas_set_font(canvas, FontSecondary); - locale_format_date(data->buffer, &data->datetime, data->dateformat, "/"); - canvas_draw_str_aligned( - canvas, 64, 42, AlignCenter, AlignTop, furi_string_get_cstr(data->buffer)); - - furi_mutex_release(clock->mutex); -} - -static void clock_tick(void* ctx) { - furi_assert(ctx); - FuriMessageQueue* queue = ctx; - ClockEvent event = {.type = ClockEventTypeTick}; - // It's OK to loose this event if system overloaded - furi_message_queue_put(queue, &event, 0); -} - -int32_t clock_app(void* p) { - UNUSED(p); - Clock* clock = malloc(sizeof(Clock)); - clock->data = malloc(sizeof(ClockData)); - clock->data->buffer = furi_string_alloc(); - - clock->queue = furi_message_queue_alloc(8, sizeof(ClockEvent)); - clock->mutex = furi_mutex_alloc(FuriMutexTypeNormal); - - furi_hal_rtc_get_datetime(&clock->data->datetime); - clock->data->timeformat = locale_get_time_format(); - clock->data->dateformat = locale_get_date_format(); - - // Set ViewPort callbacks - ViewPort* view_port = view_port_alloc(); - view_port_draw_callback_set(view_port, clock_render_callback, clock); - view_port_input_callback_set(view_port, clock_input_callback, clock->queue); - - FuriTimer* timer = furi_timer_alloc(clock_tick, FuriTimerTypePeriodic, clock->queue); - - // Open GUI and register view_port - Gui* gui = furi_record_open(RECORD_GUI); - gui_add_view_port(gui, view_port, GuiLayerFullscreen); - - furi_timer_start(timer, 100); - - // Main loop - ClockEvent event; - for(bool processing = true; processing;) { - furi_check(furi_message_queue_get(clock->queue, &event, FuriWaitForever) == FuriStatusOk); - furi_mutex_acquire(clock->mutex, FuriWaitForever); - if(event.type == ClockEventTypeKey) { - if(event.input.type == InputTypeShort && event.input.key == InputKeyBack) { - processing = false; - } - } else if(event.type == ClockEventTypeTick) { - furi_hal_rtc_get_datetime(&clock->data->datetime); - } - - furi_mutex_release(clock->mutex); - view_port_update(view_port); - } - - furi_timer_free(timer); - view_port_enabled_set(view_port, false); - gui_remove_view_port(gui, view_port); - view_port_free(view_port); - furi_record_close(RECORD_GUI); - - furi_message_queue_free(clock->queue); - furi_mutex_free(clock->mutex); - - furi_string_free(clock->data->buffer); - - free(clock->data); - free(clock); - - return 0; -} \ No newline at end of file diff --git a/applications/plugins/clock/application.fam b/applications/plugins/clock_app/application.fam similarity index 89% rename from applications/plugins/clock/application.fam rename to applications/plugins/clock_app/application.fam index e22738e47..644fbb65f 100644 --- a/applications/plugins/clock/application.fam +++ b/applications/plugins/clock_app/application.fam @@ -1,5 +1,5 @@ App( - appid="ClockV1", + appid="clock", name="Clock", apptype=FlipperAppType.EXTERNAL, entry_point="clock_app", @@ -7,4 +7,4 @@ App( stack_size=2 * 1024, fap_icon="clock.png", fap_category="Tools", -) +) \ No newline at end of file diff --git a/applications/plugins/clock/clock.png b/applications/plugins/clock_app/clock.png similarity index 100% rename from applications/plugins/clock/clock.png rename to applications/plugins/clock_app/clock.png diff --git a/applications/main/clock/clock_app.c b/applications/plugins/clock_app/clock_app.c similarity index 100% rename from applications/main/clock/clock_app.c rename to applications/plugins/clock_app/clock_app.c diff --git a/applications/main/clock/clock_app.h b/applications/plugins/clock_app/clock_app.h similarity index 98% rename from applications/main/clock/clock_app.h rename to applications/plugins/clock_app/clock_app.h index a6a99254b..693bdfac0 100644 --- a/applications/main/clock/clock_app.h +++ b/applications/plugins/clock_app/clock_app.h @@ -36,4 +36,4 @@ typedef struct { uint32_t timer_start_timestamp; uint32_t timer_stopped_seconds; bool timer_running; -} ClockState; \ No newline at end of file +} ClockState; diff --git a/applications/plugins/namechanger/icons/Cry_dolph_55x52.png b/applications/plugins/namechanger/icons/Cry_dolph_55x52.png deleted file mode 100644 index 86d9db1b4..000000000 Binary files a/applications/plugins/namechanger/icons/Cry_dolph_55x52.png and /dev/null differ diff --git a/applications/plugins/namechanger/icons/DolphinMafia_115x62.png b/applications/plugins/namechanger/icons/DolphinMafia_115x62.png deleted file mode 100644 index 66fdb40ff..000000000 Binary files a/applications/plugins/namechanger/icons/DolphinMafia_115x62.png and /dev/null differ diff --git a/applications/plugins/namechanger/icons/DolphinNice_96x59.png b/applications/plugins/namechanger/icons/DolphinNice_96x59.png deleted file mode 100644 index a299d3630..000000000 Binary files a/applications/plugins/namechanger/icons/DolphinNice_96x59.png and /dev/null differ diff --git a/applications/plugins/namechanger/icons/MarioBlock.png b/applications/plugins/namechanger/icons/MarioBlock.png deleted file mode 100644 index 86f159966..000000000 Binary files a/applications/plugins/namechanger/icons/MarioBlock.png and /dev/null differ diff --git a/applications/plugins/namechanger/namechanger.c b/applications/plugins/namechanger/namechanger.c index 284fd2eb5..17abcea72 100644 --- a/applications/plugins/namechanger/namechanger.c +++ b/applications/plugins/namechanger/namechanger.c @@ -16,172 +16,8 @@ bool namechanger_back_event_callback(void* context) { return scene_manager_handle_back_event(namechanger->scene_manager); } -bool namechanger_make_app_folder(NameChanger* namechanger) { - bool created = false; - FURI_LOG_I(TAG, "folder1"); - - FuriString* folderpath = furi_string_alloc(); - furi_string_set(folderpath, "/ext/dolphin"); - FURI_LOG_I(TAG, "folder2"); - - //Make dir if doesn't exist - if(!storage_simply_mkdir(namechanger->storage, furi_string_get_cstr(folderpath))) { - FURI_LOG_I(TAG, "folder3"); - furi_string_set_str(namechanger->error, "Cannot create\napp folder."); - } else { - FURI_LOG_I(TAG, "folder4"); - created = true; - } - FURI_LOG_I(TAG, "folder5"); - furi_string_free(folderpath); - FURI_LOG_I(TAG, "folder6"); - return created; -} - -bool namechanger_name_read_write(NameChanger* namechanger, char* name, uint8_t mode) { - FuriString* file_path = furi_string_alloc(); - furi_string_set(file_path, "/ext/dolphin/name.txt"); - FURI_LOG_I(TAG, "name1"); - - bool result = false; - - if(mode == 2) { - FURI_LOG_I(TAG, "name2"); - UNUSED(name); - FlipperFormat* file = flipper_format_file_alloc(namechanger->storage); - //read - FuriString* data = furi_string_alloc(); - FURI_LOG_I(TAG, "name3"); - - do { - FURI_LOG_I(TAG, "name4"); - if(!flipper_format_file_open_existing(file, furi_string_get_cstr(file_path))) { - break; - } - FURI_LOG_I(TAG, "name4a"); - - // header - uint32_t version; - - if(!flipper_format_read_header(file, data, &version)) { - break; - } - FURI_LOG_I(TAG, "name4b"); - - if(furi_string_cmp_str(data, NAMECHANGER_HEADER) != 0) { - break; - } - FURI_LOG_I(TAG, "name4c"); - - if(version != 1) { - break; - } - FURI_LOG_I(TAG, "name4d"); - - // get Name - if(!flipper_format_read_string(file, "Name", data)) { - break; - } - FURI_LOG_I(TAG, "name4e"); - - result = true; - FURI_LOG_I(TAG, "name5"); - } while(false); - - flipper_format_free(file); - FURI_LOG_I(TAG, "name6"); - - if(!result) { - FURI_LOG_I(TAG, "name7"); - FURI_LOG_E(TAG, "Cannot load data from file."); - namechanger_text_store_set(namechanger, "%s", furi_hal_version_get_name_ptr()); - } else { - FURI_LOG_I(TAG, "name8"); - furi_string_trim(data); - - if(!furi_string_size(data)) { - FURI_LOG_I(TAG, "name9"); - namechanger_text_store_set(namechanger, "%s", furi_hal_version_get_name_ptr()); - } else { - FURI_LOG_I(TAG, "name10"); - char newname[8]; - snprintf(newname, 8, "%s", furi_string_get_cstr(data)); - namechanger_text_store_set(namechanger, "%s", newname); - } - } - FURI_LOG_I(TAG, "name11"); - - furi_string_free(data); - } else if(mode == 3) { - FURI_LOG_I(TAG, "name12"); - //save - FlipperFormat* file = flipper_format_file_alloc(namechanger->storage); - - do { - FURI_LOG_I(TAG, "name13"); - // Open file for write - if(!flipper_format_file_open_always(file, furi_string_get_cstr(file_path))) { - break; - } - - // Write header - if(!flipper_format_write_header_cstr(file, NAMECHANGER_HEADER, 1)) { - break; - } - - // Write comments - if(!flipper_format_write_comment_cstr( - file, "Changing the value below will change your FlipperZero device name.")) { - break; - } - - if(!flipper_format_write_comment_cstr( - file, - "Note: This is limited to 8 characters using the following: a-z, A-Z, 0-9, and _")) { - break; - } - - if(!flipper_format_write_comment_cstr( - file, "It cannot contain any other characters.")) { - break; - } - - //If name is eraseerase (set by Revert) - then don't write any name - //otherwise, write name as set in the variable - if(strcmp(name, "eraseerase") == 0) { - if(!flipper_format_write_string_cstr(file, "Name", "")) { - break; - } - } else { - if(!flipper_format_write_string_cstr(file, "Name", name)) { - break; - } - } - - FURI_LOG_I(TAG, "name14"); - result = true; - } while(false); - - flipper_format_free(file); - FURI_LOG_I(TAG, "name15"); - - if(!result) { - FURI_LOG_I(TAG, "name16"); - FURI_LOG_E(TAG, "Cannot save name file."); - furi_string_set_str(namechanger->error, "Cannot save\nname file."); - } - } else { - FURI_LOG_I(TAG, "name17"); - FURI_LOG_E(TAG, "Something broke."); - furi_string_set_str(namechanger->error, "Something broke."); - } - FURI_LOG_I(TAG, "name18"); - - return result; -} - NameChanger* namechanger_alloc() { - NameChanger* namechanger = malloc(sizeof(namechanger)); + NameChanger* namechanger = malloc(sizeof(NameChanger)); namechanger->scene_manager = scene_manager_alloc(&namechanger_scene_handlers, namechanger); @@ -236,8 +72,6 @@ void namechanger_free(NameChanger* namechanger) { view_dispatcher_free(namechanger->view_dispatcher); scene_manager_free(namechanger->scene_manager); - furi_string_free(namechanger->error); - furi_record_close(RECORD_STORAGE); furi_record_close(RECORD_GUI); @@ -254,16 +88,9 @@ void namechanger_text_store_set(NameChanger* namechanger, const char* text, ...) va_end(args); } -void namechanger_text_store_clear(NameChanger* namechanger) { - memset(namechanger->text_store, 0, NAMECHANGER_TEXT_STORE_SIZE); -} - int32_t namechanger_app() { NameChanger* namechanger = namechanger_alloc(); - namechanger->error = furi_string_alloc(); - furi_string_set(namechanger->error, "Default"); - view_dispatcher_attach_to_gui( namechanger->view_dispatcher, namechanger->gui, ViewDispatcherTypeFullscreen); scene_manager_next_scene(namechanger->scene_manager, NameChangerSceneStart); @@ -272,4 +99,64 @@ int32_t namechanger_app() { namechanger_free(namechanger); return 0; +} + +bool namechanger_name_write(NameChanger* namechanger, char* name) { + FuriString* file_path = furi_string_alloc(); + furi_string_set(file_path, "/ext/dolphin/name.txt"); + + bool result = false; + + //If name is not "eraseerase" (set by Revert) then write name to file + //otherwise, remove name.txt + + if(strcmp(name, "eraseerase") != 0) { + //save + FlipperFormat* file = flipper_format_file_alloc(namechanger->storage); + + do { + // Open file for write + if(!flipper_format_file_open_always(file, furi_string_get_cstr(file_path))) { + break; + } + + // Write header + if(!flipper_format_write_header_cstr(file, NAMECHANGER_HEADER, 1)) { + break; + } + + // Write comments + if(!flipper_format_write_comment_cstr( + file, "Changing the value below will change your FlipperZero device name.")) { + break; + } + + if(!flipper_format_write_comment_cstr( + file, + "Note: This is limited to 8 characters using the following: a-z, A-Z, 0-9, and _")) { + break; + } + + if(!flipper_format_write_comment_cstr( + file, "It cannot contain any other characters.")) { + break; + } + + if(!flipper_format_write_string_cstr(file, "Name", name)) { + break; + } + + result = true; + } while(false); + + flipper_format_free(file); + + if(!result) { + FURI_LOG_E(TAG, "Cannot save name file."); + } + } else { + result = storage_simply_remove(namechanger->storage, furi_string_get_cstr(file_path)); + } + + return result; } \ No newline at end of file diff --git a/applications/plugins/namechanger/namechanger.h b/applications/plugins/namechanger/namechanger.h index 9500c1c17..e3355db1d 100644 --- a/applications/plugins/namechanger/namechanger.h +++ b/applications/plugins/namechanger/namechanger.h @@ -30,7 +30,6 @@ typedef struct { Storage* storage; char text_store[NAMECHANGER_TEXT_STORE_SIZE + 1]; - FuriString* error; Submenu* submenu; TextInput* text_input; @@ -46,6 +45,5 @@ typedef enum { } NameChangerView; bool namechanger_make_app_folder(NameChanger* namechanger); -bool namechanger_name_read_write(NameChanger* namechanger, char* name, uint8_t mode); +bool namechanger_name_write(NameChanger* namechanger, char* name); void namechanger_text_store_set(NameChanger* namechanger, const char* text, ...); -void namechanger_text_store_clear(NameChanger* namechanger); diff --git a/applications/plugins/namechanger/namechanger_custom_event.h b/applications/plugins/namechanger/namechanger_custom_event.h index 61418642f..3485c870b 100644 --- a/applications/plugins/namechanger/namechanger_custom_event.h +++ b/applications/plugins/namechanger/namechanger_custom_event.h @@ -3,5 +3,4 @@ enum NameChangerCustomEvent { NameChangerCustomEventBack, NameChangerCustomEventTextEditResult, - NameChangerCustomEventError, }; diff --git a/applications/plugins/namechanger/scenes/namechanger_scene_change.c b/applications/plugins/namechanger/scenes/namechanger_scene_change.c index 08150a1bc..32977d51a 100644 --- a/applications/plugins/namechanger/scenes/namechanger_scene_change.c +++ b/applications/plugins/namechanger/scenes/namechanger_scene_change.c @@ -11,22 +11,19 @@ void namechanger_scene_change_on_enter(void* context) { NameChanger* namechanger = context; TextInput* text_input = namechanger->text_input; - if(namechanger_name_read_write(namechanger, NULL, 2)) { - text_input_set_header_text(text_input, "Set Flipper Name"); + namechanger_text_store_set(namechanger, "%s", furi_hal_version_get_name_ptr()); - text_input_set_result_callback( - text_input, - namechanger_scene_change_text_input_callback, - namechanger, - namechanger->text_store, - NAMECHANGER_TEXT_STORE_SIZE, - true); + text_input_set_header_text(text_input, "Set Flipper Name"); - view_dispatcher_switch_to_view(namechanger->view_dispatcher, NameChangerViewTextInput); - } else { - view_dispatcher_send_custom_event( - namechanger->view_dispatcher, NameChangerCustomEventError); - } + text_input_set_result_callback( + text_input, + namechanger_scene_change_text_input_callback, + namechanger, + namechanger->text_store, + NAMECHANGER_TEXT_STORE_SIZE, + true); + + view_dispatcher_switch_to_view(namechanger->view_dispatcher, NameChangerViewTextInput); } bool namechanger_scene_change_on_event(void* context, SceneManagerEvent event) { @@ -36,21 +33,16 @@ bool namechanger_scene_change_on_event(void* context, SceneManagerEvent event) { if(event.type == SceneManagerEventTypeCustom) { consumed = true; if(event.event == NameChangerCustomEventTextEditResult) { - if(namechanger_make_app_folder(namechanger)) { - if(namechanger_name_read_write(namechanger, namechanger->text_store, 3)) { - scene_manager_next_scene( - namechanger->scene_manager, NameChangerSceneChangeSuccess); - } else { - scene_manager_search_and_switch_to_previous_scene( - namechanger->scene_manager, NameChangerSceneError); - } + if(namechanger_name_write(namechanger, namechanger->text_store)) { + scene_manager_next_scene( + namechanger->scene_manager, NameChangerSceneChangeSuccess); } else { scene_manager_search_and_switch_to_previous_scene( - namechanger->scene_manager, NameChangerSceneError); + namechanger->scene_manager, NameChangerSceneStart); } - } else if(event.event == NameChangerCustomEventError) { + } else { scene_manager_search_and_switch_to_previous_scene( - namechanger->scene_manager, NameChangerSceneError); + namechanger->scene_manager, NameChangerSceneStart); } } return consumed; diff --git a/applications/plugins/namechanger/scenes/namechanger_scene_change_success.c b/applications/plugins/namechanger/scenes/namechanger_scene_change_success.c index 1e0c3c2bb..7574c3a0e 100644 --- a/applications/plugins/namechanger/scenes/namechanger_scene_change_success.c +++ b/applications/plugins/namechanger/scenes/namechanger_scene_change_success.c @@ -9,7 +9,6 @@ void namechanger_scene_change_success_on_enter(void* context) { NameChanger* namechanger = context; Popup* popup = namechanger->popup; - popup_set_icon(popup, 32, 5, &I_DolphinNice_96x59); popup_set_header(popup, "Saved!", 5, 5, AlignLeft, AlignTop); popup_set_text(popup, "Rebooting...", 5, 17, AlignLeft, AlignTop); diff --git a/applications/plugins/namechanger/scenes/namechanger_scene_config.h b/applications/plugins/namechanger/scenes/namechanger_scene_config.h index 26236a057..41bbaef6b 100644 --- a/applications/plugins/namechanger/scenes/namechanger_scene_config.h +++ b/applications/plugins/namechanger/scenes/namechanger_scene_config.h @@ -2,5 +2,4 @@ ADD_SCENE(namechanger, start, Start) ADD_SCENE(namechanger, change, Change) ADD_SCENE(namechanger, change_success, ChangeSuccess) ADD_SCENE(namechanger, revert, Revert) -ADD_SCENE(namechanger, revert_success, RevertSuccess) -ADD_SCENE(namechanger, error, Error) \ No newline at end of file +ADD_SCENE(namechanger, revert_success, RevertSuccess) \ No newline at end of file diff --git a/applications/plugins/namechanger/scenes/namechanger_scene_error.c b/applications/plugins/namechanger/scenes/namechanger_scene_error.c deleted file mode 100644 index 3fe2e7276..000000000 --- a/applications/plugins/namechanger/scenes/namechanger_scene_error.c +++ /dev/null @@ -1,49 +0,0 @@ -#include "../namechanger.h" - -static void namechanger_scene_error_popup_callback(void* context) { - NameChanger* namechanger = context; - view_dispatcher_send_custom_event(namechanger->view_dispatcher, NameChangerCustomEventBack); -} - -void namechanger_scene_error_on_enter(void* context) { - NameChanger* namechanger = context; - Popup* popup = namechanger->popup; - - popup_set_icon(popup, 60, 12, &I_Cry_dolph_55x52); - popup_set_header(popup, "Error", 5, 7, AlignLeft, AlignTop); - - popup_set_text(popup, furi_string_get_cstr(namechanger->error), 5, 20, AlignLeft, AlignTop); - - popup_set_callback(popup, namechanger_scene_error_popup_callback); - popup_set_context(popup, namechanger); - popup_set_timeout(popup, 10000); - popup_enable_timeout(popup); - - view_dispatcher_switch_to_view(namechanger->view_dispatcher, NameChangerViewPopup); -} - -bool namechanger_scene_error_on_event(void* context, SceneManagerEvent event) { - NameChanger* namechanger = context; - bool consumed = false; - - if(event.type == SceneManagerEventTypeCustom) { - consumed = true; - if(event.event == NameChangerCustomEventBack) { - view_dispatcher_stop(namechanger->view_dispatcher); - } - } - - return consumed; -} - -void namechanger_scene_error_on_exit(void* context) { - NameChanger* namechanger = context; - Popup* popup = namechanger->popup; - - popup_set_text(popup, NULL, 0, 0, AlignCenter, AlignTop); - popup_set_icon(popup, 0, 0, NULL); - - popup_disable_timeout(popup); - popup_set_context(popup, NULL); - popup_set_callback(popup, NULL); -} diff --git a/applications/plugins/namechanger/scenes/namechanger_scene_revert.c b/applications/plugins/namechanger/scenes/namechanger_scene_revert.c index b1ab3d75a..156817651 100644 --- a/applications/plugins/namechanger/scenes/namechanger_scene_revert.c +++ b/applications/plugins/namechanger/scenes/namechanger_scene_revert.c @@ -3,9 +3,7 @@ static void namechanger_scene_revert_widget_callback(GuiButtonType result, InputType type, void* context) { NameChanger* namechanger = context; - FURI_LOG_I(TAG, "revert1"); if(type == InputTypeShort) { - FURI_LOG_I(TAG, "revert2"); view_dispatcher_send_custom_event(namechanger->view_dispatcher, result); } } @@ -13,56 +11,43 @@ static void void namechanger_scene_revert_on_enter(void* context) { NameChanger* namechanger = context; Widget* widget = namechanger->widget; - FURI_LOG_I(TAG, "revert3"); widget_add_text_box_element( widget, 0, 0, 128, 25, AlignCenter, AlignCenter, "\e#Revert Name?\e#", false); - widget_add_icon_element(widget, 48, 20, &I_MarioBlock); widget_add_button_element( widget, GuiButtonTypeLeft, "Cancel", namechanger_scene_revert_widget_callback, namechanger); - FURI_LOG_I(TAG, "revert4"); widget_add_button_element( widget, GuiButtonTypeRight, "Revert", namechanger_scene_revert_widget_callback, namechanger); - FURI_LOG_I(TAG, "revert5"); view_dispatcher_switch_to_view(namechanger->view_dispatcher, NameChangerViewWidget); } bool namechanger_scene_revert_on_event(void* context, SceneManagerEvent event) { NameChanger* namechanger = context; bool consumed = false; - FURI_LOG_I(TAG, "revert6"); if(event.type == SceneManagerEventTypeBack) { consumed = true; - FURI_LOG_I(TAG, "revert7"); } else if(event.type == SceneManagerEventTypeCustom) { consumed = true; - FURI_LOG_I(TAG, "revert8"); if(event.event == GuiButtonTypeRight) { - FURI_LOG_I(TAG, "revert9"); - if(namechanger_name_read_write(namechanger, "eraseerase", 3)) { - FURI_LOG_I(TAG, "revert10"); + if(namechanger_name_write(namechanger, "eraseerase")) { scene_manager_next_scene( namechanger->scene_manager, NameChangerSceneRevertSuccess); } else { - FURI_LOG_I(TAG, "revert11"); scene_manager_search_and_switch_to_previous_scene( - namechanger->scene_manager, NameChangerSceneError); + namechanger->scene_manager, NameChangerSceneStart); } } else if(event.event == GuiButtonTypeLeft) { - FURI_LOG_I(TAG, "revert12"); scene_manager_search_and_switch_to_previous_scene( namechanger->scene_manager, NameChangerSceneStart); } } - FURI_LOG_I(TAG, "revert13"); return consumed; } void namechanger_scene_revert_on_exit(void* context) { NameChanger* namechanger = context; - FURI_LOG_I(TAG, "revert14"); widget_reset(namechanger->widget); } diff --git a/applications/plugins/namechanger/scenes/namechanger_scene_revert_success.c b/applications/plugins/namechanger/scenes/namechanger_scene_revert_success.c index 0be0a40ef..354a6eadf 100644 --- a/applications/plugins/namechanger/scenes/namechanger_scene_revert_success.c +++ b/applications/plugins/namechanger/scenes/namechanger_scene_revert_success.c @@ -9,7 +9,6 @@ void namechanger_scene_revert_success_on_enter(void* context) { NameChanger* namechanger = context; Popup* popup = namechanger->popup; - popup_set_icon(popup, 0, 2, &I_DolphinMafia_115x62); popup_set_header(popup, "Reverted!", 70, 5, AlignLeft, AlignTop); popup_set_text(popup, "Rebooting...", 70, 16, AlignLeft, AlignTop); diff --git a/applications/plugins/picopass/scenes/picopass_scene_start.c b/applications/plugins/picopass/scenes/picopass_scene_start.c index 76c18a22a..6d1aeedcd 100644 --- a/applications/plugins/picopass/scenes/picopass_scene_start.c +++ b/applications/plugins/picopass/scenes/picopass_scene_start.c @@ -3,7 +3,7 @@ enum SubmenuIndex { SubmenuIndexRead, SubmenuIndexRunScript, SubmenuIndexSaved, - SubmenuIndexAddManualy, + SubmenuIndexAddManually, SubmenuIndexDebug, }; diff --git a/applications/plugins/playlist/images/ButtonRight_4x7.png b/applications/plugins/playlist/images/ButtonRight_4x7.png deleted file mode 100644 index 8e1c74c1c..000000000 Binary files a/applications/plugins/playlist/images/ButtonRight_4x7.png and /dev/null differ diff --git a/applications/plugins/playlist/images/sub1_10px.png b/applications/plugins/playlist/images/sub1_10px.png deleted file mode 100644 index 5a25fdf4e..000000000 Binary files a/applications/plugins/playlist/images/sub1_10px.png and /dev/null differ diff --git a/applications/plugins/playlist/playlist_10px.png b/applications/plugins/playlist/playlist_10px.png deleted file mode 100644 index fc33471f7..000000000 Binary files a/applications/plugins/playlist/playlist_10px.png and /dev/null differ diff --git a/applications/plugins/unitemp/README.md b/applications/plugins/unitemp/README.md index 257e8a8ae..2f753faea 100644 --- a/applications/plugins/unitemp/README.md +++ b/applications/plugins/unitemp/README.md @@ -1,9 +1,10 @@ ![Flipper usage](https://user-images.githubusercontent.com/10090793/206618263-c1e212e4-58dc-432e-87a8-5c19fd835b35.png) # Unitemp - Universal temperature sensor reader [![GitHub release](https://img.shields.io/github/release/quen0n/unitemp-flipperzero?include_prereleases=&sort=semver&color=blue)](https://github.com/quen0n/unitemp-flipperzero/releases/) +[![GitHub all releases](https://img.shields.io/github/downloads/quen0n/unitemp-flipperzero/total)]() [![GitHub](https://img.shields.io/github/license/quen0n/unitemp-flipperzero)](https://github.com/quen0n/unitemp-flipperzero/blob/dev/LICENSE.md) [Flipper Zero](https://flipperzero.one/) application for reading temperature, humidity and pressure sensors using Onewire, Singlewire, I2C protocols. ## List of supported sensors (supplemented) -![image](https://user-images.githubusercontent.com/10090793/209491886-f4c5ef6e-38b2-45b8-a8e7-4aeca9e155f2.png) +![image](https://user-images.githubusercontent.com/10090793/208480561-e98a6192-d44d-4ad9-8692-a91ccaae47c7.png) ## Installation Copy the contents of the repository to the `applications/plugins/unitemp` folder and build the project. Flash FZ along with resources. [More...](https://github.com/flipperdevices/flipperzero-firmware/blob/dev/documentation/fbt.md) diff --git a/applications/plugins/unitemp/Sensors.c b/applications/plugins/unitemp/Sensors.c index f202794f4..d35e31931 100644 --- a/applications/plugins/unitemp/Sensors.c +++ b/applications/plugins/unitemp/Sensors.c @@ -71,21 +71,8 @@ const Interface ONE_WIRE = { //Перечень интерфейсов подключения //static const Interface* interfaces[] = {&SINGLE_WIRE, &I2C, &ONE_WIRE}; //Перечень датчиков -static const SensorType* sensorTypes[] = { - &DHT11, - &DHT12_SW, - &DHT20, - &DHT21, - &DHT22, - &Dallas, - &AM2320_SW, - &AM2320_I2C, - &AHT10, - &SHT30, - &GXHT30, - &LM75, - &BMP280, - &BME280}; +static const SensorType* sensorTypes[] = + {&DHT11, &DHT12_SW, &DHT21, &DHT22, &AM2320_SW, &AM2320_I2C, &LM75, &BMP280, &BME280, &Dallas}; const SensorType* unitemp_sensors_getTypeFromInt(uint8_t index) { if(index > SENSOR_TYPES_COUNT) return NULL; diff --git a/applications/plugins/unitemp/Sensors.h b/applications/plugins/unitemp/Sensors.h index 0643ffb1f..52e6165f5 100644 --- a/applications/plugins/unitemp/Sensors.h +++ b/applications/plugins/unitemp/Sensors.h @@ -321,6 +321,4 @@ const GPIO* //BMP280, BME280 #include "./sensors/BMx280.h" #include "./sensors/AM2320.h" -#include "./sensors/DHT20.h" -#include "./sensors/SHT30.h" #endif diff --git a/applications/plugins/unitemp/application.fam b/applications/plugins/unitemp/application.fam index 23ad07223..4fc9472cc 100644 --- a/applications/plugins/unitemp/application.fam +++ b/applications/plugins/unitemp/application.fam @@ -1,5 +1,5 @@ App( - appid="Temp_Sensors_Reader", + appid="unitemp", name="Unitemp", apptype=FlipperAppType.EXTERNAL, entry_point="unitemp_app", @@ -16,5 +16,4 @@ App( fap_icon="icon.png", fap_icon_assets="assets", fap_libs=["assets"], - fap_icon_assets_symbol="unitemp", ) \ No newline at end of file diff --git a/applications/plugins/unitemp/interfaces/SingleWireSensor.c b/applications/plugins/unitemp/interfaces/SingleWireSensor.c index e601e086e..183bfc872 100644 --- a/applications/plugins/unitemp/interfaces/SingleWireSensor.c +++ b/applications/plugins/unitemp/interfaces/SingleWireSensor.c @@ -43,7 +43,7 @@ const SensorType DHT12_SW = { .updater = unitemp_singlewire_update}; const SensorType DHT21 = { .typename = "DHT21", - .altname = "DHT21/AM2301", + .altname = "DHT21 (AM2301)", .interface = &SINGLE_WIRE, .datatype = UT_DATA_TYPE_TEMP_HUM, .pollingInterval = 1000, @@ -54,7 +54,7 @@ const SensorType DHT21 = { .updater = unitemp_singlewire_update}; const SensorType DHT22 = { .typename = "DHT22", - .altname = "DHT22/AM2302", + .altname = "DHT22 (AM2302)", .interface = &SINGLE_WIRE, .datatype = UT_DATA_TYPE_TEMP_HUM, .pollingInterval = 2000, diff --git a/applications/plugins/unitemp/sensors/DHT20.c b/applications/plugins/unitemp/sensors/DHT20.c deleted file mode 100644 index f16e8dfc1..000000000 --- a/applications/plugins/unitemp/sensors/DHT20.c +++ /dev/null @@ -1,154 +0,0 @@ -/* - Unitemp - Universal temperature reader - Copyright (C) 2022 Victor Nikitchuk (https://github.com/quen0n) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ -#include "DHT20.h" -#include "../interfaces/I2CSensor.h" - -const SensorType DHT20 = { - .typename = "DHT20", - .altname = "DHT20/AM2108/AHT20", - .interface = &I2C, - .datatype = UT_TEMPERATURE | UT_HUMIDITY, - .pollingInterval = 1000, - .allocator = unitemp_DHT20_I2C_alloc, - .mem_releaser = unitemp_DHT20_I2C_free, - .initializer = unitemp_DHT20_init, - .deinitializer = unitemp_DHT20_I2C_deinit, - .updater = unitemp_DHT20_I2C_update}; -const SensorType AHT10 = { - .typename = "AHT10", - .interface = &I2C, - .datatype = UT_TEMPERATURE | UT_HUMIDITY, - .pollingInterval = 1000, - .allocator = unitemp_DHT20_I2C_alloc, - .mem_releaser = unitemp_DHT20_I2C_free, - .initializer = unitemp_DHT20_init, - .deinitializer = unitemp_DHT20_I2C_deinit, - .updater = unitemp_DHT20_I2C_update}; - -static uint8_t DHT20_get_status(I2CSensor* i2c_sensor) { - uint8_t status[1] = {0}; - unitemp_i2c_readArray(i2c_sensor, 1, status); - return status[0]; -} - -static uint8_t DHT20_calc_CRC8(uint8_t* message, uint8_t Num) { - uint8_t i; - uint8_t byte; - uint8_t crc = 0xFF; - for(byte = 0; byte < Num; byte++) { - crc ^= (message[byte]); - for(i = 8; i > 0; --i) { - if(crc & 0x80) - crc = (crc << 1) ^ 0x31; - else - crc = (crc << 1); - } - } - return crc; -} - -static void DHT20_reset_reg(I2CSensor* i2c_sensor, uint8_t addr) { - uint8_t data[3] = {addr, 0x00, 0x00}; - - unitemp_i2c_writeArray(i2c_sensor, 3, data); - - furi_delay_ms(5); - - unitemp_i2c_readArray(i2c_sensor, 3, data); - - furi_delay_ms(10); - - data[0] = 0xB0 | addr; - unitemp_i2c_writeArray(i2c_sensor, 3, data); -} - -bool unitemp_DHT20_I2C_alloc(Sensor* sensor, char* args) { - UNUSED(args); - I2CSensor* i2c_sensor = (I2CSensor*)sensor->instance; - - //Адреса на шине I2C (7 бит) - i2c_sensor->minI2CAdr = 0x38 << 1; - i2c_sensor->maxI2CAdr = (sensor->type == &DHT20) ? (0x38 << 1) : (0x39 << 1); - return true; -} - -bool unitemp_DHT20_I2C_free(Sensor* sensor) { - //Нечего высвобождать, так как ничего не было выделено - UNUSED(sensor); - return true; -} - -bool unitemp_DHT20_init(Sensor* sensor) { - I2CSensor* i2c_sensor = (I2CSensor*)sensor->instance; - - uint8_t data[3] = {0xA8, 0x00, 0x00}; - if(!unitemp_i2c_writeArray(i2c_sensor, 3, data)) return false; - furi_delay_ms(10); - data[0] = (sensor->type == &DHT20) ? 0xBE : 0xE1; - data[1] = 0x08; - if(!unitemp_i2c_writeArray(i2c_sensor, 3, data)) return false; - furi_delay_ms(10); - - return true; -} - -bool unitemp_DHT20_I2C_deinit(Sensor* sensor) { - //Нечего деинициализировать - UNUSED(sensor); - return true; -} - -UnitempStatus unitemp_DHT20_I2C_update(Sensor* sensor) { - I2CSensor* i2c_sensor = (I2CSensor*)sensor->instance; - - if(DHT20_get_status(i2c_sensor) != 0x18) { - DHT20_reset_reg(i2c_sensor, 0x1B); - DHT20_reset_reg(i2c_sensor, 0x1C); - DHT20_reset_reg(i2c_sensor, 0x1E); - } - furi_delay_ms(10); - - uint8_t data[7] = {0xAC, 0x33, 0x00}; - if(!unitemp_i2c_writeArray(i2c_sensor, 3, data)) return UT_SENSORSTATUS_TIMEOUT; - furi_delay_ms(80); - uint32_t t = furi_get_tick(); - while(DHT20_get_status(i2c_sensor) == 0x80) { - if(furi_get_tick() - t > 10) return UT_SENSORSTATUS_TIMEOUT; - } - - if(!unitemp_i2c_readArray(i2c_sensor, 7, data)) return UT_SENSORSTATUS_TIMEOUT; - - if(DHT20_calc_CRC8(data, 6) != data[6]) { - return UT_SENSORSTATUS_BADCRC; - } - uint32_t RetuData = 0; - RetuData = (RetuData | data[1]) << 8; - RetuData = (RetuData | data[2]) << 8; - RetuData = (RetuData | data[3]); - RetuData = RetuData >> 4; - sensor->hum = RetuData * 100 * 10 / 1024.0f / 1024.0f / 10.0f; - - RetuData = 0; - RetuData = (RetuData | data[3]) << 8; - RetuData = (RetuData | data[4]) << 8; - RetuData = (RetuData | data[5]); - RetuData = RetuData & 0xfffff; - sensor->temp = (RetuData * 200 * 10.0f / 1024.0f / 1024.0f - 500) / 10.0f; - - return UT_SENSORSTATUS_OK; -} diff --git a/applications/plugins/unitemp/sensors/DHT20.h b/applications/plugins/unitemp/sensors/DHT20.h deleted file mode 100644 index db49495dc..000000000 --- a/applications/plugins/unitemp/sensors/DHT20.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - Unitemp - Universal temperature reader - Copyright (C) 2022 Victor Nikitchuk (https://github.com/quen0n) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ -#ifndef UNITEMP_DHT20 -#define UNITEMP_DHT20 - -#include "../unitemp.h" -#include "../Sensors.h" -extern const SensorType DHT20; -extern const SensorType AHT10; -/** - * @brief Выделение памяти и установка начальных значений датчика DHT20 - * - * @param sensor Указатель на создаваемый датчик - * @return Истина при успехе - */ -bool unitemp_DHT20_I2C_alloc(Sensor* sensor, char* args); - -/** - * @brief Инициализации датчика DHT20 - * - * @param sensor Указатель на датчик - * @return Истина если инициализация упспешная - */ -bool unitemp_DHT20_init(Sensor* sensor); - -/** - * @brief Деинициализация датчика - * - * @param sensor Указатель на датчик - */ -bool unitemp_DHT20_I2C_deinit(Sensor* sensor); - -/** - * @brief Обновление значений из датчика - * - * @param sensor Указатель на датчик - * @return Статус обновления - */ -UnitempStatus unitemp_DHT20_I2C_update(Sensor* sensor); - -/** - * @brief Высвободить память датчика - * - * @param sensor Указатель на датчик - */ -bool unitemp_DHT20_I2C_free(Sensor* sensor); - -#endif \ No newline at end of file diff --git a/applications/plugins/unitemp/sensors/SHT30.c b/applications/plugins/unitemp/sensors/SHT30.c deleted file mode 100644 index 700a54dec..000000000 --- a/applications/plugins/unitemp/sensors/SHT30.c +++ /dev/null @@ -1,90 +0,0 @@ -/* - Unitemp - Universal temperature reader - Copyright (C) 2022 Victor Nikitchuk (https://github.com/quen0n) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ -#include "SHT30.h" -#include "../interfaces/I2CSensor.h" - -const SensorType SHT30 = { - .typename = "SHT30", - .altname = "SHT30/31/35", - .interface = &I2C, - .datatype = UT_TEMPERATURE | UT_HUMIDITY, - .pollingInterval = 1000, - .allocator = unitemp_SHT30_I2C_alloc, - .mem_releaser = unitemp_SHT30_I2C_free, - .initializer = unitemp_SHT30_init, - .deinitializer = unitemp_SHT30_I2C_deinit, - .updater = unitemp_SHT30_I2C_update}; -const SensorType GXHT30 = { - .typename = "GXHT30", - .altname = "GXHT30/31/35", - .interface = &I2C, - .datatype = UT_TEMPERATURE | UT_HUMIDITY, - .pollingInterval = 1000, - .allocator = unitemp_SHT30_I2C_alloc, - .mem_releaser = unitemp_SHT30_I2C_free, - .initializer = unitemp_GXHT30_init, - .deinitializer = unitemp_SHT30_I2C_deinit, - .updater = unitemp_SHT30_I2C_update}; - -bool unitemp_SHT30_I2C_alloc(Sensor* sensor, char* args) { - UNUSED(args); - I2CSensor* i2c_sensor = (I2CSensor*)sensor->instance; - - //Адреса на шине I2C (7 бит) - i2c_sensor->minI2CAdr = 0x44 << 1; - i2c_sensor->maxI2CAdr = 0x45 << 1; - return true; -} - -bool unitemp_SHT30_I2C_free(Sensor* sensor) { - //Нечего высвобождать, так как ничего не было выделено - UNUSED(sensor); - return true; -} - -bool unitemp_SHT30_init(Sensor* sensor) { - UNUSED(sensor); - return true; -} - -bool unitemp_GXHT30_init(Sensor* sensor) { - I2CSensor* i2c_sensor = (I2CSensor*)sensor->instance; - //Включение режима автоматического преобразования 2 раза в сек - uint8_t data[2] = {0x22, 0x36}; - if(!unitemp_i2c_writeArray(i2c_sensor, 2, data)) return false; - return true; -} - -bool unitemp_SHT30_I2C_deinit(Sensor* sensor) { - //Нечего деинициализировать - UNUSED(sensor); - return true; -} - -UnitempStatus unitemp_SHT30_I2C_update(Sensor* sensor) { - I2CSensor* i2c_sensor = (I2CSensor*)sensor->instance; - //Получение данных - uint8_t data[6] = {0xE0, 0x00}; - if(!unitemp_i2c_writeArray(i2c_sensor, 2, data)) return UT_SENSORSTATUS_TIMEOUT; - if(!unitemp_i2c_readArray(i2c_sensor, 6, data)) return UT_SENSORSTATUS_TIMEOUT; - - sensor->temp = -45 + 175 * (((uint16_t)(data[0] << 8) | data[1]) / 65535.0f); - sensor->hum = 100 * (((uint16_t)(data[3] << 8) | data[4]) / 65535.0f); - - return UT_SENSORSTATUS_OK; -} diff --git a/applications/plugins/unitemp/sensors/SHT30.h b/applications/plugins/unitemp/sensors/SHT30.h deleted file mode 100644 index 93e9d05f2..000000000 --- a/applications/plugins/unitemp/sensors/SHT30.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - Unitemp - Universal temperature reader - Copyright (C) 2022 Victor Nikitchuk (https://github.com/quen0n) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ -#ifndef UNITEMP_SHT30 -#define UNITEMP_SHT30 - -#include "../unitemp.h" -#include "../Sensors.h" -extern const SensorType SHT30; -extern const SensorType GXHT30; -/** - * @brief Выделение памяти и установка начальных значений датчика SHT30 - * - * @param sensor Указатель на создаваемый датчик - * @return Истина при успехе - */ -bool unitemp_SHT30_I2C_alloc(Sensor* sensor, char* args); - -/** - * @brief Инициализации датчика SHT30 - * - * @param sensor Указатель на датчик - * @return Истина если инициализация упспешная - */ -bool unitemp_SHT30_init(Sensor* sensor); -/** - * @brief Инициализации датчика GXHT30 - * - * @param sensor Указатель на датчик - * @return Истина если инициализация упспешная - */ -bool unitemp_GXHT30_init(Sensor* sensor); - -/** - * @brief Деинициализация датчика - * - * @param sensor Указатель на датчик - */ -bool unitemp_SHT30_I2C_deinit(Sensor* sensor); - -/** - * @brief Обновление значений из датчика - * - * @param sensor Указатель на датчик - * @return Статус обновления - */ -UnitempStatus unitemp_SHT30_I2C_update(Sensor* sensor); - -/** - * @brief Высвободить память датчика - * - * @param sensor Указатель на датчик - */ -bool unitemp_SHT30_I2C_free(Sensor* sensor); - -#endif \ No newline at end of file diff --git a/applications/plugins/unitemp/sensors/Sensors.xlsx b/applications/plugins/unitemp/sensors/Sensors.xlsx index b139b1b00..2b6578e0e 100644 Binary files a/applications/plugins/unitemp/sensors/Sensors.xlsx and b/applications/plugins/unitemp/sensors/Sensors.xlsx differ diff --git a/applications/plugins/unitemp/views/General_view.c b/applications/plugins/unitemp/views/General_view.c index fc1408b1a..e21b04de2 100644 --- a/applications/plugins/unitemp/views/General_view.c +++ b/applications/plugins/unitemp/views/General_view.c @@ -362,8 +362,7 @@ static void _draw_carousel_info(Canvas* canvas) { BUFF_SIZE, "0x%02X", ((I2CSensor*)unitemp_sensor_getActive(generalview_sensor_index)->instance) - ->currentI2CAdr >> - 1); + ->currentI2CAdr); canvas_draw_str(canvas, 57, 35, app->buff); canvas_draw_str(canvas, 54, 46, "15 (C0)"); canvas_draw_str(canvas, 54, 58, "16 (C1)"); diff --git a/applications/plugins/unitemp/views/SensorEdit_view.c b/applications/plugins/unitemp/views/SensorEdit_view.c index d1660bc2e..4d5bc17db 100644 --- a/applications/plugins/unitemp/views/SensorEdit_view.c +++ b/applications/plugins/unitemp/views/SensorEdit_view.c @@ -214,9 +214,9 @@ static void _gpio_change_callback(VariableItem* item) { static void _i2caddr_change_callback(VariableItem* item) { uint8_t index = variable_item_get_current_value_index(item); ((I2CSensor*)editable_sensor->instance)->currentI2CAdr = - ((I2CSensor*)editable_sensor->instance)->minI2CAdr + index * 2; + ((I2CSensor*)editable_sensor->instance)->minI2CAdr + index; char buff[5]; - snprintf(buff, 5, "0x%2X", ((I2CSensor*)editable_sensor->instance)->currentI2CAdr >> 1); + snprintf(buff, 5, "0x%2X", ((I2CSensor*)editable_sensor->instance)->currentI2CAdr); variable_item_set_current_value_text(item, buff); } /** @@ -335,15 +335,11 @@ void unitemp_SensorEdit_switch(Sensor* sensor) { VariableItem* item = variable_item_list_add( variable_item_list, "I2C address", - (((I2CSensor*)sensor->instance)->maxI2CAdr >> 1) - - (((I2CSensor*)sensor->instance)->minI2CAdr >> 1) + 1, + ((I2CSensor*)sensor->instance)->maxI2CAdr - ((I2CSensor*)sensor->instance)->minI2CAdr + + 1, _i2caddr_change_callback, app); - snprintf(app->buff, 5, "0x%2X", ((I2CSensor*)sensor->instance)->currentI2CAdr >> 1); - variable_item_set_current_value_index( - item, - (((I2CSensor*)sensor->instance)->currentI2CAdr >> 1) - - (((I2CSensor*)sensor->instance)->minI2CAdr >> 1)); + snprintf(app->buff, 5, "0x%2X", ((I2CSensor*)sensor->instance)->currentI2CAdr); variable_item_set_current_value_text(item, app->buff); } diff --git a/applications/plugins/unitemp/views/Widgets_view.c b/applications/plugins/unitemp/views/Widgets_view.c index 892b31f98..6d8702ca1 100644 --- a/applications/plugins/unitemp/views/Widgets_view.c +++ b/applications/plugins/unitemp/views/Widgets_view.c @@ -132,7 +132,7 @@ void unitemp_widget_delete_switch(Sensor* sensor) { app->buff, BUFF_SIZE, "\e#I2C addr:\e# 0x%02X", - ((I2CSensor*)current_sensor->instance)->currentI2CAdr >> 1); + ((I2CSensor*)current_sensor->instance)->currentI2CAdr); widget_add_text_box_element( app->widget, 0, 28, 128, 23, AlignLeft, AlignTop, app->buff, false); } diff --git a/applications/services/application.fam b/applications/services/application.fam index 47601a436..934b0b012 100644 --- a/applications/services/application.fam +++ b/applications/services/application.fam @@ -9,9 +9,6 @@ App( "desktop", "loader", "power", - "ibuttonsrv", - "infraredsrv", - "lfrfidsrv", "namechangersrv", ], ) diff --git a/applications/services/cli/cli_commands.c b/applications/services/cli/cli_commands.c index 4f47183ed..bb1f3ab7f 100644 --- a/applications/services/cli/cli_commands.c +++ b/applications/services/cli/cli_commands.c @@ -143,7 +143,7 @@ void cli_command_src(Cli* cli, FuriString* args, void* context) { UNUSED(args); UNUSED(context); - printf("https://github.com/RogueMaster/flipperzero-firmware-wPlugins"); + printf("https://github.com/ClaraCrazy/Flipper-Xtreme"); } #define CLI_COMMAND_LOG_RING_SIZE 2048 diff --git a/applications/services/desktop/application.fam b/applications/services/desktop/application.fam index 6e0b257c2..da6e2b802 100644 --- a/applications/services/desktop/application.fam +++ b/applications/services/desktop/application.fam @@ -12,6 +12,6 @@ App( ], provides=["desktop_settings"], conflicts=["updater"], - stack_size=4 * 1024, + stack_size=2 * 1024, order=60, ) diff --git a/applications/services/desktop/desktop.c b/applications/services/desktop/desktop.c index 7cf4a2948..a526d415e 100644 --- a/applications/services/desktop/desktop.c +++ b/applications/services/desktop/desktop.c @@ -26,9 +26,10 @@ static void desktop_loader_callback(const void* message, void* context) { Desktop* desktop = context; const LoaderEvent* event = message; - if(event->type == LoaderEventTypeApplicationStarted) { + if (event->type == LoaderEventTypeApplicationStarted) { view_dispatcher_send_custom_event(desktop->view_dispatcher, DesktopGlobalBeforeAppStarted); - } else if(event->type == LoaderEventTypeApplicationStopped) { + } + else if (event->type == LoaderEventTypeApplicationStopped) { view_dispatcher_send_custom_event(desktop->view_dispatcher, DesktopGlobalAfterAppFinished); } } @@ -48,7 +49,7 @@ static bool desktop_custom_event_callback(void* context, uint32_t event) { furi_assert(context); Desktop* desktop = (Desktop*)context; - switch(event) { + switch (event) { case DesktopGlobalBeforeAppStarted: animation_manager_unload_and_stall_animation(desktop->animation_manager); desktop_auto_lock_inhibit(desktop); @@ -61,11 +62,12 @@ static bool desktop_custom_event_callback(void* context, uint32_t event) { desktop_auto_lock_arm(desktop); return true; case DesktopGlobalAutoLock: - if(!loader_is_locked(desktop->loader)) { - if(desktop->settings.pin_code.length > 0) { + if (!loader_is_locked(desktop->loader)) { + if (desktop->settings.pin_code.length > 0) { desktop_pin_lock(&desktop->settings); desktop_lock(desktop); - } else { + } + else { desktop_lock(desktop); } } @@ -92,7 +94,7 @@ static void desktop_input_event_callback(const void* value, void* context) { furi_assert(context); const InputEvent* event = value; Desktop* desktop = context; - if(event->type == InputTypePress) { + if (event->type == InputTypePress) { desktop_start_auto_lock_timer(desktop); } } @@ -113,7 +115,7 @@ static void desktop_stop_auto_lock_timer(Desktop* desktop) { } static void desktop_auto_lock_arm(Desktop* desktop) { - if(desktop->settings.auto_lock_delay_ms) { + if (desktop->settings.auto_lock_delay_ms) { desktop->input_events_subscription = furi_pubsub_subscribe( desktop->input_events_pubsub, desktop_input_event_callback, desktop); desktop_start_auto_lock_timer(desktop); @@ -122,7 +124,7 @@ static void desktop_auto_lock_arm(Desktop* desktop) { static void desktop_auto_lock_inhibit(Desktop* desktop) { desktop_stop_auto_lock_timer(desktop); - if(desktop->input_events_subscription) { + if (desktop->input_events_subscription) { furi_pubsub_unsubscribe(desktop->input_events_pubsub, desktop->input_events_subscription); desktop->input_events_subscription = NULL; } @@ -247,8 +249,8 @@ Desktop* desktop_alloc() { // Special case: autostart application is already running desktop->loader = furi_record_open(RECORD_LOADER); - if(loader_is_locked(desktop->loader) && - animation_manager_is_animation_loaded(desktop->animation_manager)) { + if (loader_is_locked(desktop->loader) && + animation_manager_is_animation_loaded(desktop->animation_manager)) { animation_manager_unload_and_stall_animation(desktop->animation_manager); } @@ -271,7 +273,7 @@ void desktop_free(Desktop* desktop) { furi_pubsub_unsubscribe( loader_get_pubsub(desktop->loader), desktop->app_start_stop_subscription); - if(desktop->input_events_subscription) { + if (desktop->input_events_subscription) { furi_pubsub_unsubscribe(desktop->input_events_pubsub, desktop->input_events_subscription); desktop->input_events_subscription = NULL; } @@ -326,45 +328,54 @@ static bool desktop_check_file_flag(const char* flag_path) { int32_t desktop_srv(void* p) { UNUSED(p); - Desktop* desktop = desktop_alloc(); - bool loaded = DESKTOP_SETTINGS_LOAD(&desktop->settings); - if(!loaded) { - memset(&desktop->settings, 0, sizeof(desktop->settings)); - DESKTOP_SETTINGS_SAVE(&desktop->settings); + if (furi_hal_rtc_get_boot_mode() != FuriHalRtcBootModeNormal) + { + FURI_LOG_W("Desktop", "Desktop load skipped. Device is in special startup mode."); } + else + { + Desktop* desktop = desktop_alloc(); - view_port_enabled_set(desktop->sfw_mode_icon_viewport, desktop->settings.sfw_mode); - desktop_main_set_sfw_mode_state(desktop->main_view, desktop->settings.sfw_mode); - animation_manager_set_sfw_mode_state( - desktop->animation_manager, desktop->settings.sfw_mode); - - scene_manager_next_scene(desktop->scene_manager, DesktopSceneMain); - - desktop_pin_lock_init(&desktop->settings); - - if(!desktop_pin_lock_is_locked()) { - if(!loader_is_locked(desktop->loader)) { - desktop_auto_lock_arm(desktop); + bool loaded = DESKTOP_SETTINGS_LOAD(&desktop->settings); + if (!loaded) { + memset(&desktop->settings, 0, sizeof(desktop->settings)); + DESKTOP_SETTINGS_SAVE(&desktop->settings); } - } else { - desktop_lock(desktop); - } - if(desktop_check_file_flag(SLIDESHOW_FS_PATH)) { - scene_manager_next_scene(desktop->scene_manager, DesktopSceneSlideshow); - } + view_port_enabled_set(desktop->sfw_mode_icon_viewport, desktop->settings.sfw_mode); + desktop_main_set_sfw_mode_state(desktop->main_view, desktop->settings.sfw_mode); + animation_manager_set_sfw_mode_state( + desktop->animation_manager, desktop->settings.sfw_mode); - if(!furi_hal_version_do_i_belong_here()) { - scene_manager_next_scene(desktop->scene_manager, DesktopSceneHwMismatch); - } + scene_manager_next_scene(desktop->scene_manager, DesktopSceneMain); - if(furi_hal_rtc_get_fault_data()) { - scene_manager_next_scene(desktop->scene_manager, DesktopSceneFault); - } + desktop_pin_lock_init(&desktop->settings); - view_dispatcher_run(desktop->view_dispatcher); - desktop_free(desktop); + if (!desktop_pin_lock_is_locked()) { + if (!loader_is_locked(desktop->loader)) { + desktop_auto_lock_arm(desktop); + } + } + else { + desktop_lock(desktop); + } + + if (desktop_check_file_flag(SLIDESHOW_FS_PATH)) { + scene_manager_next_scene(desktop->scene_manager, DesktopSceneSlideshow); + } + + if (!furi_hal_version_do_i_belong_here()) { + scene_manager_next_scene(desktop->scene_manager, DesktopSceneHwMismatch); + } + + if (furi_hal_rtc_get_fault_data()) { + scene_manager_next_scene(desktop->scene_manager, DesktopSceneFault); + } + + view_dispatcher_run(desktop->view_dispatcher); + desktop_free(desktop); + } return 0; } diff --git a/applications/services/desktop/scenes/desktop_scene_main.c b/applications/services/desktop/scenes/desktop_scene_main.c index 507b82e10..343ecac18 100644 --- a/applications/services/desktop/scenes/desktop_scene_main.c +++ b/applications/services/desktop/scenes/desktop_scene_main.c @@ -13,8 +13,6 @@ #define TAG "DesktopSrv" -#define CLOCK_APP EXT_PATH("/apps/Main/Clock.fap") - static void desktop_scene_main_new_idle_animation_callback(void* context) { furi_assert(context); Desktop* desktop = context; @@ -208,47 +206,8 @@ bool desktop_scene_main_on_event(void* context, SceneManagerEvent event) { } break; } - case DesktopMainEventOpenSnake: { - desktop_scene_main_open_app_or_profile(desktop, EXT_PATH("/apps/Games/Snake.fap")); - break; - } - case DesktopMainEventOpen2048: { - desktop_scene_main_open_app_or_profile( - desktop, EXT_PATH("/apps/Games/2048_improved.fap")); - break; - } - case DesktopMainEventOpenZombiez: { - desktop_scene_main_open_app_or_profile(desktop, EXT_PATH("/apps/Games/Zombiez.fap")); - break; - } - case DesktopMainEventOpenTetris: { - desktop_scene_main_open_app_or_profile(desktop, EXT_PATH("/apps/Games/Tetris.fap")); - break; - } - case DesktopMainEventOpenDOOM: { - desktop_scene_main_open_app_or_profile(desktop, EXT_PATH("/apps/Games/DOOM.fap")); - break; - } - case DesktopMainEventOpenDice: { - desktop_scene_main_open_app_or_profile(desktop, EXT_PATH("/apps/Games/Dice.fap")); - break; - } - case DesktopMainEventOpenArkanoid: { - desktop_scene_main_open_app_or_profile(desktop, EXT_PATH("/apps/Games/Arkanoid.fap")); - break; - } - case DesktopMainEventOpenHeap: { - desktop_scene_main_open_app_or_profile( - desktop, EXT_PATH("/apps/Games/Heap_Defence.fap")); - break; - } - case DesktopMainEventOpenSubRemote: { - desktop_scene_main_open_app_or_profile( - desktop, EXT_PATH("/apps/Main/SubGHz_Remote.fap")); - break; - } case DesktopMainEventOpenClock: { - desktop_scene_main_open_app_or_profile(desktop, CLOCK_APP); + desktop_scene_main_open_app_or_profile(desktop, EXT_PATH("/apps/Tools/Clock.fap")); break; } case DesktopLockedEventUpdate: diff --git a/applications/services/desktop/views/desktop_view_locked.c b/applications/services/desktop/views/desktop_view_locked.c index 3034da376..0bf757036 100644 --- a/applications/services/desktop/views/desktop_view_locked.c +++ b/applications/services/desktop/views/desktop_view_locked.c @@ -125,7 +125,7 @@ static void desktop_view_locked_draw(Canvas* canvas, void* model) { } else if(view_state == DesktopViewLockedStateLockedHintShown) { canvas_set_font(canvas, FontSecondary); elements_bold_rounded_frame(canvas, 14, 2 + STATUS_BAR_Y_SHIFT, 99, 48); - elements_multiline_text(canvas, 65, 20 + STATUS_BAR_Y_SHIFT, "To Unlock\nPress:"); + elements_multiline_text(canvas, 65, 20 + STATUS_BAR_Y_SHIFT, "To unlock\npress:"); canvas_draw_icon(canvas, 65, 36 + STATUS_BAR_Y_SHIFT, &I_Pin_back_arrow_10x8); canvas_draw_icon(canvas, 80, 36 + STATUS_BAR_Y_SHIFT, &I_Pin_back_arrow_10x8); canvas_draw_icon(canvas, 95, 36 + STATUS_BAR_Y_SHIFT, &I_Pin_back_arrow_10x8); diff --git a/applications/services/desktop/views/desktop_view_main.c b/applications/services/desktop/views/desktop_view_main.c index 7881bc36d..c3bb92555 100644 --- a/applications/services/desktop/views/desktop_view_main.c +++ b/applications/services/desktop/views/desktop_view_main.c @@ -69,7 +69,7 @@ bool desktop_main_input_callback(InputEvent* event, void* context) { } else if(event->key == InputKeyDown) { main_view->callback(DesktopMainEventOpenFavoriteSecondary, main_view->context); } else if(event->key == InputKeyLeft) { - main_view->callback(DesktopMainEventOpenSubRemote, main_view->context); // OPENS SUBGHZ REMOTE + main_view->callback(DesktopMainEventLock, main_view->context); // OPENS SUBGHZ REMOTE } } diff --git a/applications/services/dolphin/helpers/dolphin_deed.c b/applications/services/dolphin/helpers/dolphin_deed.c index 59863cf2a..51db56fdf 100644 --- a/applications/services/dolphin/helpers/dolphin_deed.c +++ b/applications/services/dolphin/helpers/dolphin_deed.c @@ -45,15 +45,13 @@ static const DolphinDeedWeight dolphin_deed_weights[] = { }; static uint8_t dolphin_deed_limits[] = { - 100, // DolphinAppSubGhz - 100, // DolphinAppRfid - 100, // DolphinAppNfc - 100, // DolphinAppIr - 100, // DolphinAppIbutton - 100, // DolphinAppBadusb -// 100, // DolphinAppU2f -// 100, // DolphinAppGpio - 100, // DolphinAppPlugin + 20, // DolphinAppSubGhz + 20, // DolphinAppRfid + 20, // DolphinAppNfc + 20, // DolphinAppIr + 20, // DolphinAppIbutton + 20, // DolphinAppBadusb + 20, // DolphinAppPlugin }; _Static_assert(COUNT_OF(dolphin_deed_weights) == DolphinDeedMAX, "dolphin_deed_weights size error"); diff --git a/applications/services/gui/modules/file_browser_worker.c b/applications/services/gui/modules/file_browser_worker.c index eadc7f219..4386fdfd0 100644 --- a/applications/services/gui/modules/file_browser_worker.c +++ b/applications/services/gui/modules/file_browser_worker.c @@ -493,4 +493,4 @@ void file_browser_worker_load(BrowserWorker* browser, uint32_t offset, uint32_t browser->load_offset = offset; browser->load_count = count; furi_thread_flags_set(furi_thread_get_id(browser->thread), WorkerEvtLoad); -} \ No newline at end of file +} diff --git a/applications/services/gui/modules/file_browser_worker.h b/applications/services/gui/modules/file_browser_worker.h index 3b1373c14..3b4be6aa7 100644 --- a/applications/services/gui/modules/file_browser_worker.h +++ b/applications/services/gui/modules/file_browser_worker.h @@ -67,4 +67,4 @@ void file_browser_worker_load(BrowserWorker* browser, uint32_t offset, uint32_t #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/applications/services/ibuttonsrv/application.fam b/applications/services/ibuttonsrv/application.fam deleted file mode 100644 index e23ac786f..000000000 --- a/applications/services/ibuttonsrv/application.fam +++ /dev/null @@ -1,7 +0,0 @@ -App( - appid="ibuttonsrv", - apptype=FlipperAppType.STARTUP, - entry_point="ibutton_on_system_start", - requires=["ibutton"], - order=60, -) diff --git a/applications/services/infraredsrv/application.fam b/applications/services/infraredsrv/application.fam deleted file mode 100644 index 53168216c..000000000 --- a/applications/services/infraredsrv/application.fam +++ /dev/null @@ -1,7 +0,0 @@ -App( - appid="infraredsrv", - apptype=FlipperAppType.STARTUP, - entry_point="infrared_on_system_start", - requires=["infrared"], - order=20, -) diff --git a/applications/services/infraredsrv/infrared_brute_force.c b/applications/services/infraredsrv/infrared_brute_force.c deleted file mode 100644 index 31bcabd1d..000000000 --- a/applications/services/infraredsrv/infrared_brute_force.c +++ /dev/null @@ -1,158 +0,0 @@ -#include "infrared_brute_force.h" - -#include -#include -#include - -#include "infrared_signal.h" - -typedef struct { - uint32_t index; - uint32_t count; -} InfraredBruteForceRecord; - -DICT_DEF2( - InfraredBruteForceRecordDict, - FuriString*, - FURI_STRING_OPLIST, - InfraredBruteForceRecord, - M_POD_OPLIST); - -struct InfraredBruteForce { - FlipperFormat* ff; - const char* db_filename; - FuriString* current_record_name; - InfraredSignal* current_signal; - InfraredBruteForceRecordDict_t records; - bool is_started; -}; - -InfraredBruteForce* infrared_brute_force_alloc() { - InfraredBruteForce* brute_force = malloc(sizeof(InfraredBruteForce)); - brute_force->ff = NULL; - brute_force->db_filename = NULL; - brute_force->current_signal = NULL; - brute_force->is_started = false; - brute_force->current_record_name = furi_string_alloc(); - InfraredBruteForceRecordDict_init(brute_force->records); - return brute_force; -} - -void infrared_brute_force_clear_records(InfraredBruteForce* brute_force) { - furi_assert(!brute_force->is_started); - InfraredBruteForceRecordDict_reset(brute_force->records); -} - -void infrared_brute_force_free(InfraredBruteForce* brute_force) { - furi_assert(!brute_force->is_started); - InfraredBruteForceRecordDict_clear(brute_force->records); - furi_string_free(brute_force->current_record_name); - free(brute_force); -} - -void infrared_brute_force_set_db_filename(InfraredBruteForce* brute_force, const char* db_filename) { - furi_assert(!brute_force->is_started); - brute_force->db_filename = db_filename; -} - -bool infrared_brute_force_calculate_messages(InfraredBruteForce* brute_force) { - furi_assert(!brute_force->is_started); - furi_assert(brute_force->db_filename); - bool success = false; - - Storage* storage = furi_record_open(RECORD_STORAGE); - FlipperFormat* ff = flipper_format_buffered_file_alloc(storage); - - success = flipper_format_buffered_file_open_existing(ff, brute_force->db_filename); - if(success) { - FuriString* signal_name; - signal_name = furi_string_alloc(); - while(flipper_format_read_string(ff, "name", signal_name)) { - InfraredBruteForceRecord* record = - InfraredBruteForceRecordDict_get(brute_force->records, signal_name); - if(record) { - ++(record->count); - } - } - furi_string_free(signal_name); - } - - flipper_format_free(ff); - furi_record_close(RECORD_STORAGE); - return success; -} - -bool infrared_brute_force_start( - InfraredBruteForce* brute_force, - uint32_t index, - uint32_t* record_count) { - furi_assert(!brute_force->is_started); - bool success = false; - *record_count = 0; - - InfraredBruteForceRecordDict_it_t it; - for(InfraredBruteForceRecordDict_it(it, brute_force->records); - !InfraredBruteForceRecordDict_end_p(it); - InfraredBruteForceRecordDict_next(it)) { - const InfraredBruteForceRecordDict_itref_t* record = InfraredBruteForceRecordDict_cref(it); - if(record->value.index == index) { - *record_count = record->value.count; - if(*record_count) { - furi_string_set(brute_force->current_record_name, record->key); - } - break; - } - } - - if(*record_count) { - Storage* storage = furi_record_open(RECORD_STORAGE); - brute_force->ff = flipper_format_buffered_file_alloc(storage); - brute_force->current_signal = infrared_signal_alloc(); - brute_force->is_started = true; - success = - flipper_format_buffered_file_open_existing(brute_force->ff, brute_force->db_filename); - if(!success) infrared_brute_force_stop(brute_force); - } - return success; -} - -bool infrared_brute_force_is_started(InfraredBruteForce* brute_force) { - return brute_force->is_started; -} - -void infrared_brute_force_stop(InfraredBruteForce* brute_force) { - furi_assert(brute_force->is_started); - furi_string_reset(brute_force->current_record_name); - infrared_signal_free(brute_force->current_signal); - flipper_format_free(brute_force->ff); - brute_force->current_signal = NULL; - brute_force->ff = NULL; - brute_force->is_started = false; - furi_record_close(RECORD_STORAGE); -} - -bool infrared_brute_force_send_next(InfraredBruteForce* brute_force) { - furi_assert(brute_force->is_started); - const bool success = infrared_signal_search_and_read( - brute_force->current_signal, brute_force->ff, brute_force->current_record_name); - if(success) { - infrared_signal_transmit(brute_force->current_signal); - } - return success; -} - -void infrared_brute_force_add_record( - InfraredBruteForce* brute_force, - uint32_t index, - const char* name) { - InfraredBruteForceRecord value = {.index = index, .count = 0}; - FuriString* key; - key = furi_string_alloc_set(name); - InfraredBruteForceRecordDict_set_at(brute_force->records, key, value); - furi_string_free(key); -} - -void infrared_brute_force_reset(InfraredBruteForce* brute_force) { - furi_assert(!brute_force->is_started); - InfraredBruteForceRecordDict_reset(brute_force->records); -} diff --git a/applications/services/infraredsrv/infrared_brute_force.h b/applications/services/infraredsrv/infrared_brute_force.h deleted file mode 100644 index cf37935ef..000000000 --- a/applications/services/infraredsrv/infrared_brute_force.h +++ /dev/null @@ -1,24 +0,0 @@ -#pragma once - -#include -#include - -typedef struct InfraredBruteForce InfraredBruteForce; - -InfraredBruteForce* infrared_brute_force_alloc(); -void infrared_brute_force_free(InfraredBruteForce* brute_force); -void infrared_brute_force_reset(InfraredBruteForce* brute_force); -void infrared_brute_force_set_db_filename(InfraredBruteForce* brute_force, const char* db_filename); -bool infrared_brute_force_calculate_messages(InfraredBruteForce* brute_force); -bool infrared_brute_force_start( - InfraredBruteForce* brute_force, - uint32_t index, - uint32_t* record_count); -bool infrared_brute_force_is_started(InfraredBruteForce* brute_force); -void infrared_brute_force_stop(InfraredBruteForce* brute_force); -bool infrared_brute_force_send_next(InfraredBruteForce* brute_force); -void infrared_brute_force_clear_records(InfraredBruteForce* brute_force); -void infrared_brute_force_add_record( - InfraredBruteForce* brute_force, - uint32_t index, - const char* name); diff --git a/applications/services/infraredsrv/infrared_signal.c b/applications/services/infraredsrv/infrared_signal.c deleted file mode 100644 index d399b9587..000000000 --- a/applications/services/infraredsrv/infrared_signal.c +++ /dev/null @@ -1,300 +0,0 @@ -#include "infrared_signal.h" - -#include -#include -#include -#include -#include - -#define TAG "InfraredSignal" - -struct InfraredSignal { - bool is_raw; - union { - InfraredMessage message; - InfraredRawSignal raw; - } payload; -}; - -static void infrared_signal_clear_timings(InfraredSignal* signal) { - if(signal->is_raw) { - free(signal->payload.raw.timings); - signal->payload.raw.timings_size = 0; - signal->payload.raw.timings = NULL; - } -} - -static bool infrared_signal_is_message_valid(InfraredMessage* message) { - if(!infrared_is_protocol_valid(message->protocol)) { - FURI_LOG_E(TAG, "Unknown protocol"); - return false; - } - - uint32_t address_length = infrared_get_protocol_address_length(message->protocol); - uint32_t address_mask = (1UL << address_length) - 1; - - if(message->address != (message->address & address_mask)) { - FURI_LOG_E( - TAG, - "Address is out of range (mask 0x%08lX): 0x%lX\r\n", - address_mask, - message->address); - return false; - } - - uint32_t command_length = infrared_get_protocol_command_length(message->protocol); - uint32_t command_mask = (1UL << command_length) - 1; - - if(message->command != (message->command & command_mask)) { - FURI_LOG_E( - TAG, - "Command is out of range (mask 0x%08lX): 0x%lX\r\n", - command_mask, - message->command); - return false; - } - - return true; -} - -static bool infrared_signal_is_raw_valid(InfraredRawSignal* raw) { - if((raw->frequency > INFRARED_MAX_FREQUENCY) || (raw->frequency < INFRARED_MIN_FREQUENCY)) { - FURI_LOG_E( - TAG, - "Frequency is out of range (%X - %X): %lX", - INFRARED_MIN_FREQUENCY, - INFRARED_MAX_FREQUENCY, - raw->frequency); - return false; - - } else if((raw->duty_cycle <= 0) || (raw->duty_cycle > 1)) { - FURI_LOG_E(TAG, "Duty cycle is out of range (0 - 1): %f", (double)raw->duty_cycle); - return false; - - } else if((raw->timings_size <= 0) || (raw->timings_size > MAX_TIMINGS_AMOUNT)) { - FURI_LOG_E( - TAG, - "Timings amount is out of range (0 - %X): %X", - MAX_TIMINGS_AMOUNT, - raw->timings_size); - return false; - } - - return true; -} - -static inline bool infrared_signal_save_message(InfraredMessage* message, FlipperFormat* ff) { - const char* protocol_name = infrared_get_protocol_name(message->protocol); - return flipper_format_write_string_cstr(ff, "type", "parsed") && - flipper_format_write_string_cstr(ff, "protocol", protocol_name) && - flipper_format_write_hex(ff, "address", (uint8_t*)&message->address, 4) && - flipper_format_write_hex(ff, "command", (uint8_t*)&message->command, 4); -} - -static inline bool infrared_signal_save_raw(InfraredRawSignal* raw, FlipperFormat* ff) { - furi_assert(raw->timings_size <= MAX_TIMINGS_AMOUNT); - return flipper_format_write_string_cstr(ff, "type", "raw") && - flipper_format_write_uint32(ff, "frequency", &raw->frequency, 1) && - flipper_format_write_float(ff, "duty_cycle", &raw->duty_cycle, 1) && - flipper_format_write_uint32(ff, "data", raw->timings, raw->timings_size); -} - -static inline bool infrared_signal_read_message(InfraredSignal* signal, FlipperFormat* ff) { - FuriString* buf; - buf = furi_string_alloc(); - bool success = false; - - do { - if(!flipper_format_read_string(ff, "protocol", buf)) break; - - InfraredMessage message; - message.protocol = infrared_get_protocol_by_name(furi_string_get_cstr(buf)); - - success = flipper_format_read_hex(ff, "address", (uint8_t*)&message.address, 4) && - flipper_format_read_hex(ff, "command", (uint8_t*)&message.command, 4) && - infrared_signal_is_message_valid(&message); - - if(!success) break; - - infrared_signal_set_message(signal, &message); - } while(0); - - furi_string_free(buf); - return success; -} - -static inline bool infrared_signal_read_raw(InfraredSignal* signal, FlipperFormat* ff) { - uint32_t timings_size, frequency; - float duty_cycle; - - bool success = flipper_format_read_uint32(ff, "frequency", &frequency, 1) && - flipper_format_read_float(ff, "duty_cycle", &duty_cycle, 1) && - flipper_format_get_value_count(ff, "data", &timings_size); - - if(!success || timings_size > MAX_TIMINGS_AMOUNT) { - return false; - } - - uint32_t* timings = malloc(sizeof(uint32_t) * timings_size); - success = flipper_format_read_uint32(ff, "data", timings, timings_size); - - if(success) { - infrared_signal_set_raw_signal(signal, timings, timings_size, frequency, duty_cycle); - } - - free(timings); - return success; -} - -static bool infrared_signal_read_body(InfraredSignal* signal, FlipperFormat* ff) { - FuriString* tmp = furi_string_alloc(); - - bool success = false; - - do { - if(!flipper_format_read_string(ff, "type", tmp)) break; - if(furi_string_equal(tmp, "raw")) { - success = infrared_signal_read_raw(signal, ff); - } else if(furi_string_equal(tmp, "parsed")) { - success = infrared_signal_read_message(signal, ff); - } else { - FURI_LOG_E(TAG, "Unknown signal type"); - } - } while(false); - - furi_string_free(tmp); - return success; -} - -InfraredSignal* infrared_signal_alloc() { - InfraredSignal* signal = malloc(sizeof(InfraredSignal)); - - signal->is_raw = false; - signal->payload.message.protocol = InfraredProtocolUnknown; - - return signal; -} - -void infrared_signal_free(InfraredSignal* signal) { - infrared_signal_clear_timings(signal); - free(signal); -} - -bool infrared_signal_is_raw(InfraredSignal* signal) { - return signal->is_raw; -} - -bool infrared_signal_is_valid(InfraredSignal* signal) { - return signal->is_raw ? infrared_signal_is_raw_valid(&signal->payload.raw) : - infrared_signal_is_message_valid(&signal->payload.message); -} - -void infrared_signal_set_signal(InfraredSignal* signal, const InfraredSignal* other) { - if(other->is_raw) { - const InfraredRawSignal* raw = &other->payload.raw; - infrared_signal_set_raw_signal( - signal, raw->timings, raw->timings_size, raw->frequency, raw->duty_cycle); - } else { - const InfraredMessage* message = &other->payload.message; - infrared_signal_set_message(signal, message); - } -} - -void infrared_signal_set_raw_signal( - InfraredSignal* signal, - const uint32_t* timings, - size_t timings_size, - uint32_t frequency, - float duty_cycle) { - infrared_signal_clear_timings(signal); - - signal->is_raw = true; - - signal->payload.raw.timings_size = timings_size; - signal->payload.raw.frequency = frequency; - signal->payload.raw.duty_cycle = duty_cycle; - - signal->payload.raw.timings = malloc(timings_size * sizeof(uint32_t)); - memcpy(signal->payload.raw.timings, timings, timings_size * sizeof(uint32_t)); -} - -InfraredRawSignal* infrared_signal_get_raw_signal(InfraredSignal* signal) { - furi_assert(signal->is_raw); - return &signal->payload.raw; -} - -void infrared_signal_set_message(InfraredSignal* signal, const InfraredMessage* message) { - infrared_signal_clear_timings(signal); - - signal->is_raw = false; - signal->payload.message = *message; -} - -InfraredMessage* infrared_signal_get_message(InfraredSignal* signal) { - furi_assert(!signal->is_raw); - return &signal->payload.message; -} - -bool infrared_signal_save(InfraredSignal* signal, FlipperFormat* ff, const char* name) { - if(!flipper_format_write_comment_cstr(ff, "") || - !flipper_format_write_string_cstr(ff, "name", name)) { - return false; - } else if(signal->is_raw) { - return infrared_signal_save_raw(&signal->payload.raw, ff); - } else { - return infrared_signal_save_message(&signal->payload.message, ff); - } -} - -bool infrared_signal_read(InfraredSignal* signal, FlipperFormat* ff, FuriString* name) { - FuriString* tmp = furi_string_alloc(); - - bool success = false; - - do { - if(!flipper_format_read_string(ff, "name", tmp)) break; - furi_string_set(name, tmp); - if(!infrared_signal_read_body(signal, ff)) break; - success = true; - } while(0); - - furi_string_free(tmp); - return success; -} - -bool infrared_signal_search_and_read( - InfraredSignal* signal, - FlipperFormat* ff, - const FuriString* name) { - bool success = false; - FuriString* tmp = furi_string_alloc(); - - do { - bool is_name_found = false; - while(flipper_format_read_string(ff, "name", tmp)) { - is_name_found = furi_string_equal(name, tmp); - if(is_name_found) break; - } - if(!is_name_found) break; - if(!infrared_signal_read_body(signal, ff)) break; - success = true; - } while(false); - - furi_string_free(tmp); - return success; -} - -void infrared_signal_transmit(InfraredSignal* signal) { - if(signal->is_raw) { - InfraredRawSignal* raw_signal = &signal->payload.raw; - infrared_send_raw_ext( - raw_signal->timings, - raw_signal->timings_size, - true, - raw_signal->frequency, - raw_signal->duty_cycle); - } else { - InfraredMessage* message = &signal->payload.message; - infrared_send(message, 1); - } -} diff --git a/applications/services/infraredsrv/infrared_signal.h b/applications/services/infraredsrv/infrared_signal.h deleted file mode 100644 index 29c661938..000000000 --- a/applications/services/infraredsrv/infrared_signal.h +++ /dev/null @@ -1,45 +0,0 @@ -#pragma once - -#include -#include -#include - -#include -#include - -typedef struct InfraredSignal InfraredSignal; - -typedef struct { - size_t timings_size; - uint32_t* timings; - uint32_t frequency; - float duty_cycle; -} InfraredRawSignal; - -InfraredSignal* infrared_signal_alloc(); -void infrared_signal_free(InfraredSignal* signal); - -bool infrared_signal_is_raw(InfraredSignal* signal); -bool infrared_signal_is_valid(InfraredSignal* signal); - -void infrared_signal_set_signal(InfraredSignal* signal, const InfraredSignal* other); - -void infrared_signal_set_raw_signal( - InfraredSignal* signal, - const uint32_t* timings, - size_t timings_size, - uint32_t frequency, - float duty_cycle); -InfraredRawSignal* infrared_signal_get_raw_signal(InfraredSignal* signal); - -void infrared_signal_set_message(InfraredSignal* signal, const InfraredMessage* message); -InfraredMessage* infrared_signal_get_message(InfraredSignal* signal); - -bool infrared_signal_save(InfraredSignal* signal, FlipperFormat* ff, const char* name); -bool infrared_signal_read(InfraredSignal* signal, FlipperFormat* ff, FuriString* name); -bool infrared_signal_search_and_read( - InfraredSignal* signal, - FlipperFormat* ff, - const FuriString* name); - -void infrared_signal_transmit(InfraredSignal* signal); diff --git a/applications/services/lfrfidsrv/application.fam b/applications/services/lfrfidsrv/application.fam deleted file mode 100644 index 9a6044d00..000000000 --- a/applications/services/lfrfidsrv/application.fam +++ /dev/null @@ -1,7 +0,0 @@ -App( - appid="lfrfidsrv", - apptype=FlipperAppType.STARTUP, - entry_point="lfrfid_on_system_start", - requires=["lfrfid"], - order=50, -) diff --git a/applications/services/namechangersrv/application.fam b/applications/services/namechangersrv/application.fam index 5b64db607..b4bace40d 100644 --- a/applications/services/namechangersrv/application.fam +++ b/applications/services/namechangersrv/application.fam @@ -3,5 +3,5 @@ App( apptype=FlipperAppType.STARTUP, entry_point="namechanger_on_system_start", requires=["storage"], - order=130, + order=1000, ) \ No newline at end of file diff --git a/applications/services/namechangersrv/namechangersrv.c b/applications/services/namechangersrv/namechangersrv.c index d05c2cdc5..3e63c9120 100644 --- a/applications/services/namechangersrv/namechangersrv.c +++ b/applications/services/namechangersrv/namechangersrv.c @@ -4,177 +4,168 @@ #include void namechanger_on_system_start() { - Storage* storage = furi_record_open(RECORD_STORAGE); - FlipperFormat* file = flipper_format_file_alloc(storage); + if (furi_hal_rtc_get_boot_mode() != FuriHalRtcBootModeNormal) + { + FURI_LOG_W(TAG, "NameChangerSRV load skipped. Device is in special startup mode."); + } + else + { + Storage* storage = furi_record_open(RECORD_STORAGE); + FlipperFormat* file = flipper_format_file_alloc(storage); - FuriString* NAMEHEADER; - NAMEHEADER = furi_string_alloc_set("Flipper Name File"); + FuriString* NAMEHEADER; + NAMEHEADER = furi_string_alloc_set("Flipper Name File"); - FuriString* folderpath; - folderpath = furi_string_alloc_set("/ext/dolphin"); + FuriString* filepath; + filepath = furi_string_alloc_set("/ext/dolphin/name.txt"); - FuriString* filepath; - filepath = furi_string_alloc_set("/ext/dolphin/name.txt"); - - //Make dir if doesn't exist - if(storage_simply_mkdir(storage, furi_string_get_cstr(folderpath))) { bool result = false; FuriString* data; data = furi_string_alloc(); do { - if(!flipper_format_file_open_existing(file, furi_string_get_cstr(filepath))) { + if (!flipper_format_file_open_existing(file, furi_string_get_cstr(filepath))) { break; } // header uint32_t version; - if(!flipper_format_read_header(file, data, &version)) { + if (!flipper_format_read_header(file, data, &version)) { break; } - if(furi_string_cmp_str(data, furi_string_get_cstr(NAMEHEADER)) != 0) { + if (furi_string_cmp_str(data, furi_string_get_cstr(NAMEHEADER)) != 0) { break; } - if(version != 1) { + if (version != 1) { break; } // get Name - if(!flipper_format_read_string(file, "Name", data)) { + if (!flipper_format_read_string(file, "Name", data)) { break; } result = true; - } while(false); + } while (false); flipper_format_free(file); - if(!result) { + if (!result) { //file not good - write new one FlipperFormat* file = flipper_format_file_alloc(storage); bool res = false; - FuriString* name; - name = furi_string_alloc_set(furi_hal_version_get_name_ptr()); - do { // Open file for write - if(!flipper_format_file_open_always(file, furi_string_get_cstr(filepath))) { + if (!flipper_format_file_open_always(file, furi_string_get_cstr(filepath))) { break; } // Write header - if(!flipper_format_write_header_cstr(file, furi_string_get_cstr(NAMEHEADER), 1)) { + if (!flipper_format_write_header_cstr(file, furi_string_get_cstr(NAMEHEADER), 1)) { break; } // Write comments - if(!flipper_format_write_comment_cstr( - file, - "Changing the value below will change your FlipperZero device name.")) { + if (!flipper_format_write_comment_cstr( + file, + "Changing the value below will change your FlipperZero device name.")) { break; } - if(!flipper_format_write_comment_cstr( - file, - "Note: This is limited to 8 characters using the following: a-z, A-Z, 0-9, and _")) { + if (!flipper_format_write_comment_cstr( + file, + "Note: This is limited to 8 characters using the following: a-z, A-Z, 0-9, and _")) { break; } - if(!flipper_format_write_comment_cstr( - file, "It can contain other characters but use at your own risk.")) { + if (!flipper_format_write_comment_cstr( + file, "It can contain other characters but use at your own risk.")) { break; } //Write name - if(!flipper_format_write_string_cstr(file, "Name", furi_string_get_cstr(name))) { + if (!flipper_format_write_string_cstr(file, "Name", furi_hal_version_get_name_ptr())) { break; } res = true; - } while(false); + } while (false); flipper_format_free(file); - if(!res) { + if (!res) { FURI_LOG_E(TAG, "Save failed."); } - - furi_string_free(name); - } else { - furi_string_trim(data); - FURI_LOG_I(TAG, "data: %s", furi_string_get_cstr(data)); - - if(!furi_string_size(data)) { + } + else { + if (!furi_string_size(data)) { //Empty file - get default name and write to file. FlipperFormat* file = flipper_format_file_alloc(storage); bool res = false; - FuriString* name; - name = furi_string_alloc_set(furi_hal_version_get_name_ptr()); - do { // Open file for write - if(!flipper_format_file_open_always(file, furi_string_get_cstr(filepath))) { + if (!flipper_format_file_open_always(file, furi_string_get_cstr(filepath))) { break; } // Write header - if(!flipper_format_write_header_cstr( - file, furi_string_get_cstr(NAMEHEADER), 1)) { + if (!flipper_format_write_header_cstr( + file, furi_string_get_cstr(NAMEHEADER), 1)) { break; } // Write comments - if(!flipper_format_write_comment_cstr( - file, - "Changing the value below will change your FlipperZero device name.")) { + if (!flipper_format_write_comment_cstr( + file, + "Changing the value below will change your FlipperZero device name.")) { break; } - if(!flipper_format_write_comment_cstr( - file, - "Note: This is limited to 8 characters using the following: a-z, A-Z, 0-9, and _")) { + if (!flipper_format_write_comment_cstr( + file, + "Note: This is limited to 8 characters using the following: a-z, A-Z, 0-9, and _")) { break; } - if(!flipper_format_write_comment_cstr( - file, "It cannot contain any other characters.")) { + if (!flipper_format_write_comment_cstr( + file, "It cannot contain any other characters.")) { break; } //Write name - if(!flipper_format_write_string_cstr( - file, "Name", furi_string_get_cstr(name))) { + if (!flipper_format_write_string_cstr( + file, "Name", furi_hal_version_get_name_ptr())) { break; } res = true; - } while(false); + } while (false); flipper_format_free(file); - if(!res) { + if (!res) { FURI_LOG_E(TAG, "Save failed."); } - - furi_string_free(name); - } else { + } + else { + char newdata[9]; + snprintf(newdata, 9, "%s", furi_string_get_cstr(data)); //set name from file - furi_hal_version_set_custom_name(furi_string_get_cstr(data)); + furi_hal_version_set_custom_name(newdata); } } furi_string_free(data); - } - furi_string_free(filepath); - furi_string_free(folderpath); - furi_record_close(RECORD_STORAGE); -} \ No newline at end of file + furi_string_free(filepath); + furi_record_close(RECORD_STORAGE); + } +} diff --git a/applications/system/updater/util/update_task_worker_backup.c b/applications/system/updater/util/update_task_worker_backup.c index 1f88d4f44..780401068 100644 --- a/applications/system/updater/util/update_task_worker_backup.c +++ b/applications/system/updater/util/update_task_worker_backup.c @@ -79,8 +79,8 @@ static void update_task_set_progress( update_task, UpdateTaskStageProgress, - /* For this stage, first 30% of progress = cleanup */ - (n_processed_files++ * 30) / (n_approx_file_entries + 1)); + /* For this stage, first 20% of progress = cleanup files */ + (n_processed_files++ * 20) / (n_approx_file_entries + 1)); FuriString* file_path = furi_string_alloc(); path_concat( @@ -90,6 +90,46 @@ static void furi_string_free(file_path); } } + + while((entry_ptr = resource_manifest_reader_previous(manifest_reader))) { + if(entry_ptr->type == ResourceManifestEntryTypeDirectory) { + update_task_set_progress( + update_task, + UpdateTaskStageProgress, + /* For this stage, second 10% of progress = cleanup directories */ + (n_processed_files++ * 10) / (n_approx_file_entries + 1)); + + FuriString* folder_path = furi_string_alloc(); + File* folder_file = storage_file_alloc(update_task->storage); + + do { + path_concat( + STORAGE_EXT_PATH_PREFIX, + furi_string_get_cstr(entry_ptr->name), + folder_path); + + FURI_LOG_D(TAG, "Removing folder %s", furi_string_get_cstr(folder_path)); + if(!storage_dir_open(folder_file, furi_string_get_cstr(folder_path))) { + FURI_LOG_W( + TAG, + "%s can't be opened, skipping", + furi_string_get_cstr(folder_path)); + break; + } + + if(storage_dir_read(folder_file, NULL, NULL, 0)) { + FURI_LOG_I( + TAG, "%s is not empty, skipping", furi_string_get_cstr(folder_path)); + break; + } + + storage_simply_remove(update_task->storage, furi_string_get_cstr(folder_path)); + } while(false); + + storage_file_free(folder_file); + furi_string_free(folder_path); + } + } } while(false); resource_manifest_reader_free(manifest_reader); } diff --git a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_0.png b/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_0.png deleted file mode 100644 index 7c2add0e9..000000000 Binary files a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_0.png and /dev/null differ diff --git a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_1.png b/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_1.png deleted file mode 100644 index 27664d203..000000000 Binary files a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_1.png and /dev/null differ diff --git a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_10.png b/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_10.png deleted file mode 100644 index da62ce4cf..000000000 Binary files a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_10.png and /dev/null differ diff --git a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_11.png b/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_11.png deleted file mode 100644 index 7a850b001..000000000 Binary files a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_11.png and /dev/null differ diff --git a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_12.png b/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_12.png deleted file mode 100644 index b980807c7..000000000 Binary files a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_12.png and /dev/null differ diff --git a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_13.png b/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_13.png deleted file mode 100644 index bf8a62d42..000000000 Binary files a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_13.png and /dev/null differ diff --git a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_14.png b/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_14.png deleted file mode 100644 index bd3c0165a..000000000 Binary files a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_14.png and /dev/null differ diff --git a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_15.png b/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_15.png deleted file mode 100644 index 3a04944b1..000000000 Binary files a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_15.png and /dev/null differ diff --git a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_16.png b/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_16.png deleted file mode 100644 index b08d48e7f..000000000 Binary files a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_16.png and /dev/null differ diff --git a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_17.png b/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_17.png deleted file mode 100644 index 5bdd77c12..000000000 Binary files a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_17.png and /dev/null differ diff --git a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_18.png b/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_18.png deleted file mode 100644 index 94b25dd6b..000000000 Binary files a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_18.png and /dev/null differ diff --git a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_19.png b/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_19.png deleted file mode 100644 index 6531182ba..000000000 Binary files a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_19.png and /dev/null differ diff --git a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_2.png b/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_2.png deleted file mode 100644 index 16de2f5a8..000000000 Binary files a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_2.png and /dev/null differ diff --git a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_20.png b/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_20.png deleted file mode 100644 index e0bbf11e9..000000000 Binary files a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_20.png and /dev/null differ diff --git a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_21.png b/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_21.png deleted file mode 100644 index 6cd4277bb..000000000 Binary files a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_21.png and /dev/null differ diff --git a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_22.png b/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_22.png deleted file mode 100644 index c1ace764f..000000000 Binary files a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_22.png and /dev/null differ diff --git a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_23.png b/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_23.png deleted file mode 100644 index 0ad019728..000000000 Binary files a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_23.png and /dev/null differ diff --git a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_24.png b/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_24.png deleted file mode 100644 index 0cc109ea1..000000000 Binary files a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_24.png and /dev/null differ diff --git a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_25.png b/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_25.png deleted file mode 100644 index 6fd18ac98..000000000 Binary files a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_25.png and /dev/null differ diff --git a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_26.png b/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_26.png deleted file mode 100644 index 8e4d322a1..000000000 Binary files a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_26.png and /dev/null differ diff --git a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_27.png b/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_27.png deleted file mode 100644 index 1d6214994..000000000 Binary files a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_27.png and /dev/null differ diff --git a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_3.png b/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_3.png deleted file mode 100644 index 1ee0b55a4..000000000 Binary files a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_3.png and /dev/null differ diff --git a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_4.png b/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_4.png deleted file mode 100644 index 759d3242d..000000000 Binary files a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_4.png and /dev/null differ diff --git a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_5.png b/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_5.png deleted file mode 100644 index 63d2324f2..000000000 Binary files a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_5.png and /dev/null differ diff --git a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_6.png b/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_6.png deleted file mode 100644 index fbea5c447..000000000 Binary files a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_6.png and /dev/null differ diff --git a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_7.png b/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_7.png deleted file mode 100644 index b1f48bf49..000000000 Binary files a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_7.png and /dev/null differ diff --git a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_8.png b/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_8.png deleted file mode 100644 index 38b730fd1..000000000 Binary files a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_8.png and /dev/null differ diff --git a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_9.png b/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_9.png deleted file mode 100644 index e610e30ce..000000000 Binary files a/assets/dolphin/external/PaxGod_TikTok_Marketing/frame_9.png and /dev/null differ diff --git a/assets/dolphin/external/PaxGod_TikTok_Marketing/meta.txt b/assets/dolphin/external/PaxGod_TikTok_Marketing/meta.txt deleted file mode 100644 index f0fa77e2e..000000000 --- a/assets/dolphin/external/PaxGod_TikTok_Marketing/meta.txt +++ /dev/null @@ -1,13 +0,0 @@ -Filetype: Flipper Animation -Version: 1 -Width: 128 -Height: 64 -Passive frames: 21 -Active frames: 1 -Frames order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 -Active cycles: 1 -Frame rate: 5 -Duration: 3600 -Active cooldown: 7 - -Bubble slots: 0 \ No newline at end of file diff --git a/assets/dolphin/external/lvl_10/frame_0.png b/assets/dolphin/external/lvl_10/frame_0.png index 45aea9cfb..b976ce8ce 100644 Binary files a/assets/dolphin/external/lvl_10/frame_0.png and b/assets/dolphin/external/lvl_10/frame_0.png differ diff --git a/assets/dolphin/external/lvl_10/frame_1.png b/assets/dolphin/external/lvl_10/frame_1.png index fc78cf6a1..933a7d8f9 100644 Binary files a/assets/dolphin/external/lvl_10/frame_1.png and b/assets/dolphin/external/lvl_10/frame_1.png differ diff --git a/assets/dolphin/external/lvl_10/frame_10.png b/assets/dolphin/external/lvl_10/frame_10.png new file mode 100644 index 000000000..c20683472 Binary files /dev/null and b/assets/dolphin/external/lvl_10/frame_10.png differ diff --git a/assets/dolphin/external/lvl_10/frame_11.png b/assets/dolphin/external/lvl_10/frame_11.png new file mode 100644 index 000000000..0599ca4c4 Binary files /dev/null and b/assets/dolphin/external/lvl_10/frame_11.png differ diff --git a/assets/dolphin/external/lvl_10/frame_12.png b/assets/dolphin/external/lvl_10/frame_12.png new file mode 100644 index 000000000..aed09aa1a Binary files /dev/null and b/assets/dolphin/external/lvl_10/frame_12.png differ diff --git a/assets/dolphin/external/lvl_10/frame_13.png b/assets/dolphin/external/lvl_10/frame_13.png new file mode 100644 index 000000000..d9cda316b Binary files /dev/null and b/assets/dolphin/external/lvl_10/frame_13.png differ diff --git a/assets/dolphin/external/lvl_10/frame_14.png b/assets/dolphin/external/lvl_10/frame_14.png new file mode 100644 index 000000000..3bdd4cf6c Binary files /dev/null and b/assets/dolphin/external/lvl_10/frame_14.png differ diff --git a/assets/dolphin/external/lvl_10/frame_15.png b/assets/dolphin/external/lvl_10/frame_15.png new file mode 100644 index 000000000..af4c413e7 Binary files /dev/null and b/assets/dolphin/external/lvl_10/frame_15.png differ diff --git a/assets/dolphin/external/lvl_10/frame_16.png b/assets/dolphin/external/lvl_10/frame_16.png new file mode 100644 index 000000000..5c538c065 Binary files /dev/null and b/assets/dolphin/external/lvl_10/frame_16.png differ diff --git a/assets/dolphin/external/lvl_10/frame_17.png b/assets/dolphin/external/lvl_10/frame_17.png new file mode 100644 index 000000000..a12ba1e31 Binary files /dev/null and b/assets/dolphin/external/lvl_10/frame_17.png differ diff --git a/assets/dolphin/external/lvl_10/frame_18.png b/assets/dolphin/external/lvl_10/frame_18.png new file mode 100644 index 000000000..3428ad60d Binary files /dev/null and b/assets/dolphin/external/lvl_10/frame_18.png differ diff --git a/assets/dolphin/external/lvl_10/frame_19.png b/assets/dolphin/external/lvl_10/frame_19.png new file mode 100644 index 000000000..f66eae160 Binary files /dev/null and b/assets/dolphin/external/lvl_10/frame_19.png differ diff --git a/assets/dolphin/external/lvl_10/frame_2.png b/assets/dolphin/external/lvl_10/frame_2.png index 5c0a5dad8..1c30f9903 100644 Binary files a/assets/dolphin/external/lvl_10/frame_2.png and b/assets/dolphin/external/lvl_10/frame_2.png differ diff --git a/assets/dolphin/external/lvl_10/frame_20.png b/assets/dolphin/external/lvl_10/frame_20.png new file mode 100644 index 000000000..45c2b7dfb Binary files /dev/null and b/assets/dolphin/external/lvl_10/frame_20.png differ diff --git a/assets/dolphin/external/lvl_10/frame_21.png b/assets/dolphin/external/lvl_10/frame_21.png new file mode 100644 index 000000000..980f2c3c9 Binary files /dev/null and b/assets/dolphin/external/lvl_10/frame_21.png differ diff --git a/assets/dolphin/external/lvl_10/frame_22.png b/assets/dolphin/external/lvl_10/frame_22.png new file mode 100644 index 000000000..e9939e482 Binary files /dev/null and b/assets/dolphin/external/lvl_10/frame_22.png differ diff --git a/assets/dolphin/external/lvl_10/frame_23.png b/assets/dolphin/external/lvl_10/frame_23.png new file mode 100644 index 000000000..7518f2f8b Binary files /dev/null and b/assets/dolphin/external/lvl_10/frame_23.png differ diff --git a/assets/dolphin/external/lvl_10/frame_24.png b/assets/dolphin/external/lvl_10/frame_24.png new file mode 100644 index 000000000..29dab5d73 Binary files /dev/null and b/assets/dolphin/external/lvl_10/frame_24.png differ diff --git a/assets/dolphin/external/lvl_10/frame_25.png b/assets/dolphin/external/lvl_10/frame_25.png new file mode 100644 index 000000000..5c1cf8963 Binary files /dev/null and b/assets/dolphin/external/lvl_10/frame_25.png differ diff --git a/assets/dolphin/external/lvl_10/frame_26.png b/assets/dolphin/external/lvl_10/frame_26.png new file mode 100644 index 000000000..0657cf100 Binary files /dev/null and b/assets/dolphin/external/lvl_10/frame_26.png differ diff --git a/assets/dolphin/external/lvl_10/frame_27.png b/assets/dolphin/external/lvl_10/frame_27.png new file mode 100644 index 000000000..5885bc0ee Binary files /dev/null and b/assets/dolphin/external/lvl_10/frame_27.png differ diff --git a/assets/dolphin/external/lvl_10/frame_3.png b/assets/dolphin/external/lvl_10/frame_3.png index 900ea071f..8f2de0da5 100644 Binary files a/assets/dolphin/external/lvl_10/frame_3.png and b/assets/dolphin/external/lvl_10/frame_3.png differ diff --git a/assets/dolphin/external/lvl_10/frame_4.png b/assets/dolphin/external/lvl_10/frame_4.png index 4a6ed179b..9d503ddb4 100644 Binary files a/assets/dolphin/external/lvl_10/frame_4.png and b/assets/dolphin/external/lvl_10/frame_4.png differ diff --git a/assets/dolphin/external/lvl_10/frame_5.png b/assets/dolphin/external/lvl_10/frame_5.png index 482a738c4..26fa60fdf 100644 Binary files a/assets/dolphin/external/lvl_10/frame_5.png and b/assets/dolphin/external/lvl_10/frame_5.png differ diff --git a/assets/dolphin/external/lvl_10/frame_6.png b/assets/dolphin/external/lvl_10/frame_6.png index 1d7b6ed86..9e38d9831 100644 Binary files a/assets/dolphin/external/lvl_10/frame_6.png and b/assets/dolphin/external/lvl_10/frame_6.png differ diff --git a/assets/dolphin/external/lvl_10/frame_7.png b/assets/dolphin/external/lvl_10/frame_7.png index 67d7dc316..6d6f8b557 100644 Binary files a/assets/dolphin/external/lvl_10/frame_7.png and b/assets/dolphin/external/lvl_10/frame_7.png differ diff --git a/assets/dolphin/external/lvl_10/frame_8.png b/assets/dolphin/external/lvl_10/frame_8.png new file mode 100644 index 000000000..b15212ceb Binary files /dev/null and b/assets/dolphin/external/lvl_10/frame_8.png differ diff --git a/assets/dolphin/external/lvl_10/frame_9.png b/assets/dolphin/external/lvl_10/frame_9.png new file mode 100644 index 000000000..16c7f0c99 Binary files /dev/null and b/assets/dolphin/external/lvl_10/frame_9.png differ diff --git a/assets/dolphin/external/lvl_10/meta.txt b/assets/dolphin/external/lvl_10/meta.txt index 44d736f04..4ca1452a8 100644 --- a/assets/dolphin/external/lvl_10/meta.txt +++ b/assets/dolphin/external/lvl_10/meta.txt @@ -3,11 +3,11 @@ Version: 1 Width: 128 Height: 64 -Passive frames: 8 +Passive frames: 28 Active frames: 0 -Frames order: 0 1 2 3 4 5 6 7 +Frames order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 Active cycles: 0 -Frame rate: 6 +Frame rate: 7 Duration: 3600 Active cooldown: 0 diff --git a/assets/dolphin/external/lvl_11/frame_0.png b/assets/dolphin/external/lvl_11/frame_0.png index b976ce8ce..70bf0f9df 100644 Binary files a/assets/dolphin/external/lvl_11/frame_0.png and b/assets/dolphin/external/lvl_11/frame_0.png differ diff --git a/assets/dolphin/external/lvl_11/frame_1.png b/assets/dolphin/external/lvl_11/frame_1.png index 933a7d8f9..f96108e28 100644 Binary files a/assets/dolphin/external/lvl_11/frame_1.png and b/assets/dolphin/external/lvl_11/frame_1.png differ diff --git a/assets/dolphin/external/lvl_11/frame_10.png b/assets/dolphin/external/lvl_11/frame_10.png index c20683472..a9d76e1bc 100644 Binary files a/assets/dolphin/external/lvl_11/frame_10.png and b/assets/dolphin/external/lvl_11/frame_10.png differ diff --git a/assets/dolphin/external/lvl_11/frame_11.png b/assets/dolphin/external/lvl_11/frame_11.png index 0599ca4c4..0568a2897 100644 Binary files a/assets/dolphin/external/lvl_11/frame_11.png and b/assets/dolphin/external/lvl_11/frame_11.png differ diff --git a/assets/dolphin/external/lvl_11/frame_12.png b/assets/dolphin/external/lvl_11/frame_12.png index aed09aa1a..d1a267147 100644 Binary files a/assets/dolphin/external/lvl_11/frame_12.png and b/assets/dolphin/external/lvl_11/frame_12.png differ diff --git a/assets/dolphin/external/lvl_11/frame_13.png b/assets/dolphin/external/lvl_11/frame_13.png index d9cda316b..298c1dd1c 100644 Binary files a/assets/dolphin/external/lvl_11/frame_13.png and b/assets/dolphin/external/lvl_11/frame_13.png differ diff --git a/assets/dolphin/external/lvl_11/frame_14.png b/assets/dolphin/external/lvl_11/frame_14.png index 3bdd4cf6c..c1be5238f 100644 Binary files a/assets/dolphin/external/lvl_11/frame_14.png and b/assets/dolphin/external/lvl_11/frame_14.png differ diff --git a/assets/dolphin/external/lvl_11/frame_15.png b/assets/dolphin/external/lvl_11/frame_15.png index af4c413e7..5f5215d7a 100644 Binary files a/assets/dolphin/external/lvl_11/frame_15.png and b/assets/dolphin/external/lvl_11/frame_15.png differ diff --git a/assets/dolphin/external/lvl_11/frame_16.png b/assets/dolphin/external/lvl_11/frame_16.png index 5c538c065..ea34ad14c 100644 Binary files a/assets/dolphin/external/lvl_11/frame_16.png and b/assets/dolphin/external/lvl_11/frame_16.png differ diff --git a/assets/dolphin/external/lvl_11/frame_17.png b/assets/dolphin/external/lvl_11/frame_17.png index a12ba1e31..161b8bebd 100644 Binary files a/assets/dolphin/external/lvl_11/frame_17.png and b/assets/dolphin/external/lvl_11/frame_17.png differ diff --git a/assets/dolphin/external/lvl_11/frame_18.png b/assets/dolphin/external/lvl_11/frame_18.png index 3428ad60d..3d55d0ad6 100644 Binary files a/assets/dolphin/external/lvl_11/frame_18.png and b/assets/dolphin/external/lvl_11/frame_18.png differ diff --git a/assets/dolphin/external/lvl_11/frame_19.png b/assets/dolphin/external/lvl_11/frame_19.png index f66eae160..e36243b48 100644 Binary files a/assets/dolphin/external/lvl_11/frame_19.png and b/assets/dolphin/external/lvl_11/frame_19.png differ diff --git a/assets/dolphin/external/lvl_11/frame_2.png b/assets/dolphin/external/lvl_11/frame_2.png index 1c30f9903..4f5934cdf 100644 Binary files a/assets/dolphin/external/lvl_11/frame_2.png and b/assets/dolphin/external/lvl_11/frame_2.png differ diff --git a/assets/dolphin/external/lvl_11/frame_20.png b/assets/dolphin/external/lvl_11/frame_20.png index 45c2b7dfb..eac7d0bb4 100644 Binary files a/assets/dolphin/external/lvl_11/frame_20.png and b/assets/dolphin/external/lvl_11/frame_20.png differ diff --git a/assets/dolphin/external/lvl_11/frame_21.png b/assets/dolphin/external/lvl_11/frame_21.png index 980f2c3c9..eff851f79 100644 Binary files a/assets/dolphin/external/lvl_11/frame_21.png and b/assets/dolphin/external/lvl_11/frame_21.png differ diff --git a/assets/dolphin/external/lvl_11/frame_22.png b/assets/dolphin/external/lvl_11/frame_22.png index e9939e482..4978dd160 100644 Binary files a/assets/dolphin/external/lvl_11/frame_22.png and b/assets/dolphin/external/lvl_11/frame_22.png differ diff --git a/assets/dolphin/external/lvl_11/frame_23.png b/assets/dolphin/external/lvl_11/frame_23.png index 7518f2f8b..0721cc82d 100644 Binary files a/assets/dolphin/external/lvl_11/frame_23.png and b/assets/dolphin/external/lvl_11/frame_23.png differ diff --git a/assets/dolphin/external/lvl_11/frame_24.png b/assets/dolphin/external/lvl_11/frame_24.png index 29dab5d73..b3eb03d35 100644 Binary files a/assets/dolphin/external/lvl_11/frame_24.png and b/assets/dolphin/external/lvl_11/frame_24.png differ diff --git a/assets/dolphin/external/lvl_11/frame_25.png b/assets/dolphin/external/lvl_11/frame_25.png index 5c1cf8963..4b1e83634 100644 Binary files a/assets/dolphin/external/lvl_11/frame_25.png and b/assets/dolphin/external/lvl_11/frame_25.png differ diff --git a/assets/dolphin/external/lvl_11/frame_26.png b/assets/dolphin/external/lvl_11/frame_26.png index 0657cf100..cecb1de1f 100644 Binary files a/assets/dolphin/external/lvl_11/frame_26.png and b/assets/dolphin/external/lvl_11/frame_26.png differ diff --git a/assets/dolphin/external/lvl_11/frame_27.png b/assets/dolphin/external/lvl_11/frame_27.png index 5885bc0ee..4aa0b09c0 100644 Binary files a/assets/dolphin/external/lvl_11/frame_27.png and b/assets/dolphin/external/lvl_11/frame_27.png differ diff --git a/assets/dolphin/external/lvl_11/frame_28.png b/assets/dolphin/external/lvl_11/frame_28.png new file mode 100644 index 000000000..9c714210b Binary files /dev/null and b/assets/dolphin/external/lvl_11/frame_28.png differ diff --git a/assets/dolphin/external/lvl_11/frame_29.png b/assets/dolphin/external/lvl_11/frame_29.png new file mode 100644 index 000000000..25f6ca8b4 Binary files /dev/null and b/assets/dolphin/external/lvl_11/frame_29.png differ diff --git a/assets/dolphin/external/lvl_11/frame_3.png b/assets/dolphin/external/lvl_11/frame_3.png index 8f2de0da5..4b2d4242e 100644 Binary files a/assets/dolphin/external/lvl_11/frame_3.png and b/assets/dolphin/external/lvl_11/frame_3.png differ diff --git a/assets/dolphin/external/lvl_11/frame_30.png b/assets/dolphin/external/lvl_11/frame_30.png new file mode 100644 index 000000000..a439c6db2 Binary files /dev/null and b/assets/dolphin/external/lvl_11/frame_30.png differ diff --git a/assets/dolphin/external/lvl_11/frame_31.png b/assets/dolphin/external/lvl_11/frame_31.png new file mode 100644 index 000000000..696fa70c5 Binary files /dev/null and b/assets/dolphin/external/lvl_11/frame_31.png differ diff --git a/assets/dolphin/external/lvl_11/frame_32.png b/assets/dolphin/external/lvl_11/frame_32.png new file mode 100644 index 000000000..0f2893841 Binary files /dev/null and b/assets/dolphin/external/lvl_11/frame_32.png differ diff --git a/assets/dolphin/external/lvl_11/frame_33.png b/assets/dolphin/external/lvl_11/frame_33.png new file mode 100644 index 000000000..9c1c5b5ec Binary files /dev/null and b/assets/dolphin/external/lvl_11/frame_33.png differ diff --git a/assets/dolphin/external/lvl_11/frame_34.png b/assets/dolphin/external/lvl_11/frame_34.png new file mode 100644 index 000000000..b142e9851 Binary files /dev/null and b/assets/dolphin/external/lvl_11/frame_34.png differ diff --git a/assets/dolphin/external/lvl_11/frame_35.png b/assets/dolphin/external/lvl_11/frame_35.png new file mode 100644 index 000000000..b9baf4762 Binary files /dev/null and b/assets/dolphin/external/lvl_11/frame_35.png differ diff --git a/assets/dolphin/external/lvl_11/frame_36.png b/assets/dolphin/external/lvl_11/frame_36.png new file mode 100644 index 000000000..1ea58ed16 Binary files /dev/null and b/assets/dolphin/external/lvl_11/frame_36.png differ diff --git a/assets/dolphin/external/lvl_11/frame_37.png b/assets/dolphin/external/lvl_11/frame_37.png new file mode 100644 index 000000000..137e90548 Binary files /dev/null and b/assets/dolphin/external/lvl_11/frame_37.png differ diff --git a/assets/dolphin/external/lvl_11/frame_38.png b/assets/dolphin/external/lvl_11/frame_38.png new file mode 100644 index 000000000..cb2fd49a7 Binary files /dev/null and b/assets/dolphin/external/lvl_11/frame_38.png differ diff --git a/assets/dolphin/external/lvl_11/frame_39.png b/assets/dolphin/external/lvl_11/frame_39.png new file mode 100644 index 000000000..f5f27edc8 Binary files /dev/null and b/assets/dolphin/external/lvl_11/frame_39.png differ diff --git a/assets/dolphin/external/lvl_11/frame_4.png b/assets/dolphin/external/lvl_11/frame_4.png index 9d503ddb4..5bcf398dc 100644 Binary files a/assets/dolphin/external/lvl_11/frame_4.png and b/assets/dolphin/external/lvl_11/frame_4.png differ diff --git a/assets/dolphin/external/lvl_11/frame_40.png b/assets/dolphin/external/lvl_11/frame_40.png new file mode 100644 index 000000000..039b790e6 Binary files /dev/null and b/assets/dolphin/external/lvl_11/frame_40.png differ diff --git a/assets/dolphin/external/lvl_11/frame_41.png b/assets/dolphin/external/lvl_11/frame_41.png new file mode 100644 index 000000000..9f0f3204f Binary files /dev/null and b/assets/dolphin/external/lvl_11/frame_41.png differ diff --git a/assets/dolphin/external/lvl_11/frame_42.png b/assets/dolphin/external/lvl_11/frame_42.png new file mode 100644 index 000000000..8b13e1bde Binary files /dev/null and b/assets/dolphin/external/lvl_11/frame_42.png differ diff --git a/assets/dolphin/external/lvl_11/frame_43.png b/assets/dolphin/external/lvl_11/frame_43.png new file mode 100644 index 000000000..39601f89a Binary files /dev/null and b/assets/dolphin/external/lvl_11/frame_43.png differ diff --git a/assets/dolphin/external/lvl_11/frame_44.png b/assets/dolphin/external/lvl_11/frame_44.png new file mode 100644 index 000000000..e4d83835e Binary files /dev/null and b/assets/dolphin/external/lvl_11/frame_44.png differ diff --git a/assets/dolphin/external/lvl_11/frame_45.png b/assets/dolphin/external/lvl_11/frame_45.png new file mode 100644 index 000000000..8f67f2746 Binary files /dev/null and b/assets/dolphin/external/lvl_11/frame_45.png differ diff --git a/assets/dolphin/external/lvl_11/frame_46.png b/assets/dolphin/external/lvl_11/frame_46.png new file mode 100644 index 000000000..b8109b9e8 Binary files /dev/null and b/assets/dolphin/external/lvl_11/frame_46.png differ diff --git a/assets/dolphin/external/lvl_11/frame_47.png b/assets/dolphin/external/lvl_11/frame_47.png new file mode 100644 index 000000000..0fa9f4f40 Binary files /dev/null and b/assets/dolphin/external/lvl_11/frame_47.png differ diff --git a/assets/dolphin/external/lvl_11/frame_48.png b/assets/dolphin/external/lvl_11/frame_48.png new file mode 100644 index 000000000..c747b0bde Binary files /dev/null and b/assets/dolphin/external/lvl_11/frame_48.png differ diff --git a/assets/dolphin/external/lvl_11/frame_49.png b/assets/dolphin/external/lvl_11/frame_49.png new file mode 100644 index 000000000..a27657990 Binary files /dev/null and b/assets/dolphin/external/lvl_11/frame_49.png differ diff --git a/assets/dolphin/external/lvl_11/frame_5.png b/assets/dolphin/external/lvl_11/frame_5.png index 26fa60fdf..d373e590d 100644 Binary files a/assets/dolphin/external/lvl_11/frame_5.png and b/assets/dolphin/external/lvl_11/frame_5.png differ diff --git a/assets/dolphin/external/lvl_11/frame_6.png b/assets/dolphin/external/lvl_11/frame_6.png index 9e38d9831..8d041c760 100644 Binary files a/assets/dolphin/external/lvl_11/frame_6.png and b/assets/dolphin/external/lvl_11/frame_6.png differ diff --git a/assets/dolphin/external/lvl_11/frame_7.png b/assets/dolphin/external/lvl_11/frame_7.png index 6d6f8b557..b07e1b7a2 100644 Binary files a/assets/dolphin/external/lvl_11/frame_7.png and b/assets/dolphin/external/lvl_11/frame_7.png differ diff --git a/assets/dolphin/external/lvl_11/frame_8.png b/assets/dolphin/external/lvl_11/frame_8.png index b15212ceb..4fb514ea5 100644 Binary files a/assets/dolphin/external/lvl_11/frame_8.png and b/assets/dolphin/external/lvl_11/frame_8.png differ diff --git a/assets/dolphin/external/lvl_11/frame_9.png b/assets/dolphin/external/lvl_11/frame_9.png index 16c7f0c99..005377d99 100644 Binary files a/assets/dolphin/external/lvl_11/frame_9.png and b/assets/dolphin/external/lvl_11/frame_9.png differ diff --git a/assets/dolphin/external/lvl_11/meta.txt b/assets/dolphin/external/lvl_11/meta.txt index 4ca1452a8..4d5cb4433 100644 --- a/assets/dolphin/external/lvl_11/meta.txt +++ b/assets/dolphin/external/lvl_11/meta.txt @@ -3,11 +3,11 @@ Version: 1 Width: 128 Height: 64 -Passive frames: 28 +Passive frames: 50 Active frames: 0 -Frames order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 +Frames order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 Active cycles: 0 -Frame rate: 7 +Frame rate: 6 Duration: 3600 Active cooldown: 0 diff --git a/assets/dolphin/external/lvl_21/frame_0.png b/assets/dolphin/external/lvl_21/frame_0.png index 28c3c4768..7691943ea 100644 Binary files a/assets/dolphin/external/lvl_21/frame_0.png and b/assets/dolphin/external/lvl_21/frame_0.png differ diff --git a/assets/dolphin/external/lvl_21/frame_1.png b/assets/dolphin/external/lvl_21/frame_1.png index a598007af..3b3257132 100644 Binary files a/assets/dolphin/external/lvl_21/frame_1.png and b/assets/dolphin/external/lvl_21/frame_1.png differ diff --git a/assets/dolphin/external/lvl_21/frame_2.png b/assets/dolphin/external/lvl_21/frame_2.png index a598007af..1916e3235 100644 Binary files a/assets/dolphin/external/lvl_21/frame_2.png and b/assets/dolphin/external/lvl_21/frame_2.png differ diff --git a/assets/dolphin/external/lvl_21/frame_3.png b/assets/dolphin/external/lvl_21/frame_3.png index a77e864dd..deeb10f2d 100644 Binary files a/assets/dolphin/external/lvl_21/frame_3.png and b/assets/dolphin/external/lvl_21/frame_3.png differ diff --git a/assets/dolphin/external/lvl_21/frame_4.png b/assets/dolphin/external/lvl_21/frame_4.png index a77e864dd..9328480b5 100644 Binary files a/assets/dolphin/external/lvl_21/frame_4.png and b/assets/dolphin/external/lvl_21/frame_4.png differ diff --git a/assets/dolphin/external/lvl_21/frame_5.png b/assets/dolphin/external/lvl_21/frame_5.png index b5c3ebb38..898cb4a1c 100644 Binary files a/assets/dolphin/external/lvl_21/frame_5.png and b/assets/dolphin/external/lvl_21/frame_5.png differ diff --git a/assets/dolphin/external/lvl_21/meta.txt b/assets/dolphin/external/lvl_21/meta.txt index 919490b3d..d9d683102 100644 --- a/assets/dolphin/external/lvl_21/meta.txt +++ b/assets/dolphin/external/lvl_21/meta.txt @@ -3,9 +3,9 @@ Version: 1 Width: 128 Height: 64 -Passive frames: 60 +Passive frames: 6 Active frames: 0 -Frames order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 +Frames order: 0 1 2 3 4 5 Active cycles: 0 Frame rate: 6 Duration: 3600 diff --git a/assets/dolphin/external/lvl_22/frame_0.png b/assets/dolphin/external/lvl_22/frame_0.png index 7691943ea..28c3c4768 100644 Binary files a/assets/dolphin/external/lvl_22/frame_0.png and b/assets/dolphin/external/lvl_22/frame_0.png differ diff --git a/assets/dolphin/external/lvl_22/frame_1.png b/assets/dolphin/external/lvl_22/frame_1.png index 3b3257132..a598007af 100644 Binary files a/assets/dolphin/external/lvl_22/frame_1.png and b/assets/dolphin/external/lvl_22/frame_1.png differ diff --git a/assets/dolphin/external/lvl_21/frame_10.png b/assets/dolphin/external/lvl_22/frame_10.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_10.png rename to assets/dolphin/external/lvl_22/frame_10.png diff --git a/assets/dolphin/external/lvl_21/frame_11.png b/assets/dolphin/external/lvl_22/frame_11.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_11.png rename to assets/dolphin/external/lvl_22/frame_11.png diff --git a/assets/dolphin/external/lvl_21/frame_12.png b/assets/dolphin/external/lvl_22/frame_12.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_12.png rename to assets/dolphin/external/lvl_22/frame_12.png diff --git a/assets/dolphin/external/lvl_21/frame_13.png b/assets/dolphin/external/lvl_22/frame_13.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_13.png rename to assets/dolphin/external/lvl_22/frame_13.png diff --git a/assets/dolphin/external/lvl_21/frame_14.png b/assets/dolphin/external/lvl_22/frame_14.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_14.png rename to assets/dolphin/external/lvl_22/frame_14.png diff --git a/assets/dolphin/external/lvl_21/frame_15.png b/assets/dolphin/external/lvl_22/frame_15.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_15.png rename to assets/dolphin/external/lvl_22/frame_15.png diff --git a/assets/dolphin/external/lvl_21/frame_16.png b/assets/dolphin/external/lvl_22/frame_16.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_16.png rename to assets/dolphin/external/lvl_22/frame_16.png diff --git a/assets/dolphin/external/lvl_21/frame_17.png b/assets/dolphin/external/lvl_22/frame_17.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_17.png rename to assets/dolphin/external/lvl_22/frame_17.png diff --git a/assets/dolphin/external/lvl_21/frame_18.png b/assets/dolphin/external/lvl_22/frame_18.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_18.png rename to assets/dolphin/external/lvl_22/frame_18.png diff --git a/assets/dolphin/external/lvl_21/frame_19.png b/assets/dolphin/external/lvl_22/frame_19.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_19.png rename to assets/dolphin/external/lvl_22/frame_19.png diff --git a/assets/dolphin/external/lvl_22/frame_2.png b/assets/dolphin/external/lvl_22/frame_2.png index 1916e3235..a598007af 100644 Binary files a/assets/dolphin/external/lvl_22/frame_2.png and b/assets/dolphin/external/lvl_22/frame_2.png differ diff --git a/assets/dolphin/external/lvl_21/frame_20.png b/assets/dolphin/external/lvl_22/frame_20.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_20.png rename to assets/dolphin/external/lvl_22/frame_20.png diff --git a/assets/dolphin/external/lvl_21/frame_21.png b/assets/dolphin/external/lvl_22/frame_21.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_21.png rename to assets/dolphin/external/lvl_22/frame_21.png diff --git a/assets/dolphin/external/lvl_21/frame_22.png b/assets/dolphin/external/lvl_22/frame_22.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_22.png rename to assets/dolphin/external/lvl_22/frame_22.png diff --git a/assets/dolphin/external/lvl_21/frame_23.png b/assets/dolphin/external/lvl_22/frame_23.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_23.png rename to assets/dolphin/external/lvl_22/frame_23.png diff --git a/assets/dolphin/external/lvl_21/frame_24.png b/assets/dolphin/external/lvl_22/frame_24.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_24.png rename to assets/dolphin/external/lvl_22/frame_24.png diff --git a/assets/dolphin/external/lvl_21/frame_25.png b/assets/dolphin/external/lvl_22/frame_25.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_25.png rename to assets/dolphin/external/lvl_22/frame_25.png diff --git a/assets/dolphin/external/lvl_21/frame_26.png b/assets/dolphin/external/lvl_22/frame_26.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_26.png rename to assets/dolphin/external/lvl_22/frame_26.png diff --git a/assets/dolphin/external/lvl_21/frame_27.png b/assets/dolphin/external/lvl_22/frame_27.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_27.png rename to assets/dolphin/external/lvl_22/frame_27.png diff --git a/assets/dolphin/external/lvl_21/frame_28.png b/assets/dolphin/external/lvl_22/frame_28.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_28.png rename to assets/dolphin/external/lvl_22/frame_28.png diff --git a/assets/dolphin/external/lvl_21/frame_29.png b/assets/dolphin/external/lvl_22/frame_29.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_29.png rename to assets/dolphin/external/lvl_22/frame_29.png diff --git a/assets/dolphin/external/lvl_22/frame_3.png b/assets/dolphin/external/lvl_22/frame_3.png index deeb10f2d..a77e864dd 100644 Binary files a/assets/dolphin/external/lvl_22/frame_3.png and b/assets/dolphin/external/lvl_22/frame_3.png differ diff --git a/assets/dolphin/external/lvl_21/frame_30.png b/assets/dolphin/external/lvl_22/frame_30.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_30.png rename to assets/dolphin/external/lvl_22/frame_30.png diff --git a/assets/dolphin/external/lvl_21/frame_31.png b/assets/dolphin/external/lvl_22/frame_31.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_31.png rename to assets/dolphin/external/lvl_22/frame_31.png diff --git a/assets/dolphin/external/lvl_21/frame_32.png b/assets/dolphin/external/lvl_22/frame_32.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_32.png rename to assets/dolphin/external/lvl_22/frame_32.png diff --git a/assets/dolphin/external/lvl_21/frame_33.png b/assets/dolphin/external/lvl_22/frame_33.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_33.png rename to assets/dolphin/external/lvl_22/frame_33.png diff --git a/assets/dolphin/external/lvl_21/frame_34.png b/assets/dolphin/external/lvl_22/frame_34.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_34.png rename to assets/dolphin/external/lvl_22/frame_34.png diff --git a/assets/dolphin/external/lvl_21/frame_35.png b/assets/dolphin/external/lvl_22/frame_35.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_35.png rename to assets/dolphin/external/lvl_22/frame_35.png diff --git a/assets/dolphin/external/lvl_21/frame_36.png b/assets/dolphin/external/lvl_22/frame_36.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_36.png rename to assets/dolphin/external/lvl_22/frame_36.png diff --git a/assets/dolphin/external/lvl_21/frame_37.png b/assets/dolphin/external/lvl_22/frame_37.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_37.png rename to assets/dolphin/external/lvl_22/frame_37.png diff --git a/assets/dolphin/external/lvl_21/frame_38.png b/assets/dolphin/external/lvl_22/frame_38.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_38.png rename to assets/dolphin/external/lvl_22/frame_38.png diff --git a/assets/dolphin/external/lvl_21/frame_39.png b/assets/dolphin/external/lvl_22/frame_39.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_39.png rename to assets/dolphin/external/lvl_22/frame_39.png diff --git a/assets/dolphin/external/lvl_22/frame_4.png b/assets/dolphin/external/lvl_22/frame_4.png index 9328480b5..a77e864dd 100644 Binary files a/assets/dolphin/external/lvl_22/frame_4.png and b/assets/dolphin/external/lvl_22/frame_4.png differ diff --git a/assets/dolphin/external/lvl_21/frame_40.png b/assets/dolphin/external/lvl_22/frame_40.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_40.png rename to assets/dolphin/external/lvl_22/frame_40.png diff --git a/assets/dolphin/external/lvl_21/frame_41.png b/assets/dolphin/external/lvl_22/frame_41.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_41.png rename to assets/dolphin/external/lvl_22/frame_41.png diff --git a/assets/dolphin/external/lvl_21/frame_42.png b/assets/dolphin/external/lvl_22/frame_42.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_42.png rename to assets/dolphin/external/lvl_22/frame_42.png diff --git a/assets/dolphin/external/lvl_21/frame_43.png b/assets/dolphin/external/lvl_22/frame_43.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_43.png rename to assets/dolphin/external/lvl_22/frame_43.png diff --git a/assets/dolphin/external/lvl_21/frame_44.png b/assets/dolphin/external/lvl_22/frame_44.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_44.png rename to assets/dolphin/external/lvl_22/frame_44.png diff --git a/assets/dolphin/external/lvl_21/frame_45.png b/assets/dolphin/external/lvl_22/frame_45.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_45.png rename to assets/dolphin/external/lvl_22/frame_45.png diff --git a/assets/dolphin/external/lvl_21/frame_46.png b/assets/dolphin/external/lvl_22/frame_46.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_46.png rename to assets/dolphin/external/lvl_22/frame_46.png diff --git a/assets/dolphin/external/lvl_21/frame_47.png b/assets/dolphin/external/lvl_22/frame_47.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_47.png rename to assets/dolphin/external/lvl_22/frame_47.png diff --git a/assets/dolphin/external/lvl_21/frame_48.png b/assets/dolphin/external/lvl_22/frame_48.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_48.png rename to assets/dolphin/external/lvl_22/frame_48.png diff --git a/assets/dolphin/external/lvl_21/frame_49.png b/assets/dolphin/external/lvl_22/frame_49.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_49.png rename to assets/dolphin/external/lvl_22/frame_49.png diff --git a/assets/dolphin/external/lvl_22/frame_5.png b/assets/dolphin/external/lvl_22/frame_5.png index 898cb4a1c..b5c3ebb38 100644 Binary files a/assets/dolphin/external/lvl_22/frame_5.png and b/assets/dolphin/external/lvl_22/frame_5.png differ diff --git a/assets/dolphin/external/lvl_21/frame_50.png b/assets/dolphin/external/lvl_22/frame_50.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_50.png rename to assets/dolphin/external/lvl_22/frame_50.png diff --git a/assets/dolphin/external/lvl_21/frame_51.png b/assets/dolphin/external/lvl_22/frame_51.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_51.png rename to assets/dolphin/external/lvl_22/frame_51.png diff --git a/assets/dolphin/external/lvl_21/frame_52.png b/assets/dolphin/external/lvl_22/frame_52.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_52.png rename to assets/dolphin/external/lvl_22/frame_52.png diff --git a/assets/dolphin/external/lvl_21/frame_53.png b/assets/dolphin/external/lvl_22/frame_53.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_53.png rename to assets/dolphin/external/lvl_22/frame_53.png diff --git a/assets/dolphin/external/lvl_21/frame_54.png b/assets/dolphin/external/lvl_22/frame_54.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_54.png rename to assets/dolphin/external/lvl_22/frame_54.png diff --git a/assets/dolphin/external/lvl_21/frame_55.png b/assets/dolphin/external/lvl_22/frame_55.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_55.png rename to assets/dolphin/external/lvl_22/frame_55.png diff --git a/assets/dolphin/external/lvl_21/frame_56.png b/assets/dolphin/external/lvl_22/frame_56.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_56.png rename to assets/dolphin/external/lvl_22/frame_56.png diff --git a/assets/dolphin/external/lvl_21/frame_57.png b/assets/dolphin/external/lvl_22/frame_57.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_57.png rename to assets/dolphin/external/lvl_22/frame_57.png diff --git a/assets/dolphin/external/lvl_21/frame_58.png b/assets/dolphin/external/lvl_22/frame_58.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_58.png rename to assets/dolphin/external/lvl_22/frame_58.png diff --git a/assets/dolphin/external/lvl_21/frame_59.png b/assets/dolphin/external/lvl_22/frame_59.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_59.png rename to assets/dolphin/external/lvl_22/frame_59.png diff --git a/assets/dolphin/external/lvl_21/frame_6.png b/assets/dolphin/external/lvl_22/frame_6.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_6.png rename to assets/dolphin/external/lvl_22/frame_6.png diff --git a/assets/dolphin/external/lvl_21/frame_7.png b/assets/dolphin/external/lvl_22/frame_7.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_7.png rename to assets/dolphin/external/lvl_22/frame_7.png diff --git a/assets/dolphin/external/lvl_21/frame_8.png b/assets/dolphin/external/lvl_22/frame_8.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_8.png rename to assets/dolphin/external/lvl_22/frame_8.png diff --git a/assets/dolphin/external/lvl_21/frame_9.png b/assets/dolphin/external/lvl_22/frame_9.png similarity index 100% rename from assets/dolphin/external/lvl_21/frame_9.png rename to assets/dolphin/external/lvl_22/frame_9.png diff --git a/assets/dolphin/external/lvl_22/meta.txt b/assets/dolphin/external/lvl_22/meta.txt index d9d683102..919490b3d 100644 --- a/assets/dolphin/external/lvl_22/meta.txt +++ b/assets/dolphin/external/lvl_22/meta.txt @@ -3,9 +3,9 @@ Version: 1 Width: 128 Height: 64 -Passive frames: 6 +Passive frames: 60 Active frames: 0 -Frames order: 0 1 2 3 4 5 +Frames order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 Active cycles: 0 Frame rate: 6 Duration: 3600 diff --git a/assets/dolphin/external/lvl_3/frame_0.png b/assets/dolphin/external/lvl_3/frame_0.png index 1af8ae6d7..b36844a1e 100644 Binary files a/assets/dolphin/external/lvl_3/frame_0.png and b/assets/dolphin/external/lvl_3/frame_0.png differ diff --git a/assets/dolphin/external/lvl_3/frame_1.png b/assets/dolphin/external/lvl_3/frame_1.png index aaa2ab6eb..36a86717f 100644 Binary files a/assets/dolphin/external/lvl_3/frame_1.png and b/assets/dolphin/external/lvl_3/frame_1.png differ diff --git a/assets/dolphin/external/lvl_3/frame_10.png b/assets/dolphin/external/lvl_3/frame_10.png index 2f38dbe5b..fb27302d2 100644 Binary files a/assets/dolphin/external/lvl_3/frame_10.png and b/assets/dolphin/external/lvl_3/frame_10.png differ diff --git a/assets/dolphin/external/lvl_3/frame_11.png b/assets/dolphin/external/lvl_3/frame_11.png index d648807d2..b3327d3ac 100644 Binary files a/assets/dolphin/external/lvl_3/frame_11.png and b/assets/dolphin/external/lvl_3/frame_11.png differ diff --git a/assets/dolphin/external/lvl_3/frame_12.png b/assets/dolphin/external/lvl_3/frame_12.png index 66dd40e7e..62e9ec7ed 100644 Binary files a/assets/dolphin/external/lvl_3/frame_12.png and b/assets/dolphin/external/lvl_3/frame_12.png differ diff --git a/assets/dolphin/external/lvl_3/frame_13.png b/assets/dolphin/external/lvl_3/frame_13.png index 64c1176f8..933318fff 100644 Binary files a/assets/dolphin/external/lvl_3/frame_13.png and b/assets/dolphin/external/lvl_3/frame_13.png differ diff --git a/assets/dolphin/external/lvl_3/frame_14.png b/assets/dolphin/external/lvl_3/frame_14.png index 52b0e75fb..ea0cf1d28 100644 Binary files a/assets/dolphin/external/lvl_3/frame_14.png and b/assets/dolphin/external/lvl_3/frame_14.png differ diff --git a/assets/dolphin/external/lvl_3/frame_15.png b/assets/dolphin/external/lvl_3/frame_15.png deleted file mode 100644 index 1a14dc35b..000000000 Binary files a/assets/dolphin/external/lvl_3/frame_15.png and /dev/null differ diff --git a/assets/dolphin/external/lvl_3/frame_16.png b/assets/dolphin/external/lvl_3/frame_16.png deleted file mode 100644 index e4b7138c0..000000000 Binary files a/assets/dolphin/external/lvl_3/frame_16.png and /dev/null differ diff --git a/assets/dolphin/external/lvl_3/frame_17.png b/assets/dolphin/external/lvl_3/frame_17.png deleted file mode 100644 index 0d37b3642..000000000 Binary files a/assets/dolphin/external/lvl_3/frame_17.png and /dev/null differ diff --git a/assets/dolphin/external/lvl_3/frame_18.png b/assets/dolphin/external/lvl_3/frame_18.png deleted file mode 100644 index 81624f183..000000000 Binary files a/assets/dolphin/external/lvl_3/frame_18.png and /dev/null differ diff --git a/assets/dolphin/external/lvl_3/frame_19.png b/assets/dolphin/external/lvl_3/frame_19.png deleted file mode 100644 index c11512a0c..000000000 Binary files a/assets/dolphin/external/lvl_3/frame_19.png and /dev/null differ diff --git a/assets/dolphin/external/lvl_3/frame_2.png b/assets/dolphin/external/lvl_3/frame_2.png index 2a74c7b39..32a2a1808 100644 Binary files a/assets/dolphin/external/lvl_3/frame_2.png and b/assets/dolphin/external/lvl_3/frame_2.png differ diff --git a/assets/dolphin/external/lvl_3/frame_20.png b/assets/dolphin/external/lvl_3/frame_20.png deleted file mode 100644 index 44e68f8e5..000000000 Binary files a/assets/dolphin/external/lvl_3/frame_20.png and /dev/null differ diff --git a/assets/dolphin/external/lvl_3/frame_21.png b/assets/dolphin/external/lvl_3/frame_21.png deleted file mode 100644 index 9ad288849..000000000 Binary files a/assets/dolphin/external/lvl_3/frame_21.png and /dev/null differ diff --git a/assets/dolphin/external/lvl_3/frame_22.png b/assets/dolphin/external/lvl_3/frame_22.png deleted file mode 100644 index 64a28e198..000000000 Binary files a/assets/dolphin/external/lvl_3/frame_22.png and /dev/null differ diff --git a/assets/dolphin/external/lvl_3/frame_23.png b/assets/dolphin/external/lvl_3/frame_23.png deleted file mode 100644 index bc949e96d..000000000 Binary files a/assets/dolphin/external/lvl_3/frame_23.png and /dev/null differ diff --git a/assets/dolphin/external/lvl_3/frame_24.png b/assets/dolphin/external/lvl_3/frame_24.png deleted file mode 100644 index 252ac05f1..000000000 Binary files a/assets/dolphin/external/lvl_3/frame_24.png and /dev/null differ diff --git a/assets/dolphin/external/lvl_3/frame_3.png b/assets/dolphin/external/lvl_3/frame_3.png index 8a20d986f..150cea710 100644 Binary files a/assets/dolphin/external/lvl_3/frame_3.png and b/assets/dolphin/external/lvl_3/frame_3.png differ diff --git a/assets/dolphin/external/lvl_3/frame_4.png b/assets/dolphin/external/lvl_3/frame_4.png index a717f7ae2..26c1b879d 100644 Binary files a/assets/dolphin/external/lvl_3/frame_4.png and b/assets/dolphin/external/lvl_3/frame_4.png differ diff --git a/assets/dolphin/external/lvl_3/frame_5.png b/assets/dolphin/external/lvl_3/frame_5.png index ae1935014..1b6eff6d1 100644 Binary files a/assets/dolphin/external/lvl_3/frame_5.png and b/assets/dolphin/external/lvl_3/frame_5.png differ diff --git a/assets/dolphin/external/lvl_3/frame_6.png b/assets/dolphin/external/lvl_3/frame_6.png index 488c8c088..dc36ec610 100644 Binary files a/assets/dolphin/external/lvl_3/frame_6.png and b/assets/dolphin/external/lvl_3/frame_6.png differ diff --git a/assets/dolphin/external/lvl_3/frame_7.png b/assets/dolphin/external/lvl_3/frame_7.png index 93be2bf6c..420095ba8 100644 Binary files a/assets/dolphin/external/lvl_3/frame_7.png and b/assets/dolphin/external/lvl_3/frame_7.png differ diff --git a/assets/dolphin/external/lvl_3/frame_8.png b/assets/dolphin/external/lvl_3/frame_8.png index c97188f47..ee20ca2cc 100644 Binary files a/assets/dolphin/external/lvl_3/frame_8.png and b/assets/dolphin/external/lvl_3/frame_8.png differ diff --git a/assets/dolphin/external/lvl_3/frame_9.png b/assets/dolphin/external/lvl_3/frame_9.png index b25df53b8..a580c6589 100644 Binary files a/assets/dolphin/external/lvl_3/frame_9.png and b/assets/dolphin/external/lvl_3/frame_9.png differ diff --git a/assets/dolphin/external/lvl_3/meta.txt b/assets/dolphin/external/lvl_3/meta.txt index 89b5d189a..5fdf4c952 100644 --- a/assets/dolphin/external/lvl_3/meta.txt +++ b/assets/dolphin/external/lvl_3/meta.txt @@ -3,9 +3,9 @@ Version: 1 Width: 128 Height: 64 -Passive frames: 25 +Passive frames: 15 Active frames: 0 -Frames order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 +Frames order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Active cycles: 0 Frame rate: 6 Duration: 3600 diff --git a/assets/dolphin/external/lvl_4/frame_0.png b/assets/dolphin/external/lvl_4/frame_0.png index b36844a1e..da4641ecf 100644 Binary files a/assets/dolphin/external/lvl_4/frame_0.png and b/assets/dolphin/external/lvl_4/frame_0.png differ diff --git a/assets/dolphin/external/lvl_4/frame_1.png b/assets/dolphin/external/lvl_4/frame_1.png index 36a86717f..86bc1f8dd 100644 Binary files a/assets/dolphin/external/lvl_4/frame_1.png and b/assets/dolphin/external/lvl_4/frame_1.png differ diff --git a/assets/dolphin/external/lvl_4/frame_10.png b/assets/dolphin/external/lvl_4/frame_10.png index fb27302d2..15b94b48f 100644 Binary files a/assets/dolphin/external/lvl_4/frame_10.png and b/assets/dolphin/external/lvl_4/frame_10.png differ diff --git a/assets/dolphin/external/lvl_4/frame_11.png b/assets/dolphin/external/lvl_4/frame_11.png index b3327d3ac..97481e5a8 100644 Binary files a/assets/dolphin/external/lvl_4/frame_11.png and b/assets/dolphin/external/lvl_4/frame_11.png differ diff --git a/assets/dolphin/external/lvl_4/frame_12.png b/assets/dolphin/external/lvl_4/frame_12.png index 62e9ec7ed..7f9753590 100644 Binary files a/assets/dolphin/external/lvl_4/frame_12.png and b/assets/dolphin/external/lvl_4/frame_12.png differ diff --git a/assets/dolphin/external/lvl_4/frame_13.png b/assets/dolphin/external/lvl_4/frame_13.png index 933318fff..f610c8d40 100644 Binary files a/assets/dolphin/external/lvl_4/frame_13.png and b/assets/dolphin/external/lvl_4/frame_13.png differ diff --git a/assets/dolphin/external/lvl_4/frame_14.png b/assets/dolphin/external/lvl_4/frame_14.png index ea0cf1d28..913613ca6 100644 Binary files a/assets/dolphin/external/lvl_4/frame_14.png and b/assets/dolphin/external/lvl_4/frame_14.png differ diff --git a/assets/dolphin/external/lvl_4/frame_15.png b/assets/dolphin/external/lvl_4/frame_15.png new file mode 100644 index 000000000..75104663b Binary files /dev/null and b/assets/dolphin/external/lvl_4/frame_15.png differ diff --git a/assets/dolphin/external/lvl_4/frame_16.png b/assets/dolphin/external/lvl_4/frame_16.png new file mode 100644 index 000000000..acde32566 Binary files /dev/null and b/assets/dolphin/external/lvl_4/frame_16.png differ diff --git a/assets/dolphin/external/lvl_4/frame_17.png b/assets/dolphin/external/lvl_4/frame_17.png new file mode 100644 index 000000000..691f31895 Binary files /dev/null and b/assets/dolphin/external/lvl_4/frame_17.png differ diff --git a/assets/dolphin/external/lvl_4/frame_18.png b/assets/dolphin/external/lvl_4/frame_18.png new file mode 100644 index 000000000..907f9793c Binary files /dev/null and b/assets/dolphin/external/lvl_4/frame_18.png differ diff --git a/assets/dolphin/external/lvl_4/frame_19.png b/assets/dolphin/external/lvl_4/frame_19.png new file mode 100644 index 000000000..f3e55b31c Binary files /dev/null and b/assets/dolphin/external/lvl_4/frame_19.png differ diff --git a/assets/dolphin/external/lvl_4/frame_2.png b/assets/dolphin/external/lvl_4/frame_2.png index 32a2a1808..3bf911be3 100644 Binary files a/assets/dolphin/external/lvl_4/frame_2.png and b/assets/dolphin/external/lvl_4/frame_2.png differ diff --git a/assets/dolphin/external/lvl_4/frame_3.png b/assets/dolphin/external/lvl_4/frame_3.png index 150cea710..691689659 100644 Binary files a/assets/dolphin/external/lvl_4/frame_3.png and b/assets/dolphin/external/lvl_4/frame_3.png differ diff --git a/assets/dolphin/external/lvl_4/frame_4.png b/assets/dolphin/external/lvl_4/frame_4.png index 26c1b879d..79caeb03c 100644 Binary files a/assets/dolphin/external/lvl_4/frame_4.png and b/assets/dolphin/external/lvl_4/frame_4.png differ diff --git a/assets/dolphin/external/lvl_4/frame_5.png b/assets/dolphin/external/lvl_4/frame_5.png index 1b6eff6d1..c4efa8425 100644 Binary files a/assets/dolphin/external/lvl_4/frame_5.png and b/assets/dolphin/external/lvl_4/frame_5.png differ diff --git a/assets/dolphin/external/lvl_4/frame_6.png b/assets/dolphin/external/lvl_4/frame_6.png index dc36ec610..a386d577b 100644 Binary files a/assets/dolphin/external/lvl_4/frame_6.png and b/assets/dolphin/external/lvl_4/frame_6.png differ diff --git a/assets/dolphin/external/lvl_4/frame_7.png b/assets/dolphin/external/lvl_4/frame_7.png index 420095ba8..21807b75d 100644 Binary files a/assets/dolphin/external/lvl_4/frame_7.png and b/assets/dolphin/external/lvl_4/frame_7.png differ diff --git a/assets/dolphin/external/lvl_4/frame_8.png b/assets/dolphin/external/lvl_4/frame_8.png index ee20ca2cc..1771a9b0f 100644 Binary files a/assets/dolphin/external/lvl_4/frame_8.png and b/assets/dolphin/external/lvl_4/frame_8.png differ diff --git a/assets/dolphin/external/lvl_4/frame_9.png b/assets/dolphin/external/lvl_4/frame_9.png index a580c6589..2f85a0749 100644 Binary files a/assets/dolphin/external/lvl_4/frame_9.png and b/assets/dolphin/external/lvl_4/frame_9.png differ diff --git a/assets/dolphin/external/lvl_4/meta.txt b/assets/dolphin/external/lvl_4/meta.txt index 5fdf4c952..019cabf17 100644 --- a/assets/dolphin/external/lvl_4/meta.txt +++ b/assets/dolphin/external/lvl_4/meta.txt @@ -3,9 +3,9 @@ Version: 1 Width: 128 Height: 64 -Passive frames: 15 +Passive frames: 20 Active frames: 0 -Frames order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 +Frames order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Active cycles: 0 Frame rate: 6 Duration: 3600 diff --git a/assets/dolphin/external/lvl_5/frame_0.png b/assets/dolphin/external/lvl_5/frame_0.png index da4641ecf..dff0fee52 100644 Binary files a/assets/dolphin/external/lvl_5/frame_0.png and b/assets/dolphin/external/lvl_5/frame_0.png differ diff --git a/assets/dolphin/external/lvl_5/frame_1.png b/assets/dolphin/external/lvl_5/frame_1.png index 86bc1f8dd..1e80c7a41 100644 Binary files a/assets/dolphin/external/lvl_5/frame_1.png and b/assets/dolphin/external/lvl_5/frame_1.png differ diff --git a/assets/dolphin/external/lvl_5/frame_10.png b/assets/dolphin/external/lvl_5/frame_10.png index 15b94b48f..4fd41b8a0 100644 Binary files a/assets/dolphin/external/lvl_5/frame_10.png and b/assets/dolphin/external/lvl_5/frame_10.png differ diff --git a/assets/dolphin/external/lvl_5/frame_11.png b/assets/dolphin/external/lvl_5/frame_11.png index 97481e5a8..64d8a9e90 100644 Binary files a/assets/dolphin/external/lvl_5/frame_11.png and b/assets/dolphin/external/lvl_5/frame_11.png differ diff --git a/assets/dolphin/external/lvl_5/frame_12.png b/assets/dolphin/external/lvl_5/frame_12.png index 7f9753590..5906f5db5 100644 Binary files a/assets/dolphin/external/lvl_5/frame_12.png and b/assets/dolphin/external/lvl_5/frame_12.png differ diff --git a/assets/dolphin/external/lvl_5/frame_13.png b/assets/dolphin/external/lvl_5/frame_13.png index f610c8d40..cb3892a3e 100644 Binary files a/assets/dolphin/external/lvl_5/frame_13.png and b/assets/dolphin/external/lvl_5/frame_13.png differ diff --git a/assets/dolphin/external/lvl_5/frame_14.png b/assets/dolphin/external/lvl_5/frame_14.png index 913613ca6..c439ef616 100644 Binary files a/assets/dolphin/external/lvl_5/frame_14.png and b/assets/dolphin/external/lvl_5/frame_14.png differ diff --git a/assets/dolphin/external/lvl_5/frame_15.png b/assets/dolphin/external/lvl_5/frame_15.png index 75104663b..9ba51dde5 100644 Binary files a/assets/dolphin/external/lvl_5/frame_15.png and b/assets/dolphin/external/lvl_5/frame_15.png differ diff --git a/assets/dolphin/external/lvl_5/frame_16.png b/assets/dolphin/external/lvl_5/frame_16.png index acde32566..6b4eeee56 100644 Binary files a/assets/dolphin/external/lvl_5/frame_16.png and b/assets/dolphin/external/lvl_5/frame_16.png differ diff --git a/assets/dolphin/external/lvl_5/frame_17.png b/assets/dolphin/external/lvl_5/frame_17.png index 691f31895..c0676b158 100644 Binary files a/assets/dolphin/external/lvl_5/frame_17.png and b/assets/dolphin/external/lvl_5/frame_17.png differ diff --git a/assets/dolphin/external/lvl_5/frame_18.png b/assets/dolphin/external/lvl_5/frame_18.png index 907f9793c..a398f6e99 100644 Binary files a/assets/dolphin/external/lvl_5/frame_18.png and b/assets/dolphin/external/lvl_5/frame_18.png differ diff --git a/assets/dolphin/external/lvl_5/frame_19.png b/assets/dolphin/external/lvl_5/frame_19.png index f3e55b31c..1231755fa 100644 Binary files a/assets/dolphin/external/lvl_5/frame_19.png and b/assets/dolphin/external/lvl_5/frame_19.png differ diff --git a/assets/dolphin/external/lvl_5/frame_2.png b/assets/dolphin/external/lvl_5/frame_2.png index 3bf911be3..6c9b79147 100644 Binary files a/assets/dolphin/external/lvl_5/frame_2.png and b/assets/dolphin/external/lvl_5/frame_2.png differ diff --git a/assets/dolphin/external/lvl_6/frame_20.png b/assets/dolphin/external/lvl_5/frame_20.png similarity index 100% rename from assets/dolphin/external/lvl_6/frame_20.png rename to assets/dolphin/external/lvl_5/frame_20.png diff --git a/assets/dolphin/external/lvl_6/frame_21.png b/assets/dolphin/external/lvl_5/frame_21.png similarity index 100% rename from assets/dolphin/external/lvl_6/frame_21.png rename to assets/dolphin/external/lvl_5/frame_21.png diff --git a/assets/dolphin/external/lvl_6/frame_22.png b/assets/dolphin/external/lvl_5/frame_22.png similarity index 100% rename from assets/dolphin/external/lvl_6/frame_22.png rename to assets/dolphin/external/lvl_5/frame_22.png diff --git a/assets/dolphin/external/lvl_6/frame_23.png b/assets/dolphin/external/lvl_5/frame_23.png similarity index 100% rename from assets/dolphin/external/lvl_6/frame_23.png rename to assets/dolphin/external/lvl_5/frame_23.png diff --git a/assets/dolphin/external/lvl_6/frame_24.png b/assets/dolphin/external/lvl_5/frame_24.png similarity index 100% rename from assets/dolphin/external/lvl_6/frame_24.png rename to assets/dolphin/external/lvl_5/frame_24.png diff --git a/assets/dolphin/external/lvl_6/frame_25.png b/assets/dolphin/external/lvl_5/frame_25.png similarity index 100% rename from assets/dolphin/external/lvl_6/frame_25.png rename to assets/dolphin/external/lvl_5/frame_25.png diff --git a/assets/dolphin/external/lvl_6/frame_26.png b/assets/dolphin/external/lvl_5/frame_26.png similarity index 100% rename from assets/dolphin/external/lvl_6/frame_26.png rename to assets/dolphin/external/lvl_5/frame_26.png diff --git a/assets/dolphin/external/lvl_6/frame_27.png b/assets/dolphin/external/lvl_5/frame_27.png similarity index 100% rename from assets/dolphin/external/lvl_6/frame_27.png rename to assets/dolphin/external/lvl_5/frame_27.png diff --git a/assets/dolphin/external/lvl_5/frame_3.png b/assets/dolphin/external/lvl_5/frame_3.png index 691689659..767f22393 100644 Binary files a/assets/dolphin/external/lvl_5/frame_3.png and b/assets/dolphin/external/lvl_5/frame_3.png differ diff --git a/assets/dolphin/external/lvl_5/frame_4.png b/assets/dolphin/external/lvl_5/frame_4.png index 79caeb03c..44f4cf158 100644 Binary files a/assets/dolphin/external/lvl_5/frame_4.png and b/assets/dolphin/external/lvl_5/frame_4.png differ diff --git a/assets/dolphin/external/lvl_5/frame_5.png b/assets/dolphin/external/lvl_5/frame_5.png index c4efa8425..3dc36b529 100644 Binary files a/assets/dolphin/external/lvl_5/frame_5.png and b/assets/dolphin/external/lvl_5/frame_5.png differ diff --git a/assets/dolphin/external/lvl_5/frame_6.png b/assets/dolphin/external/lvl_5/frame_6.png index a386d577b..d6bf1e120 100644 Binary files a/assets/dolphin/external/lvl_5/frame_6.png and b/assets/dolphin/external/lvl_5/frame_6.png differ diff --git a/assets/dolphin/external/lvl_5/frame_7.png b/assets/dolphin/external/lvl_5/frame_7.png index 21807b75d..1c2fbeb54 100644 Binary files a/assets/dolphin/external/lvl_5/frame_7.png and b/assets/dolphin/external/lvl_5/frame_7.png differ diff --git a/assets/dolphin/external/lvl_5/frame_8.png b/assets/dolphin/external/lvl_5/frame_8.png index 1771a9b0f..5e3b646e7 100644 Binary files a/assets/dolphin/external/lvl_5/frame_8.png and b/assets/dolphin/external/lvl_5/frame_8.png differ diff --git a/assets/dolphin/external/lvl_5/frame_9.png b/assets/dolphin/external/lvl_5/frame_9.png index 2f85a0749..42b4e79b2 100644 Binary files a/assets/dolphin/external/lvl_5/frame_9.png and b/assets/dolphin/external/lvl_5/frame_9.png differ diff --git a/assets/dolphin/external/lvl_5/meta.txt b/assets/dolphin/external/lvl_5/meta.txt index 019cabf17..815e3e173 100644 --- a/assets/dolphin/external/lvl_5/meta.txt +++ b/assets/dolphin/external/lvl_5/meta.txt @@ -3,9 +3,9 @@ Version: 1 Width: 128 Height: 64 -Passive frames: 20 +Passive frames: 28 Active frames: 0 -Frames order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 +Frames order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 Active cycles: 0 Frame rate: 6 Duration: 3600 diff --git a/assets/dolphin/external/lvl_6/frame_0.png b/assets/dolphin/external/lvl_6/frame_0.png index dff0fee52..cca06f01b 100644 Binary files a/assets/dolphin/external/lvl_6/frame_0.png and b/assets/dolphin/external/lvl_6/frame_0.png differ diff --git a/assets/dolphin/external/lvl_6/frame_1.png b/assets/dolphin/external/lvl_6/frame_1.png index 1e80c7a41..f1c964a37 100644 Binary files a/assets/dolphin/external/lvl_6/frame_1.png and b/assets/dolphin/external/lvl_6/frame_1.png differ diff --git a/assets/dolphin/external/lvl_6/frame_10.png b/assets/dolphin/external/lvl_6/frame_10.png deleted file mode 100644 index 4fd41b8a0..000000000 Binary files a/assets/dolphin/external/lvl_6/frame_10.png and /dev/null differ diff --git a/assets/dolphin/external/lvl_6/frame_11.png b/assets/dolphin/external/lvl_6/frame_11.png deleted file mode 100644 index 64d8a9e90..000000000 Binary files a/assets/dolphin/external/lvl_6/frame_11.png and /dev/null differ diff --git a/assets/dolphin/external/lvl_6/frame_12.png b/assets/dolphin/external/lvl_6/frame_12.png deleted file mode 100644 index 5906f5db5..000000000 Binary files a/assets/dolphin/external/lvl_6/frame_12.png and /dev/null differ diff --git a/assets/dolphin/external/lvl_6/frame_13.png b/assets/dolphin/external/lvl_6/frame_13.png deleted file mode 100644 index cb3892a3e..000000000 Binary files a/assets/dolphin/external/lvl_6/frame_13.png and /dev/null differ diff --git a/assets/dolphin/external/lvl_6/frame_14.png b/assets/dolphin/external/lvl_6/frame_14.png deleted file mode 100644 index c439ef616..000000000 Binary files a/assets/dolphin/external/lvl_6/frame_14.png and /dev/null differ diff --git a/assets/dolphin/external/lvl_6/frame_15.png b/assets/dolphin/external/lvl_6/frame_15.png deleted file mode 100644 index 9ba51dde5..000000000 Binary files a/assets/dolphin/external/lvl_6/frame_15.png and /dev/null differ diff --git a/assets/dolphin/external/lvl_6/frame_16.png b/assets/dolphin/external/lvl_6/frame_16.png deleted file mode 100644 index 6b4eeee56..000000000 Binary files a/assets/dolphin/external/lvl_6/frame_16.png and /dev/null differ diff --git a/assets/dolphin/external/lvl_6/frame_17.png b/assets/dolphin/external/lvl_6/frame_17.png deleted file mode 100644 index c0676b158..000000000 Binary files a/assets/dolphin/external/lvl_6/frame_17.png and /dev/null differ diff --git a/assets/dolphin/external/lvl_6/frame_18.png b/assets/dolphin/external/lvl_6/frame_18.png deleted file mode 100644 index a398f6e99..000000000 Binary files a/assets/dolphin/external/lvl_6/frame_18.png and /dev/null differ diff --git a/assets/dolphin/external/lvl_6/frame_19.png b/assets/dolphin/external/lvl_6/frame_19.png deleted file mode 100644 index 1231755fa..000000000 Binary files a/assets/dolphin/external/lvl_6/frame_19.png and /dev/null differ diff --git a/assets/dolphin/external/lvl_6/frame_2.png b/assets/dolphin/external/lvl_6/frame_2.png index 6c9b79147..8311e2134 100644 Binary files a/assets/dolphin/external/lvl_6/frame_2.png and b/assets/dolphin/external/lvl_6/frame_2.png differ diff --git a/assets/dolphin/external/lvl_6/frame_3.png b/assets/dolphin/external/lvl_6/frame_3.png index 767f22393..4bf7705c9 100644 Binary files a/assets/dolphin/external/lvl_6/frame_3.png and b/assets/dolphin/external/lvl_6/frame_3.png differ diff --git a/assets/dolphin/external/lvl_6/frame_4.png b/assets/dolphin/external/lvl_6/frame_4.png index 44f4cf158..f1b2d6126 100644 Binary files a/assets/dolphin/external/lvl_6/frame_4.png and b/assets/dolphin/external/lvl_6/frame_4.png differ diff --git a/assets/dolphin/external/lvl_6/frame_5.png b/assets/dolphin/external/lvl_6/frame_5.png index 3dc36b529..9f02b7e42 100644 Binary files a/assets/dolphin/external/lvl_6/frame_5.png and b/assets/dolphin/external/lvl_6/frame_5.png differ diff --git a/assets/dolphin/external/lvl_6/frame_6.png b/assets/dolphin/external/lvl_6/frame_6.png index d6bf1e120..129f8a530 100644 Binary files a/assets/dolphin/external/lvl_6/frame_6.png and b/assets/dolphin/external/lvl_6/frame_6.png differ diff --git a/assets/dolphin/external/lvl_6/frame_7.png b/assets/dolphin/external/lvl_6/frame_7.png deleted file mode 100644 index 1c2fbeb54..000000000 Binary files a/assets/dolphin/external/lvl_6/frame_7.png and /dev/null differ diff --git a/assets/dolphin/external/lvl_6/frame_8.png b/assets/dolphin/external/lvl_6/frame_8.png deleted file mode 100644 index 5e3b646e7..000000000 Binary files a/assets/dolphin/external/lvl_6/frame_8.png and /dev/null differ diff --git a/assets/dolphin/external/lvl_6/frame_9.png b/assets/dolphin/external/lvl_6/frame_9.png deleted file mode 100644 index 42b4e79b2..000000000 Binary files a/assets/dolphin/external/lvl_6/frame_9.png and /dev/null differ diff --git a/assets/dolphin/external/lvl_6/meta.txt b/assets/dolphin/external/lvl_6/meta.txt index 815e3e173..ba81ab2c1 100644 --- a/assets/dolphin/external/lvl_6/meta.txt +++ b/assets/dolphin/external/lvl_6/meta.txt @@ -3,9 +3,9 @@ Version: 1 Width: 128 Height: 64 -Passive frames: 28 +Passive frames: 7 Active frames: 0 -Frames order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 +Frames order: 0 1 2 3 4 5 6 Active cycles: 0 Frame rate: 6 Duration: 3600 diff --git a/assets/dolphin/external/lvl_7/frame_0.png b/assets/dolphin/external/lvl_7/frame_0.png index cca06f01b..27b04d129 100644 Binary files a/assets/dolphin/external/lvl_7/frame_0.png and b/assets/dolphin/external/lvl_7/frame_0.png differ diff --git a/assets/dolphin/external/lvl_7/frame_1.png b/assets/dolphin/external/lvl_7/frame_1.png index f1c964a37..8d55b0384 100644 Binary files a/assets/dolphin/external/lvl_7/frame_1.png and b/assets/dolphin/external/lvl_7/frame_1.png differ diff --git a/assets/dolphin/external/lvl_8/frame_10.png b/assets/dolphin/external/lvl_7/frame_10.png similarity index 100% rename from assets/dolphin/external/lvl_8/frame_10.png rename to assets/dolphin/external/lvl_7/frame_10.png diff --git a/assets/dolphin/external/lvl_8/frame_11.png b/assets/dolphin/external/lvl_7/frame_11.png similarity index 100% rename from assets/dolphin/external/lvl_8/frame_11.png rename to assets/dolphin/external/lvl_7/frame_11.png diff --git a/assets/dolphin/external/lvl_8/frame_12.png b/assets/dolphin/external/lvl_7/frame_12.png similarity index 100% rename from assets/dolphin/external/lvl_8/frame_12.png rename to assets/dolphin/external/lvl_7/frame_12.png diff --git a/assets/dolphin/external/lvl_8/frame_13.png b/assets/dolphin/external/lvl_7/frame_13.png similarity index 100% rename from assets/dolphin/external/lvl_8/frame_13.png rename to assets/dolphin/external/lvl_7/frame_13.png diff --git a/assets/dolphin/external/lvl_7/frame_2.png b/assets/dolphin/external/lvl_7/frame_2.png index 8311e2134..384b9f78a 100644 Binary files a/assets/dolphin/external/lvl_7/frame_2.png and b/assets/dolphin/external/lvl_7/frame_2.png differ diff --git a/assets/dolphin/external/lvl_7/frame_3.png b/assets/dolphin/external/lvl_7/frame_3.png index 4bf7705c9..4aeba5baa 100644 Binary files a/assets/dolphin/external/lvl_7/frame_3.png and b/assets/dolphin/external/lvl_7/frame_3.png differ diff --git a/assets/dolphin/external/lvl_7/frame_4.png b/assets/dolphin/external/lvl_7/frame_4.png index f1b2d6126..e6365789c 100644 Binary files a/assets/dolphin/external/lvl_7/frame_4.png and b/assets/dolphin/external/lvl_7/frame_4.png differ diff --git a/assets/dolphin/external/lvl_7/frame_5.png b/assets/dolphin/external/lvl_7/frame_5.png index 9f02b7e42..1386768dd 100644 Binary files a/assets/dolphin/external/lvl_7/frame_5.png and b/assets/dolphin/external/lvl_7/frame_5.png differ diff --git a/assets/dolphin/external/lvl_7/frame_6.png b/assets/dolphin/external/lvl_7/frame_6.png index 129f8a530..c645fbebe 100644 Binary files a/assets/dolphin/external/lvl_7/frame_6.png and b/assets/dolphin/external/lvl_7/frame_6.png differ diff --git a/assets/dolphin/external/lvl_8/frame_7.png b/assets/dolphin/external/lvl_7/frame_7.png similarity index 100% rename from assets/dolphin/external/lvl_8/frame_7.png rename to assets/dolphin/external/lvl_7/frame_7.png diff --git a/assets/dolphin/external/lvl_8/frame_8.png b/assets/dolphin/external/lvl_7/frame_8.png similarity index 100% rename from assets/dolphin/external/lvl_8/frame_8.png rename to assets/dolphin/external/lvl_7/frame_8.png diff --git a/assets/dolphin/external/lvl_8/frame_9.png b/assets/dolphin/external/lvl_7/frame_9.png similarity index 100% rename from assets/dolphin/external/lvl_8/frame_9.png rename to assets/dolphin/external/lvl_7/frame_9.png diff --git a/assets/dolphin/external/lvl_7/meta.txt b/assets/dolphin/external/lvl_7/meta.txt index ba81ab2c1..3e7534cbc 100644 --- a/assets/dolphin/external/lvl_7/meta.txt +++ b/assets/dolphin/external/lvl_7/meta.txt @@ -3,12 +3,12 @@ Version: 1 Width: 128 Height: 64 -Passive frames: 7 +Passive frames: 14 Active frames: 0 -Frames order: 0 1 2 3 4 5 6 +Frames order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Active cycles: 0 Frame rate: 6 Duration: 3600 Active cooldown: 0 -Bubble slots: 0 +Bubble slots: 0 \ No newline at end of file diff --git a/assets/dolphin/external/lvl_8/frame_0.png b/assets/dolphin/external/lvl_8/frame_0.png index 27b04d129..6cc5a69d3 100644 Binary files a/assets/dolphin/external/lvl_8/frame_0.png and b/assets/dolphin/external/lvl_8/frame_0.png differ diff --git a/assets/dolphin/external/lvl_8/frame_1.png b/assets/dolphin/external/lvl_8/frame_1.png index 8d55b0384..6ce21bf49 100644 Binary files a/assets/dolphin/external/lvl_8/frame_1.png and b/assets/dolphin/external/lvl_8/frame_1.png differ diff --git a/assets/dolphin/external/lvl_8/frame_2.png b/assets/dolphin/external/lvl_8/frame_2.png index 384b9f78a..b361831ae 100644 Binary files a/assets/dolphin/external/lvl_8/frame_2.png and b/assets/dolphin/external/lvl_8/frame_2.png differ diff --git a/assets/dolphin/external/lvl_8/frame_3.png b/assets/dolphin/external/lvl_8/frame_3.png index 4aeba5baa..760864783 100644 Binary files a/assets/dolphin/external/lvl_8/frame_3.png and b/assets/dolphin/external/lvl_8/frame_3.png differ diff --git a/assets/dolphin/external/lvl_8/frame_4.png b/assets/dolphin/external/lvl_8/frame_4.png index e6365789c..033bcaff3 100644 Binary files a/assets/dolphin/external/lvl_8/frame_4.png and b/assets/dolphin/external/lvl_8/frame_4.png differ diff --git a/assets/dolphin/external/lvl_8/frame_5.png b/assets/dolphin/external/lvl_8/frame_5.png index 1386768dd..fd88e1c89 100644 Binary files a/assets/dolphin/external/lvl_8/frame_5.png and b/assets/dolphin/external/lvl_8/frame_5.png differ diff --git a/assets/dolphin/external/lvl_8/frame_6.png b/assets/dolphin/external/lvl_8/frame_6.png deleted file mode 100644 index c645fbebe..000000000 Binary files a/assets/dolphin/external/lvl_8/frame_6.png and /dev/null differ diff --git a/assets/dolphin/external/lvl_8/meta.txt b/assets/dolphin/external/lvl_8/meta.txt index 3e7534cbc..d9d683102 100644 --- a/assets/dolphin/external/lvl_8/meta.txt +++ b/assets/dolphin/external/lvl_8/meta.txt @@ -3,12 +3,12 @@ Version: 1 Width: 128 Height: 64 -Passive frames: 14 +Passive frames: 6 Active frames: 0 -Frames order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 +Frames order: 0 1 2 3 4 5 Active cycles: 0 Frame rate: 6 Duration: 3600 Active cooldown: 0 -Bubble slots: 0 \ No newline at end of file +Bubble slots: 0 diff --git a/assets/dolphin/external/lvl_9/frame_0.png b/assets/dolphin/external/lvl_9/frame_0.png index 6cc5a69d3..45aea9cfb 100644 Binary files a/assets/dolphin/external/lvl_9/frame_0.png and b/assets/dolphin/external/lvl_9/frame_0.png differ diff --git a/assets/dolphin/external/lvl_9/frame_1.png b/assets/dolphin/external/lvl_9/frame_1.png index 6ce21bf49..fc78cf6a1 100644 Binary files a/assets/dolphin/external/lvl_9/frame_1.png and b/assets/dolphin/external/lvl_9/frame_1.png differ diff --git a/assets/dolphin/external/lvl_9/frame_2.png b/assets/dolphin/external/lvl_9/frame_2.png index b361831ae..5c0a5dad8 100644 Binary files a/assets/dolphin/external/lvl_9/frame_2.png and b/assets/dolphin/external/lvl_9/frame_2.png differ diff --git a/assets/dolphin/external/lvl_9/frame_3.png b/assets/dolphin/external/lvl_9/frame_3.png index 760864783..900ea071f 100644 Binary files a/assets/dolphin/external/lvl_9/frame_3.png and b/assets/dolphin/external/lvl_9/frame_3.png differ diff --git a/assets/dolphin/external/lvl_9/frame_4.png b/assets/dolphin/external/lvl_9/frame_4.png index 033bcaff3..4a6ed179b 100644 Binary files a/assets/dolphin/external/lvl_9/frame_4.png and b/assets/dolphin/external/lvl_9/frame_4.png differ diff --git a/assets/dolphin/external/lvl_9/frame_5.png b/assets/dolphin/external/lvl_9/frame_5.png index fd88e1c89..482a738c4 100644 Binary files a/assets/dolphin/external/lvl_9/frame_5.png and b/assets/dolphin/external/lvl_9/frame_5.png differ diff --git a/assets/dolphin/external/lvl_9/frame_6.png b/assets/dolphin/external/lvl_9/frame_6.png new file mode 100644 index 000000000..1d7b6ed86 Binary files /dev/null and b/assets/dolphin/external/lvl_9/frame_6.png differ diff --git a/assets/dolphin/external/lvl_9/frame_7.png b/assets/dolphin/external/lvl_9/frame_7.png new file mode 100644 index 000000000..67d7dc316 Binary files /dev/null and b/assets/dolphin/external/lvl_9/frame_7.png differ diff --git a/assets/dolphin/external/lvl_9/meta.txt b/assets/dolphin/external/lvl_9/meta.txt index d9d683102..44d736f04 100644 --- a/assets/dolphin/external/lvl_9/meta.txt +++ b/assets/dolphin/external/lvl_9/meta.txt @@ -3,9 +3,9 @@ Version: 1 Width: 128 Height: 64 -Passive frames: 6 +Passive frames: 8 Active frames: 0 -Frames order: 0 1 2 3 4 5 +Frames order: 0 1 2 3 4 5 6 7 Active cycles: 0 Frame rate: 6 Duration: 3600 diff --git a/assets/dolphin/external/manifest.txt b/assets/dolphin/external/manifest.txt index 166f85246..6d959b18b 100644 --- a/assets/dolphin/external/manifest.txt +++ b/assets/dolphin/external/manifest.txt @@ -76,7 +76,7 @@ Min butthurt: 0 Max butthurt: 14 Min level: 11 Max level: 30 -Weight: 7 +Weight: 9 Name: lvl_12 Min butthurt: 0 @@ -106,13 +106,6 @@ Min level: 15 Max level: 30 Weight: 7 -Name: PaxGod_TikTok_Marketing -Min butthurt: 0 -Max butthurt: 14 -Min level: 11 -Max level: 30 -Weight: 3 - Name: lvl_16 Min butthurt: 0 Max butthurt: 14 @@ -153,7 +146,7 @@ Min butthurt: 0 Max butthurt: 14 Min level: 21 Max level: 30 -Weight: 7 +Weight: 9 Name: lvl_22 Min butthurt: 0 @@ -216,4 +209,4 @@ Min butthurt: 0 Max butthurt: 14 Min level: 30 Max level: 30 -Weight: 7 \ No newline at end of file +Weight: 9 \ No newline at end of file diff --git a/assets/icons/Common/DFU_128x50.png b/assets/icons/Common/DFU_128x50.png index 4125d05d0..12dcb112a 100644 Binary files a/assets/icons/Common/DFU_128x50.png and b/assets/icons/Common/DFU_128x50.png differ diff --git a/assets/icons/MainMenu/Sub_Playlist_14/frame_01.png b/assets/icons/MainMenu/Sub_Playlist_14/frame_01.png new file mode 100644 index 000000000..09bf26f72 Binary files /dev/null and b/assets/icons/MainMenu/Sub_Playlist_14/frame_01.png differ diff --git a/assets/icons/MainMenu/Sub_Playlist_14/frame_02.png b/assets/icons/MainMenu/Sub_Playlist_14/frame_02.png new file mode 100644 index 000000000..7032e362c Binary files /dev/null and b/assets/icons/MainMenu/Sub_Playlist_14/frame_02.png differ diff --git a/assets/icons/MainMenu/Sub_Playlist_14/frame_03.png b/assets/icons/MainMenu/Sub_Playlist_14/frame_03.png new file mode 100644 index 000000000..14f6daaff Binary files /dev/null and b/assets/icons/MainMenu/Sub_Playlist_14/frame_03.png differ diff --git a/assets/icons/MainMenu/Sub_Playlist_14/frame_04.png b/assets/icons/MainMenu/Sub_Playlist_14/frame_04.png new file mode 100644 index 000000000..fb525d309 Binary files /dev/null and b/assets/icons/MainMenu/Sub_Playlist_14/frame_04.png differ diff --git a/assets/icons/MainMenu/Sub_Playlist_14/frame_05.png b/assets/icons/MainMenu/Sub_Playlist_14/frame_05.png new file mode 100644 index 000000000..09bf26f72 Binary files /dev/null and b/assets/icons/MainMenu/Sub_Playlist_14/frame_05.png differ diff --git a/assets/icons/MainMenu/Sub_Playlist_14/frame_rate b/assets/icons/MainMenu/Sub_Playlist_14/frame_rate new file mode 100644 index 000000000..56a6051ca --- /dev/null +++ b/assets/icons/MainMenu/Sub_Playlist_14/frame_rate @@ -0,0 +1 @@ +1 \ No newline at end of file diff --git a/assets/resources/dolphin/lvl_10/frame_0.bm b/assets/resources/dolphin/lvl_10/frame_0.bm index e6292c4fd..420ee7376 100644 Binary files a/assets/resources/dolphin/lvl_10/frame_0.bm and b/assets/resources/dolphin/lvl_10/frame_0.bm differ diff --git a/assets/resources/dolphin/lvl_10/frame_1.bm b/assets/resources/dolphin/lvl_10/frame_1.bm index 41663eb51..6b10b7fbe 100644 Binary files a/assets/resources/dolphin/lvl_10/frame_1.bm and b/assets/resources/dolphin/lvl_10/frame_1.bm differ diff --git a/assets/resources/dolphin/lvl_10/frame_10.bm b/assets/resources/dolphin/lvl_10/frame_10.bm new file mode 100644 index 000000000..d9defe1cb Binary files /dev/null and b/assets/resources/dolphin/lvl_10/frame_10.bm differ diff --git a/assets/resources/dolphin/lvl_10/frame_11.bm b/assets/resources/dolphin/lvl_10/frame_11.bm new file mode 100644 index 000000000..52b284969 Binary files /dev/null and b/assets/resources/dolphin/lvl_10/frame_11.bm differ diff --git a/assets/resources/dolphin/lvl_10/frame_12.bm b/assets/resources/dolphin/lvl_10/frame_12.bm new file mode 100644 index 000000000..52e7722a0 Binary files /dev/null and b/assets/resources/dolphin/lvl_10/frame_12.bm differ diff --git a/assets/resources/dolphin/lvl_10/frame_13.bm b/assets/resources/dolphin/lvl_10/frame_13.bm new file mode 100644 index 000000000..e90233342 Binary files /dev/null and b/assets/resources/dolphin/lvl_10/frame_13.bm differ diff --git a/assets/resources/dolphin/lvl_10/frame_14.bm b/assets/resources/dolphin/lvl_10/frame_14.bm new file mode 100644 index 000000000..57723112f Binary files /dev/null and b/assets/resources/dolphin/lvl_10/frame_14.bm differ diff --git a/assets/resources/dolphin/lvl_10/frame_15.bm b/assets/resources/dolphin/lvl_10/frame_15.bm new file mode 100644 index 000000000..6ed83b3ad Binary files /dev/null and b/assets/resources/dolphin/lvl_10/frame_15.bm differ diff --git a/assets/resources/dolphin/lvl_10/frame_16.bm b/assets/resources/dolphin/lvl_10/frame_16.bm new file mode 100644 index 000000000..f1b6b32ec Binary files /dev/null and b/assets/resources/dolphin/lvl_10/frame_16.bm differ diff --git a/assets/resources/dolphin/lvl_10/frame_17.bm b/assets/resources/dolphin/lvl_10/frame_17.bm new file mode 100644 index 000000000..158810f06 Binary files /dev/null and b/assets/resources/dolphin/lvl_10/frame_17.bm differ diff --git a/assets/resources/dolphin/lvl_10/frame_18.bm b/assets/resources/dolphin/lvl_10/frame_18.bm new file mode 100644 index 000000000..c6eac5abe Binary files /dev/null and b/assets/resources/dolphin/lvl_10/frame_18.bm differ diff --git a/assets/resources/dolphin/lvl_10/frame_19.bm b/assets/resources/dolphin/lvl_10/frame_19.bm new file mode 100644 index 000000000..39b209140 Binary files /dev/null and b/assets/resources/dolphin/lvl_10/frame_19.bm differ diff --git a/assets/resources/dolphin/lvl_10/frame_2.bm b/assets/resources/dolphin/lvl_10/frame_2.bm index c8f2d87db..67958b7db 100644 Binary files a/assets/resources/dolphin/lvl_10/frame_2.bm and b/assets/resources/dolphin/lvl_10/frame_2.bm differ diff --git a/assets/resources/dolphin/lvl_10/frame_20.bm b/assets/resources/dolphin/lvl_10/frame_20.bm new file mode 100644 index 000000000..789f27738 Binary files /dev/null and b/assets/resources/dolphin/lvl_10/frame_20.bm differ diff --git a/assets/resources/dolphin/lvl_10/frame_21.bm b/assets/resources/dolphin/lvl_10/frame_21.bm new file mode 100644 index 000000000..a0b4d3cf7 Binary files /dev/null and b/assets/resources/dolphin/lvl_10/frame_21.bm differ diff --git a/assets/resources/dolphin/lvl_10/frame_22.bm b/assets/resources/dolphin/lvl_10/frame_22.bm new file mode 100644 index 000000000..e37a42201 Binary files /dev/null and b/assets/resources/dolphin/lvl_10/frame_22.bm differ diff --git a/assets/resources/dolphin/lvl_10/frame_23.bm b/assets/resources/dolphin/lvl_10/frame_23.bm new file mode 100644 index 000000000..2162cf14d Binary files /dev/null and b/assets/resources/dolphin/lvl_10/frame_23.bm differ diff --git a/assets/resources/dolphin/lvl_10/frame_24.bm b/assets/resources/dolphin/lvl_10/frame_24.bm new file mode 100644 index 000000000..8cdce5515 Binary files /dev/null and b/assets/resources/dolphin/lvl_10/frame_24.bm differ diff --git a/assets/resources/dolphin/lvl_10/frame_25.bm b/assets/resources/dolphin/lvl_10/frame_25.bm new file mode 100644 index 000000000..e01e4fabb Binary files /dev/null and b/assets/resources/dolphin/lvl_10/frame_25.bm differ diff --git a/assets/resources/dolphin/lvl_10/frame_26.bm b/assets/resources/dolphin/lvl_10/frame_26.bm new file mode 100644 index 000000000..8f5fa633c Binary files /dev/null and b/assets/resources/dolphin/lvl_10/frame_26.bm differ diff --git a/assets/resources/dolphin/lvl_10/frame_27.bm b/assets/resources/dolphin/lvl_10/frame_27.bm new file mode 100644 index 000000000..859d8d707 Binary files /dev/null and b/assets/resources/dolphin/lvl_10/frame_27.bm differ diff --git a/assets/resources/dolphin/lvl_10/frame_3.bm b/assets/resources/dolphin/lvl_10/frame_3.bm index 415ef5c3a..cdb6c331e 100644 Binary files a/assets/resources/dolphin/lvl_10/frame_3.bm and b/assets/resources/dolphin/lvl_10/frame_3.bm differ diff --git a/assets/resources/dolphin/lvl_10/frame_4.bm b/assets/resources/dolphin/lvl_10/frame_4.bm index ad7392be1..a82c79a17 100644 Binary files a/assets/resources/dolphin/lvl_10/frame_4.bm and b/assets/resources/dolphin/lvl_10/frame_4.bm differ diff --git a/assets/resources/dolphin/lvl_10/frame_5.bm b/assets/resources/dolphin/lvl_10/frame_5.bm index ea44bd453..c0757262c 100644 Binary files a/assets/resources/dolphin/lvl_10/frame_5.bm and b/assets/resources/dolphin/lvl_10/frame_5.bm differ diff --git a/assets/resources/dolphin/lvl_10/frame_6.bm b/assets/resources/dolphin/lvl_10/frame_6.bm index 5e131183a..6cc36ec9b 100644 Binary files a/assets/resources/dolphin/lvl_10/frame_6.bm and b/assets/resources/dolphin/lvl_10/frame_6.bm differ diff --git a/assets/resources/dolphin/lvl_10/frame_7.bm b/assets/resources/dolphin/lvl_10/frame_7.bm index 337cdc355..8fc70c65b 100644 Binary files a/assets/resources/dolphin/lvl_10/frame_7.bm and b/assets/resources/dolphin/lvl_10/frame_7.bm differ diff --git a/assets/resources/dolphin/lvl_10/frame_8.bm b/assets/resources/dolphin/lvl_10/frame_8.bm new file mode 100644 index 000000000..bb3fb78b8 Binary files /dev/null and b/assets/resources/dolphin/lvl_10/frame_8.bm differ diff --git a/assets/resources/dolphin/lvl_10/frame_9.bm b/assets/resources/dolphin/lvl_10/frame_9.bm new file mode 100644 index 000000000..2ee35b135 Binary files /dev/null and b/assets/resources/dolphin/lvl_10/frame_9.bm differ diff --git a/assets/resources/dolphin/lvl_10/meta.txt b/assets/resources/dolphin/lvl_10/meta.txt index 44d736f04..4ca1452a8 100644 --- a/assets/resources/dolphin/lvl_10/meta.txt +++ b/assets/resources/dolphin/lvl_10/meta.txt @@ -3,11 +3,11 @@ Version: 1 Width: 128 Height: 64 -Passive frames: 8 +Passive frames: 28 Active frames: 0 -Frames order: 0 1 2 3 4 5 6 7 +Frames order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 Active cycles: 0 -Frame rate: 6 +Frame rate: 7 Duration: 3600 Active cooldown: 0 diff --git a/assets/resources/dolphin/lvl_11/frame_0.bm b/assets/resources/dolphin/lvl_11/frame_0.bm index 420ee7376..f042ce9ca 100644 Binary files a/assets/resources/dolphin/lvl_11/frame_0.bm and b/assets/resources/dolphin/lvl_11/frame_0.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_1.bm b/assets/resources/dolphin/lvl_11/frame_1.bm index 6b10b7fbe..5ff464577 100644 Binary files a/assets/resources/dolphin/lvl_11/frame_1.bm and b/assets/resources/dolphin/lvl_11/frame_1.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_10.bm b/assets/resources/dolphin/lvl_11/frame_10.bm index d9defe1cb..729c6228d 100644 Binary files a/assets/resources/dolphin/lvl_11/frame_10.bm and b/assets/resources/dolphin/lvl_11/frame_10.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_11.bm b/assets/resources/dolphin/lvl_11/frame_11.bm index 52b284969..dddda1548 100644 Binary files a/assets/resources/dolphin/lvl_11/frame_11.bm and b/assets/resources/dolphin/lvl_11/frame_11.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_12.bm b/assets/resources/dolphin/lvl_11/frame_12.bm index 52e7722a0..b1652029a 100644 Binary files a/assets/resources/dolphin/lvl_11/frame_12.bm and b/assets/resources/dolphin/lvl_11/frame_12.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_13.bm b/assets/resources/dolphin/lvl_11/frame_13.bm index e90233342..03ca53c59 100644 Binary files a/assets/resources/dolphin/lvl_11/frame_13.bm and b/assets/resources/dolphin/lvl_11/frame_13.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_14.bm b/assets/resources/dolphin/lvl_11/frame_14.bm index 57723112f..142412a4a 100644 Binary files a/assets/resources/dolphin/lvl_11/frame_14.bm and b/assets/resources/dolphin/lvl_11/frame_14.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_15.bm b/assets/resources/dolphin/lvl_11/frame_15.bm index 6ed83b3ad..8ff6f4e71 100644 Binary files a/assets/resources/dolphin/lvl_11/frame_15.bm and b/assets/resources/dolphin/lvl_11/frame_15.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_16.bm b/assets/resources/dolphin/lvl_11/frame_16.bm index f1b6b32ec..46ed13a95 100644 Binary files a/assets/resources/dolphin/lvl_11/frame_16.bm and b/assets/resources/dolphin/lvl_11/frame_16.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_17.bm b/assets/resources/dolphin/lvl_11/frame_17.bm index 158810f06..fca340dd1 100644 Binary files a/assets/resources/dolphin/lvl_11/frame_17.bm and b/assets/resources/dolphin/lvl_11/frame_17.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_18.bm b/assets/resources/dolphin/lvl_11/frame_18.bm index c6eac5abe..54b778d2a 100644 Binary files a/assets/resources/dolphin/lvl_11/frame_18.bm and b/assets/resources/dolphin/lvl_11/frame_18.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_19.bm b/assets/resources/dolphin/lvl_11/frame_19.bm index 39b209140..722cf1a66 100644 Binary files a/assets/resources/dolphin/lvl_11/frame_19.bm and b/assets/resources/dolphin/lvl_11/frame_19.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_2.bm b/assets/resources/dolphin/lvl_11/frame_2.bm index 67958b7db..21a4d2256 100644 Binary files a/assets/resources/dolphin/lvl_11/frame_2.bm and b/assets/resources/dolphin/lvl_11/frame_2.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_20.bm b/assets/resources/dolphin/lvl_11/frame_20.bm index 789f27738..25345bd46 100644 Binary files a/assets/resources/dolphin/lvl_11/frame_20.bm and b/assets/resources/dolphin/lvl_11/frame_20.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_21.bm b/assets/resources/dolphin/lvl_11/frame_21.bm index a0b4d3cf7..14828a3b8 100644 Binary files a/assets/resources/dolphin/lvl_11/frame_21.bm and b/assets/resources/dolphin/lvl_11/frame_21.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_22.bm b/assets/resources/dolphin/lvl_11/frame_22.bm index e37a42201..f57a2b42b 100644 Binary files a/assets/resources/dolphin/lvl_11/frame_22.bm and b/assets/resources/dolphin/lvl_11/frame_22.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_23.bm b/assets/resources/dolphin/lvl_11/frame_23.bm index 2162cf14d..2dcc06831 100644 Binary files a/assets/resources/dolphin/lvl_11/frame_23.bm and b/assets/resources/dolphin/lvl_11/frame_23.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_24.bm b/assets/resources/dolphin/lvl_11/frame_24.bm index 8cdce5515..b7d4cc216 100644 Binary files a/assets/resources/dolphin/lvl_11/frame_24.bm and b/assets/resources/dolphin/lvl_11/frame_24.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_25.bm b/assets/resources/dolphin/lvl_11/frame_25.bm index e01e4fabb..1916b7be6 100644 Binary files a/assets/resources/dolphin/lvl_11/frame_25.bm and b/assets/resources/dolphin/lvl_11/frame_25.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_26.bm b/assets/resources/dolphin/lvl_11/frame_26.bm index 8f5fa633c..ffe090293 100644 Binary files a/assets/resources/dolphin/lvl_11/frame_26.bm and b/assets/resources/dolphin/lvl_11/frame_26.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_27.bm b/assets/resources/dolphin/lvl_11/frame_27.bm index 859d8d707..96f532be5 100644 Binary files a/assets/resources/dolphin/lvl_11/frame_27.bm and b/assets/resources/dolphin/lvl_11/frame_27.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_28.bm b/assets/resources/dolphin/lvl_11/frame_28.bm new file mode 100644 index 000000000..b535cc304 Binary files /dev/null and b/assets/resources/dolphin/lvl_11/frame_28.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_29.bm b/assets/resources/dolphin/lvl_11/frame_29.bm new file mode 100644 index 000000000..762d2e5fd Binary files /dev/null and b/assets/resources/dolphin/lvl_11/frame_29.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_3.bm b/assets/resources/dolphin/lvl_11/frame_3.bm index cdb6c331e..7b202c254 100644 Binary files a/assets/resources/dolphin/lvl_11/frame_3.bm and b/assets/resources/dolphin/lvl_11/frame_3.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_30.bm b/assets/resources/dolphin/lvl_11/frame_30.bm new file mode 100644 index 000000000..75d308bda Binary files /dev/null and b/assets/resources/dolphin/lvl_11/frame_30.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_31.bm b/assets/resources/dolphin/lvl_11/frame_31.bm new file mode 100644 index 000000000..997b9984f Binary files /dev/null and b/assets/resources/dolphin/lvl_11/frame_31.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_32.bm b/assets/resources/dolphin/lvl_11/frame_32.bm new file mode 100644 index 000000000..0eed9b176 Binary files /dev/null and b/assets/resources/dolphin/lvl_11/frame_32.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_33.bm b/assets/resources/dolphin/lvl_11/frame_33.bm new file mode 100644 index 000000000..a4fc4a1b7 Binary files /dev/null and b/assets/resources/dolphin/lvl_11/frame_33.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_34.bm b/assets/resources/dolphin/lvl_11/frame_34.bm new file mode 100644 index 000000000..f1b771e92 Binary files /dev/null and b/assets/resources/dolphin/lvl_11/frame_34.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_35.bm b/assets/resources/dolphin/lvl_11/frame_35.bm new file mode 100644 index 000000000..018aa4e48 Binary files /dev/null and b/assets/resources/dolphin/lvl_11/frame_35.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_36.bm b/assets/resources/dolphin/lvl_11/frame_36.bm new file mode 100644 index 000000000..01cbd4d46 Binary files /dev/null and b/assets/resources/dolphin/lvl_11/frame_36.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_37.bm b/assets/resources/dolphin/lvl_11/frame_37.bm new file mode 100644 index 000000000..92c1ff04f Binary files /dev/null and b/assets/resources/dolphin/lvl_11/frame_37.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_38.bm b/assets/resources/dolphin/lvl_11/frame_38.bm new file mode 100644 index 000000000..4f49f4c80 Binary files /dev/null and b/assets/resources/dolphin/lvl_11/frame_38.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_39.bm b/assets/resources/dolphin/lvl_11/frame_39.bm new file mode 100644 index 000000000..6ac44d903 Binary files /dev/null and b/assets/resources/dolphin/lvl_11/frame_39.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_4.bm b/assets/resources/dolphin/lvl_11/frame_4.bm index a82c79a17..ff9403591 100644 Binary files a/assets/resources/dolphin/lvl_11/frame_4.bm and b/assets/resources/dolphin/lvl_11/frame_4.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_40.bm b/assets/resources/dolphin/lvl_11/frame_40.bm new file mode 100644 index 000000000..2712a719c Binary files /dev/null and b/assets/resources/dolphin/lvl_11/frame_40.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_41.bm b/assets/resources/dolphin/lvl_11/frame_41.bm new file mode 100644 index 000000000..002963d90 Binary files /dev/null and b/assets/resources/dolphin/lvl_11/frame_41.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_42.bm b/assets/resources/dolphin/lvl_11/frame_42.bm new file mode 100644 index 000000000..956d4c3c8 Binary files /dev/null and b/assets/resources/dolphin/lvl_11/frame_42.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_43.bm b/assets/resources/dolphin/lvl_11/frame_43.bm new file mode 100644 index 000000000..6b95f7965 Binary files /dev/null and b/assets/resources/dolphin/lvl_11/frame_43.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_44.bm b/assets/resources/dolphin/lvl_11/frame_44.bm new file mode 100644 index 000000000..21333bfdf Binary files /dev/null and b/assets/resources/dolphin/lvl_11/frame_44.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_45.bm b/assets/resources/dolphin/lvl_11/frame_45.bm new file mode 100644 index 000000000..04c2dd4ea Binary files /dev/null and b/assets/resources/dolphin/lvl_11/frame_45.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_46.bm b/assets/resources/dolphin/lvl_11/frame_46.bm new file mode 100644 index 000000000..5bf6ebc5b Binary files /dev/null and b/assets/resources/dolphin/lvl_11/frame_46.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_47.bm b/assets/resources/dolphin/lvl_11/frame_47.bm new file mode 100644 index 000000000..dc06109b2 Binary files /dev/null and b/assets/resources/dolphin/lvl_11/frame_47.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_48.bm b/assets/resources/dolphin/lvl_11/frame_48.bm new file mode 100644 index 000000000..ffae77705 Binary files /dev/null and b/assets/resources/dolphin/lvl_11/frame_48.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_49.bm b/assets/resources/dolphin/lvl_11/frame_49.bm new file mode 100644 index 000000000..42c3cf621 Binary files /dev/null and b/assets/resources/dolphin/lvl_11/frame_49.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_5.bm b/assets/resources/dolphin/lvl_11/frame_5.bm index c0757262c..971757ee1 100644 Binary files a/assets/resources/dolphin/lvl_11/frame_5.bm and b/assets/resources/dolphin/lvl_11/frame_5.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_6.bm b/assets/resources/dolphin/lvl_11/frame_6.bm index 6cc36ec9b..75f7aa503 100644 Binary files a/assets/resources/dolphin/lvl_11/frame_6.bm and b/assets/resources/dolphin/lvl_11/frame_6.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_7.bm b/assets/resources/dolphin/lvl_11/frame_7.bm index 8fc70c65b..e481af6bd 100644 Binary files a/assets/resources/dolphin/lvl_11/frame_7.bm and b/assets/resources/dolphin/lvl_11/frame_7.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_8.bm b/assets/resources/dolphin/lvl_11/frame_8.bm index bb3fb78b8..0f21f236c 100644 Binary files a/assets/resources/dolphin/lvl_11/frame_8.bm and b/assets/resources/dolphin/lvl_11/frame_8.bm differ diff --git a/assets/resources/dolphin/lvl_11/frame_9.bm b/assets/resources/dolphin/lvl_11/frame_9.bm index 2ee35b135..b0cbefc46 100644 Binary files a/assets/resources/dolphin/lvl_11/frame_9.bm and b/assets/resources/dolphin/lvl_11/frame_9.bm differ diff --git a/assets/resources/dolphin/lvl_11/meta.txt b/assets/resources/dolphin/lvl_11/meta.txt index 4ca1452a8..4d5cb4433 100644 --- a/assets/resources/dolphin/lvl_11/meta.txt +++ b/assets/resources/dolphin/lvl_11/meta.txt @@ -3,11 +3,11 @@ Version: 1 Width: 128 Height: 64 -Passive frames: 28 +Passive frames: 50 Active frames: 0 -Frames order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 +Frames order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 Active cycles: 0 -Frame rate: 7 +Frame rate: 6 Duration: 3600 Active cooldown: 0 diff --git a/assets/resources/dolphin/lvl_21/frame_0.bm b/assets/resources/dolphin/lvl_21/frame_0.bm index dacc6be35..ecec4cd1b 100644 Binary files a/assets/resources/dolphin/lvl_21/frame_0.bm and b/assets/resources/dolphin/lvl_21/frame_0.bm differ diff --git a/assets/resources/dolphin/lvl_21/frame_1.bm b/assets/resources/dolphin/lvl_21/frame_1.bm index cf189cb36..0003fb4fc 100644 Binary files a/assets/resources/dolphin/lvl_21/frame_1.bm and b/assets/resources/dolphin/lvl_21/frame_1.bm differ diff --git a/assets/resources/dolphin/lvl_21/frame_2.bm b/assets/resources/dolphin/lvl_21/frame_2.bm index cf189cb36..09f6598f9 100644 Binary files a/assets/resources/dolphin/lvl_21/frame_2.bm and b/assets/resources/dolphin/lvl_21/frame_2.bm differ diff --git a/assets/resources/dolphin/lvl_21/frame_3.bm b/assets/resources/dolphin/lvl_21/frame_3.bm index 42a5184d6..6fcc546bc 100644 Binary files a/assets/resources/dolphin/lvl_21/frame_3.bm and b/assets/resources/dolphin/lvl_21/frame_3.bm differ diff --git a/assets/resources/dolphin/lvl_21/frame_4.bm b/assets/resources/dolphin/lvl_21/frame_4.bm index 42a5184d6..d93025037 100644 Binary files a/assets/resources/dolphin/lvl_21/frame_4.bm and b/assets/resources/dolphin/lvl_21/frame_4.bm differ diff --git a/assets/resources/dolphin/lvl_21/frame_5.bm b/assets/resources/dolphin/lvl_21/frame_5.bm index e66ca8219..c7f270ac2 100644 Binary files a/assets/resources/dolphin/lvl_21/frame_5.bm and b/assets/resources/dolphin/lvl_21/frame_5.bm differ diff --git a/assets/resources/dolphin/lvl_21/meta.txt b/assets/resources/dolphin/lvl_21/meta.txt index 919490b3d..d9d683102 100644 --- a/assets/resources/dolphin/lvl_21/meta.txt +++ b/assets/resources/dolphin/lvl_21/meta.txt @@ -3,9 +3,9 @@ Version: 1 Width: 128 Height: 64 -Passive frames: 60 +Passive frames: 6 Active frames: 0 -Frames order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 +Frames order: 0 1 2 3 4 5 Active cycles: 0 Frame rate: 6 Duration: 3600 diff --git a/assets/resources/dolphin/lvl_22/frame_0.bm b/assets/resources/dolphin/lvl_22/frame_0.bm index ecec4cd1b..dacc6be35 100644 Binary files a/assets/resources/dolphin/lvl_22/frame_0.bm and b/assets/resources/dolphin/lvl_22/frame_0.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_1.bm b/assets/resources/dolphin/lvl_22/frame_1.bm index 0003fb4fc..cf189cb36 100644 Binary files a/assets/resources/dolphin/lvl_22/frame_1.bm and b/assets/resources/dolphin/lvl_22/frame_1.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_10.bm b/assets/resources/dolphin/lvl_22/frame_10.bm new file mode 100644 index 000000000..e66ca8219 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_10.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_11.bm b/assets/resources/dolphin/lvl_22/frame_11.bm new file mode 100644 index 000000000..dacc6be35 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_11.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_12.bm b/assets/resources/dolphin/lvl_22/frame_12.bm new file mode 100644 index 000000000..42a5184d6 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_12.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_13.bm b/assets/resources/dolphin/lvl_22/frame_13.bm new file mode 100644 index 000000000..cf189cb36 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_13.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_14.bm b/assets/resources/dolphin/lvl_22/frame_14.bm new file mode 100644 index 000000000..42a5184d6 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_14.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_15.bm b/assets/resources/dolphin/lvl_22/frame_15.bm new file mode 100644 index 000000000..e66ca8219 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_15.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_16.bm b/assets/resources/dolphin/lvl_22/frame_16.bm new file mode 100644 index 000000000..e66ca8219 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_16.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_17.bm b/assets/resources/dolphin/lvl_22/frame_17.bm new file mode 100644 index 000000000..dacc6be35 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_17.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_18.bm b/assets/resources/dolphin/lvl_22/frame_18.bm new file mode 100644 index 000000000..cf189cb36 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_18.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_19.bm b/assets/resources/dolphin/lvl_22/frame_19.bm new file mode 100644 index 000000000..42a5184d6 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_19.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_2.bm b/assets/resources/dolphin/lvl_22/frame_2.bm index 09f6598f9..cf189cb36 100644 Binary files a/assets/resources/dolphin/lvl_22/frame_2.bm and b/assets/resources/dolphin/lvl_22/frame_2.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_20.bm b/assets/resources/dolphin/lvl_22/frame_20.bm new file mode 100644 index 000000000..e66ca8219 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_20.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_21.bm b/assets/resources/dolphin/lvl_22/frame_21.bm new file mode 100644 index 000000000..dacc6be35 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_21.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_22.bm b/assets/resources/dolphin/lvl_22/frame_22.bm new file mode 100644 index 000000000..dacc6be35 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_22.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_23.bm b/assets/resources/dolphin/lvl_22/frame_23.bm new file mode 100644 index 000000000..e66ca8219 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_23.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_24.bm b/assets/resources/dolphin/lvl_22/frame_24.bm new file mode 100644 index 000000000..cf189cb36 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_24.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_25.bm b/assets/resources/dolphin/lvl_22/frame_25.bm new file mode 100644 index 000000000..42a5184d6 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_25.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_26.bm b/assets/resources/dolphin/lvl_22/frame_26.bm new file mode 100644 index 000000000..e66ca8219 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_26.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_27.bm b/assets/resources/dolphin/lvl_22/frame_27.bm new file mode 100644 index 000000000..dacc6be35 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_27.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_28.bm b/assets/resources/dolphin/lvl_22/frame_28.bm new file mode 100644 index 000000000..dacc6be35 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_28.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_29.bm b/assets/resources/dolphin/lvl_22/frame_29.bm new file mode 100644 index 000000000..cf189cb36 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_29.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_3.bm b/assets/resources/dolphin/lvl_22/frame_3.bm index 6fcc546bc..42a5184d6 100644 Binary files a/assets/resources/dolphin/lvl_22/frame_3.bm and b/assets/resources/dolphin/lvl_22/frame_3.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_30.bm b/assets/resources/dolphin/lvl_22/frame_30.bm new file mode 100644 index 000000000..42a5184d6 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_30.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_31.bm b/assets/resources/dolphin/lvl_22/frame_31.bm new file mode 100644 index 000000000..e66ca8219 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_31.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_32.bm b/assets/resources/dolphin/lvl_22/frame_32.bm new file mode 100644 index 000000000..dacc6be35 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_32.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_33.bm b/assets/resources/dolphin/lvl_22/frame_33.bm new file mode 100644 index 000000000..cf189cb36 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_33.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_34.bm b/assets/resources/dolphin/lvl_22/frame_34.bm new file mode 100644 index 000000000..42a5184d6 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_34.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_35.bm b/assets/resources/dolphin/lvl_22/frame_35.bm new file mode 100644 index 000000000..cf189cb36 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_35.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_36.bm b/assets/resources/dolphin/lvl_22/frame_36.bm new file mode 100644 index 000000000..42a5184d6 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_36.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_37.bm b/assets/resources/dolphin/lvl_22/frame_37.bm new file mode 100644 index 000000000..e66ca8219 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_37.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_38.bm b/assets/resources/dolphin/lvl_22/frame_38.bm new file mode 100644 index 000000000..dacc6be35 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_38.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_39.bm b/assets/resources/dolphin/lvl_22/frame_39.bm new file mode 100644 index 000000000..cf189cb36 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_39.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_4.bm b/assets/resources/dolphin/lvl_22/frame_4.bm index d93025037..42a5184d6 100644 Binary files a/assets/resources/dolphin/lvl_22/frame_4.bm and b/assets/resources/dolphin/lvl_22/frame_4.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_40.bm b/assets/resources/dolphin/lvl_22/frame_40.bm new file mode 100644 index 000000000..cf189cb36 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_40.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_41.bm b/assets/resources/dolphin/lvl_22/frame_41.bm new file mode 100644 index 000000000..42a5184d6 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_41.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_42.bm b/assets/resources/dolphin/lvl_22/frame_42.bm new file mode 100644 index 000000000..e66ca8219 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_42.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_43.bm b/assets/resources/dolphin/lvl_22/frame_43.bm new file mode 100644 index 000000000..dacc6be35 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_43.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_44.bm b/assets/resources/dolphin/lvl_22/frame_44.bm new file mode 100644 index 000000000..cf189cb36 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_44.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_45.bm b/assets/resources/dolphin/lvl_22/frame_45.bm new file mode 100644 index 000000000..dacc6be35 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_45.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_46.bm b/assets/resources/dolphin/lvl_22/frame_46.bm new file mode 100644 index 000000000..42a5184d6 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_46.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_47.bm b/assets/resources/dolphin/lvl_22/frame_47.bm new file mode 100644 index 000000000..e66ca8219 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_47.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_48.bm b/assets/resources/dolphin/lvl_22/frame_48.bm new file mode 100644 index 000000000..42a5184d6 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_48.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_49.bm b/assets/resources/dolphin/lvl_22/frame_49.bm new file mode 100644 index 000000000..e66ca8219 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_49.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_5.bm b/assets/resources/dolphin/lvl_22/frame_5.bm index c7f270ac2..e66ca8219 100644 Binary files a/assets/resources/dolphin/lvl_22/frame_5.bm and b/assets/resources/dolphin/lvl_22/frame_5.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_50.bm b/assets/resources/dolphin/lvl_22/frame_50.bm new file mode 100644 index 000000000..dacc6be35 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_50.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_51.bm b/assets/resources/dolphin/lvl_22/frame_51.bm new file mode 100644 index 000000000..cf189cb36 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_51.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_52.bm b/assets/resources/dolphin/lvl_22/frame_52.bm new file mode 100644 index 000000000..42a5184d6 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_52.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_53.bm b/assets/resources/dolphin/lvl_22/frame_53.bm new file mode 100644 index 000000000..e66ca8219 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_53.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_54.bm b/assets/resources/dolphin/lvl_22/frame_54.bm new file mode 100644 index 000000000..dacc6be35 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_54.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_55.bm b/assets/resources/dolphin/lvl_22/frame_55.bm new file mode 100644 index 000000000..cf189cb36 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_55.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_56.bm b/assets/resources/dolphin/lvl_22/frame_56.bm new file mode 100644 index 000000000..cf189cb36 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_56.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_57.bm b/assets/resources/dolphin/lvl_22/frame_57.bm new file mode 100644 index 000000000..42a5184d6 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_57.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_58.bm b/assets/resources/dolphin/lvl_22/frame_58.bm new file mode 100644 index 000000000..e66ca8219 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_58.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_59.bm b/assets/resources/dolphin/lvl_22/frame_59.bm new file mode 100644 index 000000000..dacc6be35 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_59.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_6.bm b/assets/resources/dolphin/lvl_22/frame_6.bm new file mode 100644 index 000000000..dacc6be35 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_6.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_7.bm b/assets/resources/dolphin/lvl_22/frame_7.bm new file mode 100644 index 000000000..cf189cb36 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_7.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_8.bm b/assets/resources/dolphin/lvl_22/frame_8.bm new file mode 100644 index 000000000..e66ca8219 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_8.bm differ diff --git a/assets/resources/dolphin/lvl_22/frame_9.bm b/assets/resources/dolphin/lvl_22/frame_9.bm new file mode 100644 index 000000000..42a5184d6 Binary files /dev/null and b/assets/resources/dolphin/lvl_22/frame_9.bm differ diff --git a/assets/resources/dolphin/lvl_22/meta.txt b/assets/resources/dolphin/lvl_22/meta.txt index d9d683102..919490b3d 100644 --- a/assets/resources/dolphin/lvl_22/meta.txt +++ b/assets/resources/dolphin/lvl_22/meta.txt @@ -3,9 +3,9 @@ Version: 1 Width: 128 Height: 64 -Passive frames: 6 +Passive frames: 60 Active frames: 0 -Frames order: 0 1 2 3 4 5 +Frames order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 Active cycles: 0 Frame rate: 6 Duration: 3600 diff --git a/assets/resources/dolphin/lvl_3/frame_0.bm b/assets/resources/dolphin/lvl_3/frame_0.bm index b90b8e6be..f3803b0dd 100644 Binary files a/assets/resources/dolphin/lvl_3/frame_0.bm and b/assets/resources/dolphin/lvl_3/frame_0.bm differ diff --git a/assets/resources/dolphin/lvl_3/frame_1.bm b/assets/resources/dolphin/lvl_3/frame_1.bm index ed01129bb..d88a90ea6 100644 Binary files a/assets/resources/dolphin/lvl_3/frame_1.bm and b/assets/resources/dolphin/lvl_3/frame_1.bm differ diff --git a/assets/resources/dolphin/lvl_3/frame_10.bm b/assets/resources/dolphin/lvl_3/frame_10.bm index 8c9ed6803..3d5040bcb 100644 Binary files a/assets/resources/dolphin/lvl_3/frame_10.bm and b/assets/resources/dolphin/lvl_3/frame_10.bm differ diff --git a/assets/resources/dolphin/lvl_3/frame_11.bm b/assets/resources/dolphin/lvl_3/frame_11.bm index 544ef659f..ab46fb0b8 100644 Binary files a/assets/resources/dolphin/lvl_3/frame_11.bm and b/assets/resources/dolphin/lvl_3/frame_11.bm differ diff --git a/assets/resources/dolphin/lvl_3/frame_12.bm b/assets/resources/dolphin/lvl_3/frame_12.bm index fa8caf1ec..697691986 100644 Binary files a/assets/resources/dolphin/lvl_3/frame_12.bm and b/assets/resources/dolphin/lvl_3/frame_12.bm differ diff --git a/assets/resources/dolphin/lvl_3/frame_13.bm b/assets/resources/dolphin/lvl_3/frame_13.bm index 1b8d4e59b..f4e93ea34 100644 Binary files a/assets/resources/dolphin/lvl_3/frame_13.bm and b/assets/resources/dolphin/lvl_3/frame_13.bm differ diff --git a/assets/resources/dolphin/lvl_3/frame_14.bm b/assets/resources/dolphin/lvl_3/frame_14.bm index 1215acddc..db3f25450 100644 Binary files a/assets/resources/dolphin/lvl_3/frame_14.bm and b/assets/resources/dolphin/lvl_3/frame_14.bm differ diff --git a/assets/resources/dolphin/lvl_3/frame_2.bm b/assets/resources/dolphin/lvl_3/frame_2.bm index 3b8c46ae6..9e43f27a5 100644 Binary files a/assets/resources/dolphin/lvl_3/frame_2.bm and b/assets/resources/dolphin/lvl_3/frame_2.bm differ diff --git a/assets/resources/dolphin/lvl_3/frame_3.bm b/assets/resources/dolphin/lvl_3/frame_3.bm index 1fba5cf39..ad1673b73 100644 Binary files a/assets/resources/dolphin/lvl_3/frame_3.bm and b/assets/resources/dolphin/lvl_3/frame_3.bm differ diff --git a/assets/resources/dolphin/lvl_3/frame_4.bm b/assets/resources/dolphin/lvl_3/frame_4.bm index 3f81fca8e..cae9da10f 100644 Binary files a/assets/resources/dolphin/lvl_3/frame_4.bm and b/assets/resources/dolphin/lvl_3/frame_4.bm differ diff --git a/assets/resources/dolphin/lvl_3/frame_5.bm b/assets/resources/dolphin/lvl_3/frame_5.bm index 757023716..6d05a0008 100644 Binary files a/assets/resources/dolphin/lvl_3/frame_5.bm and b/assets/resources/dolphin/lvl_3/frame_5.bm differ diff --git a/assets/resources/dolphin/lvl_3/frame_6.bm b/assets/resources/dolphin/lvl_3/frame_6.bm index 72d80b113..71e661f08 100644 Binary files a/assets/resources/dolphin/lvl_3/frame_6.bm and b/assets/resources/dolphin/lvl_3/frame_6.bm differ diff --git a/assets/resources/dolphin/lvl_3/frame_7.bm b/assets/resources/dolphin/lvl_3/frame_7.bm index 590d7283b..46bba3472 100644 Binary files a/assets/resources/dolphin/lvl_3/frame_7.bm and b/assets/resources/dolphin/lvl_3/frame_7.bm differ diff --git a/assets/resources/dolphin/lvl_3/frame_8.bm b/assets/resources/dolphin/lvl_3/frame_8.bm index 62677d865..54c2da6d2 100644 Binary files a/assets/resources/dolphin/lvl_3/frame_8.bm and b/assets/resources/dolphin/lvl_3/frame_8.bm differ diff --git a/assets/resources/dolphin/lvl_3/frame_9.bm b/assets/resources/dolphin/lvl_3/frame_9.bm index 71044c756..7fab0aa36 100644 Binary files a/assets/resources/dolphin/lvl_3/frame_9.bm and b/assets/resources/dolphin/lvl_3/frame_9.bm differ diff --git a/assets/resources/dolphin/lvl_3/meta.txt b/assets/resources/dolphin/lvl_3/meta.txt index 89b5d189a..5fdf4c952 100644 --- a/assets/resources/dolphin/lvl_3/meta.txt +++ b/assets/resources/dolphin/lvl_3/meta.txt @@ -3,9 +3,9 @@ Version: 1 Width: 128 Height: 64 -Passive frames: 25 +Passive frames: 15 Active frames: 0 -Frames order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 +Frames order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Active cycles: 0 Frame rate: 6 Duration: 3600 diff --git a/assets/resources/dolphin/lvl_4/frame_0.bm b/assets/resources/dolphin/lvl_4/frame_0.bm index f3803b0dd..8f620268f 100644 Binary files a/assets/resources/dolphin/lvl_4/frame_0.bm and b/assets/resources/dolphin/lvl_4/frame_0.bm differ diff --git a/assets/resources/dolphin/lvl_4/frame_1.bm b/assets/resources/dolphin/lvl_4/frame_1.bm index d88a90ea6..4c6655a99 100644 Binary files a/assets/resources/dolphin/lvl_4/frame_1.bm and b/assets/resources/dolphin/lvl_4/frame_1.bm differ diff --git a/assets/resources/dolphin/lvl_4/frame_10.bm b/assets/resources/dolphin/lvl_4/frame_10.bm index 3d5040bcb..458192558 100644 Binary files a/assets/resources/dolphin/lvl_4/frame_10.bm and b/assets/resources/dolphin/lvl_4/frame_10.bm differ diff --git a/assets/resources/dolphin/lvl_4/frame_11.bm b/assets/resources/dolphin/lvl_4/frame_11.bm index ab46fb0b8..550c4cc85 100644 Binary files a/assets/resources/dolphin/lvl_4/frame_11.bm and b/assets/resources/dolphin/lvl_4/frame_11.bm differ diff --git a/assets/resources/dolphin/lvl_4/frame_12.bm b/assets/resources/dolphin/lvl_4/frame_12.bm index 697691986..fbc929a49 100644 Binary files a/assets/resources/dolphin/lvl_4/frame_12.bm and b/assets/resources/dolphin/lvl_4/frame_12.bm differ diff --git a/assets/resources/dolphin/lvl_4/frame_13.bm b/assets/resources/dolphin/lvl_4/frame_13.bm index f4e93ea34..778cda117 100644 Binary files a/assets/resources/dolphin/lvl_4/frame_13.bm and b/assets/resources/dolphin/lvl_4/frame_13.bm differ diff --git a/assets/resources/dolphin/lvl_4/frame_14.bm b/assets/resources/dolphin/lvl_4/frame_14.bm index db3f25450..e3cd51ade 100644 Binary files a/assets/resources/dolphin/lvl_4/frame_14.bm and b/assets/resources/dolphin/lvl_4/frame_14.bm differ diff --git a/assets/resources/dolphin/lvl_4/frame_15.bm b/assets/resources/dolphin/lvl_4/frame_15.bm new file mode 100644 index 000000000..d2b59b575 Binary files /dev/null and b/assets/resources/dolphin/lvl_4/frame_15.bm differ diff --git a/assets/resources/dolphin/lvl_4/frame_16.bm b/assets/resources/dolphin/lvl_4/frame_16.bm new file mode 100644 index 000000000..b9d4714f4 Binary files /dev/null and b/assets/resources/dolphin/lvl_4/frame_16.bm differ diff --git a/assets/resources/dolphin/lvl_4/frame_17.bm b/assets/resources/dolphin/lvl_4/frame_17.bm new file mode 100644 index 000000000..b5c687322 Binary files /dev/null and b/assets/resources/dolphin/lvl_4/frame_17.bm differ diff --git a/assets/resources/dolphin/lvl_4/frame_18.bm b/assets/resources/dolphin/lvl_4/frame_18.bm new file mode 100644 index 000000000..ea5d41c94 Binary files /dev/null and b/assets/resources/dolphin/lvl_4/frame_18.bm differ diff --git a/assets/resources/dolphin/lvl_4/frame_19.bm b/assets/resources/dolphin/lvl_4/frame_19.bm new file mode 100644 index 000000000..53f1cd023 Binary files /dev/null and b/assets/resources/dolphin/lvl_4/frame_19.bm differ diff --git a/assets/resources/dolphin/lvl_4/frame_2.bm b/assets/resources/dolphin/lvl_4/frame_2.bm index 9e43f27a5..2552035f4 100644 Binary files a/assets/resources/dolphin/lvl_4/frame_2.bm and b/assets/resources/dolphin/lvl_4/frame_2.bm differ diff --git a/assets/resources/dolphin/lvl_4/frame_3.bm b/assets/resources/dolphin/lvl_4/frame_3.bm index ad1673b73..b57b53855 100644 Binary files a/assets/resources/dolphin/lvl_4/frame_3.bm and b/assets/resources/dolphin/lvl_4/frame_3.bm differ diff --git a/assets/resources/dolphin/lvl_4/frame_4.bm b/assets/resources/dolphin/lvl_4/frame_4.bm index cae9da10f..ba5d5ff2b 100644 Binary files a/assets/resources/dolphin/lvl_4/frame_4.bm and b/assets/resources/dolphin/lvl_4/frame_4.bm differ diff --git a/assets/resources/dolphin/lvl_4/frame_5.bm b/assets/resources/dolphin/lvl_4/frame_5.bm index 6d05a0008..136a19104 100644 Binary files a/assets/resources/dolphin/lvl_4/frame_5.bm and b/assets/resources/dolphin/lvl_4/frame_5.bm differ diff --git a/assets/resources/dolphin/lvl_4/frame_6.bm b/assets/resources/dolphin/lvl_4/frame_6.bm index 71e661f08..24230a32a 100644 Binary files a/assets/resources/dolphin/lvl_4/frame_6.bm and b/assets/resources/dolphin/lvl_4/frame_6.bm differ diff --git a/assets/resources/dolphin/lvl_4/frame_7.bm b/assets/resources/dolphin/lvl_4/frame_7.bm index 46bba3472..8afd9a69e 100644 Binary files a/assets/resources/dolphin/lvl_4/frame_7.bm and b/assets/resources/dolphin/lvl_4/frame_7.bm differ diff --git a/assets/resources/dolphin/lvl_4/frame_8.bm b/assets/resources/dolphin/lvl_4/frame_8.bm index 54c2da6d2..daa1472ca 100644 Binary files a/assets/resources/dolphin/lvl_4/frame_8.bm and b/assets/resources/dolphin/lvl_4/frame_8.bm differ diff --git a/assets/resources/dolphin/lvl_4/frame_9.bm b/assets/resources/dolphin/lvl_4/frame_9.bm index 7fab0aa36..af10858dc 100644 Binary files a/assets/resources/dolphin/lvl_4/frame_9.bm and b/assets/resources/dolphin/lvl_4/frame_9.bm differ diff --git a/assets/resources/dolphin/lvl_4/meta.txt b/assets/resources/dolphin/lvl_4/meta.txt index 5fdf4c952..019cabf17 100644 --- a/assets/resources/dolphin/lvl_4/meta.txt +++ b/assets/resources/dolphin/lvl_4/meta.txt @@ -3,9 +3,9 @@ Version: 1 Width: 128 Height: 64 -Passive frames: 15 +Passive frames: 20 Active frames: 0 -Frames order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 +Frames order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Active cycles: 0 Frame rate: 6 Duration: 3600 diff --git a/assets/resources/dolphin/lvl_5/frame_0.bm b/assets/resources/dolphin/lvl_5/frame_0.bm index 8f620268f..7ee8a6b71 100644 Binary files a/assets/resources/dolphin/lvl_5/frame_0.bm and b/assets/resources/dolphin/lvl_5/frame_0.bm differ diff --git a/assets/resources/dolphin/lvl_5/frame_1.bm b/assets/resources/dolphin/lvl_5/frame_1.bm index 4c6655a99..61b2008eb 100644 Binary files a/assets/resources/dolphin/lvl_5/frame_1.bm and b/assets/resources/dolphin/lvl_5/frame_1.bm differ diff --git a/assets/resources/dolphin/lvl_5/frame_10.bm b/assets/resources/dolphin/lvl_5/frame_10.bm index 458192558..a282f8c9a 100644 Binary files a/assets/resources/dolphin/lvl_5/frame_10.bm and b/assets/resources/dolphin/lvl_5/frame_10.bm differ diff --git a/assets/resources/dolphin/lvl_5/frame_11.bm b/assets/resources/dolphin/lvl_5/frame_11.bm index 550c4cc85..7e6340696 100644 Binary files a/assets/resources/dolphin/lvl_5/frame_11.bm and b/assets/resources/dolphin/lvl_5/frame_11.bm differ diff --git a/assets/resources/dolphin/lvl_5/frame_12.bm b/assets/resources/dolphin/lvl_5/frame_12.bm index fbc929a49..87efa9273 100644 Binary files a/assets/resources/dolphin/lvl_5/frame_12.bm and b/assets/resources/dolphin/lvl_5/frame_12.bm differ diff --git a/assets/resources/dolphin/lvl_5/frame_13.bm b/assets/resources/dolphin/lvl_5/frame_13.bm index 778cda117..09fb5a6ee 100644 Binary files a/assets/resources/dolphin/lvl_5/frame_13.bm and b/assets/resources/dolphin/lvl_5/frame_13.bm differ diff --git a/assets/resources/dolphin/lvl_5/frame_14.bm b/assets/resources/dolphin/lvl_5/frame_14.bm index e3cd51ade..eeaff4854 100644 Binary files a/assets/resources/dolphin/lvl_5/frame_14.bm and b/assets/resources/dolphin/lvl_5/frame_14.bm differ diff --git a/assets/resources/dolphin/lvl_5/frame_15.bm b/assets/resources/dolphin/lvl_5/frame_15.bm index d2b59b575..95a2088b8 100644 Binary files a/assets/resources/dolphin/lvl_5/frame_15.bm and b/assets/resources/dolphin/lvl_5/frame_15.bm differ diff --git a/assets/resources/dolphin/lvl_5/frame_16.bm b/assets/resources/dolphin/lvl_5/frame_16.bm index b9d4714f4..bb1351a51 100644 Binary files a/assets/resources/dolphin/lvl_5/frame_16.bm and b/assets/resources/dolphin/lvl_5/frame_16.bm differ diff --git a/assets/resources/dolphin/lvl_5/frame_17.bm b/assets/resources/dolphin/lvl_5/frame_17.bm index b5c687322..143c15d27 100644 Binary files a/assets/resources/dolphin/lvl_5/frame_17.bm and b/assets/resources/dolphin/lvl_5/frame_17.bm differ diff --git a/assets/resources/dolphin/lvl_5/frame_18.bm b/assets/resources/dolphin/lvl_5/frame_18.bm index ea5d41c94..72dad90d7 100644 Binary files a/assets/resources/dolphin/lvl_5/frame_18.bm and b/assets/resources/dolphin/lvl_5/frame_18.bm differ diff --git a/assets/resources/dolphin/lvl_5/frame_19.bm b/assets/resources/dolphin/lvl_5/frame_19.bm index 53f1cd023..73d8c33e5 100644 Binary files a/assets/resources/dolphin/lvl_5/frame_19.bm and b/assets/resources/dolphin/lvl_5/frame_19.bm differ diff --git a/assets/resources/dolphin/lvl_5/frame_2.bm b/assets/resources/dolphin/lvl_5/frame_2.bm index 2552035f4..f6e7b7f12 100644 Binary files a/assets/resources/dolphin/lvl_5/frame_2.bm and b/assets/resources/dolphin/lvl_5/frame_2.bm differ diff --git a/assets/resources/dolphin/lvl_5/frame_20.bm b/assets/resources/dolphin/lvl_5/frame_20.bm new file mode 100644 index 000000000..732f0dba7 Binary files /dev/null and b/assets/resources/dolphin/lvl_5/frame_20.bm differ diff --git a/assets/resources/dolphin/lvl_5/frame_21.bm b/assets/resources/dolphin/lvl_5/frame_21.bm new file mode 100644 index 000000000..c09fdae0b Binary files /dev/null and b/assets/resources/dolphin/lvl_5/frame_21.bm differ diff --git a/assets/resources/dolphin/lvl_5/frame_22.bm b/assets/resources/dolphin/lvl_5/frame_22.bm new file mode 100644 index 000000000..048c24da4 Binary files /dev/null and b/assets/resources/dolphin/lvl_5/frame_22.bm differ diff --git a/assets/resources/dolphin/lvl_5/frame_23.bm b/assets/resources/dolphin/lvl_5/frame_23.bm new file mode 100644 index 000000000..9d92c4677 Binary files /dev/null and b/assets/resources/dolphin/lvl_5/frame_23.bm differ diff --git a/assets/resources/dolphin/lvl_5/frame_24.bm b/assets/resources/dolphin/lvl_5/frame_24.bm new file mode 100644 index 000000000..c3b45b168 Binary files /dev/null and b/assets/resources/dolphin/lvl_5/frame_24.bm differ diff --git a/assets/resources/dolphin/lvl_5/frame_25.bm b/assets/resources/dolphin/lvl_5/frame_25.bm new file mode 100644 index 000000000..99c38c0af Binary files /dev/null and b/assets/resources/dolphin/lvl_5/frame_25.bm differ diff --git a/assets/resources/dolphin/lvl_5/frame_26.bm b/assets/resources/dolphin/lvl_5/frame_26.bm new file mode 100644 index 000000000..a83bf396a Binary files /dev/null and b/assets/resources/dolphin/lvl_5/frame_26.bm differ diff --git a/assets/resources/dolphin/lvl_5/frame_27.bm b/assets/resources/dolphin/lvl_5/frame_27.bm new file mode 100644 index 000000000..ab5f00161 Binary files /dev/null and b/assets/resources/dolphin/lvl_5/frame_27.bm differ diff --git a/assets/resources/dolphin/lvl_5/frame_3.bm b/assets/resources/dolphin/lvl_5/frame_3.bm index b57b53855..df7023fa5 100644 Binary files a/assets/resources/dolphin/lvl_5/frame_3.bm and b/assets/resources/dolphin/lvl_5/frame_3.bm differ diff --git a/assets/resources/dolphin/lvl_5/frame_4.bm b/assets/resources/dolphin/lvl_5/frame_4.bm index ba5d5ff2b..4312f7f3d 100644 Binary files a/assets/resources/dolphin/lvl_5/frame_4.bm and b/assets/resources/dolphin/lvl_5/frame_4.bm differ diff --git a/assets/resources/dolphin/lvl_5/frame_5.bm b/assets/resources/dolphin/lvl_5/frame_5.bm index 136a19104..7170e6fde 100644 Binary files a/assets/resources/dolphin/lvl_5/frame_5.bm and b/assets/resources/dolphin/lvl_5/frame_5.bm differ diff --git a/assets/resources/dolphin/lvl_5/frame_6.bm b/assets/resources/dolphin/lvl_5/frame_6.bm index 24230a32a..2add9ec1d 100644 Binary files a/assets/resources/dolphin/lvl_5/frame_6.bm and b/assets/resources/dolphin/lvl_5/frame_6.bm differ diff --git a/assets/resources/dolphin/lvl_5/frame_7.bm b/assets/resources/dolphin/lvl_5/frame_7.bm index 8afd9a69e..692c691f1 100644 Binary files a/assets/resources/dolphin/lvl_5/frame_7.bm and b/assets/resources/dolphin/lvl_5/frame_7.bm differ diff --git a/assets/resources/dolphin/lvl_5/frame_8.bm b/assets/resources/dolphin/lvl_5/frame_8.bm index daa1472ca..d9a307b90 100644 Binary files a/assets/resources/dolphin/lvl_5/frame_8.bm and b/assets/resources/dolphin/lvl_5/frame_8.bm differ diff --git a/assets/resources/dolphin/lvl_5/frame_9.bm b/assets/resources/dolphin/lvl_5/frame_9.bm index af10858dc..5b9819925 100644 Binary files a/assets/resources/dolphin/lvl_5/frame_9.bm and b/assets/resources/dolphin/lvl_5/frame_9.bm differ diff --git a/assets/resources/dolphin/lvl_5/meta.txt b/assets/resources/dolphin/lvl_5/meta.txt index 019cabf17..815e3e173 100644 --- a/assets/resources/dolphin/lvl_5/meta.txt +++ b/assets/resources/dolphin/lvl_5/meta.txt @@ -3,9 +3,9 @@ Version: 1 Width: 128 Height: 64 -Passive frames: 20 +Passive frames: 28 Active frames: 0 -Frames order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 +Frames order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 Active cycles: 0 Frame rate: 6 Duration: 3600 diff --git a/assets/resources/dolphin/lvl_6/frame_0.bm b/assets/resources/dolphin/lvl_6/frame_0.bm index 7ee8a6b71..bd2dc00b2 100644 Binary files a/assets/resources/dolphin/lvl_6/frame_0.bm and b/assets/resources/dolphin/lvl_6/frame_0.bm differ diff --git a/assets/resources/dolphin/lvl_6/frame_1.bm b/assets/resources/dolphin/lvl_6/frame_1.bm index 61b2008eb..4504498d1 100644 Binary files a/assets/resources/dolphin/lvl_6/frame_1.bm and b/assets/resources/dolphin/lvl_6/frame_1.bm differ diff --git a/assets/resources/dolphin/lvl_6/frame_2.bm b/assets/resources/dolphin/lvl_6/frame_2.bm index f6e7b7f12..d30576163 100644 Binary files a/assets/resources/dolphin/lvl_6/frame_2.bm and b/assets/resources/dolphin/lvl_6/frame_2.bm differ diff --git a/assets/resources/dolphin/lvl_6/frame_3.bm b/assets/resources/dolphin/lvl_6/frame_3.bm index df7023fa5..db257a18a 100644 Binary files a/assets/resources/dolphin/lvl_6/frame_3.bm and b/assets/resources/dolphin/lvl_6/frame_3.bm differ diff --git a/assets/resources/dolphin/lvl_6/frame_4.bm b/assets/resources/dolphin/lvl_6/frame_4.bm index 4312f7f3d..2a707c477 100644 Binary files a/assets/resources/dolphin/lvl_6/frame_4.bm and b/assets/resources/dolphin/lvl_6/frame_4.bm differ diff --git a/assets/resources/dolphin/lvl_6/frame_5.bm b/assets/resources/dolphin/lvl_6/frame_5.bm index 7170e6fde..3c58dcacd 100644 Binary files a/assets/resources/dolphin/lvl_6/frame_5.bm and b/assets/resources/dolphin/lvl_6/frame_5.bm differ diff --git a/assets/resources/dolphin/lvl_6/frame_6.bm b/assets/resources/dolphin/lvl_6/frame_6.bm index 2add9ec1d..9e5bf5829 100644 Binary files a/assets/resources/dolphin/lvl_6/frame_6.bm and b/assets/resources/dolphin/lvl_6/frame_6.bm differ diff --git a/assets/resources/dolphin/lvl_6/meta.txt b/assets/resources/dolphin/lvl_6/meta.txt index 815e3e173..ba81ab2c1 100644 --- a/assets/resources/dolphin/lvl_6/meta.txt +++ b/assets/resources/dolphin/lvl_6/meta.txt @@ -3,9 +3,9 @@ Version: 1 Width: 128 Height: 64 -Passive frames: 28 +Passive frames: 7 Active frames: 0 -Frames order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 +Frames order: 0 1 2 3 4 5 6 Active cycles: 0 Frame rate: 6 Duration: 3600 diff --git a/assets/resources/dolphin/lvl_7/frame_0.bm b/assets/resources/dolphin/lvl_7/frame_0.bm index bd2dc00b2..e929402f8 100644 Binary files a/assets/resources/dolphin/lvl_7/frame_0.bm and b/assets/resources/dolphin/lvl_7/frame_0.bm differ diff --git a/assets/resources/dolphin/lvl_7/frame_1.bm b/assets/resources/dolphin/lvl_7/frame_1.bm index 4504498d1..6ca3a8024 100644 Binary files a/assets/resources/dolphin/lvl_7/frame_1.bm and b/assets/resources/dolphin/lvl_7/frame_1.bm differ diff --git a/assets/resources/dolphin/lvl_7/frame_10.bm b/assets/resources/dolphin/lvl_7/frame_10.bm new file mode 100644 index 000000000..4af8d8311 Binary files /dev/null and b/assets/resources/dolphin/lvl_7/frame_10.bm differ diff --git a/assets/resources/dolphin/lvl_7/frame_11.bm b/assets/resources/dolphin/lvl_7/frame_11.bm new file mode 100644 index 000000000..ab8ca095a Binary files /dev/null and b/assets/resources/dolphin/lvl_7/frame_11.bm differ diff --git a/assets/resources/dolphin/lvl_7/frame_12.bm b/assets/resources/dolphin/lvl_7/frame_12.bm new file mode 100644 index 000000000..67f099a88 Binary files /dev/null and b/assets/resources/dolphin/lvl_7/frame_12.bm differ diff --git a/assets/resources/dolphin/lvl_7/frame_13.bm b/assets/resources/dolphin/lvl_7/frame_13.bm new file mode 100644 index 000000000..5e1fa0856 Binary files /dev/null and b/assets/resources/dolphin/lvl_7/frame_13.bm differ diff --git a/assets/resources/dolphin/lvl_7/frame_2.bm b/assets/resources/dolphin/lvl_7/frame_2.bm index d30576163..59f9b2fcc 100644 Binary files a/assets/resources/dolphin/lvl_7/frame_2.bm and b/assets/resources/dolphin/lvl_7/frame_2.bm differ diff --git a/assets/resources/dolphin/lvl_7/frame_3.bm b/assets/resources/dolphin/lvl_7/frame_3.bm index db257a18a..2d0cfa6d6 100644 Binary files a/assets/resources/dolphin/lvl_7/frame_3.bm and b/assets/resources/dolphin/lvl_7/frame_3.bm differ diff --git a/assets/resources/dolphin/lvl_7/frame_4.bm b/assets/resources/dolphin/lvl_7/frame_4.bm index 2a707c477..ae34e0931 100644 Binary files a/assets/resources/dolphin/lvl_7/frame_4.bm and b/assets/resources/dolphin/lvl_7/frame_4.bm differ diff --git a/assets/resources/dolphin/lvl_7/frame_5.bm b/assets/resources/dolphin/lvl_7/frame_5.bm index 3c58dcacd..23a1ee5f0 100644 Binary files a/assets/resources/dolphin/lvl_7/frame_5.bm and b/assets/resources/dolphin/lvl_7/frame_5.bm differ diff --git a/assets/resources/dolphin/lvl_7/frame_6.bm b/assets/resources/dolphin/lvl_7/frame_6.bm index 9e5bf5829..f38acbb92 100644 Binary files a/assets/resources/dolphin/lvl_7/frame_6.bm and b/assets/resources/dolphin/lvl_7/frame_6.bm differ diff --git a/assets/resources/dolphin/lvl_7/frame_7.bm b/assets/resources/dolphin/lvl_7/frame_7.bm new file mode 100644 index 000000000..dcee3d025 Binary files /dev/null and b/assets/resources/dolphin/lvl_7/frame_7.bm differ diff --git a/assets/resources/dolphin/lvl_7/frame_8.bm b/assets/resources/dolphin/lvl_7/frame_8.bm new file mode 100644 index 000000000..e0391e73a Binary files /dev/null and b/assets/resources/dolphin/lvl_7/frame_8.bm differ diff --git a/assets/resources/dolphin/lvl_7/frame_9.bm b/assets/resources/dolphin/lvl_7/frame_9.bm new file mode 100644 index 000000000..edccb27c3 Binary files /dev/null and b/assets/resources/dolphin/lvl_7/frame_9.bm differ diff --git a/assets/resources/dolphin/lvl_7/meta.txt b/assets/resources/dolphin/lvl_7/meta.txt index ba81ab2c1..6f051aa7b 100644 --- a/assets/resources/dolphin/lvl_7/meta.txt +++ b/assets/resources/dolphin/lvl_7/meta.txt @@ -3,9 +3,9 @@ Version: 1 Width: 128 Height: 64 -Passive frames: 7 +Passive frames: 14 Active frames: 0 -Frames order: 0 1 2 3 4 5 6 +Frames order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Active cycles: 0 Frame rate: 6 Duration: 3600 diff --git a/assets/resources/dolphin/lvl_8/frame_0.bm b/assets/resources/dolphin/lvl_8/frame_0.bm index e929402f8..2eb822da2 100644 Binary files a/assets/resources/dolphin/lvl_8/frame_0.bm and b/assets/resources/dolphin/lvl_8/frame_0.bm differ diff --git a/assets/resources/dolphin/lvl_8/frame_1.bm b/assets/resources/dolphin/lvl_8/frame_1.bm index 6ca3a8024..3b5d6da7a 100644 Binary files a/assets/resources/dolphin/lvl_8/frame_1.bm and b/assets/resources/dolphin/lvl_8/frame_1.bm differ diff --git a/assets/resources/dolphin/lvl_8/frame_2.bm b/assets/resources/dolphin/lvl_8/frame_2.bm index 59f9b2fcc..6a797e4d9 100644 Binary files a/assets/resources/dolphin/lvl_8/frame_2.bm and b/assets/resources/dolphin/lvl_8/frame_2.bm differ diff --git a/assets/resources/dolphin/lvl_8/frame_3.bm b/assets/resources/dolphin/lvl_8/frame_3.bm index 2d0cfa6d6..20b8ce106 100644 Binary files a/assets/resources/dolphin/lvl_8/frame_3.bm and b/assets/resources/dolphin/lvl_8/frame_3.bm differ diff --git a/assets/resources/dolphin/lvl_8/frame_4.bm b/assets/resources/dolphin/lvl_8/frame_4.bm index ae34e0931..7104d5003 100644 Binary files a/assets/resources/dolphin/lvl_8/frame_4.bm and b/assets/resources/dolphin/lvl_8/frame_4.bm differ diff --git a/assets/resources/dolphin/lvl_8/frame_5.bm b/assets/resources/dolphin/lvl_8/frame_5.bm index 23a1ee5f0..efd542a99 100644 Binary files a/assets/resources/dolphin/lvl_8/frame_5.bm and b/assets/resources/dolphin/lvl_8/frame_5.bm differ diff --git a/assets/resources/dolphin/lvl_8/meta.txt b/assets/resources/dolphin/lvl_8/meta.txt index 6f051aa7b..d9d683102 100644 --- a/assets/resources/dolphin/lvl_8/meta.txt +++ b/assets/resources/dolphin/lvl_8/meta.txt @@ -3,9 +3,9 @@ Version: 1 Width: 128 Height: 64 -Passive frames: 14 +Passive frames: 6 Active frames: 0 -Frames order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 +Frames order: 0 1 2 3 4 5 Active cycles: 0 Frame rate: 6 Duration: 3600 diff --git a/assets/resources/dolphin/lvl_9/frame_0.bm b/assets/resources/dolphin/lvl_9/frame_0.bm index 2eb822da2..e6292c4fd 100644 Binary files a/assets/resources/dolphin/lvl_9/frame_0.bm and b/assets/resources/dolphin/lvl_9/frame_0.bm differ diff --git a/assets/resources/dolphin/lvl_9/frame_1.bm b/assets/resources/dolphin/lvl_9/frame_1.bm index 3b5d6da7a..41663eb51 100644 Binary files a/assets/resources/dolphin/lvl_9/frame_1.bm and b/assets/resources/dolphin/lvl_9/frame_1.bm differ diff --git a/assets/resources/dolphin/lvl_9/frame_2.bm b/assets/resources/dolphin/lvl_9/frame_2.bm index 6a797e4d9..c8f2d87db 100644 Binary files a/assets/resources/dolphin/lvl_9/frame_2.bm and b/assets/resources/dolphin/lvl_9/frame_2.bm differ diff --git a/assets/resources/dolphin/lvl_9/frame_3.bm b/assets/resources/dolphin/lvl_9/frame_3.bm index 20b8ce106..415ef5c3a 100644 Binary files a/assets/resources/dolphin/lvl_9/frame_3.bm and b/assets/resources/dolphin/lvl_9/frame_3.bm differ diff --git a/assets/resources/dolphin/lvl_9/frame_4.bm b/assets/resources/dolphin/lvl_9/frame_4.bm index 7104d5003..ad7392be1 100644 Binary files a/assets/resources/dolphin/lvl_9/frame_4.bm and b/assets/resources/dolphin/lvl_9/frame_4.bm differ diff --git a/assets/resources/dolphin/lvl_9/frame_5.bm b/assets/resources/dolphin/lvl_9/frame_5.bm index efd542a99..ea44bd453 100644 Binary files a/assets/resources/dolphin/lvl_9/frame_5.bm and b/assets/resources/dolphin/lvl_9/frame_5.bm differ diff --git a/assets/resources/dolphin/lvl_9/frame_6.bm b/assets/resources/dolphin/lvl_9/frame_6.bm new file mode 100644 index 000000000..5e131183a Binary files /dev/null and b/assets/resources/dolphin/lvl_9/frame_6.bm differ diff --git a/assets/resources/dolphin/lvl_9/frame_7.bm b/assets/resources/dolphin/lvl_9/frame_7.bm new file mode 100644 index 000000000..337cdc355 Binary files /dev/null and b/assets/resources/dolphin/lvl_9/frame_7.bm differ diff --git a/assets/resources/dolphin/lvl_9/meta.txt b/assets/resources/dolphin/lvl_9/meta.txt index d9d683102..44d736f04 100644 --- a/assets/resources/dolphin/lvl_9/meta.txt +++ b/assets/resources/dolphin/lvl_9/meta.txt @@ -3,9 +3,9 @@ Version: 1 Width: 128 Height: 64 -Passive frames: 6 +Passive frames: 8 Active frames: 0 -Frames order: 0 1 2 3 4 5 +Frames order: 0 1 2 3 4 5 6 7 Active cycles: 0 Frame rate: 6 Duration: 3600 diff --git a/assets/resources/dolphin/manifest.txt b/assets/resources/dolphin/manifest.txt index 80265a8b8..c0ac50f72 100644 --- a/assets/resources/dolphin/manifest.txt +++ b/assets/resources/dolphin/manifest.txt @@ -76,7 +76,7 @@ Min butthurt: 0 Max butthurt: 14 Min level: 11 Max level: 30 -Weight: 7 +Weight: 9 Name: lvl_12 Min butthurt: 0 @@ -106,13 +106,6 @@ Min level: 15 Max level: 30 Weight: 7 -Name: PaxGod_TikTok_Marketing -Min butthurt: 0 -Max butthurt: 14 -Min level: 11 -Max level: 30 -Weight: 3 - Name: lvl_16 Min butthurt: 0 Max butthurt: 14 @@ -153,7 +146,7 @@ Min butthurt: 0 Max butthurt: 14 Min level: 21 Max level: 30 -Weight: 7 +Weight: 9 Name: lvl_22 Min butthurt: 0 @@ -216,4 +209,4 @@ Min butthurt: 0 Max butthurt: 14 Min level: 30 Max level: 30 -Weight: 7 +Weight: 9 diff --git a/assets/resources/dolphin/no_lvl_up_manifest.txt b/assets/resources/dolphin/no_lvl_up_manifest.txt index c9432e97a..2656b86fd 100644 --- a/assets/resources/dolphin/no_lvl_up_manifest.txt +++ b/assets/resources/dolphin/no_lvl_up_manifest.txt @@ -76,7 +76,7 @@ Min butthurt: 0 Max butthurt: 3 Min level: 1 Max level: 30 -Weight: 7 +Weight: 9 Name: lvl_12 Min butthurt: 0 @@ -146,7 +146,7 @@ Min butthurt: 0 Max butthurt: 3 Min level: 1 Max level: 30 -Weight: 7 +Weight: 9 Name: lvl_22 Min butthurt: 0 @@ -209,4 +209,4 @@ Min butthurt: 0 Max butthurt: 3 Min level: 1 Max level: 30 -Weight: 7 \ No newline at end of file +Weight: 9 \ No newline at end of file diff --git a/assets/resources/infrared/assets/ac.ir b/assets/resources/infrared/assets/ac.ir index 629dd3955..bce1031d6 100644 --- a/assets/resources/infrared/assets/ac.ir +++ b/assets/resources/infrared/assets/ac.ir @@ -1514,4 +1514,41 @@ name: Off type: raw frequency: 38000 duty_cycle: 0.330000 -data: 5043 2132 361 1770 356 723 335 715 332 718 329 1774 363 715 332 719 328 722 336 714 333 1770 356 722 336 1767 360 1772 354 724 334 1769 357 1774 363 1768 358 1773 364 1767 359 720 327 723 335 1768 359 720 327 723 335 716 331 719 328 722 336 714 333 1770 356 1774 363 1769 357 1773 364 1767 360 720 327 1775 362 1769 357 721 326 725 333 717 330 720 327 723 335 716 331 719 328 722 336 714 333 717 330 720 327 723 335 1768 359 1773 364 1767 360 1772 354 724 334 717 330 720 327 723 335 29451 5041 2134 359 1772 354 724 334 717 330 720 327 1775 362 717 330 720 327 723 335 715 332 1771 355 723 335 1768 358 1773 364 715 332 1770 357 1775 362 1769 357 1774 363 1768 359 720 327 723 335 1768 359 720 327 724 334 716 331 719 328 722 336 715 332 718 329 720 327 723 335 716 331 1771 355 1776 361 718 329 721 326 1776 361 718 329 1773 364 1767 360 720 327 723 335 715 332 718 329 1774 363 1768 359 720 327 723 335 1768 358 721 326 724 334 716 331 719 328 722 336 1767 360 719 328 722 336 715 332 718 329 721 326 724 334 717 330 720 327 723 335 715 332 719 328 722 325 725 333 717 330 720 327 723 335 716 331 719 328 1774 363 716 331 1771 355 1776 361 718 329 721 326 724 334 717 330 1772 365 714 333 1770 356 722 336 715 332 718 329 721 326 724 334 717 330 719 328 1775 362 717 330 720 327 723 335 715 332 718 329 1774 363 715 332 718 329 721 326 725 333 717 330 1772 365 \ No newline at end of file +data: 5043 2132 361 1770 356 723 335 715 332 718 329 1774 363 715 332 719 328 722 336 714 333 1770 356 722 336 1767 360 1772 354 724 334 1769 357 1774 363 1768 358 1773 364 1767 359 720 327 723 335 1768 359 720 327 723 335 716 331 719 328 722 336 714 333 1770 356 1774 363 1769 357 1773 364 1767 360 720 327 1775 362 1769 357 721 326 725 333 717 330 720 327 723 335 716 331 719 328 722 336 714 333 717 330 720 327 723 335 1768 359 1773 364 1767 360 1772 354 724 334 717 330 720 327 723 335 29451 5041 2134 359 1772 354 724 334 717 330 720 327 1775 362 717 330 720 327 723 335 715 332 1771 355 723 335 1768 358 1773 364 715 332 1770 357 1775 362 1769 357 1774 363 1768 359 720 327 723 335 1768 359 720 327 724 334 716 331 719 328 722 336 715 332 718 329 720 327 723 335 716 331 1771 355 1776 361 718 329 721 326 1776 361 718 329 1773 364 1767 360 720 327 723 335 715 332 718 329 1774 363 1768 359 720 327 723 335 1768 358 721 326 724 334 716 331 719 328 722 336 1767 360 719 328 722 336 715 332 718 329 721 326 724 334 717 330 720 327 723 335 715 332 719 328 722 325 725 333 717 330 720 327 723 335 716 331 719 328 1774 363 716 331 1771 355 1776 361 718 329 721 326 724 334 717 330 1772 365 714 333 1770 356 722 336 715 332 718 329 721 326 724 334 717 330 719 328 1775 362 717 330 720 327 723 335 715 332 718 329 1774 363 715 332 718 329 721 326 725 333 717 330 1772 365 +# +# Model: Dyson Purifier Hot+Cool +name: Off +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 2309 665 781 672 803 672 803 695 832 643 833 1355 804 694 836 640 781 695 804 1409 778 697 777 702 797 678 798 677 799 678 799 701 803 674 802 1412 801 674 801 674 801 674 802 674 801 51317 2284 670 775 1413 802 51252 2283 670 801 1412 775 51275 2258 673 798 1414 802 51248 2284 670 802 1412 774 51246 2259 695 775 1413 801 +# +name: Heat_hi +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 2316 610 806 671 781 695 806 695 781 695 782 1405 782 694 808 694 780 693 808 1381 779 697 802 1412 776 1438 800 1437 776 1438 775 700 775 1412 776 700 801 701 775 700 776 1438 776 700 776 51695 2258 695 776 1437 776 51248 2258 672 798 1439 776 51240 2258 670 801 1436 776 +# +name: Heat_lo +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 2342 612 781 695 805 668 810 666 810 665 811 1402 811 666 811 692 781 670 781 1432 781 696 778 1436 802 1412 802 1412 802 1413 801 1412 802 1412 801 1412 777 1411 776 1463 776 1412 800 1414 801 51041 2257 697 802 1411 777 51240 2283 671 776 1437 801 51209 2255 672 799 1412 801 +# +name: Cool_hi +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 2317 637 832 644 830 669 805 670 805 672 803 1411 803 673 802 674 802 673 803 1411 803 674 801 1411 802 675 775 1415 800 701 774 1440 801 1412 775 702 799 1414 774 1413 801 701 801 675 800 51681 2257 695 803 1411 801 51226 2283 671 799 1412 803 51246 2257 696 803 1411 775 51255 2282 668 803 1410 802 51243 2258 695 802 1387 798 +# +name: Cool_lo +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 2315 618 853 643 832 644 834 641 833 643 833 1356 805 695 835 640 808 667 809 1404 808 668 806 1409 803 674 801 1412 802 1388 799 677 799 701 775 701 801 1389 799 677 799 676 800 1439 802 51426 2283 671 800 1412 802 51251 2258 697 801 1387 800 51248 2283 669 802 1411 802 51230 2258 696 799 1387 801 51225 2283 670 801 1411 801 51200 2280 695 775 1411 802 51227 2258 696 802 1411 775 51204 2281 669 801 1411 800 +# +name: Dh +type: raw +frequency: 38000 +duty_cycle: 0.330000 +data: 2320 634 837 637 838 637 838 640 835 642 832 1378 836 645 826 670 809 667 808 1406 806 672 803 674 802 1412 802 1412 800 676 801 675 802 1412 802 674 802 1413 801 1412 801 1413 802 1412 802 50937 2285 671 801 1411 802 51225 2280 696 775 1412 801 51212 2283 671 775 1412 802 diff --git a/assets/resources/subghz/Stores/CVS/Aisle_Eight.sub b/assets/resources/subghz/Stores/CVS/Aisle_Eight.sub new file mode 100644 index 000000000..035f7bc6c --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Aisle_Eight.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 804 -744 1560 -1512 788 -748 1556 -1520 824 -740 1548 -740 1584 -744 1544 -740 1588 -744 1540 -744 1584 -744 1544 -740 1588 -740 1544 -744 1588 -736 1548 -744 1584 -744 1544 -740 1588 -736 1552 -740 1584 -744 1548 -740 1588 -736 1548 -744 1588 -1500 784 -740 1588 -1500 784 -744 1584 -1500 788 -740 1584 -1504 784 -740 1584 -1504 784 -1500 820 -1504 784 -1500 828 -1500 788 -736 1584 -1504 784 -740 1580 -4584 788 -748 1556 -1520 784 -744 1564 -1512 832 -740 1548 -740 1584 -736 1552 -740 1588 -740 1544 -744 1580 -740 1548 -740 1588 -740 1544 -736 1588 -740 1544 -744 1584 -740 1548 -736 1588 -744 1544 -740 1584 -740 1548 -740 1588 -740 1544 -740 1588 -1500 784 -740 1588 -1504 784 -736 1588 -1500 784 -740 1584 -1504 784 -740 1580 -1504 780 -1504 824 -1504 780 -1504 828 -1500 788 -736 1588 -1504 784 -736 1584 -4584 792 -744 1564 -1512 792 -748 1556 -1516 828 -740 1548 -740 1584 -740 1548 -740 1584 -744 1548 -740 1584 -740 1548 -740 1580 -744 1548 -736 1588 -740 1548 -740 1588 -736 1548 -736 1588 -740 1548 -744 1584 -740 1544 -740 1584 -748 1548 -736 1588 -1504 784 -736 1588 -1504 784 -744 1584 -1500 788 -736 1588 -1500 784 -744 1584 -1500 784 -1500 820 -1504 788 -1504 828 -1500 788 -736 1588 -1504 784 -740 1580 -4584 792 -748 1556 -1512 792 -748 1556 -1516 828 -740 1548 -744 1584 -744 1548 -736 1588 -736 1548 -748 1580 -740 1548 -740 1588 -736 1548 -744 1584 -740 1548 -740 1588 -740 1544 -744 1588 -740 1544 -736 1588 -740 1552 -740 1584 -744 1544 -740 1592 -1504 780 -744 1584 -1504 784 -740 1588 -1500 784 -740 1588 -1504 784 -744 1576 -1504 780 -1504 824 -1504 784 -1504 824 -1504 784 -740 1588 -1504 784 -736 1580 -4592 784 -744 1564 -1512 792 -748 1552 -1520 824 -744 1548 -736 1588 -736 1548 -740 1584 -744 1544 -740 1588 -736 1548 -744 1584 -744 1544 -736 1588 -740 1548 -744 1584 -736 1552 -736 1584 -744 1552 -740 1588 -740 1544 -740 1584 -744 1548 -744 1588 -1504 780 -744 1584 -1504 784 -736 1588 -1504 784 -744 1584 -1508 784 -740 1580 -1508 780 -1500 824 -1504 784 -1504 832 -1504 784 -740 1584 -1504 784 -740 1588 -4584 792 -744 1560 -1512 792 -748 1560 -1512 832 -740 1548 -744 1584 -744 1544 -740 1588 -744 1544 -740 1584 -748 1544 -744 1584 -740 1548 -740 1584 -744 1544 -744 1584 -744 1544 -744 1580 -744 1548 -744 1584 -740 1552 -736 1588 -740 1552 -740 1588 -1504 784 -740 1588 -1504 780 -748 1584 -1504 784 -744 1584 -1504 784 -736 1584 -1504 784 -1508 816 -1508 780 -1508 824 -1508 776 -744 1588 -1504 784 -740 1576 -4592 784 -752 1556 -1520 788 -748 1556 -1516 +RAW_Data: 828 -736 1548 -744 1584 -744 1548 -740 1584 -744 1544 -740 1588 -740 1548 -744 1584 -744 1544 -744 1580 -744 1544 -744 1588 -740 1548 -744 1580 -744 1544 -748 1576 -744 1548 -744 1580 -744 1544 -744 1588 -1504 780 -748 1580 -1508 780 -748 1580 -1508 780 -744 1584 -1508 780 -744 1576 -1508 780 -1508 820 -1504 784 -1508 820 -1508 780 -744 1584 -1508 780 -748 1572 -4596 784 -752 1552 -1520 784 -752 1556 -1520 824 -748 1540 -752 1580 -744 1544 -748 1580 -744 1544 -744 1584 -748 1540 -744 1584 -744 1544 -748 1576 -748 1544 -744 1580 -748 1540 -752 1580 -744 1544 -748 1580 -744 1544 -748 1580 -748 1544 -744 1588 -1508 780 -744 1584 -1512 776 -748 1580 -1512 776 -748 1580 -1512 776 -748 1576 -1508 780 -1508 820 -1508 780 -1508 820 -1512 776 -748 1580 -1512 776 -748 1572 -4596 780 -756 1552 -1520 788 -752 1552 -1520 824 -752 1540 -748 1576 -752 1536 -752 1576 -752 1540 -748 1580 -748 1540 -748 1580 -748 1544 -744 1580 -748 1540 -752 1576 -752 1540 -748 1580 -748 1540 -748 1580 -748 1540 -748 1580 -748 1540 -748 1584 -1512 776 -748 1580 -1512 776 -752 1576 -1512 776 -744 1580 -1508 780 -748 1572 -1516 776 -1512 812 -1512 776 -1512 820 -1508 780 -752 1576 -1512 776 -748 1572 -4592 788 -752 1552 -1520 788 -748 1552 -1524 820 -748 1544 -748 1580 -748 1544 -744 1580 -748 1540 -744 1580 -748 1540 -748 1580 -748 1540 -748 1580 -744 1540 -748 1580 -744 1544 -748 1580 -748 1540 -748 1580 -744 1544 -744 1580 -748 1540 -748 1584 -1508 776 -748 1584 -1508 776 -744 1584 -1508 776 -744 1584 -1512 776 -744 1580 -1508 776 -1508 820 -1508 780 -1508 820 -1512 776 -748 1576 -1512 776 -748 1552 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Aisle_Eighteen.sub b/assets/resources/subghz/Stores/CVS/Aisle_Eighteen.sub new file mode 100644 index 000000000..6851c7da3 --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Aisle_Eighteen.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 800 -748 1556 -1524 780 -748 1552 -1516 832 -740 1548 -736 1588 -744 1540 -744 1584 -748 1540 -744 1580 -752 1540 -736 1588 -740 1544 -744 1584 -744 1544 -744 1584 -740 1548 -740 1584 -744 1544 -744 1584 -744 1544 -744 1580 -748 1540 -748 1584 -1512 772 -748 1576 -1508 780 -1504 828 -1500 784 -748 1576 -1500 780 -1512 816 -1508 780 -1508 812 -1516 776 -1504 828 -1504 780 -748 1580 -1500 784 -744 1580 -4584 788 -752 1556 -1516 784 -752 1556 -1516 828 -740 1548 -744 1584 -744 1544 -740 1588 -740 1548 -740 1584 -740 1552 -744 1580 -748 1540 -748 1576 -748 1544 -744 1584 -748 1536 -744 1588 -744 1544 -748 1576 -752 1536 -748 1580 -744 1540 -748 1588 -1500 784 -748 1576 -1512 776 -1504 828 -1508 780 -744 1576 -1504 784 -1508 816 -1508 780 -1508 820 -1504 780 -1512 820 -1508 780 -744 1580 -1512 776 -744 1580 -4588 792 -752 1548 -1524 784 -748 1560 -1524 820 -744 1544 -752 1576 -748 1544 -744 1580 -752 1540 -740 1584 -748 1540 -740 1588 -740 1548 -748 1580 -740 1548 -744 1580 -744 1544 -744 1584 -748 1540 -740 1584 -752 1536 -740 1584 -752 1540 -744 1584 -1512 776 -748 1576 -1504 784 -1508 824 -1504 784 -740 1584 -1504 784 -1504 820 -1504 784 -1512 816 -1512 776 -1508 824 -1504 784 -744 1584 -1504 784 -740 1580 -4588 788 -748 1560 -1516 788 -756 1552 -1516 828 -740 1548 -744 1580 -740 1552 -744 1580 -740 1548 -748 1580 -744 1544 -748 1584 -740 1548 -740 1588 -740 1548 -744 1584 -740 1544 -744 1584 -744 1544 -740 1588 -740 1548 -748 1580 -740 1548 -740 1592 -1504 780 -744 1580 -1504 776 -1512 824 -1504 784 -748 1572 -1504 784 -1504 824 -1504 780 -1508 820 -1512 776 -1500 828 -1516 772 -744 1584 -1508 780 -744 1580 -4588 792 -744 1556 -1524 784 -752 1556 -1520 824 -744 1548 -740 1584 -740 1552 -740 1588 -736 1548 -744 1584 -744 1544 -740 1588 -740 1544 -752 1580 -740 1544 -748 1584 -744 1544 -748 1580 -748 1544 -740 1588 -740 1548 -744 1584 -740 1548 -740 1592 -1508 780 -740 1584 -1504 784 -1504 824 -1504 784 -744 1580 -1504 784 -1508 816 -1504 788 -1504 824 -1500 788 -1504 824 -1504 784 -744 1584 -1504 784 -744 1576 -4596 788 -752 1552 -1524 784 -744 1560 -1516 828 -744 1544 -744 1584 -748 1540 -740 1588 -744 1548 -736 1588 -740 1548 -744 1584 -744 1544 -740 1584 -740 1548 -748 1580 -744 1548 -748 1580 -744 1552 -744 1580 -740 1552 -740 1584 -740 1548 -744 1588 -1508 784 -740 1584 -1504 788 -1500 828 -1508 788 -736 1576 -1508 788 -1508 824 -1504 776 -1504 824 -1508 776 -1516 816 -1508 780 -752 1576 -1516 780 -740 1580 -4584 796 -748 1556 -1516 784 -756 1552 -1520 +RAW_Data: 832 -740 1552 -740 1588 -740 1544 -740 1580 -748 1548 -740 1584 -748 1536 -748 1592 -736 1544 -740 1588 -744 1548 -736 1588 -736 1544 -752 1580 -744 1540 -744 1584 -752 1544 -736 1588 -748 1544 -740 1588 -1512 772 -752 1576 -1504 788 -1500 828 -1508 784 -740 1584 -1496 792 -1504 820 -1504 780 -1508 820 -1500 788 -1504 824 -1504 784 -748 1580 -1508 784 -736 1580 -4588 792 -748 1556 -1520 792 -748 1556 -1520 824 -744 1544 -744 1584 -740 1552 -744 1576 -748 1548 -744 1584 -736 1552 -740 1588 -744 1544 -744 1584 -744 1544 -748 1580 -740 1552 -740 1584 -748 1540 -744 1588 -744 1544 -744 1584 -740 1544 -744 1588 -1508 776 -748 1576 -1508 784 -1504 824 -1508 780 -748 1576 -1504 784 -1508 816 -1508 784 -1500 824 -1508 776 -1512 820 -1508 780 -748 1580 -1512 776 -748 1572 -4596 784 -756 1552 -1516 788 -752 1556 -1516 824 -748 1544 -744 1580 -748 1540 -744 1584 -748 1540 -744 1584 -748 1540 -744 1584 -744 1540 -752 1576 -748 1540 -748 1580 -748 1540 -752 1576 -752 1536 -752 1576 -748 1536 -752 1576 -752 1536 -752 1580 -1512 776 -748 1572 -1516 772 -1512 820 -1512 776 -752 1568 -1516 772 -1516 808 -1516 772 -1516 812 -1512 776 -1512 816 -1516 776 -752 1572 -1512 776 -752 1572 -4596 780 -760 1544 -1528 776 -764 1544 -1528 816 -756 1536 -752 1572 -756 1536 -756 1572 -752 1540 -748 1576 -752 1540 -752 1572 -756 1532 -752 1580 -748 1540 -748 1580 -748 1540 -748 1580 -748 1536 -752 1576 -748 1540 -752 1572 -752 1540 -748 1580 -1516 772 -748 1568 -1516 772 -1516 820 -1516 772 -752 1568 -1512 776 -1512 816 -1512 776 -1512 812 -1516 776 -1508 820 -1512 776 -752 1576 -1516 772 -752 1548 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Aisle_Eleven.sub b/assets/resources/subghz/Stores/CVS/Aisle_Eleven.sub new file mode 100644 index 000000000..2636f894c --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Aisle_Eleven.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 800 -748 1556 -1516 784 -748 1556 -1516 828 -740 1544 -736 1588 -740 1552 -736 1584 -740 1548 -740 1588 -736 1552 -736 1588 -736 1548 -740 1584 -744 1544 -740 1588 -736 1548 -740 1588 -736 1548 -744 1580 -740 1548 -740 1588 -736 1552 -740 1584 -1504 780 -1504 824 -1500 784 -1500 828 -1504 784 -740 1584 -1504 784 -740 1580 -1504 780 -1500 824 -1504 784 -1504 824 -1504 780 -740 1584 -1508 780 -744 1576 -4588 784 -748 1556 -1512 792 -748 1556 -1512 828 -744 1548 -736 1588 -740 1548 -740 1584 -740 1548 -740 1584 -740 1548 -740 1588 -736 1548 -740 1588 -736 1548 -740 1588 -744 1540 -744 1584 -744 1540 -744 1584 -744 1544 -740 1584 -740 1548 -736 1588 -1504 780 -1504 820 -1504 784 -1500 828 -1504 780 -740 1588 -1500 784 -744 1580 -1504 784 -1504 820 -1504 784 -1504 828 -1504 784 -736 1588 -1504 784 -736 1584 -4584 792 -744 1560 -1512 792 -744 1560 -1512 836 -736 1548 -744 1584 -744 1544 -740 1584 -744 1544 -744 1584 -744 1544 -744 1580 -744 1544 -740 1588 -740 1548 -740 1584 -740 1548 -740 1588 -740 1548 -736 1588 -740 1548 -740 1588 -740 1548 -740 1584 -1504 780 -1504 824 -1504 780 -1504 828 -1500 788 -736 1588 -1500 784 -740 1584 -1500 784 -1504 820 -1504 784 -1500 828 -1500 788 -740 1580 -1508 784 -740 1580 -4584 788 -748 1556 -1516 792 -744 1560 -1516 828 -740 1544 -740 1588 -744 1544 -740 1584 -744 1540 -748 1580 -744 1544 -744 1584 -740 1552 -736 1584 -740 1548 -740 1588 -740 1548 -740 1588 -740 1544 -744 1584 -740 1544 -744 1584 -736 1552 -736 1588 -1500 784 -1504 824 -1504 784 -1504 824 -1504 780 -744 1584 -1504 784 -740 1580 -1504 780 -1504 824 -1504 784 -1500 828 -1504 784 -740 1584 -1500 788 -740 1580 -4588 792 -744 1560 -1512 792 -748 1560 -1508 832 -740 1548 -740 1588 -740 1544 -740 1584 -744 1548 -740 1584 -744 1544 -744 1584 -744 1544 -744 1584 -740 1548 -744 1588 -740 1544 -740 1588 -740 1548 -744 1584 -740 1548 -740 1588 -740 1548 -740 1588 -1504 784 -1504 820 -1508 784 -1504 824 -1504 784 -744 1580 -1504 784 -740 1584 -1504 784 -1508 816 -1508 780 -1504 828 -1504 780 -748 1580 -1508 780 -744 1580 -4588 788 -744 1564 -1512 792 -744 1560 -1516 828 -740 1552 -740 1584 -744 1544 -744 1584 -740 1548 -740 1584 -744 1548 -736 1588 -740 1552 -736 1588 -740 1548 -740 1592 -736 1548 -740 1588 -740 1548 -740 1588 -744 1544 -744 1584 -740 1544 -744 1584 -1500 788 -1504 820 -1504 784 -1500 832 -1508 780 -740 1588 -1504 788 -736 1580 -1508 784 -1504 820 -1508 784 -1504 824 -1504 784 -740 1584 -1504 784 -744 1580 -4588 788 -748 1556 -1516 788 -748 1556 -1520 +RAW_Data: 828 -740 1544 -748 1580 -740 1548 -744 1584 -740 1548 -740 1584 -744 1544 -744 1588 -736 1548 -744 1584 -740 1552 -736 1588 -744 1548 -740 1584 -744 1544 -740 1584 -744 1544 -744 1584 -740 1548 -744 1584 -1500 784 -1508 820 -1504 784 -1500 828 -1508 780 -740 1588 -1504 784 -744 1576 -1508 776 -1512 816 -1508 784 -1504 828 -1504 784 -740 1584 -1504 784 -740 1580 -4588 788 -748 1560 -1512 784 -756 1556 -1516 828 -740 1548 -744 1584 -740 1548 -744 1584 -740 1548 -740 1584 -744 1544 -740 1588 -740 1548 -740 1588 -744 1544 -740 1584 -740 1548 -740 1588 -744 1544 -744 1580 -744 1548 -736 1592 -736 1552 -736 1584 -1508 780 -1508 824 -1500 788 -1504 824 -1504 784 -740 1588 -1504 780 -744 1580 -1500 788 -1500 824 -1504 784 -1504 824 -1508 780 -740 1588 -1504 780 -744 1584 -4584 792 -740 1560 -1516 788 -748 1560 -1516 828 -740 1548 -740 1584 -744 1548 -744 1584 -736 1548 -740 1588 -740 1548 -740 1588 -732 1552 -740 1592 -732 1552 -740 1588 -740 1548 -740 1588 -744 1544 -740 1584 -748 1544 -740 1588 -740 1548 -744 1584 -1504 780 -1504 824 -1504 784 -1504 824 -1504 784 -740 1588 -1504 784 -740 1580 -1504 788 -1504 820 -1504 784 -1500 832 -1504 784 -744 1584 -1504 784 -740 1580 -4588 788 -748 1560 -1516 788 -744 1560 -1520 828 -740 1548 -740 1588 -740 1548 -736 1592 -736 1552 -740 1588 -740 1548 -744 1584 -744 1544 -740 1588 -744 1548 -740 1588 -740 1548 -744 1584 -744 1544 -744 1584 -744 1544 -744 1584 -744 1544 -740 1588 -1508 780 -1508 820 -1504 784 -1504 824 -1504 784 -740 1588 -1504 784 -744 1580 -1504 788 -1496 824 -1504 784 -1508 824 -1504 784 -740 1588 -1504 776 -748 1560 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Aisle_Fifteen.sub b/assets/resources/subghz/Stores/CVS/Aisle_Fifteen.sub new file mode 100644 index 000000000..d771c698d --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Aisle_Fifteen.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 804 -744 1560 -1512 792 -744 1560 -1516 824 -744 1544 -744 1580 -740 1548 -736 1592 -736 1552 -736 1588 -740 1544 -740 1584 -740 1548 -740 1588 -740 1548 -740 1584 -744 1544 -736 1588 -740 1552 -736 1588 -740 1544 -744 1580 -740 1548 -740 1588 -1500 784 -1500 824 -1500 788 -1500 824 -1504 784 -1500 828 -1504 784 -744 1576 -1504 784 -1504 824 -1500 788 -1500 828 -1496 788 -1500 824 -1496 788 -1504 820 -4588 792 -740 1564 -1516 788 -748 1556 -1516 828 -740 1548 -740 1588 -736 1552 -740 1588 -740 1548 -740 1584 -740 1548 -740 1588 -740 1552 -736 1584 -744 1544 -740 1588 -736 1552 -740 1588 -740 1552 -736 1588 -740 1544 -740 1592 -740 1544 -740 1584 -1504 784 -1500 824 -1504 780 -1504 824 -1504 784 -1496 832 -1500 788 -736 1584 -1500 784 -1504 824 -1500 780 -1508 820 -1504 784 -1504 824 -1500 788 -1496 824 -4588 788 -748 1560 -1516 788 -744 1560 -1516 828 -740 1548 -740 1592 -736 1548 -740 1584 -740 1548 -740 1588 -740 1548 -740 1588 -740 1548 -740 1584 -740 1548 -740 1588 -740 1548 -740 1584 -740 1552 -732 1592 -736 1548 -744 1584 -740 1548 -740 1588 -1504 780 -1504 824 -1500 788 -1504 820 -1508 780 -1500 832 -1504 784 -736 1584 -1500 788 -1504 824 -1504 784 -1500 824 -1508 780 -1504 824 -1504 784 -1500 824 -4588 788 -752 1556 -1516 788 -748 1560 -1512 832 -744 1544 -740 1588 -740 1548 -740 1584 -744 1544 -740 1588 -740 1552 -736 1588 -744 1540 -744 1588 -736 1552 -740 1588 -740 1548 -740 1584 -748 1544 -740 1588 -740 1552 -740 1584 -744 1544 -744 1584 -1504 788 -1496 828 -1500 788 -1500 824 -1508 780 -1504 828 -1508 780 -740 1584 -1500 788 -1500 824 -1504 784 -1504 824 -1500 788 -1500 828 -1500 788 -1496 828 -4584 792 -744 1560 -1520 784 -748 1560 -1512 836 -740 1548 -740 1588 -740 1548 -740 1588 -736 1556 -736 1588 -744 1544 -740 1588 -740 1552 -740 1588 -740 1544 -744 1584 -740 1552 -740 1588 -744 1544 -740 1588 -740 1548 -740 1588 -744 1544 -740 1592 -1500 784 -1504 824 -1504 784 -1508 820 -1504 780 -1508 828 -1508 780 -740 1584 -1504 784 -1504 824 -1504 780 -1504 828 -1500 788 -1500 824 -1504 784 -1504 824 -4588 792 -748 1560 -1512 792 -748 1560 -1512 832 -740 1552 -740 1588 -736 1552 -740 1588 -744 1544 -740 1592 -736 1548 -744 1584 -740 1548 -744 1580 -744 1552 -736 1588 -744 1544 -744 1588 -740 1548 -740 1588 -740 1548 -744 1584 -740 1552 -740 1580 -1504 788 -1500 828 -1500 788 -1504 820 -1500 792 -1500 832 -1500 784 -740 1584 -1500 788 -1504 820 -1504 788 -1500 824 -1504 784 -1500 828 -1500 788 -1504 820 -4588 792 -740 1564 -1516 792 -748 1556 -1520 +RAW_Data: 828 -736 1552 -740 1588 -744 1548 -736 1596 -740 1544 -744 1588 -736 1548 -740 1588 -740 1548 -744 1584 -740 1548 -740 1584 -744 1552 -740 1584 -740 1552 -740 1584 -740 1552 -740 1584 -740 1556 -736 1584 -1504 788 -1500 824 -1508 780 -1504 824 -1500 784 -1508 828 -1504 784 -740 1580 -1504 788 -1496 824 -1512 780 -1504 824 -1504 784 -1508 820 -1504 788 -1500 824 -4584 792 -748 1560 -1516 792 -744 1560 -1520 828 -744 1544 -740 1588 -736 1552 -740 1588 -740 1548 -744 1588 -736 1548 -740 1588 -740 1548 -740 1592 -740 1544 -740 1588 -744 1544 -740 1592 -740 1544 -740 1588 -744 1544 -740 1588 -740 1552 -736 1588 -1500 788 -1500 824 -1508 784 -1500 824 -1504 784 -1500 828 -1504 788 -736 1584 -1504 788 -1500 824 -1504 788 -1496 828 -1508 784 -1500 824 -1504 784 -1504 824 -4588 792 -744 1556 -1516 792 -748 1560 -1512 828 -740 1552 -740 1584 -740 1552 -736 1592 -740 1544 -740 1588 -736 1552 -740 1584 -744 1544 -740 1588 -740 1548 -744 1584 -740 1548 -740 1588 -744 1548 -736 1588 -740 1548 -740 1588 -740 1544 -744 1584 -1500 788 -1500 824 -1504 784 -1500 824 -1500 788 -1500 828 -1504 788 -740 1584 -1500 784 -1504 824 -1504 788 -1500 820 -1504 788 -1500 828 -1500 784 -1500 824 -4588 792 -748 1560 -1516 788 -748 1560 -1516 828 -740 1552 -736 1588 -744 1544 -744 1584 -740 1548 -740 1596 -740 1548 -740 1584 -740 1548 -744 1580 -744 1544 -740 1588 -740 1548 -740 1588 -740 1548 -740 1588 -740 1548 -740 1592 -740 1548 -736 1588 -1504 784 -1504 824 -1500 788 -1504 820 -1508 780 -1508 824 -1504 784 -740 1580 -1504 788 -1504 820 -1508 784 -1504 820 -1504 784 -1504 824 -1504 784 -1504 804 -15964 diff --git a/assets/resources/subghz/Stores/CVS/Aisle_Five.sub b/assets/resources/subghz/Stores/CVS/Aisle_Five.sub new file mode 100644 index 000000000..c3053bc31 --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Aisle_Five.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 804 -748 1552 -1516 792 -740 1564 -1512 828 -740 1548 -740 1584 -740 1548 -740 1584 -740 1544 -748 1584 -736 1548 -740 1584 -744 1548 -736 1588 -744 1544 -736 1588 -740 1544 -744 1588 -732 1552 -744 1580 -744 1548 -736 1588 -744 1540 -740 1584 -1508 780 -1504 828 -1500 788 -736 1584 -1504 784 -1504 824 -1504 780 -1504 828 -1504 780 -744 1584 -1500 784 -740 1584 -1500 784 -1504 824 -1500 784 -1504 824 -4584 792 -744 1556 -1516 788 -748 1560 -1512 828 -744 1544 -740 1588 -740 1544 -744 1588 -732 1548 -748 1580 -740 1548 -740 1584 -744 1544 -740 1584 -740 1548 -736 1588 -744 1544 -740 1588 -740 1548 -740 1584 -740 1544 -748 1584 -740 1548 -740 1584 -1500 784 -1504 824 -1508 784 -740 1580 -1504 784 -1504 820 -1508 784 -1496 828 -1504 784 -740 1584 -1504 784 -736 1584 -1504 784 -1500 824 -1504 784 -1500 824 -4584 792 -744 1556 -1516 792 -748 1556 -1516 828 -740 1548 -740 1584 -740 1552 -732 1592 -740 1548 -740 1584 -740 1548 -736 1588 -740 1548 -736 1592 -736 1548 -736 1592 -736 1548 -744 1584 -740 1548 -740 1584 -740 1548 -740 1584 -744 1544 -740 1584 -1504 788 -1500 828 -1504 776 -744 1580 -1504 784 -1500 824 -1504 784 -1504 828 -1504 784 -740 1588 -1500 784 -740 1584 -1500 788 -1504 820 -1500 788 -1500 824 -4588 788 -748 1560 -1512 792 -744 1564 -1508 832 -744 1544 -740 1588 -740 1544 -744 1588 -736 1548 -744 1584 -740 1548 -740 1588 -740 1552 -732 1592 -740 1548 -740 1588 -740 1544 -748 1584 -736 1552 -744 1580 -744 1548 -740 1588 -744 1548 -736 1584 -1504 784 -1500 832 -1504 788 -736 1584 -1504 784 -1504 824 -1504 784 -1504 824 -1508 784 -740 1588 -1500 784 -744 1580 -1500 784 -1504 824 -1504 784 -1500 824 -4588 788 -748 1560 -1512 792 -748 1560 -1508 832 -744 1548 -736 1588 -744 1544 -744 1588 -736 1548 -744 1584 -744 1544 -740 1588 -744 1548 -736 1592 -736 1552 -744 1584 -740 1548 -744 1584 -744 1548 -736 1588 -744 1548 -740 1584 -740 1552 -736 1592 -1500 784 -1504 828 -1508 780 -744 1584 -1496 784 -1504 824 -1504 788 -1500 832 -1504 780 -744 1584 -1504 784 -736 1588 -1500 788 -1500 828 -1500 784 -1504 824 -4588 792 -744 1560 -1516 796 -744 1556 -1516 832 -740 1548 -744 1584 -740 1548 -744 1588 -736 1552 -744 1584 -740 1548 -740 1584 -744 1548 -740 1588 -740 1548 -744 1584 -740 1552 -740 1584 -744 1548 -736 1588 -740 1552 -732 1592 -740 1548 -740 1588 -1500 788 -1500 828 -1508 780 -740 1584 -1504 784 -1500 824 -1504 784 -1508 828 -1500 788 -740 1584 -1504 784 -740 1584 -1504 784 -1500 828 -1504 780 -1508 820 -4584 792 -744 1564 -1512 796 -744 1560 -1512 +RAW_Data: 832 -740 1552 -736 1588 -740 1548 -744 1584 -740 1548 -740 1588 -736 1552 -740 1588 -740 1552 -736 1588 -744 1544 -740 1588 -740 1548 -740 1592 -732 1552 -740 1588 -740 1548 -740 1588 -740 1548 -740 1584 -1500 788 -1500 832 -1500 784 -744 1580 -1504 784 -1504 824 -1504 784 -1500 828 -1500 792 -736 1588 -1500 788 -740 1584 -1504 784 -1504 824 -1500 788 -1504 824 -4588 788 -748 1560 -1512 792 -744 1564 -1512 832 -740 1548 -740 1588 -736 1552 -740 1588 -736 1552 -740 1588 -740 1548 -740 1592 -740 1544 -744 1584 -740 1548 -740 1588 -744 1548 -736 1588 -740 1552 -736 1588 -740 1548 -740 1588 -740 1548 -744 1580 -1504 788 -1500 828 -1504 788 -740 1580 -1504 784 -1500 828 -1504 784 -1504 828 -1504 784 -740 1584 -1504 788 -736 1584 -1500 788 -1504 824 -1504 788 -1504 816 -4588 792 -744 1560 -1520 788 -748 1560 -1512 832 -740 1552 -736 1588 -740 1552 -736 1588 -740 1548 -744 1588 -732 1556 -740 1584 -744 1548 -736 1588 -740 1548 -740 1588 -740 1548 -740 1588 -740 1548 -744 1584 -740 1548 -740 1588 -744 1548 -736 1588 -1500 788 -1504 832 -1500 788 -736 1584 -1504 784 -1500 824 -1504 784 -1500 832 -1504 784 -740 1588 -1504 784 -740 1584 -1504 784 -1504 820 -1504 788 -1500 824 -4588 788 -748 1560 -1516 788 -752 1560 -1508 832 -740 1548 -740 1588 -740 1548 -744 1584 -744 1548 -740 1584 -740 1552 -740 1588 -740 1548 -744 1584 -740 1548 -740 1588 -744 1548 -740 1584 -744 1544 -744 1584 -744 1544 -740 1588 -740 1548 -744 1584 -1504 780 -1504 828 -1504 788 -740 1580 -1504 788 -1500 824 -1508 780 -1504 828 -1504 784 -744 1588 -1500 784 -740 1584 -1504 784 -1504 820 -1504 784 -1504 804 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Aisle_Four.sub b/assets/resources/subghz/Stores/CVS/Aisle_Four.sub new file mode 100644 index 000000000..11732e381 --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Aisle_Four.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 808 -744 1560 -1512 788 -748 1556 -1516 828 -740 1544 -740 1584 -740 1548 -740 1584 -740 1544 -740 1584 -744 1540 -740 1588 -736 1548 -740 1584 -740 1544 -740 1584 -740 1548 -740 1584 -736 1548 -740 1584 -740 1544 -740 1584 -744 1544 -740 1588 -1504 788 -736 1584 -1504 780 -744 1580 -1500 788 -1500 820 -1504 780 -1504 828 -1500 784 -744 1576 -1504 784 -1496 832 -1504 780 -744 1580 -1504 784 -744 1576 -4584 792 -744 1560 -1516 792 -744 1556 -1512 832 -744 1544 -744 1584 -740 1548 -736 1588 -740 1548 -744 1580 -740 1552 -732 1592 -740 1544 -740 1588 -736 1552 -736 1588 -740 1548 -740 1588 -732 1552 -736 1588 -740 1548 -736 1592 -736 1544 -748 1584 -1500 788 -740 1588 -1500 784 -736 1584 -1500 788 -1500 824 -1500 784 -1504 828 -1504 784 -740 1580 -1500 784 -1500 832 -1508 780 -744 1584 -1500 788 -736 1580 -4584 796 -744 1556 -1516 788 -748 1556 -1516 832 -736 1548 -744 1580 -744 1548 -740 1584 -740 1548 -736 1588 -744 1544 -744 1584 -736 1552 -736 1588 -740 1544 -744 1584 -740 1544 -744 1580 -740 1552 -736 1588 -740 1544 -744 1584 -740 1548 -740 1588 -1504 780 -744 1584 -1500 788 -736 1580 -1500 788 -1500 828 -1500 788 -1500 828 -1500 784 -736 1584 -1500 788 -1504 824 -1500 788 -740 1588 -1500 784 -740 1580 -4592 788 -744 1564 -1512 788 -748 1556 -1520 824 -740 1548 -740 1588 -740 1548 -740 1584 -740 1552 -736 1588 -740 1548 -740 1584 -744 1544 -744 1588 -736 1548 -744 1584 -744 1544 -744 1584 -736 1552 -740 1588 -744 1544 -740 1588 -740 1552 -736 1592 -1500 788 -736 1588 -1504 784 -744 1576 -1508 780 -1504 824 -1504 780 -1504 828 -1508 780 -744 1576 -1500 792 -1500 824 -1500 788 -736 1592 -1500 788 -740 1580 -4592 784 -752 1556 -1516 788 -748 1560 -1512 832 -740 1552 -736 1588 -736 1552 -740 1588 -740 1548 -744 1584 -740 1548 -736 1588 -744 1548 -740 1584 -744 1544 -740 1584 -740 1548 -744 1584 -744 1544 -744 1584 -736 1552 -740 1588 -744 1544 -744 1588 -1500 788 -744 1588 -1500 788 -732 1584 -1504 788 -1500 824 -1500 788 -1504 828 -1504 784 -740 1584 -1500 788 -1504 824 -1504 784 -740 1588 -1504 784 -740 1580 -4592 788 -744 1560 -1512 792 -748 1560 -1516 832 -740 1548 -740 1588 -736 1552 -736 1588 -740 1548 -744 1584 -740 1548 -736 1592 -740 1548 -740 1584 -744 1548 -736 1588 -740 1548 -740 1584 -744 1548 -740 1588 -736 1548 -744 1584 -744 1544 -744 1588 -1500 788 -736 1592 -1504 780 -740 1584 -1500 788 -1500 824 -1504 784 -1504 828 -1504 788 -732 1584 -1508 780 -1500 832 -1504 784 -740 1584 -1500 792 -736 1580 -4584 792 -748 1556 -1516 788 -744 1560 -1516 +RAW_Data: 828 -740 1552 -736 1584 -740 1548 -744 1584 -744 1544 -740 1588 -736 1548 -744 1584 -744 1544 -744 1584 -740 1552 -736 1588 -740 1548 -744 1580 -740 1552 -736 1588 -740 1548 -740 1588 -740 1548 -736 1592 -1504 788 -732 1584 -1504 784 -744 1580 -1504 784 -1504 820 -1504 784 -1500 832 -1500 784 -744 1576 -1504 784 -1500 832 -1504 780 -740 1588 -1504 784 -740 1580 -4584 788 -744 1564 -1516 788 -752 1556 -1512 832 -740 1544 -744 1584 -744 1544 -740 1588 -736 1548 -744 1584 -740 1552 -736 1584 -740 1548 -740 1584 -744 1548 -736 1588 -736 1548 -744 1584 -740 1552 -736 1592 -736 1552 -740 1584 -740 1552 -740 1588 -1500 792 -736 1592 -1500 784 -736 1584 -1500 788 -1500 828 -1500 784 -1504 828 -1504 780 -736 1584 -1504 784 -1504 828 -1504 784 -740 1588 -1500 784 -736 1580 -4592 792 -748 1560 -1512 792 -744 1560 -1516 832 -740 1548 -740 1584 -744 1548 -736 1588 -740 1548 -744 1584 -736 1552 -736 1592 -736 1548 -740 1584 -748 1544 -740 1588 -740 1548 -740 1584 -744 1544 -740 1588 -736 1552 -740 1584 -744 1548 -736 1592 -1508 784 -732 1592 -1504 780 -740 1584 -1500 788 -1500 828 -1504 780 -1504 828 -1504 784 -740 1580 -1504 784 -1500 832 -1500 784 -744 1584 -1504 784 -736 1584 -4588 792 -744 1556 -1516 788 -744 1564 -1516 824 -744 1548 -736 1588 -744 1544 -744 1584 -740 1548 -744 1584 -740 1548 -740 1584 -744 1548 -740 1584 -740 1544 -744 1588 -744 1544 -740 1588 -740 1548 -740 1588 -744 1544 -740 1588 -736 1548 -744 1588 -1504 784 -744 1584 -1500 784 -740 1584 -1504 780 -1500 828 -1500 788 -1504 828 -1500 788 -744 1576 -1504 784 -1504 828 -1504 784 -740 1584 -1504 784 -744 1560 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Aisle_Fourteen.sub b/assets/resources/subghz/Stores/CVS/Aisle_Fourteen.sub new file mode 100644 index 000000000..a49857cff --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Aisle_Fourteen.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 800 -752 1552 -1516 788 -752 1548 -1524 820 -748 1540 -748 1580 -748 1540 -744 1580 -748 1540 -748 1580 -744 1540 -748 1576 -748 1536 -748 1576 -748 1540 -748 1576 -748 1540 -744 1580 -748 1536 -748 1580 -748 1540 -744 1576 -744 1544 -748 1580 -1512 772 -752 1572 -1508 776 -1512 816 -1508 780 -1504 824 -1508 776 -744 1576 -1508 776 -1508 820 -1508 780 -1504 824 -1508 776 -748 1580 -1508 776 -748 1572 -4592 784 -752 1552 -1520 784 -756 1544 -1524 820 -748 1540 -748 1576 -752 1540 -744 1580 -744 1544 -748 1576 -748 1540 -748 1580 -748 1540 -744 1580 -748 1540 -748 1576 -748 1540 -748 1580 -744 1544 -748 1576 -748 1540 -744 1584 -744 1540 -748 1584 -1508 780 -744 1576 -1508 776 -1512 812 -1512 776 -1508 820 -1508 776 -752 1572 -1508 776 -1512 816 -1508 780 -1504 824 -1508 780 -748 1576 -1512 776 -744 1576 -4592 784 -752 1552 -1516 784 -756 1552 -1516 824 -748 1540 -748 1576 -748 1540 -748 1576 -752 1536 -748 1576 -748 1536 -752 1572 -748 1536 -752 1576 -752 1536 -748 1576 -744 1540 -748 1576 -748 1540 -748 1576 -748 1536 -752 1576 -748 1540 -748 1580 -1508 776 -752 1568 -1512 780 -1508 816 -1512 772 -1516 812 -1512 776 -748 1568 -1512 776 -1512 812 -1512 772 -1512 816 -1516 768 -756 1572 -1520 764 -760 1560 -4608 764 -768 1540 -1532 772 -764 1540 -1532 808 -760 1528 -760 1568 -756 1528 -764 1564 -760 1528 -760 1568 -760 1528 -760 1564 -760 1528 -760 1568 -760 1528 -760 1568 -760 1528 -760 1564 -760 1528 -760 1568 -760 1528 -760 1564 -760 1528 -760 1568 -1524 764 -764 1560 -1524 764 -1520 804 -1524 764 -1520 808 -1524 764 -760 1560 -1524 760 -1524 804 -1520 764 -1524 804 -1524 764 -760 1564 -1520 764 -764 1556 -4612 764 -768 1540 -1536 768 -764 1540 -1536 804 -768 1520 -764 1560 -768 1524 -760 1564 -760 1528 -760 1568 -760 1528 -756 1568 -760 1528 -756 1568 -764 1524 -764 1564 -760 1528 -760 1564 -764 1520 -768 1556 -780 1500 -788 1536 -832 1452 -812 1512 -15844 +RAW_Data: 748 -1532 800 -1524 764 -760 1560 -1528 760 -1524 800 -1528 760 -1524 808 -1524 760 -764 1560 -1524 764 -764 1556 -4604 768 -768 1540 -1536 768 -768 1536 -1536 808 -760 1528 -760 1564 -764 1524 -764 1560 -764 1524 -764 1560 -764 1524 -760 1564 -760 1528 -760 1564 -760 1528 -760 1564 -768 1520 -764 1564 -760 1528 -760 1564 -760 1528 -760 1564 -760 1528 -760 1568 -1524 764 -760 1560 -1520 764 -1524 804 -1520 764 -1524 804 -1524 764 -760 1564 -1520 764 -1524 804 -1520 764 -1524 804 -1524 764 -760 1564 -1524 764 -760 1556 -4604 772 -764 1540 -1536 768 -768 1536 -1536 808 -760 1528 -760 1564 -764 1524 -760 1568 -760 1528 -760 1564 -764 1524 -760 1568 -756 1528 -760 1568 -760 1528 -760 1568 -760 1528 -760 1564 -760 1528 -764 1560 -764 1524 -760 1564 -764 1528 -756 1568 -1528 764 -760 1560 -1524 760 -1524 804 -1524 764 -1524 808 -1520 764 -760 1564 -1520 764 -1524 800 -1528 760 -1524 808 -1520 764 -760 1568 -1524 760 -764 1560 -4604 768 -768 1540 -1532 768 -768 1540 -1532 808 -764 1528 -760 1564 -764 1524 -760 1568 -760 1524 -760 1568 -760 1528 -764 1564 -756 1532 -756 1568 -760 1528 -760 1564 -760 1528 -760 1568 -760 1524 -764 1564 -764 1524 -764 1564 -764 1524 -764 1568 -1520 764 -760 1564 -1520 764 -1524 804 -1520 764 -1524 808 -1520 764 -760 1560 -1524 760 -1524 804 -1520 764 -1524 808 -1520 764 -764 1564 -1520 764 -760 1560 -4604 768 -768 1536 -1536 768 -768 1540 -1532 808 -760 1528 -760 1568 -760 1528 -760 1564 -764 1524 -760 1568 -756 1528 -764 1564 -760 1528 -760 1564 -760 1528 -760 1568 -760 1524 -764 1564 -760 1528 -760 1568 -760 1524 -764 1564 -760 1528 -760 1572 -1524 764 -760 1560 -1524 764 -1520 804 -1524 764 -1520 808 -1520 768 -760 1560 -1520 768 -1520 804 -1524 764 -1520 808 -1524 764 -760 1568 -1524 764 -760 1540 -15724 diff --git a/assets/resources/subghz/Stores/CVS/Aisle_Nineteen.sub b/assets/resources/subghz/Stores/CVS/Aisle_Nineteen.sub new file mode 100644 index 000000000..7b46127d0 --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Aisle_Nineteen.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 804 -744 1556 -1516 788 -744 1564 -1508 832 -740 1548 -744 1584 -740 1548 -736 1588 -740 1548 -740 1584 -740 1548 -740 1580 -744 1548 -744 1584 -740 1544 -744 1584 -744 1544 -744 1584 -740 1548 -740 1588 -740 1548 -740 1588 -740 1548 -744 1580 -1508 780 -1504 824 -1504 784 -1500 828 -1504 784 -744 1576 -1508 784 -1500 828 -1496 788 -1504 820 -1504 784 -1504 828 -1504 780 -744 1584 -1504 784 -744 1576 -4592 788 -744 1560 -1516 792 -744 1560 -1512 832 -740 1548 -736 1588 -740 1552 -740 1584 -744 1548 -740 1584 -740 1548 -740 1588 -740 1548 -740 1584 -740 1552 -736 1584 -744 1548 -736 1588 -740 1548 -744 1584 -744 1544 -744 1580 -744 1544 -744 1584 -1500 788 -1500 824 -1500 784 -1504 828 -1504 784 -740 1580 -1504 784 -1500 824 -1504 784 -1500 828 -1500 784 -1504 828 -1496 788 -740 1592 -1500 784 -740 1580 -4588 788 -748 1560 -1512 792 -748 1560 -1516 828 -740 1548 -740 1588 -740 1548 -740 1584 -740 1552 -740 1588 -740 1548 -744 1584 -740 1548 -744 1584 -740 1548 -740 1588 -740 1548 -748 1580 -748 1544 -744 1588 -740 1548 -740 1588 -736 1552 -740 1584 -1504 784 -1504 824 -1504 784 -1504 828 -1504 784 -736 1580 -1508 784 -1500 828 -1496 788 -1504 820 -1504 784 -1504 828 -1500 788 -736 1588 -1508 780 -744 1576 -4592 788 -748 1556 -1520 788 -744 1564 -1516 828 -740 1548 -740 1584 -740 1552 -736 1584 -748 1544 -744 1584 -744 1548 -740 1588 -740 1548 -736 1588 -740 1544 -748 1584 -740 1548 -744 1584 -744 1548 -740 1588 -740 1548 -740 1588 -740 1548 -744 1580 -1508 784 -1504 824 -1500 788 -1504 828 -1500 788 -740 1580 -1504 788 -1504 820 -1504 784 -1504 824 -1500 788 -1504 828 -1504 788 -740 1584 -1500 788 -736 1584 -4588 792 -744 1560 -1516 788 -748 1560 -1520 828 -740 1548 -740 1588 -740 1548 -736 1588 -740 1548 -740 1588 -744 1548 -736 1588 -740 1552 -740 1584 -740 1548 -740 1584 -744 1544 -740 1588 -744 1544 -740 1588 -744 1544 -740 1588 -740 1548 -740 1584 -1504 784 -1504 824 -1504 784 -1504 832 -1500 788 -736 1584 -1504 780 -1508 820 -1508 780 -1504 824 -1500 788 -1496 832 -1508 780 -744 1584 -1504 788 -740 1576 -4592 788 -744 1560 -1516 792 -744 1560 -1516 828 -740 1552 -740 1588 -736 1552 -736 1592 -736 1548 -744 1588 -736 1552 -736 1592 -736 1548 -744 1584 -740 1552 -740 1588 -740 1548 -740 1588 -740 1552 -740 1588 -736 1552 -740 1588 -740 1548 -740 1588 -1500 788 -1500 824 -1504 784 -1500 828 -1500 788 -744 1580 -1504 784 -1504 828 -1496 788 -1504 824 -1504 780 -1508 820 -1512 784 -736 1588 -1504 784 -736 1584 -4588 792 -748 1556 -1516 792 -744 1560 -1512 +RAW_Data: 836 -740 1548 -740 1584 -744 1548 -736 1588 -744 1548 -740 1588 -740 1552 -736 1584 -744 1548 -740 1588 -740 1548 -740 1584 -744 1548 -740 1584 -740 1548 -740 1588 -740 1548 -740 1588 -740 1552 -736 1584 -1508 784 -1500 824 -1504 784 -1504 828 -1508 780 -736 1588 -1500 784 -1508 820 -1500 792 -1500 824 -1504 780 -1508 824 -1504 788 -740 1584 -1500 788 -740 1580 -4588 792 -744 1564 -1512 792 -744 1564 -1516 828 -740 1552 -740 1584 -744 1548 -740 1588 -744 1544 -740 1588 -744 1540 -740 1592 -744 1544 -740 1592 -736 1548 -740 1592 -736 1548 -740 1588 -744 1544 -740 1588 -744 1548 -736 1588 -740 1552 -740 1580 -1508 788 -1500 824 -1504 784 -1504 828 -1500 788 -744 1580 -1504 784 -1504 820 -1504 788 -1500 824 -1504 788 -1504 828 -1504 784 -744 1584 -1504 784 -744 1580 -4588 792 -748 1560 -1516 792 -748 1556 -1520 832 -736 1548 -740 1592 -740 1548 -736 1592 -740 1548 -740 1588 -740 1548 -744 1584 -744 1548 -744 1584 -740 1548 -740 1588 -744 1548 -736 1588 -740 1552 -736 1592 -740 1548 -740 1588 -744 1544 -740 1588 -1500 788 -1504 820 -1504 788 -1504 824 -1504 788 -740 1584 -1500 788 -1500 828 -1504 780 -1504 824 -1500 788 -1500 832 -1504 780 -740 1588 -1508 780 -744 1580 -4588 788 -748 1560 -1516 788 -744 1560 -1520 828 -740 1548 -740 1580 -744 1548 -736 1592 -740 1544 -740 1588 -744 1544 -740 1588 -744 1548 -740 1584 -740 1552 -740 1584 -740 1548 -744 1584 -744 1544 -740 1592 -740 1544 -740 1584 -740 1552 -736 1588 -1500 788 -1504 824 -1500 784 -1508 824 -1500 788 -740 1580 -1504 784 -1500 828 -1500 780 -1504 828 -1500 784 -1500 832 -1500 784 -744 1584 -1504 784 -736 1564 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Aisle_One.sub b/assets/resources/subghz/Stores/CVS/Aisle_One.sub new file mode 100644 index 000000000..391f27edc --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Aisle_One.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 800 -748 1556 -1512 788 -748 1556 -1516 828 -740 1548 -740 1584 -744 1544 -744 1576 -744 1548 -744 1580 -740 1548 -736 1592 -740 1544 -744 1580 -744 1544 -744 1584 -740 1544 -744 1580 -744 1544 -740 1584 -744 1544 -740 1588 -740 1548 -740 1580 -1508 780 -1504 828 -1500 780 -748 1580 -1504 784 -740 1580 -1504 780 -1504 824 -1500 788 -740 1576 -1504 784 -1496 832 -1504 780 -740 1584 -1508 780 -736 1580 -4584 792 -744 1560 -1516 788 -748 1556 -1516 828 -736 1548 -744 1584 -740 1548 -740 1584 -744 1540 -744 1580 -744 1544 -744 1580 -744 1544 -740 1584 -744 1544 -740 1584 -744 1544 -744 1584 -740 1548 -740 1584 -740 1544 -744 1584 -740 1548 -740 1588 -1504 780 -1500 828 -1504 784 -744 1580 -1508 784 -740 1576 -1508 784 -1500 828 -1504 780 -748 1576 -1500 788 -1500 832 -1500 784 -744 1584 -1500 784 -744 1576 -4588 784 -752 1556 -1516 788 -748 1560 -1516 828 -740 1548 -740 1588 -736 1552 -736 1588 -744 1544 -740 1584 -744 1544 -744 1584 -740 1544 -744 1584 -744 1540 -748 1580 -744 1544 -744 1580 -748 1540 -748 1580 -744 1548 -736 1588 -740 1552 -736 1584 -1504 784 -1504 824 -1504 784 -744 1580 -1508 776 -744 1580 -1504 784 -1504 828 -1500 788 -740 1580 -1500 788 -1500 828 -1504 780 -744 1584 -1508 780 -744 1580 -4588 788 -748 1556 -1516 788 -748 1556 -1516 828 -736 1552 -740 1584 -744 1544 -744 1580 -744 1544 -744 1584 -740 1544 -748 1580 -744 1548 -740 1580 -744 1548 -740 1588 -736 1552 -740 1588 -740 1548 -740 1588 -736 1548 -744 1584 -744 1544 -744 1584 -1500 784 -1500 832 -1504 784 -736 1588 -1504 784 -740 1580 -1504 784 -1500 828 -1508 780 -744 1580 -1504 780 -1508 824 -1504 784 -744 1580 -1508 780 -744 1576 -4588 792 -744 1560 -1520 788 -748 1560 -1512 832 -740 1548 -740 1584 -748 1544 -744 1580 -748 1540 -748 1580 -744 1548 -744 1584 -736 1556 -740 1584 -740 1548 -744 1584 -744 1540 -748 1584 -740 1544 -748 1580 -744 1544 -744 1588 -740 1548 -740 1584 -1504 784 -1504 828 -1504 784 -740 1584 -1508 780 -740 1580 -1508 784 -1504 828 -1504 784 -744 1576 -1508 780 -1504 832 -1500 780 -748 1580 -1508 784 -740 1580 -4588 788 -748 1560 -1520 788 -748 1560 -1516 824 -744 1544 -744 1584 -744 1544 -744 1584 -744 1548 -740 1588 -736 1552 -744 1584 -744 1544 -744 1584 -744 1544 -744 1580 -748 1544 -744 1580 -744 1544 -744 1588 -740 1548 -740 1588 -740 1548 -744 1580 -1504 784 -1504 828 -1504 784 -736 1592 -1504 780 -748 1580 -1500 788 -1504 824 -1508 784 -740 1580 -1504 788 -1500 828 -1508 780 -740 1588 -1504 784 -740 1576 -4592 788 -752 1556 -1516 788 -748 1556 -1516 +RAW_Data: 828 -744 1544 -744 1584 -744 1544 -744 1580 -744 1548 -740 1588 -740 1548 -740 1588 -740 1548 -740 1588 -740 1548 -744 1580 -744 1544 -744 1584 -744 1544 -744 1584 -740 1544 -744 1588 -740 1544 -744 1580 -1508 784 -1504 828 -1504 780 -744 1580 -1512 776 -744 1580 -1508 780 -1508 824 -1500 784 -748 1576 -1504 784 -1508 824 -1504 788 -736 1588 -1504 784 -744 1576 -4592 784 -752 1556 -1520 784 -752 1556 -1516 828 -740 1548 -740 1588 -740 1552 -740 1584 -744 1544 -744 1580 -748 1544 -744 1584 -744 1548 -740 1588 -740 1548 -740 1588 -740 1548 -744 1584 -744 1544 -744 1580 -748 1544 -744 1584 -744 1548 -736 1588 -1504 784 -1504 824 -1512 776 -744 1584 -1508 784 -740 1580 -1508 780 -1504 824 -1508 780 -744 1580 -1508 776 -1512 824 -1500 784 -744 1584 -1504 780 -748 1576 -4588 788 -748 1556 -1516 788 -752 1552 -1520 828 -740 1544 -744 1584 -744 1544 -740 1588 -740 1548 -740 1588 -740 1548 -744 1580 -744 1544 -744 1584 -744 1544 -744 1580 -748 1544 -744 1584 -744 1544 -744 1584 -740 1552 -740 1584 -740 1548 -744 1584 -1504 784 -1508 824 -1508 784 -740 1588 -1500 784 -748 1576 -1504 780 -1508 828 -1504 784 -744 1580 -1504 784 -1504 824 -1508 780 -744 1584 -1508 784 -744 1576 -4588 788 -748 1560 -1516 788 -748 1556 -1520 824 -748 1544 -744 1584 -740 1552 -736 1584 -748 1544 -744 1584 -744 1540 -748 1580 -744 1544 -744 1584 -744 1544 -748 1580 -744 1548 -740 1588 -740 1548 -744 1584 -744 1544 -748 1580 -744 1544 -744 1580 -1512 780 -1508 824 -1508 780 -748 1584 -1504 784 -740 1584 -1504 784 -1504 824 -1508 780 -744 1580 -1508 780 -1508 828 -1504 780 -744 1580 -1508 780 -744 1560 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Aisle_Seven.sub b/assets/resources/subghz/Stores/CVS/Aisle_Seven.sub new file mode 100644 index 000000000..f2a572e81 --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Aisle_Seven.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 804 -744 1560 -1512 792 -748 1552 -1516 828 -736 1548 -740 1588 -744 1544 -740 1584 -740 1544 -744 1584 -740 1548 -740 1584 -740 1544 -744 1580 -744 1548 -744 1584 -736 1544 -744 1584 -744 1544 -740 1588 -740 1548 -740 1584 -740 1548 -740 1584 -1504 780 -1504 824 -1500 780 -1504 824 -1504 784 -1500 824 -1508 780 -1504 820 -1504 784 -1500 828 -1508 784 -740 1584 -1504 780 -740 1584 -1500 784 -1504 824 -4588 784 -752 1560 -1508 796 -744 1560 -1516 828 -740 1544 -748 1580 -744 1544 -740 1588 -736 1552 -740 1584 -744 1544 -740 1592 -740 1544 -744 1580 -740 1548 -744 1584 -744 1544 -736 1584 -744 1548 -740 1588 -744 1544 -740 1584 -740 1544 -744 1584 -1504 784 -1504 820 -1504 780 -1504 820 -1508 780 -1504 820 -1508 780 -1504 824 -1504 784 -1500 828 -1504 780 -744 1584 -1504 780 -740 1580 -1508 780 -1504 820 -4584 788 -748 1556 -1516 788 -752 1552 -1520 820 -744 1548 -744 1580 -744 1540 -744 1584 -740 1548 -740 1584 -740 1552 -740 1580 -740 1548 -744 1584 -736 1552 -740 1584 -744 1544 -740 1588 -744 1544 -740 1584 -744 1544 -740 1584 -744 1548 -740 1584 -1508 780 -1504 820 -1504 788 -1500 824 -1500 784 -1508 824 -1500 784 -1504 820 -1504 784 -1500 832 -1500 784 -744 1584 -1504 788 -736 1584 -1508 784 -1496 828 -4588 788 -748 1556 -1516 792 -748 1556 -1516 832 -736 1552 -744 1584 -744 1544 -740 1588 -740 1548 -740 1584 -744 1548 -744 1580 -744 1548 -740 1584 -740 1548 -744 1580 -740 1548 -744 1584 -740 1548 -744 1588 -736 1548 -744 1584 -740 1548 -744 1584 -1504 780 -1504 824 -1500 788 -1500 824 -1504 784 -1500 820 -1508 780 -1504 820 -1504 784 -1504 828 -1500 784 -744 1584 -1508 780 -740 1584 -1500 788 -1504 820 -4588 788 -752 1556 -1516 788 -748 1556 -1516 832 -736 1548 -744 1580 -744 1552 -740 1580 -744 1548 -736 1588 -744 1544 -744 1588 -736 1552 -744 1580 -744 1548 -740 1584 -744 1544 -744 1584 -740 1548 -740 1592 -736 1548 -744 1580 -748 1540 -748 1580 -1504 784 -1508 816 -1512 780 -1504 824 -1504 780 -1504 824 -1504 784 -1500 824 -1504 784 -1504 828 -1504 780 -748 1584 -1504 784 -736 1584 -1504 784 -1504 824 -4584 788 -748 1564 -1512 788 -744 1564 -1516 828 -740 1544 -748 1584 -736 1552 -740 1588 -736 1548 -740 1588 -736 1548 -744 1584 -744 1544 -744 1584 -740 1548 -740 1584 -744 1548 -744 1584 -740 1548 -736 1588 -744 1544 -744 1584 -744 1544 -740 1584 -1500 788 -1508 820 -1504 784 -1504 816 -1508 780 -1508 820 -1508 784 -1500 824 -1504 784 -1504 828 -1500 788 -744 1580 -1504 784 -740 1584 -1500 784 -1504 824 -4588 788 -748 1556 -1512 792 -748 1560 -1516 +RAW_Data: 828 -740 1552 -736 1584 -744 1548 -744 1580 -744 1548 -740 1580 -744 1548 -744 1580 -744 1548 -744 1584 -740 1548 -740 1592 -740 1540 -744 1588 -740 1552 -736 1588 -740 1544 -744 1584 -740 1548 -744 1584 -1508 780 -1504 824 -1504 784 -1508 820 -1504 784 -1500 824 -1504 784 -1504 824 -1504 784 -1504 828 -1504 780 -744 1584 -1504 784 -740 1584 -1504 784 -1504 820 -4592 792 -748 1556 -1516 792 -744 1564 -1516 828 -740 1548 -744 1580 -744 1548 -744 1580 -744 1548 -736 1588 -740 1548 -740 1584 -744 1544 -744 1588 -744 1544 -740 1588 -744 1544 -740 1588 -740 1544 -740 1592 -744 1544 -744 1584 -744 1544 -744 1584 -1504 784 -1504 816 -1508 784 -1508 820 -1504 784 -1508 820 -1504 784 -1508 820 -1504 784 -1504 832 -1504 784 -740 1588 -1504 784 -740 1584 -1500 784 -1508 820 -4592 792 -744 1560 -1516 792 -744 1560 -1520 832 -736 1552 -740 1584 -744 1548 -744 1584 -740 1548 -740 1588 -744 1544 -748 1584 -740 1552 -740 1588 -740 1548 -740 1588 -744 1544 -744 1584 -740 1552 -740 1584 -740 1552 -744 1584 -744 1544 -744 1580 -1508 780 -1508 820 -1504 788 -1500 824 -1504 784 -1504 820 -1512 780 -1500 828 -1504 780 -1508 824 -1504 780 -744 1588 -1500 784 -740 1584 -1508 780 -1504 820 -4592 784 -752 1556 -1516 788 -744 1560 -1516 832 -736 1552 -740 1584 -744 1544 -740 1588 -736 1548 -744 1584 -744 1548 -740 1584 -740 1548 -744 1584 -740 1548 -744 1584 -740 1548 -736 1588 -736 1548 -740 1588 -748 1544 -744 1584 -736 1552 -736 1588 -1504 788 -1500 824 -1504 784 -1504 820 -1508 780 -1504 824 -1504 776 -1508 824 -1504 784 -1504 828 -1504 780 -740 1584 -1508 780 -740 1580 -1508 780 -1508 800 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Aisle_Seventeen.sub b/assets/resources/subghz/Stores/CVS/Aisle_Seventeen.sub new file mode 100644 index 000000000..7220e9bef --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Aisle_Seventeen.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 804 -748 1552 -1516 784 -748 1556 -1520 824 -744 1540 -748 1576 -748 1540 -744 1584 -740 1544 -744 1580 -744 1544 -740 1588 -740 1544 -744 1580 -748 1544 -744 1576 -748 1544 -744 1580 -744 1544 -744 1580 -748 1540 -744 1580 -748 1540 -744 1580 -1508 780 -1508 824 -1504 780 -744 1580 -1508 780 -740 1580 -1504 784 -1504 824 -1508 776 -1508 820 -1504 780 -1504 828 -1508 776 -748 1580 -1504 784 -740 1576 -4588 784 -756 1548 -1520 788 -748 1552 -1520 824 -748 1540 -748 1580 -744 1540 -748 1580 -748 1540 -744 1584 -744 1544 -744 1580 -744 1548 -740 1584 -748 1540 -744 1584 -740 1544 -748 1580 -748 1544 -740 1584 -748 1540 -748 1576 -748 1544 -744 1580 -1508 780 -1504 828 -1504 780 -748 1580 -1504 784 -740 1580 -1504 784 -1504 824 -1504 780 -1508 816 -1512 776 -1504 828 -1508 780 -744 1584 -1504 780 -740 1580 -4588 788 -748 1556 -1520 784 -752 1552 -1520 824 -748 1540 -748 1584 -740 1544 -744 1580 -748 1544 -740 1584 -744 1540 -748 1580 -744 1540 -748 1580 -748 1540 -740 1588 -740 1544 -744 1584 -748 1544 -740 1580 -748 1540 -748 1580 -740 1548 -744 1580 -1500 788 -1504 824 -1504 784 -740 1580 -1512 776 -744 1580 -1504 780 -1508 816 -1504 788 -1500 824 -1504 780 -1508 824 -1504 780 -744 1584 -1500 784 -744 1572 -4592 784 -748 1556 -1516 788 -748 1556 -1516 828 -744 1544 -740 1588 -736 1548 -744 1584 -744 1544 -744 1584 -740 1544 -744 1588 -744 1544 -744 1584 -740 1548 -744 1584 -744 1544 -736 1588 -744 1544 -744 1584 -740 1548 -740 1580 -748 1548 -740 1584 -1504 780 -1504 828 -1508 780 -748 1576 -1508 784 -740 1580 -1508 780 -1504 824 -1504 784 -1504 824 -1500 784 -1508 824 -1504 784 -740 1584 -1504 784 -744 1576 -4584 792 -748 1560 -1520 784 -752 1556 -1512 832 -744 1544 -744 1584 -740 1548 -740 1584 -744 1544 -740 1592 -736 1552 -740 1588 -744 1544 -740 1584 -740 1548 -744 1584 -740 1548 -740 1588 -740 1548 -740 1588 -740 1548 -740 1588 -740 1548 -744 1580 -1504 780 -1508 828 -1504 784 -740 1584 -1504 784 -744 1580 -1504 780 -1504 824 -1504 780 -1504 824 -1504 784 -1504 828 -1500 784 -744 1584 -1504 784 -744 1580 -4584 792 -748 1556 -1516 792 -744 1556 -1516 828 -744 1548 -736 1588 -744 1544 -744 1584 -744 1548 -736 1588 -740 1552 -740 1588 -740 1548 -740 1588 -740 1548 -740 1584 -748 1544 -740 1588 -740 1548 -744 1584 -744 1544 -740 1588 -744 1548 -740 1584 -1504 784 -1504 828 -1504 784 -740 1588 -1504 784 -740 1584 -1500 784 -1504 824 -1504 780 -1508 816 -1508 780 -1504 828 -1508 784 -744 1584 -1504 784 -740 1576 -4596 788 -744 1560 -1516 788 -748 1560 -1516 +RAW_Data: 828 -740 1544 -748 1580 -744 1552 -736 1588 -740 1548 -744 1584 -744 1544 -740 1588 -740 1544 -748 1584 -740 1548 -740 1588 -740 1548 -740 1584 -740 1548 -740 1588 -744 1544 -744 1584 -740 1552 -740 1584 -1500 788 -1504 828 -1500 788 -736 1588 -1504 784 -744 1580 -1500 784 -1504 824 -1504 780 -1500 828 -1504 784 -1500 828 -1504 788 -736 1588 -1500 784 -744 1580 -4584 792 -748 1556 -1520 788 -744 1560 -1516 828 -740 1548 -736 1588 -744 1548 -744 1588 -736 1548 -736 1592 -744 1544 -740 1588 -736 1552 -740 1584 -744 1548 -736 1592 -736 1548 -744 1584 -740 1548 -740 1584 -744 1548 -740 1588 -736 1552 -740 1584 -1504 784 -1504 828 -1500 784 -740 1588 -1504 784 -740 1584 -1504 776 -1508 824 -1500 788 -1500 820 -1508 776 -1504 828 -1504 784 -744 1584 -1500 784 -740 1584 -4584 788 -744 1564 -1508 792 -744 1560 -1516 832 -736 1548 -740 1584 -744 1544 -740 1584 -744 1544 -740 1584 -740 1548 -740 1588 -736 1544 -748 1584 -736 1548 -740 1588 -744 1544 -736 1592 -740 1548 -740 1584 -744 1548 -740 1584 -744 1544 -740 1580 -1508 784 -1504 824 -1508 780 -740 1588 -1500 784 -744 1580 -1500 784 -1500 828 -1500 788 -1500 824 -1504 784 -1500 828 -1504 784 -744 1584 -1504 784 -740 1580 -4580 792 -748 1560 -1516 788 -740 1564 -1516 828 -736 1548 -744 1580 -740 1548 -740 1584 -744 1544 -740 1584 -748 1544 -740 1588 -736 1548 -740 1588 -740 1544 -744 1584 -744 1544 -740 1584 -740 1548 -740 1584 -740 1548 -744 1580 -740 1548 -744 1584 -1500 784 -1504 828 -1504 784 -740 1580 -1508 784 -740 1580 -1504 784 -1504 820 -1508 776 -1504 824 -1504 784 -1504 824 -1504 784 -740 1584 -1504 784 -744 1556 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Aisle_Six.sub b/assets/resources/subghz/Stores/CVS/Aisle_Six.sub new file mode 100644 index 000000000..71cd80fda --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Aisle_Six.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 804 -748 1556 -1512 792 -740 1560 -1516 828 -740 1548 -736 1588 -740 1540 -744 1588 -736 1548 -740 1588 -736 1548 -740 1584 -740 1548 -740 1584 -740 1548 -740 1584 -740 1548 -740 1584 -740 1548 -740 1588 -736 1548 -744 1580 -740 1548 -744 1588 -1500 784 -740 1584 -1500 788 -1500 824 -1504 784 -1500 828 -1500 784 -1504 828 -1500 788 -740 1580 -1504 784 -1500 832 -1500 784 -744 1584 -1500 788 -736 1580 -4588 792 -744 1564 -1516 788 -744 1560 -1512 832 -740 1548 -740 1584 -740 1548 -740 1584 -740 1552 -740 1580 -740 1552 -740 1584 -740 1548 -744 1580 -740 1552 -740 1584 -740 1548 -740 1588 -740 1548 -744 1584 -736 1548 -744 1584 -740 1552 -736 1592 -1500 784 -740 1584 -1504 784 -1504 824 -1500 784 -1508 820 -1500 784 -1508 824 -1508 780 -740 1584 -1500 784 -1500 832 -1504 788 -740 1584 -1504 780 -744 1580 -4588 792 -744 1560 -1516 792 -744 1560 -1516 824 -744 1548 -744 1588 -740 1548 -736 1592 -740 1544 -740 1592 -740 1544 -744 1584 -740 1552 -740 1584 -740 1548 -744 1584 -740 1552 -740 1588 -736 1552 -744 1584 -736 1552 -740 1584 -740 1552 -740 1588 -1504 784 -740 1580 -1504 784 -1504 824 -1504 784 -1504 824 -1500 788 -1500 828 -1508 780 -744 1580 -1504 784 -1504 828 -1504 784 -740 1588 -1504 784 -744 1576 -4588 792 -744 1560 -1520 788 -744 1564 -1516 828 -740 1548 -740 1588 -740 1548 -744 1584 -740 1552 -744 1584 -740 1548 -744 1580 -744 1548 -740 1588 -740 1548 -740 1588 -740 1548 -740 1588 -740 1548 -740 1588 -740 1548 -740 1588 -740 1548 -740 1592 -1500 788 -740 1580 -1504 784 -1508 820 -1500 788 -1500 824 -1504 784 -1500 828 -1504 784 -744 1580 -1504 784 -1504 828 -1504 784 -736 1592 -1500 788 -744 1580 -4588 788 -748 1556 -1520 788 -744 1560 -1516 832 -736 1548 -744 1584 -740 1544 -744 1588 -740 1548 -740 1584 -740 1548 -740 1588 -740 1548 -740 1588 -736 1548 -740 1588 -740 1548 -736 1592 -736 1548 -740 1588 -740 1548 -736 1592 -736 1548 -740 1592 -1500 788 -740 1584 -1500 784 -1504 824 -1500 788 -1500 820 -1504 788 -1500 832 -1500 784 -740 1584 -1500 784 -1500 832 -1496 788 -744 1584 -1508 780 -744 1576 -4588 788 -748 1560 -1512 796 -744 1556 -1516 832 -736 1548 -740 1592 -740 1544 -744 1584 -740 1548 -744 1584 -740 1548 -744 1584 -740 1548 -744 1584 -736 1556 -736 1588 -736 1552 -740 1584 -748 1548 -736 1588 -740 1548 -740 1588 -744 1544 -740 1592 -1504 784 -744 1580 -1500 788 -1500 824 -1500 792 -1500 824 -1504 784 -1504 828 -1500 788 -744 1576 -1504 784 -1508 824 -1508 780 -740 1592 -1500 788 -740 1584 -4588 792 -744 1560 -1516 796 -740 1564 -1516 +RAW_Data: 828 -740 1556 -736 1588 -740 1544 -744 1588 -744 1544 -740 1588 -744 1548 -744 1584 -740 1552 -740 1588 -744 1548 -740 1584 -740 1552 -736 1592 -740 1548 -740 1588 -744 1544 -740 1592 -736 1552 -740 1588 -1508 784 -740 1580 -1504 788 -1504 824 -1504 784 -1504 820 -1504 788 -1504 828 -1504 784 -740 1584 -1504 784 -1504 828 -1508 780 -740 1592 -1504 784 -744 1580 -4584 792 -748 1560 -1516 788 -748 1560 -1516 828 -744 1548 -744 1580 -740 1552 -744 1584 -740 1548 -740 1588 -740 1548 -740 1592 -740 1544 -740 1592 -740 1548 -736 1588 -744 1544 -744 1584 -740 1552 -740 1588 -740 1548 -744 1580 -740 1552 -740 1588 -1508 784 -736 1588 -1504 780 -1504 828 -1500 788 -1500 824 -1508 784 -1500 832 -1500 788 -740 1584 -1500 792 -1500 832 -1500 784 -740 1588 -1500 792 -740 1580 -4588 792 -744 1560 -1520 788 -744 1564 -1516 828 -740 1552 -740 1584 -744 1548 -740 1592 -736 1548 -740 1592 -736 1552 -744 1584 -740 1552 -740 1588 -744 1544 -744 1588 -740 1552 -744 1584 -736 1556 -736 1588 -744 1552 -736 1592 -740 1544 -744 1592 -1500 792 -736 1584 -1504 788 -1496 828 -1508 780 -1500 828 -1500 788 -1504 828 -1504 784 -740 1584 -1504 784 -1508 824 -1508 784 -740 1588 -1500 784 -740 1584 -4592 788 -748 1560 -1512 792 -748 1560 -1516 832 -736 1552 -740 1584 -740 1552 -744 1580 -744 1552 -736 1588 -744 1544 -744 1588 -740 1548 -740 1588 -740 1552 -744 1584 -740 1552 -740 1588 -744 1544 -740 1592 -740 1548 -744 1584 -740 1552 -744 1588 -1504 784 -740 1588 -1504 784 -1504 824 -1500 788 -1504 824 -1504 784 -1500 832 -1504 788 -740 1580 -1504 788 -1500 828 -1504 784 -744 1584 -1504 788 -740 1560 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Aisle_Sixteen.sub b/assets/resources/subghz/Stores/CVS/Aisle_Sixteen.sub new file mode 100644 index 000000000..05fc4813e --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Aisle_Sixteen.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 804 -744 1560 -1512 792 -744 1560 -1516 828 -740 1544 -740 1584 -740 1548 -744 1584 -736 1548 -740 1588 -740 1544 -740 1584 -744 1544 -740 1584 -744 1544 -740 1592 -736 1548 -736 1588 -744 1544 -736 1592 -740 1540 -740 1588 -740 1548 -740 1588 -1504 788 -740 1584 -1504 784 -740 1584 -1504 780 -744 1580 -1500 784 -1504 824 -1500 788 -1504 820 -1504 784 -1500 828 -1504 784 -744 1584 -1504 784 -744 1576 -4584 792 -744 1560 -1516 788 -748 1564 -1512 828 -740 1548 -740 1588 -740 1548 -740 1588 -740 1548 -740 1584 -744 1552 -740 1584 -736 1552 -744 1584 -736 1548 -740 1588 -744 1544 -740 1592 -740 1540 -740 1592 -736 1548 -740 1588 -744 1540 -744 1592 -1504 784 -740 1584 -1504 784 -744 1580 -1504 788 -736 1580 -1508 784 -1500 824 -1500 784 -1508 820 -1500 788 -1504 832 -1500 784 -736 1592 -1500 788 -740 1580 -4584 796 -744 1560 -1512 796 -744 1564 -1512 824 -744 1548 -740 1588 -740 1548 -740 1588 -744 1540 -748 1588 -736 1548 -744 1584 -740 1548 -744 1584 -740 1548 -740 1588 -740 1548 -740 1584 -740 1548 -740 1588 -740 1544 -740 1588 -744 1544 -736 1592 -1500 792 -736 1588 -1500 784 -740 1588 -1504 784 -744 1576 -1504 788 -1500 824 -1504 780 -1500 828 -1500 784 -1500 828 -1508 780 -740 1588 -1504 784 -740 1576 -4588 792 -744 1560 -1516 788 -748 1560 -1516 824 -744 1548 -740 1584 -740 1552 -736 1580 -744 1552 -736 1588 -736 1552 -740 1588 -740 1544 -744 1584 -744 1548 -736 1588 -740 1548 -740 1588 -740 1548 -740 1584 -744 1544 -740 1588 -740 1548 -740 1592 -1500 784 -740 1588 -1500 784 -740 1592 -1500 784 -740 1584 -1500 784 -1504 824 -1500 788 -1500 824 -1504 784 -1500 832 -1496 792 -740 1584 -1504 784 -744 1576 -4592 792 -744 1560 -1512 792 -748 1560 -1512 828 -740 1552 -740 1580 -744 1548 -740 1588 -740 1548 -740 1588 -740 1548 -740 1588 -740 1548 -740 1584 -744 1548 -736 1588 -744 1544 -740 1588 -740 1548 -740 1592 -740 1544 -740 1588 -740 1548 -736 1592 -1504 788 -740 1584 -1504 784 -744 1584 -1500 792 -740 1576 -1508 784 -1500 824 -1504 788 -1496 824 -1508 784 -1500 832 -1500 780 -744 1584 -1504 784 -740 1580 -4592 784 -752 1560 -1512 792 -744 1564 -1512 832 -740 1548 -740 1592 -740 1548 -740 1584 -744 1544 -744 1584 -740 1552 -740 1584 -740 1552 -740 1584 -740 1552 -740 1588 -740 1552 -736 1584 -740 1556 -736 1588 -740 1552 -736 1588 -740 1552 -740 1592 -1504 780 -736 1592 -1504 780 -740 1592 -1500 788 -740 1584 -1500 784 -1504 828 -1496 792 -1500 824 -1504 784 -1504 828 -1504 784 -740 1584 -1508 784 -736 1580 -4588 792 -748 1560 -1512 792 -744 1564 -1512 +RAW_Data: 832 -736 1552 -740 1588 -740 1548 -740 1588 -740 1548 -740 1592 -740 1544 -740 1592 -736 1548 -740 1588 -744 1548 -744 1584 -740 1552 -740 1584 -740 1552 -740 1584 -740 1552 -740 1584 -740 1552 -740 1588 -1508 780 -744 1584 -1504 788 -736 1592 -1500 784 -744 1580 -1508 784 -1504 820 -1504 784 -1504 824 -1504 784 -1504 828 -1508 780 -740 1588 -1508 780 -740 1580 -4592 784 -752 1560 -1516 788 -748 1556 -1520 828 -740 1548 -740 1588 -740 1548 -740 1588 -740 1548 -740 1584 -744 1552 -736 1588 -740 1552 -740 1584 -740 1552 -740 1584 -740 1552 -740 1584 -740 1552 -740 1588 -744 1544 -740 1588 -744 1544 -740 1592 -1504 784 -740 1584 -1504 788 -740 1580 -1508 788 -740 1576 -1504 788 -1500 824 -1500 788 -1496 832 -1500 784 -1508 824 -1504 784 -740 1588 -1504 784 -736 1584 -4588 796 -744 1556 -1516 792 -744 1560 -1516 832 -740 1548 -740 1584 -740 1556 -740 1584 -740 1552 -740 1588 -736 1548 -744 1588 -740 1548 -740 1588 -740 1552 -740 1580 -744 1552 -740 1584 -740 1552 -740 1588 -740 1548 -740 1588 -740 1548 -740 1592 -1500 792 -740 1584 -1508 780 -744 1588 -1500 784 -744 1584 -1500 784 -1508 820 -1500 788 -1504 820 -1508 784 -1500 832 -1500 788 -744 1584 -1500 784 -740 1584 -4588 792 -748 1556 -1516 792 -744 1560 -1516 832 -740 1548 -740 1588 -736 1552 -744 1584 -740 1548 -740 1588 -744 1544 -740 1588 -744 1548 -740 1588 -736 1552 -744 1584 -736 1552 -744 1584 -744 1544 -740 1588 -744 1544 -740 1588 -744 1544 -740 1592 -1500 788 -740 1584 -1504 788 -740 1584 -1504 780 -744 1584 -1504 780 -1508 824 -1500 784 -1508 820 -1504 784 -1500 828 -1504 784 -744 1580 -1512 780 -740 1564 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Aisle_Ten.sub b/assets/resources/subghz/Stores/CVS/Aisle_Ten.sub new file mode 100644 index 000000000..6aa477d61 --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Aisle_Ten.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 804 -748 1560 -1512 784 -752 1556 -1520 824 -740 1548 -740 1584 -740 1548 -744 1584 -740 1548 -740 1584 -740 1548 -736 1588 -744 1544 -744 1584 -740 1552 -740 1580 -744 1548 -744 1584 -740 1548 -744 1584 -744 1540 -744 1588 -740 1540 -748 1588 -1500 784 -744 1580 -1508 780 -1504 828 -1500 788 -740 1584 -1504 784 -740 1580 -1500 788 -1504 820 -1504 784 -1500 832 -1500 784 -744 1584 -1500 784 -744 1580 -4584 788 -748 1556 -1516 792 -752 1556 -1516 824 -744 1548 -740 1584 -744 1544 -748 1580 -740 1552 -740 1584 -740 1544 -744 1584 -740 1548 -744 1584 -736 1552 -744 1584 -736 1548 -744 1580 -740 1548 -744 1584 -744 1544 -744 1584 -740 1548 -740 1588 -1508 784 -740 1580 -1504 784 -1508 820 -1512 780 -740 1584 -1508 780 -740 1584 -1504 784 -1504 820 -1504 780 -1508 824 -1504 784 -744 1584 -1508 780 -744 1580 -4584 792 -744 1560 -1516 788 -748 1556 -1516 832 -740 1548 -740 1588 -744 1544 -744 1580 -744 1544 -744 1584 -740 1548 -740 1588 -740 1548 -744 1584 -740 1548 -744 1584 -740 1548 -744 1584 -744 1548 -740 1584 -744 1544 -748 1580 -744 1548 -744 1588 -1504 788 -740 1580 -1504 784 -1508 828 -1500 788 -740 1584 -1508 784 -740 1584 -1504 780 -1508 820 -1508 780 -1508 820 -1504 788 -740 1588 -1504 784 -740 1580 -4588 792 -748 1556 -1516 792 -748 1556 -1520 828 -740 1548 -740 1588 -740 1544 -740 1588 -740 1548 -744 1588 -736 1548 -740 1584 -744 1548 -744 1588 -736 1548 -740 1588 -744 1540 -744 1588 -736 1548 -740 1588 -744 1544 -744 1584 -740 1548 -736 1592 -1504 784 -740 1584 -1504 780 -1504 832 -1504 780 -744 1584 -1508 780 -744 1576 -1508 784 -1504 820 -1504 788 -1504 824 -1504 788 -740 1584 -1504 784 -740 1580 -4592 784 -748 1564 -1512 788 -752 1556 -1516 828 -740 1548 -744 1584 -740 1548 -744 1588 -740 1548 -740 1588 -744 1544 -740 1588 -744 1544 -744 1584 -740 1548 -748 1584 -736 1548 -748 1584 -744 1548 -736 1588 -744 1544 -740 1588 -740 1544 -748 1588 -1504 780 -744 1580 -1504 784 -1504 824 -1508 784 -740 1588 -1504 784 -740 1580 -1504 784 -1508 824 -1500 784 -1508 824 -1508 784 -736 1584 -1508 788 -740 1580 -4584 788 -752 1556 -1520 788 -748 1556 -1516 828 -748 1540 -744 1588 -740 1548 -744 1588 -740 1548 -740 1588 -744 1544 -744 1584 -744 1544 -740 1588 -736 1548 -744 1584 -748 1548 -740 1588 -740 1544 -748 1580 -748 1544 -744 1584 -740 1548 -744 1584 -1508 784 -744 1576 -1504 788 -1500 832 -1500 784 -744 1584 -1504 784 -744 1580 -1500 788 -1504 820 -1504 784 -1504 828 -1500 788 -740 1588 -1504 784 -740 1584 -4588 788 -748 1560 -1516 784 -752 1556 -1516 +RAW_Data: 832 -740 1548 -736 1588 -740 1548 -740 1588 -740 1540 -744 1584 -744 1548 -740 1584 -744 1544 -740 1588 -740 1548 -744 1580 -740 1548 -744 1584 -744 1544 -736 1592 -740 1544 -744 1584 -744 1544 -744 1584 -1508 784 -744 1572 -1508 784 -1504 828 -1504 780 -744 1588 -1500 784 -740 1584 -1500 784 -1508 824 -1500 784 -1508 820 -1508 784 -740 1588 -1504 784 -740 1576 -4588 792 -748 1556 -1516 788 -752 1556 -1516 828 -736 1552 -744 1584 -736 1548 -744 1584 -744 1544 -740 1588 -744 1544 -744 1584 -744 1548 -740 1584 -740 1548 -744 1584 -740 1548 -744 1584 -744 1544 -744 1588 -744 1540 -744 1588 -744 1544 -740 1588 -1504 784 -744 1576 -1508 784 -1504 828 -1508 780 -740 1584 -1508 784 -740 1580 -1504 784 -1508 820 -1500 788 -1504 828 -1508 780 -740 1588 -1504 784 -740 1580 -4592 792 -744 1560 -1516 792 -748 1556 -1516 832 -744 1544 -740 1588 -740 1544 -744 1588 -740 1548 -736 1588 -744 1548 -740 1588 -740 1548 -744 1584 -740 1544 -744 1588 -740 1548 -744 1580 -740 1548 -744 1584 -744 1544 -744 1580 -744 1548 -744 1588 -1504 784 -740 1584 -1504 784 -1504 824 -1508 780 -744 1588 -1500 788 -744 1576 -1508 784 -1500 824 -1504 784 -1500 832 -1500 784 -744 1584 -1504 784 -740 1580 -4584 792 -744 1560 -1512 792 -748 1560 -1512 832 -740 1548 -736 1588 -744 1544 -744 1584 -740 1552 -736 1588 -736 1548 -740 1588 -740 1548 -740 1588 -744 1544 -740 1588 -740 1544 -744 1588 -740 1548 -744 1584 -740 1544 -744 1580 -744 1548 -740 1592 -1508 776 -744 1580 -1508 780 -1500 832 -1504 784 -744 1584 -1500 784 -744 1580 -1508 780 -1504 824 -1504 780 -1508 824 -1508 780 -740 1584 -1508 780 -744 1560 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Aisle_Thirteen.sub b/assets/resources/subghz/Stores/CVS/Aisle_Thirteen.sub new file mode 100644 index 000000000..ba09b8012 --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Aisle_Thirteen.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 808 -744 1560 -1508 792 -748 1556 -1512 832 -740 1544 -744 1584 -740 1548 -740 1584 -744 1544 -740 1588 -740 1548 -740 1588 -740 1548 -740 1584 -740 1548 -740 1588 -744 1544 -744 1584 -744 1544 -740 1588 -744 1544 -740 1588 -740 1544 -740 1588 -1500 788 -1500 832 -1500 784 -740 1584 -1496 788 -1504 828 -1504 784 -744 1576 -1504 784 -1504 832 -1496 788 -736 1584 -1500 788 -1500 824 -1504 784 -1504 820 -4588 792 -748 1560 -1516 792 -744 1560 -1516 832 -736 1552 -740 1588 -736 1548 -740 1588 -740 1548 -740 1588 -740 1544 -744 1588 -736 1552 -740 1584 -744 1548 -740 1584 -744 1548 -744 1584 -740 1548 -740 1588 -744 1544 -744 1584 -740 1548 -740 1584 -1500 788 -1500 828 -1504 784 -740 1580 -1504 784 -1504 828 -1500 784 -740 1584 -1504 784 -1500 832 -1504 784 -736 1584 -1504 780 -1504 824 -1504 784 -1504 820 -4584 792 -748 1556 -1516 792 -744 1560 -1516 828 -744 1544 -744 1584 -740 1552 -740 1584 -740 1548 -740 1588 -740 1548 -736 1592 -736 1552 -740 1588 -740 1548 -740 1588 -740 1548 -740 1584 -740 1548 -744 1584 -744 1544 -744 1584 -740 1548 -740 1584 -1504 784 -1500 832 -1500 788 -736 1584 -1500 788 -1500 828 -1504 784 -740 1584 -1500 784 -1508 828 -1500 784 -740 1588 -1500 784 -1500 824 -1504 784 -1504 824 -4588 788 -748 1560 -1512 796 -744 1560 -1512 832 -740 1548 -740 1584 -740 1552 -736 1592 -740 1548 -740 1588 -740 1544 -744 1588 -736 1552 -740 1588 -740 1548 -740 1588 -740 1548 -740 1588 -740 1548 -740 1588 -736 1552 -744 1584 -740 1548 -740 1584 -1500 788 -1500 832 -1500 784 -740 1584 -1500 788 -1500 828 -1504 784 -740 1580 -1504 784 -1504 828 -1500 784 -744 1580 -1504 784 -1504 824 -1508 780 -1504 820 -4588 788 -748 1560 -1516 788 -748 1560 -1512 832 -740 1552 -740 1584 -740 1548 -744 1584 -740 1552 -736 1592 -736 1548 -740 1588 -740 1548 -744 1584 -744 1548 -740 1584 -740 1552 -736 1592 -740 1548 -744 1580 -740 1552 -740 1588 -744 1544 -740 1588 -1504 784 -1504 832 -1496 788 -744 1576 -1504 788 -1500 828 -1504 788 -740 1584 -1496 792 -1500 828 -1504 788 -740 1580 -1500 788 -1504 820 -1504 784 -1500 824 -4588 792 -748 1560 -1516 788 -744 1560 -1512 836 -736 1552 -736 1588 -744 1544 -744 1584 -740 1552 -744 1580 -744 1548 -740 1588 -740 1548 -744 1584 -744 1548 -740 1584 -744 1548 -744 1584 -740 1548 -744 1584 -740 1548 -740 1588 -744 1544 -744 1584 -1500 792 -1496 832 -1504 784 -740 1584 -1500 788 -1500 828 -1504 788 -736 1584 -1504 788 -1500 828 -1504 784 -744 1576 -1508 780 -1504 824 -1500 784 -1504 824 -4584 792 -744 1560 -1516 796 -740 1560 -1520 +RAW_Data: 828 -744 1544 -740 1588 -740 1548 -740 1592 -740 1548 -744 1584 -740 1548 -740 1588 -740 1548 -744 1584 -740 1544 -740 1592 -736 1548 -744 1584 -744 1548 -732 1592 -740 1548 -736 1596 -736 1552 -736 1584 -1508 784 -1504 828 -1504 784 -736 1584 -1500 788 -1504 824 -1508 780 -740 1580 -1508 780 -1504 828 -1500 788 -744 1580 -1504 776 -1508 824 -1504 784 -1500 824 -4580 796 -744 1560 -1512 796 -740 1560 -1516 828 -744 1544 -744 1584 -736 1552 -736 1592 -740 1548 -736 1592 -736 1552 -740 1584 -736 1552 -744 1584 -740 1544 -744 1588 -740 1548 -740 1584 -740 1548 -744 1580 -748 1544 -740 1584 -744 1548 -736 1588 -1504 784 -1500 832 -1504 780 -744 1580 -1504 784 -1500 828 -1504 784 -744 1580 -1500 784 -1504 832 -1496 788 -744 1584 -1496 788 -1504 820 -1508 784 -1496 828 -4584 792 -744 1560 -1516 792 -748 1560 -1512 832 -740 1552 -736 1588 -740 1548 -744 1580 -744 1548 -740 1584 -744 1548 -740 1584 -740 1548 -740 1592 -736 1548 -744 1584 -736 1556 -736 1588 -736 1556 -736 1584 -736 1552 -740 1588 -744 1544 -736 1588 -1508 780 -1500 832 -1504 784 -736 1584 -1504 780 -1504 828 -1504 784 -740 1580 -1500 788 -1504 824 -1500 788 -740 1580 -1504 784 -1500 828 -1500 784 -1500 824 -4584 788 -748 1560 -1512 792 -744 1560 -1516 832 -736 1548 -736 1588 -744 1544 -744 1580 -740 1548 -740 1584 -740 1548 -740 1584 -744 1544 -740 1588 -740 1544 -744 1584 -740 1548 -740 1584 -740 1548 -740 1584 -744 1544 -744 1580 -740 1552 -736 1584 -1504 784 -1504 832 -1496 784 -740 1580 -1504 784 -1504 828 -1504 784 -740 1576 -1500 788 -1504 824 -1504 784 -744 1580 -1496 788 -1500 824 -1504 780 -1500 804 -15964 diff --git a/assets/resources/subghz/Stores/CVS/Aisle_Three.sub b/assets/resources/subghz/Stores/CVS/Aisle_Three.sub new file mode 100644 index 000000000..174fba31d --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Aisle_Three.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 804 -748 1556 -1516 788 -744 1560 -1516 828 -744 1544 -744 1580 -744 1548 -736 1588 -740 1548 -740 1584 -744 1548 -736 1588 -740 1548 -744 1580 -744 1544 -744 1584 -744 1544 -740 1588 -740 1548 -744 1584 -740 1544 -744 1584 -740 1548 -740 1588 -1500 788 -1500 824 -1508 784 -1500 828 -1504 784 -740 1584 -1504 784 -1500 828 -1508 780 -740 1584 -1504 784 -1504 824 -1504 788 -740 1584 -1504 780 -744 1580 -4588 792 -744 1560 -1512 792 -748 1560 -1512 832 -740 1548 -736 1588 -744 1544 -744 1584 -744 1544 -744 1584 -744 1544 -740 1592 -740 1544 -744 1580 -744 1544 -748 1584 -740 1548 -744 1584 -740 1548 -744 1584 -744 1544 -740 1588 -740 1548 -740 1584 -1504 784 -1504 824 -1504 784 -1504 828 -1504 784 -740 1580 -1504 788 -1500 828 -1508 784 -740 1580 -1508 780 -1508 824 -1508 780 -744 1584 -1504 784 -740 1580 -4588 792 -748 1560 -1512 792 -744 1564 -1512 832 -740 1548 -740 1588 -740 1548 -744 1584 -740 1548 -740 1588 -736 1556 -736 1588 -740 1548 -740 1584 -740 1552 -736 1588 -736 1556 -740 1584 -740 1548 -744 1580 -744 1544 -744 1584 -744 1548 -736 1584 -1504 788 -1500 824 -1500 784 -1508 824 -1504 784 -740 1584 -1500 784 -1504 828 -1504 784 -736 1588 -1500 784 -1504 828 -1504 784 -740 1584 -1500 788 -744 1576 -4592 792 -744 1560 -1516 788 -744 1560 -1516 828 -744 1544 -740 1592 -736 1552 -736 1588 -744 1544 -744 1584 -740 1548 -740 1584 -740 1552 -736 1592 -736 1548 -740 1588 -740 1548 -740 1584 -744 1548 -740 1588 -736 1552 -740 1588 -740 1548 -740 1584 -1504 784 -1504 820 -1508 780 -1504 828 -1504 784 -740 1580 -1508 784 -1500 828 -1500 788 -740 1580 -1504 784 -1504 828 -1504 784 -740 1584 -1508 780 -744 1580 -4588 788 -744 1564 -1516 792 -740 1560 -1520 828 -740 1544 -744 1584 -740 1548 -740 1588 -736 1552 -736 1592 -736 1552 -736 1588 -744 1544 -740 1588 -740 1548 -740 1588 -744 1544 -740 1588 -744 1544 -740 1588 -740 1552 -736 1592 -736 1552 -740 1588 -1500 784 -1500 824 -1504 788 -1500 828 -1508 784 -736 1584 -1508 784 -1500 832 -1504 788 -740 1580 -1508 780 -1508 828 -1500 788 -744 1580 -1512 780 -740 1584 -4592 788 -748 1564 -1516 792 -744 1560 -1516 828 -744 1548 -740 1588 -744 1544 -744 1584 -748 1544 -740 1584 -740 1552 -740 1588 -736 1552 -744 1584 -740 1548 -740 1592 -732 1552 -740 1588 -744 1544 -744 1584 -744 1548 -740 1592 -736 1548 -744 1584 -1504 780 -1512 824 -1500 788 -1496 832 -1504 788 -736 1584 -1504 784 -1504 828 -1504 784 -740 1584 -1504 784 -1508 828 -1500 784 -744 1584 -1508 784 -736 1580 -4592 788 -748 1560 -1516 788 -748 1560 -1512 +RAW_Data: 832 -740 1548 -740 1588 -744 1544 -740 1588 -740 1548 -740 1588 -736 1552 -736 1592 -740 1544 -744 1584 -740 1548 -748 1584 -736 1552 -740 1588 -744 1544 -740 1588 -740 1552 -740 1588 -740 1548 -740 1584 -1508 780 -1508 820 -1508 784 -1500 828 -1504 784 -736 1584 -1508 784 -1504 824 -1504 784 -740 1580 -1508 784 -1500 828 -1504 784 -740 1588 -1504 784 -740 1580 -4588 788 -748 1556 -1516 792 -744 1560 -1512 832 -740 1548 -744 1584 -744 1544 -740 1584 -744 1548 -740 1588 -736 1552 -736 1592 -740 1540 -748 1584 -744 1544 -744 1584 -740 1552 -736 1592 -736 1548 -744 1584 -744 1544 -740 1588 -736 1556 -732 1592 -1500 788 -1500 824 -1504 784 -1508 824 -1504 784 -744 1576 -1508 784 -1504 828 -1500 784 -744 1580 -1504 784 -1504 828 -1500 784 -744 1584 -1504 788 -736 1584 -4588 788 -748 1556 -1516 784 -748 1560 -1516 828 -740 1548 -736 1588 -740 1552 -736 1592 -740 1544 -744 1584 -740 1548 -740 1588 -736 1552 -736 1592 -736 1552 -740 1584 -744 1544 -744 1580 -744 1548 -740 1588 -736 1552 -740 1584 -740 1548 -740 1588 -1500 784 -1504 820 -1508 780 -1504 828 -1500 784 -748 1576 -1504 784 -1504 828 -1504 784 -744 1576 -1504 788 -1504 824 -1504 784 -744 1584 -1504 784 -736 1584 -4588 792 -744 1560 -1516 788 -744 1560 -1516 828 -740 1552 -736 1592 -736 1552 -740 1588 -740 1548 -740 1588 -740 1548 -736 1592 -736 1548 -744 1584 -744 1544 -744 1584 -744 1548 -736 1588 -740 1552 -744 1580 -744 1548 -740 1584 -744 1548 -740 1584 -1508 780 -1504 824 -1504 784 -1500 832 -1500 788 -740 1584 -1500 784 -1504 828 -1504 784 -744 1580 -1500 784 -1508 824 -1504 788 -740 1584 -1504 784 -740 1556 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Aisle_Twelve.sub b/assets/resources/subghz/Stores/CVS/Aisle_Twelve.sub new file mode 100644 index 000000000..5a57828e0 --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Aisle_Twelve.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 804 -748 1556 -1512 792 -744 1560 -1516 828 -744 1544 -740 1588 -736 1552 -736 1592 -736 1548 -744 1584 -744 1544 -744 1584 -740 1552 -740 1588 -736 1548 -740 1592 -736 1548 -740 1588 -740 1548 -740 1588 -736 1552 -736 1592 -736 1552 -736 1596 -1496 788 -744 1584 -1504 784 -744 1576 -1504 784 -1504 832 -1500 784 -740 1580 -1504 784 -1504 820 -1504 788 -1500 824 -1504 788 -740 1584 -1508 780 -736 1584 -4588 792 -748 1560 -1512 792 -744 1560 -1512 836 -740 1544 -744 1580 -744 1544 -744 1580 -744 1548 -744 1584 -744 1540 -744 1584 -744 1544 -740 1588 -744 1544 -740 1584 -744 1548 -740 1584 -740 1548 -740 1588 -736 1548 -744 1580 -748 1544 -740 1588 -1504 788 -736 1588 -1500 784 -744 1584 -1500 788 -1500 828 -1504 784 -740 1576 -1508 784 -1504 824 -1500 784 -1504 832 -1504 784 -740 1588 -1500 788 -736 1584 -4588 788 -752 1556 -1516 788 -748 1560 -1516 828 -744 1544 -744 1584 -740 1548 -744 1588 -736 1552 -736 1592 -740 1552 -736 1588 -740 1548 -740 1588 -744 1548 -740 1584 -744 1544 -748 1584 -740 1548 -744 1584 -740 1548 -740 1588 -744 1544 -744 1592 -1500 788 -736 1592 -1496 788 -744 1580 -1504 784 -1504 832 -1500 788 -740 1580 -1504 784 -1504 824 -1504 784 -1500 828 -1508 784 -740 1588 -1504 784 -736 1584 -4592 792 -744 1564 -1512 792 -744 1564 -1512 828 -744 1548 -740 1588 -740 1548 -740 1584 -744 1548 -744 1584 -740 1544 -744 1588 -740 1548 -744 1584 -740 1548 -744 1588 -740 1544 -744 1584 -744 1544 -744 1588 -740 1548 -740 1584 -744 1548 -740 1592 -1504 784 -736 1592 -1500 792 -732 1584 -1504 788 -1504 828 -1504 784 -744 1580 -1500 788 -1500 824 -1504 784 -1508 828 -1504 784 -744 1584 -1504 784 -744 1584 -4588 788 -744 1564 -1512 792 -748 1560 -1516 828 -744 1548 -740 1584 -748 1544 -744 1584 -740 1544 -748 1580 -744 1548 -744 1584 -744 1548 -740 1588 -744 1548 -740 1584 -744 1548 -744 1588 -740 1548 -740 1588 -740 1548 -740 1588 -744 1544 -744 1588 -1508 780 -740 1592 -1500 788 -736 1588 -1504 784 -1504 828 -1504 784 -740 1584 -1504 788 -1500 824 -1504 784 -1508 828 -1504 788 -736 1588 -1504 788 -740 1584 -4588 792 -744 1560 -1516 792 -748 1560 -1516 832 -740 1548 -744 1588 -740 1548 -740 1592 -736 1552 -740 1588 -740 1552 -736 1592 -736 1556 -736 1592 -740 1552 -732 1596 -740 1548 -740 1588 -740 1552 -736 1592 -740 1548 -744 1588 -736 1552 -740 1592 -1504 784 -748 1584 -1508 780 -744 1580 -1504 788 -1504 832 -1500 784 -736 1584 -1504 788 -1500 824 -1504 788 -1500 828 -1504 788 -744 1584 -1504 784 -744 1576 -4592 788 -748 1560 -1512 796 -744 1560 -1520 +RAW_Data: 828 -740 1548 -744 1584 -744 1544 -740 1588 -740 1548 -744 1588 -740 1548 -740 1588 -744 1544 -740 1588 -740 1548 -744 1584 -744 1548 -744 1584 -740 1548 -740 1588 -740 1552 -736 1592 -740 1552 -736 1588 -1504 788 -740 1584 -1504 788 -740 1588 -1500 788 -1500 832 -1504 784 -740 1584 -1504 784 -1504 824 -1508 780 -1508 828 -1496 788 -744 1584 -1500 784 -748 1580 -4592 788 -748 1560 -1512 792 -748 1560 -1512 832 -740 1548 -740 1588 -740 1548 -740 1588 -740 1552 -736 1588 -740 1552 -736 1588 -740 1552 -740 1588 -740 1548 -740 1592 -736 1552 -740 1584 -744 1548 -740 1584 -744 1548 -744 1580 -744 1548 -744 1588 -1504 784 -744 1584 -1504 784 -740 1580 -1504 788 -1496 832 -1504 784 -740 1584 -1504 784 -1500 824 -1508 784 -1504 828 -1504 784 -736 1588 -1504 788 -736 1584 -4588 792 -744 1564 -1508 792 -744 1564 -1512 836 -736 1552 -740 1588 -740 1552 -740 1584 -740 1552 -740 1588 -740 1548 -740 1584 -748 1544 -740 1588 -744 1544 -744 1584 -744 1544 -740 1588 -744 1548 -740 1588 -736 1548 -740 1592 -732 1552 -736 1596 -1504 784 -740 1588 -1500 792 -732 1584 -1508 776 -1508 832 -1500 784 -740 1584 -1504 784 -1500 824 -1508 780 -1504 832 -1496 788 -740 1588 -1496 792 -736 1580 -4588 792 -744 1560 -1516 792 -744 1560 -1512 836 -740 1544 -744 1580 -748 1544 -740 1588 -736 1548 -740 1592 -736 1552 -740 1588 -740 1548 -740 1588 -740 1552 -736 1592 -732 1552 -740 1588 -740 1548 -740 1588 -744 1544 -740 1588 -740 1548 -740 1592 -1504 784 -740 1584 -1500 788 -744 1580 -1504 784 -1504 828 -1500 784 -744 1580 -1504 784 -1500 828 -1500 784 -1504 828 -1500 788 -744 1584 -1504 784 -740 1560 -15964 diff --git a/assets/resources/subghz/Stores/CVS/Aisle_Twenty.sub b/assets/resources/subghz/Stores/CVS/Aisle_Twenty.sub new file mode 100644 index 000000000..7a5e1119d --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Aisle_Twenty.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 800 -748 1552 -1516 788 -744 1560 -1516 824 -748 1540 -744 1584 -740 1544 -736 1588 -740 1548 -740 1584 -740 1548 -740 1584 -740 1544 -744 1588 -736 1548 -740 1588 -744 1544 -740 1588 -736 1552 -740 1584 -744 1544 -744 1584 -736 1548 -744 1584 -1504 784 -740 1588 -1500 784 -740 1580 -1500 788 -1500 828 -1500 784 -1504 820 -1504 780 -1504 824 -1500 784 -1504 828 -1504 784 -744 1584 -1500 784 -740 1580 -4592 788 -748 1556 -1516 784 -752 1556 -1516 828 -740 1548 -736 1588 -744 1544 -744 1584 -740 1548 -740 1588 -740 1548 -744 1584 -740 1548 -736 1584 -744 1544 -744 1584 -740 1548 -740 1584 -744 1548 -740 1588 -736 1548 -744 1584 -744 1548 -736 1592 -1504 784 -740 1588 -1500 780 -744 1584 -1504 780 -1508 820 -1504 784 -1500 824 -1508 784 -1500 824 -1504 784 -1500 832 -1500 788 -732 1588 -1508 780 -740 1580 -4588 788 -748 1556 -1516 792 -748 1556 -1516 828 -744 1544 -740 1588 -740 1548 -740 1588 -740 1544 -740 1592 -736 1548 -744 1580 -744 1548 -736 1588 -740 1548 -744 1584 -736 1552 -740 1584 -740 1552 -740 1584 -736 1548 -744 1584 -744 1548 -736 1592 -1504 788 -736 1588 -1508 780 -740 1584 -1504 780 -1504 824 -1500 788 -1500 824 -1504 784 -1508 820 -1504 784 -1504 832 -1500 788 -732 1592 -1500 784 -744 1580 -4584 788 -748 1560 -1516 788 -744 1560 -1516 828 -744 1544 -740 1588 -740 1548 -744 1584 -744 1548 -736 1588 -740 1548 -740 1588 -736 1548 -740 1588 -740 1548 -744 1584 -736 1552 -744 1580 -744 1548 -740 1588 -736 1552 -740 1588 -740 1548 -736 1592 -1504 788 -740 1580 -1504 788 -740 1580 -1508 780 -1500 824 -1504 788 -1500 828 -1500 788 -1500 824 -1504 780 -1504 828 -1508 780 -744 1584 -1500 784 -740 1580 -4588 788 -744 1564 -1512 792 -744 1564 -1516 828 -740 1548 -740 1584 -740 1552 -732 1588 -744 1544 -740 1588 -744 1544 -740 1584 -740 1552 -736 1584 -740 1548 -740 1588 -740 1544 -740 1588 -740 1544 -744 1584 -744 1544 -736 1588 -740 1548 -740 1592 -1500 784 -740 1584 -1504 784 -740 1580 -1500 784 -1504 824 -1504 780 -1504 824 -1496 788 -1500 824 -1504 784 -1504 824 -1504 780 -740 1588 -1504 780 -740 1580 -4584 788 -748 1560 -1516 788 -748 1556 -1516 828 -740 1548 -736 1588 -744 1540 -744 1588 -736 1552 -740 1584 -744 1544 -744 1584 -740 1544 -744 1584 -744 1544 -744 1584 -740 1548 -740 1584 -744 1544 -744 1588 -736 1548 -740 1584 -740 1548 -740 1588 -1500 784 -744 1584 -1504 784 -736 1584 -1504 784 -1504 816 -1508 780 -1508 820 -1500 784 -1508 820 -1500 784 -1504 828 -1504 784 -744 1584 -1500 788 -736 1580 -4588 788 -744 1564 -1516 788 -748 1556 -1516 +RAW_Data: 828 -740 1548 -736 1588 -740 1548 -744 1584 -740 1548 -740 1584 -744 1544 -740 1588 -740 1544 -740 1588 -740 1544 -744 1588 -736 1548 -740 1584 -744 1544 -740 1584 -744 1544 -744 1584 -736 1548 -744 1588 -1500 784 -740 1588 -1504 780 -744 1584 -1504 780 -1504 820 -1508 780 -1504 820 -1504 780 -1504 824 -1504 784 -1500 828 -1508 780 -740 1584 -1504 784 -744 1576 -4592 784 -748 1560 -1512 788 -748 1560 -1512 832 -740 1548 -740 1588 -732 1552 -740 1584 -744 1548 -736 1584 -744 1548 -736 1588 -740 1544 -744 1588 -736 1548 -740 1588 -740 1548 -736 1588 -744 1544 -744 1584 -740 1552 -744 1580 -744 1548 -740 1588 -1504 780 -748 1580 -1504 788 -736 1584 -1500 784 -1504 824 -1504 780 -1504 824 -1500 788 -1504 820 -1504 784 -1500 828 -1504 784 -740 1584 -1508 780 -740 1580 -4588 788 -748 1560 -1516 788 -744 1560 -1512 832 -736 1544 -744 1584 -740 1552 -736 1588 -740 1544 -740 1584 -744 1544 -740 1588 -744 1540 -744 1584 -736 1552 -740 1584 -740 1548 -740 1584 -744 1544 -736 1588 -744 1544 -736 1588 -740 1548 -740 1592 -1500 784 -744 1580 -1504 784 -740 1580 -1500 784 -1504 820 -1500 788 -1500 824 -1504 776 -1508 820 -1504 788 -1500 828 -1500 784 -744 1584 -1500 788 -740 1580 -4588 792 -744 1560 -1512 788 -748 1556 -1516 824 -744 1548 -736 1588 -744 1544 -740 1592 -732 1552 -740 1588 -736 1548 -744 1584 -740 1548 -736 1592 -740 1544 -744 1588 -736 1548 -740 1588 -740 1552 -736 1588 -740 1552 -732 1592 -740 1548 -740 1588 -1504 788 -736 1588 -1500 784 -740 1580 -1504 784 -1504 824 -1504 780 -1500 824 -1504 784 -1504 820 -1504 784 -1504 828 -1504 780 -744 1584 -1504 784 -740 1556 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Aisle_Two.sub b/assets/resources/subghz/Stores/CVS/Aisle_Two.sub new file mode 100644 index 000000000..fbfaa2e3b --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Aisle_Two.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 804 -744 1560 -1512 792 -744 1552 -1516 832 -740 1544 -740 1584 -744 1544 -740 1584 -744 1544 -744 1580 -736 1552 -740 1580 -744 1548 -736 1588 -740 1548 -740 1584 -740 1548 -740 1584 -740 1548 -740 1584 -744 1548 -732 1588 -744 1544 -740 1588 -1500 784 -744 1576 -1508 780 -1500 828 -1504 784 -740 1580 -1500 784 -1508 824 -1504 776 -744 1580 -1504 780 -1500 828 -1500 788 -740 1584 -1500 784 -740 1580 -4580 792 -748 1556 -1508 792 -744 1560 -1516 828 -740 1548 -740 1588 -736 1544 -748 1580 -744 1548 -740 1584 -740 1548 -740 1584 -740 1544 -748 1584 -736 1552 -740 1584 -744 1544 -740 1588 -744 1544 -740 1588 -736 1552 -740 1584 -744 1540 -744 1588 -1504 780 -744 1580 -1504 784 -1504 828 -1500 788 -740 1580 -1504 784 -1500 832 -1500 784 -744 1580 -1504 784 -1500 828 -1508 780 -736 1588 -1508 784 -740 1580 -4592 792 -740 1560 -1516 792 -748 1556 -1512 832 -740 1552 -740 1584 -740 1552 -740 1584 -744 1544 -740 1592 -740 1544 -744 1588 -740 1548 -744 1584 -736 1556 -736 1588 -740 1548 -740 1584 -748 1544 -740 1588 -736 1552 -744 1580 -744 1548 -740 1584 -1512 784 -736 1584 -1504 784 -1500 832 -1504 784 -736 1584 -1504 784 -1504 828 -1504 780 -744 1580 -1504 788 -1496 832 -1500 784 -744 1584 -1504 784 -744 1576 -4592 788 -744 1564 -1516 788 -748 1556 -1516 832 -740 1548 -744 1584 -736 1552 -744 1584 -740 1552 -740 1584 -744 1544 -744 1584 -744 1544 -744 1584 -740 1548 -740 1584 -744 1548 -740 1584 -740 1548 -744 1584 -740 1548 -740 1584 -744 1548 -740 1588 -1508 784 -740 1580 -1504 784 -1508 824 -1500 788 -744 1576 -1504 784 -1500 832 -1504 784 -740 1580 -1500 784 -1504 828 -1508 780 -744 1584 -1500 784 -744 1576 -4588 788 -744 1564 -1516 788 -752 1552 -1516 832 -740 1548 -744 1584 -740 1544 -748 1580 -744 1548 -740 1584 -744 1544 -744 1588 -740 1544 -748 1584 -740 1544 -744 1588 -740 1548 -744 1584 -740 1548 -736 1588 -744 1544 -744 1584 -740 1548 -744 1588 -1504 784 -740 1580 -1508 784 -1500 824 -1508 784 -744 1580 -1504 784 -1500 828 -1504 788 -736 1584 -1500 784 -1504 828 -1504 780 -744 1584 -1504 784 -740 1580 -4592 788 -748 1560 -1516 788 -748 1560 -1512 832 -740 1544 -744 1584 -740 1548 -740 1588 -740 1544 -748 1580 -744 1548 -740 1584 -744 1548 -736 1592 -740 1548 -740 1584 -744 1548 -740 1588 -744 1540 -748 1584 -740 1544 -744 1584 -744 1548 -740 1588 -1504 784 -740 1580 -1504 784 -1508 824 -1508 780 -744 1580 -1504 784 -1504 828 -1508 780 -744 1580 -1508 780 -1508 824 -1504 784 -740 1584 -1504 784 -744 1576 -4588 788 -744 1560 -1520 788 -748 1556 -1516 +RAW_Data: 828 -744 1544 -740 1588 -740 1548 -744 1580 -744 1544 -740 1584 -744 1548 -740 1588 -744 1544 -740 1584 -744 1548 -740 1584 -740 1548 -744 1580 -748 1540 -744 1584 -740 1548 -740 1588 -744 1548 -736 1588 -1508 780 -744 1580 -1504 784 -1500 832 -1504 784 -740 1576 -1508 784 -1504 828 -1500 784 -744 1580 -1500 784 -1504 824 -1504 780 -748 1584 -1504 784 -744 1576 -4588 792 -744 1556 -1516 788 -752 1556 -1520 824 -740 1548 -744 1584 -744 1544 -744 1584 -744 1544 -740 1588 -736 1548 -744 1584 -744 1544 -736 1592 -740 1544 -744 1584 -740 1544 -748 1580 -744 1544 -744 1580 -748 1544 -744 1580 -748 1544 -740 1588 -1508 784 -740 1580 -1508 780 -1504 824 -1508 780 -744 1576 -1508 780 -1508 820 -1508 780 -744 1580 -1508 776 -1508 824 -1508 780 -744 1580 -1508 780 -744 1580 -4588 784 -756 1552 -1516 788 -752 1552 -1520 824 -748 1540 -748 1580 -748 1540 -748 1584 -744 1540 -748 1580 -744 1544 -744 1580 -748 1544 -748 1580 -748 1540 -748 1576 -748 1540 -748 1580 -748 1540 -748 1584 -744 1540 -748 1580 -748 1540 -748 1584 -1508 780 -748 1572 -1512 776 -1512 820 -1512 776 -752 1568 -1516 776 -1516 812 -1516 772 -752 1568 -1516 772 -1520 812 -1516 772 -756 1568 -1520 768 -756 1564 -4604 772 -764 1540 -1536 768 -768 1540 -1532 808 -764 1524 -760 1568 -760 1524 -764 1564 -760 1528 -760 1568 -756 1532 -760 1564 -764 1524 -764 1564 -760 1528 -764 1564 -764 1528 -760 1564 -760 1532 -760 1564 -760 1528 -764 1564 -764 1528 -760 1568 -1524 764 -764 1560 -1524 764 -1524 808 -1524 764 -764 1560 -1524 764 -1524 808 -1524 768 -760 1560 -1524 764 -1524 808 -1520 768 -760 1564 -1524 764 -760 1540 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Allergy_Department.sub b/assets/resources/subghz/Stores/CVS/Allergy_Department.sub new file mode 100644 index 000000000..514678537 --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Allergy_Department.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 804 -740 1564 -1512 792 -740 1560 -1516 828 -740 1544 -736 1588 -744 1544 -740 1584 -740 1548 -744 1584 -736 1548 -740 1584 -740 1548 -740 1584 -740 1544 -740 1588 -740 1548 -736 1584 -740 1548 -740 1584 -740 1544 -740 1588 -736 1548 -740 1580 -1504 788 -1496 828 -1500 788 -736 1584 -1500 784 -1500 828 -1504 784 -740 1588 -1496 784 -740 1588 -1500 788 -736 1584 -1504 784 -1496 828 -1504 780 -1500 828 -4584 792 -748 1560 -1508 792 -744 1560 -1516 832 -736 1548 -740 1584 -744 1548 -736 1584 -740 1548 -744 1584 -740 1548 -736 1588 -740 1548 -740 1584 -736 1552 -736 1588 -744 1544 -740 1584 -740 1548 -744 1584 -740 1548 -736 1588 -740 1548 -740 1584 -1504 784 -1500 832 -1500 784 -744 1580 -1500 784 -1504 828 -1500 788 -736 1588 -1504 788 -736 1588 -1500 788 -740 1580 -1500 788 -1500 824 -1500 788 -1504 820 -4588 788 -748 1556 -1520 788 -744 1560 -1516 828 -744 1544 -740 1588 -744 1548 -740 1584 -740 1552 -744 1580 -744 1548 -736 1588 -740 1552 -740 1584 -736 1552 -740 1588 -736 1552 -736 1588 -740 1548 -740 1584 -744 1548 -740 1584 -744 1544 -744 1584 -1500 788 -1496 832 -1504 784 -740 1584 -1504 780 -1504 828 -1500 784 -740 1588 -1504 788 -732 1584 -1508 788 -736 1584 -1500 784 -1504 824 -1496 788 -1504 820 -4584 792 -748 1556 -1516 788 -748 1560 -1508 832 -744 1544 -744 1588 -736 1544 -740 1588 -744 1548 -736 1588 -744 1548 -740 1588 -736 1548 -740 1588 -740 1548 -736 1588 -744 1548 -740 1588 -736 1548 -740 1588 -740 1552 -736 1588 -740 1548 -740 1588 -1504 784 -1500 828 -1508 784 -744 1576 -1500 788 -1504 828 -1504 784 -740 1588 -1500 784 -744 1584 -1500 788 -736 1588 -1496 784 -1504 828 -1500 784 -1504 820 -4588 788 -748 1560 -1512 792 -744 1560 -1520 828 -740 1548 -736 1588 -740 1548 -744 1584 -740 1544 -744 1588 -740 1548 -736 1588 -736 1552 -744 1588 -736 1548 -740 1588 -740 1552 -732 1592 -740 1548 -740 1588 -736 1552 -744 1588 -736 1552 -740 1584 -1504 788 -1500 832 -1504 784 -744 1580 -1500 792 -1500 828 -1508 780 -744 1588 -1504 784 -744 1584 -1504 788 -740 1584 -1504 784 -1504 824 -1500 788 -1504 824 -4588 792 -744 1564 -1512 792 -744 1564 -1512 832 -744 1548 -740 1588 -740 1552 -740 1588 -736 1552 -744 1584 -740 1548 -740 1588 -740 1548 -744 1584 -740 1552 -744 1584 -736 1552 -740 1588 -736 1548 -740 1584 -748 1548 -736 1588 -740 1548 -740 1588 -1500 788 -1500 828 -1500 784 -744 1576 -1512 784 -1500 828 -1504 784 -744 1584 -1500 788 -740 1588 -1504 784 -744 1584 -1500 784 -1504 824 -1504 784 -1504 820 -4592 788 -744 1564 -1516 788 -744 1564 -1516 +RAW_Data: 828 -740 1548 -740 1588 -744 1544 -744 1588 -736 1548 -744 1588 -740 1548 -736 1592 -740 1548 -740 1588 -740 1552 -740 1584 -744 1548 -744 1584 -740 1548 -744 1584 -740 1548 -740 1588 -740 1548 -744 1584 -1504 780 -1504 832 -1500 784 -744 1580 -1500 788 -1504 828 -1500 784 -744 1588 -1500 788 -740 1588 -1500 788 -736 1584 -1508 784 -1500 824 -1504 788 -1500 824 -4588 792 -748 1556 -1516 792 -744 1564 -1516 828 -744 1548 -736 1592 -740 1552 -732 1592 -744 1548 -740 1588 -740 1544 -748 1588 -736 1552 -744 1588 -736 1548 -744 1588 -740 1548 -740 1588 -744 1544 -740 1588 -740 1548 -740 1592 -736 1548 -740 1588 -1500 788 -1504 828 -1500 788 -736 1584 -1504 788 -1500 832 -1500 788 -736 1592 -1500 788 -740 1584 -1504 784 -744 1584 -1500 784 -1504 824 -1504 784 -1500 824 -4588 792 -744 1564 -1516 784 -752 1556 -1516 832 -736 1552 -740 1592 -736 1548 -740 1588 -740 1548 -740 1588 -740 1552 -740 1584 -744 1548 -740 1588 -740 1548 -740 1592 -740 1544 -740 1588 -744 1548 -740 1588 -740 1548 -740 1592 -736 1552 -740 1588 -1504 780 -1508 828 -1504 780 -744 1580 -1504 784 -1508 828 -1504 780 -744 1588 -1500 784 -744 1588 -1504 784 -744 1580 -1500 788 -1504 824 -1500 788 -1508 820 -4588 792 -748 1560 -1512 792 -748 1556 -1520 828 -740 1548 -740 1588 -744 1544 -744 1580 -748 1548 -736 1588 -740 1548 -744 1588 -736 1552 -740 1588 -740 1548 -740 1588 -740 1552 -736 1588 -740 1552 -740 1588 -736 1552 -744 1584 -740 1548 -740 1588 -1500 788 -1504 828 -1500 788 -736 1584 -1504 784 -1504 828 -1504 788 -740 1588 -1500 788 -740 1588 -1508 784 -736 1584 -1500 788 -1500 828 -1504 780 -1504 804 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Baby_Formula.sub b/assets/resources/subghz/Stores/CVS/Baby_Formula.sub new file mode 100644 index 000000000..3d980a61c --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Baby_Formula.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 800 -748 1560 -1508 792 -744 1564 -1508 832 -740 1548 -740 1584 -740 1548 -736 1592 -736 1548 -740 1584 -736 1556 -736 1584 -744 1544 -740 1584 -740 1548 -740 1584 -740 1548 -740 1588 -736 1548 -740 1584 -744 1544 -740 1584 -740 1548 -744 1580 -1508 780 -1504 828 -1504 780 -740 1588 -1496 784 -748 1576 -1504 784 -1504 820 -1504 784 -1504 828 -1500 784 -740 1588 -1496 788 -740 1588 -1500 784 -740 1584 -4580 792 -744 1560 -1512 792 -744 1560 -1512 832 -736 1548 -740 1588 -740 1548 -740 1584 -740 1548 -740 1584 -740 1548 -740 1588 -740 1544 -740 1588 -736 1552 -736 1588 -740 1548 -740 1588 -736 1552 -744 1580 -744 1544 -744 1584 -740 1548 -744 1580 -1504 784 -1504 824 -1504 780 -744 1584 -1504 784 -736 1584 -1500 784 -1504 820 -1504 780 -1504 828 -1500 788 -736 1588 -1500 784 -740 1588 -1500 788 -736 1576 -4584 792 -744 1564 -1512 788 -744 1556 -1516 828 -740 1548 -736 1588 -744 1544 -744 1580 -744 1548 -732 1588 -744 1544 -740 1588 -740 1548 -736 1588 -744 1544 -740 1584 -740 1552 -736 1588 -744 1544 -740 1584 -740 1552 -736 1584 -740 1548 -744 1580 -1504 784 -1500 828 -1504 784 -740 1588 -1500 784 -740 1580 -1504 784 -1500 828 -1500 784 -1500 828 -1504 784 -740 1584 -1504 784 -740 1584 -1504 784 -740 1580 -4584 788 -748 1552 -1516 796 -740 1560 -1516 828 -740 1544 -740 1584 -744 1548 -736 1588 -736 1548 -744 1584 -740 1548 -736 1588 -740 1548 -740 1580 -744 1548 -740 1584 -740 1548 -740 1584 -744 1540 -744 1588 -736 1552 -736 1588 -740 1544 -744 1580 -1508 780 -1500 828 -1504 784 -740 1588 -1500 784 -744 1576 -1504 784 -1504 824 -1496 788 -1504 832 -1496 784 -740 1588 -1500 788 -736 1588 -1504 784 -736 1584 -4588 784 -744 1564 -1516 792 -744 1556 -1516 828 -740 1548 -740 1588 -744 1540 -744 1580 -744 1548 -736 1588 -740 1548 -736 1588 -744 1540 -740 1588 -740 1544 -744 1584 -740 1548 -740 1584 -740 1552 -736 1588 -740 1544 -744 1584 -740 1552 -736 1584 -1500 788 -1504 828 -1500 784 -744 1584 -1500 784 -744 1580 -1500 788 -1500 824 -1500 784 -1500 832 -1504 784 -740 1584 -1504 780 -744 1584 -1500 784 -740 1580 -4584 796 -744 1560 -1512 788 -748 1560 -1512 832 -740 1544 -744 1584 -740 1548 -736 1592 -736 1548 -740 1588 -736 1552 -736 1588 -740 1548 -744 1580 -744 1544 -740 1588 -740 1548 -740 1584 -748 1544 -740 1584 -744 1548 -740 1584 -740 1552 -736 1588 -1504 784 -1504 824 -1504 784 -740 1592 -1500 784 -744 1576 -1508 784 -1500 824 -1504 784 -1504 828 -1504 784 -740 1588 -1504 780 -744 1584 -1504 788 -740 1576 -4584 792 -748 1560 -1508 792 -748 1560 -1520 +RAW_Data: 828 -740 1544 -744 1584 -740 1552 -736 1588 -740 1548 -740 1592 -740 1544 -744 1584 -736 1552 -740 1588 -740 1548 -740 1588 -736 1552 -744 1584 -744 1544 -736 1596 -736 1544 -748 1584 -740 1552 -736 1588 -1504 784 -1504 824 -1504 788 -736 1592 -1500 784 -744 1580 -1508 780 -1508 820 -1504 784 -1504 828 -1504 784 -740 1588 -1508 784 -740 1584 -1504 788 -740 1580 -4592 788 -748 1560 -1516 792 -752 1556 -1516 828 -740 1552 -740 1588 -740 1548 -736 1588 -744 1548 -744 1580 -744 1548 -736 1592 -744 1544 -740 1588 -740 1548 -744 1580 -748 1544 -740 1592 -736 1548 -744 1584 -744 1552 -736 1588 -740 1548 -744 1580 -1508 784 -1504 828 -1508 780 -744 1584 -1504 784 -740 1584 -1500 788 -1500 824 -1508 780 -1504 828 -1508 784 -740 1584 -1504 780 -748 1584 -1504 784 -744 1576 -4596 788 -748 1556 -1516 792 -748 1560 -1516 828 -748 1544 -740 1588 -740 1548 -744 1588 -740 1548 -736 1588 -740 1548 -744 1584 -740 1552 -740 1584 -748 1544 -748 1580 -744 1548 -740 1588 -740 1548 -740 1592 -736 1552 -740 1584 -740 1552 -740 1584 -1508 780 -1504 828 -1504 784 -744 1584 -1508 784 -740 1580 -1504 784 -1504 824 -1504 784 -1504 828 -1508 780 -744 1584 -1508 780 -740 1588 -1504 784 -744 1576 -4592 788 -748 1560 -1516 788 -748 1560 -1516 832 -740 1548 -740 1588 -736 1552 -744 1584 -740 1548 -740 1588 -736 1556 -740 1584 -744 1548 -736 1592 -740 1548 -744 1584 -740 1552 -736 1592 -740 1548 -740 1584 -744 1548 -740 1588 -740 1544 -748 1580 -1504 784 -1504 828 -1504 784 -744 1584 -1500 784 -740 1584 -1504 784 -1504 824 -1500 788 -1508 824 -1504 784 -740 1592 -1500 784 -744 1584 -1504 784 -740 1564 -15964 diff --git a/assets/resources/subghz/Stores/CVS/Batteries.sub b/assets/resources/subghz/Stores/CVS/Batteries.sub new file mode 100644 index 000000000..9118718ff --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Batteries.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 804 -748 1556 -1512 788 -748 1560 -1512 824 -740 1548 -740 1584 -736 1548 -744 1580 -740 1548 -736 1588 -744 1544 -736 1584 -740 1552 -736 1588 -740 1544 -736 1588 -740 1548 -740 1588 -736 1544 -744 1584 -740 1548 -740 1584 -740 1544 -740 1592 -1500 784 -740 1580 -1500 784 -1504 820 -1504 784 -1500 824 -1504 780 -1504 820 -1504 784 -1500 828 -1504 784 -740 1584 -1500 784 -744 1584 -1500 784 -736 1584 -4584 788 -752 1556 -1512 784 -748 1560 -1512 832 -744 1544 -740 1580 -740 1552 -744 1584 -736 1548 -740 1588 -740 1548 -740 1584 -740 1548 -744 1580 -744 1544 -740 1584 -740 1548 -744 1584 -740 1544 -740 1588 -740 1548 -740 1584 -740 1548 -736 1592 -1500 788 -736 1580 -1500 788 -1496 828 -1504 780 -1504 820 -1500 788 -1500 824 -1500 784 -1504 828 -1500 780 -740 1592 -1496 788 -736 1584 -1504 788 -740 1576 -4580 796 -740 1564 -1512 792 -748 1556 -1512 832 -736 1552 -744 1584 -740 1548 -736 1584 -744 1548 -740 1584 -744 1544 -740 1588 -740 1548 -736 1588 -736 1548 -740 1592 -740 1544 -740 1584 -740 1548 -744 1588 -736 1548 -736 1588 -740 1548 -744 1584 -1504 784 -744 1576 -1508 784 -1500 824 -1500 788 -1500 824 -1500 788 -1504 820 -1500 784 -1500 832 -1500 784 -740 1588 -1504 784 -740 1584 -1508 780 -740 1580 -4588 788 -748 1560 -1512 792 -744 1560 -1516 828 -744 1544 -744 1584 -740 1548 -736 1588 -740 1548 -740 1588 -740 1548 -740 1584 -744 1548 -740 1584 -744 1544 -740 1588 -740 1548 -744 1584 -740 1548 -740 1588 -740 1548 -740 1584 -740 1548 -744 1588 -1500 784 -744 1584 -1504 780 -1504 824 -1500 784 -1508 820 -1500 788 -1504 820 -1504 784 -1508 824 -1504 784 -744 1584 -1500 788 -740 1588 -1500 788 -740 1580 -4588 792 -744 1560 -1516 792 -748 1560 -1512 828 -740 1552 -740 1588 -736 1548 -744 1588 -740 1548 -744 1584 -740 1552 -736 1588 -736 1552 -740 1588 -744 1540 -740 1592 -744 1544 -740 1588 -740 1544 -740 1592 -740 1548 -740 1580 -740 1552 -736 1592 -1504 784 -740 1580 -1500 792 -1500 820 -1504 788 -1500 824 -1500 784 -1504 824 -1504 784 -1496 836 -1496 788 -736 1592 -1500 788 -736 1588 -1500 784 -744 1580 -4584 792 -744 1560 -1516 788 -752 1560 -1508 832 -736 1556 -736 1588 -736 1548 -740 1588 -740 1552 -740 1584 -736 1548 -744 1584 -744 1544 -740 1588 -736 1552 -744 1580 -744 1544 -744 1584 -740 1548 -744 1584 -740 1544 -744 1588 -740 1544 -740 1592 -1500 788 -740 1584 -1496 784 -1500 828 -1504 784 -1504 824 -1504 784 -1500 820 -1508 788 -1500 828 -1504 784 -740 1584 -1500 788 -740 1588 -1504 784 -736 1584 -4588 792 -744 1560 -1512 792 -744 1564 -1508 +RAW_Data: 836 -740 1544 -744 1588 -740 1548 -736 1588 -740 1552 -740 1584 -740 1552 -736 1592 -740 1548 -736 1592 -740 1548 -740 1584 -740 1552 -736 1588 -740 1548 -740 1588 -740 1548 -744 1584 -740 1548 -740 1592 -1500 784 -740 1584 -1504 784 -1504 824 -1504 784 -1504 820 -1504 784 -1508 824 -1496 788 -1508 824 -1504 784 -744 1584 -1504 788 -740 1584 -1504 780 -744 1580 -4584 796 -744 1560 -1520 788 -744 1564 -1516 824 -740 1552 -744 1584 -740 1548 -740 1588 -740 1548 -736 1592 -736 1552 -740 1584 -744 1548 -736 1592 -736 1548 -744 1588 -740 1548 -740 1588 -736 1552 -740 1584 -744 1548 -740 1588 -740 1548 -740 1592 -1500 788 -740 1584 -1496 788 -1504 824 -1504 784 -1508 824 -1500 784 -1508 824 -1500 784 -1508 824 -1504 788 -740 1584 -1504 788 -740 1588 -1500 784 -740 1584 -4588 788 -748 1560 -1520 788 -744 1560 -1520 824 -740 1552 -740 1588 -740 1544 -740 1592 -740 1548 -740 1584 -740 1552 -740 1584 -748 1548 -740 1588 -740 1548 -740 1592 -740 1548 -740 1584 -740 1552 -740 1584 -740 1552 -740 1588 -740 1548 -740 1592 -1504 784 -740 1584 -1500 788 -1500 824 -1504 784 -1508 820 -1504 784 -1508 824 -1500 784 -1500 832 -1504 788 -740 1584 -1500 788 -740 1588 -1500 788 -736 1584 -4592 792 -740 1564 -1512 796 -744 1564 -1512 832 -744 1544 -740 1588 -736 1556 -736 1588 -740 1544 -744 1592 -736 1548 -740 1588 -740 1552 -740 1584 -740 1552 -736 1592 -740 1548 -736 1592 -744 1548 -740 1584 -740 1552 -740 1584 -740 1548 -740 1592 -1504 784 -740 1580 -1504 788 -1504 820 -1500 788 -1504 820 -1504 788 -1500 828 -1500 784 -1504 832 -1504 784 -740 1588 -1504 784 -740 1588 -1504 784 -736 1564 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Body_Wash.sub b/assets/resources/subghz/Stores/CVS/Body_Wash.sub new file mode 100644 index 000000000..6a3e48d3e --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Body_Wash.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 800 -752 1552 -1516 788 -748 1556 -1516 828 -744 1544 -740 1584 -740 1544 -744 1580 -740 1548 -744 1580 -744 1544 -740 1584 -740 1548 -736 1588 -740 1548 -740 1584 -744 1544 -740 1584 -740 1548 -740 1584 -744 1544 -740 1584 -740 1548 -740 1588 -1504 784 -736 1580 -1504 784 -1500 832 -1500 784 -740 1584 -1504 780 -744 1584 -1504 784 -740 1580 -1504 784 -1500 828 -1504 784 -740 1584 -1508 780 -740 1580 -4588 792 -748 1552 -1516 788 -744 1560 -1512 832 -744 1544 -740 1584 -740 1548 -740 1584 -744 1544 -740 1584 -744 1544 -740 1588 -740 1544 -740 1588 -740 1544 -740 1588 -736 1552 -736 1588 -736 1552 -740 1584 -740 1548 -740 1588 -736 1544 -744 1592 -1500 784 -740 1584 -1496 788 -1504 828 -1504 784 -740 1584 -1508 780 -740 1588 -1500 784 -744 1580 -1504 784 -1500 828 -1504 784 -736 1592 -1500 788 -740 1576 -4592 784 -748 1560 -1512 792 -744 1560 -1516 828 -744 1544 -740 1588 -740 1548 -740 1584 -744 1544 -744 1584 -744 1544 -744 1584 -744 1548 -740 1584 -744 1544 -744 1584 -744 1544 -744 1584 -740 1548 -740 1588 -740 1548 -740 1588 -740 1544 -744 1588 -1500 784 -744 1580 -1508 784 -1504 824 -1504 784 -740 1592 -1504 784 -740 1588 -1504 780 -744 1580 -1508 780 -1504 828 -1504 784 -744 1584 -1504 784 -740 1584 -4588 792 -748 1556 -1516 792 -748 1556 -1516 828 -740 1548 -740 1588 -740 1548 -744 1588 -740 1548 -740 1584 -744 1548 -740 1584 -744 1548 -740 1584 -744 1548 -740 1588 -740 1544 -744 1584 -744 1548 -740 1584 -744 1548 -736 1588 -740 1548 -740 1592 -1508 780 -740 1580 -1508 780 -1504 824 -1504 788 -740 1588 -1504 784 -740 1584 -1508 780 -744 1580 -1504 784 -1504 828 -1504 780 -744 1584 -1508 780 -740 1584 -4592 788 -748 1556 -1516 788 -748 1560 -1512 832 -740 1548 -740 1584 -744 1544 -740 1588 -740 1548 -736 1592 -736 1548 -744 1584 -740 1552 -736 1592 -736 1552 -740 1588 -736 1552 -740 1588 -736 1552 -740 1588 -736 1548 -740 1588 -736 1552 -740 1592 -1500 788 -740 1580 -1504 784 -1504 828 -1504 784 -740 1588 -1504 780 -744 1584 -1504 784 -744 1580 -1500 788 -1500 828 -1504 784 -740 1584 -1504 784 -744 1576 -4592 788 -748 1556 -1516 792 -748 1560 -1512 832 -740 1548 -736 1588 -744 1548 -740 1584 -744 1548 -740 1584 -744 1544 -744 1588 -736 1552 -736 1588 -744 1548 -736 1588 -740 1548 -740 1588 -740 1548 -740 1588 -744 1544 -740 1592 -732 1552 -740 1588 -1504 784 -740 1584 -1500 784 -1500 832 -1504 788 -740 1584 -1504 784 -740 1584 -1504 788 -740 1576 -1504 788 -1500 828 -1504 784 -740 1588 -1504 784 -740 1580 -4592 784 -752 1556 -1520 788 -748 1556 -1516 +RAW_Data: 828 -740 1548 -740 1588 -740 1544 -740 1592 -736 1552 -740 1584 -740 1548 -740 1588 -740 1548 -740 1588 -740 1552 -740 1588 -736 1552 -740 1588 -740 1548 -740 1584 -744 1548 -736 1592 -740 1548 -740 1592 -1504 784 -740 1576 -1504 788 -1500 832 -1504 784 -740 1588 -1504 784 -740 1588 -1500 784 -744 1580 -1504 784 -1508 824 -1504 784 -740 1588 -1504 784 -740 1576 -4592 792 -744 1564 -1512 792 -744 1560 -1520 828 -740 1548 -740 1584 -744 1548 -744 1584 -740 1552 -740 1588 -736 1552 -740 1584 -740 1552 -740 1588 -744 1548 -736 1588 -744 1548 -744 1584 -744 1544 -744 1584 -744 1548 -736 1588 -740 1552 -740 1588 -1508 780 -740 1584 -1508 780 -1508 824 -1504 784 -740 1588 -1504 784 -744 1588 -1504 784 -740 1584 -1504 784 -1500 828 -1504 784 -736 1592 -1504 788 -740 1576 -4592 792 -740 1564 -1512 792 -744 1564 -1516 828 -740 1548 -740 1588 -740 1544 -744 1588 -736 1552 -740 1588 -744 1548 -736 1592 -740 1548 -744 1584 -740 1548 -740 1588 -740 1548 -740 1584 -744 1548 -740 1588 -740 1548 -744 1584 -744 1544 -744 1588 -1504 784 -740 1584 -1504 784 -1504 824 -1504 784 -740 1588 -1500 788 -736 1588 -1504 784 -740 1584 -1500 784 -1504 828 -1504 784 -736 1588 -1504 784 -744 1576 -4588 788 -748 1560 -1508 796 -744 1564 -1508 832 -744 1544 -740 1584 -744 1544 -744 1580 -744 1544 -744 1588 -740 1548 -740 1584 -744 1548 -740 1584 -744 1548 -740 1588 -740 1544 -744 1588 -740 1548 -736 1588 -740 1548 -740 1584 -740 1548 -740 1588 -1504 784 -740 1580 -1500 788 -1500 832 -1500 788 -740 1584 -1504 784 -736 1588 -1504 784 -740 1584 -1496 788 -1500 828 -1508 780 -744 1580 -1508 780 -740 1560 -15924 diff --git a/assets/resources/subghz/Stores/CVS/CVS_Dental.sub b/assets/resources/subghz/Stores/CVS/CVS_Dental.sub deleted file mode 100644 index 738bec64b..000000000 --- a/assets/resources/subghz/Stores/CVS/CVS_Dental.sub +++ /dev/null @@ -1,7 +0,0 @@ -Filetype: Flipper SubGhz RAW File -Version: 1 -Frequency: 433920000 -Preset: FuriHalSubGhzPresetOok270Async -Protocol: RAW -RAW_Data: 692245 -672 1625 -1440 865 -666 1639 -1420 897 -678 1597 -676 1649 -676 1617 -658 1663 -658 1619 -676 1631 -664 1619 -690 1617 -696 1589 -678 1665 -670 1597 -680 1625 -680 1617 -674 1639 -680 1587 -698 1629 -674 1597 -676 1647 -676 1617 -660 1657 -1418 843 -676 1657 -1440 843 -1418 909 -1434 853 -650 1653 -1418 847 -1434 897 -1434 849 -1406 923 -1410 839 -692 1633 -1434 845 -1434 885 -1432 853 -656 1679 -4500 841 -676 1623 -1452 851 -656 1621 -1442 917 -666 1583 -678 1649 -686 1601 -696 1621 -694 1597 -668 1669 -670 1595 -680 1635 -702 1553 -704 1651 -684 1585 -702 1629 -662 1597 -684 1621 -698 1601 -696 1607 -694 1587 -710 1627 -696 1563 -710 1629 -1434 839 -686 1635 -1426 835 -1478 841 -1456 825 -696 1623 -1440 857 -1444 851 -1468 819 -1438 893 -1436 829 -682 1639 -1452 825 -1464 851 -1434 859 -660 1657 -4492 849 -690 1613 -1464 841 -662 1627 -1450 873 -684 1595 -710 1651 -666 1603 -652 1643 -682 1625 -652 1639 -692 1609 -678 1647 -644 1615 -684 1627 -702 1589 -672 1655 -676 1623 -664 1641 -674 1605 -678 1633 -678 1603 -672 1663 -672 1629 -650 1647 -1420 871 -664 1637 -1444 843 -1452 851 -1454 833 -676 1639 -1448 835 -1442 857 -1462 803 -1480 859 -1452 853 -658 1651 -1430 831 -1444 879 -1466 813 -692 1649 -4514 821 -692 1607 -1470 843 -700 1593 -1434 901 -676 1591 -682 1635 -684 1601 -686 1623 -678 1609 -682 1633 -700 1599 -684 1629 -680 1601 -692 1617 -698 1569 -698 1623 -710 1593 -668 1625 -700 1585 -708 1617 -714 1525 -748 1585 -746 1547 -722 1623 -1496 757 -714 1629 -1456 807 -1462 849 -1498 791 -720 1613 -1462 813 -1456 835 -1488 833 -1430 897 -1430 821 -704 1609 -1494 803 -1446 879 -1444 827 -698 1621 -4520 811 -722 1599 -1452 851 -704 1609 -1430 871 -688 1627 -682 1613 -702 1547 -732 1619 -702 1571 -694 1627 -718 1553 -728 1591 -732 1541 -694 1641 -710 1533 -746 1595 -712 1597 -670 1627 -712 1559 -732 1579 -732 1591 -660 1631 -726 1539 -730 1623 -1460 831 -660 1599 -1508 761 -1496 825 -1510 821 -706 1579 -1460 821 -1484 835 -1482 819 -1456 823 -1514 799 -688 1635 -1456 813 -1466 819 -1510 801 -714 1613 -4532 833 -670 1605 -1476 801 -734 1621 -1452 877 -690 1545 -740 1585 -720 1551 -740 1607 -676 1595 -722 1593 -710 1577 -692 1615 -706 1621 -658 1619 -728 1569 -698 1601 -726 1573 -708 1589 -758 1561 -692 1589 -716 1585 -682 1643 -692 1575 -696 1613 -1482 815 -716 1589 -1474 787 -1490 893 -1444 799 -712 1607 -1460 807 -1482 843 -1466 835 -1426 867 -1488 769 -736 1619 -1432 831 -1480 859 -1466 819 -680 1621 -4528 819 -706 1589 -1486 815 -728 1573 -1502 835 -724 1551 -700 1621 -702 1587 -698 1613 -720 1561 -696 -RAW_Data: 1643 -688 1555 -722 1615 -702 1571 -706 1605 -706 1595 -696 1623 -684 1555 -744 1589 -732 1585 -672 1625 -712 1565 -696 1617 -702 1565 -718 1623 -1482 787 -708 1617 -1472 821 -1464 831 -1472 857 -694 1617 -1438 799 -1474 865 -1462 793 -1486 857 -1460 803 -728 1607 -1456 823 -1456 837 -1488 815 -700 1601 -4544 821 -728 1583 -1480 809 -698 1607 -1476 845 -700 1603 -702 1617 -686 1577 -714 1625 -702 1551 -722 1637 -672 1591 -676 1629 -690 1569 -710 1645 -706 1559 -704 1627 -708 1581 -706 1585 -726 1559 -700 1631 -708 1583 -678 1645 -672 1573 -724 1633 -1476 767 -726 1605 -1474 813 -1458 869 -1456 821 -676 1623 -1466 829 -1440 885 -1452 811 -1454 867 -1474 833 -692 1603 -1466 815 -1480 843 -1464 845 -666 1627 -4540 811 -720 1571 -1470 841 -694 1633 -1428 883 -704 1573 -688 1655 -662 1599 -698 1623 -700 1573 -698 1617 -692 1581 -718 1623 -684 1587 -712 1597 -722 1555 -714 1627 -712 1573 -682 1635 -698 1599 -676 1641 -680 1585 -710 1613 -686 1573 -732 1601 -1466 809 -720 1623 -1446 835 -1440 863 -1476 819 -710 1625 -1454 827 -1422 867 -1460 817 -1484 831 -1470 821 -726 1595 -1474 809 -1476 829 -1502 813 -710 1599 -4530 829 -728 1577 -1464 829 -684 1597 -1484 853 -730 1561 -700 1619 -718 1553 -716 1593 -728 1555 -750 1597 -694 1549 -722 1633 -700 1587 -716 1623 -682 1573 -722 1627 -690 1543 -726 1603 -734 1575 -690 1607 -724 1593 -714 1569 -732 1543 -728 1603 -1470 793 -728 1593 -1474 817 -1476 847 -1476 813 -708 1601 -1450 823 -1470 849 -1462 819 -1474 861 -1476 811 -692 1619 -1462 843 -1424 893 -1434 831 -686 1591 -305456 97 -164 163 -1286 165 -1410 229 -262 261 -130 65 -920 199 -132 235 -100 231 -966 299 -430 65 -1216 625 -66 233 -266 165 -134 1201 -68 197 -66 167 -134 1041 -66 1691 -100 65 -66 325203 -66 1727 -66 99 -66 199 -100 197797 \ No newline at end of file diff --git a/assets/resources/subghz/Stores/CVS/CVS_Shaving.sub b/assets/resources/subghz/Stores/CVS/CVS_Shaving.sub deleted file mode 100644 index e5c6ffe82..000000000 --- a/assets/resources/subghz/Stores/CVS/CVS_Shaving.sub +++ /dev/null @@ -1,12 +0,0 @@ -Filetype: Flipper SubGhz RAW File -Version: 1 -Frequency: 433920000 -Preset: FuriHalSubGhzPresetOok650Async -Protocol: RAW -RAW_Data: 3904 -4350 197 -134 163 -132 465 -134 231 -662 131 -434 131 -364 167 -1062 99 -666 131 -392 163 -130 891 -196 30989 -3696 97 -566 131 -168 99 -168 595 -332 199 -400 133 -234 165 -66 167 -800 165 -134 131 -764 1553 -102 5609 -12620 327 -166 97 -498 427 -626 99 -998 67 -398 927 -298 661 -100 3681 -66 3227 -6418 65 -1826 133 -630 1019 -594 65 -1654 197 -66 263 -130 227 -196 329 -230 65 -200 3795 -8324 267 -930 361 -334 131 -1330 65 -1092 131 -134 65 -100 267 -66 231 -100 331 -396 197 -66 2191 -66 4805 -7532 67 -1066 429 -134 131 -134 67 -268 199 -198 99 -332 65 -996 65 -1030 165 -198 363 -268 229 -132 797 -66 22013 -462 295 -132 97 -726 131 -754 165 -464 65 -334 67 -132 267 -66 297 -232 829 -166 727 -298 67 -898 231 -362 2127 -100 65 -66 197 -15966 99 -926 199 -200 131 -100 231 -394 97 -392 131 -656 97 -792 63 -100 459 -362 261 -198 393 -2552 65 -1426 99 -232 65 -662 99 -196 201 -398 65 -366 197 -200 131 -360 97 -954 97 -592 893 -66 265 -68 265 -100 9935 -888 165 -1596 163 -958 133 -394 165 -132 199 -232 163 -226 559 -658 165 -496 131 -130 97 -198 163 -326 65 -166 691 -132 329 -68 659 -100 12437 -3696 231 -500 65 -134 131 -100 99 -432 131 -334 331 -264 165 -266 65 -266 67 -132 65 -730 129 -130 131 -558 97 -500 727 -232 97 -100 229 -266 231 -232 33371 -860 299 -166 99 -564 167 -66 99 -100 65 -364 233 -432 97 -300 65 -66 195 -564 133 -562 327 -200 393 -98 261 -98 129 -230 231 -98 129 -66 8661 -4180 133 -330 129 -264 263 -464 525 -66 65 -166 131 -198 97 -528 65 -760 497 -66 131 -134 197 -100 65 -132 497 -68 131 -66 7853 -8564 199 -264 65 -460 163 -592 99 -98 65 -928 67 -332 97 -492 163 -324 463 -264 99 -228 163 -3600 99 -166 99 -66 133 -398 329 -98 265 -166 399 -200 233 -3662 331 -100 131 -334 97 -100 65 -66 229 -100 1753 -132 1679 -9064 97 -64 165 -230 65 -130 99 -164 129 -1156 131 -496 99 -600 429 -198 163 -100 231 -132 201 -66 365 -100 65 -232 18463 -3784 165 -166 161 -128 99 -98 231 -326 97 -662 131 -362 97 -1856 691 -228 361 -562 163 -166 703 -66 5199 -8426 131 -132 67 -198 65 -266 65 -498 429 -100 99 -230 99 -698 133 -200 199 -100 231 -528 495 -268 565 -100 133 -166 31777 -2882 65 -692 129 -264 97 -196 161 -560 197 -962 131 -1396 129 -664 165 -134 99 -398 793 -132 363 -234 11199 -764 65 -2934 359 -64 65 -492 197 -788 -RAW_Data: 97 -164 99 -230 131 -130 131 -264 67 -1184 131 -1418 491 -166 557 -132 397 -134 1423 -68 363 -66 7121 -66 65 -658 99 -1254 99 -624 97 -326 65 -330 195 -98 229 -560 65 -396 263 -132 197 -198 65 -334 165 -134 199 -430 67 -398 131 -100 99 -166 65 -432 165 -134 429 -198 12133 -3650 97 -262 131 -628 97 -230 199 -200 97 -166 163 -66 195 -100 227 -428 261 -1350 101 -432 65 -264 65 -268 527 -100 333 -132 329 -66 1417 -98 131 -100 99 -7040 63 -888 97 -300 265 -964 133 -262 65 -360 231 -134 1281 -100 753 -12224 199 -66 793 -66 165 -66 135 -66 165 -598 65 -168 365 -996 99 -198 165 -1252 97 -132 263 -132 1223 -68 197 -134 1251 -100 1883 -66 15039 -792 65 -860 65 -1446 99 -496 263 -200 433 -198 163 -132 293 -396 163 -362 361 -132 195 -164 95 -954 97 -526 99 -166 99 -432 1557 -168 65 -68 65 -66 4275 -3404 65 -98 65 -396 363 -394 65 -1088 165 -164 331 -1386 99 -66 97 -956 97 -492 195 -232 229 -66 427 -98 163 -260 1023 -1514 99 -164 131 -298 65 -198 133 -100 397 -298 231 -100 133 -168 165 -362 197 -962 65 -66 133 -332 97 -894 201 -134 699 -198 199 -236 133 -66 4051 -134 3749 -8666 99 -264 133 -66 131 -134 99 -370 197 -132 167 -166 133 -530 65 -1428 1857 -264 2271 -66 14761 -194 133 -66 131 -132 99 -300 165 -100 65 -298 297 -164 67 -100 367 -66 99 -630 233 -398 99 -1458 167 -68 99 -132 265 -132 165 -134 197 -368 30983 -2892 63 -460 97 -196 97 -460 165 -98 561 -398 363 -298 99 -330 131 -332 97 -1192 231 -132 67 -332 131 -66 399 -164 431 -130 231 -326 295 -66 97 -166 7139 -8334 165 -202 65 -166 99 -134 267 -66 131 -100 65 -134 163 -166 99 -334 165 -364 133 -200 199 -66 431 -166 365 -132 12275 -1462 131 -2218 165 -98 99 -166 231 -198 131 -262 165 -594 97 -232 195 -198 131 -296 227 -1558 163 -530 529 -198 531 -234 133 -66 167 -3310 99 -688 197 -132 199 -66 99 -166 167 -396 165 -166 165 -102 167 -662 265 -764 65 -332 99 -564 199 -100 961 -66 131 -132 133 -166 2089 -132 5705 -6144 99 -66 363 -566 595 -198 131 -100 131 -460 131 -364 97 -494 557 -298 261 -64 163 -196 3143 -66 6209 -8590 197 -1094 131 -898 131 -434 165 -198 65 -598 1231 -66 495 -262 17343 -1458 65 -858 97 -1990 99 -166 133 -1028 65 -332 265 -234 229 -100 131 -1416 819 -328 821 -98 4323 -66 2973 -7618 131 -134 97 -266 99 -166 299 -1462 67 -66 97 -760 331 -66 265 -100 -RAW_Data: 165 -66 331 -68 131 -600 3011 -536 67 -11564 129 -332 133 -764 263 -1062 65 -1030 65 -828 563 -396 233 -100 26095 -264 97 -2056 167 -856 165 -68 97 -200 99 -498 65 -726 163 -332 197 -528 195 -1158 131 -698 65 -366 401 -132 263 -66 129 -164 463 -230 4147 -164 357 -66 97 -66 129 -430 65 -4544 327 -296 363 -168 133 -200 165 -134 363 -234 265 -492 99 -1220 165 -100 631 -264 65 -66 163 -100 2113 -132 1639 -336 167 -564 131 -598 99 -296 131 -566 431 -200 231 -164 431 -232 99 -626 131 -200 129 -230 263 -132 563 -66 929 -134 20555 -1226 165 -920 229 -100 97 -262 165 -98 261 -162 523 -298 131 -330 231 -694 99 -496 163 -162 65 -100 97 -262 429 -364 331 -134 495 -68 133 -166 3109 -130 21547 -540 99 -598 67 -864 233 -892 133 -362 163 -100 263 -100 131 -68 131 -100 265 -688 131 -132 195 -196 163 -196 195 -98 229 -858 99 -230 97 -628 297 -100 691 -198 1747 -66 331 -132 8437 -3652 131 -332 131 -102 263 -1028 165 -1062 133 -756 99 -362 97 -98 557 -200 827 -66 11901 -1880 133 -132 97 -1160 97 -100 231 -98 231 -130 65 -66 197 -198 167 -430 165 -98 847 -780 1533 -1538 789 -754 1541 -1526 811 -756 1539 -776 1569 -742 1533 -754 1605 -742 1551 -744 1573 -746 1541 -756 1567 -772 1545 -740 1565 -776 1541 -756 1581 -746 1527 -744 1603 -744 1533 -752 1597 -756 1513 -758 1601 -746 1537 -744 1579 -1542 753 -748 1589 -1514 775 -744 1593 -1504 799 -1494 841 -1518 761 -752 1567 -1534 773 -1508 799 -1548 775 -1516 803 -1512 775 -742 1595 -1504 793 -742 1569 -4602 803 -756 1563 -1512 787 -750 1565 -1500 835 -746 1565 -750 1579 -754 1543 -724 1601 -746 1537 -746 1571 -766 1531 -754 1603 -740 1547 -742 1567 -774 1527 -754 1591 -754 1539 -726 1609 -746 1537 -746 1593 -744 1531 -756 1571 -766 1541 -740 1593 -1498 805 -750 1581 -1514 775 -728 1569 -1540 779 -1506 835 -1504 769 -756 1571 -1528 775 -1502 815 -1534 769 -1514 809 -1514 791 -748 1567 -1534 771 -744 1595 -4590 767 -792 1543 -1506 781 -784 1549 -1516 835 -742 1543 -742 1571 -776 1537 -754 1573 -744 1551 -742 1573 -778 1543 -720 1609 -744 1545 -744 1571 -776 1509 -754 1607 -742 1543 -740 1601 -742 1537 -752 1593 -754 1537 -728 1607 -746 1533 -742 1591 -1528 771 -754 1593 -1514 773 -728 1573 -1542 777 -1506 833 -1514 775 -728 1575 -1542 781 -1508 803 -1528 779 -1504 809 -1514 805 -740 1595 -1504 787 -722 1603 -4582 793 -768 1537 -1530 777 -780 1535 -1538 817 -744 1565 -726 1595 -754 1539 -752 1569 -748 1565 -744 1597 -750 1515 -756 1599 -730 1539 -778 1569 -748 -RAW_Data: 1543 -770 1549 -772 1549 -744 1567 -778 1539 -722 1605 -740 1545 -742 1597 -744 1541 -754 1591 -1516 787 -742 1577 -1512 769 -774 1561 -1506 791 -1526 811 -1512 787 -748 1565 -1536 771 -1504 821 -1516 769 -1518 841 -1504 771 -774 1563 -1538 755 -768 1575 -4616 755 -786 1543 -1528 779 -744 1573 -1540 823 -746 1525 -756 1571 -774 1545 -744 1567 -774 1529 -752 1591 -758 1523 -754 1597 -726 1543 -778 1573 -746 1541 -756 1571 -766 1541 -742 1595 -746 1535 -752 1595 -726 1539 -774 1579 -750 1541 -746 1577 -1542 769 -740 1571 -1534 779 -744 1571 -1540 755 -1516 835 -1508 777 -744 1569 -1538 755 -1548 807 -1506 781 -1504 817 -1532 771 -752 1591 -1516 777 -744 1577 -4616 755 -782 1559 -1512 775 -778 1539 -1548 817 -752 1537 -754 1573 -780 1507 -782 1563 -754 1527 -784 1567 -768 1509 -776 1567 -778 1505 -770 1561 -784 1511 -794 1543 -782 1507 -782 1549 -784 1537 -764 1541 -782 1539 -750 1581 -756 1529 -778 1555 -1520 777 -776 1563 -1542 761 -752 1569 -1524 745 -1540 821 -1506 795 -754 1567 -1526 779 -1504 821 -1508 785 -1510 821 -1524 777 -744 1573 -1540 759 -770 1539 -4644 757 -766 1567 -1502 813 -746 1567 -1500 835 -742 1565 -744 1559 -784 1517 -754 1599 -728 1541 -778 1569 -742 1561 -756 1559 -770 1525 -748 1587 -754 1537 -774 1563 -742 1561 -754 1591 -720 1545 -758 1601 -744 1535 -742 1591 -748 1539 -754 1575 -1536 777 -742 1595 -1502 783 -756 1561 -1514 793 -1514 809 -1544 777 -746 1563 -1510 775 -1542 813 -1524 775 -1504 823 -1506 789 -752 1553 -1522 775 -776 1569 -4614 777 -764 1545 -1540 779 -748 1543 -1528 845 -752 1521 -746 1603 -744 1535 -752 1593 -756 1525 -776 1563 -766 1541 -742 1569 -776 1527 -736 1597 -756 1527 -754 1597 -728 1541 -778 1571 -742 1561 -752 1579 -744 1547 -744 1571 -776 1541 -752 1569 -1542 749 -778 1563 -1534 767 -742 1573 -1512 773 -1546 817 -1524 775 -742 1571 -1504 793 -1516 801 -1530 775 -1504 847 -1504 787 -752 1577 -1504 779 -746 1597 -4612 779 -742 1551 -1538 779 -776 1541 -1512 845 -746 1527 -748 1603 -742 1533 -754 1585 -768 1537 -760 1573 -748 1533 -746 1575 -784 1519 -752 1601 -726 1543 -776 1573 -750 1543 -754 1567 -768 1541 -742 1567 -774 1529 -752 1591 -734 1559 -754 1573 -1528 777 -744 1569 -1528 767 -768 1561 -1510 799 -1516 795 -1534 777 -742 1571 -1540 755 -1516 837 -1500 779 -1534 803 -1532 773 -742 1595 -1504 767 -754 1575 -4606 787 -778 1539 -1542 773 -744 1561 -1542 823 -750 1543 -740 1567 -772 1545 -744 1571 -778 1539 -758 1559 -768 1529 -744 1581 -754 1535 -774 1563 -776 1527 -756 1593 -752 1537 -728 1603 -746 1539 -748 1575 -752 1559 -754 1569 -768 1509 -778 1573 -1538 -RAW_Data: 757 -756 1573 -1528 777 -742 1563 -1538 753 -1546 807 -1536 747 -778 1563 -1532 773 -1506 801 -1546 741 -1554 807 -1510 775 -746 1573 -1532 763 -754 1567 -153176 97 -294 99 -328 395 -100 97 -294 133 -560 229 -100 97 -294 163 -198 97 -360 165 -228 627 -132 131 -100 131 -130 195 -100 63 -66 165 -4084 297 -164 201 -666 165 -66 99 -134 395 -498 65 -2190 99 -496 67 -164 327 -98 593 -196 129 -132 197 -164 40359 -3728 97 -66 231 -230 67 -134 265 -662 67 -366 99 -198 199 -166 67 -132 97 -698 65 -132 99 -700 99 -200 893 -264 395 -100 14537 -524 65 -2858 131 -68 231 -66 197 -598 99 -100 131 -134 763 -98 165 -732 97 -368 131 -368 99 -496 131 -100 231 -234 265 -562 263 -134 131 -164 3347 -134 9285 -2324 129 -98 393 -66 295 -198 197 -100 199 -166 165 -626 131 -868 265 -100 97 -466 199 -266 593 -198 67 -66 233 -166 131 -66 10277 -3862 165 -200 233 -496 527 -296 65 -132 165 -234 131 -200 229 -66 97 -562 67 -232 199 -302 133 -892 133 -98 299 -164 131 -100 131 -66 99 -166 131 -100 10901 -2102 65 -100 99 -264 335 -366 99 -234 131 -100 131 -68 231 -166 267 -66 201 -100 133 -1256 65 -398 65 -530 165 -166 201 -100 331 -166 231 -98 163 -168 22617 -2224 65 -928 131 -524 131 -360 133 -1020 165 -164 67 -132 129 -132 99 -262 165 -232 131 -1348 333 -264 97 -294 99 -98 15195 -3752 67 -398 165 -134 97 -964 99 -558 165 -162 195 -296 165 -1460 165 -464 133 -164 165 -298 495 -100 99 -264 131 -66 3125 -100 78963 -1134 233 -300 163 -300 65 -430 165 -200 65 -398 165 -68 131 -234 131 -66 65 -960 231 -1318 197 -230 261 -98 393 -100 597 -166 1789 -68 1251 -1318 65 -2680 165 -364 199 -166 263 -132 231 -66 133 -132 65 -766 365 -232 167 -366 99 -400 97 -232 67 -566 503 -66 693 -98 63 -164 295 -262 8257 -8512 163 -764 165 -334 231 -68 165 -1164 131 -434 65 -602 99 -166 99 -68 331 -166 297 -232 529 -132 29381 -5998 399 -98 133 -232 133 -200 65 -1260 131 -66 663 -100 65 -100 197 -100 233 -298 19843 -3748 65 -66 65 -264 195 -264 99 -530 265 -66 99 -134 65 -232 265 -298 133 -532 665 -166 165 -66 26257 -1788 65 -1858 265 -402 129 -500 265 -168 263 -132 133 -498 99 -428 97 -132 97 -690 97 -430 131 -100 131 -698 233 -98 463 -66 297 -266 67 -98 951 -98 693 -8368 129 -66 99 -132 131 -300 233 -134 97 -200 267 -2120 97 -334 999 -98 297 -100 101 -98 329 -98 2617 -606 67 -1662 -RAW_Data: 199 -100 65 -100 65 -100 97 -164 65 -66 131 -1156 99 -132 65 -66 97 -132 2419 -18718 99 -134 99 -100 131 -68 493 -200 65 -100 199 -200 267 -68 299 -1262 131 -234 133 -66 65 -132 201 -366 97 -496 99 -722 65 -294 165 -530 1321 -164 197 -98 97 -98 12505 -66 265 -132 265 -564 331 -100 297 -134 99 -994 65 -426 165 -66 129 -98 395 -826 65 -660 65 -856 799 -430 131 -100 65 -234 3215 -98 97 -296 131 -132 163 -132 131 -332 99 -232 199 -696 131 -2388 429 -68 265 -332 97 -166 133 -234 2981 -132 9057 -2458 97 -332 2761 -132 401 -166 65 -300 133 -862 97 -1424 231 -230 199 -134 231 -66 233 -100 629 -98 23581 -2350 65 -266 65 -666 99 -98 165 -362 231 -298 99 -196 129 -490 65 -658 131 -1226 365 -300 595 -134 893 -66 533 -66 467 -68 15221 -266 65 -496 97 -660 65 -1482 99 -66 133 -332 131 -166 99 -232 165 -100 165 -400 67 -166 199 -132 133 -198 99 -166 199 -334 231 -658 131 -624 165 -362 97 -132 259 -562 365 -200 131 -198 3681 -66 433 -3846 65 -164 65 -862 929 -66 65 -266 65 -166 165 -100 131 -1924 97 -864 295 -132 401 -394 165 -366 97 -132 99 -3890 163 -166 297 -166 401 -98 97 -264 263 -230 129 -588 529 -890 63 -132 65 -132 97 -596 99 -98 165 -66 131 -98 295 -168 495 -132 2583 -66 13671 -1446 133 -1096 97 -996 99 -626 131 -864 67 -132 131 -332 263 -332 329 -1988 99 -232 199 -66 65 -296 65 -98 295 -100 23289 -3754 197 -490 97 -426 229 -264 99 -130 163 -360 97 -1522 133 -498 131 -302 131 -430 131 -134 65 -66 231 -334 99 -134 329 -230 131 -66 13305 -358 199 -66 131 -398 97 -168 165 -164 133 -632 165 -798 731 -100 921 -230 659 -130 259 -364 163 -166 63 -100 329 -632 797 -100 131 -98 495 -100 197 -68 165 -300 165 -100 567 -6086 65 -1454 195 -66 97 -428 163 -232 97 -230 97 -362 227 -196 555 -662 97 -98 65 -100 229 -100 131 -200 463 -98 761 -538 67 -730 97 -1346 65 -262 99 -334 165 -66 65 -100 131 -336 97 -298 131 -498 65 -534 65 -762 231 -100 197 -232 425 -200 65 -66 295 -264 12929 -626 65 -200 165 -134 65 -366 233 -394 99 -332 199 -296 163 -662 67 -928 99 -432 165 -334 365 -198 329 -98 365 -98 733 -100 8481 -8762 163 -230 97 -132 65 -296 259 -98 65 -200 131 -798 199 -132 133 -266 363 -66 197 -134 97 -166 65 -264 163 -98 6891 -6060 199 -1226 67 -830 131 -362 65 -100 99 -132 131 -398 401 -796 165 -330 -RAW_Data: 63 -166 101 -234 67 -762 165 -132 97 -100 265 -166 331 -196 97 -100 12897 -2058 265 -462 99 -198 429 -100 131 -332 197 -366 131 -168 263 -332 99 -598 263 -166 131 -530 99 -398 297 -200 631 -496 263 -2906 165 -2074 131 -130 161 -558 65 -398 65 -762 131 -166 333 -66 199 -100 65 -98 397 -66 497 -132 933 -100 365 -66 8055 -1026 65 -496 99 -1990 165 -862 131 -466 99 -496 197 -658 99 -1264 67 -166 65 -234 265 -202 431 -132 265 -66 529 -100 231 -100 2553 -98 1057 -7910 1351 -98 355 -364 97 -3986 131 -230 65 -1310 67 -230 131 -1092 395 -132 65 -532 229 -1294 197 -166 267 -132 397 -200 65 -100 4083 -100 15607 -2028 65 -830 99 -732 131 -134 65 -164 129 -66 197 -166 97 -330 165 -98 391 -394 131 -98 97 -230 97 -1454 359 -456 757 -100 327 -196 4565 diff --git a/assets/resources/subghz/Stores/CVS/CVS_Stomach.sub b/assets/resources/subghz/Stores/CVS/CVS_Stomach.sub deleted file mode 100644 index 4f145b3ce..000000000 --- a/assets/resources/subghz/Stores/CVS/CVS_Stomach.sub +++ /dev/null @@ -1,7 +0,0 @@ -Filetype: Flipper SubGhz RAW File -Version: 1 -Frequency: 433920000 -Preset: FuriHalSubGhzPresetOok270Async -Protocol: RAW -RAW_Data: 842919 -712 1593 -1462 843 -712 1611 -1450 893 -694 1593 -704 1631 -672 1585 -728 1627 -680 1615 -700 1615 -688 1595 -706 1621 -706 1585 -728 1627 -674 1611 -690 1647 -678 1617 -686 1651 -688 1585 -682 1643 -720 1565 -708 1635 -712 1573 -698 1639 -1450 837 -704 1625 -1466 815 -1472 861 -1472 837 -1454 875 -1468 807 -706 1643 -1438 831 -1470 871 -1472 809 -706 1639 -1470 833 -1460 857 -1472 807 -706 1641 -4550 817 -728 1601 -1470 839 -698 1615 -1456 889 -704 1593 -678 1647 -708 1581 -690 1643 -702 1577 -696 1657 -690 1605 -672 1657 -672 1593 -712 1639 -698 1583 -696 1649 -686 1593 -724 1619 -714 1563 -706 1627 -706 1597 -716 1631 -684 1599 -704 1631 -1462 825 -700 1625 -1468 827 -1464 867 -1472 805 -1466 889 -1462 831 -706 1627 -1470 795 -1494 861 -1472 809 -708 1641 -1470 801 -1460 889 -1470 837 -672 1621 -4574 845 -684 1609 -1466 843 -706 1609 -1476 873 -698 1603 -706 1635 -672 1619 -696 1619 -700 1591 -716 1621 -708 1583 -704 1629 -704 1597 -708 1617 -708 1593 -684 1641 -716 1579 -708 1641 -700 1597 -672 1633 -706 1583 -696 1651 -706 1591 -688 1635 -1480 837 -672 1627 -1466 849 -1440 875 -1458 851 -1434 875 -1468 845 -680 1653 -1450 845 -1450 871 -1444 843 -710 1641 -1440 815 -1478 875 -1466 831 -678 1625 -4568 835 -698 1603 -1464 865 -674 1637 -1472 883 -664 1611 -704 1635 -676 1607 -686 1639 -686 1615 -704 1627 -704 1587 -698 1621 -706 1597 -686 1641 -716 1579 -708 1613 -696 1601 -708 1637 -676 1619 -686 1649 -688 1599 -684 1639 -682 1627 -672 1657 -1462 831 -678 1649 -1436 867 -1426 887 -1470 807 -1468 893 -1440 833 -710 1613 -1478 835 -1432 891 -1460 827 -700 1619 -1462 847 -1450 903 -1436 845 -678 1635 -4540 841 -724 1589 -1470 845 -708 1607 -1478 889 -678 1615 -674 1647 -702 1593 -672 1661 -676 1607 -686 1627 -710 1611 -674 1633 -704 1603 -676 1651 -708 1587 -686 1661 -666 1607 -704 1631 -704 1603 -678 1637 -698 1583 -692 1641 -700 1589 -716 1643 -1438 839 -690 1641 -1432 841 -1468 879 -1460 821 -1460 863 -1476 825 -708 1613 -1476 831 -1458 859 -1468 847 -680 1615 -1478 837 -1448 869 -1478 809 -708 1639 -4518 851 -718 1597 -1466 843 -708 1623 -1438 903 -692 1597 -666 1659 -672 1623 -670 1657 -674 1595 -694 1649 -676 1621 -690 1631 -692 1611 -674 1665 -672 1617 -664 1645 -714 1611 -676 1643 -664 1631 -674 1639 -708 1577 -692 1647 -708 1577 -692 1649 -1468 817 -684 1647 -1444 867 -1450 867 -1440 867 -1436 893 -1438 855 -658 1649 -1456 847 -1428 907 -1432 843 -712 1643 -1442 837 -1448 869 -1478 841 -672 1621 -4540 847 -720 1595 -1464 843 -708 1613 -1456 885 -704 1589 -698 1653 -672 1615 -662 1649 -708 1579 -692 -RAW_Data: 1645 -698 1625 -680 1641 -680 1591 -710 1613 -692 1627 -668 1655 -672 1625 -678 1647 -676 1609 -688 1647 -676 1621 -686 1645 -690 1613 -668 1649 -1442 843 -710 1647 -1444 837 -1448 873 -1440 843 -1472 859 -1450 867 -670 1645 -1438 845 -1472 869 -1448 831 -690 1665 -1434 849 -1442 869 -1454 857 -664 1669 -4514 867 -688 1605 -1468 847 -678 1651 -1440 879 -702 1609 -690 1619 -712 1581 -708 1627 -702 1591 -696 1649 -668 1627 -678 1645 -678 1621 -658 1661 -680 1615 -674 1661 -670 1625 -678 1647 -678 1617 -666 1651 -682 1627 -672 1661 -674 1611 -690 1649 -1450 825 -676 1663 -1426 863 -1428 889 -1436 841 -1448 911 -1426 851 -696 1619 -1468 855 -1440 873 -1456 841 -672 1663 -1436 839 -1454 883 -1434 857 -690 1647 -4522 845 -678 1627 -1464 845 -706 1613 -1460 887 -694 1587 -686 1633 -692 1607 -690 1649 -678 1617 -674 1643 -682 1627 -672 1651 -668 1633 -680 1633 -698 1623 -650 1677 -650 1609 -690 1667 -672 1603 -676 1647 -678 1647 -674 1647 -662 1629 -672 1651 -1460 831 -676 1641 -1456 855 -1438 875 -1458 845 -1456 869 -1444 857 -674 1643 -1438 863 -1430 921 -1436 827 -686 1633 -1452 845 -1442 901 -1436 843 -712 1633 -4528 855 -666 1631 -1466 849 -680 1621 -1472 875 -684 1635 -678 1647 -680 1611 -658 1641 -686 1631 -688 1641 -678 1613 -692 1639 -688 1597 -690 1657 -658 1601 -686 1661 -672 1629 -672 1651 -668 1617 -696 1653 -672 1627 -648 1677 -680 1615 -658 1655 -1444 835 -704 1631 -1436 857 -1450 895 -1418 871 -1432 877 -1468 851 -680 1629 -1434 863 -1432 909 -1434 845 -678 1653 -1450 845 -1444 865 -1476 831 -670 1625 -320970 63 -194 97 -1404 99 -1136 331 -132 499 -934 809 -924 395 -390 97 -916 299 -102 533 -100 303 -268 1223 -730 1043 \ No newline at end of file diff --git a/assets/resources/subghz/Stores/CVS/Cashier_to_the_Front_of_the_Store.sub b/assets/resources/subghz/Stores/CVS/Cashier_to_the_Front_of_the_Store.sub new file mode 100644 index 000000000..33f270c28 --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Cashier_to_the_Front_of_the_Store.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 800 -748 1556 -1516 784 -748 1552 -1520 824 -748 1536 -748 1576 -744 1544 -744 1580 -748 1536 -748 1580 -740 1544 -748 1576 -748 1540 -748 1580 -744 1544 -740 1580 -748 1540 -748 1580 -744 1540 -744 1584 -744 1540 -748 1580 -740 1544 -748 1576 -1508 780 -1512 816 -1508 780 -748 1572 -1508 776 -1512 820 -1508 776 -748 1580 -1508 780 -740 1584 -1508 776 -744 1580 -1508 780 -744 1580 -1508 780 -744 1572 -4592 788 -748 1552 -1520 784 -752 1556 -1516 824 -744 1544 -748 1576 -748 1540 -748 1580 -744 1540 -748 1580 -748 1540 -740 1588 -744 1540 -744 1580 -748 1544 -744 1584 -740 1544 -748 1576 -748 1544 -744 1580 -744 1544 -744 1584 -744 1544 -744 1580 -1508 780 -1508 824 -1504 780 -744 1580 -1504 784 -1504 824 -1504 784 -740 1584 -1508 780 -740 1584 -1508 780 -744 1584 -1504 784 -744 1580 -1508 780 -744 1576 -4592 788 -752 1552 -1516 788 -752 1556 -1520 824 -744 1544 -744 1584 -748 1540 -744 1580 -748 1544 -740 1584 -744 1544 -744 1580 -748 1540 -744 1580 -744 1544 -744 1584 -744 1540 -748 1580 -748 1540 -748 1580 -744 1544 -740 1584 -748 1540 -748 1580 -1508 776 -1508 824 -1508 780 -744 1576 -1508 780 -1508 820 -1508 780 -744 1584 -1508 780 -740 1584 -1508 780 -744 1580 -1508 780 -744 1584 -1508 776 -748 1576 -4588 788 -748 1556 -1520 784 -752 1552 -1520 824 -748 1540 -744 1584 -744 1544 -744 1584 -744 1540 -748 1584 -748 1540 -744 1584 -744 1548 -740 1584 -748 1540 -748 1580 -748 1544 -744 1584 -740 1548 -740 1584 -748 1540 -748 1584 -740 1548 -744 1580 -1508 780 -1508 824 -1508 780 -748 1576 -1508 780 -1504 828 -1508 780 -744 1584 -1508 780 -744 1580 -1512 776 -748 1580 -1508 780 -748 1584 -1508 780 -740 1576 -4592 788 -748 1556 -1520 784 -752 1556 -1520 828 -744 1544 -740 1584 -748 1544 -744 1584 -744 1544 -744 1584 -740 1548 -748 1576 -748 1544 -748 1580 -744 1544 -744 1584 -744 1544 -748 1576 -748 1544 -744 1584 -744 1544 -748 1576 -748 1540 -748 1580 -1512 776 -1512 820 -1508 780 -748 1572 -1512 776 -1512 820 -1512 776 -752 1576 -1516 776 -744 1584 -1512 776 -748 1580 -1512 776 -748 1576 -1516 776 -748 1572 -4596 784 -756 1548 -1524 780 -756 1552 -1524 820 -756 1536 -748 1576 -752 1536 -752 1572 -756 1536 -752 1576 -748 1540 -752 1576 -748 1540 -756 1572 -752 1536 -752 1576 -752 1536 -756 1572 -756 1532 -752 1576 -752 1536 -752 1576 -752 1536 -752 1576 -1512 776 -1512 816 -1512 776 -752 1568 -1516 776 -1512 816 -1516 776 -748 1580 -1516 772 -748 1576 -1516 772 -752 1576 -1512 776 -752 1576 -1512 776 -752 1568 -4596 780 -756 1548 -1528 776 -760 1548 -1524 +RAW_Data: 820 -748 1540 -748 1576 -752 1540 -748 1576 -752 1540 -748 1580 -748 1540 -748 1576 -752 1536 -756 1572 -752 1536 -752 1576 -752 1536 -748 1576 -752 1540 -748 1576 -756 1536 -748 1576 -756 1532 -756 1572 -1516 772 -1516 816 -1512 776 -752 1568 -1516 772 -1512 820 -1512 776 -752 1576 -1512 776 -748 1576 -1516 772 -752 1576 -1512 776 -752 1576 -1516 772 -748 1572 -4596 784 -756 1552 -1520 780 -760 1552 -1520 824 -748 1540 -748 1580 -748 1540 -748 1580 -748 1540 -748 1580 -748 1540 -748 1580 -748 1540 -748 1576 -748 1540 -748 1580 -748 1544 -744 1584 -748 1536 -752 1576 -748 1540 -744 1584 -744 1540 -748 1580 -1508 776 -1512 820 -1512 776 -752 1568 -1508 780 -1508 824 -1512 776 -748 1580 -1508 776 -748 1576 -1508 784 -744 1580 -1508 780 -748 1576 -1512 776 -752 1572 -4588 788 -752 1556 -1516 788 -752 1552 -1520 824 -748 1540 -744 1584 -744 1544 -744 1580 -748 1540 -748 1580 -748 1540 -748 1580 -748 1544 -744 1580 -744 1544 -748 1576 -748 1544 -744 1580 -744 1544 -748 1580 -748 1540 -744 1584 -744 1540 -748 1580 -1508 780 -1508 820 -1512 776 -744 1576 -1508 780 -1512 824 -1504 784 -740 1588 -1508 780 -740 1584 -1508 780 -748 1580 -1508 776 -748 1584 -1508 776 -748 1576 -4596 788 -752 1552 -1520 788 -748 1556 -1524 820 -748 1540 -748 1580 -748 1540 -748 1580 -748 1544 -740 1584 -748 1540 -748 1580 -744 1544 -744 1584 -744 1544 -748 1580 -744 1544 -748 1580 -744 1544 -744 1580 -748 1544 -744 1580 -744 1544 -748 1580 -1504 784 -1508 824 -1504 784 -740 1580 -1508 780 -1504 828 -1504 780 -748 1584 -1508 780 -740 1584 -1508 780 -744 1584 -1504 784 -740 1588 -1504 780 -744 1556 -15884 diff --git a/assets/resources/subghz/Stores/CVS/Clinic_1_Medical_Alert_to_the.sub b/assets/resources/subghz/Stores/CVS/Clinic_1_Medical_Alert_to_the.sub new file mode 100644 index 000000000..48d190207 --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Clinic_1_Medical_Alert_to_the.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 804 -748 1556 -1512 788 -748 1556 -1512 832 -736 1552 -740 1584 -736 1548 -740 1588 -740 1544 -740 1588 -744 1544 -736 1588 -744 1548 -740 1584 -736 1552 -740 1584 -744 1544 -740 1588 -740 1544 -740 1588 -744 1544 -740 1584 -740 1552 -736 1584 -1504 784 -1508 816 -1504 784 -1504 820 -1504 784 -1508 816 -1504 788 -1504 824 -1504 784 -740 1584 -1508 780 -740 1584 -1508 780 -744 1576 -1500 788 -1504 820 -4588 788 -748 1560 -1512 788 -748 1560 -1512 828 -740 1552 -740 1584 -740 1552 -740 1584 -740 1548 -744 1588 -736 1548 -736 1592 -744 1544 -740 1588 -740 1548 -740 1584 -740 1552 -740 1584 -740 1552 -740 1584 -740 1552 -740 1584 -740 1548 -744 1584 -1500 788 -1504 820 -1500 788 -1504 820 -1504 788 -1504 820 -1500 788 -1504 824 -1504 784 -736 1592 -1504 780 -740 1588 -1504 784 -740 1580 -1504 784 -1504 820 -4588 788 -748 1556 -1516 788 -748 1560 -1516 824 -740 1552 -740 1584 -740 1548 -744 1584 -740 1548 -736 1592 -740 1544 -740 1588 -736 1548 -740 1588 -740 1548 -744 1584 -740 1548 -740 1584 -740 1548 -744 1588 -740 1544 -740 1588 -744 1544 -740 1584 -1508 784 -1500 824 -1504 784 -1500 824 -1504 784 -1504 824 -1500 784 -1504 828 -1504 784 -736 1588 -1504 784 -744 1584 -1504 784 -744 1580 -1504 784 -1504 820 -4588 788 -748 1560 -1512 792 -748 1560 -1512 832 -736 1556 -736 1588 -736 1556 -740 1584 -740 1548 -740 1588 -740 1544 -748 1584 -740 1548 -736 1592 -740 1548 -740 1588 -740 1548 -740 1588 -740 1548 -740 1588 -740 1548 -744 1584 -740 1552 -740 1584 -1500 788 -1504 820 -1504 784 -1504 820 -1504 788 -1500 824 -1504 784 -1504 828 -1508 780 -740 1588 -1504 784 -740 1588 -1508 780 -736 1584 -1508 784 -1500 820 -4592 788 -744 1560 -1516 788 -748 1556 -1516 832 -740 1548 -736 1588 -744 1548 -740 1584 -740 1548 -744 1584 -740 1552 -736 1588 -744 1544 -740 1584 -740 1548 -744 1584 -740 1548 -736 1588 -744 1544 -740 1588 -736 1552 -740 1588 -740 1544 -744 1584 -1504 784 -1504 820 -1504 788 -1500 824 -1504 780 -1504 824 -1500 788 -1500 832 -1504 780 -740 1588 -1504 784 -740 1588 -1504 784 -740 1584 -1504 780 -1504 820 -4592 784 -752 1556 -1516 792 -744 1560 -1516 824 -744 1552 -736 1588 -744 1544 -744 1584 -744 1544 -740 1588 -740 1548 -740 1588 -740 1548 -744 1584 -740 1548 -740 1592 -740 1548 -736 1592 -740 1548 -740 1588 -740 1548 -740 1588 -740 1548 -740 1588 -1508 780 -1508 820 -1504 780 -1508 824 -1504 784 -1508 820 -1504 784 -1504 828 -1504 780 -748 1584 -1504 784 -744 1584 -1500 788 -740 1580 -1504 784 -1504 824 -4588 788 -744 1564 -1512 792 -748 1560 -1516 +RAW_Data: 828 -740 1544 -744 1588 -740 1548 -740 1588 -740 1548 -736 1588 -744 1548 -740 1584 -740 1548 -744 1584 -736 1552 -736 1588 -744 1548 -740 1588 -736 1548 -744 1584 -744 1544 -740 1588 -740 1548 -740 1584 -1504 784 -1508 824 -1504 780 -1504 824 -1500 784 -1504 824 -1500 784 -1504 828 -1508 780 -744 1584 -1504 788 -736 1588 -1500 788 -740 1580 -1508 780 -1504 824 -4588 788 -748 1560 -1516 788 -744 1564 -1512 832 -736 1548 -744 1588 -744 1548 -740 1584 -740 1544 -744 1588 -740 1548 -740 1584 -744 1544 -744 1588 -740 1544 -740 1588 -740 1552 -740 1584 -744 1544 -740 1588 -744 1544 -744 1584 -740 1548 -744 1584 -1508 784 -1504 824 -1504 784 -1504 824 -1504 784 -1504 824 -1504 784 -1508 828 -1504 784 -736 1588 -1504 784 -740 1588 -1504 788 -740 1580 -1504 788 -1500 824 -4588 792 -744 1560 -1516 788 -748 1564 -1512 832 -740 1548 -740 1588 -744 1544 -740 1588 -740 1548 -740 1588 -740 1552 -736 1588 -740 1552 -740 1584 -740 1548 -744 1588 -740 1548 -736 1588 -744 1548 -744 1584 -740 1548 -740 1592 -740 1548 -740 1584 -1508 784 -1504 820 -1508 780 -1504 824 -1504 784 -1504 824 -1500 784 -1504 828 -1504 784 -744 1588 -1500 784 -744 1584 -1504 784 -740 1584 -1500 788 -1504 824 -4588 788 -752 1552 -1524 788 -744 1560 -1520 828 -744 1544 -744 1584 -740 1548 -740 1588 -744 1548 -740 1584 -740 1552 -744 1584 -736 1552 -740 1588 -744 1548 -736 1588 -740 1548 -740 1584 -744 1548 -744 1584 -740 1548 -740 1592 -740 1548 -740 1584 -1504 788 -1504 824 -1500 788 -1504 820 -1508 784 -1504 824 -1500 784 -1504 828 -1504 784 -744 1584 -1504 784 -740 1588 -1508 784 -740 1580 -1504 784 -1504 804 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Cosmetics_Department.sub b/assets/resources/subghz/Stores/CVS/Cosmetics_Department.sub new file mode 100644 index 000000000..9c6a9ed24 --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Cosmetics_Department.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 800 -748 1560 -1512 792 -744 1560 -1512 828 -740 1548 -744 1580 -740 1552 -736 1588 -740 1548 -740 1580 -744 1548 -744 1584 -744 1544 -740 1584 -740 1544 -744 1588 -740 1548 -740 1588 -740 1548 -740 1588 -740 1548 -740 1588 -736 1552 -736 1592 -1500 788 -740 1584 -1504 784 -740 1580 -1500 788 -1504 828 -1504 784 -740 1584 -1500 788 -1496 832 -1504 784 -736 1592 -1500 784 -744 1584 -1504 784 -740 1576 -4592 788 -752 1556 -1516 788 -744 1560 -1516 832 -740 1552 -732 1588 -740 1548 -740 1588 -740 1548 -740 1588 -736 1552 -736 1592 -732 1552 -740 1588 -740 1544 -744 1584 -740 1548 -740 1588 -740 1548 -744 1584 -736 1548 -740 1592 -736 1548 -740 1592 -1504 788 -736 1588 -1504 784 -740 1576 -1512 780 -1504 828 -1504 784 -740 1584 -1504 784 -1500 828 -1504 784 -736 1592 -1496 788 -744 1584 -1504 784 -736 1584 -4584 792 -744 1568 -1512 792 -748 1556 -1516 828 -740 1548 -740 1588 -740 1544 -748 1584 -740 1548 -740 1584 -744 1548 -740 1584 -744 1544 -740 1592 -732 1556 -736 1588 -740 1548 -740 1588 -740 1548 -736 1588 -740 1548 -744 1580 -748 1544 -740 1592 -1500 784 -744 1588 -1500 788 -736 1584 -1500 784 -1504 832 -1500 784 -744 1576 -1512 780 -1504 832 -1504 784 -744 1584 -1504 784 -744 1584 -1500 784 -748 1576 -4592 788 -744 1564 -1516 792 -744 1556 -1516 832 -740 1552 -736 1584 -748 1544 -736 1592 -744 1540 -748 1588 -736 1552 -736 1588 -744 1544 -744 1588 -736 1552 -740 1580 -748 1544 -740 1588 -740 1548 -740 1588 -740 1548 -740 1588 -740 1548 -740 1588 -1504 784 -744 1584 -1508 780 -740 1580 -1504 788 -1496 832 -1500 788 -740 1580 -1504 784 -1504 828 -1500 780 -744 1592 -1496 788 -744 1584 -1504 784 -744 1576 -4592 788 -748 1560 -1512 796 -740 1560 -1516 832 -740 1552 -736 1584 -744 1552 -736 1588 -740 1544 -748 1584 -740 1548 -740 1584 -744 1548 -740 1584 -740 1548 -748 1580 -744 1548 -740 1584 -748 1544 -740 1588 -736 1552 -740 1580 -744 1552 -740 1588 -1504 784 -736 1592 -1500 788 -740 1580 -1504 788 -1496 832 -1504 784 -744 1576 -1508 784 -1500 828 -1508 780 -744 1584 -1508 784 -736 1588 -1508 784 -740 1580 -4592 788 -748 1556 -1520 792 -744 1560 -1512 832 -740 1548 -744 1584 -740 1552 -736 1584 -744 1548 -736 1592 -744 1544 -740 1588 -736 1552 -740 1584 -744 1548 -740 1584 -744 1548 -740 1584 -740 1552 -740 1580 -744 1552 -736 1588 -744 1548 -740 1588 -1504 784 -740 1588 -1504 784 -744 1580 -1504 784 -1504 832 -1500 784 -740 1584 -1504 784 -1500 832 -1500 784 -740 1592 -1504 780 -744 1584 -1508 780 -740 1580 -4588 788 -752 1556 -1516 788 -748 1556 -1516 +RAW_Data: 832 -740 1544 -744 1588 -736 1552 -740 1588 -744 1544 -744 1584 -740 1552 -736 1588 -744 1544 -740 1588 -744 1540 -744 1588 -744 1544 -740 1588 -740 1548 -744 1584 -740 1552 -736 1588 -744 1544 -740 1592 -1504 784 -740 1588 -1504 784 -740 1584 -1504 784 -1504 828 -1504 784 -740 1584 -1504 784 -1504 828 -1508 784 -740 1584 -1508 784 -736 1588 -1508 784 -740 1580 -4592 788 -748 1556 -1516 792 -748 1560 -1512 832 -740 1548 -740 1588 -740 1548 -744 1588 -740 1548 -740 1588 -736 1552 -740 1584 -744 1548 -740 1584 -744 1548 -736 1588 -748 1540 -744 1592 -740 1544 -744 1584 -744 1544 -744 1584 -740 1552 -740 1592 -1500 784 -744 1588 -1496 788 -744 1576 -1512 780 -1508 824 -1504 780 -748 1576 -1504 784 -1504 828 -1504 784 -740 1588 -1504 784 -740 1588 -1504 784 -740 1580 -4592 788 -748 1556 -1520 788 -748 1556 -1520 828 -744 1544 -740 1588 -744 1544 -744 1584 -740 1548 -740 1588 -744 1544 -740 1592 -740 1544 -740 1592 -740 1548 -740 1588 -740 1548 -744 1588 -740 1544 -748 1584 -744 1544 -744 1584 -740 1548 -744 1588 -1504 788 -740 1588 -1500 788 -736 1584 -1504 784 -1504 828 -1508 784 -744 1576 -1508 784 -1496 832 -1504 784 -744 1588 -1504 780 -744 1588 -1504 784 -740 1580 -4588 792 -748 1560 -1516 788 -748 1560 -1516 828 -744 1548 -736 1592 -740 1552 -740 1584 -744 1548 -744 1584 -740 1548 -744 1584 -744 1548 -740 1588 -740 1548 -740 1588 -740 1552 -740 1584 -744 1544 -748 1584 -740 1548 -744 1584 -744 1548 -740 1592 -1500 788 -740 1588 -1504 784 -744 1584 -1500 788 -1504 828 -1508 784 -744 1576 -1508 784 -1504 828 -1504 784 -740 1588 -1508 784 -740 1584 -1508 784 -740 1560 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Cough_Cold.sub b/assets/resources/subghz/Stores/CVS/Cough_Cold.sub new file mode 100644 index 000000000..4c57030e2 --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Cough_Cold.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 804 -740 1560 -1516 792 -748 1556 -1508 832 -740 1548 -740 1588 -732 1548 -744 1580 -744 1548 -736 1588 -736 1548 -736 1592 -740 1544 -740 1588 -744 1544 -740 1588 -736 1548 -740 1584 -740 1548 -740 1588 -736 1552 -732 1588 -740 1548 -744 1580 -1504 784 -1500 824 -1504 780 -1508 820 -1500 788 -1500 828 -1500 788 -736 1592 -1500 784 -740 1584 -1500 792 -736 1584 -1508 780 -744 1580 -1504 784 -740 1580 -4584 796 -744 1556 -1516 788 -748 1560 -1512 832 -736 1552 -736 1588 -740 1544 -744 1588 -736 1552 -736 1584 -740 1548 -744 1584 -744 1544 -740 1588 -736 1548 -736 1588 -740 1548 -744 1588 -740 1544 -740 1584 -740 1548 -736 1588 -744 1544 -740 1584 -1500 788 -1500 824 -1504 780 -1500 824 -1500 788 -1500 824 -1508 784 -744 1584 -1500 784 -740 1584 -1504 788 -740 1584 -1508 780 -740 1588 -1500 788 -740 1580 -4584 792 -752 1556 -1516 788 -744 1564 -1512 832 -736 1548 -748 1584 -740 1552 -732 1592 -740 1544 -744 1584 -740 1552 -740 1588 -740 1548 -740 1588 -740 1552 -732 1592 -736 1548 -744 1584 -740 1552 -736 1588 -740 1548 -744 1588 -740 1552 -736 1584 -1508 784 -1504 824 -1500 784 -1508 820 -1500 792 -1500 824 -1504 788 -740 1588 -1504 780 -744 1588 -1500 788 -736 1588 -1500 788 -744 1584 -1504 780 -744 1576 -4592 788 -744 1560 -1516 792 -744 1560 -1512 832 -744 1544 -744 1588 -736 1548 -736 1588 -740 1548 -744 1588 -740 1548 -736 1588 -736 1552 -744 1584 -740 1552 -736 1588 -736 1552 -740 1588 -740 1548 -740 1588 -736 1552 -740 1588 -744 1544 -744 1584 -1508 780 -1500 832 -1504 780 -1508 820 -1504 788 -1500 828 -1504 784 -740 1588 -1508 780 -740 1588 -1508 780 -740 1588 -1504 788 -740 1584 -1508 784 -744 1580 -4588 792 -748 1560 -1516 796 -740 1560 -1516 832 -744 1544 -744 1584 -736 1552 -740 1588 -740 1552 -740 1588 -736 1552 -740 1588 -744 1548 -740 1588 -736 1552 -740 1584 -740 1548 -740 1588 -740 1548 -740 1584 -740 1552 -740 1588 -736 1548 -744 1580 -1504 784 -1500 828 -1504 780 -1508 820 -1504 784 -1496 836 -1500 784 -740 1588 -1508 784 -740 1584 -1500 788 -736 1588 -1508 780 -740 1592 -1496 788 -740 1580 -4588 788 -748 1560 -1512 792 -748 1556 -1516 828 -740 1552 -740 1588 -740 1552 -732 1588 -740 1548 -740 1588 -744 1544 -736 1592 -740 1548 -740 1588 -736 1552 -736 1592 -736 1552 -736 1592 -740 1548 -736 1592 -740 1548 -740 1584 -744 1548 -744 1580 -1500 792 -1500 820 -1504 784 -1508 824 -1504 780 -1504 832 -1504 780 -744 1584 -1504 784 -744 1584 -1504 784 -744 1584 -1504 784 -744 1584 -1504 784 -740 1580 -4588 792 -748 1560 -1516 788 -748 1560 -1512 +RAW_Data: 832 -736 1552 -744 1588 -732 1552 -744 1588 -740 1548 -736 1588 -740 1556 -740 1584 -744 1544 -740 1584 -740 1548 -744 1584 -740 1552 -736 1588 -736 1552 -740 1584 -740 1552 -744 1584 -740 1548 -744 1584 -1500 784 -1500 828 -1500 788 -1504 820 -1504 788 -1500 824 -1504 784 -740 1588 -1508 780 -740 1588 -1500 788 -740 1584 -1504 784 -740 1588 -1500 788 -740 1584 -4588 788 -744 1560 -1516 792 -748 1556 -1516 832 -744 1544 -744 1584 -740 1548 -736 1592 -736 1552 -740 1592 -740 1548 -736 1588 -740 1552 -740 1584 -748 1544 -744 1588 -736 1544 -744 1584 -740 1556 -740 1584 -744 1544 -740 1592 -736 1552 -740 1584 -1504 784 -1504 824 -1504 780 -1504 824 -1508 780 -1508 824 -1504 784 -740 1588 -1504 784 -744 1580 -1504 788 -740 1584 -1500 788 -740 1588 -1504 784 -736 1584 -4588 792 -748 1556 -1512 796 -744 1560 -1512 836 -736 1548 -744 1584 -744 1544 -740 1588 -744 1544 -744 1584 -740 1548 -740 1592 -736 1552 -740 1588 -732 1556 -732 1592 -740 1548 -740 1588 -740 1552 -740 1584 -744 1552 -740 1584 -736 1556 -736 1588 -1504 780 -1508 820 -1504 792 -1496 828 -1500 788 -1500 832 -1504 780 -740 1592 -1504 784 -736 1592 -1500 788 -736 1592 -1500 788 -740 1588 -1500 788 -740 1580 -4584 796 -744 1560 -1516 788 -752 1556 -1516 832 -740 1548 -744 1584 -740 1552 -740 1588 -740 1552 -736 1588 -740 1548 -740 1588 -740 1548 -744 1584 -740 1552 -740 1588 -744 1544 -744 1584 -744 1548 -740 1588 -740 1548 -736 1596 -736 1548 -740 1592 -1504 784 -1500 828 -1500 788 -1500 824 -1500 788 -1508 824 -1500 792 -740 1584 -1504 784 -740 1588 -1508 784 -740 1584 -1504 788 -740 1588 -1504 788 -740 1560 -15964 diff --git a/assets/resources/subghz/Stores/CVS/Customer_Service_Scan_All_Aisles.sub b/assets/resources/subghz/Stores/CVS/Customer_Service_Scan_All_Aisles.sub new file mode 100644 index 000000000..5f0ead56c --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Customer_Service_Scan_All_Aisles.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 796 -752 1552 -1520 780 -752 1552 -1520 824 -748 1540 -748 1576 -748 1536 -748 1580 -748 1540 -748 1576 -748 1536 -748 1580 -744 1540 -748 1580 -748 1536 -752 1576 -748 1536 -748 1580 -748 1540 -748 1576 -748 1540 -748 1580 -748 1536 -752 1580 -1504 780 -748 1572 -1512 772 -1516 812 -1508 780 -1508 824 -1508 780 -744 1580 -1512 772 -748 1580 -1508 776 -752 1576 -1508 776 -748 1576 -1512 780 -740 1576 -4592 780 -756 1548 -1520 784 -752 1556 -1520 824 -748 1536 -748 1580 -744 1544 -744 1580 -748 1540 -748 1576 -752 1536 -748 1580 -748 1540 -748 1576 -748 1544 -748 1576 -752 1540 -748 1576 -752 1540 -744 1584 -748 1540 -744 1584 -748 1540 -744 1588 -1508 780 -748 1572 -1512 776 -1508 820 -1508 780 -1508 820 -1512 776 -752 1576 -1512 776 -748 1580 -1512 776 -748 1580 -1508 780 -748 1576 -1512 780 -748 1568 -4596 780 -756 1552 -1524 780 -756 1548 -1524 824 -748 1536 -752 1576 -752 1536 -748 1580 -748 1540 -748 1576 -748 1540 -752 1572 -752 1536 -752 1576 -748 1540 -748 1576 -752 1536 -756 1572 -748 1540 -752 1572 -752 1540 -752 1576 -752 1536 -748 1580 -1512 776 -752 1568 -1512 776 -1512 812 -1512 776 -1512 820 -1508 780 -748 1576 -1512 776 -748 1580 -1512 776 -748 1580 -1512 776 -748 1580 -1512 776 -748 1572 -4596 780 -756 1552 -1520 784 -752 1552 -1524 820 -752 1540 -752 1572 -752 1536 -748 1580 -748 1540 -748 1576 -748 1540 -748 1580 -748 1540 -748 1576 -748 1540 -748 1576 -748 1540 -752 1576 -748 1540 -748 1580 -744 1544 -748 1580 -748 1540 -744 1588 -1508 776 -748 1576 -1508 780 -1512 812 -1512 776 -1512 820 -1512 776 -748 1576 -1516 772 -748 1580 -1508 776 -752 1576 -1512 776 -748 1576 -1516 772 -748 1576 -4592 780 -756 1548 -1524 780 -760 1548 -1524 824 -748 1540 -752 1576 -748 1540 -748 1576 -752 1536 -756 1572 -752 1536 -752 1572 -752 1536 -752 1576 -748 1536 -752 1576 -752 1536 -748 1576 -752 1536 -748 1576 -752 1536 -752 1572 -752 1536 -756 1572 -1512 772 -752 1568 -1516 772 -1512 812 -1512 772 -1516 816 -1512 776 -748 1576 -1512 776 -748 1576 -1516 772 -752 1572 -1516 772 -752 1576 -1512 772 -752 1568 -4592 784 -756 1544 -1528 776 -760 1548 -1524 816 -756 1532 -752 1572 -756 1536 -748 1572 -752 1540 -748 1576 -752 1536 -752 1576 -756 1532 -752 1572 -756 1532 -752 1576 -752 1532 -752 1572 -756 1536 -756 1568 -752 1536 -752 1576 -756 1532 -752 1576 -1520 768 -760 1564 -1512 772 -1516 812 -1516 772 -1516 812 -1516 772 -756 1568 -1520 768 -752 1572 -1520 768 -756 1572 -1516 768 -756 1572 -1520 768 -756 1564 -4600 772 -764 1544 -1528 776 -760 1544 -1528 +RAW_Data: 816 -752 1536 -752 1572 -752 1532 -756 1572 -756 1532 -752 1572 -756 1532 -756 1572 -756 1532 -756 1568 -752 1536 -752 1572 -752 1536 -752 1572 -756 1532 -756 1568 -756 1532 -756 1568 -756 1532 -756 1576 -1520 764 -756 1564 -1520 768 -1520 804 -1520 768 -1516 816 -1516 768 -756 1572 -1516 768 -756 1572 -1516 768 -756 1572 -1516 768 -760 1568 -1516 768 -756 1564 -4600 772 -764 1540 -1532 772 -764 1540 -1532 816 -756 1528 -760 1568 -760 1528 -756 1572 -752 1532 -756 1572 -756 1528 -756 1572 -756 1532 -760 1564 -760 1528 -756 1572 -756 1532 -756 1568 -756 1528 -760 1568 -756 1528 -760 1568 -756 1532 -756 1572 -1516 768 -756 1564 -1516 768 -1516 808 -1520 768 -1516 812 -1516 768 -756 1568 -1516 768 -760 1564 -1520 768 -756 1568 -1520 768 -756 1568 -1516 772 -756 1564 -4600 772 -764 1540 -1532 772 -764 1540 -1532 812 -756 1532 -756 1568 -756 1532 -756 1568 -756 1532 -756 1568 -756 1532 -756 1572 -752 1532 -756 1568 -760 1528 -756 1568 -756 1532 -756 1568 -756 1528 -756 1568 -760 1528 -756 1572 -756 1528 -756 1572 -1524 764 -756 1564 -1520 768 -1516 808 -1520 764 -1520 812 -1516 768 -756 1572 -1516 768 -756 1568 -1520 768 -756 1568 -1520 768 -760 1564 -1520 768 -760 1560 -4600 772 -768 1536 -1532 772 -764 1540 -1532 812 -756 1532 -756 1568 -760 1528 -756 1568 -760 1528 -760 1564 -756 1532 -756 1568 -760 1528 -760 1568 -756 1532 -756 1568 -760 1528 -756 1568 -760 1528 -756 1568 -756 1532 -756 1568 -760 1528 -760 1568 -1520 764 -760 1560 -1524 764 -1520 804 -1520 768 -1520 808 -1520 768 -760 1564 -1520 768 -756 1568 -1520 768 -760 1568 -1520 764 -760 1568 -1516 768 -760 1540 -15884 diff --git a/assets/resources/subghz/Stores/CVS/Dental_Care.sub b/assets/resources/subghz/Stores/CVS/Dental_Care.sub new file mode 100644 index 000000000..02cb7046e --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Dental_Care.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 800 -748 1556 -1512 796 -744 1560 -1512 832 -736 1548 -744 1584 -736 1548 -740 1588 -740 1548 -740 1588 -736 1548 -740 1588 -740 1548 -740 1584 -744 1544 -736 1592 -740 1544 -740 1588 -744 1544 -740 1588 -740 1544 -740 1588 -740 1544 -744 1588 -1504 788 -736 1584 -1508 780 -736 1592 -1500 784 -740 1588 -1504 784 -744 1580 -1504 788 -736 1580 -1504 788 -1500 828 -1500 792 -736 1588 -1508 780 -736 1584 -4588 788 -752 1556 -1516 788 -748 1560 -1512 832 -740 1548 -736 1592 -740 1548 -740 1584 -740 1552 -740 1584 -740 1552 -740 1584 -740 1548 -740 1588 -744 1544 -744 1588 -736 1548 -740 1592 -740 1548 -740 1588 -736 1556 -740 1584 -740 1552 -736 1592 -1500 788 -736 1588 -1504 784 -744 1588 -1500 788 -740 1584 -1500 788 -740 1588 -1504 780 -736 1584 -1508 780 -1504 832 -1500 792 -736 1588 -1500 788 -736 1584 -4592 788 -752 1556 -1516 792 -744 1560 -1512 832 -744 1548 -740 1584 -740 1552 -740 1588 -736 1552 -740 1588 -740 1548 -740 1588 -744 1544 -740 1588 -740 1548 -740 1588 -740 1552 -740 1584 -740 1552 -744 1580 -740 1552 -740 1588 -740 1548 -740 1596 -1500 784 -744 1584 -1500 792 -740 1584 -1508 780 -740 1592 -1500 784 -740 1588 -1500 788 -744 1580 -1500 788 -1504 832 -1500 784 -740 1588 -1500 792 -740 1580 -4588 792 -748 1564 -1512 788 -748 1564 -1512 832 -744 1544 -740 1592 -740 1548 -744 1580 -740 1552 -744 1584 -740 1552 -740 1584 -740 1548 -740 1592 -740 1544 -744 1588 -740 1552 -740 1584 -744 1548 -740 1584 -740 1552 -744 1584 -740 1548 -740 1596 -1500 784 -744 1584 -1504 788 -744 1584 -1504 784 -740 1592 -1500 784 -740 1588 -1500 788 -744 1576 -1504 788 -1504 828 -1500 788 -740 1588 -1504 784 -744 1580 -4584 792 -744 1560 -1516 792 -748 1556 -1512 836 -740 1548 -744 1584 -740 1552 -740 1584 -744 1544 -740 1592 -740 1548 -740 1588 -740 1548 -744 1584 -740 1548 -740 1588 -740 1552 -740 1584 -736 1556 -740 1584 -740 1548 -740 1588 -740 1548 -744 1588 -1504 784 -740 1588 -1508 780 -740 1588 -1500 788 -744 1584 -1508 784 -736 1592 -1504 784 -740 1584 -1504 784 -1504 828 -1504 784 -740 1588 -1504 784 -740 1580 -4592 788 -748 1560 -1516 788 -744 1560 -1516 832 -740 1548 -740 1588 -740 1548 -744 1580 -740 1552 -744 1584 -740 1552 -736 1588 -744 1544 -744 1584 -744 1544 -744 1588 -740 1544 -740 1592 -740 1548 -740 1588 -740 1548 -740 1588 -740 1552 -740 1588 -1504 784 -740 1588 -1508 780 -740 1588 -1504 788 -740 1588 -1500 788 -740 1588 -1508 780 -736 1588 -1504 780 -1504 828 -1504 788 -744 1576 -1512 780 -744 1580 -4588 792 -748 1560 -1512 792 -744 1564 -1516 +RAW_Data: 828 -744 1544 -740 1592 -736 1548 -740 1588 -740 1548 -740 1588 -740 1552 -744 1580 -740 1556 -736 1588 -740 1552 -740 1588 -740 1544 -740 1592 -744 1544 -740 1588 -740 1556 -740 1584 -740 1552 -740 1592 -1504 784 -740 1588 -1504 784 -744 1584 -1504 784 -744 1580 -1512 780 -740 1588 -1504 784 -740 1584 -1504 784 -1508 828 -1504 784 -736 1592 -1504 788 -740 1580 -4592 788 -744 1564 -1512 792 -744 1564 -1512 832 -736 1556 -736 1588 -744 1548 -744 1584 -740 1548 -740 1592 -740 1544 -744 1584 -744 1548 -744 1584 -740 1548 -744 1588 -744 1544 -740 1592 -740 1548 -740 1588 -740 1548 -744 1584 -740 1552 -740 1596 -1500 784 -740 1588 -1504 788 -736 1588 -1504 788 -736 1588 -1508 780 -740 1592 -1504 784 -744 1580 -1500 792 -1500 832 -1504 788 -736 1588 -1504 788 -740 1580 -4596 792 -744 1560 -1520 792 -744 1564 -1516 828 -744 1548 -740 1588 -744 1548 -744 1584 -740 1556 -736 1588 -744 1548 -740 1588 -740 1552 -744 1584 -740 1552 -744 1584 -740 1548 -744 1588 -740 1548 -740 1592 -736 1556 -740 1588 -736 1556 -740 1592 -1504 784 -740 1588 -1504 788 -740 1588 -1504 784 -740 1588 -1504 788 -744 1580 -1512 780 -740 1584 -1504 788 -1504 828 -1508 780 -744 1588 -1504 784 -744 1580 -4588 792 -744 1564 -1516 788 -752 1560 -1516 832 -740 1544 -740 1592 -740 1552 -736 1588 -740 1552 -744 1588 -744 1548 -740 1588 -740 1556 -740 1584 -740 1552 -740 1588 -748 1544 -744 1584 -748 1548 -740 1592 -736 1548 -744 1588 -740 1552 -744 1588 -1508 784 -744 1584 -1504 792 -736 1588 -1508 784 -740 1588 -1508 788 -740 1584 -1508 784 -740 1584 -1504 784 -1508 824 -1508 784 -736 1592 -1504 788 -740 1564 -15964 diff --git a/assets/resources/subghz/Stores/CVS/Deodorants.sub b/assets/resources/subghz/Stores/CVS/Deodorants.sub new file mode 100644 index 000000000..c74546e5b --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Deodorants.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 804 -744 1556 -1512 796 -748 1552 -1512 832 -740 1548 -736 1588 -740 1544 -740 1588 -740 1552 -736 1588 -740 1548 -740 1588 -740 1548 -740 1584 -744 1544 -744 1588 -736 1548 -740 1584 -740 1548 -740 1584 -740 1548 -744 1588 -740 1548 -740 1584 -1504 784 -1500 824 -1504 784 -1504 824 -1504 784 -1500 820 -1504 784 -1504 824 -1500 784 -1500 824 -1500 784 -1504 832 -1504 784 -740 1584 -1504 784 -740 1580 -4592 792 -740 1564 -1516 792 -744 1560 -1512 832 -744 1548 -736 1588 -740 1548 -740 1584 -744 1548 -744 1584 -740 1548 -740 1584 -744 1552 -736 1588 -740 1548 -740 1584 -740 1548 -736 1588 -744 1544 -744 1588 -740 1548 -740 1584 -744 1548 -740 1584 -1504 784 -1500 828 -1500 784 -1504 824 -1500 788 -1500 824 -1500 788 -1504 824 -1496 788 -1504 824 -1500 788 -1500 828 -1508 784 -740 1584 -1504 784 -740 1580 -4588 788 -752 1556 -1512 792 -748 1560 -1520 824 -744 1548 -736 1588 -744 1544 -740 1588 -740 1552 -740 1584 -744 1548 -732 1592 -740 1548 -740 1588 -740 1548 -744 1584 -740 1552 -740 1588 -740 1548 -740 1588 -740 1552 -736 1588 -736 1552 -740 1584 -1504 788 -1500 824 -1504 784 -1504 820 -1504 784 -1504 824 -1504 784 -1500 824 -1504 784 -1504 824 -1500 784 -1504 828 -1500 788 -740 1584 -1504 788 -736 1588 -4584 792 -744 1564 -1508 796 -744 1564 -1508 836 -740 1548 -740 1588 -736 1548 -740 1588 -740 1548 -740 1588 -740 1552 -740 1584 -744 1548 -736 1592 -736 1552 -740 1584 -740 1548 -740 1584 -740 1548 -744 1584 -740 1548 -744 1588 -740 1548 -744 1584 -1500 788 -1504 824 -1504 784 -1500 824 -1504 784 -1504 820 -1508 784 -1500 824 -1504 788 -1496 828 -1504 784 -1504 824 -1504 784 -740 1588 -1504 780 -744 1576 -4584 792 -748 1556 -1520 784 -744 1564 -1516 828 -740 1548 -740 1588 -736 1548 -736 1588 -740 1548 -740 1584 -744 1548 -744 1584 -740 1544 -740 1588 -736 1552 -736 1588 -740 1548 -740 1588 -744 1544 -744 1584 -744 1544 -740 1588 -736 1552 -736 1588 -1504 784 -1500 824 -1504 784 -1504 820 -1504 784 -1504 824 -1500 788 -1504 820 -1504 784 -1500 824 -1504 784 -1504 828 -1504 780 -740 1588 -1504 784 -736 1584 -4592 784 -748 1560 -1520 788 -744 1560 -1512 836 -736 1548 -744 1584 -740 1548 -740 1588 -740 1548 -736 1592 -736 1552 -736 1588 -744 1544 -740 1592 -740 1548 -740 1588 -744 1544 -744 1584 -744 1548 -740 1584 -740 1548 -740 1588 -736 1552 -740 1588 -1500 788 -1504 820 -1504 788 -1504 820 -1508 784 -1504 824 -1504 788 -1504 820 -1504 784 -1504 820 -1504 784 -1504 824 -1508 784 -740 1588 -1504 784 -736 1584 -4588 788 -752 1556 -1516 788 -748 1560 -1516 +RAW_Data: 824 -748 1544 -744 1584 -740 1548 -744 1584 -744 1548 -740 1588 -740 1548 -744 1584 -740 1548 -744 1580 -744 1548 -740 1584 -740 1548 -740 1588 -736 1552 -740 1584 -744 1548 -740 1584 -744 1548 -740 1580 -1508 780 -1504 824 -1500 784 -1508 820 -1504 784 -1504 820 -1504 784 -1500 824 -1504 784 -1508 820 -1504 784 -1504 828 -1504 780 -744 1584 -1504 784 -740 1584 -4592 788 -744 1560 -1520 784 -748 1564 -1512 832 -744 1544 -740 1588 -744 1544 -740 1588 -744 1548 -736 1588 -740 1548 -740 1584 -740 1548 -740 1588 -736 1552 -740 1584 -744 1548 -740 1588 -744 1544 -744 1584 -744 1552 -740 1584 -740 1548 -740 1584 -1500 788 -1500 828 -1500 784 -1504 820 -1504 784 -1504 820 -1508 784 -1504 824 -1504 784 -1500 824 -1508 780 -1508 824 -1504 784 -740 1584 -1508 780 -744 1580 -4592 784 -748 1560 -1516 788 -744 1560 -1512 832 -736 1552 -740 1584 -744 1544 -740 1588 -740 1552 -736 1588 -736 1552 -740 1588 -740 1548 -740 1588 -744 1544 -744 1584 -744 1544 -740 1588 -740 1552 -736 1588 -744 1548 -740 1584 -748 1548 -736 1588 -1500 788 -1500 824 -1504 784 -1508 820 -1504 784 -1500 828 -1500 780 -1508 820 -1504 784 -1504 816 -1512 780 -1504 828 -1500 788 -740 1588 -1500 784 -744 1580 -4580 796 -744 1564 -1516 784 -748 1560 -1516 832 -740 1548 -736 1592 -736 1548 -744 1584 -740 1548 -740 1588 -740 1548 -736 1592 -740 1548 -744 1580 -744 1548 -740 1588 -740 1548 -740 1588 -736 1552 -740 1584 -744 1544 -744 1584 -744 1544 -740 1584 -1508 780 -1508 820 -1504 784 -1500 828 -1500 784 -1504 824 -1504 784 -1504 824 -1504 784 -1504 824 -1504 784 -1508 824 -1504 784 -740 1588 -1504 784 -740 1560 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Diet_and_Nutrition_Department.sub b/assets/resources/subghz/Stores/CVS/Diet_and_Nutrition_Department.sub new file mode 100644 index 000000000..270a3909f --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Diet_and_Nutrition_Department.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 800 -748 1560 -1516 788 -744 1560 -1512 832 -740 1544 -740 1584 -740 1552 -736 1584 -744 1540 -744 1584 -740 1548 -740 1588 -736 1544 -744 1588 -740 1544 -740 1588 -740 1548 -740 1588 -736 1548 -740 1588 -744 1544 -740 1588 -740 1548 -744 1584 -1504 780 -1508 820 -1504 784 -1500 828 -1500 788 -740 1580 -1508 784 -1500 832 -1504 780 -744 1584 -1508 784 -736 1584 -1508 784 -736 1588 -1504 784 -736 1584 -4588 788 -752 1556 -1516 788 -752 1556 -1512 832 -740 1548 -740 1588 -744 1544 -740 1584 -744 1548 -744 1584 -740 1552 -740 1584 -744 1544 -748 1580 -744 1548 -740 1584 -744 1548 -740 1584 -748 1548 -736 1588 -744 1548 -736 1588 -740 1548 -740 1584 -1508 784 -1500 820 -1508 784 -1504 828 -1500 784 -744 1584 -1504 780 -1504 828 -1504 788 -740 1584 -1504 788 -736 1584 -1508 784 -740 1588 -1500 788 -740 1576 -4592 788 -752 1556 -1512 792 -752 1560 -1512 828 -744 1548 -740 1588 -744 1548 -740 1584 -740 1552 -740 1584 -744 1548 -740 1588 -744 1548 -736 1588 -740 1548 -744 1584 -744 1544 -744 1588 -740 1548 -744 1584 -736 1548 -748 1584 -740 1548 -744 1584 -1500 784 -1504 824 -1508 780 -1504 828 -1508 784 -740 1580 -1504 788 -1500 828 -1504 784 -744 1588 -1504 784 -744 1584 -1504 784 -744 1584 -1508 780 -744 1576 -4592 788 -748 1556 -1520 788 -744 1560 -1520 824 -744 1544 -744 1584 -740 1552 -744 1584 -740 1548 -744 1584 -740 1548 -744 1584 -740 1544 -748 1580 -740 1548 -744 1584 -740 1548 -744 1588 -740 1548 -744 1584 -736 1548 -744 1584 -740 1544 -748 1580 -1508 780 -1504 824 -1504 780 -1504 828 -1508 780 -744 1576 -1508 784 -1504 820 -1508 784 -740 1588 -1504 784 -744 1584 -1504 780 -744 1584 -1508 776 -748 1576 -4592 784 -752 1560 -1512 792 -748 1556 -1516 828 -744 1540 -744 1588 -740 1548 -744 1584 -736 1548 -744 1588 -740 1548 -736 1588 -740 1552 -736 1588 -740 1548 -740 1588 -740 1544 -744 1588 -740 1548 -736 1592 -740 1548 -740 1588 -736 1552 -744 1580 -1508 780 -1508 820 -1508 780 -1504 824 -1508 784 -740 1580 -1504 784 -1500 828 -1504 788 -740 1584 -1504 784 -740 1584 -1504 788 -740 1580 -1508 788 -736 1580 -4588 788 -748 1556 -1516 792 -744 1560 -1516 824 -748 1544 -740 1584 -740 1548 -744 1584 -740 1548 -740 1588 -740 1548 -744 1580 -740 1548 -740 1584 -748 1544 -744 1580 -744 1544 -740 1588 -736 1548 -748 1588 -736 1548 -748 1584 -736 1552 -744 1580 -1504 784 -1508 820 -1504 784 -1504 828 -1500 788 -740 1580 -1504 784 -1500 832 -1508 780 -740 1584 -1504 788 -740 1584 -1504 788 -736 1592 -1500 788 -736 1584 -4588 792 -748 1556 -1516 788 -748 1556 -1520 +RAW_Data: 828 -740 1544 -748 1584 -740 1548 -740 1584 -740 1548 -740 1584 -748 1548 -740 1580 -744 1548 -744 1580 -744 1544 -744 1584 -740 1548 -744 1584 -740 1548 -740 1584 -748 1544 -736 1588 -744 1548 -744 1580 -1504 784 -1500 824 -1504 784 -1504 828 -1504 784 -740 1580 -1504 788 -1504 824 -1508 780 -740 1588 -1504 784 -736 1592 -1500 784 -744 1580 -1504 784 -740 1584 -4584 788 -748 1560 -1516 788 -748 1556 -1516 828 -744 1544 -740 1584 -744 1544 -744 1584 -740 1548 -744 1584 -740 1544 -748 1580 -744 1544 -744 1584 -744 1544 -736 1588 -744 1544 -744 1584 -736 1548 -744 1584 -740 1548 -740 1588 -740 1548 -740 1584 -1504 788 -1504 816 -1504 788 -1504 824 -1508 780 -740 1580 -1504 788 -1504 824 -1508 780 -744 1584 -1508 776 -744 1588 -1504 784 -744 1584 -1504 784 -744 1580 -4588 788 -748 1556 -1516 788 -748 1564 -1512 832 -744 1548 -736 1588 -740 1548 -740 1588 -736 1548 -744 1588 -740 1544 -748 1584 -740 1544 -748 1580 -744 1544 -744 1584 -744 1544 -740 1584 -744 1552 -736 1588 -740 1548 -744 1584 -740 1544 -748 1580 -1504 780 -1512 820 -1500 784 -1504 828 -1508 780 -744 1584 -1504 780 -1504 828 -1504 788 -736 1588 -1504 788 -736 1584 -1508 784 -736 1588 -1504 780 -744 1580 -4584 792 -744 1560 -1516 788 -748 1556 -1516 828 -744 1544 -748 1580 -740 1552 -744 1580 -740 1548 -748 1588 -736 1548 -744 1584 -744 1544 -736 1584 -748 1544 -744 1584 -744 1544 -740 1588 -740 1548 -744 1584 -740 1548 -740 1588 -740 1548 -740 1588 -1504 784 -1504 824 -1504 780 -1508 828 -1504 784 -744 1580 -1500 784 -1504 828 -1504 788 -736 1588 -1504 784 -740 1588 -1504 788 -740 1584 -1504 784 -744 1560 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Ding_1.sub b/assets/resources/subghz/Stores/CVS/Ding_1.sub new file mode 100644 index 000000000..fb10a95a7 --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Ding_1.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 804 -748 1552 -1512 792 -748 1556 -1516 824 -740 1548 -740 1584 -736 1552 -740 1584 -744 1544 -740 1588 -732 1552 -740 1580 -748 1544 -736 1592 -736 1548 -736 1584 -744 1544 -740 1584 -740 1548 -740 1584 -744 1544 -744 1584 -736 1548 -740 1584 -1504 784 -1504 824 -1504 780 -744 1584 -1504 784 -736 1588 -1500 784 -740 1588 -1504 784 -740 1580 -1508 780 -740 1584 -1504 784 -740 1584 -1500 788 -736 1584 -4584 788 -748 1560 -1512 788 -744 1560 -1512 832 -740 1548 -736 1588 -740 1544 -744 1584 -740 1548 -736 1588 -744 1544 -740 1584 -740 1552 -732 1588 -744 1544 -740 1584 -740 1548 -740 1584 -744 1544 -744 1580 -740 1548 -740 1584 -740 1548 -744 1580 -1504 784 -1504 824 -1508 780 -740 1584 -1508 780 -740 1584 -1504 784 -736 1588 -1508 780 -740 1592 -1500 780 -744 1580 -1508 784 -736 1588 -1500 784 -744 1576 -4588 788 -748 1556 -1512 792 -744 1556 -1516 832 -736 1548 -736 1588 -740 1544 -744 1584 -736 1548 -736 1588 -740 1544 -744 1580 -740 1548 -740 1584 -736 1552 -736 1592 -736 1544 -744 1584 -740 1544 -740 1588 -736 1548 -740 1584 -744 1544 -740 1584 -1504 784 -1500 828 -1504 784 -736 1588 -1504 784 -740 1584 -1504 784 -736 1588 -1504 780 -740 1588 -1504 784 -740 1584 -1504 784 -736 1588 -1500 788 -740 1576 -4588 792 -744 1556 -1512 788 -748 1556 -1516 824 -740 1552 -736 1588 -740 1548 -740 1584 -736 1552 -740 1584 -736 1548 -744 1580 -740 1544 -740 1584 -740 1548 -736 1588 -740 1544 -744 1584 -740 1544 -740 1588 -740 1548 -740 1584 -744 1544 -740 1584 -1500 788 -1500 828 -1504 784 -736 1588 -1500 788 -740 1584 -1500 788 -736 1588 -1504 784 -736 1592 -1496 784 -740 1588 -1504 780 -740 1588 -1496 788 -744 1572 -4588 792 -740 1560 -1512 792 -744 1560 -1512 832 -736 1548 -744 1584 -740 1548 -736 1588 -736 1552 -740 1584 -744 1544 -740 1588 -736 1548 -744 1584 -740 1544 -740 1592 -732 1552 -740 1584 -744 1544 -740 1588 -740 1548 -740 1584 -740 1548 -744 1584 -1500 784 -1500 832 -1504 784 -744 1580 -1504 784 -736 1592 -1496 788 -740 1584 -1504 788 -740 1580 -1508 784 -740 1588 -1496 788 -744 1580 -1504 788 -736 1584 -4584 788 -744 1564 -1508 792 -744 1564 -1512 836 -740 1544 -740 1588 -736 1552 -736 1588 -744 1544 -740 1592 -732 1552 -744 1580 -740 1548 -740 1588 -740 1548 -740 1588 -736 1556 -736 1588 -740 1544 -744 1588 -736 1552 -744 1580 -744 1552 -732 1588 -1500 788 -1508 824 -1500 788 -740 1588 -1500 784 -744 1584 -1504 784 -736 1592 -1504 780 -744 1588 -1500 784 -740 1584 -1508 784 -736 1588 -1496 788 -744 1576 -4588 792 -744 1560 -1512 792 -744 1564 -1516 +RAW_Data: 828 -740 1548 -744 1580 -740 1552 -740 1588 -740 1548 -744 1584 -740 1548 -740 1588 -736 1552 -744 1584 -744 1548 -740 1588 -740 1548 -740 1588 -740 1548 -744 1584 -744 1544 -744 1584 -744 1544 -744 1584 -1500 788 -1500 832 -1500 784 -744 1584 -1504 784 -740 1592 -1500 784 -740 1588 -1504 784 -740 1588 -1504 784 -740 1588 -1500 784 -748 1584 -1500 788 -740 1580 -4588 792 -744 1560 -1516 792 -748 1556 -1512 836 -744 1548 -736 1588 -740 1548 -744 1588 -736 1548 -740 1588 -740 1548 -740 1588 -740 1548 -736 1588 -744 1552 -736 1584 -744 1548 -740 1584 -748 1548 -736 1588 -740 1548 -736 1592 -740 1548 -736 1588 -1504 784 -1504 832 -1504 780 -744 1584 -1508 780 -744 1584 -1504 784 -744 1584 -1504 780 -744 1584 -1504 780 -744 1588 -1504 780 -744 1584 -1504 784 -744 1576 -4588 788 -748 1556 -1516 792 -748 1556 -1520 828 -740 1548 -740 1588 -744 1548 -736 1588 -740 1548 -740 1588 -736 1548 -740 1588 -740 1552 -736 1588 -740 1548 -744 1584 -744 1548 -736 1588 -740 1548 -740 1588 -740 1544 -744 1588 -740 1548 -740 1584 -1504 788 -1496 832 -1504 784 -736 1592 -1500 788 -736 1592 -1504 780 -740 1588 -1504 784 -740 1588 -1504 784 -740 1588 -1504 784 -740 1588 -1500 792 -736 1580 -4588 796 -744 1564 -1512 788 -748 1556 -1516 832 -740 1548 -740 1588 -740 1548 -736 1588 -740 1548 -744 1584 -740 1548 -740 1588 -744 1544 -740 1588 -744 1544 -740 1588 -740 1552 -740 1584 -740 1552 -736 1592 -740 1544 -740 1592 -736 1552 -736 1588 -1500 788 -1504 828 -1504 784 -740 1588 -1504 784 -744 1588 -1500 784 -748 1580 -1508 784 -736 1592 -1504 784 -744 1584 -1500 784 -744 1584 -1504 784 -740 1564 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Electric_Razors.sub b/assets/resources/subghz/Stores/CVS/Electric_Razors.sub new file mode 100644 index 000000000..2fc7cb505 --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Electric_Razors.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 804 -748 1556 -1512 792 -744 1560 -1512 828 -740 1544 -744 1584 -744 1540 -740 1588 -736 1552 -736 1588 -740 1544 -744 1584 -740 1548 -740 1584 -744 1544 -744 1584 -740 1552 -736 1588 -740 1548 -744 1584 -740 1552 -736 1588 -740 1548 -744 1580 -1504 784 -1504 824 -1504 784 -1504 824 -1508 780 -740 1580 -1504 784 -1504 824 -1504 780 -1508 824 -1504 784 -740 1588 -1500 784 -744 1584 -1504 784 -740 1580 -4588 788 -748 1556 -1512 792 -744 1564 -1512 828 -740 1548 -744 1580 -744 1544 -744 1584 -740 1548 -740 1584 -740 1548 -744 1580 -744 1544 -744 1580 -740 1548 -740 1584 -744 1544 -744 1588 -732 1548 -748 1580 -744 1544 -740 1588 -740 1548 -740 1584 -1504 780 -1504 820 -1504 784 -1500 828 -1504 784 -740 1580 -1504 780 -1504 824 -1500 788 -1500 828 -1500 784 -740 1584 -1504 784 -744 1580 -1504 788 -736 1580 -4592 788 -748 1556 -1512 792 -744 1560 -1516 828 -740 1548 -740 1584 -740 1548 -736 1588 -744 1540 -744 1584 -740 1548 -740 1588 -740 1548 -740 1584 -740 1548 -744 1584 -744 1544 -740 1588 -740 1548 -740 1584 -736 1552 -740 1584 -744 1548 -736 1588 -1504 784 -1500 824 -1508 780 -1504 824 -1504 788 -740 1580 -1504 780 -1504 824 -1504 784 -1508 824 -1500 788 -736 1588 -1504 784 -740 1584 -1504 784 -740 1580 -4584 792 -744 1552 -1516 792 -752 1552 -1516 828 -744 1544 -744 1584 -740 1544 -740 1584 -744 1548 -736 1588 -740 1544 -744 1584 -740 1552 -736 1584 -748 1540 -744 1584 -736 1552 -744 1584 -740 1548 -740 1588 -736 1552 -740 1584 -744 1548 -732 1588 -1508 780 -1500 824 -1504 784 -1508 828 -1500 784 -736 1584 -1500 788 -1504 824 -1500 788 -1504 824 -1504 784 -740 1584 -1508 780 -744 1584 -1504 784 -740 1580 -4592 788 -748 1560 -1512 792 -744 1564 -1516 828 -740 1548 -740 1588 -744 1544 -740 1584 -748 1544 -740 1588 -740 1552 -736 1588 -740 1548 -740 1588 -740 1544 -744 1584 -744 1544 -744 1588 -736 1552 -740 1584 -748 1544 -740 1588 -740 1548 -740 1580 -1508 788 -1500 824 -1504 780 -1504 828 -1504 784 -740 1584 -1500 788 -1500 824 -1508 784 -1504 824 -1504 784 -740 1588 -1508 776 -748 1584 -1504 784 -740 1580 -4588 792 -748 1560 -1516 788 -748 1556 -1516 828 -748 1540 -744 1592 -736 1552 -736 1588 -744 1544 -744 1584 -744 1544 -740 1588 -740 1544 -748 1584 -736 1552 -744 1580 -740 1552 -740 1588 -736 1548 -740 1588 -744 1544 -736 1592 -736 1548 -744 1584 -1504 784 -1504 820 -1508 780 -1504 828 -1508 780 -744 1580 -1504 784 -1504 820 -1508 780 -1504 828 -1504 784 -740 1588 -1500 788 -744 1584 -1504 784 -736 1584 -4592 788 -748 1556 -1516 788 -748 1560 -1520 +RAW_Data: 828 -740 1548 -740 1584 -744 1548 -740 1588 -740 1548 -740 1584 -744 1548 -740 1588 -736 1548 -744 1584 -740 1552 -740 1588 -740 1548 -740 1584 -748 1540 -744 1592 -732 1552 -740 1588 -740 1548 -740 1588 -1504 780 -1504 820 -1504 788 -1500 828 -1504 784 -736 1580 -1508 784 -1504 824 -1500 784 -1504 828 -1500 784 -740 1588 -1500 784 -744 1584 -1500 788 -736 1584 -4584 792 -744 1556 -1516 792 -748 1560 -1516 824 -748 1544 -740 1588 -740 1552 -736 1588 -740 1548 -744 1584 -744 1544 -740 1588 -740 1548 -744 1584 -744 1544 -744 1588 -736 1548 -744 1584 -740 1552 -736 1584 -744 1548 -740 1588 -736 1552 -740 1580 -1504 788 -1504 824 -1500 788 -1504 828 -1504 788 -740 1580 -1508 780 -1504 824 -1504 780 -1508 828 -1500 788 -744 1584 -1504 784 -736 1588 -1504 780 -744 1584 -4584 788 -752 1556 -1516 788 -744 1560 -1516 832 -740 1548 -740 1588 -740 1548 -740 1588 -744 1544 -740 1588 -740 1548 -744 1584 -744 1548 -744 1584 -740 1552 -736 1588 -744 1544 -744 1584 -740 1552 -736 1588 -740 1548 -740 1588 -740 1548 -740 1588 -1500 784 -1508 824 -1500 784 -1504 828 -1504 788 -732 1584 -1504 784 -1504 824 -1500 788 -1500 828 -1508 780 -740 1588 -1504 784 -744 1584 -1504 784 -744 1580 -4588 792 -748 1560 -1516 788 -744 1564 -1512 832 -740 1548 -744 1588 -732 1552 -740 1588 -740 1548 -744 1584 -740 1548 -740 1584 -744 1548 -740 1588 -736 1552 -744 1580 -744 1548 -744 1584 -736 1552 -740 1588 -744 1544 -744 1584 -736 1552 -740 1588 -1500 784 -1504 824 -1504 784 -1508 824 -1504 780 -740 1584 -1504 784 -1500 828 -1504 784 -1504 824 -1508 780 -740 1592 -1504 780 -740 1588 -1504 784 -740 1560 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Electronics.sub b/assets/resources/subghz/Stores/CVS/Electronics.sub new file mode 100644 index 000000000..c761bd166 --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Electronics.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 800 -744 1564 -1512 792 -744 1560 -1516 832 -736 1548 -740 1584 -744 1544 -744 1584 -740 1544 -740 1588 -740 1548 -740 1588 -740 1548 -736 1588 -740 1552 -740 1584 -740 1548 -740 1588 -744 1544 -740 1584 -744 1544 -740 1588 -740 1548 -740 1588 -1504 784 -740 1588 -1500 788 -740 1584 -1508 780 -740 1584 -1500 788 -1500 824 -1504 784 -740 1584 -1496 788 -1500 828 -1500 788 -740 1584 -1504 784 -736 1580 -4588 788 -748 1552 -1516 792 -748 1560 -1516 824 -744 1544 -740 1588 -740 1548 -740 1584 -740 1548 -740 1588 -740 1544 -736 1588 -744 1544 -744 1580 -740 1548 -744 1584 -744 1540 -748 1580 -744 1548 -740 1584 -744 1544 -740 1592 -736 1548 -740 1584 -1512 780 -740 1588 -1500 788 -740 1584 -1504 784 -744 1580 -1500 784 -1504 828 -1504 780 -744 1580 -1500 784 -1508 824 -1504 784 -744 1584 -1508 780 -744 1580 -4592 788 -744 1560 -1516 788 -752 1556 -1512 832 -740 1552 -740 1584 -744 1544 -744 1588 -740 1548 -744 1580 -748 1544 -740 1588 -740 1548 -744 1584 -744 1544 -736 1592 -740 1548 -744 1584 -736 1552 -740 1588 -744 1544 -744 1584 -740 1552 -740 1588 -1504 788 -740 1584 -1508 780 -740 1588 -1500 788 -744 1576 -1508 784 -1500 832 -1504 784 -740 1580 -1508 780 -1504 828 -1504 784 -740 1588 -1508 780 -744 1576 -4592 792 -744 1560 -1516 792 -744 1560 -1516 828 -744 1548 -736 1592 -736 1552 -744 1584 -744 1544 -740 1592 -736 1548 -744 1584 -744 1548 -736 1592 -740 1548 -744 1580 -740 1552 -740 1588 -744 1544 -744 1584 -740 1548 -740 1588 -744 1544 -740 1592 -1508 780 -740 1588 -1504 784 -744 1584 -1504 784 -736 1584 -1504 784 -1508 824 -1508 780 -740 1584 -1504 784 -1504 828 -1504 784 -744 1584 -1504 784 -740 1576 -4596 792 -744 1560 -1512 796 -744 1564 -1516 824 -744 1544 -740 1588 -740 1552 -740 1584 -740 1548 -740 1592 -740 1548 -740 1584 -740 1548 -744 1580 -744 1548 -736 1588 -744 1544 -744 1584 -740 1548 -740 1584 -744 1548 -740 1588 -744 1540 -748 1584 -1508 784 -740 1588 -1500 788 -744 1580 -1508 784 -736 1584 -1504 784 -1504 824 -1508 780 -740 1584 -1504 784 -1504 828 -1504 784 -736 1588 -1504 788 -740 1580 -4592 788 -748 1560 -1512 792 -744 1560 -1516 828 -740 1552 -740 1584 -744 1544 -744 1584 -744 1548 -736 1588 -736 1552 -740 1588 -740 1548 -740 1588 -740 1548 -744 1584 -736 1552 -740 1588 -744 1544 -736 1592 -740 1548 -740 1584 -740 1552 -744 1584 -1500 788 -744 1584 -1508 780 -740 1588 -1504 784 -740 1580 -1504 784 -1504 828 -1504 784 -740 1584 -1504 784 -1504 828 -1504 788 -740 1584 -1508 784 -744 1580 -4588 792 -744 1560 -1520 788 -748 1556 -1516 +RAW_Data: 832 -740 1548 -744 1584 -744 1544 -744 1588 -740 1552 -740 1580 -744 1548 -740 1592 -740 1548 -744 1584 -740 1552 -740 1584 -740 1548 -740 1588 -740 1552 -740 1588 -740 1548 -740 1588 -740 1548 -744 1588 -1504 784 -740 1592 -1504 788 -740 1584 -1504 784 -740 1588 -1500 784 -1504 828 -1504 788 -744 1580 -1500 788 -1500 828 -1504 784 -744 1580 -1508 784 -740 1580 -4592 788 -744 1560 -1512 796 -744 1560 -1512 828 -740 1552 -740 1588 -740 1548 -744 1584 -740 1548 -744 1588 -744 1544 -740 1588 -740 1548 -744 1584 -740 1552 -740 1588 -740 1544 -748 1584 -740 1552 -740 1588 -740 1548 -740 1588 -740 1548 -744 1584 -1508 780 -740 1592 -1500 788 -740 1584 -1508 784 -736 1588 -1500 788 -1504 824 -1508 780 -740 1588 -1500 788 -1504 828 -1504 784 -740 1588 -1504 784 -740 1584 -4592 788 -744 1560 -1516 792 -744 1564 -1512 832 -736 1552 -740 1588 -744 1544 -744 1584 -740 1548 -740 1588 -740 1548 -740 1588 -740 1544 -740 1592 -740 1548 -740 1588 -740 1548 -740 1588 -740 1544 -744 1584 -740 1552 -740 1584 -740 1552 -736 1596 -1496 788 -744 1584 -1504 784 -740 1588 -1504 784 -740 1584 -1504 784 -1504 832 -1496 788 -744 1580 -1500 792 -1500 828 -1504 788 -740 1584 -1504 784 -736 1588 -4592 784 -748 1560 -1516 792 -748 1560 -1516 832 -736 1548 -744 1588 -736 1552 -740 1584 -744 1544 -740 1592 -740 1540 -744 1588 -736 1552 -744 1584 -740 1548 -744 1584 -744 1544 -740 1588 -740 1548 -740 1588 -740 1552 -736 1588 -744 1544 -740 1592 -1504 784 -744 1580 -1508 784 -736 1592 -1500 784 -744 1580 -1504 784 -1504 828 -1508 780 -744 1580 -1496 788 -1504 828 -1504 780 -744 1588 -1500 788 -740 1560 -15964 diff --git a/assets/resources/subghz/Stores/CVS/Eye_Care_Department.sub b/assets/resources/subghz/Stores/CVS/Eye_Care_Department.sub new file mode 100644 index 000000000..6ecc97f12 --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Eye_Care_Department.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 800 -748 1556 -1512 792 -744 1560 -1516 824 -740 1548 -744 1584 -740 1544 -740 1588 -736 1552 -740 1588 -736 1548 -740 1580 -744 1544 -740 1588 -740 1548 -740 1584 -740 1544 -744 1584 -740 1548 -744 1584 -740 1548 -740 1592 -740 1544 -744 1580 -1504 784 -1504 824 -1500 788 -1500 820 -1508 784 -1500 820 -1504 784 -1508 824 -1504 784 -744 1584 -1504 780 -740 1584 -1496 788 -1500 824 -1504 784 -1500 820 -4592 784 -748 1556 -1512 796 -744 1560 -1516 828 -736 1552 -736 1588 -744 1544 -740 1588 -740 1548 -744 1584 -740 1548 -736 1584 -748 1548 -740 1584 -740 1552 -740 1588 -740 1548 -740 1588 -740 1548 -740 1588 -740 1548 -740 1584 -740 1548 -740 1588 -1504 780 -1500 824 -1508 784 -1504 820 -1504 784 -1508 824 -1500 784 -1508 824 -1504 784 -740 1588 -1504 788 -736 1580 -1508 784 -1500 828 -1500 784 -1504 824 -4588 792 -748 1560 -1516 788 -744 1560 -1516 832 -744 1548 -736 1584 -744 1548 -740 1588 -740 1548 -744 1584 -740 1548 -740 1584 -736 1552 -736 1592 -736 1552 -740 1588 -740 1544 -740 1588 -740 1548 -736 1588 -744 1544 -740 1592 -740 1548 -736 1584 -1504 788 -1500 824 -1504 784 -1504 824 -1500 784 -1504 824 -1500 784 -1504 832 -1504 780 -744 1584 -1504 784 -744 1576 -1504 784 -1504 824 -1504 784 -1500 824 -4588 792 -744 1564 -1512 792 -748 1556 -1516 832 -744 1544 -740 1588 -740 1548 -740 1588 -740 1552 -740 1588 -740 1544 -740 1588 -744 1544 -740 1588 -744 1548 -744 1584 -740 1548 -740 1588 -740 1548 -740 1588 -740 1548 -740 1588 -744 1548 -740 1580 -1504 784 -1504 824 -1504 784 -1508 824 -1504 784 -1500 828 -1500 788 -1504 828 -1504 784 -740 1588 -1508 780 -744 1576 -1504 784 -1504 828 -1504 780 -1508 824 -4592 788 -744 1564 -1512 792 -752 1556 -1516 824 -744 1552 -740 1584 -744 1548 -740 1584 -740 1548 -744 1588 -740 1548 -744 1584 -740 1548 -740 1588 -740 1548 -744 1588 -736 1548 -740 1584 -748 1548 -740 1588 -740 1548 -744 1584 -740 1548 -744 1584 -1508 780 -1508 820 -1504 784 -1500 824 -1504 784 -1508 820 -1504 784 -1508 824 -1504 788 -740 1588 -1500 784 -740 1584 -1504 788 -1504 820 -1508 784 -1500 824 -4592 788 -744 1564 -1516 788 -748 1560 -1512 836 -736 1548 -748 1584 -744 1544 -736 1588 -748 1544 -744 1584 -740 1548 -740 1584 -744 1552 -736 1588 -740 1552 -736 1588 -740 1552 -736 1588 -744 1548 -736 1588 -740 1548 -736 1592 -744 1544 -740 1588 -1504 780 -1508 824 -1500 788 -1500 824 -1508 780 -1504 824 -1504 784 -1504 828 -1504 784 -744 1584 -1504 784 -744 1580 -1500 788 -1500 824 -1508 780 -1500 824 -4592 784 -748 1560 -1512 792 -748 1556 -1516 +RAW_Data: 832 -740 1548 -740 1584 -744 1548 -740 1588 -740 1548 -740 1584 -744 1548 -740 1584 -744 1544 -740 1588 -744 1544 -744 1584 -736 1552 -740 1588 -744 1544 -744 1584 -736 1552 -740 1588 -740 1544 -744 1588 -1500 788 -1500 824 -1504 784 -1500 828 -1496 788 -1504 820 -1504 784 -1504 828 -1504 784 -744 1584 -1508 780 -740 1580 -1504 784 -1504 820 -1508 784 -1500 824 -4592 788 -748 1556 -1516 792 -744 1564 -1516 828 -736 1552 -744 1584 -740 1548 -740 1588 -740 1548 -744 1584 -740 1552 -740 1584 -740 1548 -744 1584 -740 1548 -740 1592 -740 1548 -744 1584 -740 1548 -740 1588 -740 1548 -744 1580 -744 1548 -744 1584 -1500 788 -1504 820 -1508 784 -1500 828 -1500 784 -1508 820 -1504 784 -1504 828 -1504 788 -740 1584 -1508 780 -740 1584 -1504 784 -1500 824 -1508 784 -1504 824 -4588 788 -748 1560 -1516 788 -748 1556 -1516 832 -740 1552 -740 1588 -740 1544 -744 1588 -740 1552 -740 1588 -744 1544 -740 1588 -740 1552 -740 1588 -740 1544 -748 1584 -740 1552 -736 1592 -740 1548 -744 1580 -744 1548 -740 1592 -736 1552 -740 1584 -1504 780 -1508 824 -1504 784 -1504 824 -1508 784 -1500 824 -1504 784 -1504 828 -1500 784 -744 1588 -1504 784 -740 1584 -1500 788 -1500 828 -1500 788 -1500 824 -4588 792 -748 1560 -1516 788 -748 1560 -1516 828 -740 1548 -744 1584 -744 1548 -740 1584 -740 1556 -736 1592 -740 1544 -744 1588 -740 1548 -736 1588 -740 1552 -740 1584 -740 1552 -740 1584 -744 1548 -740 1588 -736 1552 -740 1592 -740 1548 -740 1584 -1508 784 -1504 824 -1500 788 -1504 824 -1504 780 -1508 824 -1504 784 -1504 824 -1508 784 -736 1592 -1500 784 -744 1580 -1500 788 -1504 824 -1504 788 -1500 804 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Family_Planning.sub b/assets/resources/subghz/Stores/CVS/Family_Planning.sub new file mode 100644 index 000000000..3f83e441f --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Family_Planning.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 804 -744 1560 -1512 792 -744 1560 -1516 828 -736 1548 -744 1580 -740 1548 -740 1584 -740 1548 -740 1584 -740 1548 -740 1584 -744 1544 -740 1584 -744 1544 -740 1584 -740 1548 -744 1584 -740 1544 -740 1588 -740 1544 -744 1584 -740 1548 -736 1584 -1504 784 -1500 828 -1500 788 -736 1584 -1500 784 -1500 824 -1500 784 -1504 828 -1500 788 -736 1584 -1500 780 -1504 824 -1504 780 -1500 828 -1504 784 -740 1580 -4584 788 -744 1564 -1512 788 -748 1556 -1516 828 -740 1548 -740 1584 -736 1552 -744 1584 -736 1548 -744 1580 -740 1548 -740 1584 -744 1544 -740 1584 -740 1544 -748 1584 -736 1548 -740 1588 -736 1548 -740 1588 -744 1548 -732 1588 -744 1544 -740 1584 -1504 788 -1504 824 -1504 784 -740 1580 -1504 784 -1504 816 -1508 788 -1500 824 -1504 780 -744 1580 -1504 784 -1504 816 -1504 788 -1500 832 -1500 784 -740 1580 -4584 792 -748 1556 -1512 792 -744 1560 -1516 828 -740 1548 -736 1592 -736 1552 -736 1588 -740 1548 -736 1588 -744 1548 -736 1588 -740 1548 -744 1580 -740 1548 -740 1588 -740 1544 -744 1584 -740 1548 -740 1584 -744 1548 -732 1588 -744 1544 -740 1588 -1504 776 -1508 828 -1500 784 -740 1584 -1500 784 -1504 824 -1500 784 -1500 828 -1504 788 -736 1580 -1500 788 -1504 820 -1504 784 -1504 824 -1504 784 -736 1584 -4588 792 -744 1560 -1512 788 -748 1560 -1516 824 -744 1544 -740 1584 -744 1544 -740 1588 -740 1548 -740 1584 -740 1548 -740 1584 -740 1552 -732 1588 -740 1548 -740 1588 -740 1544 -740 1592 -736 1544 -740 1588 -740 1544 -744 1580 -744 1544 -740 1584 -1504 784 -1500 828 -1504 780 -744 1580 -1504 784 -1500 824 -1504 780 -1500 832 -1504 784 -736 1584 -1500 788 -1496 824 -1504 784 -1500 828 -1504 784 -736 1580 -4584 792 -748 1556 -1512 792 -744 1560 -1516 828 -740 1548 -736 1588 -736 1552 -740 1588 -732 1552 -740 1584 -740 1552 -736 1588 -736 1548 -740 1584 -740 1548 -736 1588 -744 1544 -740 1588 -736 1548 -740 1588 -740 1544 -740 1588 -740 1544 -744 1580 -1508 784 -1500 832 -1500 784 -740 1580 -1504 780 -1504 820 -1504 780 -1508 828 -1500 788 -736 1584 -1504 780 -1504 820 -1504 788 -1500 828 -1504 780 -744 1576 -4584 792 -748 1556 -1516 788 -748 1556 -1520 824 -744 1548 -736 1588 -740 1548 -740 1584 -744 1544 -740 1588 -744 1544 -740 1588 -740 1548 -736 1588 -736 1552 -740 1584 -744 1544 -744 1584 -740 1548 -740 1584 -744 1544 -740 1584 -744 1544 -740 1584 -1504 784 -1504 824 -1508 780 -744 1576 -1504 784 -1500 828 -1496 788 -1500 824 -1508 780 -744 1576 -1508 780 -1504 824 -1504 784 -1500 828 -1504 780 -740 1580 -4592 788 -744 1560 -1516 788 -744 1564 -1516 +RAW_Data: 828 -740 1544 -740 1588 -736 1552 -736 1584 -740 1548 -740 1584 -740 1548 -740 1588 -736 1548 -740 1584 -740 1548 -744 1584 -744 1544 -740 1588 -736 1552 -736 1588 -740 1548 -740 1588 -740 1544 -740 1584 -1508 776 -1508 828 -1500 788 -736 1584 -1504 780 -1504 820 -1504 784 -1504 824 -1508 780 -740 1580 -1508 780 -1504 824 -1508 780 -1500 832 -1500 788 -740 1580 -4588 788 -744 1564 -1516 788 -748 1556 -1512 832 -740 1548 -736 1592 -732 1552 -740 1584 -744 1544 -740 1588 -736 1552 -736 1588 -740 1548 -740 1584 -744 1544 -740 1584 -740 1548 -740 1584 -744 1548 -740 1584 -740 1548 -740 1588 -740 1548 -740 1584 -1504 784 -1500 832 -1504 780 -740 1580 -1504 784 -1500 828 -1500 784 -1504 828 -1500 788 -736 1584 -1500 784 -1504 824 -1500 788 -1504 824 -1500 788 -740 1580 -4588 788 -740 1564 -1512 796 -740 1560 -1516 828 -736 1548 -740 1588 -736 1552 -740 1584 -736 1552 -736 1588 -736 1552 -736 1588 -740 1548 -744 1580 -740 1548 -740 1588 -740 1544 -740 1584 -744 1548 -740 1584 -740 1548 -744 1584 -740 1544 -744 1580 -1504 784 -1504 832 -1504 780 -744 1576 -1508 784 -1500 824 -1504 780 -1504 828 -1504 784 -740 1580 -1500 788 -1500 824 -1500 784 -1504 824 -1508 780 -740 1580 -4584 792 -744 1564 -1512 792 -740 1564 -1516 828 -740 1544 -744 1588 -740 1544 -744 1580 -744 1544 -744 1580 -744 1544 -744 1584 -740 1544 -740 1584 -744 1548 -740 1584 -740 1548 -740 1584 -744 1544 -740 1584 -744 1548 -740 1584 -740 1548 -736 1592 -1496 788 -1500 828 -1504 784 -736 1584 -1500 788 -1500 824 -1500 788 -1496 836 -1500 784 -740 1584 -1496 788 -1500 824 -1500 788 -1504 828 -1496 792 -740 1556 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Film_Department.sub b/assets/resources/subghz/Stores/CVS/Film_Department.sub new file mode 100644 index 000000000..2b867aef2 --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Film_Department.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 804 -748 1556 -1516 784 -752 1556 -1512 828 -744 1540 -744 1580 -744 1548 -744 1584 -740 1544 -744 1584 -744 1544 -740 1584 -744 1544 -740 1584 -740 1544 -748 1580 -740 1548 -740 1588 -740 1544 -740 1584 -744 1544 -744 1580 -744 1544 -744 1584 -1504 784 -740 1584 -1504 780 -744 1580 -1504 780 -1504 832 -1504 784 -740 1584 -1500 784 -744 1580 -1500 784 -1504 828 -1504 784 -740 1584 -1500 788 -744 1580 -4584 784 -748 1560 -1512 792 -744 1556 -1520 824 -744 1544 -740 1588 -740 1552 -736 1588 -740 1548 -740 1588 -736 1548 -740 1584 -744 1548 -736 1588 -740 1544 -744 1584 -740 1548 -740 1588 -736 1548 -744 1584 -736 1552 -740 1584 -740 1548 -740 1584 -1508 780 -740 1588 -1500 784 -744 1580 -1504 784 -1500 832 -1504 780 -744 1584 -1500 788 -740 1576 -1504 784 -1500 828 -1504 780 -744 1584 -1504 780 -740 1584 -4584 784 -752 1556 -1516 788 -748 1556 -1512 832 -740 1544 -744 1584 -740 1548 -740 1588 -736 1548 -740 1584 -740 1552 -740 1584 -740 1548 -740 1584 -740 1548 -740 1588 -740 1548 -740 1584 -744 1544 -744 1584 -740 1548 -740 1584 -744 1548 -740 1584 -1508 780 -740 1588 -1504 784 -740 1584 -1500 784 -1504 820 -1508 784 -740 1584 -1504 780 -744 1580 -1504 780 -1508 824 -1504 780 -740 1588 -1500 784 -740 1576 -4584 792 -748 1556 -1516 788 -744 1556 -1520 828 -736 1548 -740 1584 -740 1548 -740 1588 -736 1544 -744 1584 -740 1548 -744 1584 -740 1548 -740 1584 -736 1548 -740 1584 -740 1552 -736 1588 -736 1548 -740 1588 -736 1548 -740 1584 -744 1544 -744 1584 -1504 784 -740 1584 -1508 780 -740 1584 -1504 784 -1500 828 -1500 784 -740 1588 -1500 788 -736 1584 -1504 780 -1504 832 -1504 784 -740 1584 -1504 784 -740 1576 -4588 788 -744 1560 -1512 792 -744 1560 -1512 832 -740 1548 -740 1588 -740 1548 -740 1584 -744 1544 -744 1584 -740 1548 -740 1588 -740 1544 -744 1588 -736 1548 -744 1580 -744 1548 -736 1588 -740 1548 -736 1588 -740 1548 -740 1584 -740 1548 -740 1592 -1504 784 -736 1588 -1500 784 -744 1580 -1500 784 -1504 828 -1504 784 -740 1588 -1504 780 -740 1584 -1500 788 -1500 828 -1508 780 -740 1584 -1508 780 -740 1580 -4588 788 -748 1560 -1516 788 -744 1560 -1516 828 -736 1552 -740 1592 -736 1548 -736 1588 -740 1552 -740 1584 -740 1548 -740 1588 -736 1552 -740 1588 -736 1552 -736 1592 -736 1552 -736 1588 -740 1548 -740 1588 -740 1548 -740 1584 -740 1548 -744 1588 -1504 784 -740 1588 -1504 784 -740 1580 -1500 788 -1500 828 -1504 784 -740 1584 -1504 788 -740 1580 -1504 784 -1504 824 -1508 784 -740 1584 -1508 784 -740 1580 -4592 788 -744 1564 -1512 792 -744 1564 -1512 +RAW_Data: 832 -740 1548 -740 1584 -744 1548 -740 1588 -740 1548 -744 1584 -736 1552 -740 1588 -736 1548 -740 1588 -740 1552 -740 1580 -744 1548 -740 1588 -740 1548 -740 1588 -740 1548 -744 1584 -740 1548 -744 1592 -1504 784 -740 1592 -1500 784 -740 1584 -1500 788 -1504 828 -1500 784 -744 1584 -1504 784 -740 1584 -1504 780 -1504 832 -1504 784 -740 1584 -1508 780 -740 1588 -4584 788 -752 1556 -1516 792 -748 1556 -1520 828 -740 1552 -740 1588 -740 1548 -744 1584 -740 1548 -744 1584 -740 1548 -740 1588 -744 1548 -740 1584 -744 1544 -748 1584 -740 1548 -740 1588 -740 1552 -740 1588 -740 1548 -740 1588 -740 1548 -740 1596 -1500 788 -740 1584 -1504 784 -740 1584 -1504 780 -1500 832 -1508 780 -744 1584 -1500 788 -740 1584 -1504 784 -1504 824 -1504 784 -736 1588 -1504 784 -744 1580 -4588 788 -748 1560 -1516 792 -744 1560 -1508 836 -736 1552 -740 1584 -744 1548 -740 1588 -740 1544 -744 1584 -744 1548 -740 1588 -740 1544 -744 1588 -740 1548 -740 1584 -744 1548 -740 1588 -736 1552 -740 1588 -736 1548 -740 1588 -740 1548 -736 1596 -1504 784 -740 1584 -1508 784 -740 1580 -1504 784 -1504 828 -1508 780 -740 1588 -1508 776 -744 1584 -1504 780 -1504 832 -1504 784 -736 1592 -1500 788 -740 1580 -4592 788 -744 1564 -1512 792 -744 1564 -1516 824 -744 1548 -740 1588 -740 1544 -740 1588 -744 1548 -740 1588 -740 1548 -744 1584 -744 1544 -744 1584 -740 1552 -736 1588 -740 1548 -740 1588 -740 1552 -740 1584 -744 1544 -744 1588 -736 1548 -744 1588 -1504 784 -740 1584 -1508 780 -744 1580 -1500 788 -1500 828 -1504 784 -740 1588 -1508 780 -740 1584 -1504 784 -1504 828 -1504 788 -736 1588 -1504 784 -744 1560 -15964 diff --git a/assets/resources/subghz/Stores/CVS/First_Aid_Department.sub b/assets/resources/subghz/Stores/CVS/First_Aid_Department.sub new file mode 100644 index 000000000..0b9a693e7 --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/First_Aid_Department.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 800 -744 1564 -1512 788 -748 1556 -1516 828 -740 1548 -740 1584 -740 1548 -744 1584 -736 1548 -740 1588 -740 1544 -744 1584 -744 1544 -740 1584 -740 1552 -740 1584 -744 1540 -748 1584 -740 1544 -744 1584 -744 1540 -744 1584 -740 1548 -740 1592 -1504 780 -740 1588 -1504 784 -740 1580 -1504 784 -1504 820 -1500 788 -1500 824 -1504 784 -740 1584 -1508 780 -740 1588 -1500 784 -736 1588 -1508 780 -740 1580 -4588 788 -748 1556 -1516 788 -748 1560 -1516 828 -744 1544 -740 1584 -744 1544 -740 1588 -740 1548 -740 1588 -736 1548 -740 1588 -740 1552 -736 1588 -736 1552 -736 1588 -740 1552 -732 1592 -736 1552 -736 1588 -740 1548 -740 1592 -736 1548 -740 1588 -1504 784 -744 1584 -1500 788 -740 1580 -1500 784 -1504 820 -1508 780 -1508 828 -1500 788 -740 1584 -1504 784 -740 1584 -1508 780 -740 1588 -1504 784 -736 1584 -4588 792 -744 1560 -1512 792 -748 1556 -1512 832 -740 1548 -736 1588 -740 1548 -744 1584 -740 1548 -736 1588 -740 1548 -744 1584 -740 1548 -744 1580 -744 1544 -744 1584 -744 1544 -740 1584 -744 1548 -740 1584 -740 1548 -740 1588 -740 1548 -740 1588 -1504 780 -748 1584 -1504 784 -736 1584 -1504 780 -1508 820 -1508 784 -1504 824 -1500 788 -744 1580 -1508 784 -740 1588 -1504 784 -736 1592 -1500 784 -736 1584 -4588 788 -748 1556 -1520 788 -748 1556 -1516 824 -744 1548 -740 1584 -744 1544 -744 1584 -740 1548 -740 1588 -744 1544 -744 1584 -744 1544 -744 1580 -744 1548 -740 1584 -744 1548 -740 1584 -744 1544 -744 1584 -744 1548 -736 1588 -744 1548 -744 1588 -1500 788 -736 1592 -1504 780 -740 1584 -1504 784 -1500 820 -1508 784 -1500 828 -1508 784 -736 1588 -1508 780 -736 1592 -1504 784 -740 1584 -1508 780 -744 1580 -4588 784 -752 1556 -1520 784 -752 1556 -1516 832 -740 1548 -740 1588 -736 1552 -740 1588 -736 1552 -740 1588 -736 1552 -736 1592 -736 1552 -736 1592 -736 1552 -736 1592 -740 1552 -736 1584 -744 1548 -740 1588 -740 1548 -740 1588 -740 1548 -744 1584 -1504 784 -744 1584 -1508 780 -744 1580 -1504 784 -1504 824 -1504 784 -1500 828 -1508 780 -744 1584 -1500 784 -744 1588 -1504 784 -736 1592 -1504 784 -736 1580 -4592 788 -744 1560 -1516 796 -740 1560 -1520 828 -740 1548 -740 1588 -740 1548 -744 1584 -744 1544 -744 1584 -740 1548 -744 1584 -744 1544 -744 1584 -748 1540 -748 1580 -744 1548 -740 1588 -740 1548 -744 1584 -740 1544 -744 1584 -744 1548 -740 1592 -1504 784 -736 1592 -1500 788 -736 1584 -1508 784 -1504 820 -1508 780 -1504 828 -1504 784 -740 1588 -1504 784 -740 1588 -1504 784 -740 1584 -1504 784 -744 1584 -4584 788 -748 1556 -1520 788 -744 1560 -1520 +RAW_Data: 828 -740 1548 -740 1584 -744 1544 -744 1584 -740 1548 -744 1584 -740 1548 -740 1584 -740 1548 -744 1584 -740 1548 -740 1584 -740 1548 -740 1588 -736 1552 -740 1588 -736 1552 -740 1584 -740 1548 -744 1592 -1500 788 -736 1592 -1500 784 -740 1584 -1504 784 -1500 824 -1504 784 -1500 828 -1508 784 -740 1588 -1504 780 -744 1588 -1500 788 -736 1588 -1508 780 -744 1576 -4592 788 -748 1560 -1512 792 -748 1560 -1516 828 -740 1548 -740 1584 -744 1548 -740 1584 -744 1548 -740 1588 -740 1548 -744 1584 -740 1548 -744 1584 -744 1540 -744 1584 -748 1544 -744 1584 -744 1548 -740 1584 -748 1544 -740 1588 -744 1548 -740 1592 -1504 784 -740 1588 -1508 780 -748 1580 -1504 784 -1500 824 -1508 784 -1504 828 -1504 784 -740 1588 -1504 780 -748 1580 -1508 784 -744 1584 -1504 784 -740 1580 -4588 792 -748 1560 -1516 792 -748 1556 -1516 832 -736 1556 -736 1592 -732 1556 -736 1588 -744 1548 -740 1584 -744 1548 -740 1588 -740 1544 -748 1584 -744 1544 -748 1580 -748 1544 -744 1584 -740 1552 -744 1580 -744 1548 -740 1584 -744 1544 -748 1588 -1500 788 -740 1584 -1508 780 -740 1584 -1504 780 -1508 824 -1504 784 -1504 828 -1504 780 -748 1580 -1508 780 -744 1584 -1508 784 -740 1588 -1500 788 -740 1580 -4588 788 -748 1560 -1512 792 -748 1560 -1512 832 -740 1548 -740 1588 -740 1548 -740 1588 -740 1552 -736 1588 -736 1552 -740 1588 -744 1548 -736 1592 -736 1552 -736 1592 -740 1552 -736 1592 -736 1556 -736 1588 -740 1552 -740 1584 -740 1552 -736 1592 -1504 788 -744 1580 -1508 784 -744 1576 -1504 788 -1500 824 -1504 784 -1504 828 -1508 784 -736 1588 -1504 784 -740 1588 -1504 780 -748 1580 -1508 784 -740 1560 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Foot_Care_Department.sub b/assets/resources/subghz/Stores/CVS/Foot_Care_Department.sub new file mode 100644 index 000000000..f243005bc --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Foot_Care_Department.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 804 -748 1552 -1512 792 -740 1564 -1512 832 -740 1544 -736 1592 -740 1544 -740 1584 -740 1552 -736 1588 -736 1548 -740 1584 -744 1544 -740 1588 -740 1548 -740 1584 -740 1548 -740 1588 -740 1548 -740 1584 -744 1544 -740 1588 -736 1552 -736 1592 -1504 784 -740 1584 -1504 784 -744 1584 -1500 784 -740 1588 -1500 788 -740 1580 -1504 784 -1500 832 -1500 784 -740 1584 -1500 788 -740 1588 -1500 784 -740 1580 -4584 792 -740 1564 -1516 788 -748 1560 -1508 836 -740 1544 -740 1584 -740 1552 -740 1584 -736 1552 -740 1584 -740 1548 -740 1588 -736 1552 -740 1584 -744 1544 -740 1584 -740 1548 -744 1584 -740 1552 -736 1588 -736 1548 -740 1588 -740 1544 -740 1592 -1504 780 -744 1584 -1500 788 -736 1588 -1508 780 -744 1584 -1500 788 -736 1584 -1504 784 -1504 824 -1504 784 -740 1588 -1500 784 -744 1580 -1504 784 -736 1584 -4588 788 -748 1560 -1512 792 -748 1556 -1512 832 -744 1540 -740 1588 -736 1552 -740 1588 -740 1548 -740 1580 -744 1548 -736 1588 -740 1548 -736 1592 -736 1552 -736 1588 -740 1548 -740 1584 -740 1548 -740 1588 -736 1552 -736 1592 -736 1552 -736 1592 -1500 788 -736 1588 -1504 784 -740 1584 -1504 784 -740 1588 -1496 792 -736 1580 -1508 784 -1500 824 -1504 784 -744 1584 -1500 784 -740 1588 -1500 788 -740 1580 -4588 788 -748 1560 -1512 792 -748 1556 -1520 828 -736 1552 -740 1588 -736 1548 -740 1588 -740 1548 -736 1588 -740 1552 -736 1592 -740 1544 -740 1588 -740 1548 -740 1592 -736 1548 -744 1580 -744 1548 -740 1588 -740 1552 -740 1584 -740 1548 -740 1592 -1504 784 -744 1580 -1500 788 -736 1588 -1504 788 -740 1584 -1504 784 -740 1584 -1500 788 -1500 828 -1504 784 -740 1592 -1500 784 -740 1584 -1500 788 -740 1580 -4588 792 -744 1560 -1512 792 -748 1556 -1516 832 -740 1548 -740 1584 -740 1552 -736 1592 -740 1552 -736 1588 -740 1548 -740 1588 -740 1548 -744 1584 -740 1548 -740 1592 -736 1552 -740 1584 -744 1544 -740 1592 -736 1552 -740 1584 -744 1548 -740 1592 -1504 780 -744 1584 -1504 788 -744 1580 -1504 784 -740 1592 -1504 784 -740 1580 -1504 784 -1508 824 -1504 784 -740 1588 -1504 784 -740 1588 -1504 788 -740 1580 -4580 796 -740 1564 -1516 788 -748 1560 -1512 836 -736 1548 -740 1588 -736 1552 -744 1584 -740 1548 -740 1584 -740 1552 -736 1592 -740 1544 -740 1592 -740 1548 -744 1584 -740 1548 -740 1588 -744 1544 -744 1584 -740 1552 -736 1592 -740 1548 -740 1588 -1504 792 -736 1584 -1504 784 -740 1588 -1508 780 -744 1584 -1500 788 -740 1584 -1504 784 -1500 832 -1500 784 -744 1588 -1504 784 -740 1584 -1504 784 -740 1580 -4588 792 -748 1560 -1508 792 -744 1560 -1516 +RAW_Data: 832 -740 1548 -744 1584 -740 1548 -740 1592 -736 1548 -740 1588 -740 1548 -744 1584 -740 1548 -740 1588 -736 1552 -740 1588 -740 1544 -744 1588 -740 1548 -744 1584 -740 1548 -740 1588 -740 1548 -744 1588 -1500 788 -740 1588 -1500 784 -740 1584 -1508 780 -744 1584 -1500 784 -744 1580 -1500 788 -1504 828 -1504 788 -736 1584 -1504 788 -740 1584 -1508 780 -740 1580 -4592 788 -748 1560 -1508 796 -744 1560 -1516 832 -736 1548 -744 1584 -740 1548 -744 1588 -740 1544 -740 1584 -740 1556 -740 1584 -744 1544 -740 1588 -740 1548 -740 1584 -744 1544 -740 1592 -740 1548 -740 1588 -740 1544 -744 1588 -744 1544 -740 1592 -1504 784 -740 1588 -1504 788 -740 1584 -1500 788 -740 1588 -1504 784 -740 1584 -1504 788 -1500 828 -1504 784 -740 1588 -1500 784 -740 1588 -1500 788 -740 1576 -4588 788 -748 1560 -1512 792 -748 1560 -1512 828 -740 1548 -744 1584 -744 1544 -740 1584 -740 1556 -736 1584 -740 1548 -740 1588 -744 1544 -740 1584 -744 1548 -740 1588 -740 1548 -744 1584 -736 1552 -740 1588 -740 1548 -740 1584 -740 1548 -740 1588 -1504 784 -740 1584 -1504 784 -744 1584 -1504 784 -736 1588 -1508 780 -740 1580 -1500 788 -1504 828 -1500 792 -736 1588 -1504 780 -740 1588 -1504 784 -740 1580 -4584 792 -744 1560 -1516 792 -748 1556 -1516 828 -744 1548 -740 1588 -736 1548 -740 1588 -736 1552 -740 1588 -740 1544 -740 1588 -736 1556 -740 1584 -740 1548 -740 1588 -740 1552 -740 1580 -740 1548 -744 1584 -740 1548 -744 1584 -740 1544 -744 1588 -1504 784 -740 1584 -1508 780 -744 1584 -1504 784 -740 1584 -1504 788 -736 1580 -1504 784 -1500 832 -1500 784 -740 1588 -1504 784 -740 1584 -1504 784 -740 1564 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Fragrance_Case.sub b/assets/resources/subghz/Stores/CVS/Fragrance_Case.sub new file mode 100644 index 000000000..5b54779b6 --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Fragrance_Case.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 804 -748 1556 -1512 792 -748 1552 -1512 832 -740 1548 -740 1584 -740 1544 -744 1584 -740 1544 -744 1584 -744 1540 -744 1584 -740 1548 -740 1584 -744 1540 -748 1580 -744 1544 -740 1584 -744 1544 -740 1588 -744 1540 -748 1580 -744 1544 -740 1584 -1504 784 -1504 828 -1500 784 -744 1580 -1508 784 -744 1580 -1504 780 -748 1576 -1504 780 -1508 824 -1504 780 -744 1588 -1500 784 -744 1580 -1508 780 -744 1580 -4588 788 -748 1556 -1516 792 -748 1556 -1516 828 -744 1540 -744 1588 -740 1548 -740 1580 -748 1544 -744 1584 -744 1544 -748 1580 -744 1548 -740 1584 -740 1548 -744 1580 -748 1544 -744 1584 -744 1544 -744 1580 -752 1540 -740 1588 -740 1548 -744 1580 -1508 780 -1504 828 -1504 784 -744 1584 -1504 784 -744 1580 -1508 784 -740 1584 -1504 780 -1504 832 -1500 784 -744 1584 -1508 780 -740 1588 -1508 780 -744 1576 -4596 784 -752 1552 -1516 792 -752 1556 -1520 824 -744 1544 -744 1584 -740 1552 -744 1580 -744 1544 -744 1588 -740 1548 -744 1580 -744 1548 -748 1584 -744 1544 -744 1580 -748 1544 -740 1588 -744 1544 -744 1580 -744 1548 -740 1588 -740 1548 -744 1584 -1504 780 -1508 828 -1500 784 -744 1588 -1504 784 -744 1580 -1508 784 -740 1580 -1504 784 -1504 828 -1508 780 -744 1580 -1508 780 -744 1584 -1504 780 -748 1572 -4596 784 -752 1552 -1524 780 -756 1552 -1520 820 -752 1540 -748 1576 -752 1536 -752 1576 -752 1536 -756 1572 -752 1536 -752 1576 -752 1536 -752 1576 -756 1536 -748 1576 -752 1536 -752 1576 -752 1536 -752 1576 -748 1540 -752 1576 -752 1536 -752 1576 -1512 776 -1508 824 -1508 780 -748 1580 -1512 776 -748 1580 -1508 780 -748 1576 -1508 784 -1508 820 -1508 784 -744 1580 -1504 784 -744 1584 -1504 784 -744 1576 -4584 788 -748 1560 -1516 788 -752 1552 -1516 828 -744 1540 -744 1584 -744 1548 -740 1584 -748 1540 -744 1580 -744 1548 -744 1584 -744 1540 -748 1580 -748 1544 -736 1592 -740 1548 -744 1580 -744 1548 -740 1588 -736 1552 -740 1584 -744 1544 -744 1580 -1512 780 -1504 824 -1508 784 -736 1588 -1504 784 -744 1580 -1508 780 -744 1580 -1504 784 -1500 828 -1508 784 -744 1580 -1504 784 -744 1584 -1500 784 -740 1580 -4588 788 -748 1560 -1516 784 -752 1556 -1516 824 -744 1544 -744 1580 -744 1548 -744 1580 -740 1552 -740 1588 -740 1544 -744 1584 -744 1544 -744 1584 -744 1544 -744 1580 -748 1544 -744 1584 -736 1552 -744 1580 -744 1544 -744 1584 -740 1548 -740 1588 -1500 784 -1504 828 -1504 784 -744 1584 -1504 780 -744 1588 -1504 784 -744 1576 -1504 784 -1508 824 -1504 784 -744 1580 -1508 784 -736 1588 -1504 784 -744 1576 -4588 788 -752 1560 -1516 788 -744 1560 -1512 +RAW_Data: 828 -744 1548 -736 1588 -744 1544 -744 1580 -748 1544 -744 1580 -748 1544 -736 1588 -744 1544 -744 1580 -744 1544 -748 1580 -748 1540 -740 1588 -740 1548 -740 1584 -744 1544 -744 1580 -744 1548 -740 1584 -1500 788 -1500 828 -1508 776 -744 1584 -1504 784 -744 1584 -1504 780 -744 1580 -1508 780 -1504 824 -1508 780 -744 1588 -1504 784 -740 1584 -1508 780 -744 1580 -4588 788 -748 1556 -1520 788 -752 1552 -1520 828 -740 1548 -740 1588 -740 1544 -744 1584 -748 1540 -744 1588 -736 1548 -740 1584 -748 1544 -744 1584 -744 1544 -744 1584 -740 1548 -744 1584 -744 1544 -744 1580 -744 1548 -744 1584 -740 1548 -740 1584 -1504 784 -1508 824 -1508 784 -744 1580 -1508 780 -744 1584 -1508 780 -748 1576 -1508 780 -1508 824 -1508 776 -748 1580 -1512 776 -748 1580 -1512 772 -752 1572 -4592 784 -752 1556 -1524 780 -756 1552 -1520 824 -748 1540 -748 1580 -748 1540 -752 1580 -744 1544 -748 1580 -748 1540 -748 1580 -744 1548 -740 1584 -748 1544 -744 1580 -748 1540 -744 1584 -744 1544 -744 1584 -748 1544 -744 1580 -744 1548 -740 1580 -1508 780 -1508 824 -1504 784 -744 1584 -1508 780 -740 1588 -1504 784 -744 1580 -1504 784 -1504 824 -1508 780 -748 1580 -1508 780 -744 1584 -1508 780 -740 1580 -4592 788 -748 1556 -1516 788 -748 1556 -1516 828 -744 1544 -744 1588 -736 1548 -744 1580 -744 1548 -744 1580 -748 1540 -744 1584 -740 1552 -744 1580 -744 1548 -740 1584 -744 1544 -748 1580 -744 1544 -744 1584 -744 1548 -740 1588 -744 1544 -744 1584 -1500 784 -1508 828 -1500 788 -740 1584 -1508 780 -748 1584 -1500 784 -744 1580 -1504 780 -1508 828 -1504 784 -740 1588 -1504 784 -744 1584 -1504 784 -740 1560 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Hair-Care_Department.sub b/assets/resources/subghz/Stores/CVS/Hair-Care_Department.sub new file mode 100644 index 000000000..736af1c1e --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Hair-Care_Department.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 808 -740 1560 -1516 792 -740 1560 -1516 832 -736 1548 -740 1584 -736 1548 -744 1584 -740 1544 -744 1584 -740 1548 -736 1588 -744 1544 -740 1584 -736 1548 -744 1584 -736 1548 -736 1588 -740 1544 -740 1588 -736 1548 -744 1580 -744 1548 -732 1584 -1504 784 -1496 828 -1504 780 -1500 828 -1504 780 -1504 824 -1504 784 -740 1588 -1500 784 -740 1584 -1496 788 -1500 824 -1500 788 -1500 824 -1500 788 -1500 820 -4588 788 -752 1556 -1512 792 -744 1560 -1520 828 -736 1548 -744 1584 -740 1552 -736 1588 -744 1544 -740 1588 -740 1548 -744 1580 -748 1544 -740 1588 -740 1548 -740 1588 -736 1552 -740 1584 -740 1552 -736 1588 -740 1552 -740 1584 -744 1544 -740 1584 -1504 788 -1500 824 -1504 784 -1500 824 -1508 780 -1500 832 -1504 784 -740 1588 -1500 784 -744 1580 -1504 784 -1504 824 -1504 780 -1504 824 -1508 780 -1500 828 -4584 792 -748 1560 -1516 788 -748 1556 -1516 828 -740 1548 -740 1592 -736 1548 -740 1588 -740 1548 -736 1588 -740 1548 -744 1584 -740 1552 -740 1588 -740 1548 -744 1584 -740 1552 -740 1588 -740 1552 -732 1592 -740 1552 -736 1588 -740 1548 -744 1588 -1504 780 -1504 824 -1504 784 -1500 828 -1504 784 -1500 832 -1504 780 -744 1588 -1504 780 -740 1584 -1500 788 -1504 824 -1500 788 -1504 824 -1504 784 -1504 820 -4588 792 -748 1560 -1512 792 -748 1556 -1520 828 -740 1548 -736 1588 -744 1548 -740 1584 -736 1552 -744 1584 -740 1548 -740 1588 -744 1544 -744 1584 -740 1548 -744 1584 -740 1548 -740 1588 -740 1548 -744 1584 -740 1544 -744 1588 -740 1548 -736 1588 -1504 788 -1500 824 -1504 784 -1500 828 -1504 784 -1500 832 -1504 784 -740 1588 -1504 780 -744 1580 -1504 788 -1500 824 -1500 792 -1500 820 -1504 788 -1504 820 -4588 788 -744 1564 -1512 792 -744 1564 -1512 832 -740 1548 -740 1584 -744 1548 -736 1588 -740 1548 -744 1584 -740 1548 -744 1584 -740 1548 -740 1588 -736 1552 -736 1584 -748 1548 -740 1584 -740 1548 -744 1584 -744 1548 -736 1588 -744 1548 -740 1588 -1504 780 -1504 824 -1504 784 -1504 820 -1504 788 -1504 828 -1500 788 -740 1584 -1504 784 -744 1580 -1500 788 -1504 820 -1504 788 -1500 820 -1504 788 -1496 828 -4588 788 -748 1560 -1512 792 -748 1556 -1520 832 -736 1552 -736 1588 -744 1544 -740 1588 -740 1548 -744 1588 -740 1548 -736 1588 -744 1548 -744 1584 -740 1548 -740 1588 -740 1548 -740 1592 -736 1548 -744 1584 -744 1548 -736 1588 -736 1552 -744 1580 -1500 792 -1500 824 -1504 784 -1508 820 -1504 780 -1508 828 -1504 784 -744 1584 -1504 784 -744 1580 -1500 788 -1500 824 -1508 780 -1504 828 -1500 788 -1500 828 -4584 788 -748 1560 -1516 792 -744 1560 -1516 +RAW_Data: 832 -740 1552 -736 1588 -740 1548 -744 1584 -740 1548 -736 1588 -740 1552 -740 1588 -736 1552 -736 1588 -744 1548 -740 1588 -736 1552 -740 1584 -744 1548 -740 1588 -744 1544 -740 1588 -740 1548 -744 1584 -1504 784 -1504 824 -1504 784 -1504 820 -1504 788 -1504 824 -1504 788 -740 1584 -1504 784 -744 1580 -1504 784 -1504 820 -1504 784 -1504 824 -1504 784 -1500 828 -4588 788 -748 1560 -1516 792 -748 1556 -1520 828 -740 1552 -740 1584 -744 1544 -744 1588 -740 1548 -744 1584 -744 1544 -744 1584 -740 1552 -740 1588 -740 1548 -740 1588 -740 1548 -744 1588 -740 1548 -740 1588 -740 1552 -736 1588 -736 1552 -744 1584 -1500 792 -1504 820 -1504 784 -1500 828 -1504 780 -1504 832 -1504 780 -744 1588 -1504 788 -732 1588 -1500 784 -1500 828 -1504 784 -1504 820 -1500 788 -1508 820 -4588 788 -744 1564 -1512 792 -752 1552 -1524 824 -740 1552 -740 1588 -740 1548 -744 1584 -740 1548 -740 1584 -744 1548 -744 1584 -736 1548 -740 1588 -744 1548 -740 1588 -736 1548 -740 1588 -744 1548 -740 1588 -736 1552 -740 1588 -740 1548 -740 1588 -1504 784 -1504 824 -1504 784 -1504 824 -1500 792 -1504 828 -1500 788 -740 1584 -1504 788 -740 1584 -1504 780 -1508 820 -1500 792 -1496 824 -1504 788 -1504 820 -4592 788 -748 1560 -1512 796 -744 1560 -1516 824 -748 1544 -740 1588 -736 1552 -744 1584 -740 1548 -740 1588 -740 1548 -740 1588 -740 1548 -740 1588 -736 1548 -744 1584 -744 1544 -744 1588 -740 1548 -744 1584 -740 1548 -744 1584 -740 1548 -740 1588 -1500 788 -1504 820 -1508 784 -1504 824 -1500 788 -1504 828 -1504 784 -744 1584 -1500 792 -736 1584 -1504 784 -1500 828 -1500 788 -1500 824 -1504 788 -1500 804 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Health_Department_OTC_Health.sub b/assets/resources/subghz/Stores/CVS/Health_Department_OTC_Health.sub new file mode 100644 index 000000000..1471421b4 --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Health_Department_OTC_Health.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 796 -756 1548 -1528 772 -760 1544 -1524 820 -752 1532 -756 1568 -752 1536 -752 1568 -756 1532 -752 1572 -756 1532 -756 1568 -756 1532 -752 1572 -756 1528 -752 1576 -752 1536 -748 1572 -752 1536 -752 1572 -752 1532 -752 1572 -752 1536 -752 1572 -1512 772 -1512 816 -1516 768 -756 1572 -1512 772 -752 1568 -1516 768 -1512 812 -1512 772 -1512 816 -1508 776 -1508 812 -1516 772 -1512 820 -1508 776 -748 1568 -4592 780 -756 1548 -1524 776 -756 1548 -1524 816 -756 1532 -752 1572 -752 1532 -756 1568 -756 1532 -756 1568 -756 1528 -760 1564 -764 1524 -760 1568 -756 1528 -760 1564 -760 1528 -764 1560 -760 1528 -760 1564 -760 1524 -764 1564 -760 1524 -760 1564 -1524 764 -1520 808 -1524 764 -760 1568 -1520 764 -760 1560 -1524 764 -1520 804 -1524 764 -1520 804 -1524 764 -1520 804 -1524 760 -1520 812 -1524 760 -760 1560 -4604 772 -764 1540 -1532 772 -768 1536 -1536 808 -760 1528 -756 1568 -760 1528 -760 1564 -760 1528 -760 1564 -760 1528 -760 1564 -760 1528 -756 1568 -760 1528 -760 1564 -764 1524 -760 1564 -760 1528 -760 1564 -760 1528 -760 1564 -760 1528 -760 1564 -1524 764 -1520 808 -1524 764 -760 1564 -1524 764 -760 1564 -1520 768 -1520 804 -1524 764 -1524 804 -1524 764 -1520 804 -1520 764 -1524 808 -1524 764 -756 1560 -4608 768 -768 1540 -1532 772 -764 1540 -1532 812 -760 1528 -760 1564 -760 1528 -764 1564 -760 1524 -764 1564 -760 1528 -760 1568 -756 1532 -760 1564 -760 1528 -760 1568 -756 1532 -760 1564 -764 1528 -760 1564 -760 1532 -756 1568 -764 1524 -760 1568 -1524 764 -1520 808 -1524 764 -760 1568 -1520 768 -760 1564 -1520 768 -1520 808 -1516 772 -1516 812 -1516 772 -1512 816 -1512 776 -1512 820 -1512 776 -748 1576 -4592 784 -756 1556 -1520 780 -756 1552 -1520 828 -744 1540 -748 1584 -744 1544 -744 1584 -744 1540 -748 1584 -744 1544 -744 1584 -740 1548 -744 1584 -740 1548 -744 1584 -740 1552 -740 1584 -744 1544 -740 1588 -744 1544 -740 1592 -740 1548 -740 1584 -1500 788 -1500 832 -1500 788 -740 1584 -1508 780 -740 1584 -1500 784 -1504 824 -1504 784 -1504 820 -1504 788 -1500 824 -1504 784 -1504 828 -1500 788 -740 1580 -4588 792 -740 1560 -1520 788 -752 1556 -1516 828 -740 1548 -740 1588 -740 1548 -740 1588 -744 1544 -744 1584 -744 1540 -744 1588 -744 1544 -744 1584 -740 1548 -744 1580 -744 1548 -744 1584 -744 1544 -744 1584 -740 1548 -740 1588 -740 1548 -744 1584 -1504 784 -1508 828 -1504 780 -744 1584 -1500 792 -736 1584 -1504 784 -1500 828 -1500 784 -1508 820 -1504 784 -1504 820 -1504 780 -1508 828 -1504 784 -740 1580 -4588 788 -748 1560 -1516 788 -748 1556 -1516 +RAW_Data: 828 -740 1548 -740 1584 -744 1544 -740 1588 -740 1548 -740 1584 -740 1548 -740 1588 -740 1544 -740 1588 -740 1548 -740 1588 -744 1540 -748 1580 -740 1548 -744 1584 -740 1548 -744 1580 -744 1548 -740 1584 -1504 784 -1500 828 -1504 784 -744 1584 -1500 788 -740 1580 -1504 784 -1504 820 -1504 784 -1504 828 -1500 784 -1508 820 -1504 784 -1508 820 -1508 784 -744 1576 -4592 792 -744 1560 -1512 792 -748 1560 -1520 824 -740 1548 -744 1584 -740 1548 -740 1588 -744 1544 -740 1588 -740 1548 -740 1588 -744 1544 -740 1588 -740 1548 -740 1588 -740 1552 -740 1588 -740 1548 -736 1592 -736 1548 -748 1584 -744 1544 -740 1584 -1508 780 -1508 828 -1504 780 -744 1584 -1504 788 -736 1584 -1508 776 -1508 824 -1504 784 -1504 820 -1504 784 -1508 820 -1508 776 -1504 832 -1504 780 -744 1580 -4588 792 -744 1560 -1516 788 -748 1556 -1520 832 -736 1548 -744 1588 -740 1548 -744 1584 -740 1548 -740 1588 -744 1544 -744 1584 -744 1544 -744 1584 -740 1548 -744 1584 -740 1552 -736 1588 -744 1548 -744 1584 -736 1552 -740 1584 -748 1544 -740 1584 -1504 780 -1508 828 -1504 784 -744 1584 -1504 780 -748 1576 -1504 784 -1508 820 -1508 780 -1504 820 -1504 784 -1508 820 -1504 784 -1504 824 -1508 784 -740 1580 -4588 788 -748 1564 -1508 796 -744 1560 -1520 828 -736 1548 -744 1588 -736 1548 -744 1580 -744 1548 -740 1588 -740 1552 -740 1584 -740 1548 -744 1588 -736 1548 -744 1584 -740 1548 -744 1584 -744 1544 -744 1584 -740 1548 -744 1580 -744 1544 -748 1580 -1504 784 -1508 824 -1508 776 -748 1584 -1504 780 -744 1580 -1504 784 -1508 816 -1508 784 -1504 824 -1504 784 -1504 824 -1508 780 -1504 824 -1504 788 -740 1560 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Karen_Manager.sub b/assets/resources/subghz/Stores/CVS/Karen_Manager.sub new file mode 100644 index 000000000..efce1ba65 --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Karen_Manager.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 804 -744 1560 -1512 788 -744 1560 -1512 832 -736 1548 -740 1584 -740 1548 -740 1584 -744 1540 -740 1588 -744 1544 -740 1584 -736 1552 -740 1584 -740 1548 -740 1584 -740 1548 -740 1592 -740 1544 -740 1588 -740 1544 -744 1584 -740 1552 -740 1588 -1504 784 -740 1584 -1508 784 -740 1580 -1508 784 -1504 824 -1504 784 -740 1588 -1504 784 -740 1588 -1500 784 -740 1588 -1500 788 -744 1584 -1504 784 -740 1580 -4588 788 -744 1560 -1512 792 -748 1560 -1516 828 -740 1548 -740 1588 -740 1544 -740 1588 -744 1544 -740 1584 -744 1544 -740 1588 -744 1544 -740 1588 -744 1544 -740 1588 -740 1548 -740 1588 -736 1552 -744 1580 -744 1552 -740 1580 -744 1548 -740 1588 -1500 788 -744 1584 -1504 780 -744 1580 -1504 784 -1500 828 -1504 788 -740 1580 -1504 788 -740 1584 -1504 780 -740 1588 -1504 788 -740 1584 -1500 792 -740 1576 -4588 792 -744 1560 -1516 788 -752 1556 -1516 828 -736 1552 -736 1588 -736 1552 -740 1584 -740 1544 -744 1584 -744 1544 -740 1592 -740 1540 -744 1584 -740 1552 -740 1580 -744 1548 -744 1584 -736 1552 -736 1592 -740 1548 -736 1588 -744 1544 -740 1592 -1504 780 -740 1588 -1504 784 -740 1580 -1504 784 -1504 828 -1504 780 -744 1588 -1504 780 -744 1584 -1504 784 -744 1584 -1500 792 -740 1584 -1504 788 -736 1580 -4592 788 -744 1560 -1520 788 -748 1556 -1520 828 -740 1548 -740 1588 -744 1544 -740 1592 -736 1548 -740 1592 -740 1544 -744 1588 -740 1548 -740 1588 -740 1552 -740 1584 -744 1548 -740 1588 -740 1548 -740 1588 -740 1548 -740 1588 -740 1552 -740 1584 -1508 788 -736 1588 -1504 784 -744 1576 -1508 784 -1504 824 -1508 780 -740 1588 -1504 784 -736 1596 -1500 784 -740 1588 -1500 788 -740 1584 -1504 784 -740 1584 -4588 792 -744 1560 -1516 792 -744 1560 -1516 828 -744 1540 -744 1592 -736 1548 -740 1588 -740 1548 -740 1588 -740 1544 -748 1584 -740 1548 -744 1584 -740 1544 -744 1584 -740 1544 -744 1592 -740 1544 -736 1588 -744 1544 -744 1584 -744 1544 -744 1588 -1504 788 -740 1580 -1508 784 -744 1576 -1504 788 -1504 824 -1504 784 -740 1588 -1500 784 -740 1588 -1500 784 -744 1584 -1504 784 -740 1584 -1504 784 -744 1580 -4588 784 -752 1556 -1512 792 -744 1560 -1516 828 -744 1544 -744 1588 -736 1548 -740 1588 -744 1544 -740 1584 -744 1544 -740 1588 -740 1548 -740 1592 -740 1544 -740 1588 -744 1544 -740 1588 -740 1548 -740 1588 -740 1548 -740 1588 -736 1548 -736 1592 -1500 788 -744 1584 -1500 788 -736 1584 -1500 788 -1504 824 -1504 784 -740 1588 -1504 784 -736 1592 -1504 784 -740 1588 -1500 788 -740 1584 -1500 788 -740 1576 -4588 792 -744 1560 -1512 792 -748 1556 -1516 +RAW_Data: 832 -736 1548 -744 1584 -740 1544 -740 1588 -740 1548 -740 1588 -740 1548 -740 1588 -740 1548 -740 1584 -744 1548 -740 1584 -740 1548 -744 1584 -740 1548 -740 1584 -740 1548 -740 1588 -740 1548 -740 1588 -1504 784 -744 1584 -1504 784 -740 1580 -1504 784 -1500 832 -1500 784 -740 1588 -1500 788 -740 1584 -1500 788 -740 1588 -1504 784 -740 1584 -1504 788 -736 1584 -4584 792 -748 1560 -1512 792 -748 1560 -1516 828 -740 1548 -740 1584 -744 1548 -740 1588 -740 1548 -736 1592 -740 1544 -740 1592 -740 1544 -740 1588 -740 1548 -740 1588 -740 1548 -736 1588 -740 1552 -736 1588 -744 1548 -740 1584 -744 1548 -740 1588 -1504 784 -744 1584 -1504 784 -740 1580 -1504 784 -1500 832 -1500 784 -740 1592 -1500 784 -744 1584 -1500 784 -744 1584 -1504 784 -740 1588 -1504 784 -740 1580 -4584 792 -744 1560 -1516 788 -748 1560 -1516 828 -740 1552 -740 1584 -740 1552 -740 1580 -744 1548 -740 1584 -744 1548 -740 1588 -744 1544 -740 1592 -736 1552 -740 1588 -744 1544 -740 1588 -740 1544 -744 1584 -744 1548 -744 1584 -736 1552 -740 1592 -1504 784 -740 1592 -1504 776 -744 1580 -1508 780 -1504 828 -1504 784 -744 1580 -1508 788 -740 1584 -1500 788 -740 1588 -1504 784 -740 1588 -1500 788 -740 1584 -4584 792 -744 1560 -1512 792 -748 1560 -1512 836 -740 1544 -740 1588 -740 1548 -740 1588 -736 1552 -744 1580 -744 1548 -740 1588 -736 1552 -740 1584 -740 1548 -744 1584 -740 1552 -736 1588 -736 1552 -744 1580 -744 1548 -740 1584 -740 1552 -740 1588 -1504 788 -736 1584 -1508 780 -748 1576 -1504 784 -1500 836 -1496 788 -740 1588 -1500 788 -740 1580 -1508 784 -744 1580 -1508 784 -740 1588 -1504 784 -740 1564 -15964 diff --git a/assets/resources/subghz/Stores/CVS/Karen_Security.sub b/assets/resources/subghz/Stores/CVS/Karen_Security.sub new file mode 100644 index 000000000..1f3090427 --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Karen_Security.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 804 -748 1552 -1516 788 -748 1556 -1512 824 -744 1544 -744 1580 -744 1544 -740 1584 -744 1548 -740 1584 -740 1548 -740 1584 -740 1548 -740 1584 -740 1544 -744 1584 -744 1544 -744 1580 -744 1544 -744 1580 -744 1544 -748 1580 -744 1544 -744 1580 -1500 788 -1500 824 -1500 788 -1500 824 -1512 776 -744 1584 -1504 780 -744 1584 -1508 780 -740 1588 -1504 784 -740 1588 -1500 784 -740 1588 -1504 784 -736 1580 -4584 792 -748 1556 -1512 792 -748 1560 -1516 828 -740 1544 -748 1580 -744 1544 -744 1580 -744 1548 -744 1580 -740 1548 -744 1584 -740 1544 -744 1580 -744 1548 -736 1588 -740 1548 -740 1588 -740 1544 -740 1584 -744 1544 -740 1584 -744 1544 -740 1584 -1508 780 -1504 820 -1508 776 -1504 832 -1504 784 -736 1588 -1504 784 -736 1588 -1508 780 -744 1584 -1500 784 -740 1588 -1504 784 -736 1592 -1500 784 -744 1576 -4588 792 -744 1560 -1512 792 -748 1556 -1516 828 -744 1548 -740 1584 -740 1548 -740 1588 -740 1548 -740 1584 -744 1544 -748 1580 -744 1548 -740 1580 -748 1544 -744 1580 -740 1548 -740 1588 -740 1552 -740 1584 -740 1552 -736 1588 -740 1552 -736 1588 -1504 780 -1508 820 -1504 784 -1500 828 -1500 788 -744 1580 -1504 788 -744 1580 -1504 788 -744 1580 -1504 784 -744 1580 -1508 784 -740 1584 -1500 788 -744 1576 -4588 788 -748 1556 -1516 788 -744 1560 -1512 832 -740 1548 -740 1588 -740 1544 -744 1584 -740 1544 -748 1580 -744 1548 -740 1584 -744 1544 -740 1588 -736 1552 -736 1592 -736 1548 -740 1588 -740 1548 -744 1580 -740 1548 -744 1584 -740 1548 -744 1584 -1500 788 -1500 824 -1504 780 -1504 832 -1500 788 -736 1588 -1504 784 -740 1584 -1504 784 -740 1588 -1504 780 -740 1584 -1504 784 -744 1584 -1504 784 -740 1580 -4588 788 -744 1560 -1516 788 -748 1556 -1512 832 -740 1548 -740 1584 -740 1548 -740 1584 -744 1544 -744 1584 -744 1544 -740 1584 -744 1548 -736 1588 -740 1552 -736 1592 -736 1552 -736 1588 -740 1548 -740 1584 -740 1548 -740 1584 -748 1540 -748 1580 -1504 784 -1504 824 -1500 784 -1504 824 -1508 784 -740 1584 -1508 780 -744 1584 -1500 784 -744 1584 -1504 784 -740 1584 -1504 784 -740 1584 -1504 784 -740 1580 -4592 788 -748 1556 -1516 792 -744 1556 -1516 828 -740 1548 -740 1584 -744 1544 -740 1584 -744 1544 -740 1588 -740 1548 -736 1592 -736 1548 -736 1588 -740 1548 -740 1584 -744 1544 -740 1584 -740 1548 -740 1588 -736 1548 -740 1588 -740 1544 -748 1580 -1500 784 -1500 824 -1504 788 -1500 828 -1504 784 -740 1584 -1504 784 -740 1584 -1504 780 -744 1584 -1508 780 -740 1588 -1500 784 -744 1584 -1500 784 -740 1584 -4584 788 -748 1556 -1516 788 -744 1560 -1512 +RAW_Data: 832 -736 1552 -736 1588 -740 1548 -736 1588 -740 1548 -740 1584 -740 1548 -744 1580 -740 1548 -740 1588 -736 1552 -732 1592 -744 1544 -740 1580 -748 1540 -748 1580 -740 1548 -744 1580 -740 1552 -736 1588 -1504 784 -1504 824 -1504 780 -1504 828 -1504 780 -744 1588 -1504 780 -740 1584 -1504 784 -740 1588 -1504 784 -736 1584 -1508 784 -736 1588 -1504 784 -740 1576 -4592 784 -748 1560 -1516 788 -748 1560 -1512 828 -740 1552 -736 1588 -740 1548 -740 1588 -740 1548 -740 1584 -740 1548 -740 1584 -744 1548 -740 1584 -740 1548 -744 1584 -740 1548 -736 1592 -736 1552 -740 1584 -740 1548 -740 1588 -740 1548 -740 1584 -1500 788 -1496 828 -1504 780 -1504 828 -1500 788 -740 1580 -1508 784 -740 1588 -1500 784 -740 1588 -1500 784 -744 1584 -1500 784 -740 1588 -1504 788 -736 1580 -4588 788 -744 1560 -1516 788 -748 1560 -1516 828 -744 1544 -744 1584 -744 1544 -740 1588 -744 1544 -740 1588 -736 1552 -740 1584 -740 1548 -740 1588 -740 1548 -740 1584 -744 1544 -744 1580 -748 1544 -744 1584 -740 1548 -744 1584 -740 1548 -740 1588 -1500 784 -1504 824 -1504 784 -1500 832 -1500 784 -744 1584 -1500 784 -744 1584 -1504 784 -740 1588 -1504 784 -744 1580 -1508 784 -744 1580 -1504 784 -744 1580 -4588 792 -744 1560 -1512 796 -740 1560 -1516 828 -740 1552 -736 1588 -740 1548 -740 1588 -740 1544 -744 1584 -744 1544 -736 1588 -740 1552 -736 1588 -740 1548 -740 1584 -740 1548 -744 1584 -744 1544 -744 1584 -740 1548 -736 1592 -732 1552 -736 1588 -1504 780 -1504 820 -1504 780 -1508 828 -1504 784 -740 1588 -1504 780 -744 1584 -1504 784 -740 1584 -1508 780 -744 1584 -1508 780 -744 1584 -1504 784 -740 1560 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Liquor_Department.sub b/assets/resources/subghz/Stores/CVS/Liquor_Department.sub new file mode 100644 index 000000000..56343f209 --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Liquor_Department.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 804 -744 1560 -1516 788 -744 1560 -1516 828 -744 1544 -744 1580 -748 1540 -744 1588 -740 1544 -740 1584 -740 1552 -740 1584 -744 1544 -740 1580 -744 1548 -736 1588 -740 1548 -740 1584 -740 1552 -740 1584 -740 1544 -740 1588 -744 1540 -744 1592 -1500 784 -744 1580 -1504 784 -1504 828 -1504 780 -744 1576 -1508 780 -1504 828 -1500 784 -744 1588 -1504 784 -740 1588 -1500 784 -744 1580 -1508 784 -736 1580 -4584 792 -748 1556 -1520 784 -748 1560 -1516 828 -740 1544 -744 1588 -736 1548 -740 1584 -744 1544 -736 1588 -740 1544 -744 1584 -744 1544 -740 1584 -744 1544 -744 1584 -740 1544 -744 1584 -740 1544 -748 1580 -740 1548 -740 1588 -736 1552 -740 1592 -1500 784 -736 1584 -1500 784 -1504 832 -1500 784 -740 1584 -1500 784 -1508 828 -1500 788 -740 1584 -1500 784 -740 1588 -1504 780 -740 1584 -1508 776 -748 1580 -4580 792 -744 1564 -1512 788 -748 1556 -1516 832 -740 1548 -736 1588 -744 1548 -740 1588 -736 1548 -744 1584 -740 1548 -740 1588 -740 1548 -740 1584 -744 1548 -740 1584 -740 1548 -740 1588 -744 1544 -744 1584 -736 1552 -740 1584 -740 1544 -748 1584 -1504 784 -744 1576 -1504 788 -1500 824 -1500 788 -740 1580 -1504 784 -1500 828 -1508 780 -744 1584 -1500 784 -740 1588 -1504 784 -740 1588 -1500 784 -744 1580 -4588 784 -748 1560 -1520 788 -748 1560 -1512 828 -740 1552 -740 1584 -740 1548 -744 1584 -744 1544 -740 1588 -736 1548 -740 1580 -744 1548 -740 1588 -740 1544 -744 1584 -740 1548 -744 1584 -736 1552 -736 1588 -736 1552 -740 1584 -744 1544 -740 1584 -1504 788 -736 1584 -1500 784 -1504 828 -1508 776 -748 1576 -1504 784 -1500 828 -1508 780 -744 1580 -1508 776 -744 1584 -1508 780 -736 1584 -1504 784 -744 1580 -4584 788 -748 1552 -1524 788 -744 1556 -1520 824 -748 1540 -744 1580 -744 1548 -744 1576 -752 1548 -732 1584 -744 1540 -748 1584 -744 1540 -744 1584 -744 1548 -744 1580 -744 1544 -748 1584 -740 1556 -732 1584 -744 1544 -748 1580 -748 1540 -748 1588 -1500 780 -744 1584 -1500 780 -1508 828 -1500 784 -748 1576 -1504 788 -1504 820 -1508 788 -736 1588 -1504 776 -744 1588 -1504 784 -744 1576 -1508 784 -744 1576 -4588 788 -752 1556 -1512 788 -748 1560 -1524 816 -748 1544 -748 1576 -748 1544 -740 1588 -740 1548 -744 1580 -748 1544 -736 1584 -748 1540 -748 1588 -740 1544 -740 1588 -748 1536 -748 1576 -752 1540 -748 1576 -752 1536 -748 1580 -752 1536 -748 1580 -1512 776 -748 1572 -1512 776 -1512 824 -1508 776 -748 1576 -1512 772 -1516 816 -1512 776 -752 1576 -1516 776 -748 1576 -1516 776 -748 1576 -1516 772 -756 1568 -4600 784 -756 1548 -1524 780 -756 1552 -1528 +RAW_Data: 816 -756 1536 -752 1576 -748 1536 -760 1572 -748 1540 -748 1572 -756 1532 -756 1580 -744 1544 -748 1580 -744 1544 -748 1580 -748 1536 -752 1576 -748 1540 -748 1584 -748 1536 -748 1580 -752 1536 -752 1584 -1508 776 -752 1572 -1508 776 -1512 820 -1516 768 -756 1568 -1516 776 -1512 816 -1520 772 -752 1572 -1516 772 -752 1576 -1516 768 -756 1572 -1516 772 -752 1568 -4596 776 -760 1544 -1528 776 -760 1544 -1532 812 -756 1532 -756 1568 -760 1528 -756 1572 -756 1532 -756 1572 -756 1532 -756 1568 -760 1528 -760 1568 -756 1532 -756 1568 -760 1528 -760 1568 -760 1528 -756 1572 -760 1524 -760 1568 -760 1528 -760 1572 -1520 768 -756 1564 -1524 764 -1520 812 -1520 764 -760 1564 -1520 764 -1524 808 -1524 768 -756 1568 -1524 764 -764 1564 -1524 764 -760 1568 -1520 768 -760 1556 -4608 768 -764 1544 -1532 772 -764 1544 -1536 808 -764 1524 -760 1568 -760 1528 -760 1568 -756 1532 -756 1568 -764 1524 -760 1568 -760 1528 -764 1564 -764 1524 -760 1568 -764 1524 -760 1568 -760 1528 -760 1568 -760 1528 -760 1568 -760 1528 -760 1572 -1524 764 -760 1564 -1524 764 -1520 812 -1524 764 -756 1564 -1524 768 -1520 812 -1520 764 -760 1568 -1524 764 -760 1568 -1520 768 -760 1564 -1524 764 -764 1556 -4608 772 -768 1540 -1532 772 -768 1540 -1532 812 -760 1528 -760 1564 -760 1528 -760 1568 -760 1528 -760 1568 -760 1528 -760 1568 -760 1528 -760 1568 -760 1528 -760 1564 -760 1528 -760 1568 -760 1528 -760 1564 -764 1528 -756 1568 -760 1528 -760 1568 -1524 768 -756 1560 -1528 760 -1524 808 -1524 764 -760 1560 -1520 768 -1520 808 -1524 764 -760 1564 -1524 764 -760 1568 -1520 768 -760 1564 -1524 764 -760 1544 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Pain_Reliever_Department.sub b/assets/resources/subghz/Stores/CVS/Pain_Reliever_Department.sub new file mode 100644 index 000000000..1eee3d769 --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Pain_Reliever_Department.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 800 -748 1556 -1512 792 -748 1556 -1516 828 -740 1548 -736 1588 -740 1548 -740 1584 -744 1544 -740 1588 -740 1548 -740 1588 -740 1544 -740 1588 -740 1544 -744 1584 -740 1544 -748 1584 -736 1548 -740 1588 -744 1544 -740 1584 -744 1548 -736 1592 -1504 784 -744 1576 -1504 780 -1504 824 -1500 784 -1504 820 -1504 788 -1504 824 -1504 784 -740 1584 -1504 784 -736 1584 -1508 784 -740 1584 -1504 784 -740 1580 -4588 784 -748 1556 -1516 788 -752 1556 -1512 828 -744 1544 -740 1588 -740 1544 -744 1588 -740 1548 -740 1584 -744 1544 -740 1584 -744 1544 -740 1584 -744 1544 -740 1584 -744 1544 -740 1588 -740 1544 -740 1588 -740 1548 -740 1588 -736 1548 -744 1584 -1504 788 -736 1584 -1500 784 -1508 820 -1500 784 -1504 824 -1504 780 -1500 828 -1508 780 -740 1588 -1504 780 -740 1584 -1504 780 -744 1584 -1504 784 -740 1580 -4588 792 -740 1564 -1516 788 -748 1556 -1520 824 -744 1548 -736 1584 -748 1544 -744 1584 -740 1548 -740 1584 -740 1552 -740 1584 -744 1548 -736 1588 -744 1544 -744 1588 -736 1544 -744 1584 -744 1548 -740 1588 -744 1548 -740 1588 -740 1544 -744 1588 -1504 788 -736 1584 -1500 788 -1500 824 -1508 776 -1508 824 -1500 788 -1500 828 -1508 780 -744 1584 -1500 788 -744 1584 -1504 780 -744 1584 -1504 784 -744 1580 -4588 788 -748 1556 -1516 792 -748 1560 -1512 832 -744 1544 -744 1584 -740 1548 -744 1584 -744 1552 -736 1588 -740 1548 -744 1584 -740 1548 -740 1584 -748 1544 -740 1588 -740 1548 -744 1584 -740 1548 -740 1588 -740 1552 -736 1592 -740 1548 -744 1588 -1504 784 -740 1580 -1504 784 -1504 824 -1504 780 -1508 820 -1504 784 -1508 824 -1504 780 -744 1588 -1504 780 -744 1588 -1508 780 -740 1584 -1508 784 -744 1576 -4592 792 -748 1560 -1512 788 -748 1564 -1516 828 -740 1548 -740 1584 -744 1548 -744 1584 -740 1544 -748 1580 -748 1548 -736 1588 -744 1544 -744 1584 -740 1544 -748 1584 -744 1544 -740 1588 -744 1544 -744 1588 -740 1548 -744 1580 -744 1548 -740 1588 -1504 784 -744 1580 -1508 776 -1504 828 -1504 784 -1504 820 -1508 784 -1504 824 -1512 780 -744 1580 -1508 784 -744 1584 -1508 780 -744 1580 -1508 784 -744 1580 -4592 788 -748 1556 -1512 792 -748 1560 -1516 828 -744 1544 -744 1584 -748 1544 -740 1584 -744 1548 -744 1584 -748 1544 -740 1592 -740 1548 -744 1584 -740 1548 -744 1580 -748 1544 -744 1584 -744 1548 -744 1584 -744 1548 -736 1588 -744 1544 -740 1592 -1504 784 -740 1584 -1500 788 -1504 824 -1504 788 -1504 820 -1508 780 -1504 828 -1504 784 -744 1584 -1504 788 -740 1584 -1504 788 -740 1588 -1504 788 -736 1580 -4588 792 -748 1560 -1516 792 -748 1560 -1512 +RAW_Data: 832 -740 1548 -744 1584 -744 1548 -736 1588 -744 1548 -740 1588 -736 1548 -744 1584 -744 1548 -740 1584 -744 1548 -740 1588 -740 1544 -748 1584 -744 1544 -740 1588 -744 1544 -748 1584 -736 1552 -740 1588 -1512 780 -744 1580 -1504 784 -1508 820 -1508 784 -1504 824 -1504 784 -1508 824 -1504 784 -740 1584 -1508 780 -748 1584 -1504 784 -740 1584 -1508 784 -744 1576 -4592 788 -748 1560 -1512 788 -752 1560 -1512 832 -736 1552 -740 1588 -744 1544 -744 1584 -740 1552 -744 1580 -748 1544 -736 1592 -744 1544 -744 1584 -740 1548 -740 1584 -748 1544 -740 1588 -744 1544 -744 1584 -744 1544 -744 1584 -744 1544 -744 1588 -1504 784 -740 1584 -1504 784 -1504 820 -1508 776 -1504 824 -1504 788 -1504 828 -1504 780 -744 1584 -1504 788 -740 1588 -1504 784 -736 1588 -1508 780 -744 1580 -4592 788 -748 1560 -1520 788 -748 1556 -1520 828 -744 1548 -744 1584 -740 1548 -744 1584 -748 1544 -740 1588 -740 1548 -740 1584 -748 1544 -744 1588 -740 1548 -744 1584 -748 1544 -744 1584 -740 1552 -740 1588 -740 1548 -740 1588 -740 1552 -744 1584 -1508 784 -740 1580 -1504 788 -1504 820 -1504 788 -1500 824 -1508 780 -1504 828 -1504 780 -748 1584 -1504 784 -740 1588 -1508 780 -740 1588 -1504 784 -744 1576 -4592 792 -748 1560 -1516 784 -752 1556 -1520 828 -736 1552 -744 1580 -748 1540 -748 1584 -740 1552 -740 1584 -748 1544 -744 1584 -740 1552 -744 1580 -748 1544 -744 1584 -740 1552 -744 1584 -744 1544 -740 1592 -736 1548 -744 1588 -740 1548 -736 1596 -1504 780 -744 1584 -1504 784 -1504 820 -1508 784 -1500 824 -1504 788 -1504 824 -1508 784 -740 1588 -1504 780 -748 1584 -1500 788 -740 1588 -1508 784 -740 1560 -15964 diff --git a/assets/resources/subghz/Stores/CVS/Pharmacy.sub b/assets/resources/subghz/Stores/CVS/Pharmacy.sub new file mode 100644 index 000000000..da8fd6894 --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Pharmacy.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 804 -744 1564 -1508 792 -748 1560 -1516 828 -740 1548 -740 1584 -740 1548 -740 1588 -744 1544 -740 1584 -740 1552 -736 1588 -740 1552 -740 1584 -748 1544 -740 1588 -740 1548 -740 1588 -736 1548 -740 1588 -744 1548 -740 1584 -744 1548 -736 1588 -1500 788 -1504 820 -1504 784 -1500 828 -1496 792 -1504 824 -1504 788 -740 1580 -1508 784 -1504 824 -1500 792 -736 1584 -1500 788 -1500 828 -1500 788 -1500 824 -4588 792 -744 1560 -1516 792 -744 1560 -1520 828 -744 1548 -740 1588 -736 1552 -736 1588 -740 1552 -740 1588 -740 1552 -740 1584 -740 1552 -740 1588 -740 1544 -744 1588 -740 1552 -740 1588 -740 1548 -740 1588 -740 1552 -740 1584 -740 1552 -744 1584 -1500 788 -1504 820 -1508 780 -1504 824 -1504 784 -1500 832 -1504 784 -744 1576 -1504 784 -1504 832 -1504 784 -740 1580 -1508 780 -1504 820 -1504 792 -1504 824 -4584 792 -752 1556 -1516 792 -744 1564 -1512 832 -740 1552 -736 1588 -736 1552 -740 1588 -744 1548 -740 1584 -744 1552 -736 1592 -736 1552 -736 1592 -740 1548 -744 1584 -744 1548 -744 1584 -740 1552 -736 1592 -736 1548 -740 1588 -740 1548 -740 1588 -1504 784 -1500 828 -1504 788 -1500 824 -1508 776 -1508 832 -1500 788 -736 1588 -1504 780 -1504 828 -1500 792 -736 1584 -1500 788 -1504 824 -1500 784 -1508 820 -4588 788 -752 1556 -1516 792 -744 1560 -1516 828 -740 1548 -740 1588 -740 1548 -740 1588 -740 1548 -740 1588 -744 1544 -744 1588 -740 1548 -744 1584 -744 1548 -736 1588 -740 1552 -736 1588 -740 1548 -744 1588 -740 1548 -744 1584 -740 1552 -736 1592 -1500 788 -1504 820 -1508 784 -1500 832 -1500 784 -1508 824 -1504 788 -740 1580 -1504 788 -1504 828 -1504 788 -736 1588 -1500 784 -1508 820 -1508 780 -1504 828 -4588 792 -748 1564 -1508 796 -748 1560 -1516 828 -740 1556 -736 1588 -740 1548 -744 1588 -740 1548 -744 1584 -744 1548 -740 1592 -732 1552 -740 1588 -744 1548 -740 1588 -744 1544 -744 1588 -740 1552 -736 1588 -740 1552 -740 1588 -744 1548 -740 1588 -1500 788 -1504 824 -1504 784 -1504 824 -1504 788 -1508 824 -1504 788 -740 1588 -1500 784 -1508 828 -1500 788 -740 1588 -1504 780 -1508 820 -1500 792 -1500 828 -4588 792 -748 1560 -1520 788 -744 1568 -1512 828 -740 1552 -740 1588 -744 1548 -740 1588 -740 1552 -740 1588 -736 1552 -744 1584 -740 1552 -744 1584 -744 1548 -740 1588 -740 1552 -740 1584 -744 1548 -744 1584 -744 1548 -740 1588 -740 1548 -740 1588 -1504 784 -1504 824 -1504 784 -1500 828 -1504 784 -1508 824 -1500 792 -736 1584 -1500 792 -1504 828 -1500 792 -736 1584 -1504 788 -1504 820 -1508 784 -1500 828 -4588 796 -744 1560 -1516 792 -748 1560 -1520 +RAW_Data: 828 -740 1548 -740 1588 -740 1552 -744 1584 -740 1552 -740 1588 -740 1548 -744 1584 -740 1548 -740 1588 -740 1552 -740 1588 -744 1548 -744 1584 -740 1548 -740 1588 -740 1552 -736 1592 -740 1548 -744 1584 -1504 788 -1500 828 -1500 788 -1504 820 -1508 784 -1504 828 -1508 780 -740 1584 -1504 784 -1508 828 -1508 780 -740 1584 -1504 788 -1500 824 -1508 784 -1508 820 -4592 792 -744 1560 -1516 792 -744 1564 -1512 832 -740 1552 -736 1588 -740 1552 -740 1592 -740 1548 -740 1592 -740 1548 -740 1588 -740 1552 -740 1588 -740 1548 -744 1584 -744 1548 -740 1592 -736 1556 -736 1588 -740 1552 -740 1584 -748 1548 -744 1580 -1504 788 -1504 824 -1504 788 -1500 824 -1504 784 -1504 828 -1500 792 -736 1584 -1500 788 -1500 832 -1500 788 -740 1584 -1504 780 -1508 820 -1504 784 -1504 820 -4588 792 -744 1564 -1512 792 -744 1564 -1516 828 -744 1544 -744 1584 -740 1548 -744 1584 -740 1552 -736 1592 -740 1552 -736 1588 -744 1544 -740 1584 -744 1548 -740 1588 -740 1548 -744 1584 -740 1548 -736 1592 -740 1548 -740 1592 -736 1548 -744 1580 -1512 780 -1508 824 -1496 788 -1500 828 -1500 788 -1504 832 -1496 792 -736 1584 -1508 780 -1508 824 -1508 784 -736 1584 -1500 784 -1508 824 -1508 780 -1504 824 -4588 792 -744 1564 -1512 796 -740 1564 -1516 828 -740 1552 -740 1588 -740 1548 -740 1588 -740 1548 -740 1588 -740 1552 -740 1588 -744 1548 -736 1592 -740 1552 -740 1588 -740 1548 -740 1588 -740 1548 -744 1584 -740 1552 -736 1592 -740 1548 -736 1588 -1508 780 -1508 824 -1500 788 -1504 820 -1508 788 -1500 828 -1504 788 -740 1584 -1504 784 -1504 828 -1504 784 -744 1580 -1500 788 -1504 824 -1504 788 -1496 808 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Photo_Lab.sub b/assets/resources/subghz/Stores/CVS/Photo_Lab.sub new file mode 100644 index 000000000..3f2dd32f9 --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Photo_Lab.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 804 -740 1560 -1520 784 -744 1560 -1516 828 -740 1544 -748 1580 -740 1548 -740 1580 -748 1544 -748 1580 -736 1548 -752 1576 -748 1544 -740 1588 -744 1540 -748 1580 -744 1544 -740 1588 -744 1540 -748 1576 -752 1540 -748 1576 -740 1548 -740 1588 -1504 784 -744 1584 -1500 784 -744 1588 -1496 784 -748 1576 -1500 784 -1516 816 -1504 784 -1500 832 -1500 784 -744 1580 -1508 784 -744 1580 -1504 784 -740 1580 -4584 792 -744 1560 -1512 792 -756 1548 -1520 824 -748 1540 -744 1580 -740 1548 -748 1576 -744 1548 -740 1584 -740 1548 -740 1588 -744 1544 -744 1584 -740 1544 -740 1588 -744 1544 -740 1584 -748 1544 -740 1584 -748 1540 -740 1584 -748 1544 -748 1576 -1508 784 -744 1584 -1508 776 -744 1584 -1508 776 -744 1576 -1504 788 -1504 816 -1504 788 -1504 824 -1508 780 -744 1580 -1508 780 -740 1584 -1504 784 -744 1576 -4584 792 -744 1560 -1516 788 -748 1560 -1516 824 -744 1548 -744 1580 -740 1544 -744 1584 -740 1548 -740 1588 -744 1544 -748 1576 -748 1540 -748 1584 -740 1544 -744 1580 -744 1548 -744 1580 -740 1548 -744 1584 -740 1544 -748 1584 -740 1544 -744 1584 -1508 780 -740 1588 -1500 784 -748 1580 -1500 784 -744 1580 -1504 784 -1500 824 -1508 780 -1504 824 -1512 780 -740 1588 -1504 784 -748 1576 -1504 784 -748 1572 -4592 788 -752 1552 -1516 792 -752 1552 -1520 824 -740 1548 -744 1584 -748 1540 -744 1588 -744 1544 -748 1580 -744 1544 -752 1580 -744 1544 -748 1580 -748 1540 -740 1588 -740 1548 -748 1580 -744 1544 -740 1584 -740 1548 -740 1588 -740 1548 -740 1588 -1504 780 -748 1584 -1500 784 -744 1584 -1504 784 -740 1576 -1512 780 -1504 820 -1504 784 -1504 824 -1508 780 -744 1580 -1508 780 -748 1580 -1500 784 -748 1576 -4584 788 -752 1552 -1520 784 -744 1560 -1512 832 -740 1544 -744 1580 -740 1548 -748 1580 -740 1548 -736 1588 -744 1540 -748 1584 -740 1544 -748 1576 -748 1544 -744 1580 -740 1548 -748 1580 -744 1540 -740 1588 -740 1548 -744 1580 -748 1540 -744 1588 -1504 780 -744 1584 -1504 780 -744 1584 -1508 780 -744 1576 -1500 784 -1508 820 -1500 784 -1504 828 -1504 784 -744 1580 -1508 780 -748 1576 -1516 776 -740 1576 -4588 788 -756 1552 -1516 792 -748 1552 -1516 828 -740 1548 -748 1576 -748 1540 -748 1584 -740 1544 -748 1580 -748 1544 -740 1580 -744 1548 -748 1580 -740 1548 -740 1588 -748 1536 -744 1584 -740 1544 -748 1576 -740 1552 -740 1584 -740 1552 -744 1580 -1516 772 -748 1580 -1504 784 -744 1584 -1500 784 -748 1576 -1504 784 -1508 816 -1508 780 -1508 824 -1508 780 -744 1580 -1504 784 -744 1584 -1508 776 -748 1572 -4588 792 -744 1564 -1512 792 -744 1560 -1516 +RAW_Data: 828 -748 1540 -748 1580 -740 1552 -748 1576 -748 1548 -740 1584 -736 1552 -744 1580 -740 1548 -748 1580 -748 1540 -740 1588 -740 1548 -740 1584 -744 1548 -744 1580 -744 1548 -740 1584 -740 1548 -744 1584 -1508 784 -740 1588 -1504 784 -744 1584 -1508 780 -744 1576 -1500 788 -1512 816 -1504 780 -1508 828 -1504 784 -740 1584 -1512 776 -740 1592 -1500 784 -744 1580 -4584 792 -748 1560 -1520 784 -752 1556 -1512 832 -744 1548 -740 1588 -744 1544 -744 1584 -740 1548 -736 1588 -748 1544 -744 1580 -740 1552 -744 1580 -748 1544 -740 1588 -740 1544 -748 1580 -744 1548 -748 1580 -740 1552 -736 1588 -748 1544 -736 1592 -1512 776 -748 1584 -1504 784 -744 1584 -1508 780 -744 1580 -1504 788 -1500 828 -1508 780 -1500 832 -1504 780 -744 1584 -1504 788 -740 1588 -1504 788 -736 1580 -4596 792 -748 1560 -1516 788 -748 1560 -1512 836 -744 1544 -740 1588 -740 1552 -744 1584 -744 1544 -744 1584 -744 1544 -740 1588 -748 1544 -740 1584 -752 1536 -748 1584 -740 1548 -748 1584 -740 1548 -740 1588 -744 1548 -740 1584 -752 1544 -740 1592 -1508 780 -744 1584 -1508 784 -744 1588 -1496 784 -748 1576 -1504 788 -1500 824 -1504 788 -1504 828 -1504 784 -748 1580 -1516 776 -744 1584 -1508 780 -748 1580 -4596 784 -756 1552 -1520 784 -752 1556 -1520 828 -744 1548 -744 1584 -740 1548 -740 1588 -740 1552 -744 1580 -744 1548 -744 1584 -748 1544 -748 1580 -744 1548 -740 1588 -744 1548 -744 1584 -744 1544 -740 1588 -748 1544 -740 1588 -744 1544 -748 1584 -1504 784 -744 1584 -1508 784 -744 1580 -1512 780 -744 1580 -1500 788 -1504 820 -1512 776 -1512 824 -1508 780 -740 1588 -1508 780 -748 1580 -1504 788 -744 1560 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Pre-Recorded_Video_Department.sub b/assets/resources/subghz/Stores/CVS/Pre-Recorded_Video_Department.sub new file mode 100644 index 000000000..ebd337325 --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Pre-Recorded_Video_Department.sub @@ -0,0 +1,9 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 800 -752 1552 -1512 792 -748 1556 -1516 828 -740 1548 -736 1588 -744 1544 -740 1584 -740 1552 -736 1584 -744 1544 -744 1584 -740 1548 -740 1580 -748 1544 -740 1580 -744 1548 -744 1580 -740 1548 -744 1584 -740 1548 -740 1588 -740 1548 -736 1592 -1500 788 -740 1584 -1500 788 -1500 824 -1512 780 -740 1592 -1500 784 -736 1584 -1504 784 -1504 824 -1504 784 -740 1588 -1504 784 -736 1588 -1500 788 -740 1580 -4588 788 -748 1556 -1516 788 -748 1560 -1516 828 -740 1548 -740 1584 -740 1552 -736 1588 -740 1552 -740 1584 -748 1544 -744 1580 -748 1540 -744 1592 -736 1548 -740 1588 -736 1552 -740 1584 -740 1552 -736 1588 -740 1548 -740 1588 -740 1548 -744 1584 -1508 780 -740 1584 -1504 780 -1504 828 -1508 780 -740 1584 -1508 776 -748 1580 -1500 788 -1500 832 -1500 784 -744 1584 -1504 784 -740 1588 -1504 784 -740 1580 -4588 788 -748 1556 -1512 792 -748 1560 -1512 832 -736 1544 -748 1584 -740 1548 -736 1592 -740 1544 -744 1584 -740 1552 -740 1584 -744 1548 -736 1588 -744 1548 -740 1588 -740 1548 -740 1584 -744 1548 -740 1588 -736 1548 -744 1588 -740 1544 -740 1588 -1504 784 -736 1584 -1504 784 -1500 828 -1504 784 -744 1580 -1504 784 -740 1580 -1508 780 -1508 824 -1504 784 -744 1584 -1504 784 -740 1584 -1504 784 -744 1580 -4584 788 -748 1564 -1512 792 -744 1560 -1516 828 -740 1552 -740 1584 -740 1548 -740 1588 -740 1544 -744 1584 -744 1544 -740 1588 -736 1548 -744 1580 -748 1540 -744 1588 -740 1548 -744 1580 -740 1544 -744 1588 -740 1544 -744 1584 -740 1548 -736 1596 -1496 784 -744 1580 -1504 780 -1508 824 -1508 780 -744 1584 -1508 776 -748 1576 -1508 780 -1508 820 -1512 776 -748 1580 -1508 776 -744 1584 -1508 780 -740 1580 -4592 784 -752 1552 -1516 792 -748 1556 -1516 828 -744 1540 -744 1584 -740 1548 -744 1584 -740 1548 -744 1584 -736 1548 -740 1584 -744 1544 -740 1588 -740 1548 -740 1584 -744 1544 -740 1588 -744 1544 -740 1584 -740 1548 -740 1588 -740 1544 -748 1584 -1504 784 -740 1576 -1504 788 -1504 828 -1496 792 -736 1588 -1508 780 -740 1580 -1504 784 -1508 820 -1512 784 -740 1580 -1504 784 -744 1584 -1508 780 -744 1572 -4592 788 -752 1560 -1512 788 -752 1552 -1516 832 -740 1548 -740 1584 -748 1540 -744 1580 -744 1544 -748 1580 -744 1544 -740 1584 -744 1548 -744 1580 -744 1548 -740 1584 -744 1544 -740 1588 -740 1544 -744 1584 -744 1544 -748 1580 -740 1552 -744 1584 -1508 780 -744 1576 -1504 784 -1504 828 -1504 780 -748 1580 -1504 784 -744 1576 -1508 788 -1504 824 -1508 780 -740 1588 -1500 788 -744 1584 -1500 788 -740 1580 -4588 788 -752 1552 -1520 788 -748 1556 -1520 +RAW_Data: 828 -740 1548 -744 1584 -744 1540 -748 1580 -744 1548 -740 1588 -740 1548 -740 1584 -744 1544 -740 1588 -736 1552 -736 1592 -740 1544 -744 1588 -736 1548 -744 1584 -740 1548 -736 1588 -744 1548 -740 1588 -1500 788 -736 1584 -1504 780 -1504 824 -1508 780 -740 1588 -1504 784 -740 1580 -1504 784 -1504 820 -1508 784 -744 1580 -1508 780 -740 1584 -1504 784 -740 1576 -4588 788 -748 1556 -1516 788 -752 1552 -1516 832 -740 1544 -744 1580 -748 1544 -740 1588 -740 1540 -748 1584 -736 1548 -744 1584 -744 1544 -744 1584 -740 1552 -736 1588 -736 1548 -740 1584 -744 1548 -740 1584 -740 1548 -740 1584 -740 1548 -740 1588 -1504 784 -740 1580 -1504 784 -1504 828 -1504 784 -740 1584 -1504 784 -740 1580 -1508 780 -1504 828 -1508 780 -744 1584 -1504 784 -744 1580 -1508 776 -748 1576 -4588 784 -752 1552 -1524 780 -756 1552 -1520 824 -748 1540 -748 1576 -752 1536 -752 1572 -756 1532 -760 1564 -760 1528 -760 1564 -760 1528 -760 1564 -760 1528 -760 1564 -760 1528 -760 1564 -764 1524 -760 1568 -760 1528 -760 1564 -764 1524 -764 1568 -1524 760 -764 1556 -1528 760 -1524 804 -1528 760 -764 1560 -1532 756 -764 1548 -1568 716 -15964 +RAW_Data: 712 -788 1524 -1536 812 -756 1532 -756 1568 -760 1528 -760 1568 -756 1532 -756 1572 -756 1528 -760 1568 -760 1532 -756 1568 -760 1528 -760 1564 -760 1528 -760 1568 -756 1532 -756 1568 -756 1528 -760 1568 -760 1528 -756 1572 -1520 764 -760 1564 -1520 764 -1520 812 -1520 764 -760 1568 -1520 764 -764 1560 -1520 768 -1520 808 -1520 768 -760 1568 -1520 768 -756 1568 -1520 768 -756 1544 -15724 diff --git a/assets/resources/subghz/Stores/CVS/Recordable_Media_Department.sub b/assets/resources/subghz/Stores/CVS/Recordable_Media_Department.sub new file mode 100644 index 000000000..73cd2f7ad --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Recordable_Media_Department.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 804 -740 1564 -1512 788 -748 1556 -1512 832 -740 1540 -748 1580 -740 1548 -740 1584 -740 1548 -744 1584 -736 1552 -736 1588 -740 1544 -736 1588 -744 1544 -740 1588 -736 1552 -736 1584 -744 1540 -744 1588 -740 1548 -736 1588 -740 1544 -740 1584 -1504 784 -1504 824 -1504 784 -740 1576 -1508 780 -1504 828 -1504 784 -740 1584 -1504 784 -736 1584 -1504 780 -1504 824 -1504 780 -1508 820 -1504 784 -1500 824 -4588 788 -748 1560 -1512 788 -748 1560 -1512 828 -744 1544 -740 1588 -740 1544 -744 1588 -740 1548 -740 1584 -744 1548 -740 1588 -740 1548 -736 1588 -744 1544 -744 1584 -740 1548 -740 1588 -736 1552 -744 1580 -744 1548 -740 1584 -744 1544 -748 1584 -1496 788 -1504 828 -1500 788 -736 1584 -1504 780 -1508 828 -1504 784 -740 1580 -1508 788 -736 1584 -1504 780 -1508 820 -1504 788 -1500 824 -1500 784 -1504 824 -4580 792 -748 1560 -1512 792 -744 1564 -1512 828 -744 1544 -740 1588 -740 1548 -740 1584 -744 1544 -744 1584 -744 1548 -732 1592 -740 1544 -748 1584 -740 1544 -740 1588 -736 1552 -740 1584 -744 1544 -740 1588 -740 1548 -736 1588 -740 1548 -744 1584 -1504 784 -1500 828 -1504 784 -740 1584 -1504 780 -1508 824 -1504 784 -740 1588 -1504 784 -740 1580 -1504 784 -1504 820 -1504 788 -1500 824 -1504 780 -1504 824 -4588 792 -744 1552 -1524 784 -752 1556 -1516 828 -740 1552 -736 1588 -744 1548 -740 1588 -736 1548 -740 1584 -748 1544 -740 1588 -740 1552 -736 1588 -736 1552 -740 1588 -740 1544 -744 1584 -740 1548 -740 1584 -744 1548 -740 1588 -736 1552 -736 1588 -1508 784 -1500 832 -1500 784 -744 1580 -1500 792 -1500 824 -1508 788 -736 1588 -1504 780 -744 1576 -1508 788 -1500 824 -1504 784 -1508 820 -1504 780 -1508 820 -4588 792 -740 1560 -1516 792 -748 1556 -1516 828 -740 1548 -744 1584 -740 1548 -744 1584 -740 1548 -740 1588 -736 1548 -744 1588 -740 1548 -744 1584 -740 1548 -740 1584 -740 1548 -740 1588 -740 1548 -740 1588 -736 1552 -736 1584 -744 1548 -744 1580 -1504 784 -1500 832 -1500 788 -740 1580 -1504 788 -1496 832 -1504 780 -740 1592 -1500 784 -740 1580 -1508 776 -1508 824 -1500 784 -1508 820 -1504 784 -1500 828 -4588 784 -748 1560 -1516 788 -744 1564 -1512 832 -736 1548 -744 1584 -744 1548 -740 1584 -740 1548 -744 1580 -748 1544 -740 1588 -744 1544 -740 1588 -736 1552 -740 1584 -744 1548 -740 1588 -740 1548 -736 1588 -740 1548 -744 1584 -740 1548 -740 1584 -1504 784 -1504 828 -1504 784 -740 1580 -1508 780 -1508 828 -1500 784 -736 1592 -1504 784 -740 1580 -1504 788 -1500 820 -1504 784 -1504 824 -1504 784 -1504 820 -4592 788 -744 1560 -1520 784 -752 1556 -1520 +RAW_Data: 828 -740 1548 -740 1584 -744 1548 -740 1588 -740 1548 -736 1592 -740 1548 -740 1588 -740 1548 -744 1584 -740 1552 -736 1588 -740 1552 -740 1592 -736 1548 -740 1588 -740 1548 -740 1588 -744 1548 -740 1588 -1500 784 -1508 824 -1504 788 -740 1580 -1500 788 -1504 828 -1500 788 -740 1588 -1500 788 -736 1584 -1508 776 -1508 820 -1504 784 -1500 824 -1508 780 -1508 820 -4588 788 -748 1560 -1516 788 -744 1560 -1516 832 -740 1548 -740 1588 -744 1544 -740 1588 -736 1552 -740 1588 -736 1548 -748 1580 -748 1544 -744 1588 -736 1548 -740 1588 -740 1552 -740 1584 -740 1552 -740 1584 -744 1548 -740 1588 -736 1552 -736 1588 -1504 784 -1504 828 -1504 784 -740 1584 -1508 780 -1504 832 -1496 788 -740 1588 -1504 780 -740 1584 -1500 784 -1508 820 -1500 788 -1500 828 -1504 780 -1504 824 -4584 792 -744 1560 -1516 792 -740 1564 -1512 832 -736 1552 -744 1584 -744 1544 -740 1588 -736 1552 -740 1588 -740 1548 -744 1584 -740 1552 -740 1584 -744 1548 -740 1588 -740 1544 -748 1580 -744 1548 -740 1584 -740 1552 -736 1588 -740 1548 -740 1584 -1508 780 -1504 828 -1508 780 -744 1580 -1504 780 -1504 832 -1500 784 -740 1588 -1500 784 -744 1580 -1504 780 -1504 824 -1500 788 -1504 824 -1504 780 -1508 820 -4584 792 -748 1560 -1512 792 -748 1556 -1512 832 -744 1544 -744 1584 -740 1552 -736 1588 -740 1548 -740 1588 -744 1544 -744 1584 -744 1548 -736 1592 -736 1552 -740 1584 -744 1544 -744 1584 -744 1548 -740 1584 -740 1548 -740 1588 -740 1548 -740 1584 -1504 784 -1504 832 -1504 780 -744 1580 -1504 784 -1508 824 -1508 780 -744 1584 -1508 780 -744 1576 -1504 784 -1504 828 -1500 784 -1508 820 -1504 784 -1504 800 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Skin_Care_Department.sub b/assets/resources/subghz/Stores/CVS/Skin_Care_Department.sub new file mode 100644 index 000000000..94a9116d2 --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Skin_Care_Department.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 804 -744 1556 -1520 784 -748 1556 -1520 820 -744 1544 -744 1580 -744 1544 -740 1584 -744 1544 -744 1584 -744 1544 -744 1580 -744 1544 -740 1580 -744 1544 -744 1584 -744 1544 -744 1584 -740 1548 -744 1584 -744 1544 -740 1584 -744 1544 -744 1584 -1508 784 -740 1576 -1508 780 -1508 816 -1508 780 -1504 828 -1504 780 -748 1580 -1508 780 -740 1580 -1508 780 -1508 824 -1508 780 -744 1584 -1504 780 -748 1576 -4588 792 -748 1556 -1524 784 -752 1552 -1520 824 -740 1552 -740 1584 -744 1544 -748 1584 -740 1548 -744 1584 -740 1548 -744 1580 -744 1544 -744 1584 -740 1544 -748 1572 -760 1540 -744 1584 -740 1548 -744 1580 -744 1548 -740 1584 -740 1548 -736 1592 -1504 780 -748 1580 -1504 784 -1504 820 -1508 780 -1508 824 -1504 780 -744 1588 -1504 784 -744 1576 -1508 780 -1508 828 -1500 784 -744 1580 -1508 784 -740 1576 -4588 792 -744 1556 -1524 784 -748 1560 -1516 828 -744 1544 -740 1584 -740 1548 -740 1584 -744 1544 -748 1580 -744 1548 -736 1584 -744 1532 -752 1588 -772 1504 -764 1564 -760 1528 -760 1564 -760 1528 -760 1568 -760 1528 -760 1564 -764 1524 -760 1572 -1524 764 -760 1560 -1528 764 -1520 804 -1524 764 -1524 804 -1524 764 -760 1568 -1524 764 -760 1560 -1528 764 -1520 808 -1528 764 -760 1564 -1524 768 -760 1560 -4612 764 -768 1540 -1536 768 -764 1540 -1540 804 -764 1524 -764 1564 -760 1532 -760 1564 -760 1528 -760 1568 -764 1524 -760 1568 -764 1524 -760 1568 -764 1520 -760 1568 -760 1528 -760 1564 -760 1528 -764 1560 -768 1516 -776 1552 -780 1504 -788 1540 -1572 716 -828 1488 -1744 544 -15924 +RAW_Data: 748 -1556 732 -1548 784 -1544 748 -772 1556 -1532 756 -768 1556 -1524 764 -1524 808 -1524 764 -760 1568 -1516 772 -756 1560 -4604 776 -764 1540 -1536 772 -764 1540 -1536 812 -756 1532 -764 1564 -760 1528 -764 1568 -760 1528 -760 1568 -760 1524 -764 1564 -760 1532 -760 1568 -760 1528 -760 1568 -760 1528 -760 1564 -764 1528 -756 1572 -756 1532 -756 1568 -756 1532 -760 1568 -1524 764 -764 1560 -1520 768 -1520 808 -1520 764 -1524 808 -1524 764 -760 1568 -1524 764 -760 1560 -1524 768 -1520 808 -1520 768 -760 1568 -1524 768 -756 1564 -4608 772 -768 1536 -1536 772 -768 1540 -1532 812 -760 1528 -760 1568 -764 1528 -760 1568 -760 1528 -760 1568 -760 1532 -760 1568 -760 1528 -764 1568 -760 1532 -760 1568 -760 1528 -760 1568 -760 1532 -760 1568 -760 1528 -760 1568 -760 1532 -760 1572 -1520 768 -760 1560 -1524 764 -1524 804 -1524 764 -1524 808 -1524 764 -760 1568 -1524 764 -760 1564 -1524 764 -1520 812 -1524 764 -760 1568 -1524 764 -760 1564 -4604 772 -768 1536 -1536 768 -768 1540 -1536 812 -760 1528 -760 1568 -760 1528 -760 1568 -764 1528 -756 1572 -756 1532 -760 1568 -760 1528 -760 1568 -760 1528 -764 1564 -760 1532 -760 1564 -764 1524 -764 1564 -760 1532 -760 1564 -760 1532 -760 1568 -1524 768 -756 1564 -1524 764 -1524 804 -1524 764 -1524 808 -1524 768 -756 1572 -1520 768 -760 1564 -1520 764 -1524 808 -1524 768 -760 1564 -1524 764 -760 1560 -4612 768 -768 1540 -1532 772 -768 1540 -1536 808 -760 1528 -760 1568 -760 1528 -760 1568 -760 1528 -760 1564 -764 1528 -760 1568 -760 1528 -760 1568 -760 1528 -760 1568 -760 1528 -760 1568 -760 1528 -760 1568 -760 1532 -756 1568 -764 1528 -760 1568 -1524 764 -764 1560 -1524 764 -1524 804 -1524 764 -1524 808 -1524 764 -760 1568 -1524 768 -760 1560 -1524 764 -1524 808 -1524 764 -764 1564 -1524 768 -760 1560 -4604 772 -768 1540 -1532 776 -764 1540 -1532 812 -760 1532 -760 1564 -760 1532 -760 1568 -756 1528 -764 1564 -760 1528 -764 1564 -760 1528 -760 1568 -760 1528 -760 1568 -760 1528 -760 1568 -756 1532 -760 1568 -760 1528 -760 1568 -760 1532 -760 1568 -1524 764 -764 1560 -1524 764 -1524 804 -1524 764 -1524 808 -1524 764 -760 1568 -1524 764 -760 1564 -1524 764 -1520 812 -1520 768 -760 1568 -1520 768 -760 1540 -15724 diff --git a/assets/resources/subghz/Stores/CVS/Small_Appliances.sub b/assets/resources/subghz/Stores/CVS/Small_Appliances.sub new file mode 100644 index 000000000..13cf9e8ad --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Small_Appliances.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 800 -744 1564 -1508 792 -748 1556 -1508 828 -744 1544 -740 1588 -740 1548 -740 1584 -740 1548 -740 1584 -740 1548 -744 1584 -740 1544 -740 1588 -744 1540 -740 1588 -740 1544 -740 1588 -744 1544 -740 1588 -736 1548 -740 1588 -740 1544 -740 1592 -1500 784 -740 1580 -1508 780 -1500 828 -1508 784 -740 1576 -1508 780 -1500 824 -1504 784 -1500 828 -1504 784 -740 1588 -1500 784 -740 1584 -1504 780 -744 1580 -4580 792 -748 1556 -1516 792 -748 1556 -1512 832 -740 1548 -740 1584 -740 1548 -740 1584 -740 1552 -732 1588 -744 1548 -736 1588 -740 1548 -744 1584 -736 1548 -740 1584 -744 1548 -740 1584 -744 1544 -740 1588 -744 1544 -744 1584 -740 1544 -744 1588 -1504 784 -740 1580 -1504 784 -1504 824 -1504 788 -736 1584 -1500 784 -1504 824 -1500 780 -1512 824 -1500 784 -744 1584 -1504 784 -744 1584 -1504 780 -744 1580 -4588 788 -744 1564 -1516 788 -744 1560 -1512 832 -740 1548 -744 1580 -748 1544 -740 1588 -740 1544 -748 1584 -736 1552 -740 1584 -744 1544 -740 1588 -744 1544 -744 1580 -744 1548 -744 1584 -740 1548 -740 1584 -744 1544 -740 1588 -744 1544 -740 1592 -1500 788 -744 1576 -1508 784 -1504 824 -1504 788 -736 1584 -1504 784 -1500 828 -1504 784 -1496 832 -1504 788 -740 1580 -1508 784 -744 1584 -1500 784 -744 1572 -4596 788 -744 1560 -1512 792 -748 1556 -1516 828 -740 1548 -740 1584 -744 1548 -740 1584 -740 1548 -740 1588 -740 1544 -744 1588 -740 1548 -736 1588 -740 1548 -740 1588 -740 1548 -740 1588 -744 1544 -744 1584 -740 1548 -740 1588 -740 1548 -744 1588 -1508 784 -736 1584 -1504 780 -1504 828 -1504 784 -740 1584 -1504 784 -1504 828 -1500 784 -1504 828 -1500 788 -740 1588 -1504 784 -740 1588 -1504 784 -740 1580 -4588 792 -744 1560 -1516 792 -744 1560 -1512 832 -744 1540 -744 1588 -736 1552 -744 1584 -740 1548 -744 1584 -740 1548 -740 1592 -736 1544 -748 1580 -748 1540 -744 1584 -744 1548 -736 1592 -740 1548 -740 1584 -744 1548 -740 1588 -740 1548 -736 1592 -1504 780 -748 1576 -1508 784 -1504 824 -1504 784 -740 1580 -1508 780 -1504 824 -1500 784 -1504 828 -1504 784 -740 1584 -1508 784 -740 1588 -1500 784 -744 1580 -4588 788 -748 1560 -1512 792 -744 1560 -1516 828 -744 1544 -744 1588 -736 1552 -736 1588 -744 1544 -740 1584 -744 1548 -740 1588 -736 1552 -736 1588 -740 1544 -748 1580 -744 1548 -740 1584 -740 1548 -744 1580 -744 1544 -740 1588 -740 1548 -740 1584 -1508 784 -740 1580 -1504 788 -1500 828 -1504 784 -748 1568 -1508 784 -1504 824 -1500 784 -1504 824 -1508 780 -740 1588 -1500 784 -744 1580 -1504 784 -740 1580 -4592 788 -748 1556 -1516 788 -752 1552 -1520 +RAW_Data: 828 -740 1548 -740 1588 -740 1548 -740 1584 -744 1540 -748 1584 -744 1548 -736 1584 -740 1552 -740 1584 -744 1544 -744 1584 -744 1544 -744 1584 -740 1548 -736 1592 -740 1552 -740 1580 -744 1544 -748 1588 -1500 784 -744 1580 -1500 788 -1504 828 -1500 784 -740 1584 -1504 784 -1500 820 -1508 784 -1504 824 -1508 784 -740 1584 -1504 784 -744 1580 -1508 784 -740 1580 -4592 784 -748 1560 -1512 792 -748 1556 -1516 832 -744 1544 -744 1584 -740 1548 -744 1584 -740 1548 -740 1588 -740 1552 -736 1592 -740 1544 -744 1584 -744 1544 -744 1584 -740 1548 -740 1592 -736 1552 -740 1584 -744 1544 -740 1588 -744 1544 -736 1596 -1500 784 -744 1576 -1508 784 -1504 828 -1504 780 -744 1580 -1504 784 -1504 824 -1504 780 -1508 828 -1500 784 -740 1588 -1504 784 -740 1588 -1504 780 -744 1576 -4592 788 -748 1560 -1512 792 -748 1560 -1512 832 -740 1548 -740 1584 -744 1548 -740 1588 -736 1548 -740 1588 -740 1548 -740 1588 -740 1548 -736 1592 -740 1548 -740 1584 -744 1548 -740 1592 -740 1548 -736 1588 -744 1548 -740 1588 -736 1552 -740 1588 -1508 784 -740 1580 -1504 784 -1504 828 -1508 780 -740 1580 -1504 784 -1504 824 -1504 784 -1504 828 -1504 784 -740 1584 -1504 784 -744 1584 -1504 784 -740 1584 -4584 792 -744 1564 -1512 788 -748 1556 -1512 836 -740 1548 -740 1584 -740 1548 -744 1584 -744 1544 -740 1588 -740 1548 -744 1580 -744 1548 -740 1588 -736 1552 -740 1584 -744 1544 -744 1584 -740 1552 -736 1588 -744 1548 -744 1584 -744 1544 -740 1588 -1504 784 -740 1580 -1504 784 -1500 828 -1504 784 -740 1580 -1504 788 -1500 824 -1504 780 -1508 828 -1504 784 -740 1588 -1504 784 -744 1580 -1508 788 -736 1560 -15964 diff --git a/assets/resources/subghz/Stores/CVS/Special_Ding.sub b/assets/resources/subghz/Stores/CVS/Special_Ding.sub new file mode 100644 index 000000000..41ca3c867 --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Special_Ding.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 804 -744 1556 -1516 792 -748 1556 -1516 828 -740 1544 -740 1584 -744 1540 -740 1592 -736 1544 -740 1588 -740 1548 -740 1580 -744 1548 -736 1588 -740 1548 -740 1588 -736 1552 -740 1580 -744 1548 -740 1584 -740 1544 -744 1584 -740 1552 -736 1588 -1500 788 -740 1580 -1504 780 -1500 832 -1504 784 -736 1588 -1504 784 -736 1588 -1508 780 -740 1588 -1504 780 -740 1588 -1504 780 -740 1588 -1504 780 -740 1584 -4588 788 -740 1564 -1516 792 -740 1560 -1516 828 -744 1540 -744 1584 -740 1548 -740 1588 -740 1544 -740 1588 -744 1544 -744 1584 -740 1548 -740 1584 -740 1548 -740 1580 -744 1552 -740 1580 -740 1552 -736 1588 -744 1544 -740 1584 -740 1548 -736 1596 -1504 780 -744 1580 -1500 784 -1500 828 -1508 780 -740 1588 -1504 784 -740 1580 -1508 784 -740 1584 -1504 784 -740 1584 -1504 784 -740 1584 -1504 784 -740 1580 -4588 784 -748 1560 -1512 792 -748 1556 -1512 828 -740 1548 -744 1580 -744 1548 -740 1584 -736 1552 -740 1584 -740 1548 -744 1584 -740 1548 -740 1584 -740 1548 -740 1588 -740 1544 -740 1592 -740 1544 -740 1588 -740 1544 -740 1588 -744 1544 -740 1588 -1500 784 -740 1580 -1504 788 -1500 828 -1504 780 -740 1588 -1500 784 -740 1588 -1504 780 -740 1588 -1504 784 -736 1588 -1504 784 -740 1588 -1508 780 -740 1584 -4584 788 -748 1560 -1516 788 -748 1560 -1512 828 -740 1552 -740 1588 -736 1552 -736 1588 -740 1548 -740 1584 -744 1544 -740 1580 -740 1552 -740 1584 -740 1548 -740 1584 -740 1548 -736 1588 -744 1544 -740 1584 -744 1548 -740 1580 -740 1548 -744 1584 -1508 784 -740 1576 -1504 788 -1500 824 -1508 784 -736 1588 -1504 784 -740 1584 -1504 784 -736 1588 -1500 788 -736 1584 -1504 788 -736 1584 -1500 788 -740 1576 -4588 788 -748 1556 -1516 784 -756 1552 -1512 832 -740 1548 -744 1580 -744 1548 -740 1580 -740 1552 -740 1584 -740 1548 -740 1584 -740 1548 -740 1588 -736 1548 -736 1592 -740 1548 -740 1584 -740 1548 -740 1584 -736 1552 -740 1584 -736 1552 -740 1588 -1504 784 -740 1580 -1500 784 -1504 828 -1500 788 -740 1584 -1504 784 -744 1580 -1500 792 -740 1580 -1504 784 -744 1580 -1508 784 -740 1584 -1500 788 -740 1580 -4588 788 -744 1560 -1516 784 -748 1560 -1512 832 -744 1544 -740 1588 -736 1552 -740 1584 -744 1548 -740 1588 -740 1548 -740 1584 -744 1544 -740 1584 -744 1548 -740 1584 -744 1548 -740 1584 -736 1556 -740 1580 -740 1552 -740 1584 -740 1552 -740 1588 -1504 784 -744 1584 -1500 784 -1508 824 -1504 784 -740 1588 -1500 784 -744 1588 -1500 784 -740 1588 -1500 784 -740 1588 -1504 788 -740 1584 -1504 788 -740 1576 -4588 792 -748 1556 -1516 788 -748 1564 -1512 +RAW_Data: 828 -740 1548 -740 1592 -740 1544 -740 1588 -740 1548 -744 1584 -744 1544 -736 1592 -740 1548 -740 1588 -740 1544 -744 1584 -744 1544 -744 1588 -736 1548 -744 1588 -740 1548 -740 1588 -744 1544 -740 1592 -1504 784 -740 1584 -1504 784 -1504 828 -1504 784 -744 1588 -1504 784 -740 1588 -1504 784 -740 1588 -1504 788 -740 1588 -1504 784 -744 1584 -1504 784 -740 1584 -4588 788 -748 1560 -1516 792 -744 1564 -1512 832 -740 1552 -740 1588 -740 1548 -740 1592 -736 1548 -744 1588 -744 1544 -740 1588 -744 1544 -740 1592 -740 1544 -744 1588 -744 1540 -744 1588 -744 1544 -744 1588 -736 1548 -744 1588 -740 1548 -744 1588 -1504 788 -740 1580 -1504 788 -1500 832 -1504 780 -740 1592 -1504 784 -744 1584 -1504 788 -740 1584 -1508 784 -740 1592 -1504 784 -736 1592 -1500 788 -740 1584 -4592 788 -744 1560 -1516 796 -744 1556 -1516 836 -736 1548 -740 1588 -740 1552 -740 1588 -740 1544 -744 1588 -740 1548 -740 1588 -740 1556 -740 1584 -736 1552 -744 1584 -740 1552 -740 1588 -736 1556 -736 1584 -740 1552 -740 1584 -740 1552 -740 1588 -1508 784 -736 1584 -1504 784 -1504 828 -1504 784 -740 1588 -1504 784 -740 1588 -1504 784 -740 1588 -1500 792 -740 1584 -1504 784 -744 1584 -1504 784 -740 1580 -4592 792 -740 1560 -1512 796 -744 1560 -1512 836 -744 1544 -740 1584 -740 1548 -740 1588 -748 1544 -740 1588 -736 1552 -740 1584 -740 1552 -740 1584 -744 1548 -740 1588 -740 1548 -740 1588 -740 1548 -740 1588 -740 1552 -740 1588 -740 1548 -740 1592 -1504 784 -744 1580 -1508 780 -1504 832 -1500 788 -740 1588 -1500 788 -744 1580 -1508 788 -744 1584 -1504 784 -740 1592 -1500 788 -744 1584 -1504 788 -740 1560 -15964 diff --git a/assets/resources/subghz/Stores/CVS/Stationery.sub b/assets/resources/subghz/Stores/CVS/Stationery.sub new file mode 100644 index 000000000..f51a91105 --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Stationery.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 804 -744 1560 -1512 788 -748 1560 -1512 828 -740 1548 -740 1584 -736 1552 -740 1584 -744 1548 -736 1584 -740 1548 -744 1584 -740 1548 -740 1584 -740 1544 -740 1588 -740 1548 -740 1584 -740 1548 -740 1584 -740 1548 -740 1584 -740 1548 -744 1580 -1504 784 -1500 824 -1508 780 -1504 828 -1504 780 -740 1584 -1508 784 -740 1584 -1504 784 -740 1584 -1500 784 -1504 828 -1508 776 -744 1588 -1500 788 -744 1576 -4588 784 -752 1556 -1512 792 -748 1556 -1520 828 -740 1548 -736 1588 -736 1552 -740 1584 -744 1544 -740 1588 -740 1548 -740 1584 -740 1544 -740 1592 -740 1544 -740 1584 -744 1544 -744 1584 -744 1544 -740 1584 -740 1548 -740 1584 -740 1548 -740 1584 -1504 784 -1500 824 -1504 784 -1500 828 -1508 780 -744 1584 -1500 788 -740 1584 -1508 776 -744 1580 -1504 784 -1504 828 -1496 788 -740 1584 -1504 784 -736 1584 -4584 792 -744 1560 -1516 792 -740 1564 -1516 828 -740 1548 -740 1584 -740 1548 -740 1588 -744 1544 -744 1584 -740 1544 -744 1588 -736 1548 -740 1588 -740 1548 -736 1588 -740 1548 -744 1580 -748 1544 -744 1580 -744 1548 -744 1584 -740 1548 -740 1588 -1504 784 -1504 820 -1504 784 -1500 832 -1504 784 -740 1588 -1500 788 -740 1588 -1504 784 -740 1580 -1504 784 -1500 828 -1504 784 -740 1588 -1500 788 -736 1584 -4584 792 -748 1560 -1512 792 -748 1556 -1512 832 -744 1544 -744 1584 -744 1544 -740 1584 -740 1548 -740 1588 -740 1548 -740 1588 -740 1544 -744 1588 -740 1544 -744 1584 -744 1544 -744 1584 -744 1544 -744 1584 -740 1548 -736 1592 -736 1548 -740 1588 -1500 788 -1500 824 -1504 776 -1508 824 -1500 788 -740 1588 -1504 784 -740 1584 -1508 780 -740 1584 -1504 784 -1500 832 -1504 780 -744 1584 -1504 784 -740 1576 -4584 792 -752 1556 -1512 792 -748 1560 -1516 824 -748 1544 -744 1584 -740 1552 -736 1584 -744 1548 -740 1584 -744 1544 -744 1588 -744 1544 -744 1588 -736 1548 -740 1588 -736 1552 -740 1588 -740 1548 -740 1588 -740 1548 -744 1584 -740 1548 -744 1584 -1504 784 -1504 820 -1508 780 -1508 824 -1500 788 -744 1584 -1500 784 -740 1588 -1504 780 -744 1580 -1508 776 -1512 828 -1496 788 -740 1588 -1504 784 -740 1580 -4588 788 -752 1556 -1512 792 -748 1552 -1520 828 -744 1544 -740 1588 -740 1548 -740 1588 -736 1548 -740 1588 -740 1548 -740 1588 -740 1548 -740 1588 -740 1548 -744 1584 -744 1548 -744 1584 -740 1552 -736 1588 -740 1552 -736 1588 -740 1552 -736 1588 -1508 780 -1508 820 -1504 784 -1504 828 -1504 784 -744 1580 -1504 788 -740 1588 -1496 792 -736 1584 -1504 784 -1504 824 -1504 784 -744 1584 -1504 784 -740 1580 -4588 796 -740 1568 -1512 792 -744 1560 -1512 +RAW_Data: 828 -748 1544 -744 1584 -744 1544 -744 1584 -744 1548 -740 1588 -736 1548 -748 1580 -740 1548 -744 1580 -744 1548 -740 1588 -740 1548 -740 1588 -740 1544 -748 1580 -744 1548 -744 1580 -744 1548 -740 1584 -1504 784 -1500 828 -1500 788 -1500 828 -1504 784 -744 1580 -1504 784 -740 1588 -1504 788 -736 1584 -1500 784 -1508 824 -1504 784 -744 1584 -1504 784 -740 1584 -4588 788 -744 1564 -1512 792 -740 1568 -1512 832 -740 1544 -740 1588 -740 1544 -744 1588 -740 1548 -740 1588 -744 1544 -740 1588 -740 1548 -740 1584 -744 1544 -740 1584 -744 1544 -744 1588 -736 1548 -744 1584 -744 1544 -740 1588 -740 1548 -740 1584 -1504 784 -1500 828 -1504 780 -1508 824 -1504 784 -740 1592 -1500 784 -740 1588 -1504 780 -744 1580 -1508 780 -1504 828 -1504 788 -736 1588 -1504 784 -736 1584 -4588 792 -744 1560 -1512 792 -748 1560 -1512 832 -740 1548 -740 1588 -740 1548 -740 1584 -744 1544 -744 1584 -740 1548 -744 1584 -744 1548 -740 1584 -740 1552 -740 1584 -740 1552 -736 1592 -736 1548 -740 1588 -740 1548 -740 1584 -740 1548 -740 1588 -1504 784 -1504 820 -1504 780 -1504 828 -1504 784 -740 1588 -1500 788 -740 1584 -1508 780 -740 1588 -1496 784 -1504 828 -1504 784 -740 1588 -1500 788 -740 1576 -4592 784 -752 1560 -1516 792 -744 1560 -1516 832 -736 1552 -740 1584 -736 1552 -740 1588 -740 1548 -740 1588 -740 1548 -740 1588 -744 1544 -744 1584 -740 1548 -744 1588 -740 1548 -740 1588 -740 1548 -744 1588 -736 1552 -736 1588 -740 1548 -744 1580 -1508 784 -1504 820 -1508 780 -1504 832 -1500 784 -740 1584 -1508 780 -744 1584 -1504 784 -744 1580 -1504 784 -1500 832 -1500 788 -736 1588 -1504 784 -736 1564 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Stomach_Remedies.sub b/assets/resources/subghz/Stores/CVS/Stomach_Remedies.sub new file mode 100644 index 000000000..9c5630297 --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Stomach_Remedies.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 800 -748 1560 -1516 788 -748 1548 -1516 828 -740 1548 -740 1584 -740 1548 -744 1576 -744 1544 -740 1588 -736 1544 -748 1580 -744 1540 -748 1580 -744 1544 -740 1588 -740 1548 -740 1584 -744 1544 -740 1584 -744 1548 -744 1580 -744 1544 -740 1588 -1504 784 -740 1584 -1504 784 -740 1580 -1508 776 -1504 824 -1504 780 -1504 824 -1508 776 -1504 824 -1508 780 -744 1580 -1508 780 -744 1584 -1508 784 -740 1576 -4588 792 -748 1556 -1516 788 -752 1556 -1516 828 -740 1548 -744 1580 -744 1544 -744 1584 -740 1548 -744 1584 -740 1548 -744 1584 -740 1544 -748 1584 -740 1548 -740 1584 -748 1544 -740 1584 -748 1544 -740 1584 -748 1544 -740 1584 -744 1548 -740 1588 -1504 788 -736 1588 -1504 788 -736 1584 -1504 784 -1504 820 -1508 780 -1508 816 -1508 780 -1512 820 -1512 776 -744 1584 -1508 784 -740 1588 -1500 788 -740 1580 -4592 784 -756 1552 -1516 788 -752 1556 -1516 828 -748 1544 -740 1584 -748 1544 -744 1580 -748 1544 -744 1584 -744 1548 -740 1584 -744 1548 -736 1588 -744 1548 -740 1584 -744 1544 -744 1584 -744 1548 -740 1584 -744 1548 -740 1584 -748 1544 -744 1584 -1504 784 -744 1584 -1504 788 -740 1580 -1504 788 -1504 816 -1508 784 -1508 816 -1508 780 -1508 828 -1504 784 -744 1580 -1508 784 -740 1584 -1508 784 -740 1576 -4596 784 -752 1552 -1520 792 -748 1552 -1520 828 -744 1544 -744 1588 -744 1544 -740 1584 -748 1548 -740 1584 -748 1544 -740 1584 -748 1544 -740 1584 -748 1544 -744 1580 -744 1548 -744 1584 -744 1544 -744 1584 -744 1544 -744 1584 -740 1548 -744 1588 -1508 784 -740 1584 -1508 784 -744 1576 -1508 784 -1504 820 -1504 784 -1508 816 -1508 784 -1504 828 -1504 780 -744 1584 -1504 784 -744 1584 -1512 780 -740 1584 -4588 792 -748 1552 -1520 792 -748 1556 -1516 832 -740 1548 -744 1580 -744 1548 -744 1584 -744 1544 -744 1584 -744 1544 -748 1584 -740 1544 -748 1584 -736 1548 -748 1584 -740 1544 -748 1584 -740 1548 -744 1584 -740 1548 -740 1588 -744 1548 -740 1592 -1508 776 -748 1584 -1504 784 -744 1580 -1508 780 -1504 824 -1504 784 -1504 824 -1504 784 -1508 824 -1508 780 -744 1588 -1508 780 -740 1588 -1504 784 -744 1580 -4592 788 -752 1556 -1516 792 -748 1556 -1520 828 -744 1548 -740 1584 -748 1544 -740 1584 -748 1548 -740 1584 -744 1548 -740 1584 -744 1548 -740 1584 -748 1548 -740 1584 -748 1544 -740 1584 -748 1548 -740 1584 -744 1548 -744 1584 -744 1544 -744 1588 -1504 784 -744 1584 -1504 784 -744 1576 -1508 784 -1508 816 -1508 784 -1508 816 -1508 784 -1504 828 -1504 780 -748 1584 -1508 780 -740 1588 -1504 784 -740 1584 -4592 788 -748 1552 -1520 792 -744 1560 -1516 +RAW_Data: 832 -740 1544 -748 1580 -744 1544 -744 1584 -744 1544 -740 1584 -748 1544 -740 1584 -748 1544 -744 1580 -748 1548 -740 1580 -748 1544 -744 1584 -740 1548 -744 1584 -740 1548 -744 1584 -744 1544 -744 1592 -1508 780 -740 1588 -1508 780 -744 1580 -1504 784 -1504 820 -1508 780 -1504 824 -1504 780 -1504 828 -1508 784 -740 1584 -1504 788 -740 1584 -1508 784 -736 1580 -4592 792 -752 1556 -1516 788 -752 1556 -1516 828 -740 1548 -744 1584 -744 1544 -748 1580 -744 1544 -744 1588 -740 1548 -744 1584 -740 1548 -744 1584 -744 1544 -748 1580 -744 1544 -748 1584 -748 1540 -744 1584 -748 1544 -740 1584 -748 1544 -744 1588 -1508 780 -748 1584 -1504 780 -748 1576 -1504 788 -1504 820 -1504 784 -1508 816 -1508 780 -1508 824 -1508 780 -748 1580 -1508 784 -740 1584 -1508 784 -744 1576 -4592 792 -748 1552 -1520 792 -744 1560 -1516 828 -744 1544 -744 1584 -744 1544 -740 1588 -744 1544 -744 1584 -744 1548 -736 1588 -748 1544 -740 1584 -748 1544 -740 1588 -740 1544 -748 1584 -740 1548 -744 1584 -744 1544 -748 1584 -740 1544 -748 1588 -1504 784 -744 1584 -1508 784 -744 1576 -1508 780 -1504 828 -1504 780 -1504 820 -1512 780 -1504 828 -1508 784 -740 1584 -1508 780 -744 1588 -1504 780 -748 1576 -4592 792 -744 1560 -1516 792 -748 1556 -1516 832 -744 1544 -744 1584 -744 1544 -748 1580 -744 1548 -740 1588 -740 1544 -748 1584 -744 1544 -744 1584 -740 1544 -748 1584 -744 1544 -744 1584 -748 1544 -740 1584 -748 1544 -740 1584 -748 1544 -744 1588 -1504 784 -740 1588 -1504 784 -744 1580 -1504 780 -1512 816 -1508 784 -1508 816 -1508 788 -1504 824 -1508 780 -748 1584 -1508 780 -744 1584 -1508 784 -744 1556 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Telecommunications_Department.sub b/assets/resources/subghz/Stores/CVS/Telecommunications_Department.sub new file mode 100644 index 000000000..042499c5d --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Telecommunications_Department.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 804 -744 1556 -1516 788 -744 1560 -1512 832 -740 1548 -744 1580 -740 1548 -744 1584 -740 1548 -736 1592 -736 1552 -736 1588 -740 1548 -740 1588 -740 1548 -740 1584 -744 1544 -740 1584 -740 1548 -740 1588 -744 1544 -744 1584 -740 1548 -736 1588 -1508 776 -1508 820 -1504 784 -1504 824 -1504 780 -744 1588 -1500 784 -744 1580 -1504 784 -1500 832 -1504 784 -740 1584 -1504 784 -740 1588 -1504 780 -740 1584 -4588 788 -744 1568 -1508 792 -748 1556 -1520 828 -740 1544 -744 1584 -740 1552 -740 1584 -740 1548 -740 1584 -740 1548 -740 1588 -736 1552 -736 1584 -748 1544 -740 1592 -740 1544 -740 1588 -740 1548 -740 1588 -740 1548 -744 1584 -740 1548 -736 1584 -1512 780 -1508 820 -1504 784 -1504 828 -1504 784 -740 1584 -1508 784 -740 1576 -1508 784 -1508 824 -1500 788 -740 1588 -1504 780 -744 1588 -1504 784 -744 1576 -4588 792 -752 1556 -1516 792 -744 1560 -1516 828 -740 1548 -744 1588 -740 1548 -744 1588 -736 1552 -736 1588 -740 1548 -744 1584 -744 1548 -740 1588 -736 1552 -740 1588 -740 1548 -744 1584 -744 1544 -744 1584 -740 1548 -740 1588 -744 1548 -736 1588 -1504 784 -1504 824 -1504 780 -1504 828 -1508 784 -740 1588 -1504 784 -740 1580 -1504 780 -1508 828 -1500 788 -740 1584 -1508 784 -740 1584 -1508 784 -740 1580 -4588 792 -748 1556 -1520 788 -748 1560 -1516 832 -740 1544 -740 1588 -740 1548 -744 1580 -748 1548 -740 1588 -740 1544 -744 1584 -744 1548 -740 1588 -744 1548 -740 1584 -740 1552 -740 1584 -744 1548 -744 1584 -744 1544 -740 1588 -740 1548 -740 1584 -1508 780 -1504 824 -1504 784 -1500 828 -1504 784 -744 1588 -1500 784 -744 1580 -1504 784 -1504 824 -1508 780 -744 1584 -1504 784 -740 1584 -1508 780 -744 1580 -4588 792 -748 1556 -1516 788 -752 1556 -1520 824 -744 1548 -744 1584 -740 1548 -740 1584 -740 1544 -748 1584 -744 1544 -744 1584 -740 1548 -740 1588 -744 1544 -744 1580 -740 1548 -744 1584 -744 1544 -744 1584 -740 1548 -744 1584 -744 1548 -740 1584 -1504 784 -1500 824 -1504 784 -1504 824 -1508 780 -740 1584 -1504 784 -748 1576 -1504 784 -1508 820 -1512 780 -744 1584 -1504 784 -740 1584 -1504 784 -744 1576 -4592 784 -752 1560 -1516 784 -752 1552 -1524 824 -744 1548 -744 1580 -748 1540 -748 1580 -748 1544 -744 1580 -748 1540 -748 1580 -748 1544 -744 1580 -748 1540 -748 1580 -748 1540 -748 1580 -748 1540 -748 1580 -748 1540 -744 1584 -752 1536 -748 1576 -1508 780 -1512 812 -1516 776 -1512 816 -1516 776 -748 1576 -1512 776 -752 1572 -1512 776 -1512 820 -1512 776 -752 1576 -1512 772 -752 1576 -1516 776 -748 1572 -4596 784 -752 1552 -1524 784 -756 1548 -1528 +RAW_Data: 820 -748 1536 -752 1580 -748 1540 -748 1580 -748 1540 -748 1580 -748 1540 -752 1576 -748 1540 -752 1576 -752 1540 -748 1580 -748 1540 -748 1576 -752 1544 -748 1576 -748 1540 -752 1576 -752 1540 -748 1576 -1516 772 -1512 816 -1512 776 -1512 820 -1512 780 -748 1580 -1508 780 -748 1572 -1512 776 -1512 820 -1512 780 -744 1580 -1512 780 -744 1580 -1512 780 -748 1576 -4592 784 -752 1552 -1520 784 -752 1556 -1520 824 -748 1540 -748 1580 -744 1544 -744 1584 -748 1540 -748 1580 -744 1540 -748 1580 -748 1544 -744 1580 -744 1544 -748 1580 -744 1544 -744 1580 -748 1540 -748 1580 -744 1544 -744 1584 -744 1544 -744 1580 -1508 776 -1512 816 -1508 776 -1512 820 -1504 784 -744 1584 -1504 780 -744 1576 -1512 780 -1504 824 -1508 780 -744 1584 -1504 780 -748 1584 -1508 780 -744 1572 -4596 784 -752 1560 -1516 788 -752 1552 -1520 824 -748 1544 -744 1580 -744 1544 -748 1580 -748 1540 -740 1584 -744 1544 -748 1580 -744 1544 -744 1584 -744 1544 -744 1584 -740 1544 -748 1580 -744 1544 -740 1584 -748 1544 -744 1584 -740 1544 -748 1580 -1508 780 -1504 820 -1508 780 -1508 824 -1504 780 -748 1580 -1508 780 -748 1572 -1512 780 -1508 824 -1504 784 -744 1580 -1504 784 -740 1588 -1504 780 -744 1576 -4592 788 -744 1556 -1520 784 -752 1560 -1516 828 -744 1544 -740 1584 -748 1540 -748 1584 -744 1540 -744 1584 -744 1544 -744 1584 -740 1544 -744 1584 -744 1544 -744 1580 -748 1544 -744 1584 -736 1548 -748 1580 -744 1544 -744 1580 -748 1544 -744 1576 -1512 776 -1508 820 -1508 780 -1508 824 -1504 784 -740 1584 -1504 784 -748 1576 -1504 784 -1500 828 -1504 780 -744 1584 -1508 780 -748 1580 -1504 784 -740 1560 -15924 diff --git a/assets/resources/subghz/Stores/CVS/Vitamin_Department.sub b/assets/resources/subghz/Stores/CVS/Vitamin_Department.sub new file mode 100644 index 000000000..cfab97a9d --- /dev/null +++ b/assets/resources/subghz/Stores/CVS/Vitamin_Department.sub @@ -0,0 +1,8 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +# generated with ook_to_sub.py +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 804 -748 1556 -1512 792 -744 1560 -1516 828 -740 1544 -744 1584 -736 1548 -740 1588 -740 1544 -744 1588 -736 1548 -740 1584 -744 1544 -744 1580 -740 1548 -740 1584 -740 1552 -740 1584 -744 1544 -740 1584 -748 1544 -740 1584 -744 1548 -740 1584 -1504 784 -1504 828 -1504 780 -744 1580 -1504 784 -1500 828 -1504 784 -740 1584 -1504 784 -1500 828 -1504 780 -1504 824 -1504 788 -1500 824 -1500 788 -1504 824 -4584 792 -748 1556 -1516 788 -752 1556 -1516 828 -744 1544 -740 1584 -748 1548 -732 1588 -744 1548 -736 1588 -744 1544 -736 1588 -744 1548 -736 1584 -744 1552 -736 1588 -740 1548 -740 1588 -740 1548 -736 1588 -744 1544 -744 1584 -744 1544 -744 1580 -1508 784 -1500 832 -1504 784 -736 1584 -1504 784 -1500 832 -1500 784 -740 1584 -1500 788 -1504 820 -1508 776 -1508 824 -1500 784 -1504 824 -1504 788 -1500 820 -4592 788 -748 1560 -1508 796 -740 1564 -1512 828 -744 1552 -740 1584 -740 1548 -744 1588 -736 1548 -744 1588 -736 1548 -744 1584 -740 1544 -744 1588 -736 1548 -740 1588 -740 1548 -744 1584 -740 1548 -740 1584 -740 1548 -740 1588 -744 1544 -744 1584 -1500 784 -1504 832 -1500 784 -744 1580 -1504 780 -1504 828 -1500 788 -736 1584 -1504 788 -1500 820 -1504 788 -1504 820 -1500 788 -1500 828 -1500 784 -1500 828 -4588 788 -748 1556 -1516 788 -752 1556 -1512 832 -744 1544 -740 1584 -740 1548 -744 1588 -736 1548 -744 1584 -736 1548 -740 1588 -736 1552 -744 1580 -740 1548 -744 1588 -736 1544 -748 1584 -740 1548 -740 1588 -740 1544 -744 1588 -736 1548 -740 1580 -1504 788 -1500 828 -1500 784 -740 1580 -1500 788 -1500 828 -1500 784 -740 1584 -1500 788 -1504 820 -1504 788 -1496 824 -1504 784 -1500 828 -1496 788 -1496 828 -4584 792 -744 1560 -1512 792 -748 1556 -1516 828 -740 1548 -740 1588 -740 1544 -740 1588 -740 1548 -740 1588 -740 1548 -736 1588 -740 1548 -736 1588 -740 1548 -740 1588 -736 1548 -744 1588 -736 1548 -744 1588 -736 1548 -744 1588 -736 1548 -744 1584 -1504 784 -1500 828 -1504 788 -736 1580 -1504 788 -1504 824 -1504 784 -740 1580 -1504 788 -1500 824 -1500 788 -1504 824 -1504 780 -1504 828 -1500 784 -1504 820 -4588 792 -748 1560 -1512 792 -744 1560 -1516 828 -740 1552 -740 1588 -740 1548 -736 1592 -744 1544 -740 1588 -740 1548 -740 1588 -744 1544 -740 1588 -740 1552 -744 1584 -740 1548 -744 1588 -736 1552 -744 1584 -744 1548 -740 1584 -744 1552 -736 1588 -1500 788 -1504 828 -1504 784 -740 1580 -1508 784 -1500 828 -1504 788 -740 1580 -1504 784 -1504 824 -1500 792 -1500 820 -1508 784 -1500 828 -1504 784 -1504 820 -4588 792 -748 1564 -1508 788 -752 1564 -1512 +RAW_Data: 828 -744 1544 -744 1584 -744 1544 -740 1588 -740 1548 -740 1588 -744 1544 -740 1588 -744 1544 -740 1588 -744 1544 -736 1588 -740 1552 -736 1588 -744 1544 -744 1584 -744 1548 -736 1588 -740 1552 -736 1584 -1504 788 -1504 828 -1500 788 -740 1580 -1500 788 -1500 828 -1504 784 -740 1584 -1504 784 -1500 824 -1504 788 -1500 816 -1504 792 -1504 820 -1504 784 -1504 824 -4584 796 -744 1560 -1512 792 -744 1560 -1520 828 -736 1552 -740 1588 -736 1552 -740 1588 -736 1548 -744 1584 -744 1544 -744 1584 -740 1548 -744 1584 -744 1544 -740 1592 -740 1552 -736 1588 -744 1548 -736 1588 -744 1548 -744 1584 -740 1548 -740 1584 -1504 788 -1500 832 -1500 788 -740 1584 -1500 784 -1504 828 -1500 792 -736 1584 -1504 784 -1504 824 -1508 780 -1504 828 -1504 780 -1504 824 -1500 788 -1504 820 -4592 792 -740 1564 -1520 788 -740 1564 -1516 832 -740 1544 -744 1584 -740 1552 -740 1588 -736 1548 -748 1580 -744 1544 -748 1584 -736 1552 -740 1588 -740 1552 -740 1584 -740 1552 -736 1592 -740 1552 -736 1588 -740 1548 -744 1588 -740 1548 -740 1584 -1504 784 -1508 828 -1500 784 -744 1580 -1508 784 -1504 824 -1504 784 -744 1580 -1504 784 -1504 828 -1500 788 -1500 824 -1504 788 -1504 820 -1500 788 -1504 824 -4588 792 -744 1560 -1520 788 -748 1556 -1516 832 -736 1552 -740 1588 -740 1552 -736 1588 -744 1548 -736 1588 -744 1548 -736 1588 -744 1544 -740 1588 -740 1552 -740 1584 -740 1552 -740 1588 -740 1548 -736 1592 -740 1548 -740 1588 -740 1548 -744 1584 -1500 788 -1504 828 -1504 784 -740 1584 -1504 784 -1504 828 -1504 784 -744 1580 -1508 780 -1504 824 -1508 780 -1504 824 -1504 784 -1504 820 -1508 784 -1500 804 -15924 diff --git a/assets/resources/subghz/assets/README.md b/assets/resources/subghz/assets/README.md index c9101dfc0..b129906e6 100644 --- a/assets/resources/subghz/assets/README.md +++ b/assets/resources/subghz/assets/README.md @@ -1,20 +1,10 @@ -# Adding additional frequencies (TX/RX) [By UberGuidoZ](https://github.com/UberGuidoZ/Flipper/blob/main/Sub-GHz/Settings/ReadMe.md) - -Some changes I made to the available frequency settings (including unlocking them all). The file is found here: - -![Sub-Ghz_Changes](https://user-images.githubusercontent.com/57457139/174948988-f6955976-2318-4e3e-b658-93f0465bb22e.png) +#Sub-Ghz Frequencies in Xtreme Officially supported frequencies: 300-348 MHz, 387-464 MHz, and 779-928 MHz (from [CC1101 chip docs](https://www.ti.com/product/CC1101))
-Unofficially supported frequencies: 281-361 MHz, 378-481 MHz, and 749-962 MHz (from [YARD Stick One](https://greatscottgadgets.com/yardstickone/) CC1111 docs) +Unofficially supported frequencies: 281-361 MHz, 378-481 MHz, and 749-962 MHz (from [YARD Stick One/CC1111 Docs](https://greatscottgadgets.com/yardstickone/)) -Official & Unleashed currently do not allow anything outside of the officially supported CC1101 specs. -RogueMaster allows unofficially supported frequencies with the extend_range.txt file +Currently no other Flipper firmware allows anything outside of the officially supported CC1101 specs without editing files that get overwritten with every update. +Xtreme has these frequencies enabled by default and regional restrictions disabled. -**NOTE: Going outside the supported frequencies may DAMAGE YOUR FLIPPER AMP.
-Please understand what you're doing if trying to break out of official frequencies.** - -You'll need to edit the [extended range file](https://github.com/ClaraCrazy/Flipper-Xtreme/blob/main/documentation/DangerousSettings.md) to enable frequencies outside of the Official above. - -# CAUTION within 402-408 range!
Medical devices can operate here. - -This range is purposefully not included in my file above. +**NOTE: Operating outside supported frequencies can damage your amp and may not provide the same results as supported frequencies.
+Please understand what you're doing if you transmit on unsupported frequencies as medical devices are licensed to operate there.** diff --git a/assets/resources/subghz/playlist/CVS_Walgreens.txt b/assets/resources/subghz/playlist/CVS_Walgreens.txt deleted file mode 100644 index 8559a59b3..000000000 --- a/assets/resources/subghz/playlist/CVS_Walgreens.txt +++ /dev/null @@ -1,6 +0,0 @@ -# Walgreens / CVS Playlist -sub: /ext/subghz/Walgreens/Walgreens_Cough.sub -sub: /ext/subghz/Walgreens/Walgreens_Skincare.sub -sub: /ext/subghz/Walgreens/Walgreens_Vitamin.sub -sub: /ext/subghz/CVS/CVS_Dental.sub -sub: /ext/subghz/CVS/CVS_Stomach.sub diff --git a/assets/resources/subghz/playlist/CVS_playlist.txt b/assets/resources/subghz/playlist/CVS_playlist.txt new file mode 100644 index 000000000..1b0ec742d --- /dev/null +++ b/assets/resources/subghz/playlist/CVS_playlist.txt @@ -0,0 +1,58 @@ +# CVS Playlist +sub: /ext/subghz/Stores/CVS/Aisle_Eight.sub +sub: /ext/subghz/Stores/CVS/Aisle_Eighteen.sub +sub: /ext/subghz/Stores/CVS/Aisle_Eleven.sub +sub: /ext/subghz/Stores/CVS/Aisle_Fifteen.sub +sub: /ext/subghz/Stores/CVS/Aisle_Five.sub +sub: /ext/subghz/Stores/CVS/Aisle_Four.sub +sub: /ext/subghz/Stores/CVS/Aisle_Fourteen.sub +sub: /ext/subghz/Stores/CVS/Aisle_Nineteen.sub +sub: /ext/subghz/Stores/CVS/Aisle_One.sub +sub: /ext/subghz/Stores/CVS/Aisle_Seven.sub +sub: /ext/subghz/Stores/CVS/Aisle_Seventeen.sub +sub: /ext/subghz/Stores/CVS/Aisle_Six.sub +sub: /ext/subghz/Stores/CVS/Aisle_Sixteen.sub +sub: /ext/subghz/Stores/CVS/Aisle_Ten.sub +sub: /ext/subghz/Stores/CVS/Aisle_Thirteen.sub +sub: /ext/subghz/Stores/CVS/Aisle_Three.sub +sub: /ext/subghz/Stores/CVS/Aisle_Twelve.sub +sub: /ext/subghz/Stores/CVS/Aisle_Twenty.sub +sub: /ext/subghz/Stores/CVS/Aisle_Two.sub +sub: /ext/subghz/Stores/CVS/Allergy_Department.sub +sub: /ext/subghz/Stores/CVS/Baby_Formula.sub +sub: /ext/subghz/Stores/CVS/Batteries.sub +sub: /ext/subghz/Stores/CVS/Body_Wash.sub +sub: /ext/subghz/Stores/CVS/Cashier_to_the_Front_of_the_Store.sub +sub: /ext/subghz/Stores/CVS/Clinic_1_Medical_Alert_to_the.sub +sub: /ext/subghz/Stores/CVS/Cosmetics_Department.sub +sub: /ext/subghz/Stores/CVS/Cough_Cold.sub +sub: /ext/subghz/Stores/CVS/Customer_Service_Scan_All_Aisles.sub +sub: /ext/subghz/Stores/CVS/Dental_Care.sub +sub: /ext/subghz/Stores/CVS/Deodorants.sub +sub: /ext/subghz/Stores/CVS/Diet_and_Nutrition_Department.sub +sub: /ext/subghz/Stores/CVS/Ding_1.sub +sub: /ext/subghz/Stores/CVS/Electric_Razors.sub +sub: /ext/subghz/Stores/CVS/Electronics.sub +sub: /ext/subghz/Stores/CVS/Eye_Care_Department.sub +sub: /ext/subghz/Stores/CVS/Family_Planning.sub +sub: /ext/subghz/Stores/CVS/Film_Department.sub +sub: /ext/subghz/Stores/CVS/First_Aid_Department.sub +sub: /ext/subghz/Stores/CVS/Foot_Care_Department.sub +sub: /ext/subghz/Stores/CVS/Fragrance_Case.sub +sub: /ext/subghz/Stores/CVS/Hair-Care_Department.sub +sub: /ext/subghz/Stores/CVS/Health_Department_OTC_Health.sub +sub: /ext/subghz/Stores/CVS/Karen_Manager.sub +sub: /ext/subghz/Stores/CVS/Karen_Security.sub +sub: /ext/subghz/Stores/CVS/Liquor_Department.sub +sub: /ext/subghz/Stores/CVS/Pain_Reliever_Department.sub +sub: /ext/subghz/Stores/CVS/Pharmacy.sub +sub: /ext/subghz/Stores/CVS/Photo_Lab.sub +sub: /ext/subghz/Stores/CVS/Pre-Recorded_Video_Department.sub +sub: /ext/subghz/Stores/CVS/Recordable_Media_Department.sub +sub: /ext/subghz/Stores/CVS/Skin_Care_Department.sub +sub: /ext/subghz/Stores/CVS/Small_Appliances.sub +sub: /ext/subghz/Stores/CVS/Special_Ding.sub +sub: /ext/subghz/Stores/CVS/Stationery.sub +sub: /ext/subghz/Stores/CVS/Stomach_Remedies.sub +sub: /ext/subghz/Stores/CVS/Telecommunications_Department.sub +sub: /ext/subghz/Stores/CVS/Vitamin_Department.sub diff --git a/assets/resources/subghz/unirf/CVS_Walgreens.txt b/assets/resources/subghz/unirf/CVS_Walgreens.txt index 712543d76..dc14502d2 100644 --- a/assets/resources/subghz/unirf/CVS_Walgreens.txt +++ b/assets/resources/subghz/unirf/CVS_Walgreens.txt @@ -1,10 +1,10 @@ Filetype: Flipper SubGhz RAW File Version: 1 UP: /any/subghz/Stores/Walgreens/Walgreens_Cough.sub -DOWN: /any/subghz/Stores/CVS/CVS_Dental.sub +DOWN: /any/subghz/Stores/CVS/Dental_Care.sub LEFT: /any/subghz/Stores/Walgreens/Walgreens_Skincare.sub RIGHT: /any/subghz/Stores/Walgreens/Walgreens_Vitamin.sub -OK: /any/subghz/Stores/CVS/CVS_Stomach.sub +OK: /any/subghz/Stores/CVS/Stomach_Remedies.sub ULABEL: Cough_Wal DLABEL: Dental_CVS LLABEL: Skincare_Wal diff --git a/assets/resources/wav_player/CartKeyLock78.wav b/assets/resources/wav_player/CartKeyLock78.wav new file mode 100644 index 000000000..71f56f328 Binary files /dev/null and b/assets/resources/wav_player/CartKeyLock78.wav differ diff --git a/assets/resources/wav_player/CartKeyUnlock78.wav b/assets/resources/wav_player/CartKeyUnlock78.wav new file mode 100644 index 000000000..41bd420e9 Binary files /dev/null and b/assets/resources/wav_player/CartKeyUnlock78.wav differ diff --git a/assets/resources/wav_player/assets_resources_CartKeyLock78.wav b/assets/resources/wav_player/assets_resources_CartKeyLock78.wav deleted file mode 100644 index 389668157..000000000 Binary files a/assets/resources/wav_player/assets_resources_CartKeyLock78.wav and /dev/null differ diff --git a/assets/resources/wav_player/assets_resources_CartKeyUnlock78.wav b/assets/resources/wav_player/assets_resources_CartKeyUnlock78.wav deleted file mode 100644 index fe62b9fd5..000000000 Binary files a/assets/resources/wav_player/assets_resources_CartKeyUnlock78.wav and /dev/null differ diff --git a/assets/unit_tests/Manifest b/assets/unit_tests/Manifest new file mode 100644 index 000000000..db2979ee6 --- /dev/null +++ b/assets/unit_tests/Manifest @@ -0,0 +1,76 @@ +V:0 +T:1672935435 +D:infrared +D:nfc +D:subghz +F:4bff70f2a2ae771f81de5cfb090b3d74:3952:infrared/test_kaseikyo.irtest +F:8556d32d7c54e66771d9da78d007d379:21463:infrared/test_nec.irtest +F:860c0c475573878842180a6cb50c85c7:2012:infrared/test_nec42.irtest +F:2b3cbf3fe7d3642190dfb8362dcc0ed6:3522:infrared/test_nec42ext.irtest +F:c74bbd7f885ab8fbc3b3363598041bc1:18976:infrared/test_necext.irtest +F:cab5e604abcb233bcb27903baec24462:7460:infrared/test_rc5.irtest +F:3d22b3ec2531bb8f4842c9c0c6a8d97c:547:infrared/test_rc5x.irtest +F:c9cb9fa4decbdd077741acb845f21343:8608:infrared/test_rc6.irtest +F:97de943385bc6ad1c4a58fc4fedb5244:16975:infrared/test_samsung32.irtest +F:4eb36c62d4f2e737a3e4a64b5ff0a8e7:41623:infrared/test_sirc.irtest +F:e4ec3299cbe1f528fb1b9b45aac53556:4182:nfc/nfc_nfca_signal_long.nfc +F:af4d10974834c2703ad29e859eea78c2:1020:nfc/nfc_nfca_signal_short.nfc +F:224d12457a26774d8d2aa0d4b3a15652:160:subghz/ansonic.sub +F:ce9fc98dc01230387a340332316774f1:13642:subghz/ansonic_raw.sub +F:f958927b656d0804036c28b4a31ff856:157:subghz/bett.sub +F:b4b17b2603fa3a144dbea4d9ede9f61d:5913:subghz/bett_raw.sub +F:370a0c62be967b420da5e60ffcdc078b:157:subghz/came.sub +F:0156915c656d8c038c6d555d34349a36:6877:subghz/came_atomo_raw.sub +F:111a8b796661f3cbd6f49f756cf91107:8614:subghz/came_raw.sub +F:2101b0a5a72c87f9dce77223b2885aa7:162:subghz/came_twee.sub +F:c608b78b8e4646eeb94db37644623254:10924:subghz/came_twee_raw.sub +F:c4a55acddb68fc3111d592c9292022a8:21703:subghz/cenmax_raw.sub +F:51d6bd600345954b9c84a5bc6e999313:159:subghz/clemsa.sub +F:14fa0d5931a32674bfb2ddf288f3842b:21499:subghz/clemsa_raw.sub +F:f38b6dfa0920199200887b2cd5c0a385:161:subghz/doitrand.sub +F:c7e53da8e3588a2c0721aa794699ccd4:24292:subghz/doitrand_raw.sub +F:cc73b6f4d05bfe30c67a0d18b63e58d9:159:subghz/doorhan.sub +F:22fec89c5cc43504ad4391e61e12c7e0:10457:subghz/doorhan_raw.sub +F:3a97d8bd32ddaff42932b4c3033ee2d2:12732:subghz/faac_slh_raw.sub +F:06d3226f5330665f48d41c49e34fed15:159:subghz/gate_tx.sub +F:8b150a8d38ac7c4f7063ee0d42050399:13827:subghz/gate_tx_raw.sub +F:a7904e17b0c18c083ae1acbefc330c7a:159:subghz/holtek.sub +F:72bb528255ef1c135cb3f436414897d3:173:subghz/holtek_ht12x.sub +F:54ceacb8c156f9534fc7ee0a0911f4da:11380:subghz/holtek_ht12x_raw.sub +F:4a9567c1543cf3e7bb5350b635d9076f:31238:subghz/holtek_raw.sub +F:ca86c0d78364d704ff62b0698093d396:162:subghz/honeywell_wdb.sub +F:f606548c935adc8d8bc804326ef67543:38415:subghz/honeywell_wdb_raw.sub +F:20bba4b0aec006ced7e82513f9459e31:15532:subghz/hormann_hsm_raw.sub +F:3392f2db6aa7777e937db619b86203bb:10637:subghz/ido_117_111_raw.sub +F:cc5c7968527cc233ef11a08986e31bf2:167:subghz/intertechno_v3.sub +F:70bceb941739260ab9f6162cfdeb0347:18211:subghz/intertechno_v3_raw.sub +F:bc9a4622f3e22fd7f82eb3f26e61f59b:44952:subghz/kia_seed_raw.sub +F:6b6e95fc70ea481dc6184d291466d16a:159:subghz/linear.sub +F:77aaa9005db54c0357451ced081857b2:14619:subghz/linear_raw.sub +F:1a618e21e6ffa9984d465012e704c450:161:subghz/magellan.sub +F:bf43cb85d79e20644323d6acad87e028:5808:subghz/magellan_raw.sub +F:4ef17320f936ee88e92582a9308b2faa:161:subghz/marantec.sub +F:507a8413a1603ad348eea945123fb7cc:21155:subghz/marantec_raw.sub +F:22b69dc490d5425488342b5c5a838d55:161:subghz/megacode.sub +F:4f8fe9bef8bdd9c52f3f77e829f8986f:6205:subghz/megacode_raw.sub +F:b39f62cb108c2fa9916e0a466596ab87:18655:subghz/nero_radio_raw.sub +F:d0d70f8183032096805a41e1808c093b:26436:subghz/nero_sketch_raw.sub +F:c6999bd0eefd0fccf34820e17bcbc8ba:161:subghz/nice_flo.sub +F:9b1200600b9ec2a73166797ff243fbfc:3375:subghz/nice_flo_raw.sub +F:b52bafb098282676d1c7163bfb0d6e73:8773:subghz/nice_flor_s_raw.sub +F:e4df94dfdee2efadf2ed9a1e9664f8b2:163:subghz/phoenix_v2.sub +F:8ec066976df93fba6335b3f6dc47014c:8548:subghz/phoenix_v2_raw.sub +F:2b1192e4898aaf274caebbb493b9f96e:164:subghz/power_smart.sub +F:8b8195cab1d9022fe38e802383fb923a:3648:subghz/power_smart_raw.sub +F:1ccf1289533e0486a1d010d934ad7b06:170:subghz/princeton.sub +F:8bccc506a61705ec429aecb879e5d7ce:7344:subghz/princeton_raw.sub +F:0bda91d783e464165190c3b3d16666a7:38724:subghz/scher_khan_magic_code.sub +F:116d7e1a532a0c9e00ffeee105f7138b:166:subghz/security_pls_1_0.sub +F:441fc7fc6fa11ce0068fde3f6145177b:69413:subghz/security_pls_1_0_raw.sub +F:e5e33c24c5e55f592ca892b5aa8fa31f:208:subghz/security_pls_2_0.sub +F:2614f0aef367042f8623719d765bf2c0:62287:subghz/security_pls_2_0_raw.sub +F:8eb533544c4c02986800c90e935184ff:168:subghz/smc5326.sub +F:fc67a4fe7e0b3bc81a1c8da8caca7658:4750:subghz/smc5326_raw.sub +F:24196a4c4af1eb03404a2ee434c864bf:4096:subghz/somfy_keytis_raw.sub +F:6a5ece145a5694e543d99bf1b970baf0:9741:subghz/somfy_telis_raw.sub +F:0ad046bfa9ec872e92141a69bbf03d92:382605:subghz/test_random_raw.sub diff --git a/documentation/AppManifests.md b/documentation/AppManifests.md index 2ffa3c0c2..195fe9256 100644 --- a/documentation/AppManifests.md +++ b/documentation/AppManifests.md @@ -1,65 +1,63 @@ # Flipper Application Manifests (.fam) -All components of Flipper Zero firmware — services, user applications, and system settings — are developed independently. Each component has a build system manifest file, named `application.fam`, which defines the basic properties of that component and its relations to other parts of the system. +All components of Flipper Zero firmware — services, user applications, and system settings — are developed independently. Each component has a build system manifest file named `application.fam`, which defines the basic properties of that component and its relations to other parts of the system. -When building firmware, **`fbt`** collects all application manifests and processes their dependencies. Then it builds only those components referenced in the current build configuration. See [fbt docs](./fbt.md#firmware-application-set) for details on build configurations. +When building firmware, **`fbt`** collects all application manifests and processes their dependencies. Then it builds only those components referenced in the current build configuration. See [FBT docs](./fbt.md#firmware-application-set) for details on build configurations. ## Application definition -A firmware component's properties are declared in a Python code snippet, forming a call to App() function with various parameters. +A firmware component's properties are declared in a Python code snippet, forming a call to the `App()` function with various parameters. -Only 2 parameters are mandatory: ***appid*** and ***apptype***; others are optional and may only be meaningful for certain application types. +Only two parameters are mandatory: **_appid_** and **_apptype_**. Others are optional and may only be meaningful for certain application types. ### Parameters -* **appid**: string, application id within the build system. Used to specify which applications to include in the build configuration and resolve dependencies and conflicts. +- **appid**: string, application ID within the build system. It is used to specify which applications to include in the build configuration and resolve dependencies and conflicts. -* **apptype**: member of FlipperAppType.* enumeration. Valid values are: +- **apptype**: member of FlipperAppType.\* enumeration. Valid values are: -| Enum member | Firmware component type | -|--------------|--------------------------| -| SERVICE | System service, created at early startup | -| SYSTEM | Application is not being shown in any menus. It can be started by other apps or from CLI | -| APP | Regular application for the main menu | -| PLUGIN | Application to be built as a part of the firmware and to be placed in the Plugins menu | -| DEBUG | Application only visible in Debug menu with debug mode enabled | -| ARCHIVE | One and only Archive app | -| SETTINGS | Application to be placed in the system settings menu | -| STARTUP | Callback function to run at system startup. Does not define a separate app | -| EXTERNAL | Application to be built as .fap plugin | -| METAPACKAGE | Does not define any code to be run, used for declaring dependencies and application bundles | - -* **name**: Name that is displayed in menus. -* **entry_point**: C function to be used as the application's entry point. Note that C++ function names are mangled, so you need to wrap them in `extern "C"` to use them as entry points. -* **flags**: Internal flags for system apps. Do not use. -* **cdefines**: C preprocessor definitions to declare globally for other apps when the current application is included in the active build configuration. -* **requires**: List of application IDs to include in the build configuration when the current application is referenced in the list of applications to build. -* **conflicts**: List of application IDs that the current application conflicts with. If any of them is found in the constructed application list, **`fbt`** will abort the firmware build process. -* **provides**: Functionally identical to ***requires*** field. -* **stack_size**: Stack size, in bytes, to allocate for application on its startup. Note that allocating a stack too small for an app to run will cause a system crash due to stack overflow, and allocating too much stack space will reduce usable heap memory size for apps to process data. *Note: you can use `ps`, and `free` CLI commands to profile your app's memory usage.* -* **icon**: Animated icon name from built-in assets to be used when building the app as a part of the firmware. -* **order**: Order of an application within its group when sorting entries in it. The lower the order is, the closer to the start of the list the item is placed. *Used for ordering startup hooks and menu entries.* -* **sdk_headers**: List of C header files from this app's code to include in API definitions for external applications. -* **targets**: list of strings, target names, which this application is compatible with. If not specified, the application is built for all targets. The default value is `["all"]`. +| Enum member | Firmware component type | +| ----------- | ------------------------------------------------------------------------------------------- | +| SERVICE | System service, created at early startup | +| SYSTEM | Application is not being shown in any menus. It can be started by other apps or from CLI | +| APP | Regular application for the main menu | +| PLUGIN | Application to be built as a part of the firmware and to be placed in the Plugins menu | +| DEBUG | Application only visible in Debug menu with debug mode enabled | +| ARCHIVE | One and only Archive app | +| SETTINGS | Application to be placed in the system settings menu | +| STARTUP | Callback function to run at system startup. Does not define a separate app | +| EXTERNAL | Application to be built as `.fap` plugin | +| METAPACKAGE | Does not define any code to be run, used for declaring dependencies and application bundles | +- **name**: name displayed in menus. +- **entry_point**: C function to be used as the application's entry point. Note that C++ function names are mangled, so you need to wrap them in `extern "C"` to use them as entry points. +- **flags**: internal flags for system apps. Do not use. +- **cdefines**: C preprocessor definitions to declare globally for other apps when the current application is included in the active build configuration. +- **requires**: list of application IDs to include in the build configuration when the current application is referenced in the list of applications to build. +- **conflicts**: list of application IDs with which the current application conflicts. If any of them is found in the constructed application list, **`fbt`** will abort the firmware build process. +- **provides**: functionally identical to **_requires_** field. +- **stack_size**: stack size in bytes to allocate for an application on its startup. Note that allocating a stack too small for an app to run will cause a system crash due to stack overflow, and allocating too much stack space will reduce usable heap memory size for apps to process data. _Note: you can use `ps` and `free` CLI commands to profile your app's memory usage._ +- **icon**: animated icon name from built-in assets to be used when building the app as a part of the firmware. +- **order**: order of an application within its group when sorting entries in it. The lower the order is, the closer to the start of the list the item is placed. _Used for ordering startup hooks and menu entries._ +- **sdk_headers**: list of C header files from this app's code to include in API definitions for external applications. +- **targets**: list of strings and target names with which this application is compatible. If not specified, the application is built for all targets. The default value is `["all"]`. #### Parameters for external applications The following parameters are used only for [FAPs](./AppsOnSDCard.md): -* **sources**: list of strings, file name masks used for gathering sources within the app folder. The default value of `["*.c*"]` includes C and C++ source files. Applications cannot use the `"lib"` folder for their own source code, as it is reserved for **fap_private_libs**. -* **fap_version**: tuple, 2 numbers in the form of (x,y): application version to be embedded within .fap file. The default value is (0,1), meaning version "0.1". -* **fap_icon**: name of a .png file, 1-bit color depth, 10x10px, to be embedded within .fap file. -* **fap_libs**: list of extra libraries to link the application against. Provides access to extra functions that are not exported as a part of main firmware at the expense of increased .fap file size and RAM consumption. -* **fap_category**: string, may be empty. App subcategory, also determines the path of the FAP within apps folder in the file system. -* **fap_description**: string, may be empty. Short application description. -* **fap_author**: string, may be empty. Application's author. -* **fap_weburl**: string, may be empty. Application's homepage. -* **fap_icon_assets**: string. If present defines a folder name to be used for gathering image assets for this application. These images will be preprocessed and built alongside the application. See [FAP assets](./AppsOnSDCard.md#fap-assets) for details. -* **fap_extbuild**: provides support for parts of application sources to be built by external tools. Contains a list of `ExtFile(path="file name", command="shell command")` definitions. **`fbt`** will run the specified command for each file in the list. - -Note that commands are executed at the firmware root folder's root, and all intermediate files must be placed in an application's temporary build folder. For that, you can use pattern expansion by **`fbt`**: `${FAP_WORK_DIR}` will be replaced with the path to the application's temporary build folder, and `${FAP_SRC_DIR}` will be replaced with the path to the application's source folder. You can also use other variables defined internally by **`fbt`**. +- **sources**: list of strings, file name masks used for gathering sources within the app folder. The default value of `["*.c*"]` includes C and C++ source files. Applications cannot use the `"lib"` folder for their own source code, as it is reserved for **fap_private_libs**. +- **fap_version**: tuple, 2 numbers in the form of (x,y): application version to be embedded within .fap file. The default value is (0,1), meaning version "0.1". +- **fap_icon**: name of a `.png` file, 1-bit color depth, 10x10px, to be embedded within `.fap` file. +- **fap_libs**: list of extra libraries to link the application against. Provides access to extra functions that are not exported as a part of main firmware at the expense of increased `.fap` file size and RAM consumption. +- **fap_category**: string, may be empty. App subcategory, also determines the path of the FAP within the apps folder in the file system. +- **fap_description**: string, may be empty. Short application description. +- **fap_author**: string, may be empty. Application's author. +- **fap_weburl**: string, may be empty. Application's homepage. +- **fap_icon_assets**: string. If present, it defines a folder name to be used for gathering image assets for this application. These images will be preprocessed and built alongside the application. See [FAP assets](./AppsOnSDCard.md#fap-assets) for details. +- **fap_extbuild**: provides support for parts of application sources to be built by external tools. Contains a list of `ExtFile(path="file name", command="shell command")` definitions. **`fbt`** will run the specified command for each file in the list. +Note that commands are executed at the firmware root folder, and all intermediate files must be placed in an application's temporary build folder. For that, you can use pattern expansion by **`fbt`**: `${FAP_WORK_DIR}` will be replaced with the path to the application's temporary build folder, and `${FAP_SRC_DIR}` will be replaced with the path to the application's source folder. You can also use other variables defined internally by **`fbt`**. Example for building an app from Rust sources: @@ -73,16 +71,16 @@ Example for building an app from Rust sources: ), ``` -* **fap_private_libs**: a list of additional libraries distributed as sources alongside the application. These libraries will be built as a part of the application build process. -Library sources must be placed in a subfolder of "`lib`" folder within the application's source folder. -Each library is defined as a call to `Lib()` function, accepting the following parameters: +- **fap_private_libs**: list of additional libraries distributed as sources alongside the application. These libraries will be built as a part of the application build process. + Library sources must be placed in a subfolder of the `lib` folder within the application's source folder. + Each library is defined as a call to the `Lib()` function, accepting the following parameters: - - **name**: name of library's folder. Required. - - **fap_include_paths**: list of library's relative paths to add to parent fap's include path list. The default value is `["."]` meaning the library's source root. - - **sources**: list of filename masks to be used for gathering include files for this library. Paths are relative to the library's source root. The default value is `["*.c*"]`. - - **cflags**: list of additional compiler flags to be used for building this library. The default value is `[]`. - - **cdefines**: list of additional preprocessor definitions to be used for building this library. The default value is `[]`. - - **cincludes**: list of additional include paths to be used for building this library. Paths are relative to the application's root. This can be used for providing external search paths for this library's code - for configuration headers. The default value is `[]`. + - **name**: name of the library's folder. Required. + - **fap_include_paths**: list of the library's relative paths to add to the parent fap's include path list. The default value is `["."]`, meaning the library's source root. + - **sources**: list of filename masks to be used for gathering include files for this library. Paths are relative to the library's source root. The default value is `["*.c*"]`. + - **cflags**: list of additional compiler flags to be used for building this library. The default value is `[]`. + - **cdefines**: list of additional preprocessor definitions to be used for building this library. The default value is `[]`. + - **cincludes**: list of additional include paths to be used for building this library. Paths are relative to the application's root. This can be used for providing external search paths for this library's code — for configuration headers. The default value is `[]`. Example for building an app with a private library: @@ -105,15 +103,14 @@ Example for building an app with a private library: ], ``` -For that snippet, **`fbt`** will build 2 libraries: one from sources in `lib/mbedtls` folder and another from sources in `lib/loclass` folder. For the `mbedtls` library, **`fbt`** will add `lib/mbedtls/include` to the list of include paths for the application and compile only the files specified in the `sources` list. Additionally, **`fbt`** will enable `MBEDTLS_ERROR_C` preprocessor definition for `mbedtls` sources. +For that snippet, **`fbt`** will build 2 libraries: one from sources in `lib/mbedtls` folder and another from sources in the `lib/loclass` folder. For the `mbedtls` library, **`fbt`** will add `lib/mbedtls/include` to the list of include paths for the application and compile only the files specified in the `sources` list. Additionally, **`fbt`** will enable `MBEDTLS_ERROR_C` preprocessor definition for `mbedtls` sources. For the `loclass` library, **`fbt`** will add `lib/loclass` to the list of the include paths for the application and build all sources in that folder. Also, **`fbt`** will disable treating compiler warnings as errors for the `loclass` library, which can be useful when compiling large 3rd-party codebases. Both libraries will be linked with the application. +## `.fam` file contents -## .fam file contents - -.fam file contains one or more Application definitions. For example, here's a part of `applications/service/bt/application.fam`: +The `.fam` file contains one or more application definitions. For example, here's a part of `applications/service/bt/application.fam`: ```python App( @@ -137,4 +134,4 @@ App( ) ``` -For more examples, see .fam files from various firmware parts. +For more examples, see `.fam` files from various firmware parts. diff --git a/documentation/AppsOnSDCard.md b/documentation/AppsOnSDCard.md index d38837276..9ab7e9b26 100644 --- a/documentation/AppsOnSDCard.md +++ b/documentation/AppsOnSDCard.md @@ -1,83 +1,80 @@ # FAP (Flipper Application Package) -[fbt](./fbt.md) has support for building applications as FAP files. FAP are essentially .elf executables with extra metadata and resources bundled in. +[fbt](./fbt.md) supports building applications as FAP files. FAPs are essentially `.elf` executables with extra metadata and resources bundled in. -FAPs are built with `faps` target. They can also be deployed to `dist` folder with `fap_dist` target. +FAPs are built with the `faps` target. They can also be deployed to the `dist` folder with the `fap_dist` target. FAPs do not depend on being run on a specific firmware version. Compatibility is determined by the FAP's metadata, which includes the required [API version](#api-versioning). - ## How to set up an application to be built as a FAP -FAPs are created and developed the same way as internal applications that are part of the firmware. +FAPs are created and developed the same way as internal applications that are part of the firmware. -To build your application as a FAP, just create a folder with your app's source code in `applications_user`, then write its code the way you'd do when creating a regular built-in application. Then configure its `application.fam` manifest — and set its *apptype* to FlipperAppType.EXTERNAL. See [Application Manifests](./AppManifests.md#application-definition) for more details. - - * To build your application, run `./fbt fap_{APPID}`, where APPID is your application's ID in its manifest. - * To build your app, then upload it over USB & run it on Flipper, use `./fbt launch_app APPSRC=applications/path/to/app`. This command is configured in default [VSCode profile](../.vscode/ReadMe.md) as "Launch App on Flipper" build action (Ctrl+Shift+B menu). - * To build all FAPs, run `./fbt faps` or `./fbt fap_dist`. +To build your application as a FAP, create a folder with your app's source code in `applications_user`, then write its code the way you'd do when creating a regular built-in application. Then configure its `application.fam` manifest, and set its _apptype_ to FlipperAppType.EXTERNAL. See [Application Manifests](./AppManifests.md#application-definition) for more details. +- To build your application, run `./fbt fap_{APPID}`, where APPID is your application's ID in its manifest. +- To build your app and upload it over USB to run on Flipper, use `./fbt launch_app APPSRC=applications/path/to/app`. This command is configured in the default [VS Code profile](../.vscode/ReadMe.md) as a "Launch App on Flipper" build action (Ctrl+Shift+B menu). +- To build all FAPs, run `./fbt faps` or `./fbt fap_dist`. ## FAP assets FAPs can include static and animated images as private assets. They will be automatically compiled alongside application sources and can be referenced the same way as assets from the main firmware. -To use that feature, put your images in a subfolder inside your application's folder, then reference that folder in your application's manifest in `fap_icon_assets` field. See [Application Manifests](./AppManifests.md#application-definition) for more details. +To use that feature, put your images in a subfolder inside your application's folder, then reference that folder in your application's manifest in the `fap_icon_assets` field. See [Application Manifests](./AppManifests.md#application-definition) for more details. To use these assets in your application, put `#include "{APPID}_icons.h"` in your application's source code, where `{APPID}` is the `appid` value field from your application's manifest. Then you can use all icons from your application's assets the same way as if they were a part of `assets_icons.h` of the main firmware. -Images and animated icons must follow the same [naming convention](../assets/ReadMe.md#asset-naming-rules) as those from the main firmware. - +Images and animated icons should follow the same [naming convention](../assets/ReadMe.md#asset-naming-rules) as those from the main firmware. ## Debugging FAPs -**`fbt`** includes a script for gdb-py to provide debugging support for FAPs, `debug/flipperapps.py`. It is loaded in default debugging configurations by **`fbt`** and stock VSCode configurations. +**`fbt`** includes a script for gdb-py to provide debugging support for FAPs, `debug/flipperapps.py`. It is loaded in default debugging configurations by **`fbt`** and stock VS Code configurations. -With it, you can debug FAPs as if they were a part of main firmware — inspect variables, set breakpoints, step through the code, etc. +With it, you can debug FAPs as if they were a part of the main firmware — inspect variables, set breakpoints, step through the code, etc. ### Setting up debugging environment -Debugging support script looks up debugging information in the latest firmware build dir (`build/latest`). That directory is symlinked by fbt to the latest firmware configuration (Debug or Release) build dir, when you run `./fbt` for chosen configuration. See [fbt docs](./fbt.md#nb) for details. +The debugging support script looks up debugging information in the latest firmware build directory (`build/latest`). That directory is symlinked by `fbt` to the latest firmware configuration (Debug or Release) build directory when you run `./fbt` for the chosen configuration. See [fbt docs](./fbt.md#nb) for details. + +To debug FAPs, do the following: -So, to debug FAPs, do the following: 1. Build firmware with `./fbt` 2. Flash it with `./fbt flash` -3. [Build your FAP](#how-to-set-up-an-application-to-be-built-as-a-fap) and run it on Flipper. +3. [Build your FAP](#how-to-set-up-an-application-to-be-built-as-a-fap) and run it on Flipper -After that, you can attach with `./fbt debug` or VSCode and use all debug features. +After that, you can attach with `./fbt debug` or VS Code and use all debug features. -It is **important** that firmware and application build type (debug/release) match, and that matching firmware folder is linked as `build/latest`. Otherwise, debugging will not work. +It is **important** that firmware and application build type (debug/release) match and that the matching firmware folder is linked as `build/latest`. Otherwise, debugging will not work. +## How Flipper runs an application from an SD card -## How Flipper runs an application from SD card +Flipper's MCU cannot run code directly from external storage, so it needs to be copied to RAM first. That is done by the App Loader application responsible for loading the FAP from the SD card, verifying its integrity and compatibility, copying it to RAM, and adjusting it for its new location. -Flipper's MCU cannot run code directly from external storage, so it needs to be copied to RAM first. That is done by the App Loader application, which is responsible for loading the FAP from SD card, verifying its integrity and compatibility, copying it to RAM and adjusting it for its new location. +Since FAP has to be loaded to RAM to be executed, the amount of RAM available for allocations from heap is reduced compared to running the same app from flash, as a part of the firmware. Note that the amount of occupied RAM is less than the total FAP file size since only code and data sections are allocated, while the FAP file includes extra information only used at app load time. -Since FAP has to be loaded to RAM to be executed, the amount of RAM available for allocations from heap is reduced compared to running the same app from flash, as a part of firmware. Note that the amount of occupied RAM is less than total FAP file size, since only code and data sections are allocated, while FAP file includes extra information only used at app load time. +Applications are built for a specific API version. It is a part of the hardware target's definition and contains a major and minor version number. The App Loader checks if the application's major API version matches the firmware's major API version. -Applications are built for a specific API version. It is a part of the hardware target's definition and contains a major and minor version number. Application loader checks if the application's major API version matches firmware's major API version. +The App Loader allocates memory for the application and copies it to RAM, processing relocations and providing concrete addresses for imported symbols using the [symbol table](#symbol-table). Then it starts the application. -App loader allocates memory for the application and copies it to RAM, processing relocations and providing concrete addresses for imported symbols using the [symbol table](#symbol-table). Then it starts the application. +## API versioning +Not all parts of firmware are available for external applications. A subset of available functions and variables is defined in the "api_symbols.csv" file, which is a part of the firmware target definition in the `firmware/targets/` directory. -## API Versioning - -Not all parts of firmware are available for external applications. A subset of available functions and variables is defined in "api_symbols.csv" file, which is a part of firmware target definition in `firmware/targets/` directory. - -**`fbt`** uses semantic versioning for API. Major version is incremented when there are breaking changes in the API, minor version is incremented when new features are added. +**`fbt`** uses semantic versioning for the API. The major version is incremented when there are breaking changes in the API. The minor version is incremented when new features are added. Breaking changes include: -- removal of a function or a global variable; -- changing the signature of a function. -API versioning is mostly automated by **`fbt`**. When rebuilding the firmware, **`fbt`** checks if there are any changes in the API exposed by headers gathered from `SDK_HEADERS`. If so, it stops the build, adjusts the API version and asks the user to go through the changes in .csv file. New entries are marked with "`?`" mark, and the user is supposed to change the mark to "`+`" for the entry to be exposed for FAPs, "`-`" for it to be unavailable. +- Removing a function or a global variable +- Changing the signature of a function + +API versioning is mostly automated by **`fbt`**. When rebuilding the firmware, **`fbt`** checks if there are any changes in the API exposed by headers gathered from `SDK_HEADERS`. If so, it stops the build, adjusts the API version, and asks the user to go through the changes in the `.csv` file. New entries are marked with a "`?`" mark, and the user is supposed to change the mark to "`+`" for the entry to be exposed for FAPs, or to "`-`" for it to be unavailable. **`fbt`** will not allow building a firmware until all "`?`" entries are changed to "`+`" or "`-`". -**NB:** **`fbt`** automatically manages the API version. The only case where manually incrementing the major API version is allowed (and required) is when existing "`+`" entries are to be changed to "`-`". +**NB:** **`fbt`** automatically manages the API version. The only case where manually incrementing the major API version is allowed (and required) is when existing "`+`" entries are to be changed to "`-`". -### Symbol Table +### Symbol table The symbol table is a list of symbols exported by firmware and available for external applications. It is generated by **`fbt`** from the API symbols file and is used by the App Loader to resolve addresses of imported symbols. It is build as a part of the `fap_loader` application. -**`fbt`** also checks if all imported symbols are present in the symbol table. If there are any missing symbols, it will issue a warning listing them. Such application won't be able to run on the device until all requires symbols are provided in the symbol table. +**`fbt`** also checks if all imported symbols are present in the symbol table. If there are any missing symbols, it will issue a warning listing them. The application won't be able to run on the device until all required symbols are provided in the symbol table. diff --git a/documentation/KeyCombo.md b/documentation/KeyCombo.md index 93ceb204c..6db5b4113 100644 --- a/documentation/KeyCombo.md +++ b/documentation/KeyCombo.md @@ -1,134 +1,119 @@ # Key Combos -There are times when your Flipper feels blue and doesn't respond to your commands. -In that case, you may find this guide useful. +There are times when your Flipper feels blue and doesn't respond to any of your commands due to a software issue. This guide will help you solve this problem. +## Basic combos -## Basic Combos - - -### Hardware Reset +### Hardware reset - Press `LEFT` and `BACK` and hold for a couple of seconds - Release `LEFT` and `BACK` -This combo performs a hardware reset by pulling MCU reset line down. -Main components involved: Keys -> DD8(NC7SZ32M5X, OR-gate) -> DD1(STM32WB55, MCU) +This combo performs a hardware reset by pulling the MCU reset line down. +Main components involved: Keys -> DD8(NC7SZ32M5X, OR-gate) -> DD1(STM32WB55, MCU). -There is 1 case where it does not work: - -- MCU debug block is active and holding reset line from inside. +It won't work only in one case: +- The MCU debug block is active and holding the reset line from inside. ### Hardware Power Reset -- Disconnect USB and any external power supplies -- Disconnect USB once again -- Make sure that you've disconnected USB and any external power supplies -- Press `BACK` and hold for 30 seconds (Will only work with USB disconnected) -- If you have not disconnected USB, then disconnect USB and repeat previous step -- Release `BACK` key +- Disconnect the USB cable and any external power supplies +- Disconnect the USB once again +- Make sure you've disconnected the USB and any external power supplies +- Press `BACK` and hold for 30 seconds (this will only work with the USB disconnected) +- If you haven't disconnected the USB, then disconnect it and repeat the previous step +- Release the `BACK` key This combo performs a reset by switching SYS power line off and then on. -Main components involved: Keys -> DD6(bq25896, charger) +Main components involved: Keys -> DD6(bq25896, charger). -There is 1 case where it does not work: +It won't work only in one case: - Power supply is connected to USB or 5V_ext - ### Software DFU - Press `LEFT` on boot to enter DFU with Flipper boot-loader -There is 1 case where it does not work: +It won't work only in one case: - Flipper boot-loader is damaged or absent - ### Hardware DFU - Press `OK` on boot to enter DFU with ST boot-loader -There is 1 case where it does not work: +It won't work only in one case: -- Option Bytes are damaged or set to ignore `OK` key - - -## DFU Combos +- Option Bytes are damaged or set to ignore the `OK` key +## DFU combos ### Hardware Reset + Software DFU - Press `LEFT` and `BACK` and hold for a couple of seconds - Release `BACK` -- Device will enter DFU with indication (Blue LED + DFU Screen) +- Device will enter DFU with an indication (Blue LED + DFU Screen) - Release `LEFT` -This combo performs a hardware reset by pulling MCU reset line down. -Then, `LEFT` key indicates to the boot-loader that DFU mode is requested. +This combo performs a hardware reset by pulling the MCU reset line down. Then, the `LEFT` key indicates to the boot-loader that DFU mode is requested. -There are 2 cases where it does not work: +It won't work in two cases: -- MCU debug block is active and holding reset line from inside +- The MCU debug block is active and holding the reset line from inside - Flipper boot-loader is damaged or absent - ### Hardware Reset + Hardware DFU - Press `LEFT`, `BACK` and `OK` and hold for a couple of seconds - Release `BACK` and `LEFT` -- Device will enter DFU without indication +- The device will enter DFU without an indication -This combo performs a hardware reset by pulling MCU reset line down. -Then, `OK` key forces MCU to load internal boot-loader. +This combo performs a hardware reset by pulling the MCU reset line down. Then, the `OK` key forces MCU to load the internal boot-loader. -There are 2 cases where it does not work: - -- MCU debug block is active and holding reset line from inside -- Option Bytes are damaged or set to ignore `OK` key +It won't work in two cases: +- The MCU debug block is active and holding the reset line from inside +- Option Bytes are damaged or set to ignore the `OK` key ### Hardware Power Reset + Software DFU -- Disconnect USB and any external power supplies +- Disconnect the USB and any external power supplies - Press `BACK` and `LEFT` for 30 seconds - Release `BACK` -- Device will enter DFU with indication (Blue LED + DFU Screen) +- The device will enter DFU with an indication (Blue LED + DFU Screen) - Release `LEFT` -- Plug in USB +- Plug in the USB -This combo performs a reset by switching SYS power line off and then on. -Then, `LEFT` key indicates to boot-loader that DFU mode requested. +This combo performs a reset by switching the SYS power line off and then on. Next, the `LEFT` key indicates to the boot-loader that DFU mode is requested. -There are 2 cases where it does not work: +It won't work in two cases: - Power supply is connected to USB or 5V_ext - Flipper boot-loader is damaged or absent - ### Hardware Power Reset + Hardware DFU -- Disconnect USB and any external power supplies +- Disconnect the USB and any external power supplies - Press `BACK` and `OK` and hold for 30 seconds - Release `BACK` and `OK` -- Device will enter DFU without indication -- Plug USB +- The device will enter DFU without indication +- Plug in the USB -This combo performs a reset by switching SYS power line off and then on. -Then, `OK` key forces MCU to load internal boot-loader. +This combo performs a reset by switching the SYS power line off and then on. Next, the `OK` key forces MCU to load the internal boot-loader. -There are 2 cases where it does not work: +It won't work in two cases: - Power supply is connected to USB or 5V_ext -- Option Bytes are damaged or set to ignore `OK` key +- Option Bytes are damaged or set to ignore the `OK` key # Alternative ways to recover your device -If none of the described methods were useful: +If none of the described methods helped you: -- Ensure the battery charged -- Disconnect the battery and connect again (Requires disassembly) -- Try to Flash device with ST-Link or other programmer that supports SWD +- Make sure the battery charged +- Disconnect the battery and connect again (requires disassembly) +- Try to flash the device with ST-Link or another programmer that supports SWD -If you still are here and your device is not working: it's not a software issue. \ No newline at end of file +If you're still here and your device is not working: it's not a software issue. diff --git a/documentation/RoadMap.md b/documentation/RoadMap.md index 612e55e62..658bb2086 100644 --- a/documentation/RoadMap.md +++ b/documentation/RoadMap.md @@ -1,9 +1,8 @@ # RoadMap -# Where we are (0.x.x branch) +# Where we are now (0.x.x branch) -Our goal for 0.x.x branch is to build stable, usable apps and API. -The first public release in this branch is 0.43.1. +Our goal for the 0.x.x branch is to build an API and apps that are stable and usable. The first public release in this branch is 0.43.1. ## What's already implemented @@ -17,12 +16,12 @@ The first public release in this branch is 0.43.1. - SubGhz: all most common protocols, reading RAW for everything else - 125kHz RFID: all most common protocols -- NFC: reading/emulating Mifare Ultralight, reading MiFare Classic and DESFire, basic EMV, basic NFC-B/F/V +- NFC: reading/emulating MIFARE Ultralight, reading MIFARE Classic and DESFire, basic EMV, and basic NFC-B/F/V - Infrared: all most common RC protocols, RAW format for everything else - GPIO: UART bridge, basic GPIO controls -- iButton: DS1990, Cyfral, Metacom -- Bad USB: Full USB Rubber Ducky support, some extras for windows alt codes -- U2F: Full U2F specification support +- iButton: DS1990, Cyfral, Metakom +- Bad USB: full USB Rubber Ducky support, some extras for Windows Alt codes +- U2F: full U2F specification support **External applications** @@ -42,8 +41,6 @@ The main goal for 1.0.0 is to provide the first stable version for both Users an ## When will it happen, and where can I see the progress? -Release 1.0.0 will most likely happen around the end of 2023Q1 +Release 1.0.0 will likely happen around the end of 2023Q1. -Development progress can be tracked in our public Miro board: - -https://miro.com/app/board/uXjVO_3D6xU=/?moveToWidget=3458764522498020058&cot=14 +You can track the development progress in our public Miro board: https://miro.com/app/board/uXjVO_3D6xU=/?moveToWidget=3458764522498020058&cot=14 diff --git a/documentation/UnitTests.md b/documentation/UnitTests.md index 896426567..d38d4c4b1 100644 --- a/documentation/UnitTests.md +++ b/documentation/UnitTests.md @@ -1,49 +1,65 @@ # Unit tests + ## Intro -Unit tests are special pieces of code that apply known inputs to the feature code and check the results to see if they were correct. + +Unit tests are special pieces of code that apply known inputs to the feature code and check the results to see if they are correct. They are crucial for writing robust, bug-free code. Flipper Zero firmware includes a separate application called [unit_tests](/applications/debug/unit_tests). -It is run directly on the Flipper Zero in order to employ its hardware features and to rule out any platform-related differences. +It is run directly on Flipper devices in order to employ their hardware features and rule out any platform-related differences. -When contributing code to the Flipper Zero firmware, it is highly desirable to supply unit tests along with the proposed features. +When contributing code to the Flipper Zero firmware, it is highly desirable to supply unit tests along with the proposed features. Running existing unit tests is useful to ensure that the new code doesn't introduce any regressions. ## Running unit tests -In order to run the unit tests, follow these steps: + +To run the unit tests, follow these steps: + 1. Compile the firmware with the tests enabled: `./fbt FIRMWARE_APP_SET=unit_tests`. 2. Flash the firmware using your preferred method. 3. Copy the [assets/unit_tests](assets/unit_tests) folder to the root of your Flipper Zero's SD card. 4. Launch the CLI session and run the `unit_tests` command. -**NOTE:** To run a particular test (and skip all others), specify its name as the command argument. +**NOTE:** To run a particular test (and skip all others), specify its name as the command argument. See [test_index.c](applications/debug/unit_tests/test_index.c) for the complete list of test names. ## Adding unit tests + ### General + #### Entry point + The common entry point for all tests is the [unit_tests](applications/debug/unit_tests) application. Test-specific code is placed into an arbitrarily named subdirectory and is then called from the [test_index.c](applications/debug/unit_tests/test_index.c) source file. + #### Test assets -Some unit tests require external data in order to function. These files (commonly called assets) reside in the [assets/unit_tests](/assets/unit_tests) directory in their respective subdirectories. Asset files can be of any type (plain text, FlipperFormat(FFF), binary, etc). + +Some unit tests require external data in order to function. These files (commonly called assets) reside in the [assets/unit_tests](/assets/unit_tests) directory in their respective subdirectories. Asset files can be of any type (plain text, FlipperFormat (FFF), binary, etc.). + ### Application-specific + #### Infrared + Each infrared protocol has a corresponding set of unit tests, so it makes sense to implement one when adding support for a new protocol. -In order to add unit tests for your protocol, follow these steps: +To add unit tests for your protocol, follow these steps: + 1. Create a file named `test_.irtest` in the [assets](assets/unit_tests/infrared) directory. 2. Fill it with the test data (more on it below). 3. Add the test code to [infrared_test.c](applications/debug/unit_tests/infrared/infrared_test.c). 4. Update the [assets](assets/unit_tests/infrared) on your Flipper Zero and run the tests to see if they pass. ##### Test data format -Each unit test has 3 sections: -1. `decoder` - takes in raw signal and outputs decoded messages. + +Each unit test has three sections: + +1. `decoder` - takes in a raw signal and outputs decoded messages. 2. `encoder` - takes in decoded messages and outputs a raw signal. -3. `encoder_decoder` - takes in decoded messages, turns them into a raw signal, and then decodes again. +3. `encoder_decoder` - takes in decoded messages, turns them into a raw signal, and then decodes again. Infrared test asset files have an `.irtest` extension and are regular `.ir` files with a few additions. -Decoder input data has signal names `decoder_input_N`, where N is a test sequence number. Expected data goes under the name `decoder_expected_N`. When testing the encoder these two are switched. +Decoder input data has signal names `decoder_input_N`, where N is a test sequence number. Expected data goes under the name `decoder_expected_N`. When testing the encoder, these two are switched. -Decoded data is represented in arrays (since a single raw signal may decode to several messages). If there is only one signal, then it has to be an array of size 1. Use the existing files as syntax examples. +Decoded data is represented in arrays (since a single raw signal may be decoded into several messages). If there is only one signal, then it has to be an array of size 1. Use the existing files as syntax examples. ##### Getting raw signals + Recording raw IR signals are possible using the Flipper Zero. Launch the CLI session, run `ir rx raw`, then point the remote towards Flipper's receiver and send the signals. The raw signal data will be printed to the console in a convenient format. diff --git a/documentation/UniversalRemotes.md b/documentation/UniversalRemotes.md index 186a0e65a..264829e16 100644 --- a/documentation/UniversalRemotes.md +++ b/documentation/UniversalRemotes.md @@ -1,62 +1,69 @@ # Universal Remotes + ## Televisions -Adding your TV set to the universal remote is quite straightforward. Up to 6 signals can be recorded: `Power`, `Mute`, `Vol_up`, `Vol_dn`, `Ch_next`, `Ch_prev`. Any of them can be omitted if not supported by the TV. + +Adding your TV set to the universal remote is quite straightforward. Up to 6 signals can be recorded: `Power`, `Mute`, `Vol_up`, `Vol_dn`, `Ch_next`, and `Ch_prev`. Any of them can be omitted if not supported by your TV. Each signal is recorded using the following algorithm: + 1. Get the remote and point it to Flipper's IR receiver. 2. Start learning a new remote if it's the first button or press `+` to add a new button otherwise. 3. Press a remote button and save it under a corresponding name. 4. Repeat steps 2-3 until all required signals are saved. -The signal names are self-explanatory. Don't forget to make sure that every recorded signal does what it's supposed to. +The signal names are self-explanatory. Remember to make sure that every recorded signal does what it's supposed to. If everything checks out, append these signals **to the end** of the [TV universal remote file](/assets/resources/infrared/assets/tv.ir). -## Audio Players -Adding your audio player to the universal remote is done in the same manner as described above. Up to 8 signals can be recorded: `Power`, `Play`, `Pause`, `Vol_up`, `Vol_dn`, `Next`, `Prev`, `Mute`. Any of them can be omitted if not supported by the player. +## Audio players -The signal names are self-explanatory. -On many remotes, the `Play` button doubles as `Pause`. In this case record it as `Play` omitting the `Pause`. +Adding your audio player to the universal remote is done in the same manner as described above. Up to 8 signals can be recorded: `Power`, `Play`, `Pause`, `Vol_up`, `Vol_dn`, `Next`, `Prev`, and `Mute`. Any of them can be omitted if not supported by the player. + +The signal names are self-explanatory. +On many remotes, the `Play` button doubles as `Pause`. In this case, record it as `Play` omitting the `Pause`. Make sure that every signal does what it's supposed to. -If everything checks out, append these signals **to the end** of the [Audio players universal remote file](/assets/resources/infrared/assets/audio.ir). +If everything checks out, append these signals **to the end** of the [audio player universal remote file](/assets/resources/infrared/assets/audio.ir). + +## Air conditioners -## Air Conditioners Air conditioners differ from most other infrared-controlled devices because their state is tracked by the remote. -The majority of A/C remotes have a small display which shows current mode, temperature and other settings. +The majority of A/C remotes have a small display that shows the current mode, temperature, and other settings. When the user presses a button, a whole set of parameters is transmitted to the device, which must be recorded and used as a whole. -In order to add a particular air conditioner to the universal remote, 6 signals must be recorded: `Off`, `Dh`, `Cool_hi`, `Cool_lo`, `Heat_hi`, `Heat_lo`. +In order to add a particular air conditioner to the universal remote, 6 signals must be recorded: `Off`, `Dh`, `Cool_hi`, `Cool_lo`, `Heat_hi`, and `Heat_lo`. Each signal (except `Off`) is recorded using the following algorithm: 1. Get the remote and press the **Power Button** so that the display shows that A/C is ON. -2. Set the A/C to the corresponding mode (see table below), while leaving other parameters such as fan speed or vane on **AUTO** (if applicable). +2. Set the A/C to the corresponding mode (see table below), leaving other parameters such as fan speed or vane on **AUTO** (if applicable). 3. Press the **POWER** button to switch the A/C off. 4. Start learning a new remote on Flipper if it's the first button or press `+` to add a new button otherwise. 5. Point the remote to Flipper's IR receiver as directed and press **POWER** button once again. 6. Save the resulting signal under the specified name. -7. Repeat the steps 2-6 for each signal from the table below. +7. Repeat steps 2-6 for each signal from the table below. -| Signal | Mode | Temperature | Note | +| Signal | Mode | Temperature | Note | | :-----: | :--------: | :---------: | ----------------------------------- | -| Dh | Dehumidify | N/A | | -| Cool_hi | Cooling | See note | Lowest temperature in cooling mode | -| Cool_lo | Cooling | 23°C | | -| Heat_hi | Heating | See note | Highest temperature in heating mode | -| Heat_lo | Heating | 23°C | | +| Dh | Dehumidify | N/A | | +| Cool_hi | Cooling | See note | Lowest temperature in cooling mode | +| Cool_lo | Cooling | 23°C | | +| Heat_hi | Heating | See note | Highest temperature in heating mode | +| Heat_lo | Heating | 23°C | | Finally, record the `Off` signal: -1. Make sure the display shows that A/C is ON. + +1. Make sure the display shows that the A/C is ON. 2. Start learning a new signal on Flipper and point the remote towards the IR receiver. 3. Press the **POWER** button so that the remote shows the OFF state. 4. Save the resulting signal under the name `Off`. -The resulting remote file should now contain 6 signals. Any of them can be omitted, but that will mean that this functionality will not be used. +The resulting remote file should now contain 6 signals. You can omit any of them, but you then won't be able to use their functionality. Test the file against the actual device. Make sure that every signal does what it's supposed to. If everything checks out, append these signals **to the end** of the [A/C universal remote file](/assets/resources/infrared/assets/ac.ir). ## Final steps -The order of signals is not important, but they must be preceded by a following comment: `# Model: ` in order to keep the library organised. + +The order of signals is not important, but they should be preceded by the following comment: `# Model: ` in order to keep the library organized. When done, open a pull request containing the changed file. diff --git a/documentation/fbt.md b/documentation/fbt.md index 7171fbd7a..f547558cf 100644 --- a/documentation/fbt.md +++ b/documentation/fbt.md @@ -5,102 +5,99 @@ It is invoked by `./fbt` in the firmware project root directory. Internally, it ## Requirements -Please install Python packages required by assets build scripts: `pip3 install -r scripts/requirements.txt` +Install Python packages required by assets build scripts: `pip3 install -r scripts/requirements.txt` ## NB -* `fbt` constructs all referenced environments & their targets' dependency trees on startup. So, to keep startup time as low as possible, we're hiding construction of certain targets behind command-line options. -* `fbt` always performs `git submodule update --init` on start, unless you set `FBT_NO_SYNC=1` in environment: - * On Windows, that's `set "FBT_NO_SYNC=1"` in the shell you're running `fbt` from - * On \*nix, it's `$ FBT_NO_SYNC=1 ./fbt ...` -* `fbt` builds updater & firmware in separate subdirectories in `build`, with their names depending on optimization settings (`COMPACT` & `DEBUG` options). However, for ease of integration with IDEs, latest built variant's directory is always linked as `built/latest`. Additionally, `compile_commands.json` is generated in that folder, which is used for code completion support in IDE. +- `fbt` constructs all referenced environments and their targets' dependency trees on startup. So, to keep startup time as low as possible, we're hiding the construction of certain targets behind command-line options. +- `fbt` always performs `git submodule update --init` on start, unless you set `FBT_NO_SYNC=1` in the environment: + - On Windows, it's `set "FBT_NO_SYNC=1"` in the shell you're running `fbt` from + - On \*nix, it's `$ FBT_NO_SYNC=1 ./fbt ...` +- `fbt` builds updater & firmware in separate subdirectories in `build`, and their names depend on optimization settings (`COMPACT` & `DEBUG` options). However, for ease of integration with IDEs, the latest built variant's directory is always linked as `built/latest`. Additionally, `compile_commands.json` is generated in that folder (used for code completion support in IDE). ## Invoking FBT -To build with FBT, call it specifying configuration options & targets to build. For example, +To build with FBT, call it and specify configuration options & targets to build. For example: `./fbt COMPACT=1 DEBUG=0 VERBOSE=1 updater_package copro_dist` -To run cleanup (think of `make clean`) for specified targets, add `-c` option. +To run cleanup (think of `make clean`) for specified targets, add the `-c` option. ## VSCode integration -`fbt` includes basic development environment configuration for VSCode. To deploy it, run `./fbt vscode_dist`. That will copy initial environment configuration to `.vscode` folder. After that, you can use that configuration by starting VSCode and choosing firmware root folder in "File > Open Folder" menu. - - * On first start, you'll be prompted to install recommended plug-ins. Please install them for best development experience. _You can find a list of them in `.vscode/extensions.json`._ - * Basic build tasks are invoked in Ctrl+Shift+B menu. - * Debugging requires a supported probe. That includes: - * Wi-Fi devboard with stock firmware (blackmagic), - * ST-Link and compatible devices, - * J-Link for flashing and debugging (in VSCode only). _Note that J-Link tools are not included with our toolchain and you have to [download](https://www.segger.com/downloads/jlink/) them yourself and put on your system's PATH._ - * Without a supported probe, you can install firmware on Flipper using USB installation method. +`fbt` includes basic development environment configuration for VS Code. Run `./fbt vscode_dist` to deploy it. That will copy the initial environment configuration to the `.vscode` folder. After that, you can use that configuration by starting VS Code and choosing the firmware root folder in the "File > Open Folder" menu. +- On the first start, you'll be prompted to install recommended plugins. We highly recommend installing them for the best development experience. _You can find a list of them in `.vscode/extensions.json`._ +- Basic build tasks are invoked in the Ctrl+Shift+B menu. +- Debugging requires a supported probe. That includes: + - Wi-Fi devboard with stock firmware (blackmagic). + - ST-Link and compatible devices. + - J-Link for flashing and debugging (in VSCode only). _Note that J-Link tools are not included with our toolchain and you have to [download](https://www.segger.com/downloads/jlink/) them yourself and put them on your system's PATH._ +- Without a supported probe, you can install firmware on Flipper using the USB installation method. ## FBT targets FBT keeps track of internal dependencies, so you only need to build the highest-level target you need, and FBT will make sure everything they depend on is up-to-date. ### High-level (what you most likely need) - -- `fw_dist` - build & publish firmware to `dist` folder. This is a default target, when no other are specified -- `fap_dist` - build external plugins & publish to `dist` folder -- `updater_package`, `updater_minpackage` - build self-update package. Minimal version only includes firmware's DFU file; full version also includes radio stack & resources for SD card -- `copro_dist` - bundle Core2 FUS+stack binaries for qFlipper -- `flash` - flash attached device with OpenOCD over ST-Link -- `flash_usb`, `flash_usb_full` - build, upload and install update package to device over USB. See details on `updater_package`, `updater_minpackage` -- `debug` - build and flash firmware, then attach with gdb with firmware's .elf loaded -- `debug_other`, `debug_other_blackmagic` - attach gdb without loading any .elf. Allows to manually add external elf files with `add-symbol-file` in gdb -- `updater_debug` - attach gdb with updater's .elf loaded -- `blackmagic` - debug firmware with Blackmagic probe (WiFi dev board) -- `openocd` - just start OpenOCD -- `get_blackmagic` - output blackmagic address in gdb remote format. Useful for IDE integration + +- `fw_dist` - build & publish firmware to the `dist` folder. This is a default target when no others are specified. +- `fap_dist` - build external plugins & publish to the `dist` folder. +- `updater_package`, `updater_minpackage` - build a self-update package. The minimal version only includes the firmware's DFU file; the full version also includes a radio stack & resources for the SD card. +- `copro_dist` - bundle Core2 FUS+stack binaries for qFlipper. +- `flash` - flash the attached device with OpenOCD over ST-Link. +- `flash_usb`, `flash_usb_full` - build, upload and install the update package to the device over USB. See details on `updater_package` and `updater_minpackage`. +- `debug` - build and flash firmware, then attach with gdb with firmware's .elf loaded. +- `debug_other`, `debug_other_blackmagic` - attach GDB without loading any `.elf`. It will allow you to manually add external `.elf` files with `add-symbol-file` in GDB. +- `updater_debug` - attach GDB with the updater's `.elf` loaded. +- `blackmagic` - debug firmware with Blackmagic probe (WiFi dev board). +- `openocd` - just start OpenOCD. +- `get_blackmagic` - output the blackmagic address in the GDB remote format. Useful for IDE integration. - `get_stlink` - output serial numbers for attached STLink probes. Used for specifying an adapter with `OPENOCD_ADAPTER_SERIAL=...`. -- `lint`, `format` - run clang-format on C source code to check and reformat it according to `.clang-format` specs -- `lint_py`, `format_py` - run [black](https://black.readthedocs.io/en/stable/index.html) on Python source code, build system files & application manifests -- `cli` - start Flipper CLI session over USB +- `lint`, `format` - run clang-format on the C source code to check and reformat it according to the `.clang-format` specs. +- `lint_py`, `format_py` - run [black](https://black.readthedocs.io/en/stable/index.html) on the Python source code, build system files & application manifests. +- `cli` - start a Flipper CLI session over USB. ### Firmware targets -- `faps` - build all external & plugin apps as [.faps](./AppsOnSDCard.md#fap-flipper-application-package). +- `faps` - build all external & plugin apps as [`.faps`](./AppsOnSDCard.md#fap-flipper-application-package). - **`fbt`** also defines per-app targets. For example, for an app with `appid=snake_game` target names are: - - `fap_snake_game`, etc - build single app as .fap by its application ID. - - Check out [`--extra-ext-apps`](#command-line-parameters) for force adding extra apps to external build - - `fap_snake_game_list`, etc - generate source + assembler listing for app's .fap -- `flash`, `firmware_flash` - flash current version to attached device with OpenOCD over ST-Link -- `jflash` - flash current version to attached device with JFlash using J-Link probe. JFlash executable must be on your $PATH -- `flash_blackmagic` - flash current version to attached device with Blackmagic probe -- `firmware_all`, `updater_all` - build basic set of binaries -- `firmware_list`, `updater_list` - generate source + assembler listing -- `firmware_cdb`, `updater_cdb` - generate `compilation_database.json` file for external tools and IDEs. It can be created without actually building the firmware. + - `fap_snake_game`, etc. - build single app as `.fap` by its application ID. + - Check out [`--extra-ext-apps`](#command-line-parameters) for force adding extra apps to external build. + - `fap_snake_game_list`, etc - generate source + assembler listing for app's `.fap`. +- `flash`, `firmware_flash` - flash the current version to the attached device with OpenOCD over ST-Link. +- `jflash` - flash the current version to the attached device with JFlash using a J-Link probe. The JFlash executable must be on your `$PATH`. +- `flash_blackmagic` - flash the current version to the attached device with a Blackmagic probe. +- `firmware_all`, `updater_all` - build a basic set of binaries. +- `firmware_list`, `updater_list` - generate source + assembler listing. +- `firmware_cdb`, `updater_cdb` - generate a `compilation_database.json` file for external tools and IDEs. It can be created without actually building the firmware. ### Assets -- `resources` - build resources and their Manifest - - `dolphin_ext` - process dolphin animations for SD card -- `icons` - generate .c+.h for icons from png assets -- `proto` - generate .pb.c+.pb.h for .proto sources -- `proto_ver` - generate .h with protobuf version -- `dolphin_internal`, `dolphin_blocking` - generate .c+.h for corresponding dolphin assets - +- `resources` - build resources and their manifest files + - `dolphin_ext` - process dolphin animations for the SD card +- `icons` - generate `.c+.h` for icons from PNG assets +- `proto` - generate `.pb.c+.pb.h` for `.proto` sources +- `proto_ver` - generate `.h` with a protobuf version +- `dolphin_internal`, `dolphin_blocking` - generate `.c+.h` for corresponding dolphin assets ## Command-line parameters -- `--options optionfile.py` (default value `fbt_options.py`) - load file with multiple configuration values -- `--extra-int-apps=app1,app2,appN` - forces listed apps to be built as internal with `firmware` target -- `--extra-ext-apps=app1,app2,appN` - forces listed apps to be built as external with `firmware_extapps` target -- `--proxy-env=VAR1,VAR2` - additional environment variables to expose to subprocesses spawned by `fbt`. By default, `fbt` sanitizes execution environment and doesn't forward all inherited environment variables. You can find list of variables that are always forwarded in `environ.scons` file. +- `--options optionfile.py` (default value `fbt_options.py`) - load a file with multiple configuration values +- `--extra-int-apps=app1,app2,appN` - force listed apps to be built as internal with the `firmware` target +- `--extra-ext-apps=app1,app2,appN` - force listed apps to be built as external with the `firmware_extapps` target +- `--proxy-env=VAR1,VAR2` - additional environment variables to expose to subprocesses spawned by `fbt`. By default, `fbt` sanitizes the execution environment and doesn't forward all inherited environment variables. You can find the list of variables that are always forwarded in the `environ.scons` file. +## Configuration -## Configuration - -Default configuration variables are set in the configuration file `fbt_options.py`. -Values set on command-line have higher precedence over configuration file. +Default configuration variables are set in the configuration file: `fbt_options.py`. +Values set in the command line have higher precedence over the configuration file. You can find out available options with `./fbt -h`. ### Firmware application set -You can create customized firmware builds by modifying the application list to be included in the build. Application presets are configured with the `FIRMWARE_APPS` option, which is a map(configuration_name:str -> application_list:tuple(str)). To specify application set to use in a build, set `FIRMWARE_APP_SET` to its name. +You can create customized firmware builds by modifying the list of applications to be included in the build. Application presets are configured with the `FIRMWARE_APPS` option, which is a `map(configuration_name:str -> application_list:tuple(str))`. To specify an application set to use in the build, set `FIRMWARE_APP_SET` to its name. For example, to build a firmware image with unit tests, run `./fbt FIRMWARE_APP_SET=unit_tests`. Check out `fbt_options.py` for details. diff --git a/documentation/file_formats/BadUsbScriptFormat.md b/documentation/file_formats/BadUsbScriptFormat.md index 713a9ff26..fa5038742 100644 --- a/documentation/file_formats/BadUsbScriptFormat.md +++ b/documentation/file_formats/BadUsbScriptFormat.md @@ -1,16 +1,23 @@ # Command syntax -BadUsb app uses extended Duckyscript syntax. It is compatible with classic USB Rubber Ducky 1.0 scripts, but provides some additional commands and features, such as custom USB ID, ALT+Numpad input method, SYSRQ command and more functional keys. + +BadUsb app uses extended Duckyscript syntax. It is compatible with classic USB Rubber Ducky 1.0 scripts but provides some additional commands and features, such as custom USB ID, ALT+Numpad input method, SYSRQ command, and more functional keys. + # Script file format -BadUsb app can execute only text scrips from .txt files, no compilation is required. Both `\n` and `\r\n` line endings are supported. Empty lines are allowed. You can use spaces ore tabs for line indentation. + +BadUsb app can execute only text scrips from `.txt` files, no compilation is required. Both `\n` and `\r\n` line endings are supported. Empty lines are allowed. You can use spaces or tabs for line indentation. + # Command set + ## Comment line -Just a single comment line. All text after REM command will be ignored by interpreter + +Just a single comment line. The interpreter will ignore all text after the REM command. |Command|Parameters|Notes| |-|-|-| |REM|Comment text|| ## Delay -Pause script execution by defined time + +Pause script execution by a defined time. |Command|Parameters|Notes| |-|-|-| |DELAY|Delay value in ms|Single delay| @@ -18,35 +25,37 @@ Pause script execution by defined time |DEFAULTDELAY|Delay value in ms|Same as DEFAULT_DELAY| ## Special keys -|Command|Notes| -|-|-| -|DOWNARROW / DOWN|| -|LEFTARROW / LEFT|| -|RIGHTARROW / RIGHT|| -|UPARROW / UP|| -|ENTER|| -|DELETE|| -|BACKSPACE|| -|END|| -|HOME|| -|ESCAPE / ESC|| -|INSERT|| -|PAGEUP|| -|PAGEDOWN|| -|CAPSLOCK|| -|NUMLOCK|| -|SCROLLLOCK|| -|PRINTSCREEN|| -|BREAK|Pause/Break key| -|PAUSE|Pause/Break key| -|SPACE|| -|TAB|| -|MENU|Context menu key| -|APP|Same as MENU| -|Fx|F1-F12 keys| + +| Command | Notes | +| ------------------ | ---------------- | +| DOWNARROW / DOWN | | +| LEFTARROW / LEFT | | +| RIGHTARROW / RIGHT | | +| UPARROW / UP | | +| ENTER | | +| DELETE | | +| BACKSPACE | | +| END | | +| HOME | | +| ESCAPE / ESC | | +| INSERT | | +| PAGEUP | | +| PAGEDOWN | | +| CAPSLOCK | | +| NUMLOCK | | +| SCROLLLOCK | | +| PRINTSCREEN | | +| BREAK | Pause/Break key | +| PAUSE | Pause/Break key | +| SPACE | | +| TAB | | +| MENU | Context menu key | +| APP | Same as MENU | +| Fx | F1-F12 keys | ## Modifier keys -Can be combined with special key command or single character + +Can be combined with a special key command or a single character. |Command|Notes| |-|-| |CONTROL / CTRL|| @@ -58,35 +67,44 @@ Can be combined with special key command or single character |ALT-SHIFT|ALT+SHIFT| |ALT-GUI|ALT+WIN| |GUI-SHIFT|WIN+SHIFT| + ## String -|Command|Parameters|Notes| -|-|-|-| -|STRING|Text string|Print text string| + +| Command | Parameters | Notes | +| ------- | ----------- | ----------------- | +| STRING | Text string | Print text string | + ## Repeat -|Command|Parameters|Notes| -|-|-|-| -|REPEAT|Number of additional repeats|Repeat previous command| + +| Command | Parameters | Notes | +| ------- | ---------------------------- | ----------------------- | +| REPEAT | Number of additional repeats | Repeat previous command | + ## ALT+Numpad input -On Windows and some Linux systems you can print character by pressing ALT key and entering its code on numpad + +On Windows and some Linux systems, you can print characters by pressing `ALT` key and entering its code on Numpad. |Command|Parameters|Notes| |-|-|-| |ALTCHAR|Character code|Print single character| |ALTSTRING|Text string|Print text string using ALT+Numpad method| |ALTCODE|Text string|Same as ALTSTRING, presents in some Duckyscript implementations| + ## SysRq + Send [SysRq command](https://en.wikipedia.org/wiki/Magic_SysRq_key) |Command|Parameters|Notes| |-|-|-| |SYSRQ|Single character|| -## USB device ID -You can set custom ID of Flipper USB HID device. ID command should be in the **first line** of script, it is executed before script run. -|Command|Parameters|Notes| -|-|-|-| -|ID|VID:PID Manufacturer:Product|| +## USB device ID + +You can set the custom ID of the Flipper USB HID device. ID command should be in the **first line** of script, it is executed before script run. + +| Command | Parameters | Notes | +| ------- | ---------------------------- | ----- | +| ID | VID:PID Manufacturer:Product | | Example: `ID 1234:abcd Flipper Devices:Flipper Zero` -VID and PID are hex codes and are mandatory, Manufacturer and Product are text strings and are optional. - +VID and PID are hex codes and are mandatory. Manufacturer and Product are text strings and are optional. diff --git a/documentation/file_formats/InfraredFileFormats.md b/documentation/file_formats/InfraredFileFormats.md index 409bf26e8..3c0acdcb7 100644 --- a/documentation/file_formats/InfraredFileFormats.md +++ b/documentation/file_formats/InfraredFileFormats.md @@ -1,11 +1,12 @@ # Infrared Flipper File Formats ## Infrared Remote File Format + ### Example Filetype: IR signals file Version: 1 - # + # name: Button_1 type: parsed protocol: NECext @@ -25,48 +26,59 @@ command: 15 00 00 00 ### Description + Filename extension: `.ir` -This file format is used to store an infrared remote that consists of an arbitrary number of buttons. +This file format is used to store an infrared remote that consists of an arbitrary number of buttons. Each button is separated from others by a comment character (`#`) for better readability. -Known protocols are represented in the `parsed` form, whereas non-recognised signals may be saved and re-transmitted as `raw` data. +Known protocols are represented in the `parsed` form, whereas non-recognized signals may be saved and re-transmitted as `raw` data. #### Version history: + 1. Initial version. #### Format fields -| Name | Use | Type | Description | -| ---------- | ------- | ------ |------------ | -| name | both | string | Name of the button. Only printable ASCII characters are allowed. | -| type | both | string | Type of the signal. Must be `parsed` or `raw`. | -| protocol | parsed | string | Name of the infrared protocol. Refer to `ir` console command for the complete list of supported protocols. | -| address | parsed | hex | Payload address. Must be 4 bytes long. | -| command | parsed | hex | Payload command. Must be 4 bytes long. | -| frequency | raw | uint32 | Carrier frequency, in Hertz, usually 38000 Hz. | -| duty_cycle | raw | float | Carrier duty cycle, usually 0.33. | -| data | raw | uint32 | Raw signal timings, in microseconds between logic level changes. Individual elements must be space-separated. Maximum timings amount is 1024. | + +| Name | Use | Type | Description | +| ---------- | ------ | ------ | --------------------------------------------------------------------------------------------------------------------------------------------- | +| name | both | string | Name of the button. Only printable ASCII characters are allowed. | +| type | both | string | Type of the signal. Must be `parsed` or `raw`. | +| protocol | parsed | string | Name of the infrared protocol. Refer to `ir` console command for the complete list of supported protocols. | +| address | parsed | hex | Payload address. Must be 4 bytes long. | +| command | parsed | hex | Payload command. Must be 4 bytes long. | +| frequency | raw | uint32 | Carrier frequency, in Hertz, usually 38000 Hz. | +| duty_cycle | raw | float | Carrier duty cycle, usually 0.33. | +| data | raw | uint32 | Raw signal timings, in microseconds between logic level changes. Individual elements must be space-separated. Maximum timings amount is 1024. | ## Infrared Library File Format + ### Examples + - [TV Universal Library](/assets/resources/infrared/assets/tv.ir) - [A/C Universal Library](/assets/resources/infrared/assets/ac.ir) - [Audio Universal Library](/assets/resources/infrared/assets/audio.ir) ### Description + Filename extension: `.ir` This file format is used to store universal remote libraries. It is identical to the previous format, differing only in the `Filetype` field.\ -It also has predefined button names for each universal library type, so that the universal remote application could understand them. +It also has predefined button names for each universal library type, so that the universal remote application can understand them. See [Universal Remotes](/documentation/UniversalRemotes.md) for more information. ### Version history: + 1. Initial version. ## Infrared Test File Format + ### Examples + See [Infrared Unit Tests](/assets/unit_tests/infrared/) for various examples. + ### Description + Filename extension: `.irtest` This file format is used to store technical test data that is too large to keep directly in the firmware. @@ -78,34 +90,38 @@ Known protocols are represented in the `parsed_array` form, whereas raw data has Note: a single parsed signal must be represented as an array of size 1. ### Version history: + 1. Initial version. #### Format fields -| Name | Use | Type | Description | -| ---------- | ------------ | ------ |------------ | + +| Name | Use | Type | Description | +| ---------- | ------------ | ------ | ---------------------------------------------------------------- | | name | both | string | Name of the signal. Only printable ASCII characters are allowed. | -| type | both | string | Type of the signal. Must be `parsed_array` or `raw`. | -| count | parsed_array | uint32 | The number of parsed signals in an array. Must be at least 1. | -| protocol | parsed_array | string | Same as in previous formats. | -| address | parsed_array | hex | Ditto. | -| command | parsed_array | hex | Ditto. | -| repeat | parsed_array | bool | Indicates whether the signal is a repeated button press. | -| frequency | raw | uint32 | Same as in previous formats. | -| duty_cycle | raw | float | Ditto. | -| data | raw | uint32 | Ditto. | +| type | both | string | Type of the signal. Must be `parsed_array` or `raw`. | +| count | parsed_array | uint32 | The number of parsed signals in an array. Must be at least 1. | +| protocol | parsed_array | string | Same as in previous formats. | +| address | parsed_array | hex | Ditto. | +| command | parsed_array | hex | Ditto. | +| repeat | parsed_array | bool | Indicates whether the signal is a repeated button press. | +| frequency | raw | uint32 | Same as in previous formats. | +| duty_cycle | raw | float | Ditto. | +| data | raw | uint32 | Ditto. | #### Signal names + The signal names in an `.irtest` file follow a convention ``, where the name is one of: + - decoder_input - decoder_expected - encoder_decoder_input, -and the number is a sequential integer: 1, 2, 3...etc, which produces names like `decoder_input1`, `encoder_decoder_input3`, and so on. +and the number is a sequential integer: 1, 2, 3, etc., which produces names like `decoder_input1`, `encoder_decoder_input3`, and so on. | Name | Type | Description | -| --------------------- | ------------ |-------------------------------------------------------------------------------------------------------| -| decoder_input | raw | A raw signal containing the decoder input. Is also used as the expected encoder output. | -| decoder_expected | parsed_array | An array of parsed signals containing the expected decoder output. Is also used as the encoder input. | +| --------------------- | ------------ | ----------------------------------------------------------------------------------------------------- | +| decoder_input | raw | A raw signal containing the decoder input. Also used as the expected encoder output. | +| decoder_expected | parsed_array | An array of parsed signals containing the expected decoder output. Also used as the encoder input. | | encoder_decoder_input | parsed_array | An array of parsed signals containing both the encoder-decoder input and expected output. | See [Unit Tests](/documentation/UnitTests.md#infrared) for more info. diff --git a/documentation/file_formats/LfRfidFileFormat.md b/documentation/file_formats/LfRfidFileFormat.md index 715c49f6a..5143d8bc1 100644 --- a/documentation/file_formats/LfRfidFileFormat.md +++ b/documentation/file_formats/LfRfidFileFormat.md @@ -1,17 +1,19 @@ # LF RFID key file format ## Example + ``` Filetype: Flipper RFID key Version: 1 Key type: EM4100 Data: 01 23 45 67 89 ``` + ## Description Filename extension: `.rfid` -The file stores single RFID key of type defined by `Key type` parameter +The file stores a single RFID key of the type defined by the `Key type` parameter. ### Version history @@ -19,29 +21,29 @@ The file stores single RFID key of type defined by `Key type` parameter ### Format fields -|Name|Description| -|-|-| -|Key type|Key protocol type| -|Data|Key data (HEX values)| +| Name | Description | +| -------- | --------------------- | +| Key type | Key protocol type | +| Data | Key data (HEX values) | ### Supported key types -|Type|Full name| -|-|-| -|EM4100|EM-Micro EM4100| -|H10301|HID H10301| -|Idteck|IDTECK| -|Indala26|Motorola Indala26| -|IOProxXSF|Kantech IOProxXSF| -|AWID|AWID| -|FDX-A|FECAVA FDX-A| -|FDX-B|ISO FDX-B| -|HIDProx|Generic HIDProx| -|HIDExt|Generic HIDExt| -|Pyramid|Farpointe Pyramid| -|Viking|Viking| -|Jablotron|Jablotron| -|Paradox|Paradox| -|PAC/Stanley|PAC/Stanley| -|Keri|Keri| -|Gallagher|Gallagher| \ No newline at end of file +| Type | Full name | +| ----------- | ----------------- | +| EM4100 | EM-Micro EM4100 | +| H10301 | HID H10301 | +| Idteck | IDTECK | +| Indala26 | Motorola Indala26 | +| IOProxXSF | Kantech IOProxXSF | +| AWID | AWID | +| FDX-A | FECAVA FDX-A | +| FDX-B | ISO FDX-B | +| HIDProx | Generic HIDProx | +| HIDExt | Generic HIDExt | +| Pyramid | Farpointe Pyramid | +| Viking | Viking | +| Jablotron | Jablotron | +| Paradox | Paradox | +| PAC/Stanley | PAC/Stanley | +| Keri | Keri | +| Gallagher | Gallagher | diff --git a/documentation/file_formats/NfcFileFormats.md b/documentation/file_formats/NfcFileFormats.md index e04f3b68c..78c6420ee 100644 --- a/documentation/file_formats/NfcFileFormats.md +++ b/documentation/file_formats/NfcFileFormats.md @@ -19,9 +19,9 @@ This file format is used to store the UID, SAK and ATQA of a NFC-A device. It do Version differences: - 1. Initial version, deprecated - 2. LSB ATQA (e.g. 4400 instead of 0044) - 3. MSB ATQA (current version) +1. Initial version, deprecated +2. LSB ATQA (e.g. 4400 instead of 0044) +3. MSB ATQA (current version) UID can be either 4 or 7 bytes long. ATQA is 2 bytes long. SAK is 1 byte long. @@ -68,13 +68,13 @@ This file format is used to store the UID, SAK and ATQA of a Mifare Ultralight/N The "Signature" field contains the reply of the tag to the READ_SIG command. More on that can be found here: (page 31) -The "Mifare version" field is not related to the file format version, but to the Mifare Ultralight version. It contains the response of the tag to the GET_VERSION command. More on that can be found here: (page 21) +The "Mifare version" field is not related to the file format version but to the Mifare Ultralight version. It contains the response of the tag to the GET_VERSION command. More on that can be found here: (page 21) -Other fields are the direct representation of the card's internal state, more on them can be found in the same datasheet. +Other fields are the direct representation of the card's internal state. Learn more about them in the same datasheet. Version differences: - 1. Current version +1. Current version ## Mifare Classic @@ -126,7 +126,7 @@ This file format is used to store the NFC-A and Mifare Classic specific data of Version differences: - 1. Initial version, has Key A and Key B masks instead of marking unknown data with '??'. +1. Initial version, has Key A and Key B masks instead of marking unknown data with '??'. Example: @@ -137,8 +137,8 @@ Example: Key B map: 000000000000FFFF # Mifare Classic blocks ... - - 2. Current version + +2. Current version ## Mifare DESFire @@ -200,7 +200,7 @@ This file format is used to store the NFC-A and Mifare DESFire specific data of hf mfdes write --aid 123456 --fid 01 -d 1337 Version differences: - None, there are no versions yet. +None, there are no versions yet. ## Mifare Classic Dictionary @@ -252,4 +252,4 @@ This file stores a list of EMV currency codes, country codes, or AIDs and their Version differences: - 1. Initial version +1. Initial version diff --git a/documentation/file_formats/SubGhzFileFormats.md b/documentation/file_formats/SubGhzFileFormats.md index 1446ecd0d..26863f564 100644 --- a/documentation/file_formats/SubGhzFileFormats.md +++ b/documentation/file_formats/SubGhzFileFormats.md @@ -2,7 +2,7 @@ ## `.sub` File Format -Flipper uses `.sub` files to store SubGhz transmissions. They are text files in Flipper File Format. `.sub` files can contain either a SubGhz Key with a certain protocol or SubGhz RAW data. +Flipper uses `.sub` files to store SubGhz transmissions. These are text files in Flipper File Format. `.sub` files can contain either a SubGhz Key with a certain protocol or SubGhz RAW data. A `.sub` files consist of 3 parts: @@ -10,36 +10,36 @@ A `.sub` files consist of 3 parts: - **preset information**: preset type and, in case of a custom preset, transceiver configuration data - **protocol and its data**: contains protocol name and its specific data, such as key, bit length, etc., or RAW data -Flipper's SubGhz subsystem uses presets to configure radio transceiver. Presets are used to configure modulation, bandwidth, filters, etc. There are several presets available in stock firmware, and there is a way to create custom presets. See [SubGhz Presets](#adding-a-custom-preset) for more details. +Flipper's SubGhz subsystem uses presets to configure the radio transceiver. Presets are used to configure modulation, bandwidth, filters, etc. There are several presets available in stock firmware, and there is a way to create custom presets. See [SubGhz Presets](#adding-a-custom-preset) for more details. -## Header Format +## Header format Header is a mandatory part of `.sub` file. It contains file type, version, and frequency. -| Field | Type | Description | -| --- | --- | --- | -| `Filetype` | string | Filetype of subghz file format, must be `Flipper SubGhz Key File` | -| `Version` | uint | Version of subghz file format, current version is 1 | -| `Frequency` | uint | Frequency in Hertz | +| Field | Type | Description | +| ----------- | ------ | ----------------------------------------------------------------- | +| `Filetype` | string | Filetype of subghz file format, must be `Flipper SubGhz Key File` | +| `Version` | uint | Version of subghz file format, current version is 1 | +| `Frequency` | uint | Frequency in Hertz | -## Preset Information +## Preset information -Preset information is a mandatory part of `.sub` file. It contains preset type and, in case of custom preset, transceiver configuration data. +Preset information is a mandatory part for `.sub` files. It contains preset type and, in case of custom preset, transceiver configuration data. -When using one of the standard presets, only `Preset` field is required. When using custom preset, `Custom_preset_module` and `Custom_preset_data` fields are required. +When using one of the standard presets, only `Preset` field is required. When using a custom preset, `Custom_preset_module` and `Custom_preset_data` fields are required. -| Field | Description | -| --- | --- | -| `Preset` | Radio preset name (configures modulation, bandwidth, filters, etc.). When using a custom preset, must be `FuriHalSubGhzPresetCustom` | -| `Custom_preset_module` | Transceiver identifier, `CC1101` for Flipper Zero | -| `Custom_preset_data` | Transceiver configuration data | +| Field | Description | +| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | +| `Preset` | Radio preset name (configures modulation, bandwidth, filters, etc.). When using a custom preset, must be `FuriHalSubGhzPresetCustom` | +| `Custom_preset_module` | Transceiver identifier, `CC1101` for Flipper Zero | +| `Custom_preset_data` | Transceiver configuration data | Built-in presets: -- `FuriHalSubGhzPresetOok270Async` - On/Off Keying, 270kHz bandwidth, async(IO throw GP0) -- `FuriHalSubGhzPresetOok650Async` - On/Off Keying, 650kHz bandwidth, async(IO throw GP0) -- `FuriHalSubGhzPreset2FSKDev238Async` - 2 Frequency Shift Keying, deviation 2kHz, 270kHz bandwidth, async(IO throw GP0) -- `FuriHalSubGhzPreset2FSKDev476Async` - 2 Frequency Shift Keying, deviation 47kHz, 270kHz bandwidth, async(IO throw GP0) +- `FuriHalSubGhzPresetOok270Async` — On/Off Keying, 270kHz bandwidth, async(IO throw GP0) +- `FuriHalSubGhzPresetOok650Async` — On/Off Keying, 650kHz bandwidth, async(IO throw GP0) +- `FuriHalSubGhzPreset2FSKDev238Async` — 2 Frequency Shift Keying, deviation 2kHz, 270kHz bandwidth, async(IO throw GP0) +- `FuriHalSubGhzPreset2FSKDev476Async` — 2 Frequency Shift Keying, deviation 47kHz, 270kHz bandwidth, async(IO throw GP0) ### Transceiver Configuration Data @@ -50,7 +50,7 @@ Transceiver configuration data is a string of bytes, encoded in hex format, sepa - 00 00: marks register block end, - `ZZ ZZ ZZ ZZ ZZ ZZ ZZ ZZ`: 8 byte PA table (Power amplifier ramp table). -More details can be found in [CC1101 datasheet](https://www.ti.com/lit/ds/symlink/cc1101.pdf) and `furi_hal_subghz` code. +You can find more details in the [CC1101 datasheet](https://www.ti.com/lit/ds/symlink/cc1101.pdf) and `furi_hal_subghz` code. ## File Data @@ -59,9 +59,9 @@ More details can be found in [CC1101 datasheet](https://www.ti.com/lit/ds/symlin ### Key Files `.sub` files with key data files contain protocol name and its specific data, such as key value, bit length, etc. -Check out protocol registry for full list of supported protocol names. +Check out the protocol registry for the full list of supported protocol names. -Example of key data block in Princeton format: +Example of a key data block in Princeton format: ``` ... @@ -74,7 +74,7 @@ TE: 400 Protocol-specific fields in this example: | Field | Description | -| --- | --- | +| ----- | --------------------------------- | | `Bit` | Princeton payload length, in bits | | `Key` | Princeton payload data | | `TE` | Princeton quantization interval | @@ -83,25 +83,23 @@ This file may contain additional fields, more details on available fields can be ### RAW Files -RAW `.sub` files contain raw signal data that is not processed through protocol-specific decoding. These files are useful for testing purposes, or for sending data that is not supported by any known protocol. +RAW `.sub` files contain raw signal data that is not processed through protocol-specific decoding. These files are useful for testing or sending data not supported by any known protocol. For RAW files, 2 fields are required: - * `Protocol`, must be `RAW` - * `RAW_Data`, contains an array of timings, specified in micro seconds. Values must be non-zero, start with a positive number, and interleaved (change sign with each value). Up to 512 values per line. Can be specified multiple times to store multiple lines of data. +- `Protocol`, must be `RAW` +- `RAW_Data`, contains an array of timings, specified in microseconds Values must be non-zero, start with a positive number, and interleaved (change sign with each value). Up to 512 values per line. Can be specified multiple times to store multiple lines of data. Example of RAW data: Protocol: RAW RAW_Data: 29262 361 -68 2635 -66 24113 -66 11 ... +Long payload not fitting into internal memory buffer and consisting of short duration timings (< 10us) may not be read fast enough from the SD card. That might cause the signal transmission to stop before reaching the end of the payload. Ensure that your SD Card has good performance before transmitting long or complex RAW payloads. -Long payload not fitting into internal memory buffer and consisting of short duration timings (<10us) may not be read fast enough from SD Card. That might cause signal transmission to stop before reaching the end of the payload. Ensure that your SD Card has good performance before transmitting long or complex RAW payloads. +## File examples - -## File Examples - -### Key File, Standard Preset +### Key file, standard preset Filetype: Flipper SubGhz Key File Version: 1 @@ -112,8 +110,7 @@ Long payload not fitting into internal memory buffer and consisting of short dur Key: 00 00 00 00 00 95 D5 D4 TE: 400 - -### Key File, Custom Preset +### Key file, custom preset Filetype: Flipper SubGhz Key File Version: 1 @@ -126,7 +123,7 @@ Long payload not fitting into internal memory buffer and consisting of short dur Key: 00 00 00 00 00 95 D5 D4 TE: 400 -### RAW File, Standard Preset +### RAW file, standard preset Filetype: Flipper SubGhz RAW File Version: 1 @@ -137,7 +134,7 @@ Long payload not fitting into internal memory buffer and consisting of short dur RAW_Data: -424 205 -412 159 -412 381 -240 181 ... RAW_Data: -1448 361 -17056 131 -134 233 -1462 131 -166 953 -100 ... -### RAW File, Custom Preset +### RAW file, custom preset Filetype: Flipper SubGhz RAW File Version: 1 @@ -150,26 +147,26 @@ Long payload not fitting into internal memory buffer and consisting of short dur RAW_Data: -424 205 -412 159 -412 381 -240 181 ... RAW_Data: -1448 361 -17056 131 -134 233 -1462 131 -166 953 -100 ... -# SubGhz Configuration Files +# SubGhz configuration files SubGhz application provides support for adding extra radio presets and additional keys for decoding transmissions in certain protocols. -## SubGhz `keeloq_mfcodes_user` File +## SubGhz `keeloq_mfcodes_user` file This file contains additional manufacturer keys for Keeloq protocol. It is used to decode Keeloq transmissions. This file is loaded at subghz application start and is located at path `/ext/subghz/assets/keeloq_mfcodes_user`. -### File Format +### File format File contains a header and a list of manufacturer keys. File header format: -| Field | Type | Description | -| --- | | --- | -| `Filetype` | string | SubGhz Keystore file format, always `Flipper SubGhz Keystore File` | -| `Version` | uint | File format version, 0 | -| `Encryption` | uint | File encryption: for user-provided file, set to 0 (disabled) | +| Field | Type | Description | +| ------------ | ------ | ------------------------------------------------------------------ | +| `Filetype` | string | SubGhz Keystore file format, always `Flipper SubGhz Keystore File` | +| `Version` | uint | File format version, 0 | +| `Encryption` | uint | File encryption: for user-provided file, set to 0 (disabled) | Following the header, file contains a list of user-provided manufacture keys, one key per line. For each key, a name and encryption method must be specified, according to comment in file header. More information can be found in keeloq decoder source code. @@ -186,7 +183,7 @@ For each key, a name and encryption method must be specified, according to comme # - 2 - Normal_Learning # - 3 - Secure_Learning # - 4 - Magic_xor_type1 Learning - # + # # NAME - name (string without spaces) max 64 characters long Filetype: Flipper SubGhz Keystore File Version: 0 @@ -194,45 +191,44 @@ For each key, a name and encryption method must be specified, according to comme AABBCCDDEEFFAABB:1:Test1 AABBCCDDEEFFAABB:1:Test2 - -## SubGhz `setting_user` File +## SubGhz `setting_user` file This file contains additional radio presets and frequencies for SubGhz application. It is used to add new presets and frequencies for existing presets. This file is being loaded on subghz application start and is located at path `/ext/subghz/assets/setting_user`. -### File Format +### File format File contains a header, basic options, and optional lists of presets and frequencies. -Header must contain following fields: +Header must contain the following fields: - `Filetype`: SubGhz setting file format, must be `Flipper SubGhz Setting File`. - `Version`: file format version, current is `1`. -#### Basic Settings +#### Basic settings - `Add_standard_frequencies`: bool, flag indicating whether to load standard frequencies shipped with firmware. If set to `false`, only frequencies specified in this file will be used. - `Default_frequency`: uint, default frequency used in SubGhz application. -#### Adding More Frequencies +#### Adding more frequencies - `Frequency`: uint — additional frequency for the subghz application frequency list. Used in Read and Read RAW. You can specify multiple frequencies, one per line. -#### Adding More Hopper Frequencies +#### Adding more hopper frequencies - `Hopper_frequency`: uint — additional frequency for subghz application frequency hopping. Used in Frequency Analyzer. You can specify multiple frequencies, one per line. -Repeating same frequency will cause Flipper to listen on this frequency more often. +Repeating the same frequency will cause Flipper to listen to this frequency more often. #### Adding a Custom Preset You can have as many presets as you want. Presets are embedded into `.sub` files, so another Flipper can load them directly from that file. -Each preset is defined by following fields: +Each preset is defined by the following fields: -| Field | Description | -| --- | --- | -| `Custom_preset_name` | string, preset name that will be shown in SubGHz application | -| `Custom_preset_module` | string, transceiver identifier. Set to `CC1101` for Flipper Zero | -| `Custom_preset_data` | transceiver configuration data. See [Transceiver Configuration Data](#transceiver-configuration-data) for details. | +| Field | Description | +| ---------------------- | ------------------------------------------------------------------------------------------------------------------ | +| `Custom_preset_name` | string, preset name that will be shown in SubGHz application | +| `Custom_preset_module` | string, transceiver identifier. Set to `CC1101` for Flipper Zero | +| `Custom_preset_data` | transceiver configuration data. See [Transceiver Configuration Data](#transceiver-configuration-data) for details. | ### Example @@ -252,7 +248,7 @@ Frequency: 300000000 Frequency: 310000000 Frequency: 320000000 -# Frequencies used for hopping mode (keep this list small or flipper will miss signal) +# Frequencies used for hopping mode (keep this list small or Flipper will miss the signal) Hopper_frequency: 300000000 Hopper_frequency: 310000000 Hopper_frequency: 310000000 diff --git a/documentation/file_formats/iButtonFileFormat.md b/documentation/file_formats/iButtonFileFormat.md index a5d41b495..c04586195 100644 --- a/documentation/file_formats/iButtonFileFormat.md +++ b/documentation/file_formats/iButtonFileFormat.md @@ -1,6 +1,7 @@ # iButton key file format ## Example + ``` Filetype: Flipper iButton key Version: 1 @@ -9,11 +10,12 @@ Key type: Dallas # Data size for Cyfral is 2, for Metakom is 4, for Dallas is 8 Data: 12 34 56 78 9A BC DE F0 ``` + ## Description Filename extension: `.ibtn` -The file stores single iButton key of type defined by `Key type` parameter +The file stores a single iButton key of the type defined by the `Key type` parameter. ### Version history @@ -21,7 +23,7 @@ The file stores single iButton key of type defined by `Key type` parameter ### Format fields -|Name|Description| -|-|-| -|Key type|Currently supported: Cyfral, Dallas, Metakom| -|Data|Key data (HEX values)| \ No newline at end of file +| Name | Description | +| -------- | -------------------------------------------- | +| Key type | Currently supported: Cyfral, Dallas, Metakom | +| Data | Key data (HEX values) | diff --git a/firmware/targets/f7/api_symbols.csv b/firmware/targets/f7/api_symbols.csv index e351ae3e4..9e38f6970 100644 --- a/firmware/targets/f7/api_symbols.csv +++ b/firmware/targets/f7/api_symbols.csv @@ -2563,6 +2563,7 @@ Function,+,stream_read_line,_Bool,"Stream*, FuriString*" Function,+,stream_rewind,_Bool,Stream* Function,+,stream_save_to_file,size_t,"Stream*, Storage*, const char*, FS_OpenMode" Function,+,stream_seek,_Bool,"Stream*, int32_t, StreamOffset" +Function,+,stream_seek_to_char,_Bool,"Stream*, char, StreamDirection" Function,+,stream_size,size_t,Stream* Function,+,stream_split,_Bool,"Stream*, Stream*, Stream*" Function,+,stream_tell,size_t,Stream* diff --git a/firmware/targets/f7/fatfs/sector_cache.c b/firmware/targets/f7/fatfs/sector_cache.c index 5a4f1b978..d23c1d5ad 100644 --- a/firmware/targets/f7/fatfs/sector_cache.c +++ b/firmware/targets/f7/fatfs/sector_cache.c @@ -8,6 +8,7 @@ #define SECTOR_SIZE 512 #define N_SECTORS 8 +#define TAG "SDCache" typedef struct { uint32_t itr; @@ -19,14 +20,15 @@ static SectorCache* cache = NULL; void sector_cache_init() { if(cache == NULL) { - cache = furi_hal_memory_alloc(sizeof(SectorCache)); + // TODO: tuneup allocation order, to place cache in mem pool (MEM2) + cache = memmgr_alloc_from_pool(sizeof(SectorCache)); } if(cache != NULL) { - FURI_LOG_I("SectorCache", "Initializing sector cache"); + FURI_LOG_I(TAG, "Init"); memset(cache, 0, sizeof(SectorCache)); } else { - FURI_LOG_E("SectorCache", "Cannot enable sector cache"); + FURI_LOG_E(TAG, "Init failed"); } } diff --git a/lib/ST25RFAL002/include/rfal_isoDep.h b/lib/ST25RFAL002/include/rfal_isoDep.h index f4ebdac59..34bd6172a 100644 --- a/lib/ST25RFAL002/include/rfal_isoDep.h +++ b/lib/ST25RFAL002/include/rfal_isoDep.h @@ -857,7 +857,7 @@ ReturnCode rfalIsoDepATTRIB( * \brief Deselects PICC * * This function sends a deselect command to PICC and waits for it`s - * responce in a blocking way + * response in a blocking way * * \return ERR_NONE : Deselect successfully sent and acknowledged by PICC * \return ERR_TIMEOUT: No response rcvd from PICC diff --git a/lib/ST25RFAL002/include/rfal_t4t.h b/lib/ST25RFAL002/include/rfal_t4t.h index ff026e1a9..edee1cd8c 100644 --- a/lib/ST25RFAL002/include/rfal_t4t.h +++ b/lib/ST25RFAL002/include/rfal_t4t.h @@ -88,7 +88,7 @@ #define RFAL_T4T_ISO7816_P2_SELECT_RETURN_FCI_TEMPLATE \ 0x00U /*!< b4b3 P2 value for Return FCI template */ #define RFAL_T4T_ISO7816_P2_SELECT_NO_RESPONSE_DATA \ - 0x0CU /*!< b4b3 P2 value for No responce data */ + 0x0CU /*!< b4b3 P2 value for No response data */ #define RFAL_T4T_ISO7816_STATUS_COMPLETE \ 0x9000U /*!< Command completed \ Normal processing - No further qualification*/ diff --git a/lib/fatfs/ff.c b/lib/fatfs/ff.c index 85ab9736e..d39089578 100644 --- a/lib/fatfs/ff.c +++ b/lib/fatfs/ff.c @@ -3975,7 +3975,7 @@ FRESULT f_getcwd ( #endif if (i == len) { /* Root-directory */ *tp++ = '/'; - } else { /* Sub-directroy */ + } else { /* Sub-directory */ do /* Add stacked path str */ *tp++ = buff[i++]; while (i < len); @@ -4673,7 +4673,7 @@ FRESULT f_mkdir ( } } if (res == FR_OK) { - res = dir_register(&dj); /* Register the object to the directoy */ + res = dir_register(&dj); /* Register the object to the directory */ } if (res == FR_OK) { #if _FS_EXFAT diff --git a/lib/infrared/encoder_decoder/infrared.h b/lib/infrared/encoder_decoder/infrared.h index 086950f1e..2c76645ff 100644 --- a/lib/infrared/encoder_decoder/infrared.h +++ b/lib/infrared/encoder_decoder/infrared.h @@ -10,7 +10,7 @@ extern "C" { #define INFRARED_COMMON_CARRIER_FREQUENCY ((uint32_t)38000) #define INFRARED_COMMON_DUTY_CYCLE ((float)0.33) -/* if we want to see splitted raw signals during brutforce, +/* if we want to see split raw signals during bruteforce, * we have to have RX raw timing delay less than TX */ #define INFRARED_RAW_RX_TIMING_DELAY_US 150000 #define INFRARED_RAW_TX_TIMING_DELAY_US 180000 diff --git a/lib/lfrfid/protocols/protocol_pyramid.c b/lib/lfrfid/protocols/protocol_pyramid.c index 974bb6da6..d794bb46e 100644 --- a/lib/lfrfid/protocols/protocol_pyramid.c +++ b/lib/lfrfid/protocols/protocol_pyramid.c @@ -88,7 +88,7 @@ static bool protocol_pyramid_can_be_decoded(uint8_t* data) { } uint8_t fmt_len = 105 - j; - // Only suppport 26bit format for now + // Only support 26bit format for now if(fmt_len != 26) return false; return true; diff --git a/lib/nfc/nfc_device.c b/lib/nfc/nfc_device.c index 7dbc9d36a..2a47ba1fd 100644 --- a/lib/nfc/nfc_device.c +++ b/lib/nfc/nfc_device.c @@ -1166,7 +1166,7 @@ static bool nfc_device_load_mifare_classic_data(FlipperFormat* file, NfcDevice* bool old_format = false; // Read Mifare Classic format version if(!flipper_format_read_uint32(file, "Data format version", &data_format_version, 1)) { - // Load unread sectors with zero keys access for backward compatability + // Load unread sectors with zero keys access for backward compatibility if(!flipper_format_rewind(file)) break; old_format = true; } else { @@ -1442,7 +1442,7 @@ static bool nfc_device_load_data(NfcDevice* dev, FuriString* path, bool show_dia } do { - // Check existance of shadow file + // Check existence of shadow file nfc_device_get_shadow_path(path, temp_str); dev->shadow_file_exist = storage_common_stat(dev->storage, furi_string_get_cstr(temp_str), NULL) == FSE_OK; diff --git a/lib/nfc/parsers/plantain_4k_parser.c b/lib/nfc/parsers/plantain_4k_parser.c index 9a51cdeaf..e636bee00 100644 --- a/lib/nfc/parsers/plantain_4k_parser.c +++ b/lib/nfc/parsers/plantain_4k_parser.c @@ -106,7 +106,7 @@ bool plantain_4k_parser_parse(NfcDeviceData* dev_data) { // Point to block 0 of sector 0, value 0 temp_ptr = &data->block[0 * 4].value[0]; // Read first 7 bytes of block 0 of sector 0 from last to first and convert them to uint64_t - // 80 5C 23 8A 16 31 04 becomes 04 31 16 8A 23 5C 80, and equals to 36130104729284868 decimal + // 04 31 16 8A 23 5C 80 becomes 80 5C 23 8A 16 31 04, and equals to 36130104729284868 decimal uint8_t card_number_arr[7]; for(size_t i = 0; i < 7; i++) { card_number_arr[i] = temp_ptr[6 - i]; diff --git a/lib/nfc/parsers/plantain_parser.c b/lib/nfc/parsers/plantain_parser.c index 799262171..c0e2a0947 100644 --- a/lib/nfc/parsers/plantain_parser.c +++ b/lib/nfc/parsers/plantain_parser.c @@ -79,7 +79,7 @@ bool plantain_parser_parse(NfcDeviceData* dev_data) { // Point to block 0 of sector 0, value 0 temp_ptr = &data->block[0 * 4].value[0]; // Read first 7 bytes of block 0 of sector 0 from last to first and convert them to uint64_t - // 80 5C 23 8A 16 31 04 becomes 04 31 16 8A 23 5C 80, and equals to 36130104729284868 decimal + // 04 31 16 8A 23 5C 80 becomes 80 5C 23 8A 16 31 04, and equals to 36130104729284868 decimal uint8_t card_number_arr[7]; for(size_t i = 0; i < 7; i++) { card_number_arr[i] = temp_ptr[6 - i]; diff --git a/lib/nfc/parsers/two_cities.c b/lib/nfc/parsers/two_cities.c index 2f4b7dd0d..335248b2a 100644 --- a/lib/nfc/parsers/two_cities.c +++ b/lib/nfc/parsers/two_cities.c @@ -107,7 +107,7 @@ bool two_cities_parser_parse(NfcDeviceData* dev_data) { // Point to block 0 of sector 0, value 0 temp_ptr = &data->block[0 * 4].value[0]; // Read first 7 bytes of block 0 of sector 0 from last to first and convert them to uint64_t - // 80 5C 23 8A 16 31 04 becomes 04 31 16 8A 23 5C 80, and equals to 36130104729284868 decimal + // 04 31 16 8A 23 5C 80 becomes 80 5C 23 8A 16 31 04, and equals to 36130104729284868 decimal uint8_t card_number_arr[7]; for(size_t i = 0; i < 7; i++) { card_number_arr[i] = temp_ptr[6 - i]; diff --git a/lib/one_wire/ibutton/protocols/protocol_cyfral.c b/lib/one_wire/ibutton/protocols/protocol_cyfral.c index 0c44c2b45..a5f459bc0 100644 --- a/lib/one_wire/ibutton/protocols/protocol_cyfral.c +++ b/lib/one_wire/ibutton/protocols/protocol_cyfral.c @@ -181,7 +181,7 @@ static bool protocol_cyfral_decoder_feed(ProtocolCyfral* proto, bool level, uint cyfral->index++; } - // succefully read 8 nibbles + // successfully read 8 nibbles if(cyfral->index == 8) { cyfral->state = CYFRAL_READ_STOP_NIBBLE; } diff --git a/lib/subghz/environment.h b/lib/subghz/environment.h index 5f8fcf1f5..e994f7c97 100644 --- a/lib/subghz/environment.h +++ b/lib/subghz/environment.h @@ -26,7 +26,7 @@ void subghz_environment_free(SubGhzEnvironment* instance); * Downloading the manufacture key file. * @param instance Pointer to a SubGhzEnvironment instance * @param filename Full path to the file - * @return true On succes + * @return true On success */ bool subghz_environment_load_keystore(SubGhzEnvironment* instance, const char* filename); diff --git a/lib/subghz/helpers/subghz_config_preset_custom.c b/lib/subghz/helpers/subghz_config_preset_custom.c new file mode 100644 index 000000000..73b732d48 --- /dev/null +++ b/lib/subghz/helpers/subghz_config_preset_custom.c @@ -0,0 +1,326 @@ +#include "subghz_config_preset_custom.h" + +#include +#include +#include // UNUSED() +#include // furi_assert() +#include // log2(), floor() + +#include + +// https://www.ti.com/lit/ds/symlink/cc1101.pdf?ts=1671943815135 +// page 35. +// 12 Data Rate Programming +// +#define DATARATE_FUNC_CHIP_FOSC 26000000.0 /* 26MHz */ +#define DATARATE_FUNC_DIVIDER (1 << 28) /* 2 pow 28 */ +#define DATARATE_FUNC_MULTIPLIER \ + (DATARATE_FUNC_CHIP_FOSC / DATARATE_FUNC_DIVIDER) /* should be 0.09685754 */ + +#define DATARATE_EXP_FORMULA_DIVISIBLE (1 << 20) /* 2 pow 20 */ +#define DATARATE_EXP_FORMULA_MULTIPLIER \ + (DATARATE_EXP_FORMULA_DIVISIBLE / DATARATE_FUNC_CHIP_FOSC) /* should be 0.04032984 */ + +#define DATARATE_MNT_FORMULA_DIVISIBLE (1 << 28) /* 2 pow 28 */ +#define DATARATE_MNT_FORMULA_MULTIPLIER \ + (DATARATE_MNT_FORMULA_DIVISIBLE / DATARATE_FUNC_CHIP_FOSC) /* should be 10.3244406 */ +// + +#define SUGHZ_CONFIG_TAG "SubGHz_Config" + +uint8_t furi_hal_subghz_preset_ook_custom_async_regs[PRESET_OOK_CUSTOM_ADVANCED_AM_SIZE] = {0}; + +/** Check if cursom preset is AM (OOK) modulation + * + * This will check MOD_FORMAT bits in CC1101_MDMCFG2 register + * If preset data doesn have this register - will return false. + * This function will not fail in any case + * + * @param preset_data Custom preset data (registers and patable) + * @param data_len Data length + */ +bool subghz_preset_custom_is_ook_modulation(const uint8_t* preset_data, uint8_t data_len) { + if(preset_data != NULL) { + for(uint8_t i = 2; i <= data_len; i += 2) { + if(preset_data[i - 2] == CC1101_MDMCFG2) { + return (preset_data[i - 1] & 0b01110000) == 0x30; + } + } + } + return false; +} + +/** Get bandwidth value from preset data. + * + * This will get HIGHER bits in CC1101_MDMCFG4 register + * If CC1101_MDMCFG4 is not found in preset data - will return + * CH_BANDWIDTH_INVALID (0xFF) + * If there is ANY low 4 bits in returned value - the value is invalid + * + * @param preset_data Custom preset data (registers and patable) + * @param data_len Data length + */ +uint8_t subghz_preset_custom_get_bandwidth(const uint8_t* preset_data, uint8_t data_len) { + if(preset_data != NULL) { + for(uint8_t i = 2; i <= data_len; i += 2) { + if(preset_data[i - 2] == CC1101_MDMCFG4) { + return (preset_data[i - 1] & 0b11110000); + } + } + } + return CH_BANDWIDTH_INVALID; +} + +/** Set bandwidth value to preset data. + * + * This will set HIGHER bits in CC1101_MDMCFG4 register + * If CC1101_MDMCFG4 is not found in preset data - will do nothing and return false + * If there are ANY low 4 bits in provided value - they will be ignored + * + * @param preset_data Custom preset data (registers and patable) + * @param data_len Data length + * @param value New bandwidth value. See macros definition for possible values + */ +bool subghz_preset_custom_set_bandwidth(uint8_t* preset_data, uint8_t data_len, uint8_t value) { + if(preset_data != NULL) { + for(uint8_t i = 2; i <= data_len; i += 2) { + if(preset_data[i - 2] == CC1101_MDMCFG4) { + preset_data[i - 1] = (preset_data[i - 1] & 0b00001111) | (0b11110000 & value); + return true; + } + } + } + return false; +} + +/** Get data rate value from preset data. + * + * This will get DRATE_M and DRATE_E bits from CC1101_MDMCFG3 and CC1101_MDMCFG4 registers + * and calculate the value for 26MHz chip oscillator by formula from datasheet. + * + * If CC1101_MDMCFG[3:4] are not found in preset data - will return `-1` + * + * @param preset_data Custom preset data (registers and patable) + * @param data_len Data length + */ +float subghz_preset_custom_get_datarate(const uint8_t* preset_data, uint8_t data_len) { + if(preset_data != NULL) { + uint8_t mantissa = 0xFF; + uint8_t exponent = 0xFF; // Invalid, only 4 lower bits are singificant + + uint8_t step = 0; + + for(uint8_t i = 2; i <= data_len && step < 2; i += 2) { + if(preset_data[i - 2] == CC1101_MDMCFG4) { + exponent = preset_data[i - 1] & 0b00001111; + step++; + } else if(preset_data[i - 2] == CC1101_MDMCFG3) { + mantissa = preset_data[i - 1]; + step++; + } + } + + if(step == 2) { + return (float)((256 + mantissa) * (1 << exponent) * DATARATE_FUNC_MULTIPLIER); + } + } + return -1; +} + +/** Set data rate value to preset data. + * + * This will update DRATE_M and DRATE_E bits from CC1101_MDMCFG3 and CC1101_MDMCFG4 registers + * with calculated values for 26MHz chip oscillator by formula from datasheet. + * + * If CC1101_MDMCFG[3:4] are not found in preset data - will return false + * + * @param preset_data Custom preset data (registers and patable) + * @param data_len Data length + * @param value value in kBaud + */ +bool subghz_preset_custom_set_datarate(uint8_t* preset_data, uint8_t data_len, float value) { + if(preset_data != NULL) { + uint8_t* pMantissa = NULL; + uint8_t* pExponent = NULL; + + uint8_t step = 0; + for(uint8_t i = 2; i <= data_len && step < 2; i += 2) { + if(preset_data[i - 2] == CC1101_MDMCFG4) { + pExponent = &preset_data[i - 1]; + step++; + } else if(preset_data[i - 2] == CC1101_MDMCFG3) { + pMantissa = &preset_data[i - 1]; + step++; + } + } + + // Has both registers in data - calculate values + if(step == 2) { + // │ value * 2^20 │ + // DRATE_E = │log2(──────────────)│ + // └ Fosc ┘ + + double exponent = floor(log2(value * DATARATE_EXP_FORMULA_MULTIPLIER)); + uint8_t datarate_e = (uint8_t)exponent; + + // value * 2^28 + // DRATE_M = (────────────────────) - 256 + // Fosc * 2^DRATE_E + double mantissa = + floor((value * DATARATE_MNT_FORMULA_MULTIPLIER) / (1 << datarate_e) + 0.5) - 256; + + // If DRATE_M is rounded to the nearest integer and becomes 256, increment DRATE_E and use DRATE_M = 0. + if(mantissa >= 256) { + mantissa = 0; + datarate_e += 1; + } + uint8_t datarate_m = (uint8_t)mantissa; + + *pExponent = (*pExponent & 0b11110000) | (datarate_e & 0b00001111); + *pMantissa = datarate_m; + + return true; + } + } + + return false; +} + +/** Print datarate value to string + * + * This is just convenience function + * + * @param datarate datarate obtained from `subghz_preset_custom_get_datarate` function + * @param string Target print buffer + * @param size Target print buffer size + */ +void subghz_preset_custom_printf_datarate(float datarate, char* string, uint8_t size) { + float kBaudRate = datarate / 1000.0f; + snprintf( + string, + size, + "%lu.%02lu kBd", + (uint32_t)(kBaudRate), // decimal part + (uint32_t)((kBaudRate - (uint32_t)kBaudRate) * 100) // fractional part multiplied by 100 + ); +} + +/** Get Manchester encoding/decoding flag value from preset data. + * + * This will get MANCHESTER_EN (3-rd) bit in CC1101_MDMCFG2 register + * If CC1101_MDMCFG2 is not found in preset data - will return false + * + * @param preset_data Custom preset data (registers and patable) + * @param data_len Data length + */ +bool subghz_preset_custom_get_machester_enable(const uint8_t* preset_data, uint8_t data_len) { + if(preset_data != NULL) { + for(uint8_t i = 2; i <= data_len; i += 2) { + if(preset_data[i - 2] == CC1101_MDMCFG2) { + return (preset_data[i - 1] & 0b00001000); + } + } + } + return false; +} + +/** Set Manchester encoding/decoding flag value to preset data. + * + * This will set MANCHESTER_EN (3-rd) bit in CC1101_MDMCFG2 register + * If CC1101_MDMCFG2 is not found in preset data - will return false + * + * @param preset_data Custom preset data (registers and patable) + * @param data_len Data length + */ +bool subghz_preset_custom_set_machester_enable(uint8_t* preset_data, uint8_t data_len, bool value) { + if(preset_data != NULL) { + for(uint8_t i = 2; i <= data_len; i += 2) { + if(preset_data[i - 2] == CC1101_MDMCFG2) { + preset_data[i - 1] = (preset_data[i - 1] & 0b11110111) | (0b00001000 * value); + return true; + } + } + } + return false; +} + +/** + * Initialize custom preset data + */ +void subghz_preset_custom_init_advanced_am_preset() { + FURI_LOG_D(SUGHZ_CONFIG_TAG, "Initializing AM preset with custom Modem configuration"); + + if(furi_hal_subghz_preset_ook_custom_async_regs[0]) { + // already initialized + FURI_LOG_D(SUGHZ_CONFIG_TAG, "Already initialized"); + return; + } + + // Copy default AM270 preset + memcpy( + &furi_hal_subghz_preset_ook_custom_async_regs, + &furi_hal_subghz_preset_ook_270khz_async_regs, + sizeof(furi_hal_subghz_preset_ook_270khz_async_regs)); + + const uint8_t ModemConfigStart = 4; + +#if FURI_DEBUG + const uint8_t ModemConfigEnd = ModemConfigStart + MODEM_CONFIG_REGISTERS_COUNT; + for(uint8_t i = ModemConfigStart; i < ModemConfigEnd; ++i) { + // Check we'll overwrite correct settings + furi_assert( + furi_hal_subghz_preset_ook_custom_async_regs[i * 2 + 0] == + furi_hal_subghz_custom_modulation_regs[i - ModemConfigStart][0]); + } +#endif + + // Copy CUSTOM Modem preset + memcpy( + &furi_hal_subghz_preset_ook_custom_async_regs[ModemConfigStart * 2], + &furi_hal_subghz_custom_modulation_regs, + sizeof(furi_hal_subghz_custom_modulation_regs)); + + // Copy default AM270 patable + memcpy( + &furi_hal_subghz_preset_ook_custom_async_regs[sizeof( + furi_hal_subghz_preset_ook_270khz_async_regs)], + &furi_hal_subghz_preset_ook_async_patable, + sizeof(furi_hal_subghz_preset_ook_async_patable)); + + // Here at the end we should have + // 00 00 + +#if FURI_DEBUG + FURI_LOG_D(SUGHZ_CONFIG_TAG, "Custom OOK preset created"); + + for(uint8_t i = 0; i < PRESET_OOK_CUSTOM_ADVANCED_AM_SIZE; i += 2) { + FURI_LOG_D( + SUGHZ_CONFIG_TAG, + "Register: 0x%hhX, Value: 0x%hhX", + furi_hal_subghz_preset_ook_custom_async_regs[i * 2 + 0], + furi_hal_subghz_preset_ook_custom_async_regs[i * 2 + 1]); + } +#endif + + FURI_LOG_D(SUGHZ_CONFIG_TAG, "Done"); +} + +/** + * Create subghz preset file with custom am preset + * this is used for preset initialization if subghz app + */ +FlipperFormat* subghz_preset_custom_advanced_am_preset_alloc() { + FlipperFormat* advanced_am_preset = flipper_format_string_alloc(); + + subghz_preset_custom_init_advanced_am_preset(); + + flipper_format_write_hex( + advanced_am_preset, + (const char*)"Custom_preset_data", + (const uint8_t*)&furi_hal_subghz_preset_ook_custom_async_regs[0], + sizeof(furi_hal_subghz_preset_ook_custom_async_regs)); + + flipper_format_rewind(advanced_am_preset); + + return advanced_am_preset; +} \ No newline at end of file diff --git a/lib/subghz/helpers/subghz_config_preset_custom.h b/lib/subghz/helpers/subghz_config_preset_custom.h new file mode 100644 index 000000000..318197f5d --- /dev/null +++ b/lib/subghz/helpers/subghz_config_preset_custom.h @@ -0,0 +1,193 @@ +#pragma once + +#include +#include /* memcpy() */ + +#define ADVANCED_AM_PRESET_NAME "AM*" + +// Awailable bandwidth values +// Setup in MDMCFG4 register +#define CH_BANDWIDTH_058 0b11110000 +#define CH_BANDWIDTH_068 0b11100000 +#define CH_BANDWIDTH_081 0b11010000 +#define CH_BANDWIDTH_102 0b11000000 + +#define CH_BANDWIDTH_116 0b10110000 +#define CH_BANDWIDTH_135 0b10100000 +#define CH_BANDWIDTH_162 0b10010000 +#define CH_BANDWIDTH_203 0b10000000 + +#define CH_BANDWIDTH_232 0b01110000 +#define CH_BANDWIDTH_270 0b01100000 +#define CH_BANDWIDTH_325 0b01010000 +#define CH_BANDWIDTH_406 0b01000000 + +#define CH_BANDWIDTH_464 0b00110000 +#define CH_BANDWIDTH_541 0b00100000 +#define CH_BANDWIDTH_650 0b00010000 +#define CH_BANDWIDTH_812 0b00000000 + +#define CH_BANDWIDTH_INVALID 0xFF + +static const uint8_t subghz_preset_custom_bandwidth_values[] = { + CH_BANDWIDTH_058, + CH_BANDWIDTH_068, + CH_BANDWIDTH_081, + CH_BANDWIDTH_102, + + CH_BANDWIDTH_116, + CH_BANDWIDTH_135, + CH_BANDWIDTH_162, + CH_BANDWIDTH_203, + + CH_BANDWIDTH_232, + CH_BANDWIDTH_270, + CH_BANDWIDTH_325, + CH_BANDWIDTH_406, + + CH_BANDWIDTH_464, + CH_BANDWIDTH_541, + CH_BANDWIDTH_650, + CH_BANDWIDTH_812, +}; +#define CH_BANDWIDTH_NUM (sizeof(subghz_preset_custom_bandwidth_values) / sizeof(uint8_t)) + +#define DATARATE_EXPONENT_3_79_kBaud 0b00000111 // 7 +#define DATARATE_MANTISSA_3_79_kBaud 0x32 + +#define CHANNEL_SPACING_25_EXPONENT 0b00000000 /* last bit */ +#define CHANNEL_SPACING_25_MANTISSA 0x00 + +#define MODEM_CONFIG_REGISTERS_COUNT 5 +#define PRESET_OOK_CUSTOM_ADVANCED_AM_SIZE \ + sizeof(furi_hal_subghz_preset_ook_270khz_async_regs) + \ + sizeof(furi_hal_subghz_preset_ook_async_patable) + +extern uint8_t furi_hal_subghz_preset_ook_custom_async_regs[PRESET_OOK_CUSTOM_ADVANCED_AM_SIZE]; + +static const uint8_t furi_hal_subghz_custom_modulation_regs[MODEM_CONFIG_REGISTERS_COUNT][2] = { + // Channel spacing is 25kHz, no Forward Error Correction, 2 preamble bytes (will be ignored) + {CC1101_MDMCFG0, CHANNEL_SPACING_25_MANTISSA}, + {CC1101_MDMCFG1, 0x00 | CHANNEL_SPACING_25_EXPONENT}, + + // [0:2] SYNC_MODE = 00 // No preamble/sync + // [3:3] MANCHESTER_EN = 0 // Disable + // [4:6] MOD_FORMAT = 03 // Format ASK/OOK + // [7:7] DEM_DCFILT_OFF = 0 // Enable + {CC1101_MDMCFG2, 0x30}, + + // 3.79 kBaud data rate (mantissa in 3rd register) + {CC1101_MDMCFG3, DATARATE_MANTISSA_3_79_kBaud}, + + // 270.8333 kHz Rx BW filer (hi) and 3.79 kBaud data rate (exponent in 4th register) + {CC1101_MDMCFG4, DATARATE_EXPONENT_3_79_kBaud | CH_BANDWIDTH_270}, +}; + +#ifdef __cplusplus +extern "C" { +#endif + +/** Check if cursom preset is AM (OOK) modulation + * + * This will check MOD_FORMAT bits in CC1101_MDMCFG2 register + * If preset data doesn have this register - will return false. + * This function will not fail in any case + * + * @param preset_data Custom preset data (registers and patable) + * @param data_len Data length + */ +bool subghz_preset_custom_is_ook_modulation(const uint8_t* preset_data, uint8_t data_len); + +/** Get bandwidth value from preset data. + * + * This will get HIGHER bits in CC1101_MDMCFG4 register + * If CC1101_MDMCFG4 is not found in preset data - will return + * CH_BANDWIDTH_INVALID (0xFF) + * If there is ANY low 4 bits in returned value - the value is invalid + * + * @param preset_data Custom preset data (registers and patable) + * @param data_len Data length + */ +uint8_t subghz_preset_custom_get_bandwidth(const uint8_t* preset_data, uint8_t data_len); + +/** Set bandwidth value to preset data. + * + * This will set HIGHER bits in CC1101_MDMCFG4 register + * If CC1101_MDMCFG4 is not found in preset data - will do nothing and return false + * If there are ANY low 4 bits in provided value - they will be ignored + * + * @param preset_data Custom preset data (registers and patable) + * @param data_len Data length + * @param value New bandwidth value. See macros definition for possible values + */ +bool subghz_preset_custom_set_bandwidth(uint8_t* preset_data, uint8_t data_len, uint8_t value); + +/** Get data rate value from preset data. + * + * This will get DRATE_M and DRATE_E bits from CC1101_MDMCFG3 and CC1101_MDMCFG4 registers + * and calculate the value for 26MHz chip oscillator by formula from datasheet. + * + * If CC1101_MDMCFG[3:4] are not found in preset data - will return `-1` + * + * @param preset_data Custom preset data (registers and patable) + * @param data_len Data length + */ +float subghz_preset_custom_get_datarate(const uint8_t* preset_data, uint8_t data_len); + +/** Set data rate value to preset data. + * + * This will update DRATE_M and DRATE_E bits from CC1101_MDMCFG3 and CC1101_MDMCFG4 registers + * with calculated values for 26MHz chip oscillator by formula from datasheet. + * + * If CC1101_MDMCFG[3:4] are not found in preset data - will return false + * + * @param preset_data Custom preset data (registers and patable) + * @param data_len Data length + * @param value value in kBaud + */ +bool subghz_preset_custom_set_datarate(uint8_t* preset_data, uint8_t data_len, float value); + +/** Print datarate value to string + * + * This is just conviniece function + * + * @param datarate datarate obtained from `subghz_preset_custom_get_datarate` function + * @param string Target print buffer + * @param size Target print buffer size + */ +void subghz_preset_custom_printf_datarate(float datarate, char* string, uint8_t size); + +/** Get Manchester encoding/decoding flag value from preset data. + * + * This will get MANCHESTER_EN (3-rd) bit in CC1101_MDMCFG2 register + * If CC1101_MDMCFG2 is not found in preset data - will return false + * + * @param preset_data Custom preset data (registers and patable) + * @param data_len Data length + */ +bool subghz_preset_custom_get_machester_enable(const uint8_t* preset_data, uint8_t data_len); + +/** Set Manchester encoding/decoding flag value to preset data. + * + * This will set MANCHESTER_EN (3-rd) bit in CC1101_MDMCFG2 register + * If CC1101_MDMCFG2 is not found in preset data - will return false + * + * @param preset_data Custom preset data (registers and patable) + * @param data_len Data length + */ +bool subghz_preset_custom_set_machester_enable(uint8_t* preset_data, uint8_t data_len, bool value); + +/** + * Initialize advanced am custom preset + */ +void subghz_preset_custom_init_advanced_am_preset(); + +/** + * Create subghz preset file with custom am preset + * this is used for preset initialization if subghz app + */ +struct FlipperFormat* subghz_preset_custom_advanced_am_preset_alloc(); + +#ifdef __cplusplus +} +#endif \ No newline at end of file diff --git a/lib/toolbox/stream/stream.c b/lib/toolbox/stream/stream.c index 055bab5bf..407da0f2c 100644 --- a/lib/toolbox/stream/stream.c +++ b/lib/toolbox/stream/stream.c @@ -4,6 +4,8 @@ #include #include +#define STREAM_BUFFER_SIZE (32U) + void stream_free(Stream* stream) { furi_assert(stream); stream->vtable->free(stream); @@ -24,6 +26,82 @@ bool stream_seek(Stream* stream, int32_t offset, StreamOffset offset_type) { return stream->vtable->seek(stream, offset, offset_type); } +static bool stream_seek_to_char_forward(Stream* stream, char c) { + // Search is starting from seconds character + if(!stream_seek(stream, 1, StreamOffsetFromCurrent)) { + return false; + } + + // Search character in a stream + bool result = false; + while(!result) { + uint8_t buffer[STREAM_BUFFER_SIZE] = {0}; + size_t ret = stream_read(stream, buffer, STREAM_BUFFER_SIZE); + for(size_t i = 0; i < ret; i++) { + if(buffer[i] == c) { + stream_seek(stream, (int32_t)i - ret, StreamOffsetFromCurrent); + result = true; + break; + } + } + if(ret != STREAM_BUFFER_SIZE) break; + } + return result; +} + +static bool stream_seek_to_char_backward(Stream* stream, char c) { + size_t anchor = stream_tell(stream); + + // Special case, no previous characters + if(anchor == 0) { + return false; + } + + bool result = false; + while(!result) { + // Seek back + uint8_t buffer[STREAM_BUFFER_SIZE] = {0}; + size_t to_read = STREAM_BUFFER_SIZE; + if(to_read > anchor) { + to_read = anchor; + } + + anchor -= to_read; + furi_check(stream_seek(stream, anchor, StreamOffsetFromStart)); + + size_t ret = stream_read(stream, buffer, to_read); + for(size_t i = 0; i < ret; i++) { + size_t cursor = ret - i - 1; + if(buffer[cursor] == c) { + result = true; + furi_check(stream_seek(stream, anchor + cursor, StreamOffsetFromStart)); + break; + } else { + } + } + if(ret != STREAM_BUFFER_SIZE) break; + } + return result; +} + +bool stream_seek_to_char(Stream* stream, char c, StreamDirection direction) { + const size_t old_position = stream_tell(stream); + + bool result = false; + if(direction == StreamDirectionForward) { + result = stream_seek_to_char_forward(stream, c); + } else if(direction == StreamDirectionBackward) { + result = stream_seek_to_char_backward(stream, c); + } + + // Rollback + if(!result) { + stream_seek(stream, old_position, StreamOffsetFromStart); + } + + return result; +} + size_t stream_tell(Stream* stream) { furi_assert(stream); return stream->vtable->tell(stream); @@ -69,11 +147,10 @@ static bool stream_write_struct(Stream* stream, const void* context) { bool stream_read_line(Stream* stream, FuriString* str_result) { furi_string_reset(str_result); - const uint8_t buffer_size = 32; - uint8_t buffer[buffer_size]; + uint8_t buffer[STREAM_BUFFER_SIZE]; do { - uint16_t bytes_were_read = stream_read(stream, buffer, buffer_size); + uint16_t bytes_were_read = stream_read(stream, buffer, STREAM_BUFFER_SIZE); if(bytes_were_read == 0) break; bool result = false; diff --git a/lib/toolbox/stream/stream.h b/lib/toolbox/stream/stream.h index fc3855102..84b4f0eb2 100644 --- a/lib/toolbox/stream/stream.h +++ b/lib/toolbox/stream/stream.h @@ -16,6 +16,11 @@ typedef enum { StreamOffsetFromEnd, } StreamOffset; +typedef enum { + StreamDirectionForward, + StreamDirectionBackward, +} StreamDirection; + typedef bool (*StreamWriteCB)(Stream* stream, const void* context); /** @@ -31,15 +36,15 @@ void stream_free(Stream* stream); void stream_clean(Stream* stream); /** - * Indicates that the rw pointer is at the end of the stream + * Indicates that the RW pointer is at the end of the stream * @param stream Stream instance - * @return true if rw pointer is at the end of the stream - * @return false if rw pointer is not at the end of the stream + * @return true if RW pointer is at the end of the stream + * @return false if RW pointer is not at the end of the stream */ bool stream_eof(Stream* stream); /** - * Moves the rw pointer. + * Moves the RW pointer. * @param stream Stream instance * @param offset how much to move the pointer * @param offset_type starting from what @@ -48,10 +53,20 @@ bool stream_eof(Stream* stream); */ bool stream_seek(Stream* stream, int32_t offset, StreamOffset offset_type); +/** Seek to next occurrence of the character + * + * @param stream Pointer to the stream instance + * @param[in] c The Character + * @param[in] direction The Direction + * + * @return true on success + */ +bool stream_seek_to_char(Stream* stream, char c, StreamDirection direction); + /** - * Gets the value of the rw pointer + * Gets the value of the RW pointer * @param stream Stream instance - * @return size_t value of the rw pointer + * @return size_t value of the RW pointer */ size_t stream_tell(Stream* stream); @@ -101,13 +116,13 @@ bool stream_delete_and_insert( * Read line from a stream (supports LF and CRLF line endings) * @param stream * @param str_result - * @return true if line lenght is not zero + * @return true if line length is not zero * @return false otherwise */ bool stream_read_line(Stream* stream, FuriString* str_result); /** - * Moves the rw pointer to the start + * Moves the RW pointer to the start * @param stream Stream instance */ bool stream_rewind(Stream* stream); @@ -157,7 +172,7 @@ size_t stream_write_vaformat(Stream* stream, const char* format, va_list args); /** * Insert N chars to the stream, starting at the current pointer. - * Data will be inserted, not overwritteт, so the stream will be increased in size. + * Data will be inserted, not overwritten, so the stream will be increased in size. * @param stream Stream instance * @param data data to be inserted * @param size size of data to be inserted @@ -273,7 +288,7 @@ bool stream_delete_and_insert_vaformat( /** * Remove N chars from the stream, starting at the current pointer. - * The size may be larger than stream size, the stream will be cleared from current rw pointer to the end. + * The size may be larger than stream size, the stream will be cleared from current RW pointer to the end. * @param stream Stream instance * @param size how many chars need to be deleted * @return true if the operation was successful @@ -282,7 +297,7 @@ bool stream_delete_and_insert_vaformat( bool stream_delete(Stream* stream, size_t size); /** - * Copy data from one stream to another. Data will be copied from current rw pointer and to current rw pointer. + * Copy data from one stream to another. Data will be copied from current RW pointer and to current RW pointer. * @param stream_from * @param stream_to * @param size @@ -328,7 +343,7 @@ size_t stream_load_from_file(Stream* stream, Storage* storage, const char* path) size_t stream_save_to_file(Stream* stream, Storage* storage, const char* path, FS_OpenMode mode); /** - * Dump stream inner data (size, RW positiot, content) + * Dump stream inner data (size, RW position, content) * @param stream Stream instance */ void stream_dump_data(Stream* stream); diff --git a/lib/update_util/resources/manifest.c b/lib/update_util/resources/manifest.c index baa7acebd..5a818a0a4 100644 --- a/lib/update_util/resources/manifest.c +++ b/lib/update_util/resources/manifest.c @@ -60,6 +60,12 @@ ResourceManifestEntry* resource_manifest_reader_next(ResourceManifestReader* res char type_code = furi_string_get_char(resource_manifest->linebuf, 0); switch(type_code) { + case 'V': + resource_manifest->entry.type = ResourceManifestEntryTypeVersion; + break; + case 'T': + resource_manifest->entry.type = ResourceManifestEntryTypeTimestamp; + break; case 'F': resource_manifest->entry.type = ResourceManifestEntryTypeFile; break; @@ -98,9 +104,9 @@ ResourceManifestEntry* resource_manifest_reader_next(ResourceManifestReader* res furi_string_right(resource_manifest->linebuf, offs + 1); furi_string_set(resource_manifest->entry.name, resource_manifest->linebuf); - } else if(resource_manifest->entry.type == ResourceManifestEntryTypeDirectory) { //-V547 - /* Parse directory entry - D: */ + } else { //-V547 + /* Everything else is plain key value. Parse version, timestamp or directory entry + : */ /* Remove entry type code */ furi_string_right(resource_manifest->linebuf, 2); @@ -113,3 +119,45 @@ ResourceManifestEntry* resource_manifest_reader_next(ResourceManifestReader* res return NULL; } + +ResourceManifestEntry* + resource_manifest_reader_previous(ResourceManifestReader* resource_manifest) { + furi_assert(resource_manifest); + + // Snapshot position for rollback + const size_t previous_position = stream_tell(resource_manifest->stream); + + // We need to jump 2 lines back + size_t jumps = 2; + // Special case: end of the file. + const bool was_eof = stream_eof(resource_manifest->stream); + if(was_eof) { + jumps = 1; + } + while(jumps) { + if(!stream_seek_to_char(resource_manifest->stream, '\n', StreamDirectionBackward)) { + break; + } + if(stream_tell(resource_manifest->stream) < (previous_position - 1)) { + jumps--; + } + } + + // Special case: first line. Force seek to zero + if(jumps == 1) { + jumps = 0; + stream_seek(resource_manifest->stream, 0, StreamOffsetFromStart); + } + + if(jumps == 0) { + ResourceManifestEntry* entry = resource_manifest_reader_next(resource_manifest); + // Special case: was end of the file, prevent loop + if(was_eof) { + stream_seek(resource_manifest->stream, -1, StreamOffsetFromCurrent); + } + return entry; + } else { + stream_seek(resource_manifest->stream, previous_position, StreamOffsetFromStart); + return NULL; + } +} diff --git a/lib/update_util/resources/manifest.h b/lib/update_util/resources/manifest.h index 8baa1613e..ddceb5ffa 100644 --- a/lib/update_util/resources/manifest.h +++ b/lib/update_util/resources/manifest.h @@ -11,6 +11,8 @@ extern "C" { typedef enum { ResourceManifestEntryTypeUnknown = 0, + ResourceManifestEntryTypeVersion, + ResourceManifestEntryTypeTimestamp, ResourceManifestEntryTypeDirectory, ResourceManifestEntryTypeFile, } ResourceManifestEntryType; @@ -52,6 +54,18 @@ bool resource_manifest_reader_open(ResourceManifestReader* resource_manifest, co */ ResourceManifestEntry* resource_manifest_reader_next(ResourceManifestReader* resource_manifest); +/** Read previous file/dir entry from manifest + * + * You must be at the end of the manifest to use this function. + * Intended to be used after reaching end with resource_manifest_reader_next + * + * @param resource_manifest Pointer to the ResourceManifestReader instance + * + * @return entry or NULL if end of file + */ +ResourceManifestEntry* + resource_manifest_reader_previous(ResourceManifestReader* resource_manifest); + #ifdef __cplusplus } // extern "C" #endif \ No newline at end of file diff --git a/scripts/flipper/assets/icon.py b/scripts/flipper/assets/icon.py index 235af7b05..ed85b024e 100644 --- a/scripts/flipper/assets/icon.py +++ b/scripts/flipper/assets/icon.py @@ -104,7 +104,7 @@ def file2image(file): data_enc = bytearray(data_encoded_str) data_enc = bytearray([len(data_enc) & 0xFF, len(data_enc) >> 8]) + data_enc - # Use encoded data only if its lenght less than original, including header + # Use encoded data only if its length less than original, including header if len(data_enc) < len(data_bin) + 1: data = b"\x01\x00" + data_enc else: