mirror of
https://github.com/ShaYmez/MMDVM_CM.git
synced 2025-05-28 03:52:28 -04:00
Add XLXHosts support to P252DMR and re-link to XLX after DMR timeout
This commit is contained in:
parent
8b35da0c3d
commit
a3f746ddfa
@ -329,8 +329,9 @@ void CDMRNetwork::close()
|
||||
m_timeoutTimer.stop();
|
||||
}
|
||||
|
||||
void CDMRNetwork::clock(unsigned int ms)
|
||||
bool CDMRNetwork::clock(unsigned int ms)
|
||||
{
|
||||
bool r = false;
|
||||
m_delayBuffers[1U]->clock(ms);
|
||||
m_delayBuffers[2U]->clock(ms);
|
||||
|
||||
@ -341,7 +342,7 @@ void CDMRNetwork::clock(unsigned int ms)
|
||||
if (ret) {
|
||||
ret = writeLogin();
|
||||
if (!ret)
|
||||
return;
|
||||
return true;
|
||||
|
||||
m_status = WAITING_LOGIN;
|
||||
m_timeoutTimer.start();
|
||||
@ -350,7 +351,7 @@ void CDMRNetwork::clock(unsigned int ms)
|
||||
m_retryTimer.start();
|
||||
}
|
||||
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
|
||||
in_addr address;
|
||||
@ -360,7 +361,7 @@ void CDMRNetwork::clock(unsigned int ms)
|
||||
LogError("DMR, Socket has failed, retrying connection to the master");
|
||||
close();
|
||||
open();
|
||||
return;
|
||||
return true;
|
||||
}
|
||||
|
||||
// if (m_debug && length > 0)
|
||||
@ -386,7 +387,7 @@ void CDMRNetwork::clock(unsigned int ms)
|
||||
LogError("DMR, Login to the master has failed, retrying network ...");
|
||||
close();
|
||||
open();
|
||||
return;
|
||||
return true;
|
||||
}
|
||||
} else if (::memcmp(m_buffer, "RPTACK", 6U) == 0) {
|
||||
switch (m_status) {
|
||||
@ -430,6 +431,7 @@ void CDMRNetwork::clock(unsigned int ms)
|
||||
LogError("DMR, Master is closing down");
|
||||
close();
|
||||
open();
|
||||
r = true;
|
||||
} else if (::memcmp(m_buffer, "MSTPONG", 7U) == 0) {
|
||||
m_timeoutTimer.start();
|
||||
} else if (::memcmp(m_buffer, "RPTSBKN", 7U) == 0) {
|
||||
@ -469,7 +471,9 @@ void CDMRNetwork::clock(unsigned int ms)
|
||||
LogError("DMR, Connection to the master has timed out, retrying connection");
|
||||
close();
|
||||
open();
|
||||
r = true;
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
||||
void CDMRNetwork::reset(unsigned int slotNo)
|
||||
|
@ -52,7 +52,7 @@ public:
|
||||
|
||||
bool wantsBeacon();
|
||||
|
||||
void clock(unsigned int ms);
|
||||
bool clock(unsigned int ms);
|
||||
|
||||
void reset(unsigned int slotNo);
|
||||
|
||||
|
@ -298,6 +298,10 @@ int CP252DMR::run()
|
||||
std::string p25_localAddress = m_conf.getP25LocalAddress();
|
||||
unsigned int p25_localPort = m_conf.getP25LocalPort();
|
||||
bool p25_debug = m_conf.getP25NetworkDebug();
|
||||
|
||||
std::string fileName = m_conf.getDMRXLXFile();
|
||||
m_xlxReflectors = new CReflectors(fileName, 60U);
|
||||
m_xlxReflectors->load();
|
||||
|
||||
m_p25Network = new CP25Network(p25_localAddress, p25_localPort, p25_dstAddress, p25_dstPort, m_callsign, p25_debug);
|
||||
|
||||
@ -788,7 +792,9 @@ int CP252DMR::run()
|
||||
pollTimer.start();
|
||||
}
|
||||
|
||||
m_dmrNetwork->clock(ms);
|
||||
if(m_dmrNetwork->clock(ms)){
|
||||
m_xlxConnected = false;
|
||||
}
|
||||
|
||||
if (m_xlxReflectors != NULL)
|
||||
m_xlxReflectors->clock(ms);
|
||||
|
Loading…
x
Reference in New Issue
Block a user