- PyQt6 main window with Tx/Rx tables, connection dock, LDF toolbar, control bar with global send rate, and status bar - C++ Qt6 equivalent with identical layout and feature parity - About dialog: TeqanyLogix LTD / Developer: Mohamed Salem - Application logo (SVG + PNG) with LIN bus waveform design - Full test suites: Python (32 tests), C++ QTest (34 tests) - Project plan and Step 1 documentation Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
76 lines
3.6 KiB
XML
76 lines
3.6 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="512" height="512">
|
|
<defs>
|
|
<!-- Gradient for the main circle background -->
|
|
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
<stop offset="0%" style="stop-color:#1a237e;stop-opacity:1" />
|
|
<stop offset="100%" style="stop-color:#0d47a1;stop-opacity:1" />
|
|
</linearGradient>
|
|
<!-- Gradient for the LIN waveform glow -->
|
|
<linearGradient id="waveGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
|
<stop offset="0%" style="stop-color:#00e676;stop-opacity:1" />
|
|
<stop offset="50%" style="stop-color:#69f0ae;stop-opacity:1" />
|
|
<stop offset="100%" style="stop-color:#00e676;stop-opacity:1" />
|
|
</linearGradient>
|
|
<!-- Glow filter for the waveform -->
|
|
<filter id="glow" x="-20%" y="-20%" width="140%" height="140%">
|
|
<feGaussianBlur stdDeviation="4" result="blur"/>
|
|
<feMerge>
|
|
<feMergeNode in="blur"/>
|
|
<feMergeNode in="SourceGraphic"/>
|
|
</feMerge>
|
|
</filter>
|
|
<!-- Subtle shadow for the circle -->
|
|
<filter id="shadow" x="-10%" y="-10%" width="120%" height="130%">
|
|
<feDropShadow dx="0" dy="4" stdDeviation="8" flood-color="#000" flood-opacity="0.3"/>
|
|
</filter>
|
|
</defs>
|
|
|
|
<!-- Main circle background -->
|
|
<circle cx="256" cy="256" r="240" fill="url(#bgGrad)" filter="url(#shadow)"/>
|
|
|
|
<!-- Outer ring -->
|
|
<circle cx="256" cy="256" r="240" fill="none" stroke="#42a5f5" stroke-width="4" opacity="0.6"/>
|
|
|
|
<!-- Inner subtle ring -->
|
|
<circle cx="256" cy="256" r="210" fill="none" stroke="#1565c0" stroke-width="1.5" opacity="0.4"/>
|
|
|
|
<!-- LIN bus waveform — characteristic digital signal pattern
|
|
LIN uses UART-style: dominant (low) and recessive (high) states
|
|
This shows a sync break + sync field + data pattern -->
|
|
<g filter="url(#glow)">
|
|
<!-- Main waveform line -->
|
|
<polyline
|
|
points="70,300 110,300 110,200 150,200 150,300 170,300 170,200 210,200 210,300 230,300 230,200 290,200 290,300 310,300 310,200 340,200 340,300 380,300 380,200 400,200 400,300 440,300"
|
|
fill="none"
|
|
stroke="url(#waveGrad)"
|
|
stroke-width="6"
|
|
stroke-linecap="round"
|
|
stroke-linejoin="round"
|
|
/>
|
|
</g>
|
|
|
|
<!-- Small node dots representing master and slave nodes on the bus -->
|
|
<!-- Master node (left, larger) -->
|
|
<circle cx="90" cy="300" r="10" fill="#ffd740" stroke="#ff8f00" stroke-width="2"/>
|
|
<!-- Slave node indicators along the bus -->
|
|
<circle cx="190" cy="200" r="6" fill="#80cbc4" stroke="#00897b" stroke-width="1.5"/>
|
|
<circle cx="310" cy="200" r="6" fill="#80cbc4" stroke="#00897b" stroke-width="1.5"/>
|
|
<circle cx="440" cy="300" r="6" fill="#80cbc4" stroke="#00897b" stroke-width="1.5"/>
|
|
|
|
<!-- "LIN" text -->
|
|
<text x="256" y="170" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-weight="bold" font-size="72" fill="#ffffff" letter-spacing="8">LIN</text>
|
|
|
|
<!-- "SIMULATOR" text below waveform -->
|
|
<text x="256" y="380" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-weight="600" font-size="32" fill="#90caf9" letter-spacing="6">SIMULATOR</text>
|
|
|
|
<!-- Small connection arrows indicating bidirectional communication -->
|
|
<!-- Tx arrow (down) -->
|
|
<polygon points="130,340 140,355 120,355" fill="#ffd740" opacity="0.7"/>
|
|
<!-- Rx arrow (up) -->
|
|
<polygon points="370,355 380,340 360,340" fill="#80cbc4" opacity="0.7"/>
|
|
|
|
<!-- Tx/Rx labels -->
|
|
<text x="130" y="372" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="14" fill="#ffd740" opacity="0.8">Tx</text>
|
|
<text x="370" y="372" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="14" fill="#80cbc4" opacity="0.8">Rx</text>
|
|
</svg>
|