Class GnssTransmitter

Inheritance Relationships

Base Type

Class Documentation

class GnssTransmitter : public lupnt::Transmitter

GNSS navigation-signal transmitter device: holds per-frequency transmit power, chip rate, and antenna gain pattern for a specific GNSS satellite (constellation + PRN).

Attached to a GnssConstellation agent (or constructed standalone, as in GnssConstellation::SetupTransmitters) to provide the GetTransmitPower/GetAntennas/GetFreqList data consumed by the GNSS link-budget and pseudorange/carrier-phase measurement models in measurements/ to compute received signal power and antenna gain corrections.

Public Functions

GnssTransmitter(GnssConst gnss_const, int prn)

Construct directly from a GNSS constellation type and PRN, dispatching to the matching Init* (InitGps/InitGlonass/ InitGalileo/InitBeidou/InitQzss) to load transmit power(s) and antenna pattern(s) for that satellite.

GnssTransmitter(Config &config)

Construct from a YAML config node specifying gnss_const and prn, then dispatch to the matching Init* as in the (GnssConst, int) constructor.

inline std::map<GnssFreq, Real> GetTransmitPower()

Get the per-frequency transmit power [dB-W] for this satellite.

inline std::map<GnssFreq, Real> GetChipRate()

Get the per-frequency code chip rate [Hz] for this satellite (currently unpopulated by any Init*; reserved for future use).

inline std::map<GnssFreq, Antenna> GetAntennas()

Get the per-frequency antenna gain-pattern model (Antenna) for this satellite.

inline std::vector<GnssFreq> GetFreqList()

Get the list of GNSS signal frequencies broadcast by this satellite (e.g. {L1, L2, L5}).

Protected Functions

void InitGps()

Initialize freq_list_, P_tx_, and antennas_ for a GPS satellite by looking up prn_ in the bundled gps_table.csv (block type -> frequencies, transmit power, and antenna pattern name). Aborts (LUPNT_CHECK) if prn_ is not found in the table.

void InitGlonass()

GLONASS initialization; not yet implemented (always aborts via LUPNT_CHECK).

void InitGalileo()

Initialize freq_list_, antennas_, and P_tx_ for a Galileo satellite (frequencies E1/E5a/E5b/E6, fixed transmit power, and per-frequency antenna patterns named "Galileo_<freq>.txt").

void InitBeidou()

BeiDou initialization; not yet implemented (always aborts via LUPNT_CHECK).

void InitQzss()

Initialize freq_list_, antennas_, and P_tx_ for a QZSS satellite based on prn_ (PRNs 1-4 broadcast L1/L2/L5, others L1/L5), with per-frequency antenna patterns named "QZSS_<id>_<freq>.txt".

Protected Attributes

GnssConst gnss_const_
int prn_
std::vector<GnssFreq> freq_list_
std::map<GnssFreq, Antenna> antennas_
std::map<GnssFreq, Real> P_tx_
std::map<GnssFreq, Real> R_c_