Guest User

Untitled

a guest
Aug 17th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.49 KB | None | 0 0
  1. #!/usr/bin/env
  2.  
  3. import sys
  4. import time
  5. import subprocess
  6. from Tkinter import *
  7. import numpy
  8. import matplotlib
  9. matplotlib.use("TkAgg")
  10. from matplotlib.figure import Figure
  11. from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
  12. import matplotlib
  13. import matplotlib.pyplot as plt
  14. import threading
  15.  
  16. CDatei = subprocess.Popen("/home/pi/meinc++/Spi")
  17. print("Hallo")
  18.  
  19. i = 0
  20. x = 0
  21.  
  22.  
  23. def GetValue():
  24. with open("/home/pi/meinc++/BeispielDatei.txt","r") as Datei:
  25. for line in Datei:
  26. time.sleep(0.01)
  27. return line
  28.  
  29. def WithoutNull(input):
  30. ReturnValue = input
  31. while ReturnValue is None:
  32. ReturnValue = GetValue()
  33. return ReturnValue
  34.  
  35. def UebergabeWert():
  36. while x == 0:
  37. WholeString = WithoutNull(GetValue())
  38. StringVar, DatumVar = WholeString.strip().split(' - ')
  39. IntStringVar = [int(v) for v in StringVar.split()]
  40. return IntStringVar, DatumVar
  41.  
  42.  
  43. def MinutenWert():
  44. Maximum = 0
  45. Minimum = 0
  46. i = 0
  47. LaengeArray = 0
  48. Multiplikator = 10000
  49. ArrayValue = [-999999]*Multiplikator
  50. AlteZeit = time.time()
  51.  
  52. while 1:
  53. CompleteValue, Trash = UebergabeWert()
  54. ArrayValue[i] = CompleteValue[0]
  55. i = i + 1
  56.  
  57. ArrayFilter = filter(lambda c: c != -999999,ArrayValue)
  58. ArraySumme = numpy.sum(ArrayFilter)
  59. LaengeArray = len(ArrayFilter)
  60. Mittelwert = ArraySumme/LaengeArray
  61.  
  62. ArraySortierung = sorted(ArrayFilter)
  63. Maximum = ArraySortierung[LaengeArray-1]
  64. Minimum = ArraySortierung[0]
  65. NeueZeit = time.time()
  66.  
  67. if NeueZeit-AlteZeit >= 60:
  68. AlteZeit = time.time()
  69. ArrayValue[i:Multiplikator] = [-999999]*(Multiplikator-i)
  70. i = 0
  71.  
  72. yield Mittelwert
  73. yield Maximum
  74. yield Minimum
  75. yield LaengeArray
  76. yield ArrayFilter
  77.  
  78.  
  79.  
  80. def UebergabeTkinter():
  81. while 1:
  82.  
  83. Mittelwert = next(MinutenWertYield)
  84. Maximum = next(MinutenWertYield)
  85. Minimum = next(MinutenWertYield)
  86. LaengeArray = next(MinutenWertYield)
  87. ArrayFilter = next(MinutenWertYield)
  88.  
  89. CompleteValue, DatumVar = UebergabeWert()
  90. Variable1.set(CompleteValue[0])
  91. Variable2.set(CompleteValue[1])
  92. Variable3.set(CompleteValue[2])
  93. Variable4.set(CompleteValue[3])
  94. VariableMittelwert.set(Mittelwert)
  95. VariableMaximum.set(Maximum)
  96. VariableMinimum.set(Minimum)
  97. t = threading.Thread(target = Grafik)
  98. t.start()
  99.  
  100. root.update()
  101.  
  102. def Grafik():
  103. GrafikAnfang = time.time()
  104. Array = 0
  105. ArrayGrafik = [0]*20
  106. GrafikEnde = 1
  107. while 1:
  108. CompleteValue, DatumVar = UebergabeWert()
  109. ArrayGrafik[Array] = CompleteValue[0]
  110. LaengeArrayGrafik = len(ArrayGrafik)
  111.  
  112.  
  113. fig = Figure(figsize = (3, 3))
  114. axis = fig.add_subplot(111)
  115. axis.legend()
  116. axis.grid()
  117. canvas = FigureCanvasTkAgg(fig, master = root)
  118. canvas.get_tk_widget().grid(row=10,column=0,rowspan=2,columnspan=2)
  119. LinienBreite = numpy.linspace(1,LaengeArrayGrafik,LaengeArrayGrafik)
  120. axis.plot(LinienBreite,ArrayGrafik,'b-')
  121. axis.set_xticks(LinienBreite)
  122. DatumArray = [DatumVar]
  123. axis.set_xticklabels(DatumArray)
  124. canvas.draw()
  125. fig.clear()
  126. print Array
  127. if GrafikEnde-GrafikAnfang < 600:
  128.  
  129. Array = Array + 1
  130. GrafikEnde = time.time()
  131.  
  132. if GrafikEnde-GrafikAnfang >= 600:
  133. del ArrayGrafik[0]
  134.  
  135.  
  136.  
  137.  
  138. def Exit():
  139. root.destroy()
  140. return
  141.  
  142.  
  143. try:
  144.  
  145. MinutenWertYield = MinutenWert()
  146.  
  147. root = Tk()
  148.  
  149. Leiste = Menu(root)
  150. root.config(menu = Leiste)
  151.  
  152. DateiMenu = Menu(Leiste)
  153. Leiste.add_cascade(label = "datei", menu = DateiMenu)
  154. DateiMenu.add_command(label = "Exit", command = Exit)
  155.  
  156. EditMenu = Menu(Leiste)
  157. Leiste.add_cascade(label = "edit", menu = EditMenu)
  158.  
  159.  
  160. Variable1 = IntVar()
  161. Variable2 = IntVar()
  162. Variable3 = IntVar()
  163. Variable4 = IntVar()
  164. VariableMittelwert = IntVar()
  165. VariableMaximum = IntVar()
  166. VariableMinimum = IntVar()
  167.  
  168. Ausgang = 0
  169. for column in range(0,8,2):
  170. String1 = "Ausgang "
  171. String1 += `Ausgang`
  172. Ausgang = Ausgang + 1
  173. Label(text = String1).grid(row=0,column=column)
  174.  
  175. Ausgang = 0
  176. for column in range(0,8,2):
  177. String1 = "Der Wert von "
  178. String2 = " ist: "
  179. String1 += `Ausgang`
  180. Ausgang = Ausgang + 1
  181. String3 = String1+String2
  182. Label(text = String3).grid(row=2,column=column)
  183.  
  184. Label(text = "Der Mittelwert ist: ").grid(row=4,column=0)
  185. Label(text = "Das Maximum ist: ").grid(row=5,column=0)
  186. Label(text = "Das Mimimum ist: ").grid(row=6,column=0)
  187.  
  188. Label1 = Label(root, textvariable = Variable1)
  189. Label1.grid(row = 2, column = 1)
  190.  
  191. Label2 = Label(root, textvariable = Variable2)
  192. Label2.grid(row = 2, column = 3)
  193.  
  194. Label3 = Label(root, textvariable = Variable3)
  195. Label3.grid(row = 2, column = 5)
  196.  
  197. Label4 = Label(root, textvariable = Variable4)
  198. Label4.grid(row = 2, column = 7)
  199.  
  200. LabelMittelwert = Label(root, textvariable = VariableMittelwert)
  201. LabelMittelwert.grid(row = 4, column = 1)
  202.  
  203. LabelMaximum = Label(root, textvariable = VariableMaximum)
  204. LabelMaximum.grid(row = 5, column = 1)
  205.  
  206. LabelMinimum = Label(root, textvariable = VariableMinimum)
  207. LabelMinimum.grid(row = 6, column = 1)
  208.  
  209. UebergabeTkinter()
  210.  
  211.  
  212. print "Hallo"
  213. root.mainloop()
  214.  
  215.  
  216.  
  217. except KeyboardInterrupt:
  218. CDatei.kill()
  219. root.quit()
  220. root.destroy()
Add Comment
Please, Sign In to add comment