aboutsummaryrefslogtreecommitdiffstats
path: root/src/bnetz/bnetz.c
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2017-08-13 14:15:53 +0200
committerAndreas Eversberg <jolly@eversberg.eu>2017-08-16 18:51:45 +0200
commitee61c4362bd19e5fc9911cac244b77ddd08bb238 (patch)
treef266b834f3e07df9d5c4056b39340f951a6e8bf0 /src/bnetz/bnetz.c
parent41bd9999b1b8ba5127075c2350e65707f02f740a (diff)
B-Netz: Use standard deviation to determine if an FSK frame is valid or not
Diffstat (limited to 'src/bnetz/bnetz.c')
-rw-r--r--src/bnetz/bnetz.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/bnetz/bnetz.c b/src/bnetz/bnetz.c
index af3f82a..d9ccf3d 100644
--- a/src/bnetz/bnetz.c
+++ b/src/bnetz/bnetz.c
@@ -445,21 +445,23 @@ void bnetz_receive_tone(bnetz_t *bnetz, int bit)
}
/* A digit was received. */
-void bnetz_receive_telegramm(bnetz_t *bnetz, uint16_t telegramm, double level, double quality)
+void bnetz_receive_telegramm(bnetz_t *bnetz, uint16_t telegramm, double level_avg, double level_dev, double quality_avg)
{
struct impulstelegramm *it;
int digit = 0;
/* drop any telegramm that is too bad */
- if (quality < 0.2)
+ if (level_dev / level_avg > 0.2)
return;
+ PDEBUG_CHAN(DDSP, DEBUG_INFO, "RX Level: average=%.0f%% deviation=%.0f%% Quality: %.0f%%\n", level_avg * 100.0, level_dev / level_avg * 100.0, quality_avg * 100.0);
+
it = bnetz_telegramm2digit(telegramm);
if (it) {
digit = it->digit;
- PDEBUG(DBNETZ, (bnetz->sender.loopback) ? DEBUG_NOTICE : DEBUG_INFO, "Received telegramm '%s' (RX Level: %.0f%% Quality=%.0f)\n", it->description, level * 100.0 + 0.5, quality * 100.0 + 0.5);
+ PDEBUG(DBNETZ, (bnetz->sender.loopback) ? DEBUG_NOTICE : DEBUG_INFO, "Received telegramm '%s'\n", it->description);
} else {
- PDEBUG(DBNETZ, DEBUG_DEBUG, "Received unknown telegramm digit '0x%04x' (RX Level: %.0f%% Quality=%.0f) (might be radio noise)\n", telegramm, level * 100.0 + 0.5, quality * 100.0 + 0.5);
+ PDEBUG(DBNETZ, DEBUG_DEBUG, "Received unknown telegramm digit '0x%04x' (might be radio noise)\n", telegramm);
return;
}