diff options
author | SG <who.just.the.doctor@gmail.com> | 2022-02-18 22:53:46 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-18 22:53:46 +0300 |
commit | 274c12fc56f46774a0445a3b61e8cc930163d4f6 (patch) | |
tree | 4fb1fa710756fc8b67dbbecee4e4c431ead26035 /applications/subghz | |
parent | 242241987e6bf93a428d4295ddcd92961c4d6b87 (diff) |
[FL-2274] Inventing streams and moving FFF to them (#981)
* Streams: string stream
* String stream: updated insert/delete api
* Streams: generic stream interface and string stream implementation
* Streams: helpers for insert and delete_and_insert
* FFF: now compatible with streams
* MinUnit: introduced tests with arguments
* FFF: stream access violation
* Streams: copy data between streams
* Streams: file stream
* FFF: documentation
* FFStream: documentation
* FFF: alloc as file
* MinUnit: support for nested tests
* Streams: changed delete_and_insert, now it returns success flag. Added ability dump stream inner parameters and data to cout.
* FFF: simplified file open function
* Streams: unit tests
* FFF: tests
* Streams: declare cache_size constant as define, to allow variable modified arrays
* FFF: lib moved to a separate folder
* iButton: new FFF
* RFID: new FFF
* Animations: new FFF
* IR: new FFF
* NFC: new FFF
* Flipper file format: delete lib
* U2F: new FFF
* Subghz: new FFF and streams
* Streams: read line
* Streams: split
* FuriCore: implement memset with extra asserts
* FuriCore: implement extra heap asserts without inventing memset
* Scene manager: protected access to the scene id stack with a size check
* NFC worker: dirty fix for issue where hal_nfc was busy on app start
* Furi: update allocator to erase memory on allocation. Replace furi_alloc with malloc.
* FuriCore: cleanup memmgr code.
* Furi HAL: furi_hal_init is split into critical and non-critical parts. The critical part is currently clock and console.
* Memmgr: added ability to track allocations and deallocations through console.
* FFStream: some speedup
* Streams, FF: minor fixes
* Tests: restore
* File stream: a slightly more thread-safe version of file_stream_delete_and_insert
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
Diffstat (limited to 'applications/subghz')
-rw-r--r-- | applications/subghz/helpers/subghz_chat.c | 4 | ||||
-rw-r--r-- | applications/subghz/helpers/subghz_frequency_analyzer_worker.c | 2 | ||||
-rw-r--r-- | applications/subghz/subghz.c | 4 | ||||
-rw-r--r-- | applications/subghz/subghz_cli.c | 2 | ||||
-rw-r--r-- | applications/subghz/subghz_history.c | 2 | ||||
-rwxr-xr-x | applications/subghz/subghz_i.c | 38 | ||||
-rw-r--r-- | applications/subghz/views/subghz_frequency_analyzer.c | 4 | ||||
-rw-r--r-- | applications/subghz/views/subghz_read_raw.c | 6 | ||||
-rw-r--r-- | applications/subghz/views/subghz_receiver.c | 6 | ||||
-rw-r--r-- | applications/subghz/views/subghz_test_carrier.c | 2 | ||||
-rw-r--r-- | applications/subghz/views/subghz_test_packet.c | 2 | ||||
-rw-r--r-- | applications/subghz/views/subghz_test_static.c | 4 | ||||
-rw-r--r-- | applications/subghz/views/subghz_transmitter.c | 2 |
13 files changed, 38 insertions, 40 deletions
diff --git a/applications/subghz/helpers/subghz_chat.c b/applications/subghz/helpers/subghz_chat.c index 4bc79b89..38529a10 100644 --- a/applications/subghz/helpers/subghz_chat.c +++ b/applications/subghz/helpers/subghz_chat.c @@ -52,7 +52,7 @@ static void subghz_chat_worker_update_rx_event_chat(void* context) { } SubGhzChatWorker* subghz_chat_worker_alloc() { - SubGhzChatWorker* instance = furi_alloc(sizeof(SubGhzChatWorker)); + SubGhzChatWorker* instance = malloc(sizeof(SubGhzChatWorker)); instance->thread = furi_thread_alloc(); furi_thread_set_name(instance->thread, "SubghzChat"); @@ -138,4 +138,4 @@ size_t subghz_chat_worker_read(SubGhzChatWorker* instance, uint8_t* data, size_t bool subghz_chat_worker_write(SubGhzChatWorker* instance, uint8_t* data, size_t size) { furi_assert(instance); return subghz_tx_rx_worker_write(instance->subghz_txrx, data, size); -}
\ No newline at end of file +} diff --git a/applications/subghz/helpers/subghz_frequency_analyzer_worker.c b/applications/subghz/helpers/subghz_frequency_analyzer_worker.c index ddf557a6..b79cfe04 100644 --- a/applications/subghz/helpers/subghz_frequency_analyzer_worker.c +++ b/applications/subghz/helpers/subghz_frequency_analyzer_worker.c @@ -142,7 +142,7 @@ static int32_t subghz_frequency_analyzer_worker_thread(void* context) { } SubGhzFrequencyAnalyzerWorker* subghz_frequency_analyzer_worker_alloc() { - SubGhzFrequencyAnalyzerWorker* instance = furi_alloc(sizeof(SubGhzFrequencyAnalyzerWorker)); + SubGhzFrequencyAnalyzerWorker* instance = malloc(sizeof(SubGhzFrequencyAnalyzerWorker)); instance->thread = furi_thread_alloc(); furi_thread_set_name(instance->thread, "SubghzFAWorker"); diff --git a/applications/subghz/subghz.c b/applications/subghz/subghz.c index 4f442562..705be7d4 100644 --- a/applications/subghz/subghz.c +++ b/applications/subghz/subghz.c @@ -74,7 +74,7 @@ void subghz_tick_event_callback(void* context) { } SubGhz* subghz_alloc() { - SubGhz* subghz = furi_alloc(sizeof(SubGhz)); + SubGhz* subghz = malloc(sizeof(SubGhz)); // GUI subghz->gui = furi_record_open("gui"); @@ -177,7 +177,7 @@ SubGhz* subghz_alloc() { subghz_test_static_get_view(subghz->subghz_test_static)); //init Worker & Protocol & History - subghz->txrx = furi_alloc(sizeof(SubGhzTxRx)); + subghz->txrx = malloc(sizeof(SubGhzTxRx)); subghz->txrx->frequency = subghz_frequencies[subghz_frequencies_433_92]; subghz->txrx->preset = FuriHalSubGhzPresetOok650Async; subghz->txrx->txrx_state = SubGhzTxRxStateSleep; diff --git a/applications/subghz/subghz_cli.c b/applications/subghz/subghz_cli.c index c54533d9..37946298 100644 --- a/applications/subghz/subghz_cli.c +++ b/applications/subghz/subghz_cli.c @@ -210,7 +210,7 @@ void subghz_cli_command_rx(Cli* cli, string_t args, void* context) { } // Allocate context and buffers - SubGhzCliCommandRx* instance = furi_alloc(sizeof(SubGhzCliCommandRx)); + SubGhzCliCommandRx* instance = malloc(sizeof(SubGhzCliCommandRx)); instance->stream = xStreamBufferCreate(sizeof(LevelDuration) * 1024, sizeof(LevelDuration)); furi_check(instance->stream); diff --git a/applications/subghz/subghz_history.c b/applications/subghz/subghz_history.c index ad6c3d4c..bb821e40 100644 --- a/applications/subghz/subghz_history.c +++ b/applications/subghz/subghz_history.c @@ -31,7 +31,7 @@ struct SubGhzHistory { }; SubGhzHistory* subghz_history_alloc(void) { - SubGhzHistory* instance = furi_alloc(sizeof(SubGhzHistory)); + SubGhzHistory* instance = malloc(sizeof(SubGhzHistory)); return instance; } diff --git a/applications/subghz/subghz_i.c b/applications/subghz/subghz_i.c index 87537ca2..5eb99f85 100755 --- a/applications/subghz/subghz_i.c +++ b/applications/subghz/subghz_i.c @@ -6,7 +6,7 @@ #include <input/input.h> #include <gui/elements.h> #include <notification/notification_messages.h> -#include <lib/flipper_file/flipper_file.h> +#include <flipper_format/flipper_format.h> #include "../notification/notification.h" #include "views/subghz_receiver.h" @@ -198,7 +198,7 @@ bool subghz_key_load(SubGhz* subghz, const char* file_path) { furi_assert(file_path); Storage* storage = furi_record_open("storage"); - FlipperFile* flipper_file = flipper_file_alloc(storage); + FlipperFormat* flipper_format = flipper_format_file_alloc(storage); // Load device data bool loaded = false; @@ -209,12 +209,12 @@ bool subghz_key_load(SubGhz* subghz, const char* file_path) { uint32_t version; do { - if(!flipper_file_open_existing(flipper_file, string_get_cstr(path))) { + if(!flipper_format_file_open_existing(flipper_format, string_get_cstr(path))) { FURI_LOG_E( SUBGHZ_PARSER_TAG, "Unable to open file for read: %s", string_get_cstr(path)); break; } - if(!flipper_file_read_header(flipper_file, temp_str, &version)) { + if(!flipper_format_read_header(flipper_format, temp_str, &version)) { FURI_LOG_E(SUBGHZ_PARSER_TAG, "Missing or incorrect header"); break; } @@ -227,13 +227,13 @@ bool subghz_key_load(SubGhz* subghz, const char* file_path) { break; } - if(!flipper_file_read_uint32( - flipper_file, "Frequency", (uint32_t*)&subghz->txrx->frequency, 1)) { + if(!flipper_format_read_uint32( + flipper_format, "Frequency", (uint32_t*)&subghz->txrx->frequency, 1)) { FURI_LOG_E(SUBGHZ_PARSER_TAG, "Missing Frequency"); break; } - if(!flipper_file_read_string(flipper_file, "Preset", temp_str)) { + if(!flipper_format_read_string(flipper_format, "Preset", temp_str)) { FURI_LOG_E(SUBGHZ_PARSER_TAG, "Missing Preset"); break; } @@ -241,7 +241,7 @@ bool subghz_key_load(SubGhz* subghz, const char* file_path) { break; } - if(!flipper_file_read_string(flipper_file, "Protocol", temp_str)) { + if(!flipper_format_read_string(flipper_format, "Protocol", temp_str)) { FURI_LOG_E(SUBGHZ_PARSER_TAG, "Missing Protocol"); break; } @@ -253,7 +253,7 @@ bool subghz_key_load(SubGhz* subghz, const char* file_path) { break; } if(!subghz->txrx->protocol_result->to_load_protocol_from_file( - flipper_file, subghz->txrx->protocol_result, string_get_cstr(path))) { + flipper_format, subghz->txrx->protocol_result, string_get_cstr(path))) { break; } loaded = true; @@ -265,8 +265,7 @@ bool subghz_key_load(SubGhz* subghz, const char* file_path) { string_clear(temp_str); string_clear(path); - flipper_file_close(flipper_file); - flipper_file_free(flipper_file); + flipper_format_free(flipper_format); furi_record_close("storage"); @@ -301,7 +300,7 @@ bool subghz_save_protocol_to_file(SubGhz* subghz, const char* dev_name) { furi_assert(subghz->txrx->protocol_result); Storage* storage = furi_record_open("storage"); - FlipperFile* flipper_file = flipper_file_alloc(storage); + FlipperFormat* flipper_format = flipper_format_file_alloc(storage); string_t dev_file_name; string_init(dev_file_name); string_t temp_str; @@ -328,18 +327,18 @@ bool subghz_save_protocol_to_file(SubGhz* subghz, const char* dev_name) { } // Open file - if(!flipper_file_open_always(flipper_file, string_get_cstr(dev_file_name))) { + if(!flipper_format_file_open_always(flipper_format, string_get_cstr(dev_file_name))) { FURI_LOG_E(SUBGHZ_PARSER_TAG, "Unable to open file for write: %s", dev_file_name); break; } - if(!flipper_file_write_header_cstr( - flipper_file, SUBGHZ_KEY_FILE_TYPE, SUBGHZ_KEY_FILE_VERSION)) { + if(!flipper_format_write_header_cstr( + flipper_format, SUBGHZ_KEY_FILE_TYPE, SUBGHZ_KEY_FILE_VERSION)) { FURI_LOG_E(SUBGHZ_PARSER_TAG, "Unable to add header"); break; } - if(!flipper_file_write_uint32(flipper_file, "Frequency", &subghz->txrx->frequency, 1)) { + if(!flipper_format_write_uint32(flipper_format, "Frequency", &subghz->txrx->frequency, 1)) { FURI_LOG_E(SUBGHZ_PARSER_TAG, "Unable to add Frequency"); break; } @@ -347,13 +346,13 @@ bool subghz_save_protocol_to_file(SubGhz* subghz, const char* dev_name) { if(!subghz_get_preset_name(subghz, temp_str)) { break; } - if(!flipper_file_write_string_cstr(flipper_file, "Preset", string_get_cstr(temp_str))) { + if(!flipper_format_write_string_cstr(flipper_format, "Preset", string_get_cstr(temp_str))) { FURI_LOG_E(SUBGHZ_PARSER_TAG, "Unable to add Preset"); break; } if(!subghz->txrx->protocol_result->to_save_file( - subghz->txrx->protocol_result, flipper_file)) { + subghz->txrx->protocol_result, flipper_format)) { break; } @@ -363,8 +362,7 @@ bool subghz_save_protocol_to_file(SubGhz* subghz, const char* dev_name) { string_clear(temp_str); string_clear(dev_file_name); - flipper_file_close(flipper_file); - flipper_file_free(flipper_file); + flipper_format_free(flipper_format); furi_record_close("storage"); diff --git a/applications/subghz/views/subghz_frequency_analyzer.c b/applications/subghz/views/subghz_frequency_analyzer.c index 1cc3d4f9..afb7b012 100644 --- a/applications/subghz/views/subghz_frequency_analyzer.c +++ b/applications/subghz/views/subghz_frequency_analyzer.c @@ -136,7 +136,7 @@ void subghz_frequency_analyzer_exit(void* context) { } SubghzFrequencyAnalyzer* subghz_frequency_analyzer_alloc() { - SubghzFrequencyAnalyzer* instance = furi_alloc(sizeof(SubghzFrequencyAnalyzer)); + SubghzFrequencyAnalyzer* instance = malloc(sizeof(SubghzFrequencyAnalyzer)); // View allocation and configuration instance->view = view_alloc(); @@ -167,4 +167,4 @@ void subghz_frequency_analyzer_free(SubghzFrequencyAnalyzer* instance) { View* subghz_frequency_analyzer_get_view(SubghzFrequencyAnalyzer* instance) { furi_assert(instance); return instance->view; -}
\ No newline at end of file +} diff --git a/applications/subghz/views/subghz_read_raw.c b/applications/subghz/views/subghz_read_raw.c index 27d1c31f..f786b7a0 100644 --- a/applications/subghz/views/subghz_read_raw.c +++ b/applications/subghz/views/subghz_read_raw.c @@ -484,7 +484,7 @@ void subghz_read_raw_exit(void* context) { } SubghzReadRAW* subghz_read_raw_alloc() { - SubghzReadRAW* instance = furi_alloc(sizeof(SubghzReadRAW)); + SubghzReadRAW* instance = malloc(sizeof(SubghzReadRAW)); // View allocation and configuration instance->view = view_alloc(); @@ -501,7 +501,7 @@ SubghzReadRAW* subghz_read_raw_alloc() { string_init(model->preset_str); string_init(model->sample_write); string_init(model->file_name); - model->rssi_history = furi_alloc(SUBGHZ_READ_RAW_RSSI_HISTORY_SIZE * sizeof(uint8_t)); + model->rssi_history = malloc(SUBGHZ_READ_RAW_RSSI_HISTORY_SIZE * sizeof(uint8_t)); return true; }); @@ -527,4 +527,4 @@ void subghz_read_raw_free(SubghzReadRAW* instance) { View* subghz_read_raw_get_view(SubghzReadRAW* instance) { furi_assert(instance); return instance->view; -}
\ No newline at end of file +} diff --git a/applications/subghz/views/subghz_receiver.c b/applications/subghz/views/subghz_receiver.c index b158d870..92bfbb53 100644 --- a/applications/subghz/views/subghz_receiver.c +++ b/applications/subghz/views/subghz_receiver.c @@ -243,7 +243,7 @@ void subghz_receiver_exit(void* context) { } SubghzReceiver* subghz_receiver_alloc() { - SubghzReceiver* subghz_receiver = furi_alloc(sizeof(SubghzReceiver)); + SubghzReceiver* subghz_receiver = malloc(sizeof(SubghzReceiver)); // View allocation and configuration subghz_receiver->view = view_alloc(); @@ -259,7 +259,7 @@ SubghzReceiver* subghz_receiver_alloc() { string_init(model->frequency_str); string_init(model->preset_str); string_init(model->history_stat_str); - model->history = furi_alloc(sizeof(SubGhzReceiverHistory)); + model->history = malloc(sizeof(SubGhzReceiverHistory)); SubGhzReceiverMenuItemArray_init(model->history->data); return true; }); @@ -313,4 +313,4 @@ void subghz_receiver_set_idx_menu(SubghzReceiver* subghz_receiver, uint16_t idx) return true; }); subghz_receiver_update_offset(subghz_receiver); -}
\ No newline at end of file +} diff --git a/applications/subghz/views/subghz_test_carrier.c b/applications/subghz/views/subghz_test_carrier.c index 4d7b1189..82d95bff 100644 --- a/applications/subghz/views/subghz_test_carrier.c +++ b/applications/subghz/views/subghz_test_carrier.c @@ -181,7 +181,7 @@ void subghz_test_carrier_rssi_timer_callback(void* context) { } SubghzTestCarrier* subghz_test_carrier_alloc() { - SubghzTestCarrier* subghz_test_carrier = furi_alloc(sizeof(SubghzTestCarrier)); + SubghzTestCarrier* subghz_test_carrier = malloc(sizeof(SubghzTestCarrier)); // View allocation and configuration subghz_test_carrier->view = view_alloc(); diff --git a/applications/subghz/views/subghz_test_packet.c b/applications/subghz/views/subghz_test_packet.c index 335afbb9..c856dc74 100644 --- a/applications/subghz/views/subghz_test_packet.c +++ b/applications/subghz/views/subghz_test_packet.c @@ -227,7 +227,7 @@ void subghz_test_packet_exit(void* context) { } SubghzTestPacket* subghz_test_packet_alloc() { - SubghzTestPacket* instance = furi_alloc(sizeof(SubghzTestPacket)); + SubghzTestPacket* instance = malloc(sizeof(SubghzTestPacket)); // View allocation and configuration instance->view = view_alloc(); diff --git a/applications/subghz/views/subghz_test_static.c b/applications/subghz/views/subghz_test_static.c index d3485d73..35001bdc 100644 --- a/applications/subghz/views/subghz_test_static.c +++ b/applications/subghz/views/subghz_test_static.c @@ -161,7 +161,7 @@ void subghz_test_static_exit(void* context) { } SubghzTestStatic* subghz_test_static_alloc() { - SubghzTestStatic* instance = furi_alloc(sizeof(SubghzTestStatic)); + SubghzTestStatic* instance = malloc(sizeof(SubghzTestStatic)); // View allocation and configuration instance->view = view_alloc(); @@ -187,4 +187,4 @@ void subghz_test_static_free(SubghzTestStatic* instance) { View* subghz_test_static_get_view(SubghzTestStatic* instance) { furi_assert(instance); return instance->view; -}
\ No newline at end of file +} diff --git a/applications/subghz/views/subghz_transmitter.c b/applications/subghz/views/subghz_transmitter.c index b9421e4f..f1afccfa 100644 --- a/applications/subghz/views/subghz_transmitter.c +++ b/applications/subghz/views/subghz_transmitter.c @@ -134,7 +134,7 @@ void subghz_transmitter_exit(void* context) { } SubghzTransmitter* subghz_transmitter_alloc() { - SubghzTransmitter* subghz_transmitter = furi_alloc(sizeof(SubghzTransmitter)); + SubghzTransmitter* subghz_transmitter = malloc(sizeof(SubghzTransmitter)); // View allocation and configuration subghz_transmitter->view = view_alloc(); |