Ticket #24 (closed Fehler: worksforme)
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: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

Ich habe mal getestet, ob dieser Fehler tatsächlich so auftritt. Dabei bin ich zu folgendem Ergebnis gekommen:
Ich hoffe das hilft weiter um den Fehler einzugrenzen.