Nirvana's sectionsd Testecke
-
- Erleuchteter
- Beiträge: 646
- Registriert: Mittwoch 16. April 2003, 14:12
-
- Tuxboxer
- Beiträge: 2331
- Registriert: Donnerstag 24. März 2005, 21:52
-
- Developer
- Beiträge: 279
- Registriert: Mittwoch 26. Juni 2002, 22:19
-
- Interessierter
- Beiträge: 99
- Registriert: Dienstag 27. November 2001, 00:00
Hallo,
besten Dank zunächst für all die Zeit und Mühe die Ihr in dieses Projekt investiert!!!
Ich habe heute ein neues Image mit dem aktuellen Patch erstellt. Nun habe ich eine Frage zu der epg.xml Funktion. Es wird beim erstmaligen Start bzw. beim Shutdown werden 188 xml-Dateien auf dem Server erstellt, allerdings passiert das nur beim ersten Mal. ich habe beim ersten Start nur ARD geschaut. Beim zweiten Start habe ich Pro 7 und RTL geschaut und gehofft, dass beim Neustart nun die EPGs von ARD, RTL, Pro 7 und Co angezeigt werden. Dem ist aber nicht so. Und auf dem Server sind die Dateien noch von 13:15 Uhr. Der zweite Start war allerdings um 15:00 Uhr.
Habe ich das Prinzip falsch verstanden?
MfG
doktorknow
besten Dank zunächst für all die Zeit und Mühe die Ihr in dieses Projekt investiert!!!
Ich habe heute ein neues Image mit dem aktuellen Patch erstellt. Nun habe ich eine Frage zu der epg.xml Funktion. Es wird beim erstmaligen Start bzw. beim Shutdown werden 188 xml-Dateien auf dem Server erstellt, allerdings passiert das nur beim ersten Mal. ich habe beim ersten Start nur ARD geschaut. Beim zweiten Start habe ich Pro 7 und RTL geschaut und gehofft, dass beim Neustart nun die EPGs von ARD, RTL, Pro 7 und Co angezeigt werden. Dem ist aber nicht so. Und auf dem Server sind die Dateien noch von 13:15 Uhr. Der zweite Start war allerdings um 15:00 Uhr.
Habe ich das Prinzip falsch verstanden?
MfG
doktorknow
-
- Tuxboxer
- Beiträge: 2331
- Registriert: Donnerstag 24. März 2005, 21:52
-
- Erleuchteter
- Beiträge: 646
- Registriert: Mittwoch 16. April 2003, 14:12
@drno
Genauso wie du hoffst klappt das auch. Was du falsch machst, ist aber für mich aus der Beschreibung nicht ersichtlich. Du schreibst: "epg.xml" - Funktion. Hast du auch wirklich ein Verzeichnis angegeben? Eine Datei epg.xml gibt es nicht mehr.
Hast du vielleicht nicht lange genug gewartet? Die Daten werden sehr langsam eingelesen und stehen natürlich nicht unmittelbar nach dem Booten zur Verfügung.
Außerdem werden die Daten bei jedem Shutdown geschrieben. Das kannst du ja leicht überprüfen, indem du die xml-Dateien auf dem NFS-Share löscht.
Einfacher Test ist immer: Clean Boot. Nur RTL lesen. Auf MTV ausschalten. Einschalten. Warten. EPG auf RTL steht nach < 1 Minute wieder zur Verfügung.
Genauso wie du hoffst klappt das auch. Was du falsch machst, ist aber für mich aus der Beschreibung nicht ersichtlich. Du schreibst: "epg.xml" - Funktion. Hast du auch wirklich ein Verzeichnis angegeben? Eine Datei epg.xml gibt es nicht mehr.
Hast du vielleicht nicht lange genug gewartet? Die Daten werden sehr langsam eingelesen und stehen natürlich nicht unmittelbar nach dem Booten zur Verfügung.
Außerdem werden die Daten bei jedem Shutdown geschrieben. Das kannst du ja leicht überprüfen, indem du die xml-Dateien auf dem NFS-Share löscht.
Einfacher Test ist immer: Clean Boot. Nur RTL lesen. Auf MTV ausschalten. Einschalten. Warten. EPG auf RTL steht nach < 1 Minute wieder zur Verfügung.
-
- Tuxboxer
- Beiträge: 2331
- Registriert: Donnerstag 24. März 2005, 21:52
also bei mir geht es wunderbar. hole mir immer alle epg daten von den sendern. dann auf Das Vierte und shutdown. nach neustart ist dann der epg bei allen wieder da ich seh die aktivität an den netzwerk-status-leds.
ich hab den shutdown und reboot getrennt. bei reboot wird nix geschrieben, wodurch der schneller geht. da wird einfach alles ignoriert. evtl ist das ja ne anregung.
ich hab den shutdown und reboot getrennt. bei reboot wird nix geschrieben, wodurch der schneller geht. da wird einfach alles ignoriert. evtl ist das ja ne anregung.
-
- Erleuchteter
- Beiträge: 646
- Registriert: Mittwoch 16. April 2003, 14:12
-
- Interessierter
- Beiträge: 99
- Registriert: Dienstag 27. November 2001, 00:00
Okay, danke!
Es funktioniert jetzt auch bei mir!! Tolle Sache - und so macht das ja auch Sinn! Bei mir liegt der Fehler noch in der Konfiguration bzw. im zweiten Mountpunkt des Fli4l. Irgendwie klappt es nicht ein Unterverzeichnis vom Streamingverzeichnis zu mounten. Direkt von /data/dboxfilme klappt es wunderbar. Das mit dem Mountverzeichnis werde ich auch noch rausbekommen... Vielen Dank erstmal!
MfG
doktorknow
Es funktioniert jetzt auch bei mir!! Tolle Sache - und so macht das ja auch Sinn! Bei mir liegt der Fehler noch in der Konfiguration bzw. im zweiten Mountpunkt des Fli4l. Irgendwie klappt es nicht ein Unterverzeichnis vom Streamingverzeichnis zu mounten. Direkt von /data/dboxfilme klappt es wunderbar. Das mit dem Mountverzeichnis werde ich auch noch rausbekommen... Vielen Dank erstmal!
MfG
doktorknow
-
- Tuxboxer
- Beiträge: 2331
- Registriert: Donnerstag 24. März 2005, 21:52
@Nirvana
ich hab mal bisserl in der sectionsd.cpp rumgestöbert , weil ich currentbouquets+currentservices schreiben konfigurierbar machen wollte und das gefunden.
muss das nicht so lauten ??
dprintf("unable to open %s for writing", CURRENTBOUQUETS_TMP);
ps manchmal bröselt mir das epg speichern einfach so mitten drin ab
ich hab mal bisserl in der sectionsd.cpp rumgestöbert , weil ich currentbouquets+currentservices schreiben konfigurierbar machen wollte und das gefunden.
Code: Alles auswählen
static void addBouquetToCurrentXML(xmlNodePtr bouquet, t_bouquet_id bouquet_id)
{
FILE * dst = NULL;
std::string name;
xmlNodePtr node;
if (!(dst = fopen(CURRENTBOUQUETS_TMP, "w"))) {
dprintf("unable to open %s for writing", CURRENTSERVICES_TMP);
return;
}
dprintf("unable to open %s for writing", CURRENTBOUQUETS_TMP);
ps manchmal bröselt mir das epg speichern einfach so mitten drin ab
[neutrino] event INITID_SECTIONSD - unknown eventID 0x4
terminate called after throwing an instance of 'std::length_error'
terminate called recursively
Aborted
-
- Tuxboxer
- Beiträge: 2331
- Registriert: Donnerstag 24. März 2005, 21:52
@Nirvana
kommt da was neues von Dir ? wenn du wieder da bist ?
Artzka hat ja in der sectionsd.cpp was geändert, wodurch dein zeugs da nicht mehr geht
in der funktion meckert er rum
kommt da was neues von Dir ? wenn du wieder da bist ?
Artzka hat ja in der sectionsd.cpp was geändert, wodurch dein zeugs da nicht mehr geht
in der funktion meckert er rum
Code: Alles auswählen
static void *insertEventsfromFile(void *)
....
if (xmlGetNextOccurence(node, "description") != NULL) {
if (xmlGetAttribute(node, "name") != NULL) {
e.name = std::string(UTF8_to_Latin1(xmlGetAttribute(node, "name")));
}
//printf("Name: %s\n", e->name);
if (xmlGetAttribute(node, "text") != NULL) {
e.text = std::string(UTF8_to_Latin1(xmlGetAttribute(node, "text")));
}
if (xmlGetAttribute(node, "item") != NULL) {
e.item = std::string(UTF8_to_Latin1(xmlGetAttribute(node, "item")));
}
if (xmlGetAttribute(node, "item_description") != NULL) {
e.itemDescription = std::string(UTF8_to_Latin1(xmlGetAttribute(node,"item_description")));
}
if (xmlGetAttribute(node, "extended_text") != NULL) {
e.extendedText = std::string(UTF8_to_Latin1(xmlGetAttribute(node, "extended_text")));
}
node = node->xmlNextNode;
...
-
- Wissender
- Beiträge: 1839
- Registriert: Sonntag 17. August 2003, 01:39
-
- Semiprofi
- Beiträge: 1383
- Registriert: Freitag 18. April 2003, 15:12
Du musst überall ein 'lang' dazu edieren.mb405 hat geschrieben:@Nirvana
kommt da was neues von Dir ? wenn du wieder da bist ?
Artzka hat ja in der sectionsd.cpp was geändert, wodurch dein zeugs da nicht mehr geht
in der funktion meckert er rumCode: Alles auswählen
static void *insertEventsfromFile(void *) .... if (xmlGetNextOccurence(node, "description") != NULL) { if (xmlGetAttribute(node, "name") != NULL) { e.name = std::string(UTF8_to_Latin1(xmlGetAttribute(node, "name"))); } //printf("Name: %s\n", e->name); if (xmlGetAttribute(node, "text") != NULL) { e.text = std::string(UTF8_to_Latin1(xmlGetAttribute(node, "text"))); } if (xmlGetAttribute(node, "item") != NULL) { e.item = std::string(UTF8_to_Latin1(xmlGetAttribute(node, "item"))); } if (xmlGetAttribute(node, "item_description") != NULL) { e.itemDescription = std::string(UTF8_to_Latin1(xmlGetAttribute(node,"item_description"))); } if (xmlGetAttribute(node, "extended_text") != NULL) { e.extendedText = std::string(UTF8_to_Latin1(xmlGetAttribute(node, "extended_text"))); } node = node->xmlNextNode; ...
z.B. - alt, + neu
- name=e.name;
- text=e.text;
+ langName=e.langName;
+ langText=e.langText;
- extendedText=e.extendedText;
+ langExtendedText=e.langExtendedText;
Hat Artzka mal einer angeschrieben warum er so eine Baustelle hinterlässt?
-
- Developer
- Beiträge: 2183
- Registriert: Mittwoch 10. Dezember 2003, 07:59
-
- Tuxboxer
- Beiträge: 2331
- Registriert: Donnerstag 24. März 2005, 21:52
-
- Erleuchteter
- Beiträge: 646
- Registriert: Mittwoch 16. April 2003, 14:12
http://wetter.rtl.de/welt/uebersicht.ph ... ort=GeorgePauleFoul hat geschrieben:@ Nirvana
Wo drückst Du Dich denn rum?? So schön is das Wetter doch noch
garnicht...
Gruß
____Paule
Was'n daran nicht so schön? Okay, die 33 Grad letzte Woche - war vielleicht ein bisschen warm. Aber sonst...
-
- Semiprofi
- Beiträge: 1383
- Registriert: Freitag 18. April 2003, 15:12
Naja Artzka hat doch nur die Namen der Attribute geändert, diese passt du einfach an bei Nirvana zusätzlichen Sachen.mb405 hat geschrieben:jep Houdini. genau so isses
@Nico 77
????????? verstehe ich nicht, was du da gepostet hast ??
@Houdini
Achso, wußte ich nicht. Dachte der Fehler wäre im CVS(habe lange nicht ausgecheckt).
-
- Tuxboxer
- Beiträge: 2331
- Registriert: Donnerstag 24. März 2005, 21:52
-
- Tuxboxer
- Beiträge: 2331
- Registriert: Donnerstag 24. März 2005, 21:52
-
- Erleuchteter
- Beiträge: 646
- Registriert: Mittwoch 16. April 2003, 14:12
So einfach ist das leider nicht! Die Variablen sind private und müssen über eigene Funktionen geschrieben und gelesen werden.Nico 77 hat geschrieben: Du musst überall ein 'lang' dazu edieren.
z.B. - alt, + neu
- name=e.name;
- text=e.text;
+ langName=e.langName;
+ langText=e.langText;
- extendedText=e.extendedText;
+ langExtendedText=e.langExtendedText;
Das ist aber nicht alles, denn leider führen arzkas Änderungen dazu, dass sich das EPG - speichern nicht mehr oder besser nicht mehr trivial realisieren lässt, weil man zwar über die getFunktionen die Informationen bekommt, aber nicht weiß, in welcher Sprache sie sind. Meiner Meinung nach hätte er beser die Struktur der SIEvents ändern sollen und die Namen/Texte nach Sprachen sortiert gespeichert. Das wäre sauber. Vielleicht blicke ich aber die Genialität seines Konzeptes einfach nicht.
-
- Tuxboxer
- Beiträge: 2331
- Registriert: Donnerstag 24. März 2005, 21:52
-
- Developer
- Beiträge: 19
- Registriert: Sonntag 10. April 2005, 23:21
Hi,
Sorry about writing in english, but my german vocabulary is very small (It is interesting to follow this thread by using babelfish )
If I understood correctly my patch broke system what stores gathered EPG data. Unfortunately I haven't even noticed this system before so I didn't notice that it went broken. I am sorry about that.
(I have told about my patch about half year ago in english forum, and got only one bug report so I thought that it was OK)
I need to look the code more to find out where that storing procedure should be , but if I guessed correctly in my quick look it is by method SIevent::saveXML2(). I made small modification to that method and it can be found from http://www.hyper.fi/dbox2/SIevents.patch. Hopefully this helps. I haven't commited it since don't know yet where that saveXML2() is really used.
--
Arzka
Sorry about writing in english, but my german vocabulary is very small (It is interesting to follow this thread by using babelfish )
If I understood correctly my patch broke system what stores gathered EPG data. Unfortunately I haven't even noticed this system before so I didn't notice that it went broken. I am sorry about that.
(I have told about my patch about half year ago in english forum, and got only one bug report so I thought that it was OK)
I need to look the code more to find out where that storing procedure should be , but if I guessed correctly in my quick look it is by method SIevent::saveXML2(). I made small modification to that method and it can be found from http://www.hyper.fi/dbox2/SIevents.patch. Hopefully this helps. I haven't commited it since don't know yet where that saveXML2() is really used.
--
Arzka
-
- Erleuchteter
- Beiträge: 646
- Registriert: Mittwoch 16. April 2003, 14:12
-
- Tuxboxer
- Beiträge: 2331
- Registriert: Donnerstag 24. März 2005, 21:52
also der fehler kommt beim compilen
zeile 3222
zeile 3231
zeile 3218sectionsd.cpp: In function `void* insertEventsfromFile(void*)':
sectionsd.cpp:3218: error: 'class SIevent' has no member named 'name'
sectionsd.cpp:3222: error: 'class SIevent' has no member named 'text'
sectionsd.cpp:3231: error: 'class SIevent' has no member named 'extendedText'
Code: Alles auswählen
e.name = std::string(UTF8_to_Latin1(xmlGetAttribute(node, "name")));
Code: Alles auswählen
e.text = std::string(UTF8_to_Latin1(xmlGetAttribute(node, "text")));
Code: Alles auswählen
e.extendedText = std::string(UTF8_to_Latin1(xmlGetAttribute(node, "extendedText")));