Updating modified messages for RDA Build 23.0

This commit is contained in:
Dan Paulat 2025-05-11 01:59:42 -05:00
parent 0ec90737d3
commit 2025698d88
8 changed files with 639 additions and 1029 deletions

View file

@ -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<std::size_t _Size>
static void SwapArray(std::array<float, _Size>& arr,
std::size_t size = _Size)

View file

@ -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;

View file

@ -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;

View file

@ -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);

View file

@ -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<char*>(&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;
}

View file

@ -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}
{
}
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<uint16_t, 8> zeroTestBit_;
std::array<uint16_t, 8> 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<uint16_t, 8> zeroTestBit_ {0};
std::array<uint16_t, 8> 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() :
@ -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,10 +1552,12 @@ bool PerformanceMaintenanceData::Parse(std::istream& is)
is.read(reinterpret_cast<char*>(&p->routerMemoryFree_), 4); // 9-10
is.read(reinterpret_cast<char*>(&p->routerMemoryUtilization_), 2); // 11
is.read(reinterpret_cast<char*>(&p->routeToRpg_), 2); // 12
is.read(reinterpret_cast<char*>(&p->csuLossOfSignal_), 4); // 13-14
is.read(reinterpret_cast<char*>(&p->csuLossOfFrames_), 4); // 15-16
is.read(reinterpret_cast<char*>(&p->csuYellowAlarms_), 4); // 17-18
is.read(reinterpret_cast<char*>(&p->csuBlueAlarms_), 4); // 19-20
is.read(reinterpret_cast<char*>(&p->t1PortStatus_), 2); // 13
is.read(reinterpret_cast<char*>(&p->routerDedicatedEthernetPortStatus_),
2); // 14
is.read(reinterpret_cast<char*>(&p->routerCommercialEthernetPortStatus_),
2); // 15
is.seekg(10, std::ios_base::cur); // 16-20
is.read(reinterpret_cast<char*>(&p->csu24HrErroredSeconds_), 4); // 21-22
is.read(reinterpret_cast<char*>(&p->csu24HrSeverelyErroredSeconds_),
4); // 23-24
@ -1863,9 +1578,8 @@ bool PerformanceMaintenanceData::Parse(std::istream& is)
is.seekg(2, std::ios_base::cur); // 44
is.read(reinterpret_cast<char*>(&p->ifdrChasisTemperature_), 2); // 45
is.read(reinterpret_cast<char*>(&p->ifdrFpgaTemperature_), 2); // 46
is.seekg(4, std::ios_base::cur); // 47-48
is.read(reinterpret_cast<char*>(&p->gpsSatellites_), 4); // 49-50
is.seekg(4, std::ios_base::cur); // 51-52
is.read(reinterpret_cast<char*>(&p->ntpStatus_), 2); // 47
is.seekg(10, std::ios_base::cur); // 48-52
is.read(reinterpret_cast<char*>(&p->ipcStatus_), 2); // 53
is.read(reinterpret_cast<char*>(&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<char*>(&p->horizontalPowerSense_), 4); // 397-398
is.read(reinterpret_cast<char*>(&p->verticalPowerSense_), 4); // 399-400
is.read(reinterpret_cast<char*>(&p->zdrBias_), 4); // 401-402
is.read(reinterpret_cast<char*>(&p->zdrOffset_), 4); // 401-402
is.seekg(12, std::ios_base::cur); // 403-408
is.read(reinterpret_cast<char*>(&p->clutterSuppressionDelta_), 4); // 409-410
is.read(reinterpret_cast<char*>(&p->clutterSuppressionUnfilteredPower_),
@ -2144,17 +1858,13 @@ bool PerformanceMaintenanceData::Parse(std::istream& is)
2); // 445
is.read(reinterpret_cast<char*>(&p->clutterFilterMapFileWriteStatus_),
2); // 446
is.read(reinterpret_cast<char*>(&p->generatlDiskIoError_), 2); // 447
is.read(reinterpret_cast<char*>(&p->generalDiskIoError_), 2); // 447
is.read(reinterpret_cast<char*>(&p->rspStatus_), 1); // 448
is.read(reinterpret_cast<char*>(&p->motherboardTemperature_), 1); // 448
is.seekg(1, std::ios_base::cur); // 448
is.read(reinterpret_cast<char*>(&p->cpu1Temperature_), 1); // 449
is.read(reinterpret_cast<char*>(&p->cpu2Temperature_), 1); // 449
is.read(reinterpret_cast<char*>(&p->cpu1FanSpeed_), 2); // 450
is.read(reinterpret_cast<char*>(&p->cpu2FanSpeed_), 2); // 451
is.read(reinterpret_cast<char*>(&p->rspFan1Speed_), 2); // 452
is.read(reinterpret_cast<char*>(&p->rspFan2Speed_), 2); // 453
is.read(reinterpret_cast<char*>(&p->rspFan3Speed_), 2); // 454
is.seekg(12, std::ios_base::cur); // 455-460
is.read(reinterpret_cast<char*>(&p->rspMotherboardPower_), 2); // 450
is.seekg(20, std::ios_base::cur); // 451-460
// Device Status
is.read(reinterpret_cast<char*>(&p->spipCommStatus_), 2); // 461
@ -2180,10 +1890,11 @@ bool PerformanceMaintenanceData::Parse(std::istream& is)
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->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_);

View file

@ -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} {};
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<float, 11> 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<float, 104> attenTable_;
std::map<unsigned, float> pathLosses_;
float vTsCw_;
std::array<float, 13> hRnscale_;
std::array<float, 13> atmos_;
std::array<float, 12> 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<float, 13> 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<float, 11> 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<float, 104> attenTable_ {0.0f};
std::map<unsigned, float> pathLosses_ {};
float vTsCw_ {0.0f};
std::array<float, 13> hRnscale_ {0.0f};
std::array<float, 13> atmos_ {0.0f};
std::array<float, 12> 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<float, 13> 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<char*>(&p->digRcvrClockFreq_), 8); // 2500-2507
is.read(reinterpret_cast<char*>(&p->cohoFreq_), 8); // 2508-2515
is.seekg(5844, std::ios_base::cur); // 2516-8359
is.read(reinterpret_cast<char*>(&p->azCorrectionFactor_), 4); // 8360-8363
is.read(reinterpret_cast<char*>(&p->elCorrectionFactor_), 4); // 8364-8367
@ -1493,7 +1377,18 @@ bool RdaAdaptationData::Parse(std::istream& is)
is.read(reinterpret_cast<char*>(&p->azIntertia_), 4); // 8456-8459
is.read(reinterpret_cast<char*>(&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<char*>(&p->azStowAngle_), 4); // 8496-8499
is.read(reinterpret_cast<char*>(&p->elStowAngle_), 4); // 8500-8503
is.read(reinterpret_cast<char*>(&p->azEncoderAlignment_), 4); // 8504-8507
is.read(reinterpret_cast<char*>(&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<char*>(&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<char*>(&p->vNoiseTolerance_), 4); // 8816-8819
is.read(reinterpret_cast<char*>(&p->minVDynRange_), 4); // 8820-8823
is.read(reinterpret_cast<char*>(&p->zdrBiasDgradLim_), 4); // 8824-8827
is.read(reinterpret_cast<char*>(&p->baselineZdrBias_), 4); // 8828-8831
is.read(reinterpret_cast<char*>(&p->zdrOffsetDgradLim_), 4); // 8824-8827
is.read(reinterpret_cast<char*>(&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_);

View file

@ -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} {};
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<uint16_t, 14> 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<uint16_t, 14> alarmCodes_ {0};
uint16_t signalProcessingOptions_ {0};
uint16_t downloadedPatternNumber_ {0};
uint16_t statusVersion_ {0};
};
RdaStatusData::RdaStatusData() :
@ -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_;
@ -254,7 +231,7 @@ bool RdaStatusData::Parse(std::istream& is)
is.read(reinterpret_cast<char*>(&p->superResolutionStatus_), 2); // 12
is.read(reinterpret_cast<char*>(&p->clutterMitigationDecisionStatus_),
2); // 13
is.read(reinterpret_cast<char*>(&p->avsetEbcRdaLogDataStatus_), 2); // 14
is.read(reinterpret_cast<char*>(&p->rdaScanAndDataFlags_), 2); // 14
is.read(reinterpret_cast<char*>(&p->rdaAlarmSummary_), 2); // 15
is.read(reinterpret_cast<char*>(&p->commandAcknowledgement_), 2); // 16
is.read(reinterpret_cast<char*>(&p->channelControlStatus_), 2); // 17
@ -290,7 +267,7 @@ bool RdaStatusData::Parse(std::istream& is)
p->superResolutionStatus_ = ntohs(p->superResolutionStatus_);
p->clutterMitigationDecisionStatus_ =
ntohs(p->clutterMitigationDecisionStatus_);
p->avsetEbcRdaLogDataStatus_ = ntohs(p->avsetEbcRdaLogDataStatus_);
p->rdaScanAndDataFlags_ = ntohs(p->rdaScanAndDataFlags_);
p->rdaAlarmSummary_ = ntohs(p->rdaAlarmSummary_);
p->commandAcknowledgement_ = ntohs(p->commandAcknowledgement_);
p->channelControlStatus_ = ntohs(p->channelControlStatus_);
@ -312,7 +289,8 @@ bool RdaStatusData::Parse(std::istream& is)
if (header().message_size() * 2 > Level2MessageHeader::SIZE + 80)
{
is.read(reinterpret_cast<char*>(&p->signalProcessingOptions_), 2); // 41
is.seekg(36, std::ios_base::cur); // 42-59
is.seekg(34, std::ios_base::cur); // 42-58
is.read(reinterpret_cast<char*>(&p->downloadedPatternNumber_), 2); // 59
is.read(reinterpret_cast<char*>(&p->statusVersion_), 2); // 60
bytesRead += 40;