Make the use of gpsd optional.

This commit is contained in:
Jonathan Naylor 2020-06-21 17:43:31 +01:00
parent 0659500d43
commit e41762c0a2
3 changed files with 15 additions and 8 deletions

View File

@ -37,7 +37,7 @@ m_desc(),
m_aprsAddress(), m_aprsAddress(),
m_aprsPort(port), m_aprsPort(port),
m_aprsSocket() m_aprsSocket()
#if !defined(_WIN32) && !defined(_WIN64) #if defined(USE_GPSD)
,m_gpsdEnabled(false), ,m_gpsdEnabled(false),
m_gpsdAddress(), m_gpsdAddress(),
m_gpsdPort(), m_gpsdPort(),
@ -76,7 +76,7 @@ void CAPRSWriter::setStaticLocation(float latitude, float longitude, int height)
void CAPRSWriter::setGPSDLocation(const std::string& address, const std::string& port) void CAPRSWriter::setGPSDLocation(const std::string& address, const std::string& port)
{ {
#if !defined(_WIN32) && !defined(_WIN64) #if defined(USE_GPSD)
assert(!address.empty()); assert(!address.empty());
assert(!port.empty()); assert(!port.empty());
@ -88,7 +88,7 @@ void CAPRSWriter::setGPSDLocation(const std::string& address, const std::string&
bool CAPRSWriter::open() bool CAPRSWriter::open()
{ {
#if !defined(_WIN32) && !defined(_WIN64) #if defined(USE_GPSD)
if (m_gpsdEnabled) { if (m_gpsdEnabled) {
int ret = ::gps_open(m_gpsdAddress.c_str(), m_gpsdPort.c_str(), &m_gpsdData); int ret = ::gps_open(m_gpsdAddress.c_str(), m_gpsdPort.c_str(), &m_gpsdData);
if (ret != 0) { if (ret != 0) {
@ -127,7 +127,7 @@ void CAPRSWriter::clock(unsigned int ms)
{ {
m_idTimer.clock(ms); m_idTimer.clock(ms);
#if !defined(_WIN32) && !defined(_WIN64) #if defined(USE_GPSD)
if (m_gpsdEnabled) { if (m_gpsdEnabled) {
if (m_idTimer.hasExpired()) { if (m_idTimer.hasExpired()) {
sendIdFrameMobile(); sendIdFrameMobile();
@ -141,7 +141,7 @@ void CAPRSWriter::clock(unsigned int ms)
m_idTimer.setTimeout(20U * 60U); m_idTimer.setTimeout(20U * 60U);
m_idTimer.start(); m_idTimer.start();
} }
#if !defined(_WIN32) && !defined(_WIN64) #if defined(USE_GPSD)
} }
#endif #endif
} }
@ -150,7 +150,7 @@ void CAPRSWriter::close()
{ {
m_aprsSocket.close(); m_aprsSocket.close();
#if !defined(_WIN32) && !defined(_WIN64) #if defined(USE_GPSD)
if (m_gpsdEnabled) { if (m_gpsdEnabled) {
::gps_stream(&m_gpsdData, WATCH_DISABLE, NULL); ::gps_stream(&m_gpsdData, WATCH_DISABLE, NULL);
::gps_close(&m_gpsdData); ::gps_close(&m_gpsdData);
@ -222,6 +222,7 @@ void CAPRSWriter::sendIdFrameFixed()
write(output); write(output);
} }
#if defined(USE_GPSD)
void CAPRSWriter::sendIdFrameMobile() void CAPRSWriter::sendIdFrameMobile()
{ {
if (!::gps_waiting(&m_gpsdData, 0)) if (!::gps_waiting(&m_gpsdData, 0))
@ -311,4 +312,4 @@ void CAPRSWriter::sendIdFrameMobile()
write(output); write(output);
} }
#endif

View File

@ -70,7 +70,7 @@ private:
in_addr m_aprsAddress; in_addr m_aprsAddress;
unsigned int m_aprsPort; unsigned int m_aprsPort;
CUDPSocket m_aprsSocket; CUDPSocket m_aprsSocket;
#if !defined(_WIN32) && !defined(_WIN64) #if defined(USE_GPSD)
bool m_gpsdEnabled; bool m_gpsdEnabled;
std::string m_gpsdAddress; std::string m_gpsdAddress;
std::string m_gpsdPort; std::string m_gpsdPort;

View File

@ -1,6 +1,12 @@
CC = gcc CC = gcc
CXX = g++ CXX = g++
# Use the following CFLAGS if you don't want to use gpsd.
CFLAGS = -g -O3 -Wall -std=c++0x -pthread CFLAGS = -g -O3 -Wall -std=c++0x -pthread
# Use the following CFLAGS if you do want to use gpsd.
CFLAGS = -g -O3 -Wall -DUSE_GPSD -std=c++0x -pthread
LIBS = -lpthread -lgps LIBS = -lpthread -lgps
LDFLAGS = -g LDFLAGS = -g