Merge pull request #2 from F4FXL/CallsignSuffix

Callsign suffix
pull/149/head
Napont Kitiwiriyakul 6 years ago committed by GitHub
commit a8864920e9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -61,31 +61,38 @@ CCallsign::CCallsign(const char *sz, uint32 dmrid)
// dmrid ok ?
if ( m_uiDmrid == 0 )
{
g_DmridDir.Lock();
{
m_uiDmrid = g_DmridDir.FindDmrid(*this);
g_DmridDir.Lock();
{
m_uiDmrid = g_DmridDir.FindDmrid(*this);
}
g_DmridDir.Unlock();
}
}
else if ( m_uiDmrid != 0 )
{
g_DmridDir.Lock();
{
const CCallsign *callsign = g_DmridDir.FindCallsign(m_uiDmrid);
if ( callsign != NULL )
{
::memcpy(m_Callsign, callsign->m_Callsign, sizeof(m_Callsign));
}
}
g_DmridDir.Unlock();
g_DmridDir.Lock();
{
const CCallsign *callsign = g_DmridDir.FindCallsign(m_uiDmrid);
if ( callsign != NULL )
{
::memcpy(m_Callsign, callsign->m_Callsign, sizeof(m_Callsign));
#if (REMOVE_CALLSIGN_SUFFIX == 1)
::memcpy(m_Suffix, callsign->m_Suffix, sizeof(m_Suffix));
#endif
}
}
g_DmridDir.Unlock();
}
}
CCallsign::CCallsign(const CCallsign &callsign)
{
::memcpy(m_Callsign, callsign.m_Callsign, sizeof(m_Callsign));
#if (REMOVE_CALLSIGN_SUFFIX == 1)
::memset(m_Suffix, ' ', sizeof(m_Suffix));
#else
::memcpy(m_Suffix, callsign.m_Suffix, sizeof(m_Suffix));
#endif
m_Module = callsign.m_Module;
m_uiDmrid = callsign.m_uiDmrid;
}
@ -160,9 +167,9 @@ void CCallsign::SetCallsign(const char *sz, bool UpdateDmrid)
// and update dmrid
if ( UpdateDmrid )
{
g_DmridDir.Lock();
{
m_uiDmrid = g_DmridDir.FindDmrid(*this);
g_DmridDir.Lock();
{
m_uiDmrid = g_DmridDir.FindDmrid(*this);
}
g_DmridDir.Unlock();
}
@ -187,9 +194,9 @@ void CCallsign::SetCallsign(const uint8 *buffer, int len, bool UpdateDmrid)
}
if ( UpdateDmrid )
{
g_DmridDir.Lock();
{
m_uiDmrid = g_DmridDir.FindDmrid(*this);
g_DmridDir.Lock();
{
m_uiDmrid = g_DmridDir.FindDmrid(*this);
}
g_DmridDir.Unlock();
}
@ -200,15 +207,15 @@ void CCallsign::SetDmrid(uint32 dmrid, bool UpdateCallsign)
m_uiDmrid = dmrid;
if ( UpdateCallsign )
{
g_DmridDir.Lock();
{
const CCallsign *callsign = g_DmridDir.FindCallsign(dmrid);
if ( callsign != NULL )
{
::memcpy(m_Callsign, callsign->m_Callsign, sizeof(m_Callsign));
}
}
g_DmridDir.Unlock();
g_DmridDir.Lock();
{
const CCallsign *callsign = g_DmridDir.FindCallsign(dmrid);
if ( callsign != NULL )
{
::memcpy(m_Callsign, callsign->m_Callsign, sizeof(m_Callsign));
}
}
g_DmridDir.Unlock();
}
}
@ -229,14 +236,18 @@ void CCallsign::SetModule(char c)
void CCallsign::SetSuffix(const char *sz)
{
::memset(m_Suffix, ' ', sizeof(m_Suffix));
#if (REMOVE_CALLSIGN_SUFFIX == 1)
::memcpy(m_Suffix, sz, MIN(strlen(sz), sizeof(m_Suffix)));
#endif
}
void CCallsign::SetSuffix(const uint8 *buffer, int len)
{
len = MIN(len, sizeof(m_Suffix));
::memset(m_Suffix, ' ', sizeof(m_Suffix));
#if (REMOVE_CALLSIGN_SUFFIX == 0)
len = MIN(len, sizeof(m_Suffix));
::memcpy(m_Suffix, buffer, len);
#endif
}
////////////////////////////////////////////////////////////////////////////////////////
@ -325,17 +336,17 @@ bool CCallsign::operator ==(const CCallsign &callsign) const
CCallsign::operator const char *() const
{
char *sz = (char *)(const char *)m_sz;
// empty
::memset(sz, 0, sizeof(m_sz));
char *sz = (char *)(const char *)m_sz;
// empty
::memset(sz, 0, sizeof(m_sz));
// callsign
sz[CALLSIGN_LEN] = 0;
::memcpy(sz, m_Callsign, sizeof(m_Callsign));
// module
if ( HasModule() )
{
sz[sizeof(m_Callsign)] = m_Module;
sz[sizeof(m_Callsign)] = m_Module;
}
// suffix
if ( HasSuffix() )

@ -68,6 +68,7 @@ CDvHeaderPacket::CDvHeaderPacket(uint32 my, const CCallsign &ur, const CCallsign
m_csRPT1 = rpt1;
m_csRPT2 = rpt2;
m_csMY = CCallsign("", my);
m_csMY.SetSuffix("DMR");
}
// YSF constructor
@ -83,6 +84,7 @@ CDvHeaderPacket::CDvHeaderPacket(const CCallsign &my, const CCallsign &ur, const
m_csRPT1 = rpt1;
m_csRPT2 = rpt2;
m_csMY = my;
m_csMY.SetSuffix("YSF");
}

@ -158,6 +158,9 @@
#define YSFNODEDB_PATH "/xlxd/ysfnode.dat" // local file path
#define YSFNODEDB_REFRESH_RATE 180 // in minutes
//Set to 1 to get rid of Suffixes for legal reasons e.g. LX
#define REMOVE_CALLSIGN_SUFFIX 0
// xml & json reporting -----------------------------------------
#define LASTHEARD_USERS_MAX_SIZE 100

Loading…
Cancel
Save

Powered by TurnKey Linux.