Ported from zleffke/gr-sarsat (2018, GNU Radio 3.7): - Updated Python 2 → Python 3 - Converted XML block definitions to YAML - Added pyproject.toml for modern packaging - Preserved original MIT license Blocks: - biphase_l_decode_bb: Manchester decoder (decim_block) - pds_frame_sync: Frame synchronizer with PDU output - sarp_msg_extract: SARP message splitter/validator
38 lines
934 B
YAML
38 lines
934 B
YAML
id: sarsat_sarp_msg_extract
|
|
label: SARP Message Extractor
|
|
category: '[Sarsat]'
|
|
|
|
templates:
|
|
imports: from sarsat import sarp_msg_extract
|
|
make: sarp_msg_extract()
|
|
|
|
inputs:
|
|
- label: in
|
|
domain: message
|
|
|
|
outputs:
|
|
- label: valid
|
|
domain: message
|
|
- label: invalid
|
|
domain: message
|
|
|
|
documentation: |-
|
|
SARP (Search And Rescue Processor) Message Extractor.
|
|
|
|
Each 72-byte PDS frame contains three 24-byte SARP messages.
|
|
Each SARP message should start with the sync word 0xD60 (12 bits).
|
|
|
|
This block splits incoming PDS frames into individual SARP messages
|
|
and validates the sync word:
|
|
|
|
- 'valid' port: Messages with correct sync word (0xD60)
|
|
- 'invalid' port: Messages with incorrect sync word
|
|
|
|
Note: Even messages on the 'invalid' port may contain recoverable
|
|
beacon data - check BCH error correction codes.
|
|
|
|
Input: PDU from PDS Frame Sync block (72 bytes)
|
|
Output: Individual 24-byte SARP messages
|
|
|
|
file_format: 1
|