From 685e4c6e4b07d5d0879462a011aeab2a18506446 Mon Sep 17 00:00:00 2001 From: furrtek Date: Thu, 23 Mar 2017 21:28:21 +0000 Subject: [PATCH] Added more SSTV modes A bit more work done on Replay (still not enabled) --- firmware/application/bitmap.hpp | 22 ++++++ firmware/application/file.hpp | 1 + firmware/application/main.cpp | 3 +- firmware/application/replay_app.cpp | 35 ++++----- firmware/application/replay_app.hpp | 22 ++---- firmware/application/ui_navigation.cpp | 4 +- firmware/application/ui_replay_view.cpp | 73 +++++++++++------- firmware/application/ui_replay_view.hpp | 51 +++++++------ firmware/application/ui_sstvtx.cpp | 96 ++++++++++++++++-------- firmware/application/ui_sstvtx.hpp | 23 ++++-- firmware/baseband/proc_replay.cpp | 16 ++-- firmware/baseband/proc_replay.hpp | 10 +-- firmware/baseband/proc_sstvtx.cpp | 42 +++++------ firmware/baseband/proc_sstvtx.hpp | 8 +- firmware/baseband/stream_output.cpp | 2 +- firmware/baseband/stream_output.hpp | 7 +- firmware/common/sstv.hpp | 45 ++++++++++- firmware/graphics/play.png | Bin 0 -> 116 bytes firmware/portapack-h1-havoc.bin | Bin 845840 -> 847616 bytes 19 files changed, 288 insertions(+), 172 deletions(-) create mode 100644 firmware/graphics/play.png diff --git a/firmware/application/bitmap.hpp b/firmware/application/bitmap.hpp index 501980021..35951eff9 100644 --- a/firmware/application/bitmap.hpp +++ b/firmware/application/bitmap.hpp @@ -175,6 +175,28 @@ static constexpr Bitmap bitmap_sd_card_unknown { { 16, 16 }, bitmap_sd_card_unknown_data }; +static constexpr uint8_t bitmap_play_data[] = { + 0x00, 0x00, + 0x00, 0x00, + 0x0C, 0x00, + 0x3C, 0x00, + 0xFC, 0x00, + 0xFC, 0x03, + 0xFC, 0x0F, + 0xFC, 0x3F, + 0xFC, 0x3F, + 0xFC, 0x0F, + 0xFC, 0x03, + 0xFC, 0x00, + 0x3C, 0x00, + 0x0C, 0x00, + 0x00, 0x00, + 0x00, 0x00, +}; +static constexpr Bitmap bitmap_play { + { 16, 16 }, bitmap_play_data +}; + static constexpr uint8_t bitmap_icon_stealth_data[] = { 0x00, 0x00, 0x00, 0x00, diff --git a/firmware/application/file.hpp b/firmware/application/file.hpp index f011252d1..75d824907 100644 --- a/firmware/application/file.hpp +++ b/firmware/application/file.hpp @@ -319,6 +319,7 @@ public: Result write(const void* const data, const Size bytes_to_write); Result seek(const uint64_t Offset); + Size size(); template Result write(const std::array& data) { diff --git a/firmware/application/main.cpp b/firmware/application/main.cpp index 931e479f8..09ca84cc2 100755 --- a/firmware/application/main.cpp +++ b/firmware/application/main.cpp @@ -23,13 +23,13 @@ // Color bitmaps generated with: // Gimp image > indexed colors (16), then "xxd -i *.bmp" -//BUG: Length is wrong in soundboard for long files (> 1min ?) //BUG: RDS Radiotext is not recognized in Redsea (and car radio) //BUG: RDS doesn't stop baseband when stopping tx ? //BUG: Check AFSK transmit end, skips last bits ? //TEST: Imperial in whipcalc +//TODO: IQ replay //TODO: Optimize (and group ?) CTCSS tone gen code //TODO: Morse use prosigns //TODO: Morse live keying mode ? @@ -49,7 +49,6 @@ Continuous (Fox-oring) //TODO: Script engine ? //TODO: Close Call multiple slices (buggy) //TODO: Finish EPAR tx -//TODO: IQ replay //TODO: Wav visualizer //TODO: File browser view ? diff --git a/firmware/application/replay_app.cpp b/firmware/application/replay_app.cpp index 01f8edf14..c84ec945e 100644 --- a/firmware/application/replay_app.cpp +++ b/firmware/application/replay_app.cpp @@ -21,6 +21,7 @@ */ #include "replay_app.hpp" +#include "string_format.hpp" #include "baseband_api.hpp" @@ -32,20 +33,31 @@ using namespace portapack; namespace ui { -ReplayAppView::ReplayAppView(NavigationView& nav) { - baseband::run_image(portapack::spi_flash::image_tag_replay); +ReplayAppView::ReplayAppView( + NavigationView& nav +) : nav_ (nav) +{ + std::vector file_list; + + // Search for files + file_list = scan_root_files(u"/", u"*.C16"); + if (!file_list.size()) { + file_error = true; + return; + } + + //baseband::run_image(portapack::spi_flash::image_tag_replay); add_children({ - &channel, &field_frequency, &field_frequency_step, &field_rf_amp, - &field_lna, - &field_vga, &replay_view, &waterfall, }); - + + replay_view.set_file_list(file_list); + field_frequency.set_value(target_frequency()); field_frequency.set_step(receiver_model.frequency_step()); field_frequency.on_change = [this](rf::Frequency f) { @@ -66,17 +78,6 @@ ReplayAppView::ReplayAppView(NavigationView& nav) { this->field_frequency.set_step(v); }; - radio::enable({ - target_frequency(), - sampling_rate, - baseband_bandwidth, - rf::Direction::Transmit, - receiver_model.rf_amp(), - static_cast(receiver_model.lna()), - static_cast(receiver_model.vga()) - }); - - replay_view.set_sampling_rate(sampling_rate / 8); replay_view.on_error = [&nav](std::string message) { nav.display_modal("Error", message); }; diff --git a/firmware/application/replay_app.hpp b/firmware/application/replay_app.hpp index 8d86e5133..b5f7ebd67 100644 --- a/firmware/application/replay_app.hpp +++ b/firmware/application/replay_app.hpp @@ -45,9 +45,13 @@ public: void focus() override; - std::string title() const override { return "Capture"; }; + std::string title() const override { return "Replay (beta)"; }; private: + NavigationView& nav_; + + bool file_error { false }; + static constexpr ui::Dim header_height = 2 * 16; static constexpr uint32_t sampling_rate = 4000000; @@ -58,10 +62,6 @@ private: rf::Frequency target_frequency() const; void set_target_frequency(const rf::Frequency new_value); - Channel channel { - { 24 * 8, 5, 6 * 8, 4 }, - }; - FrequencyField field_frequency { { 0 * 8, 0 * 16 }, }; @@ -74,20 +74,12 @@ private: { 16 * 8, 0 * 16 } }; - LNAGainField field_lna { - { 18 * 8, 0 * 16 } - }; - - VGAGainField field_vga { - { 21 * 8, 0 * 16 } - }; - ReplayView replay_view { { 0 * 8, 1 * 16, 30 * 8, 1 * 16 }, - "BBD_????", ReplayView::FileType::RawS16, 16384, 3 + 16384, 3 }; - spectrum::WaterfallWidget waterfall; + spectrum::WaterfallWidget waterfall { }; }; } /* namespace ui */ diff --git a/firmware/application/ui_navigation.cpp b/firmware/application/ui_navigation.cpp index 11d0be14f..034cad0f7 100644 --- a/firmware/application/ui_navigation.cpp +++ b/firmware/application/ui_navigation.cpp @@ -358,10 +358,10 @@ SystemMenuView::SystemMenuView(NavigationView& nav) { { "Play dead", ui::Color::red(), &bitmap_icon_playdead, [&nav](){ nav.push(); } }, { "Receivers", ui::Color::cyan(), &bitmap_icon_receivers, [&nav](){ nav.push(); } }, { "Capture", ui::Color::blue(), &bitmap_icon_capture, [&nav](){ nav.push(); } }, - { "Replay", ui::Color::grey(), &bitmap_icon_replay, [&nav](){ nav.push(); } }, + { "Replay", ui::Color::grey(), &bitmap_icon_replay, [&nav](){ nav.push(); } }, // ReplayAppView { "Audio transmitters", ui::Color::green(), &bitmap_icon_audiotx, [&nav](){ nav.push(); } }, { "Code transmitters", ui::Color::green(), &bitmap_icon_codetx, [&nav](){ nav.push(); } }, - { "SSTV transmitter", ui::Color::dark_orange(), &bitmap_icon_sstv, [&nav](){ nav.push(); } }, + { "SSTV transmitter", ui::Color::dark_green(), &bitmap_icon_sstv, [&nav](){ nav.push(); } }, { "Close Call", ui::Color::cyan(), &bitmap_icon_closecall, [&nav](){ nav.push(); } }, { "Jammer", ui::Color::orange(),&bitmap_icon_jammer, [&nav](){ nav.push(); } }, { "Utilities", ui::Color::purple(),&bitmap_icon_utilities, [&nav](){ nav.push(); } }, diff --git a/firmware/application/ui_replay_view.cpp b/firmware/application/ui_replay_view.cpp index f597e6446..d31a6b9d7 100644 --- a/firmware/application/ui_replay_view.cpp +++ b/firmware/application/ui_replay_view.cpp @@ -37,28 +37,38 @@ using namespace portapack; namespace ui { +void ReplayView::on_file_changed(const uint32_t duration) { + std::string str_duration = ""; + + if (duration >= 60) + str_duration = to_string_dec_uint(duration / 60) + "m"; + + text_duration.set(str_duration + to_string_dec_uint(duration % 60) + "s"); +} + ReplayView::ReplayView( const Rect parent_rect, - std::string filename, - const FileType file_type, const size_t read_size, const size_t buffer_count ) : View { parent_rect }, - filename { filename }, - file_type { file_type }, read_size { read_size }, buffer_count { buffer_count } { add_children({ &rect_background, - &button_record, - &text_replay_filename, - &text_time_seek, + &button_play, + &options_files, + &text_duration, + //&text_time_seek, }); rect_background.set_parent_rect({ { 0, 0 }, size() }); - button_record.on_select = [this](ImageButton&) { + options_files.on_change = [this](size_t, int32_t duration) { + this->on_file_changed(duration); + }; + + button_play.on_select = [this](ImageButton&) { this->toggle(); }; @@ -72,21 +82,22 @@ ReplayView::~ReplayView() { } void ReplayView::focus() { - button_record.focus(); + options_files.focus(); } -void ReplayView::set_sampling_rate(const size_t new_sampling_rate) { - if( new_sampling_rate != sampling_rate ) { - stop(); - sampling_rate = new_sampling_rate; - - button_record.hidden(sampling_rate == 0); - text_replay_filename.hidden(sampling_rate == 0); - text_time_seek.hidden(sampling_rate == 0); - rect_background.hidden(sampling_rate != 0); - - update_status_display(); +void ReplayView::set_file_list(const std::vector& file_list) { + File bbd_file; + uint32_t duration; + + for (const auto& file : file_list) { + bbd_file.open("/" + file.string()); + duration = bbd_file.size() / (2 * 2 * (sampling_rate / 8)); + file_options.emplace_back(file.string().substr(0, 8), duration); } + options_files.set_options(file_options); + options_files.set_selected_index(0); // First file + on_file_changed(file_options[0].second); + } bool ReplayView::is_active() const { @@ -104,17 +115,10 @@ void ReplayView::toggle() { void ReplayView::start() { stop(); - text_replay_filename.set(""); - - if( sampling_rate == 0 ) { - return; - } - auto reader = std::make_unique(); if( reader ) { - text_replay_filename.set(filename.string()); - button_record.set_bitmap(&bitmap_stop); + button_play.set_bitmap(&bitmap_stop); replay_thread = std::make_unique( std::move(reader), read_size, buffer_count, @@ -130,12 +134,23 @@ void ReplayView::start() { } update_status_display(); + + radio::enable({ + 460000000, //target_frequency(), + 4000000, //sampling_rate, + 2500000, //baseband_bandwidth, + rf::Direction::Transmit, + receiver_model.rf_amp(), + static_cast(receiver_model.lna()), + static_cast(receiver_model.vga()) + }); } void ReplayView::stop() { if( is_active() ) { replay_thread.reset(); - button_record.set_bitmap(&bitmap_record); + radio::disable(); + button_play.set_bitmap(&bitmap_play); } update_status_display(); diff --git a/firmware/application/ui_replay_view.hpp b/firmware/application/ui_replay_view.hpp index ad35f0663..b0ff71a61 100644 --- a/firmware/application/ui_replay_view.hpp +++ b/firmware/application/ui_replay_view.hpp @@ -37,17 +37,10 @@ namespace ui { class ReplayView : public View { public: - std::function on_error; - - enum FileType { - RawS16 = 2, - WAV = 3, - }; + std::function on_error { }; ReplayView( const Rect parent_rect, - std::string filename, - FileType file_type, const size_t read_size, const size_t buffer_count ); @@ -55,7 +48,7 @@ public: void focus() override; - void set_sampling_rate(const size_t new_sampling_rate); + void set_file_list(const std::vector& file_list); void start(); void stop(); @@ -63,43 +56,53 @@ public: bool is_active() const; private: + using option_t = std::pair; + using options_t = std::vector; + + static constexpr uint32_t sampling_rate = 4000000; + void toggle(); + void on_file_changed(const uint32_t duration); void on_tick_second(); void update_status_display(); void handle_replay_thread_done(const File::Error error); void handle_error(const File::Error error); - const std::filesystem::path filename; - const FileType file_type; const size_t read_size; const size_t buffer_count; - size_t sampling_rate { 0 }; - SignalToken signal_token_tick_second; + SignalToken signal_token_tick_second { }; + options_t file_options { }; Rectangle rect_background { Color::black() }; - ImageButton button_record { - { 4 * 8, 0 * 16, 2 * 8, 1 * 16 }, - &bitmap_record, - Color::red(), + ImageButton button_play { + { 0 * 8, 0 * 16, 2 * 8, 1 * 16 }, + &bitmap_play, + Color::green(), Color::black() }; - Text text_replay_filename { - { 7 * 8, 0 * 16, 8 * 8, 16 }, - "", + OptionsField options_files { + { 2 * 8, 0 * 8 }, + 8, + { } + }; + + Text text_duration { + { 11 * 8, 0 * 8, 12 * 8, 16 }, + "-" }; - Text text_time_seek { - { 21 * 8, 0 * 16, 9 * 8, 16 }, + /*Text text_time_seek { + { 18 * 8, 0 * 16, 9 * 8, 16 }, "", - }; + };*/ - std::unique_ptr replay_thread; + std::unique_ptr replay_thread { }; MessageHandlerRegistration message_handler_capture_thread_error { Message::ID::CaptureThreadDone, diff --git a/firmware/application/ui_sstvtx.cpp b/firmware/application/ui_sstvtx.cpp index 9117e3c80..01bdb3c7a 100644 --- a/firmware/application/ui_sstvtx.cpp +++ b/firmware/application/ui_sstvtx.cpp @@ -99,6 +99,7 @@ void SSTVTXView::on_tuning_frequency_changed(rf::Frequency f) { void SSTVTXView::prepare_scanline() { sstv_scanline scanline_buffer; uint32_t component, pixel_idx; + uint8_t offset; if (scanline_counter >= (256 * 3)) { progressbar.set_value(0); @@ -122,31 +123,33 @@ void SSTVTXView::prepare_scanline() { // Scanline time: 88.064ms (275.2us/pixel @ 320 pixels/line) component = scanline_counter % 3; - - if ((!scanline_counter) || (component == 2)) { + + if ((!scanline_counter && tx_sstv_mode->sync_on_first) || (component == tx_sstv_mode->sync_index)) { + // Sync scanline_buffer.start_tone.frequency = SSTV_F2D(1200); - scanline_buffer.start_tone.duration = SSTV_MS2S(9); - } else + scanline_buffer.start_tone.duration = tx_sstv_mode->samples_per_sync; + scanline_buffer.gap_tone.frequency = SSTV_F2D(1500); + scanline_buffer.gap_tone.duration = tx_sstv_mode->samples_per_gap; + } else { + // Regular scanline scanline_buffer.start_tone.duration = 0; + if (tx_sstv_mode->gaps) { + scanline_buffer.gap_tone.frequency = SSTV_F2D(1500); + scanline_buffer.gap_tone.duration = tx_sstv_mode->samples_per_gap; + } + } - scanline_buffer.gap_tone.frequency = SSTV_F2D(1500); - scanline_buffer.gap_tone.duration = SSTV_MS2S(1.5); - - if (component == 0) { + if (!component) { // Read a new line read_boundary(pixels_buffer, bmp_header.image_data + ((255 - (scanline_counter / 3)) * sizeof(pixels_buffer)), sizeof(pixels_buffer)); } + offset = component_map[component]; for (uint32_t bmp_px = 0; bmp_px < 320; bmp_px++) { pixel_idx = bmp_px * 3; - if (component == 0) - scanline_buffer.luma[bmp_px] = pixels_buffer[pixel_idx + 1]; // Green - else if (component == 1) - scanline_buffer.luma[bmp_px] = pixels_buffer[pixel_idx]; // Blue - else - scanline_buffer.luma[bmp_px] = pixels_buffer[pixel_idx + 2]; // Red + scanline_buffer.luma[bmp_px] = pixels_buffer[pixel_idx + offset]; } baseband::set_fifo_data((int8_t *)&scanline_buffer); @@ -155,15 +158,12 @@ void SSTVTXView::prepare_scanline() { } void SSTVTXView::start_tx() { - // Baseband SSTV TX code should have a 2 scanlines buffer, and ask - // for fill-up when there's 1 or less remaining. This should leave - // enough time for the code here to generate the scanline data - // before tx. See sstv.hpp: - - // Scottie 2 is 320x256 px + // The baseband SSTV TX code (proc_sstv) has a 2-scanline buffer. It is preloaded before + // TX start, and asks for fill-up when a new scanline starts being read. This should + // leave enough time for the code in prepare_scanline() before it ends. scanline_counter = 0; - prepare_scanline(); + prepare_scanline(); // Preload one scanline transmitter_model.set_sampling_rate(3072000U); transmitter_model.set_rf_amp(true); @@ -171,8 +171,8 @@ void SSTVTXView::start_tx() { transmitter_model.enable(); baseband::set_sstv_data( - 0b00011101, // Scottie 2, 275.2us/px - (uint32_t)(0.0002752 * 3072000.0) + tx_sstv_mode->vis_code, + tx_sstv_mode->samples_per_pixel ); // Todo: Find a better way to prevent user from changing bitmap during tx @@ -180,13 +180,31 @@ void SSTVTXView::start_tx() { tx_view.focus(); } -void SSTVTXView::on_bitmap_changed(size_t index) { +void SSTVTXView::on_bitmap_changed(const size_t index) { bmp_file.open("/sstv/" + bitmaps[index].string()); bmp_file.read(&bmp_header, sizeof(bmp_header)); - progressbar.set_max(256 * 3); set_dirty(); } +void SSTVTXView::on_mode_changed(const size_t index) { + sstv_color_seq tx_color_sequence; + + tx_sstv_mode = &sstv_modes[index]; + + tx_color_sequence = sstv_modes[index].color_sequence; + if (tx_color_sequence == SSTV_COLOR_RGB) { + component_map[0] = 2; + component_map[1] = 1; + component_map[2] = 0; + } else if (tx_color_sequence == SSTV_COLOR_GBR) { + component_map[0] = 1; + component_map[1] = 0; + component_map[2] = 2; + } + + progressbar.set_max(sstv_modes[index].lines * 3); +} + SSTVTXView::SSTVTXView( NavigationView& nav ) : nav_ (nav) @@ -195,7 +213,9 @@ SSTVTXView::SSTVTXView( using option_t = std::pair; using options_t = std::vector; options_t bitmap_options; - + options_t mode_options; + uint32_t c; + // Search for valid bitmaps file_list = scan_root_files(u"/sstv", u"*.bmp"); if (!file_list.size()) { @@ -205,11 +225,11 @@ SSTVTXView::SSTVTXView( for (const auto& file_name : file_list) { if (!bmp_file.open("/sstv/" + file_name.string()).is_valid()) { bmp_file.read(&bmp_header, sizeof(bmp_header)); - if ((bmp_header.signature == 0x4D42) && - (bmp_header.width == 320) && // Must be == 320x256 pixels for now + if ((bmp_header.signature == 0x4D42) && // "BM" + (bmp_header.width == 320) && // Must be exactly 320x256 pixels for now (bmp_header.height == 256) && (bmp_header.planes == 1) && - (bmp_header.bpp >= 24) && // 24 or 32 bpp + (bmp_header.bpp == 24) && // 24 bpp only (bmp_header.compression == 0)) { // No compression bitmaps.push_back(file_name); } @@ -227,21 +247,33 @@ SSTVTXView::SSTVTXView( add_children({ &labels, &options_bitmaps, - &text_mode, + &options_modes, &progressbar, &tx_view }); + // Populate file list for (const auto& bitmap : bitmaps) bitmap_options.emplace_back(bitmap.string().substr(0, 16), 0); - options_bitmaps.set_options(bitmap_options); + + // Populate mode list + for (c = 0; c < SSTV_MODES_NB; c++) + mode_options.emplace_back(sstv_modes[c].name, c); + options_modes.set_options(mode_options); + options_bitmaps.on_change = [this](size_t i, int32_t) { this->on_bitmap_changed(i); }; - options_bitmaps.set_selected_index(0); + options_bitmaps.set_selected_index(0); // First file on_bitmap_changed(0); + options_modes.on_change = [this](size_t i, int32_t) { + this->on_mode_changed(i); + }; + options_modes.set_selected_index(1); // Scottie 2 + on_mode_changed(1); + tx_view.on_edit_frequency = [this, &nav]() { auto new_view = nav.push(receiver_model.tuning_frequency()); new_view->on_changed = [this](rf::Frequency f) { diff --git a/firmware/application/ui_sstvtx.hpp b/firmware/application/ui_sstvtx.hpp index c83b8e49e..8c3206800 100644 --- a/firmware/application/ui_sstvtx.hpp +++ b/firmware/application/ui_sstvtx.hpp @@ -43,6 +43,11 @@ class SSTVTXView : public View { public: SSTVTXView(NavigationView& nav); ~SSTVTXView(); + + SSTVTXView(const SSTVTXView&) = delete; + SSTVTXView(SSTVTXView&&) = delete; + SSTVTXView& operator=(const SSTVTXView&) = delete; + SSTVTXView& operator=(SSTVTXView&&) = delete; void focus() override; void paint(Painter&) override; @@ -54,21 +59,26 @@ private: sstv_scanline scanline_buffer { }; + bool file_error { false }; File bmp_file { }; bmp_header_t bmp_header { }; std::vector bitmaps { }; - bool file_error { false }; uint32_t scanline_counter { 0 }; uint8_t pixels_buffer[320 * 3]; // 320 pixels @ 24bpp + const sstv_mode * tx_sstv_mode { }; + + uint8_t component_map[3] { }; void read_boundary(uint8_t * buffer, uint32_t position, uint32_t length); - void on_bitmap_changed(size_t index); + void on_bitmap_changed(const size_t index); + void on_mode_changed(const size_t index); void on_tuning_frequency_changed(rf::Frequency f); void start_tx(); void prepare_scanline(); Labels labels { - { { 1 * 8, 1 * 8 }, "File:", Color::light_grey() } + { { 1 * 8, 1 * 8 }, "File:", Color::light_grey() }, + { { 1 * 8, 3 * 8 }, "Mode:", Color::light_grey() } }; OptionsField options_bitmaps { @@ -76,9 +86,10 @@ private: 16, { } }; - Text text_mode { - { 2 * 8, 4 * 8, 16 * 8, 16 }, - "Scottie 2" + OptionsField options_modes { + { 6 * 8, 3 * 8 }, + 16, + { } }; ProgressBar progressbar { diff --git a/firmware/baseband/proc_replay.cpp b/firmware/baseband/proc_replay.cpp index 34e7b78e7..9cf936a54 100644 --- a/firmware/baseband/proc_replay.cpp +++ b/firmware/baseband/proc_replay.cpp @@ -39,13 +39,17 @@ void ReplayProcessor::execute(const buffer_c8_t& buffer) { //const auto& decimator_out = decim_1_out; //const auto& channel = decimator_out; - //if( stream ) { - // const size_t bytes_to_write = sizeof(*decimator_out.p) * decimator_out.count; - // const auto result = stream->write(decimator_out.p, bytes_to_write); - //} + if( stream ) { + const size_t bytes_to_read = buffer.count; // ? + const auto result = stream->read(iq_buffer.p, bytes_to_read); + } //feed_channel_stats(channel); - + + for (size_t i = 0; i < buffer.count; i++) { + buffer.p[i] = { iq_buffer.p[i].real() >> 8, iq_buffer.p[i].imag() >> 8}; + } + /*spectrum_samples += channel.count; if( spectrum_samples >= spectrum_interval_samples ) { spectrum_samples -= spectrum_interval_samples; @@ -60,7 +64,7 @@ void ReplayProcessor::on_message(const Message* const message) { channel_spectrum.on_message(message); break;*/ - case Message::ID::ReplayConfig: + case Message::ID::CaptureConfig: replay_config(*reinterpret_cast(message)); break; diff --git a/firmware/baseband/proc_replay.hpp b/firmware/baseband/proc_replay.hpp index 34317845b..2e15c0892 100644 --- a/firmware/baseband/proc_replay.hpp +++ b/firmware/baseband/proc_replay.hpp @@ -52,13 +52,13 @@ private: BasebandThread baseband_thread { baseband_fs, this, NORMALPRIO + 20, baseband::Direction::Transmit }; //RSSIThread rssi_thread { NORMALPRIO + 10 }; - std::array dst; - const buffer_c16_t dst_buffer { - dst.data(), - dst.size() + std::array iq { }; + const buffer_c16_t iq_buffer { + iq.data(), + iq.size() }; - std::unique_ptr stream; + std::unique_ptr stream { }; /*SpectrumCollector channel_spectrum; size_t spectrum_interval_samples = 0; diff --git a/firmware/baseband/proc_sstvtx.cpp b/firmware/baseband/proc_sstvtx.cpp index c1f5e1117..e11ede10e 100644 --- a/firmware/baseband/proc_sstvtx.cpp +++ b/firmware/baseband/proc_sstvtx.cpp @@ -40,7 +40,7 @@ void SSTVTXProcessor::execute(const buffer_c8_t& buffer) { // of the scanline. Todo: simplify ! if (state == STATE_CALIBRATION) { - // Once per scanline + // Once per picture tone_delta = calibration_sequence[substep].first; sample_count = calibration_sequence[substep].second; if (substep == 2) { @@ -49,17 +49,15 @@ void SSTVTXProcessor::execute(const buffer_c8_t& buffer) { } else substep++; } else if (state == STATE_VIS) { - // Once per scanline + // Once per picture if (substep == 10) { current_scanline = &scanline_buffer[buffer_flip]; buffer_flip ^= 1; - if (asked == false) { - // Ask application for a new scanline - shared_memory.application_queue.push(sig_message); - asked = true; - } + // Ask application for a new scanline + shared_memory.application_queue.push(sig_message); + // Do we have to transmit a start tone ? if (current_scanline->start_tone.duration) { - state = STATE_START; + state = STATE_SYNC; tone_delta = current_scanline->start_tone.frequency; sample_count = current_scanline->start_tone.duration; } else { @@ -69,23 +67,19 @@ void SSTVTXProcessor::execute(const buffer_c8_t& buffer) { } } else { tone_delta = vis_code_sequence[substep]; - sample_count = SSTV_MS2S(30); // VIS code bit is 30ms + sample_count = SSTV_MS2S(30); // A VIS code bit is 30ms substep++; } - } else if (state == STATE_START) { + } else if (state == STATE_SYNC) { // Once per scanline, optional state = STATE_PIXELS; tone_delta = current_scanline->gap_tone.frequency; sample_count = current_scanline->gap_tone.duration; } else if (state == STATE_PIXELS) { // Many times per scanline - pixel_luma = current_scanline->luma[pixel_index]; - - pixel_index++; - - tone_delta = SSTV_F2D(1500 + ((pixel_luma * 800) / 256)); - + tone_delta = SSTV_F2D(1500 + ((current_scanline->luma[pixel_index] * 800) / 256)); sample_count = pixel_duration; + pixel_index++; if (pixel_index >= 320) { // Scanline done, (dirty) state jump @@ -98,6 +92,7 @@ void SSTVTXProcessor::execute(const buffer_c8_t& buffer) { sample_count--; } + // Tone synth tone_sample = (sine_table_i8[(tone_phase & 0xFF000000U) >> 24]); tone_phase += tone_delta; @@ -116,29 +111,27 @@ void SSTVTXProcessor::execute(const buffer_c8_t& buffer) { void SSTVTXProcessor::on_message(const Message* const msg) { const auto message = *reinterpret_cast(msg); + uint8_t vis_code; switch(msg->id) { case Message::ID::SSTVConfigure: pixel_duration = message.pixel_duration; if (!pixel_duration) { - configured = false; + configured = false; // Shutdown return; } vis_code = message.vis_code; // VIS code: - // 1200 - // 00011101 (0=1300, 1=1100) - // 1200 + // 1200, (0=1300, 1=1100), 1200 vis_code_sequence[0] = SSTV_VIS_SS; - for (uint32_t c = 0; c < 8; c++) { - vis_code_sequence[c + 1] = ((vis_code << c) & 0x80) ? SSTV_VIS_ONE : SSTV_VIS_ZERO; - } + for (uint32_t c = 0; c < 8; c++) + vis_code_sequence[c + 1] = ((vis_code >> c) & 1) ? SSTV_VIS_ONE : SSTV_VIS_ZERO; vis_code_sequence[9] = SSTV_VIS_SS; - fm_delta = 9000 * (0xFFFFFFULL / 3072000); // Fixed for now + fm_delta = 9000 * (0xFFFFFFULL / 3072000); // Fixed bw for now pixel_index = 0; sample_count = 0; @@ -151,7 +144,6 @@ void SSTVTXProcessor::on_message(const Message* const msg) { case Message::ID::FIFOData: memcpy(&scanline_buffer[buffer_flip], static_cast(msg)->data, sizeof(sstv_scanline)); - asked = false; break; default: diff --git a/firmware/baseband/proc_sstvtx.hpp b/firmware/baseband/proc_sstvtx.hpp index c213d45cc..9e217d6f7 100644 --- a/firmware/baseband/proc_sstvtx.hpp +++ b/firmware/baseband/proc_sstvtx.hpp @@ -50,7 +50,7 @@ private: enum state_t { STATE_CALIBRATION = 0, STATE_VIS, - STATE_START, + STATE_SYNC, STATE_PIXELS }; @@ -63,8 +63,6 @@ private: uint32_t vis_code_sequence[10] { }; sstv_scanline scanline_buffer[2] { }; uint8_t buffer_flip { 0 }, substep { 0 }; - - uint8_t vis_code { }; uint32_t pixel_duration { }; sstv_scanline * current_scanline { }; @@ -77,9 +75,7 @@ private: uint32_t sample_count { 0 }; uint32_t phase { 0 }, sphase { 0 }; int32_t tone_sample { 0 }, delta { 0 }; - int8_t re { 0 }, im { 0 }; - - bool asked { false }; + int8_t re { }, im { }; RequestSignalMessage sig_message { RequestSignalMessage::Signal::FillRequest }; }; diff --git a/firmware/baseband/stream_output.cpp b/firmware/baseband/stream_output.cpp index e70337e88..4d1d8b282 100644 --- a/firmware/baseband/stream_output.cpp +++ b/firmware/baseband/stream_output.cpp @@ -40,7 +40,7 @@ StreamOutput::StreamOutput(ReplayConfig* const config) : } } -size_t StreamOutput::write(const void* const data, const size_t length) { +size_t StreamOutput::read(const void* const data, const size_t length) { const uint8_t* p = static_cast(data); size_t written = 0; diff --git a/firmware/baseband/stream_output.hpp b/firmware/baseband/stream_output.hpp index 55be916ab..ae9de5d02 100644 --- a/firmware/baseband/stream_output.hpp +++ b/firmware/baseband/stream_output.hpp @@ -34,8 +34,13 @@ class StreamOutput { public: StreamOutput(ReplayConfig* const config); + + StreamOutput(const StreamOutput&) = delete; + StreamOutput(StreamOutput&&) = delete; + StreamOutput& operator=(const StreamOutput&) = delete; + StreamOutput& operator=(StreamOutput&&) = delete; - size_t write(const void* const data, const size_t length); + size_t read(const void* const data, const size_t length); private: static constexpr size_t buffer_count_max_log2 = 3; diff --git a/firmware/common/sstv.hpp b/firmware/common/sstv.hpp index 50ec09fd5..c4d72ec04 100644 --- a/firmware/common/sstv.hpp +++ b/firmware/common/sstv.hpp @@ -29,12 +29,28 @@ namespace sstv { #define SSTV_DELTA_COEF ((1ULL << 32) / SSTV_SAMPLERATE) #define SSTV_F2D(f) (uint32_t)((f) * SSTV_DELTA_COEF) -#define SSTV_MS2S(f) (uint32_t)((f) / 1000.0 * (float)SSTV_SAMPLERATE) +#define SSTV_MS2S(d) (uint32_t)((d) / 1000.0 * (float)SSTV_SAMPLERATE) #define SSTV_VIS_SS SSTV_F2D(1200) #define SSTV_VIS_ZERO SSTV_F2D(1300) #define SSTV_VIS_ONE SSTV_F2D(1100) +enum sstv_color_seq { + SSTV_COLOR_RGB, + SSTV_COLOR_GBR, + SSTV_COLOR_YUV // Not supported for now +}; + +#define SSTV_MODES_NB 6 + +// From http://www.graphics.stanford.edu/~seander/bithacks.html, nice ! +inline uint8_t sstv_parity(uint8_t code) { + uint8_t out = code; + out ^= code >> 4; + out &= 0x0F; + return (((0b0110100110010110 >> out) & 1) << 7) | code; +} + struct sstv_tone { uint32_t frequency; uint32_t duration; @@ -46,6 +62,33 @@ struct sstv_scanline { uint8_t luma[320]; }; +struct sstv_mode { + std::string name; + uint8_t vis_code; + bool color; // Unused for now + sstv_color_seq color_sequence; + uint16_t pixels; + uint16_t lines; + uint32_t samples_per_pixel; + bool sync_on_first; + uint8_t sync_index; + bool gaps; + uint32_t samples_per_sync; + uint32_t samples_per_gap; + //std::pair luma_range; +}; + +const sstv_mode sstv_modes[SSTV_MODES_NB] = { + { "Scottie 1", sstv_parity(60), true, SSTV_COLOR_GBR, 320, 256, SSTV_MS2S(0.4320), true, 2, true, SSTV_MS2S(9), SSTV_MS2S(1.5) }, + { "Scottie 2", sstv_parity(56), true, SSTV_COLOR_GBR, 320, 256, SSTV_MS2S(0.2752), true, 2, true, SSTV_MS2S(9), SSTV_MS2S(1.5) }, + { "Scottie DX", sstv_parity(76), true, SSTV_COLOR_GBR, 320, 256, SSTV_MS2S(1.08), true, 2, true, SSTV_MS2S(9), SSTV_MS2S(1.5) }, + { "Martin 1", sstv_parity(44), true, SSTV_COLOR_GBR, 320, 256, SSTV_MS2S(0.4576), false, 0, true, SSTV_MS2S(4.862), SSTV_MS2S(0.572) }, + { "Martin 2", sstv_parity(40), true, SSTV_COLOR_GBR, 320, 256, SSTV_MS2S(0.2288), false, 0, true, SSTV_MS2S(4.862), SSTV_MS2S(0.572) }, + { "SC2-180", sstv_parity(55), true, SSTV_COLOR_RGB, 320, 256, SSTV_MS2S(0.7344), false, 0, false, SSTV_MS2S(5.5225), SSTV_MS2S(0.5) }, + //{ "PASOKON 3", sstv_parity(113), true, SSTV_COLOR_RGB, 640, 496, SSTV_MS2S(0.2083), { 1500, 2300 } }, + //{ "PASOKON 7", sstv_parity(115), true, SSTV_COLOR_RGB, 640, 496, SSTV_MS2S(0.4167), { 1500, 2300 } } +}; + } /* namespace sstv */ #endif/*__SSTV_H__*/ diff --git a/firmware/graphics/play.png b/firmware/graphics/play.png new file mode 100644 index 0000000000000000000000000000000000000000..04b0b2d5e2580f5d946764fe00ff4e053fe4fbeb GIT binary patch literal 116 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
}i^1 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

$z%%V0aUX?| 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 delta 86211 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