mirror of
https://github.com/g4klx/MMDVMHost
synced 2025-12-24 01:25:41 +08:00
Send the CW Id after a DMR transmission.
This commit is contained in:
@@ -306,6 +306,8 @@ int CMMDVMHost::run()
|
|||||||
|
|
||||||
setMode(MODE_IDLE);
|
setMode(MODE_IDLE);
|
||||||
|
|
||||||
|
LogMessage("MMDVMHost is running");
|
||||||
|
|
||||||
while (!m_killed) {
|
while (!m_killed) {
|
||||||
bool lockout = m_modem->hasLockout();
|
bool lockout = m_modem->hasLockout();
|
||||||
if (lockout && m_mode != MODE_LOCKOUT)
|
if (lockout && m_mode != MODE_LOCKOUT)
|
||||||
@@ -498,7 +500,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->hasTX()) {
|
||||||
setMode(MODE_DMR);
|
setMode(MODE_DMR);
|
||||||
dmrBeaconTimer.start();
|
dmrBeaconTimer.start();
|
||||||
}
|
}
|
||||||
@@ -526,6 +528,7 @@ int CMMDVMHost::run()
|
|||||||
|
|
||||||
m_cwIdTimer.clock(ms);
|
m_cwIdTimer.clock(ms);
|
||||||
if (m_cwIdTimer.isRunning() && m_cwIdTimer.hasExpired()) {
|
if (m_cwIdTimer.isRunning() && m_cwIdTimer.hasExpired()) {
|
||||||
|
if (m_mode == MODE_IDLE && !m_modem->hasTX())
|
||||||
m_modem->sendCWId(m_callsign);
|
m_modem->sendCWId(m_callsign);
|
||||||
m_cwIdTimer.start();
|
m_cwIdTimer.start();
|
||||||
}
|
}
|
||||||
@@ -798,7 +801,6 @@ void CMMDVMHost::setMode(unsigned char mode)
|
|||||||
m_modem->setMode(MODE_DSTAR);
|
m_modem->setMode(MODE_DSTAR);
|
||||||
m_mode = MODE_DSTAR;
|
m_mode = MODE_DSTAR;
|
||||||
m_modeTimer.start();
|
m_modeTimer.start();
|
||||||
m_cwIdTimer.stop();
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MODE_DMR:
|
case MODE_DMR:
|
||||||
@@ -811,7 +813,6 @@ void CMMDVMHost::setMode(unsigned char mode)
|
|||||||
}
|
}
|
||||||
m_mode = MODE_DMR;
|
m_mode = MODE_DMR;
|
||||||
m_modeTimer.start();
|
m_modeTimer.start();
|
||||||
m_cwIdTimer.stop();
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MODE_YSF:
|
case MODE_YSF:
|
||||||
@@ -822,7 +823,6 @@ void CMMDVMHost::setMode(unsigned char mode)
|
|||||||
m_modem->setMode(MODE_YSF);
|
m_modem->setMode(MODE_YSF);
|
||||||
m_mode = MODE_YSF;
|
m_mode = MODE_YSF;
|
||||||
m_modeTimer.start();
|
m_modeTimer.start();
|
||||||
m_cwIdTimer.stop();
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MODE_LOCKOUT:
|
case MODE_LOCKOUT:
|
||||||
@@ -868,10 +868,13 @@ void CMMDVMHost::setMode(unsigned char mode)
|
|||||||
m_dmrTXTimer.stop();
|
m_dmrTXTimer.stop();
|
||||||
}
|
}
|
||||||
m_modem->setMode(MODE_IDLE);
|
m_modem->setMode(MODE_IDLE);
|
||||||
|
if (m_mode == MODE_ERROR || m_mode == MODE_LOCKOUT || m_mode == MODE_DMR) {
|
||||||
|
m_modem->sendCWId(m_callsign);
|
||||||
|
m_cwIdTimer.start();
|
||||||
|
}
|
||||||
m_display->setIdle();
|
m_display->setIdle();
|
||||||
m_mode = MODE_IDLE;
|
m_mode = MODE_IDLE;
|
||||||
m_modeTimer.stop();
|
m_modeTimer.stop();
|
||||||
m_cwIdTimer.start();
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user