ich bräuchte etwas Hilfe bei einem kleinen Problem mit dem Modul zbar.
Ich habe eine Applikation indem man Daten in ein Formular eingibt und sie dann in eine Datenbank speichert. Nun gibt es Daten, welche aus vielen Zahlen bzw. Zahlen/Buchstabenkombis bestehen und es bei der manuellen Eingabe zu Verwechslungen kommt. Um dies zu vermeiden möchte ich gern diese Daten über einen Strichcode bzw. QR-Code einlesen lassen. Ich habe im Netz das Modul zbar gefunden und damit etwas herum experimentiert.
Mein System: Windows 7 32bit, Python 2.7.10, zbar 0.1
Dabei habe ich im Netz diesen code gefunden:
Code: Alles auswählen
import zbar
class QRCode():
data = None
proc = None
scanner = None
def qr_handler(self,proc,image,closure):
# extract results
for symbol in image:
if not symbol.count:
#self.data = symbol.data
self.data = symbol.data
self.data_type = 'text'
callback(symbol.data)
def __init__(self):
self.proc = zbar.Processor()
self.scanner = zbar.ImageScanner()
self.scanner.parse_config('enable')
self.proc.init("/dev/video0")
self.proc.set_data_handler(self.qr_handler)
self.proc.visible = True
#display cam window if True, hide if False
self.proc.active = True
def get_data(self):
#self.proc.process_one()
self.proc.user_wait()
self.proc.visible = False
return(self.data)
Code: Alles auswählen
import test_qr
from test_qr import QRCode
def ScanTarget1(self):
data = QRCode().get_data()
print data
def ScanTarget2(self):
data = QRCode().get_data()
print data
Code: Alles auswählen
File "E:\Projekte\cms\Projektdateien\CMS.py", line 1942, in ScanTarget2
data = QRCode().get_data()
File "E:\Projekte\cms\Projektdateien\test_qr.py", line 24, in __init__
self.proc.init("/dev/video0")
zbar.InvalidRequestError: ERROR: zbar processor in _zbar_video_open():
invalid request: failed to connect to camera '/dev/video0'
2. Wie kann ich realisieren dass die Kamera nach dem ersten Aufruf aktiviert bleibt und permanent scant und auf einen code wartet? Gleiche Funktion wie im mitgelieferten zbarcam.exe Programm. Ich müßte dann nur die Daten in meine Applikation bringen.
Für eure Hilfe und Gedankenanstöße wäre ich dankbar!