Clean up DMR roaming beacon handling.

This commit is contained in:
Jonathan Naylor
2016-02-04 18:11:29 +00:00
parent 9259421147
commit 87322b631b
2 changed files with 12 additions and 8 deletions

View File

@@ -310,7 +310,7 @@ int CMMDVMHost::run()
if (m_dmrNetwork != NULL) { if (m_dmrNetwork != NULL) {
bool run = m_dmrNetwork->wantsBeacon(); bool run = m_dmrNetwork->wantsBeacon();
if (dmrBeaconsEnabled && run && m_mode == MODE_IDLE) { if (dmrBeaconsEnabled && run && m_mode == MODE_IDLE) {
m_modem->writeDMRStart(true); setMode(MODE_DMR, false);
dmrBeaconTimer.start(); dmrBeaconTimer.start();
} }
} }
@@ -332,8 +332,8 @@ int CMMDVMHost::run()
dmrBeaconTimer.clock(ms); dmrBeaconTimer.clock(ms);
if (dmrBeaconTimer.isRunning() && dmrBeaconTimer.hasExpired()) { if (dmrBeaconTimer.isRunning() && dmrBeaconTimer.hasExpired()) {
setMode(MODE_IDLE, false);
dmrBeaconTimer.stop(); dmrBeaconTimer.stop();
m_modem->writeDMRStart(false);
} }
if (ms < 5U) { if (ms < 5U) {
@@ -521,14 +521,15 @@ void CMMDVMHost::createDisplay()
} }
} }
void CMMDVMHost::setMode(unsigned char mode) void CMMDVMHost::setMode(unsigned char mode, bool logging)
{ {
assert(m_modem != NULL); assert(m_modem != NULL);
assert(m_display != NULL); assert(m_display != NULL);
switch (mode) { switch (mode) {
case MODE_DSTAR: case MODE_DSTAR:
LogMessage("Mode set to D-Star"); if (logging)
LogMessage("Mode set to D-Star");
if (m_dmrNetwork != NULL) if (m_dmrNetwork != NULL)
m_dmrNetwork->enable(false); m_dmrNetwork->enable(false);
m_display->setDStar(); m_display->setDStar();
@@ -538,7 +539,8 @@ void CMMDVMHost::setMode(unsigned char mode)
break; break;
case MODE_DMR: case MODE_DMR:
LogMessage("Mode set to DMR"); if (logging)
LogMessage("Mode set to DMR");
if (m_dstarNetwork != NULL) if (m_dstarNetwork != NULL)
m_dstarNetwork->enable(false); m_dstarNetwork->enable(false);
m_display->setDMR(); m_display->setDMR();
@@ -548,7 +550,8 @@ void CMMDVMHost::setMode(unsigned char mode)
break; break;
case MODE_YSF: case MODE_YSF:
LogMessage("Mode set to System Fusion"); if (logging)
LogMessage("Mode set to System Fusion");
if (m_dstarNetwork != NULL) if (m_dstarNetwork != NULL)
m_dstarNetwork->enable(false); m_dstarNetwork->enable(false);
if (m_dmrNetwork != NULL) if (m_dmrNetwork != NULL)
@@ -560,7 +563,8 @@ void CMMDVMHost::setMode(unsigned char mode)
break; break;
default: default:
LogMessage("Mode set to Idle"); if (logging)
LogMessage("Mode set to Idle");
if (m_dstarNetwork != NULL) if (m_dstarNetwork != NULL)
m_dstarNetwork->enable(true); m_dstarNetwork->enable(true);
if (m_dmrNetwork != NULL) if (m_dmrNetwork != NULL)

View File

@@ -54,7 +54,7 @@ private:
bool createDMRNetwork(); bool createDMRNetwork();
void createDisplay(); void createDisplay();
void setMode(unsigned char mode); void setMode(unsigned char mode, bool logging = true);
}; };
#endif #endif