Hi!

> Habe weitere Tests gemacht: yport_rxstart wird erst gar nicht aufgerufen 
> beim Empfangen des dritten Paketes (habe einen Counter mitlaufen lassen 
> den ich in die ersten 4 Bytes jedes Antwort Paketes reingefummelt habe...)
> 
> D.h. uip_newdata() liefert 0 beim dritten Paket... habe das auch mal 
> debugged, und ja, es wird wirklich beim dritten Paket nicht aktiv (und 
> beim fünften, siebten, usw...)

Ich habs gefixt. Es läuft nun alles wie gewünscht und sehr flott: 1.97msec für 
4 bytes, keine drops.

Würde mich freuen wenn es jemand eincheckt, bin noch nicht so fit mit git (oder 
es mir kurz erklärt wie ich ein request mache, würde mich auch freuen).

(Fehler war: else if (uip_newdata()) übersprang einfach die neuen Daten wenn 
gleichzeitig ein anderes Event war (z.B. ACK von gesendeten Daten - was damit 
nix zu tun hat!!!))

Ich denke, das ist nie aufgefallen weil es nur passiert wenn im exakt gleichen 
Moment Daten ankommen und geschickt werden (loopback oder sehr schnelles 
Protokoll).

Gefunden habe ich den Fehler übrigens weil ich mir den Code vom Telnet und I2C 
Slave Protocol angeguckt habe... da ist übrigens richtig ;-)


Ach ja, hier ist es eventuell auch falsch:


protocols/ems/ems_net.c:  } else if (uip_newdata()) {
protocols/modbus/modbus_net.c:  } else if (uip_newdata()) {
protocols/mqtt/mqtt.c:  else if (uip_newdata() && uip_len) {
protocols/irc/irc.c:    else if (uip_newdata() && uip_len) {
protocols/bsbport/bsbport_net.c:  else if (uip_newdata())

MQTT und ModBus gucke ich mir später eventuell noch an, da ich die selbst in 
meinem Haus als Bus verwende und dafür auch den EtherSex testen wollte. Aber 
ich denke "else" dort überall wegzunehmen sollte ok sein...



diff --git a/protocols/yport/yport_net.c b/protocols/yport/yport_net.c
index 6eb27a8..a1a10cf 100755
--- a/protocols/yport/yport_net.c
+++ b/protocols/yport/yport_net.c
@@ -85,8 +85,10 @@ yport_net_main(void)
     if (yport_conn == uip_conn)
       yport_conn = NULL;
   }
-  else if (uip_newdata())
+  
+  if (uip_newdata())
   {
+
     if (uip_len <= YPORT_BUFFER_LEN &&
         yport_rxstart(uip_appdata, uip_len) != 0)
     {



-- 
Michael

_______________________________________________
Ethersex-devel mailing list
Ethersex-devel@list.zerties.org
http://list.zerties.org/cgi-bin/mailman/listinfo/ethersex-devel

Antwort per Email an