Datenstruktur im SimLCD

  • Hallo zusammen,


    ich bastle gerade noch am meiner Wollmilchsau herum und scheine gerade Tomaten auf den Augen zu haben. Folgendes Problem:


    Ansteuerung meines Displays geschieht ueber die serielle Schnittstelle. Ich habe mir hier ein Protokoll geschrieben
    - Startbyte
    - Kommando/Datenbyte
    - Länge der Daten/des Kommandos
    - Daten
    - Checksumme
    - Stopbyte


    Von eigenen Programmen geht das auch wunderbar. Jetzt habe ich mich ans GraphLCD gemacht. Hierbei schien mir das SimLCD ganz geeignet als Start, damit ich mit dem File testen kann und das spaeter einfach direkt auf /dev/ttyS0 schicke.


    Leider verstehe ich die Struktur von LCD[x][y] nicht ganz, das sieht sowohl im Hexeditor als auch auf dem Display seltsam aus. Vielleich bin ich auch einfach zu muede heute und sollte morgen weitermachen... Aber wenn man mal dran ist :) Hat Sibbi hier die Koordinaten vertauscht? Es gibt doch schon einige, die sich an das Plugin gewagt haben -- waere fuer eine kurzbeschreibung des Arrays sehr dankbar, dann koennte ich die Daten naemlich einfach weiter verwursteln und in KS0108-Spalten-konforme Reihenfolge bringen.


    Gruß,
    Dirk

    Inzwischen: OctopusNet mit 8xDVB-S2, VDR-Container im Proxmox-Server mit 3x12TB Plattenplatz...

    2x ITX-Clients (N3700 und i3), Aufnahmen über NFS-Freigaben, Live-TV über SAT->IP


    VDR: AT5IONT-I mit Cine S2 v6.2, 1,5TB-HDD (2,5"), FB über Tastatur-Emulation mittels Arduino pro micro, yaVDR 0.5.0a mit vdr-sxfe
    VDR2: ASUS F1A75M-LE, ASUS GT520, streamdev-client, 1TB HDD (2,5") 128GB SSD, LIRC HomebrewFB über Tastatur-Emulation mittels Arduino pro micro, yaVDR 0.5.0a mit softhddevice
    VDR3: Raspberry Pi 2, raspbian mit VDR 2.2.0, rpihddevice, streamdev-client, remote-timers, FB via LIRC-GPIO, (1) Ein- und Aus-Taster via GPIO3 (weckt im Halt-Zustand auf und ruft im laufenden Zustand über svdrp "Power" auf)
    Streamdev-Server: Seagate Goflex Home 2TB mit debian squeeze, Opera-S1 und immer zu wenig Plattenplatz
    Streamdev-Server Neu: HP Proliant N36L mit 3x2TB + Cine S2 v5.5 -- und vorläufig genug Plattenplatz

  • Hi Dirk,


    schau dir einfach mal die Routine "Refresh" in simlcd.c an, ich denke hier ist
    am einfachsten zu erkennen wie die das Array mit den Bilddaten aufgebaut ist.


    IHMO ist eine zweidimensionales Array mit dem X,Y Koordinaten der den Bildspeicher darstellt,
    [0,0][0,1][0,2][0,3]...
    [1,0][1,1][1,2]...
    [1,0]...
    ...



    Aber da jeder Treiber sein eigenen LCD-Bildzwischspeicher hat, ist es garnicht notwendig,
    diese Speicherstruktur zu übernehmen.


    Du musst nur die Funktionen SetPixel und Set8Pixel an deine Aufteilung anpassen
    und mit Refresh wird die Ausgabe ans Display angestossen.


    Und mit folgende Set8Pixels-Routine braucht Du nur noch deine einigene SetPixel-Routine schreiben.
    Dieses habe ich z.B. eingesetzt, um über Set8Pixels einfach die 8 Pixel im Speicher zu
    setzen, da mein Display eine vertikale Speicheraufteilung der Bytes hat, und diese Aufteilung mit einer einzigen SetPixel-Routine einfacher zu handhaben ist.




    Cu,
    Andreas

Jetzt mitmachen!

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