Advertisement
Guest User

Untitled

a guest
Apr 1st, 2020
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.87 KB | None | 0 0
  1. import PyQt5.QtWidgets as pq
  2. import PyQt5.QtGui as qg
  3. import threading
  4. import time
  5. import serial
  6. import copy
  7. import csv
  8. import os.path
  9. import types
  10. import datetime
  11. import string
  12. import sys
  13. from gui import Ui_MainWindow, QtWidgets
  14.  
  15. app = QtWidgets.QApplication(sys.argv)
  16. MainWindow = QtWidgets.QMainWindow()
  17. ui = Ui_MainWindow()
  18.  
  19. #tu pocedury
  20. def start():
  21. t = threading.Thread(target=readThatSerial, args=(com,runThis), daemon=True)
  22. t.daemon=True
  23. t.start()
  24.  
  25. def potwierdz():
  26. global com
  27. com=ui.combo_COM.currentText()
  28. print(com)
  29. global pomiar
  30. pomiar=ui.combo_COM_2.currentText()
  31.  
  32.  
  33.  
  34. ui.setupUi(MainWindow)
  35. #tu zdarzenia
  36. ui.startButton.clicked.connect(start)
  37. ui.PotwierdzButton.clicked.connect(potwierdz)
  38.  
  39. MainWindow.show()
  40.  
  41. #tu reszta
  42. def readThatSerial(whichSerial, runRef):
  43. ser = serial.Serial(whichSerial, 38400, timeout=3)
  44. whole = ""
  45. numbers = types.SimpleNamespace()
  46. numbers.dataNumber = 0
  47. while(runRef):
  48. s = ser.read()
  49. if(len(s) > 0):
  50. try:
  51. whole += s.decode("utf-8")
  52. except Exception as e:
  53. print("probably decode error: " + str(e))
  54.  
  55. lastStart = 0
  56. for i in range(len(whole)):
  57. if(whole[i] == "<"):
  58. data = whole[lastStart:i]
  59.  
  60. handleCommand(data, numbers)
  61. numOfMeas = 0
  62.  
  63. newData = whole[i+1:]
  64. whole = copy.deepcopy(newData)
  65. lastStart = i+1
  66.  
  67.  
  68. def handleCommand(data, numbers):
  69. global pomiar
  70. zm=float(pomiar)*10
  71. interwal=zm
  72. parts = data.split("&")
  73. numbers.dataNumber += 1
  74. if(numbers.dataNumber % interwal == 0):
  75. for i in range(len(parts)):
  76. if ("=" in parts[i]):
  77. lol = parts[i].split("=")
  78. print("ai fund da dataaaa: " + parts[i])
  79. print("name of data " + lol[0])
  80. print("value of data " + lol[1])
  81. numbers.dataNumber = 0
  82.  
  83. with open('plik.csv', 'a', encoding='utf-8', newline='') as csvfile:
  84. csvwriter = csv.writer(csvfile)
  85. teraz=datetime.datetime.now()
  86. tim =(teraz.strftime("%H:%M:%S.%f"))
  87. czas=list([tim])
  88. csvwriter.writerow(czas+parts)
  89. print(czas)
  90. ui.LCD_ax1.display(parts[0])
  91. ui.LCD_ay1.display(parts[1])
  92. ui.LCD_az1.display(parts[2])
  93.  
  94.  
  95. if not os.path.isfile('plik.csv'):
  96. with open('plik.csv', 'a', encoding='utf-8', newline='') as csvfile:
  97. csvwriter = csv.writer(csvfile)
  98. csvwriter.writerow(["t", 'a_x', 'a_y', 'a_z', ])
  99. csvwriter.writerow(["H:m:s:ms",'m/s^2', 'm/s^2', 'm/s^2'])
  100.  
  101. runThis = True
  102.  
  103.  
  104. sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement