Support squelch in pocsag (#1415)

* Support squelch in pocsag

* Revert smooth threshold
This commit is contained in:
Kyle Reed
2023-08-27 15:56:40 -07:00
committed by GitHub
parent d8930db8af
commit e7e1bedcad
7 changed files with 100 additions and 78 deletions

View File

@@ -95,6 +95,7 @@ POCSAGAppView::POCSAGAppView(NavigationView& nav)
&field_lna,
&field_vga,
&field_frequency,
&field_squelch,
&field_volume,
&image_status,
&text_packet_count,
@@ -111,6 +112,11 @@ POCSAGAppView::POCSAGAppView(NavigationView& nav)
logger.append(LOG_ROOT_DIR "/POCSAG.TXT");
field_squelch.set_value(receiver_model.squelch_level());
field_squelch.on_change = [this](int32_t v) {
receiver_model.set_squelch_level(v);
};
button_ignore_last.on_select = [this](Button&) {
settings_.enable_ignore = true;
settings_.address_to_ignore = last_address;
@@ -122,8 +128,8 @@ POCSAGAppView::POCSAGAppView(NavigationView& nav)
};
refresh_ui();
receiver_model.enable();
audio::output::start();
receiver_model.enable();
baseband::set_pocsag();
}

View File

@@ -136,10 +136,7 @@ class POCSAGAppView : public View {
bool hide_addr_only() const { return settings_.hide_addr_only; };
NavigationView& nav_;
RxRadioState radio_state_{
12'500, // POCSAG is FSK +/- 4.5MHz, 12k5 is a good filter.
3'072'000, // Match baseband_fs in proc_pocsag.
};
RxRadioState radio_state_{};
// Settings
POCSAGSettings settings_{};
@@ -161,24 +158,33 @@ class POCSAGAppView : public View {
void on_stats(const POCSAGStatsMessage* stats);
uint32_t last_address = 0xFFFFFFFF;
pocsag::POCSAGState pocsag_state{};
pocsag::EccContainer ecc{};
pocsag::POCSAGState pocsag_state{&ecc};
POCSAGLogger logger{};
uint16_t packet_count = 0;
RFAmpField field_rf_amp{
{13 * 8, 0 * 16}};
LNAGainField field_lna{
{15 * 8, 0 * 16}};
VGAGainField field_vga{
{18 * 8, 0 * 16}};
RSSI rssi{
{21 * 8, 3, 6 * 8, 4}};
Audio audio{
{21 * 8, 8, 6 * 8, 4}};
RxFrequencyField field_frequency{
{0 * 8, 0 * 8},
nav_};
RFAmpField field_rf_amp{
{11 * 8, 0 * 16}};
LNAGainField field_lna{
{13 * 8, 0 * 16}};
VGAGainField field_vga{
{16 * 8, 0 * 16}};
RSSI rssi{
{19 * 8 - 4, 3, 6 * 8, 4}};
Audio audio{
{19 * 8 - 4, 8, 6 * 8, 4}};
NumberField field_squelch{
{25 * 8, 0 * 16},
2,
{0, 99},
1,
' '};
AudioVolumeField field_volume{
{28 * 8, 0 * 16}};