Extended FrontendInfo-Converter (DreamOS)

  • Im letzten Jahr hatten wir gemeinsam mit Binsche und Handycracker2k2 einen erweiterten FrontendInfo-Converter entwickelt, der die Live-Tuner-Daten anzeigt, wie sie auch im Menü in der Kanal-Info über die blaue Taste (Tuner-Status) abgerufen werden können.

    Das Ergebnis wollten wir jetzt auch anderen Nutzern zur Verfügung stellen, da sich nun zeigte, dass dazu durchaus auch bei anderen Usern Interesse besteht.


    Für einige User (DX Dreambox Nutzer) sind speziell diese Live-Daten besonders interessant.

    Diese Daten kann man sich mit dem extFrontendInfo-Converter nun z.B. direkt in die InfoBar integrieren und muss diese dann nicht immer umständlich über die Kanal-Info abrufen.


    Der Converter aus der Anlage muss in folgenden Ordner auf die Box kopiert werden:

    /usr/lib/enigma2/python/Components/Converter/


    Hier mal ein Beispiel für das nötige widget, welches man sich im Screen name="InfoBar" in der entsprechenden skin.xml einbinden muss:

    Code
            <widget source="session.FrontendInfo" cornerRadius="10" render="Label" position="20,145" size="1200,25" font="Regular;21" backgroundColor="grey" foregroundColor="black" transparent="0" halign="left" zPosition="1" noWrap="1" valign="bottom">
                <convert type="extFrontendInfo">{                %t  }{%O  :F:2}{%F  :F:.0f;.1f}{%p  }{%Y  }{%f  }{%s  }{%M  }{%r  }{%o  }{%i  }{%Z  }{%V  }{%X  }{%P  }{LM:%Ldb  }{%ddb  }{%S}</convert>
            </widget>

    Welche Parameter es gibt, ist im Kopf des Converter-Codes als Kommentar hinterlegt.

    Einige Parameter können in der Ausgabe auch formatiert werden (Komma-Stellen und Anzeigevariante), was auch in den Kommentaren vermerkt ist.

    Ein Wert muss immer innerhalb einer geschweiften Klammer inkl. des Parameters mit % angegeben werden - also z.B. {  %t  }

    Gewollte Leerzeichen, Fülltext oder Formatierungen sind dabei innerhalb der Klammer zu ergänzen - z.B. { %d db :F:.2f } (":F:.2f" bedeutet dabei mit 2 Komma-Stellen)


    Und hier mal die passende Anzeige der InfoBar zum obigen Widget (der untere rot eingerahmte Bereich):

  • Hier noch ein paar Beispiel Bilder...


    Infobar mit Echtzeit bzw. Live Werten des Tuners, hier eingerahmt die gelockte Frequenz:


    Analog dazu der Echtzeit/Live Wert über die Tuner-Status Funktionstaste (blau):


    Und wie es unter Multiplex (gelbe Funktionstaste) zu lesen ist:



    Der Code für diesen Converter im Screen Infobar sieht dann bei mir z.B. in der skin.xml dazu so aus:

    Code
    <convert type="extFrontendInfo">{%O  }{%F  :F:.3f}{%p  }{%Y  }{%f  }{%s  }{%M  }{%r  }{MIS%Z  }{%V  }{%X  }{%m  }{%g  }{PLP%P}</convert>

    Variabel, je nach eigenen Belieben:

    {%F :F:.3f} = Frequenz mit 3 Stellen hinter dem Komma

    {%F :F:.1f} = Frequenz mit 1 Stelle hinter dem Komma


    Die übrigen verwendbaren Variablen sind in der .py Datei beschrieben


    Und der Converter ist natürlich komplett MultiStream tauglich :smiling_face: (einschliesslich PLS Code):

  • What's the difference between SNR & LM value signal reception?

    LM = Link Margin (or NM Noise Margin) / reception reserve above the necessary signal-to-noise ratio


    In your example:

    28,2°E - 11553 H - DVB-S/QPSK - 5/6 needs around 6,53dB for (trouble-free) reception

    With SNR 15dB you are 8,47dB (rounded 8,5dB) above

  • Crash beim Switchen von DVB-S auf DVB-C bei Nutzung folgender Syntax:


    Code
    <widget source="session.FrontendInfo" render="Label" position="315,190" size="1080,40" font="Regular; 24" >
        <convert type="extFrontendInfo">{%s  }MOD:{%M  }{%F  :F:.0f;.1f}{%p  }SYM:{%Y  }FEC:{%f  }R:{%r  }{LM:%Ldb  }{MIS%Z  }{%V  }{%X  }{%m  }{%g  }{PLP%P}</convert>
    </widget>
    Code
    File "/usr/lib/enigma2/python/Components/Converter/extFrontendInfo.py", line 140, in getText
    x = format(float(x) / 1000, self.formatString_c)
    -------
    ValueError: Invalid conversion specification


    Tuner: FBC 45308 (SAT) und FBC BCM3158 (Cable)


    {LM:%Ldb } ist der Schuldige.

  • Unfortunately i think, that won't work. Not for the transmission system and also not for error correction


    i requote dhwz from another board

    Zitat

    Original von dhwz

    ... die Linux API kennt keine DVB-S2X FECs daher kann da nur AUTO stehen.

  • Crash beim Switchen von DVB-S auf DVB-C bei Nutzung folgender Syntax:

    ...

    Code
    File "/usr/lib/enigma2/python/Components/Converter/extFrontendInfo.py", line 140, in getText
    x = format(float(x) / 1000, self.formatString_c)
    -------
    ValueError: Invalid conversion specification

    ...

    {LM:%Ldb } ist der Schuldige.

    Zeile 140 sagt eigentlich, dass es %F bei Cable sein muss :winking_face:

    Code
                # %F - frequency (dvb-s/s2/c/t/t2) in MHz (Tuner-Value)
                if f == 'F':
                    x = frontendData.get("frequency",0)
                    if type == iDVBFrontend.feSatellite:
                        if self.formatString_s == '': self.formatString_s = ".0f" #default
                        x = format(float(x) / 1000, self.formatString_s)
                    elif type == iDVBFrontend.feCable:
                        if self.formatString_c == '': self.formatString_c = ".1f" #default
                        x = format(float(x) / 1000, self.formatString_c)

    Wenn der GS reproduzierbar ist, dann füge bitte mal in Zeile 140 eine Zeile zusätzlich ein:

    Code
                # %F - frequency (dvb-s/s2/c/t/t2) in MHz (Tuner-Value)
                if f == 'F':
                    x = frontendData.get("frequency",0)
                    if type == iDVBFrontend.feSatellite:
                        if self.formatString_s == '': self.formatString_s = ".0f" #default
                        x = format(float(x) / 1000, self.formatString_s)
                    elif type == iDVBFrontend.feCable:
                        if self.formatString_c == '': self.formatString_c = ".1f" #default
                        print "=== cable freq value:", x
                        x = format(float(x) / 1000, self.formatString_c)

    Dann sieht man evtl. im GS, was da gemeldet wird und dann kann man es evtl. gezielt abfangen.

    Ich kann das hier leider nicht nachstellen, da ich keinen Cable-Tuner habe.

    Gruß Sven (aka Dreamy)


    DM920 mit unstable OE2.5 DP
    One mit unstable OE2.6 DP

  • Für Feed Hunter sicherlich interessant, aber beim Durchschnittsbenutzer macht ein Abfragen der FrontendInfo jede Sekunde keinen Sinn.

    Gruss
    Dre


    Boxen (im Einsatz): DM920, DM900, DMOne
    Developer Project Merlin - we are OpenSource

  • Das hatte ich oben ja geschrieben, dass es hauptsächlich nur für DX Nutzer interessant ist. :winking_face:

    Für mich persönlich sind die ganzen Infos eher unwichtig.


    Und auf der anderen Seite ist die Infobar doch meist eh nur wenige Sekunden geöffnet.

    Der Converter feuert ja nur, wenn die InfoBar eingeblendet ist.

    Und wer solche Infos sehen will, der will auch die Änderungen sehen und keine statischen Werte vom TunedIn :winking_face_with_tongue:

    Gruß Sven (aka Dreamy)


    DM920 mit unstable OE2.5 DP
    One mit unstable OE2.6 DP

    Einmal editiert, zuletzt von Sven H ()

  • Hab im Post #1 gerade mal die Version 0.21 hochgeladen.

    Durch einen User wurde in der 0.20 noch ein Fehler (GS) beim Parameter %L bei DVB-T gemeldet :winking_face:


    Zum GS von Dreamer-FLT müssen wir noch auf eine Rückmeldung warten, da der Fehler hier noch nicht nachgestellt werden konnte.

    Gruß Sven (aka Dreamy)


    DM920 mit unstable OE2.5 DP
    One mit unstable OE2.6 DP

  • Code
    # %f - FEC inner (dvb-s/s2/c/t2) + CODE_Rate_LP/CODE_Rate_HP (dvb-t)

    Sven H mir fällt gerade auf, da fehlt noch bei DVB-S2 / QPSK die FEC 2/5 (wird als Auto ausgegeben)

    Bilder

  • Der Converter kann ja nur das ausgeben, was ihm die Box meldet.

    Und wenn da Auto "convertiert" wird, muss da lt. Code eine "0" zurückgemeldet worden sein.


    Würde das zu nichts convertiert werden, also " ", dann könnte man den fehlenden Wert im Converter ergänzen.

    Da es aber zu "Auto" convertiert wurde, scheint die Box den echten Wert gar nicht zu liefern.

    Gruß Sven (aka Dreamy)


    DM920 mit unstable OE2.5 DP
    One mit unstable OE2.6 DP