Adapt UDP to W5100
This commit is contained in:
parent
4e9f7f4d22
commit
62e56052cf
16 changed files with 918 additions and 702 deletions
16
src/tcp.rs
16
src/tcp.rs
|
|
@ -48,11 +48,7 @@ impl TcpSocket {
|
|||
self.socket.command(bus, socketn::Command::Close)?;
|
||||
self.socket.reset_interrupt(bus, socketn::Interrupt::All)?;
|
||||
self.socket.set_mode(bus, socketn::Protocol::Tcp)?;
|
||||
|
||||
self.socket.set_interrupt_mask(
|
||||
bus,
|
||||
socketn::Interrupt::SendOk as u8 & socketn::Interrupt::Timeout as u8,
|
||||
)?;
|
||||
self.socket.enable_interrupts(bus)?;
|
||||
|
||||
self.socket.command(bus, socketn::Command::Open)?;
|
||||
Ok(())
|
||||
|
|
@ -66,11 +62,7 @@ impl TcpSocket {
|
|||
self.socket.reset_interrupt(bus, socketn::Interrupt::All)?;
|
||||
self.socket.set_source_port(bus, local_port)?;
|
||||
self.socket.set_mode(bus, socketn::Protocol::Tcp)?;
|
||||
|
||||
self.socket.set_interrupt_mask(
|
||||
bus,
|
||||
socketn::Interrupt::SendOk as u8 & socketn::Interrupt::Timeout as u8,
|
||||
)?;
|
||||
self.socket.enable_interrupts(bus)?;
|
||||
|
||||
self.socket.command(bus, socketn::Command::Open)?;
|
||||
Ok(())
|
||||
|
|
@ -162,7 +154,7 @@ impl TcpSocket {
|
|||
let write_pointer = self.socket.get_tx_write_pointer(bus)?;
|
||||
|
||||
// Write data into the buffer and update the writer pointer.
|
||||
bus.write_frame(self.socket.tx_buffer(), write_pointer, write_data)?;
|
||||
bus.write_frame(write_pointer, write_data)?;
|
||||
self.socket
|
||||
.set_tx_write_pointer(bus, write_pointer.wrapping_add(write_data.len() as u16))?;
|
||||
|
||||
|
|
@ -204,7 +196,7 @@ impl TcpSocket {
|
|||
|
||||
// Read from the RX ring buffer.
|
||||
let read_pointer = self.socket.get_rx_read_pointer(bus)?;
|
||||
bus.read_frame(self.socket.rx_buffer(), read_pointer, read_buffer)?;
|
||||
bus.read_frame(read_pointer, read_buffer)?;
|
||||
self.socket
|
||||
.set_rx_read_pointer(bus, read_pointer.wrapping_add(read_buffer.len() as u16))?;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue