feat: Update averageValue calculation to consider only hardware sensors and improve error handling for sensor data fetching
This commit is contained in:
parent
738ae59c69
commit
9eb57f675b
1 changed files with 20 additions and 10 deletions
|
@ -103,13 +103,14 @@ export const useBedPressureStore = create<BedPressureStore>((set, get) => ({
|
|||
setSelectedTimespan: (timespan) => set({ selectedTimespan: timespan }),
|
||||
|
||||
setActiveAlarms: (alarms) => set({ activeAlarms: alarms }),
|
||||
|
||||
// Computed values
|
||||
// Computed values
|
||||
averageValue: () => {
|
||||
const { sensorData } = get();
|
||||
const sensors = Object.values(sensorData) as SensorData[];
|
||||
if (sensors.length === 0) return 0;
|
||||
return sensors.reduce((sum: number, sensor: SensorData) => sum + sensor.currentValue, 0) / sensors.length;
|
||||
// Only calculate average for sensors with hardware data
|
||||
const hardwareSensors = sensors.filter(sensor => sensor.source === 'hardware');
|
||||
if (hardwareSensors.length === 0) return 0;
|
||||
return hardwareSensors.reduce((sum: number, sensor: SensorData) => sum + sensor.currentValue, 0) / hardwareSensors.length;
|
||||
},
|
||||
|
||||
criticalSensors: () => {
|
||||
|
@ -258,20 +259,29 @@ export const useBedPressureStore = create<BedPressureStore>((set, get) => ({
|
|||
warningDelayMs,
|
||||
warningStartTime
|
||||
};
|
||||
});
|
||||
|
||||
set({
|
||||
}); set({
|
||||
sensorData: updated,
|
||||
isConnected: data.connected,
|
||||
isConnected: data.connected || false,
|
||||
activeAlarms: alarmManager.getActiveAlarms()
|
||||
});
|
||||
|
||||
if (newAlerts.length > 0) {
|
||||
get().addAlerts(newAlerts);
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
} else { // No sensor data available - set as disconnected
|
||||
const { alarmManager } = get();
|
||||
set({
|
||||
isConnected: false,
|
||||
activeAlarms: alarmManager.getActiveAlarms()
|
||||
});
|
||||
} } catch (error) {
|
||||
console.error('Failed to fetch sensor data:', error);
|
||||
// Set as disconnected on error
|
||||
const { alarmManager } = get();
|
||||
set({
|
||||
isConnected: false,
|
||||
activeAlarms: alarmManager.getActiveAlarms()
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue