From d3b0ac1e0acc9fabae3a91972a1794ad1317f407 Mon Sep 17 00:00:00 2001 From: Thomas Kolb Date: Fri, 26 Apr 2024 21:47:41 +0200 Subject: [PATCH] rx: signal busy as long as squelch is open --- impl/src/layer1/rx.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/impl/src/layer1/rx.c b/impl/src/layer1/rx.c index 442d9bd..81084b1 100644 --- a/impl/src/layer1/rx.c +++ b/impl/src/layer1/rx.c @@ -191,6 +191,27 @@ static enum squelch_state_t update_and_check_squelch(layer1_rx_t *rx, unsigned i return result; } +static bool is_squelch_open(const layer1_rx_t *rx) +{ + bool result = false; + + switch(agc_crcf_squelch_get_status(rx->agc)) { + case LIQUID_AGC_SQUELCH_RISE: + case LIQUID_AGC_SQUELCH_SIGNALHI: + result = true; + break; + + case LIQUID_AGC_SQUELCH_FALL: + case LIQUID_AGC_SQUELCH_SIGNALLO: + case LIQUID_AGC_SQUELCH_ENABLED: + case LIQUID_AGC_SQUELCH_TIMEOUT: + result = false; + break; + } + + return result; +} + result_t layer1_rx_process(layer1_rx_t *rx, const float complex *samples, size_t sample_count) { @@ -512,7 +533,7 @@ result_t layer1_rx_shutdown(layer1_rx_t *rx) bool layer1_rx_is_busy(const layer1_rx_t *rx) { - return rx->state != RX_STATE_ACQUISITION; + return is_squelch_open(rx); }