Public Access
Site / build (pull_request) Successful in 9s
Seven posts imported into site/content/devlog/ with their text unchanged, links between them pointing to /devlog/, and shortcodes (sign, cast, steps, asides, folded sections, diagrams, captions) restyled in the site's palette. The 17 inline SVG diagrams carried <style> blocks and style attributes the site's Content-Security-Policy refuses: their rules moved to devlog-diagrams.css, and a diagram's minimum width is a class. An Atom feed at /devlog/atom.xml. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EhqxQ49eCju4CzKYNjZzwT
55 lines
4.3 KiB
XML
55 lines
4.3 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 760 340" role="img" aria-label="Inside the Debug Console. On the PC, rdbg.py connects to TCP 2323 and sends the token first. On the device, the Debug Console task checks the token, serves one client, sends the console ring to the socket, and queues command lines for the main loop. It answers binary commands itself: get, put, screenshot, coredump get and reset. The main loop runs queued commands with runCommand, the same as the USB serial commands, and prints through console.printf into a 6 KB ring, which also goes to USB serial when there is room. ESP-IDF's own log lines are teed into the ring. Card work runs as jobs on the storage task: ls, rm and install from the main loop, get and put from the Debug Console task.">
|
|
<defs>
|
|
<marker id="dc-arrow" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,0 L10,5 L0,10 z" fill="currentColor"/></marker>
|
|
<marker id="dc-arrow-hot" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path class="f-accent" d="M0,0 L10,5 L0,10 z"/></marker>
|
|
</defs>
|
|
<g font-family="JetBrains Mono, ui-monospace, monospace" fill="currentColor">
|
|
<rect class="dc-box" x="16" y="40" width="160" height="80" rx="6" stroke-dasharray="4 3"/>
|
|
<text x="28" y="62" font-size="12" font-weight="600">your PC</text>
|
|
<text x="28" y="84" font-size="11">rdbg.py</text>
|
|
<text x="28" y="102" font-size="11" class="dc-dim">token first</text>
|
|
|
|
<rect class="dc-hot" x="236" y="24" width="260" height="176" rx="8"/>
|
|
<text x="250" y="48" font-size="12" font-weight="600">Debug Console task</text>
|
|
<text x="250" y="72" font-size="11">token check, one client</text>
|
|
<text x="250" y="90" font-size="11">ring → socket, live</text>
|
|
<text x="250" y="108" font-size="11">lines → command queue</text>
|
|
<text x="250" y="134" font-size="11" class="dc-dim">answers these itself:</text>
|
|
<text x="250" y="152" font-size="11">get · put · screenshot</text>
|
|
<text x="250" y="170" font-size="11">coredump get · reset</text>
|
|
<text x="250" y="188" font-size="10" class="dc-dim">(they work with the loop stuck)</text>
|
|
|
|
<rect class="dc-panel" x="236" y="244" width="260" height="80" rx="8"/>
|
|
<text x="250" y="268" font-size="12" font-weight="600">main loop</text>
|
|
<text x="250" y="290" font-size="11">runCommand(): the same</text>
|
|
<text x="250" y="308" font-size="11" class="dc-dim">commands as USB serial</text>
|
|
|
|
<rect class="dc-panel" x="560" y="24" width="184" height="96" rx="8"/>
|
|
<text x="574" y="48" font-size="12" font-weight="600">console</text>
|
|
<text x="574" y="70" font-size="11">6 KB ring</text>
|
|
<text x="574" y="88" font-size="11" class="dc-dim">+ USB serial,</text>
|
|
<text x="574" y="106" font-size="11" class="dc-dim"> if there's room</text>
|
|
|
|
<rect class="dc-box" x="560" y="150" width="184" height="40" rx="6" stroke-dasharray="4 3"/>
|
|
<text x="652" y="175" font-size="11" text-anchor="middle">ESP-IDF logs (tee)</text>
|
|
|
|
<rect class="dc-panel" x="560" y="244" width="184" height="80" rx="8"/>
|
|
<text x="574" y="268" font-size="12" font-weight="600">storage task</text>
|
|
<text x="574" y="290" font-size="11">SD card jobs</text>
|
|
<text x="574" y="308" font-size="11" class="dc-dim">ls rm install get put</text>
|
|
|
|
<path class="dc-line-hot" d="M180 80 H232" marker-start="url(#dc-arrow-hot)" marker-end="url(#dc-arrow-hot)"/>
|
|
<text class="f-accent" x="184" y="72" font-size="10">TCP 2323</text>
|
|
<path class="dc-line-hot" d="M300 200 V240" marker-end="url(#dc-arrow-hot)"/>
|
|
<text class="f-accent" x="308" y="226" font-size="10">queue</text>
|
|
<path class="dc-line" d="M556 56 H500" marker-end="url(#dc-arrow)"/>
|
|
<text x="508" y="48" font-size="10" class="dc-dim">read</text>
|
|
<path class="dc-line" d="M652 150 V124" marker-end="url(#dc-arrow)"/>
|
|
<path class="dc-line" d="M496 262 H516 V100 H556" marker-end="url(#dc-arrow)"/>
|
|
<text x="510" y="232" font-size="10" text-anchor="end" class="dc-dim">printf</text>
|
|
<path class="dc-line" d="M496 180 H540 V290 H556" marker-end="url(#dc-arrow)"/>
|
|
<path class="dc-line" d="M496 306 H556" marker-end="url(#dc-arrow)"/>
|
|
<text x="512" y="322" font-size="10" class="dc-dim">jobs</text>
|
|
</g>
|
|
</svg>
|