From ddf9f30a41f593a84d8d4de2d2cbcab0ca9df23c Mon Sep 17 00:00:00 2001 From: Jerald-Golden-B Date: Sat, 20 Dec 2025 12:53:18 +0530 Subject: [PATCH] feat: Add simulation analyzer component for comprehensive performance tracking and metric calculation. --- app/src/modules/simulation/analyzer/analyzer.tsx | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/app/src/modules/simulation/analyzer/analyzer.tsx b/app/src/modules/simulation/analyzer/analyzer.tsx index f28724f..9cb2273 100644 --- a/app/src/modules/simulation/analyzer/analyzer.tsx +++ b/app/src/modules/simulation/analyzer/analyzer.tsx @@ -1007,7 +1007,7 @@ function Analyzer() { const materialFlow = calculateMaterialFlowMetricsForAsset(vehicle.modelUuid); const tripsCompleted = completedActionsRef.current[vehicle.modelUuid] || 0; const totalLoadsDelivered = completedActionsRef.current[`${vehicle.modelUuid}_loads`] || 0; - const defects = errorCountsRef.current[`${vehicle.modelUuid}_defects`] || 0; + const defects = errorCount; // Use main error count directly const qualityMetrics = calculateQualityMetrics(vehicle.modelUuid, totalLoadsDelivered, defects); // Performance calculations @@ -1123,7 +1123,7 @@ function Analyzer() { maintenanceCost: costMetrics.maintenanceCost, energyCost: energyMetrics.energyCost, totalCost: costMetrics.totalCost, - costPerMile: actualDistance > 0 ? costMetrics.totalCost / actualDistance : 0, + costPerMile: actualDistance > 0 ? costMetrics.totalCost / (actualDistance / 1609.34) : 0, // Convert meters to miles costPerTrip: tripsCompleted > 0 ? costMetrics.totalCost / tripsCompleted : 0, costPerLoad: totalLoadsDelivered > 0 ? costMetrics.totalCost / totalLoadsDelivered : 0, roi: costMetrics.roi, @@ -2475,6 +2475,12 @@ function Analyzer() { completedActionsRef.current[vehicle.modelUuid] = 0; } completedActionsRef.current[vehicle.modelUuid]++; + + // Track loads delivered (assuming 1 load per trip for now, or use vehicle.currentLoad if available/reliable at this point) + if (!completedActionsRef.current[`${vehicle.modelUuid}_loads`]) { + completedActionsRef.current[`${vehicle.modelUuid}_loads`] = 0; + } + completedActionsRef.current[`${vehicle.modelUuid}_loads`] += 1; } previousVehiclePhasesRef.current[vehicle.modelUuid] = currentPhase;