mirror of
https://github.com/g4klx/MMDVMHost
synced 2025-12-23 16:55:52 +08:00
Clean up DMR roaming beacon handling.
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user