1
0
Fork 0

Add the desciption field to the APRS data for this node/repeater.

ycs232-kbc
Jonathan Naylor 7 years ago
parent 6cd839eb80
commit 2f41b0eaab

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2010-2014,2016 by Jonathan Naylor G4KLX * Copyright (C) 2010-2014,2016,2017 by Jonathan Naylor G4KLX
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -34,7 +34,8 @@ m_txFrequency(0U),
m_rxFrequency(0U), m_rxFrequency(0U),
m_latitude(0.0F), m_latitude(0.0F),
m_longitude(0.0F), m_longitude(0.0F),
m_height(0) m_height(0),
m_desc()
{ {
assert(!callsign.empty()); assert(!callsign.empty());
assert(!password.empty()); assert(!password.empty());
@ -53,13 +54,14 @@ CAPRSWriter::~CAPRSWriter()
{ {
} }
void CAPRSWriter::setInfo(unsigned int txFrequency, unsigned int rxFrequency, float latitude, float longitude, int height) void CAPRSWriter::setInfo(unsigned int txFrequency, unsigned int rxFrequency, float latitude, float longitude, int height, const std::string& desc)
{ {
m_txFrequency = txFrequency; m_txFrequency = txFrequency;
m_rxFrequency = rxFrequency; m_rxFrequency = rxFrequency;
m_latitude = latitude; m_latitude = latitude;
m_longitude = longitude; m_longitude = longitude;
m_height = height; m_height = height;
m_desc = desc;
} }
bool CAPRSWriter::open() bool CAPRSWriter::open()
@ -147,15 +149,15 @@ void CAPRSWriter::sendIdFrames()
if (m_latitude == 0.0F && m_longitude == 0.0F) if (m_latitude == 0.0F && m_longitude == 0.0F)
return; return;
char desc[100U]; char desc[200U];
if (m_txFrequency != 0U) { if (m_txFrequency != 0U) {
float offset = float(int(m_rxFrequency) - int(m_txFrequency)) / 1000000.0F; float offset = float(int(m_rxFrequency) - int(m_txFrequency)) / 1000000.0F;
::sprintf(desc, "MMDVM Voice %.5LfMHz %c%.4lfMHz", ::sprintf(desc, "MMDVM Voice %.5LfMHz %c%.4lfMHz%s%s",
(long double)(m_txFrequency) / 1000000.0F, (long double)(m_txFrequency) / 1000000.0F,
offset < 0.0F ? '-' : '+', offset < 0.0F ? '-' : '+',
::fabs(offset)); ::fabs(offset), m_desc.empty() ? "" : ", ", m_desc.c_str());
} else { } else {
::strcpy(desc, "MMDVM Voice"); ::sprintf(desc, "MMDVM Voice%s%s", m_desc.empty() ? "" : ", ", m_desc.c_str());
} }
const char* band = "4m"; const char* band = "4m";

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2010,2011,2012,2016 by Jonathan Naylor G4KLX * Copyright (C) 2010,2011,2012,2016,2017 by Jonathan Naylor G4KLX
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -31,7 +31,7 @@ public:
bool open(); bool open();
void setInfo(unsigned int txFrequency, unsigned int rxFrequency, float latitude, float longitude, int height); void setInfo(unsigned int txFrequency, unsigned int rxFrequency, float latitude, float longitude, int height, const std::string& desc);
void write(const unsigned char* source, const char* type, unsigned char radio, float latitude, float longitude); void write(const unsigned char* source, const char* type, unsigned char radio, float latitude, float longitude);
@ -49,6 +49,7 @@ private:
float m_latitude; float m_latitude;
float m_longitude; float m_longitude;
int m_height; int m_height;
std::string m_desc;
void sendIdFrames(); void sendIdFrames();
}; };

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2016 by Jonathan Naylor G4KLX * Copyright (C) 2016,2017 by Jonathan Naylor G4KLX
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -49,9 +49,9 @@ CGPS::~CGPS()
delete[] m_buffer; delete[] m_buffer;
} }
void CGPS::setInfo(unsigned int txFrequency, unsigned int rxFrequency, float latitude, float longitude, int height) void CGPS::setInfo(unsigned int txFrequency, unsigned int rxFrequency, float latitude, float longitude, int height, const std::string& desc)
{ {
m_writer.setInfo(txFrequency, rxFrequency, latitude, longitude, height); m_writer.setInfo(txFrequency, rxFrequency, latitude, longitude, height, desc);
} }
bool CGPS::open() bool CGPS::open()

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2016 by Jonathan Naylor G4KLX * Copyright (C) 2016,2017 by Jonathan Naylor G4KLX
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -28,7 +28,7 @@ public:
CGPS(const std::string& callsign, const std::string& suffix, const std::string& password, const std::string& address, unsigned int port); CGPS(const std::string& callsign, const std::string& suffix, const std::string& password, const std::string& address, unsigned int port);
~CGPS(); ~CGPS();
void setInfo(unsigned int txFrequency, unsigned int rxFrequency, float latitude, float longitude, int height); void setInfo(unsigned int txFrequency, unsigned int rxFrequency, float latitude, float longitude, int height, const std::string& desc);
bool open(); bool open();

@ -509,8 +509,9 @@ void CYSFGateway::createGPS()
float latitude = m_conf.getLatitude(); float latitude = m_conf.getLatitude();
float longitude = m_conf.getLongitude(); float longitude = m_conf.getLongitude();
int height = m_conf.getHeight(); int height = m_conf.getHeight();
std::string desc = m_conf.getDescription();
m_gps->setInfo(txFrequency, rxFrequency, latitude, longitude, height); m_gps->setInfo(txFrequency, rxFrequency, latitude, longitude, height, desc);
bool ret = m_gps->open(); bool ret = m_gps->open();
if (!ret) { if (!ret) {

Loading…
Cancel
Save