Ticket #24 (closed Fehler: worksforme)

Opened 3 years ago

Last modified 3 years ago

8 Buchstabige ID -> Cron stürzt ab

Reported by: dh8ghh Owned by: dh8ghh
Priority: critical Milestone: Software Version 1.0 - Feature Complete
Component: Software Version: 1.00
Keywords: Cc:

Description

Wenn an ein Empfänger gesendet wird, der 8 alle Buchstaben im Namen belegt hat, stürzt der Cron ab und es werden keine nachrichten mehr gesendet oder empfangen

Change History

comment:1 Changed 3 years ago by dc1dmr

Ich habe mal getestet, ob dieser Fehler tatsächlich so auftritt. Dabei bin ich zu folgendem Ergebnis gekommen:

  • Nach dem Senden ist der Empfang von Nachrichten weiterhin möglich
  • Das Senden von Nachrichten geht tatsächlich nicht mehr
  • Es reicht aus, eine nicht zugestellte Nachricht an eine 8-stellige ID im Speicher zu haben, um nicht mehr Senden zu können.

Ich hoffe das hilft weiter um den Fehler einzugrenzen.

comment:2 Changed 3 years ago by dc1dmr

Nach einem erneuten Test habe ich es auch nach dem Senden an eine 8-Buchstaben-ID geschafft eine Nachricht zu verschicken. Allerdings nicht sofort... Mehrere Nachrichten ließen sich nicht versenden, aber irgendwann ging es doch auf einmal wieder. Irgendwie ist das alles sehr komisch und ich habe noch kein System erkennen können.....

comment:3 Changed 3 years ago by dg1yfe

Möglicherweise hat das auch (aber nicht ausschließlich) etwas mit einem Bug in der EEPROM Schreibroutine zu tun. "LEN" wird nach überschreiten einer Pagegrenze (32 Byte) nicht dekrementiert, da die Schleife vorher per break verlassen wird. Der Fehler führt dazu, dass das erste Byte der folgenden Page mit "0" (oder ggf auch einem anderen Wert, je nachdem wo er herkommt) geschrieben wird. Habe es beim betanken des 8 Mbit Flash bemerkt, da dort etwa 400 kB Daten geschrieben wurden und jede neue Page (dort 256 Byte) mit "0" begann. Fix ist in [351] enthalten und müsste in den Trunk portiert werden. (LEN wird vor dem Pagegrenzentest dekrementiert und anschließend nur auf !=0 geprüft).

comment:4 Changed 3 years ago by dg1yfe

Noch ne Idee - bei 8-stelligen IDs entfällt auch die 0 am Ende des Rufzeichens, das könnte bei inkorrekt ausgeführten String Vergleichen problematisch werden.

comment:5 Changed 3 years ago by dg1yfe

Getestet mit rev 361 Nachricht von "OZ5WW" an "ADGJMPTW" wurde nicht empfangen. Cron blockiert nicht, Nachricht wird nach kurzer Zeit als nicht zugestellt markiert. Eine kurze Zeit später an "DG1YFE" gesendete Nachricht kommt an. Nachrichten von "ADGJMPTW" an "OZ5WW" übermitteln klappt, allerdings kommt das ACK nicht an. -> Fehler im RX

comment:6 Changed 3 years ago by dg1yfe

  • Status changed from new to closed
  • Resolution set to fixed

String Vergleich in RFM12_LLC.c angepasst - von strcasecmp auf strncasecmp mit maximaler Zeichenzahl = ADRESS_MAXCHAR (8 Zeichen). Ergebnis: Nachricht von "ADGJMPTW" an "DGJMPTWW" kommt an und wird bestätigt. Alte Nachricht von OZ5WW an "ADGJMPTW" wird nach Empfang der Bake ebenfalls zugestellt. -> fixed -> closed

comment:7 Changed 3 years ago by dg1yfe

  • Status changed from closed to reopened
  • Resolution fixed deleted

comment:8 Changed 3 years ago by dg1yfe

  • Status changed from reopened to closed
  • Resolution set to worksforme

Eingefügt in [362]

Note: See TracTickets for help on using tickets.