correct NXDN IF bandwidth to 12.5khz; compress debug messages;

pull/4/head
Bryan Biedenkapp 2 years ago
parent c75ff52d0c
commit 941f57b68a

@ -1283,7 +1283,7 @@ void IO::configureTxRx(DVM_STATE modemState)
ADF7021_REG4 |= (uint32_t)ADF7021_REG4_INV_CLKDAT << 8; // Clock/Data Inversion
ADF7021_REG4 |= (uint32_t)(nxdnDiscBW & 0x3FFU) << 10; // Discriminator BW
ADF7021_REG4 |= (uint32_t)(nxdnPostBW & 0xFFFU) << 20; // Post Demod BW
ADF7021_REG4 |= (uint32_t)ADF7021_REG4_IF_1875K << 30; // IF Filter
ADF7021_REG4 |= (uint32_t)ADF7021_REG4_IF_125K << 30; // IF Filter
/*
** 3FSK/4FSK Demod (Register 13)

@ -187,7 +187,7 @@ uint8_t CWIdTX::write(const uint8_t* data, uint8_t length)
m_poLen += 5U;
DEBUG2("CWIdTx: write(): message created with length", m_poLen);
DEBUG2("CWIdTx::write() message length", m_poLen);
return RSN_OK;
}

@ -135,7 +135,7 @@ void IO::process()
if (m_cwIdState) {
// check for CW ID end of transmission
m_cwIdState = false;
DEBUG2("IO::process(): setting modem state", m_modemState);
DEBUG2("IO::process() setting modem state", m_modemState);
io.rf1Conf(m_modemState, true);
}
@ -230,10 +230,10 @@ void IO::setMode(DVM_STATE modemState)
relativeState = serial.calRelativeState(modemState);
}
DEBUG3("IO::setMode(): setting modem state", modemState, relativeState);
DEBUG3("IO::setMode() setting modem state", modemState, relativeState);
rf1Conf(relativeState, true);
DEBUG4("IO::setMode(): setting lights", relativeState == STATE_DMR, relativeState == STATE_P25, relativeState == STATE_NXDN);
DEBUG4("IO::setMode() setting lights", relativeState == STATE_DMR, relativeState == STATE_P25, relativeState == STATE_NXDN);
setDMRInt(relativeState == STATE_DMR);
setP25Int(relativeState == STATE_P25);
setNXDNInt(relativeState == STATE_NXDN);
@ -300,7 +300,7 @@ uint8_t IO::setRFParams(uint32_t rxFreq, uint32_t txFreq, uint8_t rfPower, ADF_G
m_rxFrequency = rxFreq;
m_txFrequency = txFreq;
DEBUG5("IO::setRFParams(): setting RF params", m_rxFrequency, m_txFrequency, m_rfPower, m_gainMode);
DEBUG5("IO::setRFParams() setting RF params", m_rxFrequency, m_txFrequency, m_rfPower, m_gainMode);
return RSN_OK;
}

@ -155,7 +155,7 @@ void SerialPort::process()
sendACK();
}
else {
DEBUG2("SerialPort: process(): received invalid calibration data", err);
DEBUG2("SerialPort::process() received invalid calibration data", err);
sendNAK(err);
}
break;
@ -170,7 +170,7 @@ void SerialPort::process()
sendACK();
}
else {
DEBUG2("SerialPort: process(): received invalid data to write to flash", err);
DEBUG2("SerialPort::process() received invalid data to write to flash", err);
sendNAK(err);
}
break;
@ -181,7 +181,7 @@ void SerialPort::process()
sendACK();
}
else {
DEBUG2("SerialPort: process(): received invalid data to set buffers", err);
DEBUG2("SerialPort::process() received invalid data to set buffers", err);
sendNAK(err);
}
break;
@ -192,13 +192,13 @@ void SerialPort::process()
if (m_modemState == STATE_IDLE) {
m_cwIdState = true;
DEBUG2("SerialPort: process(): setting modem state", STATE_CW);
DEBUG2("SerialPort::process() setting modem state", STATE_CW);
io.rf1Conf(STATE_CW, true);
err = cwIdTX.write(m_buffer + 3U, m_len - 3U);
}
if (err != RSN_OK) {
DEBUG2("SerialPort: process(): invalid CW Id data", err);
DEBUG2("SerialPort::process() invalid CW Id data", err);
sendNAK(err);
}
break;
@ -217,7 +217,7 @@ void SerialPort::process()
setMode(STATE_DMR);
}
else {
DEBUG2("SerialPort: process() received invalid DMR data", err);
DEBUG2("SerialPort::process() received invalid DMR data", err);
sendNAK(err);
}
#else
@ -243,7 +243,7 @@ void SerialPort::process()
setMode(STATE_DMR);
}
else {
DEBUG2("SerialPort: process(): received invalid DMR data", err);
DEBUG2("SerialPort::process() received invalid DMR data", err);
sendNAK(err);
}
break;
@ -266,7 +266,7 @@ void SerialPort::process()
}
}
if (err != RSN_OK) {
DEBUG3("SerialPort: process(): received invalid DMR start", err, m_len);
DEBUG3("SerialPort::process() received invalid DMR start", err, m_len);
sendNAK(err);
}
#else
@ -279,7 +279,7 @@ void SerialPort::process()
if (m_dmrEnable)
err = dmrTX.writeShortLC(m_buffer + 3U, m_len - 3U);
if (err != RSN_OK) {
DEBUG2("SerialPort: process(): received invalid DMR Short LC", err);
DEBUG2("SerialPort::process() received invalid DMR Short LC", err);
sendNAK(err);
}
#else
@ -292,7 +292,7 @@ void SerialPort::process()
if (m_dmrEnable)
err = dmrTX.writeAbort(m_buffer + 3U, m_len - 3U);
if (err != RSN_OK) {
DEBUG2("SerialPort: process(): received invalid DMR Abort", err);
DEBUG2("SerialPort::process() received invalid DMR Abort", err);
sendNAK(err);
}
#else
@ -310,7 +310,7 @@ void SerialPort::process()
}
}
if (err != RSN_OK) {
DEBUG2("SerialPort: process(): received invalid DMR CACH AT Control", err);
DEBUG2("SerialPort::process() received invalid DMR CACH AT Control", err);
sendNAK(err);
}
#else
@ -351,7 +351,7 @@ void SerialPort::process()
setMode(STATE_P25);
}
else {
DEBUG2("SerialPort: process(): Received invalid P25 data", err);
DEBUG2("SerialPort::process() received invalid P25 data", err);
sendNAK(err);
}
break;
@ -374,7 +374,7 @@ void SerialPort::process()
setMode(STATE_NXDN);
}
else {
DEBUG2("SerialPort: process(): Received invalid NXDN data", err);
DEBUG2("SerialPort::process() received invalid NXDN data", err);
sendNAK(err);
}
break;
@ -1061,12 +1061,12 @@ uint8_t SerialPort::setConfig(const uint8_t* data, uint8_t length)
#if !defined(DUPLEX)
if (m_duplex) {
DEBUG1("Full duplex not supported with this firmware");
DEBUG1("SerialPort::setConfig() Full duplex not supported with this firmware");
return RSN_INVALID_REQUEST;
}
#elif defined(DUPLEX) && (defined(ZUMSPOT_ADF7021) || defined(LONESTAR_USB) || defined(SKYBRIDGE_HS))
if (io.isDualBand() && m_duplex) {
DEBUG1("Full duplex is not supported on this board");
DEBUG1("SerialPort::setConfig() Full duplex is not supported on this board");
return RSN_INVALID_REQUEST;
}
#endif
@ -1132,13 +1132,13 @@ void SerialPort::setMode(DVM_STATE modemState)
{
switch (modemState) {
case STATE_DMR:
DEBUG1("SerialPort: setMode(): mode set to DMR");
DEBUG1("SerialPort::setMode() mode set to DMR");
p25RX.reset();
nxdnRX.reset();
cwIdTX.reset();
break;
case STATE_P25:
DEBUG1("SerialPort: setMode(): mode set to P25");
DEBUG1("SerialPort::setMode() mode set to P25");
#if defined(DUPLEX)
dmrIdleRX.reset();
dmrRX.reset();
@ -1148,7 +1148,7 @@ void SerialPort::setMode(DVM_STATE modemState)
cwIdTX.reset();
break;
case STATE_NXDN:
DEBUG1("SerialPort: setMode(): mode set to NXDN");
DEBUG1("SerialPort::setMode() mode set to NXDN");
#if defined(DUPLEX)
dmrIdleRX.reset();
dmrRX.reset();
@ -1158,7 +1158,7 @@ void SerialPort::setMode(DVM_STATE modemState)
cwIdTX.reset();
break;
case STATE_DMR_CAL:
DEBUG1("SerialPort: setMode(): mode set to DMR Calibrate");
DEBUG1("SerialPort::setMode() mode set to DMR Calibrate");
#if defined(DUPLEX)
dmrIdleRX.reset();
dmrRX.reset();
@ -1169,7 +1169,7 @@ void SerialPort::setMode(DVM_STATE modemState)
cwIdTX.reset();
break;
case STATE_P25_CAL:
DEBUG1("SerialPort: setMode(): mode set to P25 Calibrate");
DEBUG1("SerialPort::setMode() mode set to P25 Calibrate");
#if defined(DUPLEX)
dmrIdleRX.reset();
dmrRX.reset();
@ -1180,7 +1180,7 @@ void SerialPort::setMode(DVM_STATE modemState)
cwIdTX.reset();
break;
case STATE_NXDN_CAL:
DEBUG1("SerialPort: setMode(): mode set to NXDN Calibrate");
DEBUG1("SerialPort::setMode() mode set to NXDN Calibrate");
#if defined(DUPLEX)
dmrIdleRX.reset();
dmrRX.reset();
@ -1191,7 +1191,7 @@ void SerialPort::setMode(DVM_STATE modemState)
cwIdTX.reset();
break;
case STATE_RSSI_CAL:
DEBUG1("SerialPort: setMode(): mode set to RSSI Calibrate");
DEBUG1("SerialPort::setMode() mode set to RSSI Calibrate");
#if defined(DUPLEX)
dmrIdleRX.reset();
dmrRX.reset();
@ -1202,7 +1202,7 @@ void SerialPort::setMode(DVM_STATE modemState)
cwIdTX.reset();
break;
case STATE_DMR_LF_CAL:
DEBUG1("SerialPort: setMode(): mode set to DMR 80Hz Calibrate");
DEBUG1("SerialPort::setMode() mode set to DMR 80Hz Calibrate");
#if defined(DUPLEX)
dmrIdleRX.reset();
dmrRX.reset();
@ -1213,7 +1213,7 @@ void SerialPort::setMode(DVM_STATE modemState)
cwIdTX.reset();
break;
case STATE_DMR_CAL_1K:
DEBUG1("SerialPort: setMode(): mode set to DMR BS 1031Hz Calibrate");
DEBUG1("SerialPort::setMode() mode set to DMR BS 1031Hz Calibrate");
#if defined(DUPLEX)
dmrIdleRX.reset();
dmrRX.reset();
@ -1224,7 +1224,7 @@ void SerialPort::setMode(DVM_STATE modemState)
cwIdTX.reset();
break;
case STATE_DMR_DMO_CAL_1K:
DEBUG1("SerialPort: setMode(): mode set to DMR MS 1031Hz Calibrate");
DEBUG1("SerialPort::setMode() mode set to DMR MS 1031Hz Calibrate");
#if defined(DUPLEX)
dmrIdleRX.reset();
dmrRX.reset();
@ -1235,7 +1235,7 @@ void SerialPort::setMode(DVM_STATE modemState)
cwIdTX.reset();
break;
case STATE_P25_CAL_1K:
DEBUG1("SerialPort: setMode(): mode set to P25 1011Hz Calibrate");
DEBUG1("SerialPort::setMode() mode set to P25 1011Hz Calibrate");
#if defined(DUPLEX)
dmrIdleRX.reset();
dmrRX.reset();
@ -1246,7 +1246,7 @@ void SerialPort::setMode(DVM_STATE modemState)
cwIdTX.reset();
break;
default:
DEBUG1("SerialPort: setMode(): mode set to Idle");
DEBUG1("SerialPort::setMode() mode set to Idle");
// STATE_IDLE
break;
}

@ -141,7 +141,7 @@ void DMRDMORX::databit(bool bit)
switch (dataType) {
case DT_DATA_HEADER:
DEBUG2("DMRDMORX: databit(): data header found pos", m_syncPtr);
DEBUG2("DMRDMORX::databit() data header found pos", m_syncPtr);
writeRSSIData(frame);
m_state = DMORXS_DATA;
m_type = 0x00U;
@ -150,32 +150,32 @@ void DMRDMORX::databit(bool bit)
case DT_RATE_34_DATA:
case DT_RATE_1_DATA:
if (m_state == DMORXS_DATA) {
DEBUG2("DMRDMORX: databit(): data payload found pos", m_syncPtr);
DEBUG2("DMRDMORX::databit() data payload found pos", m_syncPtr);
writeRSSIData(frame);
m_type = dataType;
}
break;
case DT_VOICE_LC_HEADER:
DEBUG2("DMRDMORX: databit(): voice header found pos", m_syncPtr);
DEBUG2("DMRDMORX::databit() voice header found pos", m_syncPtr);
writeRSSIData(frame);
m_state = DMORXS_VOICE;
break;
case DT_VOICE_PI_HEADER:
if (m_state == DMORXS_VOICE) {
DEBUG2("DMRDMORX: databit(): voice pi header found pos", m_syncPtr);
DEBUG2("DMRDMORX::databit() voice pi header found pos", m_syncPtr);
writeRSSIData(frame);
}
m_state = DMORXS_VOICE;
break;
case DT_TERMINATOR_WITH_LC:
if (m_state == DMORXS_VOICE) {
DEBUG2("DMRDMORX: databit(): voice terminator found pos", m_syncPtr);
DEBUG2("DMRDMORX::databit() voice terminator found pos", m_syncPtr);
writeRSSIData(frame);
reset();
}
break;
default: // DT_CSBK
DEBUG2("DMRDMORX: databit(): csbk found pos", m_syncPtr);
DEBUG2("DMRDMORX::databit() csbk found pos", m_syncPtr);
writeRSSIData(frame);
reset();
break;
@ -184,7 +184,7 @@ void DMRDMORX::databit(bool bit)
}
else if (m_control == CONTROL_VOICE) {
// Voice sync
DEBUG2("DMRDMORX: databit(): voice sync found pos", m_syncPtr);
DEBUG2("DMRDMORX::databit() voice sync found pos", m_syncPtr);
writeRSSIData(frame);
m_state = DMORXS_VOICE;
@ -195,7 +195,7 @@ void DMRDMORX::databit(bool bit)
if (m_state != DMORXS_NONE) {
m_syncCount++;
if (m_syncCount >= MAX_SYNC_LOST_FRAMES) {
DEBUG1("DMRDMORX: databit(): sync timeout, lost lock");
DEBUG1("DMRDMORX::databit() sync timeout, lost lock");
serial.writeDMRLost(true);
reset();
}
@ -265,11 +265,11 @@ void DMRDMORX::correlateSync()
for (uint8_t i = 0U; i < DMR_SYNC_BYTES_LENGTH; i++)
errs += countBits8((sync[i] & DMR_SYNC_BYTES_MASK[i]) ^ DMR_MS_DATA_SYNC_BYTES[i]);
DEBUG2("DMRDMORX: correlateSync(): correlateSync errs", errs);
DEBUG2("DMRDMORX::correlateSync() sync errs", errs);
DEBUG4("DMRDMORX: correlateSync(): sync [b0 - b2]", sync[0], sync[1], sync[2]);
DEBUG4("DMRDMORX: correlateSync(): sync [b3 - b5]", sync[3], sync[4], sync[5]);
DEBUG2("DMRDMORX: correlateSync(): sync [b6]", sync[6]);
DEBUG4("DMRDMORX::correlateSync() sync [b0 - b2]", sync[0], sync[1], sync[2]);
DEBUG4("DMRDMORX::correlateSync() sync [b3 - b5]", sync[3], sync[4], sync[5]);
DEBUG2("DMRDMORX::correlateSync() sync [b6]", sync[6]);
m_control = CONTROL_DATA;
m_syncPtr = m_dataPtr;
@ -282,18 +282,18 @@ void DMRDMORX::correlateSync()
if (m_endPtr >= DMO_BUFFER_LENGTH_BITS)
m_endPtr -= DMO_BUFFER_LENGTH_BITS;
DEBUG4("DMRDMORX: correlateSync(): dataPtr/startPtr/endPtr", m_dataPtr, m_startPtr, m_endPtr);
DEBUG4("DMRDMORX::correlateSync() dataPtr/startPtr/endPtr", m_dataPtr, m_startPtr, m_endPtr);
} else if ((countBits64((m_bitBuffer & DMR_SYNC_BITS_MASK) ^ DMR_MS_VOICE_SYNC_BITS) <= MAX_SYNC_BYTES_ERRS) ||
(countBits64((m_bitBuffer & DMR_SYNC_BITS_MASK) ^ DMR_S2_VOICE_SYNC_BITS) <= MAX_SYNC_BYTES_ERRS)) {
uint8_t errs = 0U;
for (uint8_t i = 0U; i < DMR_SYNC_BYTES_LENGTH; i++)
errs += countBits8((sync[i] & DMR_SYNC_BYTES_MASK[i]) ^ DMR_MS_VOICE_SYNC_BYTES[i]);
DEBUG2("DMRDMORX: correlateSync(): correlateSync errs", errs);
DEBUG2("DMRDMORX::correlateSync() correlateSync errs", errs);
DEBUG4("DMRDMORX: correlateSync(): sync [b0 - b2]", sync[0], sync[1], sync[2]);
DEBUG4("DMRDMORX: correlateSync(): sync [b3 - b5]", sync[3], sync[4], sync[5]);
DEBUG2("DMRDMORX: correlateSync(): sync [b6]", sync[6]);
DEBUG4("DMRDMORX::correlateSync() sync [b0 - b2]", sync[0], sync[1], sync[2]);
DEBUG4("DMRDMORX::correlateSync() sync [b3 - b5]", sync[3], sync[4], sync[5]);
DEBUG2("DMRDMORX::correlateSync() sync [b6]", sync[6]);
m_control = CONTROL_VOICE;
m_syncPtr = m_dataPtr;
@ -306,7 +306,7 @@ void DMRDMORX::correlateSync()
if (m_endPtr >= DMO_BUFFER_LENGTH_BITS)
m_endPtr -= DMO_BUFFER_LENGTH_BITS;
DEBUG4("DMRDMORX: correlateSync(): dataPtr/startPtr/endPtr", m_dataPtr, m_startPtr, m_endPtr);
DEBUG4("DMRDMORX::correlateSync() dataPtr/startPtr/endPtr", m_dataPtr, m_startPtr, m_endPtr);
}
}
@ -379,4 +379,3 @@ void DMRDMORX::writeRSSIData(uint8_t* frame)
serial.writeDMRData(true, frame, DMR_FRAME_LENGTH_BYTES + 1U);
#endif
}

@ -85,7 +85,6 @@ void DMRDMOTX::process()
m_poLen = 72U;
}
DEBUG2("DMRDMOTX: process(): poLen", m_poLen);
m_poPtr = 0U;
}
@ -120,7 +119,7 @@ uint8_t DMRDMOTX::writeData(const uint8_t* data, uint8_t length)
return RSN_ILLEGAL_LENGTH;
uint16_t space = m_fifo.getSpace();
DEBUG3("DMRDMOTX: writeData(): dataLength/fifoLength", length, space);
DEBUG3("DMRDMOTX::writeData() dataLength/fifoLength", length, space);
if (space < DMR_FRAME_LENGTH_BYTES)
return RSN_RINGBUFF_FULL;

@ -91,7 +91,7 @@ void DMRIdleRX::databit(bool bit)
if (m_endPtr >= DMR_IDLE_LENGTH_BITS)
m_endPtr -= DMR_IDLE_LENGTH_BITS;
DEBUG3("DMRIdleRx: databit(): dataPtr/endPtr", m_dataPtr, m_endPtr);
DEBUG3("DMRIdleRx::databit() dataPtr/endPtr", m_dataPtr, m_endPtr);
}
if (m_dataPtr == m_endPtr) {

@ -166,7 +166,7 @@ bool DMRSlotRX::databit(bool bit)
switch (dataType) {
case DT_DATA_HEADER:
DEBUG3("DMRSlotRX: databit(): data header found slot/pos", m_slot ? 2U : 1U, m_syncPtr);
DEBUG3("DMRSlotRX::databit() data header found slot/pos", m_slot ? 2U : 1U, m_syncPtr);
writeRSSIData(frame);
m_state = DMRRXS_DATA;
m_type = 0x00U;
@ -175,33 +175,33 @@ bool DMRSlotRX::databit(bool bit)
case DT_RATE_34_DATA:
case DT_RATE_1_DATA:
if (m_state == DMRRXS_DATA) {
DEBUG3("DMRSlotRX: databit(): data payload found slot/pos", m_slot ? 2U : 1U, m_syncPtr);
DEBUG3("DMRSlotRX::databit() data payload found slot/pos", m_slot ? 2U : 1U, m_syncPtr);
writeRSSIData(frame);
m_type = dataType;
}
break;
case DT_VOICE_LC_HEADER:
DEBUG3("DMRSlotRX: databit(): voice header found slot/pos", m_slot ? 2U : 1U, m_syncPtr);
DEBUG3("DMRSlotRX::databit() voice header found slot/pos", m_slot ? 2U : 1U, m_syncPtr);
writeRSSIData(frame);
m_state = DMRRXS_VOICE;
break;
case DT_VOICE_PI_HEADER:
if (m_state == DMRRXS_VOICE) {
DEBUG3("DMRSlotRX: databit(): voice pi header found slot/pos", m_slot ? 2U : 1U, m_syncPtr);
DEBUG3("DMRSlotRX::databit() voice pi header found slot/pos", m_slot ? 2U : 1U, m_syncPtr);
writeRSSIData(frame);
}
m_state = DMRRXS_VOICE;
break;
case DT_TERMINATOR_WITH_LC:
if (m_state == DMRRXS_VOICE) {
DEBUG3("DMRSlotRX: databit(): voice terminator found slot/pos", m_slot ? 2U : 1U, m_syncPtr);
DEBUG3("DMRSlotRX::databit() voice terminator found slot/pos", m_slot ? 2U : 1U, m_syncPtr);
writeRSSIData(frame);
m_state = DMRRXS_NONE;
m_endPtr = NOENDPTR;
}
break;
default: // DT_CSBK
DEBUG3("DMRSlotRX: databit(): csbk found slot/pos", m_slot ? 2U : 1U, m_syncPtr);
DEBUG3("DMRSlotRX::databit() csbk found slot/pos", m_slot ? 2U : 1U, m_syncPtr);
writeRSSIData(frame);
m_state = DMRRXS_NONE;
m_endPtr = NOENDPTR;
@ -211,7 +211,7 @@ bool DMRSlotRX::databit(bool bit)
}
else if (m_control == CONTROL_VOICE) {
// Voice sync
DEBUG3("DMRSlotRX: databit(): voice sync found slot/pos", m_slot ? 2U : 1U, m_syncPtr);
DEBUG3("DMRSlotRX::databit() voice sync found slot/pos", m_slot ? 2U : 1U, m_syncPtr);
writeRSSIData(frame);
m_state = DMRRXS_VOICE;
m_syncCount = 0U;
@ -221,7 +221,7 @@ bool DMRSlotRX::databit(bool bit)
if (m_state != DMRRXS_NONE) {
m_syncCount++;
if (m_syncCount >= MAX_SYNC_LOST_FRAMES) {
DEBUG1("DMRSlotRX: databit(): sync timeout, lost lock");
DEBUG1("DMRSlotRX::databit() sync timeout, lost lock");
serial.writeDMRLost(m_slot);
resetSlot();
}
@ -300,11 +300,11 @@ void DMRSlotRX::correlateSync()
for (uint8_t i = 0U; i < DMR_SYNC_BYTES_LENGTH; i++)
errs += countBits8((sync[i] & DMR_SYNC_BYTES_MASK[i]) ^ DMR_MS_DATA_SYNC_BYTES[i]);
DEBUG2("DMRSlotRX: correlateSync(): correlateSync errs", errs);
DEBUG2("DMRSlotRX::correlateSync() sync errs", errs);
DEBUG4("DMRSlotRX: correlateSync(): sync [b0 - b2]", sync[0], sync[1], sync[2]);
DEBUG4("DMRSlotRX: correlateSync(): sync [b3 - b5]", sync[3], sync[4], sync[5]);
DEBUG2("DMRSlotRX: correlateSync(): sync [b6]", sync[6]);
DEBUG4("DMRSlotRX::correlateSync() sync [b0 - b2]", sync[0], sync[1], sync[2]);
DEBUG4("DMRSlotRX::correlateSync() sync [b3 - b5]", sync[3], sync[4], sync[5]);
DEBUG2("DMRSlotRX::correlateSync() sync [b6]", sync[6]);
m_control = CONTROL_DATA;
m_syncPtr = m_dataPtr;
@ -317,17 +317,17 @@ void DMRSlotRX::correlateSync()
if (m_endPtr >= DMR_BUFFER_LENGTH_BITS)
m_endPtr -= DMR_BUFFER_LENGTH_BITS;
DEBUG4("DMRSlotRX: correlateSync(): dataPtr/startPtr/endPtr", m_dataPtr, m_startPtr, m_endPtr);
DEBUG4("DMRSlotRX::correlateSync() dataPtr/startPtr/endPtr", m_dataPtr, m_startPtr, m_endPtr);
} else if (countBits64((m_bitBuffer & DMR_SYNC_BITS_MASK) ^ DMR_MS_VOICE_SYNC_BITS) <= MAX_SYNC_BYTES_ERRS) {
uint8_t errs = 0U;
for (uint8_t i = 0U; i < DMR_SYNC_BYTES_LENGTH; i++)
errs += countBits8((sync[i] & DMR_SYNC_BYTES_MASK[i]) ^ DMR_MS_VOICE_SYNC_BYTES[i]);
DEBUG2("DMRSlotRX: correlateSync(): correlateSync errs", errs);
DEBUG2("DMRSlotRX::correlateSync() sync errs", errs);
DEBUG4("DMRSlotRX: correlateSync(): sync [b0 - b2]", sync[0], sync[1], sync[2]);
DEBUG4("DMRSlotRX: correlateSync(): sync [b3 - b5]", sync[3], sync[4], sync[5]);
DEBUG2("DMRSlotRX: correlateSync(): sync [b6]", sync[6]);
DEBUG4("DMRSlotRX::correlateSync() sync [b0 - b2]", sync[0], sync[1], sync[2]);
DEBUG4("DMRSlotRX::correlateSync() sync [b3 - b5]", sync[3], sync[4], sync[5]);
DEBUG2("DMRSlotRX::correlateSync() sync [b6]", sync[6]);
m_control = CONTROL_VOICE;
m_syncPtr = m_dataPtr;
@ -340,7 +340,7 @@ void DMRSlotRX::correlateSync()
if (m_endPtr >= DMR_BUFFER_LENGTH_BITS)
m_endPtr -= DMR_BUFFER_LENGTH_BITS;
DEBUG4("DMRSlotRX: correlateSync(): dataPtr/startPtr/endPtr", m_dataPtr, m_startPtr, m_endPtr);
DEBUG4("DMRSlotRX::correlateSync() dataPtr/startPtr/endPtr", m_dataPtr, m_startPtr, m_endPtr);
}
}

@ -131,8 +131,6 @@ void DMRTX::process()
m_state = DMRTXSTATE_SLOT1;
break;
}
DEBUG2("DMRTX: process(): poLen", m_poLen);
}
if (m_poLen > 0U) {
@ -168,7 +166,7 @@ uint8_t DMRTX::writeData1(const uint8_t* data, uint8_t length)
return RSN_ILLEGAL_LENGTH;
uint16_t space = m_fifo[0U].getSpace();
DEBUG3("DMRTX: writeData1(): dataLength/fifoLength", length, space);
DEBUG3("DMRTX::writeData1() dataLength/fifoLength", length, space);
if (space < DMR_FRAME_LENGTH_BYTES)
return RSN_RINGBUFF_FULL;
@ -199,7 +197,7 @@ uint8_t DMRTX::writeData2(const uint8_t* data, uint8_t length)
return RSN_ILLEGAL_LENGTH;
uint16_t space = m_fifo[1U].getSpace();
DEBUG3("DMRTX: writeData2(): dataLength/fifoLength", length, space);
DEBUG3("DMRTX::writeData2() dataLength/fifoLength", length, space);
if (space < DMR_FRAME_LENGTH_BYTES)
return RSN_RINGBUFF_FULL;

@ -83,17 +83,16 @@ void NXDNRX::reset()
/// <param name="bit"></param>
void NXDNRX::databit(bool bit)
{
m_bitBuffer <<= 1;
if (bit)
m_bitBuffer |= 0x01U;
if (m_state == NXDNRXS_DATA) {
processData(bit);
}
else {
m_bitBuffer <<= 1;
if (bit)
m_bitBuffer |= 0x01U;
bool ret = correlateSync(true);
if (ret) {
DEBUG2("NXDNRX: databit(): dataPtr", m_dataPtr);
m_state = NXDNRXS_DATA;
}
@ -111,6 +110,10 @@ void NXDNRX::databit(bool bit)
/// <param name="bit"></param>
void NXDNRX::processData(bool bit)
{
m_bitBuffer <<= 1;
if (bit)
m_bitBuffer |= 0x01U;
_WRITE_BIT(m_buffer, m_dataPtr, bit);
m_dataPtr++;
@ -120,7 +123,9 @@ void NXDNRX::processData(bool bit)
// only search for a sync in the right place +-2 bits
if (m_dataPtr >= (NXDN_FSW_LENGTH_BITS - 2U) && m_dataPtr <= (NXDN_FSW_LENGTH_BITS + 2U)) {
correlateSync();
if (correlateSync()) {
DEBUG2("NXDNRX::processData() sync found pos", m_dataPtr - NXDN_FSW_LENGTH_BITS);
}
}
// process frame
@ -129,7 +134,7 @@ void NXDNRX::processData(bool bit)
// we've not seen a data sync for too long, signal sync lost and change to NXDNRXS_NONE
if (m_lostCount == 0U) {
DEBUG1("NXDNRX: processData(): sync timed out, lost lock");
DEBUG1("NXDNRX::processData() sync timed out, lost lock");
io.setDecode(false);
@ -137,8 +142,6 @@ void NXDNRX::processData(bool bit)
reset();
}
else {
DEBUG2("NXDNRX: processData(): sync found pos", m_dataPtr);
m_outBuffer[0U] = m_lostCount == (MAX_FSW_FRAMES - 1U) ? 0x01U : 0x00U; // set sync flag
serial.writeNXDNData(m_outBuffer, NXDN_FRAME_LENGTH_BYTES + 1U);
@ -164,7 +167,7 @@ bool NXDNRX::correlateSync(bool first)
// fuzzy matching of the data sync bit sequence
uint8_t errs = countBits64((m_bitBuffer & NXDN_FSW_BITS_MASK) ^ NXDN_FSW_BITS);
if (errs <= maxErrs) {
DEBUG2("NXDNRX: correlateSync(): correlateSync errs", errs);
DEBUG2("NXDNRX::correlateSync() sync errs", errs);
if (first) {
// unpack sync bytes
@ -176,13 +179,13 @@ bool NXDNRX::correlateSync(bool first)
for (uint8_t i = 0U; i < NXDN_FSW_BYTES_LENGTH; i++)
m_buffer[i] = sync[i];
DEBUG4("NXDNRX: correlateSync(): sync [b0 - b2]", m_buffer[0], m_buffer[1], m_buffer[2]);
DEBUG4("NXDNRX::correlateSync() sync [b0 - b2]", m_buffer[0], m_buffer[1], m_buffer[2]);
}
m_lostCount = MAX_FSW_FRAMES;
m_dataPtr = NXDN_FSW_LENGTH_BITS;
DEBUG2("NXDNRX: correlateSync(): dataPtr", m_dataPtr);
DEBUG2("NXDNRX::correlateSync() dataPtr", m_dataPtr - NXDN_FSW_LENGTH_BITS);
return true;
}

@ -91,8 +91,6 @@ void NXDNTX::process()
return;
createData();
DEBUG2("NXDNTX: process(): poLen", m_poLen);
}
if (m_poLen > 0U) {
@ -127,7 +125,7 @@ uint8_t NXDNTX::writeData(const uint8_t* data, uint16_t length)
return RSN_ILLEGAL_LENGTH;
uint16_t space = m_fifo.getSpace();
DEBUG3("NXDNTX: writeData(): dataLength/fifoLength", length, space);
DEBUG3("NXDNTX::writeData() dataLength/fifoLength", length, space);
if (space < NXDN_FRAME_LENGTH_BYTES)
return RSN_RINGBUFF_FULL;
@ -212,7 +210,7 @@ void NXDNTX::createData()
m_poBuffer[m_poLen++] = NXDN_PREAMBLE[2U];
}
else {
DEBUG2("NXDNTX: createData(): fifoSpace", m_fifo.getSpace());
DEBUG2("NXDNTX::createData() fifoSpace", m_fifo.getSpace());
for (uint8_t i = 0U; i < NXDN_FRAME_LENGTH_BYTES; i++) {
m_poBuffer[m_poLen++] = m_fifo.get();
}

@ -145,7 +145,7 @@ void P25RX::processBit(bool bit)
{
// process NID
if (m_dataPtr == P25_SYNC_LENGTH_BITS + P25_NID_LENGTH_BITS + 1) {
DEBUG3("P25RX: processBit(): dataPtr/endPtr", m_dataPtr, m_endPtr);
DEBUG3("P25RX::processBit() dataPtr/endPtr", m_dataPtr, m_endPtr);
if (!decodeNid()) {
io.setDecode(false);
@ -157,13 +157,13 @@ void P25RX::processBit(bool bit)
switch (m_duid) {
case P25_DUID_HDU:
{
DEBUG2("P25RX: processBit(): sync found in HDU pos", m_dataPtr);
DEBUG2("P25RX::processBit() sync found in HDU pos", m_dataPtr);
m_endPtr = P25_HDU_FRAME_LENGTH_BITS;
}
break;
case P25_DUID_TDU:
{
DEBUG2("P25RX: processBit(): sync found in TDU pos", m_dataPtr);
DEBUG2("P25RX::processBit() sync found in TDU pos", m_dataPtr);
m_endPtr = P25_TDU_FRAME_LENGTH_BITS;
}
break;
@ -173,7 +173,7 @@ void P25RX::processBit(bool bit)
return;
case P25_DUID_TSDU:
{
DEBUG2("P25RX: processBit(): sync found in TSDU pos", m_dataPtr);
DEBUG2("P25RX::processBit() sync found in TSDU pos", m_dataPtr);
m_endPtr = P25_TSDU_FRAME_LENGTH_BITS;
}
break;
@ -187,13 +187,13 @@ void P25RX::processBit(bool bit)
return;
case P25_DUID_TDULC:
{
DEBUG2("P25RX: processBit(): sync found in TDULC pos", m_dataPtr);
DEBUG2("P25RX::processBit() sync found in TDULC pos", m_dataPtr);
m_endPtr = P25_TDULC_FRAME_LENGTH_BITS;
}
break;
default:
{
DEBUG3("P25RX: processBit(): illegal DUID in NID", m_nac, m_duid);
DEBUG3("P25RX::processBit() illegal DUID in NID", m_nac, m_duid);
reset();
}
return;
@ -246,7 +246,7 @@ void P25RX::processVoice(bool bit)
// process NID
if (m_dataPtr == P25_SYNC_LENGTH_BITS + P25_NID_LENGTH_BITS + 1) {
DEBUG3("P25RX: processVoice(): dataPtr/endPtr", m_dataPtr, m_endPtr);
DEBUG3("P25RX::processVoice() dataPtr/endPtr", m_dataPtr, m_endPtr);
if (!decodeNid()) {
io.setDecode(false);
@ -258,7 +258,7 @@ void P25RX::processVoice(bool bit)
switch (m_duid) {
case P25_DUID_TDU:
{
DEBUG2("P25RX: processVoice(): sync found in TDU pos", m_dataPtr);
DEBUG2("P25RX::processVoice() sync found in TDU pos", m_dataPtr);
m_endPtr = P25_TDU_FRAME_LENGTH_BITS;
}
break;
@ -270,7 +270,7 @@ void P25RX::processVoice(bool bit)
return;
default:
{
DEBUG3("P25RX: processVoice(): illegal DUID in NID", m_nac, m_duid);
DEBUG3("P25RX::processVoice() illegal DUID in NID", m_nac, m_duid);
reset();
}
return;
@ -281,7 +281,7 @@ void P25RX::processVoice(bool bit)
// if we've reached the end pointer and the DUID is a TDU; send it
if (m_dataPtr == m_endPtr && m_duid == P25_DUID_TDU)
{
DEBUG2("P25RX: processVoice(): sync found in TDU pos", m_dataPtr);
DEBUG2("P25RX::processVoice() sync found in TDU pos", m_dataPtr);
uint8_t frame[P25_TDU_FRAME_LENGTH_BYTES + 1U];
::memcpy(frame + 1U, m_buffer, m_endPtr / 8U);
@ -301,7 +301,7 @@ void P25RX::processVoice(bool bit)
// we've not seen a data sync for too long, signal sync lost and change to P25RXS_NONE
if (m_lostCount == 0U) {
DEBUG1("P25RX: processVoice(): sync timeout in LDU, lost lock");
DEBUG1("P25RX::processVoice() sync timeout in LDU, lost lock");
io.setDecode(false);
@ -309,7 +309,7 @@ void P25RX::processVoice(bool bit)
reset();
}
else {
DEBUG2("P25RX: processVoice(): sync found in LDU pos", m_dataPtr);
DEBUG2("P25RX::processVoice() sync found in LDU pos", m_dataPtr);
uint8_t frame[P25_LDU_FRAME_LENGTH_BYTES + 3U];
::memcpy(frame + 1U, m_buffer, m_endPtr / 8U);
@ -342,7 +342,7 @@ void P25RX::processData(bool bit)
// process NID
if (m_dataPtr == P25_SYNC_LENGTH_BITS + P25_NID_LENGTH_BITS + 1) {
DEBUG3("P25RX: processVoice(): dataPtr/endPtr", m_dataPtr, m_endPtr);
DEBUG3("P25RX::processData() dataPtr/endPtr", m_dataPtr, m_endPtr);
if (!decodeNid()) {
io.setDecode(false);
@ -357,7 +357,7 @@ void P25RX::processData(bool bit)
return;
default:
{
DEBUG3("P25RX: processData(): illegal DUID in NID", m_nac, m_duid);
DEBUG3("P25RX::processData() illegal DUID in NID", m_nac, m_duid);
reset();
}
return;
@ -371,7 +371,7 @@ void P25RX::processData(bool bit)
// we've not seen a data sync for too long, signal sync lost and change to P25RXS_NONE
if (m_lostCount == 0U) {
DEBUG1("P25RX: processData(): sync timeout in PDU, lost lock");
DEBUG1("P25RX::processData() sync timeout in PDU, lost lock");
io.setDecode(false);
@ -379,7 +379,7 @@ void P25RX::processData(bool bit)
reset();
}
else {
DEBUG2("P25RX: processData(): sync found in PDU pos", m_dataPtr);
DEBUG2("P25RX::processData() sync found in PDU pos", m_dataPtr);
uint8_t frame[P25_LDU_FRAME_LENGTH_BYTES + 1U];
::memcpy(frame + 1U, m_buffer, m_endPtr / 8U);
@ -407,7 +407,7 @@ bool P25RX::correlateSync()
if (errs <= maxErrs) {
::memset(m_buffer, 0x00U, P25_LDU_FRAME_LENGTH_BYTES + 3U);
DEBUG2("P25RX: correlateSync(): correlateSync errs", errs);
DEBUG2("P25RX::correlateSync() sync errs", errs);
// unpack sync bytes
uint8_t sync[P25_SYNC_BYTES_LENGTH];
@ -418,8 +418,8 @@ bool P25RX::correlateSync()
sync[4U] = (uint8_t)((m_bitBuffer >> 8) & 0xFFU);
sync[5U] = (uint8_t)((m_bitBuffer >> 0) & 0xFFU);
DEBUG4("P25RX: correlateSync(): sync [b0 - b2]", sync[0], sync[1], sync[2]);
DEBUG4("P25RX: correlateSync(): sync [b3 - b5]", sync[3], sync[4], sync[5]);
DEBUG4("P25RX::correlateSync() sync [b0 - b2]", sync[0], sync[1], sync[2]);
DEBUG4("P25RX::correlateSync() sync [b3 - b5]", sync[3], sync[4], sync[5]);
for (uint8_t i = 0U; i < P25_SYNC_BYTES_LENGTH; i++)
m_buffer[i] = sync[i];
@ -434,7 +434,7 @@ bool P25RX::correlateSync()
m_lostCount = MAX_SYNC_FRAMES;
m_dataPtr = P25_SYNC_LENGTH_BITS;
DEBUG3("P25RX: correlateSync(): dataPtr/endPtr", m_dataPtr, m_endPtr);
DEBUG3("P25RX::correlateSync() dataPtr/endPtr", m_dataPtr, m_endPtr);
return true;
}
@ -453,18 +453,18 @@ bool P25RX::decodeNid()
if (m_nac == 0xF7EU) {
m_duid = nid[1U] & 0x0FU;
DEBUG2("P25RX: decodeNid(): DUID for xDU", m_duid);
DEBUG2("P25RX::decodeNid() DUID for xDU", m_duid);
return true;
}
uint16_t nac = (nid[0U] << 4) | ((nid[1U] & 0xF0U) >> 4);
if (nac == m_nac) {
m_duid = nid[1U] & 0x0FU;
DEBUG2("P25RX: decodeNid(): DUID for xDU", m_duid);
DEBUG2("P25RX::decodeNid() DUID for xDU", m_duid);
return true;
}
else {
DEBUG3("P25RX: decodeNid(): invalid NAC found; nac != m_nac", nac, m_nac);
DEBUG3("P25RX::decodeNid() invalid NAC found; nac != m_nac", nac, m_nac);
}
return false;

@ -94,8 +94,6 @@ void P25TX::process()
createData();
}
DEBUG2("P25TX: process(): poLen", m_poLen);
}
if (m_poLen > 0U) {
@ -130,7 +128,7 @@ uint8_t P25TX::writeData(const uint8_t* data, uint8_t length)
return RSN_ILLEGAL_LENGTH;
uint16_t space = m_fifo.getSpace();
DEBUG3("P25TX: writeData(): dataLength/fifoLength", length, space);
DEBUG3("P25TX::writeData() dataLength/fifoLength", length, space);
if (space < length) {
m_fifo.reset();
return RSN_RINGBUFF_FULL;
@ -223,7 +221,7 @@ void P25TX::createData()
}
else {
uint8_t length = m_fifo.get();
DEBUG3("P25TX: createData(): dataLength/fifoSpace", length, m_fifo.getSpace());
DEBUG3("P25TX::createData() dataLength/fifoSpace", length, m_fifo.getSpace());
for (uint8_t i = 0U; i < length; i++) {
m_poBuffer[m_poLen++] = m_fifo.get();
}

Loading…
Cancel
Save

Powered by TurnKey Linux.