import React from 'react'; import { BatteryCharging, Zap, Thermometer, Sliders } from 'lucide-react'; import { AgvState } from '../types'; interface BmsPanelProps { state: AgvState; setBatteryLevel: (level: number) => void; } const BmsPanel: React.FC = ({ state, setBatteryLevel }) => { 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
{state.batteryTemp.toFixed(1)} °C
Capacity (Ah)
{currentCapacity} / {state.maxCapacity}
Level (%)
{state.batteryLevel.toFixed(1)}%
{/* 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;