ServiceReference

  • Hallo Leute,


    brauche mal eure Hilfe.


    Gehe ich richtig in der Annahme, dass eine ServiceReference mit...
    1:0 beginnend ein DVB-Service ist?
    1:64 beginnend ein Marker ist?
    1:134 beginnend ein ??? ist?


    Wie erhalte ich eine 'richtige' ServiceReference, wenn beim Auslesen einer Kanalliste sowas rauskommt?
    1:134:1:0:0:0:0:0:0:0:FROM BOUQUET "alternatives.zdf.tv" ORDER BY bouquet



    Besten Dank im Voraus.

    MfG Ali

    DM8000 | DM8000 | DM500HD | DM500HD | DM7020S


    Bash
    #!/bin/sh
    while [ 1 ]
    do
    	echo "i love my dreams!!!"
    	sleep 1
    done
    • Offizieller Beitrag

    134 ist ein "Alternativen-Bouquet" sprich ein Bouquet von Sendern die der User als Identisch definiert hat, welche aber z.B. über verschiedene Satelliten oder Tuner (DVB-C+DVB-S) empfangen werden.


    Enigma2 kann das Ganze meines Wissens intern für zapping etc komplett selbst handeln.
    Das was du da bekommst ist eigentlich die richtige sRef, sozusagen ein "virtueller Kanal" welcher aus mehreren realen Alternativen besteht.


    Ob man da doch noch irgendwas spezielles machen muss müsste Ghost erläutern.

  • Wenn ich aber die ServiceReference des laufenden Senders ermittle, mit:
    service = self.source.service
    info = service and service.info()
    ref = info.getInfoString(iServiceInformation.sServiceref)


    erhalte ich eine andere ServiceReference.


    Ich muss die Service-Reference der laufenden Sendeung mit der aus einer Liste vergleichen...


    Gibt mir E2 irgendwie die Möglichkeite, die aus der Kanalliste ermittelte Servicereference (1:134:1:0:0:0:0:0:0:0:FROM BOUQUET "alternatives.zdf.tv" ORDER BY bouquet) in die 'richtige' (z.B.: 1:0:1:6DCA:44D:1:C00000:0:0:0:) umzuschlüsseln?

    MfG Ali

    DM8000 | DM8000 | DM500HD | DM500HD | DM7020S


    Bash
    #!/bin/sh
    while [ 1 ]
    do
    	echo "i love my dreams!!!"
    	sleep 1
    done
  • OK,


    dann müsste ich ja eine Liste mit den möglichen ServiceReference's bekommen, wenn ich z.B. somit arbeite:


    serviceHandler = eServiceCenter.getInstance()
    services = serviceHandler.list(eServiceReference('1:134:1:0:0:0:0:0:0:0:FROM BOUQUET "alternatives.zdf.tv" ORDER BY bouquet'))
    alternativeServices = services and services.getContent("SN", True)


    Muss ich nachher daheim mal testen...


    ...die zweite Frage war, fangen alle Marker in einer Senderliste mit 1:64: an?

    MfG Ali

    DM8000 | DM8000 | DM500HD | DM500HD | DM7020S


    Bash
    #!/bin/sh
    while [ 1 ]
    do
    	echo "i love my dreams!!!"
    	sleep 1
    done
  • Habs in der iservice.h gefunden:


    Code
    canDescent=4,			// supports enterDirectory/leaveDirectory
    		flagDirectory=isDirectory|mustDescent|canDescent,
    		shouldSort=8,			// should be ASCII-sorted according to service_name. great for directories.
    		hasSortKey=16,		// has a sort key in data[3]. not having a sort key implies 0.
    		sort1=32,					// sort key is 1 instead of 0
    		isMarker=64,			// Marker
    		isGroup=128			// is a group of services

    MfG Ali

    DM8000 | DM8000 | DM500HD | DM500HD | DM7020S


    Bash
    #!/bin/sh
    while [ 1 ]
    do
    	echo "i love my dreams!!!"
    	sleep 1
    done
  • OK, enigma2 gibt mir in der Klasse eServiceReference (in enigma2.py) folgende Funktionen:

    Code
    isMarker = _enigma.eServiceReference_isMarker
    isGroup = _enigma.eServiceReference_isGroup


    Folgendes...

    Code
    serviceHandler = eServiceCenter.getInstance()
    services = serviceHandler.list(eServiceReference('1:134:1:0:0:0:0:0:0:0:FROM BOUQUET "alternatives.zdf.tv" ORDER BY bouquet'))
    alternativeServices = services and services.getContent("SN", True)


    ...funktioniert nur teilweise... jedenfalls nicht so, wie ich mir das vorstelle.


    Hiermit erhalte ich nur die gewünschte ServiceReference der Alternative. Somit eine zu wenig.


    Hat sonst noch jemand eine Idee?

    MfG Ali

    DM8000 | DM8000 | DM500HD | DM500HD | DM7020S


    Bash
    #!/bin/sh
    while [ 1 ]
    do
    	echo "i love my dreams!!!"
    	sleep 1
    done
  • OK, benutze nun für meinen ServiceNumber-Renderer den Servicenamen... hätte eigentlich lieber mit der ServiceReference gearbeitet, denke das wäre etwas sauberer.


    Braucht sich also keiner mehr die Mühe machen zu antworten. Ich glaube ich seh das nun richtig, dass ich bei einem Alternativen Bouquet nur die refs der Alternativen erhalten kann.


    Den Renderer bitte nun nicht schlecht reden... ich weiss, dass die Kanalnummer in E2 nicht vorgesehen ist, und dass der Renderer auch seine kleinen Macken hat (Bei Änderungen in der Kanalliste und bei mehreren Einträgen in der Kanalliste des selben Senders)... aber besser sowas als gar nüschts :face_with_tongue:


    Auf alle Fälle mal, danke an Reichi und Ghost für die Hilfe.

    MfG Ali

    DM8000 | DM8000 | DM500HD | DM500HD | DM7020S


    Bash
    #!/bin/sh
    while [ 1 ]
    do
    	echo "i love my dreams!!!"
    	sleep 1
    done