.. _program_listing_file_devices_space_comms.h: Program Listing for File space_comms.h ====================================== |exhale_lsh| :ref:`Return to documentation for file ` (``devices/space_comms.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #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 GNSS_FREQ_MAP; extern const std::map GNSS_RC_MAP; class GnssTransmitter : public Transmitter { public: GnssTransmitter(GnssConst gnss_const, int prn); GnssTransmitter(Config& config); std::map GetTransmitPower() { return P_tx_; } std::map GetChipRate() { return R_c_; } std::map GetAntennas() { return antennas_; } std::vector GetFreqList() { return freq_list_; } protected: GnssConst gnss_const_; // [-] Type of the GNSS system int prn_; // [-] PRN of the transmitter satellite std::vector freq_list_; // [-] List of frequencies (by signal names) std::map antennas_; // [-] List of antennas std::map P_tx_; // [dB-W] Transmitter power std::map 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