mirror of
https://github.com/g4klx/MMDVMHost
synced 2025-12-23 00:35:53 +08:00
Make the compilation of M17 conditional.
This commit is contained in:
66
Modem.cpp
66
Modem.cpp
@@ -76,11 +76,13 @@ const unsigned char MMDVM_P25_LOST = 0x32U;
|
||||
const unsigned char MMDVM_NXDN_DATA = 0x40U;
|
||||
const unsigned char MMDVM_NXDN_LOST = 0x41U;
|
||||
|
||||
#if defined(USE_M17)
|
||||
const unsigned char MMDVM_M17_LINK_SETUP = 0x45U;
|
||||
const unsigned char MMDVM_M17_STREAM = 0x46U;
|
||||
const unsigned char MMDVM_M17_PACKET = 0x47U;
|
||||
const unsigned char MMDVM_M17_LOST = 0x48U;
|
||||
const unsigned char MMDVM_M17_EOT = 0x49U;
|
||||
#endif
|
||||
|
||||
#if defined(USE_POCSAG)
|
||||
const unsigned char MMDVM_POCSAG_DATA = 0x50U;
|
||||
@@ -126,7 +128,9 @@ const unsigned char CAP1_DMR = 0x02U;
|
||||
const unsigned char CAP1_YSF = 0x04U;
|
||||
const unsigned char CAP1_P25 = 0x08U;
|
||||
const unsigned char CAP1_NXDN = 0x10U;
|
||||
#if defined(USE_M17)
|
||||
const unsigned char CAP1_M17 = 0x20U;
|
||||
#endif
|
||||
#if defined(USE_FM)
|
||||
const unsigned char CAP1_FM = 0x40U;
|
||||
#endif
|
||||
@@ -144,7 +148,9 @@ m_ysfLoDev(false),
|
||||
m_ysfTXHang(4U),
|
||||
m_p25TXHang(5U),
|
||||
m_nxdnTXHang(5U),
|
||||
#if defined(USE_M17)
|
||||
m_m17TXHang(5U),
|
||||
#endif
|
||||
m_duplex(duplex),
|
||||
m_rxInvert(rxInvert),
|
||||
m_txInvert(txInvert),
|
||||
@@ -160,7 +166,9 @@ m_dmrTXLevel(0.0F),
|
||||
m_ysfTXLevel(0.0F),
|
||||
m_p25TXLevel(0.0F),
|
||||
m_nxdnTXLevel(0.0F),
|
||||
#if defined(USE_M17)
|
||||
m_m17TXLevel(0.0F),
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
m_pocsagTXLevel(0.0F),
|
||||
#endif
|
||||
@@ -186,7 +194,9 @@ m_dmrEnabled(false),
|
||||
m_ysfEnabled(false),
|
||||
m_p25Enabled(false),
|
||||
m_nxdnEnabled(false),
|
||||
#if defined(USE_M17)
|
||||
m_m17Enabled(false),
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
m_pocsagEnabled(false),
|
||||
#endif
|
||||
@@ -218,8 +228,10 @@ m_rxP25Data(1000U, "Modem RX P25"),
|
||||
m_txP25Data(1000U, "Modem TX P25"),
|
||||
m_rxNXDNData(1000U, "Modem RX NXDN"),
|
||||
m_txNXDNData(1000U, "Modem TX NXDN"),
|
||||
#if defined(USE_M17)
|
||||
m_rxM17Data(1000U, "Modem RX M17"),
|
||||
m_txM17Data(1000U, "Modem TX M17"),
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
m_txPOCSAGData(1000U, "Modem TX POCSAG"),
|
||||
#endif
|
||||
@@ -247,7 +259,9 @@ m_dmrSpace2(0U),
|
||||
m_ysfSpace(0U),
|
||||
m_p25Space(0U),
|
||||
m_nxdnSpace(0U),
|
||||
#if defined(USE_M17)
|
||||
m_m17Space(0U),
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
m_pocsagSpace(0U),
|
||||
#endif
|
||||
@@ -346,7 +360,9 @@ void CModem::setModeParams(bool dstarEnabled, bool dmrEnabled, bool ysfEnabled,
|
||||
m_ysfEnabled = ysfEnabled;
|
||||
m_p25Enabled = p25Enabled;
|
||||
m_nxdnEnabled = nxdnEnabled;
|
||||
#if defined(USE_M17)
|
||||
m_m17Enabled = m17Enabled;
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
m_pocsagEnabled = pocsagEnabled;
|
||||
#endif
|
||||
@@ -369,7 +385,9 @@ void CModem::setLevels(float rxLevel, float cwIdTXLevel, float dstarTXLevel, flo
|
||||
m_ysfTXLevel = ysfTXLevel;
|
||||
m_p25TXLevel = p25TXLevel;
|
||||
m_nxdnTXLevel = nxdnTXLevel;
|
||||
#if defined(USE_M17)
|
||||
m_m17TXLevel = m17TXLevel;
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
m_pocsagTXLevel = pocsagTXLevel;
|
||||
#endif
|
||||
@@ -404,10 +422,12 @@ void CModem::setNXDNParams(unsigned int txHang)
|
||||
m_nxdnTXHang = txHang;
|
||||
}
|
||||
|
||||
#if defined(USE_M17)
|
||||
void CModem::setM17Params(unsigned int txHang)
|
||||
{
|
||||
m_m17TXHang = txHang;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_AX25)
|
||||
void CModem::setAX25Params(int rxTwist, unsigned int txDelay, unsigned int slotTime, unsigned int pPersist)
|
||||
@@ -741,6 +761,7 @@ void CModem::clock(unsigned int ms)
|
||||
}
|
||||
break;
|
||||
|
||||
#if defined(USE_M17)
|
||||
case MMDVM_M17_LINK_SETUP: {
|
||||
if (m_trace)
|
||||
CUtils::dump(1U, "RX M17 Link Setup", m_buffer, m_length);
|
||||
@@ -792,7 +813,7 @@ void CModem::clock(unsigned int ms)
|
||||
m_rxM17Data.addData(&data, 1U);
|
||||
}
|
||||
break;
|
||||
|
||||
#endif
|
||||
#if defined(USE_FM)
|
||||
case MMDVM_FM_DATA: {
|
||||
if (m_trace)
|
||||
@@ -875,7 +896,9 @@ void CModem::clock(unsigned int ms)
|
||||
|
||||
m_p25Space = 0U;
|
||||
m_nxdnSpace = 0U;
|
||||
#if defined(USE_M17)
|
||||
m_m17Space = 0U;
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
m_pocsagSpace = 0U;
|
||||
#endif
|
||||
@@ -901,8 +924,10 @@ void CModem::clock(unsigned int ms)
|
||||
if (m_length > (m_offset + 9U))
|
||||
m_pocsagSpace = m_buffer[m_offset + 9U];
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
if (m_length > (m_offset + 10U))
|
||||
m_m17Space = m_buffer[m_offset + 10U];
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -933,7 +958,9 @@ void CModem::clock(unsigned int ms)
|
||||
m_ysfSpace = m_buffer[m_offset + 6U];
|
||||
m_p25Space = m_buffer[m_offset + 7U];
|
||||
m_nxdnSpace = m_buffer[m_offset + 8U];
|
||||
#if defined(USE_M17)
|
||||
m_m17Space = m_buffer[m_offset + 9U];
|
||||
#endif
|
||||
#if defined(USE_FM)
|
||||
m_fmSpace = m_buffer[m_offset + 10U];
|
||||
#endif
|
||||
@@ -955,7 +982,9 @@ void CModem::clock(unsigned int ms)
|
||||
m_ysfSpace = 0U;
|
||||
m_p25Space = 0U;
|
||||
m_nxdnSpace = 0U;
|
||||
#if defined(USE_M17)
|
||||
m_m17Space = 0U;
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
m_pocsagSpace = 0U;
|
||||
#endif
|
||||
@@ -1154,6 +1183,7 @@ void CModem::clock(unsigned int ms)
|
||||
m_nxdnSpace--;
|
||||
}
|
||||
|
||||
#if defined(USE_M17)
|
||||
if (m_m17Space > 1U && !m_txM17Data.isEmpty()) {
|
||||
unsigned char len = 0U;
|
||||
m_txM17Data.getData(&len, 1U);
|
||||
@@ -1181,6 +1211,7 @@ void CModem::clock(unsigned int ms)
|
||||
|
||||
m_m17Space--;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_POCSAG)
|
||||
if (m_pocsagSpace > 1U && !m_txPOCSAGData.isEmpty()) {
|
||||
@@ -1365,6 +1396,7 @@ unsigned int CModem::readNXDNData(unsigned char* data)
|
||||
return len;
|
||||
}
|
||||
|
||||
#if defined(USE_M17)
|
||||
unsigned int CModem::readM17Data(unsigned char* data)
|
||||
{
|
||||
assert(data != NULL);
|
||||
@@ -1378,6 +1410,7 @@ unsigned int CModem::readM17Data(unsigned char* data)
|
||||
|
||||
return len;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_FM)
|
||||
unsigned int CModem::readFMData(unsigned char* data)
|
||||
@@ -1632,6 +1665,7 @@ bool CModem::writeNXDNData(const unsigned char* data, unsigned int length)
|
||||
return true;
|
||||
}
|
||||
|
||||
#if defined(USE_M17)
|
||||
bool CModem::hasM17Space() const
|
||||
{
|
||||
unsigned int space = m_txM17Data.freeSpace() / (M17_FRAME_LENGTH_BYTES + 4U);
|
||||
@@ -1672,6 +1706,7 @@ bool CModem::writeM17Data(const unsigned char* data, unsigned int length)
|
||||
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_POCSAG)
|
||||
bool CModem::hasPOCSAGSpace() const
|
||||
@@ -1945,6 +1980,7 @@ bool CModem::writeNXDNInfo(const char* source, bool group, unsigned int dest, co
|
||||
return m_port->write(buffer, 31U) != 31;
|
||||
}
|
||||
|
||||
#if defined(USE_M17)
|
||||
bool CModem::writeM17Info(const char* source, const char* dest, const char* type)
|
||||
{
|
||||
assert(m_port != NULL);
|
||||
@@ -1968,6 +2004,7 @@ bool CModem::writeM17Info(const char* source, const char* dest, const char* type
|
||||
|
||||
return m_port->write(buffer, 23U) != 23;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_POCSAG)
|
||||
bool CModem::writePOCSAGInfo(unsigned int ric, const std::string& message)
|
||||
@@ -2083,10 +2120,12 @@ bool CModem::hasNXDN() const
|
||||
return (m_capabilities1 & CAP1_NXDN) == CAP1_NXDN;
|
||||
}
|
||||
|
||||
#if defined(USE_M17)
|
||||
bool CModem::hasM17() const
|
||||
{
|
||||
return (m_capabilities1 & CAP1_M17) == CAP1_M17;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_FM)
|
||||
bool CModem::hasFM() const
|
||||
@@ -2176,7 +2215,10 @@ bool CModem::readVersion()
|
||||
#if defined(USE_DSTAR)
|
||||
m_capabilities1 |= CAP1_DSTAR;
|
||||
#endif
|
||||
m_capabilities1 |= CAP1_DMR | CAP1_YSF | CAP1_P25 | CAP1_NXDN | CAP1_M17;
|
||||
m_capabilities1 |= CAP1_DMR | CAP1_YSF | CAP1_P25 | CAP1_NXDN;
|
||||
#if defined(USE_M17)
|
||||
m_capabilities1 |= CAP1_M17;
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
m_capabilities2 |= CAP2_POCSAG;
|
||||
#endif
|
||||
@@ -2214,8 +2256,10 @@ bool CModem::readVersion()
|
||||
::strcat(modeText, " P25");
|
||||
if (hasNXDN())
|
||||
::strcat(modeText, " NXDN");
|
||||
#if defined(USE_M17)
|
||||
if (hasM17())
|
||||
::strcat(modeText, " M17");
|
||||
#endif
|
||||
#if defined(USE_FM)
|
||||
if (hasFM())
|
||||
::strcat(modeText, " FM");
|
||||
@@ -2320,8 +2364,10 @@ bool CModem::setConfig1()
|
||||
if (m_pocsagEnabled)
|
||||
buffer[4U] |= 0x20U;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
if (m_m17Enabled)
|
||||
buffer[4U] |= 0x40U;
|
||||
#endif
|
||||
|
||||
buffer[5U] = m_txDelay / 10U; // In 10ms units
|
||||
|
||||
@@ -2366,9 +2412,13 @@ bool CModem::setConfig1()
|
||||
|
||||
buffer[23U] = (unsigned char)m_nxdnTXHang;
|
||||
|
||||
#if defined(USE_M17)
|
||||
buffer[24U] = (unsigned char)(m_m17TXLevel * 2.55F + 0.5F);
|
||||
|
||||
buffer[25U] = (unsigned char)m_m17TXHang;
|
||||
#else
|
||||
buffer[24U] = 0U;
|
||||
buffer[25U] = 0U;
|
||||
#endif
|
||||
|
||||
// CUtils::dump(1U, "Written", buffer, 26U);
|
||||
|
||||
@@ -2448,8 +2498,10 @@ bool CModem::setConfig2()
|
||||
if (m_fmEnabled)
|
||||
buffer[4U] |= 0x20U;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
if (m_m17Enabled)
|
||||
buffer[4U] |= 0x40U;
|
||||
#endif
|
||||
|
||||
buffer[5U] = 0x00U;
|
||||
#if defined(USE_POCSAG)
|
||||
@@ -2479,7 +2531,11 @@ bool CModem::setConfig2()
|
||||
buffer[14U] = (unsigned char)(m_ysfTXLevel * 2.55F + 0.5F);
|
||||
buffer[15U] = (unsigned char)(m_p25TXLevel * 2.55F + 0.5F);
|
||||
buffer[16U] = (unsigned char)(m_nxdnTXLevel * 2.55F + 0.5F);
|
||||
#if defined(USE_M17)
|
||||
buffer[17U] = (unsigned char)(m_m17TXLevel * 2.55F + 0.5F);
|
||||
#else
|
||||
buffer[17U] = 0U;
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
buffer[18U] = (unsigned char)(m_pocsagTXLevel * 2.55F + 0.5F);
|
||||
#else
|
||||
@@ -2501,7 +2557,11 @@ bool CModem::setConfig2()
|
||||
buffer[23U] = (unsigned char)m_ysfTXHang;
|
||||
buffer[24U] = (unsigned char)m_p25TXHang;
|
||||
buffer[25U] = (unsigned char)m_nxdnTXHang;
|
||||
#if defined(USE_M17)
|
||||
buffer[26U] = (unsigned char)m_m17TXHang;
|
||||
#else
|
||||
buffer[26U] = 0U;
|
||||
#endif
|
||||
buffer[27U] = 0x00U;
|
||||
buffer[28U] = 0x00U;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user