Hi Klaus,
Ich lese
int overlap = 0;
if (Matches(e, &overlap) == tmFull) {
Event = e;
if (overlap > FULLMATCH)
break; // take the first matching event
}
so:
Falls für das erste Event mit der korrekten VPS Zeit (overlap > FULLMATCH) ist, wird dieses erste Event zugeordnet. Andernfalls nicht.
D.h. , falls für das erste Event mit der korrekten VPS Zeit (overlap <= FULLMATCH) ist, wird dieses erste Event nur zufällig aufgezeichnet, oder auch nicht.
Falls es kein Event mit der korrekten VPS Zeit gibt, für das (overlap > FULLMATCH) ist, wird das letzte Event zugeordnet. Leuchtet mir nicht ein.
Wird die Prüfung (overlap > FULLMATCH) benötigt oder nicht? Falls sie benötigt wird, warum steht dann nicht
int overlap = 0;
if (Matches(e, &overlap) == tmFull && overlap > FULLMATCH) {
Event = e;
break; // take the first matching event
}
?
Zu
Hier stimmt die Dokumentation nicht mit der Implementierung überein.
// To make sure a VPS timer can be distinguished from a plain 100% overlap,
// it gets an additional 100 added
Das stimmt aber nur, falls (Event->RunningStatus() != SI::RunningStatusNotRunning) ist.
Ich würde mal sagen, bei mir war "Event->RunningStatus() == SI::RunningStatusNotRunning", als ich den Timer angelegt habe. Und bei Dir nicht. Warum auch immer ...
~ Markus