gr-mcp-docs/public/images/protocols/sarsat-pdf1-fields.svg
Ryan Malloy 41114373b9 init: Astro/Starlight docs site for gr-sarsat-modern
Diátaxis-structured documentation for 406 MHz SARSAT beacon reception:
- Tutorials: signal chain walkthrough
- Guides: antenna setup, message decoding
- Reference: block API, signal format
- Explanation: Cospas-Sarsat system overview

Includes extracted images from official Cospas-Sarsat specifications (LFS).
2026-02-13 05:01:21 -07:00

120 lines
6.0 KiB (Stored with Git LFS)
XML

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 320" font-family="system-ui, -apple-system, sans-serif">
<defs>
<linearGradient id="formatGrad" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:#9B59B6"/>
<stop offset="100%" style="stop-color:#8E44AD"/>
</linearGradient>
<linearGradient id="protoGrad" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:#3498DB"/>
<stop offset="100%" style="stop-color:#2980B9"/>
</linearGradient>
<linearGradient id="countryGrad" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:#E74C3C"/>
<stop offset="100%" style="stop-color:#C0392B"/>
</linearGradient>
<linearGradient id="idGrad" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:#27AE60"/>
<stop offset="100%" style="stop-color:#1E8449"/>
</linearGradient>
<linearGradient id="auxGrad" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:#F39C12"/>
<stop offset="100%" style="stop-color:#D68910"/>
</linearGradient>
<filter id="dropShadow" x="-2%" y="-5%" width="104%" height="115%">
<feDropShadow dx="0" dy="2" stdDeviation="3" flood-opacity="0.12"/>
</filter>
</defs>
<!-- Title -->
<text x="400" y="35" text-anchor="middle" font-size="18" font-weight="600" fill="#1a1a2e">
PDF-1 Field Structure (61 bits)
</text>
<text x="400" y="55" text-anchor="middle" font-size="11" fill="#666">
First Protected Data Field — Beacon Identification
</text>
<!-- Main bit scale -->
<g transform="translate(50, 80)">
<line x1="0" y1="0" x2="700" y2="0" stroke="#ddd" stroke-width="1"/>
<text x="0" y="-6" font-size="9" fill="#999">Bit 25</text>
<text x="700" y="-6" font-size="9" fill="#999" text-anchor="end">Bit 85</text>
</g>
<!-- PDF-1 Fields -->
<g transform="translate(50, 95)" filter="url(#dropShadow)">
<!-- Format Flag (1 bit) -->
<rect x="0" y="0" width="12" height="55" rx="3" fill="url(#formatGrad)"/>
<text x="6" y="30" text-anchor="middle" font-size="9" font-weight="600" fill="white" transform="rotate(-90 6 30)">F</text>
<!-- Protocol Code (4 bits) -->
<rect x="12" y="0" width="46" height="55" rx="3" fill="url(#protoGrad)"/>
<text x="35" y="25" text-anchor="middle" font-size="10" font-weight="600" fill="white">Protocol</text>
<text x="35" y="40" text-anchor="middle" font-size="9" fill="rgba(255,255,255,0.85)">4 bits</text>
<!-- Country Code (10 bits) -->
<rect x="58" y="0" width="115" height="55" rx="3" fill="url(#countryGrad)"/>
<text x="115" y="25" text-anchor="middle" font-size="11" font-weight="600" fill="white">Country Code</text>
<text x="115" y="40" text-anchor="middle" font-size="9" fill="rgba(255,255,255,0.85)">10 bits (MID)</text>
<!-- Beacon ID (varies) -->
<rect x="173" y="0" width="400" height="55" rx="3" fill="url(#idGrad)"/>
<text x="373" y="25" text-anchor="middle" font-size="12" font-weight="600" fill="white">Beacon Identification Data</text>
<text x="373" y="40" text-anchor="middle" font-size="9" fill="rgba(255,255,255,0.85)">36-46 bits (protocol dependent)</text>
<!-- Auxiliary/Emergency (if applicable) -->
<rect x="573" y="0" width="127" height="55" rx="3" fill="url(#auxGrad)"/>
<text x="636" y="25" text-anchor="middle" font-size="10" font-weight="600" fill="white">Auxiliary</text>
<text x="636" y="40" text-anchor="middle" font-size="9" fill="rgba(255,255,255,0.85)">0-10 bits</text>
</g>
<!-- Protocol Types breakdown -->
<g transform="translate(50, 175)">
<text x="0" y="0" font-size="12" font-weight="600" fill="#333">Protocol Types (bits 26-29):</text>
<g transform="translate(0, 15)">
<rect x="0" y="0" width="160" height="50" rx="4" fill="#f8f9fa" stroke="#dee2e6" stroke-width="1"/>
<text x="12" y="20" font-size="10" font-weight="600" fill="#2980B9">User Protocol</text>
<text x="12" y="35" font-size="9" fill="#666">Serial Number ID</text>
<text x="145" y="20" font-size="9" fill="#888" text-anchor="end">0010-0111</text>
</g>
<g transform="translate(175, 15)">
<rect x="0" y="0" width="160" height="50" rx="4" fill="#f8f9fa" stroke="#dee2e6" stroke-width="1"/>
<text x="12" y="20" font-size="10" font-weight="600" fill="#2980B9">Location Protocol</text>
<text x="12" y="35" font-size="9" fill="#666">Encoded Lat/Long</text>
<text x="145" y="20" font-size="9" fill="#888" text-anchor="end">0010-0111</text>
</g>
<g transform="translate(350, 15)">
<rect x="0" y="0" width="160" height="50" rx="4" fill="#f8f9fa" stroke="#dee2e6" stroke-width="1"/>
<text x="12" y="20" font-size="10" font-weight="600" fill="#2980B9">RLS Protocol</text>
<text x="12" y="35" font-size="9" fill="#666">Return Link Service</text>
<text x="145" y="20" font-size="9" fill="#888" text-anchor="end">1010-1101</text>
</g>
<g transform="translate(525, 15)">
<rect x="0" y="0" width="160" height="50" rx="4" fill="#f8f9fa" stroke="#dee2e6" stroke-width="1"/>
<text x="12" y="20" font-size="10" font-weight="600" fill="#2980B9">ELT(DT) Protocol</text>
<text x="12" y="35" font-size="9" fill="#666">Distress Tracking</text>
<text x="145" y="20" font-size="9" fill="#888" text-anchor="end">1111</text>
</g>
</g>
<!-- Legend -->
<g transform="translate(50, 275)">
<rect x="0" y="0" width="12" height="12" rx="2" fill="url(#formatGrad)"/>
<text x="18" y="10" font-size="10" fill="#555">Format Flag (0=Short, 1=User)</text>
<rect x="220" y="0" width="12" height="12" rx="2" fill="url(#countryGrad)"/>
<text x="238" y="10" font-size="10" fill="#555">MID (Maritime ID) = ITU Country Code</text>
<rect x="480" y="0" width="12" height="12" rx="2" fill="url(#idGrad)"/>
<text x="498" y="10" font-size="10" fill="#555">Serial/Identification Number</text>
</g>
<!-- BCH annotation -->
<g transform="translate(620, 270)">
<text x="0" y="0" font-size="9" fill="#888" font-style="italic">Protected by BCH(82,61)</text>
</g>
</svg>