@ -38,61 +38,6 @@
// Constants
// Constants
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
# if defined(ENABLE_DMR)
# define DESCR_DMR "DMR, "
# else
# define DESCR_DMR ""
# endif
# if defined(ENABLE_P25)
# define DESCR_P25 "P25, "
# else
# define DESCR_P25 ""
# endif
# if defined(ENABLE_NXDN)
# define DESCR_NXDN "NXDN, "
# else
# define DESCR_NXDN ""
# endif
# if defined(SEND_RSSI_DATA)
# define DESCR_RSSI "RSSI, "
# else
# define DESCR_RSSI ""
# endif
# if defined(ZUMSPOT_ADF7021)
# define BOARD_INFO "ZUMspot"
# elif defined(MMDVM_HS_HAT_REV12)
# define BOARD_INFO "MMDVM_HS_Hat"
# elif defined(MMDVM_HS_DUAL_HAT_REV10)
# define BOARD_INFO "MMDVM_HS_Dual_Hat"
# elif defined(NANO_HOTSPOT)
# define BOARD_INFO "Nano_hotSPOT"
# elif defined(NANO_DV_REV11)
# define BOARD_INFO "Nano_DV"
# elif defined(SKYBRIDGE_HS)
# define BOARD_INFO "SkyBridge"
# elif defined(LONESTAR_USB)
# define BOARD_INFO "LS_USB_STICK"
# else
# define BOARD_INFO "MMDVM_HS"
# endif
# if defined(ADF7021_14_7456)
# define DESCR_OSC "TCXO 14.7456, "
# endif
# if defined(ADF7021_12_2880)
# define DESCR_OSC "TCXO 12.2880, "
# endif
# if defined(ENABLE_ADF7021) && defined(ADF7021_N_VER)
# define RF_CHIP "ADF7021N, "
# elif defined(ENABLE_ADF7021)
# define RF_CHIP "ADF7021, "
# endif
# define DESCRIPTION "Digital Voice Modem DSP Hotspot [" BOARD_INFO "] (" RF_CHIP DESCR_DMR DESCR_P25 DESCR_NXDN DESCR_OSC DESCR_RSSI "CW Id)"
# define concat(a, b, c) a " (build " b " " c ")"
# define concat(a, b, c) a " (build " b " " c ")"
const char HARDWARE [ ] = concat ( DESCRIPTION , __TIME__ , __DATE__ ) ;
const char HARDWARE [ ] = concat ( DESCRIPTION , __TIME__ , __DATE__ ) ;
@ -198,13 +143,20 @@ void SerialPort::process()
break ;
break ;
case CMD_CAL_DATA :
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 | |
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_DMR_LF_CAL | | m_modemState = = STATE_DMR_CAL )
err = calDMR . write ( m_buffer + 3U , m_len - 3U ) ;
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 )
if ( m_modemState = = STATE_P25_CAL_1K | | m_modemState = = STATE_P25_CAL )
err = calP25 . write ( m_buffer + 3U , m_len - 3U ) ;
err = calP25 . write ( m_buffer + 3U , m_len - 3U ) ;
# endif // defined(ENABLE_P25)
# if defined(ENABLE_NXDN)
if ( m_modemState = = STATE_NXDN_CAL )
if ( m_modemState = = STATE_NXDN_CAL )
err = calNXDN . write ( m_buffer + 3U , m_len - 3U ) ;
err = calNXDN . write ( m_buffer + 3U , m_len - 3U ) ;
# endif // defined(ENABLE_NXDN)
if ( err = = RSN_OK )
if ( err = = RSN_OK )
{
{
sendACK ( ) ;
sendACK ( ) ;
@ -249,6 +201,7 @@ void SerialPort::process()
/** Digital Mobile Radio */
/** Digital Mobile Radio */
case CMD_DMR_DATA1 :
case CMD_DMR_DATA1 :
# if defined(ENABLE_DMR)
# if defined(DUPLEX)
# if defined(DUPLEX)
if ( m_dmrEnable ) {
if ( m_dmrEnable ) {
if ( m_modemState = = STATE_IDLE | | m_modemState = = STATE_DMR ) {
if ( m_modemState = = STATE_IDLE | | m_modemState = = STATE_DMR ) {
@ -266,10 +219,15 @@ void SerialPort::process()
}
}
# else
# else
sendNAK ( RSN_INVALID_REQUEST ) ;
sendNAK ( RSN_INVALID_REQUEST ) ;
# endif
# endif // defined(DUPLEX)
# else
DEBUG2 ( " SerialPort: process() received invalid DMR data " , err ) ;
sendNAK ( err ) ;
# endif // defined(ENABLE_DMR)
break ;
break ;
case CMD_DMR_DATA2 :
case CMD_DMR_DATA2 :
# if defined(ENABLE_DMR)
if ( m_dmrEnable ) {
if ( m_dmrEnable ) {
if ( m_modemState = = STATE_IDLE | | m_modemState = = STATE_DMR ) {
if ( m_modemState = = STATE_IDLE | | m_modemState = = STATE_DMR ) {
# if defined(DUPLEX)
# if defined(DUPLEX)
@ -279,9 +237,12 @@ void SerialPort::process()
err = dmrDMOTX . writeData ( m_buffer + 3U , m_len - 3U ) ;
err = dmrDMOTX . writeData ( m_buffer + 3U , m_len - 3U ) ;
# else
# else
err = dmrDMOTX . writeData ( m_buffer + 3U , m_len - 3U ) ;
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 ( err = = RSN_OK ) {
if ( m_modemState = = STATE_IDLE )
if ( m_modemState = = STATE_IDLE )
setMode ( STATE_DMR ) ;
setMode ( STATE_DMR ) ;
@ -293,6 +254,7 @@ void SerialPort::process()
break ;
break ;
case CMD_DMR_START :
case CMD_DMR_START :
# if defined(ENABLE_DMR)
# if defined(DUPLEX)
# if defined(DUPLEX)
if ( m_dmrEnable ) {
if ( m_dmrEnable ) {
err = RSN_INVALID_DMR_START ;
err = RSN_INVALID_DMR_START ;
@ -315,10 +277,14 @@ void SerialPort::process()
}
}
# else
# else
sendNAK ( RSN_INVALID_REQUEST ) ;
sendNAK ( RSN_INVALID_REQUEST ) ;
# endif
# endif // defined(DUPLEX)
# else
sendNAK ( RSN_INVALID_REQUEST ) ;
# endif // defined(ENABLE_DMR)
break ;
break ;
case CMD_DMR_SHORTLC :
case CMD_DMR_SHORTLC :
# if defined(ENABLE_DMR)
# if defined(DUPLEX)
# if defined(DUPLEX)
if ( m_dmrEnable )
if ( m_dmrEnable )
err = dmrTX . writeShortLC ( m_buffer + 3U , m_len - 3U ) ;
err = dmrTX . writeShortLC ( m_buffer + 3U , m_len - 3U ) ;
@ -328,10 +294,14 @@ void SerialPort::process()
}
}
# else
# else
sendNAK ( RSN_INVALID_REQUEST ) ;
sendNAK ( RSN_INVALID_REQUEST ) ;
# endif
# endif // defined(DUPLEX)
# else
sendNAK ( RSN_INVALID_REQUEST ) ;
# endif // defined(ENABLE_DMR)
break ;
break ;
case CMD_DMR_ABORT :
case CMD_DMR_ABORT :
# if defined(ENABLE_DMR)
# if defined(DUPLEX)
# if defined(DUPLEX)
if ( m_dmrEnable )
if ( m_dmrEnable )
err = dmrTX . writeAbort ( m_buffer + 3U , m_len - 3U ) ;
err = dmrTX . writeAbort ( m_buffer + 3U , m_len - 3U ) ;
@ -341,10 +311,14 @@ void SerialPort::process()
}
}
# else
# else
sendNAK ( RSN_INVALID_REQUEST ) ;
sendNAK ( RSN_INVALID_REQUEST ) ;
# endif
# endif // defined(DUPLEX)
# else
sendNAK ( RSN_INVALID_REQUEST ) ;
# endif // defined(ENABLE_DMR)
break ;
break ;
case CMD_DMR_CACH_AT_CTRL :
case CMD_DMR_CACH_AT_CTRL :
# if defined(ENABLE_DMR)
# if defined(DUPLEX)
# if defined(DUPLEX)
if ( m_dmrEnable ) {
if ( m_dmrEnable ) {
err = RSN_INVALID_REQUEST ;
err = RSN_INVALID_REQUEST ;
@ -359,11 +333,15 @@ void SerialPort::process()
}
}
# else
# else
sendNAK ( RSN_INVALID_REQUEST ) ;
sendNAK ( RSN_INVALID_REQUEST ) ;
# endif
# endif // defined(DUPLEX)
# else
sendNAK ( RSN_INVALID_REQUEST ) ;
# endif // defined(ENABLE_DMR)
break ;
break ;
/** Project 25 */
/** Project 25 */
case CMD_P25_DATA :
case CMD_P25_DATA :
# if defined(ENABLE_P25)
if ( m_p25Enable ) {
if ( m_p25Enable ) {
if ( m_modemState = = STATE_IDLE | | m_modemState = = STATE_P25 )
if ( m_modemState = = STATE_IDLE | | m_modemState = = STATE_P25 )
err = p25TX . writeData ( m_buffer + 3U , m_len - 3U ) ;
err = p25TX . writeData ( m_buffer + 3U , m_len - 3U ) ;
@ -376,17 +354,25 @@ void SerialPort::process()
DEBUG2 ( " SerialPort: process(): Received invalid P25 data " , err ) ;
DEBUG2 ( " SerialPort: process(): Received invalid P25 data " , err ) ;
sendNAK ( err ) ;
sendNAK ( err ) ;
}
}
# else
sendNAK ( RSN_INVALID_REQUEST ) ;
# endif // defined(ENABLE_P25)
break ;
break ;
case CMD_P25_CLEAR :
case CMD_P25_CLEAR :
# if defined(ENABLE_P25)
if ( m_p25Enable ) {
if ( m_p25Enable ) {
if ( m_modemState = = STATE_IDLE | | m_modemState = = STATE_P25 )
if ( m_modemState = = STATE_IDLE | | m_modemState = = STATE_P25 )
p25TX . clear ( ) ;
p25TX . clear ( ) ;
}
}
# else
sendNAK ( RSN_INVALID_REQUEST ) ;
# endif // defined(ENABLE_P25)
break ;
break ;
/** Next Generation Digital Narrowband */
/** Next Generation Digital Narrowband */
case CMD_NXDN_DATA :
case CMD_NXDN_DATA :
# if defined(ENABLE_NXDN)
if ( m_nxdnEnable ) {
if ( m_nxdnEnable ) {
if ( m_modemState = = STATE_IDLE | | m_modemState = = STATE_NXDN )
if ( m_modemState = = STATE_IDLE | | m_modemState = = STATE_NXDN )
err = nxdnTX . writeData ( m_buffer + 3U , m_len - 3U ) ;
err = nxdnTX . writeData ( m_buffer + 3U , m_len - 3U ) ;
@ -399,6 +385,9 @@ void SerialPort::process()
DEBUG2 ( " SerialPort: process(): Received invalid NXDN data " , err ) ;
DEBUG2 ( " SerialPort: process(): Received invalid NXDN data " , err ) ;
sendNAK ( err ) ;
sendNAK ( err ) ;
}
}
# else
sendNAK ( RSN_INVALID_REQUEST ) ;
# endif // defined(ENABLE_NXDN)
break ;
break ;
default :
default :
@ -922,6 +911,7 @@ void SerialPort::getStatus()
reply [ 6U ] = 0U ;
reply [ 6U ] = 0U ;
# if defined(ENABLE_DMR)
if ( m_dmrEnable ) {
if ( m_dmrEnable ) {
# if defined(DUPLEX)
# if defined(DUPLEX)
if ( m_duplex ) {
if ( m_duplex ) {
@ -934,23 +924,35 @@ void SerialPort::getStatus()
# else
# else
reply [ 7U ] = 10U ;
reply [ 7U ] = 10U ;
reply [ 8U ] = dmrDMOTX . getSpace ( ) ;
reply [ 8U ] = dmrDMOTX . getSpace ( ) ;
# endif
# endif // defined(DUPLEX)
} else {
} else {
reply [ 7U ] = 0U ;
reply [ 7U ] = 0U ;
reply [ 8U ] = 0U ;
reply [ 8U ] = 0U ;
}
}
# else
reply [ 7U ] = 0U ;
reply [ 8U ] = 0U ;
# endif // defined(ENABLE_DMR)
reply [ 9U ] = 0U ;
reply [ 9U ] = 0U ;
# if defined(ENABLE_P25)
if ( m_p25Enable )
if ( m_p25Enable )
reply [ 10U ] = p25TX . getSpace ( ) ;
reply [ 10U ] = p25TX . getSpace ( ) ;
else
else
reply [ 10U ] = 0U ;
reply [ 10U ] = 0U ;
# else
reply [ 10U ] = 0U ;
# endif // defined(ENABLE_P25)
# if defined(ENABLE_NXDN)
if ( m_nxdnEnable )
if ( m_nxdnEnable )
reply [ 11U ] = nxdnTX . getSpace ( ) ;
reply [ 11U ] = nxdnTX . getSpace ( ) ;
else
else
reply [ 11U ] = 0U ;
reply [ 11U ] = 0U ;
# else
reply [ 11U ] = 0U ;
# endif // defined(ENABLE_NXDN)
writeInt ( 1U , reply , 12 ) ;
writeInt ( 1U , reply , 12 ) ;
}
}
@ -1089,20 +1091,28 @@ uint8_t SerialPort::setConfig(const uint8_t* data, uint8_t length)
io . setDeviations ( dmrTXLevel , p25TXLevel , nxdnTXLevel ) ;
io . setDeviations ( dmrTXLevel , p25TXLevel , nxdnTXLevel ) ;
# if defined(ENABLE_P25)
p25TX . setPreambleCount ( fdmaPreamble ) ;
p25TX . setPreambleCount ( fdmaPreamble ) ;
# endif // defined(ENABLE_P25)
# if defined(ENABLE_DMR)
dmrDMOTX . setPreambleCount ( fdmaPreamble ) ;
dmrDMOTX . setPreambleCount ( fdmaPreamble ) ;
# endif // defined(ENABLE_DMR)
//nxdnTX.setPreambleCount(fdmaPreamble);
//nxdnTX.setPreambleCount(fdmaPreamble);
# if defined(ENABLE_P25)
p25RX . setNAC ( nac ) ;
p25RX . setNAC ( nac ) ;
# endif // defined(ENABLE_P25)
# if defined(ENABLE_DMR)
# if defined(DUPLEX)
# if defined(DUPLEX)
dmrTX . setColorCode ( colorCode ) ;
dmrTX . setColorCode ( colorCode ) ;
dmrRX . setColorCode ( colorCode ) ;
dmrRX . setColorCode ( colorCode ) ;
dmrRX . setRxDelay ( dmrRxDelay ) ;
dmrRX . setRxDelay ( dmrRxDelay ) ;
dmrIdleRX . setColorCode ( colorCode ) ;
dmrIdleRX . setColorCode ( colorCode ) ;
# endif
# endif // defined(DUPLEX)
dmrDMORX . setColorCode ( colorCode ) ;
dmrDMORX . setColorCode ( colorCode ) ;
# endif // defined(ENABLE_DMR)
if ( m_modemState ! = STATE_IDLE & & isCalState ( m_modemState ) ) {
if ( m_modemState ! = STATE_IDLE & & isCalState ( m_modemState ) ) {
io . updateCal ( calRelativeState ( m_modemState ) ) ;
io . updateCal ( calRelativeState ( m_modemState ) ) ;
@ -1149,116 +1159,176 @@ void SerialPort::setMode(DVM_STATE modemState)
switch ( modemState ) {
switch ( modemState ) {
case STATE_DMR :
case STATE_DMR :
DEBUG1 ( " SerialPort: setMode(): mode set to DMR " ) ;
DEBUG1 ( " SerialPort: setMode(): mode set to DMR " ) ;
# if defined(ENABLE_P25)
p25RX . reset ( ) ;
p25RX . reset ( ) ;
# endif // defined(ENABLE_P25)
# if defined(ENABLE_NXDN)
nxdnRX . reset ( ) ;
nxdnRX . reset ( ) ;
# endif // defined(ENABLE_NXDN)
cwIdTX . reset ( ) ;
cwIdTX . reset ( ) ;
break ;
break ;
case STATE_P25 :
case STATE_P25 :
DEBUG1 ( " SerialPort: setMode(): mode set to P25 " ) ;
DEBUG1 ( " SerialPort: setMode(): mode set to P25 " ) ;
# if defined(ENABLE_DMR)
# if defined(DUPLEX)
# if defined(DUPLEX)
dmrIdleRX . reset ( ) ;
dmrIdleRX . reset ( ) ;
dmrRX . reset ( ) ;
dmrRX . reset ( ) ;
# endif
# endif // defined(DUPLEX)
dmrDMORX . reset ( ) ;
dmrDMORX . reset ( ) ;
# endif // defined(ENABLE_DMR)
# if defined(ENABLE_NXDN)
nxdnRX . reset ( ) ;
nxdnRX . reset ( ) ;
# endif // defined(ENABLE_NXDN)
cwIdTX . reset ( ) ;
cwIdTX . reset ( ) ;
break ;
break ;
case STATE_NXDN :
case STATE_NXDN :
DEBUG1 ( " SerialPort: setMode(): mode set to NXDN " ) ;
DEBUG1 ( " SerialPort: setMode(): mode set to NXDN " ) ;
# if defined(ENABLE_DMR)
# if defined(DUPLEX)
# if defined(DUPLEX)
dmrIdleRX . reset ( ) ;
dmrIdleRX . reset ( ) ;
dmrRX . reset ( ) ;
dmrRX . reset ( ) ;
# endif
# endif // defined(DUPLEX)
dmrDMORX . reset ( ) ;
dmrDMORX . reset ( ) ;
# endif // defined(ENABLE_DMR)
# if defined(ENABLE_P25)
p25RX . reset ( ) ;
p25RX . reset ( ) ;
# endif // defined(ENABLE_P25)
cwIdTX . reset ( ) ;
cwIdTX . reset ( ) ;
break ;
break ;
case STATE_DMR_CAL :
case STATE_DMR_CAL :
DEBUG1 ( " SerialPort: setMode(): mode set to DMR Calibrate " ) ;
DEBUG1 ( " SerialPort: setMode(): mode set to DMR Calibrate " ) ;
# if defined(ENABLE_DMR)
# if defined(DUPLEX)
# if defined(DUPLEX)
dmrIdleRX . reset ( ) ;
dmrIdleRX . reset ( ) ;
dmrRX . reset ( ) ;
dmrRX . reset ( ) ;
# endif
# endif // defined(DUPLEX)
dmrDMORX . reset ( ) ;
dmrDMORX . reset ( ) ;
# endif // defined(ENABLE_DMR)
# if defined(ENABLE_P25)
p25RX . reset ( ) ;
p25RX . reset ( ) ;
# endif // defined(ENABLE_P25)
# if defined(ENABLE_NXDN)
nxdnRX . reset ( ) ;
nxdnRX . reset ( ) ;
# endif // defined(ENABLE_NXDN)
cwIdTX . reset ( ) ;
cwIdTX . reset ( ) ;
break ;
break ;
case STATE_P25_CAL :
case STATE_P25_CAL :
DEBUG1 ( " SerialPort: setMode(): mode set to P25 Calibrate " ) ;
DEBUG1 ( " SerialPort: setMode(): mode set to P25 Calibrate " ) ;
# if defined(ENABLE_DMR)
# if defined(DUPLEX)
# if defined(DUPLEX)
dmrIdleRX . reset ( ) ;
dmrIdleRX . reset ( ) ;
dmrRX . reset ( ) ;
dmrRX . reset ( ) ;
# endif
# endif // defined(DUPLEX)
dmrDMORX . reset ( ) ;
dmrDMORX . reset ( ) ;
# endif // defined(ENABLE_DMR)
# if defined(ENABLE_P25)
p25RX . reset ( ) ;
p25RX . reset ( ) ;
# endif // defined(ENABLE_P25)
# if defined(ENABLE_NXDN)
nxdnRX . reset ( ) ;
nxdnRX . reset ( ) ;
# endif // defined(ENABLE_NXDN)
cwIdTX . reset ( ) ;
cwIdTX . reset ( ) ;
break ;
break ;
case STATE_NXDN_CAL :
case STATE_NXDN_CAL :
DEBUG1 ( " SerialPort: setMode(): mode set to NXDN Calibrate " ) ;
DEBUG1 ( " SerialPort: setMode(): mode set to NXDN Calibrate " ) ;
# if defined(ENABLE_DMR)
# if defined(DUPLEX)
# if defined(DUPLEX)
dmrIdleRX . reset ( ) ;
dmrIdleRX . reset ( ) ;
dmrRX . reset ( ) ;
dmrRX . reset ( ) ;
# endif
# endif // defined(DUPLEX)
dmrDMORX . reset ( ) ;
dmrDMORX . reset ( ) ;
# endif // defined(ENABLE_DMR)
# if defined(ENABLE_P25)
p25RX . reset ( ) ;
p25RX . reset ( ) ;
# endif // defined(ENABLE_P25)
# if defined(ENABLE_NXDN)
nxdnRX . reset ( ) ;
nxdnRX . reset ( ) ;
# endif // defined(ENABLE_NXDN)
cwIdTX . reset ( ) ;
cwIdTX . reset ( ) ;
break ;
break ;
case STATE_RSSI_CAL :
case STATE_RSSI_CAL :
DEBUG1 ( " SerialPort: setMode(): mode set to RSSI Calibrate " ) ;
DEBUG1 ( " SerialPort: setMode(): mode set to RSSI Calibrate " ) ;
# if defined(ENABLE_DMR)
# if defined(DUPLEX)
# if defined(DUPLEX)
dmrIdleRX . reset ( ) ;
dmrIdleRX . reset ( ) ;
dmrRX . reset ( ) ;
dmrRX . reset ( ) ;
# endif
# endif // defined(DUPLEX)
dmrDMORX . reset ( ) ;
dmrDMORX . reset ( ) ;
# endif // defined(ENABLE_DMR)
# if defined(ENABLE_P25)
p25RX . reset ( ) ;
p25RX . reset ( ) ;
# endif // defined(ENABLE_P25)
# if defined(ENABLE_NXDN)
nxdnRX . reset ( ) ;
nxdnRX . reset ( ) ;
# endif // defined(ENABLE_NXDN)
cwIdTX . reset ( ) ;
cwIdTX . reset ( ) ;
break ;
break ;
case STATE_DMR_LF_CAL :
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(ENABLE_DMR)
# if defined(DUPLEX)
# if defined(DUPLEX)
dmrIdleRX . reset ( ) ;
dmrIdleRX . reset ( ) ;
dmrRX . reset ( ) ;
dmrRX . reset ( ) ;
# endif
# endif // defined(DUPLEX)
dmrDMORX . reset ( ) ;
dmrDMORX . reset ( ) ;
# endif // defined(ENABLE_DMR)
# if defined(ENABLE_P25)
p25RX . reset ( ) ;
p25RX . reset ( ) ;
# endif // defined(ENABLE_P25)
# if defined(ENABLE_NXDN)
nxdnRX . reset ( ) ;
nxdnRX . reset ( ) ;
# endif // defined(ENABLE_NXDN)
cwIdTX . reset ( ) ;
cwIdTX . reset ( ) ;
break ;
break ;
case STATE_DMR_CAL_1K :
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(ENABLE_DMR)
# if defined(DUPLEX)
# if defined(DUPLEX)
dmrIdleRX . reset ( ) ;
dmrIdleRX . reset ( ) ;
dmrRX . reset ( ) ;
dmrRX . reset ( ) ;
# endif
# endif // defined(DUPLEX)
dmrDMORX . reset ( ) ;
dmrDMORX . reset ( ) ;
# endif // defined(ENABLE_DMR)
# if defined(ENABLE_P25)
p25RX . reset ( ) ;
p25RX . reset ( ) ;
# endif // defined(ENABLE_P25)
# if defined(ENABLE_NXDN)
nxdnRX . reset ( ) ;
nxdnRX . reset ( ) ;
# endif // defined(ENABLE_NXDN)
cwIdTX . reset ( ) ;
cwIdTX . reset ( ) ;
break ;
break ;
case STATE_DMR_DMO_CAL_1K :
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(ENABLE_DMR)
# if defined(DUPLEX)
# if defined(DUPLEX)
dmrIdleRX . reset ( ) ;
dmrIdleRX . reset ( ) ;
dmrRX . reset ( ) ;
dmrRX . reset ( ) ;
# endif
# endif // defined(DUPLEX)
dmrDMORX . reset ( ) ;
dmrDMORX . reset ( ) ;
# endif // defined(ENABLE_DMR)
# if defined(ENABLE_P25)
p25RX . reset ( ) ;
p25RX . reset ( ) ;
# endif // defined(ENABLE_P25)
# if defined(ENABLE_NXDN)
nxdnRX . reset ( ) ;
nxdnRX . reset ( ) ;
# endif // defined(ENABLE_NXDN)
cwIdTX . reset ( ) ;
cwIdTX . reset ( ) ;
break ;
break ;
case STATE_P25_CAL_1K :
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(ENABLE_DMR)
# if defined(DUPLEX)
# if defined(DUPLEX)
dmrIdleRX . reset ( ) ;
dmrIdleRX . reset ( ) ;
dmrRX . reset ( ) ;
dmrRX . reset ( ) ;
# endif
# endif // defined(DUPLEX)
dmrDMORX . reset ( ) ;
dmrDMORX . reset ( ) ;
# endif // defined(ENABLE_DMR)
# if defined(ENABLE_P25)
p25RX . reset ( ) ;
p25RX . reset ( ) ;
# endif // defined(ENABLE_P25)
# if defined(ENABLE_NXDN)
nxdnRX . reset ( ) ;
nxdnRX . reset ( ) ;
# endif // defined(ENABLE_NXDN)
cwIdTX . reset ( ) ;
cwIdTX . reset ( ) ;
break ;
break ;
default :
default :