pub struct MaintenanceHysteresis {
pub post_clean_guard_runs: usize,
/* private fields */
}Expand description
Tracks the hysteresis boundary around chamber-clean and seasoning events.
When a ToolState::ChamberClean signal is received, the engine
performs a “Warm Reset”: the accumulated grammar state is cleared so that
post-clean transients during seasoning do not trigger false alarms.
A configurable guard window (post_clean_guard_runs) suppresses new alarms
for the first N wafer runs after clean completion.
§Integration Pattern
Call MaintenanceHysteresis::update at the start of every run with the
current ProcessContext. If it returns true, flush the grammar
accumulator for all features before processing the current run.
§Example
use dsfb_semiconductor::process_context::{
MaintenanceHysteresis, ProcessContext, ToolState,
};
let mut hyst = MaintenanceHysteresis::new(10);
let mut ctx = ProcessContext::default();
ctx.tool_state = ToolState::ChamberClean;
assert!(hyst.update(&ctx), "clean signal must trigger warm reset");
assert!(hyst.is_suppressed(), "guard window should be active");
ctx.tool_state = ToolState::Production;
for _ in 0..10 {
hyst.update(&ctx);
}
assert!(!hyst.is_suppressed(), "guard window should have elapsed");Fields§
§post_clean_guard_runs: usizeNumber of production runs after a clean event during which alarms are suppressed to allow the chamber seasoning transient to decay.
Implementations§
Source§impl MaintenanceHysteresis
impl MaintenanceHysteresis
Sourcepub fn new(post_clean_guard_runs: usize) -> Self
pub fn new(post_clean_guard_runs: usize) -> Self
Create a new tracker with the specified guard window.
Setting post_clean_guard_runs = 0 disables the guard window.
Sourcepub fn update(&mut self, ctx: &ProcessContext) -> bool
pub fn update(&mut self, ctx: &ProcessContext) -> bool
Update the tracker with the current process context.
Returns true if the grammar engine must perform a Warm Reset
(i.e., the current context indicates a clean/maintenance event).
Sourcepub fn is_suppressed(&self) -> bool
pub fn is_suppressed(&self) -> bool
Returns true while the engine is inside the post-clean suppression
window (i.e., alarms should be downgraded to Watch or suppressed).
Sourcepub fn runs_since_last_reset(&self) -> usize
pub fn runs_since_last_reset(&self) -> usize
Number of production runs elapsed since the last Warm Reset.
Returns usize::MAX when no reset has been triggered.
Trait Implementations§
Source§impl Clone for MaintenanceHysteresis
impl Clone for MaintenanceHysteresis
Source§fn clone(&self) -> MaintenanceHysteresis
fn clone(&self) -> MaintenanceHysteresis
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more