From fb04a142271ce5dd1a7d1ea674f2c0070123fb85 Mon Sep 17 00:00:00 2001
From: zdmx <hi@zdmx.me>
Date: Wed, 16 Aug 2023 23:20:23 +0200
Subject: [PATCH] fix badgenet send size 0

---
 embassy-net-badgelink/src/lib.rs | 21 +++++++++------------
 1 file changed, 9 insertions(+), 12 deletions(-)

diff --git a/embassy-net-badgelink/src/lib.rs b/embassy-net-badgelink/src/lib.rs
index 3a40992..0722e9a 100644
--- a/embassy-net-badgelink/src/lib.rs
+++ b/embassy-net-badgelink/src/lib.rs
@@ -8,7 +8,6 @@ use embedded_hal_async::serial::Write;
 use esp32s3_hal::uart::Instance;
 use esp32s3_hal::Uart;
 use esp_println::println;
-use heapless::Vec;
 use serial_line_ip::{Decoder, Encoder};
 
 const MTU: usize = 1500;
@@ -50,28 +49,26 @@ where
             .await
             {
                 Either::First((r, p)) => {
-                    let read_bytes = r.unwrap();
-                    println!("reading from uart {}", read_bytes);
-                    match self.decoder.decode(&read_buf, p) {
+                    let packet_size = r.unwrap();
+                    println!("got packet: {:?}", &read_buf[0..packet_size]);
+                    match self.decoder.decode(&read_buf[0..packet_size], p) {
                         Ok((num_bytes, _, end_of_packet)) => {
-                            println!("decoded packet");
                             if end_of_packet {
-                                println!("end of packet");
+                                println!("recieved packet");
                                 rx_chan.rx_done(num_bytes);
                             }
                         }
-                        Err(error) => println!("Error: {}", error),
+                        Err(error) => println!("Cant decode packet: {}", error),
                     }
                 }
                 Either::Second(p) => {
-                    println!("sending packet");
-                    //println!("packet len {}", p.len());
+                    println!("sending packet: {:x?}", p);
                     let mut enc = [0u8; 1500];
                     let mut encoder = Encoder::new();
-                    encoder.encode(p, &mut enc).unwrap();
-                    let num_bytes = encoder.finish(&mut enc).unwrap();
+                    let mut num_bytes = encoder.encode(p, &mut enc).unwrap();
+                    num_bytes += encoder.finish(&mut enc).unwrap();
+                    println!("sent packet: {:?}", &enc[0..num_bytes.written]);
                     self.uart.write(&enc[0..num_bytes.written]).await.unwrap();
-                    //println!("packet written to uart");
                     tx_chan.tx_done();
                 }
             }
-- 
GitLab