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}