import React from 'react'; import { BatteryCharging, Zap, Thermometer, Sliders } from 'lucide-react'; import { AgvState } from '../types'; interface BmsPanelProps { state: AgvState; setBatteryLevel: (level: number) => void; setIsCharging: (isCharging: boolean) => void; } const BmsPanel: React.FC = ({ state, setBatteryLevel, setIsCharging }) => { const currentCapacity = (state.maxCapacity * (state.batteryLevel / 100)).toFixed(1); return (

BMS Monitor ID: 01

{/* Main Info Grid */}
Total Voltage
{(state.cellVoltages.reduce((a, b) => a + b, 0)).toFixed(1)} V
Temp 1 / 2
1: {state.batteryTemps?.[0]?.toFixed(1)}°C
2: {state.batteryTemps?.[1]?.toFixed(1)}°C
Capacity (Ah)
{currentCapacity} / {state.maxCapacity}
Level (%)
{state.batteryLevel.toFixed(1)}%
Current (A)
{(state.isCharging ? -18.7 : 2.1).toFixed(1)} A
Power (W)
{state.isCharging ? -450 : 50} W
{/* Charge Button */}
{/* Manual Slider */}
Manual Adjust
setBatteryLevel(Number(e.target.value))} className="w-full h-1.5 bg-gray-600 rounded-lg appearance-none cursor-pointer accent-green-500 hover:accent-green-400" />
{/* Cells */}
Cell Voltages (V)
{state.cellVoltages.map((v, i) => (
3.5 ? 'bg-blue-900/30 border-blue-800 text-blue-300' : 'bg-gray-700/30 border-gray-600 text-gray-300' }`}> {v.toFixed(3)}
))}
); }; export default BmsPanel;