Connections - {robot.id}

{#if error}
{error}
{/if}

Room Management

{#if showRoomManagement}
{rooms.length} room{rooms.length !== 1 ? "s" : ""} available
Available Rooms:
Create New Room

Create a room for collaboration

{#if rooms.length === 0}
{roomsLoading ? "Loading..." : "No existing rooms available"}
{:else} {#each rooms as room}

{room.id}

{room.participants?.total || 0} participants

{/each} {/if}
{/if}

Consumer (Receive Commands) - Single

{#if hasConsumer}
{consumer?.name || "Consumer Active"} {consumer?.status.isConnected ? "🟢 Connected" : "🔴 Disconnected"}
{:else}
Remote Consumer: Receive commands from transport server
{/if}

Producers (Send Commands) - {outputDriverCount} connected

Remote Producer: Send commands to transport server. Uses Robot ID: {remoteRobotId}
{#each producers as producer}
{producer.name} {producer.status.isConnected ? "🟢 Connected" : "🔴 Disconnected"}
{/each}
Robot ID for Remote Connections:
{#if showUSBCalibration}

USB Calibration Required {#if pendingUSBConnection} (for {pendingUSBConnection === "consumer" ? "Consumer" : "Producer"}) {/if}

Before connecting USB drivers, the robot needs to be calibrated to map its physical range to software values.
{#if getUSBDriver()} {:else}
No USB driver available for calibration
{/if}
{/if}