Bilder über yWeb Befehle aufs Display der Box

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
Agent_Smith
Neugieriger
Neugieriger
Beiträge: 11
Registriert: Sonntag 12. März 2006, 15:07

Bilder über yWeb Befehle aufs Display der Box

Beitrag von Agent_Smith »

Hallo,

Code: Alles auswählen

19. LCD Interface
**********************************************************************************************
Handler: http://dbox/control/lcd

Parameter: lock, clear, png, raw, line, rect, xpos, ypos, size, font, color, text, update
Rückgabe: ok /error

Ansteuerung des LCD-Interfaces über das Web-Interface

Folgende Parameter werden dabei unterstützt:

  lock=n    : n=1 -> das Display wird bis auf Widerruf für Neutrino gesperrt
              n=0 -> das Display wird wieder für Neutrino freigegeben
           
  clear=n   : n=1 -> das Display wird gelöscht (sollte ganz vorn stehen)
              n=0 -> das Display wird vor der neuen Ausgabe nicht gelöscht (kann entfallen)
             
  png=Dateiname : eine lokal auf der Box liegende PNG-Datei wird in's Display geladen
                  (z.B. /share/tuxbox/lcdd/icons/setup.png als Hintergrund)
                             
  raw=x,y,xs,ys,d1,..,dn : überträgt die Daten d1 bis dn an die Position (x,y) im Display mit
                           xs Spalten und ys Zeilen. Die Daten werden dezimal übertragen. Je-
                           der Wert repräsentiert dabei 8 Punkte innerhalb einer Zeile. Das
                           höchstwertige Bit entspricht dem Pixel ganz links. Sollen in einer
                           Zeile 9 Pixel geschrieben werden, sind dafür zwei Datenwerte nötig,
                           auch wenn die restlichen 7 Bit des zweiten Wertes nicht verwendet
                           werden. Die Werte werden zeilenweise hintereinandergeschrieben.
                           Für ein Rechteck von 8 Zeilen zu 9 Pixeln sind also 16 Werte erfor-
                           derlich, beginnend mit dem Wert für die 8 Pixel ganz links oben, ge-
                           folgt von dem Wert für das letzte Pixel der obersten Zeile (mit einem
                           Wert von 128 wenn es gesetzt werden soll), dann der Wert für die ers-
                           ten 8 Pixel der zweiten Zeile usw.
                             
  line=x1,y1,x2,y2,col : zeichnet eine Linie von (x1,y1) nach (x2,y2) mit der Farbe col
                         col=0 -> aus, col=1 -> leuchtend, col=2 -> invertierend
                         
  rect=x1,y1,x2,y2,col1,col2: zeichnet ein Rechteck mit der linken oberen Ecke (x1,y1) und der
                              rechten unteren Ecke (x2,y2), der Rahmenfarbe col1 welches mit
                              der Farbe col2 ausgefüllt wird (Farben siehe "line")
                             
  update=1  : an dieser Stelle wird das Display upgedatet. Somit kann man zunächst einige Aus-
              gaben machen und dann erst alles zusammen updaten. Somit wird ein Flackern des
              Displays verhindert. Sequenzen ohne diesen Parameter haben auf die Anzeige also
              zunächst erst mal keine Auswirkung.

Die folgenden Parameter betreffen nur die Textausgabe

  text=     : Auszugebender Text in UTF-8 Format (Leerzeichen = %20, Zeilenumbruch = %0A usw.)
 
  xpos=nn   : Position des ersten Zeichens horizontal (default 10)
 
  ypos=nn   : Position der linken oberen Ecke des ersten Zeichens (default 10)
 
  size=nn   : Größe des Textes (default 12)
 
  color=n   : Textfarbe (default 1, siehe "line")
 
  font=n    : zu verwendender Font (default 0)
              n=0 -> micron.ttf, n=1 -> micron_bold.ttf, n=2 -> pakenham.ttf
             
Hinweise:             
----------------------------------
Innerhalb eines Aufrufes können mehrere Kommandos gleichzeitig angegeben werden. Allerdings müs-
sen sie von unterschiedlichem Typ sein. Bei z.B. zwei rect-Parametern innerhalb eines Aufrufes
wird der zweite Parameter ignoriert. Abgearbeitet werden die Kommandos in der Reihenfolge:
lock, clear, png, raw, line, rect, xpos, ypos, size, color, font, text, update.
Der Parameter lock ist erforderlich, da ohne Sperrung das Displays für Neutrino die über den
nhttpd gemachten Ausgaben auf dem Display spätestens nach einer Sekunde durch das zyklische
Update von Neutrino wieder überschrieben werden würden. Daher ist bei der ersten Ausgabe lock=1
zu setzen. Wird das Display nicht mehr benötigt, muß lock=0 gesetzt werden, damit Neutrino wieder
Zugriff auf das LCD erhält.

Beispiel:             
----------------------------------

  wget -O /tmp/nhttpd.res 'http://localhost/control/lcd?lock=1&clear=1&rect=10,10,110,50,1,0&xpos=20&ypos=27&size=22&font=2&text=%20Hallo%20Welt%0A%C3%9Cbungstext&update=1'
  wget -O /tmp/nhttpd.res 'http://localhost/control/lcd?rect=10,10,110,50,1,2&update=1' 
 
um das Display wieder freizugeben, sollte zum Schluß
 
  wget -O /tmp/nhttpd.res 'http://localhost/control/lcd?lock=0'

ausgeführt werden.
das ganze möchte ich nutzen um das Display der Dbox auch Statusmeldungen meines HTPC anzeigen zu lassen.

Die beiden Beispielscripte funktionieren auch Prima, der "Hallo Welt" Text und der Rahmen werden angezeigt, und mit "lock=0" wird das display wieder für neutrino freigegeben....

Wenn ich aber die "png=" Funktion nutzen will, klappt das nicht.

Mit dem Aufruf

Code: Alles auswählen

http://192.168.97.115/control/lcd?lock=1&clear=1&png=/var/logo/thx.png&update=1
wird das Display gesperrt und gecleart, aber es wird kein Bild angezeigt.

Die datei wurde von mir in der richtigen Displayauflöung (120x64) in Photoshop erstellt und als .png abgespeichert, dann per ftp auf die box kopiert in einen erstellten ordner logo unter /var.

die dateirechte auf der box für diese datei habe ich auch überprüft, die sind auch okay gewesen

Code: Alles auswählen

 1 -rw-r--r--    1 root     root          874 Mar 12 00:54 thx.png
nun tippe ich darauf, dass der fehler irgendwie im dateiformat liegt, ich hab schon mal mit nem raw ausprobiert, wie man es für die bootlogos braucht. auch kein erfolg.

Für Tipps wie ich das Image auf das Display bringe wäre ich sehr dankbar!

Gruß aus dem verschneiten Hamburg

Adrian