id: apollo_downlink_decoder label: Apollo Downlink Decoder category: '[Apollo USB]' flags: [python] parameters: - id: buffer_size label: Buffer Size (words) dtype: int default: '400' inputs: - label: agc_data domain: message outputs: - label: downlink domain: message templates: imports: from apollo import downlink_decoder make: apollo.downlink_decoder.downlink_decoder(buffer_size=${buffer_size}) documentation: |- Apollo AGC Downlink Decoder Reassembles 15-bit AGC words from channel 34/35 byte pairs and interprets downlink list headers to identify mission-phase telemetry. The AGC sends telemetry snapshots in "downlink lists" whose format depends on mission phase: ID 0: CM Powered Flight ID 1: LM Orbital Maneuvers ID 2: CM Coast/Alignment ID 3: LM Coast/Alignment ID 7: LM Descent/Ascent ID 8: LM Lunar Surface Alignment ID 9: CM Entry Update AGC word reassembly: DNTM1 (ch 34): bits 14-8 (high 7 bits) DNTM2 (ch 35): bits 7-0 (low 8 bits) Combined: 15-bit word (0-32767) Parameters: buffer_size: Number of 15-bit words per downlink buffer (default 400) file_format: 1