From 4ff4bc95c9f04a9cf1f07f91a5a3aaccaeb5042d Mon Sep 17 00:00:00 2001 From: Jonah Dahlquist Date: Sun, 19 Jan 2020 23:49:46 -0800 Subject: [PATCH] Added register_dump function to show the contents of a socket register --- src/socket/mod.rs | 11 +++++++++++ src/udp/mod.rs | 4 ++++ 2 files changed, 15 insertions(+) diff --git a/src/socket/mod.rs b/src/socket/mod.rs index 6abd085..1cd9ce2 100644 --- a/src/socket/mod.rs +++ b/src/socket/mod.rs @@ -168,6 +168,17 @@ pub trait Socket { } } } + + fn dump_register(&self, bus: &mut SpiBus) -> Result<[u8; 0x30], SpiBus::Error> { + let mut register = [0u8; 0x30]; + block!(bus.transfer_frame( + self.register(), + 0u16, + false, + &mut register + ))?; + Ok(register) + } } pub type OwnedSockets = ( diff --git a/src/udp/mod.rs b/src/udp/mod.rs index 351ecd5..a192f4e 100644 --- a/src/udp/mod.rs +++ b/src/udp/mod.rs @@ -34,6 +34,10 @@ impl Ok(UdpSocket { w5500, socket }) } + pub fn dump_register(&mut self) -> Result<[u8; 0x30], SpiBus::Error> { + Ok(self.socket.dump_register(&mut self.w5500.bus)?) + } + /// Returns a UDP packet if one is available. Will return `None` if no UDP packets are in the socket's buffer pub fn receive(mut self) -> Result>, SpiBus::Error> { if !self