Hallo Forum
habe meinen Fehler gefunden und auch behoben tut jetut alles so wie es soll habe den <form action='SCANTEST.php' method='post'> unterbrochen b.z.w. falsch gesetzt. Deswegen wurden die Werte nicht weitergegeben.
Danke an alle
Hallo Forum
habe meinen Fehler gefunden und auch behoben tut jetut alles so wie es soll habe den <form action='SCANTEST.php' method='post'> unterbrochen b.z.w. falsch gesetzt. Deswegen wurden die Werte nicht weitergegeben.
Danke an alle
hallo
Auswahlbox auswahl farbe grau oder sw
Übergabe an das php so das ich eine auswahl machen kann welcher Befehl an den PI gesendet wird.
Hallo
Die Funktion Mode übergibt nicht die Werte an die if-Anweisung diese Werte brauche ich um verschiedene Funktionen ausführen ich möchte damit einmal schwarz einscannen Farbe einscannen und grau einscannen es ist ein Scanner angeschlossen.
Wie realisiere ich das?
Hallo Forum
habe da ein kleines Problem mit dem ich so nicht weiterkomme.
Ziel ist das ich mit der select box auswählen kann welcher IF Zweig aktiv ist.
um das ganze auszutesten habe ich das erstmal auf lehr getestet und wenn es nicht leehr ist wird der ausgeführte Echo anders beschriben .
Auszug
<select name="mode">
<option value="1">Schwarz/Weiss</option>
<option value="2">grau</option>
<option value="3">Farbe</option>
</select>
.
<?
$mode_scan = $_POST['mode'];
if ($einfach_Scan_Start_Variable =='1')
{
if ( empty($_POST['name']))
{
$namensfeld =date('dmYHi');
}
else
{
$namensfeld = $_POST['name'];
}
$VERZ = 'DATEN';
if ( empty($_POST['mode']))
{
exec("sudo /home/pi/python/scanb1.sh $namensfeld $VERZ $DPI " ,$output, $return_var); // Werteübergabe innerhalb der Klammern
echo "Seite eingescannt";
echo ($mode_scan);
}
else
{
exec("sudo /home/pi/python/scanb1.sh $namensfeld $VERZ $DPI " ,$output, $return_var); // Werteübergabe innerhalb der Klammern
echo "Seite eingescannt3";
echo ($mode_scan);
}
}
´?>
Alles anzeigen
Komplett
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Scannen der Dokumente</title>
<meta name="author" content="sam">
<meta name="editor" content="html-editor phase 5">
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<!//Sektion für mehrere Seiten einscannen>
<p>Mehrere Seiten Scannen
<p><form action='SCANTEST.php' method='post'>
<p>
<input id="aufloesung" name="aufloesung" maxlength="15">
<label for="aufloesung">Aufloesung 150DPI Default</label>
<p>
<button type="submit" name='scanM' value="1">Scan Start</button>
<p>
<input id="name" name="name" maxlength="30">
<label for="name">Name</label>
<p>
<button type="submit" name='einePDF' value="1">PDF Zusammenfuehren</button>
</form>
<p>
<p>Eine Seite Scannen
<form action='SCANTEST.php' method='post'>
<!//Name der Datei die als Ausgabe auf die Festplatte geschrieben werden soll>
<input id="name" name="name" maxlength="30">
<label for="name">Name</label>
<p>
<input id="aufloesung" name="aufloesung" maxlength="15">
<label for="aufloesung">Aufloesung 150DPI Default</label>
<p>
<button type="submit" name='scan' value="1">Scan Start</button>
</form>
<p>
<p>
<select name="mode">
<option value="1">Schwarz/Weiss</option>
<option value="2">grau</option>
<option value="3">Farbe</option>
</select>
<?php
//Debugging TEIL
//Ausgabe aller Post auf den echo
//echo "<pre>"; var_dump($_POST); echo "</pre>";
//Debugging TEIL
$mehrfach_Scan_Start_Variable = $_POST['scanM'] ;
$einfach_Scan_Start_Variable = $_POST['scan'] ;
#$einfach_Scan_Start_Variable_SW = $_POST['scanSW'] ;
$PDF_zusammenfuehren = $_POST['einePDF'] ;
$herunterfahren = $_POST['herunterfahren'];
$mode_scan = $_POST['mode'];
// es wird gepüft ob die Eingabefelder lehr sind wenn diese lehr sind werde sie mit vorgaben gefüllt
if ($mehrfach_Scan_Start_Variable =='1' OR ($einfach_Scan_Start_Variable =='1'))
{
if ( empty($_POST['name']))
{
$namensfeld =date('dmYHis');
}
else
{
$namensfeld = $_POST['name'];
}
if ( empty($_POST['aufloesung']))
{
$DPI = '300';
}
else
{
$DPI = $_POST['aufloesung'] ;
}
if ($mehrfach_Scan_Start_Variable =='1')
{
$VERZ = 'TEMP';
exec("sudo /home/pi/python/scanb1.sh $namensfeld $VERZ $DPI" ,$output, $return_var); // Werteübergabe innerhalb der Klammern
echo "Seite eingescannt";
// echo "$DPI";
}
}
if ($PDF_zusammenfuehren =='1')
{
$VERZ = 'TEMP';
if ( empty($_POST['name']))
{
$namensfeld =date('dmYHis');
}
else
{
$namensfeld = $_POST['name'];
}
$pdf_file = $namensfeld . ".pdf";
exec ("sudo pdfsam-console -d ./$VERZ -o ./DATEN/". $pdf_file ." concat");
exec ("sudo rm -r $VERZ");
echo "Seite zusammengefürt";
}
if ($einfach_Scan_Start_Variable =='1')
{
if ( empty($_POST['name']))
{
$namensfeld =date('dmYHi');
}
else
{
$namensfeld = $_POST['name'];
}
$VERZ = 'DATEN';
if ( empty($_POST['mode']))
{
exec("sudo /home/pi/python/scanb1.sh $namensfeld $VERZ $DPI " ,$output, $return_var); // Werteübergabe innerhalb der Klammern
echo "Seite eingescannt";
echo ($mode_scan);
}
else
{
exec("sudo /home/pi/python/scanb1.sh $namensfeld $VERZ $DPI " ,$output, $return_var); // Werteübergabe innerhalb der Klammern
echo "Seite eingescannt3";
echo ($mode_scan);
}
}
?>
<br>
<?php
if($herunterfahren=='1')
{
exec ("sudo /home/pi/python/halt.sh") ;
echo "testfff";
}
?>
<p>
<p>
Beschreibung <br>
Bei mehrenen Seiten solange einscannen bis alles drin ist und anschließend Namen vergeben und zusammenfügen.
<br>
Bei einer Seite Namen vergeben einscannen.
<?php
extract($_POST);
extract($_GET);
$verz = "DATEN";
$verz2 = $verz ;
$handle=opendir("$verz");
if ($verz=="")
{
$verz=".";
}
$handle=opendir("$verz2");
echo "<table width='50%' border='1' cellpadding='0' cellspacing='2'> ";
if ($verz2=="")
{
$verz2=".";
}
$counter = 1 ;
while ($file=readdir($handle))
{
if ($file != "." && $file != "..")
{
if($counter == 4)
{
echo "<tr><th><a href=\"$verz/$file\" > $file </a></th>";
$filename = $verz . "/" .$file ;
if (file_exists($filename)) {
echo "<th>Erstellt: " . date ("d m Y H:i. </th></tr>", filemtime($filename));
}
echo " <br>" ;
$counter = 1 ;
}
else
{
echo "<tr><th><a href=\"$verz/$file\" > $file </a></th> ";
$filename = $verz . "/" .$file ;
if (file_exists($filename)) {
echo "<th> Erstellt: " . date ("d m Y H:i.</th></tr>", filemtime($filename));
}
echo " <br>" ;
$counter++;
}
}
}
closedir($handle);
echo "</table>";
?>
<br>
<form action='SCANTEST.php' method='post'>
<input type='hidden' name='herunterfahren' value='1'>
<input type='submit' value='Herunterfahren'>
</form>
</body>
</html>
Alles anzeigen
für eine Hilfestellung währe ich dankbar.
euer member
supi danke habe ein sleep 20 ;
Angehängt und alles ist gut ...
Den Vorschlag von DG8BR auch getestet geht auch bekomme blos eine meldung das irgentwas nicht unterstützt wird die Daten sind aber da.
Meldung
53.241516] FS-Cache: Netfs 'cifs' registered for cachin
[ 53.242855] Key type cifs.spnego registered
[ 53.242886] Key type cifs.idmap registered
[ 53.906234] CIFS VFS: Autodisabling the use of server in
de numbers on \\192.168.178.1\fritz.nas. This server doesn'
seem to support them properly. Hardlinks will not be recog
ized on this mount. Consider mounting with the "noserverino
option to silence this message.
hallo
Wenn ich rc config manuell starte kommt das bei raus
der mount tut.
Aber wenn ich das so durchlaufen lasse scheint es so als ob die rc.config nicht aufgerufen wird.
tents:1 across:102396k SSFS
[ 19.814167] FS-Cache: Netfs 'cifs' registered for cachin
[ 19.815157] Key type cifs.spnego registered
[ 19.815183] Key type cifs.idmap registered
[ 19.898392] CIFS VFS: Error connecting to socket. Aborti
g operation.
[ 19.899353] CIFS VFS: cifs_mount failed w/return code =
101
[ 145.989922] CIFS VFS: Autodisabling the use of server in
de numbers on \\192.168.178.1\fritz.nas. This server doesn'
seem to support them properly. Hardlinks will not be recog
ized on this mount. Consider mounting with the "noserverino
option to silence this message.
[ 330.800826] CIFS VFS: Server 192.168.178.1 has not respo
ded in 120 seconds. Reconnecting...
Alles anzeigen
wenn ich es per hand ausfürhe geht es....
Hallo gemeinde
Ich habe das Problem das in der rc.config ein Mount Befehl eingetragen ist der in der normalen aufruf geht.
Wenn ich den rc config überprüfung anstosse kommt das raus.
systemctl status rc.local
* rc-local.service - /etc/rc.local Compatibility
Loaded: loaded (/etc/systemd/system/rc-local.service; en
Drop-In: /lib/systemd/system/rc-local.service.d
`-debian.conf
/etc/systemd/system/rc-local.service.d
`-ttyoutput.conf
Active: active (exited) since Thu 2018-01-04 14:29:24 UT
Process: 319 ExecStart=/etc/rc.local start (code=exited,
CGroup: /system.slice/rc-local.service
Jan 04 14:29:24 Katharina3 systemd[1]: Starting /etc/rc.loc
Jan 04 14:29:24 Katharina3 systemd[1]: Started /etc/rc.loca
Warning: rc-local.service changed on disk. Run 'systemctl d
lines 1-13/13 (END)
Alles anzeigen
was kann ich machen???
Danke schonmal.
Hallo Forum Gemeinde,
nach so einigen rumtesten habe ich mein Scanner wierder ans laufen gebracht.
Zum Ablauf meines "work arount" (Programm würde ich das nicht nenne)
Mit den Webinterface starte ich eine Seite auf der ich die Daten fur das scannen eingeben kann. Gleichzeitig werden mir da auch die Daten die schon eingelesen worden sind angezeigt.
(Würde gerne ein Bild einlegen ahbe aber greade keinen webspeicher)
der PHP code ist :
[code=php]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Scannen der Dokumente</title>
<meta name="author" content="sam">
<meta name="editor" content="html-editor phase 5">
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<!//Sektion für mehrere Seiten einscannen>
<p>Mehrere Seiten Scannen
<p><form action='SCANTEST.php' method='post'>
<p>
<input id="aufloesung" name="aufloesung" maxlength="15">
<label for="aufloesung">Aufloesung 150DPI Default</label>
<p>
<button type="submit" name='scanM' value="1">Scan Start</button>
<p>
<input id="name" name="name" maxlength="30">
<label for="name">Name</label>
<p>
<button type="submit" name='einePDF' value="1">PDF Zusammenfuehren</button>
</form>
<p>
<p>Eine Seite Scannen
<form action='SCANTEST.php' method='post'>
<!//Name der Datei die als Ausgabe auf die Festplatte geschrieben werden soll>
<input id="name" name="name" maxlength="30">
<label for="name">Name</label>
<p>
<input id="aufloesung" name="aufloesung" maxlength="15">
<label for="aufloesung">Aufloesung 150DPI Default</label>
<p>
<button type="submit" name='scan' value="1">Scan Start</button>
</form>
<p>
<?php
//Debugging TEIL
//Ausgabe aller Post auf den echo
//echo "<pre>"; var_dump($_POST); echo "</pre>";
//Debugging TEIL
$mehrfach_Scan_Start_Variable = $_POST['scanM'] ;
$einfach_Scan_Start_Variable = $_POST['scan'] ;
$PDF_zusammenfuehren = $_POST['einePDF'] ;
$herunterfahren = $_POST['herunterfahren'] ;
// es wird gepüft ob die Eingabefelder lehr sind wenn diese lehr sind werde sie mit vorgaben gefüllt
if ($mehrfach_Scan_Start_Variable =='1' OR ($einfach_Scan_Start_Variable =='1'))
{
if ( empty($_POST['name']))
{
$namensfeld =date('dmYHis');
}
else
{
$namensfeld = $_POST['name'];
}
if ( empty($_POST['aufloesung']))
{
$DPI = '300';
}
else
{
$DPI = $_POST['aufloesung'] ;
}
if ($mehrfach_Scan_Start_Variable =='1')
{
$VERZ = 'TEMP';
exec("sudo /home/pi/python/scanb1.sh $namensfeld $VERZ $DPI" ,$output, $return_var); // Werteübergabe innerhalb der Klammern
echo "Seite eingescannt";
// echo "$DPI";
}
}
if ($PDF_zusammenfuehren =='1')
{
$VERZ = 'TEMP';
if ( empty($_POST['name']))
{
$namensfeld =date('dmYHis');
}
else
{
$namensfeld = $_POST['name'];
}
$pdf_file = $namensfeld . ".pdf";
exec ("sudo pdfsam-console -d ./$VERZ -o ./DATEN/". $pdf_file ." concat");
exec ("sudo rm -r $VERZ");
echo "Seite zusammengefürt";
}
if ($einfach_Scan_Start_Variable =='1')
{
if ( empty($_POST['name']))
{
$namensfeld =date('dmYHi');
}
else
{
$namensfeld = $_POST['name'];
}
$VERZ = 'DATEN';
exec("sudo /home/pi/python/scanb1.sh $namensfeld $VERZ $DPI" ,$output, $return_var); // Werteübergabe innerhalb der Klammern
echo "Seite eingescannt";
}
?>
<br>
<?php
if($herunterfahren=='1')
{
exec ("sudo /home/python/test/halt.sh") ;
echo "testfff";
}
?>
<p>
<p>
Beschreibung <br>
Bei mehrenen Seiten solange einscannen bis alles drin ist und anschließend Namen vergeben und zusammenfügen.
<br>
Bei einer Seite Namen vergeben einscannen.
<?php
extract($_POST);
extract($_GET);
$verz = "DATEN";
$verz2 = $verz ;
$handle=opendir("$verz");
if ($verz=="")
{
$verz=".";
}
$handle=opendir("$verz2");
echo "<table width='50%' border='1' cellpadding='0' cellspacing='2'> ";
if ($verz2=="")
{
$verz2=".";
}
$counter = 1 ;
while ($file=readdir($handle))
{
if ($file != "." && $file != "..")
{
if($counter == 4)
{
echo "<tr><th><a href=\"$verz/$file\" > $file </a></th>";
$filename = $verz . "/" .$file ;
if (file_exists($filename)) {
echo "<th>Erstellt: " . date ("d m Y H:i. </th></tr>", filemtime($filename));
}
echo " <br>" ;
$counter = 1 ;
}
else
{
echo "<tr><th><a href=\"$verz/$file\" > $file </a></th> ";
$filename = $verz . "/" .$file ;
if (file_exists($filename)) {
echo "<th> Erstellt: " . date ("d m Y H:i.</th></tr>", filemtime($filename));
}
echo " <br>" ;
$counter++;
}
}
}
closedir($handle);
echo "</table>";
?>
<br>
<form action='SCANTEST.php' method='post'>
<input type='hidden' name='herunterfahren' value='1'>
<input type='submit' value='Herunterfahren'>
</form>
</body>
</html>
[/php]
die sh ist :
[code=php]
#!/bin/sh
TMPFILE=$1 #Enthält zukünftigen Speicherort und Dateiname des Scans
VERZ=$2
DPI=$3
scanimage --format tiff --mode color --depth 1 --resolution ${DPI} -x 215mm -y 320mm -p > ${TMPFILE}.tiff #scanimage scannt die Vorlage und speichert sie als Dateiname.pnm,
#scanimage --format tiff --mode gray --depth 8 --resolution 150 -x 15mm -y 80mm -p > test.tiff #die einzelnen Optionen sind von Scanner zu Scanner unterschiedlich (hier Farbscan
#in einer Auflösung von 300dpi)
convert ${TMPFILE}.tiff ${TMPFILE}.jpg
mkdir ${VERZ}
convert -quality 20% ${TMPFILE}.jpg ${VERZ}/${TMPFILE}.pdf
rm -f $TMPFILE.tiff #jetzt muss nur noch die temporäre Datei gelöscht werden
rm -f $TMPFILE.jpg #jetzt muss nur noch die temporäre Datei gelöscht werden
#tiff2pdf -o
[/php]
wurde jetzt gerne noch den vortschrit des Scannen sehen und ein OK bekommen wenn alles vertig ist.
Wie bekomme ich das hin?
ps. wie vermeide ich das die LOG Datei anschwilt wie ein dicker brummer ?
Guten Morgen Forum
@ MarcusFE Danke fur deine Antwort. Das rote "Ding" auf den Bild ist nur eine verländerung der GPIO Leiste auf das Bord zum stecken da sind keine Bauteile drin.
Bei dem test mit dem LCD habe ich nur das LCD betrachtet, ich gehe mal davon aus das ich das LCD konventionell ansteuern kann und den I2C paralel laufen lassen kann. Das wollte ich aber erst testen wenn ich das
LCD wieder zum laufen gebracht habe
Kann es sein das die Massen von 3.3 und 5 Volt nicht verbunden sind so das auf dem LCD kein geschlossener Stromkeis zu stande kommt?
Hallo
dreamshader
Habe das jetzt angepasst aber irgentwie will das nicht.
werde jetzt mal schauen das ich einen anderen T Adapter bekomme nicht das ich da die Probleme habe oder es anderes stecke.
Danke erstmal
Hallo Forumgemeinde,
ich wolte den nächsten schritt machen um zu meinen Ziel zu kommen.
Der schritt währe ein 16x2 in Betrieb zu bekommen.
Jetzt habe ich einen Extender der mich etwas einschrängt bei den GPIO. Ich brauche aber auch I2C um die anderen Funktionen fahren zu können. Zum testen des LCD habe ich mir ein Script runtergeladen:
[code=php]
#!/usr/bin/python
import time
import RPi.GPIO as GPIO
# Zuordnung der GPIO Pins (ggf. anpassen)
LCD_RS = 2
LCD_E = 3
LCD_DATA4 = 4
LCD_DATA5 = 5
LCD_DATA6 = 6
LCD_DATA7 = 7
LCD_WIDTH = 16 # Zeichen je Zeile
LCD_LINE_1 = 0x80 # Adresse der ersten Display Zeile
LCD_LINE_2 = 0xC0 # Adresse der zweiten Display Zeile
LCD_CHR = GPIO.HIGH
LCD_CMD = GPIO.LOW
E_PULSE = 0.0005
E_DELAY = 0.0005
def lcd_send_byte(bits, mode):
# Pins auf LOW setzen
GPIO.output(LCD_RS, mode)
GPIO.output(LCD_DATA4, GPIO.LOW)
GPIO.output(LCD_DATA5, GPIO.LOW)
GPIO.output(LCD_DATA6, GPIO.LOW)
GPIO.output(LCD_DATA7, GPIO.LOW)
if bits & 0x10 == 0x10:
GPIO.output(LCD_DATA4, GPIO.HIGH)
if bits & 0x20 == 0x20:
GPIO.output(LCD_DATA5, GPIO.HIGH)
if bits & 0x40 == 0x40:
GPIO.output(LCD_DATA6, GPIO.HIGH)
if bits & 0x80 == 0x80:
GPIO.output(LCD_DATA7, GPIO.HIGH)
time.sleep(E_DELAY)
GPIO.output(LCD_E, GPIO.HIGH)
time.sleep(E_PULSE)
GPIO.output(LCD_E, GPIO.LOW)
time.sleep(E_DELAY)
GPIO.output(LCD_DATA4, GPIO.LOW)
GPIO.output(LCD_DATA5, GPIO.LOW)
GPIO.output(LCD_DATA6, GPIO.LOW)
GPIO.output(LCD_DATA7, GPIO.LOW)
if bits&0x01==0x01:
GPIO.output(LCD_DATA4, GPIO.HIGH)
if bits&0x02==0x02:
GPIO.output(LCD_DATA5, GPIO.HIGH)
if bits&0x04==0x04:
GPIO.output(LCD_DATA6, GPIO.HIGH)
if bits&0x08==0x08:
GPIO.output(LCD_DATA7, GPIO.HIGH)
time.sleep(E_DELAY)
GPIO.output(LCD_E, GPIO.HIGH)
time.sleep(E_PULSE)
GPIO.output(LCD_E, GPIO.LOW)
time.sleep(E_DELAY)
def display_init():
lcd_send_byte(0x33, LCD_CMD)
lcd_send_byte(0x32, LCD_CMD)
lcd_send_byte(0x28, LCD_CMD)
lcd_send_byte(0x0C, LCD_CMD)
lcd_send_byte(0x06, LCD_CMD)
lcd_send_byte(0x01, LCD_CMD)
def lcd_message(message):
message = message.ljust(LCD_WIDTH," ")
for i in range(LCD_WIDTH):
lcd_send_byte(ord(message[i]),LCD_CHR)
if __name__ == '__main__':
# initialisieren
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(LCD_E, GPIO.OUT)
GPIO.setup(LCD_RS, GPIO.OUT)
GPIO.setup(LCD_DATA4, GPIO.OUT)
GPIO.setup(LCD_DATA5, GPIO.OUT)
GPIO.setup(LCD_DATA6, GPIO.OUT)
GPIO.setup(LCD_DATA7, GPIO.OUT)
display_init()
lcd_send_byte(LCD_LINE_1, LCD_CMD)
lcd_message("Es scheint zu")
lcd_send_byte(LCD_LINE_2, LCD_CMD)
lcd_message("funktionieren :)")
time.sleep(4)
msg1 = "Dies ist ein"
msg2 = "kleiner Test"
for i in range(len(msg1)):
lcd_send_byte(LCD_LINE_1, LCD_CMD)
lcd_message(msg1[:i+1])
lcd_send_byte(LCD_LINE_2, LCD_CMD)
lcd_message("")
time.sleep(0.1)
for i in range(len(msg2)):
lcd_send_byte(LCD_LINE_1, LCD_CMD)
lcd_message(msg1)
lcd_send_byte(LCD_LINE_2, LCD_CMD)
lcd_message(msg2[:i+1])
time.sleep(0.1)
time.sleep(4)
GPIO.cleanup()
[/php]
Das problem bei der Sache ist das wenn ich es so einrichte einen Fehler bekomme :
test_LCD.py:76: RuntimeWarning: A physical pull up resistor is fitted on this channel!
GPIO.setup(LCD_E, GPIO.OUT)
test_LCD.py:77: RuntimeWarning: A physical pull up resistor is fitted on this channel!
GPIO.setup(LCD_RS, GPIO.OUT)
in einen anderen Beitrag habe ich gelesen das es nicht mit gleichzeitigen aktiven i2C bus geht.
was kann ich da machen?
der Bus selber ist auf anderen Pins SCL und SDA, aus diesem Grunde verstehe ich die Meldung nicht.
bedanke mich
Hallo
@ dbv
hast du das schon mal gemacht mit Python und twain scanner?
Ich knobel noch an der Sh Möglichkeit. Ist es möglich eine Variable in den os,popen zu übergeben? z.b. so ?
datei = (time.strftime("%d%m%Y%H%M%S"))
print (datei)
print ("TASTE 5+4 ")
f=os.popen ("scanimage --format tiff --mode gray --depth 1 --resolution 200 -x 21mm -y 32mm -p > , datei ,.tiff ")
Der Sinn der Sache währe das ich dern Datenentnahmen so anpassen kann später wollte ich so auch noch das Verzeichnis anpassen. Was ich vermeiden wollte ist das ganze als Zeichenkette zu zerlegen und dann zusammenzubasteln. Da kann ich mir vorstellen das das schon ziemlich unübersichtlich wird.
Bedanke mich.
Hallo
Das mit dem verketteten werde ich versuchen && meine ich danke.
Das um Englisch nicht drum herum kommen werde ist ok.
Hallo
Gibt es da auch eine Deutsche beschreibung?
Hallo Geleinde.
habe im moment keine Idee wie ich das umsetzten soll ich möchte einen Scanner über externe Tasten betreiben Tasten gehen alles gut.
wollte den Befehl den ich nutzten wollte über f=popen ausfführen.
jetzt habe ich das Per webseiten HMI schon lange am laufen und nutzen das auch da schaut das so aus :
#!/bin/sh
TMPFILE=$1 #Enthält zukünftigen Speicherort und Dateiname des Scans
VERZ=$2
DPI=$3
scanimage --format tiff --mode gray --depth 1 --resolution ${DPI} -x 215mm -y 320mm -p > ${TMPFILE}.tiff #scanimage scannt die Vorlage und speichert sie als Dateina$
#scanimage --format tiff --mode gray --depth 1 --resolution ${DPI} -x 15mm -y 80mm -p > ${TMPFILE}.tiff $
#in einer Auflösung von 300dpi)
convert ${TMPFILE}.tiff ${TMPFILE}.jpg
mkdir ${VERZ}
convert -quality 20% ${TMPFILE}.jpg ${VERZ}/${TMPFILE}.pdf
rm -f $TMPFILE.tiff #jetzt muss nur noch die temporäre Datei gelöscht werden
rm -f $TMPFILE.jpg #jetzt muss nur noch die temporäre Datei gelöscht werden
#tiff2pdf -o
Alles anzeigen
wie bekomme ich das in python hin das die Befehle sereell abgearbeitet werden das die neue Zeile erst dann startet wenn die vorherige Zeite vertig ist ?
Oder ist da was anders möglich ?
mein jetztiger test =
[code=php]import smbus , time
import os
bus = smbus.SMBus (1)
adresse = 0x20 # I2C Adresse des MCP23017
TEMP = 0
def get(register):
read = bus.read_byte_data (adresse ,register)
return read
def set(register , daten
write = bus.write_byte_data (adresse , register , daten )
return
set (0x00 ,0x20)
while True:
datei = (time.strftime("%d%m%Y%H%M%S"))
# print (datei)
state = get(0x12)
print (state)
if (state == 0x08) and (not TEMP == 1): #DEZimal 0 Taste 1
set (0x14 ,0x01)
print ("TASTE 1")
print ("LOAD 1")
f=os.popen("mpc clear")
f=os.popen("mpc load 1.m3u")
f=os.popen("mpc play")
TEMP = 1
print (TEMP)
if (state == 0x20) and (not TEMP ==1) : #DEZIMAL 32 Taste 2
set (0x14 ,0x01)
print ("TASTE 2")
print ("LOAD 2")
f=os.popen ("mpc clear")
f=os.popen ("mpc load 2.m3u")
f=os.popen("mpc play")
TEMP = 1
if (state == 0x40) and (not TEMP == 1): #DEZIMAL 64 Taste 3
set (0x14 ,0x01)
print ("TASTE 3")
print ("LOAD 3")
f=os.popen ("mpc clear")
f=os.popen ("mpc load 3.m3u")
f=os.popen ("mpc play")
TEMP = 1
if (state == 0x80) and (not TEMP == 1 #DEZIMAL 128 Taste 4
print ("LOAD 4")
print ("TASTE 4")
f=os.popen ("mpc clear")
f=os.popen ("mpc load 4.m3u")
f=os.popen ("mpc play")
TEMP = 1
if (state == 0x10) and (not TEMP == 1 ) : #DEZIMAL 16 Taste 5
print ("TASTE 5")
f=os.popen ("mpc stop")
TEMP = 1
if (state == 0x90) : #DEZIMAL 144 Taste 5+4
print (datei)
print ("TASTE 5+4 ")
# f=os.popen ("scanimage --format pnm --mode Color --depth 8 --resolution 300 -l 0 -t 0 -x 215mm -y 280mm --lampoff-time 300 > test.tiff")
# f=os.popen ("convert test.tiff test.jpg")
# f=os.popen ("convert -quality 20% test.jpg ../DATEN/test.pdf")
f=os.popen ("sudo /home/pi/test/scanb1.sh DATEN test")
f=os.popen ("scanimage --format tiff --mode gray --depth 1 --resolution 200 -x 215mm -y 320mm -p > test.tiff")
f=os.popen ("convert test.tiff test.jpg")
TEMP = 1
time.sleep (1)
set (0x14 ,0x00)
if state == 0x00 :
TEMP = 0
[/php]
für einen tip wäre ich immer offen
Soweit so gut aber der Drucker wird nicht treibermäßig unterstützt und bei Samsung bekomme ich keinen ARM treiber
Samsung CLP 360
Jetzt bekomme ich die Meldung Status gestoppt kann abernicht neu starten und nichts :(((
p.s. der drucker ist über netzwerk angebunden
Hallo Gemeinde
habemal ne Frage die Forum suche hat mir nur bedingt weitergeholfen
Ich wollte einen Drucker der über netzwerk mit den Lan verbunden ist mit den Pi nutzen.
Andersherrum finde ich anleitungen Ni macht drucker ins netzwerk aber wie geht das das der Pi auf einen Netzwerkdrucker drucken kann.
Hallo
Werde ich mir zur Herzen nehmen.
Supi Danke
Hallo meigrafd
ich weiß jetzt nicht was du meinst mit unüberischtlich. WAS das auslesecript angeht das habe ich übernommen und da war noch nie ein Kommentar dabei.
Die Funktion dieses teiles habe ich nur übernommen und die ausgabe angepasst.
Was den HTML Teil angeht den habe ich in das Script integriert damit ich die passende Ausgabe bekomme.
Aus CSS habe ich bewußt verzichtet weil es eine einfache seite sein soll.
[code=php] <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Scannen der Dokumente</title>
<meta name="author" content="sam">
<meta name="editor" content="html-editor phase 5">
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<!//Sektion für mehrere Seiten einscannen>
<p>Mehrere Seiten Scannen
<p><form action='SCANTEST.php' method='post'>
<p>
<input id="aufloesung" name="aufloesung" maxlength="15">
<label for="aufloesung">Aufloesung 150DPI Default</label>
<p>
<button type="submit" name='scanM' value="1">Scan Start</button>
<p>
<input id="name" name="name" maxlength="15">
<label for="name">Name</label>
<p>
<button type="submit" name='einePDF' value="1">PDF Zusammenfuehren</button>
</form>
<p>
<p>Eine Seite Scannen
<form action='SCANTEST.php' method='post'>
<!//Name der Datei die als Ausgabe auf die Festplatte geschrieben werden soll>
<input id="name" name="name" maxlength="15">
<label for="name">Name</label>
<p>
<button type="submit" name='scan' value="1">Scan Start</button>
</form>
<p>
<?php
//Debugging TEIL
//Ausgabe aller Post auf den echo
//echo "<pre>"; var_dump($_POST); echo "</pre>";
//Debugging TEIL
$mehrfach_Scan_Start_Variable = $_POST['scanM'] ;
$einfach_Scan_Start_Variable = $_POST['scan'] ;
$PDF_zusammenfuehren = $_POST['einePDF'] ;
$herunterfahren = $_POST['herunterfahren'] ;
// es wird gepüft ob die Eingabefelder lehr sind wenn diese lehr sind werde sie mit vorgaben gefüllt
if ($mehrfach_Scan_Start_Variable =='1' OR ($einfach_Scan_Start_Variable =='1'))
{
if ( empty($_POST['name']))
{
$namensfeld =date('dmYHis');
}
else
{
$namensfeld = $_POST['name'];
}
if ( empty($_POST['aufloesung']))
{
$DPI = '150';
}
else
{
$DPI = $_POST['aufloesung'] ;
}
if ($mehrfach_Scan_Start_Variable =='1')
{
$VERZ = 'TEMP';
exec("sudo /home/pi/test/scanb1.sh $namensfeld $VERZ $DPI" ,$output, $return_var); // Werteübergabe innerhalb der Klammern
echo "OK";
echo "$DPI";
}
}
if ($PDF_zusammenfuehren =='1')
{
$VERZ = 'TEMP';
if ( empty($_POST['name']))
{
$namensfeld =date('dmYHis');
}
else
{
$namensfeld = $_POST['name'];
}
$pdf_file = $namensfeld . ".pdf";
exec ("sudo pdfsam-console -d ./$VERZ -o ./DATEN/". $pdf_file ." concat");
exec ("sudo rm -r $VERZ");
}
if ($new =='1')
{
if ( empty($_POST['name']))
{
$namensfeld =date('dmYHi');
}
else
{
$namensfeld = $_POST['name'];
}
$VERZ = 'DATEN';
exec("sudo /home/pi/test/scanb1.sh $namensfeld $VERZ" ,$output, $return_var); // Werteübergabe innerhalb der Klammern
echo "OK";
}
?>
<br>
<?php
if($herunterfahren=='1')
{
exec ("sudo /home/pi/test/halt.sh") ;
echo "testfff";
}
?>
Beschreibung <br>
Bei mehrenen Seiten solange einscannen bis alles drin ist und anschließend Namen vergeben und zusammenfügen.
<br>
Bei einer Seite Namen vergeben einscannen.
<?php
extract($_POST);
extract($_GET);
$verz = "DATEN";
$verz2 = $verz ;
$handle=opendir("$verz");
if ($verz=="")
{
$verz=".";
}
$handle=opendir("$verz2");
echo "<table width='50%' border='1' cellpadding='0' cellspacing='2'> ";
if ($verz2=="")
{
$verz2=".";
}
$counter = 1 ;
while ($file=readdir($handle))
{
if ($file != "." && $file != "..")
{
if($counter == 4)
{
echo "<tr><th><a href=\"$verz/$file\" > $file </a></th>";
$filename = $verz . "/" .$file ;
if (file_exists($filename)) {
echo "<th>Erstellt: " . date ("d m Y H:i. </th></tr>", filemtime($filename));
}
echo " <br>" ;
$counter = 1 ;
}
else
{
echo "<tr><th><a href=\"$verz/$file\" > $file </a></th> ";
$filename = $verz . "/" .$file ;
if (file_exists($filename)) {
echo "<th> Erstellt: " . date ("d m Y H:i.</th></tr>", filemtime($filename));
}
echo " <br>" ;
$counter++;
}
}
}
closedir($handle);
echo "</table>";
?>
<br>
<form action='SCANTEST.php' method='post'>
<input type='hidden' name='herunterfahren' value='1'>
<input type='submit' value='Herunterfahren'>
</form>
</body>
</html>[/php]
Was ich noch erreichen möchte ist die eingescannten Daten die in der Tabelle unten angezeit werden zu Sortieren. Das problem ist das ich das script nicht SELBER geschrieben habe und dann im moment nicht weiß wie ich das angehe sollte das nicht machbar sein ist das auch ok und der Beitrag ist erledig.