Add GPS support for SubGHz

This commit is contained in:
Sil333033
2023-10-05 23:14:58 +02:00
parent 6fcdeeb4bb
commit ad22f6a0ef
28 changed files with 1708 additions and 25 deletions

View File

@@ -97,12 +97,16 @@ void subghz_txrx_set_preset(
SubGhzTxRx* instance,
const char* preset_name,
uint32_t frequency,
float latitude,
float longitude,
uint8_t* preset_data,
size_t preset_data_size) {
furi_assert(instance);
furi_string_set(instance->preset->name, preset_name);
SubGhzRadioPreset* preset = instance->preset;
preset->frequency = frequency;
preset->latitude = latitude;
preset->longitude = longitude;
preset->data = preset_data;
preset->data_size = preset_data_size;
}
@@ -154,6 +158,20 @@ void subghz_txrx_get_frequency_and_modulation(
}
}
void subghz_txrx_get_latitude_and_longitude(
SubGhzTxRx* instance,
FuriString* latitude,
FuriString* longitude) {
furi_assert(instance);
SubGhzRadioPreset* preset = instance->preset;
if(latitude != NULL) {
furi_string_printf(latitude, "%f", (double)preset->latitude);
}
if(longitude != NULL) {
furi_string_printf(longitude, "%f", (double)preset->longitude);
}
}
static void subghz_txrx_begin(SubGhzTxRx* instance, uint8_t* preset_data) {
furi_assert(instance);
subghz_devices_reset(instance->radio_device);
@@ -680,7 +698,7 @@ void subghz_txrx_set_default_preset(SubGhzTxRx* instance, uint32_t frequency) {
if(frequency == 0) {
frequency = subghz_setting_get_default_frequency(subghz_txrx_get_setting(instance));
}
subghz_txrx_set_preset(instance, default_modulation, frequency, NULL, 0);
subghz_txrx_set_preset(instance, default_modulation, frequency, 0, 0, NULL, 0);
}
const char*
@@ -695,6 +713,8 @@ const char*
instance,
preset_name,
frequency,
0,
0,
subghz_setting_get_preset_data(setting, index),
subghz_setting_get_preset_data_size(setting, index));