Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2017
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.96 KB | None | 0 0
  1. from Tkinter import *
  2. from obd import OBDStatus
  3. import sys
  4. import obd
  5. import csv
  6. import Tkinter
  7. import tkMessageBox
  8. import datetime
  9. import time
  10.  
  11. ports = obd.scan_serial()
  12. print ports
  13. obd.logger.setLevel(obd.logging.DEBUG)
  14. connection = obd.OBD(ports[0]) #połączenie z interfejsem
  15.  
  16. ######################
  17.  
  18. def generacja(dogen): #funkcja generująca plik csv
  19. naglowek = ['Lp.', 'Parametr', 'Wartosc']
  20. dane = [naglowek]
  21. for i in xrange(len(dogen)):
  22. dane.append(dogen[i])
  23.  
  24.  
  25. with open("wyniki"+".csv", 'w') as csv_file:
  26. csv_app = csv.writer(csv_file)
  27. csv_app.writerows(dane)
  28.  
  29. tkMessageBox.showinfo("Informacja", "Dane zostaly zapisane")
  30.  
  31. ######################
  32.  
  33. def ile(): #funkcja sprawdzająca które parametry zostały zaznaczone
  34. tablica = [0,0,0,0,0]
  35. index = 0
  36. info = []
  37. if var1.get() == 1:
  38. index += 1
  39. tablica[0] = 1
  40. info.append("Obroty")
  41. if var2.get() == 1:
  42. index += 1
  43. tablica[1] = 1
  44. info.append("Predkosc")
  45. if var3.get() == 1:
  46. index += 1
  47. tablica[2] = 1
  48. info.append("Kody bledow")
  49. if var4.get() == 1:
  50. index += 1
  51. tablica[3] = 1
  52. info.append("Temperatura oleju")
  53. if var5.get() == 1:
  54. index += 1
  55. tablica[4] = 1
  56. info.append(c6.get())
  57.  
  58. if index == 0:
  59. tkMessageBox.showerror("Blad", "Nie wybrano parametrow")
  60.  
  61. elif index > 4:
  62. tkMessageBox.showerror("Blad", "Wybrales za duzo parametrow - wybierz od jednego do czterech")
  63.  
  64.  
  65. else: #pobranie wartości parametrów i utworzenie okna z wynikami pomiarów
  66. wartosc = []
  67. if tablica[0] == 1:
  68. cmd = obd.commands['RPM']
  69. response = connection.query(cmd)
  70. if response.is_null:
  71. wartosc.append("Parametr niedostepny!")
  72. else:
  73. wartosc.append(response.value)
  74.  
  75. if tablica[1] == 1:
  76. cmd = obd.commands['SPEED']
  77. response = connection.query(cmd)
  78. if response.is_null:
  79. wartosc.append("Parametr niedostepny!")
  80. else:
  81. wartosc.append(response.value)
  82.  
  83. if tablica[2] == 1:
  84. cmd = obd.commands['GET_DTC']
  85. response = connection.query(cmd)
  86. if response.value == []:
  87. wartosc.append("Brak Bledow!")
  88. else:
  89. wartosc.append(response.value)
  90.  
  91. if tablica[3] == 1:
  92. cmd = obd.commands['FUEL_STATUS']
  93. response = connection.query(cmd)
  94. if response.is_null:
  95. wartosc.append("Parametr niedostepny!")
  96. else:
  97. wartosc.append(response.value)
  98.  
  99. if tablica[4] == 1:
  100. cmd = obd.commands[c6.get()]
  101. response = connection.query(cmd)
  102. if response.is_null:
  103. wartosc.append("Parametr niedostepny!")
  104. else:
  105. wartosc.append(response.value)
  106.  
  107. slave = Tk()
  108. slave.title("Wyniki pomiarow")
  109. slave.geometry('300x200')
  110.  
  111. zbior = Frame(slave)
  112. etykieta = []
  113. for i in xrange(index):
  114. etykieta.append(Label(zbior, text=info[i]))
  115.  
  116. wynik = []
  117. for i in xrange(index):
  118. wynik.append(Label(zbior, text=wartosc[i]))
  119.  
  120. dogeneracji = []
  121. for i in xrange(index):
  122. dogeneracji.append([i+1,info[i],wartosc[i]])
  123.  
  124. plik = Button(slave, text="Eksportuj do csv", command=lambda: generacja(dogeneracji))
  125. wyjscie = Button(slave, text="OK", command=slave.destroy)
  126.  
  127. for i in xrange(index):
  128. etykieta[i].grid(row=i, column=0, sticky=W)
  129. wynik[i].grid(row=i, column=1, sticky=W)
  130.  
  131. zbior.pack(side=TOP)
  132. plik.pack(side=LEFT)
  133. wyjscie.pack(side=RIGHT)
  134.  
  135. ######################
  136. #program glowny
  137.  
  138. root = Tk()
  139. root.title("Projekt studencki")
  140. root.geometry('300x200')
  141.  
  142. var1 = IntVar()
  143. var2 = IntVar()
  144. var3 = IntVar()
  145. var4 = IntVar()
  146. var5 = IntVar()
  147.  
  148. t_poczatek = Label(root, text="Wybierz do 4 parametrow", bg = "white", fg="red")
  149.  
  150. ramka = Frame(root)
  151.  
  152. b_test = Button(root, text="Sprawdz", command=ile)
  153. b_exit = Button(root, text="Koniec", command=root.destroy)
  154.  
  155. c1 = Checkbutton(ramka, text="Obroty", variable=var1)
  156. c2 = Checkbutton(ramka, text="Predkosc", variable=var2)
  157. c3 = Checkbutton(ramka, text="Kody bledow", variable=var3)
  158. c4 = Checkbutton(ramka, text="Temperatura oleju", variable=var4)
  159. c5 = Checkbutton(ramka, text="Własne:", variable=var5)
  160. c6 = Entry(ramka)
  161.  
  162. c1.grid(row=0, column=0, sticky=W)
  163. c2.grid(row=0, column=1, sticky=W)
  164. c3.grid(row=1, column=0, sticky=W)
  165. c4.grid(row=1, column=1, sticky=W)
  166. c5.grid(row=2, column=0, sticky=W)
  167. c6.grid(row=2, column=1)
  168.  
  169.  
  170. t_poczatek.pack(side = TOP, fill = X)
  171. ramka.pack()
  172. b_test.pack(side = LEFT)
  173. b_exit.pack(side = RIGHT)
  174.  
  175. root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement