]> git.llucax.com Git - z.facultad/66.09/etherled.git/blobdiff - src/main.c
Arregla macros para que no hagan lío evaluando cosas más de una vez.
[z.facultad/66.09/etherled.git] / src / main.c
index e0f6b2e7740006bdfd71f0a088ac563c9784679d..c679ac80ea11c951a31be02de362b761ba02ec0f 100644 (file)
@@ -30,10 +30,11 @@ void main(void)
 
     while (1) // Forever
     {
-        uint16 len = netdev_recv_start();
+        byte i;
+        byte len = netdev_recv_start();
         printb(len, 0x1);
-        if (!len) // no recibimos nada
-            goto drop; // Tiramos el paquete
+        if (!len) // no recibimos nada (válido)
+            continue; // Probamos de nuevo
 
         // Tenemos algo!
         //print(0x2);
@@ -71,10 +72,15 @@ void main(void)
                         printb(udp_dgram_len, 0x40);
                         // TODO
                         // Nuestro protocolo, por ahora un simple echo!
-                        for (len = 8; len < udp_dgram_len; len += 2) // 8 por la cabecera UDP
+                        for (i = 8; i < udp_dgram_len; ++i) // 8 por la cabecera UDP
                         {
-                            print(netdev_recv_word());
+                            leds0 = ~netdev_recv_byte();
+                            leds1 = ~i;
+                            sleep(8);
                         }
+                        i = (udp_dgram_len % 2) ? udp_dgram_len : (udp_dgram_len + 1);
+                        for (i += 34; i < len; ++i) // 8 por la cabecera UDP
+                            netdev_recv_byte();
 drop:
                         netdev_recv_end();
                 }