diff --git a/wxdata/include/scwx/awips/message.hpp b/wxdata/include/scwx/awips/message.hpp index 6a386065..4f2388d0 100644 --- a/wxdata/include/scwx/awips/message.hpp +++ b/wxdata/include/scwx/awips/message.hpp @@ -63,6 +63,15 @@ public: return f; } + static double SwapDouble(double d) + { + std::uint64_t temp; + std::memcpy(&temp, &d, sizeof(std::uint64_t)); + temp = ntohll(temp); + std::memcpy(&d, &temp, sizeof(float)); + return d; + } + template static void SwapArray(std::array& arr, std::size_t size = _Size) diff --git a/wxdata/include/scwx/wsr88d/rda/performance_maintenance_data.hpp b/wxdata/include/scwx/wsr88d/rda/performance_maintenance_data.hpp index 8e1c91ea..c362af78 100644 --- a/wxdata/include/scwx/wsr88d/rda/performance_maintenance_data.hpp +++ b/wxdata/include/scwx/wsr88d/rda/performance_maintenance_data.hpp @@ -31,10 +31,9 @@ public: uint32_t router_memory_free() const; uint16_t router_memory_utilization() const; uint16_t route_to_rpg() const; - uint32_t csu_loss_of_signal() const; - uint32_t csu_loss_of_frames() const; - uint32_t csu_yellow_alarms() const; - uint32_t csu_blue_alarms() const; + uint16_t t1_port_status() const; + uint16_t router_dedicated_ethernet_port_status() const; + uint16_t router_commercial_ethernet_port_status() const; uint32_t csu_24hr_errored_seconds() const; uint32_t csu_24hr_severely_errored_seconds() const; uint32_t csu_24hr_severely_errored_framing_seconds() const; @@ -48,7 +47,7 @@ public: uint16_t lan_switch_memory_utilization() const; uint16_t ifdr_chasis_temperature() const; uint16_t ifdr_fpga_temperature() const; - int32_t gps_satellites() const; + uint16_t ntp_status() const; uint16_t ipc_status() const; uint16_t commanded_channel_control() const; uint16_t polarization() const; @@ -237,7 +236,7 @@ public: float long_pulse_vertical_dbz0() const; float horizontal_power_sense() const; float vertical_power_sense() const; - float zdr_bias() const; + float zdr_offset() const; float clutter_suppression_delta() const; float clutter_suppression_unfiltered_power() const; float clutter_suppression_filtered_power() const; @@ -256,16 +255,11 @@ public: uint16_t read_status_of_prf_sets() const; uint16_t clutter_filter_map_file_read_status() const; uint16_t clutter_filter_map_file_write_status() const; - uint16_t generatl_disk_io_error() const; + uint16_t general_disk_io_error() const; uint8_t rsp_status() const; - uint8_t motherboard_temperature() const; uint8_t cpu1_temperature() const; uint8_t cpu2_temperature() const; - uint16_t cpu1_fan_speed() const; - uint16_t cpu2_fan_speed() const; - uint16_t rsp_fan1_speed() const; - uint16_t rsp_fan2_speed() const; - uint16_t rsp_fan3_speed() const; + uint16_t rsp_motherboard_power() const; uint16_t spip_comm_status() const; uint16_t hci_comm_status() const; uint16_t signal_processor_command_status() const; diff --git a/wxdata/include/scwx/wsr88d/rda/rda_adaptation_data.hpp b/wxdata/include/scwx/wsr88d/rda/rda_adaptation_data.hpp index 38d519a1..be4f8067 100644 --- a/wxdata/include/scwx/wsr88d/rda/rda_adaptation_data.hpp +++ b/wxdata/include/scwx/wsr88d/rda/rda_adaptation_data.hpp @@ -17,7 +17,7 @@ public: explicit RdaAdaptationData(); ~RdaAdaptationData(); - RdaAdaptationData(const RdaAdaptationData&) = delete; + RdaAdaptationData(const RdaAdaptationData&) = delete; RdaAdaptationData& operator=(const RdaAdaptationData&) = delete; RdaAdaptationData(RdaAdaptationData&&) noexcept; @@ -121,6 +121,8 @@ public: uint32_t slonmin() const; char slatdir() const; char slondir() const; + double dig_rcvr_clock_freq() const; + double coho_freq() const; float az_correction_factor() const; float el_correction_factor() const; std::string site_name() const; @@ -147,6 +149,11 @@ public: float el_off_neutral_drive() const; float az_intertia() const; float el_inertia() const; + float az_stow_angle() const; + float el_stow_angle() const; + float az_encoder_alignment() const; + float el_encoder_alignment() const; + std::string refined_park() const; uint32_t rvp8nv_iwaveguide_length() const; float v_rnscale(unsigned i) const; float vel_data_tover() const; @@ -166,8 +173,8 @@ public: bool gen_exercise() const; float v_noise_tolerance() const; float min_v_dyn_range() const; - float zdr_bias_dgrad_lim() const; - float baseline_zdr_bias() const; + float zdr_offset_dgrad_lim() const; + float baseline_zdr_offset() const; float v_noise_long() const; float v_noise_short() const; float zdr_data_tover() const; diff --git a/wxdata/include/scwx/wsr88d/rda/rda_status_data.hpp b/wxdata/include/scwx/wsr88d/rda/rda_status_data.hpp index 7dd51edf..a4e7702a 100644 --- a/wxdata/include/scwx/wsr88d/rda/rda_status_data.hpp +++ b/wxdata/include/scwx/wsr88d/rda/rda_status_data.hpp @@ -17,7 +17,7 @@ public: explicit RdaStatusData(); ~RdaStatusData(); - RdaStatusData(const RdaStatusData&) = delete; + RdaStatusData(const RdaStatusData&) = delete; RdaStatusData& operator=(const RdaStatusData&) = delete; RdaStatusData(RdaStatusData&&) noexcept; @@ -36,7 +36,7 @@ public: uint16_t operational_mode() const; uint16_t super_resolution_status() const; uint16_t clutter_mitigation_decision_status() const; - uint16_t avset_ebc_rda_log_data_status() const; + uint16_t rda_scan_and_data_flags() const; uint16_t rda_alarm_summary() const; uint16_t command_acknowledgement() const; uint16_t channel_control_status() const; @@ -51,6 +51,7 @@ public: uint16_t performance_check_status() const; uint16_t alarm_codes(unsigned i) const; uint16_t signal_processing_options() const; + uint16_t downloaded_pattern_number() const; uint16_t status_version() const; bool Parse(std::istream& is); diff --git a/wxdata/source/scwx/wsr88d/rda/digital_radar_data_generic.cpp b/wxdata/source/scwx/wsr88d/rda/digital_radar_data_generic.cpp index 54c0ba2c..79705a70 100644 --- a/wxdata/source/scwx/wsr88d/rda/digital_radar_data_generic.cpp +++ b/wxdata/source/scwx/wsr88d/rda/digital_radar_data_generic.cpp @@ -247,6 +247,7 @@ public: float initialSystemDifferentialPhase_ {0.0f}; std::uint16_t volumeCoveragePatternNumber_ {0}; std::uint16_t processingStatus_ {0}; + std::uint16_t zdrBiasEstimateWeightedMean_ {0}; }; DigitalRadarDataGeneric::VolumeDataBlock::VolumeDataBlock( @@ -332,6 +333,18 @@ bool DigitalRadarDataGeneric::VolumeDataBlock::Parse(std::istream& is) p->volumeCoveragePatternNumber_ = ntohs(p->volumeCoveragePatternNumber_); p->processingStatus_ = ntohs(p->processingStatus_); + if (p->lrtup_ >= 46) + { + is.read(reinterpret_cast(&p->zdrBiasEstimateWeightedMean_), + 2); // 44-45 + p->zdrBiasEstimateWeightedMean_ = ntohs(p->zdrBiasEstimateWeightedMean_); + } + + if (p->lrtup_ >= 52) + { + is.seekg(6, std::ios_base::cur); // 46-51 + } + return dataBlockValid; } diff --git a/wxdata/source/scwx/wsr88d/rda/performance_maintenance_data.cpp b/wxdata/source/scwx/wsr88d/rda/performance_maintenance_data.cpp index 662ab506..fcdd19c8 100644 --- a/wxdata/source/scwx/wsr88d/rda/performance_maintenance_data.cpp +++ b/wxdata/source/scwx/wsr88d/rda/performance_maintenance_data.cpp @@ -17,536 +17,277 @@ static const auto logger_ = util::Logger::Create(logPrefix_); class PerformanceMaintenanceDataImpl { public: - explicit PerformanceMaintenanceDataImpl() : - loopBackSetStatus_ {0}, - t1OutputFrames_ {0}, - t1InputFrames_ {0}, - routerMemoryUsed_ {0}, - routerMemoryFree_ {0}, - routerMemoryUtilization_ {0}, - routeToRpg_ {0}, - csuLossOfSignal_ {0}, - csuLossOfFrames_ {0}, - csuYellowAlarms_ {0}, - csuBlueAlarms_ {0}, - csu24HrErroredSeconds_ {0}, - csu24HrSeverelyErroredSeconds_ {0}, - csu24HrSeverelyErroredFramingSeconds_ {0}, - csu24HrUnavailableSeconds_ {0}, - csu24HrControlledSlipSeconds_ {0}, - csu24HrPathCodingViolations_ {0}, - csu24HrLineErroredSeconds_ {0}, - csu24HrBurstyErroredSeconds_ {0}, - csu24HrDegradedMinutes_ {0}, - lanSwitchCpuUtilization_ {0}, - lanSwitchMemoryUtilization_ {0}, - ifdrChasisTemperature_ {0}, - ifdrFpgaTemperature_ {0}, - gpsSatellites_ {0}, - ipcStatus_ {0}, - commandedChannelControl_ {0}, - polarization_ {0}, - ameInternalTemperature_ {0.0f}, - ameReceiverModuleTemperature_ {0.0f}, - ameBiteCalModuleTemperature_ {0.0f}, - amePeltierPulseWidthModulation_ {0}, - amePeltierStatus_ {0}, - ameADConverterStatus_ {0}, - ameState_ {0}, - ame3_3VPsVoltage_ {0.0f}, - ame5VPsVoltage_ {0.0f}, - ame6_5VPsVoltage_ {0.0f}, - ame15VPsVoltage_ {0.0f}, - ame48VPsVoltage_ {0.0f}, - ameStaloPower_ {0.0f}, - peltierCurrent_ {0.0f}, - adcCalibrationReferenceVoltage_ {0.0f}, - ameMode_ {0}, - amePeltierMode_ {0}, - amePeltierInsideFanCurrent_ {0.0f}, - amePeltierOutsideFanCurrent_ {0.0f}, - horizontalTrLimiterVoltage_ {0.0f}, - verticalTrLimiterVoltage_ {0.0f}, - adcCalibrationOffsetVoltage_ {0.0f}, - adcCalibrationGainCorrection_ {0.0f}, - rcpStatus_ {0}, - rcpString_ {}, - spipPowerButtons_ {0}, - masterPowerAdministratorLoad_ {0.0f}, - expansionPowerAdministratorLoad_ {0.0f}, - _5VdcPs_ {0}, - _15VdcPs_ {0}, - _28VdcPs_ {0}, - neg15VdcPs_ {0}, - _45VdcPs_ {0}, - filamentPsVoltage_ {0}, - vacuumPumpPsVoltage_ {0}, - focusCoilPsVoltage_ {0}, - filamentPs_ {0}, - klystronWarmup_ {0}, - transmitterAvailable_ {0}, - wgSwitchPosition_ {0}, - wgPfnTransferInterlock_ {0}, - maintenanceMode_ {0}, - maintenanceRequired_ {0}, - pfnSwitchPosition_ {0}, - modulatorOverload_ {0}, - modulatorInvCurrent_ {0}, - modulatorSwitchFail_ {0}, - mainPowerVoltage_ {0}, - chargingSystemFail_ {0}, - inverseDiodeCurrent_ {0}, - triggerAmplifier_ {0}, - circulatorTemperature_ {0}, - spectrumFilterPressure_ {0}, - wgArcVswr_ {0}, - cabinetInterlock_ {0}, - cabinetAirTemperature_ {0}, - cabinetAirflow_ {0}, - klystronCurrent_ {0}, - klystronFilamentCurrent_ {0}, - klystronVacionCurrent_ {0}, - klystronAirTemperature_ {0}, - klystronAirflow_ {0}, - modulatorSwitchMaintenance_ {0}, - postChargeRegulatorMaintenance_ {0}, - wgPressureHumidity_ {0}, - transmitterOvervoltage_ {0}, - transmitterOvercurrent_ {0}, - focusCoilCurrent_ {0}, - focusCoilAirflow_ {0}, - oilTemperature_ {0}, - prfLimit_ {0}, - transmitterOilLevel_ {0}, - transmitterBatteryCharging_ {0}, - highVoltageStatus_ {0}, - transmitterRecyclingSummary_ {0}, - transmitterInoperable_ {0}, - transmitterAirFilter_ {0}, - zeroTestBit_ {0}, - oneTestBit_ {0}, - xmtrSpipInterface_ {0}, - transmitterSummaryStatus_ {0}, - transmitterRfPower_ {0.0f}, - horizontalXmtrPeakPower_ {0.0f}, - xmtrPeakPower_ {0.0f}, - verticalXmtrPeakPower_ {0.0f}, - xmtrRfAvgPower_ {0.0f}, - xmtrRecycleCount_ {0}, - receiverBias_ {0.0f}, - transmitImbalance_ {0.0f}, - xmtrPowerMeterZero_ {0.0f}, - acUnit1CompressorShutOff_ {0}, - acUnit2CompressorShutOff_ {0}, - generatorMaintenanceRequired_ {0}, - generatorBatteryVoltage_ {0}, - generatorEngine_ {0}, - generatorVoltFrequency_ {0}, - powerSource_ {0}, - transitionalPowerSource_ {0}, - generatorAutoRunOffSwitch_ {0}, - aircraftHazardLighting_ {0}, - equipmentShelterFireDetectionSystem_ {0}, - equipmentShelterFireSmoke_ {0}, - generatorShelterFireSmoke_ {0}, - utilityVoltageFrequency_ {0}, - siteSecurityAlarm_ {0}, - securityEquipment_ {0}, - securitySystem_ {0}, - receiverConnectedToAntenna_ {0}, - radomeHatch_ {0}, - acUnit1FilterDirty_ {0}, - acUnit2FilterDirty_ {0}, - equipmentShelterTemperature_ {0.0f}, - outsideAmbientTemperature_ {0.0f}, - transmitterLeavingAirTemp_ {0.0f}, - acUnit1DischargeAirTemp_ {0.0f}, - generatorShelterTemperature_ {0.0f}, - radomeAirTemperature_ {0.0f}, - acUnit2DischargeAirTemp_ {0.0f}, - spip15VPs_ {0.0f}, - spipNeg15VPs_ {0.0f}, - spip28VPsStatus_ {0}, - spip5VPs_ {0.0f}, - convertedGeneratorFuelLevel_ {0}, - elevationPosDeadLimit_ {0}, - _150VOvervoltage_ {0}, - _150VUndervoltage_ {0}, - elevationServoAmpInhibit_ {0}, - elevationServoAmpShortCircuit_ {0}, - elevationServoAmpOvertemp_ {0}, - elevationMotorOvertemp_ {0}, - elevationStowPin_ {0}, - elevationHousing5VPs_ {0}, - elevationNegDeadLimit_ {0}, - elevationPosNormalLimit_ {0}, - elevationNegNormalLimit_ {0}, - elevationEncoderLight_ {0}, - elevationGearboxOil_ {0}, - elevationHandwheel_ {0}, - elevationAmpPs_ {0}, - azimuthServoAmpInhibit_ {0}, - azimuthServoAmpShortCircuit_ {0}, - azimuthServoAmpOvertemp_ {0}, - azimuthMotorOvertemp_ {0}, - azimuthStowPin_ {0}, - azimuthHousing5VPs_ {0}, - azimuthEncoderLight_ {0}, - azimuthGearboxOil_ {0}, - azimuthBullGearOil_ {0}, - azimuthHandwheel_ {0}, - azimuthServoAmpPs_ {0}, - servo_ {0}, - pedestalInterlockSwitch_ {0}, - cohoClock_ {0}, - rfGeneratorFrequencySelectOscillator_ {0}, - rfGeneratorRfStalo_ {0}, - rfGeneratorPhaseShiftedCoho_ {0}, - _9VReceiverPs_ {0}, - _5VReceiverPs_ {0}, - _18VReceiverPs_ {0}, - neg9VReceiverPs_ {0}, - _5VSingleChannelRdaiuPs_ {0}, - horizontalShortPulseNoise_ {0.0f}, - horizontalLongPulseNoise_ {0.0f}, - horizontalNoiseTemperature_ {0.0f}, - verticalShortPulseNoise_ {0.0f}, - verticalLongPulseNoise_ {0.0f}, - verticalNoiseTemperature_ {0.0f}, - horizontalLinearity_ {0.0f}, - horizontalDynamicRange_ {0.0f}, - horizontalDeltaDbz0_ {0.0f}, - verticalDeltaDbz0_ {0.0f}, - kdPeakMeasured_ {0.0f}, - shortPulseHorizontalDbz0_ {0.0f}, - longPulseHorizontalDbz0_ {0.0f}, - velocityProcessed_ {0}, - widthProcessed_ {0}, - velocityRfGen_ {0}, - widthRfGen_ {0}, - horizontalI0_ {0.0f}, - verticalI0_ {0.0f}, - verticalDynamicRange_ {0.0f}, - shortPulseVerticalDbz0_ {0.0f}, - longPulseVerticalDbz0_ {0.0f}, - horizontalPowerSense_ {0.0f}, - verticalPowerSense_ {0.0f}, - zdrBias_ {0.0f}, - clutterSuppressionDelta_ {0.0f}, - clutterSuppressionUnfilteredPower_ {0.0f}, - clutterSuppressionFilteredPower_ {0.0f}, - verticalLinearity_ {0.0f}, - stateFileReadStatus_ {0}, - stateFileWriteStatus_ {0}, - bypassMapFileReadStatus_ {0}, - bypassMapFileWriteStatus_ {0}, - currentAdaptationFileReadStatus_ {0}, - currentAdaptationFileWriteStatus_ {0}, - censorZoneFileReadStatus_ {0}, - censorZoneFileWriteStatus_ {0}, - remoteVcpFileReadStatus_ {0}, - remoteVcpFileWriteStatus_ {0}, - baselineAdaptationFileReadStatus_ {0}, - readStatusOfPrfSets_ {0}, - clutterFilterMapFileReadStatus_ {0}, - clutterFilterMapFileWriteStatus_ {0}, - generatlDiskIoError_ {0}, - rspStatus_ {0}, - motherboardTemperature_ {0}, - cpu1Temperature_ {0}, - cpu2Temperature_ {0}, - cpu1FanSpeed_ {0}, - cpu2FanSpeed_ {0}, - rspFan1Speed_ {0}, - rspFan2Speed_ {0}, - rspFan3Speed_ {0}, - spipCommStatus_ {0}, - hciCommStatus_ {0}, - signalProcessorCommandStatus_ {0}, - ameCommunicationStatus_ {0}, - rmsLinkStatus_ {0}, - rpgLinkStatus_ {0}, - interpanelLinkStatus_ {0}, - performanceCheckTime_ {0}, - version_ {0} - { - } - ~PerformanceMaintenanceDataImpl() = default; + explicit PerformanceMaintenanceDataImpl() = default; + ~PerformanceMaintenanceDataImpl() = default; // Communications - uint16_t loopBackSetStatus_; - uint32_t t1OutputFrames_; - uint32_t t1InputFrames_; - uint32_t routerMemoryUsed_; - uint32_t routerMemoryFree_; - uint16_t routerMemoryUtilization_; - uint16_t routeToRpg_; - uint32_t csuLossOfSignal_; - uint32_t csuLossOfFrames_; - uint32_t csuYellowAlarms_; - uint32_t csuBlueAlarms_; - uint32_t csu24HrErroredSeconds_; - uint32_t csu24HrSeverelyErroredSeconds_; - uint32_t csu24HrSeverelyErroredFramingSeconds_; - uint32_t csu24HrUnavailableSeconds_; - uint32_t csu24HrControlledSlipSeconds_; - uint32_t csu24HrPathCodingViolations_; - uint32_t csu24HrLineErroredSeconds_; - uint32_t csu24HrBurstyErroredSeconds_; - uint32_t csu24HrDegradedMinutes_; - uint32_t lanSwitchCpuUtilization_; - uint16_t lanSwitchMemoryUtilization_; - uint16_t ifdrChasisTemperature_; - uint16_t ifdrFpgaTemperature_; - int32_t gpsSatellites_; - uint16_t ipcStatus_; - uint16_t commandedChannelControl_; + uint16_t loopBackSetStatus_ {0}; + uint32_t t1OutputFrames_ {0}; + uint32_t t1InputFrames_ {0}; + uint32_t routerMemoryUsed_ {0}; + uint32_t routerMemoryFree_ {0}; + uint16_t routerMemoryUtilization_ {0}; + uint16_t routeToRpg_ {0}; + uint16_t t1PortStatus_ {0}; + uint16_t routerDedicatedEthernetPortStatus_ {0}; + uint16_t routerCommercialEthernetPortStatus_ {0}; + uint32_t csu24HrErroredSeconds_ {0}; + uint32_t csu24HrSeverelyErroredSeconds_ {0}; + uint32_t csu24HrSeverelyErroredFramingSeconds_ {0}; + uint32_t csu24HrUnavailableSeconds_ {0}; + uint32_t csu24HrControlledSlipSeconds_ {0}; + uint32_t csu24HrPathCodingViolations_ {0}; + uint32_t csu24HrLineErroredSeconds_ {0}; + uint32_t csu24HrBurstyErroredSeconds_ {0}; + uint32_t csu24HrDegradedMinutes_ {0}; + uint32_t lanSwitchCpuUtilization_ {0}; + uint16_t lanSwitchMemoryUtilization_ {0}; + uint16_t ifdrChasisTemperature_ {0}; + uint16_t ifdrFpgaTemperature_ {0}; + uint16_t ntpStatus_ {0}; + uint16_t ipcStatus_ {0}; + uint16_t commandedChannelControl_ {0}; // AME - uint16_t polarization_; - float ameInternalTemperature_; - float ameReceiverModuleTemperature_; - float ameBiteCalModuleTemperature_; - uint16_t amePeltierPulseWidthModulation_; - uint16_t amePeltierStatus_; - uint16_t ameADConverterStatus_; - uint16_t ameState_; - float ame3_3VPsVoltage_; - float ame5VPsVoltage_; - float ame6_5VPsVoltage_; - float ame15VPsVoltage_; - float ame48VPsVoltage_; - float ameStaloPower_; - float peltierCurrent_; - float adcCalibrationReferenceVoltage_; - uint16_t ameMode_; - uint16_t amePeltierMode_; - float amePeltierInsideFanCurrent_; - float amePeltierOutsideFanCurrent_; - float horizontalTrLimiterVoltage_; - float verticalTrLimiterVoltage_; - float adcCalibrationOffsetVoltage_; - float adcCalibrationGainCorrection_; + uint16_t polarization_ {0}; + float ameInternalTemperature_ {0.0f}; + float ameReceiverModuleTemperature_ {0.0f}; + float ameBiteCalModuleTemperature_ {0.0f}; + uint16_t amePeltierPulseWidthModulation_ {0}; + uint16_t amePeltierStatus_ {0}; + uint16_t ameADConverterStatus_ {0}; + uint16_t ameState_ {0}; + float ame3_3VPsVoltage_ {0.0f}; + float ame5VPsVoltage_ {0.0f}; + float ame6_5VPsVoltage_ {0.0f}; + float ame15VPsVoltage_ {0.0f}; + float ame48VPsVoltage_ {0.0f}; + float ameStaloPower_ {0.0f}; + float peltierCurrent_ {0.0f}; + float adcCalibrationReferenceVoltage_ {0.0f}; + uint16_t ameMode_ {0}; + uint16_t amePeltierMode_ {0}; + float amePeltierInsideFanCurrent_ {0.0f}; + float amePeltierOutsideFanCurrent_ {0.0f}; + float horizontalTrLimiterVoltage_ {0.0f}; + float verticalTrLimiterVoltage_ {0.0f}; + float adcCalibrationOffsetVoltage_ {0.0f}; + float adcCalibrationGainCorrection_ {0.0f}; // RCP/SPIP Power Button Status - uint16_t rcpStatus_; - std::string rcpString_; - uint16_t spipPowerButtons_; + uint16_t rcpStatus_ {0}; + std::string rcpString_ {}; + uint16_t spipPowerButtons_ {0}; // Power - float masterPowerAdministratorLoad_; - float expansionPowerAdministratorLoad_; + float masterPowerAdministratorLoad_ {0.0f}; + float expansionPowerAdministratorLoad_ {0.0f}; // Transmitter - uint16_t _5VdcPs_; - uint16_t _15VdcPs_; - uint16_t _28VdcPs_; - uint16_t neg15VdcPs_; - uint16_t _45VdcPs_; - uint16_t filamentPsVoltage_; - uint16_t vacuumPumpPsVoltage_; - uint16_t focusCoilPsVoltage_; - uint16_t filamentPs_; - uint16_t klystronWarmup_; - uint16_t transmitterAvailable_; - uint16_t wgSwitchPosition_; - uint16_t wgPfnTransferInterlock_; - uint16_t maintenanceMode_; - uint16_t maintenanceRequired_; - uint16_t pfnSwitchPosition_; - uint16_t modulatorOverload_; - uint16_t modulatorInvCurrent_; - uint16_t modulatorSwitchFail_; - uint16_t mainPowerVoltage_; - uint16_t chargingSystemFail_; - uint16_t inverseDiodeCurrent_; - uint16_t triggerAmplifier_; - uint16_t circulatorTemperature_; - uint16_t spectrumFilterPressure_; - uint16_t wgArcVswr_; - uint16_t cabinetInterlock_; - uint16_t cabinetAirTemperature_; - uint16_t cabinetAirflow_; - uint16_t klystronCurrent_; - uint16_t klystronFilamentCurrent_; - uint16_t klystronVacionCurrent_; - uint16_t klystronAirTemperature_; - uint16_t klystronAirflow_; - uint16_t modulatorSwitchMaintenance_; - uint16_t postChargeRegulatorMaintenance_; - uint16_t wgPressureHumidity_; - uint16_t transmitterOvervoltage_; - uint16_t transmitterOvercurrent_; - uint16_t focusCoilCurrent_; - uint16_t focusCoilAirflow_; - uint16_t oilTemperature_; - uint16_t prfLimit_; - uint16_t transmitterOilLevel_; - uint16_t transmitterBatteryCharging_; - uint16_t highVoltageStatus_; - uint16_t transmitterRecyclingSummary_; - uint16_t transmitterInoperable_; - uint16_t transmitterAirFilter_; - std::array zeroTestBit_; - std::array oneTestBit_; - uint16_t xmtrSpipInterface_; - uint16_t transmitterSummaryStatus_; - float transmitterRfPower_; - float horizontalXmtrPeakPower_; - float xmtrPeakPower_; - float verticalXmtrPeakPower_; - float xmtrRfAvgPower_; - uint32_t xmtrRecycleCount_; - float receiverBias_; - float transmitImbalance_; - float xmtrPowerMeterZero_; + uint16_t _5VdcPs_ {0}; + uint16_t _15VdcPs_ {0}; + uint16_t _28VdcPs_ {0}; + uint16_t neg15VdcPs_ {0}; + uint16_t _45VdcPs_ {0}; + uint16_t filamentPsVoltage_ {0}; + uint16_t vacuumPumpPsVoltage_ {0}; + uint16_t focusCoilPsVoltage_ {0}; + uint16_t filamentPs_ {0}; + uint16_t klystronWarmup_ {0}; + uint16_t transmitterAvailable_ {0}; + uint16_t wgSwitchPosition_ {0}; + uint16_t wgPfnTransferInterlock_ {0}; + uint16_t maintenanceMode_ {0}; + uint16_t maintenanceRequired_ {0}; + uint16_t pfnSwitchPosition_ {0}; + uint16_t modulatorOverload_ {0}; + uint16_t modulatorInvCurrent_ {0}; + uint16_t modulatorSwitchFail_ {0}; + uint16_t mainPowerVoltage_ {0}; + uint16_t chargingSystemFail_ {0}; + uint16_t inverseDiodeCurrent_ {0}; + uint16_t triggerAmplifier_ {0}; + uint16_t circulatorTemperature_ {0}; + uint16_t spectrumFilterPressure_ {0}; + uint16_t wgArcVswr_ {0}; + uint16_t cabinetInterlock_ {0}; + uint16_t cabinetAirTemperature_ {0}; + uint16_t cabinetAirflow_ {0}; + uint16_t klystronCurrent_ {0}; + uint16_t klystronFilamentCurrent_ {0}; + uint16_t klystronVacionCurrent_ {0}; + uint16_t klystronAirTemperature_ {0}; + uint16_t klystronAirflow_ {0}; + uint16_t modulatorSwitchMaintenance_ {0}; + uint16_t postChargeRegulatorMaintenance_ {0}; + uint16_t wgPressureHumidity_ {0}; + uint16_t transmitterOvervoltage_ {0}; + uint16_t transmitterOvercurrent_ {0}; + uint16_t focusCoilCurrent_ {0}; + uint16_t focusCoilAirflow_ {0}; + uint16_t oilTemperature_ {0}; + uint16_t prfLimit_ {0}; + uint16_t transmitterOilLevel_ {0}; + uint16_t transmitterBatteryCharging_ {0}; + uint16_t highVoltageStatus_ {0}; + uint16_t transmitterRecyclingSummary_ {0}; + uint16_t transmitterInoperable_ {0}; + uint16_t transmitterAirFilter_ {0}; + std::array zeroTestBit_ {0}; + std::array oneTestBit_ {0}; + uint16_t xmtrSpipInterface_ {0}; + uint16_t transmitterSummaryStatus_ {0}; + float transmitterRfPower_ {0.0f}; + float horizontalXmtrPeakPower_ {0.0f}; + float xmtrPeakPower_ {0.0f}; + float verticalXmtrPeakPower_ {0.0f}; + float xmtrRfAvgPower_ {0.0f}; + uint32_t xmtrRecycleCount_ {0}; + float receiverBias_ {0.0f}; + float transmitImbalance_ {0.0f}; + float xmtrPowerMeterZero_ {0.0f}; // Tower/Utilities - uint16_t acUnit1CompressorShutOff_; - uint16_t acUnit2CompressorShutOff_; - uint16_t generatorMaintenanceRequired_; - uint16_t generatorBatteryVoltage_; - uint16_t generatorEngine_; - uint16_t generatorVoltFrequency_; - uint16_t powerSource_; - uint16_t transitionalPowerSource_; - uint16_t generatorAutoRunOffSwitch_; - uint16_t aircraftHazardLighting_; + uint16_t acUnit1CompressorShutOff_ {0}; + uint16_t acUnit2CompressorShutOff_ {0}; + uint16_t generatorMaintenanceRequired_ {0}; + uint16_t generatorBatteryVoltage_ {0}; + uint16_t generatorEngine_ {0}; + uint16_t generatorVoltFrequency_ {0}; + uint16_t powerSource_ {0}; + uint16_t transitionalPowerSource_ {0}; + uint16_t generatorAutoRunOffSwitch_ {0}; + uint16_t aircraftHazardLighting_ {0}; // Equipment Shelter - uint16_t equipmentShelterFireDetectionSystem_; - uint16_t equipmentShelterFireSmoke_; - uint16_t generatorShelterFireSmoke_; - uint16_t utilityVoltageFrequency_; - uint16_t siteSecurityAlarm_; - uint16_t securityEquipment_; - uint16_t securitySystem_; - uint16_t receiverConnectedToAntenna_; - uint16_t radomeHatch_; - uint16_t acUnit1FilterDirty_; - uint16_t acUnit2FilterDirty_; - float equipmentShelterTemperature_; - float outsideAmbientTemperature_; - float transmitterLeavingAirTemp_; - float acUnit1DischargeAirTemp_; - float generatorShelterTemperature_; - float radomeAirTemperature_; - float acUnit2DischargeAirTemp_; - float spip15VPs_; - float spipNeg15VPs_; - uint16_t spip28VPsStatus_; - float spip5VPs_; - uint16_t convertedGeneratorFuelLevel_; + uint16_t equipmentShelterFireDetectionSystem_ {0}; + uint16_t equipmentShelterFireSmoke_ {0}; + uint16_t generatorShelterFireSmoke_ {0}; + uint16_t utilityVoltageFrequency_ {0}; + uint16_t siteSecurityAlarm_ {0}; + uint16_t securityEquipment_ {0}; + uint16_t securitySystem_ {0}; + uint16_t receiverConnectedToAntenna_ {0}; + uint16_t radomeHatch_ {0}; + uint16_t acUnit1FilterDirty_ {0}; + uint16_t acUnit2FilterDirty_ {0}; + float equipmentShelterTemperature_ {0.0f}; + float outsideAmbientTemperature_ {0.0f}; + float transmitterLeavingAirTemp_ {0.0f}; + float acUnit1DischargeAirTemp_ {0.0f}; + float generatorShelterTemperature_ {0.0f}; + float radomeAirTemperature_ {0.0f}; + float acUnit2DischargeAirTemp_ {0.0f}; + float spip15VPs_ {0.0f}; + float spipNeg15VPs_ {0.0f}; + uint16_t spip28VPsStatus_ {0}; + float spip5VPs_ {0.0f}; + uint16_t convertedGeneratorFuelLevel_ {0}; // Antenna/Pedestal - uint16_t elevationPosDeadLimit_; - uint16_t _150VOvervoltage_; - uint16_t _150VUndervoltage_; - uint16_t elevationServoAmpInhibit_; - uint16_t elevationServoAmpShortCircuit_; - uint16_t elevationServoAmpOvertemp_; - uint16_t elevationMotorOvertemp_; - uint16_t elevationStowPin_; - uint16_t elevationHousing5VPs_; - uint16_t elevationNegDeadLimit_; - uint16_t elevationPosNormalLimit_; - uint16_t elevationNegNormalLimit_; - uint16_t elevationEncoderLight_; - uint16_t elevationGearboxOil_; - uint16_t elevationHandwheel_; - uint16_t elevationAmpPs_; - uint16_t azimuthServoAmpInhibit_; - uint16_t azimuthServoAmpShortCircuit_; - uint16_t azimuthServoAmpOvertemp_; - uint16_t azimuthMotorOvertemp_; - uint16_t azimuthStowPin_; - uint16_t azimuthHousing5VPs_; - uint16_t azimuthEncoderLight_; - uint16_t azimuthGearboxOil_; - uint16_t azimuthBullGearOil_; - uint16_t azimuthHandwheel_; - uint16_t azimuthServoAmpPs_; - uint16_t servo_; - uint16_t pedestalInterlockSwitch_; + uint16_t elevationPosDeadLimit_ {0}; + uint16_t _150VOvervoltage_ {0}; + uint16_t _150VUndervoltage_ {0}; + uint16_t elevationServoAmpInhibit_ {0}; + uint16_t elevationServoAmpShortCircuit_ {0}; + uint16_t elevationServoAmpOvertemp_ {0}; + uint16_t elevationMotorOvertemp_ {0}; + uint16_t elevationStowPin_ {0}; + uint16_t elevationHousing5VPs_ {0}; + uint16_t elevationNegDeadLimit_ {0}; + uint16_t elevationPosNormalLimit_ {0}; + uint16_t elevationNegNormalLimit_ {0}; + uint16_t elevationEncoderLight_ {0}; + uint16_t elevationGearboxOil_ {0}; + uint16_t elevationHandwheel_ {0}; + uint16_t elevationAmpPs_ {0}; + uint16_t azimuthServoAmpInhibit_ {0}; + uint16_t azimuthServoAmpShortCircuit_ {0}; + uint16_t azimuthServoAmpOvertemp_ {0}; + uint16_t azimuthMotorOvertemp_ {0}; + uint16_t azimuthStowPin_ {0}; + uint16_t azimuthHousing5VPs_ {0}; + uint16_t azimuthEncoderLight_ {0}; + uint16_t azimuthGearboxOil_ {0}; + uint16_t azimuthBullGearOil_ {0}; + uint16_t azimuthHandwheel_ {0}; + uint16_t azimuthServoAmpPs_ {0}; + uint16_t servo_ {0}; + uint16_t pedestalInterlockSwitch_ {0}; // RF Generator/Receiver - uint16_t cohoClock_; - uint16_t rfGeneratorFrequencySelectOscillator_; - uint16_t rfGeneratorRfStalo_; - uint16_t rfGeneratorPhaseShiftedCoho_; - uint16_t _9VReceiverPs_; - uint16_t _5VReceiverPs_; - uint16_t _18VReceiverPs_; - uint16_t neg9VReceiverPs_; - uint16_t _5VSingleChannelRdaiuPs_; - float horizontalShortPulseNoise_; - float horizontalLongPulseNoise_; - float horizontalNoiseTemperature_; - float verticalShortPulseNoise_; - float verticalLongPulseNoise_; - float verticalNoiseTemperature_; + uint16_t cohoClock_ {0}; + uint16_t rfGeneratorFrequencySelectOscillator_ {0}; + uint16_t rfGeneratorRfStalo_ {0}; + uint16_t rfGeneratorPhaseShiftedCoho_ {0}; + uint16_t _9VReceiverPs_ {0}; + uint16_t _5VReceiverPs_ {0}; + uint16_t _18VReceiverPs_ {0}; + uint16_t neg9VReceiverPs_ {0}; + uint16_t _5VSingleChannelRdaiuPs_ {0}; + float horizontalShortPulseNoise_ {0.0f}; + float horizontalLongPulseNoise_ {0.0f}; + float horizontalNoiseTemperature_ {0.0f}; + float verticalShortPulseNoise_ {0.0f}; + float verticalLongPulseNoise_ {0.0f}; + float verticalNoiseTemperature_ {0.0f}; // Calibration - float horizontalLinearity_; - float horizontalDynamicRange_; - float horizontalDeltaDbz0_; - float verticalDeltaDbz0_; - float kdPeakMeasured_; - float shortPulseHorizontalDbz0_; - float longPulseHorizontalDbz0_; - uint16_t velocityProcessed_; - uint16_t widthProcessed_; - uint16_t velocityRfGen_; - uint16_t widthRfGen_; - float horizontalI0_; - float verticalI0_; - float verticalDynamicRange_; - float shortPulseVerticalDbz0_; - float longPulseVerticalDbz0_; - float horizontalPowerSense_; - float verticalPowerSense_; - float zdrBias_; - float clutterSuppressionDelta_; - float clutterSuppressionUnfilteredPower_; - float clutterSuppressionFilteredPower_; - float verticalLinearity_; + float horizontalLinearity_ {0.0f}; + float horizontalDynamicRange_ {0.0f}; + float horizontalDeltaDbz0_ {0.0f}; + float verticalDeltaDbz0_ {0.0f}; + float kdPeakMeasured_ {0.0f}; + float shortPulseHorizontalDbz0_ {0.0f}; + float longPulseHorizontalDbz0_ {0.0f}; + uint16_t velocityProcessed_ {0}; + uint16_t widthProcessed_ {0}; + uint16_t velocityRfGen_ {0}; + uint16_t widthRfGen_ {0}; + float horizontalI0_ {0.0f}; + float verticalI0_ {0.0f}; + float verticalDynamicRange_ {0.0f}; + float shortPulseVerticalDbz0_ {0.0f}; + float longPulseVerticalDbz0_ {0.0f}; + float horizontalPowerSense_ {0.0f}; + float verticalPowerSense_ {0.0f}; + float zdrOffset_ {0.0f}; + float clutterSuppressionDelta_ {0.0f}; + float clutterSuppressionUnfilteredPower_ {0.0f}; + float clutterSuppressionFilteredPower_ {0.0f}; + float verticalLinearity_ {0.0f}; // File Status - uint16_t stateFileReadStatus_; - uint16_t stateFileWriteStatus_; - uint16_t bypassMapFileReadStatus_; - uint16_t bypassMapFileWriteStatus_; - uint16_t currentAdaptationFileReadStatus_; - uint16_t currentAdaptationFileWriteStatus_; - uint16_t censorZoneFileReadStatus_; - uint16_t censorZoneFileWriteStatus_; - uint16_t remoteVcpFileReadStatus_; - uint16_t remoteVcpFileWriteStatus_; - uint16_t baselineAdaptationFileReadStatus_; - uint16_t readStatusOfPrfSets_; - uint16_t clutterFilterMapFileReadStatus_; - uint16_t clutterFilterMapFileWriteStatus_; - uint16_t generatlDiskIoError_; - uint8_t rspStatus_; - uint8_t motherboardTemperature_; - uint8_t cpu1Temperature_; - uint8_t cpu2Temperature_; - uint16_t cpu1FanSpeed_; - uint16_t cpu2FanSpeed_; - uint16_t rspFan1Speed_; - uint16_t rspFan2Speed_; - uint16_t rspFan3Speed_; + uint16_t stateFileReadStatus_ {0}; + uint16_t stateFileWriteStatus_ {0}; + uint16_t bypassMapFileReadStatus_ {0}; + uint16_t bypassMapFileWriteStatus_ {0}; + uint16_t currentAdaptationFileReadStatus_ {0}; + uint16_t currentAdaptationFileWriteStatus_ {0}; + uint16_t censorZoneFileReadStatus_ {0}; + uint16_t censorZoneFileWriteStatus_ {0}; + uint16_t remoteVcpFileReadStatus_ {0}; + uint16_t remoteVcpFileWriteStatus_ {0}; + uint16_t baselineAdaptationFileReadStatus_ {0}; + uint16_t readStatusOfPrfSets_ {0}; + uint16_t clutterFilterMapFileReadStatus_ {0}; + uint16_t clutterFilterMapFileWriteStatus_ {0}; + uint16_t generalDiskIoError_ {0}; + uint8_t rspStatus_ {0}; + uint8_t cpu1Temperature_ {0}; + uint8_t cpu2Temperature_ {0}; + uint16_t rspMotherboardPower_ {0}; // Device Status - uint16_t spipCommStatus_; - uint16_t hciCommStatus_; - uint16_t signalProcessorCommandStatus_; - uint16_t ameCommunicationStatus_; - uint16_t rmsLinkStatus_; - uint16_t rpgLinkStatus_; - uint16_t interpanelLinkStatus_; - uint32_t performanceCheckTime_; - uint16_t version_; + uint16_t spipCommStatus_ {0}; + uint16_t hciCommStatus_ {0}; + uint16_t signalProcessorCommandStatus_ {0}; + uint16_t ameCommunicationStatus_ {0}; + uint16_t rmsLinkStatus_ {0}; + uint16_t rpgLinkStatus_ {0}; + uint16_t interpanelLinkStatus_ {0}; + uint32_t performanceCheckTime_ {0}; + uint16_t version_ {0}; }; PerformanceMaintenanceData::PerformanceMaintenanceData() : @@ -556,7 +297,7 @@ PerformanceMaintenanceData::PerformanceMaintenanceData() : PerformanceMaintenanceData::~PerformanceMaintenanceData() = default; PerformanceMaintenanceData::PerformanceMaintenanceData( - PerformanceMaintenanceData&&) noexcept = default; + PerformanceMaintenanceData&&) noexcept = default; PerformanceMaintenanceData& PerformanceMaintenanceData::operator=( PerformanceMaintenanceData&&) noexcept = default; @@ -595,24 +336,21 @@ uint16_t PerformanceMaintenanceData::route_to_rpg() const return p->routeToRpg_; } -uint32_t PerformanceMaintenanceData::csu_loss_of_signal() const +uint16_t PerformanceMaintenanceData::t1_port_status() const { - return p->csuLossOfSignal_; + return p->t1PortStatus_; } -uint32_t PerformanceMaintenanceData::csu_loss_of_frames() const +uint16_t +PerformanceMaintenanceData::router_dedicated_ethernet_port_status() const { - return p->csuLossOfFrames_; + return p->routerDedicatedEthernetPortStatus_; } -uint32_t PerformanceMaintenanceData::csu_yellow_alarms() const +uint16_t +PerformanceMaintenanceData::router_commercial_ethernet_port_status() const { - return p->csuYellowAlarms_; -} - -uint32_t PerformanceMaintenanceData::csu_blue_alarms() const -{ - return p->csuBlueAlarms_; + return p->routerCommercialEthernetPortStatus_; } uint32_t PerformanceMaintenanceData::csu_24hr_errored_seconds() const @@ -681,9 +419,9 @@ uint16_t PerformanceMaintenanceData::ifdr_fpga_temperature() const return p->ifdrFpgaTemperature_; } -int32_t PerformanceMaintenanceData::gps_satellites() const +uint16_t PerformanceMaintenanceData::ntp_status() const { - return p->gpsSatellites_; + return p->ntpStatus_; } uint16_t PerformanceMaintenanceData::ipc_status() const @@ -1628,9 +1366,9 @@ float PerformanceMaintenanceData::vertical_power_sense() const return p->verticalPowerSense_; } -float PerformanceMaintenanceData::zdr_bias() const +float PerformanceMaintenanceData::zdr_offset() const { - return p->zdrBias_; + return p->zdrOffset_; } float PerformanceMaintenanceData::clutter_suppression_delta() const @@ -1726,9 +1464,9 @@ PerformanceMaintenanceData::clutter_filter_map_file_write_status() const return p->clutterFilterMapFileWriteStatus_; } -uint16_t PerformanceMaintenanceData::generatl_disk_io_error() const +uint16_t PerformanceMaintenanceData::general_disk_io_error() const { - return p->generatlDiskIoError_; + return p->generalDiskIoError_; } uint8_t PerformanceMaintenanceData::rsp_status() const @@ -1736,11 +1474,6 @@ uint8_t PerformanceMaintenanceData::rsp_status() const return p->rspStatus_; } -uint8_t PerformanceMaintenanceData::motherboard_temperature() const -{ - return p->motherboardTemperature_; -} - uint8_t PerformanceMaintenanceData::cpu1_temperature() const { return p->cpu1Temperature_; @@ -1751,29 +1484,9 @@ uint8_t PerformanceMaintenanceData::cpu2_temperature() const return p->cpu2Temperature_; } -uint16_t PerformanceMaintenanceData::cpu1_fan_speed() const +uint16_t PerformanceMaintenanceData::rsp_motherboard_power() const { - return p->cpu1FanSpeed_; -} - -uint16_t PerformanceMaintenanceData::cpu2_fan_speed() const -{ - return p->cpu2FanSpeed_; -} - -uint16_t PerformanceMaintenanceData::rsp_fan1_speed() const -{ - return p->rspFan1Speed_; -} - -uint16_t PerformanceMaintenanceData::rsp_fan2_speed() const -{ - return p->rspFan2Speed_; -} - -uint16_t PerformanceMaintenanceData::rsp_fan3_speed() const -{ - return p->rspFan3Speed_; + return p->rspMotherboardPower_; } uint16_t PerformanceMaintenanceData::spip_comm_status() const @@ -1839,11 +1552,13 @@ bool PerformanceMaintenanceData::Parse(std::istream& is) is.read(reinterpret_cast(&p->routerMemoryFree_), 4); // 9-10 is.read(reinterpret_cast(&p->routerMemoryUtilization_), 2); // 11 is.read(reinterpret_cast(&p->routeToRpg_), 2); // 12 - is.read(reinterpret_cast(&p->csuLossOfSignal_), 4); // 13-14 - is.read(reinterpret_cast(&p->csuLossOfFrames_), 4); // 15-16 - is.read(reinterpret_cast(&p->csuYellowAlarms_), 4); // 17-18 - is.read(reinterpret_cast(&p->csuBlueAlarms_), 4); // 19-20 - is.read(reinterpret_cast(&p->csu24HrErroredSeconds_), 4); // 21-22 + is.read(reinterpret_cast(&p->t1PortStatus_), 2); // 13 + is.read(reinterpret_cast(&p->routerDedicatedEthernetPortStatus_), + 2); // 14 + is.read(reinterpret_cast(&p->routerCommercialEthernetPortStatus_), + 2); // 15 + is.seekg(10, std::ios_base::cur); // 16-20 + is.read(reinterpret_cast(&p->csu24HrErroredSeconds_), 4); // 21-22 is.read(reinterpret_cast(&p->csu24HrSeverelyErroredSeconds_), 4); // 23-24 is.read(reinterpret_cast(&p->csu24HrSeverelyErroredFramingSeconds_), @@ -1863,9 +1578,8 @@ bool PerformanceMaintenanceData::Parse(std::istream& is) is.seekg(2, std::ios_base::cur); // 44 is.read(reinterpret_cast(&p->ifdrChasisTemperature_), 2); // 45 is.read(reinterpret_cast(&p->ifdrFpgaTemperature_), 2); // 46 - is.seekg(4, std::ios_base::cur); // 47-48 - is.read(reinterpret_cast(&p->gpsSatellites_), 4); // 49-50 - is.seekg(4, std::ios_base::cur); // 51-52 + is.read(reinterpret_cast(&p->ntpStatus_), 2); // 47 + is.seekg(10, std::ios_base::cur); // 48-52 is.read(reinterpret_cast(&p->ipcStatus_), 2); // 53 is.read(reinterpret_cast(&p->commandedChannelControl_), 2); // 54 is.seekg(6, std::ios_base::cur); // 55-57 @@ -2112,7 +1826,7 @@ bool PerformanceMaintenanceData::Parse(std::istream& is) is.seekg(8, std::ios_base::cur); // 393-396 is.read(reinterpret_cast(&p->horizontalPowerSense_), 4); // 397-398 is.read(reinterpret_cast(&p->verticalPowerSense_), 4); // 399-400 - is.read(reinterpret_cast(&p->zdrBias_), 4); // 401-402 + is.read(reinterpret_cast(&p->zdrOffset_), 4); // 401-402 is.seekg(12, std::ios_base::cur); // 403-408 is.read(reinterpret_cast(&p->clutterSuppressionDelta_), 4); // 409-410 is.read(reinterpret_cast(&p->clutterSuppressionUnfilteredPower_), @@ -2143,18 +1857,14 @@ bool PerformanceMaintenanceData::Parse(std::istream& is) is.read(reinterpret_cast(&p->clutterFilterMapFileReadStatus_), 2); // 445 is.read(reinterpret_cast(&p->clutterFilterMapFileWriteStatus_), - 2); // 446 - is.read(reinterpret_cast(&p->generatlDiskIoError_), 2); // 447 - is.read(reinterpret_cast(&p->rspStatus_), 1); // 448 - is.read(reinterpret_cast(&p->motherboardTemperature_), 1); // 448 - is.read(reinterpret_cast(&p->cpu1Temperature_), 1); // 449 - is.read(reinterpret_cast(&p->cpu2Temperature_), 1); // 449 - is.read(reinterpret_cast(&p->cpu1FanSpeed_), 2); // 450 - is.read(reinterpret_cast(&p->cpu2FanSpeed_), 2); // 451 - is.read(reinterpret_cast(&p->rspFan1Speed_), 2); // 452 - is.read(reinterpret_cast(&p->rspFan2Speed_), 2); // 453 - is.read(reinterpret_cast(&p->rspFan3Speed_), 2); // 454 - is.seekg(12, std::ios_base::cur); // 455-460 + 2); // 446 + is.read(reinterpret_cast(&p->generalDiskIoError_), 2); // 447 + is.read(reinterpret_cast(&p->rspStatus_), 1); // 448 + is.seekg(1, std::ios_base::cur); // 448 + is.read(reinterpret_cast(&p->cpu1Temperature_), 1); // 449 + is.read(reinterpret_cast(&p->cpu2Temperature_), 1); // 449 + is.read(reinterpret_cast(&p->rspMotherboardPower_), 2); // 450 + is.seekg(20, std::ios_base::cur); // 451-460 // Device Status is.read(reinterpret_cast(&p->spipCommStatus_), 2); // 461 @@ -2173,17 +1883,18 @@ bool PerformanceMaintenanceData::Parse(std::istream& is) bytesRead += 960; // Communications - p->loopBackSetStatus_ = ntohs(p->loopBackSetStatus_); - p->t1OutputFrames_ = ntohl(p->t1OutputFrames_); - p->t1InputFrames_ = ntohl(p->t1InputFrames_); - p->routerMemoryUsed_ = ntohl(p->routerMemoryUsed_); - p->routerMemoryFree_ = ntohl(p->routerMemoryFree_); - p->routerMemoryUtilization_ = ntohs(p->routerMemoryUtilization_); - p->routeToRpg_ = ntohs(p->routeToRpg_); - p->csuLossOfSignal_ = ntohl(p->csuLossOfSignal_); - p->csuLossOfFrames_ = ntohl(p->csuLossOfFrames_); - p->csuYellowAlarms_ = ntohl(p->csuYellowAlarms_); - p->csuBlueAlarms_ = ntohl(p->csuBlueAlarms_); + p->loopBackSetStatus_ = ntohs(p->loopBackSetStatus_); + p->t1OutputFrames_ = ntohl(p->t1OutputFrames_); + p->t1InputFrames_ = ntohl(p->t1InputFrames_); + p->routerMemoryUsed_ = ntohl(p->routerMemoryUsed_); + p->routerMemoryFree_ = ntohl(p->routerMemoryFree_); + p->routerMemoryUtilization_ = ntohs(p->routerMemoryUtilization_); + p->routeToRpg_ = ntohs(p->routeToRpg_); + p->t1PortStatus_ = ntohs(p->t1PortStatus_); + p->routerDedicatedEthernetPortStatus_ = + ntohs(p->routerDedicatedEthernetPortStatus_); + p->routerCommercialEthernetPortStatus_ = + ntohs(p->routerCommercialEthernetPortStatus_); p->csu24HrErroredSeconds_ = ntohl(p->csu24HrErroredSeconds_); p->csu24HrSeverelyErroredSeconds_ = ntohl(p->csu24HrSeverelyErroredSeconds_); p->csu24HrSeverelyErroredFramingSeconds_ = @@ -2198,7 +1909,7 @@ bool PerformanceMaintenanceData::Parse(std::istream& is) p->lanSwitchMemoryUtilization_ = ntohs(p->lanSwitchMemoryUtilization_); p->ifdrChasisTemperature_ = ntohs(p->ifdrChasisTemperature_); p->ifdrFpgaTemperature_ = ntohs(p->ifdrFpgaTemperature_); - p->gpsSatellites_ = ntohl(p->gpsSatellites_); + p->ntpStatus_ = ntohs(p->ntpStatus_); p->ipcStatus_ = ntohs(p->ipcStatus_); p->commandedChannelControl_ = ntohs(p->commandedChannelControl_); @@ -2413,7 +2124,7 @@ bool PerformanceMaintenanceData::Parse(std::istream& is) p->longPulseVerticalDbz0_ = SwapFloat(p->longPulseVerticalDbz0_); p->horizontalPowerSense_ = SwapFloat(p->horizontalPowerSense_); p->verticalPowerSense_ = SwapFloat(p->verticalPowerSense_); - p->zdrBias_ = SwapFloat(p->zdrBias_); + p->zdrOffset_ = SwapFloat(p->zdrOffset_); p->clutterSuppressionDelta_ = SwapFloat(p->clutterSuppressionDelta_); p->clutterSuppressionUnfilteredPower_ = SwapFloat(p->clutterSuppressionUnfilteredPower_); @@ -2441,12 +2152,8 @@ bool PerformanceMaintenanceData::Parse(std::istream& is) ntohs(p->clutterFilterMapFileReadStatus_); p->clutterFilterMapFileWriteStatus_ = ntohs(p->clutterFilterMapFileWriteStatus_); - p->generatlDiskIoError_ = ntohs(p->generatlDiskIoError_); - p->cpu1FanSpeed_ = ntohs(p->cpu1FanSpeed_); - p->cpu2FanSpeed_ = ntohs(p->cpu2FanSpeed_); - p->rspFan1Speed_ = ntohs(p->rspFan1Speed_); - p->rspFan2Speed_ = ntohs(p->rspFan2Speed_); - p->rspFan3Speed_ = ntohs(p->rspFan3Speed_); + p->generalDiskIoError_ = ntohs(p->generalDiskIoError_); + p->rspMotherboardPower_ = ntohs(p->rspMotherboardPower_); // Device Status p->spipCommStatus_ = ntohs(p->spipCommStatus_); diff --git a/wxdata/source/scwx/wsr88d/rda/rda_adaptation_data.cpp b/wxdata/source/scwx/wsr88d/rda/rda_adaptation_data.cpp index 94a96283..aff8664a 100644 --- a/wxdata/source/scwx/wsr88d/rda/rda_adaptation_data.cpp +++ b/wxdata/source/scwx/wsr88d/rda/rda_adaptation_data.cpp @@ -34,337 +34,180 @@ struct AntManualSetup class RdaAdaptationDataImpl { public: - explicit RdaAdaptationDataImpl() : - adapFileName_ {}, - adapFormat_ {}, - adapRevision_ {}, - adapDate_ {}, - adapTime_ {}, - lowerPreLimit_ {0.0f}, - azLat_ {0.0f}, - upperPreLimit_ {0.0f}, - elLat_ {0.0f}, - parkaz_ {0.0f}, - parkel_ {0.0f}, - aFuelConv_ {0.0f}, - aMinShelterTemp_ {0.0f}, - aMaxShelterTemp_ {0.0f}, - aMinShelterAcTempDiff_ {0.0f}, - aMaxXmtrAirTemp_ {0.0f}, - aMaxRadTemp_ {0.0f}, - aMaxRadTempRise_ {0.0f}, - lowerDeadLimit_ {0.0f}, - upperDeadLimit_ {0.0f}, - aMinGenRoomTemp_ {0.0f}, - aMaxGenRoomTemp_ {0.0f}, - spip5VRegLim_ {0.0f}, - spip15VRegLim_ {0.0f}, - rpgCoLocated_ {false}, - specFilterInstalled_ {false}, - tpsInstalled_ {false}, - rmsInstalled_ {false}, - aHvdlTstInt_ {0}, - aRpgLtInt_ {0}, - aMinStabUtilPwrTime_ {0}, - aGenAutoExerInterval_ {0}, - aUtilPwrSwReqInterval_ {0}, - aLowFuelLevel_ {0.0f}, - configChanNumber_ {0}, - redundantChanConfig_ {0}, - attenTable_ {0.0f}, - pathLosses_ {}, - vTsCw_ {0.0f}, - hRnscale_ {0.0f}, - atmos_ {0.0f}, - elIndex_ {0.0f}, - tfreqMhz_ {0}, - baseDataTcn_ {0.0f}, - reflDataTover_ {0.0f}, - tarHDbz0Lp_ {0.0f}, - tarVDbz0Lp_ {0.0f}, - initPhiDp_ {0}, - normInitPhiDp_ {0}, - lxLp_ {0.0f}, - lxSp_ {0.0f}, - meteorParam_ {0.0f}, - antennaGain_ {0.0f}, - velDegradLimit_ {0.0f}, - wthDegradLimit_ {0.0f}, - hNoisetempDgradLimit_ {0.0f}, - hMinNoisetemp_ {0}, - vNoisetempDgradLimit_ {0.0f}, - vMinNoisetemp_ {0}, - klyDegradeLimit_ {0.0f}, - tsCoho_ {0.0f}, - hTsCw_ {0.0f}, - tsStalo_ {0.0f}, - ameHNoiseEnr_ {0.0f}, - xmtrPeakPwrHighLimit_ {0.0f}, - xmtrPeakPwrLowLimit_ {0.0f}, - hDbz0DeltaLimit_ {0.0f}, - threshold1_ {0.0f}, - threshold2_ {0.0f}, - clutSuppDgradLim_ {0.0f}, - range0Value_ {0.0f}, - xmtrPwrMtrScale_ {0.0f}, - vDbz0DeltaLimit_ {0.0f}, - tarHDbz0Sp_ {0.0f}, - tarVDbz0Sp_ {0.0f}, - deltaprf_ {0}, - tauSp_ {0}, - tauLp_ {0}, - ncDeadValue_ {0}, - tauRfSp_ {0}, - tauRfLp_ {0}, - seg1Lim_ {0.0f}, - slatsec_ {0.0f}, - slonsec_ {0.0f}, - slatdeg_ {0}, - slatmin_ {0}, - slondeg_ {0}, - slonmin_ {0}, - slatdir_ {0}, - slondir_ {0}, - azCorrectionFactor_ {0.0f}, - elCorrectionFactor_ {0.0f}, - siteName_ {}, - antManualSetup_(), - azPosSustainDrive_ {0.0f}, - azNegSustainDrive_ {0.0f}, - azNomPosDriveSlope_ {0.0f}, - azNomNegDriveSlope_ {0.0f}, - azFeedbackSlope_ {0.0f}, - elPosSustainDrive_ {0.0f}, - elNegSustainDrive_ {0.0f}, - elNomPosDriveSlope_ {0.0f}, - elNomNegDriveSlope_ {0.0f}, - elFeedbackSlope_ {0.0f}, - elFirstSlope_ {0.0f}, - elSecondSlope_ {0.0f}, - elThirdSlope_ {0.0f}, - elDroopPos_ {0.0f}, - elOffNeutralDrive_ {0.0f}, - azIntertia_ {0.0f}, - elInertia_ {0.0f}, - rvp8nvIwaveguideLength_ {0}, - vRnscale_ {0.0f}, - velDataTover_ {0.0f}, - widthDataTover_ {0.0f}, - dopplerRangeStart_ {0.0f}, - maxElIndex_ {0}, - seg2Lim_ {0.0f}, - seg3Lim_ {0.0f}, - seg4Lim_ {0.0f}, - nbrElSegments_ {0}, - hNoiseLong_ {0.0f}, - antNoiseTemp_ {0.0f}, - hNoiseShort_ {0.0f}, - hNoiseTolerance_ {0.0f}, - minHDynRange_ {0.0f}, - genInstalled_ {false}, - genExercise_ {false}, - vNoiseTolerance_ {0.0f}, - minVDynRange_ {0.0f}, - zdrBiasDgradLim_ {0.0f}, - baselineZdrBias_ {0.0f}, - vNoiseLong_ {0.0f}, - vNoiseShort_ {0.0f}, - zdrDataTover_ {0.0f}, - phiDataTover_ {0.0f}, - rhoDataTover_ {0.0f}, - staloPowerDgradLimit_ {0.0f}, - staloPowerMaintLimit_ {0.0f}, - minHPwrSense_ {0.0f}, - minVPwrSense_ {0.0f}, - hPwrSenseOffset_ {0.0f}, - vPwrSenseOffset_ {0.0f}, - psGainRef_ {0.0f}, - rfPalletBroadLoss_ {0.0f}, - amePsTolerance_ {0.0f}, - ameMaxTemp_ {0.0f}, - ameMinTemp_ {0.0f}, - rcvrModMaxTemp_ {0.0f}, - rcvrModMinTemp_ {0.0f}, - biteModMaxTemp_ {0.0f}, - biteModMinTemp_ {0.0f}, - defaultPolarization_ {0}, - trLimitDgradLimit_ {0.0f}, - trLimitFailLimit_ {0.0f}, - rfpStepperEnabled_ {false}, - ameCurrentTolerance_ {0.0f}, - hOnlyPolarization_ {0}, - vOnlyPolarization_ {0}, - sunBias_ {0.0f}, - aMinShelterTempWarn_ {0.0f}, - powerMeterZero_ {0.0f}, - txbBaseline_ {0.0f}, - txbAlarmThresh_ {0.0f} {}; - ~RdaAdaptationDataImpl() = default; + explicit RdaAdaptationDataImpl() = default; + ~RdaAdaptationDataImpl() = default; - std::string adapFileName_; - std::string adapFormat_; - std::string adapRevision_; - std::string adapDate_; - std::string adapTime_; - float lowerPreLimit_; - float azLat_; - float upperPreLimit_; - float elLat_; - float parkaz_; - float parkel_; - std::array aFuelConv_; - float aMinShelterTemp_; - float aMaxShelterTemp_; - float aMinShelterAcTempDiff_; - float aMaxXmtrAirTemp_; - float aMaxRadTemp_; - float aMaxRadTempRise_; - float lowerDeadLimit_; - float upperDeadLimit_; - float aMinGenRoomTemp_; - float aMaxGenRoomTemp_; - float spip5VRegLim_; - float spip15VRegLim_; - bool rpgCoLocated_; - bool specFilterInstalled_; - bool tpsInstalled_; - bool rmsInstalled_; - uint32_t aHvdlTstInt_; - uint32_t aRpgLtInt_; - uint32_t aMinStabUtilPwrTime_; - uint32_t aGenAutoExerInterval_; - uint32_t aUtilPwrSwReqInterval_; - float aLowFuelLevel_; - uint32_t configChanNumber_; - uint32_t redundantChanConfig_; - std::array attenTable_; - std::map pathLosses_; - float vTsCw_; - std::array hRnscale_; - std::array atmos_; - std::array elIndex_; - uint32_t tfreqMhz_; - float baseDataTcn_; - float reflDataTover_; - float tarHDbz0Lp_; - float tarVDbz0Lp_; - uint32_t initPhiDp_; - uint32_t normInitPhiDp_; - float lxLp_; - float lxSp_; - float meteorParam_; - float antennaGain_; - float velDegradLimit_; - float wthDegradLimit_; - float hNoisetempDgradLimit_; - uint32_t hMinNoisetemp_; - float vNoisetempDgradLimit_; - uint32_t vMinNoisetemp_; - float klyDegradeLimit_; - float tsCoho_; - float hTsCw_; - float tsStalo_; - float ameHNoiseEnr_; - float xmtrPeakPwrHighLimit_; - float xmtrPeakPwrLowLimit_; - float hDbz0DeltaLimit_; - float threshold1_; - float threshold2_; - float clutSuppDgradLim_; - float range0Value_; - float xmtrPwrMtrScale_; - float vDbz0DeltaLimit_; - float tarHDbz0Sp_; - float tarVDbz0Sp_; - uint32_t deltaprf_; - uint32_t tauSp_; - uint32_t tauLp_; - uint32_t ncDeadValue_; - uint32_t tauRfSp_; - uint32_t tauRfLp_; - float seg1Lim_; - float slatsec_; - float slonsec_; - uint32_t slatdeg_; - uint32_t slatmin_; - uint32_t slondeg_; - uint32_t slonmin_; - char slatdir_; - char slondir_; - float azCorrectionFactor_; - float elCorrectionFactor_; - std::string siteName_; - AntManualSetup antManualSetup_; - float azPosSustainDrive_; - float azNegSustainDrive_; - float azNomPosDriveSlope_; - float azNomNegDriveSlope_; - float azFeedbackSlope_; - float elPosSustainDrive_; - float elNegSustainDrive_; - float elNomPosDriveSlope_; - float elNomNegDriveSlope_; - float elFeedbackSlope_; - float elFirstSlope_; - float elSecondSlope_; - float elThirdSlope_; - float elDroopPos_; - float elOffNeutralDrive_; - float azIntertia_; - float elInertia_; - uint32_t rvp8nvIwaveguideLength_; - std::array vRnscale_; - float velDataTover_; - float widthDataTover_; - float dopplerRangeStart_; - uint32_t maxElIndex_; - float seg2Lim_; - float seg3Lim_; - float seg4Lim_; - uint32_t nbrElSegments_; - float hNoiseLong_; - float antNoiseTemp_; - float hNoiseShort_; - float hNoiseTolerance_; - float minHDynRange_; - bool genInstalled_; - bool genExercise_; - float vNoiseTolerance_; - float minVDynRange_; - float zdrBiasDgradLim_; - float baselineZdrBias_; - float vNoiseLong_; - float vNoiseShort_; - float zdrDataTover_; - float phiDataTover_; - float rhoDataTover_; - float staloPowerDgradLimit_; - float staloPowerMaintLimit_; - float minHPwrSense_; - float minVPwrSense_; - float hPwrSenseOffset_; - float vPwrSenseOffset_; - float psGainRef_; - float rfPalletBroadLoss_; - float amePsTolerance_; - float ameMaxTemp_; - float ameMinTemp_; - float rcvrModMaxTemp_; - float rcvrModMinTemp_; - float biteModMaxTemp_; - float biteModMinTemp_; - uint32_t defaultPolarization_; - float trLimitDgradLimit_; - float trLimitFailLimit_; - bool rfpStepperEnabled_; - float ameCurrentTolerance_; - uint32_t hOnlyPolarization_; - uint32_t vOnlyPolarization_; - float sunBias_; - float aMinShelterTempWarn_; - float powerMeterZero_; - float txbBaseline_; - float txbAlarmThresh_; + std::string adapFileName_ {}; + std::string adapFormat_ {}; + std::string adapRevision_ {}; + std::string adapDate_ {}; + std::string adapTime_ {}; + float lowerPreLimit_ {0.0f}; + float azLat_ {0.0f}; + float upperPreLimit_ {0.0f}; + float elLat_ {0.0f}; + float parkaz_ {0.0f}; + float parkel_ {0.0f}; + std::array aFuelConv_ {0.0f}; + float aMinShelterTemp_ {0.0f}; + float aMaxShelterTemp_ {0.0f}; + float aMinShelterAcTempDiff_ {0.0f}; + float aMaxXmtrAirTemp_ {0.0f}; + float aMaxRadTemp_ {0.0f}; + float aMaxRadTempRise_ {0.0f}; + float lowerDeadLimit_ {0.0f}; + float upperDeadLimit_ {0.0f}; + float aMinGenRoomTemp_ {0.0f}; + float aMaxGenRoomTemp_ {0.0f}; + float spip5VRegLim_ {0.0f}; + float spip15VRegLim_ {0.0f}; + bool rpgCoLocated_ {false}; + bool specFilterInstalled_ {false}; + bool tpsInstalled_ {false}; + bool rmsInstalled_ {false}; + uint32_t aHvdlTstInt_ {0}; + uint32_t aRpgLtInt_ {0}; + uint32_t aMinStabUtilPwrTime_ {0}; + uint32_t aGenAutoExerInterval_ {0}; + uint32_t aUtilPwrSwReqInterval_ {0}; + float aLowFuelLevel_ {0.0f}; + uint32_t configChanNumber_ {0}; + uint32_t redundantChanConfig_ {0}; + std::array attenTable_ {0.0f}; + std::map pathLosses_ {}; + float vTsCw_ {0.0f}; + std::array hRnscale_ {0.0f}; + std::array atmos_ {0.0f}; + std::array elIndex_ {0.0f}; + uint32_t tfreqMhz_ {0}; + float baseDataTcn_ {0.0f}; + float reflDataTover_ {0.0f}; + float tarHDbz0Lp_ {0.0f}; + float tarVDbz0Lp_ {0.0f}; + uint32_t initPhiDp_ {0}; + uint32_t normInitPhiDp_ {0}; + float lxLp_ {0.0f}; + float lxSp_ {0.0f}; + float meteorParam_ {0.0f}; + float antennaGain_ {0.0f}; + float velDegradLimit_ {0.0f}; + float wthDegradLimit_ {0.0f}; + float hNoisetempDgradLimit_ {0.0f}; + uint32_t hMinNoisetemp_ {0}; + float vNoisetempDgradLimit_ {0.0f}; + uint32_t vMinNoisetemp_ {0}; + float klyDegradeLimit_ {0.0f}; + float tsCoho_ {0.0f}; + float hTsCw_ {0.0f}; + float tsStalo_ {0.0f}; + float ameHNoiseEnr_ {0.0f}; + float xmtrPeakPwrHighLimit_ {0.0f}; + float xmtrPeakPwrLowLimit_ {0.0f}; + float hDbz0DeltaLimit_ {0.0f}; + float threshold1_ {0.0f}; + float threshold2_ {0.0f}; + float clutSuppDgradLim_ {0.0f}; + float range0Value_ {0.0f}; + float xmtrPwrMtrScale_ {0.0f}; + float vDbz0DeltaLimit_ {0.0f}; + float tarHDbz0Sp_ {0.0f}; + float tarVDbz0Sp_ {0.0f}; + uint32_t deltaprf_ {0}; + uint32_t tauSp_ {0}; + uint32_t tauLp_ {0}; + uint32_t ncDeadValue_ {0}; + uint32_t tauRfSp_ {0}; + uint32_t tauRfLp_ {0}; + float seg1Lim_ {0.0f}; + float slatsec_ {0.0f}; + float slonsec_ {0.0f}; + uint32_t slatdeg_ {0}; + uint32_t slatmin_ {0}; + uint32_t slondeg_ {0}; + uint32_t slonmin_ {0}; + char slatdir_ {0}; + char slondir_ {0}; + double digRcvrClockFreq_ {0.0}; + double cohoFreq_ {0.0}; + float azCorrectionFactor_ {0.0f}; + float elCorrectionFactor_ {0.0f}; + std::string siteName_ {}; + AntManualSetup antManualSetup_ {}; + float azPosSustainDrive_ {0.0f}; + float azNegSustainDrive_ {0.0f}; + float azNomPosDriveSlope_ {0.0f}; + float azNomNegDriveSlope_ {0.0f}; + float azFeedbackSlope_ {0.0f}; + float elPosSustainDrive_ {0.0f}; + float elNegSustainDrive_ {0.0f}; + float elNomPosDriveSlope_ {0.0f}; + float elNomNegDriveSlope_ {0.0f}; + float elFeedbackSlope_ {0.0f}; + float elFirstSlope_ {0.0f}; + float elSecondSlope_ {0.0f}; + float elThirdSlope_ {0.0f}; + float elDroopPos_ {0.0f}; + float elOffNeutralDrive_ {0.0f}; + float azIntertia_ {0.0f}; + float elInertia_ {0.0f}; + float azStowAngle_ {0.0f}; + float elStowAngle_ {0.0f}; + float azEncoderAlignment_ {0.0f}; + float elEncoderAlignment_ {0.0f}; + std::string refinedPark_ {}; + uint32_t rvp8nvIwaveguideLength_ {0}; + std::array vRnscale_ {0.0f}; + float velDataTover_ {0.0f}; + float widthDataTover_ {0.0f}; + float dopplerRangeStart_ {0.0f}; + uint32_t maxElIndex_ {0}; + float seg2Lim_ {0.0f}; + float seg3Lim_ {0.0f}; + float seg4Lim_ {0.0f}; + uint32_t nbrElSegments_ {0}; + float hNoiseLong_ {0.0f}; + float antNoiseTemp_ {0.0f}; + float hNoiseShort_ {0.0f}; + float hNoiseTolerance_ {0.0f}; + float minHDynRange_ {0.0f}; + bool genInstalled_ {false}; + bool genExercise_ {false}; + float vNoiseTolerance_ {0.0f}; + float minVDynRange_ {0.0f}; + float zdrOffsetDgradLim_ {0.0f}; + float baselineZdrOffset_ {0.0f}; + float vNoiseLong_ {0.0f}; + float vNoiseShort_ {0.0f}; + float zdrDataTover_ {0.0f}; + float phiDataTover_ {0.0f}; + float rhoDataTover_ {0.0f}; + float staloPowerDgradLimit_ {0.0f}; + float staloPowerMaintLimit_ {0.0f}; + float minHPwrSense_ {0.0f}; + float minVPwrSense_ {0.0f}; + float hPwrSenseOffset_ {0.0f}; + float vPwrSenseOffset_ {0.0f}; + float psGainRef_ {0.0f}; + float rfPalletBroadLoss_ {0.0f}; + float amePsTolerance_ {0.0f}; + float ameMaxTemp_ {0.0f}; + float ameMinTemp_ {0.0f}; + float rcvrModMaxTemp_ {0.0f}; + float rcvrModMinTemp_ {0.0f}; + float biteModMaxTemp_ {0.0f}; + float biteModMinTemp_ {0.0f}; + uint32_t defaultPolarization_ {0}; + float trLimitDgradLimit_ {0.0f}; + float trLimitFailLimit_ {0.0f}; + bool rfpStepperEnabled_ {false}; + float ameCurrentTolerance_ {0.0f}; + uint32_t hOnlyPolarization_ {0}; + uint32_t vOnlyPolarization_ {0}; + float sunBias_ {0.0f}; + float aMinShelterTempWarn_ {0.0f}; + float powerMeterZero_ {0.0f}; + float txbBaseline_ {0.0f}; + float txbAlarmThresh_ {0.0f}; }; RdaAdaptationData::RdaAdaptationData() : @@ -867,6 +710,16 @@ char RdaAdaptationData::slondir() const return p->slondir_; } +double RdaAdaptationData::dig_rcvr_clock_freq() const +{ + return p->digRcvrClockFreq_; +} + +double RdaAdaptationData::coho_freq() const +{ + return p->cohoFreq_; +} + float RdaAdaptationData::az_correction_factor() const { return p->azCorrectionFactor_; @@ -999,6 +852,31 @@ float RdaAdaptationData::el_inertia() const return p->elInertia_; } +float RdaAdaptationData::az_stow_angle() const +{ + return p->azStowAngle_; +} + +float RdaAdaptationData::el_stow_angle() const +{ + return p->elStowAngle_; +} + +float RdaAdaptationData::az_encoder_alignment() const +{ + return p->azEncoderAlignment_; +} + +float RdaAdaptationData::el_encoder_alignment() const +{ + return p->elEncoderAlignment_; +} + +std::string RdaAdaptationData::refined_park() const +{ + return p->refinedPark_; +} + uint32_t RdaAdaptationData::rvp8nv_iwaveguide_length() const { return p->rvp8nvIwaveguideLength_; @@ -1094,14 +972,14 @@ float RdaAdaptationData::min_v_dyn_range() const return p->minVDynRange_; } -float RdaAdaptationData::zdr_bias_dgrad_lim() const +float RdaAdaptationData::zdr_offset_dgrad_lim() const { - return p->zdrBiasDgradLim_; + return p->zdrOffsetDgradLim_; } -float RdaAdaptationData::baseline_zdr_bias() const +float RdaAdaptationData::baseline_zdr_offset() const { - return p->baselineZdrBias_; + return p->baselineZdrOffset_; } float RdaAdaptationData::v_noise_long() const @@ -1277,6 +1155,7 @@ bool RdaAdaptationData::Parse(std::istream& is) p->adapDate_.resize(12); p->adapTime_.resize(12); p->siteName_.resize(4); + p->refinedPark_.resize(4); is.read(&p->adapFileName_[0], 12); // 0-11 is.read(&p->adapFormat_[0], 4); // 12-15 @@ -1458,7 +1337,12 @@ bool RdaAdaptationData::Parse(std::istream& is) ReadChar(is, p->slatdir_); // 1316-1319 ReadChar(is, p->slondir_); // 1320-1323 - is.seekg(7036, std::ios_base::cur); // 1324-8359 + is.seekg(3824, std::ios_base::cur); // 1324-2499 + + is.read(reinterpret_cast(&p->digRcvrClockFreq_), 8); // 2500-2507 + is.read(reinterpret_cast(&p->cohoFreq_), 8); // 2508-2515 + + is.seekg(5844, std::ios_base::cur); // 2516-8359 is.read(reinterpret_cast(&p->azCorrectionFactor_), 4); // 8360-8363 is.read(reinterpret_cast(&p->elCorrectionFactor_), 4); // 8364-8367 @@ -1493,7 +1377,18 @@ bool RdaAdaptationData::Parse(std::istream& is) is.read(reinterpret_cast(&p->azIntertia_), 4); // 8456-8459 is.read(reinterpret_cast(&p->elInertia_), 4); // 8460-8463 - is.seekg(232, std::ios_base::cur); // 8464-8695 + is.seekg(32, std::ios_base::cur); // 8464-8495 + + is.read(reinterpret_cast(&p->azStowAngle_), 4); // 8496-8499 + is.read(reinterpret_cast(&p->elStowAngle_), 4); // 8500-8503 + is.read(reinterpret_cast(&p->azEncoderAlignment_), 4); // 8504-8507 + is.read(reinterpret_cast(&p->elEncoderAlignment_), 4); // 8508-8511 + + is.seekg(176, std::ios_base::cur); // 8512-8687 + + is.read(&p->refinedPark_[0], 4); // 8688-8691 + + is.seekg(4, std::ios_base::cur); // 8692-8695 is.read(reinterpret_cast(&p->rvp8nvIwaveguideLength_), 4); // 8696-8699 @@ -1522,8 +1417,8 @@ bool RdaAdaptationData::Parse(std::istream& is) ReadBoolean(is, p->genExercise_); // 8812-8815 is.read(reinterpret_cast(&p->vNoiseTolerance_), 4); // 8816-8819 is.read(reinterpret_cast(&p->minVDynRange_), 4); // 8820-8823 - is.read(reinterpret_cast(&p->zdrBiasDgradLim_), 4); // 8824-8827 - is.read(reinterpret_cast(&p->baselineZdrBias_), 4); // 8828-8831 + is.read(reinterpret_cast(&p->zdrOffsetDgradLim_), 4); // 8824-8827 + is.read(reinterpret_cast(&p->baselineZdrOffset_), 4); // 8828-8831 is.seekg(12, std::ios_base::cur); // 8832-8843 @@ -1658,6 +1553,8 @@ bool RdaAdaptationData::Parse(std::istream& is) p->slatmin_ = ntohl(p->slatmin_); p->slondeg_ = ntohl(p->slondeg_); p->slonmin_ = ntohl(p->slonmin_); + p->digRcvrClockFreq_ = SwapDouble(p->digRcvrClockFreq_); + p->cohoFreq_ = SwapDouble(p->cohoFreq_); p->azCorrectionFactor_ = SwapFloat(p->azCorrectionFactor_); p->elCorrectionFactor_ = SwapFloat(p->elCorrectionFactor_); p->antManualSetup_.ielmin_ = ntohl(p->antManualSetup_.ielmin_); @@ -1683,6 +1580,10 @@ bool RdaAdaptationData::Parse(std::istream& is) p->elOffNeutralDrive_ = SwapFloat(p->elOffNeutralDrive_); p->azIntertia_ = SwapFloat(p->azIntertia_); p->elInertia_ = SwapFloat(p->elInertia_); + p->azStowAngle_ = SwapFloat(p->azStowAngle_); + p->elStowAngle_ = SwapFloat(p->elStowAngle_); + p->azEncoderAlignment_ = SwapFloat(p->azEncoderAlignment_); + p->elEncoderAlignment_ = SwapFloat(p->elEncoderAlignment_); p->rvp8nvIwaveguideLength_ = ntohl(p->rvp8nvIwaveguideLength_); SwapArray(p->vRnscale_); @@ -1702,8 +1603,8 @@ bool RdaAdaptationData::Parse(std::istream& is) p->minHDynRange_ = SwapFloat(p->minHDynRange_); p->vNoiseTolerance_ = SwapFloat(p->vNoiseTolerance_); p->minVDynRange_ = SwapFloat(p->minVDynRange_); - p->zdrBiasDgradLim_ = SwapFloat(p->zdrBiasDgradLim_); - p->baselineZdrBias_ = SwapFloat(p->baselineZdrBias_); + p->zdrOffsetDgradLim_ = SwapFloat(p->zdrOffsetDgradLim_); + p->baselineZdrOffset_ = SwapFloat(p->baselineZdrOffset_); p->vNoiseLong_ = SwapFloat(p->vNoiseLong_); p->vNoiseShort_ = SwapFloat(p->vNoiseShort_); p->zdrDataTover_ = SwapFloat(p->zdrDataTover_); diff --git a/wxdata/source/scwx/wsr88d/rda/rda_status_data.cpp b/wxdata/source/scwx/wsr88d/rda/rda_status_data.cpp index ced8ff59..50ebd596 100644 --- a/wxdata/source/scwx/wsr88d/rda/rda_status_data.cpp +++ b/wxdata/source/scwx/wsr88d/rda/rda_status_data.cpp @@ -14,67 +14,39 @@ static const auto logger_ = util::Logger::Create(logPrefix_); class RdaStatusDataImpl { public: - explicit RdaStatusDataImpl() : - rdaStatus_ {0}, - operabilityStatus_ {0}, - controlStatus_ {0}, - auxiliaryPowerGeneratorState_ {0}, - averageTransmitterPower_ {0}, - horizontalReflectivityCalibrationCorrection_ {0}, - dataTransmissionEnabled_ {0}, - volumeCoveragePatternNumber_ {0}, - rdaControlAuthorization_ {0}, - rdaBuildNumber_ {0}, - operationalMode_ {0}, - superResolutionStatus_ {0}, - clutterMitigationDecisionStatus_ {0}, - avsetEbcRdaLogDataStatus_ {0}, - rdaAlarmSummary_ {0}, - commandAcknowledgement_ {0}, - channelControlStatus_ {0}, - spotBlankingStatus_ {0}, - bypassMapGenerationDate_ {0}, - bypassMapGenerationTime_ {0}, - clutterFilterMapGenerationDate_ {0}, - clutterFilterMapGenerationTime_ {0}, - verticalReflectivityCalibrationCorrection_ {0}, - transitionPowerSourceStatus_ {0}, - rmsControlStatus_ {0}, - performanceCheckStatus_ {0}, - alarmCodes_ {0}, - signalProcessingOptions_ {0}, - statusVersion_ {0} {}; - ~RdaStatusDataImpl() = default; + explicit RdaStatusDataImpl() = default; + ~RdaStatusDataImpl() = default; - uint16_t rdaStatus_; - uint16_t operabilityStatus_; - uint16_t controlStatus_; - uint16_t auxiliaryPowerGeneratorState_; - uint16_t averageTransmitterPower_; - int16_t horizontalReflectivityCalibrationCorrection_; - uint16_t dataTransmissionEnabled_; - uint16_t volumeCoveragePatternNumber_; - uint16_t rdaControlAuthorization_; - uint16_t rdaBuildNumber_; - uint16_t operationalMode_; - uint16_t superResolutionStatus_; - uint16_t clutterMitigationDecisionStatus_; - uint16_t avsetEbcRdaLogDataStatus_; - uint16_t rdaAlarmSummary_; - uint16_t commandAcknowledgement_; - uint16_t channelControlStatus_; - uint16_t spotBlankingStatus_; - uint16_t bypassMapGenerationDate_; - uint16_t bypassMapGenerationTime_; - uint16_t clutterFilterMapGenerationDate_; - uint16_t clutterFilterMapGenerationTime_; - int16_t verticalReflectivityCalibrationCorrection_; - uint16_t transitionPowerSourceStatus_; - uint16_t rmsControlStatus_; - uint16_t performanceCheckStatus_; - std::array alarmCodes_; - uint16_t signalProcessingOptions_; - uint16_t statusVersion_; + uint16_t rdaStatus_ {0}; + uint16_t operabilityStatus_ {0}; + uint16_t controlStatus_ {0}; + uint16_t auxiliaryPowerGeneratorState_ {0}; + uint16_t averageTransmitterPower_ {0}; + int16_t horizontalReflectivityCalibrationCorrection_ {0}; + uint16_t dataTransmissionEnabled_ {0}; + uint16_t volumeCoveragePatternNumber_ {0}; + uint16_t rdaControlAuthorization_ {0}; + uint16_t rdaBuildNumber_ {0}; + uint16_t operationalMode_ {0}; + uint16_t superResolutionStatus_ {0}; + uint16_t clutterMitigationDecisionStatus_ {0}; + uint16_t rdaScanAndDataFlags_ {0}; + uint16_t rdaAlarmSummary_ {0}; + uint16_t commandAcknowledgement_ {0}; + uint16_t channelControlStatus_ {0}; + uint16_t spotBlankingStatus_ {0}; + uint16_t bypassMapGenerationDate_ {0}; + uint16_t bypassMapGenerationTime_ {0}; + uint16_t clutterFilterMapGenerationDate_ {0}; + uint16_t clutterFilterMapGenerationTime_ {0}; + int16_t verticalReflectivityCalibrationCorrection_ {0}; + uint16_t transitionPowerSourceStatus_ {0}; + uint16_t rmsControlStatus_ {0}; + uint16_t performanceCheckStatus_ {0}; + std::array alarmCodes_ {0}; + uint16_t signalProcessingOptions_ {0}; + uint16_t downloadedPatternNumber_ {0}; + uint16_t statusVersion_ {0}; }; RdaStatusData::RdaStatusData() : @@ -83,7 +55,7 @@ RdaStatusData::RdaStatusData() : } RdaStatusData::~RdaStatusData() = default; -RdaStatusData::RdaStatusData(RdaStatusData&&) noexcept = default; +RdaStatusData::RdaStatusData(RdaStatusData&&) noexcept = default; RdaStatusData& RdaStatusData::operator=(RdaStatusData&&) noexcept = default; uint16_t RdaStatusData::rda_status() const @@ -151,9 +123,9 @@ uint16_t RdaStatusData::clutter_mitigation_decision_status() const return p->clutterMitigationDecisionStatus_; } -uint16_t RdaStatusData::avset_ebc_rda_log_data_status() const +uint16_t RdaStatusData::rda_scan_and_data_flags() const { - return p->avsetEbcRdaLogDataStatus_; + return p->rdaScanAndDataFlags_; } uint16_t RdaStatusData::rda_alarm_summary() const @@ -226,6 +198,11 @@ uint16_t RdaStatusData::signal_processing_options() const return p->signalProcessingOptions_; } +uint16_t RdaStatusData::downloaded_pattern_number() const +{ + return p->downloadedPatternNumber_; +} + uint16_t RdaStatusData::status_version() const { return p->statusVersion_; @@ -253,14 +230,14 @@ bool RdaStatusData::Parse(std::istream& is) is.read(reinterpret_cast(&p->operationalMode_), 2); // 11 is.read(reinterpret_cast(&p->superResolutionStatus_), 2); // 12 is.read(reinterpret_cast(&p->clutterMitigationDecisionStatus_), - 2); // 13 - is.read(reinterpret_cast(&p->avsetEbcRdaLogDataStatus_), 2); // 14 - is.read(reinterpret_cast(&p->rdaAlarmSummary_), 2); // 15 - is.read(reinterpret_cast(&p->commandAcknowledgement_), 2); // 16 - is.read(reinterpret_cast(&p->channelControlStatus_), 2); // 17 - is.read(reinterpret_cast(&p->spotBlankingStatus_), 2); // 18 - is.read(reinterpret_cast(&p->bypassMapGenerationDate_), 2); // 19 - is.read(reinterpret_cast(&p->bypassMapGenerationTime_), 2); // 20 + 2); // 13 + is.read(reinterpret_cast(&p->rdaScanAndDataFlags_), 2); // 14 + is.read(reinterpret_cast(&p->rdaAlarmSummary_), 2); // 15 + is.read(reinterpret_cast(&p->commandAcknowledgement_), 2); // 16 + is.read(reinterpret_cast(&p->channelControlStatus_), 2); // 17 + is.read(reinterpret_cast(&p->spotBlankingStatus_), 2); // 18 + is.read(reinterpret_cast(&p->bypassMapGenerationDate_), 2); // 19 + is.read(reinterpret_cast(&p->bypassMapGenerationTime_), 2); // 20 is.read(reinterpret_cast(&p->clutterFilterMapGenerationDate_), 2); // 21 is.read(reinterpret_cast(&p->clutterFilterMapGenerationTime_), @@ -290,13 +267,13 @@ bool RdaStatusData::Parse(std::istream& is) p->superResolutionStatus_ = ntohs(p->superResolutionStatus_); p->clutterMitigationDecisionStatus_ = ntohs(p->clutterMitigationDecisionStatus_); - p->avsetEbcRdaLogDataStatus_ = ntohs(p->avsetEbcRdaLogDataStatus_); - p->rdaAlarmSummary_ = ntohs(p->rdaAlarmSummary_); - p->commandAcknowledgement_ = ntohs(p->commandAcknowledgement_); - p->channelControlStatus_ = ntohs(p->channelControlStatus_); - p->spotBlankingStatus_ = ntohs(p->spotBlankingStatus_); - p->bypassMapGenerationDate_ = ntohs(p->bypassMapGenerationDate_); - p->bypassMapGenerationTime_ = ntohs(p->bypassMapGenerationTime_); + p->rdaScanAndDataFlags_ = ntohs(p->rdaScanAndDataFlags_); + p->rdaAlarmSummary_ = ntohs(p->rdaAlarmSummary_); + p->commandAcknowledgement_ = ntohs(p->commandAcknowledgement_); + p->channelControlStatus_ = ntohs(p->channelControlStatus_); + p->spotBlankingStatus_ = ntohs(p->spotBlankingStatus_); + p->bypassMapGenerationDate_ = ntohs(p->bypassMapGenerationDate_); + p->bypassMapGenerationTime_ = ntohs(p->bypassMapGenerationTime_); p->clutterFilterMapGenerationDate_ = ntohs(p->clutterFilterMapGenerationDate_); p->clutterFilterMapGenerationTime_ = @@ -312,8 +289,9 @@ bool RdaStatusData::Parse(std::istream& is) if (header().message_size() * 2 > Level2MessageHeader::SIZE + 80) { is.read(reinterpret_cast(&p->signalProcessingOptions_), 2); // 41 - is.seekg(36, std::ios_base::cur); // 42-59 - is.read(reinterpret_cast(&p->statusVersion_), 2); // 60 + is.seekg(34, std::ios_base::cur); // 42-58 + is.read(reinterpret_cast(&p->downloadedPatternNumber_), 2); // 59 + is.read(reinterpret_cast(&p->statusVersion_), 2); // 60 bytesRead += 40; p->signalProcessingOptions_ = ntohs(p->signalProcessingOptions_);