From 4d56bb4e443146a8d460dbea541e553e5148503f Mon Sep 17 00:00:00 2001 From: MX <10697207+xMasterX@users.noreply.github.com> Date: Thu, 21 Dec 2023 21:42:17 +0300 Subject: [PATCH] Revert "testing subghz dynamic limit based on freeheap + RPC" This reverts commit 77f458fb6ea27057962f3767bd54a5bc5253276e. --- applications/main/subghz/subghz_history.c | 15 ++++++--------- applications/main/subghz/views/receiver.c | 22 ++-------------------- applications/services/rpc/rpc.c | 9 --------- applications/services/rpc/rpc.h | 7 ------- targets/f7/api_symbols.csv | 1 - 5 files changed, 8 insertions(+), 46 deletions(-) diff --git a/applications/main/subghz/subghz_history.c b/applications/main/subghz/subghz_history.c index b18df0ee8..048104f35 100644 --- a/applications/main/subghz/subghz_history.c +++ b/applications/main/subghz/subghz_history.c @@ -1,11 +1,10 @@ #include "subghz_history.h" #include -#include #include -#define SUBGHZ_HISTORY_MAX 65530 // uint16_t index max, ram limit below -#define SUBGHZ_HISTORY_FREE_HEAP (10240 * (3 - MIN(rpc_get_sessions_count(instance->rpc), 2U))) +#define SUBGHZ_HISTORY_MAX 55 +#define SUBGHZ_HISTORY_FREE_HEAP 20480 #define TAG "SubGhzHistory" typedef struct { @@ -30,7 +29,6 @@ struct SubGhzHistory { uint8_t code_last_hash_data; FuriString* tmp_string; SubGhzHistoryStruct* history; - Rpc* rpc; }; SubGhzHistory* subghz_history_alloc(void) { @@ -38,7 +36,6 @@ SubGhzHistory* subghz_history_alloc(void) { instance->tmp_string = furi_string_alloc(); instance->history = malloc(sizeof(SubGhzHistoryStruct)); SubGhzHistoryItemArray_init(instance->history->data); - instance->rpc = furi_record_open(RECORD_RPC); return instance; } @@ -55,7 +52,6 @@ void subghz_history_free(SubGhzHistory* instance) { } SubGhzHistoryItemArray_clear(instance->history->data); free(instance->history); - furi_record_close(RECORD_RPC); free(instance); } @@ -147,14 +143,15 @@ FlipperFormat* subghz_history_get_raw_data(SubGhzHistory* instance, uint16_t idx bool subghz_history_get_text_space_left(SubGhzHistory* instance, FuriString* output) { furi_assert(instance); if(memmgr_get_free_heap() < SUBGHZ_HISTORY_FREE_HEAP) { - if(output != NULL) furi_string_printf(output, " Memory is FULL"); + if(output != NULL) furi_string_printf(output, " Free heap LOW"); return true; } if(instance->last_index_write == SUBGHZ_HISTORY_MAX) { - if(output != NULL) furi_string_printf(output, " History is FULL"); + if(output != NULL) furi_string_printf(output, " Memory is FULL"); return true; } - if(output != NULL) furi_string_printf(output, "%02u", instance->last_index_write); + if(output != NULL) + furi_string_printf(output, "%02u/%02u", instance->last_index_write, SUBGHZ_HISTORY_MAX); return false; } diff --git a/applications/main/subghz/views/receiver.c b/applications/main/subghz/views/receiver.c index 1d3967edb..98c15dbff 100644 --- a/applications/main/subghz/views/receiver.c +++ b/applications/main/subghz/views/receiver.c @@ -383,16 +383,7 @@ void subghz_view_receiver_draw(Canvas* canvas, SubGhzViewReceiverModel* model) { #else canvas_draw_str(canvas, 79, 62, furi_string_get_cstr(model->preset_str)); #endif - if(!furi_string_empty(model->history_stat_str)) { - canvas_draw_str_aligned( - canvas, - 114, - 62, - AlignRight, - AlignBottom, - furi_string_get_cstr(model->history_stat_str)); - canvas_draw_icon(canvas, 116, 53, &I_sub1_10px); - } + canvas_draw_str(canvas, 96, 62, furi_string_get_cstr(model->history_stat_str)); canvas_set_font(canvas, FontSecondary); elements_bold_rounded_frame(canvas, 14, 8, 99, 48); elements_multiline_text(canvas, 65, 26, "To unlock\npress:"); @@ -428,16 +419,7 @@ void subghz_view_receiver_draw(Canvas* canvas, SubGhzViewReceiverModel* model) { #else canvas_draw_str(canvas, 79, 62, furi_string_get_cstr(model->preset_str)); #endif - if(!furi_string_empty(model->history_stat_str)) { - canvas_draw_str_aligned( - canvas, - 114, - 62, - AlignRight, - AlignBottom, - furi_string_get_cstr(model->history_stat_str)); - canvas_draw_icon(canvas, 116, 53, &I_sub1_10px); - } + canvas_draw_str(canvas, 96, 62, furi_string_get_cstr(model->history_stat_str)); } break; } } diff --git a/applications/services/rpc/rpc.c b/applications/services/rpc/rpc.c index 6d9f31da0..50c4b3608 100644 --- a/applications/services/rpc/rpc.c +++ b/applications/services/rpc/rpc.c @@ -87,7 +87,6 @@ struct RpcSession { struct Rpc { FuriMutex* busy_mutex; - size_t sessions_count; }; RpcOwner rpc_session_get_owner(RpcSession* session) { @@ -408,8 +407,6 @@ RpcSession* rpc_session_open(Rpc* rpc, RpcOwner owner) { furi_thread_start(session->thread); - rpc->sessions_count++; - return session; } @@ -417,8 +414,6 @@ void rpc_session_close(RpcSession* session) { furi_assert(session); furi_assert(session->rpc); - session->rpc->sessions_count--; - rpc_session_set_send_bytes_callback(session, NULL); rpc_session_set_close_callback(session, NULL); rpc_session_set_buffer_is_empty_callback(session, NULL); @@ -494,7 +489,3 @@ void rpc_send_and_release_empty(RpcSession* session, uint32_t command_id, PB_Com rpc_send_and_release(session, &message); pb_release(&PB_Main_msg, &message); } - -size_t rpc_get_sessions_count(Rpc* rpc) { - return rpc->sessions_count; -} diff --git a/applications/services/rpc/rpc.h b/applications/services/rpc/rpc.h index b1e7a4d47..863bca355 100644 --- a/applications/services/rpc/rpc.h +++ b/applications/services/rpc/rpc.h @@ -134,13 +134,6 @@ size_t rpc_session_feed(RpcSession* session, uint8_t* buffer, size_t size, uint3 */ size_t rpc_session_get_available_size(RpcSession* session); -/** Get number of open RPC sessions - * - * @param rpc instance - * @return sessions count - */ -size_t rpc_get_sessions_count(Rpc* rpc); - #ifdef __cplusplus } #endif \ No newline at end of file diff --git a/targets/f7/api_symbols.csv b/targets/f7/api_symbols.csv index 769763f81..3ab58f58d 100644 --- a/targets/f7/api_symbols.csv +++ b/targets/f7/api_symbols.csv @@ -2706,7 +2706,6 @@ Function,-,rintl,long double,long double Function,-,round,double,double Function,+,roundf,float,float Function,-,roundl,long double,long double -Function,+,rpc_get_sessions_count,size_t,Rpc* Function,+,rpc_session_close,void,RpcSession* Function,+,rpc_session_feed,size_t,"RpcSession*, uint8_t*, size_t, uint32_t" Function,+,rpc_session_get_available_size,size_t,RpcSession*