|
FERS 1.0.0
The Flexible Extensible Radar Simulator
|
Classes | |
| class | Config |
| Configuration structure for the application. More... | |
| struct | Event |
| Represents a single event in the simulation's time-ordered queue. More... | |
| struct | EventComparator |
| A custom comparator for the event priority queue. More... | |
| class | ProgressReporter |
| A thread-safe wrapper for the simulation progress callback. More... | |
| struct | RenderingJob |
| A data packet containing all information needed to process one receive window. More... | |
| struct | SimulationState |
| Holds the dynamic global state of the simulation. More... | |
| class | World |
| The World class manages the simulator environment. More... | |
Enumerations | |
| enum class | EventType { TX_PULSED_START , RX_PULSED_WINDOW_START , RX_PULSED_WINDOW_END , TX_CW_START , TX_CW_END , RX_CW_START , RX_CW_END } |
| Enumerates the types of events that can occur in the simulation. More... | |
Functions | |
| RealType | besselJ1 (const RealType x) noexcept |
| Computes the Bessel function of the first kind (order 1) for a given value. | |
| unsigned | countProcessors () noexcept |
| Detects the number of CPUs on the machine. | |
| std::string | toString (const EventType type) |
| Converts an EventType enum to its string representation. | |
| void | runEventDrivenSim (World *world, pool::ThreadPool &pool, const std::function< void(const std::string &, int, int)> &progress_callback) |
| Runs the unified, event-driven radar simulation. | |
| void | showHelp (const char *programName) noexcept |
| Displays the help message. | |
| void | showVersion () noexcept |
| Displays the version information. | |
| std::expected< Config, std::string > | parseArguments (int argc, char *argv[]) noexcept |
| Parses command-line arguments. | |
|
strong |
Enumerates the types of events that can occur in the simulation.
Definition at line 27 of file sim_events.h.
Computes the Bessel function of the first kind (order 1) for a given value.
| x | The value for which the Bessel function is to be computed. |
Definition at line 28 of file portable_utils.h.
|
noexcept |
Detects the number of CPUs on the machine.
Definition at line 35 of file portable_utils.h.
References logging::ERROR, and LOG.
|
noexcept |
Parses command-line arguments.
Processes the command-line arguments, validating them and extracting configurations like script file, logging level, and thread count.
| argc | The argument count. |
| argv | The argument vector. |
Definition at line 201 of file arg_parser.cpp.
Referenced by main().
Here is the caller graph for this function:| void core::runEventDrivenSim | ( | World * | world, |
| pool::ThreadPool & | pool, | ||
| const std::function< void(const std::string &, int, int)> & | progress_callback | ||
| ) |
Runs the unified, event-driven radar simulation.
This function is the core engine of the simulator. It advances time by processing events from a global priority queue. It handles both pulsed and continuous-wave (CW) physics, dispatching finalization tasks to worker threads for asynchronous processing.
| world | A pointer to the simulation world containing all entities and state. |
| pool | A reference to the thread pool for executing tasks. |
| progress_callback | An optional callback function for reporting progress. |
Definition at line 57 of file sim_threading.cpp.
References simulation::calculateDirectPathContribution(), simulation::calculateReflectedPathContribution(), simulation::calculateResponse(), core::RenderingJob::duration, params::endTime(), processing::finalizeCwReceiver(), core::World::getEventQueue(), radar::Transmitter::getPrf(), core::World::getReceivers(), core::World::getSimulationState(), core::World::getTargets(), core::RenderingJob::ideal_start_time, LOG, params::oversampleRatio(), params::rate(), processing::runPulsedFinalizer(), RX_CW_END, RX_CW_START, RX_PULSED_WINDOW_END, RX_PULSED_WINDOW_START, radar::Receiver::setActive(), params::startTime(), TX_CW_END, TX_CW_START, and TX_PULSED_START.
Referenced by fers_run_simulation().
Here is the call graph for this function:
Here is the caller graph for this function:
|
noexcept |
Displays the help message.
| programName | The name of the program. |
Definition at line 189 of file arg_parser.cpp.
|
noexcept |
Displays the version information.
Definition at line 196 of file arg_parser.cpp.
| std::string core::toString | ( | const EventType | type | ) |
Converts an EventType enum to its string representation.
| type | The event type. |
Definition at line 72 of file sim_events.h.
References RX_CW_END, RX_CW_START, RX_PULSED_WINDOW_END, RX_PULSED_WINDOW_START, TX_CW_END, TX_CW_START, and TX_PULSED_START.
Referenced by core::World::dumpEventQueue().
Here is the caller graph for this function: