Sporadisches Löschen der Timerliste

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
ziggy
Interessierter
Interessierter
Beiträge: 24
Registriert: Freitag 20. Februar 2004, 10:56

Sporadisches Löschen der Timerliste

Beitrag von ziggy »

Hallo,

folgendes Problem tritt mit den Timerlisten unter Neutrino auf:

* Gestern Abend wähle ich auf arte mittels EPG einen Film zu Aufnahme von ca. 23:50 bit 1:30
* danach fahre ich die Box in den Shutdown, Box steht auf arte-Empfang.
* Wiedereinschalten der Box->Timer ist weg
* Wiederholung der Programmierung, zusätzlich zweiter Film vom WDR zum späteren Zeitpunkt, Box "steht" auf arte oder WDR (bin nicht mehr sicher)
* Box shutdown
* manuelles Box-Einschalten -> beide Timer weg
* Erneute Programmierung beider Timer, Umschalten auf Premiere
* Box shutdown
* manuelles Einschalten -> Timer beide noch da!
* Box shutdown
* -> Film wird in der Nacht aufgenommen
* Am nächsten Morgen manuelles Einschalten: Box steht auf arte, zweiter Timer noch da...

Diese lange Beschreibung aus dem Grunde, weil ich mit Timern schon längere Zeit Probleme habe von der Art, dass die "nächtlichen" Aufnahmen (inbes. ÖR Sender) einfach nicht klappen (Box ist morgens noch an und hat nichts aufgenommen). Habe schon verschiedenene JtG Images und YADI ausprobiert->gleiches Problem. Laut CVS hat sich am timerd-Code lange nichts getan.

Zuätzliche Beobachtung: Beim Einschalten der Box nach Start von Neutrino wird ca. 15-30 Sekunden lang eine falsche Uhrzeit angezeigt (z.B. 9:17 um 22:30) bis das EPG empfangen wurde. Werden in dieser zeit vielleicht Timer gelöscht, weil vermeintlich bereits abgelaufen? Eigentlich sollte Timercontrol erst was tun, wenn die Zeit gültig ist, aber was macht der Timerd?

Meine Konfig: Nokia av500 2xI z.Zt. YADI Snap August 2004

Ratlos
Ziggy :(
Zwen
Developer
Beiträge: 867
Registriert: Mittwoch 14. August 2002, 19:50

Re: Sporadisches Löschen der Timerliste

Beitrag von Zwen »

ziggy hat geschrieben:Zuätzliche Beobachtung: Beim Einschalten der Box nach Start von Neutrino wird ca. 15-30 Sekunden lang eine falsche Uhrzeit angezeigt (z.B. 9:17 um 22:30) bis das EPG empfangen wurde. Werden in dieser zeit vielleicht Timer gelöscht, weil vermeintlich bereits abgelaufen? Eigentlich sollte Timercontrol erst was tun, wenn die Zeit gültig ist, aber was macht der Timerd?
So ist es, der timerd löscht beim Start alle "vermeindlich" alten/abgelaufenen Timer. Er macht das aber erst, wenn der sectionsd ihm sagt: "ich habe jetzt die aktuelle Zeit bekommen". Die Zeit wird im übrigen auch erst angezeigt, wenn der sectionsd sie bekommt. D.h. dass in deinem Fall entweder der sectionsd da was falsch macht oder der Sender was falsches ausstrahlt. Der Timerd ist auf jeden Fall unschuldig ;-)

Zwen
ziggy
Interessierter
Interessierter
Beiträge: 24
Registriert: Freitag 20. Februar 2004, 10:56

Beitrag von ziggy »

Hallo Zwen,

danke für den Hinweis. In der Tat, der sectionsd setzt die Zeit und verschickt dann soetwas wie eine Nachricht an seine Clients, wenn ich das richtig deute. Die Frage ist: warum setzt er die Zeit erst falsch? Im sectionsd passiert ja folgendes:

if (scanning && getUTC(&UTC, !timeset)) /* initially: TDT (no CRC - but mandatory field), later: TOT (CRC - yet not mandatory)*/
{
tim = changeUTCtoCtime((const unsigned char *) &UTC);

if (tim) {
if ((!messaging_neutrino_sets_time) && (geteuid() == 0)) {
struct timeval tv;
tv.tv_sec = tim;
tv.tv_usec = 0;
if (settimeofday(&tv, NULL) < 0) {
perror("[sectionsd] settimeofday");
pthread_exit(NULL);
}
}

timeset = true;
eventServer->sendEvent(CSectionsdClient::EVT_TIMESET, CEventServer::INITID_SECTIONSD, &tim, sizeof(tim));
}
}

...was heisst, das er das *erste* mal die TDT, dann die TOT abholt, eine mögliche Fehlerursache, da die Zeit ja nach meiner Beobachtung kurze Zeit später richtig gesetzt wird (da gibts einen sleep 60 oder so in der Schleife) . TOT und TDT sind aber beides Pflichtinformationen bei DVB. Beide Zeiten werden jeweils von changeUTCtoctime konvertiert - haben aber eigentlich ein anderes Format, oder (mit/ohne lokalen Offset)?

Ich würde an der Stelle gerne mal etwas debuggen, aber irgendwie wurstelt die Kiste seit heute morgen am "configure" im cdk-directory rum, das kann also dauern...und ohne cdk werd e ich da wohl nichts.

Gruss
ziggy