Skip to content

Commit 8a4a94a

Browse files
committed
feat: hard state reset (for hil)
1 parent 888add3 commit 8a4a94a

File tree

3 files changed

+26
-0
lines changed

3 files changed

+26
-0
lines changed

src/state.rs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,28 @@ impl SignaledGlobalStateInner {
279279
crate::translations::restore_default_locale();
280280
}
281281

282+
#[allow(dead_code)]
283+
pub async fn hard_state_reset(&mut self) {
284+
self.scene = Scene::WaitingForCompetitor;
285+
self.inspection_start = None;
286+
self.inspection_end = None;
287+
self.solve_time = None;
288+
self.last_solve_time = None;
289+
self.penalty = None;
290+
self.session_id = None;
291+
self.time_confirmed = false;
292+
self.solve_group = None;
293+
self.error_text = None;
294+
self.possible_groups.clear();
295+
self.group_selected_idx = usize::MAX;
296+
self.current_competitor = None;
297+
self.current_judge = None;
298+
self.competitor_display = None;
299+
self.delegate_used = false;
300+
self.delegate_hold = None;
301+
self.custom_message = None;
302+
}
303+
282304
pub fn to_saved_global_state(&self) -> Option<SavedGlobalState> {
283305
log::debug!("TO_SAVED_GLOBAL_STATE: {self:?}");
284306

src/structs.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ pub enum TimerPacketInner {
8989
#[derive(Debug, Clone, Serialize, Deserialize)]
9090
#[serde(tag = "type", content = "data")]
9191
pub enum TestPacketData {
92+
HardStateReset,
9293
ResetState,
9394
ScanCard(u64),
9495
ButtonPress { pin: u8, press_time: u64 },

src/ws.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,9 @@ async fn parse_test_packet(
382382

383383
send_test_ack().await;
384384
}
385+
crate::structs::TestPacketData::HardStateReset => {
386+
global_state.state.lock().await.hard_state_reset().await;
387+
}
385388
crate::structs::TestPacketData::ScanCard(uid) => {
386389
global_state.e2e.card_scan_sig.signal(uid as u128)
387390
}

0 commit comments

Comments
 (0)