Finalized all Telegrammtypes
and added CSV generation Class
This commit is contained in:
112
DB.py
112
DB.py
@@ -101,17 +101,29 @@ class DB:
|
||||
raise Warning
|
||||
|
||||
|
||||
def getbde (self, dmc):
|
||||
"""
|
||||
Get Processdata
|
||||
"""
|
||||
try:
|
||||
cursor = self.executesql ("SELECT dmc, startts, endts, ladungstraeger, seriennr, variante, pruefzelle1, putzzelle, chiron, blindniet, bajonettclip, cclip, masseblech, pruefzelle2, nacharbeit, csv FROM bde WHERE dmc = '%s';" % dmc)
|
||||
except:
|
||||
print ("Couldnt read from BDE")
|
||||
|
||||
return (cursor.fetchall ())
|
||||
|
||||
|
||||
def checkbde (self, dmc):
|
||||
"""
|
||||
"""
|
||||
try:
|
||||
cursor = self.executesql ("SELECT dmc FROM bde WHERE dmc = '%s';" % dmc)
|
||||
except:
|
||||
print ("Couldnt read from into BDE")
|
||||
print ("Couldnt read from BDE")
|
||||
|
||||
l = len (cursor.fetchall ())
|
||||
return l
|
||||
|
||||
|
||||
|
||||
def updatebde (self, dmc, field, value):
|
||||
"""
|
||||
@@ -148,6 +160,7 @@ class DB:
|
||||
self.updatebde (data['dmc'], 'pruefzelle1', data['bauteilstatus'])
|
||||
if data['dmc'] == 'n.i.O.':
|
||||
self.updatebde (data['dmc'], 'endts', data['endts'])
|
||||
self.updatebde (data['dmc'], 'variante', data['bauteil'] + '-' + data['variante'])
|
||||
self.updatebde (data['dmc'], 'csv', '')
|
||||
|
||||
|
||||
@@ -182,7 +195,7 @@ class DB:
|
||||
and update BDE data
|
||||
"""
|
||||
try:
|
||||
cursor = self.executesql ("INSERT INTO blindniet (dmc, startts, endts, DGBM8status01, DGBM8status02, DGBM8status03, DGBM8status04, NietM8status01, NietM8status02, NietM6status01, NietM6status02, NietM6status03, NietM6status04, NietM6status05, DGBM8M01, DGBM8D01, DGBM8W01, DGBM8T01, DGBM8M02, DGBM8D01, DGBM8W02, DGBM8T02, DGBM8M03, DGBM8D03, DGBM8W03, DGBM8T03, DGBM8M04, DGBM8D04, DGBM8W04, DGBM8T04, NietM8F01, NietM8S01, NietM8F02, NietM8S02, NietM6F01, NietM6S01, NietM6F02, NietM6S02, NietM6F03, NietM6S03, NietM6F04, NietM6S04, NietM6F05, NietM6S05) VALUES ('%(dmc)s', '%(startts)s', '%(endts)s', '%(DGBM8status01)s', '%(DGBM8status02)s', '%(DGBM8status03)s', '%(DGBM8status04)s', '%(NietM8status01)s', '%(NietM8status02)s', '%(NietM6status01)s', '%(NietM6status02)s', '%(NietM6status03)s', '%(NietM6status04)s', '%(NietM6status05)s', '%(DGBM8M01)s', '%(DGBM8D01)s', '%(DGBM8W01)s', '%(DGBM8T01)s', '%(DGBM8M02)s', '%(DGBM8D02)s', '%(DGBM8W02)s', '%(DGBM8T02)s', '%(DGBM8M03)s', '%(DGBM8D03)s', '%(DGBM8W03)s', '%(DGBM8T03)s', '%(DGBM8M04)s', '%(DGBM8D04)s', '%(DGBM8W04)s', '%(DGBM8T04)s', '%(NietM8F01)s', '%(NietM8S01)s', '%(NietM8F02)s', '%(NietM8S02)s', '%(NietM6F01)s', '%(NietM6S01)s', '%(NietM6F02)s', '%(NietM6S02)s', '%(NietM6F03)s', '%(NietM6S03)s', '%(NietM6F04)s', '%(NietM6S04)s', '%(NietM6F05)s', '%(NietM6S05)s');" % data)
|
||||
cursor = self.executesql ("INSERT INTO blindniet (dmc, startts, endts, DGBM8status01, DGBM8status02, DGBM8status03, DGBM8status04, NietM8status01, NietM8status02, NietM6status01, NietM6status02, NietM6status03, NietM6status04, NietM6status05, DGBM8M01, DGBM8D01, DGBM8W01, DGBM8T01, DGBM8M02, DGBM8D02, DGBM8W02, DGBM8T02, DGBM8M03, DGBM8D03, DGBM8W03, DGBM8T03, DGBM8M04, DGBM8D04, DGBM8W04, DGBM8T04, NietM8F01, NietM8S01, NietM8F02, NietM8S02, NietM6F01, NietM6S01, NietM6F02, NietM6S02, NietM6F03, NietM6S03, NietM6F04, NietM6S04, NietM6F05, NietM6S05) VALUES ('%(dmc)s', '%(startts)s', '%(endts)s', '%(DGBM8status01)s', '%(DGBM8status02)s', '%(DGBM8status03)s', '%(DGBM8status04)s', '%(NietM8status01)s', '%(NietM8status02)s', '%(NietM6status01)s', '%(NietM6status02)s', '%(NietM6status03)s', '%(NietM6status04)s', '%(NietM6status05)s', '%(DGBM8M01)s', '%(DGBM8D01)s', '%(DGBM8W01)s', '%(DGBM8T01)s', '%(DGBM8M02)s', '%(DGBM8D02)s', '%(DGBM8W02)s', '%(DGBM8T02)s', '%(DGBM8M03)s', '%(DGBM8D03)s', '%(DGBM8W03)s', '%(DGBM8T03)s', '%(DGBM8M04)s', '%(DGBM8D04)s', '%(DGBM8W04)s', '%(DGBM8T04)s', '%(NietM8F01)s', '%(NietM8S01)s', '%(NietM8F02)s', '%(NietM8S02)s', '%(NietM6F01)s', '%(NietM6S01)s', '%(NietM6F02)s', '%(NietM6S02)s', '%(NietM6F03)s', '%(NietM6S03)s', '%(NietM6F04)s', '%(NietM6S04)s', '%(NietM6F05)s', '%(NietM6S05)s');" % data)
|
||||
except:
|
||||
print ("Couldnt insert PD05 blindniet")
|
||||
raise Warning
|
||||
@@ -211,9 +224,73 @@ class DB:
|
||||
print ("Couldnt get PD05 blindniet")
|
||||
raise Warning
|
||||
|
||||
return cursor.fetchone ()
|
||||
return cursor.fetchall ()
|
||||
|
||||
|
||||
def addputzzelle (self, data):
|
||||
"""
|
||||
Add Processdata 02/03 - putzzelle
|
||||
and update BDE data
|
||||
"""
|
||||
if len (self.getputzzelle (data['dmc'])):
|
||||
self.errlog ('PD02/03 for %s already exists - Overwrite' % data['dmc'])
|
||||
|
||||
try:
|
||||
cursor = self.executesql ("INSERT OR REPLACE INTO putzzelle (dmc, startts, endts, aufnahme) VALUES ('%(dmc)s', '%(startts)s', '%(endts)s', '%(aufnahme)s';" % data)
|
||||
except:
|
||||
print ("Couldnt insert PD02/03 putzzelle")
|
||||
raise Warning
|
||||
|
||||
self.updatebde (data['dmc'], 'putzzelle', data['bauteilstatus'])
|
||||
#FixMe Add Ladungstraeger
|
||||
|
||||
|
||||
def getputzzelle (self, dmc):
|
||||
"""
|
||||
Get Processdata 06 - putzzelle
|
||||
"""
|
||||
try:
|
||||
cursor = self.executesql ("SELECT dmc, startts, endts, aufnahme FROM putzzelle WHERE dmc = '%s';" % dmc)
|
||||
except:
|
||||
print ("Couldnt get PD0203 putzzelle")
|
||||
raise Warning
|
||||
|
||||
return cursor.fetchall ()
|
||||
|
||||
|
||||
def addchiron (self, data):
|
||||
"""
|
||||
Add Processdata 99 - chiron
|
||||
and update BDE data
|
||||
"""
|
||||
if len (self.getchiron (data['dmc'])):
|
||||
self.errlog ('PD99 for %s already exists - Overwrite' % data['dmc'])
|
||||
|
||||
try:
|
||||
cursor = self.executesql ("INSERT OR REPLACE INTO chiron (dmc, startts, endts, chiron) VALUES ('%(dmc)s', '%(startts)s', '%(endts)s', '%(chiron)s';" % data)
|
||||
except:
|
||||
print ("Couldnt insert PD99 chiron")
|
||||
raise Warning
|
||||
|
||||
self.updatebde (data['dmc'], 'chiron', data['bauteilstatus'])
|
||||
self.updatebde (data['dmc'], 'variante', data['bauteil'] + '-' + data['variante'])
|
||||
self.log (1,'PD99 - Change variante')
|
||||
#FixMe Add Ladungstraeger
|
||||
|
||||
|
||||
def getchiron (self, dmc):
|
||||
"""
|
||||
Get Processdata 06 - chiron
|
||||
"""
|
||||
try:
|
||||
cursor = self.executesql ("SELECT dmc, startts, endts, chiron FROM chiron WHERE dmc = '%s';" % dmc)
|
||||
except:
|
||||
print ("Couldnt get PD0203 putzzelle")
|
||||
raise Warning
|
||||
|
||||
return cursor.fetchall ()
|
||||
|
||||
|
||||
def addbajonettclip (self, data):
|
||||
"""
|
||||
Add Processdata 06 - bajonettclip
|
||||
@@ -277,12 +354,13 @@ class DB:
|
||||
Get Processdata 07 - cclip
|
||||
"""
|
||||
try:
|
||||
cursor = self.executesql ("SELECT dmc, startts, endts, aufnahme, lipstatus01, clipstatus02, clipstatus03, clipstatus04, clipstatus05, clipstatus06, clipstatus07, clipstatus08, clipstatus09, clipstatus10, clipstatus11, clipstatus12, clipstatus13, clipstatus14, clipstatus15, clipstatus16, clipstatus17, clipstatus18WHERE dmc = '%s';" % dmc)
|
||||
cursor = self.executesql ("SELECT dmc, startts, endts, aufnahme, clipstatus01, clipstatus02, clipstatus03, clipstatus04, clipstatus05, clipstatus06, clipstatus07, clipstatus08, clipstatus09, clipstatus10, clipstatus11, clipstatus12, clipstatus13, clipstatus14, clipstatus15, clipstatus16, clipstatus17, clipstatus18 FROM cclip WHERE dmc = '%s';" % dmc)
|
||||
except:
|
||||
print ("Couldnt get PD07 cclip")
|
||||
raise Warning
|
||||
|
||||
return cursor.fetchall ()
|
||||
|
||||
|
||||
def deletecclip (self, dmc):
|
||||
"""
|
||||
@@ -300,6 +378,9 @@ class DB:
|
||||
Add Processdata 08 - masseblech
|
||||
and update BDE data
|
||||
"""
|
||||
if len (self.getmasseblech (data['dmc'])):
|
||||
self.errlog ('PD08 for %s already exists - Overwrite' % data['dmc'])
|
||||
|
||||
try:
|
||||
cursor = self.executesql ("INSERT OR REPLACE INTO masseblech (dmc, startts, endts, ausgleichselement, schallisolierung, masseblech, blindniet, kombimutter, fniet, sniet, mmutter, dmutter, wmutter, tmutter) VALUES ('%(dmc)s', '%(startts)s', '%(endts)s', '%(ausgleichselement)s', '%(schallisolierung)s', '%(masseblech)s', '%(blindniet)s', '%(kombimutter)s' , '%(fniet)s', '%(sniet)s', '%(mmutter)s', '%(dmutter)s', '%(wmutter)s', '%(tmutter)s');" % data)
|
||||
except:
|
||||
@@ -307,6 +388,20 @@ class DB:
|
||||
raise Warning
|
||||
|
||||
self.updatebde (data['dmc'], 'masseblech', data['bauteilstatus'])
|
||||
|
||||
|
||||
def getmasseblech (self, dmc):
|
||||
"""
|
||||
Get Processdata 08 -masseblech
|
||||
"""
|
||||
try:
|
||||
cursor = self.executesql ("SELECT dmc, startts, endts, ausgleichselement, schallisolierung, masseblech, blindniet, kombimutter, fniet, sniet, mmutter, dmutter, wmutter, tmutter FROM masseblech WHERE dmc = '%s';" % dmc)
|
||||
except:
|
||||
print ("Couldnt get PD08 masseblech")
|
||||
raise Warning
|
||||
|
||||
return cursor.fetchall ()
|
||||
|
||||
|
||||
|
||||
def deletemasseblech (self, dmc):
|
||||
@@ -355,7 +450,12 @@ if __name__ == "__main__":
|
||||
from PD05_tel import TEL_PD05
|
||||
PD05 = TEL_PD05 ()
|
||||
|
||||
conn.addpruefzelle1 (PD01)
|
||||
|
||||
print (conn.getcclip ('40649372270716929764515'))
|
||||
print (conn.getchiron ('40649372270716929764515'))
|
||||
print (conn.getblindniet ('40649372270716929764515'))
|
||||
|
||||
#conn.addpruefzelle1 (PD01)
|
||||
|
||||
#print (conn.getblindniet (PD05['dmc']))
|
||||
#conn.deleteblindniet (PD05['dmc'])
|
||||
|
||||
275
Navision.py
275
Navision.py
@@ -1,4 +1,4 @@
|
||||
#!/usr/bin/python
|
||||
#!/usr/bin/python3
|
||||
|
||||
import sys, os
|
||||
sys.path.append (".")
|
||||
@@ -6,37 +6,266 @@ from time import time, strftime, sleep
|
||||
|
||||
|
||||
|
||||
class pySAP:
|
||||
class NAV:
|
||||
def __init__ (self, *dummy, **args):
|
||||
"""
|
||||
Initialize a new SAP exporter
|
||||
Initialize a new Navision exporter
|
||||
"""
|
||||
self.path = args.get ("path", "/opt/sap/")
|
||||
self.path = args.get ("path", "/srv/navision/")
|
||||
self.time = time ()
|
||||
self.dbcon = args.get ("db", None)
|
||||
|
||||
def log (self, msg):
|
||||
def createcsv(self, dmc):
|
||||
"""
|
||||
Print message if in verbose mode.
|
||||
create CSV for BDE Data
|
||||
"""
|
||||
mins = int (strftime ("%M"))
|
||||
file = open (self.path + strftime ("%Y_%m_%d_%H_") + '%02d' %(mins), "a")
|
||||
file.write ( msg )
|
||||
csvdata = ['']*155
|
||||
#1st check for BDE date
|
||||
bdefield = ['dmc', 'startts', 'endts', 'ladungstraeger', 'seriennr', 'variante', 'pruefzelle1', 'putzzelle', 'chiron', 'blindniet', 'bajonettclip', 'cclip', 'masseblech', 'pruefzelle2', 'nacharbeit', 'csv']
|
||||
ret = self.dbcon.getbde (dmc)
|
||||
if not len (ret):
|
||||
print ("No BDE Data")
|
||||
raise Warning
|
||||
bdedata = {}
|
||||
for i in range (len (bdefield)):
|
||||
bdedata [bdefield [i]] = ret[0][i]
|
||||
|
||||
#1 StatusBlob
|
||||
#2 Lfd Nummer
|
||||
#3 DMC
|
||||
csvdata [2] = bdedata ['dmc']
|
||||
#4 Zeitstempel Start
|
||||
csvdata [3] = bdedata ['startts']
|
||||
#5 Status BMW DMC FixMe muss imer i.O. sein eigtl.
|
||||
csvdata [4] = 'i.O.'
|
||||
#6 Reserve
|
||||
#7 Status Pruefzelle 1
|
||||
csvdata [6] = bdedata ['pruefzelle1']
|
||||
if bdedata ['pruefzelle1'] in ['i.O.', 'n.i.O.']:
|
||||
pz1field = ['dmc', 'startts', 'endts', 'pp01', 'pp02', 'pp03', 'pp04', 'pp05', 'pp06', 'pp07', 'pp08', 'pp08', 'pp09', 'pp10', 'pp11', 'pp12', 'pp13', 'pp14', 'pp15', 'pp16', 'pp17', 'pp18', 'pp19', 'pp20', 'pp21', 'pp22', 'pp23', 'pp24', 'pp25', 'pp26', 'pp27', 'pp28', 'pp29', 'pp30', 'pp31', 'pp32', 'pp33', 'pp34', 'pp35', 'pp36', 'pp37', 'pp38', 'pp39', 'pp40']
|
||||
ret = self.dbcon.getpruefzelle1 (dmc)
|
||||
if not len (ret):
|
||||
print ("No Pruefzelle1 Data")
|
||||
raise Warning
|
||||
else:
|
||||
pz1data = {}
|
||||
for i in range (len (pz1field)):
|
||||
pz1data [pz1field [i]] = ret[0][i]
|
||||
|
||||
#98 PZ1 Zeitstempel Start
|
||||
csvdata [97] = pz1data ['startts']
|
||||
#99 PZ1 Zeitstempel Ende
|
||||
csvdata [98] = pz1data ['endts']
|
||||
#115 - 154
|
||||
for i in range (40):
|
||||
csvdata [114 + i] = pz1data ['pp%02d' % (i + 1)]
|
||||
|
||||
del pz1field
|
||||
del pz1data
|
||||
|
||||
|
||||
#8 Reserve
|
||||
#9 Status Putzzelle
|
||||
csvdata [8] = bdedata ['putzzelle']
|
||||
if bdedata ['putzzelle'] in ['i.O.', 'n.i.O.']:
|
||||
pufield = ['dmc', 'startts', 'endts', 'aufnahme']
|
||||
ret = self.dbcon.getputzzelle (dmc)
|
||||
if not len (ret):
|
||||
print ("No Putzzelle Data")
|
||||
raise Warning
|
||||
else:
|
||||
pudata = {}
|
||||
for i in range (len (pufield)):
|
||||
pudata [pufield [i]] = ret[0][i]
|
||||
|
||||
#10 Putzzelle Aufnahme
|
||||
csvdata [9] = pudata ['aufnahme']
|
||||
#100 Putzzelle Zeitstempel Start
|
||||
csvdata [99] = pudata ['startts']
|
||||
#101 Putzzelle Zeitstempel Ende
|
||||
csvdata [100] = pudata ['endts']
|
||||
|
||||
del pufield
|
||||
del pudata
|
||||
|
||||
|
||||
#11 Chiron Status
|
||||
csvdata [10] = bdedata ['chiron']
|
||||
if bdedata ['chiron'] in ['i.O.', 'n.i.O.']:
|
||||
chfield = ['dmc', 'startts', 'endts', 'chiron']
|
||||
ret = self.dbcon.getchiron (dmc)
|
||||
if not len (ret):
|
||||
print ("No Chiron Data")
|
||||
raise Warning
|
||||
else:
|
||||
chdata = {}
|
||||
for i in range (len (chfield)):
|
||||
chdata [chfield [i]] = ret[0][i]
|
||||
|
||||
#102 Chiron 1 oder 2
|
||||
csvdata [101] = chdata ['chiron']
|
||||
#103 Chiron Zeitstempel Start
|
||||
csvdata [102] = chdata ['startts']
|
||||
#104 Chiron Zeitstempel Ende
|
||||
csvdata [103] = chdata ['endts']
|
||||
|
||||
del chfield
|
||||
del chdata
|
||||
|
||||
|
||||
#12 Blindniet Status
|
||||
csvdata [11] = bdedata ['blindniet']
|
||||
if bdedata ['blindniet'] in ['i.O.', 'n.i.O.']:
|
||||
bnfield = ['dmc', 'startts', 'endts', 'DGBM8status01', 'DGBM8status02', 'DGBM8status03', 'DGBM8status04', 'NietM8status01', 'NietM8status02', 'NietM6status01', 'NietM6status02', 'NietM6status03', 'NietM6status04', 'NietM6status05', 'DGBM8M01', 'DGBM8D01', 'DGBM8W01', 'DGBM8T01', 'DGBM8M02', 'DGBM8D02', 'DGBM8W02', 'DGBM8T02', 'DGBM8M03', 'DGBM8D03', 'DGBM8W03', 'DGBM8T03', 'DGBM8M04', 'DGBM8D04', 'DGBM8W04', 'DGBM8T04', 'NietM8F01', 'NietM8S01', 'NietM8F02', 'NietM8S02', 'NietM6F01', 'NietM6S01', 'NietM6F02', 'NietM6S02', 'NietM6F03', 'NietM6S03', 'NietM6F04', 'NietM6S04', 'NietM6F05', 'NietM6S05']
|
||||
ret = self.dbcon.getblindniet (dmc)
|
||||
if not len (ret):
|
||||
print ("No Blindniet Data")
|
||||
raise Warning
|
||||
else:
|
||||
bndata = {}
|
||||
for i in range (len (bnfield)):
|
||||
bndata [bnfield [i]] = ret[0][i]
|
||||
|
||||
#105 Blindniet Zeitstempel Start
|
||||
csvdata [104] = bndata ['startts']
|
||||
#106 Blindniet Zeitstempel Ende
|
||||
csvdata [105] = bndata ['endts']
|
||||
#13 - 18
|
||||
for i in range (2):
|
||||
csvdata [12 + i * 3] = bndata ['NietM8status%02d' % (i + 1)]
|
||||
csvdata [13 + i * 3] = bndata ['NietM8F%02d' % (i + 1)]
|
||||
csvdata [14 + i * 3] = bndata ['NietM8F%02d' % (i + 1)]
|
||||
#19 - 38
|
||||
for i in range (4):
|
||||
csvdata [18 + i * 5] = bndata ['DGBM8status%02d' % (i + 1)]
|
||||
csvdata [19 + i * 5] = bndata ['DGBM8M%02d' % (i + 1)]
|
||||
csvdata [20 + i * 5] = bndata ['DGBM8D%02d' % (i + 1)]
|
||||
csvdata [21 + i * 5] = bndata ['DGBM8W%02d' % (i + 1)]
|
||||
csvdata [22 + i * 5] = bndata ['DGBM8T%02d' % (i + 1)]
|
||||
#39 - 53
|
||||
for i in range (5):
|
||||
csvdata [38 + i * 3] = bndata ['NietM6status%02d' % (i + 1)]
|
||||
csvdata [39 + i * 3] = bndata ['NietM6F%02d' % (i + 1)]
|
||||
csvdata [40 + i * 3] = bndata ['NietM6S%02d' % (i + 1)]
|
||||
del bnfield
|
||||
del bndata
|
||||
|
||||
#54 Status Bajonettclip
|
||||
csvdata [53] = bdedata ['bajonettclip']
|
||||
if bdedata ['bajonettclip'] in ['i.O.', 'n.i.O.']:
|
||||
bajofield = ['dmc', 'startts', 'endts', 'aufnahme', 'bajostatus01', 'bajostatus02', 'bajostatus03', 'bajostatus04']
|
||||
ret = self.dbcon.getbajonettclip (dmc)
|
||||
if not len (ret):
|
||||
print ("No Bajonettclip Data")
|
||||
raise Warning
|
||||
else:
|
||||
bajodata = {}
|
||||
for i in range (len (bajofield)):
|
||||
bajodata [bajofield [i]] = ret[0][i]
|
||||
|
||||
#107 Bajonettclip Zeitstempel Start
|
||||
csvdata [106] = bajodata ['aufnahme']
|
||||
#108 Bajonettclip Zeitstempel Start
|
||||
csvdata [107] = bajodata ['startts']
|
||||
#109 Bajonettclip Zeitstempel Ende
|
||||
csvdata [108] = bajodata ['endts']
|
||||
#55 - 59
|
||||
for i in range (4):
|
||||
csvdata [54 + i] = bajodata ['bajostatus%02d' % (i + 1)]
|
||||
del bajodata
|
||||
del bajofield
|
||||
|
||||
|
||||
#59 Status CClip
|
||||
csvdata [58] = bdedata ['cclip']
|
||||
if bdedata ['cclip'] in ['i.O.', 'n.i.O.']:
|
||||
ccfield = ['dmc', 'startts', 'endts', 'aufnahme', 'clipstatus01', 'clipstatus02', 'clipstatus03', 'clipstatus04', 'clipstatus05', 'clipstatus06', 'clipstatus07', 'clipstatus08', 'clipstatus09', 'clipstatus10', 'clipstatus11', 'clipstatus12', 'clipstatus13', 'clipstatus14', 'clipstatus15', 'clipstatus16', 'clipstatus17', 'clipstatus18']
|
||||
ret = self.dbcon.getcclip (dmc)
|
||||
if not len (ret):
|
||||
print ("No CClip Data")
|
||||
raise Warning
|
||||
else:
|
||||
ccdata = {}
|
||||
for i in range (len (ccfield)):
|
||||
ccdata [ccfield [i]] = ret[0][i]
|
||||
|
||||
#110 CClip Zeitstempel Start
|
||||
csvdata [109] = ccdata ['aufnahme']
|
||||
#111 CClip Zeitstempel Start
|
||||
csvdata [110] = ccdata ['startts']
|
||||
#112 CClip Zeitstempel Ende
|
||||
csvdata [111] = ccdata ['endts']
|
||||
#60 - 77
|
||||
for i in range (18):
|
||||
csvdata [59 + i] = ccdata ['clipstatus%02d' % (i + 1)]
|
||||
del ccfield
|
||||
del ccdata
|
||||
|
||||
|
||||
#78 Status Masseblech
|
||||
csvdata [77] = bdedata ['masseblech']
|
||||
if bdedata ['masseblech'] in ['i.O.', 'n.i.O.']:
|
||||
mbfield = ['dmc', 'startts', 'endts', 'ausgleichselement', 'schallisolierung', 'masseblech', 'blindniet', 'kombimutter', 'fniet', 'sniet', 'mmutter', 'dmutter', 'wmutter', 'tmutter']
|
||||
ret = self.dbcon.getmasseblech (dmc)
|
||||
if not len (ret):
|
||||
print ("No Masseblech Data")
|
||||
raise Warning
|
||||
else:
|
||||
mbdata = {}
|
||||
for i in range (len (mbfield)):
|
||||
mbdata [mbfield [i]] = ret[0][i]
|
||||
|
||||
#113 CClip Zeitstempel Start
|
||||
csvdata [112] = mbdata ['startts']
|
||||
#114 CClip Zeitstempel Ende
|
||||
csvdata [113] = mbdata ['endts']
|
||||
#79 CClip Ausgleichseelement
|
||||
csvdata [78] = mbdata ['ausgleichselement']
|
||||
#80 CClip Schallisolierung
|
||||
csvdata [79] = mbdata ['schallisolierung']
|
||||
#81 CClip Masseblech
|
||||
csvdata [80] = mbdata ['masseblech']
|
||||
#82 CClip Blindniet
|
||||
csvdata [81] = mbdata ['blindniet']
|
||||
#83 CClip Blindniet
|
||||
csvdata [82] = mbdata ['kombimutter']
|
||||
#84 CClip Kombimutter M
|
||||
csvdata [83] = mbdata ['mmutter']
|
||||
#85 CClip Kombimutter D
|
||||
csvdata [84] = mbdata ['dmutter']
|
||||
#86 CClip Kombimutter W
|
||||
csvdata [85] = mbdata ['wmutter']
|
||||
#87 CClip Kombimutter T
|
||||
csvdata [86] = mbdata ['tmutter']
|
||||
#88 CClip Kombimutter T
|
||||
csvdata [87] = mbdata ['fniet']
|
||||
#89 CClip Kombimutter S
|
||||
csvdata [88] = mbdata ['sniet']
|
||||
|
||||
del mbfield
|
||||
del mbdata
|
||||
|
||||
|
||||
#93 Status Pruefzelle2
|
||||
csvdata [92] = bdedata ['pruefzelle2']
|
||||
#94 Status Nacharbeit
|
||||
csvdata [93] = bdedata ['nacharbeit']
|
||||
|
||||
|
||||
file = open (self.path + dmc + '.csv', "w")
|
||||
for i in csvdata:
|
||||
if type (i) == str and';' in i:
|
||||
print ("Semikolon in Data")
|
||||
|
||||
file.write (str (i) + ';')
|
||||
file.close ()
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
from pySAP import *
|
||||
from DB_ERP import DB_ERP
|
||||
#sapfile = pySAP (path = "/opt/sap/")
|
||||
sapfile = pySAP (path = "/Users/michi/logtest/")
|
||||
|
||||
#conn = DB_ERP ("/opt/data/storage_ERPTrace.db3")
|
||||
conn = DB_ERP ("/Users/michi/devel/S7ISO/data/storage_ERPTrace.db3")
|
||||
conn.markinsertionsasunread ()
|
||||
sapfile.log ('')
|
||||
for a, c, m, u in conn.getinsertions ():
|
||||
if c=='':
|
||||
c = 0
|
||||
sapfile.log ('%05d;%010d;%s;%s\n' % (int (a), int (c), m, u))
|
||||
conn.markinsertionsasread ()
|
||||
from DB import DB, logtest, errlogtest
|
||||
conn = DB ('/opt/data/bde.sqlite', '/tmp/talog.sql', logtest, errlogtest)
|
||||
nav = NAV (path = "/srv/navision/", db = conn)
|
||||
dmc = '1234'
|
||||
dmc = '40649372270716929764515'
|
||||
nav.createcsv (dmc)
|
||||
|
||||
@@ -31,7 +31,7 @@ def fromstring (data):
|
||||
tel.attrib['startts'] = tsdecode (data [38:52].decode ())
|
||||
tel.attrib['endts'] = tsdecode (data [52:66].decode ())
|
||||
tel.attrib['bauteil'] = bauteil.get ((data [66] << 8) + data [67], '')
|
||||
tel.attrib['Variante'] = variante.get ((data [68] << 8) + data [69], '')
|
||||
tel.attrib['variante'] = variante.get ((data [68] << 8) + data [69], '')
|
||||
tel.attrib['seriennr'] = '0'
|
||||
#66-70 Varianten daten
|
||||
tel.attrib['bauteilstatus'] = bauteilstatus.get (chr (data [70]), '') #0 - unbearbeitet; 1 - iO; 2 - niO
|
||||
|
||||
@@ -36,6 +36,7 @@ def fromstring (data):
|
||||
except:
|
||||
print ("Debug-aufnahme", data[90], data[91])
|
||||
|
||||
tel.attrib['ladungstraeger'] = data [92:93].decode ()
|
||||
return tel
|
||||
|
||||
|
||||
@@ -51,6 +52,7 @@ class TEL_PD02 (TELEGRAM):
|
||||
self.attrib['endts'] = '2000-02-02 02:02:02'
|
||||
self.attrib['dmc'] = '1234'
|
||||
self.attrib['bauteilstatus'] = '0'
|
||||
self.attrib['ladungstrager'] = '0'
|
||||
self.attrib['aufnahme'] = 0
|
||||
|
||||
self.len = 2220907
|
||||
|
||||
@@ -22,8 +22,8 @@ name = Entgratzelle2
|
||||
ipsps = 192.168.6.150
|
||||
|
||||
[PD04]
|
||||
name = BeladezelleBAZ
|
||||
ipsps = 192.168.6.160
|
||||
name = BeladestationUnused
|
||||
ipsps = 192.168.6.123
|
||||
|
||||
[PD05]
|
||||
name = Blindniet
|
||||
|
||||
3
bde.py
3
bde.py
@@ -183,6 +183,9 @@ class BDEServer ():
|
||||
if teltype == 'PD01':
|
||||
self.message (3, ' DT_handler : Store Data from PD01 Pruefzelle1')
|
||||
DB_con.addpruefzelle1 (ret_val)
|
||||
elif teltype in ['PD02', 'PD03']:
|
||||
self.message (3, ' DT_handler : Store Data from %s Putzzelle' % teltype)
|
||||
DB_con.addputzzelle (ret_val)
|
||||
elif teltype == 'PD05':
|
||||
self.message (3, ' DT_handler : Store Data from PD05 Blindniet')
|
||||
DB_con.addblindniet (ret_val)
|
||||
|
||||
@@ -14,13 +14,16 @@ CREATE TABLE bde (
|
||||
endts timestamp(14) NOT NULL default '',
|
||||
ladungstraeger char(2) NOT NULL default '0',
|
||||
seriennr char(25) NOT NULL default '',
|
||||
variante char(25) NOT NULL default '',
|
||||
pruefzelle1 char(25) NOT NULL default 'n.Durchlaufen',
|
||||
putzzelle char(25) NOT NULL default 'n.Durchlaufen',
|
||||
chiron char(25) NOT NULL default 'n.Durchlaufen',
|
||||
blindniet char(25) NOT NULL default 'n.Durchlaufen',
|
||||
bajonettclip char(25) NOT NULL default 'n.Durchlaufen',
|
||||
cclip char(25) NOT NULL default 'n.Durchlaufen',
|
||||
masseblech char(25) NOT NULL default 'n.Durchlaufen',
|
||||
pruefzelle2 char(25) NOT NULL default 'n.Durchlaufen',
|
||||
nacharbeit char(25) NOT NULL default 'n.Durchlaufen',
|
||||
csv integer NOT NULL default 0
|
||||
);
|
||||
|
||||
@@ -108,6 +111,20 @@ CREATE TABLE cclip (
|
||||
clipstatus18 char(25) NOT NULL default ''
|
||||
);
|
||||
|
||||
CREATE TABLE putzzelle (
|
||||
dmc char(25) UNIQUE,
|
||||
startts timestamp(14) NOT NULL,
|
||||
endts timestamp(14) NOT NULL,
|
||||
aufnahme INTEGER NOT NULL default '0'
|
||||
);
|
||||
|
||||
CREATE TABLE chiron (
|
||||
dmc char(25) UNIQUE,
|
||||
startts timestamp(14) NOT NULL,
|
||||
endts timestamp(14) NOT NULL,
|
||||
chiron INTEGER NOT NULL default '0'
|
||||
);
|
||||
|
||||
CREATE TABLE masseblech (
|
||||
dmc char(25) UNIQUE,
|
||||
startts timestamp(14) NOT NULL,
|
||||
|
||||
Reference in New Issue
Block a user