id: apollo_ranging_demod label: Apollo Ranging Demodulator category: '[Apollo USB]' flags: [python] parameters: - id: chip_rate label: Chip Rate (Hz) dtype: int default: '993963' - id: sample_rate label: Sample Rate (Hz) dtype: real default: '5120000' - id: correlation_length label: Correlation Length (samples) dtype: int default: '100000' - id: two_way label: Two-Way Ranging dtype: bool default: 'True' options: ['True', 'False'] option_labels: ['Two-way (ground-SC-ground)', 'One-way'] inputs: - label: in domain: stream dtype: float outputs: - label: range domain: message templates: imports: from apollo.ranging_demod import ranging_demod make: >- apollo.ranging_demod.ranging_demod( chip_rate=${chip_rate}, sample_rate=${sample_rate}, correlation_length=${correlation_length}, two_way=${two_way}) documentation: |- Apollo Ranging Demodulator Correlates received signal against known PRN ranging code to measure spacecraft range. Accumulates samples in batches, performs FFT-based cross-correlation, and emits range measurement PDUs. Message output (range): delay_chips: Measured delay in chip periods range_m: Computed range in meters correlation_peak: Peak correlation value peak_to_avg_ratio: Peak-to-average ratio (signal quality) timestamp: Measurement timestamp Parameters: chip_rate: Expected PRN chip rate (default 993,963 Hz) sample_rate: Input sample rate (default 5.12 MHz) correlation_length: Samples per correlation batch (default 100,000) two_way: If True, divide range by 2 for round-trip measurement file_format: 1