<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 620" role="img" aria-labelledby="title desc">
  <title id="title">GD6 通过 The Things Stack CUPS 获取 LNS 配置</title>
  <desc id="desc">GD6 先连接 CUPS 获取 LNS 地址和凭据，再连接 LNS 传输 LoRaWAN 数据；CUPS 与 LNS 使用不同的 API Key。</desc>
  <defs>
    <marker id="blue-arrow" markerWidth="10" markerHeight="10" refX="9" refY="3" orient="auto" markerUnits="strokeWidth">
      <path d="M0,0 L0,6 L9,3 z" fill="#2563eb"/>
    </marker>
    <marker id="orange-arrow" markerWidth="10" markerHeight="10" refX="9" refY="3" orient="auto" markerUnits="strokeWidth">
      <path d="M0,0 L0,6 L9,3 z" fill="#ea580c"/>
    </marker>
    <style>
      .title{font:700 34px system-ui,-apple-system,"PingFang SC",sans-serif;fill:#172033}
      .box-title{font:700 24px system-ui,-apple-system,"PingFang SC",sans-serif;fill:#172033}
      .body{font:18px system-ui,-apple-system,"PingFang SC",sans-serif;fill:#475569}
      .mono{font:700 17px ui-monospace,SFMono-Regular,Menlo,monospace}
      .box{fill:#fff;stroke:#cbd5e1;stroke-width:2}
      .accent{fill:#eff6ff;stroke:#60a5fa;stroke-width:2}
      .config{stroke:#ea580c;stroke-width:4;fill:none;marker-end:url(#orange-arrow)}
      .data{stroke:#2563eb;stroke-width:4;fill:none;marker-end:url(#blue-arrow)}
    </style>
  </defs>
  <rect width="1280" height="620" rx="28" fill="#f8fafc"/>
  <text class="title" x="64" y="70">The Things Stack · CUPS 配置面与 LNS 数据面</text>

  <rect class="accent" x="72" y="226" width="250" height="160" rx="18"/>
  <text class="box-title" x="197" y="286" text-anchor="middle">GD6 网关</text>
  <text class="body" x="197" y="329" text-anchor="middle">Basic Station 驱动</text>

  <rect class="box" x="790" y="118" width="420" height="170" rx="18"/>
  <text class="box-title" x="1000" y="174" text-anchor="middle">CUPS · 配置与更新服务器</text>
  <text class="mono" x="1000" y="215" text-anchor="middle" fill="#c2410c">https://&lt;server-address&gt;:443</text>
  <text class="body" x="1000" y="252" text-anchor="middle">返回 LNS URI、信任链和 LNS 凭据</text>

  <rect class="box" x="790" y="350" width="420" height="170" rx="18"/>
  <text class="box-title" x="1000" y="406" text-anchor="middle">LNS · LoRaWAN 数据服务器</text>
  <text class="mono" x="1000" y="447" text-anchor="middle" fill="#1d4ed8">wss://&lt;server-address&gt;:8887</text>
  <text class="body" x="1000" y="484" text-anchor="middle">承载上行、下行与状态流量</text>

  <path class="config" d="M322 270 C500 180 600 180 772 198"/>
  <path class="config" d="M790 246 C610 270 510 315 340 330" stroke-dasharray="10 8"/>
  <path class="data" d="M322 360 C510 465 610 454 772 438"/>
  <text class="body" x="530" y="160" fill="#c2410c">① CUPS 请求（CUPS API Key）</text>
  <text class="body" x="505" y="284" fill="#c2410c">② 下发 LNS 配置</text>
  <text class="body" x="522" y="505" fill="#1d4ed8">③ LNS 连接（LNS API Key）</text>

  <rect x="72" y="470" width="590" height="92" rx="16" fill="#fff7ed" stroke="#fdba74" stroke-width="2"/>
  <text class="body" x="104" y="510">CUPS 与 LNS 的 API Key 权限不同；不要互换。</text>
  <text class="body" x="104" y="542">CUPS 返回的配置可以覆盖设备上原有的 LNS 设置。</text>
</svg>
