From 76d20580757b6242dd4d015e83892752f9b70e89 Mon Sep 17 00:00:00 2001 From: Jonathan Naylor Date: Tue, 26 Jun 2018 18:16:13 +0100 Subject: [PATCH] Recalculate the TX delay for POCSAG. --- POCSAGTX.cpp | 10 +++++----- POCSAGTX.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/POCSAGTX.cpp b/POCSAGTX.cpp index 6a15e59..8306410 100644 --- a/POCSAGTX.cpp +++ b/POCSAGTX.cpp @@ -20,10 +20,10 @@ #include "Globals.h" #include "POCSAGTX.h" -const uint16_t POCSAG_PREAMBLE_LENGTH_BYTES = 576U / 8U; - const uint16_t POCSAG_FRAME_LENGTH_BYTES = 17U * sizeof(uint32_t); +const uint16_t POCSAG_PREAMBLE_LENGTH_BYTES = 18U * sizeof(uint32_t); + const uint16_t POCSAG_RADIO_SYMBOL_LENGTH = 20U; const q15_t POCSAG_LEVEL1[] = { 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700}; @@ -128,10 +128,10 @@ void CPOCSAGTX::writeByte(uint8_t c) void CPOCSAGTX::setTXDelay(uint8_t delay) { - m_txDelay = POCSAG_PREAMBLE_LENGTH_BYTES + uint16_t(delay); + m_txDelay = POCSAG_PREAMBLE_LENGTH_BYTES + (delay * 3U) / 2U; - if (m_txDelay > 1200U) - m_txDelay = 1200U; + if (m_txDelay > 150U) + m_txDelay = 150U; } uint8_t CPOCSAGTX::getSpace() const diff --git a/POCSAGTX.h b/POCSAGTX.h index e0b2d3a..ea41b7f 100644 --- a/POCSAGTX.h +++ b/POCSAGTX.h @@ -39,7 +39,7 @@ private: CSerialRB m_buffer; arm_fir_instance_q15 m_modFilter; q15_t m_modState[170U]; // NoTaps + BlockSize - 1, 6 + 160 - 1 plus some spare - uint8_t m_poBuffer[1200U]; + uint8_t m_poBuffer[200U]; uint16_t m_poLen; uint16_t m_poPtr; uint16_t m_txDelay;