Shell und Programmeingaben

Spezielle Fragen zu 2D- und 3D-Grafik, Sound und Video
Antworten
EUP
Foriker
Beiträge: 63
Registriert: So 4. Aug 2013, 09:11
Kontaktdaten:

Shell und Programmeingaben

Beitrag von EUP » Mo 17. Feb 2014, 12:18

Hallo,

vielleicht hat ja jemand eine Idee....

Gambas 3.5.2

Was versuche ich?

Mein Programm soll den Scanner steuern, dazu nutze ich via Shell scanimage. - Klappt soweit prima.


Was klappt nicht?

Nun soll solange gescannt werden, bis der Nutzer abbricht.

Der String dummy enthält die Befehlszeile

Bei

Shell dummy wait

wartet er bis der Befehl abgeschlossen ist, es werden keine Eingaben angenommen.

Also habe ich versucht

Prozess = Shell dummy

While Proz.State = Process.Running
Wait
Wend

Das fluppt aber genauso wenig, es werden keine Eingaben angenommen.

Wie kann ich den Scan-Prozess starten, den Ablauf abfragen (die Weiterverarbeitung kann natürlich erst starten wenn dieser fertig ist) und eine Eingabe (Button-Klick) entgegennehmen ?

Vielen Dank für Erleuchtendes

Benutzeravatar
gambi
Moderator
Beiträge: 249
Registriert: Mi 8. Mai 2013, 21:46
Kontaktdaten:

Re: Shell und Programmeingaben

Beitrag von gambi » Mo 17. Feb 2014, 12:56

Hallo,
schau dir mal dazu die Seiten zum Prozessmanagement im gambas-buch an: http://www.gambas-buch.de/dw/doku.php?id=k21:start

Zumindest geht daraus schon einmal hervor, dass du Prozess = Shell dummy For Read Write As "myProzess" benutzen musst, um Eingaben an den Prozess zu geben. Darüber hinaus ist die Vergabe eines Prozessidentifiers notwendig, wenn du den Prozess verfolgen willst.

Viel Erfolg
gambi

EUP
Foriker
Beiträge: 63
Registriert: So 4. Aug 2013, 09:11
Kontaktdaten:

Re: Shell und Programmeingaben

Beitrag von EUP » Di 18. Feb 2014, 11:36

Yuuuup,

that's it.

Vielen Dank für die Erleuchtung....

gambasso
Foriker
Beiträge: 849
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Shell und Programmeingaben

Beitrag von gambasso » Di 18. Feb 2014, 14:48

@ EUP:
Kannst Du bitte Deinen Quellcode zum Scannen mal hier hochladen?
Grund: Habe neuen PC, damt läuft das Scannen nicht, aus welchen Grund auch immer.

Mit alten PC und gleicher SW klappt es merkwürdigerweise. Evtl. kann ich daraus Rückschlüsse ziehen.

Danke schön.

EUP
Foriker
Beiträge: 63
Registriert: So 4. Aug 2013, 09:11
Kontaktdaten:

Re: Shell und Programmeingaben

Beitrag von EUP » Di 18. Feb 2014, 22:11

Hallo,

ja klar, ich glaube aber nicht, dass Dir damit geholfen ist. Der Code scannt nicht, es wird der Befehl scanimage angesprochen.

Code: Alles auswählen

Public Sub btnStartScan_Click()

  pnScan.Visible = True
  Wait
 
  If Left$(cbArt.Text, 1) = "1" Then
    FScanBeenden.Show
    Wait
  Endif
 
  Scannen
 
End

Public Sub Scannen()
  Dim Proz As Process
  Dim NurTeil As Boolean
  Dim dummy, Ziel, ZielJ As String
 
  If txTop.Text = "-1" Or txLeft.Text = "-1" Or txWidth.Text = "-1" Or txHeight.Text = "-1" Then
    NurTeil = False
  Else
    txWidth.Text = Str(PixelToMillimeter(Val(txWidth.Text)))
    txHeight.Text = Str(PixelToMillimeter(Val(txHeight.Text)))
    NurTeil = True
  Endif
 
 
  If Left$(cbArt.Text, 1) = "2" Then
    chkAbbruch.Value = True
  Endif
   
  dummy = "scanimage --mode "
  If cbMode.Text = "Gray" Then
    dummy = dummy & Chr$(34) & "gray" & Chr$(34)
  Else
    dummy = dummy & Chr(34) & "color" & Chr(34)
  Endif
   
  Ziel = Mod1.DirWkTmp &/ "sc.tif"
  ZielJ = Mod1.DirWkTmp &/ "sc.jpeg"
  Mod1.DateiLoeschenWennDa(Ziel)
  Mod1.DateiLoeschenWennDa(ZielJ)
 
  If NurTeil = False Then
    dummy = dummy & " --dept " & cbTiefe.Text & " --resolution " & cbDPI.text & " > " & Ziel
  Else
    dummy = dummy & " --dept " & cbTiefe.Text & " --resolution " & cbDPI.text & " -t " & txTop.Text & " -l " & txLeft.Text & " -x " & txWidth.Text & " -y " & txHeight.Text & " > " & Ziel
  Endif

  Proz = Shell dummy As "ScanProz" 
 
End


Public Sub ScanProz_Kill()
  Dim dummy, Ziel, ZielJ As String
   
  Ziel = Mod1.DirWkTmp &/ "sc.tif"
  ZielJ = Mod1.DirWkTmp &/ "sc.jpeg"
   
  dummy = "convert " & Ziel & " " & ZielJ
  Shell dummy Wait
   
  Wait
   
  pbErgebnis.Picture = Picture.Load(ZielJ)
  Wait
 
  If chkAbbruch.Value = False Then
    Scannen
  Else
    lblEnde.Visible = False
  Endif
 
End


gambasso
Foriker
Beiträge: 849
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Shell und Programmeingaben

Beitrag von gambasso » Mi 19. Feb 2014, 10:31

moin,

danke schön, aber es fehlt was. Das prg. meckert bei 'pnScan.Visible = True'

Deshalb nochmal meine Frage, kannst Du nicht mal das komplette Objekt hochladen?
Mit "> Projekt > Erstellen > Quellarchiv" wird alles in einem Archiv gepackt. Dieses könntest Du dann hier hochladen.

Wäre nett von Dir.

EUP
Foriker
Beiträge: 63
Registriert: So 4. Aug 2013, 09:11
Kontaktdaten:

Re: Shell und Programmeingaben

Beitrag von EUP » Mi 19. Feb 2014, 23:08

Hallo,

wieder einen Spätdienst gekillt....

Das Projekt findet sich unter

http://www16.zippyshare.com/v/9955183/file.html

Viel Spass wirst Du damit aber noch nicht haben, ich arbeite erst seit knapp 14 Tagen daran.

Um es zu nutzen benötigst Du die Programme covert und tesseact. Den Demo-Befehl kannst Du nicht nutzen, da er bestimmte Daten an einem bestimmten Ort voraussetzt.

Die Scan-Funktion scannt momentan noch ins Leere, die Dateiablage an die vorgesehenen Orte ist einfach noch nicht drin.

Wenn es einmal fertig ist, soll es eine OCR-Lösung werden, die Frontends die mir bis Dato in die Finger fielen waren mir nicht genehm.

Grüße

gambasso
Foriker
Beiträge: 849
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Shell und Programmeingaben

Beitrag von gambasso » Do 20. Feb 2014, 10:19

moin,

habe es mir geholt, (kanst auch in diesem Forum was hochladen), aber da geht ja momentan bei mir noch nichts mit, ausser Fehlermeldungen.

Auch den Code kann ich nur schwer nachvollziehen.

was ist das?
die Programme covert und tesseact

da sagt mir nichts.
Hast Du ein paar Erläuterungen dazu?

EUP
Foriker
Beiträge: 63
Registriert: So 4. Aug 2013, 09:11
Kontaktdaten:

Re: Shell und Programmeingaben

Beitrag von EUP » Do 20. Feb 2014, 11:53

Hallo,

das sind beides Konsolenprogramme...

convert
Konvertiert hauptsächlich Grafikdateien von einem Format in ein anderes.

tesseract
OCR-Lösung - Versucht in einer Grafik die Textlelemente zu erkennen und auszugeben.

Beider Sachen waren bei mir bereits vorhanden, brauchten also nicht nachinstalliert zu werden.

Wo meckert er denn, hier läuft es soweit butterweich.

gambasso
Foriker
Beiträge: 849
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Shell und Programmeingaben

Beitrag von gambasso » Do 20. Feb 2014, 14:32

Hallo,

er meckert mehrmals, nach dem Anklicken eines Bildes # > Divsion durch Null
Scannvorgang starten & Vorschau # > unable to load picture

Dann geht natürlich nichts mehr, schade.

EUP
Foriker
Beiträge: 63
Registriert: So 4. Aug 2013, 09:11
Kontaktdaten:

Re: Shell und Programmeingaben

Beitrag von EUP » Do 20. Feb 2014, 22:12

Hallo,

lassen wir zunächst einmal das Bilder einladen beiseite....

Beim Vorschauscan werden die beiden externen Programme scanimage und convert via shell angesprochen.

Die müssen natürlich auch da sein, sonst gibt es kein Bild und somit kann auch keins eingeladen werden.

Sicherungen sind einfach noch nicht drin, deshalb merkt das Programm noch nicht wenn etwas auf dem Wege schief geht.

Ich bin nun wirklich kein Linux-Guru, aber probiere doch mal aus ab Du die Programme überhaupt installiert hast.

Öffne eine Konsole und gib in

scanimage --help

Bekommst Du die Hilfe angezeigt oder bekommst Du die Fehlermeldung Befehl nicht gefinden?

Danach bitte

convert --help

Bekommst Du die Hilfe angezeigt oder bekommst Du die Fehlermeldung Befehl nicht gefinden?

Wenn nur bei einem der Programme der Hinweis auf das Nichvorhandensein erscheint, dann kann da nichts kommen, die Programme müssen nachinstalliert werden.

Bitte einmal Checken, ist natürlich auch für mich Interessant.

Danke

gambasso
Foriker
Beiträge: 849
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Shell und Programmeingaben

Beitrag von gambasso » Fr 21. Feb 2014, 08:26

moin,

die Hilfen zu 'scanimage' und 'convert' kommen, also sind die Programme installiert.

EUP
Foriker
Beiträge: 63
Registriert: So 4. Aug 2013, 09:11
Kontaktdaten:

Re: Shell und Programmeingaben

Beitrag von EUP » Fr 21. Feb 2014, 09:01

Moment...

Scannt er denn überhaupt ?

Wenn nicht - kein Scan = kein Bild = Fehler

Teste doch bitte einmal in der Konsole

scanimage >/tmp/blabla.jpeg

Wenn da nichts kommen sollte, teste mal

scanimage --l

Ist mein Scanner ausgeschaltet bekomme ich die Meldung : No scanners were identified.
Ist er an, bekomme ich Infos über den Scanner : device `epkowa:interpreter:001:008' is a Epson Perfection V37 flatbed scanner

Wenn es ein USB-Scanner seien sollte, kannst Du ja mal mit 'lsusb' überprüfen, ob er überhaupt erkannt wird.

gambasso
Foriker
Beiträge: 849
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Shell und Programmeingaben

Beitrag von gambasso » Fr 21. Feb 2014, 16:28

moin,

Code: Alles auswählen

scanimage >/tmp/blabla.jpeg
scanimage: rounded value of br-x from 215.9 to 215.88
scanimage: rounded value of br-y from 355.6 to 355.567

ja er scannt mit dem Befehl oben, den Befehl kannte ich nicht. Ist mal interessant, wenn ich mein Board wieder da habe, ob er damit scannt.

Code: Alles auswählen

scanimage --l
device `brother3:bus3;dev3' is a Brother DCP-195C USB scanner

Und wie könnte ich jetzt weiter kommen?

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast