Make bleeps optional and timed after the transmission.
This commit is contained in:
parent
fd06781f93
commit
556e6c9366
5 changed files with 40 additions and 11 deletions
|
@ -50,6 +50,7 @@ m_myAddress(),
|
|||
m_myPort(0U),
|
||||
m_rfHangTime(60U),
|
||||
m_netHangTime(60U),
|
||||
m_bleep(true),
|
||||
m_debug(false),
|
||||
m_daemon(false),
|
||||
m_rxFrequency(0U),
|
||||
|
@ -179,6 +180,8 @@ bool CConf::read()
|
|||
m_ysfRFHangTime = m_fcsRFHangTime = m_rfHangTime = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "NetHangTime") == 0)
|
||||
m_ysfNetHangTime = m_fcsNetHangTime = m_netHangTime = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "Bleep") == 0)
|
||||
m_bleep = ::atoi(value) == 1;
|
||||
else if (::strcmp(key, "Debug") == 0)
|
||||
m_debug = ::atoi(value) == 1;
|
||||
else if (::strcmp(key, "Daemon") == 0)
|
||||
|
@ -331,6 +334,11 @@ unsigned int CConf::getMyPort() const
|
|||
return m_myPort;
|
||||
}
|
||||
|
||||
bool CConf::getBleep() const
|
||||
{
|
||||
return m_bleep;
|
||||
}
|
||||
|
||||
bool CConf::getDebug() const
|
||||
{
|
||||
return m_debug;
|
||||
|
|
|
@ -58,6 +58,7 @@ public:
|
|||
unsigned int getRptPort() const;
|
||||
std::string getMyAddress() const;
|
||||
unsigned int getMyPort() const;
|
||||
bool getBleep() const;
|
||||
bool getDebug() const;
|
||||
bool getDaemon() const;
|
||||
|
||||
|
@ -105,6 +106,7 @@ private:
|
|||
unsigned int m_myPort;
|
||||
unsigned int m_rfHangTime;
|
||||
unsigned int m_netHangTime;
|
||||
bool m_bleep;
|
||||
bool m_debug;
|
||||
bool m_daemon;
|
||||
|
||||
|
|
|
@ -216,6 +216,7 @@ int CDGIdGateway::run()
|
|||
}
|
||||
|
||||
unsigned int currentDGId = 0U;
|
||||
bool fromRF = false;
|
||||
|
||||
CDGIdNetwork* dgIdNetwork[100U];
|
||||
for (unsigned int i = 0U; i < 100U; i++)
|
||||
|
@ -397,6 +398,7 @@ int CDGIdGateway::run()
|
|||
createGPS();
|
||||
|
||||
CTimer inactivityTimer(1000U);
|
||||
CTimer bleepTimer(1000U, 1U);
|
||||
|
||||
CStopWatch stopWatch;
|
||||
stopWatch.start();
|
||||
|
@ -438,6 +440,7 @@ int CDGIdGateway::run()
|
|||
LogMessage("DG-ID set to %u (%s) via RF", dgId, desc.c_str());
|
||||
currentDGId = dgId;
|
||||
state = DS_NOTLINKED;
|
||||
fromRF = true;
|
||||
}
|
||||
|
||||
if (m_gps != NULL)
|
||||
|
@ -464,10 +467,8 @@ int CDGIdGateway::run()
|
|||
if ((buffer[34U] & 0x01U) == 0x01U) {
|
||||
if (m_gps != NULL)
|
||||
m_gps->reset();
|
||||
if (nPips > 0U) {
|
||||
sendPips(nPips);
|
||||
nPips = 0U;
|
||||
}
|
||||
if (nPips > 0U && fromRF)
|
||||
bleepTimer.start();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -493,6 +494,7 @@ int CDGIdGateway::run()
|
|||
LogMessage("DG-ID set to %u (%s) via Network", i, desc.c_str());
|
||||
currentDGId = i;
|
||||
state = DS_LINKED;
|
||||
fromRF = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -526,14 +528,25 @@ int CDGIdGateway::run()
|
|||
state = DS_NOTLINKED;
|
||||
currentDGId = 0U;
|
||||
inactivityTimer.stop();
|
||||
sendPips(2U);
|
||||
|
||||
if (fromRF) {
|
||||
sendPips(2U);
|
||||
fromRF = false;
|
||||
}
|
||||
}
|
||||
|
||||
bleepTimer.clock(ms);
|
||||
if (bleepTimer.isRunning() && bleepTimer.hasExpired()) {
|
||||
sendPips(nPips);
|
||||
bleepTimer.stop();
|
||||
nPips = 0U;
|
||||
}
|
||||
|
||||
if (dgIdNetwork[currentDGId] != NULL) {
|
||||
DGID_STATUS netState = dgIdNetwork[currentDGId]->getStatus();
|
||||
if (state != DS_LINKED && netState == DS_LINKED)
|
||||
if (fromRF && state != DS_LINKED && netState == DS_LINKED)
|
||||
nPips = 1U;
|
||||
else if (state == DS_LINKED && netState != DS_LINKED)
|
||||
else if (fromRF && state == DS_LINKED && netState != DS_LINKED)
|
||||
nPips = 3U;
|
||||
state = netState;
|
||||
}
|
||||
|
@ -665,5 +678,10 @@ std::string CDGIdGateway::calculateLocator()
|
|||
|
||||
void CDGIdGateway::sendPips(unsigned int n)
|
||||
{
|
||||
LogMessage("*** %u bleep!", n);
|
||||
if (n == 0U)
|
||||
return;
|
||||
|
||||
bool bleep = m_conf.getBleep();
|
||||
if (bleep)
|
||||
LogMessage("*** %u bleep!", n);
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[General]
|
||||
Callsign=G9BF
|
||||
Callsign=G4KLX
|
||||
Suffix=RPT
|
||||
# Suffix=ND
|
||||
Id=1234567
|
||||
|
@ -9,6 +9,7 @@ LocalAddress=127.0.0.1
|
|||
LocalPort=4200
|
||||
RFHangTime=120
|
||||
NetHangTime=120
|
||||
Bleep=1
|
||||
Debug=0
|
||||
Daemon=0
|
||||
|
||||
|
@ -134,7 +135,7 @@ Debug=0
|
|||
[DGId=55]
|
||||
# YCS Reflector YCS310 (DG-ID 80)
|
||||
Type=YCS
|
||||
Static=1
|
||||
Static=0
|
||||
Name=US-C4FM-NA
|
||||
Local=42025
|
||||
DGId=80
|
||||
|
|
|
@ -19,6 +19,6 @@
|
|||
#if !defined(VERSION_H)
|
||||
#define VERSION_H
|
||||
|
||||
const char* VERSION = "20200922";
|
||||
const char* VERSION = "20200923";
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue