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 }),
|
setSelectedTimespan: (timespan) => set({ selectedTimespan: timespan }),
|
||||||
|
|
||||||
setActiveAlarms: (alarms) => set({ activeAlarms: alarms }),
|
setActiveAlarms: (alarms) => set({ activeAlarms: alarms }),
|
||||||
|
// Computed values
|
||||||
// Computed values
|
|
||||||
averageValue: () => {
|
averageValue: () => {
|
||||||
const { sensorData } = get();
|
const { sensorData } = get();
|
||||||
const sensors = Object.values(sensorData) as SensorData[];
|
const sensors = Object.values(sensorData) as SensorData[];
|
||||||
if (sensors.length === 0) return 0;
|
// Only calculate average for sensors with hardware data
|
||||||
return sensors.reduce((sum: number, sensor: SensorData) => sum + sensor.currentValue, 0) / sensors.length;
|
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: () => {
|
criticalSensors: () => {
|
||||||
|
@ -258,20 +259,29 @@ export const useBedPressureStore = create<BedPressureStore>((set, get) => ({
|
||||||
warningDelayMs,
|
warningDelayMs,
|
||||||
warningStartTime
|
warningStartTime
|
||||||
};
|
};
|
||||||
});
|
}); set({
|
||||||
|
|
||||||
set({
|
|
||||||
sensorData: updated,
|
sensorData: updated,
|
||||||
isConnected: data.connected,
|
isConnected: data.connected || false,
|
||||||
activeAlarms: alarmManager.getActiveAlarms()
|
activeAlarms: alarmManager.getActiveAlarms()
|
||||||
});
|
});
|
||||||
|
|
||||||
if (newAlerts.length > 0) {
|
if (newAlerts.length > 0) {
|
||||||
get().addAlerts(newAlerts);
|
get().addAlerts(newAlerts);
|
||||||
}
|
}
|
||||||
}
|
} else { // No sensor data available - set as disconnected
|
||||||
} catch (error) {
|
const { alarmManager } = get();
|
||||||
|
set({
|
||||||
|
isConnected: false,
|
||||||
|
activeAlarms: alarmManager.getActiveAlarms()
|
||||||
|
});
|
||||||
|
} } catch (error) {
|
||||||
console.error('Failed to fetch sensor data:', 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