296 size_t az_samples,
size_t el_samples,
double frequency_hz);
424 size_t waypoint_count,
465 char source_name[64];
467 char origin_name[64];
char * fers_get_scenario_as_xml(fers_context_t *context)
Serializes the current simulation scenario into a FERS XML string.
void fers_free_antenna_pattern_data(fers_antenna_pattern_data_t *data)
Frees the memory allocated for an antenna pattern data structure.
void(* fers_progress_callback_t)(const char *message, int current, int total, void *user_data)
A function pointer type for progress reporting callbacks.
void fers_log(fers_log_level_t level, const char *message)
Submits a log message to the library's unified logging system.
int fers_load_scenario_from_xml_file(fers_context_t *context, const char *xml_filepath, int validate)
Loads a scenario into the context from a FERS XML file.
fers_interpolated_rotation_path_t * fers_get_interpolated_rotation_path(const fers_rotation_waypoint_t *waypoints, size_t waypoint_count, fers_interp_type_t interp_type, size_t num_points)
Calculates an interpolated rotation path from a set of waypoints.
char * fers_get_last_error_message()
Retrieves the last error message that occurred on the current thread.
void fers_free_interpolated_motion_path(fers_interpolated_path_t *path)
Frees the memory allocated for an interpolated motion path.
int fers_generate_kml(const fers_context_t *context, const char *output_kml_filepath)
Generates a KML file for visualizing the scenario in the context.
fers_log_level_t
Log levels for the FERS library.
void fers_context_destroy(fers_context_t *context)
Destroys a FERS simulation context and releases all associated memory.
fers_context_t * fers_context_create()
Creates a new FERS simulation context.
void fers_free_preview_links(fers_visual_link_list_t *list)
Frees the memory allocated for a preview link list.
fers_interpolated_path_t * fers_get_interpolated_motion_path(const fers_motion_waypoint_t *waypoints, size_t waypoint_count, fers_interp_type_t interp_type, size_t num_points)
Calculates an interpolated motion path from a set of waypoints.
int fers_run_simulation(fers_context_t *context, fers_progress_callback_t callback, void *user_data)
Runs the simulation defined in the provided context.
void fers_free_string(char *str)
Frees a string that was allocated and returned by the libfers API.
fers_antenna_pattern_data_t * fers_get_antenna_pattern(const fers_context_t *context, const char *antenna_name, size_t az_samples, size_t el_samples, double frequency_hz)
Samples the gain pattern of a specified antenna and provides the data.
fers_visual_link_list_t * fers_calculate_preview_links(const fers_context_t *context, double time)
Calculates visual links for a specific simulation time.
fers_interp_type_t
Defines the interpolation methods available for path generation.
int fers_configure_logging(fers_log_level_t level, const char *log_file_path)
Configures the internal logger.
void fers_free_interpolated_rotation_path(fers_interpolated_rotation_path_t *path)
Frees the memory allocated for an interpolated rotation path.
char * fers_get_scenario_as_json(fers_context_t *context)
Serializes the current simulation scenario into a JSON string.
fers_link_type_t
Type of visual link to render.
@ FERS_LINK_BISTATIC_TX_TGT
@ FERS_LINK_BISTATIC_TGT_RX
int fers_load_scenario_from_xml_string(fers_context_t *context, const char *xml_content, int validate)
Loads a scenario into the context from a FERS XML string.
int fers_update_scenario_from_json(fers_context_t *context, const char *scenario_json)
Updates the simulation scenario from a JSON string.
int fers_set_thread_count(unsigned num_threads)
Sets the number of worker threads for the simulation.
fers_link_quality_t
Quality of the radio link based on SNR.
Represents a sampled 2D antenna gain pattern.
A container for an array of interpolated motion path points.
fers_interpolated_point_t * points
Represents a single interpolated point on a motion path.
double vz
Z velocity in m/s.
double x
X position in meters.
double y
Y position in meters.
double z
Z position in meters.
double vx
X velocity in m/s.
double vy
Y velocity in m/s.
A container for an array of interpolated rotation path points.
fers_interpolated_rotation_point_t * points
Represents a single interpolated point on a rotation path.
double elevation_deg
Elevation angle in degrees.
double azimuth_deg
Azimuth angle in compass degrees.
Represents a single waypoint for a motion path.
double x
X coordinate in meters (East in ENU).
double time
Time in seconds.
double y
Y coordinate in meters (North in ENU).
double z
Z coordinate in meters (Up/Altitude in ENU).
Represents a single waypoint for a rotation path.
double time
Time in seconds.
double elevation_deg
Elevation angle in degrees (positive up).
double azimuth_deg
Azimuth angle in compass degrees (0=North, 90=East).
A container for a list of visual links.
fers_visual_link_t * links
Represents a single renderable line segment metadata.
fers_link_quality_t quality
Signal quality (Strong/Weak).
fers_link_type_t type
Type of the link (Monostatic, Bistatic, etc.).