diff options
| -rw-r--r-- | embassy-usb-logger/src/lib.rs | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/embassy-usb-logger/src/lib.rs b/embassy-usb-logger/src/lib.rs index 6e50c40ba..9178dd6dd 100644 --- a/embassy-usb-logger/src/lib.rs +++ b/embassy-usb-logger/src/lib.rs | |||
| @@ -77,22 +77,29 @@ impl<const N: usize> UsbLogger<N> { | |||
| 77 | ); | 77 | ); |
| 78 | 78 | ||
| 79 | // Create classes on the builder. | 79 | // Create classes on the builder. |
| 80 | let mut class = CdcAcmClass::new(&mut builder, &mut state.state, MAX_PACKET_SIZE as u16); | 80 | let class = CdcAcmClass::new(&mut builder, &mut state.state, MAX_PACKET_SIZE as u16); |
| 81 | let (mut sender, mut receiver) = class.split(); | ||
| 81 | 82 | ||
| 82 | // Build the builder. | 83 | // Build the builder. |
| 83 | let mut device = builder.build(); | 84 | let mut device = builder.build(); |
| 84 | |||
| 85 | loop { | 85 | loop { |
| 86 | let run_fut = device.run(); | 86 | let run_fut = device.run(); |
| 87 | let log_fut = async { | 87 | let log_fut = async { |
| 88 | let mut rx: [u8; MAX_PACKET_SIZE as usize] = [0; MAX_PACKET_SIZE as usize]; | 88 | let mut rx: [u8; MAX_PACKET_SIZE as usize] = [0; MAX_PACKET_SIZE as usize]; |
| 89 | class.wait_connection().await; | 89 | sender.wait_connection().await; |
| 90 | loop { | 90 | loop { |
| 91 | let len = self.buffer.read(&mut rx[..]).await; | 91 | let len = self.buffer.read(&mut rx[..]).await; |
| 92 | let _ = class.write_packet(&rx[..len]).await; | 92 | let _ = sender.write_packet(&rx[..len]).await; |
| 93 | } | ||
| 94 | }; | ||
| 95 | let discard_fut = async { | ||
| 96 | let mut discard_buf: [u8; MAX_PACKET_SIZE as usize] = [0; MAX_PACKET_SIZE as usize]; | ||
| 97 | receiver.wait_connection().await; | ||
| 98 | loop { | ||
| 99 | let _ = receiver.read_packet(&mut discard_buf).await; | ||
| 93 | } | 100 | } |
| 94 | }; | 101 | }; |
| 95 | join(run_fut, log_fut).await; | 102 | join(run_fut, join(log_fut, discard_fut)).await; |
| 96 | } | 103 | } |
| 97 | } | 104 | } |
| 98 | } | 105 | } |
