#pragma once #include namespace scwx::wsr88d::rda { class RdaAdaptationData : public Level2Message { public: explicit RdaAdaptationData(); ~RdaAdaptationData(); RdaAdaptationData(const RdaAdaptationData&) = delete; RdaAdaptationData& operator=(const RdaAdaptationData&) = delete; RdaAdaptationData(RdaAdaptationData&&) noexcept; RdaAdaptationData& operator=(RdaAdaptationData&&) noexcept; [[nodiscard]] std::string adap_file_name() const; [[nodiscard]] std::string adap_format() const; [[nodiscard]] std::string adap_revision() const; [[nodiscard]] std::string adap_date() const; [[nodiscard]] std::string adap_time() const; [[nodiscard]] float lower_pre_limit() const; [[nodiscard]] float az_lat() const; [[nodiscard]] float upper_pre_limit() const; [[nodiscard]] float el_lat() const; [[nodiscard]] float parkaz() const; [[nodiscard]] float parkel() const; [[nodiscard]] float a_fuel_conv(unsigned i) const; [[nodiscard]] float a_min_shelter_temp() const; [[nodiscard]] float a_max_shelter_temp() const; [[nodiscard]] float a_min_shelter_ac_temp_diff() const; [[nodiscard]] float a_max_xmtr_air_temp() const; [[nodiscard]] float a_max_rad_temp() const; [[nodiscard]] float a_max_rad_temp_rise() const; [[nodiscard]] float lower_dead_limit() const; [[nodiscard]] float upper_dead_limit() const; [[nodiscard]] float a_min_gen_room_temp() const; [[nodiscard]] float a_max_gen_room_temp() const; [[nodiscard]] float spip_5v_reg_lim() const; [[nodiscard]] float spip_15v_reg_lim() const; [[nodiscard]] bool rpg_co_located() const; [[nodiscard]] bool spec_filter_installed() const; [[nodiscard]] bool tps_installed() const; [[nodiscard]] bool rms_installed() const; [[nodiscard]] std::uint32_t a_hvdl_tst_int() const; [[nodiscard]] std::uint32_t a_rpg_lt_int() const; [[nodiscard]] std::uint32_t a_min_stab_util_pwr_time() const; [[nodiscard]] std::uint32_t a_gen_auto_exer_interval() const; [[nodiscard]] std::uint32_t a_util_pwr_sw_req_interval() const; [[nodiscard]] float a_low_fuel_level() const; [[nodiscard]] std::uint32_t config_chan_number() const; [[nodiscard]] std::uint32_t redundant_chan_config() const; [[nodiscard]] float atten_table(unsigned i) const; [[nodiscard]] float path_losses(unsigned i) const; [[nodiscard]] float h_coupler_xmt_loss() const; [[nodiscard]] float h_coupler_cw_loss() const; [[nodiscard]] float v_coupler_xmt_loss() const; [[nodiscard]] float ame_ts_bias() const; [[nodiscard]] float v_coupler_cw_loss() const; [[nodiscard]] float pwr_sense_bias() const; [[nodiscard]] float ame_v_noise_enr() const; [[nodiscard]] float chan_cal_diff() const; [[nodiscard]] float v_ts_cw() const; [[nodiscard]] float h_rnscale(unsigned i) const; [[nodiscard]] float atmos(unsigned i) const; [[nodiscard]] float el_index(unsigned i) const; [[nodiscard]] std::uint32_t tfreq_mhz() const; [[nodiscard]] float base_data_tcn() const; [[nodiscard]] float refl_data_tover() const; [[nodiscard]] float tar_h_dbz0_lp() const; [[nodiscard]] float tar_v_dbz0_lp() const; [[nodiscard]] std::uint32_t init_phi_dp() const; [[nodiscard]] std::uint32_t norm_init_phi_dp() const; [[nodiscard]] float lx_lp() const; [[nodiscard]] float lx_sp() const; [[nodiscard]] float meteor_param() const; [[nodiscard]] float antenna_gain() const; [[nodiscard]] float vel_degrad_limit() const; [[nodiscard]] float wth_degrad_limit() const; [[nodiscard]] float h_noisetemp_dgrad_limit() const; [[nodiscard]] std::uint32_t h_min_noisetemp() const; [[nodiscard]] float v_noisetemp_dgrad_limit() const; [[nodiscard]] std::uint32_t v_min_noisetemp() const; [[nodiscard]] float kly_degrade_limit() const; [[nodiscard]] float ts_coho() const; [[nodiscard]] float h_ts_cw() const; [[nodiscard]] float ts_stalo() const; [[nodiscard]] float ame_h_noise_enr() const; [[nodiscard]] float xmtr_peak_pwr_high_limit() const; [[nodiscard]] float xmtr_peak_pwr_low_limit() const; [[nodiscard]] float h_dbz0_delta_limit() const; [[nodiscard]] float threshold1() const; [[nodiscard]] float threshold2() const; [[nodiscard]] float clut_supp_dgrad_lim() const; [[nodiscard]] float range0_value() const; [[nodiscard]] float xmtr_pwr_mtr_scale() const; [[nodiscard]] float v_dbz0_delta_limit() const; [[nodiscard]] float tar_h_dbz0_sp() const; [[nodiscard]] float tar_v_dbz0_sp() const; [[nodiscard]] std::uint32_t deltaprf() const; [[nodiscard]] std::uint32_t tau_sp() const; [[nodiscard]] std::uint32_t tau_lp() const; [[nodiscard]] std::uint32_t nc_dead_value() const; [[nodiscard]] std::uint32_t tau_rf_sp() const; [[nodiscard]] std::uint32_t tau_rf_lp() const; [[nodiscard]] float seg1_lim() const; [[nodiscard]] float slatsec() const; [[nodiscard]] float slonsec() const; [[nodiscard]] std::uint32_t slatdeg() const; [[nodiscard]] std::uint32_t slatmin() const; [[nodiscard]] std::uint32_t slondeg() const; [[nodiscard]] std::uint32_t slonmin() const; [[nodiscard]] char slatdir() const; [[nodiscard]] char slondir() const; [[nodiscard]] double dig_rcvr_clock_freq() const; [[nodiscard]] double coho_freq() const; [[nodiscard]] float az_correction_factor() const; [[nodiscard]] float el_correction_factor() const; [[nodiscard]] std::string site_name() const; [[nodiscard]] float ant_manual_setup_ielmin() const; [[nodiscard]] float ant_manual_setup_ielmax() const; [[nodiscard]] std::uint32_t ant_manual_setup_fazvelmax() const; [[nodiscard]] std::uint32_t ant_manual_setup_felvelmax() const; [[nodiscard]] std::int32_t ant_manual_setup_ignd_hgt() const; [[nodiscard]] std::uint32_t ant_manual_setup_irad_hgt() const; [[nodiscard]] float az_pos_sustain_drive() const; [[nodiscard]] float az_neg_sustain_drive() const; [[nodiscard]] float az_nom_pos_drive_slope() const; [[nodiscard]] float az_nom_neg_drive_slope() const; [[nodiscard]] float az_feedback_slope() const; [[nodiscard]] float el_pos_sustain_drive() const; [[nodiscard]] float el_neg_sustain_drive() const; [[nodiscard]] float el_nom_pos_drive_slope() const; [[nodiscard]] float el_nom_neg_drive_slope() const; [[nodiscard]] float el_feedback_slope() const; [[nodiscard]] float el_first_slope() const; [[nodiscard]] float el_second_slope() const; [[nodiscard]] float el_third_slope() const; [[nodiscard]] float el_droop_pos() const; [[nodiscard]] float el_off_neutral_drive() const; [[nodiscard]] float az_intertia() const; [[nodiscard]] float el_inertia() const; [[nodiscard]] float az_stow_angle() const; [[nodiscard]] float el_stow_angle() const; [[nodiscard]] float az_encoder_alignment() const; [[nodiscard]] float el_encoder_alignment() const; [[nodiscard]] std::string refined_park() const; [[nodiscard]] std::uint32_t rvp8nv_iwaveguide_length() const; [[nodiscard]] float v_rnscale(unsigned i) const; [[nodiscard]] float vel_data_tover() const; [[nodiscard]] float width_data_tover() const; [[nodiscard]] float doppler_range_start() const; [[nodiscard]] std::uint32_t max_el_index() const; [[nodiscard]] float seg2_lim() const; [[nodiscard]] float seg3_lim() const; [[nodiscard]] float seg4_lim() const; [[nodiscard]] std::uint32_t nbr_el_segments() const; [[nodiscard]] float h_noise_long() const; [[nodiscard]] float ant_noise_temp() const; [[nodiscard]] float h_noise_short() const; [[nodiscard]] float h_noise_tolerance() const; [[nodiscard]] float min_h_dyn_range() const; [[nodiscard]] bool gen_installed() const; [[nodiscard]] bool gen_exercise() const; [[nodiscard]] float v_noise_tolerance() const; [[nodiscard]] float min_v_dyn_range() const; [[nodiscard]] float zdr_offset_dgrad_lim() const; [[nodiscard]] float baseline_zdr_offset() const; [[nodiscard]] float v_noise_long() const; [[nodiscard]] float v_noise_short() const; [[nodiscard]] float zdr_data_tover() const; [[nodiscard]] float phi_data_tover() const; [[nodiscard]] float rho_data_tover() const; [[nodiscard]] float stalo_power_dgrad_limit() const; [[nodiscard]] float stalo_power_maint_limit() const; [[nodiscard]] float min_h_pwr_sense() const; [[nodiscard]] float min_v_pwr_sense() const; [[nodiscard]] float h_pwr_sense_offset() const; [[nodiscard]] float v_pwr_sense_offset() const; [[nodiscard]] float ps_gain_ref() const; [[nodiscard]] float rf_pallet_broad_loss() const; [[nodiscard]] float ame_ps_tolerance() const; [[nodiscard]] float ame_max_temp() const; [[nodiscard]] float ame_min_temp() const; [[nodiscard]] float rcvr_mod_max_temp() const; [[nodiscard]] float rcvr_mod_min_temp() const; [[nodiscard]] float bite_mod_max_temp() const; [[nodiscard]] float bite_mod_min_temp() const; [[nodiscard]] std::uint32_t default_polarization() const; [[nodiscard]] float tr_limit_dgrad_limit() const; [[nodiscard]] float tr_limit_fail_limit() const; [[nodiscard]] bool rfp_stepper_enabled() const; [[nodiscard]] float ame_current_tolerance() const; [[nodiscard]] std::uint32_t h_only_polarization() const; [[nodiscard]] std::uint32_t v_only_polarization() const; [[nodiscard]] float sun_bias() const; [[nodiscard]] float a_min_shelter_temp_warn() const; [[nodiscard]] float power_meter_zero() const; [[nodiscard]] float txb_baseline() const; [[nodiscard]] float txb_alarm_thresh() const; bool Parse(std::istream& is) override; static std::shared_ptr Create(Level2MessageHeader&& header, std::istream& is); private: class Impl; std::unique_ptr p; }; } // namespace scwx::wsr88d::rda