Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import PyQt5.QtWidgets as pq
- import PyQt5.QtGui as qg
- import threading
- import time
- import serial
- import copy
- import csv
- import os.path
- import types
- import datetime
- import string
- import sys
- from gui import Ui_MainWindow, QtWidgets
- app = QtWidgets.QApplication(sys.argv)
- MainWindow = QtWidgets.QMainWindow()
- ui = Ui_MainWindow()
- #tu pocedury
- def start():
- t = threading.Thread(target=readThatSerial, args=(com,runThis), daemon=True)
- t.daemon=True
- t.start()
- def potwierdz():
- global com
- com=ui.combo_COM.currentText()
- print(com)
- global pomiar
- pomiar=ui.combo_COM_2.currentText()
- ui.setupUi(MainWindow)
- #tu zdarzenia
- ui.startButton.clicked.connect(start)
- ui.PotwierdzButton.clicked.connect(potwierdz)
- MainWindow.show()
- #tu reszta
- def readThatSerial(whichSerial, runRef):
- ser = serial.Serial(whichSerial, 38400, timeout=3)
- whole = ""
- numbers = types.SimpleNamespace()
- numbers.dataNumber = 0
- while(runRef):
- s = ser.read()
- if(len(s) > 0):
- try:
- whole += s.decode("utf-8")
- except Exception as e:
- print("probably decode error: " + str(e))
- lastStart = 0
- for i in range(len(whole)):
- if(whole[i] == "<"):
- data = whole[lastStart:i]
- handleCommand(data, numbers)
- numOfMeas = 0
- newData = whole[i+1:]
- whole = copy.deepcopy(newData)
- lastStart = i+1
- def handleCommand(data, numbers):
- global pomiar
- zm=float(pomiar)*10
- interwal=zm
- parts = data.split("&")
- numbers.dataNumber += 1
- if(numbers.dataNumber % interwal == 0):
- for i in range(len(parts)):
- if ("=" in parts[i]):
- lol = parts[i].split("=")
- print("ai fund da dataaaa: " + parts[i])
- print("name of data " + lol[0])
- print("value of data " + lol[1])
- numbers.dataNumber = 0
- with open('plik.csv', 'a', encoding='utf-8', newline='') as csvfile:
- csvwriter = csv.writer(csvfile)
- teraz=datetime.datetime.now()
- tim =(teraz.strftime("%H:%M:%S.%f"))
- czas=list([tim])
- csvwriter.writerow(czas+parts)
- print(czas)
- ui.LCD_ax1.display(parts[0])
- ui.LCD_ay1.display(parts[1])
- ui.LCD_az1.display(parts[2])
- if not os.path.isfile('plik.csv'):
- with open('plik.csv', 'a', encoding='utf-8', newline='') as csvfile:
- csvwriter = csv.writer(csvfile)
- csvwriter.writerow(["t", 'a_x', 'a_y', 'a_z', ])
- csvwriter.writerow(["H:m:s:ms",'m/s^2', 'm/s^2', 'm/s^2'])
- runThis = True
- sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement