Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Ich habe einen Raspberry Pi und einen ePaper Display
Damit man auf den ePaper Display Bilder anzeigen kann, muss man im Terminal Befehle eingeben.
Da es sehr aufwendig ist hab ich mir gedacht, ich schreibe einen Script. Der soll (im Hintergrund) die Bilder die auf dem Ordner z.B /home/pi/Test erstellt werden automatisch auf das ePaper anzeigen.
Könnt ihr mir dazu eventuell ein paar Tipps geben?
@Amateur: Wozu denn jetzt genau? Was willst Du erreichen, was hast Du dafür gemacht, und was funktioniert nicht? Fehlermeldungen? Anderes Verhalten des Programms als Du erwartet hast? Was hast Du erwartet? Was passiert stattdessen?
Ja damit ich die Befehle nicht Händisch im Terminal tippen muss. Das Script soll, wenn eine neue Bilddatei z.B. Test.jpg auf dem deffinierten Ordner erstellt wird mit einem Grafikprogramm z.B. GIMP auf dem ePaper Display anzeigen und das alles soll im Hintergrund passieren.
Ich hab das mit einem Bildbetrachter gemacht also einen Script geschrieben. Die Bilder werden mit GPicView geöffnet
[codebox=bash file=Unbenannt.bsh]#!/bin/bash
bilderdir=/home/pi
cd /home/pi
gpicview *.jpg
while [ true ]; do
vorher=$(ls –ld $bilderdir)
sleep 5
danach=$(ls –ld $bilderdir)
if [ „$vorher“ != „$danach“ ]; then
killall gpicview
gpicview *.jpg
fi
amleben=$(ps ax | grep gpicview | grep –v grep)
if [ -z “$amleben” ]; then
gpicview *.jpg
fi
done[/code]
Zuletzt geändert von Anonymous am Dienstag 17. Januar 2017, 13:23, insgesamt 1-mal geändert.
Grund:Quelltext in Bash-Codebox-Tags gesetzt.
@Amateur: Die typografischen Anführungszeichen im Shellskript sind ein Fehler. Und das ``while [ true ]`` im Grunde auch, denn ``while [ false ]`` hätte genau den gleichen Effekt:
[codebox=bash file=Unbenannt.bsh]$ [ true ]; echo $?
0
$ [ false ]; echo $?
0
$ true; echo $?
0
$ false; echo $?
1[/code]
Beim Test in Zeile 14 verhindern die Anführungszeichen das der jemals wahr werden kann, womit die Zeilen 13 bis 16 ersatzlos entfallen können, ohne das sich am Verhalten des Programms etwas ändert:
[codebox=bash file=Unbenannt.bsh]$ [ -z “$amleben” ]; echo $?
1
$ [ -z "$amleben" ]; echo $?
0[/code]
Wenn man das auf diese Weise in Python nachbauen möchte, dann muss man Inhaltsverzeichnisse auflisten und eine Zeit schlafen. Einen Haufen Funktionen rund um das Betriebs- und damit auch Dateisystem findet man im `os`-Modul. Die `sleep()`-Funktion im `time`-Modul.