From c38a8cfd27b7d8df8d007995371b0889b51424f7 Mon Sep 17 00:00:00 2001 From: Jonathan Naylor Date: Sun, 21 Jun 2020 17:38:34 +0100 Subject: [PATCH] Make the use of gpsd optional. --- YSFGateway/APRSWriter.cpp | 15 ++++++++------- YSFGateway/APRSWriter.h | 2 +- YSFGateway/Makefile | 6 ++++++ YSFGateway/Version.h | 2 +- 4 files changed, 16 insertions(+), 9 deletions(-) diff --git a/YSFGateway/APRSWriter.cpp b/YSFGateway/APRSWriter.cpp index 0c25676..fd3ad40 100644 --- a/YSFGateway/APRSWriter.cpp +++ b/YSFGateway/APRSWriter.cpp @@ -39,7 +39,7 @@ m_suffix(suffix), m_aprsAddress(), m_aprsPort(port), m_aprsSocket() -#if !defined(_WIN32) && !defined(_WIN64) +#if defined(USE_GPSD) ,m_gpsdEnabled(false), m_gpsdAddress(), m_gpsdPort(), @@ -78,7 +78,7 @@ void CAPRSWriter::setStaticLocation(float latitude, float longitude, int height) void CAPRSWriter::setGPSDLocation(const std::string& address, const std::string& port) { -#if !defined(_WIN32) && !defined(_WIN64) +#if defined(USE_GPSD) assert(!address.empty()); assert(!port.empty()); @@ -90,7 +90,7 @@ void CAPRSWriter::setGPSDLocation(const std::string& address, const std::string& bool CAPRSWriter::open() { -#if !defined(_WIN32) && !defined(_WIN64) +#if defined(USE_GPSD) if (m_gpsdEnabled) { int ret = ::gps_open(m_gpsdAddress.c_str(), m_gpsdPort.c_str(), &m_gpsdData); if (ret != 0) { @@ -183,7 +183,7 @@ void CAPRSWriter::clock(unsigned int ms) { m_idTimer.clock(ms); -#if !defined(_WIN32) && !defined(_WIN64) +#if defined(USE_GPSD) if (m_gpsdEnabled) { if (m_idTimer.hasExpired()) { sendIdFrameMobile(); @@ -197,7 +197,7 @@ void CAPRSWriter::clock(unsigned int ms) m_idTimer.setTimeout(20U * 60U); m_idTimer.start(); } -#if !defined(_WIN32) && !defined(_WIN64) +#if defined(USE_GPSD) } #endif } @@ -206,7 +206,7 @@ void CAPRSWriter::close() { m_aprsSocket.close(); -#if !defined(_WIN32) && !defined(_WIN64) +#if defined(USE_GPSD) if (m_gpsdEnabled) { ::gps_stream(&m_gpsdData, WATCH_DISABLE, NULL); ::gps_close(&m_gpsdData); @@ -278,6 +278,7 @@ void CAPRSWriter::sendIdFrameFixed() m_aprsSocket.write((unsigned char*)output, (unsigned int)::strlen(output), m_aprsAddress, m_aprsPort); } +#if defined(USE_GPSD) void CAPRSWriter::sendIdFrameMobile() { if (!::gps_waiting(&m_gpsdData, 0)) @@ -367,4 +368,4 @@ void CAPRSWriter::sendIdFrameMobile() m_aprsSocket.write((unsigned char*)output, (unsigned int)::strlen(output), m_aprsAddress, m_aprsPort); } - +#endif diff --git a/YSFGateway/APRSWriter.h b/YSFGateway/APRSWriter.h index f0e10ad..8ad4dff 100644 --- a/YSFGateway/APRSWriter.h +++ b/YSFGateway/APRSWriter.h @@ -71,7 +71,7 @@ private: in_addr m_aprsAddress; unsigned int m_aprsPort; CUDPSocket m_aprsSocket; -#if !defined(_WIN32) && !defined(_WIN64) +#if defined(USE_GPSD) bool m_gpsdEnabled; std::string m_gpsdAddress; std::string m_gpsdPort; diff --git a/YSFGateway/Makefile b/YSFGateway/Makefile index 8d37ea0..5056c0f 100644 --- a/YSFGateway/Makefile +++ b/YSFGateway/Makefile @@ -1,6 +1,12 @@ CC = gcc CXX = g++ + +# Use the following CFLAGS if you don't want to use gpsd. 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 = -lm -lpthread -lgps LDFLAGS = -g diff --git a/YSFGateway/Version.h b/YSFGateway/Version.h index eca752d..5f48e8f 100644 --- a/YSFGateway/Version.h +++ b/YSFGateway/Version.h @@ -19,6 +19,6 @@ #if !defined(VERSION_H) #define VERSION_H -const char* VERSION = "20200605"; +const char* VERSION = "20200621"; #endif