scan_tp_valid_check.py

  • hallo,


    kann jemand mir erklären, wie ich das genau benutzen soll.


    es geht um die korrupte onid/tsid werte bei den satellitenbetreibern.
    anscheinend muss man die werte in /etc/scan_tp_valid_check.py ablegen.


    nur weiß ich nicht wie die datei ausschauen muss.


    danke.


    http://git.opendreambox.org/?p…b=refs/heads/experimental


    [Gelöst]Türksat und Dreambox Probleme in der Kanalsuche und beim Emfpang von Tv Sendern!





    im anhang ist eine liste mit doppelten einträgen

    i have a dream !!!


    3x DM500HD
    1x DM800se
    ----------------
    Kubuntu 12.10 x64
    Windows 7 Ultimate x64
    Intel i7 950@3200 10GB DDR3
    MSI 7522 X58 Platinum SLI
    MSI N560GTX-Ti Hawk

    Einmal editiert, zuletzt von ismail ()

  • ... oder kann jemand mir beschreiben, wie das hier funktioniert :face_with_tongue:


    /lib/dvb/scan.cpp



    editiert, falsch.


    thx

    i have a dream !!!


    3x DM500HD
    1x DM800se
    ----------------
    Kubuntu 12.10 x64
    Windows 7 Ultimate x64
    Intel i7 950@3200 10GB DDR3
    MSI 7522 X58 Platinum SLI
    MSI N560GTX-Ti Hawk

    Einmal editiert, zuletzt von ismail ()

  • hab jetzt /lib/dvb/scan.cpp wie folgt angepasst.
    jetzt werden alle doppelten onid/tsid abgefangen.


    ich hab es neu kompiliert und getestet.
    es konnten alle transponder/sender angeschaut werden
    ohne "pat nicht gefunden" oder sonstiges.



    code gelöscht, falsch

    i have a dream !!!


    3x DM500HD
    1x DM800se
    ----------------
    Kubuntu 12.10 x64
    Windows 7 Ultimate x64
    Intel i7 950@3200 10GB DDR3
    MSI 7522 X58 Platinum SLI
    MSI N560GTX-Ti Hawk

    2 Mal editiert, zuletzt von ismail ()

  • hallo,


    ist es eigentlich programmiertechnisch so korrekt wie ich gemacht habe oder
    sollte man doch anders machen mit orbital_position ?

    i have a dream !!!


    3x DM500HD
    1x DM800se
    ----------------
    Kubuntu 12.10 x64
    Windows 7 Ultimate x64
    Intel i7 950@3200 10GB DDR3
    MSI 7522 X58 Platinum SLI
    MSI N560GTX-Ti Hawk

  • es kann doch nicht sein, dass niemand auf meine fragen beantworten kann.


    laut Ghost kann man unter /etc/enigma2 eine datei mit dem namen "scan_tp_valid_check.py" erstellen.
    http://git.opendreambox.org/?p…0557daf8e0efc52070d888bad


    ich will doch nur ein beispiel, eine vorlage wie diese datei aussehen soll. sonst nix.



    danke und gruß ismail

    i have a dream !!!


    3x DM500HD
    1x DM800se
    ----------------
    Kubuntu 12.10 x64
    Windows 7 Ultimate x64
    Intel i7 950@3200 10GB DDR3
    MSI 7522 X58 Platinum SLI
    MSI N560GTX-Ti Hawk

    Einmal editiert, zuletzt von ismail ()

    • Offizieller Beitrag

    Hi,


    also je nach dem wie aktuell enigma2 ist (da ist nen bug im code) musst die python datei in /etc/enigma2 .. oder in /etc liegen.. in aktuellen experimental direkt in /etc .. weil das wie gesagt nen bug ist..


    Die Datei selber wird dann ausgeführt für jeden neuen Transponder der bei der kanalsuche gefunden wird. Das tut exakt dasselbe wie der c++ code.


    Sprich es soll geprüft werden, ob die TSID / ONID / ORBPOS kombination eindeutig ist.. oder ob der Provider mist gebaut hat, und den Muxxer falsch geconfed hat. Beispiele dafür gibts ja in der scan.cpp genügend.


    Und zu der Frage von oben.. nein es ist nicht gut die Orbital position zu ignorieren und einfach alle möglichen Kombinationen Global blackzulisten.


    Von dem Ergebniss der Prüfung hängt ab, wie enigma2 den DVB Namespace zusammenbaut. Bei Transpondern die okay sind, ist das dann einfach nur die Orbital Position. Bei kaputten wird da aber noch mehr eingeflochten.. die Polarisation, die Frequenz.. usw..


    Damit Transponderlisten aber zwischen mehreren Boxen austauschbar bleiben, sollte halt die Regel sein, dass die Transponder korrekt sind.. und nicht die Frequenz usw mit einfliesst.. weil das wiederrum vom verwendeten LNB / der satellites.xml abhängen kann.


    Naja wie dem auch sei.. man sollte auf keinen Fall das tun, was du getan hast.


    Soo nun schnell noch nen Beispielt, wie die Datei aussehen könnte. Also die python datei.


    Ich mach mal als Beispiel nun das, was die C++ schon prüft.


    Also folgendes die Datei selber bekommt 3 Variablen übergeben.. bei jedem Aufruf.. das ist "orbpos", "tsid", "onid". Diese kann man da einfach benutzen. Das Ergebniss muss in "ret" gespeichert werden.


    Folgender Teil aus dem C++ code:

    Code
    case 42: // Tuerksat 42.0E
                    ret = orbital_position != 420 || (
                        tsid != 8 && // 11830V 12729V
                        tsid != 5 && // 12679V 12685H
                        tsid != 2 && // 11096V 12015H
                        tsid != 55); // 11996V 11716V
                    break;
            case 100: // Intelsat 10 68.5E 3808V 3796V 4012V, Amos 4.0W 10723V 11571H
                    ret = (orbital_position != 685 && orbital_position != 3560) || tsid != 1;
                    break;


    Könnte in der /etc/.../scan_tp_valid_check.py so aussehen:

    Code
    if onid == 42: #Tuerksat 42.0E
        ret = orb_pos != 420 or (tsid != 8 and tsid != 5 and tsid != 2 and tsid != 55)
    elif onid == 100: #Intelsat 10 68.5E 3808V 3796V 4012V, Amos 4.0W 10723V 11571H
        ret = (orb_pos != 685 and orb_pos != 3560) or tsid != 1
    else:
        ret = 1


    Da wird halt einfach ein "wahrheitswert" gebildet... um zu erreichen, dass alle Transponder als "feeds" angesehen werden, würde es schon reichen in der datei nur "

    Code
    ret=0

    zu schreiben... aber das ist wie gesagt nicht so vorteilhaft.


    cu

  • erstmal dank für den ausführlichen bericht.


    mal schauen ob ich mit einem script die struktur hinbekommen werde.


    ich möchte halt die ganze automatisiert erstellen lassen, damit man immer up-to-date ist.
    wie du schon gesagt hast, es werden zwar fast alles abegefangen aber es sind eben nicht alle.


    zb. astra und hotbird haben derzeit keine doppelten id's mehr.


    es soll halt aktuell und sauber sein :winking_face:


    thx und gruß ismail

    i have a dream !!!


    3x DM500HD
    1x DM800se
    ----------------
    Kubuntu 12.10 x64
    Windows 7 Ultimate x64
    Intel i7 950@3200 10GB DDR3
    MSI 7522 X58 Platinum SLI
    MSI N560GTX-Ti Hawk

  • ich hab die /lib/dvb/scan.cpp nun angepasst.


    momentan sind nur eastbeam.
    compiled und getestet und für gut empfunden :winking_face:


    edit: code/anhang gelöscht, siehe unten

    i have a dream !!!


    3x DM500HD
    1x DM800se
    ----------------
    Kubuntu 12.10 x64
    Windows 7 Ultimate x64
    Intel i7 950@3200 10GB DDR3
    MSI 7522 X58 Platinum SLI
    MSI N560GTX-Ti Hawk

    Einmal editiert, zuletzt von ismail ()

  • was spricht sich dagegen es ins cvs nicht einzuchecken ?

    i have a dream !!!


    3x DM500HD
    1x DM800se
    ----------------
    Kubuntu 12.10 x64
    Windows 7 Ultimate x64
    Intel i7 950@3200 10GB DDR3
    MSI 7522 X58 Platinum SLI
    MSI N560GTX-Ti Hawk

  • hi,


    also mein vorgehensweise ist wie folgt:
    als grundlage für die ganzen doppelten transponder wird die seite king_of_sat_net als vorlage genommen.
    dann werden die seiten (satelliten) einzeln abgelegt, daraus werden dann die transponderdaten gebildet, (tsid und onid)
    anschließend werden die daten mit sort und uniq -d gefiltert.


    hier eine liste mit der doppelten transponder. sat für sat.


    ps: "all satellites" enthällt mindestens eine doppelte eintrag, muss aber nicht bei allen satelliten vorkommen.
    wenn die liste durch ist, hat man alles was man braucht. damit man von der liste oben nach unten abarbeiten kann.
    sonst müsste man bei allen sats schauen wo was ist, und da verliert man schnell den überblick.
    es erleichtert die arbeit enorm !



    edit: anhang gelöscht, siehe unten



    mfg ismail

    i have a dream !!!


    3x DM500HD
    1x DM800se
    ----------------
    Kubuntu 12.10 x64
    Windows 7 Ultimate x64
    Intel i7 950@3200 10GB DDR3
    MSI 7522 X58 Platinum SLI
    MSI N560GTX-Ti Hawk

    Einmal editiert, zuletzt von ismail ()

  • kannst du mir eventuell sagen, wo der haken ist :upside_down_face:
    hab so gemacht, wie du mir oben gezeigt hast :confused_face:


    edit: achja, bei mir funktioniert so einwandfrei.
    vorher (mit original source) hatte ich auf manchen sendern pat/sid problem.
    nachdem ich jetzt neu mit den sourcen kompiliert habe, läuft alles super.
    ich weiß nicht wo du da ein problem siehst ...


    gruß ismail

    i have a dream !!!


    3x DM500HD
    1x DM800se
    ----------------
    Kubuntu 12.10 x64
    Windows 7 Ultimate x64
    Intel i7 950@3200 10GB DDR3
    MSI 7522 X58 Platinum SLI
    MSI N560GTX-Ti Hawk

    Einmal editiert, zuletzt von ismail ()

  • update


    nächstes mal werd ich mit der datei "scan_tp_valid_check.py" versuchen




    i have a dream !!!


    3x DM500HD
    1x DM800se
    ----------------
    Kubuntu 12.10 x64
    Windows 7 Ultimate x64
    Intel i7 950@3200 10GB DDR3
    MSI 7522 X58 Platinum SLI
    MSI N560GTX-Ti Hawk

    Einmal editiert, zuletzt von ismail ()

    • Offizieller Beitrag

    Hi,


    also naja.. bei onid 0 und 1 kann man sich den ganzen orbital position check schenken 0 ist immer kaputt also es gibt nirgends transponder wo eine ONID 0 korrekt wäre.


    ONID 1 ist nur auf astra 19.2 valid.. es gibt da eine liste irgendwo .. oder gabs mal.. und die ONID 1 ist eine anbieter auf astra 19.2. sprich auf allen anderen satelliten ist das eh kaputt.


    Deshalb waren die defaults in der standard scan.cpp da halt schöner.


    und die 65535 ist auch generell kaputt.. die wurde aber über den default zweig schon gehandled mit dem ret = onid.get() < 0xFF00. Soll heissen alle onids > 65280 sind ebenfalls generell kaputt.. also kann man sich da auch die ganzen orbital positions prüfen schenken.


    ONID 2 gibts nur auf Astra 28.2 .. deshalb ist dieser check da auch drinn. mit der ausnahme dass es auf astra 28.2 selber zwei transponder gibt die die selbe TSID/ONID kombination haben.. was wiederrum nicht erlaubt ist.


    Naja.. der standard deckt halt schon 99% von dem ab, was in deiner liste da drinn steht.. ist aber weniger code.. lässt sich aber schwer automatisch generieren.


    cu

  • kann man die ganzen checks nach /etc/scan_tp_valid_check auslagern (außer 0,0xFF00),
    damit man (ich :)) selber ändern kann.


    i have a dream !!!


    3x DM500HD
    1x DM800se
    ----------------
    Kubuntu 12.10 x64
    Windows 7 Ultimate x64
    Intel i7 950@3200 10GB DDR3
    MSI 7522 X58 Platinum SLI
    MSI N560GTX-Ti Hawk