mirror of https://github.com/gnss-sdr/gnss-sdr
Introducing Gnss_Satellite into the receiver
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@130 64b25241-fba3-4117-9849-534c7e92360d
This commit is contained in:
parent
115b36c722
commit
d9aff36247
|
@ -292,7 +292,7 @@ void gps_l1_ca_gps_sdr_acquisition_cc::calculate_magnitudes(
|
||||||
d_ifft->execute(); // inverse FFT of the result = convolution in time
|
d_ifft->execute(); // inverse FFT of the result = convolution in time
|
||||||
|
|
||||||
x86_gr_complex_mag(d_ifft->get_outbuf(), d_fft_size); // d_ifft->get_outbuf()=|abs(·)|^2
|
x86_gr_complex_mag(d_ifft->get_outbuf(), d_fft_size); // d_ifft->get_outbuf()=|abs(·)|^2
|
||||||
x86_float_max((float*)d_ifft->get_outbuf(), &indext, &magt, d_fft_size); // find max of |abs(·)|^2 -> index and magt
|
x86_float_max((float*)d_ifft->get_outbuf(), &indext, &magt, d_fft_size); // find max of |abs(á)|^2 -> index and magt
|
||||||
|
|
||||||
if (magt > d_mag)
|
if (magt > d_mag)
|
||||||
{ // if the magnitude is > threshold
|
{ // if the magnitude is > threshold
|
||||||
|
@ -306,7 +306,7 @@ void gps_l1_ca_gps_sdr_acquisition_cc::calculate_magnitudes(
|
||||||
memcpy(d_best_magnitudes, d_ifft->get_outbuf(), sizeof(float)
|
memcpy(d_best_magnitudes, d_ifft->get_outbuf(), sizeof(float)
|
||||||
* d_fft_size);
|
* d_fft_size);
|
||||||
|
|
||||||
// Remove the maximum and its neighbours to calculate the mean
|
// Remove the maximum and its neighbors to calculate the mean
|
||||||
((float*)d_ifft->get_outbuf())[indext] = 0.0;
|
((float*)d_ifft->get_outbuf())[indext] = 0.0;
|
||||||
if (indext != 0)
|
if (indext != 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -86,6 +86,7 @@ Channel::Channel(ConfigurationInterface *configuration, unsigned int channel,
|
||||||
|
|
||||||
connected_ = false;
|
connected_ = false;
|
||||||
message_ = 0;
|
message_ = 0;
|
||||||
|
gnss_satellite_ = Gnss_Satellite();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -96,6 +97,7 @@ Channel::~Channel()
|
||||||
delete trk_;
|
delete trk_;
|
||||||
delete nav_;
|
delete nav_;
|
||||||
delete pass_through_;
|
delete pass_through_;
|
||||||
|
//delete gnss_satellite_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -166,12 +168,12 @@ gr_basic_block_sptr Channel::get_right_block()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void Channel::set_satellite(unsigned int satellite)
|
void Channel::set_satellite(Gnss_Satellite satellite)
|
||||||
{
|
{
|
||||||
satellite_ = satellite;
|
gnss_satellite_ = Gnss_Satellite(satellite.get_system(), satellite.get_PRN());
|
||||||
acq_->set_satellite(satellite);
|
acq_->set_satellite(satellite.get_PRN());
|
||||||
trk_->set_satellite(satellite);
|
trk_->set_satellite(satellite.get_PRN());
|
||||||
nav_->set_satellite(satellite);
|
nav_->set_satellite(satellite.get_PRN());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -236,14 +238,14 @@ void Channel::process_channel_messages()
|
||||||
case 1:
|
case 1:
|
||||||
|
|
||||||
LOG_AT_LEVEL(INFO) << "Channel " << channel_
|
LOG_AT_LEVEL(INFO) << "Channel " << channel_
|
||||||
<< " ACQ SUCCESS satellite " << satellite_;
|
<< " ACQ SUCCESS satellite " << gnss_satellite_;
|
||||||
channel_fsm_.Event_gps_valid_acquisition();
|
channel_fsm_.Event_gps_valid_acquisition();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
|
|
||||||
LOG_AT_LEVEL(INFO) << "Channel " << channel_
|
LOG_AT_LEVEL(INFO) << "Channel " << channel_
|
||||||
<< " ACQ FAILED satellite " << satellite_;
|
<< " ACQ FAILED satellite " << gnss_satellite_;
|
||||||
if (repeat_ == true)
|
if (repeat_ == true)
|
||||||
{
|
{
|
||||||
channel_fsm_.Event_gps_failed_acquisition_repeat();
|
channel_fsm_.Event_gps_failed_acquisition_repeat();
|
||||||
|
@ -256,7 +258,7 @@ void Channel::process_channel_messages()
|
||||||
|
|
||||||
case 3:
|
case 3:
|
||||||
LOG_AT_LEVEL(INFO) << "Channel " << channel_
|
LOG_AT_LEVEL(INFO) << "Channel " << channel_
|
||||||
<< " TRACKING FAILED satellite " << satellite_
|
<< " TRACKING FAILED satellite " << gnss_satellite_
|
||||||
<< ", reacquisition.";
|
<< ", reacquisition.";
|
||||||
channel_fsm_.Event_gps_failed_tracking();
|
channel_fsm_.Event_gps_failed_tracking();
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -42,6 +42,7 @@
|
||||||
#include "control_message_factory.h"
|
#include "control_message_factory.h"
|
||||||
#include "concurrent_queue.h"
|
#include "concurrent_queue.h"
|
||||||
|
|
||||||
|
|
||||||
class ConfigurationInterface;
|
class ConfigurationInterface;
|
||||||
class AcquisitionInterface;
|
class AcquisitionInterface;
|
||||||
class TrackingInterface;
|
class TrackingInterface;
|
||||||
|
@ -77,7 +78,7 @@ public:
|
||||||
|
|
||||||
size_t item_size(){ return 0; }
|
size_t item_size(){ return 0; }
|
||||||
|
|
||||||
unsigned int satellite(){ return satellite_; }
|
Gnss_Satellite satellite() const { return gnss_satellite_; }
|
||||||
|
|
||||||
AcquisitionInterface* acquisition(){ return acq_; }
|
AcquisitionInterface* acquisition(){ return acq_; }
|
||||||
|
|
||||||
|
@ -86,7 +87,7 @@ public:
|
||||||
TelemetryDecoderInterface* telemetry(){ return nav_; }
|
TelemetryDecoderInterface* telemetry(){ return nav_; }
|
||||||
|
|
||||||
void start_acquisition();
|
void start_acquisition();
|
||||||
void set_satellite(unsigned int satellite);
|
void set_satellite(Gnss_Satellite satellite);
|
||||||
void start();
|
void start();
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@ -106,7 +107,7 @@ private:
|
||||||
std::string implementation_;
|
std::string implementation_;
|
||||||
|
|
||||||
unsigned int channel_;
|
unsigned int channel_;
|
||||||
unsigned int satellite_;
|
Gnss_Satellite gnss_satellite_;
|
||||||
bool connected_;
|
bool connected_;
|
||||||
bool stop_;
|
bool stop_;
|
||||||
int message_;
|
int message_;
|
||||||
|
|
|
@ -38,6 +38,7 @@
|
||||||
#define GNSS_SDR_CHANNEL_INTERFACE_H_
|
#define GNSS_SDR_CHANNEL_INTERFACE_H_
|
||||||
|
|
||||||
#include "gnss_block_interface.h"
|
#include "gnss_block_interface.h"
|
||||||
|
#include "gnss_satellite.h"
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief This abstract class represents an interface to a channel GNSS block.
|
* \brief This abstract class represents an interface to a channel GNSS block.
|
||||||
|
@ -52,9 +53,9 @@ class ChannelInterface: public GNSSBlockInterface
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
virtual unsigned int satellite() = 0;
|
virtual Gnss_Satellite satellite() const = 0;
|
||||||
virtual void start_acquisition() = 0;
|
virtual void start_acquisition() = 0;
|
||||||
virtual void set_satellite(unsigned int) = 0;
|
virtual void set_satellite(Gnss_Satellite) = 0;
|
||||||
virtual void start() = 0;
|
virtual void start() = 0;
|
||||||
virtual void stop() = 0;
|
virtual void stop() = 0;
|
||||||
};
|
};
|
||||||
|
|
|
@ -38,11 +38,13 @@
|
||||||
#include <boost/lexical_cast.hpp>
|
#include <boost/lexical_cast.hpp>
|
||||||
#include <glog/log_severity.h>
|
#include <glog/log_severity.h>
|
||||||
#include <glog/logging.h>
|
#include <glog/logging.h>
|
||||||
|
#include <set>
|
||||||
#include "configuration_interface.h"
|
#include "configuration_interface.h"
|
||||||
#include "gnss_block_interface.h"
|
#include "gnss_block_interface.h"
|
||||||
#include "channel_interface.h"
|
#include "channel_interface.h"
|
||||||
#include "gnss_block_factory.h"
|
#include "gnss_block_factory.h"
|
||||||
|
|
||||||
|
|
||||||
using google::LogMessage;
|
using google::LogMessage;
|
||||||
|
|
||||||
GNSSFlowgraph::GNSSFlowgraph(ConfigurationInterface *configuration,
|
GNSSFlowgraph::GNSSFlowgraph(ConfigurationInterface *configuration,
|
||||||
|
@ -54,7 +56,7 @@ GNSSFlowgraph::GNSSFlowgraph(ConfigurationInterface *configuration,
|
||||||
blocks_ = new std::vector<GNSSBlockInterface*>();
|
blocks_ = new std::vector<GNSSBlockInterface*>();
|
||||||
block_factory_ = new GNSSBlockFactory();
|
block_factory_ = new GNSSBlockFactory();
|
||||||
queue_ = queue;
|
queue_ = queue;
|
||||||
available_GPS_satellites_IDs_ = new std::list<unsigned int>();
|
available_GPS_satellites_IDs_ = new std::list<Gnss_Satellite>();
|
||||||
|
|
||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
|
@ -449,26 +451,43 @@ void GNSSFlowgraph::set_satellites_list()
|
||||||
* \TODO Describe GNSS satellites more nicely, with RINEX notation
|
* \TODO Describe GNSS satellites more nicely, with RINEX notation
|
||||||
* See http://igscb.jpl.nasa.gov/igscb/data/format/rinex301.pdf (page 5)
|
* See http://igscb.jpl.nasa.gov/igscb/data/format/rinex301.pdf (page 5)
|
||||||
*/
|
*/
|
||||||
for (unsigned int id = 1; id < 33; id++)
|
std::set<unsigned int> available_gps_prn = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
|
||||||
|
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
|
||||||
|
21, 22, 23 , 25, 26, 27, 28, 29, 30,
|
||||||
|
31, 32};
|
||||||
|
|
||||||
|
|
||||||
|
std::set<unsigned int>::iterator available_gps_prn_iter;
|
||||||
|
|
||||||
|
for (available_gps_prn_iter = available_gps_prn.begin();
|
||||||
|
available_gps_prn_iter != available_gps_prn.end();
|
||||||
|
available_gps_prn_iter++)
|
||||||
{
|
{
|
||||||
available_GPS_satellites_IDs_->push_back(id);
|
sv = Gnss_Satellite(std::string("GPS"), *available_gps_prn_iter);
|
||||||
|
std::cout << *available_gps_prn_iter << std::endl;
|
||||||
|
available_GPS_satellites_IDs_->push_back(sv);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::list<unsigned int>::iterator it =
|
// for (unsigned int id = 1; id < 33; id++)
|
||||||
|
// {
|
||||||
|
// available_GPS_satellites_IDs_->push_back(id);
|
||||||
|
// }
|
||||||
|
|
||||||
|
std::list<Gnss_Satellite>::iterator it =
|
||||||
available_GPS_satellites_IDs_->begin();
|
available_GPS_satellites_IDs_->begin();
|
||||||
|
|
||||||
for (unsigned int i = 0; i < channels_count_; i++)
|
for (unsigned int i = 0; i < channels_count_; i++)
|
||||||
{
|
{
|
||||||
unsigned int sat = configuration_->property("Acquisition"
|
unsigned int sat = configuration_->property("Acquisition" + boost::lexical_cast<std::string>(i) + ".satellite", 0);
|
||||||
+ boost::lexical_cast<std::string>(i) + ".satellite", 0);
|
if ((sat == 0) || (sat == it->get_PRN())) // 0 = not PRN in configuration file
|
||||||
if ((sat == 0) || (sat==*it)) // 0 = not PRN in configuration file
|
|
||||||
{
|
{
|
||||||
it++;
|
it++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
available_GPS_satellites_IDs_->remove(sat);
|
sv = Gnss_Satellite(std::string("GPS"), it->get_PRN());
|
||||||
available_GPS_satellites_IDs_->insert(it, sat);
|
available_GPS_satellites_IDs_->remove(sv);
|
||||||
|
available_GPS_satellites_IDs_->insert(it, sv);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -41,6 +41,7 @@
|
||||||
#include <gnuradio/gr_top_block.h>
|
#include <gnuradio/gr_top_block.h>
|
||||||
#include <gnuradio/gr_msg_queue.h>
|
#include <gnuradio/gr_msg_queue.h>
|
||||||
#include "GPS_L1_CA.h"
|
#include "GPS_L1_CA.h"
|
||||||
|
#include "gnss_satellite.h"
|
||||||
|
|
||||||
class GNSSBlockInterface;
|
class GNSSBlockInterface;
|
||||||
class ChannelInterface;
|
class ChannelInterface;
|
||||||
|
@ -133,8 +134,10 @@ private:
|
||||||
gr_top_block_sptr top_block_;
|
gr_top_block_sptr top_block_;
|
||||||
gr_msg_queue_sptr queue_;
|
gr_msg_queue_sptr queue_;
|
||||||
|
|
||||||
std::list<unsigned int>* available_GPS_satellites_IDs_;
|
std::list<Gnss_Satellite>* available_GPS_satellites_IDs_;
|
||||||
std::queue<unsigned int>* available_Galileo_satellites_IDs_;
|
std::queue<unsigned int>* available_Galileo_satellites_IDs_;
|
||||||
|
|
||||||
|
Gnss_Satellite sv;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /*GNSS_SDR_GNSS_FLOWGRAPH_H_*/
|
#endif /*GNSS_SDR_GNSS_FLOWGRAPH_H_*/
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
*
|
*
|
||||||
* -------------------------------------------------------------------------
|
* -------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "gnss_satellite.h"
|
#include "gnss_satellite.h"
|
||||||
#include <glog/log_severity.h>
|
#include <glog/log_severity.h>
|
||||||
#include <glog/logging.h>
|
#include <glog/logging.h>
|
||||||
|
@ -65,10 +66,31 @@ void Gnss_Satellite::reset()
|
||||||
PRN = 0;
|
PRN = 0;
|
||||||
system = std::string("");
|
system = std::string("");
|
||||||
block = std::string("");
|
block = std::string("");
|
||||||
|
rf_link = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
std::ostream& operator<<(std::ostream &out, const Gnss_Satellite &sat) // output
|
||||||
|
{
|
||||||
|
//std::string psystem = sat::get_system()
|
||||||
|
out << sat.get_system() << " PRN " << sat.get_PRN() << " (Block " << sat.get_block() << ")";
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool operator== (const Gnss_Satellite &sat1, const Gnss_Satellite &sat2)
|
||||||
|
{
|
||||||
|
bool equal = false;
|
||||||
|
if (sat1.get_system().compare(sat2.get_system()) == 0)
|
||||||
|
{
|
||||||
|
if (sat1.get_PRN() == (sat2.get_PRN()))
|
||||||
|
{
|
||||||
|
equal = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return equal;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void Gnss_Satellite::set_system(std::string system_)
|
void Gnss_Satellite::set_system(std::string system_)
|
||||||
|
@ -158,7 +180,7 @@ void Gnss_Satellite::set_PRN(unsigned int PRN_)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
unsigned int Gnss_Satellite::get_PRN()
|
unsigned int Gnss_Satellite::get_PRN() const
|
||||||
{
|
{
|
||||||
// Get satellite's PRN
|
// Get satellite's PRN
|
||||||
unsigned int PRN_;
|
unsigned int PRN_;
|
||||||
|
@ -171,7 +193,7 @@ unsigned int Gnss_Satellite::get_PRN()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
std::string Gnss_Satellite::get_system()
|
std::string Gnss_Satellite::get_system() const
|
||||||
{
|
{
|
||||||
// Get the satellite system {"GPS", "GLONASS", "SBAS", "Galileo", "Compass"}
|
// Get the satellite system {"GPS", "GLONASS", "SBAS", "Galileo", "Compass"}
|
||||||
std::string system_;
|
std::string system_;
|
||||||
|
@ -183,7 +205,7 @@ std::string Gnss_Satellite::get_system()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
std::string Gnss_Satellite::get_block()
|
std::string Gnss_Satellite::get_block() const
|
||||||
{
|
{
|
||||||
// Get the satellite block
|
// Get the satellite block
|
||||||
std::string block_;
|
std::string block_;
|
||||||
|
@ -312,78 +334,103 @@ void Gnss_Satellite::set_block(std::string system_, unsigned int PRN_ )
|
||||||
switch ( PRN_ )
|
switch ( PRN_ )
|
||||||
{
|
{
|
||||||
// info from http://www.sdcm.ru/smglo/grupglo?version=eng&site=extern
|
// info from http://www.sdcm.ru/smglo/grupglo?version=eng&site=extern
|
||||||
|
// See also http://www.glonass-center.ru/en/GLONASS/
|
||||||
|
|
||||||
case 1 :
|
case 1 :
|
||||||
block = std::string("1"); //Plane 1
|
block = std::string("1"); //Plane 1
|
||||||
|
rf_link = 1;
|
||||||
break;
|
break;
|
||||||
case 2 :
|
case 2 :
|
||||||
block = std::string("-4"); //Plane 1
|
block = std::string("-4"); //Plane 1
|
||||||
|
rf_link = -4;
|
||||||
break;
|
break;
|
||||||
case 3 :
|
case 3 :
|
||||||
block = std::string("5"); //Plane 1
|
block = std::string("5"); //Plane 1
|
||||||
|
rf_link = 5;
|
||||||
break;
|
break;
|
||||||
case 4 :
|
case 4 :
|
||||||
block = std::string("6"); //Plane 1
|
block = std::string("6"); //Plane 1
|
||||||
|
rf_link = 6;
|
||||||
break;
|
break;
|
||||||
case 5 :
|
case 5 :
|
||||||
block = std::string("1"); //Plane 1
|
block = std::string("1"); //Plane 1
|
||||||
|
rf_link = 1;
|
||||||
break;
|
break;
|
||||||
case 6 :
|
case 6 :
|
||||||
block = std::string("-4"); //Plane 1
|
block = std::string("-4"); //Plane 1
|
||||||
|
rf_link = -4;
|
||||||
break;
|
break;
|
||||||
case 7 :
|
case 7 :
|
||||||
block = std::string("5"); //Plane 1
|
block = std::string("5"); //Plane 1
|
||||||
|
rf_link = 5;
|
||||||
break;
|
break;
|
||||||
case 8 :
|
case 8 :
|
||||||
block = std::string("6"); //Plane 1
|
block = std::string("6"); //Plane 1
|
||||||
|
rf_link = 6;
|
||||||
break;
|
break;
|
||||||
case 9 :
|
case 9 :
|
||||||
block = std::string("-2"); //Plane 2
|
block = std::string("-2"); //Plane 2
|
||||||
|
rf_link = -2;
|
||||||
break;
|
break;
|
||||||
case 10 :
|
case 10 :
|
||||||
block = std::string("-7"); //Plane 2
|
block = std::string("-7"); //Plane 2
|
||||||
|
rf_link = -7;
|
||||||
break;
|
break;
|
||||||
case 11 :
|
case 11 :
|
||||||
block = std::string("0"); //Plane 2
|
block = std::string("0"); //Plane 2
|
||||||
|
rf_link = 0;
|
||||||
break;
|
break;
|
||||||
case 12 :
|
case 12 :
|
||||||
block = std::string("-1"); //Plane 2
|
block = std::string("-1"); //Plane 2
|
||||||
|
rf_link = -1;
|
||||||
break;
|
break;
|
||||||
case 13 :
|
case 13 :
|
||||||
block = std::string("-2"); //Plane 2
|
block = std::string("-2"); //Plane 2
|
||||||
|
rf_link = -2;
|
||||||
break;
|
break;
|
||||||
case 14 :
|
case 14 :
|
||||||
block = std::string("-7"); //Plane 2
|
block = std::string("-7"); //Plane 2
|
||||||
|
rf_link = -7;
|
||||||
break;
|
break;
|
||||||
case 15 :
|
case 15 :
|
||||||
block = std::string("0"); //Plane 2
|
block = std::string("0"); //Plane 2
|
||||||
|
rf_link = 0;
|
||||||
break;
|
break;
|
||||||
case 16 :
|
case 16 :
|
||||||
block = std::string("-1"); //Plane 2
|
block = std::string("-1"); //Plane 2
|
||||||
|
rf_link = -1;
|
||||||
break;
|
break;
|
||||||
case 17 :
|
case 17 :
|
||||||
block = std::string("4"); //Plane 3
|
block = std::string("4"); //Plane 3
|
||||||
|
rf_link = 4;
|
||||||
break;
|
break;
|
||||||
case 18 :
|
case 18 :
|
||||||
block = std::string("-3"); //Plane 3
|
block = std::string("-3"); //Plane 3
|
||||||
|
rf_link = -3;
|
||||||
break;
|
break;
|
||||||
case 19 :
|
case 19 :
|
||||||
block = std::string("3"); //Plane 3
|
block = std::string("3"); //Plane 3
|
||||||
|
rf_link = 3;
|
||||||
break;
|
break;
|
||||||
case 20 :
|
case 20 :
|
||||||
block = std::string("2"); //Plane 3
|
block = std::string("2"); //Plane 3
|
||||||
|
rf_link = 2;
|
||||||
break;
|
break;
|
||||||
case 21 :
|
case 21 :
|
||||||
block = std::string("4"); //Plane 3
|
block = std::string("4"); //Plane 3
|
||||||
|
rf_link = 4;
|
||||||
break;
|
break;
|
||||||
case 22 :
|
case 22 :
|
||||||
block = std::string("-3"); //Plane 3
|
block = std::string("-3"); //Plane 3
|
||||||
|
rf_link = -3;
|
||||||
break;
|
break;
|
||||||
case 23 :
|
case 23 :
|
||||||
block = std::string("3"); //Plane 3
|
block = std::string("3"); //Plane 3
|
||||||
|
rf_link = 3;
|
||||||
break;
|
break;
|
||||||
case 24 :
|
case 24 :
|
||||||
block = std::string("2"); //Plane 3
|
block = std::string("2"); //Plane 3
|
||||||
|
rf_link = 2;
|
||||||
break;
|
break;
|
||||||
default :
|
default :
|
||||||
block = std::string("Unknown");
|
block = std::string("Unknown");
|
||||||
|
@ -416,8 +463,10 @@ void Gnss_Satellite::set_block(std::string system_, unsigned int PRN_ )
|
||||||
switch ( PRN_ )
|
switch ( PRN_ )
|
||||||
{
|
{
|
||||||
case 11 :
|
case 11 :
|
||||||
block = std::string("IOV"); // Launched from French Guiana at 10:30 GMT on October 21, 2011
|
block = std::string("IOV"); // PFM, the ProtoFlight Model (GSAT0101), launched from French Guiana at 10:30 GMT on October 21, 2011
|
||||||
break;
|
break;
|
||||||
|
case 12 :
|
||||||
|
block =std::string("IOV"); // Galileo In-Orbit Validation (IOV) satellite FM2 (Flight Model 2) also known as GSAT0102, launched the same day
|
||||||
default:
|
default:
|
||||||
block = std::string("Unknown");
|
block = std::string("Unknown");
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <set>
|
#include <set>
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* \brief This class represents a GNSS satellite.
|
* \brief This class represents a GNSS satellite.
|
||||||
|
@ -47,18 +48,21 @@ public:
|
||||||
Gnss_Satellite(); //!< Default Constructor.
|
Gnss_Satellite(); //!< Default Constructor.
|
||||||
Gnss_Satellite(std::string system_, unsigned int PRN_); //!< Concrete GNSS satellite Constructor.
|
Gnss_Satellite(std::string system_, unsigned int PRN_); //!< Concrete GNSS satellite Constructor.
|
||||||
~Gnss_Satellite(); //!< Default Destructor.
|
~Gnss_Satellite(); //!< Default Destructor.
|
||||||
unsigned int get_PRN(); //!< Gets satellite's PRN
|
unsigned int get_PRN() const; //!< Gets satellite's PRN
|
||||||
std::string get_system(); //!< Gets the satellite system {"GPS", "GLONASS", "SBAS", "Galileo", "Compass"}
|
std::string get_system() const; //!< Gets the satellite system {"GPS", "GLONASS", "SBAS", "Galileo", "Compass"}
|
||||||
std::string get_block(); //!< Gets the satellite block. If GPS, returns {"IIA", "IIR", "IIR-M", "IIF"}
|
std::string get_block() const; //!< Gets the satellite block. If GPS, returns {"IIA", "IIR", "IIR-M", "IIF"}
|
||||||
|
friend bool operator== (const Gnss_Satellite &, const Gnss_Satellite &); // operator== for comparison
|
||||||
|
friend std::ostream& operator<<(std::ostream &, const Gnss_Satellite &); // operator<< for pretty printing
|
||||||
private:
|
private:
|
||||||
unsigned int PRN;
|
unsigned int PRN;
|
||||||
std::string system;
|
std::string system;
|
||||||
std::string block;
|
std::string block;
|
||||||
|
signed int rf_link;
|
||||||
void set_system(std::string system); // Sets the satellite system {"GPS", "GLONASS", "SBAS", "Galileo", "Compass"}. Returns 1 if success.
|
void set_system(std::string system); // Sets the satellite system {"GPS", "GLONASS", "SBAS", "Galileo", "Compass"}. Returns 1 if success.
|
||||||
void set_PRN(unsigned int PRN); // Sets satellite's PRN
|
void set_PRN(unsigned int PRN); // Sets satellite's PRN
|
||||||
void set_block(std::string system_, unsigned int PRN_ );
|
void set_block(std::string system_, unsigned int PRN_ );
|
||||||
std::set<std::string> system_set; // = {"GPS", "GLONASS", "SBAS", "Galileo", "Compass"};
|
std::set<std::string> system_set; // = {"GPS", "GLONASS", "SBAS", "Galileo", "Compass"};
|
||||||
void reset();
|
void reset();
|
||||||
|
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue