Hallo,
Ich habe ein Pythonprog mit Eclipse geschrieben, läuft auch wunderbar,
bloß manchmal springt das Prog in Zeilen rein wo es nie rein springen darf.
Das heißt ich habe z.B. ein iF ABFRAGE dürfte nur in einem bestimmten
Fall was ausführen aber manchmal macht das Prog genau das Gegenteil.
Liegt es vielleicht daran das ich die Zeilen nicht genau genug eingerückt
habe(das ein Leerzeichen oder so)?
Was ich noch dazu sagen muss ist, das Programm mit py2exe gepackt
und vielleicht es es py2exe was empfindlich reagiert.
Ansonsten bin ich wirklich ratlos und brauch unbedingt Euren Rat.
stockie
Seltsames Phänomen
sry, is etwas offtopic, aber das gleiche hatte ich schon einmal bei php.
damals habe ich keine lösung gefunden...aber ich hoffe, dass ich python in eine andere schublad stecken kann.
damals habe ich keine lösung gefunden...aber ich hoffe, dass ich python in eine andere schublad stecken kann.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi stockie!Uwe Stockemer hat geschrieben:bloß manchmal springt das Prog in Zeilen rein wo es nie rein springen darf.
Python springt nicht ohne Grund irgendwo rein ohne das es vom Programmierer so programmiert wurde. Lass dein Programm mit einem Debugger genau dann stehen bleiben, wenn es nicht das tut, was du von ihm willst. Prüfe dann die Variablen. Vergleiche diese noch einmal mit einer if-Anweisung...
Um solchen Fehlern auf die Spur zu kommen, führt man das Programm Schritt für Schritt aus und beobachtet, was es in welchem Fall macht. Man kann sich mit "print" anzeigen lassen, ob es in eine Schleife eingetreten ist und ob eine if-Anweisung die richtige Auswirkung hat. Du kannst mit "assert" prüfen. Z.B. ob eine if-Anweisung auch wirklich zwei gleiche Datentypen miteinander vergleicht oder nicht. -- Was in solchen Fällen wahrscheinlich der größte Fehlerfaktor ist.
Debugge dein Programm.
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
-
- User
- Beiträge: 13
- Registriert: Freitag 3. Februar 2006, 12:48
Da ich ständig die serielle Schnittstelle auslese mit
pyserial und über die konsole print das Ergebnis ausgebe.
Habe ich den Verdacht das die Anwendung aufbläht und dann wahrscheinlich nicht mehr richtig läuft.
Könnte das sein?
pyserial und über die konsole print das Ergebnis ausgebe.
Habe ich den Verdacht das die Anwendung aufbläht und dann wahrscheinlich nicht mehr richtig läuft.
Könnte das sein?
Könnte sein. Wahrscheinlicher ist jedoch, dass sich in jenen Moment ein Hacker in deinen Rechner hackt und das Programm falsche Daten erzeugen läßt.Uwe Stockemer hat geschrieben:Könnte das sein?
Mit anderen Worten: Nein, wohl nicht.
Und ohne Code können wir dir nicht helfen. Du rufst ja auch nicht in einer Autowerkstatt an und sagt: "Mein Auto geht nicht. Woran liegt das?"
Zuletzt geändert von Joghurt am Montag 19. Juni 2006, 13:01, insgesamt 1-mal geändert.
-
- User
- Beiträge: 13
- Registriert: Freitag 3. Februar 2006, 12:48
//Scannklasse
import serial
import threading
import sys
import string
from ScanProzess import Scan_Prozess
import os
import ConfigParser
import time
from qt import *
from printing import Print
from data import data_class
from Errorhandling import Error_handle
class Scanning(threading.Thread):
item=""
Filesize=0
x=0
running=True
Adr_Reader_1=""
Adr_Reader_2=""
Adr_Reader_3=""
Reader_1=""
Reader_2=""
Reader_3=""
def __init__(self):
self.data=data_class("Warehouse/warehouse/")
self.execute_flag=True
threading.Thread.__init__(self)
#Read the Interfacesettings from ini-File "lvs.ini"
self.config = ConfigParser.ConfigParser()
file = open("data/lvs.ini",'r')
self.config.readfp(file)
file.close()
self.Print_Time=self.config.get('PrintMovement','Time')
self.O_print=Print()
self.Error=Error_handle()
self.Adr_Reader_1=self.config.get('Readerconfig','reader_Adr1')
self.Adr_Reader_2=self.config.get('Readerconfig','reader_Adr2')
self.Adr_Reader_3=self.config.get('Readerconfig','reader_Adr3')
self.Reader_1=self.config.get('Readerconfig','reader1')
self.Reader_2=self.config.get('Readerconfig','reader2')
self.Reader_3=self.config.get('Readerconfig','reader3')
if self.config.get('Interface', 'Databits')=="6":
bsize=serial.SIXBITS
elif self.config.get('Interface', 'Databits')=="8":
bsize=serial.EIGHTBITS
elif self.config.get('Interface', 'Databits')=="5":
bsize=serial.FIVEBITS
elif self.config.get('Interface', 'Databits')=="7":
bsize=serial.SEVENBITS
if self.config.get('Interface', 'Parity')=="Even":
bparity=serial.PARITY_EVEN
elif self.config.get('Interface', 'Parity')=="Odd":
bparity=serial.PARITY_ODD
elif self.config.get('Interface', 'Parity')=="None":
bparity=serial.PARITY_NONE
if self.config.get('Interface', 'Stopbits')=="1":
bstopbits=serial.STOPBITS_ONE
elif self.config.get('Interface', 'Stopbits')=="2":
bstopbits=serial.STOPBITS_TWO
if self.config.get('Interface', 'Flowcontrol')=="Xon/Xoff":
bflowcontrol=0
elif self.config.get('Interface', 'Flowcontrol')=="Hardware":
bflowcontrol=1
elif self.config.get('Interface', 'Flowcontrol')=="None":
bflowcontrol=2
self.threadport=threading.Event()
self.serial=serial.Serial(
port=int(self.config.get('Interface', 'Port')),
baudrate=int(self.config.get('Interface', 'Baudrate')),
bytesize=bsize,
parity=bparity,
stopbits=bstopbits,
timeout=1,
xonxoff=bflowcontrol,
rtscts=0
)
#Create the Objects
self.scanner1=Scan_Prozess()
self.scanner2=Scan_Prozess()
self.scanner3=Scan_Prozess()
#write String to serial Interface
def write(self,value):
self.serial.write(value)
#Start the Thread
def scanStart(self):
self.threadport.set()
#Stop the Thread
def scanStop(self):
self.running=False
self.threadport.set()
self.canceled = True
#Read String from Buffer and call the Function "action" from Object Scan_Prozess()
#Parallel print a Report Movement out
def run(self):
try:
while self.running==True:
text = self.serial.read(1)
print ""
print "serial read"
print ""
if text:
n = self.serial.inWaiting()
if n >0:
text =text + self.serial.read(n)
self.laengestr=len(text)
self.item=self.item+text
if ord(text[self.laengestr-1:self.laengestr])==3:
print self.item[6:len(self.item)-1]
self.scanner=self.item[1:5]
if self.scanner==self.Adr_Reader_1 and self.Reader_1=="1":
self.scanner1.action(self.item[6:len(self.item)-1],"1")
elif self.scanner==self.Adr_Reader_2 and self.Reader_2=="1":
self.scanner2.action(self.item[6:len(self.item)-1],"2")
elif self.scanner==self.Adr_Reader_3 and self.Reader_3=="1":
self.scanner3.action(self.item[6:len(self.item)-1],"3")
self.item=""
else:
if ord(self.item[0:1])==1 and ord(self.item[5:6])==2:
print self.item[6:len(self.item)]
self.scanner=self.item[1:5]
if self.scanner==self.Adr_Reader_1 and self.Reader_1=="1":
self.scanner1.action(self.item[6:len(self.item)],"1")
elif self.scanner==self.Adr_Reader_2 and self.Reader_2=="1":
self.scanner2.action(self.item[6:len(self.item)],"2")
elif self.scanner==self.Adr_Reader_3 and self.Reader_3=="1":
self.scanner3.action(self.item[6:len(self.item)],"3")
self.item=""
self.serial.flushInput()
print "flush Buffer"
else:
hour=time.localtime()[3]
min=time.localtime()[4]
if (hour==int(self.Print_Time[0:2]) and min==int(self.Print_Time[3:5]) and self.execute_flag==True):
self.execute_flag=False
self.O_print.titel="Overview Movement"
self.sql="select prod_ort_ID,r3nr,index_Nr,package_ID,palette_ID,einlagerdat,auslagerdat,menge,fauf,ieebatch,datum,stellplatz from protokoll where r3nr<>0 "
self.headerlist=('','R3-Nr.','','','','Incomingdat.','Outgoingdat.','Quantity','Fauf','IEE-Batch','Date','Storelocation')
sql_list=self.data.Erg_Liste(self.sql)
self.Pri_Col_width=(20,60,20,10,20,160,160,60,60,80,200,60)
self.O_print.Ue_ergebnis=sql_list
self.O_print.Ue_Headerlist=self.headerlist
self.O_print.print_Mat_overview("",self.Pri_Col_width,True,"",0)
self.data.SQL_Execute("delete from protokoll")
elif (hour==int(self.Print_Time[0:2]) and min == int(self.Print_Time[3:5])+1) and self.execute_flag==False:
self.execute_flag=True
self.closePort()
except:
self.Error.Errorbox("Error in Func run",True)
////Die Methode Action ich hoffe Ihr kommt klar
def action(self,scancode,scanner):
try:
if scanner=="1":
self.Temp_Tab="temp_stellpl"
elif scanner=="2":
self.Temp_Tab="temp_stellpl_2"
elif scanner=="3":
self.Temp_Tab="temp_stellpl_3"
self.scan_text=scancode
if len(self.scan_text)==8:
if self.Regalpl_1=="":
self.Regalpl_1=self.scan_text[0:2]
self.Spaltepl_1=self.scan_text[3:5]
self.Zeilenpl_1=self.scan_text[6:8]
else:
self.Regalpl_2=self.scan_text[0:2]
self.Spaltepl_2=self.scan_text[3:5]
self.Zeilenpl_2=self.scan_text[6:8]
if self.Regalpl_1==self.Regalpl_2 and self.Spaltepl_1==self.Spaltepl_2 and self.Zeilenpl_1==self.Zeilenpl_2:
self.sql="Select * from regal where regalnr="+str(int(self.Regalpl_2))+" and lagerplatz_ID="+str(int(self.Spaltepl_2))+" and regalzeilen_ID="+str(int(self.Zeilenpl_2))
self.regal_ID_pup=self.data.Erg_Field(self.sql,0)
if self.regal_ID_pup<>"":
if self.Prod_ID<>"69" or not self.Prod_ID<>"20":
self.Datawrite_delete(True,self.regal_ID_pup)
else:
self.Error.Errorbox("Stellplatz ist noch nicht angelegt",False)
self.data.SQL_Execute("delete from "+self.Temp_Tab)
else:
self.Error.Errorbox("Falscher Stellplatz gescannt "+self.Regalpl_1+"-"+self.Spaltepl_1+"-"+self.Zeilenpl_1+" ",False)
self.data.SQL_Execute("delete from "+self.Temp_Tab)
self.Prod_Art=0
self.Prod_ID=""
self.Box_Nr.clear()
self.Regalpl_1=""
self.Spaltepl_1=""
self.Zeilenpl_1=""
else:
if self.Regalpl_1 <> "":
self.Prod_ID=self.scan_text[0:2]
else:
self.Prod_ID=""
self.anz_temp_tab=self.data.Erg_Field("Select count(*) from "+self.Temp_Tab,0)
if self.Prod_ID=="20":
self.sql="Select * from regal where regalnr="+str(int(self.Regalpl_1))+" and lagerplatz_ID="+str(int(self.Spaltepl_1))+" and regalzeilen_ID="+str(int(self.Zeilenpl_1))
self.__regal_ID=self.data.Erg_Field(self.sql,0)
self.Datawrite_delete(False,self.__regal_ID)
elif self.Prod_ID=="30":
print "reserviert"
elif self.Prod_ID=="40":
if self.Prod_Art==4 or self.Prod_Art==0:
self.Rawmaterial(self.scan_text)
self.Prod_Art=4
else:
self.Error.Errorbox("Achtung falsches Paket eingelesen "+self.Regalpl_1+"-"+self.Spaltepl_1+"-"+self.Zeilenpl_1,False)
elif self.Prod_ID=="41":
if self.Prod_Art==5 or self.Prod_Art==0:
self.Semi_Finished(True,self.scan_text)
self.Prod_Art=5
else:
self.Error.Errorbox("Achtung falsches Paket eingelesen "+self.Regalpl_1+"-"+self.Spaltepl_1+"-"+self.Zeilenpl_1,False)
elif self.Prod_ID=="57":
if self.Prod_Art==5 or self.Prod_Art==0:
self.Semi_Finished(False,self.scan_text)
self.Prod_Art=5
else:
self.Error.Errorbox("Achtung falsches Paket eingelesen "+self.Regalpl_1+"-"+self.Spaltepl_1+"-"+self.Zeilenpl_1,False)
elif self.Prod_ID=="69":
self.sql="Select * from regal where regalnr="+str(int(self.Regalpl_1))+" and lagerplatz_ID="+str(int(self.Spaltepl_1))+" and regalzeilen_ID="+str(int(self.Zeilenpl_1))
self.__regal_ID=self.data.Erg_Field(self.sql,0)
if self.Prod_Art==1 or self.Prod_Art==0:
self.Empty_Storeloc(self.__regal_ID)
self.Prod_Art=1
else:
self.Error.Errorbox("Achtung falsches Paket eingelesen "+self.Regalpl_1+"-"+self.Spaltepl_1+"-"+self.Zeilenpl_1,False)
if self.scan_text[0:1]=="7" or self.Prod_ID=="50":
self.laenge=len(self.scan_text)
if self.Prod_Art==7 or self.Prod_Art==0:
self.Prod_Art=7
if self.laenge > 22:
self.Finishedmat(False,self.scan_text)
else:
self.Finishedmat(True,self.scan_text)
else:
self.Error.Errorbox("Achtung falsches Paket eingelesen "+self.Regalpl_1+"-"+self.Spaltepl_1+"-"+self.Zeilenpl_1,False)
except:
self.Error.Errorbox("Error in Func Action",True)
import serial
import threading
import sys
import string
from ScanProzess import Scan_Prozess
import os
import ConfigParser
import time
from qt import *
from printing import Print
from data import data_class
from Errorhandling import Error_handle
class Scanning(threading.Thread):
item=""
Filesize=0
x=0
running=True
Adr_Reader_1=""
Adr_Reader_2=""
Adr_Reader_3=""
Reader_1=""
Reader_2=""
Reader_3=""
def __init__(self):
self.data=data_class("Warehouse/warehouse/")
self.execute_flag=True
threading.Thread.__init__(self)
#Read the Interfacesettings from ini-File "lvs.ini"
self.config = ConfigParser.ConfigParser()
file = open("data/lvs.ini",'r')
self.config.readfp(file)
file.close()
self.Print_Time=self.config.get('PrintMovement','Time')
self.O_print=Print()
self.Error=Error_handle()
self.Adr_Reader_1=self.config.get('Readerconfig','reader_Adr1')
self.Adr_Reader_2=self.config.get('Readerconfig','reader_Adr2')
self.Adr_Reader_3=self.config.get('Readerconfig','reader_Adr3')
self.Reader_1=self.config.get('Readerconfig','reader1')
self.Reader_2=self.config.get('Readerconfig','reader2')
self.Reader_3=self.config.get('Readerconfig','reader3')
if self.config.get('Interface', 'Databits')=="6":
bsize=serial.SIXBITS
elif self.config.get('Interface', 'Databits')=="8":
bsize=serial.EIGHTBITS
elif self.config.get('Interface', 'Databits')=="5":
bsize=serial.FIVEBITS
elif self.config.get('Interface', 'Databits')=="7":
bsize=serial.SEVENBITS
if self.config.get('Interface', 'Parity')=="Even":
bparity=serial.PARITY_EVEN
elif self.config.get('Interface', 'Parity')=="Odd":
bparity=serial.PARITY_ODD
elif self.config.get('Interface', 'Parity')=="None":
bparity=serial.PARITY_NONE
if self.config.get('Interface', 'Stopbits')=="1":
bstopbits=serial.STOPBITS_ONE
elif self.config.get('Interface', 'Stopbits')=="2":
bstopbits=serial.STOPBITS_TWO
if self.config.get('Interface', 'Flowcontrol')=="Xon/Xoff":
bflowcontrol=0
elif self.config.get('Interface', 'Flowcontrol')=="Hardware":
bflowcontrol=1
elif self.config.get('Interface', 'Flowcontrol')=="None":
bflowcontrol=2
self.threadport=threading.Event()
self.serial=serial.Serial(
port=int(self.config.get('Interface', 'Port')),
baudrate=int(self.config.get('Interface', 'Baudrate')),
bytesize=bsize,
parity=bparity,
stopbits=bstopbits,
timeout=1,
xonxoff=bflowcontrol,
rtscts=0
)
#Create the Objects
self.scanner1=Scan_Prozess()
self.scanner2=Scan_Prozess()
self.scanner3=Scan_Prozess()
#write String to serial Interface
def write(self,value):
self.serial.write(value)
#Start the Thread
def scanStart(self):
self.threadport.set()
#Stop the Thread
def scanStop(self):
self.running=False
self.threadport.set()
self.canceled = True
#Read String from Buffer and call the Function "action" from Object Scan_Prozess()
#Parallel print a Report Movement out
def run(self):
try:
while self.running==True:
text = self.serial.read(1)
print ""
print "serial read"
print ""
if text:
n = self.serial.inWaiting()
if n >0:
text =text + self.serial.read(n)
self.laengestr=len(text)
self.item=self.item+text
if ord(text[self.laengestr-1:self.laengestr])==3:
print self.item[6:len(self.item)-1]
self.scanner=self.item[1:5]
if self.scanner==self.Adr_Reader_1 and self.Reader_1=="1":
self.scanner1.action(self.item[6:len(self.item)-1],"1")
elif self.scanner==self.Adr_Reader_2 and self.Reader_2=="1":
self.scanner2.action(self.item[6:len(self.item)-1],"2")
elif self.scanner==self.Adr_Reader_3 and self.Reader_3=="1":
self.scanner3.action(self.item[6:len(self.item)-1],"3")
self.item=""
else:
if ord(self.item[0:1])==1 and ord(self.item[5:6])==2:
print self.item[6:len(self.item)]
self.scanner=self.item[1:5]
if self.scanner==self.Adr_Reader_1 and self.Reader_1=="1":
self.scanner1.action(self.item[6:len(self.item)],"1")
elif self.scanner==self.Adr_Reader_2 and self.Reader_2=="1":
self.scanner2.action(self.item[6:len(self.item)],"2")
elif self.scanner==self.Adr_Reader_3 and self.Reader_3=="1":
self.scanner3.action(self.item[6:len(self.item)],"3")
self.item=""
self.serial.flushInput()
print "flush Buffer"
else:
hour=time.localtime()[3]
min=time.localtime()[4]
if (hour==int(self.Print_Time[0:2]) and min==int(self.Print_Time[3:5]) and self.execute_flag==True):
self.execute_flag=False
self.O_print.titel="Overview Movement"
self.sql="select prod_ort_ID,r3nr,index_Nr,package_ID,palette_ID,einlagerdat,auslagerdat,menge,fauf,ieebatch,datum,stellplatz from protokoll where r3nr<>0 "
self.headerlist=('','R3-Nr.','','','','Incomingdat.','Outgoingdat.','Quantity','Fauf','IEE-Batch','Date','Storelocation')
sql_list=self.data.Erg_Liste(self.sql)
self.Pri_Col_width=(20,60,20,10,20,160,160,60,60,80,200,60)
self.O_print.Ue_ergebnis=sql_list
self.O_print.Ue_Headerlist=self.headerlist
self.O_print.print_Mat_overview("",self.Pri_Col_width,True,"",0)
self.data.SQL_Execute("delete from protokoll")
elif (hour==int(self.Print_Time[0:2]) and min == int(self.Print_Time[3:5])+1) and self.execute_flag==False:
self.execute_flag=True
self.closePort()
except:
self.Error.Errorbox("Error in Func run",True)
////Die Methode Action ich hoffe Ihr kommt klar
def action(self,scancode,scanner):
try:
if scanner=="1":
self.Temp_Tab="temp_stellpl"
elif scanner=="2":
self.Temp_Tab="temp_stellpl_2"
elif scanner=="3":
self.Temp_Tab="temp_stellpl_3"
self.scan_text=scancode
if len(self.scan_text)==8:
if self.Regalpl_1=="":
self.Regalpl_1=self.scan_text[0:2]
self.Spaltepl_1=self.scan_text[3:5]
self.Zeilenpl_1=self.scan_text[6:8]
else:
self.Regalpl_2=self.scan_text[0:2]
self.Spaltepl_2=self.scan_text[3:5]
self.Zeilenpl_2=self.scan_text[6:8]
if self.Regalpl_1==self.Regalpl_2 and self.Spaltepl_1==self.Spaltepl_2 and self.Zeilenpl_1==self.Zeilenpl_2:
self.sql="Select * from regal where regalnr="+str(int(self.Regalpl_2))+" and lagerplatz_ID="+str(int(self.Spaltepl_2))+" and regalzeilen_ID="+str(int(self.Zeilenpl_2))
self.regal_ID_pup=self.data.Erg_Field(self.sql,0)
if self.regal_ID_pup<>"":
if self.Prod_ID<>"69" or not self.Prod_ID<>"20":
self.Datawrite_delete(True,self.regal_ID_pup)
else:
self.Error.Errorbox("Stellplatz ist noch nicht angelegt",False)
self.data.SQL_Execute("delete from "+self.Temp_Tab)
else:
self.Error.Errorbox("Falscher Stellplatz gescannt "+self.Regalpl_1+"-"+self.Spaltepl_1+"-"+self.Zeilenpl_1+" ",False)
self.data.SQL_Execute("delete from "+self.Temp_Tab)
self.Prod_Art=0
self.Prod_ID=""
self.Box_Nr.clear()
self.Regalpl_1=""
self.Spaltepl_1=""
self.Zeilenpl_1=""
else:
if self.Regalpl_1 <> "":
self.Prod_ID=self.scan_text[0:2]
else:
self.Prod_ID=""
self.anz_temp_tab=self.data.Erg_Field("Select count(*) from "+self.Temp_Tab,0)
if self.Prod_ID=="20":
self.sql="Select * from regal where regalnr="+str(int(self.Regalpl_1))+" and lagerplatz_ID="+str(int(self.Spaltepl_1))+" and regalzeilen_ID="+str(int(self.Zeilenpl_1))
self.__regal_ID=self.data.Erg_Field(self.sql,0)
self.Datawrite_delete(False,self.__regal_ID)
elif self.Prod_ID=="30":
print "reserviert"
elif self.Prod_ID=="40":
if self.Prod_Art==4 or self.Prod_Art==0:
self.Rawmaterial(self.scan_text)
self.Prod_Art=4
else:
self.Error.Errorbox("Achtung falsches Paket eingelesen "+self.Regalpl_1+"-"+self.Spaltepl_1+"-"+self.Zeilenpl_1,False)
elif self.Prod_ID=="41":
if self.Prod_Art==5 or self.Prod_Art==0:
self.Semi_Finished(True,self.scan_text)
self.Prod_Art=5
else:
self.Error.Errorbox("Achtung falsches Paket eingelesen "+self.Regalpl_1+"-"+self.Spaltepl_1+"-"+self.Zeilenpl_1,False)
elif self.Prod_ID=="57":
if self.Prod_Art==5 or self.Prod_Art==0:
self.Semi_Finished(False,self.scan_text)
self.Prod_Art=5
else:
self.Error.Errorbox("Achtung falsches Paket eingelesen "+self.Regalpl_1+"-"+self.Spaltepl_1+"-"+self.Zeilenpl_1,False)
elif self.Prod_ID=="69":
self.sql="Select * from regal where regalnr="+str(int(self.Regalpl_1))+" and lagerplatz_ID="+str(int(self.Spaltepl_1))+" and regalzeilen_ID="+str(int(self.Zeilenpl_1))
self.__regal_ID=self.data.Erg_Field(self.sql,0)
if self.Prod_Art==1 or self.Prod_Art==0:
self.Empty_Storeloc(self.__regal_ID)
self.Prod_Art=1
else:
self.Error.Errorbox("Achtung falsches Paket eingelesen "+self.Regalpl_1+"-"+self.Spaltepl_1+"-"+self.Zeilenpl_1,False)
if self.scan_text[0:1]=="7" or self.Prod_ID=="50":
self.laenge=len(self.scan_text)
if self.Prod_Art==7 or self.Prod_Art==0:
self.Prod_Art=7
if self.laenge > 22:
self.Finishedmat(False,self.scan_text)
else:
self.Finishedmat(True,self.scan_text)
else:
self.Error.Errorbox("Achtung falsches Paket eingelesen "+self.Regalpl_1+"-"+self.Spaltepl_1+"-"+self.Zeilenpl_1,False)
except:
self.Error.Errorbox("Error in Func Action",True)
- DatenMetzgerX
- User
- Beiträge: 398
- Registriert: Freitag 28. April 2006, 06:28
- Wohnort: Zürich Seebach (CH)
Könntest du das ganze noch in [code=py][/code] einklammern und richtig einrücken
-
- User
- Beiträge: 13
- Registriert: Freitag 3. Februar 2006, 12:48
Code: Alles auswählen
//Ups sorry
//Methode action von klasse Scan_Prozess
def action(self,scancode,scanner):
try:
if scanner=="1":
self.Temp_Tab="temp_stellpl"
elif scanner=="2":
self.Temp_Tab="temp_stellpl_2"
elif scanner=="3":
self.Temp_Tab="temp_stellpl_3"
self.scan_text=scancode
if len(self.scan_text)==8:
if self.Regalpl_1=="":
self.Regalpl_1=self.scan_text[0:2]
self.Spaltepl_1=self.scan_text[3:5]
self.Zeilenpl_1=self.scan_text[6:8]
else:
self.Regalpl_2=self.scan_text[0:2]
self.Spaltepl_2=self.scan_text[3:5]
self.Zeilenpl_2=self.scan_text[6:8]
if self.Regalpl_1==self.Regalpl_2 and self.Spaltepl_1==self.Spaltepl_2 and self.Zeilenpl_1==self.Zeilenpl_2:
self.sql="Select * from regal where regalnr="+str(int(self.Regalpl_2))+" and lagerplatz_ID="+str(int(self.Spaltepl_2))+" and regalzeilen_ID="+str(int(self.Zeilenpl_2))
self.regal_ID_pup=self.data.Erg_Field(self.sql,0)
if self.regal_ID_pup<>"":
if self.Prod_ID<>"69" or not self.Prod_ID<>"20":
self.Datawrite_delete(True,self.regal_ID_pup)
else:
self.Error.Errorbox("Stellplatz ist noch nicht angelegt",False)
self.data.SQL_Execute("delete from "+self.Temp_Tab)
else:
self.Error.Errorbox("Falscher Stellplatz gescannt "+self.Regalpl_1+"-"+self.Spaltepl_1+"-"+self.Zeilenpl_1+" ",False)
self.data.SQL_Execute("delete from "+self.Temp_Tab)
self.Prod_Art=0
self.Prod_ID=""
self.Box_Nr.clear()
self.Regalpl_1=""
self.Spaltepl_1=""
self.Zeilenpl_1=""
else:
if self.Regalpl_1 <> "":
self.Prod_ID=self.scan_text[0:2]
else:
self.Prod_ID=""
self.anz_temp_tab=self.data.Erg_Field("Select count(*) from "+self.Temp_Tab,0)
if self.Prod_ID=="20":
self.sql="Select * from regal where regalnr="+str(int(self.Regalpl_1))+" and lagerplatz_ID="+str(int(self.Spaltepl_1))+" and regalzeilen_ID="+str(int(self.Zeilenpl_1))
self.__regal_ID=self.data.Erg_Field(self.sql,0)
self.Datawrite_delete(False,self.__regal_ID)
elif self.Prod_ID=="30":
print "reserviert"
elif self.Prod_ID=="40":
if self.Prod_Art==4 or self.Prod_Art==0:
self.Rawmaterial(self.scan_text)
self.Prod_Art=4
else:
self.Error.Errorbox("Achtung falsches Paket eingelesen "+self.Regalpl_1+"-"+self.Spaltepl_1+"-"+self.Zeilenpl_1,False)
elif self.Prod_ID=="41":
if self.Prod_Art==5 or self.Prod_Art==0:
self.Semi_Finished(True,self.scan_text)
self.Prod_Art=5
else:
self.Error.Errorbox("Achtung falsches Paket eingelesen "+self.Regalpl_1+"-"+self.Spaltepl_1+"-"+self.Zeilenpl_1,False)
elif self.Prod_ID=="57":
if self.Prod_Art==5 or self.Prod_Art==0:
self.Semi_Finished(False,self.scan_text)
self.Prod_Art=5
else:
self.Error.Errorbox("Achtung falsches Paket eingelesen "+self.Regalpl_1+"-"+self.Spaltepl_1+"-"+self.Zeilenpl_1,False)
elif self.Prod_ID=="69":
self.sql="Select * from regal where regalnr="+str(int(self.Regalpl_1))+" and lagerplatz_ID="+str(int(self.Spaltepl_1))+" and regalzeilen_ID="+str(int(self.Zeilenpl_1))
self.__regal_ID=self.data.Erg_Field(self.sql,0)
if self.Prod_Art==1 or self.Prod_Art==0:
self.Empty_Storeloc(self.__regal_ID)
self.Prod_Art=1
else:
self.Error.Errorbox("Achtung falsches Paket eingelesen "+self.Regalpl_1+"-"+self.Spaltepl_1+"-"+self.Zeilenpl_1,False)
if self.scan_text[0:1]=="7" or self.Prod_ID=="50":
self.laenge=len(self.scan_text)
if self.Prod_Art==7 or self.Prod_Art==0:
self.Prod_Art=7
if self.laenge > 22:
self.Finishedmat(False,self.scan_text)
else:
self.Finishedmat(True,self.scan_text)
else:
self.Error.Errorbox("Achtung falsches Paket eingelesen "+self.Regalpl_1+"-"+self.Spaltepl_1+"-"+self.Zeilenpl_1,False)
except:
self.Error.Errorbox("Error in Func Action",True)
-
- User
- Beiträge: 13
- Registriert: Freitag 3. Februar 2006, 12:48
Code: Alles auswählen
//Klasse Scan
import serial
import threading
import sys
import string
from ScanProzess import Scan_Prozess
import os
import ConfigParser
import time
from qt import *
from printing import Print
from data import data_class
from Errorhandling import Error_handle
class Scanning(threading.Thread):
item=""
Filesize=0
x=0
running=True
Adr_Reader_1=""
Adr_Reader_2=""
Adr_Reader_3=""
Reader_1=""
Reader_2=""
Reader_3=""
def __init__(self):
self.data=data_class("Warehouse/warehouse/")
self.execute_flag=True
threading.Thread.__init__(self)
#Read the Interfacesettings from ini-File "lvs.ini"
self.config = ConfigParser.ConfigParser()
file = open("data/lvs.ini",'r')
self.config.readfp(file)
file.close()
self.Print_Time=self.config.get('PrintMovement','Time')
self.O_print=Print()
self.Error=Error_handle()
self.Adr_Reader_1=self.config.get('Readerconfig','reader_Adr1')
self.Adr_Reader_2=self.config.get('Readerconfig','reader_Adr2')
self.Adr_Reader_3=self.config.get('Readerconfig','reader_Adr3')
self.Reader_1=self.config.get('Readerconfig','reader1')
self.Reader_2=self.config.get('Readerconfig','reader2')
self.Reader_3=self.config.get('Readerconfig','reader3')
if self.config.get('Interface', 'Databits')=="6":
bsize=serial.SIXBITS
elif self.config.get('Interface', 'Databits')=="8":
bsize=serial.EIGHTBITS
elif self.config.get('Interface', 'Databits')=="5":
bsize=serial.FIVEBITS
elif self.config.get('Interface', 'Databits')=="7":
bsize=serial.SEVENBITS
if self.config.get('Interface', 'Parity')=="Even":
bparity=serial.PARITY_EVEN
elif self.config.get('Interface', 'Parity')=="Odd":
bparity=serial.PARITY_ODD
elif self.config.get('Interface', 'Parity')=="None":
bparity=serial.PARITY_NONE
if self.config.get('Interface', 'Stopbits')=="1":
bstopbits=serial.STOPBITS_ONE
elif self.config.get('Interface', 'Stopbits')=="2":
bstopbits=serial.STOPBITS_TWO
if self.config.get('Interface', 'Flowcontrol')=="Xon/Xoff":
bflowcontrol=0
elif self.config.get('Interface', 'Flowcontrol')=="Hardware":
bflowcontrol=1
elif self.config.get('Interface', 'Flowcontrol')=="None":
bflowcontrol=2
self.threadport=threading.Event()
self.serial=serial.Serial(
port=int(self.config.get('Interface', 'Port')),
baudrate=int(self.config.get('Interface', 'Baudrate')),
bytesize=bsize,
parity=bparity,
stopbits=bstopbits,
timeout=1,
xonxoff=bflowcontrol,
rtscts=0
)
#Create the Objects
self.scanner1=Scan_Prozess()
self.scanner2=Scan_Prozess()
self.scanner3=Scan_Prozess()
#write String to serial Interface
def write(self,value):
self.serial.write(value)
#Start the Thread
def scanStart(self):
self.threadport.set()
#Stop the Thread
def scanStop(self):
self.running=False
self.threadport.set()
self.canceled = True
#Read String from Buffer and call the Function "action" from Object Scan_Prozess()
#Parallel print a Report Movement out
def run(self):
try:
while self.running==True:
text = self.serial.read(1)
print ""
print "serial read"
print ""
if text:
n = self.serial.inWaiting()
if n >0:
text =text + self.serial.read(n)
self.laengestr=len(text)
self.item=self.item+text
if ord(text[self.laengestr-1:self.laengestr])==3:
print self.item[6:len(self.item)-1]
self.scanner=self.item[1:5]
if self.scanner==self.Adr_Reader_1 and self.Reader_1=="1":
self.scanner1.action(self.item[6:len(self.item)-1],"1")
elif self.scanner==self.Adr_Reader_2 and self.Reader_2=="1":
self.scanner2.action(self.item[6:len(self.item)-1],"2")
elif self.scanner==self.Adr_Reader_3 and self.Reader_3=="1":
self.scanner3.action(self.item[6:len(self.item)-1],"3")
self.item=""
else:
if ord(self.item[0:1])==1 and ord(self.item[5:6])==2:
print self.item[6:len(self.item)]
self.scanner=self.item[1:5]
if self.scanner==self.Adr_Reader_1 and self.Reader_1=="1":
self.scanner1.action(self.item[6:len(self.item)],"1")
elif self.scanner==self.Adr_Reader_2 and self.Reader_2=="1":
self.scanner2.action(self.item[6:len(self.item)],"2")
elif self.scanner==self.Adr_Reader_3 and self.Reader_3=="1":
self.scanner3.action(self.item[6:len(self.item)],"3")
self.item=""
self.serial.flushInput()
print "flush Buffer"
else:
hour=time.localtime()[3]
min=time.localtime()[4]
if (hour==int(self.Print_Time[0:2]) and min==int(self.Print_Time[3:5]) and self.execute_flag==True):
self.execute_flag=False
self.O_print.titel="Overview Movement"
self.sql="select prod_ort_ID,r3nr,index_Nr,package_ID,palette_ID,einlagerdat,auslagerdat,menge,fauf,ieebatch,datum,stellplatz from protokoll where r3nr<>0 "
self.headerlist=('','R3-Nr.','','','','Incomingdat.','Outgoingdat.','Quantity','Fauf','IEE-Batch','Date','Storelocation')
sql_list=self.data.Erg_Liste(self.sql)
self.Pri_Col_width=(20,60,20,10,20,160,160,60,60,80,200,60)
self.O_print.Ue_ergebnis=sql_list
self.O_print.Ue_Headerlist=self.headerlist
self.O_print.print_Mat_overview("",self.Pri_Col_width,True,"",0)
self.data.SQL_Execute("delete from protokoll")
elif (hour==int(self.Print_Time[0:2]) and min == int(self.Print_Time[3:5])+1) and self.execute_flag==False:
self.execute_flag=True
self.closePort()
except:
self.Error.Errorbox("Error in Func run",True)
#Close Serial Port
def closePort(self):
self.serial.close()