mirror of
https://github.com/g4klx/MMDVMHost.git
synced 2026-02-15 03:54:14 +01:00
Add conditional compilation to the common classes for all of the modes.
This commit is contained in:
parent
72152cc82b
commit
ebc539b205
16
AMBEFEC.cpp
16
AMBEFEC.cpp
|
|
@ -442,20 +442,24 @@ const unsigned int PRNG_TABLE[] = {
|
|||
0xECDB0FU, 0xB542DAU, 0x9E5131U, 0xC7ABA5U, 0x8C38FEU, 0x97010BU, 0xDED290U, 0xA4CC7DU, 0xAD3D2EU, 0xF6B6B3U,
|
||||
0xF9A540U, 0x205ED9U, 0x634EB6U, 0x5A9567U, 0x11A6D8U, 0x0B3F09U};
|
||||
|
||||
#if defined(USE_DMR) || defined(USE_YSF) || defined(USE_NXDN)
|
||||
const unsigned int DMR_A_TABLE[] = { 0U, 4U, 8U, 12U, 16U, 20U, 24U, 28U, 32U, 36U, 40U, 44U,
|
||||
48U, 52U, 56U, 60U, 64U, 68U, 1U, 5U, 9U, 13U, 17U, 21U};
|
||||
const unsigned int DMR_B_TABLE[] = {25U, 29U, 33U, 37U, 41U, 45U, 49U, 53U, 57U, 61U, 65U, 69U,
|
||||
2U, 6U, 10U, 14U, 18U, 22U, 26U, 30U, 34U, 38U, 42U};
|
||||
const unsigned int DMR_C_TABLE[] = {46U, 50U, 54U, 58U, 62U, 66U, 70U, 3U, 7U, 11U, 15U, 19U,
|
||||
23U, 27U, 31U, 35U, 39U, 43U, 47U, 51U, 55U, 59U, 63U, 67U, 71U};
|
||||
|
||||
#endif
|
||||
#if defined(USE_DSTAR)
|
||||
const unsigned int DSTAR_A_TABLE[] = {0U, 6U, 12U, 18U, 24U, 30U, 36U, 42U, 48U, 54U, 60U, 66U,
|
||||
1U, 7U, 13U, 19U, 25U, 31U, 37U, 43U, 49U, 55U, 61U, 67U};
|
||||
const unsigned int DSTAR_B_TABLE[] = {2U, 8U, 14U, 20U, 26U, 32U, 38U, 44U, 50U, 56U, 62U, 68U,
|
||||
3U, 9U, 15U, 21U, 27U, 33U, 39U, 45U, 51U, 57U, 63U, 69U};
|
||||
const unsigned int DSTAR_C_TABLE[] = {4U, 10U, 16U, 22U, 28U, 34U, 40U, 46U, 52U, 58U, 64U, 70U,
|
||||
5U, 11U, 17U, 23U, 29U, 35U, 41U, 47U, 53U, 59U, 65U, 71U};
|
||||
#endif
|
||||
|
||||
#if defined(USE_YSF) || defined(USE_P25)
|
||||
const unsigned int IMBE_INTERLEAVE[] = {
|
||||
0, 7, 12, 19, 24, 31, 36, 43, 48, 55, 60, 67, 72, 79, 84, 91, 96, 103, 108, 115, 120, 127, 132, 139,
|
||||
1, 6, 13, 18, 25, 30, 37, 42, 49, 54, 61, 66, 73, 78, 85, 90, 97, 102, 109, 114, 121, 126, 133, 138,
|
||||
|
|
@ -464,6 +468,7 @@ const unsigned int IMBE_INTERLEAVE[] = {
|
|||
4, 11, 16, 23, 28, 35, 40, 47, 52, 59, 64, 71, 76, 83, 88, 95, 100, 107, 112, 119, 124, 131, 136, 143,
|
||||
5, 10, 17, 22, 29, 34, 41, 46, 53, 58, 65, 70, 77, 82, 89, 94, 101, 106, 113, 118, 125, 130, 137, 142
|
||||
};
|
||||
#endif
|
||||
|
||||
CAMBEFEC::CAMBEFEC()
|
||||
{
|
||||
|
|
@ -473,6 +478,7 @@ CAMBEFEC::~CAMBEFEC()
|
|||
{
|
||||
}
|
||||
|
||||
#if defined(USE_DMR) || defined(USE_YSF) || defined(USE_NXDN)
|
||||
unsigned int CAMBEFEC::regenerateDMR(unsigned char* bytes) const
|
||||
{
|
||||
assert(bytes != NULL);
|
||||
|
|
@ -573,6 +579,7 @@ unsigned int CAMBEFEC::regenerateDMR(unsigned char* bytes) const
|
|||
|
||||
return errors;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_DSTAR)
|
||||
unsigned int CAMBEFEC::regenerateDStar(unsigned char* bytes) const
|
||||
|
|
@ -608,6 +615,7 @@ unsigned int CAMBEFEC::regenerateDStar(unsigned char* bytes) const
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_YSF)
|
||||
unsigned int CAMBEFEC::regenerateYSFDN(unsigned char* bytes) const
|
||||
{
|
||||
assert(bytes != NULL);
|
||||
|
|
@ -658,7 +666,9 @@ unsigned int CAMBEFEC::regenerateYSFDN(unsigned char* bytes) const
|
|||
|
||||
return errors;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_YSF) || defined(USE_P25)
|
||||
unsigned int CAMBEFEC::regenerateIMBE(unsigned char* bytes) const
|
||||
{
|
||||
assert(bytes != NULL);
|
||||
|
|
@ -792,6 +802,7 @@ unsigned int CAMBEFEC::regenerateIMBE(unsigned char* bytes) const
|
|||
|
||||
return errors;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_DSTAR)
|
||||
unsigned int CAMBEFEC::regenerateDStar(unsigned int& a, unsigned int& b) const
|
||||
|
|
@ -829,6 +840,7 @@ unsigned int CAMBEFEC::regenerateDStar(unsigned int& a, unsigned int& b) const
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_DMR) || defined(USE_YSF) || defined(USE_NXDN)
|
||||
unsigned int CAMBEFEC::regenerateDMR(unsigned int& a, unsigned int& b, unsigned int& c) const
|
||||
{
|
||||
unsigned int orig_a = a;
|
||||
|
|
@ -870,3 +882,5 @@ unsigned int CAMBEFEC::regenerateDMR(unsigned int& a, unsigned int& b, unsigned
|
|||
|
||||
return errsA + errsB;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
|||
11
AMBEFEC.h
11
AMBEFEC.h
|
|
@ -26,20 +26,29 @@ public:
|
|||
CAMBEFEC();
|
||||
~CAMBEFEC();
|
||||
|
||||
#if defined(USE_DMR) || defined(USE_YSF) || defined(USE_NXDN)
|
||||
unsigned int regenerateDMR(unsigned char* bytes) const;
|
||||
#endif
|
||||
|
||||
#if defined(USE_DSTAR)
|
||||
unsigned int regenerateDStar(unsigned char* bytes) const;
|
||||
#endif
|
||||
unsigned int regenerateYSFDN(unsigned char* bytes) const;
|
||||
|
||||
#if defined(USE_YSF)
|
||||
unsigned int regenerateYSFDN(unsigned char* bytes) const;
|
||||
#endif
|
||||
|
||||
#if defined(USE_YSF) || defined(USE_P25)
|
||||
unsigned int regenerateIMBE(unsigned char* bytes) const;
|
||||
#endif
|
||||
|
||||
private:
|
||||
#if defined(USE_DSTAR)
|
||||
unsigned int regenerateDStar(unsigned int& a, unsigned int& b) const;
|
||||
#endif
|
||||
#if defined(USE_DMR) || defined(USE_YSF) || defined(USE_NXDN)
|
||||
unsigned int regenerateDMR(unsigned int& a, unsigned int& b,unsigned int& c) const;
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
|||
132
Conf.cpp
132
Conf.cpp
|
|
@ -34,17 +34,29 @@ enum SECTION {
|
|||
SECTION_LOG,
|
||||
SECTION_MQTT,
|
||||
SECTION_CWID,
|
||||
#if defined(USE_DMR) || defined(USE_P25)
|
||||
SECTION_DMRID_LOOKUP,
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
SECTION_NXDNID_LOOKUP,
|
||||
#endif
|
||||
SECTION_MODEM,
|
||||
SECTION_TRANSPARENT,
|
||||
#if defined(USE_DSTAR)
|
||||
SECTION_DSTAR,
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
SECTION_DMR,
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
SECTION_FUSION,
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
SECTION_P25,
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
SECTION_NXDN,
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
SECTION_M17,
|
||||
#endif
|
||||
|
|
@ -60,10 +72,18 @@ enum SECTION {
|
|||
#if defined(USE_DSTAR)
|
||||
SECTION_DSTAR_NETWORK,
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
SECTION_DMR_NETWORK,
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
SECTION_FUSION_NETWORK,
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
SECTION_P25_NETWORK,
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
SECTION_NXDN_NETWORK,
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
SECTION_M17_NETWORK,
|
||||
#endif
|
||||
|
|
@ -105,10 +125,14 @@ m_mqttName("mmdvm"),
|
|||
m_cwIdEnabled(false),
|
||||
m_cwIdTime(10U),
|
||||
m_cwIdCallsign(),
|
||||
#if defined(USE_DMR) || defined(USE_P25)
|
||||
m_dmrIdLookupFile(),
|
||||
m_dmrIdLookupTime(0U),
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
m_nxdnIdLookupFile(),
|
||||
m_nxdnIdLookupTime(0U),
|
||||
#endif
|
||||
m_modemProtocol("uart"),
|
||||
m_modemUARTPort(),
|
||||
m_modemUARTSpeed(115200U),
|
||||
|
|
@ -122,7 +146,9 @@ m_modemRXInvert(false),
|
|||
m_modemTXInvert(false),
|
||||
m_modemPTTInvert(false),
|
||||
m_modemTXDelay(100U),
|
||||
#if defined(USE_DMR)
|
||||
m_modemDMRDelay(0U),
|
||||
#endif
|
||||
m_modemTXOffset(0),
|
||||
m_modemRXOffset(0),
|
||||
m_modemRXDCOffset(0),
|
||||
|
|
@ -161,6 +187,7 @@ m_dstarErrorReply(true),
|
|||
m_dstarRemoteGateway(false),
|
||||
#endif
|
||||
m_dstarModeHang(10U),
|
||||
#if defined(USE_DMR)
|
||||
m_dmrEnabled(false),
|
||||
m_dmrBeacons(DMR_BEACONS_OFF),
|
||||
m_dmrBeaconInterval(60U),
|
||||
|
|
@ -177,14 +204,20 @@ m_dmrSlot1TGWhiteList(),
|
|||
m_dmrSlot2TGWhiteList(),
|
||||
m_dmrCallHang(10U),
|
||||
m_dmrTXHang(4U),
|
||||
#endif
|
||||
m_dmrModeHang(10U),
|
||||
#if defined(USE_DMR)
|
||||
m_dmrOVCM(DMR_OVCM_OFF),
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
m_fusionEnabled(false),
|
||||
m_fusionLowDeviation(false),
|
||||
m_fusionRemoteGateway(false),
|
||||
m_fusionSelfOnly(false),
|
||||
m_fusionTXHang(4U),
|
||||
#endif
|
||||
m_fusionModeHang(10U),
|
||||
#if defined(USE_P25)
|
||||
m_p25Enabled(false),
|
||||
m_p25Id(0U),
|
||||
m_p25NAC(0x293U),
|
||||
|
|
@ -192,13 +225,16 @@ m_p25SelfOnly(false),
|
|||
m_p25OverrideUID(false),
|
||||
m_p25RemoteGateway(false),
|
||||
m_p25TXHang(5U),
|
||||
#endif
|
||||
m_p25ModeHang(10U),
|
||||
#if defined(USE_NXDN)
|
||||
m_nxdnEnabled(false),
|
||||
m_nxdnId(0U),
|
||||
m_nxdnRAN(1U),
|
||||
m_nxdnSelfOnly(false),
|
||||
m_nxdnRemoteGateway(false),
|
||||
m_nxdnTXHang(5U),
|
||||
#endif
|
||||
m_nxdnModeHang(10U),
|
||||
#if defined(USE_M17)
|
||||
m_m17Enabled(false),
|
||||
|
|
@ -275,6 +311,7 @@ m_dstarNetworkModeHang(3U),
|
|||
#if defined(USE_DSTAR)
|
||||
m_dstarNetworkDebug(false),
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
m_dmrNetworkEnabled(false),
|
||||
m_dmrNetworkGatewayAddress(),
|
||||
m_dmrNetworkGatewayPort(0U),
|
||||
|
|
@ -284,29 +321,42 @@ m_dmrNetworkDebug(false),
|
|||
m_dmrNetworkJitter(360U),
|
||||
m_dmrNetworkSlot1(true),
|
||||
m_dmrNetworkSlot2(true),
|
||||
#endif
|
||||
m_dmrNetworkModeHang(3U),
|
||||
#if defined(USE_YSF)
|
||||
m_fusionNetworkEnabled(false),
|
||||
m_fusionNetworkLocalAddress(),
|
||||
m_fusionNetworkLocalPort(0U),
|
||||
m_fusionNetworkGatewayAddress(),
|
||||
m_fusionNetworkGatewayPort(0U),
|
||||
#endif
|
||||
m_fusionNetworkModeHang(3U),
|
||||
#if defined(USE_YSF)
|
||||
m_fusionNetworkDebug(false),
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
m_p25NetworkEnabled(false),
|
||||
m_p25GatewayAddress(),
|
||||
m_p25GatewayPort(0U),
|
||||
m_p25LocalAddress(),
|
||||
m_p25LocalPort(0U),
|
||||
#endif
|
||||
m_p25NetworkModeHang(3U),
|
||||
#if defined(USE_P25)
|
||||
m_p25NetworkDebug(false),
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
m_nxdnNetworkEnabled(false),
|
||||
m_nxdnNetworkProtocol("Icom"),
|
||||
m_nxdnGatewayAddress(),
|
||||
m_nxdnGatewayPort(0U),
|
||||
m_nxdnLocalAddress(),
|
||||
m_nxdnLocalPort(0U),
|
||||
#endif
|
||||
m_nxdnNetworkModeHang(3U),
|
||||
#if defined(USE_NXDN)
|
||||
m_nxdnNetworkDebug(false),
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
m_m17NetworkEnabled(false),
|
||||
m_m17GatewayAddress(),
|
||||
|
|
@ -385,10 +435,14 @@ bool CConf::read()
|
|||
section = SECTION_MQTT;
|
||||
else if (::strncmp(buffer, "[CW Id]", 7U) == 0)
|
||||
section = SECTION_CWID;
|
||||
#if defined(USE_DMR) || defined(USE_P25)
|
||||
else if (::strncmp(buffer, "[DMR Id Lookup]", 15U) == 0)
|
||||
section = SECTION_DMRID_LOOKUP;
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
else if (::strncmp(buffer, "[NXDN Id Lookup]", 16U) == 0)
|
||||
section = SECTION_NXDNID_LOOKUP;
|
||||
#endif
|
||||
else if (::strncmp(buffer, "[Modem]", 7U) == 0)
|
||||
section = SECTION_MODEM;
|
||||
else if (::strncmp(buffer, "[Transparent Data]", 18U) == 0)
|
||||
|
|
@ -397,14 +451,22 @@ bool CConf::read()
|
|||
else if (::strncmp(buffer, "[D-Star]", 8U) == 0)
|
||||
section = SECTION_DSTAR;
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
else if (::strncmp(buffer, "[DMR]", 5U) == 0)
|
||||
section = SECTION_DMR;
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
else if (::strncmp(buffer, "[System Fusion]", 15U) == 0)
|
||||
section = SECTION_FUSION;
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
else if (::strncmp(buffer, "[P25]", 5U) == 0)
|
||||
section = SECTION_P25;
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
else if (::strncmp(buffer, "[NXDN]", 6U) == 0)
|
||||
section = SECTION_NXDN;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
else if (::strncmp(buffer, "[M17]", 5U) == 0)
|
||||
section = SECTION_M17;
|
||||
|
|
@ -425,14 +487,22 @@ bool CConf::read()
|
|||
else if (::strncmp(buffer, "[D-Star Network]", 16U) == 0)
|
||||
section = SECTION_DSTAR_NETWORK;
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
else if (::strncmp(buffer, "[DMR Network]", 13U) == 0)
|
||||
section = SECTION_DMR_NETWORK;
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
else if (::strncmp(buffer, "[System Fusion Network]", 23U) == 0)
|
||||
section = SECTION_FUSION_NETWORK;
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
else if (::strncmp(buffer, "[P25 Network]", 13U) == 0)
|
||||
section = SECTION_P25_NETWORK;
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
else if (::strncmp(buffer, "[NXDN Network]", 14U) == 0)
|
||||
section = SECTION_NXDN_NETWORK;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
else if (::strncmp(buffer, "[M17 Network]", 13U) == 0)
|
||||
section = SECTION_M17_NETWORK;
|
||||
|
|
@ -549,16 +619,20 @@ bool CConf::read()
|
|||
value[i] = ::toupper(value[i]);
|
||||
m_cwIdCallsign = value;
|
||||
}
|
||||
#if defined(USE_DMR) || defined(USE_P25)
|
||||
} else if (section == SECTION_DMRID_LOOKUP) {
|
||||
if (::strcmp(key, "File") == 0)
|
||||
m_dmrIdLookupFile = value;
|
||||
else if (::strcmp(key, "Time") == 0)
|
||||
m_dmrIdLookupTime = (unsigned int)::atoi(value);
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
} else if (section == SECTION_NXDNID_LOOKUP) {
|
||||
if (::strcmp(key, "File") == 0)
|
||||
m_nxdnIdLookupFile = value;
|
||||
else if (::strcmp(key, "Time") == 0)
|
||||
m_nxdnIdLookupTime = (unsigned int)::atoi(value);
|
||||
#endif
|
||||
} else if (section == SECTION_MODEM) {
|
||||
if (::strcmp(key, "Protocol") == 0)
|
||||
m_modemProtocol = value;
|
||||
|
|
@ -586,8 +660,10 @@ bool CConf::read()
|
|||
m_modemPTTInvert = ::atoi(value) == 1;
|
||||
else if (::strcmp(key, "TXDelay") == 0)
|
||||
m_ax25TXDelay = m_modemTXDelay = (unsigned int)::atoi(value);
|
||||
#if defined(USE_DMR)
|
||||
else if (::strcmp(key, "DMRDelay") == 0)
|
||||
m_modemDMRDelay = (unsigned int)::atoi(value);
|
||||
#endif
|
||||
else if (::strcmp(key, "RXOffset") == 0)
|
||||
m_modemRXOffset = ::atoi(value);
|
||||
else if (::strcmp(key, "TXOffset") == 0)
|
||||
|
|
@ -604,16 +680,26 @@ bool CConf::read()
|
|||
m_modemAX25TXLevel = m_modemFMTXLevel = m_modemCWIdTXLevel = m_modemDStarTXLevel = m_modemDMRTXLevel = m_modemYSFTXLevel = m_modemP25TXLevel = m_modemNXDNTXLevel = m_modemM17TXLevel = m_modemPOCSAGTXLevel = float(::atof(value));
|
||||
else if (::strcmp(key, "CWIdTXLevel") == 0)
|
||||
m_modemCWIdTXLevel = float(::atof(value));
|
||||
#if defined(USE_DSTAR)
|
||||
else if (::strcmp(key, "D-StarTXLevel") == 0)
|
||||
m_modemDStarTXLevel = float(::atof(value));
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
else if (::strcmp(key, "DMRTXLevel") == 0)
|
||||
m_modemDMRTXLevel = float(::atof(value));
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
else if (::strcmp(key, "YSFTXLevel") == 0)
|
||||
m_modemYSFTXLevel = float(::atof(value));
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
else if (::strcmp(key, "P25TXLevel") == 0)
|
||||
m_modemP25TXLevel = float(::atof(value));
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
else if (::strcmp(key, "NXDNTXLevel") == 0)
|
||||
m_modemNXDNTXLevel = float(::atof(value));
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
else if (::strcmp(key, "M17TXLevel") == 0)
|
||||
m_modemM17TXLevel = float(::atof(value));
|
||||
|
|
@ -699,6 +785,7 @@ bool CConf::read()
|
|||
else if (::strcmp(key, "ModeHang") == 0)
|
||||
m_dstarModeHang = (unsigned int)::atoi(value);
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
} else if (section == SECTION_DMR) {
|
||||
if (::strcmp(key, "Enable") == 0)
|
||||
m_dmrEnabled = ::atoi(value) == 1;
|
||||
|
|
@ -784,6 +871,8 @@ bool CConf::read()
|
|||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
} else if (section == SECTION_FUSION) {
|
||||
if (::strcmp(key, "Enable") == 0)
|
||||
m_fusionEnabled = ::atoi(value) == 1;
|
||||
|
|
@ -797,6 +886,8 @@ bool CConf::read()
|
|||
m_fusionTXHang = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "ModeHang") == 0)
|
||||
m_fusionModeHang = (unsigned int)::atoi(value);
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
} else if (section == SECTION_P25) {
|
||||
if (::strcmp(key, "Enable") == 0)
|
||||
m_p25Enabled = ::atoi(value) == 1;
|
||||
|
|
@ -814,6 +905,8 @@ bool CConf::read()
|
|||
m_p25TXHang = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "ModeHang") == 0)
|
||||
m_p25ModeHang = (unsigned int)::atoi(value);
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
} else if (section == SECTION_NXDN) {
|
||||
if (::strcmp(key, "Enable") == 0)
|
||||
m_nxdnEnabled = ::atoi(value) == 1;
|
||||
|
|
@ -829,6 +922,7 @@ bool CConf::read()
|
|||
m_nxdnTXHang = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "ModeHang") == 0)
|
||||
m_nxdnModeHang = (unsigned int)::atoi(value);
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
} else if (section == SECTION_M17) {
|
||||
if (::strcmp(key, "Enable") == 0)
|
||||
|
|
@ -971,6 +1065,7 @@ bool CConf::read()
|
|||
else if (::strcmp(key, "Debug") == 0)
|
||||
m_dstarNetworkDebug = ::atoi(value) == 1;
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
} else if (section == SECTION_DMR_NETWORK) {
|
||||
if (::strcmp(key, "Enable") == 0)
|
||||
m_dmrNetworkEnabled = ::atoi(value) == 1;
|
||||
|
|
@ -992,6 +1087,8 @@ bool CConf::read()
|
|||
m_dmrNetworkSlot2 = ::atoi(value) == 1;
|
||||
else if (::strcmp(key, "ModeHang") == 0)
|
||||
m_dmrNetworkModeHang = (unsigned int)::atoi(value);
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
} else if (section == SECTION_FUSION_NETWORK) {
|
||||
if (::strcmp(key, "Enable") == 0)
|
||||
m_fusionNetworkEnabled = ::atoi(value) == 1;
|
||||
|
|
@ -1007,6 +1104,8 @@ bool CConf::read()
|
|||
m_fusionNetworkModeHang = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "Debug") == 0)
|
||||
m_fusionNetworkDebug = ::atoi(value) == 1;
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
} else if (section == SECTION_P25_NETWORK) {
|
||||
if (::strcmp(key, "Enable") == 0)
|
||||
m_p25NetworkEnabled = ::atoi(value) == 1;
|
||||
|
|
@ -1022,6 +1121,8 @@ bool CConf::read()
|
|||
m_p25NetworkModeHang = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "Debug") == 0)
|
||||
m_p25NetworkDebug = ::atoi(value) == 1;
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
} else if (section == SECTION_NXDN_NETWORK) {
|
||||
if (::strcmp(key, "Enable") == 0)
|
||||
m_nxdnNetworkEnabled = ::atoi(value) == 1;
|
||||
|
|
@ -1037,6 +1138,7 @@ bool CConf::read()
|
|||
m_nxdnNetworkModeHang = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "Debug") == 0)
|
||||
m_nxdnNetworkDebug = ::atoi(value) == 1;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
} else if (section == SECTION_M17_NETWORK) {
|
||||
if (::strcmp(key, "Enable") == 0)
|
||||
|
|
@ -1240,6 +1342,7 @@ std::string CConf::getCWIdCallsign() const
|
|||
return m_cwIdCallsign;
|
||||
}
|
||||
|
||||
#if defined(USE_DMR) || defined(USE_P25)
|
||||
std::string CConf::getDMRIdLookupFile() const
|
||||
{
|
||||
return m_dmrIdLookupFile;
|
||||
|
|
@ -1249,7 +1352,9 @@ unsigned int CConf::getDMRIdLookupTime() const
|
|||
{
|
||||
return m_dmrIdLookupTime;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_NXDN)
|
||||
std::string CConf::getNXDNIdLookupFile() const
|
||||
{
|
||||
return m_nxdnIdLookupFile;
|
||||
|
|
@ -1259,6 +1364,7 @@ unsigned int CConf::getNXDNIdLookupTime() const
|
|||
{
|
||||
return m_nxdnIdLookupTime;
|
||||
}
|
||||
#endif
|
||||
|
||||
std::string CConf::getModemProtocol() const
|
||||
{
|
||||
|
|
@ -1325,10 +1431,12 @@ unsigned int CConf::getModemTXDelay() const
|
|||
return m_modemTXDelay;
|
||||
}
|
||||
|
||||
#if defined(USE_DMR)
|
||||
unsigned int CConf::getModemDMRDelay() const
|
||||
{
|
||||
return m_modemDMRDelay;
|
||||
}
|
||||
#endif
|
||||
|
||||
int CConf::getModemRXOffset() const
|
||||
{
|
||||
|
|
@ -1372,25 +1480,33 @@ float CConf::getModemDStarTXLevel() const
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_DMR)
|
||||
float CConf::getModemDMRTXLevel() const
|
||||
{
|
||||
return m_modemDMRTXLevel;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_YSF)
|
||||
float CConf::getModemYSFTXLevel() const
|
||||
{
|
||||
return m_modemYSFTXLevel;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_P25)
|
||||
float CConf::getModemP25TXLevel() const
|
||||
{
|
||||
return m_modemP25TXLevel;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_NXDN)
|
||||
float CConf::getModemNXDNTXLevel() const
|
||||
{
|
||||
return m_modemNXDNTXLevel;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_M17)
|
||||
float CConf::getModemM17TXLevel() const
|
||||
|
|
@ -1522,6 +1638,7 @@ unsigned int CConf::getDStarModeHang() const
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_DMR)
|
||||
bool CConf::getDMREnabled() const
|
||||
{
|
||||
return m_dmrEnabled;
|
||||
|
|
@ -1611,7 +1728,9 @@ DMR_OVCM_TYPES CConf::getDMROVCM() const
|
|||
{
|
||||
return m_dmrOVCM;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_YSF)
|
||||
bool CConf::getFusionEnabled() const
|
||||
{
|
||||
return m_fusionEnabled;
|
||||
|
|
@ -1641,7 +1760,9 @@ unsigned int CConf::getFusionModeHang() const
|
|||
{
|
||||
return m_fusionModeHang;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_P25)
|
||||
bool CConf::getP25Enabled() const
|
||||
{
|
||||
return m_p25Enabled;
|
||||
|
|
@ -1681,7 +1802,9 @@ unsigned int CConf::getP25ModeHang() const
|
|||
{
|
||||
return m_p25ModeHang;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_NXDN)
|
||||
bool CConf::getNXDNEnabled() const
|
||||
{
|
||||
return m_nxdnEnabled;
|
||||
|
|
@ -1716,6 +1839,7 @@ unsigned int CConf::getNXDNModeHang() const
|
|||
{
|
||||
return m_nxdnModeHang;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_M17)
|
||||
bool CConf::getM17Enabled() const
|
||||
|
|
@ -2012,6 +2136,7 @@ bool CConf::getDStarNetworkDebug() const
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_DMR)
|
||||
bool CConf::getDMRNetworkEnabled() const
|
||||
{
|
||||
return m_dmrNetworkEnabled;
|
||||
|
|
@ -2061,7 +2186,9 @@ bool CConf::getDMRNetworkSlot2() const
|
|||
{
|
||||
return m_dmrNetworkSlot2;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_YSF)
|
||||
bool CConf::getFusionNetworkEnabled() const
|
||||
{
|
||||
return m_fusionNetworkEnabled;
|
||||
|
|
@ -2096,7 +2223,9 @@ bool CConf::getFusionNetworkDebug() const
|
|||
{
|
||||
return m_fusionNetworkDebug;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_P25)
|
||||
bool CConf::getP25NetworkEnabled() const
|
||||
{
|
||||
return m_p25NetworkEnabled;
|
||||
|
|
@ -2131,7 +2260,9 @@ bool CConf::getP25NetworkDebug() const
|
|||
{
|
||||
return m_p25NetworkDebug;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_NXDN)
|
||||
bool CConf::getNXDNNetworkEnabled() const
|
||||
{
|
||||
return m_nxdnNetworkEnabled;
|
||||
|
|
@ -2171,6 +2302,7 @@ bool CConf::getNXDNNetworkDebug() const
|
|||
{
|
||||
return m_nxdnNetworkDebug;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_M17)
|
||||
bool CConf::getM17NetworkEnabled() const
|
||||
|
|
|
|||
62
Conf.h
62
Conf.h
|
|
@ -63,13 +63,17 @@ public:
|
|||
unsigned int getCWIdTime() const;
|
||||
std::string getCWIdCallsign() const;
|
||||
|
||||
#if defined(USE_DMR) || defined(USE_P25)
|
||||
// The DMR Id section
|
||||
std::string getDMRIdLookupFile() const;
|
||||
unsigned int getDMRIdLookupTime() const;
|
||||
#endif
|
||||
|
||||
#if defined(USE_NXDN)
|
||||
// The NXDN Id section
|
||||
std::string getNXDNIdLookupFile() const;
|
||||
unsigned int getNXDNIdLookupTime() const;
|
||||
#endif
|
||||
|
||||
// The Modem section
|
||||
std::string getModemProtocol() const;
|
||||
|
|
@ -85,7 +89,9 @@ public:
|
|||
bool getModemTXInvert() const;
|
||||
bool getModemPTTInvert() const;
|
||||
unsigned int getModemTXDelay() const;
|
||||
#if defined(USE_DMR)
|
||||
unsigned int getModemDMRDelay() const;
|
||||
#endif
|
||||
int getModemTXOffset() const;
|
||||
int getModemRXOffset() const;
|
||||
int getModemRXDCOffset() const;
|
||||
|
|
@ -96,10 +102,18 @@ public:
|
|||
#if defined(USE_DSTAR)
|
||||
float getModemDStarTXLevel() const;
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
float getModemDMRTXLevel() const;
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
float getModemYSFTXLevel() const;
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
float getModemP25TXLevel() const;
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
float getModemNXDNTXLevel() const;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
float getModemM17TXLevel() const;
|
||||
#endif
|
||||
|
|
@ -124,8 +138,8 @@ public:
|
|||
unsigned short getTransparentLocalPort() const;
|
||||
unsigned int getTransparentSendFrameType() const;
|
||||
|
||||
// The D-Star section
|
||||
#if defined(USE_DSTAR)
|
||||
// The D-Star section
|
||||
bool getDStarEnabled() const;
|
||||
std::string getDStarModule() const;
|
||||
bool getDStarSelfOnly() const;
|
||||
|
|
@ -139,6 +153,7 @@ public:
|
|||
unsigned int getDStarModeHang() const;
|
||||
#endif
|
||||
|
||||
#if defined(USE_DMR)
|
||||
// The DMR section
|
||||
bool getDMREnabled() const;
|
||||
DMR_BEACONS getDMRBeacons() const;
|
||||
|
|
@ -158,7 +173,9 @@ public:
|
|||
unsigned int getDMRTXHang() const;
|
||||
unsigned int getDMRModeHang() const;
|
||||
DMR_OVCM_TYPES getDMROVCM() const;
|
||||
#endif
|
||||
|
||||
#if defined(USE_YSF)
|
||||
// The System Fusion section
|
||||
bool getFusionEnabled() const;
|
||||
bool getFusionLowDeviation() const;
|
||||
|
|
@ -166,7 +183,9 @@ public:
|
|||
bool getFusionSelfOnly() const;
|
||||
unsigned int getFusionTXHang() const;
|
||||
unsigned int getFusionModeHang() const;
|
||||
#endif
|
||||
|
||||
#if defined(USE_P25)
|
||||
// The P25 section
|
||||
bool getP25Enabled() const;
|
||||
unsigned int getP25Id() const;
|
||||
|
|
@ -176,7 +195,9 @@ public:
|
|||
bool getP25RemoteGateway() const;
|
||||
unsigned int getP25TXHang() const;
|
||||
unsigned int getP25ModeHang() const;
|
||||
#endif
|
||||
|
||||
#if defined(USE_NXDN)
|
||||
// The NXDN section
|
||||
bool getNXDNEnabled() const;
|
||||
unsigned int getNXDNId() const;
|
||||
|
|
@ -185,6 +206,7 @@ public:
|
|||
bool getNXDNRemoteGateway() const;
|
||||
unsigned int getNXDNTXHang() const;
|
||||
unsigned int getNXDNModeHang() const;
|
||||
#endif
|
||||
|
||||
#if defined(USE_M17)
|
||||
// The M17 section
|
||||
|
|
@ -263,6 +285,7 @@ public:
|
|||
bool getDStarNetworkDebug() const;
|
||||
#endif
|
||||
|
||||
#if defined(USE_DMR)
|
||||
// The DMR Network section
|
||||
bool getDMRNetworkEnabled() const;
|
||||
std::string getDMRNetworkGatewayAddress() const;
|
||||
|
|
@ -274,7 +297,9 @@ public:
|
|||
bool getDMRNetworkSlot1() const;
|
||||
bool getDMRNetworkSlot2() const;
|
||||
unsigned int getDMRNetworkModeHang() const;
|
||||
#endif
|
||||
|
||||
#if defined(USE_YSF)
|
||||
// The System Fusion Network section
|
||||
bool getFusionNetworkEnabled() const;
|
||||
std::string getFusionNetworkLocalAddress() const;
|
||||
|
|
@ -283,7 +308,9 @@ public:
|
|||
unsigned short getFusionNetworkGatewayPort() const;
|
||||
unsigned int getFusionNetworkModeHang() const;
|
||||
bool getFusionNetworkDebug() const;
|
||||
#endif
|
||||
|
||||
#if defined(USE_P25)
|
||||
// The P25 Network section
|
||||
bool getP25NetworkEnabled() const;
|
||||
std::string getP25GatewayAddress() const;
|
||||
|
|
@ -292,7 +319,9 @@ public:
|
|||
unsigned short getP25LocalPort() const;
|
||||
unsigned int getP25NetworkModeHang() const;
|
||||
bool getP25NetworkDebug() const;
|
||||
#endif
|
||||
|
||||
#if defined(USE_NXDN)
|
||||
// The NXDN Network section
|
||||
bool getNXDNNetworkEnabled() const;
|
||||
std::string getNXDNNetworkProtocol() const;
|
||||
|
|
@ -302,6 +331,7 @@ public:
|
|||
unsigned short getNXDNLocalPort() const;
|
||||
unsigned int getNXDNNetworkModeHang() const;
|
||||
bool getNXDNNetworkDebug() const;
|
||||
#endif
|
||||
|
||||
#if defined(USE_M17)
|
||||
// The M17 Network section
|
||||
|
|
@ -386,11 +416,15 @@ private:
|
|||
unsigned int m_cwIdTime;
|
||||
std::string m_cwIdCallsign;
|
||||
|
||||
#if defined(USE_DMR) || defined(USE_P25)
|
||||
std::string m_dmrIdLookupFile;
|
||||
unsigned int m_dmrIdLookupTime;
|
||||
#endif
|
||||
|
||||
#if defined(USE_NXDN)
|
||||
std::string m_nxdnIdLookupFile;
|
||||
unsigned int m_nxdnIdLookupTime;
|
||||
#endif
|
||||
|
||||
std::string m_modemProtocol;
|
||||
std::string m_modemUARTPort;
|
||||
|
|
@ -405,7 +439,9 @@ private:
|
|||
bool m_modemTXInvert;
|
||||
bool m_modemPTTInvert;
|
||||
unsigned int m_modemTXDelay;
|
||||
#if defined(USE_DMR)
|
||||
unsigned int m_modemDMRDelay;
|
||||
#endif
|
||||
int m_modemTXOffset;
|
||||
int m_modemRXOffset;
|
||||
int m_modemRXDCOffset;
|
||||
|
|
@ -447,6 +483,7 @@ private:
|
|||
#endif
|
||||
unsigned int m_dstarModeHang;
|
||||
|
||||
#if defined(USE_DMR)
|
||||
bool m_dmrEnabled;
|
||||
DMR_BEACONS m_dmrBeacons;
|
||||
unsigned int m_dmrBeaconInterval;
|
||||
|
|
@ -463,16 +500,22 @@ private:
|
|||
std::vector<unsigned int> m_dmrSlot2TGWhiteList;
|
||||
unsigned int m_dmrCallHang;
|
||||
unsigned int m_dmrTXHang;
|
||||
#endif
|
||||
unsigned int m_dmrModeHang;
|
||||
#if defined(USE_DMR)
|
||||
DMR_OVCM_TYPES m_dmrOVCM;
|
||||
#endif
|
||||
|
||||
#if defined(USE_YSF)
|
||||
bool m_fusionEnabled;
|
||||
bool m_fusionLowDeviation;
|
||||
bool m_fusionRemoteGateway;
|
||||
bool m_fusionSelfOnly;
|
||||
unsigned int m_fusionTXHang;
|
||||
#endif
|
||||
unsigned int m_fusionModeHang;
|
||||
|
||||
#if defined(USE_P25)
|
||||
bool m_p25Enabled;
|
||||
unsigned int m_p25Id;
|
||||
unsigned int m_p25NAC;
|
||||
|
|
@ -480,14 +523,17 @@ private:
|
|||
bool m_p25OverrideUID;
|
||||
bool m_p25RemoteGateway;
|
||||
unsigned int m_p25TXHang;
|
||||
#endif
|
||||
unsigned int m_p25ModeHang;
|
||||
|
||||
#if defined(USE_NXDN)
|
||||
bool m_nxdnEnabled;
|
||||
unsigned int m_nxdnId;
|
||||
unsigned int m_nxdnRAN;
|
||||
bool m_nxdnSelfOnly;
|
||||
bool m_nxdnRemoteGateway;
|
||||
unsigned int m_nxdnTXHang;
|
||||
#endif
|
||||
unsigned int m_nxdnModeHang;
|
||||
|
||||
#if defined(USE_M17)
|
||||
|
|
@ -570,6 +616,7 @@ private:
|
|||
bool m_dstarNetworkDebug;
|
||||
#endif
|
||||
|
||||
#if defined(USE_DMR)
|
||||
bool m_dmrNetworkEnabled;
|
||||
std::string m_dmrNetworkGatewayAddress;
|
||||
unsigned short m_dmrNetworkGatewayPort;
|
||||
|
|
@ -579,32 +626,45 @@ private:
|
|||
unsigned int m_dmrNetworkJitter;
|
||||
bool m_dmrNetworkSlot1;
|
||||
bool m_dmrNetworkSlot2;
|
||||
#endif
|
||||
unsigned int m_dmrNetworkModeHang;
|
||||
|
||||
#if defined(USE_YSF)
|
||||
bool m_fusionNetworkEnabled;
|
||||
std::string m_fusionNetworkLocalAddress;
|
||||
unsigned short m_fusionNetworkLocalPort;
|
||||
std::string m_fusionNetworkGatewayAddress;
|
||||
unsigned short m_fusionNetworkGatewayPort;
|
||||
#endif
|
||||
unsigned int m_fusionNetworkModeHang;
|
||||
#if defined(USE_YSF)
|
||||
bool m_fusionNetworkDebug;
|
||||
#endif
|
||||
|
||||
#if defined(USE_P25)
|
||||
bool m_p25NetworkEnabled;
|
||||
std::string m_p25GatewayAddress;
|
||||
unsigned short m_p25GatewayPort;
|
||||
std::string m_p25LocalAddress;
|
||||
unsigned short m_p25LocalPort;
|
||||
#endif
|
||||
unsigned int m_p25NetworkModeHang;
|
||||
#if defined(USE_P25)
|
||||
bool m_p25NetworkDebug;
|
||||
#endif
|
||||
|
||||
#if defined(USE_NXDN)
|
||||
bool m_nxdnNetworkEnabled;
|
||||
std::string m_nxdnNetworkProtocol;
|
||||
std::string m_nxdnGatewayAddress;
|
||||
unsigned short m_nxdnGatewayPort;
|
||||
std::string m_nxdnLocalAddress;
|
||||
unsigned short m_nxdnLocalPort;
|
||||
#endif
|
||||
unsigned int m_nxdnNetworkModeHang;
|
||||
#if defined(USE_NXDN)
|
||||
bool m_nxdnNetworkDebug;
|
||||
#endif
|
||||
|
||||
#if defined(USE_M17)
|
||||
bool m_m17NetworkEnabled;
|
||||
|
|
|
|||
444
MMDVMHost.cpp
444
MMDVMHost.cpp
File diff suppressed because it is too large
Load diff
47
MMDVMHost.h
47
MMDVMHost.h
|
|
@ -64,10 +64,18 @@ private:
|
|||
#if defined(USE_DSTAR)
|
||||
CDStarControl* m_dstar;
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
CDMRControl* m_dmr;
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
CYSFControl* m_ysf;
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
CP25Control* m_p25;
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
CNXDNControl* m_nxdn;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
CM17Control* m_m17;
|
||||
#endif
|
||||
|
|
@ -83,10 +91,18 @@ private:
|
|||
#if defined(USE_DSTAR)
|
||||
CDStarNetwork* m_dstarNetwork;
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
CDMRNetwork* m_dmrNetwork;
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
CYSFNetwork* m_ysfNetwork;
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
CP25Network* m_p25Network;
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
INXDNNetwork* m_nxdnNetwork;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
CM17Network* m_m17Network;
|
||||
#endif
|
||||
|
|
@ -103,10 +119,18 @@ private:
|
|||
#if defined(USE_DSTAR)
|
||||
unsigned int m_dstarRFModeHang;
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
unsigned int m_dmrRFModeHang;
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
unsigned int m_ysfRFModeHang;
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
unsigned int m_p25RFModeHang;
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
unsigned int m_nxdnRFModeHang;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
unsigned int m_m17RFModeHang;
|
||||
#endif
|
||||
|
|
@ -116,10 +140,18 @@ private:
|
|||
#if defined(USE_DSTAR)
|
||||
unsigned int m_dstarNetModeHang;
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
unsigned int m_dmrNetModeHang;
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
unsigned int m_ysfNetModeHang;
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
unsigned int m_p25NetModeHang;
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
unsigned int m_nxdnNetModeHang;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
unsigned int m_m17NetModeHang;
|
||||
#endif
|
||||
|
|
@ -130,7 +162,9 @@ private:
|
|||
unsigned int m_fmNetModeHang;
|
||||
#endif
|
||||
CTimer m_modeTimer;
|
||||
#if defined(USE_DMR)
|
||||
CTimer m_dmrTXTimer;
|
||||
#endif
|
||||
CTimer m_cwIdTimer;
|
||||
bool m_duplex;
|
||||
unsigned int m_timeout;
|
||||
|
|
@ -144,8 +178,12 @@ private:
|
|||
bool m_fmEnabled;
|
||||
bool m_ax25Enabled;
|
||||
unsigned int m_cwIdTime;
|
||||
#if defined(USE_DMR) || defined(USE_P25)
|
||||
CDMRLookup* m_dmrLookup;
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
CNXDNLookup* m_nxdnLookup;
|
||||
#endif
|
||||
std::string m_callsign;
|
||||
unsigned int m_id;
|
||||
std::string m_cwCallsign;
|
||||
|
|
@ -159,10 +197,18 @@ private:
|
|||
#if defined(USE_DSTAR)
|
||||
bool createDStarNetwork();
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
bool createDMRNetwork();
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
bool createYSFNetwork();
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
bool createP25Network();
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
bool createNXDNNetwork();
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
bool createM17Network();
|
||||
#endif
|
||||
|
|
@ -175,7 +221,6 @@ private:
|
|||
#if defined(USE_AX25)
|
||||
bool createAX25Network();
|
||||
#endif
|
||||
|
||||
void writeSerial(const std::string& message);
|
||||
|
||||
void remoteControl(const std::string& commandString);
|
||||
|
|
|
|||
276
Modem.cpp
276
Modem.cpp
|
|
@ -58,6 +58,7 @@ const unsigned char MMDVM_DSTAR_LOST = 0x12U;
|
|||
const unsigned char MMDVM_DSTAR_EOT = 0x13U;
|
||||
#endif
|
||||
|
||||
#if defined(USE_DMR)
|
||||
const unsigned char MMDVM_DMR_DATA1 = 0x18U;
|
||||
const unsigned char MMDVM_DMR_LOST1 = 0x19U;
|
||||
const unsigned char MMDVM_DMR_DATA2 = 0x1AU;
|
||||
|
|
@ -65,16 +66,23 @@ const unsigned char MMDVM_DMR_LOST2 = 0x1BU;
|
|||
const unsigned char MMDVM_DMR_SHORTLC = 0x1CU;
|
||||
const unsigned char MMDVM_DMR_START = 0x1DU;
|
||||
const unsigned char MMDVM_DMR_ABORT = 0x1EU;
|
||||
#endif
|
||||
|
||||
#if defined(USE_YSF)
|
||||
const unsigned char MMDVM_YSF_DATA = 0x20U;
|
||||
const unsigned char MMDVM_YSF_LOST = 0x21U;
|
||||
#endif
|
||||
|
||||
#if defined(USE_P25)
|
||||
const unsigned char MMDVM_P25_HDR = 0x30U;
|
||||
const unsigned char MMDVM_P25_LDU = 0x31U;
|
||||
const unsigned char MMDVM_P25_LOST = 0x32U;
|
||||
#endif
|
||||
|
||||
#if defined(USE_NXDN)
|
||||
const unsigned char MMDVM_NXDN_DATA = 0x40U;
|
||||
const unsigned char MMDVM_NXDN_LOST = 0x41U;
|
||||
#endif
|
||||
|
||||
#if defined(USE_M17)
|
||||
const unsigned char MMDVM_M17_LINK_SETUP = 0x45U;
|
||||
|
|
@ -124,10 +132,18 @@ const unsigned int BUFFER_LENGTH = 2000U;
|
|||
#if defined(USE_DSTAR)
|
||||
const unsigned char CAP1_DSTAR = 0x01U;
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
const unsigned char CAP1_DMR = 0x02U;
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
const unsigned char CAP1_YSF = 0x04U;
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
const unsigned char CAP1_P25 = 0x08U;
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
const unsigned char CAP1_NXDN = 0x10U;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
const unsigned char CAP1_M17 = 0x20U;
|
||||
#endif
|
||||
|
|
@ -143,11 +159,19 @@ const unsigned char CAP2_AX25 = 0x02U;
|
|||
|
||||
CModem::CModem(bool duplex, bool rxInvert, bool txInvert, bool pttInvert, unsigned int txDelay, unsigned int dmrDelay, bool useCOSAsLockout, bool trace, bool debug) :
|
||||
m_protocolVersion(0U),
|
||||
#if defined(USE_DMR)
|
||||
m_dmrColorCode(0U),
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
m_ysfLoDev(false),
|
||||
m_ysfTXHang(4U),
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
m_p25TXHang(5U),
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
m_nxdnTXHang(5U),
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
m_m17TXHang(5U),
|
||||
#endif
|
||||
|
|
@ -156,16 +180,26 @@ m_rxInvert(rxInvert),
|
|||
m_txInvert(txInvert),
|
||||
m_pttInvert(pttInvert),
|
||||
m_txDelay(txDelay),
|
||||
#if defined(USE_DMR)
|
||||
m_dmrDelay(dmrDelay),
|
||||
#endif
|
||||
m_rxLevel(0.0F),
|
||||
m_cwIdTXLevel(0.0F),
|
||||
#if defined(USE_DSTAR)
|
||||
m_dstarTXLevel(0.0F),
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
m_dmrTXLevel(0.0F),
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
m_ysfTXLevel(0.0F),
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
m_p25TXLevel(0.0F),
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
m_nxdnTXLevel(0.0F),
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
m_m17TXLevel(0.0F),
|
||||
#endif
|
||||
|
|
@ -190,10 +224,18 @@ m_pocsagFrequency(0U),
|
|||
#if defined(USE_DSTAR)
|
||||
m_dstarEnabled(false),
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
m_dmrEnabled(false),
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
m_ysfEnabled(false),
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
m_p25Enabled(false),
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
m_nxdnEnabled(false),
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
m_m17Enabled(false),
|
||||
#endif
|
||||
|
|
@ -218,16 +260,24 @@ m_type(0U),
|
|||
m_rxDStarData(1000U, "Modem RX D-Star"),
|
||||
m_txDStarData(1000U, "Modem TX D-Star"),
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
m_rxDMRData1(1000U, "Modem RX DMR1"),
|
||||
m_rxDMRData2(1000U, "Modem RX DMR2"),
|
||||
m_txDMRData1(1000U, "Modem TX DMR1"),
|
||||
m_txDMRData2(1000U, "Modem TX DMR2"),
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
m_rxYSFData(1000U, "Modem RX YSF"),
|
||||
m_txYSFData(1000U, "Modem TX YSF"),
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
m_rxP25Data(1000U, "Modem RX P25"),
|
||||
m_txP25Data(1000U, "Modem TX P25"),
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
m_rxNXDNData(1000U, "Modem RX NXDN"),
|
||||
m_txNXDNData(1000U, "Modem TX NXDN"),
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
m_rxM17Data(1000U, "Modem RX M17"),
|
||||
m_txM17Data(1000U, "Modem TX M17"),
|
||||
|
|
@ -254,11 +304,19 @@ m_playoutTimer(1000U, 0U, 10U),
|
|||
#if defined(USE_DSTAR)
|
||||
m_dstarSpace(0U),
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
m_dmrSpace1(0U),
|
||||
m_dmrSpace2(0U),
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
m_ysfSpace(0U),
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
m_p25Space(0U),
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
m_nxdnSpace(0U),
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
m_m17Space(0U),
|
||||
#endif
|
||||
|
|
@ -356,10 +414,18 @@ void CModem::setModeParams(bool dstarEnabled, bool dmrEnabled, bool ysfEnabled,
|
|||
#if defined(USE_DSTAR)
|
||||
m_dstarEnabled = dstarEnabled;
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
m_dmrEnabled = dmrEnabled;
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
m_ysfEnabled = ysfEnabled;
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
m_p25Enabled = p25Enabled;
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
m_nxdnEnabled = nxdnEnabled;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
m_m17Enabled = m17Enabled;
|
||||
#endif
|
||||
|
|
@ -381,10 +447,18 @@ void CModem::setLevels(float rxLevel, float cwIdTXLevel, float dstarTXLevel, flo
|
|||
#if defined(USE_DSTAR)
|
||||
m_dstarTXLevel = dstarTXLevel;
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
m_dmrTXLevel = dmrTXLevel;
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
m_ysfTXLevel = ysfTXLevel;
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
m_p25TXLevel = p25TXLevel;
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
m_nxdnTXLevel = nxdnTXLevel;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
m_m17TXLevel = m17TXLevel;
|
||||
#endif
|
||||
|
|
@ -399,28 +473,36 @@ void CModem::setLevels(float rxLevel, float cwIdTXLevel, float dstarTXLevel, flo
|
|||
#endif
|
||||
}
|
||||
|
||||
#if defined(USE_DMR)
|
||||
void CModem::setDMRParams(unsigned int colorCode)
|
||||
{
|
||||
assert(colorCode < 16U);
|
||||
|
||||
m_dmrColorCode = colorCode;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_YSF)
|
||||
void CModem::setYSFParams(bool loDev, unsigned int txHang)
|
||||
{
|
||||
m_ysfLoDev = loDev;
|
||||
m_ysfTXHang = txHang;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_P25)
|
||||
void CModem::setP25Params(unsigned int txHang)
|
||||
{
|
||||
m_p25TXHang = txHang;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_NXDN)
|
||||
void CModem::setNXDNParams(unsigned int txHang)
|
||||
{
|
||||
m_nxdnTXHang = txHang;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_M17)
|
||||
void CModem::setM17Params(unsigned int txHang)
|
||||
|
|
@ -611,6 +693,7 @@ void CModem::clock(unsigned int ms)
|
|||
break;
|
||||
#endif
|
||||
|
||||
#if defined(USE_DMR)
|
||||
case MMDVM_DMR_DATA1: {
|
||||
if (m_trace)
|
||||
CUtils::dump(1U, "RX DMR Data 1", m_buffer, m_length);
|
||||
|
|
@ -668,7 +751,9 @@ void CModem::clock(unsigned int ms)
|
|||
m_rxDMRData2.addData(&data, 1U);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(USE_YSF)
|
||||
case MMDVM_YSF_DATA: {
|
||||
if (m_trace)
|
||||
CUtils::dump(1U, "RX YSF Data", m_buffer, m_length);
|
||||
|
|
@ -694,7 +779,9 @@ void CModem::clock(unsigned int ms)
|
|||
m_rxYSFData.addData(&data, 1U);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(USE_P25)
|
||||
case MMDVM_P25_HDR: {
|
||||
if (m_trace)
|
||||
CUtils::dump(1U, "RX P25 Header", m_buffer, m_length);
|
||||
|
|
@ -734,7 +821,9 @@ void CModem::clock(unsigned int ms)
|
|||
m_rxP25Data.addData(&data, 1U);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(USE_NXDN)
|
||||
case MMDVM_NXDN_DATA: {
|
||||
if (m_trace)
|
||||
CUtils::dump(1U, "RX NXDN Data", m_buffer, m_length);
|
||||
|
|
@ -760,6 +849,7 @@ void CModem::clock(unsigned int ms)
|
|||
m_rxNXDNData.addData(&data, 1U);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(USE_M17)
|
||||
case MMDVM_M17_LINK_SETUP: {
|
||||
|
|
@ -814,6 +904,7 @@ void CModem::clock(unsigned int ms)
|
|||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(USE_FM)
|
||||
case MMDVM_FM_DATA: {
|
||||
if (m_trace)
|
||||
|
|
@ -857,6 +948,7 @@ void CModem::clock(unsigned int ms)
|
|||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(USE_AX25)
|
||||
case MMDVM_AX25_DATA: {
|
||||
if (m_trace)
|
||||
|
|
@ -894,8 +986,12 @@ void CModem::clock(unsigned int ms)
|
|||
LogError("MMDVM DAC levels have overflowed");
|
||||
m_cd = (m_buffer[m_offset + 2U] & 0x40U) == 0x40U;
|
||||
|
||||
#if defined(USE_P25)
|
||||
m_p25Space = 0U;
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
m_nxdnSpace = 0U;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
m_m17Space = 0U;
|
||||
#endif
|
||||
|
|
@ -911,15 +1007,22 @@ void CModem::clock(unsigned int ms)
|
|||
#if defined(USE_DSTAR)
|
||||
m_dstarSpace = m_buffer[m_offset + 3U];
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
m_dmrSpace1 = m_buffer[m_offset + 4U];
|
||||
m_dmrSpace2 = m_buffer[m_offset + 5U];
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
m_ysfSpace = m_buffer[m_offset + 6U];
|
||||
|
||||
#endif
|
||||
// The following depend on the version of the firmware
|
||||
#if defined(USE_P25)
|
||||
if (m_length > (m_offset + 7U))
|
||||
m_p25Space = m_buffer[m_offset + 7U];
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
if (m_length > (m_offset + 8U))
|
||||
m_nxdnSpace = m_buffer[m_offset + 8U];
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
if (m_length > (m_offset + 9U))
|
||||
m_pocsagSpace = m_buffer[m_offset + 9U];
|
||||
|
|
@ -953,11 +1056,19 @@ void CModem::clock(unsigned int ms)
|
|||
#if defined(USE_DSTAR)
|
||||
m_dstarSpace = m_buffer[m_offset + 3U];
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
m_dmrSpace1 = m_buffer[m_offset + 4U];
|
||||
m_dmrSpace2 = m_buffer[m_offset + 5U];
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
m_ysfSpace = m_buffer[m_offset + 6U];
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
m_p25Space = m_buffer[m_offset + 7U];
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
m_nxdnSpace = m_buffer[m_offset + 8U];
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
m_m17Space = m_buffer[m_offset + 9U];
|
||||
#endif
|
||||
|
|
@ -977,11 +1088,19 @@ void CModem::clock(unsigned int ms)
|
|||
#if defined(USE_DSTAR)
|
||||
m_dstarSpace = 0U;
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
m_dmrSpace1 = 0U;
|
||||
m_dmrSpace2 = 0U;
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
m_ysfSpace = 0U;
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
m_p25Space = 0U;
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
m_nxdnSpace = 0U;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
m_m17Space = 0U;
|
||||
#endif
|
||||
|
|
@ -1094,6 +1213,7 @@ void CModem::clock(unsigned int ms)
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_DMR)
|
||||
if (m_dmrSpace1 > 1U && !m_txDMRData1.isEmpty()) {
|
||||
unsigned char len = 0U;
|
||||
m_txDMRData1.getData(&len, 1U);
|
||||
|
|
@ -1127,7 +1247,9 @@ void CModem::clock(unsigned int ms)
|
|||
|
||||
m_dmrSpace2--;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_YSF)
|
||||
if (m_ysfSpace > 1U && !m_txYSFData.isEmpty()) {
|
||||
unsigned char len = 0U;
|
||||
m_txYSFData.getData(&len, 1U);
|
||||
|
|
@ -1144,7 +1266,9 @@ void CModem::clock(unsigned int ms)
|
|||
|
||||
m_ysfSpace--;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_P25)
|
||||
if (m_p25Space > 1U && !m_txP25Data.isEmpty()) {
|
||||
unsigned char len = 0U;
|
||||
m_txP25Data.getData(&len, 1U);
|
||||
|
|
@ -1165,7 +1289,9 @@ void CModem::clock(unsigned int ms)
|
|||
|
||||
m_p25Space--;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_NXDN)
|
||||
if (m_nxdnSpace > 1U && !m_txNXDNData.isEmpty()) {
|
||||
unsigned char len = 0U;
|
||||
m_txNXDNData.getData(&len, 1U);
|
||||
|
|
@ -1182,6 +1308,7 @@ void CModem::clock(unsigned int ms)
|
|||
|
||||
m_nxdnSpace--;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_M17)
|
||||
if (m_m17Space > 1U && !m_txM17Data.isEmpty()) {
|
||||
|
|
@ -1326,6 +1453,7 @@ unsigned int CModem::readDStarData(unsigned char* data)
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_DMR)
|
||||
unsigned int CModem::readDMRData1(unsigned char* data)
|
||||
{
|
||||
assert(data != NULL);
|
||||
|
|
@ -1353,7 +1481,9 @@ unsigned int CModem::readDMRData2(unsigned char* data)
|
|||
|
||||
return len;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_YSF)
|
||||
unsigned int CModem::readYSFData(unsigned char* data)
|
||||
{
|
||||
assert(data != NULL);
|
||||
|
|
@ -1367,7 +1497,9 @@ unsigned int CModem::readYSFData(unsigned char* data)
|
|||
|
||||
return len;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_P25)
|
||||
unsigned int CModem::readP25Data(unsigned char* data)
|
||||
{
|
||||
assert(data != NULL);
|
||||
|
|
@ -1381,7 +1513,9 @@ unsigned int CModem::readP25Data(unsigned char* data)
|
|||
|
||||
return len;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_NXDN)
|
||||
unsigned int CModem::readNXDNData(unsigned char* data)
|
||||
{
|
||||
assert(data != NULL);
|
||||
|
|
@ -1395,6 +1529,7 @@ unsigned int CModem::readNXDNData(unsigned char* data)
|
|||
|
||||
return len;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_M17)
|
||||
unsigned int CModem::readM17Data(unsigned char* data)
|
||||
|
|
@ -1515,6 +1650,7 @@ bool CModem::writeDStarData(const unsigned char* data, unsigned int length)
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_DMR)
|
||||
bool CModem::hasDMRSpace1() const
|
||||
{
|
||||
unsigned int space = m_txDMRData1.freeSpace() / (DMR_FRAME_LENGTH_BYTES + 4U);
|
||||
|
|
@ -1574,7 +1710,9 @@ bool CModem::writeDMRData2(const unsigned char* data, unsigned int length)
|
|||
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_YSF)
|
||||
bool CModem::hasYSFSpace() const
|
||||
{
|
||||
unsigned int space = m_txYSFData.freeSpace() / (YSF_FRAME_LENGTH_BYTES + 4U);
|
||||
|
|
@ -1604,7 +1742,9 @@ bool CModem::writeYSFData(const unsigned char* data, unsigned int length)
|
|||
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_P25)
|
||||
bool CModem::hasP25Space() const
|
||||
{
|
||||
unsigned int space = m_txP25Data.freeSpace() / (P25_LDU_FRAME_LENGTH_BYTES + 4U);
|
||||
|
|
@ -1634,7 +1774,9 @@ bool CModem::writeP25Data(const unsigned char* data, unsigned int length)
|
|||
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_NXDN)
|
||||
bool CModem::hasNXDNSpace() const
|
||||
{
|
||||
unsigned int space = m_txNXDNData.freeSpace() / (NXDN_FRAME_LENGTH_BYTES + 4U);
|
||||
|
|
@ -1664,6 +1806,7 @@ bool CModem::writeNXDNData(const unsigned char* data, unsigned int length)
|
|||
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_M17)
|
||||
bool CModem::hasM17Space() const
|
||||
|
|
@ -1876,6 +2019,7 @@ bool CModem::writeDStarInfo(const char* my1, const char* my2, const char* your,
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_DMR)
|
||||
bool CModem::writeDMRInfo(unsigned int slotNo, const std::string& src, bool group, const std::string& dest, const char* type)
|
||||
{
|
||||
assert(m_port != NULL);
|
||||
|
|
@ -1901,7 +2045,9 @@ bool CModem::writeDMRInfo(unsigned int slotNo, const std::string& src, bool grou
|
|||
|
||||
return m_port->write(buffer, 47U) != 47;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_YSF)
|
||||
bool CModem::writeYSFInfo(const char* source, const char* dest, unsigned char dgid, const char* type, const char* origin)
|
||||
{
|
||||
assert(m_port != NULL);
|
||||
|
|
@ -1929,7 +2075,9 @@ bool CModem::writeYSFInfo(const char* source, const char* dest, unsigned char dg
|
|||
|
||||
return m_port->write(buffer, 36U) != 36;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_P25)
|
||||
bool CModem::writeP25Info(const char* source, bool group, unsigned int dest, const char* type)
|
||||
{
|
||||
assert(m_port != NULL);
|
||||
|
|
@ -1954,7 +2102,9 @@ bool CModem::writeP25Info(const char* source, bool group, unsigned int dest, con
|
|||
|
||||
return m_port->write(buffer, 31U) != 31;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_NXDN)
|
||||
bool CModem::writeNXDNInfo(const char* source, bool group, unsigned int dest, const char* type)
|
||||
{
|
||||
assert(m_port != NULL);
|
||||
|
|
@ -1979,6 +2129,7 @@ bool CModem::writeNXDNInfo(const char* source, bool group, unsigned int dest, co
|
|||
|
||||
return m_port->write(buffer, 31U) != 31;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_M17)
|
||||
bool CModem::writeM17Info(const char* source, const char* dest, const char* type)
|
||||
|
|
@ -2100,25 +2251,33 @@ bool CModem::hasDStar() const
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_DMR)
|
||||
bool CModem::hasDMR() const
|
||||
{
|
||||
return (m_capabilities1 & CAP1_DMR) == CAP1_DMR;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_YSF)
|
||||
bool CModem::hasYSF() const
|
||||
{
|
||||
return (m_capabilities1 & CAP1_YSF) == CAP1_YSF;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_P25)
|
||||
bool CModem::hasP25() const
|
||||
{
|
||||
return (m_capabilities1 & CAP1_P25) == CAP1_P25;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_NXDN)
|
||||
bool CModem::hasNXDN() const
|
||||
{
|
||||
return (m_capabilities1 & CAP1_NXDN) == CAP1_NXDN;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_M17)
|
||||
bool CModem::hasM17() const
|
||||
|
|
@ -2215,7 +2374,18 @@ bool CModem::readVersion()
|
|||
#if defined(USE_DSTAR)
|
||||
m_capabilities1 |= CAP1_DSTAR;
|
||||
#endif
|
||||
m_capabilities1 |= CAP1_DMR | CAP1_YSF | CAP1_P25 | CAP1_NXDN;
|
||||
#if defined(USE_DMR)
|
||||
m_capabilities1 |= CAP1_DMR;
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
m_capabilities1 |= CAP1_YSF;
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
m_capabilities1 |= CAP1_P25;
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
m_capabilities1 |= CAP1_NXDN;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
m_capabilities1 |= CAP1_M17;
|
||||
#endif
|
||||
|
|
@ -2248,14 +2418,22 @@ bool CModem::readVersion()
|
|||
if (hasDStar())
|
||||
::strcat(modeText, " D-Star");
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
if (hasDMR())
|
||||
::strcat(modeText, " DMR");
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
if (hasYSF())
|
||||
::strcat(modeText, " YSF");
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
if (hasP25())
|
||||
::strcat(modeText, " P25");
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
if (hasNXDN())
|
||||
::strcat(modeText, " NXDN");
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
if (hasM17())
|
||||
::strcat(modeText, " M17");
|
||||
|
|
@ -2352,14 +2530,22 @@ bool CModem::setConfig1()
|
|||
if (m_dstarEnabled)
|
||||
buffer[4U] |= 0x01U;
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
if (m_dmrEnabled)
|
||||
buffer[4U] |= 0x02U;
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
if (m_ysfEnabled)
|
||||
buffer[4U] |= 0x04U;
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
if (m_p25Enabled)
|
||||
buffer[4U] |= 0x08U;
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
if (m_nxdnEnabled)
|
||||
buffer[4U] |= 0x10U;
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
if (m_pocsagEnabled)
|
||||
buffer[4U] |= 0x20U;
|
||||
|
|
@ -2377,9 +2563,13 @@ bool CModem::setConfig1()
|
|||
|
||||
buffer[8U] = (unsigned char)(m_cwIdTXLevel * 2.55F + 0.5F);
|
||||
|
||||
buffer[9U] = m_dmrColorCode;
|
||||
|
||||
#if defined(USE_DMR)
|
||||
buffer[9U] = m_dmrColorCode;
|
||||
buffer[10U] = m_dmrDelay;
|
||||
#else
|
||||
buffer[9U] = 0U;
|
||||
buffer[10U] = 0U;
|
||||
#endif
|
||||
|
||||
buffer[11U] = 128U; // Was OscOffset
|
||||
|
||||
|
|
@ -2388,16 +2578,35 @@ bool CModem::setConfig1()
|
|||
#else
|
||||
buffer[12U] = 0U;
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
buffer[13U] = (unsigned char)(m_dmrTXLevel * 2.55F + 0.5F);
|
||||
#else
|
||||
buffer[13U] = 0U;
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
buffer[14U] = (unsigned char)(m_ysfTXLevel * 2.55F + 0.5F);
|
||||
#else
|
||||
buffer[14U] = 0U;
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
buffer[15U] = (unsigned char)(m_p25TXLevel * 2.55F + 0.5F);
|
||||
#else
|
||||
buffer[15U] = 0U;
|
||||
#endif
|
||||
|
||||
buffer[16U] = (unsigned char)(m_txDCOffset + 128);
|
||||
buffer[17U] = (unsigned char)(m_rxDCOffset + 128);
|
||||
|
||||
#if defined(USE_NXDN)
|
||||
buffer[18U] = (unsigned char)(m_nxdnTXLevel * 2.55F + 0.5F);
|
||||
|
||||
#else
|
||||
buffer[18U] = 0U;
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
buffer[19U] = (unsigned char)m_ysfTXHang;
|
||||
#else
|
||||
buffer[19U] = 0U;
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
buffer[20U] = (unsigned char)(m_pocsagTXLevel * 2.55F + 0.5F);
|
||||
#else
|
||||
|
|
@ -2408,10 +2617,16 @@ bool CModem::setConfig1()
|
|||
#else
|
||||
buffer[21U] = 0U;
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
buffer[22U] = (unsigned char)m_p25TXHang;
|
||||
|
||||
#else
|
||||
buffer[22U] = 0U;
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
buffer[23U] = (unsigned char)m_nxdnTXHang;
|
||||
|
||||
#else
|
||||
buffer[23U] = 0U;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
buffer[24U] = (unsigned char)(m_m17TXLevel * 2.55F + 0.5F);
|
||||
buffer[25U] = (unsigned char)m_m17TXHang;
|
||||
|
|
@ -2486,14 +2701,22 @@ bool CModem::setConfig2()
|
|||
if (m_dstarEnabled)
|
||||
buffer[4U] |= 0x01U;
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
if (m_dmrEnabled)
|
||||
buffer[4U] |= 0x02U;
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
if (m_ysfEnabled)
|
||||
buffer[4U] |= 0x04U;
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
if (m_p25Enabled)
|
||||
buffer[4U] |= 0x08U;
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
if (m_nxdnEnabled)
|
||||
buffer[4U] |= 0x10U;
|
||||
#endif
|
||||
#if defined(USE_FM)
|
||||
if (m_fmEnabled)
|
||||
buffer[4U] |= 0x20U;
|
||||
|
|
@ -2522,15 +2745,32 @@ bool CModem::setConfig2()
|
|||
buffer[10U] = (unsigned char)(m_rxLevel * 2.55F + 0.5F);
|
||||
|
||||
buffer[11U] = (unsigned char)(m_cwIdTXLevel * 2.55F + 0.5F);
|
||||
|
||||
#if defined(USE_DSTAR)
|
||||
buffer[12U] = (unsigned char)(m_dstarTXLevel * 2.55F + 0.5F);
|
||||
#else
|
||||
buffer[12U] = 0U;
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
buffer[13U] = (unsigned char)(m_dmrTXLevel * 2.55F + 0.5F);
|
||||
#else
|
||||
buffer[13U] = 0U;
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
buffer[14U] = (unsigned char)(m_ysfTXLevel * 2.55F + 0.5F);
|
||||
#else
|
||||
buffer[14U] = 0U;
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
buffer[15U] = (unsigned char)(m_p25TXLevel * 2.55F + 0.5F);
|
||||
#else
|
||||
buffer[15U] = 0U;
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
buffer[16U] = (unsigned char)(m_nxdnTXLevel * 2.55F + 0.5F);
|
||||
#else
|
||||
buffer[16U] = 0U;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
buffer[17U] = (unsigned char)(m_m17TXLevel * 2.55F + 0.5F);
|
||||
#else
|
||||
|
|
@ -2551,22 +2791,41 @@ bool CModem::setConfig2()
|
|||
#else
|
||||
buffer[20U] = 0U;
|
||||
#endif
|
||||
|
||||
buffer[21U] = 0x00U;
|
||||
buffer[22U] = 0x00U;
|
||||
|
||||
#if defined(USE_YSF)
|
||||
buffer[23U] = (unsigned char)m_ysfTXHang;
|
||||
#else
|
||||
buffer[23U] = 0U;
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
buffer[24U] = (unsigned char)m_p25TXHang;
|
||||
#else
|
||||
buffer[24U] = 0U;
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
buffer[25U] = (unsigned char)m_nxdnTXHang;
|
||||
#else
|
||||
buffer[25U] = 0U;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
buffer[26U] = (unsigned char)m_m17TXHang;
|
||||
#else
|
||||
buffer[26U] = 0U;
|
||||
#endif
|
||||
|
||||
buffer[27U] = 0x00U;
|
||||
buffer[28U] = 0x00U;
|
||||
|
||||
#if defined(USE_DMR)
|
||||
buffer[29U] = m_dmrColorCode;
|
||||
buffer[30U] = m_dmrDelay;
|
||||
#else
|
||||
buffer[29U] = 0U;
|
||||
buffer[30U] = 0U;
|
||||
#endif
|
||||
|
||||
#if defined(USE_AX25)
|
||||
buffer[31U] = (unsigned char)(m_ax25RXTwist + 128);
|
||||
|
|
@ -2579,6 +2838,7 @@ bool CModem::setConfig2()
|
|||
buffer[33U] = 0U;
|
||||
buffer[34U] = 0U;
|
||||
#endif
|
||||
|
||||
buffer[35U] = 0x00U;
|
||||
buffer[36U] = 0x00U;
|
||||
buffer[37U] = 0x00U;
|
||||
|
|
@ -2850,6 +3110,7 @@ bool CModem::sendCWId(const std::string& callsign)
|
|||
return m_port->write(buffer, length + 3U) == int(length + 3U);
|
||||
}
|
||||
|
||||
#if defined(USE_DMR)
|
||||
bool CModem::writeDMRStart(bool tx)
|
||||
{
|
||||
assert(m_port != NULL);
|
||||
|
|
@ -2916,6 +3177,7 @@ bool CModem::writeDMRShortLC(const unsigned char* lc)
|
|||
|
||||
return m_port->write(buffer, 12U) == 12;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_FM)
|
||||
void CModem::setFMCallsignParams(const std::string& callsign, unsigned int callsignSpeed, unsigned int callsignFrequency, unsigned int callsignTime, unsigned int callsignHoldoff, float callsignHighLevel, float callsignLowLevel, bool callsignAtStart, bool callsignAtEnd, bool callsignAtLatch)
|
||||
|
|
|
|||
94
Modem.h
94
Modem.h
|
|
@ -49,10 +49,19 @@ public:
|
|||
void setRFParams(unsigned int rxFrequency, int rxOffset, unsigned int txFrequency, int txOffset, int txDCOffset, int rxDCOffset, float rfLevel, unsigned int pocsagFrequency);
|
||||
void setModeParams(bool dstarEnabled, bool dmrEnabled, bool ysfEnabled, bool p25Enabled, bool nxdnEnabled, bool m17Enabled, bool pocsagEnabled, bool fmEnabled, bool ax25Enabled);
|
||||
void setLevels(float rxLevel, float cwIdTXLevel, float dstarTXLevel, float dmrTXLevel, float ysfTXLevel, float p25TXLevel, float nxdnTXLevel, float m17TXLevel, float pocsagLevel, float fmTXLevel, float ax25TXLevel);
|
||||
|
||||
#if defined(USE_DMR)
|
||||
void setDMRParams(unsigned int colorCode);
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
void setYSFParams(bool loDev, unsigned int txHang);
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
void setP25Params(unsigned int txHang);
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
void setNXDNParams(unsigned int txHang);
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
void setM17Params(unsigned int txHang);
|
||||
#endif
|
||||
|
|
@ -73,10 +82,18 @@ public:
|
|||
#if defined(USE_DSTAR)
|
||||
bool hasDStar() const;
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
bool hasDMR() const;
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
bool hasYSF() const;
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
bool hasP25() const;
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
bool hasNXDN() const;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
bool hasM17() const;
|
||||
#endif
|
||||
|
|
@ -94,11 +111,19 @@ public:
|
|||
#if defined(USE_DSTAR)
|
||||
unsigned int readDStarData(unsigned char* data);
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
unsigned int readDMRData1(unsigned char* data);
|
||||
unsigned int readDMRData2(unsigned char* data);
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
unsigned int readYSFData(unsigned char* data);
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
unsigned int readP25Data(unsigned char* data);
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
unsigned int readNXDNData(unsigned char* data);
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
unsigned int readM17Data(unsigned char* data);
|
||||
#endif
|
||||
|
|
@ -112,11 +137,19 @@ public:
|
|||
#if defined(USE_DSTAR)
|
||||
bool hasDStarSpace() const;
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
bool hasDMRSpace1() const;
|
||||
bool hasDMRSpace2() const;
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
bool hasYSFSpace() const;
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
bool hasP25Space() const;
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
bool hasNXDNSpace() const;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
bool hasM17Space() const;
|
||||
#endif
|
||||
|
|
@ -141,11 +174,19 @@ public:
|
|||
#if defined(USE_DSTAR)
|
||||
bool writeDStarData(const unsigned char* data, unsigned int length);
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
bool writeDMRData1(const unsigned char* data, unsigned int length);
|
||||
bool writeDMRData2(const unsigned char* data, unsigned int length);
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
bool writeYSFData(const unsigned char* data, unsigned int length);
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
bool writeP25Data(const unsigned char* data, unsigned int length);
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
bool writeNXDNData(const unsigned char* data, unsigned int length);
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
bool writeM17Data(const unsigned char* data, unsigned int length);
|
||||
#endif
|
||||
|
|
@ -162,10 +203,18 @@ public:
|
|||
#if defined(USE_DSTAR)
|
||||
bool writeDStarInfo(const char* my1, const char* my2, const char* your, const char* type, const char* reflector);
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
bool writeDMRInfo(unsigned int slotNo, const std::string& src, bool group, const std::string& dst, const char* type);
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
bool writeYSFInfo(const char* source, const char* dest, unsigned char dgid, const char* type, const char* origin);
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
bool writeP25Info(const char* source, bool group, unsigned int dest, const char* type);
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
bool writeNXDNInfo(const char* source, bool group, unsigned int dest, const char* type);
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
bool writeM17Info(const char* source, const char* dest, const char* type);
|
||||
#endif
|
||||
|
|
@ -174,10 +223,11 @@ public:
|
|||
#endif
|
||||
bool writeIPInfo(const std::string& address);
|
||||
|
||||
#if defined(USE_DMR)
|
||||
bool writeDMRStart(bool tx);
|
||||
bool writeDMRShortLC(const unsigned char* lc);
|
||||
bool writeDMRAbort(unsigned int slotNo);
|
||||
|
||||
#endif
|
||||
bool writeTransparentData(const unsigned char* data, unsigned int length);
|
||||
unsigned int readTransparentData(unsigned char* data);
|
||||
|
||||
|
|
@ -197,11 +247,19 @@ public:
|
|||
|
||||
private:
|
||||
unsigned int m_protocolVersion;
|
||||
#if defined(USE_DMR)
|
||||
unsigned int m_dmrColorCode;
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
bool m_ysfLoDev;
|
||||
unsigned int m_ysfTXHang;
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
unsigned int m_p25TXHang;
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
unsigned int m_nxdnTXHang;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
unsigned int m_m17TXHang;
|
||||
#endif
|
||||
|
|
@ -210,16 +268,26 @@ private:
|
|||
bool m_txInvert;
|
||||
bool m_pttInvert;
|
||||
unsigned int m_txDelay;
|
||||
#if defined(USE_DMR)
|
||||
unsigned int m_dmrDelay;
|
||||
#endif
|
||||
float m_rxLevel;
|
||||
float m_cwIdTXLevel;
|
||||
#if defined(USE_DSTAR)
|
||||
float m_dstarTXLevel;
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
float m_dmrTXLevel;
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
float m_ysfTXLevel;
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
float m_p25TXLevel;
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
float m_nxdnTXLevel;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
float m_m17TXLevel;
|
||||
#endif
|
||||
|
|
@ -244,10 +312,18 @@ private:
|
|||
#if defined(USE_DSTAR)
|
||||
bool m_dstarEnabled;
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
bool m_dmrEnabled;
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
bool m_ysfEnabled;
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
bool m_p25Enabled;
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
bool m_nxdnEnabled;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
bool m_m17Enabled;
|
||||
#endif
|
||||
|
|
@ -273,16 +349,24 @@ private:
|
|||
CRingBuffer<unsigned char> m_rxDStarData;
|
||||
CRingBuffer<unsigned char> m_txDStarData;
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
CRingBuffer<unsigned char> m_rxDMRData1;
|
||||
CRingBuffer<unsigned char> m_rxDMRData2;
|
||||
CRingBuffer<unsigned char> m_txDMRData1;
|
||||
CRingBuffer<unsigned char> m_txDMRData2;
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
CRingBuffer<unsigned char> m_rxYSFData;
|
||||
CRingBuffer<unsigned char> m_txYSFData;
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
CRingBuffer<unsigned char> m_rxP25Data;
|
||||
CRingBuffer<unsigned char> m_txP25Data;
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
CRingBuffer<unsigned char> m_rxNXDNData;
|
||||
CRingBuffer<unsigned char> m_txNXDNData;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
CRingBuffer<unsigned char> m_rxM17Data;
|
||||
CRingBuffer<unsigned char> m_txM17Data;
|
||||
|
|
@ -309,11 +393,19 @@ private:
|
|||
#if defined(USE_DSTAR)
|
||||
unsigned int m_dstarSpace;
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
unsigned int m_dmrSpace1;
|
||||
unsigned int m_dmrSpace2;
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
unsigned int m_ysfSpace;
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
unsigned int m_p25Space;
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
unsigned int m_nxdnSpace;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
unsigned int m_m17Space;
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -69,14 +69,22 @@ REMOTE_COMMAND CRemoteControl::getCommand(const std::string& command)
|
|||
else if (m_args.at(1U) == "d-star")
|
||||
m_command = RCD_MODE_DSTAR;
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
else if (m_args.at(1U) == "dmr")
|
||||
m_command = RCD_MODE_DMR;
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
else if (m_args.at(1U) == "ysf")
|
||||
m_command = RCD_MODE_YSF;
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
else if (m_args.at(1U) == "p25")
|
||||
m_command = RCD_MODE_P25;
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
else if (m_args.at(1U) == "nxdn")
|
||||
m_command = RCD_MODE_NXDN;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
else if (m_args.at(1U) == "m17")
|
||||
m_command = RCD_MODE_M17;
|
||||
|
|
@ -89,18 +97,26 @@ REMOTE_COMMAND CRemoteControl::getCommand(const std::string& command)
|
|||
m_command = RCD_ENABLE_DSTAR;
|
||||
else
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
if (m_args.at(1U) == "dmr")
|
||||
m_command = RCD_ENABLE_DMR;
|
||||
else
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
if (m_args.at(1U) == "ysf")
|
||||
m_command = RCD_ENABLE_YSF;
|
||||
else
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
if (m_args.at(1U) == "p25")
|
||||
m_command = RCD_ENABLE_P25;
|
||||
else
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
if (m_args.at(1U) == "nxdn")
|
||||
m_command = RCD_ENABLE_NXDN;
|
||||
else
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
if (m_args.at(1U) == "m17")
|
||||
m_command = RCD_ENABLE_M17;
|
||||
|
|
@ -123,18 +139,26 @@ REMOTE_COMMAND CRemoteControl::getCommand(const std::string& command)
|
|||
m_command = RCD_DISABLE_DSTAR;
|
||||
else
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
if (m_args.at(1U) == "dmr")
|
||||
m_command = RCD_DISABLE_DMR;
|
||||
else
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
if (m_args.at(1U) == "ysf")
|
||||
m_command = RCD_DISABLE_YSF;
|
||||
else
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
if (m_args.at(1U) == "p25")
|
||||
m_command = RCD_DISABLE_P25;
|
||||
else
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
if (m_args.at(1U) == "nxdn")
|
||||
m_command = RCD_DISABLE_NXDN;
|
||||
else
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
if (m_args.at(1U) == "m17")
|
||||
m_command = RCD_DISABLE_M17;
|
||||
|
|
@ -214,10 +238,18 @@ unsigned int CRemoteControl::getArgCount() const
|
|||
#if defined(USE_DSTAR)
|
||||
case RCD_MODE_DSTAR:
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
case RCD_MODE_DMR:
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
case RCD_MODE_YSF:
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
case RCD_MODE_P25:
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
case RCD_MODE_NXDN:
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
case RCD_MODE_M17:
|
||||
#endif
|
||||
|
|
@ -244,10 +276,18 @@ std::string CRemoteControl::getArgString(unsigned int n) const
|
|||
#if defined(USE_DSTAR)
|
||||
case RCD_MODE_DSTAR:
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
case RCD_MODE_DMR:
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
case RCD_MODE_YSF:
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
case RCD_MODE_P25:
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
case RCD_MODE_NXDN:
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
case RCD_MODE_M17:
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -35,10 +35,18 @@ enum REMOTE_COMMAND {
|
|||
#if defined(USE_DSTAR)
|
||||
RCD_MODE_DSTAR,
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
RCD_MODE_DMR,
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
RCD_MODE_YSF,
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
RCD_MODE_P25,
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
RCD_MODE_NXDN,
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
RCD_MODE_M17,
|
||||
#endif
|
||||
|
|
@ -48,10 +56,18 @@ enum REMOTE_COMMAND {
|
|||
#if defined(USE_DSTAR)
|
||||
RCD_ENABLE_DSTAR,
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
RCD_ENABLE_DMR,
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
RCD_ENABLE_YSF,
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
RCD_ENABLE_P25,
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
RCD_ENABLE_NXDN,
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
RCD_ENABLE_M17,
|
||||
#endif
|
||||
|
|
@ -64,10 +80,18 @@ enum REMOTE_COMMAND {
|
|||
#if defined(USE_DSTAR)
|
||||
RCD_DISABLE_DSTAR,
|
||||
#endif
|
||||
#if defined(USE_DMR)
|
||||
RCD_DISABLE_DMR,
|
||||
#endif
|
||||
#if defined(USE_YSF)
|
||||
RCD_DISABLE_YSF,
|
||||
#endif
|
||||
#if defined(USE_P25)
|
||||
RCD_DISABLE_P25,
|
||||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
RCD_DISABLE_NXDN,
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
RCD_DISABLE_M17,
|
||||
#endif
|
||||
|
|
|
|||
8
Sync.cpp
8
Sync.cpp
|
|
@ -38,6 +38,7 @@ void CSync::addDStarSync(unsigned char* data)
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_DMR)
|
||||
void CSync::addDMRDataSync(unsigned char* data, bool duplex)
|
||||
{
|
||||
assert(data != NULL);
|
||||
|
|
@ -63,21 +64,27 @@ void CSync::addDMRAudioSync(unsigned char* data, bool duplex)
|
|||
data[i + 13U] = (data[i + 13U] & ~SYNC_MASK[i]) | MS_SOURCED_AUDIO_SYNC[i];
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_YSF)
|
||||
void CSync::addYSFSync(unsigned char* data)
|
||||
{
|
||||
assert(data != NULL);
|
||||
|
||||
::memcpy(data, YSF_SYNC_BYTES, YSF_SYNC_LENGTH_BYTES);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_P25)
|
||||
void CSync::addP25Sync(unsigned char* data)
|
||||
{
|
||||
assert(data != NULL);
|
||||
|
||||
::memcpy(data, P25_SYNC_BYTES, P25_SYNC_LENGTH_BYTES);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_NXDN)
|
||||
void CSync::addNXDNSync(unsigned char* data)
|
||||
{
|
||||
assert(data != NULL);
|
||||
|
|
@ -85,6 +92,7 @@ void CSync::addNXDNSync(unsigned char* data)
|
|||
for (unsigned int i = 0U; i < NXDN_FSW_BYTES_LENGTH; i++)
|
||||
data[i] = (data[i] & ~NXDN_FSW_BYTES_MASK[i]) | NXDN_FSW_BYTES[i];
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_M17)
|
||||
void CSync::addM17LinkSetupSync(unsigned char* data)
|
||||
|
|
|
|||
9
Sync.h
9
Sync.h
|
|
@ -27,14 +27,23 @@ public:
|
|||
#if defined(USE_DSTAR)
|
||||
static void addDStarSync(unsigned char* data);
|
||||
#endif
|
||||
|
||||
#if defined(USE_DMR)
|
||||
static void addDMRDataSync(unsigned char* data, bool duplex);
|
||||
static void addDMRAudioSync(unsigned char* data, bool duplex);
|
||||
#endif
|
||||
|
||||
#if defined(USE_YSF)
|
||||
static void addYSFSync(unsigned char* data);
|
||||
#endif
|
||||
|
||||
#if defined(USE_P25)
|
||||
static void addP25Sync(unsigned char* data);
|
||||
#endif
|
||||
|
||||
#if defined(USE_NXDN)
|
||||
static void addNXDNSync(unsigned char* data);
|
||||
#endif
|
||||
|
||||
#if defined(USE_M17)
|
||||
static void addM17LinkSetupSync(unsigned char* data);
|
||||
|
|
|
|||
Loading…
Reference in a new issue