Frage: sectionsd Restart

flasher
Developer
Beiträge: 467
Registriert: Dienstag 15. Juli 2003, 09:58

Frage: sectionsd Restart

Beitrag von flasher »

Hallo

Ich habe ein Problem mit dem Restart des sectionsd.

Code: Alles auswählen

		CSectionsdClient sd;
		sd.Restart();
Nach dem ich das ausgeführt habe sind wie gewollt auch alle EPG Daten weg. Nur ist mir aufgefallen, dass der SectionsD nach dem Restart aber nicht erneut scannt.

Der Grund:

Code: Alles auswählen

# sectionsdcontrol --state
Scanning is active: false
Wenn ich nun auf der Console folgendes eingebe, komme die Daten auch sofort...

Code: Alles auswählen

# sectionsdcontrol --nopause
setPauseScanning false
# sectionsdcontrol --state
Scanning is active: true
Die Frage: Ist das so gewollt oder noch ein kleines Problem?

Bevor die Frage aufkommt: Ja ich starte Neutrino auch neu ;)
Das ganze sieht so aus...

Code: Alles auswählen

		CSectionsdClient sd;
		sd.setPauseScanning(true);
		sd.Restart();
		sd.setPauseScanning(false);
		
		execvp(global_argv[0], global_argv); // no return if successful
		DisplayErrorMessage(g_Locale->getText(LOCALE_SERVICEMENU_RESTART_FAILED));
Die beiden setPause... sind hier noch drinn, da ich versucht habe damit die Consoleneingabe zu umgehen. Leider hat sd.setPauseScanning(false) keine Wirkung.

Gruß
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Frage: sectionsd Restart

Beitrag von seife »

Ja, das ist gewollt so.
Ich hatte da einen grösseren Plan, und zwar zum Aufnehmen:

- Aufnahme soll starten
-> wir holen den Titel und die Beschreibung vom sectionsd
-> sectionsd wird restarted, aber im "paused" Modus
-> speicher ist frei, CPU auch, aufnahme läuft
- Aufnahme fertig
-> sectionsd wird wieder "unpaused" und läuft los

Ich habe das nie ganz fertig gemacht, was noch fehlt ist, dass man nach dem restart neutrino neu registriert (so dass es nicht neu gestartet werden muss).

Momentan muss man also immer "sectionsdcontrol --restart && sectionsdcontrol --nopause && killall neutrino" oder so ähnlich machen.
flasher
Developer
Beiträge: 467
Registriert: Dienstag 15. Juli 2003, 09:58

Re: Frage: sectionsd Restart

Beitrag von flasher »

seife hat geschrieben:Ja, das ist gewollt so.
Momentan muss man also immer "sectionsdcontrol --restart && sectionsdcontrol --nopause && killall neutrino" oder so ähnlich machen.
Das ist doch nichts anderes als das was ich mache. Nur nicht per system() sondern direkt.

Code: Alles auswählen

      CSectionsdClient sd;
      sd.Restart();
      sd.setPauseScanning(false);
Dennoch ist nach dem Neutrino-Restart der sectionsD im Pause-Modus.

Gruß
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Frage: sectionsd Restart

Beitrag von seife »

evtl. musst du:
- nach dem restart warten, bis der sectionsd wieder da ist
- einen neuen CSectionsdClient machen (erst den destruktor des alten aufrufen)

Ich habe das nie fertig gemacht, und so nie probiert. Das kann durchaus kaputt sein ;)
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Frage: sectionsd Restart

Beitrag von seife »

Ich habe grad mal was eingecheckt, was die Restart()-Funktion etwas besser benutzbar machen sollte (u.A. wartet die jetzt drauf, bis der sectionsd wieder da ist, allerdings nicht ewig, sondern max. 5 Sek.)

Damit sollte dein Code jetzt funktionieren.

Achtung: du musst ein neues Image bauen, bzw. die libsectionsdclient muss ausgetauscht werden, nur deinen code neu kompilieren reicht nicht aus.
flasher
Developer
Beiträge: 467
Registriert: Dienstag 15. Juli 2003, 09:58

Re: Frage: sectionsd Restart

Beitrag von flasher »

Hi

Danke ersteinmal.

Sollten nach dem Restart nicht auch alle Events verschwunden sein?

Bei mir ist es so:
Gehe ich auf ARD bekomme ich die EPG Daten. Danach auf SAT1 und auch jetzt sind die Daten da.
Mache ich den Restart bleiben aber alle EPG Daten in der Übersicht erhalten.
Nach meiner Auffassung sollten, da ich auf SAT1 einen Restart gemacht habe, zumindest die EPG Daten von ARD weg sein und erst neu eingelesen werden wenn ich erneut auf ARD wechsel.
Ich gehe davon aus, da ARD und SAT1 auf verschiedenen Transpondern/Frequenzen liegen.

Wenn ich vor dem Restart den Sectionsd in den Pausomode schicke ist er nach dem Restart zumindest wieder aus dem Mode raus.

Das alles ist natürlich Makulatur wenn mein Verständis zur Erhaltung der EPG Daten falsch ist.

Gruß
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Frage: sectionsd Restart

Beitrag von seife »

Die werden wohl in der Übersicht gecached. Geh mal auf ARD und drücke dann die Rote Taste. Leer.
flasher
Developer
Beiträge: 467
Registriert: Dienstag 15. Juli 2003, 09:58

Re: Frage: sectionsd Restart

Beitrag von flasher »

Hi

Ich hätte auch mal auf die Console schaun sollen.
Da sieht man ja, dass alles funktioniert.

Man müsste also den EPG Cache leeren. Wobei das ja nicht nötig sein sollte da die Daten beim TP Wechsel ja neu gelesen werden.

Gruß
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Re: Frage: sectionsd Restart

Beitrag von Houdini »

> Die werden wohl in der Übersicht gecached.
genau, die stehen in der ChannelList von Neutrino drin.
flasher
Developer
Beiträge: 467
Registriert: Dienstag 15. Juli 2003, 09:58

Re: Frage: sectionsd Restart

Beitrag von flasher »

Ich sehe gerade, dass Du das direkt eingecheckt hasst.

Ist das nicht vieleicht etwas fehlpositioniert?
EPG neu laden ist unter BLAU, EPG neu starten ist jetzt im Servicemenü.
Etwas verstreut, oder?

Wie wäre es wenn man beides direkt ins EPG (ROT) packen würde?

Andere Frage.
Ist EPG neu laden (freeMemory()) nicht jetzt eher überflüssig?

Gruß