|
FERS 0.1.0
The Flexible Extensible Radar Simulator
|
Classes | |
| class | Parameters |
| Struct to hold simulation parameters. More... | |
Enumerations | |
| enum class | CoordinateFrame : std::uint8_t { ENU , UTM , ECEF } |
| Defines the coordinate systems supported for KML/geospatial export. More... | |
| enum class | RotationAngleUnit : std::uint8_t { Degrees , Radians } |
| Defines the units used at external rotation-path boundaries. More... | |
Functions | |
| RealType | c () noexcept |
| Get the speed of light. | |
| RealType | boltzmannK () noexcept |
| Get the Boltzmann constant. | |
| RealType | startTime () noexcept |
| Get the start time for the simulation. | |
| RealType | endTime () noexcept |
| Get the end time for the simulation. | |
| RealType | simSamplingRate () noexcept |
| Get the simulation sampling rate. | |
| RealType | rate () noexcept |
| Get the rendering sample rate. | |
| unsigned | randomSeed () noexcept |
| Get the random seed. | |
| unsigned | adcBits () noexcept |
| Get the ADC quantization bits. | |
| unsigned | renderFilterLength () noexcept |
| Get the render filter length. | |
| unsigned | renderThreads () noexcept |
| Get the number of worker threads. | |
| unsigned | oversampleRatio () noexcept |
| Get the oversampling ratio. | |
| constexpr unsigned | maxSupportedOversampleRatio () noexcept |
| Gets the maximum supported oversampling ratio. | |
| void | validateOversampleRatio (const unsigned ratio) |
| Validates that an oversampling ratio is supported. | |
| void | setC (RealType cValue) noexcept |
| Set the speed of light. | |
| void | setTime (const RealType startTime, const RealType endTime) noexcept |
| Set the start and end times for the simulation. | |
| void | setSimSamplingRate (const RealType rate) noexcept |
| Set the simulation sampling rate. | |
| void | setRate (RealType rateValue) |
| Set the rendering sample rate. | |
| void | setRandomSeed (const unsigned seed) noexcept |
| Set the random seed. | |
| void | setAdcBits (const unsigned bits) noexcept |
| Set the ADC quantization bits. | |
| void | setOversampleRatio (unsigned ratio) |
| Set the oversampling ratio. | |
| void | setOrigin (const double lat, const double lon, const double alt) noexcept |
| Set the geodetic origin for ENU KML/geospatial export. | |
| double | originLatitude () noexcept |
| Gets the KML/geospatial export origin latitude. | |
| double | originLongitude () noexcept |
| Gets the KML/geospatial export origin longitude. | |
| double | originAltitude () noexcept |
| Gets the KML/geospatial export origin altitude. | |
| std::expected< void, std::string > | setThreads (const unsigned threads) noexcept |
| Set the number of worker threads. | |
| void | setCoordinateSystem (const CoordinateFrame frame, const int zone, const bool north) noexcept |
| Set the coordinate system for KML/geospatial export. | |
| CoordinateFrame | coordinateFrame () noexcept |
| Gets the KML/geospatial export coordinate frame. | |
| RotationAngleUnit | rotationAngleUnit () noexcept |
| Gets the external rotation angle unit. | |
| int | utmZone () noexcept |
| Gets the configured KML UTM zone. | |
| bool | utmNorthHemisphere () noexcept |
| Gets the configured KML UTM hemisphere. | |
| void | setRotationAngleUnit (const RotationAngleUnit unit) noexcept |
| Sets the external rotation angle unit. | |
| constexpr std::string_view | rotationAngleUnitToken (const RotationAngleUnit unit) noexcept |
| Converts a rotation angle unit to its XML token. | |
| std::optional< RotationAngleUnit > | rotationAngleUnitFromToken (const std::string_view token) noexcept |
| Parses a rotation angle unit from an XML token. | |
| NLOHMANN_JSON_SERIALIZE_ENUM (CoordinateFrame, {{CoordinateFrame::ENU, "ENU"}, {CoordinateFrame::UTM, "UTM"}, {CoordinateFrame::ECEF, "ECEF"}}) NLOHMANN_JSON_SERIALIZE_ENUM(RotationAngleUnit | |
Variables | |
| Parameters | params |
| Global simulation parameter state. | |
|
strong |
Defines the coordinate systems supported for KML/geospatial export.
| Enumerator | |
|---|---|
| ENU | East-North-Up local tangent plane (default) |
| UTM | Universal Transverse Mercator. |
| ECEF | Earth-Centered, Earth-Fixed. |
Definition at line 30 of file parameters.h.
|
strong |
Defines the units used at external rotation-path boundaries.
| Enumerator | |
|---|---|
| Degrees | Compass azimuth and elevation expressed in degrees. |
| Radians | Compass azimuth and elevation expressed in radians. |
Definition at line 41 of file parameters.h.
|
noexcept |
Get the ADC quantization bits.
Definition at line 133 of file parameters.h.
Referenced by processing::buildReceiverStreamDescriptor(), and processing::quantizeAndScaleWindow().
Here is the caller graph for this function:
|
noexcept |
Get the Boltzmann constant.
Definition at line 97 of file parameters.h.
Referenced by processing::applyThermalNoise(), and processing::applyThermalNoiseAtSampleRate().
Here is the caller graph for this function:
|
noexcept |
Get the speed of light.
Definition at line 91 of file parameters.h.
Referenced by simulation::calculateStreamingDirectPathContribution(), simulation::calculateStreamingReflectedPathContribution(), fers_get_antenna_pattern(), simulation::solveRe(), and simulation::solveReDirect().
Here is the caller graph for this function:
|
noexcept |
Gets the KML/geospatial export coordinate frame.
Definition at line 321 of file parameters.h.
|
noexcept |
Get the end time for the simulation.
Definition at line 109 of file parameters.h.
Referenced by core::World::earliestPhaseNoiseLookupStart(), serial::Hdf5OutputSink::Impl::expectedStreamingSamples(), radar::Receiver::flushFmcwIfResampling(), fers_signal::from_json(), radar::Receiver::getWindowCount(), core::SimulationEngine::handleRxPulsedWindowEnd(), core::SimulationEngine::handleRxStreamingEnd(), core::SimulationEngine::handleTxPulsedStart(), core::OutputMetadataCollector::OutputMetadataCollector(), radar::processRawSchedule(), core::projectSimulationMemory(), core::World::scheduleInitialEvents(), and setTime().
Here is the caller graph for this function:Gets the maximum supported oversampling ratio.
Definition at line 157 of file parameters.h.
Referenced by validateOversampleRatio().
Here is the caller graph for this function:| params::NLOHMANN_JSON_SERIALIZE_ENUM | ( | CoordinateFrame | , |
| {{CoordinateFrame::ENU, "ENU"}, {CoordinateFrame::UTM, "UTM"}, {CoordinateFrame::ECEF, "ECEF"}} | |||
| ) |
|
noexcept |
Gets the KML/geospatial export origin altitude.
Definition at line 285 of file parameters.h.
|
noexcept |
Gets the KML/geospatial export origin latitude.
Definition at line 273 of file parameters.h.
|
noexcept |
Gets the KML/geospatial export origin longitude.
Definition at line 279 of file parameters.h.
|
noexcept |
Get the oversampling ratio.
Definition at line 151 of file parameters.h.
Referenced by processing::pipeline::applyDownsampling(), processing::pipeline::applyPulsedInterference(), processing::applyThermalNoise(), simulation::CwPhaseNoiseLookup::build(), fers_signal::downsample(), fers_signal::Signal::load(), core::OutputMetadataCollector::OutputMetadataCollector(), core::SimulationEngine::processStreamingPhysics(), core::projectSimulationMemory(), processing::renderWindow(), processing::runPulsedFinalizer(), radar::Transmitter::setPrf(), radar::Receiver::setWindowProperties(), and fers_signal::upsample().
Here is the caller graph for this function:
|
noexcept |
Get the random seed.
Definition at line 127 of file parameters.h.
|
noexcept |
Get the rendering sample rate.
Definition at line 121 of file parameters.h.
Referenced by serial::addChunkToFile(), processing::pipeline::applyPulsedInterference(), processing::applyThermalNoise(), simulation::CwPhaseNoiseLookup::build(), processing::pipeline::exportStreamingToHdf5(), noise::ClockModelGenerator::getSample(), core::OutputMetadataCollector::OutputMetadataCollector(), core::SimulationEngine::processStreamingPhysics(), core::projectSimulationMemory(), processing::renderWindow(), processing::runPulsedFinalizer(), radar::Transmitter::setPrf(), setSimSamplingRate(), and radar::Receiver::setWindowProperties().
Here is the caller graph for this function:
|
noexcept |
Get the render filter length.
Definition at line 139 of file parameters.h.
Referenced by fers_signal::downsample(), fers_signal::DownsamplingSink::DownsamplingSink(), fers_signal::Signal::renderSlice(), and fers_signal::upsample().
Here is the caller graph for this function:
|
noexcept |
Get the number of worker threads.
Definition at line 145 of file parameters.h.
|
noexcept |
Gets the external rotation angle unit.
Definition at line 327 of file parameters.h.
Referenced by math::from_json(), serial::xml_serializer_utils::serializeRotation(), math::to_json(), and serial::update_platform_paths_from_json().
Here is the caller graph for this function:
|
noexcept |
Parses a rotation angle unit from an XML token.
| token | The token to parse. |
Definition at line 362 of file parameters.h.
References Degrees, max, and Radians.
Referenced by serial::xml_parser_utils::parseRotationAngleUnit().
Here is the caller graph for this function:
|
constexprnoexcept |
Converts a rotation angle unit to its XML token.
| unit | The rotation angle unit. |
Definition at line 352 of file parameters.h.
References Radians.
Referenced by serial::kml_generator_utils::generateDirectionalAntennaKml(), and serial::xml_serializer_utils::serializeParameters().
Here is the caller graph for this function:Set the ADC quantization bits.
| bits | The new ADC quantization bits. |
Definition at line 237 of file parameters.h.
References logging::DEBUG, LOG, and max.
Set the speed of light.
| cValue | The new speed of light. |
Definition at line 181 of file parameters.h.
References logging::INFO, LOG, and max.
|
noexcept |
Set the coordinate system for KML/geospatial export.
| frame | The KML coordinate frame (ENU, UTM, ECEF). |
| zone | The KML UTM zone, if applicable. |
| north | The KML UTM hemisphere (true for North), if applicable. |
Definition at line 310 of file parameters.h.
References max.
Set the geodetic origin for ENU KML/geospatial export.
| lat | The latitude of the KML origin. |
| lon | The longitude of the KML origin. |
| alt | The altitude of the KML origin (MSL). |
Definition at line 261 of file parameters.h.
References logging::INFO, LOG, and max.
Set the oversampling ratio.
| ratio | The new oversampling ratio. |
| std::runtime_error | if the ratio is zero. |
Definition at line 248 of file parameters.h.
References logging::DEBUG, LOG, and validateOversampleRatio().
Here is the call graph for this function:Set the random seed.
| seed | The new random seed value. |
Definition at line 227 of file parameters.h.
References logging::DEBUG, LOG, and max.
Set the rendering sample rate.
| rateValue | The new sample rate for rendering. |
Definition at line 213 of file parameters.h.
References logging::DEBUG, LOG, and max.
|
noexcept |
Sets the external rotation angle unit.
| unit | The rotation angle unit to store. |
Definition at line 345 of file parameters.h.
Set the simulation sampling rate.
| rate | The new simulation sampling rate. |
Definition at line 203 of file parameters.h.
References logging::DEBUG, LOG, and rate().
Here is the call graph for this function:Set the number of worker threads.
| threads | The number of worker threads. |
std::expected<void, std::string> indicating success or an error message if the number of threads is invalid. Definition at line 293 of file parameters.h.
References logging::INFO, LOG, and max.
Referenced by fers_set_thread_count().
Here is the caller graph for this function:Set the start and end times for the simulation.
| startTime | Start time for the simulation. |
| endTime | End time for the simulation. |
Definition at line 192 of file parameters.h.
References endTime(), logging::INFO, LOG, and startTime().
Here is the call graph for this function:
|
noexcept |
Get the simulation sampling rate.
Definition at line 115 of file parameters.h.
Referenced by simulation::calculateResponse().
Here is the caller graph for this function:
|
noexcept |
Get the start time for the simulation.
Definition at line 103 of file parameters.h.
Referenced by processing::pipeline::applyPulsedInterference(), core::World::earliestPhaseNoiseLookupStart(), serial::Hdf5OutputSink::Impl::expectedStreamingSamples(), processing::pipeline::exportStreamingToHdf5(), fers_signal::from_json(), radar::Receiver::getWindowCount(), serial::vita49::Vita49OutputSink::initializeRun(), core::OutputMetadataCollector::OutputMetadataCollector(), radar::processRawSchedule(), core::projectSimulationMemory(), core::World::scheduleInitialEvents(), setTime(), and core::SimulationEngine::SimulationEngine().
Here is the caller graph for this function:
|
noexcept |
Gets the configured KML UTM hemisphere.
Definition at line 339 of file parameters.h.
|
noexcept |
Gets the configured KML UTM zone.
Definition at line 333 of file parameters.h.
Validates that an oversampling ratio is supported.
| ratio | The oversampling ratio to validate. |
| std::runtime_error | if the ratio is outside the supported range. |
Definition at line 164 of file parameters.h.
References maxSupportedOversampleRatio().
Referenced by serial::xml_parser_utils::parseOptionalNumericParameters(), and setOversampleRatio().
Here is the call graph for this function:
Here is the caller graph for this function:| Parameters params::params |
Global simulation parameter state.
Definition at line 85 of file parameters.h.
Referenced by fers_load_scenario_from_xml_file(), fers_load_scenario_from_xml_string(), serial::KmlGenerator::generateKml(), core::OutputMetadataCollector::OutputMetadataCollector(), serial::parseSimulation(), serial::parseSimulationFromString(), serial::xml_parser_utils::processParsedDocument(), core::runEventDrivenSim(), serial::world_to_json(), and serial::world_to_xml_string().