From 4d842b5fae9f54fde1000266ff562b3d61957509 Mon Sep 17 00:00:00 2001 From: RocketGod <57732082+RocketGod-git@users.noreply.github.com> Date: Wed, 26 Mar 2025 07:56:27 -0700 Subject: [PATCH] Force 433.92 and remove metadata check (#2599) * Force 433.92 and remove metadata check: we already know the frequency for all files so don't need a million metadata files to match. * Variable fixes and move to header --- .../external/cvs_spam/cvs_spam.cpp | 37 +++++-------------- .../external/cvs_spam/cvs_spam.hpp | 3 ++ 2 files changed, 12 insertions(+), 28 deletions(-) diff --git a/firmware/application/external/cvs_spam/cvs_spam.cpp b/firmware/application/external/cvs_spam/cvs_spam.cpp index 3486d7192..862fe6b52 100644 --- a/firmware/application/external/cvs_spam/cvs_spam.cpp +++ b/firmware/application/external/cvs_spam/cvs_spam.cpp @@ -81,8 +81,6 @@ void CVSSpamView::start_tx(const uint32_t id) { return; } - const uint32_t sample_rate = 250000; - current_file = cvsfiles_dir / file_list[id].filename(); File capture_file; @@ -99,20 +97,13 @@ void CVSSpamView::start_tx(const uint32_t id) { return; } - auto metadata_path = get_metadata_path(current_file); - auto metadata = read_metadata_file(metadata_path); - if (!metadata) { - metadata = capture_metadata{transmitter_model.target_frequency(), sample_rate}; - } - - auto file_size = capture_file.size(); capture_file.close(); replay_thread.reset(); transmitter_model.disable(); ready_signal = false; - baseband::set_sample_rate(metadata->sample_rate, get_oversample_rate(metadata->sample_rate)); + baseband::set_sample_rate(SAMPLE_RATE, get_oversample_rate(SAMPLE_RATE)); auto reader = std::make_unique(); if (auto error = reader->open(current_file)) { @@ -120,10 +111,7 @@ void CVSSpamView::start_tx(const uint32_t id) { "Cannot read C16 data.\n" "Check file format/perms.\n" "Rate: " + - to_string_dec_uint(metadata->sample_rate) + - "\n" - "Size: " + - to_string_dec_uint(file_size) + + to_string_dec_uint(SAMPLE_RATE) + "\n" "Error: " + std::to_string(static_cast(error))); @@ -132,9 +120,9 @@ void CVSSpamView::start_tx(const uint32_t id) { progressbar.set_value(0); - transmitter_model.set_sampling_rate(get_actual_sample_rate(metadata->sample_rate)); - transmitter_model.set_baseband_bandwidth(metadata->sample_rate <= 500000 ? 1750000 : 2500000); - transmitter_model.set_target_frequency(metadata->center_frequency); + transmitter_model.set_sampling_rate(get_actual_sample_rate(SAMPLE_RATE)); + transmitter_model.set_baseband_bandwidth(SAMPLE_RATE <= 500000 ? 1750000 : 2500000); + transmitter_model.set_target_frequency(TARGET_FREQUENCY); transmitter_model.enable(); chThdSleepMilliseconds(100); @@ -164,7 +152,6 @@ void CVSSpamView::start_random_tx() { lfsr_v = lfsr_iterate(lfsr_v); size_t random_index = lfsr_v % file_list.size(); - const uint32_t sample_rate = 250000; current_file = cvsfiles_dir / file_list[random_index].filename(); File capture_file; @@ -174,19 +161,13 @@ void CVSSpamView::start_random_tx() { return; } - auto metadata_path = get_metadata_path(current_file); - auto metadata = read_metadata_file(metadata_path); - if (!metadata) { - metadata = capture_metadata{transmitter_model.target_frequency(), sample_rate}; - } - capture_file.close(); replay_thread.reset(); transmitter_model.disable(); ready_signal = false; - baseband::set_sample_rate(metadata->sample_rate, get_oversample_rate(metadata->sample_rate)); + baseband::set_sample_rate(SAMPLE_RATE, get_oversample_rate(SAMPLE_RATE)); auto reader = std::make_unique(); if (auto error = reader->open(current_file)) { @@ -196,9 +177,9 @@ void CVSSpamView::start_random_tx() { progressbar.set_value(0); - transmitter_model.set_sampling_rate(get_actual_sample_rate(metadata->sample_rate)); - transmitter_model.set_baseband_bandwidth(metadata->sample_rate <= 500000 ? 1750000 : 2500000); - transmitter_model.set_target_frequency(metadata->center_frequency); + transmitter_model.set_sampling_rate(get_actual_sample_rate(SAMPLE_RATE)); + transmitter_model.set_baseband_bandwidth(SAMPLE_RATE <= 500000 ? 1750000 : 2500000); + transmitter_model.set_target_frequency(TARGET_FREQUENCY); transmitter_model.enable(); chThdSleepMilliseconds(100); diff --git a/firmware/application/external/cvs_spam/cvs_spam.hpp b/firmware/application/external/cvs_spam/cvs_spam.hpp index 77320d4c7..b1528562f 100644 --- a/firmware/application/external/cvs_spam/cvs_spam.hpp +++ b/firmware/application/external/cvs_spam/cvs_spam.hpp @@ -16,6 +16,9 @@ using namespace portapack; namespace ui::external_app::cvs_spam { +constexpr uint32_t SAMPLE_RATE = 250000; +constexpr uint64_t TARGET_FREQUENCY = 433920000; + class CVSSpamView : public View { public: explicit CVSSpamView(NavigationView& nav);