class EpisodeState: """Episode state controller for data collection. Manages the state transitions for episode recording: - IDLE: Not recording - RECORDING: Currently recording data - NEED_TO_SAVE: Recording stopped, waiting to save """ def __init__(self): self.RECORDING = "recording" self.IDLE = "idle" self.NEED_TO_SAVE = "need_to_save" self.state = self.IDLE def change_state(self): """Cycle through states: IDLE -> RECORDING -> NEED_TO_SAVE -> IDLE.""" if self.state == self.IDLE: self.state = self.RECORDING elif self.state == self.RECORDING: self.state = self.NEED_TO_SAVE elif self.state == self.NEED_TO_SAVE: self.state = self.IDLE def reset_state(self): """Reset to IDLE state.""" self.state = self.IDLE def get_state(self): """Get current state.""" return self.state