PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Algorithmus zur Fehlererkennung



lord.paddington
23-10-2005, 20:38
kennt jemand einen funktionierenden Algorithmus zur Fehlererkennung?

Wenn Fehler neu, dann setze Zähler auf 1
wenn Fehler alt, dann inc Fehlerzähler für diesen Fehler



begin
if dummy = fehler[f] then//gibt es einen Fehler, der gleich dem dummy ist?
begin
inc(fehlerx[f]);//inc Fehlerz�ler fr diesen Fehler
end else begin//wenn nicht gleich...
fehler[f]:= dummy;//...dann lege einen neuen Fehler an
fehlerx[f] := 1;//setze Z�ler auf 1
inc(q);//inc den Gesamtfehlerz�ler
exit;
end;
end;

nobody0
24-10-2005, 02:00
Das ist unklar von dir beschrieben. Es gibt viele Methoden zur Fehlererkennung, für die aber sowas wie Prüfbits verwendet werden müssen, beispielsweise Parität oder 2-von-3-Funktion (und jede Information dreimal schicken).
Du meinst aber aber wohl binsearch für eine alphabetisch geordnete Fehlercode-Liste.

rgubatz
24-10-2005, 09:23
Hallo,
da du in einem C-Forum schreibst, sende ich hier mal ein Beispiel wie man in einem c-Programm Fehler abarbeitet:

1. Überlegung: Muss ich Fehler unterscheiden, wenn ja welche? In meinem Beispiel reicht mir die Fehlermeldung und die Unterscheidung, gab es einen Fehler oder nicht.
Zum besseren Verständniss:
Flag setzen: flag | = FLAG_BIT
Flag abfragen: flag & FLAG_BIT
Flag löschen: flag & = ~FLAG_BIT
Im Header:


#define FLAG_BIT1 1
#define FLAG_BIT2 2
#define FLAG_BIT3 4
#define FLAG_BIT4 8
... u.s.w

Dein Kode:

if (cmpflag & AF_SERIAL) {
serial_fd = open(com, O_RDWR | O_CREAT | O_NDELAY, 0644);
if (serial_fd == ERROR) {
MSG_WARNING("ERROR: %s: %s, terminating!", com, strerror(errno));
alertflag |= AF_RUN_ERROR;
goto end;
}
/* mach was */
}

Am Ende brauchst du nur prüfen, ob ein Laufzeitfehler aufgetreten ist, du kannst natürliche alle möglichen Fehler unterteilen und gesondert abfragen.

Ich hoffe ich konnte dir weiterhelfen.

Rene