mirror of
https://github.com/g4klx/MMDVMHost.git
synced 2026-04-02 03:14:37 +02:00
M17 and AX.25 removal cleanups.
This commit is contained in:
parent
d085ca8b0f
commit
1e2e0c7431
254
Conf.cpp
254
Conf.cpp
|
|
@ -57,18 +57,12 @@ enum class SECTION {
|
|||
#if defined(USE_NXDN)
|
||||
NXDN,
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
M17,
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
POCSAG,
|
||||
#endif
|
||||
#if defined(USE_FM)
|
||||
FM,
|
||||
#endif
|
||||
#if defined(USE_AX25)
|
||||
AX25,
|
||||
#endif
|
||||
#if defined(USE_DSTAR)
|
||||
DSTAR_NETWORK,
|
||||
#endif
|
||||
|
|
@ -84,17 +78,11 @@ enum class SECTION {
|
|||
#if defined(USE_NXDN)
|
||||
NXDN_NETWORK,
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
M17_NETWORK,
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
POCSAG_NETWORK,
|
||||
#endif
|
||||
#if defined(USE_FM)
|
||||
FM_NETWORK,
|
||||
#endif
|
||||
#if defined(USE_AX25)
|
||||
AX25_NETWORK,
|
||||
#endif
|
||||
LOCK_FILE,
|
||||
REMOTE_CONTROL
|
||||
|
|
@ -242,14 +230,6 @@ m_nxdnRemoteGateway(false),
|
|||
m_nxdnTXHang(5U),
|
||||
#endif
|
||||
m_nxdnModeHang(10U),
|
||||
#if defined(USE_M17)
|
||||
m_m17Enabled(false),
|
||||
m_m17CAN(0U),
|
||||
m_m17SelfOnly(false),
|
||||
m_m17AllowEncryption(false),
|
||||
m_m17TXHang(5U),
|
||||
#endif
|
||||
m_m17ModeHang(10U),
|
||||
#if defined(USE_POCSAG)
|
||||
m_pocsagEnabled(false),
|
||||
#endif
|
||||
|
|
@ -296,16 +276,6 @@ m_fmMaxDevLevel(90.0F),
|
|||
m_fmExtAudioBoost(1U),
|
||||
#endif
|
||||
m_fmModeHang(10U),
|
||||
#if defined(USE_AX25)
|
||||
m_ax25Enabled(false),
|
||||
#endif
|
||||
m_ax25TXDelay(300U),
|
||||
#if defined(USE_AX25)
|
||||
m_ax25RXTwist(6),
|
||||
m_ax25SlotTime(30U),
|
||||
m_ax25PPersist(128U),
|
||||
m_ax25Trace(false),
|
||||
#endif
|
||||
#if defined(USE_DSTAR)
|
||||
m_dstarNetworkEnabled(false),
|
||||
m_dstarGatewayAddress(),
|
||||
|
|
@ -363,17 +333,6 @@ m_nxdnNetworkModeHang(3U),
|
|||
#if defined(USE_NXDN)
|
||||
m_nxdnNetworkDebug(false),
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
m_m17NetworkEnabled(false),
|
||||
m_m17GatewayAddress(),
|
||||
m_m17GatewayPort(0U),
|
||||
m_m17LocalAddress(),
|
||||
m_m17LocalPort(0U),
|
||||
#endif
|
||||
m_m17NetworkModeHang(3U),
|
||||
#if defined(USE_M17)
|
||||
m_m17NetworkDebug(false),
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
m_pocsagNetworkEnabled(false),
|
||||
m_pocsagGatewayAddress(),
|
||||
|
|
@ -398,10 +357,6 @@ m_fmNetworkModeHang(3U),
|
|||
#if defined(USE_FM)
|
||||
m_fmNetworkDebug(false),
|
||||
#endif
|
||||
#if defined(USE_AX25)
|
||||
m_ax25NetworkEnabled(false),
|
||||
m_ax25NetworkDebug(false),
|
||||
#endif
|
||||
m_lockFileEnabled(false),
|
||||
m_lockFileName(),
|
||||
m_remoteControlEnabled(false)
|
||||
|
|
@ -470,10 +425,6 @@ bool CConf::read()
|
|||
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;
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
else if (::strncmp(buffer, "[POCSAG]", 8U) == 0)
|
||||
section = SECTION::POCSAG;
|
||||
|
|
@ -482,10 +433,6 @@ bool CConf::read()
|
|||
else if (::strncmp(buffer, "[FM]", 4U) == 0)
|
||||
section = SECTION::FM;
|
||||
#endif
|
||||
#if defined(USE_AX25)
|
||||
else if (::strncmp(buffer, "[AX.25]", 7U) == 0)
|
||||
section = SECTION::AX25;
|
||||
#endif
|
||||
#if defined(USE_DSTAR)
|
||||
else if (::strncmp(buffer, "[D-Star Network]", 16U) == 0)
|
||||
section = SECTION::DSTAR_NETWORK;
|
||||
|
|
@ -506,10 +453,6 @@ bool CConf::read()
|
|||
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;
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
else if (::strncmp(buffer, "[POCSAG Network]", 16U) == 0)
|
||||
section = SECTION::POCSAG_NETWORK;
|
||||
|
|
@ -517,10 +460,6 @@ bool CConf::read()
|
|||
#if defined(USE_FM)
|
||||
else if (::strncmp(buffer, "[FM Network]", 12U) == 0)
|
||||
section = SECTION::FM_NETWORK;
|
||||
#endif
|
||||
#if defined(USE_AX25)
|
||||
else if (::strncmp(buffer, "[AX.25 Network]", 15U) == 0)
|
||||
section = SECTION::AX25_NETWORK;
|
||||
#endif
|
||||
else if (::strncmp(buffer, "[Lock File]", 11U) == 0)
|
||||
section = SECTION::LOCK_FILE;
|
||||
|
|
@ -575,7 +514,7 @@ bool CConf::read()
|
|||
else if (::strcmp(key, "RFModeHang") == 0)
|
||||
m_dstarModeHang = m_dmrModeHang = m_fusionModeHang = m_p25ModeHang = m_nxdnModeHang = m_fmModeHang = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "NetModeHang") == 0)
|
||||
m_dstarNetworkModeHang = m_dmrNetworkModeHang = m_fusionNetworkModeHang = m_p25NetworkModeHang = m_nxdnNetworkModeHang = m_m17NetworkModeHang = m_fmNetworkModeHang = (unsigned int)::atoi(value);
|
||||
m_dstarNetworkModeHang = m_dmrNetworkModeHang = m_fusionNetworkModeHang = m_p25NetworkModeHang = m_nxdnNetworkModeHang = m_fmNetworkModeHang = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "Daemon") == 0)
|
||||
m_daemon = ::atoi(value) == 1;
|
||||
} else if (section == SECTION::INFO) {
|
||||
|
|
@ -668,7 +607,7 @@ bool CConf::read()
|
|||
else if (::strcmp(key, "PTTInvert") == 0)
|
||||
m_modemPTTInvert = ::atoi(value) == 1;
|
||||
else if (::strcmp(key, "TXDelay") == 0)
|
||||
m_ax25TXDelay = m_modemTXDelay = (unsigned int)::atoi(value);
|
||||
m_modemTXDelay = (unsigned int)::atoi(value);
|
||||
#if defined(USE_DMR)
|
||||
else if (::strcmp(key, "DMRDelay") == 0)
|
||||
m_modemDMRDelay = (unsigned int)::atoi(value);
|
||||
|
|
@ -709,10 +648,6 @@ bool CConf::read()
|
|||
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));
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
else if (::strcmp(key, "POCSAGTXLevel") == 0)
|
||||
m_modemPOCSAGTXLevel = float(::atof(value));
|
||||
|
|
@ -720,10 +655,6 @@ bool CConf::read()
|
|||
#if defined(USE_FM)
|
||||
else if (::strcmp(key, "FMTXLevel") == 0)
|
||||
m_modemFMTXLevel = float(::atof(value));
|
||||
#endif
|
||||
#if defined(USE_AX25)
|
||||
else if (::strcmp(key, "AX25TXLevel") == 0)
|
||||
m_modemAX25TXLevel = float(::atof(value));
|
||||
#endif
|
||||
else if (::strcmp(key, "RSSIMappingFile") == 0)
|
||||
m_modemRSSIMappingFile = value;
|
||||
|
|
@ -934,21 +865,6 @@ bool CConf::read()
|
|||
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)
|
||||
m_m17Enabled = ::atoi(value) == 1;
|
||||
else if (::strcmp(key, "CAN") == 0)
|
||||
m_m17CAN = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "SelfOnly") == 0)
|
||||
m_m17SelfOnly = ::atoi(value) == 1;
|
||||
else if (::strcmp(key, "AllowEncryption") == 0)
|
||||
m_m17AllowEncryption = ::atoi(value) == 1;
|
||||
else if (::strcmp(key, "TXHang") == 0)
|
||||
m_m17TXHang = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "ModeHang") == 0)
|
||||
m_m17ModeHang = (unsigned int)::atoi(value);
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
} else if (section == SECTION::POCSAG) {
|
||||
if (::strcmp(key, "Enable") == 0)
|
||||
|
|
@ -1044,21 +960,6 @@ bool CConf::read()
|
|||
else if (::strcmp(key, "ModeHang") == 0)
|
||||
m_fmModeHang = (unsigned int)::atoi(value);
|
||||
#endif
|
||||
#if defined(USE_AX25)
|
||||
} else if (section == SECTION::AX25) {
|
||||
if (::strcmp(key, "Enable") == 0)
|
||||
m_ax25Enabled = ::atoi(value) == 1;
|
||||
else if (::strcmp(key, "TXDelay") == 0)
|
||||
m_ax25TXDelay = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "RXTwist") == 0)
|
||||
m_ax25RXTwist = ::atoi(value);
|
||||
else if (::strcmp(key, "SlotTime") == 0)
|
||||
m_ax25SlotTime = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "PPersist") == 0)
|
||||
m_ax25PPersist = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "Trace") == 0)
|
||||
m_ax25Trace = ::atoi(value) == 1;
|
||||
#endif
|
||||
#if defined(USE_DSTAR)
|
||||
} else if (section == SECTION::DSTAR_NETWORK) {
|
||||
if (::strcmp(key, "Enable") == 0)
|
||||
|
|
@ -1152,23 +1053,6 @@ bool CConf::read()
|
|||
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)
|
||||
m_m17NetworkEnabled = ::atoi(value) == 1;
|
||||
else if (::strcmp(key, "LocalAddress") == 0)
|
||||
m_m17LocalAddress = value;
|
||||
else if (::strcmp(key, "LocalPort") == 0)
|
||||
m_m17LocalPort = (unsigned short)::atoi(value);
|
||||
else if (::strcmp(key, "GatewayAddress") == 0)
|
||||
m_m17GatewayAddress = value;
|
||||
else if (::strcmp(key, "GatewayPort") == 0)
|
||||
m_m17GatewayPort = (unsigned short)::atoi(value);
|
||||
else if (::strcmp(key, "ModeHang") == 0)
|
||||
m_m17NetworkModeHang = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "Debug") == 0)
|
||||
m_m17NetworkDebug = ::atoi(value) == 1;
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
} else if (section == SECTION::POCSAG_NETWORK) {
|
||||
if (::strcmp(key, "Enable") == 0)
|
||||
|
|
@ -1210,13 +1094,6 @@ bool CConf::read()
|
|||
m_fmNetworkModeHang = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "Debug") == 0)
|
||||
m_fmNetworkDebug = ::atoi(value) == 1;
|
||||
#endif
|
||||
#if defined(USE_AX25)
|
||||
} else if (section == SECTION::AX25_NETWORK) {
|
||||
if (::strcmp(key, "Enable") == 0)
|
||||
m_ax25NetworkEnabled = ::atoi(value) == 1;
|
||||
else if (::strcmp(key, "Debug") == 0)
|
||||
m_ax25NetworkDebug = ::atoi(value) == 1;
|
||||
#endif
|
||||
} else if (section == SECTION::LOCK_FILE) {
|
||||
if (::strcmp(key, "Enable") == 0)
|
||||
|
|
@ -1530,13 +1407,6 @@ float CConf::getModemNXDNTXLevel() const
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_M17)
|
||||
float CConf::getModemM17TXLevel() const
|
||||
{
|
||||
return m_modemM17TXLevel;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_POCSAG)
|
||||
float CConf::getModemPOCSAGTXLevel() const
|
||||
{
|
||||
|
|
@ -1551,13 +1421,6 @@ float CConf::getModemFMTXLevel() const
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_AX25)
|
||||
float CConf::getModemAX25TXLevel() const
|
||||
{
|
||||
return m_modemAX25TXLevel;
|
||||
}
|
||||
#endif
|
||||
|
||||
std::string CConf::getModemRSSIMappingFile () const
|
||||
{
|
||||
return m_modemRSSIMappingFile;
|
||||
|
|
@ -1868,38 +1731,6 @@ unsigned int CConf::getNXDNModeHang() const
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_M17)
|
||||
bool CConf::getM17Enabled() const
|
||||
{
|
||||
return m_m17Enabled;
|
||||
}
|
||||
|
||||
unsigned int CConf::getM17CAN() const
|
||||
{
|
||||
return m_m17CAN;
|
||||
}
|
||||
|
||||
bool CConf::getM17SelfOnly() const
|
||||
{
|
||||
return m_m17SelfOnly;
|
||||
}
|
||||
|
||||
bool CConf::getM17AllowEncryption() const
|
||||
{
|
||||
return m_m17AllowEncryption;
|
||||
}
|
||||
|
||||
unsigned int CConf::getM17TXHang() const
|
||||
{
|
||||
return m_m17TXHang;
|
||||
}
|
||||
|
||||
unsigned int CConf::getM17ModeHang() const
|
||||
{
|
||||
return m_m17ModeHang;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_POCSAG)
|
||||
bool CConf::getPOCSAGEnabled() const
|
||||
{
|
||||
|
|
@ -2094,38 +1925,6 @@ unsigned int CConf::getFMModeHang() const
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_AX25)
|
||||
bool CConf::getAX25Enabled() const
|
||||
{
|
||||
return m_ax25Enabled;
|
||||
}
|
||||
|
||||
unsigned int CConf::getAX25TXDelay() const
|
||||
{
|
||||
return m_ax25TXDelay;
|
||||
}
|
||||
|
||||
int CConf::getAX25RXTwist() const
|
||||
{
|
||||
return m_ax25RXTwist;
|
||||
}
|
||||
|
||||
unsigned int CConf::getAX25SlotTime() const
|
||||
{
|
||||
return m_ax25SlotTime;
|
||||
}
|
||||
|
||||
unsigned int CConf::getAX25PPersist() const
|
||||
{
|
||||
return m_ax25PPersist;
|
||||
}
|
||||
|
||||
bool CConf::getAX25Trace() const
|
||||
{
|
||||
return m_ax25Trace;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_DSTAR)
|
||||
bool CConf::getDStarNetworkEnabled() const
|
||||
{
|
||||
|
|
@ -2331,43 +2130,6 @@ bool CConf::getNXDNNetworkDebug() const
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_M17)
|
||||
bool CConf::getM17NetworkEnabled() const
|
||||
{
|
||||
return m_m17NetworkEnabled;
|
||||
}
|
||||
|
||||
std::string CConf::getM17GatewayAddress() const
|
||||
{
|
||||
return m_m17GatewayAddress;
|
||||
}
|
||||
|
||||
unsigned short CConf::getM17GatewayPort() const
|
||||
{
|
||||
return m_m17GatewayPort;
|
||||
}
|
||||
|
||||
std::string CConf::getM17LocalAddress() const
|
||||
{
|
||||
return m_m17LocalAddress;
|
||||
}
|
||||
|
||||
unsigned short CConf::getM17LocalPort() const
|
||||
{
|
||||
return m_m17LocalPort;
|
||||
}
|
||||
|
||||
unsigned int CConf::getM17NetworkModeHang() const
|
||||
{
|
||||
return m_m17NetworkModeHang;
|
||||
}
|
||||
|
||||
bool CConf::getM17NetworkDebug() const
|
||||
{
|
||||
return m_m17NetworkDebug;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_POCSAG)
|
||||
bool CConf::getPOCSAGNetworkEnabled() const
|
||||
{
|
||||
|
|
@ -2462,18 +2224,6 @@ bool CConf::getFMNetworkDebug() const
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_AX25)
|
||||
bool CConf::getAX25NetworkEnabled() const
|
||||
{
|
||||
return m_ax25NetworkEnabled;
|
||||
}
|
||||
|
||||
bool CConf::getAX25NetworkDebug() const
|
||||
{
|
||||
return m_ax25NetworkDebug;
|
||||
}
|
||||
#endif
|
||||
|
||||
bool CConf::getLockFileEnabled() const
|
||||
{
|
||||
return m_lockFileEnabled;
|
||||
|
|
|
|||
|
|
@ -27,8 +27,6 @@
|
|||
#define USE_NXDN
|
||||
#define USE_POCSAG
|
||||
#define USE_FM
|
||||
#define USE_AX25
|
||||
#define USE_M17
|
||||
|
||||
const unsigned char MODE_IDLE = 0U;
|
||||
const unsigned char MODE_DSTAR = 1U;
|
||||
|
|
|
|||
587
MMDVMHost.cpp
587
MMDVMHost.cpp
File diff suppressed because it is too large
Load diff
100
MMDVMHost.h
100
MMDVMHost.h
|
|
@ -73,18 +73,12 @@ private:
|
|||
#if defined(USE_NXDN)
|
||||
CNXDNControl* m_nxdn;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
CM17Control* m_m17;
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
CPOCSAGControl* m_pocsag;
|
||||
#endif
|
||||
#if defined(USE_FM)
|
||||
CFMControl* m_fm;
|
||||
#endif
|
||||
#if defined(USE_AX25)
|
||||
CAX25Control* m_ax25;
|
||||
#endif
|
||||
#if defined(USE_DSTAR)
|
||||
CDStarNetwork* m_dstarNetwork;
|
||||
#endif
|
||||
|
|
@ -100,17 +94,11 @@ private:
|
|||
#if defined(USE_NXDN)
|
||||
INXDNNetwork* m_nxdnNetwork;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
CM17Network* m_m17Network;
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
CPOCSAGNetwork* m_pocsagNetwork;
|
||||
#endif
|
||||
#if defined(USE_FM)
|
||||
CFMNetwork* m_fmNetwork;
|
||||
#endif
|
||||
#if defined(USE_AX25)
|
||||
CAX25Network* m_ax25Network;
|
||||
#endif
|
||||
unsigned char m_mode;
|
||||
#if defined(USE_DSTAR)
|
||||
|
|
@ -128,9 +116,6 @@ private:
|
|||
#if defined(USE_NXDN)
|
||||
unsigned int m_nxdnRFModeHang;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
unsigned int m_m17RFModeHang;
|
||||
#endif
|
||||
#if defined(USE_FM)
|
||||
unsigned int m_fmRFModeHang;
|
||||
#endif
|
||||
|
|
@ -149,9 +134,6 @@ private:
|
|||
#if defined(USE_NXDN)
|
||||
unsigned int m_nxdnNetModeHang;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
unsigned int m_m17NetModeHang;
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
unsigned int m_pocsagNetModeHang;
|
||||
#endif
|
||||
|
|
@ -170,10 +152,8 @@ private:
|
|||
bool m_ysfEnabled;
|
||||
bool m_p25Enabled;
|
||||
bool m_nxdnEnabled;
|
||||
bool m_m17Enabled;
|
||||
bool m_pocsagEnabled;
|
||||
bool m_fmEnabled;
|
||||
bool m_ax25Enabled;
|
||||
unsigned int m_cwIdTime;
|
||||
#if defined(USE_DMR) || defined(USE_P25)
|
||||
CDMRLookup* m_dmrLookup;
|
||||
|
|
@ -188,59 +168,6 @@ private:
|
|||
std::string m_lockFileName;
|
||||
CRemoteControl* m_remoteControl;
|
||||
bool m_fixedMode;
|
||||
CConf m_conf;
|
||||
CModem* m_modem;
|
||||
CDStarControl* m_dstar;
|
||||
CDMRControl* m_dmr;
|
||||
CYSFControl* m_ysf;
|
||||
CP25Control* m_p25;
|
||||
CNXDNControl* m_nxdn;
|
||||
CPOCSAGControl* m_pocsag;
|
||||
CFMControl* m_fm;
|
||||
CDStarNetwork* m_dstarNetwork;
|
||||
IDMRNetwork* m_dmrNetwork;
|
||||
CYSFNetwork* m_ysfNetwork;
|
||||
CP25Network* m_p25Network;
|
||||
INXDNNetwork* m_nxdnNetwork;
|
||||
CPOCSAGNetwork* m_pocsagNetwork;
|
||||
CFMNetwork* m_fmNetwork;
|
||||
CDisplay* m_display;
|
||||
unsigned char m_mode;
|
||||
unsigned int m_dstarRFModeHang;
|
||||
unsigned int m_dmrRFModeHang;
|
||||
unsigned int m_ysfRFModeHang;
|
||||
unsigned int m_p25RFModeHang;
|
||||
unsigned int m_nxdnRFModeHang;
|
||||
unsigned int m_fmRFModeHang;
|
||||
unsigned int m_dstarNetModeHang;
|
||||
unsigned int m_dmrNetModeHang;
|
||||
unsigned int m_ysfNetModeHang;
|
||||
unsigned int m_p25NetModeHang;
|
||||
unsigned int m_nxdnNetModeHang;
|
||||
unsigned int m_pocsagNetModeHang;
|
||||
unsigned int m_fmNetModeHang;
|
||||
CTimer m_modeTimer;
|
||||
CTimer m_dmrTXTimer;
|
||||
CTimer m_cwIdTimer;
|
||||
bool m_duplex;
|
||||
unsigned int m_timeout;
|
||||
bool m_dstarEnabled;
|
||||
bool m_dmrEnabled;
|
||||
bool m_ysfEnabled;
|
||||
bool m_p25Enabled;
|
||||
bool m_nxdnEnabled;
|
||||
bool m_pocsagEnabled;
|
||||
bool m_fmEnabled;
|
||||
unsigned int m_cwIdTime;
|
||||
CDMRLookup* m_dmrLookup;
|
||||
CNXDNLookup* m_nxdnLookup;
|
||||
std::string m_callsign;
|
||||
unsigned int m_id;
|
||||
std::string m_cwCallsign;
|
||||
bool m_lockFileEnabled;
|
||||
std::string m_lockFileName;
|
||||
CRemoteControl* m_remoteControl;
|
||||
bool m_fixedMode;
|
||||
|
||||
CTimer m_serialTimer;
|
||||
unsigned char* m_serialBuffer;
|
||||
|
|
@ -264,42 +191,18 @@ private:
|
|||
#if defined(USE_NXDN)
|
||||
bool createNXDNNetwork();
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
bool createM17Network();
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
bool createPOCSAGNetwork();
|
||||
#endif
|
||||
#if defined(USE_FM)
|
||||
bool createFMNetwork();
|
||||
#endif
|
||||
#if defined(USE_AX25)
|
||||
bool createAX25Network();
|
||||
#endif
|
||||
void writeSerial(const unsigned char* message, unsigned int length);
|
||||
#if defined(USE_AX25)
|
||||
void writeAX25(const unsigned char* message, unsigned int length);
|
||||
#endif
|
||||
void remoteControl(const std::string& commandString);
|
||||
void processModeCommand(unsigned char mode, unsigned int timeout);
|
||||
void processEnableCommand(bool& mode, bool enabled);
|
||||
void readParams();
|
||||
bool createModem();
|
||||
bool createDStarNetwork();
|
||||
bool createDMRNetwork();
|
||||
bool createYSFNetwork();
|
||||
bool createP25Network();
|
||||
bool createNXDNNetwork();
|
||||
bool createPOCSAGNetwork();
|
||||
bool createFMNetwork();
|
||||
|
||||
void remoteControl();
|
||||
void processModeCommand(unsigned char mode, unsigned int timeout);
|
||||
|
||||
void setMode(unsigned char mode);
|
||||
void setMode(unsigned char mode);
|
||||
void enableModemMode(bool& mode, bool enabled);
|
||||
void processEnableModeCommand(unsigned char mode, bool hasController, bool& modeEnabled, bool enableMode);
|
||||
|
||||
void createLockFile(const char* mode) const;
|
||||
void removeLockFile() const;
|
||||
|
|
@ -309,9 +212,6 @@ private:
|
|||
|
||||
static void onDisplay(const unsigned char* message, unsigned int length);
|
||||
static void onCommand(const unsigned char* command, unsigned int length);
|
||||
#if defined(USE_AX25)
|
||||
static void onAX25(const unsigned char* message, unsigned int length);
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
|||
421
Modem.cpp
421
Modem.cpp
|
|
@ -82,23 +82,10 @@ 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;
|
||||
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;
|
||||
#endif
|
||||
|
||||
#if defined(USE_AX25)
|
||||
const unsigned char MMDVM_AX25_DATA = 0x55U;
|
||||
const unsigned char MMDVM_AX25_DATA_EX = 0x56U;
|
||||
#endif
|
||||
|
||||
#if defined(USE_FM)
|
||||
const unsigned char MMDVM_FM_PARAMS1 = 0x60U;
|
||||
const unsigned char MMDVM_FM_PARAMS2 = 0x61U;
|
||||
|
|
@ -152,9 +139,6 @@ m_p25TXHang(5U),
|
|||
#if defined(USE_NXDN)
|
||||
m_nxdnTXHang(5U),
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
m_m17TXHang(5U),
|
||||
#endif
|
||||
m_duplex(duplex),
|
||||
m_rxInvert(rxInvert),
|
||||
m_txInvert(txInvert),
|
||||
|
|
@ -180,18 +164,12 @@ m_p25TXLevel(0.0F),
|
|||
#if defined(USE_NXDN)
|
||||
m_nxdnTXLevel(0.0F),
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
m_m17TXLevel(0.0F),
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
m_pocsagTXLevel(0.0F),
|
||||
#endif
|
||||
#if defined(USE_FM)
|
||||
m_fmTXLevel(0.0F),
|
||||
#endif
|
||||
#if defined(USE_AX25)
|
||||
m_ax25TXLevel(0.0F),
|
||||
#endif
|
||||
m_rfLevel(0.0F),
|
||||
m_useCOSAsLockout(useCOSAsLockout),
|
||||
m_trace(trace),
|
||||
|
|
@ -216,18 +194,12 @@ m_p25Enabled(false),
|
|||
#if defined(USE_NXDN)
|
||||
m_nxdnEnabled(false),
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
m_m17Enabled(false),
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
m_pocsagEnabled(false),
|
||||
#endif
|
||||
#if defined(USE_FM)
|
||||
m_fmEnabled(false),
|
||||
#endif
|
||||
#if defined(USE_AX25)
|
||||
m_ax25Enabled(false),
|
||||
#endif
|
||||
m_rxDCOffset(0),
|
||||
m_txDCOffset(0),
|
||||
m_port(nullptr),
|
||||
|
|
@ -258,10 +230,6 @@ m_txP25Data(1000U, "Modem TX P25"),
|
|||
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"),
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
m_txPOCSAGData(1000U, "Modem TX POCSAG"),
|
||||
#endif
|
||||
|
|
@ -269,10 +237,6 @@ m_txPOCSAGData(1000U, "Modem TX POCSAG"),
|
|||
m_rxFMData(5000U, "Modem RX FM"),
|
||||
m_txFMData(5000U, "Modem TX FM"),
|
||||
#endif
|
||||
#if defined(USE_AX25)
|
||||
m_rxAX25Data(1000U, "Modem RX AX.25"),
|
||||
m_txAX25Data(1000U, "Modem TX AX.25"),
|
||||
#endif
|
||||
m_rxSerialData(1000U, "Modem RX Serial"),
|
||||
m_txSerialData(1000U, "Modem TX Serial"),
|
||||
m_rxTransparentData(1000U, "Modem RX Transparent"),
|
||||
|
|
@ -297,30 +261,18 @@ m_p25Space(0U),
|
|||
#if defined(USE_NXDN)
|
||||
m_nxdnSpace(0U),
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
m_m17Space(0U),
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
m_pocsagSpace(0U),
|
||||
#endif
|
||||
#if defined(USE_FM)
|
||||
m_fmSpace(0U),
|
||||
#endif
|
||||
#if defined(USE_AX25)
|
||||
m_ax25Space(0U),
|
||||
#endif
|
||||
m_tx(false),
|
||||
m_cd(false),
|
||||
m_lockout(false),
|
||||
m_error(false),
|
||||
m_mode(MODE_IDLE),
|
||||
m_hwType(HW_TYPE::UNKNOWN),
|
||||
#if defined(USE_AX25)
|
||||
m_ax25RXTwist(0),
|
||||
m_ax25TXDelay(300U),
|
||||
m_ax25SlotTime(30U),
|
||||
m_ax25PPersist(128U),
|
||||
#endif
|
||||
#if defined(USE_FM)
|
||||
m_fmCallsign(),
|
||||
m_fmCallsignSpeed(20U),
|
||||
|
|
@ -406,18 +358,12 @@ void CModem::setModeParams(bool dstarEnabled, bool dmrEnabled, bool ysfEnabled,
|
|||
#if defined(USE_NXDN)
|
||||
m_nxdnEnabled = nxdnEnabled;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
m_m17Enabled = m17Enabled;
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
m_pocsagEnabled = pocsagEnabled;
|
||||
#endif
|
||||
#if defined(USE_FM)
|
||||
m_fmEnabled = fmEnabled;
|
||||
#endif
|
||||
#if defined(USE_AX25)
|
||||
m_ax25Enabled = ax25Enabled;
|
||||
#endif
|
||||
}
|
||||
|
||||
void CModem::setLevels(float rxLevel, float cwIdTXLevel, float dstarTXLevel, float dmrTXLevel, float ysfTXLevel, float p25TXLevel, float nxdnTXLevel, float pocsagTXLevel, float fmTXLevel)
|
||||
|
|
@ -439,18 +385,12 @@ void CModem::setLevels(float rxLevel, float cwIdTXLevel, float dstarTXLevel, flo
|
|||
#if defined(USE_NXDN)
|
||||
m_nxdnTXLevel = nxdnTXLevel;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
m_m17TXLevel = m17TXLevel;
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
m_pocsagTXLevel = pocsagTXLevel;
|
||||
#endif
|
||||
#if defined(USE_FM)
|
||||
m_fmTXLevel = fmTXLevel;
|
||||
#endif
|
||||
#if defined(USE_AX25)
|
||||
m_ax25TXLevel = ax25TXLevel;
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined(USE_DMR)
|
||||
|
|
@ -484,23 +424,6 @@ void CModem::setNXDNParams(unsigned int txHang)
|
|||
}
|
||||
#endif
|
||||
|
||||
#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)
|
||||
{
|
||||
m_ax25RXTwist = rxTwist;
|
||||
m_ax25TXDelay = txDelay;
|
||||
m_ax25SlotTime = slotTime;
|
||||
m_ax25PPersist = pPersist;
|
||||
}
|
||||
#endif
|
||||
|
||||
void CModem::setTransparentDataParams(unsigned int sendFrameType)
|
||||
{
|
||||
m_sendTransparentDataFrameType = sendFrameType;
|
||||
|
|
@ -831,60 +754,6 @@ void CModem::clock(unsigned int ms)
|
|||
break;
|
||||
#endif
|
||||
|
||||
#if defined(USE_M17)
|
||||
case MMDVM_M17_LINK_SETUP: {
|
||||
if (m_trace)
|
||||
CUtils::dump(1U, "RX M17 Link Setup", m_buffer, m_length);
|
||||
|
||||
unsigned char data = m_length - 2U;
|
||||
m_rxM17Data.addData(&data, 1U);
|
||||
|
||||
data = TAG_HEADER;
|
||||
m_rxM17Data.addData(&data, 1U);
|
||||
|
||||
m_rxM17Data.addData(m_buffer + 3U, m_length - 3U);
|
||||
}
|
||||
break;
|
||||
|
||||
case MMDVM_M17_STREAM: {
|
||||
if (m_trace)
|
||||
CUtils::dump(1U, "RX M17 Stream Data", m_buffer, m_length);
|
||||
|
||||
unsigned char data = m_length - 2U;
|
||||
m_rxM17Data.addData(&data, 1U);
|
||||
|
||||
data = TAG_DATA;
|
||||
m_rxM17Data.addData(&data, 1U);
|
||||
|
||||
m_rxM17Data.addData(m_buffer + 3U, m_length - 3U);
|
||||
}
|
||||
break;
|
||||
|
||||
case MMDVM_M17_EOT: {
|
||||
if (m_trace)
|
||||
CUtils::dump(1U, "RX M17 EOT", m_buffer, m_length);
|
||||
|
||||
unsigned char data = 1U;
|
||||
m_rxM17Data.addData(&data, 1U);
|
||||
|
||||
data = TAG_EOT;
|
||||
m_rxM17Data.addData(&data, 1U);
|
||||
}
|
||||
break;
|
||||
|
||||
case MMDVM_M17_LOST: {
|
||||
if (m_trace)
|
||||
CUtils::dump(1U, "RX M17 Lost", m_buffer, m_length);
|
||||
|
||||
unsigned char data = 1U;
|
||||
m_rxM17Data.addData(&data, 1U);
|
||||
|
||||
data = TAG_LOST;
|
||||
m_rxM17Data.addData(&data, 1U);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(USE_FM)
|
||||
case MMDVM_FM_DATA: {
|
||||
if (m_trace)
|
||||
|
|
@ -943,36 +812,6 @@ void CModem::clock(unsigned int ms)
|
|||
break;
|
||||
#endif
|
||||
|
||||
#if defined(USE_AX25)
|
||||
case MMDVM_AX25_DATA: {
|
||||
if (m_trace)
|
||||
CUtils::dump(1U, "RX AX.25 Data", m_buffer, m_length);
|
||||
|
||||
unsigned int data1 = m_length - m_offset + 1U;
|
||||
m_rxAX25Data.addData((unsigned char*)&data1, sizeof(unsigned int));
|
||||
|
||||
unsigned char data2 = TAG_DATA;
|
||||
m_rxFMData.addData(&data2, 1U);
|
||||
|
||||
m_rxAX25Data.addData(m_buffer + m_offset, m_length - m_offset);
|
||||
}
|
||||
break;
|
||||
|
||||
case MMDVM_AX25_DATA_EX: {
|
||||
if (m_trace)
|
||||
CUtils::dump(1U, "RX AX.25 Data Extended", m_buffer, m_length);
|
||||
|
||||
unsigned int data1 = m_length - m_offset + 1U;
|
||||
m_rxAX25Data.addData((unsigned char*)&data1, sizeof(unsigned int));
|
||||
|
||||
unsigned char data2 = TAG_RSSI;
|
||||
m_rxFMData.addData(&data2, 1U);
|
||||
|
||||
m_rxAX25Data.addData(m_buffer + m_offset, m_length - m_offset);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
case MMDVM_GET_STATUS:
|
||||
// if (m_trace)
|
||||
// CUtils::dump(1U, "GET_STATUS", m_buffer, m_length);
|
||||
|
|
@ -1003,18 +842,12 @@ void CModem::clock(unsigned int ms)
|
|||
#if defined(USE_NXDN)
|
||||
m_nxdnSpace = 0U;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
m_m17Space = 0U;
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
m_pocsagSpace = 0U;
|
||||
#endif
|
||||
#if defined(USE_FM)
|
||||
m_fmSpace = 0U;
|
||||
#endif
|
||||
#if defined(USE_AX25)
|
||||
m_ax25Space = 0U;
|
||||
#endif
|
||||
#if defined(USE_DSTAR)
|
||||
m_dstarSpace = m_buffer[m_offset + 3U];
|
||||
#endif
|
||||
|
|
@ -1037,10 +870,6 @@ void CModem::clock(unsigned int ms)
|
|||
#if defined(USE_POCSAG)
|
||||
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;
|
||||
|
|
@ -1080,17 +909,11 @@ void CModem::clock(unsigned int ms)
|
|||
#if defined(USE_NXDN)
|
||||
m_nxdnSpace = m_buffer[m_offset + 8U];
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
m_m17Space = m_buffer[m_offset + 9U];
|
||||
#endif
|
||||
#if defined(USE_FM)
|
||||
m_fmSpace = m_buffer[m_offset + 10U];
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
m_pocsagSpace = m_buffer[m_offset + 11U];
|
||||
#endif
|
||||
#if defined(USE_AX25)
|
||||
m_ax25Space = m_buffer[m_offset + 12U];
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
|
|
@ -1112,17 +935,11 @@ void CModem::clock(unsigned int ms)
|
|||
#if defined(USE_NXDN)
|
||||
m_nxdnSpace = 0U;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
m_m17Space = 0U;
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
m_pocsagSpace = 0U;
|
||||
#endif
|
||||
#if defined(USE_FM)
|
||||
m_fmSpace = 0U;
|
||||
#endif
|
||||
#if defined(USE_AX25)
|
||||
m_ax25Space = 0U;
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
|
|
@ -1321,36 +1138,6 @@ void CModem::clock(unsigned int ms)
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_M17)
|
||||
if (m_m17Space > 1U && !m_txM17Data.isEmpty()) {
|
||||
unsigned char len = 0U;
|
||||
m_txM17Data.getData(&len, 1U);
|
||||
m_txM17Data.getData(m_buffer, len);
|
||||
|
||||
if (m_trace) {
|
||||
switch (m_buffer[2U]) {
|
||||
case MMDVM_M17_LINK_SETUP:
|
||||
CUtils::dump(1U, "TX M17 Link Setup", m_buffer, len);
|
||||
break;
|
||||
case MMDVM_M17_STREAM:
|
||||
CUtils::dump(1U, "TX M17 Stream Data", m_buffer, len);
|
||||
break;
|
||||
case MMDVM_M17_EOT:
|
||||
CUtils::dump(1U, "TX M17 EOT", m_buffer, len);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
int ret = m_port->write(m_buffer, len);
|
||||
if (ret != int(len))
|
||||
LogWarning("Error when writing M17 data to the MMDVM");
|
||||
|
||||
m_playoutTimer.start();
|
||||
|
||||
m_m17Space--;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_POCSAG)
|
||||
if (m_pocsagSpace > 1U && !m_txPOCSAGData.isEmpty()) {
|
||||
unsigned char len = 0U;
|
||||
|
|
@ -1393,25 +1180,6 @@ void CModem::clock(unsigned int ms)
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_AX25)
|
||||
if (m_ax25Space > 0U && !m_txAX25Data.isEmpty()) {
|
||||
unsigned int len = 0U;
|
||||
m_txAX25Data.getData((unsigned char*)&len, sizeof(unsigned int));
|
||||
m_txAX25Data.getData(m_buffer, len);
|
||||
|
||||
if (m_trace)
|
||||
CUtils::dump(1U, "TX AX.25 Data", m_buffer, len);
|
||||
|
||||
int ret = m_port->write(m_buffer, len);
|
||||
if (ret != int(len))
|
||||
LogWarning("Error when writing AX.25 data to the MMDVM");
|
||||
|
||||
m_playoutTimer.start();
|
||||
|
||||
m_ax25Space = 0U;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (!m_txTransparentData.isEmpty()) {
|
||||
unsigned char len = 0U;
|
||||
m_txTransparentData.getData(&len, 1U);
|
||||
|
|
@ -1542,22 +1310,6 @@ unsigned int CModem::readNXDNData(unsigned char* data)
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_M17)
|
||||
unsigned int CModem::readM17Data(unsigned char* data)
|
||||
{
|
||||
assert(data != nullptr);
|
||||
|
||||
if (m_rxM17Data.isEmpty())
|
||||
return 0U;
|
||||
|
||||
unsigned char len = 0U;
|
||||
m_rxM17Data.getData(&len, 1U);
|
||||
m_rxM17Data.getData(data, len);
|
||||
|
||||
return len;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_FM)
|
||||
unsigned int CModem::readFMData(unsigned char* data)
|
||||
{
|
||||
|
|
@ -1574,22 +1326,6 @@ unsigned int CModem::readFMData(unsigned char* data)
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_AX25)
|
||||
unsigned int CModem::readAX25Data(unsigned char* data)
|
||||
{
|
||||
assert(data != nullptr);
|
||||
|
||||
if (m_rxAX25Data.isEmpty())
|
||||
return 0U;
|
||||
|
||||
unsigned int len = 0U;
|
||||
m_rxAX25Data.getData((unsigned char*)&len, sizeof(unsigned int));
|
||||
m_rxAX25Data.getData(data, len);
|
||||
|
||||
return len;
|
||||
}
|
||||
#endif
|
||||
|
||||
unsigned int CModem::readTransparentData(unsigned char* data)
|
||||
{
|
||||
assert(data != nullptr);
|
||||
|
|
@ -1819,49 +1555,6 @@ bool CModem::writeNXDNData(const unsigned char* data, unsigned int length)
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_M17)
|
||||
bool CModem::hasM17Space() const
|
||||
{
|
||||
unsigned int space = m_txM17Data.freeSpace() / (M17_FRAME_LENGTH_BYTES + 4U);
|
||||
|
||||
return space > 1U;
|
||||
}
|
||||
|
||||
bool CModem::writeM17Data(const unsigned char* data, unsigned int length)
|
||||
{
|
||||
assert(data != nullptr);
|
||||
assert(length > 0U);
|
||||
|
||||
unsigned char buffer[130U];
|
||||
|
||||
buffer[0U] = MMDVM_FRAME_START;
|
||||
buffer[1U] = length + 2U;
|
||||
|
||||
switch (data[0U]) {
|
||||
case TAG_HEADER:
|
||||
buffer[2U] = MMDVM_M17_LINK_SETUP;
|
||||
::memcpy(buffer + 3U, data + 1U, length - 1U);
|
||||
break;
|
||||
case TAG_DATA:
|
||||
buffer[2U] = MMDVM_M17_STREAM;
|
||||
::memcpy(buffer + 3U, data + 1U, length - 1U);
|
||||
break;
|
||||
case TAG_EOT:
|
||||
buffer[2U] = MMDVM_M17_EOT;
|
||||
::memcpy(buffer + 3U, data + 1U, length - 1U);
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
unsigned char len = length + 2U;
|
||||
m_txM17Data.addData(&len, 1U);
|
||||
m_txM17Data.addData(buffer, len);
|
||||
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_POCSAG)
|
||||
bool CModem::hasPOCSAGSpace() const
|
||||
{
|
||||
|
|
@ -1927,44 +1620,6 @@ bool CModem::writeFMData(const unsigned char* data, unsigned int length)
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_AX25)
|
||||
bool CModem::hasAX25Space() const
|
||||
{
|
||||
unsigned int space = m_txAX25Data.freeSpace() / (AX25_MAX_FRAME_LENGTH_BYTES + 5U);
|
||||
|
||||
return space > 1U;
|
||||
}
|
||||
|
||||
bool CModem::writeAX25Data(const unsigned char* data, unsigned int length)
|
||||
{
|
||||
assert(data != nullptr);
|
||||
assert(length > 0U);
|
||||
|
||||
unsigned char buffer[500U];
|
||||
|
||||
unsigned int len;
|
||||
if (length > 252U) {
|
||||
buffer[0U] = MMDVM_FRAME_START;
|
||||
buffer[1U] = 0U;
|
||||
buffer[2U] = (length + 4U) - 255U;
|
||||
buffer[3U] = MMDVM_AX25_DATA;
|
||||
::memcpy(buffer + 4U, data, length);
|
||||
len = length + 4U;
|
||||
} else {
|
||||
buffer[0U] = MMDVM_FRAME_START;
|
||||
buffer[1U] = length + 3U;
|
||||
buffer[2U] = MMDVM_AX25_DATA;
|
||||
::memcpy(buffer + 3U, data, length);
|
||||
len = length + 3U;
|
||||
}
|
||||
|
||||
m_txAX25Data.addData((unsigned char*)&len, sizeof(unsigned int));
|
||||
m_txAX25Data.addData(buffer, len);
|
||||
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
bool CModem::writeTransparentData(const unsigned char* data, unsigned int length)
|
||||
{
|
||||
assert(data != nullptr);
|
||||
|
|
@ -2142,32 +1797,6 @@ bool CModem::writeNXDNInfo(const char* source, bool group, unsigned int dest, co
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_M17)
|
||||
bool CModem::writeM17Info(const char* source, const char* dest, const char* type)
|
||||
{
|
||||
assert(m_port != nullptr);
|
||||
assert(source != nullptr);
|
||||
assert(dest != nullptr);
|
||||
assert(type != nullptr);
|
||||
|
||||
unsigned char buffer[40U];
|
||||
|
||||
buffer[0U] = MMDVM_FRAME_START;
|
||||
buffer[1U] = 31U;
|
||||
buffer[2U] = MMDVM_QSO_INFO;
|
||||
|
||||
buffer[3U] = MODE_M17;
|
||||
|
||||
::sprintf((char*)(buffer + 4U), "%9.9s", source);
|
||||
|
||||
::sprintf((char*)(buffer + 13U), "%9.9s", dest);
|
||||
|
||||
::memcpy(buffer + 22U, type, 1U);
|
||||
|
||||
return m_port->write(buffer, 23U) != 23;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(USE_POCSAG)
|
||||
bool CModem::writePOCSAGInfo(unsigned int ric, const std::string& message)
|
||||
{
|
||||
|
|
@ -2354,8 +1983,6 @@ bool CModem::readVersion()
|
|||
LogInfo("MMDVM protocol version: 1, description: %.*s", m_length - 4U, m_buffer + 4U);
|
||||
m_capabilities1 = CAP1_DSTAR | CAP1_DMR | CAP1_YSF | CAP1_P25 | CAP1_NXDN;
|
||||
m_capabilities2 = CAP2_POCSAG;
|
||||
if (::strstr((char*)(m_buffer + 4U), "v1.6.") != nullptr)
|
||||
m_capabilities1 |= CAP1_M17;
|
||||
break;
|
||||
|
||||
case 2U:
|
||||
|
|
@ -2395,14 +2022,10 @@ bool CModem::readVersion()
|
|||
::strcat(modeText, " P25");
|
||||
if (hasNXDN())
|
||||
::strcat(modeText, " NXDN");
|
||||
if (hasM17())
|
||||
::strcat(modeText, " M17");
|
||||
if (hasFM())
|
||||
::strcat(modeText, " FM");
|
||||
if (hasPOCSAG())
|
||||
::strcat(modeText, " POCSAG");
|
||||
if (hasAX25())
|
||||
::strcat(modeText, " AX.25");
|
||||
LogInfo(modeText);
|
||||
|
||||
return true;
|
||||
|
|
@ -2499,10 +2122,6 @@ 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
|
||||
|
||||
|
|
@ -2576,13 +2195,9 @@ bool CModem::setConfig1()
|
|||
#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;
|
||||
#else
|
||||
|
||||
buffer[24U] = 0U;
|
||||
buffer[25U] = 0U;
|
||||
#endif
|
||||
|
||||
// CUtils::dump(1U, "Written", buffer, 26U);
|
||||
|
||||
|
|
@ -2672,19 +2287,11 @@ 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)
|
||||
if (m_pocsagEnabled)
|
||||
buffer[5U] |= 0x01U;
|
||||
#endif
|
||||
#if defined(USE_AX25)
|
||||
if (m_ax25Enabled)
|
||||
buffer[5U] |= 0x02U;
|
||||
#endif
|
||||
buffer[6U] = m_txDelay / 10U; // In 10ms units
|
||||
|
||||
|
|
@ -2722,11 +2329,9 @@ bool CModem::setConfig2()
|
|||
#else
|
||||
buffer[16U] = 0U;
|
||||
#endif
|
||||
#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
|
||||
|
|
@ -2737,12 +2342,8 @@ bool CModem::setConfig2()
|
|||
#else
|
||||
buffer[19U] = 0U;
|
||||
#endif
|
||||
#if defined(USE_AX25)
|
||||
buffer[20U] = (unsigned char)(m_ax25TXLevel * 2.55F + 0.5F);
|
||||
#else
|
||||
buffer[20U] = 0U;
|
||||
#endif
|
||||
|
||||
buffer[20U] = 0U;
|
||||
buffer[21U] = 0x00U;
|
||||
buffer[22U] = 0x00U;
|
||||
|
||||
|
|
@ -2761,12 +2362,8 @@ bool CModem::setConfig2()
|
|||
#else
|
||||
buffer[25U] = 0U;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
buffer[26U] = (unsigned char)m_m17TXHang;
|
||||
#else
|
||||
buffer[26U] = 0U;
|
||||
#endif
|
||||
|
||||
buffer[26U] = 0U;
|
||||
buffer[27U] = 0x00U;
|
||||
buffer[28U] = 0x00U;
|
||||
|
||||
|
|
@ -2778,18 +2375,10 @@ bool CModem::setConfig2()
|
|||
buffer[30U] = 0U;
|
||||
#endif
|
||||
|
||||
#if defined(USE_AX25)
|
||||
buffer[31U] = (unsigned char)(m_ax25RXTwist + 128);
|
||||
buffer[32U] = m_ax25TXDelay / 10U; // In 10ms units
|
||||
buffer[33U] = m_ax25SlotTime / 10U; // In 10ms units
|
||||
buffer[34U] = m_ax25PPersist;
|
||||
#else
|
||||
buffer[31U] = 0U;
|
||||
buffer[32U] = 0U;
|
||||
buffer[33U] = 0U;
|
||||
buffer[34U] = 0U;
|
||||
#endif
|
||||
|
||||
buffer[35U] = 0x00U;
|
||||
buffer[36U] = 0x00U;
|
||||
buffer[37U] = 0x00U;
|
||||
|
|
|
|||
66
Modem.h
66
Modem.h
|
|
@ -47,8 +47,8 @@ public:
|
|||
|
||||
void setPort(IModemPort* port);
|
||||
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);
|
||||
void setModeParams(bool dstarEnabled, bool dmrEnabled, bool ysfEnabled, bool p25Enabled, bool nxdnEnabled, bool pocsagEnabled, bool fmEnabled);
|
||||
void setLevels(float rxLevel, float cwIdTXLevel, float dstarTXLevel, float dmrTXLevel, float ysfTXLevel, float p25TXLevel, float nxdnTXLevel, float pocsagLevel, float fmTXLevel);
|
||||
|
||||
#if defined(USE_DMR)
|
||||
void setDMRParams(unsigned int colorCode);
|
||||
|
|
@ -61,12 +61,6 @@ public:
|
|||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
void setNXDNParams(unsigned int txHang);
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
void setM17Params(unsigned int txHang);
|
||||
#endif
|
||||
#if defined(USE_AX25)
|
||||
void setAX25Params(int rxTwist, unsigned int txDelay, unsigned int slotTime, unsigned int pPersist);
|
||||
#endif
|
||||
void setTransparentDataParams(unsigned int sendFrameType);
|
||||
|
||||
|
|
@ -105,15 +99,9 @@ public:
|
|||
#if defined(USE_NXDN)
|
||||
unsigned int readNXDNData(unsigned char* data);
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
unsigned int readM17Data(unsigned char* data);
|
||||
#endif
|
||||
#if defined(USE_FM)
|
||||
unsigned int readFMData(unsigned char* data);
|
||||
#endif
|
||||
#if defined(USE_AX25)
|
||||
unsigned int readAX25Data(unsigned char* data);
|
||||
#endif
|
||||
|
||||
#if defined(USE_DSTAR)
|
||||
bool hasDStarSpace() const;
|
||||
|
|
@ -131,18 +119,12 @@ public:
|
|||
#if defined(USE_NXDN)
|
||||
bool hasNXDNSpace() const;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
bool hasM17Space() const;
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
bool hasPOCSAGSpace() const;
|
||||
#endif
|
||||
#if defined(USE_FM)
|
||||
unsigned int getFMSpace() const;
|
||||
#endif
|
||||
#if defined(USE_AX25)
|
||||
bool hasAX25Space() const;
|
||||
#endif
|
||||
|
||||
bool hasTX() const;
|
||||
bool hasCD() const;
|
||||
|
|
@ -168,18 +150,12 @@ public:
|
|||
#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
|
||||
#if defined(USE_POCSAG)
|
||||
bool writePOCSAGData(const unsigned char* data, unsigned int length);
|
||||
#endif
|
||||
#if defined(USE_FM)
|
||||
bool writeFMData(const unsigned char* data, unsigned int length);
|
||||
#endif
|
||||
#if defined(USE_AX25)
|
||||
bool writeAX25Data(const unsigned char* data, unsigned int length);
|
||||
#endif
|
||||
|
||||
#if defined(USE_DSTAR)
|
||||
bool writeDStarInfo(const char* my1, const char* my2, const char* your, const char* type, const char* reflector);
|
||||
|
|
@ -196,9 +172,6 @@ public:
|
|||
#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
|
||||
#if defined(USE_POCSAG)
|
||||
bool writePOCSAGInfo(unsigned int ric, const std::string& message);
|
||||
#endif
|
||||
|
|
@ -240,9 +213,6 @@ private:
|
|||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
unsigned int m_nxdnTXHang;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
unsigned int m_m17TXHang;
|
||||
#endif
|
||||
bool m_duplex;
|
||||
bool m_rxInvert;
|
||||
|
|
@ -269,17 +239,11 @@ private:
|
|||
#if defined(USE_NXDN)
|
||||
float m_nxdnTXLevel;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
float m_m17TXLevel;
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
float m_pocsagTXLevel;
|
||||
#endif
|
||||
#if defined(USE_FM)
|
||||
float m_fmTXLevel;
|
||||
#endif
|
||||
#if defined(USE_AX25)
|
||||
float m_ax25TXLevel;
|
||||
#endif
|
||||
float m_rfLevel;
|
||||
bool m_useCOSAsLockout;
|
||||
|
|
@ -305,17 +269,11 @@ private:
|
|||
#if defined(USE_NXDN)
|
||||
bool m_nxdnEnabled;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
bool m_m17Enabled;
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
bool m_pocsagEnabled;
|
||||
#endif
|
||||
#if defined(USE_FM)
|
||||
bool m_fmEnabled;
|
||||
#endif
|
||||
#if defined(USE_AX25)
|
||||
bool m_ax25Enabled;
|
||||
#endif
|
||||
int m_rxDCOffset;
|
||||
int m_txDCOffset;
|
||||
|
|
@ -348,20 +306,12 @@ private:
|
|||
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;
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
CRingBuffer<unsigned char> m_txPOCSAGData;
|
||||
#endif
|
||||
#if defined(USE_FM)
|
||||
CRingBuffer<unsigned char> m_rxFMData;
|
||||
CRingBuffer<unsigned char> m_txFMData;
|
||||
#endif
|
||||
#if defined(USE_AX25)
|
||||
CRingBuffer<unsigned char> m_rxAX25Data;
|
||||
CRingBuffer<unsigned char> m_txAX25Data;
|
||||
#endif
|
||||
CRingBuffer<unsigned char> m_rxSerialData;
|
||||
CRingBuffer<unsigned char> m_txSerialData;
|
||||
|
|
@ -387,17 +337,11 @@ private:
|
|||
#if defined(USE_NXDN)
|
||||
unsigned int m_nxdnSpace;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
unsigned int m_m17Space;
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
unsigned int m_pocsagSpace;
|
||||
#endif
|
||||
#if defined(USE_FM)
|
||||
unsigned int m_fmSpace;
|
||||
#endif
|
||||
#if defined(USE_AX25)
|
||||
unsigned int m_ax25Space;
|
||||
#endif
|
||||
bool m_tx;
|
||||
bool m_cd;
|
||||
|
|
@ -405,12 +349,6 @@ private:
|
|||
bool m_error;
|
||||
unsigned char m_mode;
|
||||
HW_TYPE m_hwType;
|
||||
#if defined(USE_AX25)
|
||||
int m_ax25RXTwist;
|
||||
unsigned int m_ax25TXDelay;
|
||||
unsigned int m_ax25SlotTime;
|
||||
unsigned int m_ax25PPersist;
|
||||
#endif
|
||||
#if defined(USE_FM)
|
||||
std::string m_fmCallsign;
|
||||
unsigned int m_fmCallsignSpeed;
|
||||
|
|
|
|||
|
|
@ -87,10 +87,6 @@ REMOTE_COMMAND CRemoteControl::getCommand(const std::string& command)
|
|||
#if defined(USE_NXDN)
|
||||
else if (m_args.at(1U) == "nxdn")
|
||||
m_command = REMOTE_COMMAND::MODE_NXDN;
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
else if (m_args.at(1U) == "m17")
|
||||
m_command = REMOTE_COMMAND::MODE_M17;
|
||||
#endif
|
||||
else
|
||||
reply = "KO";
|
||||
|
|
@ -120,20 +116,10 @@ REMOTE_COMMAND CRemoteControl::getCommand(const std::string& command)
|
|||
m_command = REMOTE_COMMAND::ENABLE_NXDN;
|
||||
else
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
if (m_args.at(1U) == "m17")
|
||||
m_command = REMOTE_COMMAND::ENABLE_M17;
|
||||
else
|
||||
#endif
|
||||
#if defined(USE_FM)
|
||||
if (m_args.at(1U) == "fm")
|
||||
m_command = REMOTE_COMMAND::ENABLE_FM;
|
||||
else
|
||||
#endif
|
||||
#if defined(USE_AX25)
|
||||
if (m_args.at(1U) == "ax25")
|
||||
m_command = REMOTE_COMMAND::ENABLE_AX25;
|
||||
else
|
||||
#endif
|
||||
reply = "KO";
|
||||
} else if (m_args.at(0U) == "disable" && m_args.size() >= DISABLE_ARGS) {
|
||||
|
|
@ -162,20 +148,10 @@ REMOTE_COMMAND CRemoteControl::getCommand(const std::string& command)
|
|||
m_command = REMOTE_COMMAND::DISABLE_NXDN;
|
||||
else
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
if (m_args.at(1U) == "m17")
|
||||
m_command = REMOTE_COMMAND::DISABLE_M17;
|
||||
else
|
||||
#endif
|
||||
#if defined(USE_FM)
|
||||
if (m_args.at(1U) == "fm")
|
||||
m_command = REMOTE_COMMAND::DISABLE_FM;
|
||||
else
|
||||
#endif
|
||||
#if defined(USE_AX25)
|
||||
if (m_args.at(1U) == "ax25")
|
||||
m_command = REMOTE_COMMAND::DISABLE_AX25;
|
||||
else
|
||||
#endif
|
||||
reply = "KO";
|
||||
#if defined(USE_POCSAG)
|
||||
|
|
@ -252,9 +228,6 @@ unsigned int CRemoteControl::getArgCount() const
|
|||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
case REMOTE_COMMAND::MODE_NXDN:
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
case REMOTE_COMMAND::MODE_M17:
|
||||
#endif
|
||||
return (unsigned int)m_args.size() - SET_MODE_ARGS;
|
||||
#if defined(USE_POCSAG)
|
||||
|
|
@ -290,9 +263,6 @@ std::string CRemoteControl::getArgString(unsigned int n) const
|
|||
#endif
|
||||
#if defined(USE_NXDN)
|
||||
case REMOTE_COMMAND::MODE_NXDN:
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
case REMOTE_COMMAND::MODE_M17:
|
||||
#endif
|
||||
n += SET_MODE_ARGS;
|
||||
break;
|
||||
|
|
@ -326,4 +296,3 @@ int CRemoteControl::getArgInt(unsigned int n) const
|
|||
{
|
||||
return ::atoi(getArgString(n).c_str());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -47,9 +47,6 @@ enum class REMOTE_COMMAND {
|
|||
#if defined(USE_NXDN)
|
||||
MODE_NXDN,
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
MODE_M17,
|
||||
#endif
|
||||
#if defined(USE_FM)
|
||||
MODE_FM,
|
||||
#endif
|
||||
|
|
@ -68,15 +65,9 @@ enum class REMOTE_COMMAND {
|
|||
#if defined(USE_NXDN)
|
||||
ENABLE_NXDN,
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
ENABLE_M17,
|
||||
#endif
|
||||
#if defined(USE_FM)
|
||||
ENABLE_FM,
|
||||
#endif
|
||||
#if defined(USE_AX25)
|
||||
ENABLE_AX25,
|
||||
#endif
|
||||
#if defined(USE_DSTAR)
|
||||
DISABLE_DSTAR,
|
||||
#endif
|
||||
|
|
@ -92,15 +83,9 @@ enum class REMOTE_COMMAND {
|
|||
#if defined(USE_NXDN)
|
||||
DISABLE_NXDN,
|
||||
#endif
|
||||
#if defined(USE_M17)
|
||||
DISABLE_M17,
|
||||
#endif
|
||||
#if defined(USE_FM)
|
||||
DISABLE_FM,
|
||||
#endif
|
||||
#if defined(USE_AX25)
|
||||
DISABLE_AX25,
|
||||
#endif
|
||||
#if defined(USE_POCSAG)
|
||||
PAGE,
|
||||
PAGE_BCD,
|
||||
|
|
|
|||
Loading…
Reference in a new issue