gr-mcp-docs/public/images/protocols/sarsat-short-message.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

100 lines
4.8 KiB (Stored with Git LFS)
XML

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 280" font-family="system-ui, -apple-system, sans-serif">
<defs>
<linearGradient id="syncGrad" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:#4A90D9"/>
<stop offset="100%" style="stop-color:#357ABD"/>
</linearGradient>
<linearGradient id="pdf1Grad" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:#5CB85C"/>
<stop offset="100%" style="stop-color:#449D44"/>
</linearGradient>
<linearGradient id="bchGrad" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:#F0AD4E"/>
<stop offset="100%" style="stop-color:#EC971F"/>
</linearGradient>
<linearGradient id="npGrad" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:#D9534F"/>
<stop offset="100%" style="stop-color:#C9302C"/>
</linearGradient>
<filter id="shadow" x="-2%" y="-2%" width="104%" height="108%">
<feDropShadow dx="0" dy="2" stdDeviation="2" flood-opacity="0.15"/>
</filter>
</defs>
<!-- Title -->
<text x="400" y="35" text-anchor="middle" font-size="20" font-weight="600" fill="#1a1a2e">
Cospas-Sarsat Short Message (112 bits)
</text>
<text x="400" y="55" text-anchor="middle" font-size="12" fill="#666">
406 MHz Emergency Beacon Burst Format
</text>
<!-- Bit scale -->
<g transform="translate(50, 75)">
<line x1="0" y1="0" x2="700" y2="0" stroke="#ccc" stroke-width="1"/>
<text x="0" y="-8" font-size="10" fill="#888">0</text>
<text x="150" y="-8" font-size="10" fill="#888" text-anchor="middle">24</text>
<text x="380" y="-8" font-size="10" fill="#888" text-anchor="middle">85</text>
<text x="512" y="-8" font-size="10" fill="#888" text-anchor="middle">106</text>
<text x="700" y="-8" font-size="10" fill="#888" text-anchor="end">112</text>
</g>
<!-- Message structure -->
<g transform="translate(50, 90)" filter="url(#shadow)">
<!-- System Bits (24 bits) -->
<rect x="0" y="0" width="150" height="60" rx="4" fill="url(#syncGrad)"/>
<text x="75" y="28" text-anchor="middle" font-size="13" font-weight="600" fill="white">System Bits</text>
<text x="75" y="46" text-anchor="middle" font-size="11" fill="rgba(255,255,255,0.85)">24 bits</text>
<!-- PDF-1 (61 bits) -->
<rect x="150" y="0" width="230" height="60" rx="4" fill="url(#pdf1Grad)"/>
<text x="265" y="28" text-anchor="middle" font-size="13" font-weight="600" fill="white">PDF-1</text>
<text x="265" y="46" text-anchor="middle" font-size="11" fill="rgba(255,255,255,0.85)">61 bits</text>
<!-- BCH-1 (21 bits) -->
<rect x="380" y="0" width="132" height="60" rx="4" fill="url(#bchGrad)"/>
<text x="446" y="28" text-anchor="middle" font-size="13" font-weight="600" fill="white">BCH-1</text>
<text x="446" y="46" text-anchor="middle" font-size="11" fill="rgba(255,255,255,0.85)">21 bits</text>
<!-- Non-Protected (6 bits) -->
<rect x="512" y="0" width="188" height="60" rx="4" fill="url(#npGrad)"/>
<text x="606" y="28" text-anchor="middle" font-size="13" font-weight="600" fill="white">Non-Protected</text>
<text x="606" y="46" text-anchor="middle" font-size="11" fill="rgba(255,255,255,0.85)">6 bits</text>
</g>
<!-- Detail breakdown -->
<g transform="translate(50, 170)">
<!-- System bits detail -->
<rect x="0" y="0" width="75" height="40" rx="3" fill="#5BA3E0" opacity="0.9"/>
<text x="37" y="18" text-anchor="middle" font-size="10" font-weight="500" fill="white">Bit Sync</text>
<text x="37" y="32" text-anchor="middle" font-size="9" fill="rgba(255,255,255,0.8)">15 bits</text>
<rect x="75" y="0" width="75" height="40" rx="3" fill="#357ABD" opacity="0.9"/>
<text x="112" y="18" text-anchor="middle" font-size="10" font-weight="500" fill="white">Frame Sync</text>
<text x="112" y="32" text-anchor="middle" font-size="9" fill="rgba(255,255,255,0.8)">9 bits</text>
<!-- Connection lines -->
<path d="M75 -20 L75 0" stroke="#4A90D9" stroke-width="1" stroke-dasharray="3,2" opacity="0.6"/>
</g>
<!-- Legend -->
<g transform="translate(50, 235)">
<rect x="0" y="0" width="14" height="14" rx="2" fill="url(#syncGrad)"/>
<text x="20" y="11" font-size="11" fill="#444">Synchronization</text>
<rect x="130" y="0" width="14" height="14" rx="2" fill="url(#pdf1Grad)"/>
<text x="150" y="11" font-size="11" fill="#444">Protected Data Field</text>
<rect x="300" y="0" width="14" height="14" rx="2" fill="url(#bchGrad)"/>
<text x="320" y="11" font-size="11" fill="#444">Error Correction (BCH)</text>
<rect x="470" y="0" width="14" height="14" rx="2" fill="url(#npGrad)"/>
<text x="490" y="11" font-size="11" fill="#444">Non-Protected Data</text>
</g>
<!-- Duration annotation -->
<text x="750" y="125" text-anchor="end" font-size="10" fill="#666" font-style="italic">
Burst: 440 ms
</text>
</svg>