Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from Tkinter import *
- from obd import OBDStatus
- import sys
- import obd
- import csv
- import Tkinter
- import tkMessageBox
- import datetime
- import time
- ports = obd.scan_serial()
- print ports
- obd.logger.setLevel(obd.logging.DEBUG)
- connection = obd.OBD(ports[0]) #połączenie z interfejsem
- ######################
- def generacja(dogen): #funkcja generująca plik csv
- naglowek = ['Lp.', 'Parametr', 'Wartosc']
- dane = [naglowek]
- for i in xrange(len(dogen)):
- dane.append(dogen[i])
- with open("wyniki"+".csv", 'w') as csv_file:
- csv_app = csv.writer(csv_file)
- csv_app.writerows(dane)
- tkMessageBox.showinfo("Informacja", "Dane zostaly zapisane")
- ######################
- def ile(): #funkcja sprawdzająca które parametry zostały zaznaczone
- tablica = [0,0,0,0,0]
- index = 0
- info = []
- if var1.get() == 1:
- index += 1
- tablica[0] = 1
- info.append("Obroty")
- if var2.get() == 1:
- index += 1
- tablica[1] = 1
- info.append("Predkosc")
- if var3.get() == 1:
- index += 1
- tablica[2] = 1
- info.append("Kody bledow")
- if var4.get() == 1:
- index += 1
- tablica[3] = 1
- info.append("Temperatura oleju")
- if var5.get() == 1:
- index += 1
- tablica[4] = 1
- info.append(c6.get())
- if index == 0:
- tkMessageBox.showerror("Blad", "Nie wybrano parametrow")
- elif index > 4:
- tkMessageBox.showerror("Blad", "Wybrales za duzo parametrow - wybierz od jednego do czterech")
- else: #pobranie wartości parametrów i utworzenie okna z wynikami pomiarów
- wartosc = []
- if tablica[0] == 1:
- cmd = obd.commands['RPM']
- response = connection.query(cmd)
- if response.is_null:
- wartosc.append("Parametr niedostepny!")
- else:
- wartosc.append(response.value)
- if tablica[1] == 1:
- cmd = obd.commands['SPEED']
- response = connection.query(cmd)
- if response.is_null:
- wartosc.append("Parametr niedostepny!")
- else:
- wartosc.append(response.value)
- if tablica[2] == 1:
- cmd = obd.commands['GET_DTC']
- response = connection.query(cmd)
- if response.value == []:
- wartosc.append("Brak Bledow!")
- else:
- wartosc.append(response.value)
- if tablica[3] == 1:
- cmd = obd.commands['FUEL_STATUS']
- response = connection.query(cmd)
- if response.is_null:
- wartosc.append("Parametr niedostepny!")
- else:
- wartosc.append(response.value)
- if tablica[4] == 1:
- cmd = obd.commands[c6.get()]
- response = connection.query(cmd)
- if response.is_null:
- wartosc.append("Parametr niedostepny!")
- else:
- wartosc.append(response.value)
- slave = Tk()
- slave.title("Wyniki pomiarow")
- slave.geometry('300x200')
- zbior = Frame(slave)
- etykieta = []
- for i in xrange(index):
- etykieta.append(Label(zbior, text=info[i]))
- wynik = []
- for i in xrange(index):
- wynik.append(Label(zbior, text=wartosc[i]))
- dogeneracji = []
- for i in xrange(index):
- dogeneracji.append([i+1,info[i],wartosc[i]])
- plik = Button(slave, text="Eksportuj do csv", command=lambda: generacja(dogeneracji))
- wyjscie = Button(slave, text="OK", command=slave.destroy)
- for i in xrange(index):
- etykieta[i].grid(row=i, column=0, sticky=W)
- wynik[i].grid(row=i, column=1, sticky=W)
- zbior.pack(side=TOP)
- plik.pack(side=LEFT)
- wyjscie.pack(side=RIGHT)
- ######################
- #program glowny
- root = Tk()
- root.title("Projekt studencki")
- root.geometry('300x200')
- var1 = IntVar()
- var2 = IntVar()
- var3 = IntVar()
- var4 = IntVar()
- var5 = IntVar()
- t_poczatek = Label(root, text="Wybierz do 4 parametrow", bg = "white", fg="red")
- ramka = Frame(root)
- b_test = Button(root, text="Sprawdz", command=ile)
- b_exit = Button(root, text="Koniec", command=root.destroy)
- c1 = Checkbutton(ramka, text="Obroty", variable=var1)
- c2 = Checkbutton(ramka, text="Predkosc", variable=var2)
- c3 = Checkbutton(ramka, text="Kody bledow", variable=var3)
- c4 = Checkbutton(ramka, text="Temperatura oleju", variable=var4)
- c5 = Checkbutton(ramka, text="Własne:", variable=var5)
- c6 = Entry(ramka)
- c1.grid(row=0, column=0, sticky=W)
- c2.grid(row=0, column=1, sticky=W)
- c3.grid(row=1, column=0, sticky=W)
- c4.grid(row=1, column=1, sticky=W)
- c5.grid(row=2, column=0, sticky=W)
- c6.grid(row=2, column=1)
- t_poczatek.pack(side = TOP, fill = X)
- ramka.pack()
- b_test.pack(side = LEFT)
- b_exit.pack(side = RIGHT)
- root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement