FERS 1.0.0
The Flexible Extensible Radar Simulator
Loading...
Searching...
No Matches
json_serializer.h File Reference

Provides functions to serialize and deserialize the simulation world to/from JSON. More...

#include <nlohmann/json.hpp>
#include <random>
#include "core/sim_id.h"
+ Include dependency graph for json_serializer.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  timing
 
namespace  antenna
 
namespace  fers_signal
 
namespace  radar
 
namespace  core
 
namespace  serial
 

Functions

nlohmann::json serial::world_to_json (const core::World &world)
 Serializes the entire simulation world into a nlohmann::json object.
 
void serial::update_platform_paths_from_json (const nlohmann::json &j, radar::Platform *plat)
 Updates a platform's motion and rotation paths from JSON.
 
std::unique_ptr< antenna::Antennaserial::parse_antenna_from_json (const nlohmann::json &j)
 Parses an Antenna from JSON.
 
std::unique_ptr< fers_signal::RadarSignalserial::parse_waveform_from_json (const nlohmann::json &j)
 Parses a Waveform from JSON.
 
std::unique_ptr< timing::PrototypeTimingserial::parse_timing_from_json (const nlohmann::json &j, SimId id)
 Parses a timing prototype from JSON.
 
void serial::update_parameters_from_json (const nlohmann::json &j, std::mt19937 &masterSeeder)
 Updates global simulation parameters from JSON.
 
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.
 
void serial::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 serial::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.
 
void serial::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 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.
 
void serial::update_timing_from_json (const nlohmann::json &j, core::World &world, SimId id)
 Updates a timing source from JSON without full context recreation.
 
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.
 

Detailed Description

Provides functions to serialize and deserialize the simulation world to/from JSON.

This module is the primary data interchange layer between the C++ core engine and the user interface. JSON was chosen as the format for its native support in web technologies (like the React/TypeScript frontend), its human-readability, and its lightweight nature. This serializer defines the contract for how C++ simulation objects are represented in JSON, enabling the UI to read, modify, and write back the entire simulation state.

Definition in file json_serializer.h.