FERS 1.0.0
The Flexible Extensible Radar Simulator
Loading...
Searching...
No Matches
finalizer.h
Go to the documentation of this file.
1// SPDX-License-Identifier: GPL-2.0-only
2//
3// Copyright (c) 2025-present FERS Contributors (see AUTHORS.md).
4//
5// See the GNU GPLv2 LICENSE file in the FERS project root for more information.
6
7/**
8 * @file finalizer.h
9 * @brief Declares the functions for the asynchronous receiver finalization pipelines.
10 */
11
12#pragma once
13
14#include <memory>
15#include <vector>
16
17namespace radar
18{
19 class Receiver;
20
21 class Target;
22}
23
24namespace pool
25{
26 class ThreadPool;
27}
28
29namespace core
30{
31 class ProgressReporter;
32}
33
34namespace processing
35{
36 /**
37 * @brief The main function for a dedicated pulsed-mode receiver finalizer thread.
38 *
39 * This function runs in a loop, dequeuing and processing RenderingJobs for a
40 * specific receiver. It handles all expensive rendering, signal processing,
41 * and I/O for that receiver's data.
42 *
43 * @param receiver A pointer to the pulsed-mode receiver to process.
44 * @param targets A pointer to the world's list of targets for interference calculation.
45 * @param reporter Shared pointer to the progress reporter for status updates.
46 */
47 void runPulsedFinalizer(radar::Receiver* receiver, const std::vector<std::unique_ptr<radar::Target>>* targets,
48 std::shared_ptr<core::ProgressReporter> reporter);
49
50 /**
51 * @brief The finalization task for a continuous-wave (CW) mode receiver.
52 *
53 * This function is submitted to the main thread pool when a CW receiver
54 * finishes its operation. It processes the entire collected I/Q buffer,
55 * applies interference and noise, and writes the final data to a file.
56 *
57 * @param receiver A pointer to the CW-mode receiver to finalize.
58 * @param pool A pointer to the main thread pool for parallelizing sub-tasks.
59 * @param reporter Shared pointer to the progress reporter for status updates.
60 */
62 std::shared_ptr<core::ProgressReporter> reporter);
63}
A simple thread pool implementation.
Definition thread_pool.h:29
Manages radar signal reception and response processing.
Definition receiver.h:36
void runPulsedFinalizer(radar::Receiver *receiver, const std::vector< std::unique_ptr< radar::Target > > *targets, std::shared_ptr< core::ProgressReporter > reporter)
The main function for a dedicated pulsed-mode receiver finalizer thread.
Definition finalizer.cpp:70
void finalizeCwReceiver(radar::Receiver *receiver, pool::ThreadPool *pool, std::shared_ptr< core::ProgressReporter > reporter)
The finalization task for a continuous-wave (CW) mode receiver.