diff --git a/src/pages/HostSystemPage.tsx b/src/pages/HostSystemPage.tsx index 1f8d3a0..3a5c7ae 100644 --- a/src/pages/HostSystemPage.tsx +++ b/src/pages/HostSystemPage.tsx @@ -50,15 +50,15 @@ const HostSystemPage = () => { }) const mapCameraData = useCallback(() => { - if (!data) return [] + if (!data || !data.cameras) return [] return Object.entries(data.cameras).flatMap(([name, stats]) => { return (['Ffmpeg', 'Capture', 'Detect'] as ProcessType[]).map(type => { const pid = type === ProcessType.Ffmpeg ? stats.ffmpeg_pid : type === ProcessType.Capture ? stats.capture_pid : stats.pid; const fps = type === ProcessType.Ffmpeg ? stats.camera_fps : type === ProcessType.Capture ? stats.process_fps : stats.detection_fps; - const cpu = data.cpu_usages[pid]?.cpu; - const mem = data.cpu_usages[pid]?.mem; + const cpu = data.cpu_usages ? data.cpu_usages[pid]?.cpu : '0' + const mem = data.cpu_usages ? data.cpu_usages[pid]?.mem : '0' return { cameraName: name, @@ -105,37 +105,43 @@ const HostSystemPage = () => { } }) - const gpuStats = Object.entries(data.gpu_usages).map(([name, stats]) => { - return ( - + const gpuStats = () => { + if (!data?.gpu_usages) return null + + return Object.entries(data.gpu_usages).map(([name, stats]) => ( + handleVaInfoClick()} + onVaInfoClick={handleVaInfoClick} /> - ) - }) + )) + }; - const detectorsStats = Object.entries(data.detectors).map(([name, stats]) => { - const pid = stats.pid - const cpu = data.cpu_usages[pid]?.cpu; - const mem = data.cpu_usages[pid]?.mem; - return ( - - - - ) - }) + const detectorsStats = () => { + if (!data?.detectors) return null + + Object.entries(data.detectors).map(([name, stats]) => { + const pid = stats.pid + const cpu = data.cpu_usages ? data.cpu_usages[pid]?.cpu : '0' + const mem = data.cpu_usages ? data.cpu_usages[pid]?.mem : '0' + return ( + + + + ) + }) + } const handleFfprobeClick = (cameraName: string) => openContextModal({ modal: 'ffprobeModal', @@ -164,8 +170,8 @@ const HostSystemPage = () => { {storageStats} - {gpuStats} - {detectorsStats} + {gpuStats()} + {detectorsStats()}