working version

This commit is contained in:
Ayzen
2026-05-18 17:27:00 +03:00
parent 907dbf29ce
commit 0da8b1283c
23 changed files with 1479 additions and 133 deletions
@@ -116,15 +116,20 @@ struct PreprocessConfig {
};
struct GprTxGeometry {
// Transmitter geometry keyed by output switch position.
// Transmitter geometry keyed by output switch position. y_m/z_m default to 0 so
// legacy 1D configs continue to render in the y=0, z=0 plane.
std::uint32_t output_pos = 0;
float x_m = 0.0F;
float y_m = 0.0F;
float z_m = 0.0F;
};
struct GprRxGeometry {
// Receiver geometry keyed by input switch position.
// Receiver geometry keyed by input switch position. y_m/z_m default to 0.
std::uint32_t input_pos = 0;
float x_m = 0.0F;
float y_m = 0.0F;
float z_m = 0.0F;
};
struct GprConfig {
@@ -309,6 +309,8 @@ void validate_gpr_config(const GprConfig& config, const RunConfig& run_config) {
GprTxGeometry entry{};
entry.output_pos = optional_u32(*entry_obj, "output_pos", 0U);
entry.x_m = optional_f32(*entry_obj, "x_m", 0.0F);
entry.y_m = optional_f32(*entry_obj, "y_m", 0.0F);
entry.z_m = optional_f32(*entry_obj, "z_m", 0.0F);
config.tx_geometry.push_back(std::move(entry));
}
}
@@ -321,6 +323,8 @@ void validate_gpr_config(const GprConfig& config, const RunConfig& run_config) {
GprRxGeometry entry{};
entry.input_pos = optional_u32(*entry_obj, "input_pos", 0U);
entry.x_m = optional_f32(*entry_obj, "x_m", 0.0F);
entry.y_m = optional_f32(*entry_obj, "y_m", 0.0F);
entry.z_m = optional_f32(*entry_obj, "z_m", 0.0F);
config.rx_geometry.push_back(std::move(entry));
}
}