ANNOUNCE: graphlcd-0.0.9-pre1

  • Hi,


    für die, die schonmal testen wollen, gibts ne Vorabversion von der 0.0.9. Hauptänderung ist eine veränderte Treiberschnittstelle plus einige Bugfixes.


    Neuerungen seit 0.0.8:
    - reworked driver interface:

    • all drivers in one library
    • static and dynamic linking of drivers possible (look for STATIC_DRIVERS in Makefile)
    • moved low level parallel port code to the new class cParallelPort
    • cleaned up driver's code
    • adopted plugin and showpic to this new interface


    - gu140x32f updates (thanks to Andreas Brachold)

    • brightness control through setup works now
    • timing setup works now


    zu finden hier: http://www.powarman.de/vdr_graphlcd.htm


    Andreas

  • Hallo,


    supi, die neue Version des Plugins rennt out of the Box ohne Probleme.


    nur das tool showpic bereitet mir Kopfzerbrechen, in der 0.0.9 ist
    wieder die gleiche Macke wie in der 0.0.8, spricht die Treiber verwenden
    die langsame WaitMethod=0, obwohl in showpic "GraphLCDSetup.WaitPrio = 2" gesetzt wird.
    Für den Anfang habe für das ich auf die schnelle habe ich dafür noch keine
    100% saubere Lösung gefunden, außer die Initialisierung in setup.c ( Zeile 48 )
    - WaitMethod = 0;
    + WaitMethod = 2;
    zuändern.


    Das Problem ist das die globale Variable doppelt GraphLCDSetup in dem Modulen libvdr-graphlcd.so.1.2.6 und showpic exisitert, und damit asyncron sind.


    erster Lösungsvorschlag setup.c ( Zeile 73 )

    Code
    if(this->PPDevice) FREENULL(this->PPDevice);
      memcpy(this, pSource, sizeof(cGraphLCDSetup));
    +  memcpy(&GraphLCDSetup, pSource, sizeof(cGraphLCDSetup));
      if(pSource->Controller) {


    sollte für showpic zur Syncronisierung der doppelten Variablen führen, hat allerdings
    den Effekt das im Pluginmodus GraphLCDSetup auf sich selber kopiert wird.


    zweiter Lösungsvorschlag in fnc.c
    in allen Sleepfunktionen einen Zeiger auf das aktuelle aktive Setup des Treiber mitzugeben


    das ist meiner Meinung nach die sauberste Lösung, allerdings müssten dann alle Treiber anpasst werden !


    oder sehe ich eventuell den Wald vor lauter Bäumen nicht ?


    Cu,
    Andreas

  • Hallo,


    ich habe den letzten Stand des GLCD-Replay-Patch überarbeitet
    und für die Version 0.0.9-pre1 des GLCD-Plugin aktualisiert und
    möchte diese hiermit verfügbar machen.


    Die geschönte Wiedergabetitelanzeige gestaltet sich wie folgt


    Normale Wiedergabe => Nur noch der Aufnahmetitel, ohne übergeordnete Verzeichnisstruktur.
    MP3 => Der Titel, ohne Statusinfos
    DVD => Der geschönte Volumenname, ohne Statusinfos
    Image => Nur der Dateiname, ohne Verzeichnisname
    Mplayer => dito wie Image-Plugin


    Bilder zu diesem Patch sind unter http://www.vdr-portal.de/board/thread.php?threadid=10637&sid=
    zu finden.



    Cu,
    Andreas

  • Also bei mir macht es leider immernoch Probleme. Es zeigt auf meinem KS0108 zwar das richtige an, aber etwas zerhackt.. Es sieht so aus würde er den Text spiegelverkehrt schreiben wollen. Es sieht noch ein bisschen schräger aus.. Ich hab leider grad keine Digi-Cam da, sonst würd ich das fotographieren...


    Passiert mit VDR 1.2.6, der Aufruf ist:
    ....
    -P'graphlcd -c ks0108 -x 128 -y 64


    Ich hab auch schon ein bisschen mit den Timing Parametern rumgespielt, hat aber auch nicht geholfen (ausser das das nano-timing garnicht ging).


    Hat da jemand eine Idee?


    PS: Spiegelverkehrt, NICHT auf dem Kopf.. :P

  • Oops,


    das hat sich doch glatt der Fehlerteufel in letzte Replaypatch eingeschlichen,
    das dazuführt das im normalen Wiedergabemodus der erste Buchstabe des Angezeigten Titels fehlen. :rolleyes:


    folgende Korrekturen in display.c (ab Zeile 1022) sollte diesen Fehler beheben.


    Anbei das korrigierte Patch,


    Sorry, mein Fehler,
    Andreas

  • Hallo,


    wenn nach Randy die Funktion "reversebits" broken ist,
    wie wäre es den mit folgender Ersatzfunktion.


    Code
    inline static unsigned char swapbits(unsigned char n)
    {
       n = ((n >>  1) & 0x55) | ((n <<  1) & 0xaa);
       n = ((n >>  2) & 0x33) | ((n <<  2) & 0xcc);
       n = ((n >>  4) & 0x0f) | ((n <<  4) & 0xf0);
       return n;
    }



    Cu,
    Andreas

  • Ist denn der Patch für die www.feegy.de Verdrahtung schon mit drin? Oder muss hier auch wieder gepatched werden?
    grüsse
    tobias

    :vdr1 VDR User #626:fans
    VDR II: YeongYang A106, Fusi D1522, Celeron 2GHz, Frontend per DVB-s FF, 2xDVB-c, ATRIC-IR, YaVDR 0.3a
    VDR III HDTV: Inter-Tech 2008V mit iMonLCD, Atric, ASRock Extreme3 770 AM3, AMD Sempron 140 1x 2.70GHz AM3, 1,5TB WD15EADS, 2TB WD20EARS, 2x4GB DDR3-1600, NVidia GT520 passiv, 3x DVB-c, YaVDR 0.5 @ Samsung PS-50B550

  • Zitat

    Original von Tobias
    Ist denn der Patch für die www.feegy.de Verdrahtung schon mit drin? Oder muss hier auch wieder gepatched werden?
    grüsse
    tobias


    hier haben shcon leute geschrieben das des mit feegy geht ;)


    ja ist drin. genauso wie der "reichelt lcd patch" und der "t6963 timing patch".


    "ks0108 patch" und "bigdisplay" kommen noch, mach ich am we wohl.


    -- randy

  • randy: ja klar gehts mit feegy. Habe meine 0.0.8 ja auch mit dem Feegy TEil am laufen, musste nur halt noch vorher gepatched werden der t6963 Treiber ;)


    tobias

    :vdr1 VDR User #626:fans
    VDR II: YeongYang A106, Fusi D1522, Celeron 2GHz, Frontend per DVB-s FF, 2xDVB-c, ATRIC-IR, YaVDR 0.3a
    VDR III HDTV: Inter-Tech 2008V mit iMonLCD, Atric, ASRock Extreme3 770 AM3, AMD Sempron 140 1x 2.70GHz AM3, 1,5TB WD15EADS, 2TB WD20EARS, 2x4GB DDR3-1600, NVidia GT520 passiv, 3x DVB-c, YaVDR 0.5 @ Samsung PS-50B550

  • Der Treiber fürs HD61830 funktioniert leider immer noch nicht so richtig.
    Mit der Version 0.0.8 ging gar nichts. Mit der 0.0.9-pre1 zeigt das Display bei mir nur ab und zu etwas an, und meistens ist der Null-Punkt verschoben...
    Soll heissen, das Bild wird schon komplett angezeigt, nur ist es um +/- X-Pixel und +/- Y Pixel verschoben.


    Am ehesten zeigt es etwas an, wenn man im Setup auf nanaosleep (sched _rr) geht. Bei allen Anderen wird das Display dunkel und flackert wie wild, mit ein paar senkrechten hellen Streifen.


    Auch muss ich sagen, dass das Ruckeln beim Abspielen von Div-X sogar zugenommen hat, trotz dass ich /dev/partport0 nutze.


    André.

    Gehäuse: Intertech 4U 4416, Board: Supermicro X11SAE; Kathrein EXIP418; OS: Ubuntu 18.04; Plugins: xineliboutput, satip, burn, femon, live, streamdev-server, text2skin:anthra-1920

    2x RPI2/3; Plugins: rpihddevice; videodir via NFS


  • hi
    ich hatte bei meiner alten graphlcd-version einen patch drübergezogen (leider weiss ich nicht mehr welcher das war) der hat neben ein paar optischen korrekturen im display angezeigt was ich im hintergrund aufnehme - also bei Aufnahmen hat die Programminformation immer gewechselt.
    Ist dieser Patch bekannt und kann er auch in das Graphlcd eingebaut werden?


    Ansonsten: Super. Die aktuelle Version läuft ohne Probleme mit meinem Feggy-Display.


    Info: das Readme von Showpic ist noch nicht aktualisiert! (Aber der aufruf von showpic bringt die benötigten parameter).


    gruß
    dbox.network

  • hi,


    ich versuch, die reine 0.0.9-pre1 mit meinem Noritake und windows-wiring zum laufen zu bekommen. Kompiliert mit


    make GRAPHLCD_DRIVER=gu140x32f WIRING_WINDOWS=1 GRAPHLCD_WIRING=WINDOWS plugins


    (welche wiring-option ist eigentlich die richtige?)


    beim starten wird das display einfach nur schwarz. hat da jemand einen Tipp für mich?

    VDR(Via Epia M-10000, 512MB, 2xNexus-s, 120GB&160GB&160GB Samsung SpinPoint, NEC 1300 DVD+-R/RW, IR-Kit, VFD Noritake)
    Gehäuse: Eigenbau (s.o.)

  • Hi,



    ich denke das Aktivieren der alternativen Anschlusslayoutes per Makefile
    wird nicht mehr unterstützt und die Aktivieren per Kommandozeilen option
    ist "noch" nicht inplementiert.


    füge für's erste mal in drivers/gu140x32f.c (im kopf) folgende Zeile hinzu.


    Code
    #define WIRING_WINDOWS




    Cu,
    Andreas

  • Hi Randy, hi McWizard,


    mit meinem 12864A LCD (ks0108 controller) ich hatte das gleiche Problem - der Displayinhalt wurde zerhackt und 8-pixelweise spiegelverkehrt dargestellt.


    Um das Problem zu loesen hatte ich einfach die Reversebits()-Aufrufe aus der Methode ks0108.c: cGraphLCDDriverKS0108::Set8Pixels() herausgenommen. Mit showpic konnte ich dann schonmal VDR-Logos prima anzeigen. Die Anzeige des graphlcd plugins konnte man danach zwar schon lesen, aber die Zeichen sahen alle "angeknabbert" aus. Da habe ich wohl den Set8Pixel - Algorithmus kaputt gemacht.


    Jedenfalls habe ich lange Zeit nicht verstanden wozu die ReverseBits Funktion ueberhaupt da ist. Da ich zum ersten mal ein LCD angeschlossen habe, kenne ich mich nicht bei den Unterschieden zwischen LCDs mit KS 0108 Controller aus. Ich denke aber, dass es LCDs gibt, wo der (0,0) Punkt mal oben links oder unten rechts liegt. Dann muss man die Teile entweder mechanisch herumdrehen oder im Setup die UpSideDown Option benutzen -> und hier kommt dann die ReverseBits()-Routine zum Zug.


    Jedenfalls habe ich mir einen Patch ersellt (file driver/ks0108.c) und damit lauft mein Display jetzt prima! Einfach ein Reversebits()-call an der passenden Stelle... Der Hack ist vielleicht nicht optimal, da ReverseBits() in der ínnersten Schleife sehr oft gerufen wird (macht genau 128x64x8=64k) . Auf meinem 2GHz-Rechner habe ich jedoch kein Performanceproblem feststellen koennen.
    Und ausserdem ist ReverseBits() per look-up-table sehr effizient programmiert ... und ist auch nicht kaputt.



    Meine oben erwaehnten Aenderungen in der Funktion ks0108.c: cGraphLCDDriverKS0108::Set8Pixels() habe ich wieder rausgenommen.


    Ciao,
    Rene.

  • Zitat

    Original von ReNeR
    Jedenfalls habe ich mir einen Patch ersellt (file driver/ks0108.c) und damit lauft mein Display jetzt prima! Einfach ein Reversebits()-call an der passenden Stelle...


    danke, aber die muehe haettst dir ned machen brauchen ;)
    eine kurze fragen und ich haetts dir gesagt ;) in pre4 ist es wieder richtig.


    Zitat


    Und ausserdem ist ReverseBits() per look-up-table sehr effizient programmiert


    danke ;)


    -- randy

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!