Recalculate the TX delay for POCSAG.

This commit is contained in:
Jonathan Naylor 2018-06-26 18:16:13 +01:00
parent dcd8142c51
commit 76d2058075
2 changed files with 6 additions and 6 deletions

View File

@ -20,10 +20,10 @@
#include "Globals.h" #include "Globals.h"
#include "POCSAGTX.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_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 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}; 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) 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) if (m_txDelay > 150U)
m_txDelay = 1200U; m_txDelay = 150U;
} }
uint8_t CPOCSAGTX::getSpace() const uint8_t CPOCSAGTX::getSpace() const

View File

@ -39,7 +39,7 @@ private:
CSerialRB m_buffer; CSerialRB m_buffer;
arm_fir_instance_q15 m_modFilter; arm_fir_instance_q15 m_modFilter;
q15_t m_modState[170U]; // NoTaps + BlockSize - 1, 6 + 160 - 1 plus some spare 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_poLen;
uint16_t m_poPtr; uint16_t m_poPtr;
uint16_t m_txDelay; uint16_t m_txDelay;