Add APRS Symbol option (based on my PR https://github.com/g4klx/DMRGateway/pull/122)
This commit is contained in:
parent
471d031a08
commit
e3dd9f5321
7 changed files with 26 additions and 7 deletions
|
@ -35,6 +35,7 @@ m_latitude(0.0F),
|
|||
m_longitude(0.0F),
|
||||
m_height(0),
|
||||
m_desc(),
|
||||
m_symbol(),
|
||||
m_suffix(suffix),
|
||||
m_aprsAddr(),
|
||||
m_aprsAddrLen(0U),
|
||||
|
@ -63,11 +64,12 @@ CAPRSWriter::~CAPRSWriter()
|
|||
{
|
||||
}
|
||||
|
||||
void CAPRSWriter::setInfo(unsigned int txFrequency, unsigned int rxFrequency, const std::string& desc)
|
||||
void CAPRSWriter::setInfo(unsigned int txFrequency, unsigned int rxFrequency, const std::string& desc, const std::string& symbol)
|
||||
{
|
||||
m_txFrequency = txFrequency;
|
||||
m_rxFrequency = rxFrequency;
|
||||
m_desc = desc;
|
||||
m_symbol = symbol;
|
||||
}
|
||||
|
||||
void CAPRSWriter::setStaticLocation(float latitude, float longitude, int height)
|
||||
|
@ -268,17 +270,21 @@ void CAPRSWriter::sendIdFrameFixed()
|
|||
::sprintf(lon, "%08.2lf", longitude);
|
||||
|
||||
std::string server = m_callsign;
|
||||
std::string symbol = m_symbol;
|
||||
size_t pos = server.find_first_of('-');
|
||||
if (pos == std::string::npos)
|
||||
server.append("-S");
|
||||
else
|
||||
server.append("S");
|
||||
|
||||
if (symbol.empty())
|
||||
symbol.append("D&");
|
||||
|
||||
char output[500U];
|
||||
::sprintf(output, "%s>APDG03,TCPIP*,qAC,%s:!%s%cD%s%c&/A=%06.0f%s %s\r\n",
|
||||
::sprintf(output, "%s>APDG03,TCPIP*,qAC,%s:!%s%c%c%s%c%c/A=%06.0f%s %s\r\n",
|
||||
m_callsign.c_str(), server.c_str(),
|
||||
lat, (m_latitude < 0.0F) ? 'S' : 'N',
|
||||
lon, (m_longitude < 0.0F) ? 'W' : 'E',
|
||||
lat, (m_latitude < 0.0F) ? 'S' : 'N', symbol[0],
|
||||
lon, (m_longitude < 0.0F) ? 'W' : 'E', symbol[1],
|
||||
float(m_height) * 3.28F, band, desc);
|
||||
|
||||
if (m_debug)
|
||||
|
|
|
@ -47,7 +47,7 @@ public:
|
|||
|
||||
bool open();
|
||||
|
||||
void setInfo(unsigned int txFrequency, unsigned int rxFrequency, const std::string& desc);
|
||||
void setInfo(unsigned int txFrequency, unsigned int rxFrequency, const std::string& desc, const std::string& symbol);
|
||||
|
||||
void setStaticLocation(float latitude, float longitude, int height);
|
||||
|
||||
|
@ -69,6 +69,7 @@ private:
|
|||
float m_longitude;
|
||||
int m_height;
|
||||
std::string m_desc;
|
||||
std::string m_symbol;
|
||||
std::string m_suffix;
|
||||
sockaddr_storage m_aprsAddr;
|
||||
unsigned int m_aprsAddrLen;
|
||||
|
|
|
@ -71,6 +71,7 @@ m_aprsAddress(),
|
|||
m_aprsPort(0U),
|
||||
m_aprsSuffix(),
|
||||
m_aprsDescription(),
|
||||
m_aprsSymbol(),
|
||||
m_ysfNetHosts(),
|
||||
m_ysfRFHangTime(60U),
|
||||
m_ysfNetHangTime(60U),
|
||||
|
@ -230,6 +231,8 @@ bool CConf::read()
|
|||
m_aprsSuffix = value;
|
||||
else if (::strcmp(key, "Description") == 0)
|
||||
m_aprsDescription = value;
|
||||
else if (::strcmp(key, "Symbol") == 0)
|
||||
m_aprsSymbol = value;
|
||||
} else if (section == SECTION_YSF_NETWORK) {
|
||||
if (::strcmp(key, "Hosts") == 0)
|
||||
m_ysfNetHosts = value;
|
||||
|
@ -450,6 +453,11 @@ std::string CConf::getAPRSDescription() const
|
|||
return m_aprsDescription;
|
||||
}
|
||||
|
||||
std::string CConf::getAPRSSymbol() const
|
||||
{
|
||||
return m_aprsSymbol;
|
||||
}
|
||||
|
||||
std::string CConf::getYSFNetHosts() const
|
||||
{
|
||||
return m_ysfNetHosts;
|
||||
|
|
|
@ -84,6 +84,7 @@ public:
|
|||
unsigned short getAPRSPort() const;
|
||||
std::string getAPRSSuffix() const;
|
||||
std::string getAPRSDescription() const;
|
||||
std::string getAPRSSymbol() const;
|
||||
|
||||
// The YSF Network section
|
||||
std::string getYSFNetHosts() const;
|
||||
|
@ -130,6 +131,7 @@ private:
|
|||
unsigned short m_aprsPort;
|
||||
std::string m_aprsSuffix;
|
||||
std::string m_aprsDescription;
|
||||
std::string m_aprsSymbol;
|
||||
|
||||
std::string m_ysfNetHosts;
|
||||
unsigned int m_ysfRFHangTime;
|
||||
|
|
|
@ -614,8 +614,9 @@ void CDGIdGateway::createGPS()
|
|||
unsigned int txFrequency = m_conf.getTxFrequency();
|
||||
unsigned int rxFrequency = m_conf.getRxFrequency();
|
||||
std::string desc = m_conf.getAPRSDescription();
|
||||
std::string symbol = m_conf.getAPRSSymbol();
|
||||
|
||||
m_writer->setInfo(txFrequency, rxFrequency, desc);
|
||||
m_writer->setInfo(txFrequency, rxFrequency, desc, symbol);
|
||||
|
||||
bool enabled = m_conf.getGPSDEnabled();
|
||||
if (enabled) {
|
||||
|
|
|
@ -36,6 +36,7 @@ Address=127.0.0.1
|
|||
Port=8673
|
||||
Description=APRS Description
|
||||
Suffix=Y
|
||||
# Symbol=/r
|
||||
|
||||
[YSF Network]
|
||||
Hosts=./YSFHosts.txt
|
||||
|
|
|
@ -19,6 +19,6 @@
|
|||
#if !defined(VERSION_H)
|
||||
#define VERSION_H
|
||||
|
||||
const char* VERSION = "20220603";
|
||||
const char* VERSION = "20230212";
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue