1
mirror of https://github.com/DarkFlippers/unleashed-firmware.git synced 2025-12-12 12:42:30 +04:00

SubGhz - Add date of signal to *.sub files header

This commit is contained in:
Nikita Vostokov
2023-04-21 04:10:32 +03:00
parent 95e3b7d42b
commit 67a457dd1f
4 changed files with 68 additions and 0 deletions

View File

@@ -28,12 +28,28 @@ bool save_signal(ProtoViewApp* app, const char* filename) {
FuriString* file_content = furi_string_alloc();
const char* preset_id = ProtoViewModulations[app->modulation].id;
char str_date[30];
FuriHalRtcDateTime now;
furi_hal_rtc_get_datetime(&now);
snprintf(
str_date,
sizeof(str_date),
"%.4d/%.2d/%.2d %.2d:%.2d:%.2d",
now.year,
now.month,
now.day,
now.hour,
now.minute,
now.second);
furi_string_printf(
file_content,
"Filetype: Flipper SubGhz RAW File\n"
"Version: 1\n"
"Date: %s\n"
"Frequency: %ld\n"
"Preset: %s\n",
str_date,
app->frequency,
preset_id ? preset_id : "FuriHalSubGhzPresetCustom");

View File

@@ -37,6 +37,25 @@ SubGhzProtocolStatus subghz_block_generic_serialize(
break;
}
FuriHalRtcDateTime now;
furi_hal_rtc_get_datetime(&now);
// Format should be locale independent for transfer across devices with different locales
furi_string_printf(
temp_str,
"%.4d/%.2d/%.2d %.2d:%.2d:%.2d",
now.year,
now.month,
now.day,
now.hour,
now.minute,
now.second);
if(!flipper_format_write_string_cstr(
flipper_format, "Date", furi_string_get_cstr(temp_str))) {
FURI_LOG_E(TAG, "Unable to add Date");
res = SubGhzProtocolStatusError;
break;
}
if(!flipper_format_write_uint32(flipper_format, "Frequency", &preset->frequency, 1)) {
FURI_LOG_E(TAG, "Unable to add Frequency");
res = SubGhzProtocolStatusErrorParserFrequency;
@@ -93,6 +112,7 @@ SubGhzProtocolStatus subghz_block_generic_serialize(
uint32_t temp = (instance->data_2 >> 4) & 0xFFFFF;
if(!flipper_format_write_uint32(flipper_format, "Data", &temp, 1)) {
FURI_LOG_E(TAG, "Unable to add Data");
res = SubGhzProtocolStatusError;
break;
}
}

View File

@@ -987,6 +987,25 @@ SubGhzProtocolStatus subghz_protocol_decoder_bin_raw_serialize(
break;
}
FuriHalRtcDateTime now;
furi_hal_rtc_get_datetime(&now);
// Format should be locale independent for transfer across devices with different locales
furi_string_printf(
temp_str,
"%.4d/%.2d/%.2d %.2d:%.2d:%.2d",
now.year,
now.month,
now.day,
now.hour,
now.minute,
now.second);
if(!flipper_format_write_string_cstr(
flipper_format, "Date", furi_string_get_cstr(temp_str))) {
FURI_LOG_E(TAG, "Unable to add Date");
res = SubGhzProtocolStatusError;
break;
}
if(!flipper_format_write_uint32(flipper_format, "Frequency", &preset->frequency, 1)) {
FURI_LOG_E(TAG, "Unable to add Frequency");
res = SubGhzProtocolStatusErrorParserFrequency;

View File

@@ -126,6 +126,19 @@ bool subghz_protocol_raw_save_to_file_init(
break;
}
FuriHalRtcDateTime now;
furi_hal_rtc_get_datetime(&now);
// Format should be locale independent for transfer across devices with different locales
furi_string_printf(
temp_str,
"%.4d/%.2d/%.2d %.2d:%.2d:%.2d",
now.year,
now.month,
now.day,
now.hour,
now.minute,
now.second);
if(!flipper_format_write_uint32(
instance->flipper_file, "Frequency", &preset->frequency, 1)) {
FURI_LOG_E(TAG, "Unable to add Frequency");