Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env
- import sys
- import time
- import subprocess
- from Tkinter import *
- import numpy
- import matplotlib
- matplotlib.use("TkAgg")
- from matplotlib.figure import Figure
- from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
- import matplotlib
- import matplotlib.pyplot as plt
- import threading
- CDatei = subprocess.Popen("/home/pi/meinc++/Spi")
- print("Hallo")
- i = 0
- x = 0
- def GetValue():
- with open("/home/pi/meinc++/BeispielDatei.txt","r") as Datei:
- for line in Datei:
- time.sleep(0.01)
- return line
- def WithoutNull(input):
- ReturnValue = input
- while ReturnValue is None:
- ReturnValue = GetValue()
- return ReturnValue
- def UebergabeWert():
- while x == 0:
- WholeString = WithoutNull(GetValue())
- StringVar, DatumVar = WholeString.strip().split(' - ')
- IntStringVar = [int(v) for v in StringVar.split()]
- return IntStringVar, DatumVar
- def MinutenWert():
- Maximum = 0
- Minimum = 0
- i = 0
- LaengeArray = 0
- Multiplikator = 10000
- ArrayValue = [-999999]*Multiplikator
- AlteZeit = time.time()
- while 1:
- CompleteValue, Trash = UebergabeWert()
- ArrayValue[i] = CompleteValue[0]
- i = i + 1
- ArrayFilter = filter(lambda c: c != -999999,ArrayValue)
- ArraySumme = numpy.sum(ArrayFilter)
- LaengeArray = len(ArrayFilter)
- Mittelwert = ArraySumme/LaengeArray
- ArraySortierung = sorted(ArrayFilter)
- Maximum = ArraySortierung[LaengeArray-1]
- Minimum = ArraySortierung[0]
- NeueZeit = time.time()
- if NeueZeit-AlteZeit >= 60:
- AlteZeit = time.time()
- ArrayValue[i:Multiplikator] = [-999999]*(Multiplikator-i)
- i = 0
- yield Mittelwert
- yield Maximum
- yield Minimum
- yield LaengeArray
- yield ArrayFilter
- def UebergabeTkinter():
- while 1:
- Mittelwert = next(MinutenWertYield)
- Maximum = next(MinutenWertYield)
- Minimum = next(MinutenWertYield)
- LaengeArray = next(MinutenWertYield)
- ArrayFilter = next(MinutenWertYield)
- CompleteValue, DatumVar = UebergabeWert()
- Variable1.set(CompleteValue[0])
- Variable2.set(CompleteValue[1])
- Variable3.set(CompleteValue[2])
- Variable4.set(CompleteValue[3])
- VariableMittelwert.set(Mittelwert)
- VariableMaximum.set(Maximum)
- VariableMinimum.set(Minimum)
- t = threading.Thread(target = Grafik)
- t.start()
- root.update()
- def Grafik():
- GrafikAnfang = time.time()
- Array = 0
- ArrayGrafik = [0]*20
- GrafikEnde = 1
- while 1:
- CompleteValue, DatumVar = UebergabeWert()
- ArrayGrafik[Array] = CompleteValue[0]
- LaengeArrayGrafik = len(ArrayGrafik)
- fig = Figure(figsize = (3, 3))
- axis = fig.add_subplot(111)
- axis.legend()
- axis.grid()
- canvas = FigureCanvasTkAgg(fig, master = root)
- canvas.get_tk_widget().grid(row=10,column=0,rowspan=2,columnspan=2)
- LinienBreite = numpy.linspace(1,LaengeArrayGrafik,LaengeArrayGrafik)
- axis.plot(LinienBreite,ArrayGrafik,'b-')
- axis.set_xticks(LinienBreite)
- DatumArray = [DatumVar]
- axis.set_xticklabels(DatumArray)
- canvas.draw()
- fig.clear()
- print Array
- if GrafikEnde-GrafikAnfang < 600:
- Array = Array + 1
- GrafikEnde = time.time()
- if GrafikEnde-GrafikAnfang >= 600:
- del ArrayGrafik[0]
- def Exit():
- root.destroy()
- return
- try:
- MinutenWertYield = MinutenWert()
- root = Tk()
- Leiste = Menu(root)
- root.config(menu = Leiste)
- DateiMenu = Menu(Leiste)
- Leiste.add_cascade(label = "datei", menu = DateiMenu)
- DateiMenu.add_command(label = "Exit", command = Exit)
- EditMenu = Menu(Leiste)
- Leiste.add_cascade(label = "edit", menu = EditMenu)
- Variable1 = IntVar()
- Variable2 = IntVar()
- Variable3 = IntVar()
- Variable4 = IntVar()
- VariableMittelwert = IntVar()
- VariableMaximum = IntVar()
- VariableMinimum = IntVar()
- Ausgang = 0
- for column in range(0,8,2):
- String1 = "Ausgang "
- String1 += `Ausgang`
- Ausgang = Ausgang + 1
- Label(text = String1).grid(row=0,column=column)
- Ausgang = 0
- for column in range(0,8,2):
- String1 = "Der Wert von "
- String2 = " ist: "
- String1 += `Ausgang`
- Ausgang = Ausgang + 1
- String3 = String1+String2
- Label(text = String3).grid(row=2,column=column)
- Label(text = "Der Mittelwert ist: ").grid(row=4,column=0)
- Label(text = "Das Maximum ist: ").grid(row=5,column=0)
- Label(text = "Das Mimimum ist: ").grid(row=6,column=0)
- Label1 = Label(root, textvariable = Variable1)
- Label1.grid(row = 2, column = 1)
- Label2 = Label(root, textvariable = Variable2)
- Label2.grid(row = 2, column = 3)
- Label3 = Label(root, textvariable = Variable3)
- Label3.grid(row = 2, column = 5)
- Label4 = Label(root, textvariable = Variable4)
- Label4.grid(row = 2, column = 7)
- LabelMittelwert = Label(root, textvariable = VariableMittelwert)
- LabelMittelwert.grid(row = 4, column = 1)
- LabelMaximum = Label(root, textvariable = VariableMaximum)
- LabelMaximum.grid(row = 5, column = 1)
- LabelMinimum = Label(root, textvariable = VariableMinimum)
- LabelMinimum.grid(row = 6, column = 1)
- UebergabeTkinter()
- print "Hallo"
- root.mainloop()
- except KeyboardInterrupt:
- CDatei.kill()
- root.quit()
- root.destroy()
Add Comment
Please, Sign In to add comment