Program Listing for File space_comms.h¶
↰ Return to documentation for file (devices/space_comms.h)
#pragma once
#include "lupnt/devices/comms.h"
#include "lupnt/measurements/antenna.h"
namespace lupnt {
enum class GnssConst {
GPS, // Global Positioning System
GLONASS, // Global Navigation Satellite System
GALILEO, // European Global Navigation Satellite System
BEIDOU, // Chinese Global Navigation Satellite System
QZSS, // Quasi-Zenith Satellite System
};
enum class GnssFreq { L1, L2, L5, E1, E6, E5, E5a, E5b };
extern const std::map<GnssFreq, Real> GNSS_FREQ_MAP;
extern const std::map<GnssFreq, Real> GNSS_RC_MAP;
class GnssTransmitter : public Transmitter {
public:
GnssTransmitter(GnssConst gnss_const, int prn);
GnssTransmitter(Config& config);
std::map<GnssFreq, Real> GetTransmitPower() { return P_tx_; }
std::map<GnssFreq, Real> GetChipRate() { return R_c_; }
std::map<GnssFreq, Antenna> GetAntennas() { return antennas_; }
std::vector<GnssFreq> GetFreqList() { return freq_list_; }
protected:
GnssConst gnss_const_; // [-] Type of the GNSS system
int prn_; // [-] PRN of the transmitter satellite
std::vector<GnssFreq> freq_list_; // [-] List of frequencies (by signal names)
std::map<GnssFreq, Antenna> antennas_; // [-] List of antennas
std::map<GnssFreq, Real> P_tx_; // [dB-W] Transmitter power
std::map<GnssFreq, Real> R_c_; // [m] Chip rate
void InitGps();
void InitGlonass();
void InitGalileo();
void InitBeidou();
void InitQzss();
};
class GnssReceiver : public Receiver {
public:
GnssReceiver() = default;
GnssReceiver(Config& config);
};
} // namespace lupnt