28 return _antenna->
getGain(angle, refangle, wavelength);
33 return _antenna->getNoiseTemperature(angle);
40 LOG(Level::FATAL,
"Radar timing source must not be null");
41 throw std::runtime_error(
"Radar timing source must not be null");
50 LOG(Level::FATAL,
"Transmitter's antenna set to null");
51 throw std::logic_error(
"Transmitter's antenna set to null");
60 LOG(Level::FATAL,
"Attempted to attach second object to transmitter");
61 throw std::runtime_error(
"Attempted to attach second object to transmitter");
70 LOG(Level::FATAL,
"Radar::GetTiming called before timing set");
71 throw std::runtime_error(
"Radar::GetTiming called before timing set");
Header file defining various types of antennas and their gain patterns.
Abstract base class representing an antenna.
virtual RealType getGain(const math::SVec3 &angle, const math::SVec3 &refangle, RealType wavelength) const =0
Computes the gain of the antenna based on the input angle and reference angle.
A class representing a vector in spherical coordinates.
Represents a radar system on a platform.
std::shared_ptr< timing::Timing > _timing
Timing source for the radar.
void setAntenna(const antenna::Antenna *ant)
Sets the antenna for the radar.
std::shared_ptr< timing::Timing > getTiming() const
Retrieves the timing source for the radar.
void setAttached(const Radar *obj)
Attaches another radar object to this radar.
RealType getGain(const math::SVec3 &angle, const math::SVec3 &refangle, RealType wavelength) const
Calculates the radar gain based on input angles and wavelength.
virtual RealType getNoiseTemperature(const math::SVec3 &angle) const noexcept
Gets the noise temperature of the radar.
void setTiming(const std::shared_ptr< timing::Timing > &tim)
Sets the timing source for the radar.
double RealType
Type for real numbers.
Header file for the logging system.
Defines the Radar class and associated functionality.
Radar Receiver class for managing signal reception and response handling.