From 650f302431087262c1ef3aaace93bf3ec4b82ba2 Mon Sep 17 00:00:00 2001 From: Connor Needham <129120300+ConnorNeed@users.noreply.github.com> Date: Mon, 13 Jul 2026 21:33:10 +0000 Subject: [PATCH] feat: correct default IPs as constants --- src/app/dashboard/api/route.ts | 4 +++- src/components/ConnectionStatusDisplay.tsx | 3 ++- src/components/ContainerCard.tsx | 5 ----- src/components/ContainerList.tsx | 3 ++- src/components/panels/MapView.tsx | 6 ++---- src/components/panels/MosaicDashboard.tsx | 4 +++- src/constants.ts | 9 +++++++++ start.sh | 9 --------- 8 files changed, 21 insertions(+), 22 deletions(-) create mode 100644 src/constants.ts diff --git a/src/app/dashboard/api/route.ts b/src/app/dashboard/api/route.ts index 798182e..9f75430 100644 --- a/src/app/dashboard/api/route.ts +++ b/src/app/dashboard/api/route.ts @@ -1,4 +1,6 @@ -const hosts = ['192.168.0.2', '192.168.0.3', '192.168.0.55']; // Add more hosts here as needed +import { BASE_AP_IP, ROVER_AP_IP, ROVER_IP } from '@/constants'; + +const hosts = [BASE_AP_IP, ROVER_AP_IP, ROVER_IP]; const ping = require('ping'); diff --git a/src/components/ConnectionStatusDisplay.tsx b/src/components/ConnectionStatusDisplay.tsx index 0432fd1..ec90092 100644 --- a/src/components/ConnectionStatusDisplay.tsx +++ b/src/components/ConnectionStatusDisplay.tsx @@ -2,10 +2,11 @@ import React, { useState, useEffect } from 'react'; import Cookies from 'js-cookie'; import { useROS } from '@/ros/ROSContext'; +import { ROVER_IP } from '@/constants'; const ConnectionStatusDisplay: React.FC = () => { const { connectionStatus, connect, disconnect } = useROS(); - const [url, setUrl] = useState('ws://localhost:9090'); + const [url, setUrl] = useState(`ws://${ROVER_IP}:9090`); // Load url from cookie on mount useEffect(() => { diff --git a/src/components/ContainerCard.tsx b/src/components/ContainerCard.tsx index 49d08d3..c5b6a9b 100644 --- a/src/components/ContainerCard.tsx +++ b/src/components/ContainerCard.tsx @@ -1,7 +1,4 @@ import React, { useEffect, useRef, useState } from 'react'; -import { useEnvContext } from 'next-runtime-env'; - - export interface ContainerOption { key: string; @@ -32,8 +29,6 @@ const ContainerCard: React.FC = ({ const [eventMsg, setEventMsg] = useState(externalEventMsg); const socketRef = useRef(null); const logBoxRef = useRef(null); - const { NEXT_PUBLIC_LAUNCHSERVER } = useEnvContext(); - const apiBase = NEXT_PUBLIC_LAUNCHSERVER || 'localhost:8080'; // Sync status and clear logs/eventMsg when container ID changes (new container after restart) useEffect(() => { diff --git a/src/components/ContainerList.tsx b/src/components/ContainerList.tsx index c13c6aa..2c8f9f9 100644 --- a/src/components/ContainerList.tsx +++ b/src/components/ContainerList.tsx @@ -3,6 +3,7 @@ import React, { useEffect, useState, useRef } from 'react'; import ContainerCard, { ContainerOption } from './ContainerCard'; import SetResetPanel from './SetResetPanel'; import toast from "react-hot-toast"; +import { ROVER_IP } from '@/constants'; const dockersToPull = [ @@ -11,7 +12,7 @@ const dockersToPull = [ 'cprtsoftware/container-launcher:latest', ]; -const DEFAULT_API_BASE = 'http://localhost:8080'; +const DEFAULT_API_BASE = `http://${ROVER_IP}:8080`; const ContainerList: React.FC = () => { const [options, setOptions] = useState([]); diff --git a/src/components/panels/MapView.tsx b/src/components/panels/MapView.tsx index 4ea70ca..e95b47d 100644 --- a/src/components/panels/MapView.tsx +++ b/src/components/panels/MapView.tsx @@ -9,9 +9,9 @@ import BreadcrumbTrail from '../BreadCrumbTrail'; import WaypointCreatorWindow from '../WaypointCreatorWindow'; import MapInteractionHandler from '../MapInteractionHandler'; import MapCompass from '../MapCompass'; -import { useEnvContext } from 'next-runtime-env'; import { useROS } from '@/ros/ROSContext'; import ROSLIB from 'roslib'; +import { TILING_SERVER } from '@/constants'; const DEFAULT_MAP_CENTER: LatLngTuple = [38.405884, -110.791719]; @@ -50,8 +50,6 @@ const MapView: React.FC = ({offline}) => { const [antennaLoc, setAntennaLoc] = useState(DEFAULT_MAP_CENTER); const [antennaHead, setAntennaHead] = useState(0); const { waypoints } = useWaypoints(); - const { NEXT_PUBLIC_TILE_SERVER } = useEnvContext(); - const tileServer = NEXT_PUBLIC_TILE_SERVER || "localhost:80"; useEffect(() => { if (!ros) return; @@ -112,7 +110,7 @@ const MapView: React.FC = ({offline}) => { > diff --git a/src/components/panels/MosaicDashboard.tsx b/src/components/panels/MosaicDashboard.tsx index 7311fbf..7cc1e8f 100644 --- a/src/components/panels/MosaicDashboard.tsx +++ b/src/components/panels/MosaicDashboard.tsx @@ -26,6 +26,8 @@ import PDBRailsPanel from './PDBRails'; import ArmControlPanel from './ArmControlPanel'; import WebRTCClient from './WebRTCClient'; +import { ROVER_IP } from '@/constants'; + type TileType = | 'mapView' | 'rosMonitor' @@ -439,7 +441,7 @@ const MosaicDashboard: React.FC = () => { return( ); diff --git a/src/constants.ts b/src/constants.ts new file mode 100644 index 0000000..3ea48cd --- /dev/null +++ b/src/constants.ts @@ -0,0 +1,9 @@ +// src/constants.ts + +export const ROVER_IP = '192.168.0.55'; +export const BASE_AP_IP = '192.168.0.2'; +export const ROVER_AP_IP = '192.168.0.3'; +export const RPI_IP = '192.168.0.25'; +export const BASE_IP = '192.168.0.20'; +export const TILING_SERVER_PORT = 80; +export const TILING_SERVER = `${BASE_IP}:${TILING_SERVER_PORT}`; diff --git a/start.sh b/start.sh index 9ad8a70..5f55242 100755 --- a/start.sh +++ b/start.sh @@ -1,13 +1,5 @@ #!/bin/bash - -LOCAL_IP="" -while [ -z "$LOCAL_IP" ]; do - LOCAL_IP=$(ip addr show enP8p1s0 | grep -oP '(?<=inet )([0-9\.]+)' || hostname -I | awk '{print $1}') - sleep 1 -done -LOCAL_IP="192.168.0.20" TILING_SERVER_PORT=80 -echo "Local IP address: $LOCAL_IP" if docker ps -a --format '{{.Names}}' | grep -wq "tiling-server-container"; then echo "Tiling container exists, removing..." @@ -21,6 +13,5 @@ docker run --rm --name tiling-server-container -d \ docker run --rm --name cprt-webserver \ -p 3000:3000 \ - -e NEXT_PUBLIC_TILE_SERVER="$LOCAL_IP:$TILING_SERVER_PORT" \ cprtsoftware/web-ui:latest