Beep-on-packet support in ADSB RX app (#2065)

This commit is contained in:
Mark Thompson
2024-03-29 16:34:18 -05:00
committed by GitHub
parent 6e5eadd25c
commit b473930f94
4 changed files with 43 additions and 9 deletions

View File

@@ -26,6 +26,7 @@
#include "portapack_shared_memory.hpp"
#include "sine_table_int8.hpp"
#include "event_m4.hpp"
#include "audio_dma.hpp"
#include <cstdint>
#include <cstddef>
@@ -144,16 +145,30 @@ void ADSBRXProcessor::execute(const buffer_c8_t& buffer) {
}
void ADSBRXProcessor::on_message(const Message* const message) {
if (message->id == Message::ID::ADSBConfigure) {
bit_count = 0;
sample_count = 0;
decoding = false;
configured = true;
switch (message->id) {
case Message::ID::ADSBConfigure:
bit_count = 0;
sample_count = 0;
decoding = false;
configured = true;
break;
case Message::ID::AudioBeep:
on_beep_message(*reinterpret_cast<const AudioBeepMessage*>(message));
break;
default:
break;
}
}
void ADSBRXProcessor::on_beep_message(const AudioBeepMessage& message) {
audio::dma::beep_start(message.freq, message.sample_rate, message.duration_ms);
}
#ifndef _WIN32
int main() {
audio::dma::init_audio_out();
EventDispatcher event_dispatcher{std::make_unique<ADSBRXProcessor>()};
event_dispatcher.run();
return 0;

View File

@@ -53,6 +53,8 @@ class ADSBRXProcessor : public BasebandProcessor {
uint32_t shifter[ADSB_PREAMBLE_LENGTH + 1];
void on_beep_message(const AudioBeepMessage& message);
/* NB: Threads should be the last members in the class definition. */
BasebandThread baseband_thread{baseband_fs, this, baseband::Direction::Receive};
RSSIThread rssi_thread{};