diff --git a/electron/src/machines/extruder/extruder2/extruder2Namespace.ts b/electron/src/machines/extruder/extruder2/extruder2Namespace.ts index b97ec4ae..36e3354c 100644 --- a/electron/src/machines/extruder/extruder2/extruder2Namespace.ts +++ b/electron/src/machines/extruder/extruder2/extruder2Namespace.ts @@ -111,7 +111,7 @@ export function extruder2MessageHandler( try { if (eventName == "ExtruderSettingsStateEvent") { - store.setState((state) => ({ + updateStore((state) => ({ ...state, extruderSettingsState: extruderSettingsStateEventSchema.parse(event), })); diff --git a/server/src/machines/extruder1/api.rs b/server/src/machines/extruder1/api.rs index 427ce5de..01d9813f 100644 --- a/server/src/machines/extruder1/api.rs +++ b/server/src/machines/extruder1/api.rs @@ -248,19 +248,21 @@ impl CacheableEvents for ExtruderV2Events { } fn event_cache_fn(&self) -> CacheFn { - let _cache_one_hour = cache_duration(Duration::from_secs(60 * 60), Duration::from_secs(1)); - let _cache_ten_secs = cache_duration(Duration::from_secs(10), Duration::from_secs(1)); + let cache_one_hour = cache_duration(Duration::from_secs(60 * 60), Duration::from_secs(1)); let cache_one = cache_one_event(); match self { + // State events (keep only the latest) ExtruderV2Events::RotationStateEvent(_) => cache_one, ExtruderV2Events::ModeEvent(_) => cache_one, ExtruderV2Events::RegulationStateEvent(_) => cache_one, - ExtruderV2Events::PressureStateEvent(_) => cache_one, - ExtruderV2Events::ScrewStateEvent(_) => cache_one, - ExtruderV2Events::HeatingStateEvent(_) => cache_one, ExtruderV2Events::ExtruderSettingsStateEvent(_) => cache_one, - ExtruderV2Events::HeatingPowerEvent(_) => cache_one, + ExtruderV2Events::HeatingStateEvent(_) => cache_one, + + // Time series events (keep for 1 hour) + ExtruderV2Events::PressureStateEvent(_) => cache_one_hour, + ExtruderV2Events::ScrewStateEvent(_) => cache_one_hour, + ExtruderV2Events::HeatingPowerEvent(_) => cache_one_hour, } } } diff --git a/server/src/machines/winder2/api.rs b/server/src/machines/winder2/api.rs index b4c905be..7a6ff6a0 100644 --- a/server/src/machines/winder2/api.rs +++ b/server/src/machines/winder2/api.rs @@ -305,7 +305,6 @@ impl CacheableEvents for Winder2Events { fn event_cache_fn(&self) -> CacheFn { let cache_one_hour = cache_duration(Duration::from_secs(60 * 60), Duration::from_secs(1)); - let cache_ten_secs = cache_duration(Duration::from_secs(10), Duration::from_secs(1)); let cache_one = cache_one_event(); match self { @@ -316,7 +315,7 @@ impl CacheableEvents for Winder2Events { Winder2Events::AutostopWoundedlength(_) => cache_one_hour, Winder2Events::AutostopState(_) => cache_one, Winder2Events::Mode(_) => cache_one, - Winder2Events::SpoolRpm(_) => cache_ten_secs, + Winder2Events::SpoolRpm(_) => cache_one_hour, Winder2Events::TensionArmAngleEvent(_) => cache_one_hour, Winder2Events::TensionArmStateEvent(_) => cache_one, }