diff --git a/Defines.h b/Defines.h index f87ca05..138451a 100644 --- a/Defines.h +++ b/Defines.h @@ -144,4 +144,8 @@ const uint8_t BIT_MASK_TABLE[] = { 0x80U, 0x40U, 0x20U, 0x10U, 0x08U, 0x04U, 0x0 #define _WRITE_BIT(p, i, b) p[(i) >> 3] = (b) ? (p[(i) >> 3] | BIT_MASK_TABLE[(i) & 7]) : (p[(i)>>3] & ~BIT_MASK_TABLE[(i) & 7]) #define _READ_BIT(p, i) ((p[(i) >> 3] & BIT_MASK_TABLE[(i) & 7]) >> (7 - ((i) & 7))) +#if !defined(ENABLE_DMR) && !defined(ENABLE_P25) && !defined(ENABLE_NXDN) +#error "No protocol support compiled in? Must enable at least one: ENABLE_DMR, ENABLE_P25 and/or ENABLE_NXDN." +#endif + #endif // __DEFINES_H__ diff --git a/FirmwareMain.cpp b/FirmwareMain.cpp index a63dea8..a0e5a35 100644 --- a/FirmwareMain.cpp +++ b/FirmwareMain.cpp @@ -66,6 +66,7 @@ bool m_dcd = false; uint8_t m_control; /** DMR BS */ +#if defined(ENABLE_DMR) #if defined(DUPLEX) dmr::DMRIdleRX dmrIdleRX; dmr::DMRRX dmrRX; @@ -75,19 +76,30 @@ dmr::DMRTX dmrTX; /** DMR MS-DMO */ dmr::DMRDMORX dmrDMORX; dmr::DMRDMOTX dmrDMOTX; +#endif /** P25 */ +#if defined(ENABLE_P25) p25::P25RX p25RX; p25::P25TX p25TX; +#endif /** NXDN */ +#if defined(ENABLE_NXDN) nxdn::NXDNRX nxdnRX; nxdn::NXDNTX nxdnTX; +#endif /** Calibration */ +#if defined(ENABLE_DMR) dmr::CalDMR calDMR; +#endif +#if defined(ENABLE_P25) p25::CalP25 calP25; +#endif +#if defined(ENABLE_NXDN) nxdn::CalNXDN calNXDN; +#endif CalRSSI calRSSI; /** CW */ @@ -113,6 +125,7 @@ void loop() io.process(); // The following is for transmitting +#if defined(ENABLE_DMR) if (m_dmrEnable && m_modemState == STATE_DMR) { #if defined(DUPLEX) if (m_duplex) @@ -121,25 +134,36 @@ void loop() dmrDMOTX.process(); #else dmrDMOTX.process(); -#endif +#endif // defined(DUPLEX) } +#endif // defined(ENABLE_DMR) +#if defined(ENABLE_P25) if (m_p25Enable && m_modemState == STATE_P25) p25TX.process(); +#endif // defined(ENABLE_P25) +#if defined(ENABLE_NXDN) if (m_nxdnEnable && m_modemState == STATE_NXDN) nxdnTX.process(); +#endif // defined(ENABLE_NXDN) +#if defined(ENABLE_DMR) if (m_modemState == STATE_DMR_DMO_CAL_1K || m_modemState == STATE_DMR_CAL_1K || m_modemState == STATE_DMR_LF_CAL || m_modemState == STATE_DMR_CAL || m_modemState == STATE_INT_CAL) calDMR.process(); +#endif // defined(ENABLE_DMR) +#if defined(ENABLE_P25) if (m_modemState == STATE_P25_CAL_1K || m_modemState == STATE_P25_CAL) calP25.process(); +#endif // defined(ENABLE_P25) +#if defined(ENABLE_NXDN) if (m_modemState == STATE_NXDN_CAL) calNXDN.process(); +#endif // defined(ENABLE_NXDN) if (m_modemState == STATE_RSSI_CAL) calRSSI.process(); diff --git a/Globals.h b/Globals.h index b1e18c9..022afba 100644 --- a/Globals.h +++ b/Globals.h @@ -110,28 +110,40 @@ extern SerialPort serial; extern IO io; /** DMR BS */ +#if defined(ENABLE_DMR) #if defined(DUPLEX) extern dmr::DMRIdleRX dmrIdleRX; extern dmr::DMRRX dmrRX; -#endif +#endif // defined(DUPLEX) extern dmr::DMRTX dmrTX; /** DMR MS-DMO */ extern dmr::DMRDMORX dmrDMORX; extern dmr::DMRDMOTX dmrDMOTX; +#endif // defined(ENABLE_DMR) /** P25 BS */ +#if defined(ENABLE_P25) extern p25::P25RX p25RX; extern p25::P25TX p25TX; +#endif // defined(ENABLE_P25) /** NXDN BS */ +#if defined(ENABLE_NXDN) extern nxdn::NXDNRX nxdnRX; extern nxdn::NXDNTX nxdnTX; +#endif // defined(ENABLE_NXDN) /** Calibration */ +#if defined(ENABLE_DMR) extern dmr::CalDMR calDMR; +#endif // defined(ENABLE_DMR) +#if defined(ENABLE_P25) extern p25::CalP25 calP25; +#endif // defined(ENABLE_P25) +#if defined(ENABLE_NXDN) extern nxdn::CalNXDN calNXDN; +#endif // defined(ENABLE_NXDN) extern CalRSSI calRSSI; /** CW */ diff --git a/IO.cpp b/IO.cpp index 9e5e155..f432e3e 100644 --- a/IO.cpp +++ b/IO.cpp @@ -145,6 +145,7 @@ void IO::process() m_rxBuffer.get(bit, control); if (m_modemState == STATE_DMR) { +#if defined(ENABLE_DMR) /** Digital Mobile Radio */ #if defined(DUPLEX) if (m_duplex) { @@ -157,15 +158,20 @@ void IO::process() dmrDMORX.databit(bit); #else dmrDMORX.databit(bit); -#endif +#endif // defined(DUPLEX) +#endif // defined(ENABLE_DMR) } else if (m_modemState == STATE_P25) { +#if defined(ENABLE_P25) /** Project 25 */ p25RX.databit(bit); +#endif // defined(ENABLE_P25) } else if (m_modemState == STATE_NXDN) { +#if defined(ENABLE_NXDN) /** Next Generation Digital Narrowband */ nxdnRX.databit(bit); +#endif // defined(ENABLE_NXDN) } } } diff --git a/SerialPort.cpp b/SerialPort.cpp index 0d24308..035d965 100644 --- a/SerialPort.cpp +++ b/SerialPort.cpp @@ -198,13 +198,20 @@ void SerialPort::process() break; case CMD_CAL_DATA: + err = RSN_NAK; +#if defined(ENABLE_DMR) if (m_modemState == STATE_DMR_DMO_CAL_1K || m_modemState == STATE_DMR_CAL_1K || m_modemState == STATE_DMR_LF_CAL || m_modemState == STATE_DMR_CAL) err = calDMR.write(m_buffer + 3U, m_len - 3U); +#endif // defined(ENABLE_DMR) +#if defined(ENABLE_P25) if (m_modemState == STATE_P25_CAL_1K || m_modemState == STATE_P25_CAL) err = calP25.write(m_buffer + 3U, m_len - 3U); +#endif // defined(ENABLE_P25) +#if defined(ENABLE_P25) if (m_modemState == STATE_NXDN_CAL) err = calNXDN.write(m_buffer + 3U, m_len - 3U); +#endif // defined(ENABLE_P25) if (err == RSN_OK) { sendACK(); @@ -249,6 +256,7 @@ void SerialPort::process() /** Digital Mobile Radio */ case CMD_DMR_DATA1: +#if defined(ENABLE_DMR) #if defined(DUPLEX) if (m_dmrEnable) { if (m_modemState == STATE_IDLE || m_modemState == STATE_DMR) { @@ -266,10 +274,15 @@ void SerialPort::process() } #else sendNAK(RSN_INVALID_REQUEST); -#endif +#endif // defined(DUPLEX) +#else + DEBUG2("SerialPort: process() received invalid DMR data", err); + sendNAK(err); +#endif // defined(ENABLE_DMR) break; case CMD_DMR_DATA2: +#if defined(ENABLE_DMR) if (m_dmrEnable) { if (m_modemState == STATE_IDLE || m_modemState == STATE_DMR) { #if defined(DUPLEX) @@ -279,9 +292,12 @@ void SerialPort::process() err = dmrDMOTX.writeData(m_buffer + 3U, m_len - 3U); #else err = dmrDMOTX.writeData(m_buffer + 3U, m_len - 3U); -#endif +#endif // defined(DUPLEX) } } +#else + err = RSN_NAK; +#endif // defined(ENABLE_DMR) if (err == RSN_OK) { if (m_modemState == STATE_IDLE) setMode(STATE_DMR); @@ -293,6 +309,7 @@ void SerialPort::process() break; case CMD_DMR_START: +#if defined(ENABLE_DMR) #if defined(DUPLEX) if (m_dmrEnable) { err = RSN_INVALID_DMR_START; @@ -315,10 +332,14 @@ void SerialPort::process() } #else sendNAK(RSN_INVALID_REQUEST); -#endif +#endif // defined(DUPLEX) +#else + sendNAK(RSN_INVALID_REQUEST); +#endif // defined(ENABLE_DMR) break; case CMD_DMR_SHORTLC: +#if defined(ENABLE_DMR) #if defined(DUPLEX) if (m_dmrEnable) err = dmrTX.writeShortLC(m_buffer + 3U, m_len - 3U); @@ -328,10 +349,14 @@ void SerialPort::process() } #else sendNAK(RSN_INVALID_REQUEST); -#endif +#endif // defined(DUPLEX) +#else + sendNAK(RSN_INVALID_REQUEST); +#endif // defined(ENABLE_DMR) break; case CMD_DMR_ABORT: +#if defined(ENABLE_DMR) #if defined(DUPLEX) if (m_dmrEnable) err = dmrTX.writeAbort(m_buffer + 3U, m_len - 3U); @@ -341,10 +366,14 @@ void SerialPort::process() } #else sendNAK(RSN_INVALID_REQUEST); -#endif +#endif // defined(DUPLEX) +#else + sendNAK(RSN_INVALID_REQUEST); +#endif // defined(ENABLE_DMR) break; case CMD_DMR_CACH_AT_CTRL: +#if defined(ENABLE_DMR) #if defined(DUPLEX) if (m_dmrEnable) { err = RSN_INVALID_REQUEST; @@ -359,11 +388,15 @@ void SerialPort::process() } #else sendNAK(RSN_INVALID_REQUEST); -#endif +#endif // defined(DUPLEX) +#else + sendNAK(RSN_INVALID_REQUEST); +#endif // defined(ENABLE_DMR) break; /** Project 25 */ case CMD_P25_DATA: +#if defined(ENABLE_P25) if (m_p25Enable) { if (m_modemState == STATE_IDLE || m_modemState == STATE_P25) err = p25TX.writeData(m_buffer + 3U, m_len - 3U); @@ -376,17 +409,25 @@ void SerialPort::process() DEBUG2("SerialPort: process(): Received invalid P25 data", err); sendNAK(err); } +#else + sendNAK(RSN_INVALID_REQUEST); +#endif // defined(ENABLE_P25) break; case CMD_P25_CLEAR: +#if defined(ENABLE_P25) if (m_p25Enable) { if (m_modemState == STATE_IDLE || m_modemState == STATE_P25) p25TX.clear(); } +#else + sendNAK(RSN_INVALID_REQUEST); +#endif // defined(ENABLE_P25) break; /** Next Generation Digital Narrowband */ case CMD_NXDN_DATA: +#if defined(ENABLE_NXDN) if (m_nxdnEnable) { if (m_modemState == STATE_IDLE || m_modemState == STATE_NXDN) err = nxdnTX.writeData(m_buffer + 3U, m_len - 3U); @@ -399,6 +440,9 @@ void SerialPort::process() DEBUG2("SerialPort: process(): Received invalid NXDN data", err); sendNAK(err); } +#else + sendNAK(RSN_INVALID_REQUEST); +#endif // defined(ENABLE_NXDN) break; default: @@ -922,6 +966,7 @@ void SerialPort::getStatus() reply[6U] = 0U; +#if defined(ENABLE_DMR) if (m_dmrEnable) { #if defined(DUPLEX) if (m_duplex) { @@ -934,23 +979,35 @@ void SerialPort::getStatus() #else reply[7U] = 10U; reply[8U] = dmrDMOTX.getSpace(); -#endif +#endif // defined(DUPLEX) } else { reply[7U] = 0U; reply[8U] = 0U; } +#else + reply[7U] = 0U; + reply[8U] = 0U; +#endif // defined(ENABLE_DMR) reply[9U] = 0U; +#if defined(ENABLE_P25) if (m_p25Enable) reply[10U] = p25TX.getSpace(); else reply[10U] = 0U; +#else + reply[10U] = 0U; +#endif // defined(ENABLE_P25) +#if defined(ENABLE_NXDN) if (m_nxdnEnable) reply[11U] = nxdnTX.getSpace(); else reply[11U] = 0U; +#else + reply[11U] = 0U; +#endif // defined(ENABLE_NXDN) writeInt(1U, reply, 12); } @@ -1089,20 +1146,28 @@ uint8_t SerialPort::setConfig(const uint8_t* data, uint8_t length) io.setDeviations(dmrTXLevel, p25TXLevel, nxdnTXLevel); +#if defined(ENABLE_P25) p25TX.setPreambleCount(fdmaPreamble); +#endif // defined(ENABLE_P25) +#if defined(ENABLE_DMR) dmrDMOTX.setPreambleCount(fdmaPreamble); +#endif // defined(ENABLE_DMR) //nxdnTX.setPreambleCount(fdmaPreamble); +#if defined(ENABLE_P25) p25RX.setNAC(nac); +#endif // defined(ENABLE_P25) +#if defined(ENABLE_DMR) #if defined(DUPLEX) dmrTX.setColorCode(colorCode); dmrRX.setColorCode(colorCode); dmrRX.setRxDelay(dmrRxDelay); dmrIdleRX.setColorCode(colorCode); -#endif +#endif // defined(DUPLEX) dmrDMORX.setColorCode(colorCode); +#endif // defined(ENABLE_DMR) if (m_modemState != STATE_IDLE && isCalState(m_modemState)) { io.updateCal(calRelativeState(m_modemState)); @@ -1149,116 +1214,176 @@ void SerialPort::setMode(DVM_STATE modemState) switch (modemState) { case STATE_DMR: DEBUG1("SerialPort: setMode(): mode set to DMR"); +#if defined(ENABLE_P25) p25RX.reset(); +#endif // defined(ENABLE_P25) +#if defined(ENABLE_NXDN) nxdnRX.reset(); +#endif // defined(ENABLE_NXDN) cwIdTX.reset(); break; case STATE_P25: DEBUG1("SerialPort: setMode(): mode set to P25"); +#if defined(ENABLE_DMR) #if defined(DUPLEX) dmrIdleRX.reset(); dmrRX.reset(); -#endif +#endif // defined(DUPLEX) dmrDMORX.reset(); +#endif // defined(ENABLE_DMR) +#if defined(ENABLE_NXDN) nxdnRX.reset(); +#endif // defined(ENABLE_NXDN) cwIdTX.reset(); break; case STATE_NXDN: DEBUG1("SerialPort: setMode(): mode set to NXDN"); +#if defined(ENABLE_DMR) #if defined(DUPLEX) dmrIdleRX.reset(); dmrRX.reset(); -#endif +#endif // defined(DUPLEX) dmrDMORX.reset(); +#endif // defined(ENABLE_DMR) +#if defined(ENABLE_P25) p25RX.reset(); +#endif // defined(ENABLE_P25) cwIdTX.reset(); break; case STATE_DMR_CAL: DEBUG1("SerialPort: setMode(): mode set to DMR Calibrate"); +#if defined(ENABLE_DMR) #if defined(DUPLEX) dmrIdleRX.reset(); dmrRX.reset(); -#endif +#endif // defined(DUPLEX) dmrDMORX.reset(); +#endif // defined(ENABLE_DMR) +#if defined(ENABLE_P25) p25RX.reset(); +#endif // defined(ENABLE_P25) +#if defined(ENABLE_NXDN) nxdnRX.reset(); +#endif // defined(ENABLE_NXDN) cwIdTX.reset(); break; case STATE_P25_CAL: DEBUG1("SerialPort: setMode(): mode set to P25 Calibrate"); +#if defined(ENABLE_DMR) #if defined(DUPLEX) dmrIdleRX.reset(); dmrRX.reset(); -#endif +#endif // defined(DUPLEX) dmrDMORX.reset(); +#endif // defined(ENABLE_DMR) +#if defined(ENABLE_P25) p25RX.reset(); +#endif // defined(ENABLE_P25) +#if defined(ENABLE_NXDN) nxdnRX.reset(); +#endif // defined(ENABLE_NXDN) cwIdTX.reset(); break; case STATE_NXDN_CAL: DEBUG1("SerialPort: setMode(): mode set to NXDN Calibrate"); +#if defined(ENABLE_DMR) #if defined(DUPLEX) dmrIdleRX.reset(); dmrRX.reset(); -#endif +#endif // defined(DUPLEX) dmrDMORX.reset(); +#endif // defined(ENABLE_DMR) +#if defined(ENABLE_P25) p25RX.reset(); +#endif // defined(ENABLE_P25) +#if defined(ENABLE_NXDN) nxdnRX.reset(); +#endif // defined(ENABLE_NXDN) cwIdTX.reset(); break; case STATE_RSSI_CAL: DEBUG1("SerialPort: setMode(): mode set to RSSI Calibrate"); +#if defined(ENABLE_DMR) #if defined(DUPLEX) dmrIdleRX.reset(); dmrRX.reset(); -#endif +#endif // defined(DUPLEX) dmrDMORX.reset(); +#endif // defined(ENABLE_DMR) +#if defined(ENABLE_P25) p25RX.reset(); +#endif // defined(ENABLE_P25) +#if defined(ENABLE_NXDN) nxdnRX.reset(); +#endif // defined(ENABLE_NXDN) cwIdTX.reset(); break; case STATE_DMR_LF_CAL: DEBUG1("SerialPort: setMode(): mode set to DMR 80Hz Calibrate"); +#if defined(ENABLE_DMR) #if defined(DUPLEX) dmrIdleRX.reset(); dmrRX.reset(); -#endif +#endif // defined(DUPLEX) dmrDMORX.reset(); +#endif // defined(ENABLE_DMR) +#if defined(ENABLE_P25) p25RX.reset(); +#endif // defined(ENABLE_P25) +#if defined(ENABLE_NXDN) nxdnRX.reset(); +#endif // defined(ENABLE_NXDN) cwIdTX.reset(); break; case STATE_DMR_CAL_1K: DEBUG1("SerialPort: setMode(): mode set to DMR BS 1031Hz Calibrate"); +#if defined(ENABLE_DMR) #if defined(DUPLEX) dmrIdleRX.reset(); dmrRX.reset(); -#endif +#endif // defined(DUPLEX) dmrDMORX.reset(); +#endif // defined(ENABLE_DMR) +#if defined(ENABLE_P25) p25RX.reset(); +#endif // defined(ENABLE_P25) +#if defined(ENABLE_NXDN) nxdnRX.reset(); +#endif // defined(ENABLE_NXDN) cwIdTX.reset(); break; case STATE_DMR_DMO_CAL_1K: DEBUG1("SerialPort: setMode(): mode set to DMR MS 1031Hz Calibrate"); +#if defined(ENABLE_DMR) #if defined(DUPLEX) dmrIdleRX.reset(); dmrRX.reset(); -#endif +#endif // defined(DUPLEX) dmrDMORX.reset(); +#endif // defined(ENABLE_DMR) +#if defined(ENABLE_P25) p25RX.reset(); +#endif // defined(ENABLE_P25) +#if defined(ENABLE_NXDN) nxdnRX.reset(); +#endif // defined(ENABLE_NXDN) cwIdTX.reset(); break; case STATE_P25_CAL_1K: DEBUG1("SerialPort: setMode(): mode set to P25 1011Hz Calibrate"); +#if defined(ENABLE_DMR) #if defined(DUPLEX) dmrIdleRX.reset(); dmrRX.reset(); -#endif +#endif // defined(DUPLEX) dmrDMORX.reset(); +#endif // defined(ENABLE_DMR) +#if defined(ENABLE_P25) p25RX.reset(); +#endif // defined(ENABLE_P25) +#if defined(ENABLE_NXDN) nxdnRX.reset(); +#endif // defined(ENABLE_NXDN) cwIdTX.reset(); break; default: diff --git a/dmr/CalDMR.cpp b/dmr/CalDMR.cpp index 79d9152..4d09b0c 100644 --- a/dmr/CalDMR.cpp +++ b/dmr/CalDMR.cpp @@ -34,6 +34,8 @@ using namespace dmr; +#if defined(ENABLE_DMR) + // --------------------------------------------------------------------------- // Constants // --------------------------------------------------------------------------- @@ -289,3 +291,5 @@ uint8_t CalDMR::write(const uint8_t* data, uint8_t length) return RSN_OK; } + +#endif // defined(ENABLE_DMR) \ No newline at end of file diff --git a/dmr/CalDMR.h b/dmr/CalDMR.h index 5d0b097..2b17f05 100644 --- a/dmr/CalDMR.h +++ b/dmr/CalDMR.h @@ -35,6 +35,8 @@ #include "Defines.h" #include "dmr/DMRDefines.h" +#if defined(ENABLE_DMR) + namespace dmr { // --------------------------------------------------------------------------- @@ -87,4 +89,6 @@ namespace dmr }; } // namespace dmr +#endif // defined(ENABLE_DMR) + #endif // __CAL_DMR_H__ diff --git a/dmr/DMRDMORX.cpp b/dmr/DMRDMORX.cpp index 1f18862..23e2de5 100644 --- a/dmr/DMRDMORX.cpp +++ b/dmr/DMRDMORX.cpp @@ -36,6 +36,8 @@ using namespace dmr; +#if defined(ENABLE_DMR) + // --------------------------------------------------------------------------- // Constants // --------------------------------------------------------------------------- @@ -380,3 +382,4 @@ void DMRDMORX::writeRSSIData(uint8_t* frame) #endif } +#endif // defined(ENABLE_DMR) diff --git a/dmr/DMRDMORX.h b/dmr/DMRDMORX.h index 0fae4e1..b325157 100644 --- a/dmr/DMRDMORX.h +++ b/dmr/DMRDMORX.h @@ -35,6 +35,8 @@ #include "Defines.h" #include "dmr/DMRDefines.h" +#if defined(ENABLE_DMR) + namespace dmr { // --------------------------------------------------------------------------- @@ -100,4 +102,6 @@ namespace dmr }; } // namespace dmr +#endif // defined(ENABLE_DMR) + #endif // __DMR_DMO_RX_H__ diff --git a/dmr/DMRDMOTX.cpp b/dmr/DMRDMOTX.cpp index ffd42e7..08b50fe 100644 --- a/dmr/DMRDMOTX.cpp +++ b/dmr/DMRDMOTX.cpp @@ -35,6 +35,8 @@ using namespace dmr; +#if defined(ENABLE_DMR) + // --------------------------------------------------------------------------- // Constants // --------------------------------------------------------------------------- @@ -175,3 +177,5 @@ void DMRDMOTX::writeByte(uint8_t c) io.write(&bit, 1); } } + +#endif // defined(ENABLE_DMR) \ No newline at end of file diff --git a/dmr/DMRDMOTX.h b/dmr/DMRDMOTX.h index cedeb2a..6ad15c0 100644 --- a/dmr/DMRDMOTX.h +++ b/dmr/DMRDMOTX.h @@ -37,6 +37,8 @@ #include "dmr/DMRDefines.h" #include "SerialBuffer.h" +#if defined(ENABLE_DMR) + namespace dmr { // --------------------------------------------------------------------------- @@ -82,4 +84,6 @@ namespace dmr }; } // namespace dmr +#endif // defined(ENABLE_DMR) + #endif // __DMR_DMO_TX_H__ diff --git a/dmr/DMRIdleRX.cpp b/dmr/DMRIdleRX.cpp index 29be454..8f3a357 100644 --- a/dmr/DMRIdleRX.cpp +++ b/dmr/DMRIdleRX.cpp @@ -35,7 +35,7 @@ using namespace dmr; -#if defined(DUPLEX) +#if defined(ENABLE_DMR) && defined(DUPLEX) // --------------------------------------------------------------------------- // Constants @@ -185,4 +185,4 @@ void DMRIdleRX::bitsToBytes(uint16_t start, uint8_t count, uint8_t* buffer) } } -#endif // DUPLEX +#endif // defined(ENABLE_DMR) && defined(DUPLEX) diff --git a/dmr/DMRIdleRX.h b/dmr/DMRIdleRX.h index 3031bb6..6459f2d 100644 --- a/dmr/DMRIdleRX.h +++ b/dmr/DMRIdleRX.h @@ -34,7 +34,7 @@ #include "Defines.h" #include "dmr/DMRDefines.h" -#if defined(DUPLEX) +#if defined(ENABLE_DMR) && defined(DUPLEX) namespace dmr { @@ -77,6 +77,6 @@ namespace dmr }; } // namespace dmr -#endif // DUPLEX +#endif // defined(ENABLE_DMR) && defined(DUPLEX) #endif // __DMR_IDLE_RX_H__ diff --git a/dmr/DMRRX.cpp b/dmr/DMRRX.cpp index 04a0ad0..384882f 100644 --- a/dmr/DMRRX.cpp +++ b/dmr/DMRRX.cpp @@ -34,7 +34,7 @@ using namespace dmr; -#if defined(DUPLEX) +#if defined(ENABLE_DMR) && defined(DUPLEX) // --------------------------------------------------------------------------- // Public Class Members @@ -106,4 +106,4 @@ void DMRRX::setRxDelay(uint8_t delay) m_slot2RX.setRxDelay(delay); } -#endif // DUPLEX +#endif // defined(ENABLE_DMR) && defined(DUPLEX) diff --git a/dmr/DMRRX.h b/dmr/DMRRX.h index 326a7fc..a659302 100644 --- a/dmr/DMRRX.h +++ b/dmr/DMRRX.h @@ -35,7 +35,7 @@ #include "Defines.h" #include "dmr/DMRSlotRX.h" -#if defined(DUPLEX) +#if defined(ENABLE_DMR) && defined(DUPLEX) namespace dmr { @@ -66,6 +66,6 @@ namespace dmr }; } // namespace dmr -#endif // DUPLEX +#endif // defined(ENABLE_DMR) && defined(DUPLEX) #endif // __DMR_RX_H__ diff --git a/dmr/DMRSlotRX.cpp b/dmr/DMRSlotRX.cpp index 6e173ac..74c8147 100644 --- a/dmr/DMRSlotRX.cpp +++ b/dmr/DMRSlotRX.cpp @@ -36,7 +36,7 @@ using namespace dmr; -#if defined(DUPLEX) +#if defined(ENABLE_DMR) && defined(DUPLEX) // --------------------------------------------------------------------------- // Constants @@ -417,4 +417,4 @@ void DMRSlotRX::writeRSSIData(uint8_t* frame) #endif } -#endif // DUPLEX +#endif // defined(ENABLE_DMR) && defined(DUPLEX) diff --git a/dmr/DMRSlotRX.h b/dmr/DMRSlotRX.h index 6d7fa0d..476ff14 100644 --- a/dmr/DMRSlotRX.h +++ b/dmr/DMRSlotRX.h @@ -35,7 +35,7 @@ #include "Defines.h" #include "dmr/DMRDefines.h" -#if defined(DUPLEX) +#if defined(ENABLE_DMR) && defined(DUPLEX) namespace dmr { @@ -110,6 +110,6 @@ namespace dmr }; } // namespace dmr -#endif // DUPLEX +#endif // defined(ENABLE_DMR) && defined(DUPLEX) #endif // __DMR_SLOT_RX_H__ diff --git a/dmr/DMRSlotType.cpp b/dmr/DMRSlotType.cpp index 1c1b29f..ea87622 100644 --- a/dmr/DMRSlotType.cpp +++ b/dmr/DMRSlotType.cpp @@ -32,6 +32,8 @@ using namespace dmr; +#if defined(ENABLE_DMR) + // --------------------------------------------------------------------------- // Constants // --------------------------------------------------------------------------- @@ -334,3 +336,5 @@ uint32_t DMRSlotType::getSyndrome1987(uint32_t pattern) const return pattern; } + +#endif // defined(ENABLE_DMR) \ No newline at end of file diff --git a/dmr/DMRSlotType.h b/dmr/DMRSlotType.h index f802980..1e2ff5f 100644 --- a/dmr/DMRSlotType.h +++ b/dmr/DMRSlotType.h @@ -32,6 +32,8 @@ #include "Defines.h" +#if defined(ENABLE_DMR) + namespace dmr { // --------------------------------------------------------------------------- @@ -57,4 +59,6 @@ namespace dmr }; } // namespace dmr +#endif // defined(ENABLE_DMR) + #endif // __DMR_SLOT_TYPE_H__ diff --git a/dmr/DMRTX.cpp b/dmr/DMRTX.cpp index 81c4d57..a35f6da 100644 --- a/dmr/DMRTX.cpp +++ b/dmr/DMRTX.cpp @@ -35,6 +35,8 @@ using namespace dmr; +#if defined(ENABLE_DMR) + // --------------------------------------------------------------------------- // Constants // --------------------------------------------------------------------------- @@ -523,3 +525,5 @@ void DMRTX::writeByte(uint8_t c, uint8_t control) io.write(&bit, 1, &controlToWrite); } } + +#endif // defined(ENABLE_DMR) diff --git a/dmr/DMRTX.h b/dmr/DMRTX.h index baf6d71..3be1ba2 100644 --- a/dmr/DMRTX.h +++ b/dmr/DMRTX.h @@ -37,6 +37,8 @@ #include "dmr/DMRDefines.h" #include "SerialBuffer.h" +#if defined(ENABLE_DMR) + namespace dmr { // --------------------------------------------------------------------------- @@ -135,4 +137,6 @@ namespace dmr }; } // namespace dmr +#endif // defined(ENABLE_DMR) + #endif // __DMR_TX_H__ diff --git a/nxdn/CalNXDN.cpp b/nxdn/CalNXDN.cpp index 7ea852d..846c2c8 100644 --- a/nxdn/CalNXDN.cpp +++ b/nxdn/CalNXDN.cpp @@ -33,6 +33,8 @@ using namespace nxdn; +#if defined(ENABLE_NXDN) + // --------------------------------------------------------------------------- // Constants // --------------------------------------------------------------------------- @@ -138,3 +140,5 @@ uint8_t CalNXDN::write(const uint8_t* data, uint16_t length) return RSN_OK; } + +#endif // defined(ENABLE_NXDN) \ No newline at end of file diff --git a/nxdn/CalNXDN.h b/nxdn/CalNXDN.h index ecb45cc..bddb765 100644 --- a/nxdn/CalNXDN.h +++ b/nxdn/CalNXDN.h @@ -35,6 +35,8 @@ #include "Defines.h" #include "nxdn/NXDNDefines.h" +#if defined(ENABLE_NXDN) + namespace nxdn { // --------------------------------------------------------------------------- @@ -70,4 +72,6 @@ namespace nxdn }; } // namespace nxdn +#endif // defined(ENABLE_NXDN) + #endif // __CAL_NXDN_H__ diff --git a/nxdn/NXDNRX.cpp b/nxdn/NXDNRX.cpp index e0c8550..51bf8bf 100644 --- a/nxdn/NXDNRX.cpp +++ b/nxdn/NXDNRX.cpp @@ -34,6 +34,8 @@ using namespace nxdn; +#if defined(ENABLE_NXDN) + // --------------------------------------------------------------------------- // Constants // --------------------------------------------------------------------------- @@ -196,3 +198,5 @@ bool NXDNRX::correlateSync(bool first) return false; } + +#endif // defined(ENABLE_NXDN) \ No newline at end of file diff --git a/nxdn/NXDNRX.h b/nxdn/NXDNRX.h index 56669d5..ec13604 100644 --- a/nxdn/NXDNRX.h +++ b/nxdn/NXDNRX.h @@ -34,6 +34,7 @@ #include "Defines.h" #include "nxdn/NXDNDefines.h" +#if defined(ENABLE_NXDN) namespace nxdn { // --------------------------------------------------------------------------- @@ -81,5 +82,6 @@ namespace nxdn bool correlateSync(bool first = false); }; } // namespace nxdn +#endif // defined(ENABLE_NXDN) #endif // __NXDN_RX_H__ diff --git a/nxdn/NXDNTX.cpp b/nxdn/NXDNTX.cpp index 5aad090..c641583 100644 --- a/nxdn/NXDNTX.cpp +++ b/nxdn/NXDNTX.cpp @@ -35,6 +35,8 @@ using namespace nxdn; +#if defined(ENABLE_NXDN) + // --------------------------------------------------------------------------- // Public Class Members // --------------------------------------------------------------------------- @@ -241,3 +243,5 @@ void NXDNTX::writeSilence() io.write(&bit, 1); } } + +#endif // defined(ENABLE_NXDN) \ No newline at end of file diff --git a/nxdn/NXDNTX.h b/nxdn/NXDNTX.h index f869afe..7058868 100644 --- a/nxdn/NXDNTX.h +++ b/nxdn/NXDNTX.h @@ -35,6 +35,8 @@ #include "Defines.h" #include "SerialBuffer.h" +#if defined(ENABLE_NXDN) + namespace nxdn { // --------------------------------------------------------------------------- @@ -100,4 +102,6 @@ namespace nxdn }; } // namespace nxdn +#endif // defined(ENABLE_NXDN) + #endif // __NXDN_TX_H__ diff --git a/p25/CalP25.cpp b/p25/CalP25.cpp index 1ec050c..5190548 100644 --- a/p25/CalP25.cpp +++ b/p25/CalP25.cpp @@ -32,6 +32,8 @@ using namespace p25; +#if defined(ENABLE_P25) + // --------------------------------------------------------------------------- // Constants // --------------------------------------------------------------------------- @@ -143,3 +145,5 @@ uint8_t CalP25::write(const uint8_t* data, uint8_t length) return RSN_OK; } + +#endif // defined(ENABLE_P25) \ No newline at end of file diff --git a/p25/CalP25.h b/p25/CalP25.h index f8113e6..6ce72cf 100644 --- a/p25/CalP25.h +++ b/p25/CalP25.h @@ -33,6 +33,8 @@ #include "Defines.h" #include "p25/P25Defines.h" +#if defined(ENABLE_P25) + namespace p25 { // --------------------------------------------------------------------------- @@ -67,4 +69,6 @@ namespace p25 }; } // namespace p25 +#endif // defined(ENABLE_P25) + #endif // __CAL_P25_H__ diff --git a/p25/P25RX.cpp b/p25/P25RX.cpp index b4f822b..4631205 100644 --- a/p25/P25RX.cpp +++ b/p25/P25RX.cpp @@ -35,6 +35,8 @@ using namespace p25; +#if defined(ENABLE_P25) + // --------------------------------------------------------------------------- // Constants // --------------------------------------------------------------------------- @@ -461,3 +463,5 @@ bool P25RX::decodeNid() return false; } + +#endif // defined(ENABLE_P25) diff --git a/p25/P25RX.h b/p25/P25RX.h index 3029b89..d9f9eb8 100644 --- a/p25/P25RX.h +++ b/p25/P25RX.h @@ -35,6 +35,8 @@ #include "Defines.h" #include "p25/P25Defines.h" +#if defined(ENABLE_P25) + namespace p25 { // --------------------------------------------------------------------------- @@ -98,4 +100,6 @@ namespace p25 }; } // namespace p25 +#endif // defined(ENABLE_P25) + #endif // __P25_RX_H__ diff --git a/p25/P25TX.cpp b/p25/P25TX.cpp index 29eeec4..cc564fa 100644 --- a/p25/P25TX.cpp +++ b/p25/P25TX.cpp @@ -35,6 +35,8 @@ using namespace p25; +#if defined(ENABLE_P25) + // --------------------------------------------------------------------------- // Public Class Members // --------------------------------------------------------------------------- @@ -270,3 +272,5 @@ void P25TX::writeSilence() io.write(&bit, 1); } } + +#endif // defined(ENABLE_P25) diff --git a/p25/P25TX.h b/p25/P25TX.h index 667e184..c3f1c31 100644 --- a/p25/P25TX.h +++ b/p25/P25TX.h @@ -35,6 +35,8 @@ #include "Defines.h" #include "SerialBuffer.h" +#if defined(ENABLE_P25) + namespace p25 { // --------------------------------------------------------------------------- @@ -103,4 +105,6 @@ namespace p25 }; } // namespace p25 +#endif // defined(ENABLE_P25) + #endif // __P25_TX_H__