From 7cb18cf19782038796a2dda580d055aab0782d8a Mon Sep 17 00:00:00 2001 From: Ryan Summers Date: Wed, 3 Jun 2020 17:04:09 +0200 Subject: [PATCH] Simplifying TCP sockets --- src/main.rs | 60 +++++++++++++++++++++++------------------------------ 1 file changed, 26 insertions(+), 34 deletions(-) diff --git a/src/main.rs b/src/main.rs index fbe8d07..06f99e4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -576,15 +576,6 @@ const APP: () = { sockets.add(tcp_socket) }; - let mut rx_storage2 = [0; TCP_RX_BUFFER_SIZE]; - let mut tx_storage2 = [0; TCP_TX_BUFFER_SIZE]; - let tcp_handle1 = { - let tcp_rx_buffer = net::socket::TcpSocketBuffer::new(&mut rx_storage2[..]); - let tcp_tx_buffer = net::socket::TcpSocketBuffer::new(&mut tx_storage2[..]); - let tcp_socket = net::socket::TcpSocket::new(tcp_rx_buffer, tcp_tx_buffer); - sockets.add(tcp_socket) - }; - let mut server = server::Server::new(); let mut time = 0u32; @@ -601,29 +592,9 @@ const APP: () = { time += 1; } - { - let mut socket = sockets.get::(tcp_handle0); - if socket.state() == net::socket::TcpState::CloseWait { - socket.close(); - } else if !(socket.is_open() || socket.is_listening()) { - socket - .listen(1234) - .unwrap_or_else(|e| warn!("TCP listen error: {:?}", e)); - } else if tick && socket.can_send() { - let s = c.resources.iir_state.lock(|iir_state| server::Status { - t: time, - x0: iir_state[0][0], - y0: iir_state[0][2], - x1: iir_state[1][0], - y1: iir_state[1][2], - }); - server::json_reply(&mut socket, &s); - } - } - { let socket = - &mut *sockets.get::(tcp_handle1); + &mut *sockets.get::(tcp_handle0); if socket.state() == net::socket::TcpState::CloseWait { socket.close(); } else if !(socket.is_open() || socket.is_listening()) { @@ -635,12 +606,33 @@ const APP: () = { info!("Got request: {:?}", req); route_request!(req, readable_attributes: [ - ("stabilizer/afe0/gain", (|| Ok::(c.resources.afe0.get_gain()))), - ("stabilizer/afe1/gain", (|| Ok::(c.resources.afe1.get_gain()))) + ("stabilizer/iir/state", (|| { + let state = c.resources.iir_state.lock(|iir_state| + server::Status { + t: time, + x0: iir_state[0][0], + y0: iir_state[0][2], + x1: iir_state[1][0], + y1: iir_state[1][2], + }); + + Ok::(state) + })), + ("stabilizer/afe0/gain", (|| { + Ok::(c.resources.afe0.get_gain()) + })), + ("stabilizer/afe1/gain", (|| { + Ok::(c.resources.afe1.get_gain()) + })) ], + modifiable_attributes: [ - ("stabilizer/afe0/gain", afe::Gain, (|gain| Ok::<(), ()>(c.resources.afe0.set_gain(gain)))), - ("stabilizer/afe1/gain", afe::Gain, (|gain| Ok::<(), ()>(c.resources.afe1.set_gain(gain)))) + ("stabilizer/afe0/gain", afe::Gain, (|gain| { + Ok::<(), ()>(c.resources.afe0.set_gain(gain)) + })), + ("stabilizer/afe1/gain", afe::Gain, (|gain| { + Ok::<(), ()>(c.resources.afe1.set_gain(gain)) + })) ] ) });