Subghz filename with time of receive not save

This commit is contained in:
Willy-JL
2024-01-24 02:23:07 +00:00
parent 7e7509d481
commit a1c7dc5eaa
5 changed files with 33 additions and 7 deletions

View File

@@ -181,6 +181,9 @@ bool subghz_scene_receiver_info_on_event(void* context, SceneManagerEvent event)
if(subghz_txrx_protocol_is_serializable(subghz->txrx)) {
subghz_file_name_clear(subghz);
subghz->save_datetime =
subghz_history_get_datetime(subghz->history, subghz->idx_menu_chosen);
subghz->save_datetime_set = true;
scene_manager_next_scene(subghz->scene_manager, SubGhzSceneSaveName);
}
return true;

View File

@@ -23,16 +23,18 @@ void subghz_scene_save_name_on_enter(void* context) {
FuriString* dir_name = furi_string_alloc();
char file_name_buf[SUBGHZ_MAX_LEN_NAME] = {0};
FuriHalRtcDateTime* datetime = subghz->save_datetime_set ? &subghz->save_datetime : NULL;
subghz->save_datetime_set = false;
if(!subghz_path_is_file(subghz->file_path)) {
SubGhzProtocolDecoderBase* decoder_result = subghz_txrx_get_decoder(subghz->txrx);
if(subghz->last_settings->protocol_file_names && decoder_result != NULL &&
strlen(decoder_result->protocol->name) != 0 &&
!scene_manager_has_previous_scene(subghz->scene_manager, SubGhzSceneSetType)) {
name_generator_make_auto(
file_name_buf, SUBGHZ_MAX_LEN_NAME, decoder_result->protocol->name);
name_generator_make_auto_datetime(
file_name_buf, SUBGHZ_MAX_LEN_NAME, decoder_result->protocol->name, datetime);
} else {
name_generator_make_auto(
file_name_buf, SUBGHZ_MAX_LEN_NAME, SUBGHZ_APP_FILENAME_PREFIX);
name_generator_make_auto_datetime(
file_name_buf, SUBGHZ_MAX_LEN_NAME, SUBGHZ_APP_FILENAME_PREFIX, datetime);
}
furi_string_set(file_name, file_name_buf);
furi_string_set(subghz->file_path, SUBGHZ_APP_FOLDER);
@@ -49,10 +51,11 @@ void subghz_scene_save_name_on_enter(void* context) {
SubGhzCustomEventManagerSetRAW) {
dev_name_empty = true;
if(subghz->last_settings->protocol_file_names) {
name_generator_make_auto(file_name_buf, SUBGHZ_MAX_LEN_NAME, "RAW");
name_generator_make_auto_datetime(
file_name_buf, SUBGHZ_MAX_LEN_NAME, "RAW", datetime);
} else {
name_generator_make_auto(
file_name_buf, SUBGHZ_MAX_LEN_NAME, SUBGHZ_APP_FILENAME_PREFIX);
name_generator_make_auto_datetime(
file_name_buf, SUBGHZ_MAX_LEN_NAME, SUBGHZ_APP_FILENAME_PREFIX, datetime);
}
furi_string_set(file_name, file_name_buf);
}

View File

@@ -163,6 +163,16 @@ const char* subghz_history_get_protocol_name(SubGhzHistory* instance, uint16_t i
return furi_string_get_cstr(instance->tmp_string);
}
FuriHalRtcDateTime subghz_history_get_datetime(SubGhzHistory* instance, uint16_t idx) {
furi_assert(instance);
SubGhzHistoryItem* item = SubGhzHistoryItemArray_get(instance->history->data, idx);
if(item) {
return item->datetime;
} else {
return (FuriHalRtcDateTime){};
}
}
FlipperFormat* subghz_history_get_raw_data(SubGhzHistory* instance, uint16_t idx) {
furi_assert(instance);
SubGhzHistoryItem* item = SubGhzHistoryItemArray_get(instance->history->data, idx);

View File

@@ -86,6 +86,14 @@ uint8_t subghz_history_get_type_protocol(SubGhzHistory* instance, uint16_t idx);
*/
const char* subghz_history_get_protocol_name(SubGhzHistory* instance, uint16_t idx);
/** Get datetime to history[idx]
*
* @param instance - SubGhzHistory instance
* @param idx - record index
* @return datetime - FuriHalRtcDateTime received timestamp
*/
FuriHalRtcDateTime subghz_history_get_datetime(SubGhzHistory* instance, uint16_t idx);
/** Get string item menu to history[idx]
*
* @param instance - SubGhzHistory instance

View File

@@ -101,6 +101,8 @@ struct SubGhz {
uint16_t idx_menu_chosen;
SubGhzLoadTypeFile load_type_file;
bool save_datetime_set;
FuriHalRtcDateTime save_datetime;
bool fav_timeout;
FuriTimer* timer;