Skip to content

Commit

Permalink
Merge branch 'feature/GPSD' into develop
Browse files Browse the repository at this point in the history
closes#6
  • Loading branch information
F4FXL committed Dec 30, 2021
2 parents 5d9bda6 + b92d7bb commit 6f17973
Show file tree
Hide file tree
Showing 14 changed files with 414 additions and 222 deletions.
119 changes: 119 additions & 0 deletions APRSEntry.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
/*
* Copyright (C) 2010,2011,2012,2018 by Jonathan Naylor G4KLX
* Copyright (C) 2021 by Geoffrey Merck F4FXL / KC3FRA
*
* 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
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/

#include <boost/algorithm/string.hpp>

#include "APRSEntry.h"

CAPRSEntry::CAPRSEntry(const std::string& callsign, const std::string& band, double frequency, double offset, double range, double latitude, double longitude, double agl) :
m_callsign(callsign),
m_band(band),
m_frequency(frequency),
m_offset(offset),
m_range(range),
m_latitude(latitude),
m_longitude(longitude),
m_agl(agl),
m_timer(1000U, 10U),
m_first(true),
m_collector(NULL)
{
boost::trim(m_callsign);

m_collector = new CAPRSCollector;
}

CAPRSEntry::~CAPRSEntry()
{
delete m_collector;
}

std::string CAPRSEntry::getCallsign() const
{
return m_callsign;
}

std::string CAPRSEntry::getBand() const
{
return m_band;
}

double CAPRSEntry::getFrequency() const
{
return m_frequency;
}

double CAPRSEntry::getOffset() const
{
return m_offset;
}

double CAPRSEntry::getRange() const
{
return m_range;
}

double CAPRSEntry::getLatitude() const
{
return m_latitude;
}

double CAPRSEntry::getLongitude() const
{
return m_longitude;
}

double CAPRSEntry::getAGL() const
{
return m_agl;
}

CAPRSCollector* CAPRSEntry::getCollector() const
{
return m_collector;
}

void CAPRSEntry::reset()
{
m_first = true;
m_timer.stop();
m_collector->reset();
}

void CAPRSEntry::clock(unsigned int ms)
{
m_timer.clock(ms);
}

bool CAPRSEntry::isOK()
{
if (m_first) {
m_first = false;
m_timer.start();
return true;
}

if (m_timer.hasExpired()) {
m_timer.start();
return true;
} else {
m_timer.start();
return false;
}
}
59 changes: 59 additions & 0 deletions APRSEntry.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
/*
* Copyright (C) 2010,2011,2012,2018 by Jonathan Naylor G4KLX
* Copyright (C) 2021 by Geoffrey Merck F4FXL / KC3FRA
*
* 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
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/

#pragma once

#include <string>

#include "APRSCollector.h"
#include "Timer.h"

class CAPRSEntry {
public:
CAPRSEntry(const std::string& callsign, const std::string& band, double frequency, double offset, double range, double latitude, double longitude, double agl);
~CAPRSEntry();

std::string getCallsign() const;
std::string getBand() const;
double getFrequency() const;
double getOffset() const;
double getRange() const;
double getLatitude() const;
double getLongitude() const;
double getAGL() const;
CAPRSCollector* getCollector() const;

// Transmission timer
void reset();
void clock(unsigned int ms);
bool isOK();

private:
std::string m_callsign;
std::string m_band;
double m_frequency;
double m_offset;
double m_range;
double m_latitude;
double m_longitude;
double m_agl;
CTimer m_timer;
bool m_first;
CAPRSCollector* m_collector;
};
Loading

0 comments on commit 6f17973

Please sign in to comment.