|
FERS 0.1.0
The Flexible Extensible Radar Simulator
|
Namespaces | |
| namespace | fmcw_validation |
| namespace | kml_generator_utils |
| namespace | rotation_angle_utils |
| namespace | rotation_warning_utils |
| namespace | vita49 |
| namespace | xml_parser_utils |
| namespace | xml_serializer_utils |
Classes | |
| class | Hdf5OutputSink |
| class | KmlGenerator |
| Generates KML files from FERS simulation scenarios for geographical visualization. More... | |
| class | Response |
| Manages radar signal responses from a transmitter. More... | |
Functions | |
| std::vector< std::vector< RealType > > | readPattern (const std::string &name, const std::string &datasetName) |
| Reads a 2D antenna gain pattern from the named dataset. | |
| void | writeOutputFileMetadataAttributes (HighFive::File &file, const core::OutputFileMetadata &metadata) |
| Writes additive FERS output metadata attributes to an open HDF5 file. | |
| void | readPulseData (const std::string &name, std::vector< ComplexType > &data) |
| Reads pulse data from an HDF5 file. | |
| void | addChunkToFile (HighFive::File &file, const std::vector< ComplexType > &data, RealType time, RealType fullscale, unsigned count, const core::PulseChunkMetadata *metadata=nullptr) |
| Adds a chunk of data to an HDF5 file. | |
| std::unique_ptr< core::ReceiverOutputSink > | makeHdf5OutputSink (std::string output_dir, std::shared_ptr< core::OutputMetadataCollector > metadata_collector) |
| std::unique_ptr< antenna::Antenna > | parse_antenna_from_json (const nlohmann::json &j) |
| Parses an Antenna from JSON. | |
| std::unique_ptr< fers_signal::RadarSignal > | parse_waveform_from_json (const nlohmann::json &j) |
| Parses a Waveform from JSON. | |
| std::unique_ptr< timing::PrototypeTiming > | parse_timing_from_json (const nlohmann::json &j, SimId id) |
| Parses a timing prototype from JSON. | |
| void | update_parameters_from_json (const nlohmann::json &j, std::mt19937 &masterSeeder) |
| Updates global simulation parameters from JSON. | |
| std::unique_ptr< antenna::Antenna > | parse_required_update_antenna (const nlohmann::json &j) |
| bool | antenna_pattern_requires_replacement (const std::string_view pattern, const antenna::Antenna *ant) noexcept |
| void | update_existing_antenna_pattern_fields (const nlohmann::json &j, antenna::Antenna *ant, core::World &world) |
| void | update_antenna_from_json (const nlohmann::json &j, antenna::Antenna *ant, core::World &world) |
| Updates an antenna from JSON without full context recreation. | |
| void | update_platform_paths_from_json (const nlohmann::json &j, radar::Platform *plat) |
| Updates a platform's motion and rotation paths from JSON. | |
| void | update_transmitter_mode_from_json (const nlohmann::json &j, radar::Transmitter &tx) |
| void | update_transmitter_waveform_from_json (const nlohmann::json &j, radar::Transmitter &tx, core::World &world) |
| void | update_transmitter_antenna_from_json (const nlohmann::json &j, radar::Transmitter &tx, core::World &world) |
| void | update_transmitter_timing_from_json (const nlohmann::json &j, radar::Transmitter &tx, core::World &world) |
| void | validate_transmitter_signal_state (const radar::Transmitter &tx, const std::string &owner) |
| void | update_transmitter_schedule_from_json (const nlohmann::json &j, radar::Transmitter &tx, const std::string &owner) |
| void | update_transmitter_from_json (const nlohmann::json &j, radar::Transmitter *tx, core::World &world, std::mt19937 &masterSeeder) |
| Updates a transmitter from JSON without full context recreation. | |
| void | update_receiver_mode_from_json (const nlohmann::json &j, radar::Receiver &rx) |
| void | update_receiver_noise_and_flags_from_json (const nlohmann::json &j, radar::Receiver &rx) |
| void | update_receiver_antenna_from_json (const nlohmann::json &j, radar::Receiver &rx, core::World &world) |
| void | update_receiver_timing_from_json (const nlohmann::json &j, radar::Receiver &rx, core::World &world) |
| void | update_receiver_schedule_from_json (const nlohmann::json &j, radar::Receiver &rx) |
| void | update_receiver_from_json (const nlohmann::json &j, radar::Receiver *rx, core::World &world, std::mt19937 &masterSeeder) |
| Updates a receiver from JSON without full context recreation. | |
| nlohmann::json | monostatic_transmitter_json (const nlohmann::json &j) |
| void | update_monostatic_receiver_basics (const nlohmann::json &j, const radar::Transmitter &tx, radar::Receiver &rx, core::World &world) |
| void | update_monostatic_timing_from_json (const nlohmann::json &j, radar::Transmitter &tx, radar::Receiver &rx, core::World &world) |
| void | update_monostatic_schedule_from_json (const nlohmann::json &j, radar::Transmitter &tx, radar::Receiver &rx) |
| void | update_monostatic_from_json (const nlohmann::json &j, radar::Transmitter *tx, radar::Receiver *rx, core::World &world, std::mt19937 &masterSeeder) |
| Updates a monostatic radar from JSON without full context recreation. | |
| void | update_target_from_json (const nlohmann::json &j, radar::Target *tgt, core::World &world, std::mt19937 &masterSeeder) |
| Updates a target from JSON without full context recreation. | |
| void | update_timing_from_json (const nlohmann::json &j, core::World &world, SimId id) |
| Updates a timing source from JSON without full context recreation. | |
| nlohmann::json | world_to_json (const core::World &world) |
| Serializes the entire simulation world into a nlohmann::json object. | |
| void | json_to_world (const nlohmann::json &j, core::World &world, std::mt19937 &masterSeeder) |
| Deserializes a nlohmann::json object and reconstructs the simulation world. | |
| std::unique_ptr< RadarSignal > | loadWaveformFromFile (const std::string &name, const std::string &filename, RealType power, RealType carrierFreq, const SimId id=0) |
| Loads a radar waveform from a file and returns a RadarSignal object. | |
| void | parseSimulation (const std::string &filename, core::World *world, bool validate, std::mt19937 &masterSeeder) |
| Parses a simulation configuration from an XML file. | |
| void | parseSimulationFromString (const std::string &xmlContent, core::World *world, bool validate, std::mt19937 &masterSeeder) |
| Parses a simulation configuration directly from an XML string in memory. | |
| std::string | world_to_xml_string (const core::World &world) |
| Serializes the entire simulation world into an XML formatted string. | |
Variables | |
| std::mutex | hdf5_global_mutex |
| Global mutex to protect all HDF5 C-library calls, which are not thread-safe. | |
| void serial::addChunkToFile | ( | HighFive::File & | file, |
| const std::vector< ComplexType > & | data, | ||
| RealType | time, | ||
| RealType | fullscale, | ||
| unsigned | count, | ||
| const core::PulseChunkMetadata * | metadata = nullptr |
||
| ) |
Adds a chunk of data to an HDF5 file.
| file | The HDF5 file where the chunk is written. |
| data | A vector of complex data to be written. |
| time | The time attribute associated with the chunk. |
| fullscale | The fullscale attribute for the chunk. |
| count | The sequential count number for chunk naming. |
| std::runtime_error | If there is an error writing data or setting attributes. |
Definition at line 271 of file hdf5_handler.cpp.
References c, core::PulseChunkMetadata::chunk_index, hdf5_global_mutex, LOG, max, params::rate(), core::PulseChunkMetadata::sample_count, core::PulseChunkMetadata::sample_end_exclusive, and core::PulseChunkMetadata::sample_start.
Referenced by serial::Hdf5OutputSink::Impl::writePulsedBlock().
Here is the call graph for this function:
Here is the caller graph for this function:
|
noexcept |
Definition at line 1732 of file json_serializer.cpp.
References max.
Referenced by update_antenna_from_json().
Here is the caller graph for this function:| void serial::json_to_world | ( | const nlohmann::json & | j, |
| core::World & | world, | ||
| std::mt19937 & | masterSeeder | ||
| ) |
Deserializes a nlohmann::json object and reconstructs the simulation world.
This function is the counterpart to world_to_json. It performs a full state replacement by clearing the existing world and rebuilding it from the provided JSON. This "replace" strategy simplifies state management, guaranteeing that the C++ core is always perfectly synchronized with the state provided by the UI without requiring complex diffing or patching logic. It also handles re-seeding the master random number generator to ensure that loading a state also restores its deterministic behavior.
| j | The json object to deserialize. |
| world | The world object to populate. |
| masterSeeder | A reference to the master random number generator, which will be re-seeded. |
Definition at line 2293 of file json_serializer.cpp.
References max, and core::World::swap().
Referenced by fers_update_scenario_from_json().
Here is the call graph for this function:
Here is the caller graph for this function:| std::unique_ptr< fers_signal::RadarSignal > serial::loadWaveformFromFile | ( | const std::string & | name, |
| const std::string & | filename, | ||
| RealType | power, | ||
| RealType | carrierFreq, | ||
| const SimId | id = 0 |
||
| ) |
Loads a radar waveform from a file and returns a RadarSignal object.
| name | The name of the radar signal. |
| filename | The path to the file containing the waveform data. |
| power | The power of the radar signal in the waveform. |
| carrierFreq | The carrier frequency of the radar signal. |
| std::runtime_error | If the file cannot be opened or the file format is unrecognized. |
Definition at line 157 of file waveform_factory.cpp.
References logging::FATAL, LOG, and max.
Referenced by serial::xml_parser_utils::createDefaultAssetLoaders(), and fers_signal::from_json().
Here is the caller graph for this function:| std::unique_ptr< core::ReceiverOutputSink > serial::makeHdf5OutputSink | ( | std::string | output_dir, |
| std::shared_ptr< core::OutputMetadataCollector > | metadata_collector | ||
| ) |
Definition at line 373 of file hdf5_output_sink.cpp.
Referenced by core::runEventDrivenSim().
Here is the caller graph for this function:| nlohmann::json serial::monostatic_transmitter_json | ( | const nlohmann::json & | j | ) |
Definition at line 2109 of file json_serializer.cpp.
References max.
Referenced by update_monostatic_from_json().
Here is the caller graph for this function:| std::unique_ptr< antenna::Antenna > serial::parse_antenna_from_json | ( | const nlohmann::json & | j | ) |
Parses an Antenna from JSON.
Definition at line 1691 of file json_serializer.cpp.
References antenna::from_json(), and max.
Referenced by parse_required_update_antenna().
Here is the call graph for this function:
Here is the caller graph for this function:| std::unique_ptr< antenna::Antenna > serial::parse_required_update_antenna | ( | const nlohmann::json & | j | ) |
Definition at line 1719 of file json_serializer.cpp.
References max, and parse_antenna_from_json().
Referenced by update_antenna_from_json(), and update_existing_antenna_pattern_fields().
Here is the call graph for this function:
Here is the caller graph for this function:| std::unique_ptr< timing::PrototypeTiming > serial::parse_timing_from_json | ( | const nlohmann::json & | j, |
| const SimId | id | ||
| ) |
Parses a timing prototype from JSON.
Definition at line 1705 of file json_serializer.cpp.
References max.
Referenced by update_timing_from_json().
Here is the caller graph for this function:| std::unique_ptr< fers_signal::RadarSignal > serial::parse_waveform_from_json | ( | const nlohmann::json & | j | ) |
Parses a Waveform from JSON.
Definition at line 1698 of file json_serializer.cpp.
References fers_signal::from_json(), and max.
Referenced by fers_update_waveform_from_json().
Here is the call graph for this function:
Here is the caller graph for this function:| void serial::parseSimulation | ( | const std::string & | filename, |
| core::World * | world, | ||
| bool | validate, | ||
| std::mt19937 & | masterSeeder | ||
| ) |
Parses a simulation configuration from an XML file.
This function acts as the primary facade for the simulator's XML loading pipeline. It performs the following steps:
World and global parameters (params::params).<include> files into the main document.params::params with the parsed context parameters.| filename | The filesystem path to the main XML simulation script. |
| world | A pointer to the World object to be populated with parsed components. |
| validate | A boolean indicating whether to perform strict XML schema validation. |
| masterSeeder | A reference to the master random number generator used for assigning independent seeds to components. |
| XmlException | if the XML is malformed, fails schema validation, or contains invalid scenario logic. |
| std::runtime_error | for file I/O errors or other critical setup issues. |
Definition at line 25 of file xml_parser.cpp.
References serial::xml_parser_utils::addIncludeFilesToMainDocument(), core::World::clear(), serial::xml_parser_utils::createDefaultAssetLoaders(), logging::DEBUG, LOG, max, params::params, serial::xml_parser_utils::processParsedDocument(), params::Parameters::reset(), and serial::xml_parser_utils::validateXml().
Referenced by fers_load_scenario_from_xml_file().
Here is the call graph for this function:
Here is the caller graph for this function:| void serial::parseSimulationFromString | ( | const std::string & | xmlContent, |
| core::World * | world, | ||
| bool | validate, | ||
| std::mt19937 & | masterSeeder | ||
| ) |
Parses a simulation configuration directly from an XML string in memory.
Similar to parseSimulation, but operates on a raw string instead of a file. Because it does not load from the filesystem, <include> tags are ignored, and any relative paths for file-backed assets (like waveforms or antennas) will be resolved against the current working directory (.).
| xmlContent | The raw XML string containing the scenario definition. |
| world | A pointer to the World object to be populated with parsed components. |
| validate | A boolean indicating whether to perform strict XML schema validation. |
| masterSeeder | A reference to the master random number generator used for assigning independent seeds to components. |
| XmlException | if the XML string is malformed, fails schema validation, or contains invalid scenario logic. |
Definition at line 61 of file xml_parser.cpp.
References core::World::clear(), serial::xml_parser_utils::createDefaultAssetLoaders(), logging::DEBUG, LOG, max, params::params, serial::xml_parser_utils::processParsedDocument(), params::Parameters::reset(), and serial::xml_parser_utils::validateXml().
Referenced by fers_load_scenario_from_xml_string().
Here is the call graph for this function:
Here is the caller graph for this function:| std::vector< std::vector< RealType > > serial::readPattern | ( | const std::string & | name, |
| const std::string & | datasetName | ||
| ) |
Reads a 2D antenna gain pattern from the named dataset.
Reads a 2D pattern dataset from an HDF5 file.
| name | The name of the HDF5 file. |
| datasetName | The name of the dataset to be read. |
| std::runtime_error | If there is an error handling the file or if the dataset dimensions are invalid. |
Definition at line 332 of file hdf5_handler.cpp.
References hdf5_global_mutex, LOG, and max.
| void serial::readPulseData | ( | const std::string & | name, |
| std::vector< ComplexType > & | data | ||
| ) |
Reads pulse data from an HDF5 file.
| name | The name of the HDF5 file. |
| data | A reference to a vector where the complex data will be stored. |
| std::runtime_error | If the file does not exist or the datasets "I" and "Q" have mismatched sizes. |
Definition at line 222 of file hdf5_handler.cpp.
References hdf5_global_mutex, LOG, and max.
| void serial::update_antenna_from_json | ( | const nlohmann::json & | j, |
| antenna::Antenna * | ant, | ||
| core::World & | world | ||
| ) |
Updates an antenna from JSON without full context recreation.
Definition at line 1802 of file json_serializer.cpp.
References antenna_pattern_requires_replacement(), max, parse_required_update_antenna(), core::World::replace(), and update_existing_antenna_pattern_fields().
Referenced by fers_update_antenna_from_json().
Here is the call graph for this function:
Here is the caller graph for this function:| void serial::update_existing_antenna_pattern_fields | ( | const nlohmann::json & | j, |
| antenna::Antenna * | ant, | ||
| core::World & | world | ||
| ) |
Definition at line 1765 of file json_serializer.cpp.
References max, parse_required_update_antenna(), and core::World::replace().
Referenced by update_antenna_from_json().
Here is the call graph for this function:
Here is the caller graph for this function:| void serial::update_monostatic_from_json | ( | const nlohmann::json & | j, |
| radar::Transmitter * | tx, | ||
| radar::Receiver * | rx, | ||
| core::World & | world, | ||
| std::mt19937 & | masterSeeder | ||
| ) |
Updates a monostatic radar from JSON without full context recreation.
Definition at line 2180 of file json_serializer.cpp.
References max, monostatic_transmitter_json(), core::World::resolveReceiverDechirpReferences(), update_monostatic_receiver_basics(), update_monostatic_schedule_from_json(), update_monostatic_timing_from_json(), update_transmitter_from_json(), and validate_transmitter_signal_state().
Referenced by fers_update_monostatic_from_json().
Here is the call graph for this function:
Here is the caller graph for this function:| void serial::update_monostatic_receiver_basics | ( | const nlohmann::json & | j, |
| const radar::Transmitter & | tx, | ||
| radar::Receiver & | rx, | ||
| core::World & | world | ||
| ) |
Definition at line 2123 of file json_serializer.cpp.
References core::World::findAntenna(), max, radar::PULSED_MODE, and update_receiver_noise_and_flags_from_json().
Referenced by update_monostatic_from_json().
Here is the call graph for this function:
Here is the caller graph for this function:| void serial::update_monostatic_schedule_from_json | ( | const nlohmann::json & | j, |
| radar::Transmitter & | tx, | ||
| radar::Receiver & | rx | ||
| ) |
Definition at line 2162 of file json_serializer.cpp.
References max, radar::processRawSchedule(), and radar::PULSED_MODE.
Referenced by update_monostatic_from_json().
Here is the call graph for this function:
Here is the caller graph for this function:| void serial::update_monostatic_timing_from_json | ( | const nlohmann::json & | j, |
| radar::Transmitter & | tx, | ||
| radar::Receiver & | rx, | ||
| core::World & | world | ||
| ) |
Definition at line 2142 of file json_serializer.cpp.
References core::World::findTiming(), and max.
Referenced by update_monostatic_from_json().
Here is the call graph for this function:
Here is the caller graph for this function:Updates global simulation parameters from JSON.
Definition at line 1712 of file json_serializer.cpp.
References max.
Referenced by fers_update_parameters_from_json().
Here is the caller graph for this function:| void serial::update_platform_paths_from_json | ( | const nlohmann::json & | j, |
| radar::Platform * | plat | ||
| ) |
Updates a platform's motion and rotation paths from JSON.
Definition at line 1816 of file json_serializer.cpp.
References serial::rotation_warning_utils::Angle, serial::rotation_angle_utils::external_rotation_rate_to_internal(), serial::rotation_angle_utils::external_rotation_to_internal(), max, serial::rotation_warning_utils::maybe_warn_about_rotation_value(), serial::rotation_warning_utils::Rate, and params::rotationAngleUnit().
Referenced by fers_update_platform_from_json().
Here is the call graph for this function:
Here is the caller graph for this function:| void serial::update_receiver_antenna_from_json | ( | const nlohmann::json & | j, |
| radar::Receiver & | rx, | ||
| core::World & | world | ||
| ) |
Definition at line 2046 of file json_serializer.cpp.
References core::World::findAntenna(), and max.
Referenced by update_receiver_from_json().
Here is the call graph for this function:
Here is the caller graph for this function:| void serial::update_receiver_from_json | ( | const nlohmann::json & | j, |
| radar::Receiver * | rx, | ||
| core::World & | world, | ||
| std::mt19937 & | |||
| ) |
Updates a receiver from JSON without full context recreation.
Definition at line 2091 of file json_serializer.cpp.
References max, core::World::resolveReceiverDechirpReferences(), update_receiver_antenna_from_json(), update_receiver_mode_from_json(), update_receiver_noise_and_flags_from_json(), update_receiver_schedule_from_json(), and update_receiver_timing_from_json().
Referenced by fers_update_receiver_from_json().
Here is the call graph for this function:
Here is the caller graph for this function:| void serial::update_receiver_mode_from_json | ( | const nlohmann::json & | j, |
| radar::Receiver & | rx | ||
| ) |
Definition at line 2005 of file json_serializer.cpp.
References radar::CW_MODE, radar::FMCW_MODE, max, and radar::PULSED_MODE.
Referenced by update_receiver_from_json().
Here is the caller graph for this function:| void serial::update_receiver_noise_and_flags_from_json | ( | const nlohmann::json & | j, |
| radar::Receiver & | rx | ||
| ) |
Definition at line 2025 of file json_serializer.cpp.
References radar::Receiver::FLAG_NODIRECT, radar::Receiver::FLAG_NOPROPLOSS, and max.
Referenced by update_monostatic_receiver_basics(), and update_receiver_from_json().
Here is the caller graph for this function:| void serial::update_receiver_schedule_from_json | ( | const nlohmann::json & | j, |
| radar::Receiver & | rx | ||
| ) |
Definition at line 2079 of file json_serializer.cpp.
References max, radar::processRawSchedule(), and radar::PULSED_MODE.
Referenced by update_receiver_from_json().
Here is the call graph for this function:
Here is the caller graph for this function:| void serial::update_receiver_timing_from_json | ( | const nlohmann::json & | j, |
| radar::Receiver & | rx, | ||
| core::World & | world | ||
| ) |
Definition at line 2061 of file json_serializer.cpp.
References core::World::findTiming(), and max.
Referenced by update_receiver_from_json().
Here is the call graph for this function:
Here is the caller graph for this function:| void serial::update_target_from_json | ( | const nlohmann::json & | j, |
| radar::Target * | existing_tgt, | ||
| core::World & | world, | ||
| std::mt19937 & | |||
| ) |
Updates a target from JSON without full context recreation.
Definition at line 2197 of file json_serializer.cpp.
References radar::createFileTarget(), radar::createIsoTarget(), max, and core::World::replace().
Referenced by fers_update_target_from_json().
Here is the call graph for this function:
Here is the caller graph for this function:| void serial::update_timing_from_json | ( | const nlohmann::json & | j, |
| core::World & | world, | ||
| const SimId | id | ||
| ) |
Updates a timing source from JSON without full context recreation.
Definition at line 2242 of file json_serializer.cpp.
References core::World::findTiming(), max, parse_timing_from_json(), and core::World::replace().
Referenced by fers_update_timing_from_json().
Here is the call graph for this function:
Here is the caller graph for this function:| void serial::update_transmitter_antenna_from_json | ( | const nlohmann::json & | j, |
| radar::Transmitter & | tx, | ||
| core::World & | world | ||
| ) |
Definition at line 1925 of file json_serializer.cpp.
References core::World::findAntenna(), and max.
Referenced by update_transmitter_from_json().
Here is the call graph for this function:
Here is the caller graph for this function:| void serial::update_transmitter_from_json | ( | const nlohmann::json & | j, |
| radar::Transmitter * | tx, | ||
| core::World & | world, | ||
| std::mt19937 & | |||
| ) |
Updates a transmitter from JSON without full context recreation.
Definition at line 1990 of file json_serializer.cpp.
References max, update_transmitter_antenna_from_json(), update_transmitter_mode_from_json(), update_transmitter_schedule_from_json(), update_transmitter_timing_from_json(), update_transmitter_waveform_from_json(), and validate_transmitter_signal_state().
Referenced by fers_update_transmitter_from_json(), and update_monostatic_from_json().
Here is the call graph for this function:
Here is the caller graph for this function:| void serial::update_transmitter_mode_from_json | ( | const nlohmann::json & | j, |
| radar::Transmitter & | tx | ||
| ) |
Definition at line 1885 of file json_serializer.cpp.
References radar::CW_MODE, radar::FMCW_MODE, max, and radar::PULSED_MODE.
Referenced by update_transmitter_from_json().
Here is the caller graph for this function:| void serial::update_transmitter_schedule_from_json | ( | const nlohmann::json & | j, |
| radar::Transmitter & | tx, | ||
| const std::string & | owner | ||
| ) |
Definition at line 1972 of file json_serializer.cpp.
References max, radar::processRawSchedule(), and radar::PULSED_MODE.
Referenced by update_transmitter_from_json().
Here is the call graph for this function:
Here is the caller graph for this function:| void serial::update_transmitter_timing_from_json | ( | const nlohmann::json & | j, |
| radar::Transmitter & | tx, | ||
| core::World & | world | ||
| ) |
Definition at line 1940 of file json_serializer.cpp.
References core::World::findTiming(), and max.
Referenced by update_transmitter_from_json().
Here is the call graph for this function:
Here is the caller graph for this function:| void serial::update_transmitter_waveform_from_json | ( | const nlohmann::json & | j, |
| radar::Transmitter & | tx, | ||
| core::World & | world | ||
| ) |
Definition at line 1908 of file json_serializer.cpp.
References core::World::findWaveform(), and max.
Referenced by update_transmitter_from_json().
Here is the call graph for this function:
Here is the caller graph for this function:| void serial::validate_transmitter_signal_state | ( | const radar::Transmitter & | tx, |
| const std::string & | owner | ||
| ) |
Definition at line 1958 of file json_serializer.cpp.
References max.
Referenced by update_monostatic_from_json(), and update_transmitter_from_json().
Here is the caller graph for this function:| nlohmann::json serial::world_to_json | ( | const core::World & | world | ) |
Serializes the entire simulation world into a nlohmann::json object.
This function traverses the core::World object model and constructs a JSON representation. It is designed to produce a format that is convenient for the frontend to consume. This involves translating internal data formats (e.g., angles in radians) to a more UI-friendly format (e.g., compass degrees) and restructuring complex object relationships (like monostatic radars) into simpler representations.
| world | The world object to serialize. |
Definition at line 2259 of file json_serializer.cpp.
References core::World::getAntennas(), core::World::getPlatforms(), core::World::getTimings(), core::World::getWaveforms(), max, params::params, and params::Parameters::simulation_name.
Referenced by fers_get_scenario_as_json().
Here is the call graph for this function:
Here is the caller graph for this function:| std::string serial::world_to_xml_string | ( | const core::World & | world | ) |
Serializes the entire simulation world into an XML formatted string.
This function serves as the reverse of the XML parser. It is essential for allowing users to modify a scenario in a UI and then export their changes back into a valid FERS XML file that can be used by the CLI or shared. It iterates through the in-memory core::World object and reconstructs the corresponding XML structure.
| world | The world object to serialize. |
Definition at line 26 of file xml_serializer.cpp.
References XmlElement::create(), core::World::getAntennas(), core::World::getPlatforms(), core::World::getTimings(), core::World::getWaveforms(), max, params::params, serial::xml_serializer_utils::serializeAntenna(), serial::xml_serializer_utils::serializeParameters(), serial::xml_serializer_utils::serializePlatform(), serial::xml_serializer_utils::serializeTiming(), and serial::xml_serializer_utils::serializeWaveform().
Referenced by fers_get_scenario_as_xml().
Here is the call graph for this function:
Here is the caller graph for this function:| void serial::writeOutputFileMetadataAttributes | ( | HighFive::File & | file, |
| const core::OutputFileMetadata & | metadata | ||
| ) |
Writes additive FERS output metadata attributes to an open HDF5 file.
The caller must hold hdf5_global_mutex.
Definition at line 214 of file hdf5_handler.cpp.
References max.
Referenced by serial::Hdf5OutputSink::Impl::closePulsedStream(), and processing::pipeline::exportStreamingToHdf5().
Here is the caller graph for this function:| std::mutex serial::hdf5_global_mutex |
Global mutex to protect all HDF5 C-library calls, which are not thread-safe.
Definition at line 31 of file hdf5_handler.cpp.
Referenced by addChunkToFile(), serial::Hdf5OutputSink::Impl::closePulsedStream(), processing::pipeline::exportStreamingToHdf5(), serial::Hdf5OutputSink::Impl::openStream(), readPattern(), and readPulseData().