From ed38115f65700de5765abcc037196e2fed8ee3ec Mon Sep 17 00:00:00 2001 From: Dragan Spiridonov Date: Thu, 3 Sep 2026 15:15:18 +0200 Subject: [PATCH] fix(server): decode current ESP reset reasons --- .../wifi-densepose-sensing-server/src/main.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/v2/crates/wifi-densepose-sensing-server/src/main.rs b/v2/crates/wifi-densepose-sensing-server/src/main.rs index ec87af92a..ae7b36ab6 100644 --- a/v2/crates/wifi-densepose-sensing-server/src/main.rs +++ b/v2/crates/wifi-densepose-sensing-server/src/main.rs @@ -440,6 +440,7 @@ fn decode_node_health_datagram(buf: &[u8]) -> Option { fn reset_reason_name(reason: u8) -> &'static str { match reason { 1 => "power_on", + 2 => "external_pin", 3 => "software", 4 => "panic", 5 => "interrupt_watchdog", @@ -448,6 +449,11 @@ fn reset_reason_name(reason: u8) -> &'static str { 8 => "deep_sleep", 9 => "brownout", 10 => "sdio", + 11 => "usb", + 12 => "jtag", + 13 => "efuse_error", + 14 => "power_glitch", + 15 => "cpu_lockup", _ => "unknown", } } @@ -938,6 +944,17 @@ mod node_health_ingestion_tests { assert_eq!(value["packet_yield_per_sec"], 37); assert_eq!(value["free_heap_bytes"], 181_224); } + + #[test] + fn reset_reason_names_cover_current_esp_idf_reasons() { + assert_eq!(reset_reason_name(2), "external_pin"); + assert_eq!(reset_reason_name(11), "usb"); + assert_eq!(reset_reason_name(12), "jtag"); + assert_eq!(reset_reason_name(13), "efuse_error"); + assert_eq!(reset_reason_name(14), "power_glitch"); + assert_eq!(reset_reason_name(15), "cpu_lockup"); + assert_eq!(reset_reason_name(255), "unknown"); + } } /// Default EMA alpha for temporal keypoint smoothing (RuVector Phase 2).