Hallo Allzusammen,
ich habe zum Tesen aus der Methode "drawCurve" 3 Varianten erzeugt "jede hat am Anfang ein '_'- Zeichen,"
Das ganze Programm:
import os
import string
import tty
import Tkinter
import Canvas
import math
import sys
from Tkconstants import *
from Tkinter import tkinter
class startEKG ():
_Buttons = ['Start (Stop):', 'Bildschirmabzug.' , 'Berechnung.', 'Beenden & Ausstieg.']
Channals = ['channal_1' , 'channal_2', 'channal_3' , 'channal_4' , 'channal_5' , 'channal_6' , 'channal_7' , 'channal_8' , 'channal_9' , 'channal_10' , 'channal_11' , 'channal_12']
_AidVar = [ [[]], [[]], [[]], [[]], [[]], [[]], [[]], [[]], [[]], [[]], [[]], [[]], [[]]]
_Buffer = [ [[],[]] , [[],[]] , [[],[]] , [[],[]] , [[],[]] , [[],[]] , [[],[]] , [[],[]] , [[],[]] , [[],[]] , [[],[]] , [[],[]] ]
for i in range (len (_AidVar[0])):
x = _AidVar[0].pop()
_AidVar[0].append(1) # Akteles Kanal.
_AidVar[0].append(3) # Kanalanzahl.
_AidVar[0].append(3600) # Maximale Pixlanzahl. Oder maximale Messzeit.
_AidVar[0].append(0) # Aktuele MP- Anzahl.
_AidVar[0].append(150) # X0.
fobj = 0
lint = []
jj = 0
WinName = ''
_f = [0,0,0,0,0,0,]
k = 0
################<Beginning of Function:>############
###### <Autor: >
###### <Description:>
def __init__ (self , n ):#master = None):
#print '__init__'
self.k = 0
master = None
self.WinName = n
self.Init_Pointer(self._AidVar)
fobj = open('/dev/ttyUSB0', "r")
self.jj = 0
self._f[0] = Tkinter.Canvas(master, relief = RIDGE, bd = 2, bg = "white", width = 1100, height = 100)
self._f[0].pack()
self._f[1] = Tkinter.Canvas(master, relief = RIDGE, bd = 2, bg = "white", width = 1100, height = 100)
self._f[1].pack()
self._f[2] = Tkinter.Canvas(master, relief = RIDGE, bd = 2, bg = "white", width = 1100, height = 100)
self._f[2].pack()
self.button = Tkinter.Button(master, text = " Run ", command = self.startDataProcessing)
self.button.pack(side = BOTTOM, pady = 4)
###############<End Of Function.>###################
################<Beginning of Function:>############
###### <Autor: >
###### <Description:>
def startDataProcessing (self):
#print 'startDataProcessing'
self.fobj = open ('/dev/ttyUSB0', "r")
self.WinName.createfilehandler (self.fobj , tkinter.READABLE , self.callback)
###############<End Of Function.>###################
################<Beginning of Function:>############
###### <Autor: >
###### <Description:>
def callback(self , a , b):
#print 'callback'
line = []
lline = []
line = self.fobj.readline ()
lline = line.split ()
if (len(lline) == 2):
self.lint = [string.atoi(lline[j]) for j in (0,1)]
self.lint.append(self.lint[1] - self.lint[0])
#print "Messdaten aus der seriellen Schnittstelle : ", self.lint
self.dataProcessing(self._AidVar , self.jj , self.lint)
#print 'CALLBACK LAENGE' , len (line ) , len (lline ) , len (self.lint)
###############<End Of Function.>###################
################<Beginning of Function:>############
###### <Autor: >
###### <Description:>
def Init_Pointer(self , _AidVar):
rc = 0
p = 0
a = self._AidVar[0][1] + 1
for i in range (1, self._AidVar[0][1] +1):
for ii in range (len (self._AidVar
)):
x = self._AidVar.pop()
self._AidVar[0][0] = 1
for i in range (1, self._AidVar[0][1] + 1):
for ii in range (5):
self._AidVar.append(0)
#print 'iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii' , self._AidVar
###############<End Of Function.>###################
################<Beginning of Function:>############
###### <Autor: >
###### <Description:>
def dataProcessing(self, _AidVar , jj , lint):
#print "DATAPROCESSING"
rc = 0
rc = self.Save_MP_p_to_Buffer (self._AidVar , self.jj)
rc = self.Save_MP_p_to_Buffer (self._AidVar , self.lint[0])
rc = self.Save_MP_p_to_Buffer (self._AidVar , self.jj)
rc = self.Save_MP_p_to_Buffer (self._AidVar , self.lint[1])
rc = self.Save_MP_p_to_Buffer (self._AidVar , self.jj)
rc = self.Save_MP_p_to_Buffer (self._AidVar , self.lint[2])
self.jj = self.jj + 1
if (rc == 1):
#print 'OKKKKKKKKKKKKk'
rc = self.Save_MP_to_Buffer (self._Buffer , self._AidVar)
self.drawCurve(self._AidVar , self._Buffer)
###############<End Of Function.>###################
################<Beginning of Function:>###############
###### <Autor: >
###### <Description:>
def Save_MP_p_to_Buffer (self , _AidVar , value):
#print "SAVE_MP_P_TO_BUFFER"
rc = 0
eins = self._AidVar[0][0]
EINS = self._AidVar[eins]
#print self._AidVar[0][0] , self._AidVar[0][1]
#print EINS[0] , EINS[2]
#print self._AidVar[self._AidVar[0][0]][0] , self._AidVar[self._AidVar[0][0]][2]
if (EINS[0] == 0 and EINS[2] == 0): # Keinen Timer- Eintrag.
#print 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz'
EINS[0] = 1
EINS[1] = value # Timer.
if (EINS[0] == 1 and EINS[2] == 0 and EINS[4] == 'Timer'): # Keinen Counter- Eintrag.
EINS[2] = 1
EINS[3] = value # Counter.
if (EINS[0] == 1 and EINS[2] == 0): # Keinen Kanal- Eintrag.
EINS[4] = 'Timer'
if (EINS[0] == 1 and EINS[2] == 1 and EINS[4] == 'Timer'): # Keinen Kanal- Eintrag.
self._AidVar[0][0] += 1 # Timer und Spannung Empfangen.
EINS[4] = 'Kanal'
#print self._AidVar[0][0] , self._AidVar[0][1]
if (self._AidVar[0][0] -1 == self._AidVar[0][1] and EINS[4] == 'Kanal'):
rc = 1
return (rc)
###############<End Of Function.>###################
################<Beginning of Function:>#########
###### <Autor: >
###### <Description:>
def ShiftList (self , x= [] , y=[]):
#print "ShiftList", self.k
#print 'x vor : ' , x
#self.k += 1
p = []
p.append(y)
for i in range (len (x)):
p.append (x)
for i in range (len (x)):
a = x.pop ()
for i in range (len (p)):
x.append(p)
#p.append(y)
#p = p + x
#x = p
#print 'x nach : ' , x
###############<End Of Function.>###################
################<Beginning of Function:>#########
###### <Autor: >
###### <Description:>
def TransfrmList(self , x , y):
#print 'TransfrmList' , self.k
#self.k += 1
p = []
p.append(y)
for i in range ( len(x) -1): # for i in range (1 , len (x)):
p.append (x)
for i in range(len(x)):
a = x.pop()
#x = null
for i in range (len (p)):
x.append(p)
###############<End Of Function.>###################
################<Beginning of Function:>#########
###### <Autor: >
###### <Description:>
def Save_MP_to_Buffer (self , _Buffer , _AidVar):#_Buffer , _AidVar):
rc = 0
_aid_1 = [1 , 3]
_b = []
p = []
null = []
#_AidVar[0][3] += 1
# Aufnahme, bis zum max. Pixel.
if (self._AidVar[0][2] > self._AidVar[0][3]): #(len (_Buffer[0][0]) <_AidVar[0][2] or len (_Buffer[0][0]) ==_AidVar[0][2]):
for i in range (_AidVar[0][1]):
for ii in range (2):
#print 'self._Buffer[ii]' , i, ii, len(self._Buffer[ii])
rc = 1
if (ii == 0):
self._Buffer[ii].append (self._AidVar[i + 1][_aid_1[ii]] + self._AidVar[0][4])
#print 'KANAL : ' , i , 'TIMER : ' , _Buffer[i][0]
#print 'KANAL : ' , i , 'VALUE : ' , _Buffer[i][1]
#self.ShiftList (self._Buffer[i][ii] , self._AidVar[i + 1][_aid_1[ii]] + self._AidVar[0][4])#
if (ii == 1):
self._Buffer[i][ii].append (self._AidVar[i + 1][_aid_1[ii]])
#self.ShiftList (self._Buffer[i][ii] , self._AidVar[i + 1][_aid_1[ii]])
#p.append(self._AidVar[i + 1][_aid_1[ii]])
#for iii in range (len (self._Buffer[i][ii])):
#p.append (self._Buffer[i][ii][iii])
#x = p
self._AidVar[0][3] += 1
else:
for i in range (self._AidVar[0][1]):
for ii in range (1, 2):
rc = 1
self._Buffer[i][ii] = self._Buffer[i][ii][1:len(self._Buffer[i][ii])]
self._Buffer[i][ii].append (self._AidVar[i + 1][_aid_1[ii]])
#self.TransfrmList (self._Buffer[i][ii] , self._AidVar[i + 1][_aid_1[ii]])
self.Init_Pointer(self._AidVar)
return rc
###############<End Of Function.>###################
################<Beginning of Function:>#########
###### <Autor: >
###### <Description:>
def delCan (self):
z = 1
for i in range (self._AidVar[0][1]):
z = 0
#for REST_EINTRAG in self._f[i].find_all ():
#self._f[i].delete (REST_EINTRAG)
#print 'lll'
for REST_EINTRAG in self._f[i].find_all ():
z += 1
print '_f[i] : ' , i , z #'Shows : ' , self._f[i].find_all ()
###############<End Of Function.>###################
def _drawCurve (self , _AidVar , _Buffer):
z = 0
print z
for i in range (self._AidVar[0][1]):
if (self._AidVar[0][3] < self._AidVar[0][2] or self._AidVar[0][3] == self._AidVar[0][2]):
self._f[1].delete (ALL)
#print z
################<Beginning of Function:>#########
###### <Autor: >
###### <Description:>
def __drawCurve (self , _AidVar , _Buffer):
z = []
for ii in range ( 200 ):
z.append (self._f[1].create_line (50 , 25 , 500, 25, fill = 'green'))
#self._f[0].update ()
#self._f[0].delete (ALL)
#self._f[1].delete (ALL)
#self._f[2].delete (ALL)
###############<End Of Function.>###################
################<Beginning of Function:>#########
###### <Autor: >
###### <Description:>
def __drawCurve (self , _AidVar , _Buffer):
for i in range (self._AidVar[0][1]):
if (self._AidVar[0][3] < self._AidVar[0][2] or self._AidVar[0][3] == self._AidVar[0][2]):
self._f[i].create_rectangle (0 , 0 , 1100 , 110 , width=0 , fill = 'white')
self._f[i].delete (ALL)
print '>>>>>>>>' , len(self._Buffer[i][0])
for ii in range (len(self._Buffer[i][0]) -1 ):
print len(self._Buffer[i][0])
if (len (self._Buffer[i][0]) > 0):
if (self._Buffer[i][0][ii] < self._Buffer[i][0][ii+1]): # or self._Buffer[i][0][ii] > self._Buffer[i][0][ii+1]):
x = self._f[i].create_line (self._Buffer[i][0][ii] , self._Buffer[i][1][ii] /(-10) + 80 , self._Buffer[i][0][ii+1] , self._Buffer[i][1][ii+1] /(-10) + 80, fill = 'green')
#for REST_EINTRAG in self._f[i].find_all ():
#self._f[i].delete (REST_EINTRAG)
self._f[i].update ()
###############<End Of Function.>###################
################<Beginning of Function:>#########
###### <Autor: >
###### <Description:>
def testMem (self):
for i in range (3):
for ii in range (2):
print 'Laenge von _Buffer : ' , len(self._Buffer[i][ii])
for i in range (13):
print 'Laenge von _AidVar : ' , len (self._AidVar[i])
for i in range (3):
print 'Laenge von _f' , self._f[i]
###############<End Of Function.>###################
if __name__ == "__main__":
root = Tkinter.Tk()
root.title("Start- EKGTest")
startEKG (root)
#startEKG.WinNameTrnasfer (root)
#fobj = open ('/dev/ttyUSB0', "r")
#root.createfilehandler (fobj , tkinter.READABLE , callback)
root.mainloop()