Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from PyQt5.QtCore import QDateTime, Qt, QTimer
- from PyQt5.QtWidgets import (QApplication, QCheckBox, QComboBox, QDateTimeEdit,
- QDial, QDialog, QGridLayout, QGroupBox, QHBoxLayout, QLabel, QLineEdit,
- QProgressBar, QPushButton, QRadioButton, QScrollBar, QSizePolicy,
- QSlider, QSpinBox, QStyleFactory, QTableWidget, QTabWidget, QTextEdit,
- QTableWidgetItem, QVBoxLayout, QWidget, QHeaderView)
- from PyQt5.QtGui import *
- import time
- import serial
- from QLed import QLed
- from PyQt5 import uic, QtCore, QtWidgets
- from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
- from matplotlib.backends.backend_qt4agg import NavigationToolbar2QT as NavigationToolbar
- from matplotlib.figure import Figure
- import math
- #import vrep
- import matplotlib
- matplotlib.use('Qt5Agg')
- from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg, NavigationToolbar2QT as NavigationToolbar
- """
- arduinoData=serial.Serial('COM6',9600)
- def led_on():
- arduinoData.write(b'1')
- def led_off():
- arduinoData.write(b'0')
- def led2_on():
- arduinoData.write(b'3')
- def led2_off():
- arduinoData.write(b'2')
- def led3_on():
- arduinoData.write(b'5')
- def led3_off():
- arduinoData.write(b'4')
- t=0
- while(t<3000000):
- t+=1
- led3_off()
- """
- class MplCanvas(FigureCanvasQTAgg):
- def __init__(self, parent=None, width=5, height=4, dpi=120):
- fig = Figure(figsize=(width, height), dpi=dpi)
- self.axes = fig.add_subplot(111)
- super(MplCanvas, self).__init__(fig)
- class WidgetGallery(QDialog):
- def __init__(self, parent=None):
- super(WidgetGallery, self).__init__(parent)
- self.setFixedHeight(800)
- self.setFixedWidth(1300)
- styleComboBox = QComboBox()
- styleLabel = QLabel("Style:")
- self.useStylePaletteCheckBox = QCheckBox("&Use style's standard palette")
- self.useStylePaletteCheckBox.setChecked(True)
- disableWidgetsCheckBox = QCheckBox("&Disable widgets")
- self.createTopLeftGroupBox()
- self.createTopRightGroupBox()
- self.createBottomLeftTabWidget()
- self.bottomLeftTabWidget.setFixedHeight(220)
- self.createBottomRightGroupBox()
- self.createProgressBar()
- topLayout = QHBoxLayout()
- mainLayout = QGridLayout()
- mainLayout.addWidget(self.topLeftGroupBox, 1, 0)
- mainLayout.addWidget(self.topRightGroupBox, 1, 1)
- mainLayout.addWidget(self.bottomLeftTabWidget, 2, 0)
- mainLayout.addWidget(self.bottomRightGroupBox, 2, 1)
- self.setLayout(mainLayout)
- self.setWindowTitle("Styles")
- self.changeStyle('Windows')
- # self.label.setFont(QVBoxLayout.QFont("Sanserif", 15))
- def changeStyle(self, styleName):
- QApplication.setStyle(QStyleFactory.create(styleName))
- self.changePalette()
- def changePalette(self):
- if (self.useStylePaletteCheckBox.isChecked()):
- QApplication.setPalette(QApplication.style().standardPalette())
- else:
- QApplication.setPalette(self.originalPalette)
- def advanceProgressBar(self):
- curVal = self.progressBar.value()
- maxVal = self.progressBar.maximum()
- self.progressBar.setValue(curVal + (maxVal - curVal) // 100)
- def createTopLeftGroupBox(self):
- self.topLeftGroupBox = QGroupBox("Dynamic Graph")
- #self.sc = MplCanvas(self, width=5, height=4, dpi=120)
- # self.sc.resize(120,80)
- # self.sc.setMaximumHeight(500)
- self.figure = Figure(figsize=(8,6), dpi=80)
- gs = self.figure.add_gridspec(2, 1)
- self.ax1 = self.figure.add_subplot(gs[0, 0])
- self.ax2 = self.figure.add_subplot(gs[1, 0])
- self.ax1.grid(True)
- self.ax2.grid(True)
- self.canvas = FigureCanvas(self.figure)
- self.toolbar = NavigationToolbar(self.canvas, self)
- self.ax1.set_ylabel("Ticks", fontsize = 11)
- self.ax1.set_xlabel("Time, 100*milliseconds", fontsize = 11)
- self.ax1.set_title("Encoder measurements", fontsize = 11)
- self.ax1.set_ybound(0, 1080)
- self.ax1.set_yticks([0, 180,360, 540, 720, 900, 1080])
- self.ax1.set_yticklabels(('0', '180', '360', '540', '720', '900', '1080' ))
- self.ax2.set_ylim(auto=True)
- self.ax2.set_ylabel('Force, 0.01*Newtons', fontsize = 11)
- self.ax2.set_xlabel("Time, 100*milliseconds", fontsize = 11)
- self.ax2.set_title("Force sensor measurements", fontsize = 11)
- #self.sc.axes.set_borders(bottom=0.1)
- #self.sc.axes.autoscale_view(True,True,True)
- #self.sc.axes.yticks(np.arange(0, 15, 1))
- #self.sc.axes.set(aspect=1,ylim=(0, 35))
- self.ax1.set_position([0.1, 0.6, 0.85, 0.35])
- self.ax2.set_position([0.1, 0.1, 0.85, 0.35])
- #self.sc.axes.legend(handletextpad=0.1)
- #self.sc.axes.ymargin=0.1
- layout = QVBoxLayout()
- layout.addWidget(self.toolbar)
- layout.addWidget(self.canvas)
- self.show()
- self.topLeftGroupBox.setLayout(layout)
- def createBottomLeftTabWidget(self):
- self.bottomLeftTabWidget = QTabWidget()
- self.tab1 = QWidget()
- self.tab1.resize(1600,400)
- self.tableWidget = QTableWidget(9, 100)
- header = self.tableWidget.horizontalHeader()
- header.setSectionResizeMode(QHeaderView.Stretch)
- self.tableWidget.resize(120,80)
- self.tab1hbox = QHBoxLayout()
- self.tab1hbox.addWidget(self.tableWidget)
- self.tab1.setLayout(self.tab1hbox)
- self.bottomLeftTabWidget.addTab(self.tab1, "&Table")
- def dialMoved(self):
- self.label.setText(" Dialer Value : " + str(self.dial3.value()))
- def createBottomRightGroupBox(self):
- self.bottomRightGroupBox = QGroupBox("Actuators")
- self.Button_Right = QPushButton("Act: 1")
- self.Button_Right.setCheckable(True)
- self.Button_Right.clicked.connect(self.Button_Right_Handler)
- self.Button_Left = QPushButton("Act: 2")
- self.Button_Left.setCheckable(True)
- self.Button_Left.clicked.connect(self.Button_Left_Handler)
- self.Button_Top = QPushButton("Act: 3")
- self.Button_Top.setCheckable(True)
- self.Button_Top.clicked.connect(self.Button_Top_Handler)
- self.Button_Roll = QPushButton("Act: Roll")
- self.Button_Roll.setCheckable(True)
- self.Button_Roll.clicked.connect(self.Button_Roll_Handler)
- layout2 = QVBoxLayout()
- layout2.addWidget(self.Button_Right)
- layout2.addWidget(self.Button_Left)
- layout2.addWidget(self.Button_Top)
- layout2.addWidget(self.Button_Roll)
- self.bottomRightGroupBox.setLayout(layout2)
- def createTopRightGroupBox(self):
- self.topRightGroupBox = QGroupBox("Control Panel")
- stopAllButton = QPushButton("Turn off the actuators")
- stopAllButton.setDefault(True)
- stopAllButton.clicked.connect(self.StopAll_Handler)
- readForceButton=QPushButton("Read force values")
- readForceButton.setDefault(True)
- readForceButton.clicked.connect(self.readForce)
- readEncButton=QPushButton("Read encoder")
- readEncButton.setDefault(True)
- readEncButton.clicked.connect(self.readEncoder)
- self.dial3 = QDial(self.topRightGroupBox)
- self.dial3.setMinimum(-120)
- self.dial3.setMaximum(120)
- self.dial3.setNotchesVisible(True)
- self.dial3.valueChanged.connect(self.dialMoved)
- self.dialInfo = QLabel()
- self.dialInfo.setText(" "+ str(self.dial3.minimum()+5) + " " + str(self.dial3.maximum()-5))
- self.label = QLabel()
- layout = QVBoxLayout()
- layout.addWidget(stopAllButton)
- layout.addWidget(readForceButton)
- layout.addWidget(readEncButton)
- layout.addWidget(self.dial3)
- layout.addWidget(self.dialInfo)
- layout.addWidget(self.label)
- self.led1=QLed(self, onColour=QLed.Red, shape=QLed.Circle)
- self.led1.value=False
- self.led2=QLed(self, onColour=QLed.Red, shape=QLed.Circle)
- self.led2.value=False
- self.led3=QLed(self, onColour=QLed.Red, shape=QLed.Circle)
- self.led3.value=False
- self.led4=QLed(self, onColour=QLed.Red, shape=QLed.Circle)
- self.led4.value=False
- self.light = 0
- layout.addWidget(self.led1)
- layout.addWidget(self.led2)
- layout.addWidget(self.led3)
- layout.addWidget(self.led4)
- layout.addStretch(1)
- self.topRightGroupBox.setLayout(layout)
- def sendSerial(self):
- if ((self.dial3.value()>=5) or (self.dial3.value()<-5)):
- ser=serial.Serial('COM3',9600,timeout=7)
- val = self.dial3.value()
- real_val = val+5 if val<0 else val-5
- print(real_val)
- buf = str(self.dial3.value()).encode("utf-8")
- ser.write(b'' + buf + b' ')
- ser.close()
- time.sleep(2)
- self.readEncFrs()
- else:
- print("low value")
- def readEncoder(self):
- ser=serial.Serial('COM3',9600)
- ser.write(b'254')
- ser.close()
- print("Starting reading...")
- ser=serial.Serial('COM3',9600, timeout=7)
- n_cnt = 0
- n_list = []
- enc_list = []
- enc_val1 = []
- enc_val2 = []
- enc_val3 = []
- enc_val4 = []
- enc_last = []
- zero_cnt = [0, 0, 0, 0, 0]
- while(n_cnt<=400):
- enc = ser.readline()
- enc_str = str(enc)
- if ("enc" in enc_str):
- enc_list = enc_str.split("|", 5)
- n_list.append(n_cnt)
- if int(enc_list[1])==0:
- zero_cnt[1] += 1
- enc_val1.append(int(enc_list[1]))
- if int(enc_list[2])==0:
- zero_cnt[2] += 1
- enc_val2.append(int(enc_list[2]))
- if int(enc_list[3])==0:
- zero_cnt[3] += 1
- enc_val3.append(int(enc_list[3]))
- if int(enc_list[4])==0:
- zero_cnt[4] += 1
- enc_val4.append(int(enc_list[4]))
- zero_cnt[0] += 1
- print(enc)
- n_cnt = n_cnt + 1
- '''if enc_list[9]=="off":
- enc_last = enc_list
- break;
- '''
- ser.close()
- print("End")
- if len(self.ax1.lines)>0:
- self.ax1.lines.clear()
- if zero_cnt[1]<=n_cnt-1:
- self.ax1.plot(n_list, enc_val1)
- if zero_cnt[2]<=n_cnt-1:
- self.ax1.plot(n_list, enc_val2)
- if zero_cnt[3]<=n_cnt-1:
- self.ax1.plot(n_list, enc_val3)
- if zero_cnt[4]<=n_cnt-1:
- self.ax1.plot(n_list,enc_val4)
- print(n_list, enc_val4)
- if zero_cnt[0]!=0:
- for i in range(zero_cnt[0]-1):
- if i==0:
- self.tableWidget.setItem(0,0, QTableWidgetItem("data no:"))
- self.tableWidget.setItem(1,0, QTableWidgetItem("enc1:"))
- self.tableWidget.setItem(2,0, QTableWidgetItem("enc2:"))
- self.tableWidget.setItem(3,0, QTableWidgetItem("enc3:"))
- self.tableWidget.setItem(4,0, QTableWidgetItem("enc4:"))
- elif i>=1:
- self.tableWidget.setItem(0,i, QTableWidgetItem(str(i)))
- self.tableWidget.setItem(1,i, QTableWidgetItem(enc_val1[i-1]))
- self.tableWidget.setItem(2,i, QTableWidgetItem(enc_val2[i-1]))
- self.tableWidget.setItem(3,i, QTableWidgetItem(enc_val3[i-1]))
- self.tableWidget.setItem(4,i, QTableWidgetItem(enc_val4[i-1]))
- self.canvas.draw()
- self.StopAll_Handler()
- print("test")
- radius = float(9.2/10**3)
- one_degree_len = float((2*math.pi*radius)/1080)
- #degree passed = (1080-init_degree) + (number of rotations * 1080 degrees) + current degree: _(*)_
- '''
- if len(self.ax1.lines)>0:
- self.ax1.lines.clear()
- if enc_zero_cnt[1]<=n_cnt-1:
- line1, = self.ax1.plot(enc_val1, 'b', label='Motor1')
- deg_passed[1] = (1080-int(init_deg[1])) + (int(enc_last[5])*1080) + int(enc_last[1])
- dist_passed[1] = one_degree_len * float(deg_passed[1])
- if enc_zero_cnt[2]<=n_cnt-1:
- deg_passed[2] = (1080-int(init_deg[2])) + (int(enc_last[6])*1080) + int(enc_last[2])
- dist_passed[2] = one_degree_len * float(deg_passed[2])
- line2, = self.ax1.plot(enc_val2, 'g', label='Motor2')
- if enc_zero_cnt[3]<=n_cnt-1:
- deg_passed[3] = (1080-int(init_deg[3])) + (int(enc_last[7])*1080) + int(enc_last[3])
- dist_passed[3] = one_degree_len * float(deg_passed[3])
- line3, = self.ax1.plot(enc_val3, 'y', label='Motor3')
- if enc_zero_cnt[4]<=n_cnt-1:
- deg_passed[4] = (1080.0-int(init_deg[4])) + (int(enc_last[8])*1080) + int(enc_last[4])
- dist_passed[4] = one_degree_len * float(deg_passed[4])
- line4, = self.ax1.plot(enc_val4, 'm', label='Motor4')
- self.ax1.legend()
- '''
- #with open("ctrl.cfg","w") as ctrl_cfg:
- #ctrl_cfg.write('enc:|' + str(enc_last[1]) + '|' + str(enc_last[2]) + '|' + str(enc_last[3]) + '|' + str(enc_last[4]) + '|\n')
- #ctrl_cfg.write('angle passed(degrees):|' + str(deg_passed[1]) + '|' + str(deg_passed[2]) + '|' + str(deg_passed[3]) + '|' + str(deg_passed[4]) + '|\n')
- #dist_passed_float = [float(i) for i in dist_passed]
- #ctrl_cfg.write('distance passed(m):|' + "{:.4f}".format(dist_passed_float[1]) + '|' + "{:.4f}".format(dist_passed_float[2]) + '|' + "{:.4f}".format(dist_passed_float[3]) + '|' + "{:.4f}".format(dist_passed_float[4]) + '|\n')
- print("test")
- def readForce(self):
- ser=serial.Serial('COM3',9600)
- ser.write(b'255')
- ser.close()
- print("Starting reading...")
- ser=serial.Serial('COM3',9600, timeout=7)
- n_cnt = 0
- self.n_list = []
- enc_list = []
- self.enc_val1 = []
- self.enc_val2 = []
- self.enc_val3 = []
- zero_cnt = [0, 0, 0, 0]
- self._plot_ref1 = None
- self._plot_ref2 = None
- self._plot_ref3 = None
- self.show()
- while(n_cnt<=10):
- enc = ser.readline()
- enc_str = str(enc)
- print(n_cnt, enc_str)
- if ("fs" in enc_str):
- enc_list = enc_str.split("|", 5)
- self.n_list.append(n_cnt)
- print("Test")
- if float(enc_list[1])==0.0:
- zero_cnt[1] += 1
- self.enc_val1.append(int(enc_list[1]))
- if float(enc_list[2])==0.0:
- zero_cnt[2] += 1
- self.enc_val2.append(int(enc_list[2]))
- if float(enc_list[3])==0.0:
- zero_cnt[3] += 1
- self.enc_val3.append(int(enc_list[3]))
- #if n_cnt>=10:
- #self.update_plot()
- #self.show()
- #self.sc.refresh()
- self.sc.draw()
- print(enc)
- print("Test")
- if int(enc_list[1])==0:
- enc_zero_cnt[1] += 1
- enc_val1.append(int(enc_list[1]))
- if int(enc_list[2])==0:
- enc_zero_cnt[2] += 1
- enc_val2.append(int(enc_list[2]))
- if int(enc_list[3])==0:
- enc_zero_cnt[3] += 1
- enc_val3.append(int(enc_list[3]))
- if int(enc_list[4])==0:
- enc_zero_cnt[4] += 1
- enc_val4.append(int(enc_list[4]))
- enc_zero_cnt[0] += 1
- n_cnt = n_cnt + 1
- ser.close()
- print("End")
- if len(self.ax2.lines)>0:
- self.ax2.lines.clear()
- while(n_cnt<=10):
- frs = ser.readline()
- print(frs)
- frs_str = str(frs)
- if ("fs" in frs_str):
- frs_list = frs_str.split("|", 5)
- if float(frs_list[1])==0.0:
- frs_zero_cnt[1] += 1
- frs_val1.append(float(frs_list[1]))
- if float(frs_list[2])==0.0:
- frs_zero_cnt[2] += 1
- frs_val2.append(float(frs_list[2]))
- if float(frs_list[3])==0.0:
- frs_zero_cnt[3] += 1
- frs_val3.append(float(frs_list[3]))
- enc = ser.readline()
- print(enc)
- enc_str = str(enc)
- if ("enc" in enc_str):
- enc_list = enc_str.split("|", 10)
- if (n_cnt == 0):
- init_deg[1:5] = enc_list[1:5]
- if int(enc_list[1])==0:
- enc_zero_cnt[1] += 1
- enc_val1.append(int(enc_list[1]))
- if int(enc_list[2])==0:
- enc_zero_cnt[2] += 1
- enc_val2.append(int(enc_list[2]))
- if int(enc_list[3])==0:
- enc_zero_cnt[3] += 1
- enc_val3.append(int(enc_list[3]))
- if int(enc_list[4])==0:
- enc_zero_cnt[4] += 1
- enc_val4.append(int(enc_list[4]))
- enc_zero_cnt[0] += 1
- n_cnt = n_cnt + 1
- #if enc_list[9]=="off":
- # enc_last = enc_list
- #break;
- if zero_cnt[1]<=n_cnt-1:
- self.ax2.plot(self.n_list, self.enc_val1)
- if zero_cnt[2]<=n_cnt-1:
- self.ax2.plot(self.n_list, self.enc_val2)
- if zero_cnt[3]<=n_cnt-1:
- self.ax2.plot(self.n_list, self.enc_val3)
- for i in range(n_cnt-1):
- if i==0:
- self.tableWidget.setItem(0,0, QTableWidgetItem("data no:"))
- self.tableWidget.setItem(1,0, QTableWidgetItem("FS1: *0.01 N"))
- self.tableWidget.setItem(2,0, QTableWidgetItem("FS2: *0.01 N"))
- self.tableWidget.setItem(3,0, QTableWidgetItem("FS3: *0.01 N"))
- else:
- self.tableWidget.setItem(0,i, QTableWidgetItem(str(i)))
- self.tableWidget.setItem(1,i, QTableWidgetItem(self.enc_val1[i-1]))
- self.tableWidget.setItem(2,i, QTableWidgetItem(self.enc_val2[i-1]))
- self.tableWidget.setItem(3,i, QTableWidgetItem(self.enc_val3[i-1]))
- self.canvas.draw()
- def readEncFrs(self):
- ser=serial.Serial('COM3',9600)
- ser.write(b'253' + b' ')
- ser.close()
- print("Starting reading...")
- ser=serial.Serial('COM3',9600, timeout=7)
- n_cnt = 0
- init_deg = [0,0,0,0,0]
- deg_passed = [0,0,0,0,0]
- dist_passed = [0,0,0,0,0]
- enc_list = []
- enc_last = []
- enc_val1 = []
- enc_val2 = []
- enc_val3 = []
- enc_val4 = []
- frs_list = []
- frs_val1 = []
- frs_val2 = []
- frs_val3 = []
- enc_zero_cnt = [0, 0, 0, 0, 0]
- frs_zero_cnt = [0, 0, 0, 0, 0]
- while(n_cnt<=700):
- frs = ser.readline()
- print(frs)
- frs_str = str(frs)
- if ("fs" in frs_str):
- frs_list = frs_str.split("|", 5)
- if float(frs_list[1])==0.0:
- frs_zero_cnt[1] += 1
- frs_val1.append(float(frs_list[1]))
- if float(frs_list[2])==0.0:
- frs_zero_cnt[2] += 1
- frs_val2.append(float(frs_list[2]))
- if float(frs_list[3])==0.0:
- frs_zero_cnt[3] += 1
- frs_val3.append(float(frs_list[3]))
- enc = ser.readline()
- print(enc)
- enc_str = str(enc)
- if ("enc" in enc_str):
- enc_list = enc_str.split("|", 10)
- if (n_cnt == 0):
- init_deg[1:5] = enc_list[1:5]
- if int(enc_list[1])==0:
- enc_zero_cnt[1] += 1
- enc_val1.append(int(enc_list[1]))
- if int(enc_list[2])==0:
- enc_zero_cnt[2] += 1
- enc_val2.append(int(enc_list[2]))
- if int(enc_list[3])==0:
- enc_zero_cnt[3] += 1
- enc_val3.append(int(enc_list[3]))
- if int(enc_list[4])==0:
- enc_zero_cnt[4] += 1
- enc_val4.append(int(enc_list[4]))
- enc_zero_cnt[0] += 1
- n_cnt = n_cnt + 1
- if enc_list[9]=="off":
- enc_last = enc_list
- break;
- ser.close()
- print("End")
- #radius is 9.2mm
- radius = float(9.2/10**3)
- one_degree_len = float((2*math.pi*radius)/1080)
- #degree passed = (1080-init_degree) + (number of rotations * 1080 degrees) + current degree: _(*)_
- if len(self.ax1.lines)>0:
- self.ax1.lines.clear()
- if enc_zero_cnt[1]<=n_cnt-1:
- line1, = self.ax1.plot(enc_val1, 'b', label='Motor1')
- deg_passed[1] = (360-int(init_deg[1])) + (int(enc_last[5])*360) + int(enc_last[1])
- dist_passed[1] = one_degree_len * float(deg_passed[1])
- if enc_zero_cnt[2]<=n_cnt-1:
- deg_passed[2] = (360-int(init_deg[2])) + (int(enc_last[6])*360) + int(enc_last[2])
- dist_passed[2] = one_degree_len * float(deg_passed[2])
- line2, = self.ax1.plot(enc_val2, 'g', label='Motor2')
- if enc_zero_cnt[3]<=n_cnt-1:
- deg_passed[3] = (360-int(init_deg[3])) + (int(enc_last[7])*360) + int(enc_last[3])
- dist_passed[3] = one_degree_len * float(deg_passed[3])
- line3, = self.ax1.plot(enc_val3, 'y', label='Motor3')
- if enc_zero_cnt[4]<=n_cnt-1:
- deg_passed[4] = (360-int(init_deg[4])) + (int(enc_last[8])*360) + int(enc_last[4])
- dist_passed[4] = one_degree_len * float(deg_passed[4])
- line4, = self.ax1.plot(enc_val4, 'm', label='Motor4')
- self.ax1.legend()
- with open("ctrl.cfg","w") as ctrl_cfg:
- ctrl_cfg.write('pos:|' + str(pos_last[1]) + '|' + str(pos_last[2]) + '|' + str(pos_last[3]) + '|' + str(pos_last[4]) + '|\n')
- ctrl_cfg.write('enc:|' + str(enc_last[1]) + '|' + str(enc_last[2]) + '|' + str(enc_last[3]) + '|' + str(enc_last[4]) + '|\n')
- ctrl_cfg.write('angle passed(degrees):|' + str(deg_passed[1]) + '|' + str(deg_passed[2]) + '|' + str(deg_passed[3]) + '|' + str(deg_passed[4]) + '|\n')
- dist_passed_float = [float(i) for i in dist_passed]
- ctrl_cfg.write('distance passed(m):|' + "{:.4f}".format(dist_passed_float[1]) + '|' + "{:.4f}".format(dist_passed_float[2]) + '|' + "{:.4f}".format(dist_passed_float[3]) + '|' + "{:.4f}".format(dist_passed_float[4]) + '|\n')
- if len(self.ax2.lines)>0:
- self.ax2.lines.clear()
- if frs_zero_cnt[1]<=n_cnt-1:
- self.ax2.plot(frs_val1, 'b', label='Motor1')
- if frs_zero_cnt[2]<=n_cnt-1:
- self.ax2.plot(frs_val2, 'g', label='Motor2')
- if frs_zero_cnt[3]<=n_cnt-1:
- self.ax2.plot(frs_val3, 'y', label='Motor3')
- self.ax2.legend()
- for i in range(n_cnt-1):
- if i==0:
- self.tableWidget.setItem(0,0, QTableWidgetItem("data no:"))
- self.tableWidget.setItem(1,0, QTableWidgetItem("enc1:"))
- self.tableWidget.setItem(2,0, QTableWidgetItem("enc2:"))
- self.tableWidget.setItem(3,0, QTableWidgetItem("enc3:"))
- self.tableWidget.setItem(4,0, QTableWidgetItem("enc4:"))
- self.tableWidget.setItem(6,0, QTableWidgetItem("FS1: *0.01 N"))
- self.tableWidget.setItem(7,0, QTableWidgetItem("FS2: *0.01 N"))
- self.tableWidget.setItem(8,0, QTableWidgetItem("FS3: *0.01 N"))
- elif i>=1:
- self.tableWidget.setItem(0,i, QTableWidgetItem(str(i)))
- self.tableWidget.setItem(1,i, QTableWidgetItem(str(enc_val1[i-1])))
- self.tableWidget.setItem(2,i, QTableWidgetItem(str(enc_val2[i-1])))
- self.tableWidget.setItem(3,i, QTableWidgetItem(str(enc_val3[i-1])))
- self.tableWidget.setItem(4,i, QTableWidgetItem(str(enc_val4[i-1])))
- self.tableWidget.setItem(6,i, QTableWidgetItem(str(frs_val1[i-1])))
- self.tableWidget.setItem(7,i, QTableWidgetItem(str(frs_val2[i-1])))
- self.tableWidget.setItem(8,i, QTableWidgetItem(str(frs_val3[i-1])))
- self.canvas.draw()
- self.StopAll_Handler()
- def Button_Right_Handler(self):
- if self.Button_Right.isChecked():
- self.led1.setValue(True)
- self.led1.repaint()
- self.sendType_1()
- else:
- self.led1.value = False
- self.led1.repaint()
- self.sendStop_1()
- def Button_Left_Handler(self):
- if self.Button_Left.isChecked():
- self.led2.setValue(True)
- self.led2.repaint()
- self.sendType_2()
- else:
- self.led2.value = False
- self.led2.repaint()
- self.sendStop_2()
- def Button_Top_Handler(self):
- if self.Button_Top.isChecked():
- self.led3.setValue(True)
- self.led3.repaint()
- self.sendType_3()
- else:
- self.led3.value = False
- self.led3.repaint()
- self.sendStop_3()
- def Button_Roll_Handler(self):
- if self.Button_Roll.isChecked():
- self.led4.setValue(True)
- self.led4.repaint()
- self.sendType_4()
- else:
- self.led4.value = False
- self.led4.repaint()
- self.sendStop_4()
- def StopAll_Handler(self):
- if self.Button_Right.isChecked():
- self.Button_Right.toggle()
- if self.Button_Left.isChecked():
- self.Button_Left.toggle()
- if self.Button_Top.isChecked():
- self.Button_Top.toggle()
- if self.Button_Roll.isChecked():
- self.Button_Roll.toggle()
- self.led1.value = False
- self.led1.repaint()
- self.led2.value = False
- self.led2.repaint()
- self.led3.value = False
- self.led3.repaint()
- self.led4.value = False
- self.led4.repaint()
- self.sendStopAll()
- def sendType_1(self):
- ser=serial.Serial('COM3',9600)
- ser.write(b'1')
- ser.close()
- time.sleep(1)
- print("act: Right")
- self.sendSerial()
- """
- time.sleep(12)
- self.led1.value = False
- self.led1.repaint()
- if self.Button_Right.isChecked():
- self.Button_Right.toggle()
- self.sendStop_1()
- """
- def sendType_2(self):
- ser=serial.Serial('COM3',9600)
- ser.write(b'2')
- ser.close()
- time.sleep(1)
- print("act: Left")
- self.sendSerial()
- """
- time.sleep(12)
- self.led2.value = False
- self.led2.repaint()
- if self.Button_Left.isChecked():
- self.Button_Left.toggle()
- self.sendStop_2()
- """
- def sendType_3(self):
- ser=serial.Serial('COM3',9600)
- ser.write(b'3')
- ser.close()
- time.sleep(1)
- print("act: Top")
- self.sendSerial()
- """
- time.sleep(12)
- self.led3.value = False
- self.led3.repaint()
- if self.Button_Top.isChecked():
- self.Button_Top.toggle()
- self.sendStop_3()
- """
- def sendType_4(self):
- ser=serial.Serial('COM3',9600)
- ser.write(b'4' + b' ')
- ser.close()
- print("act: Roll")
- self.sendSerial()
- def sendStop_1(self):
- self.light = -1
- ser=serial.Serial('COM3',9600)
- ser.write(b'-1')
- ser.close()
- def sendStop_2(self):
- self.light = -2
- ser=serial.Serial('COM3',9600)
- ser.write(b'-2')
- ser.close()
- def sendStop_3(self):
- self.light = -3
- ser=serial.Serial('COM3',9600)
- ser.write(b'-3')
- ser.close()
- def sendStop_4(self):
- self.light = -4
- ser=serial.Serial('COM3',9600)
- ser.write(b'-4')
- ser.close()
- def sendStopAll(self):
- self.light = -5
- ser=serial.Serial('COM3',9600)
- ser.write(b'-5')
- ser.close()
- def createProgressBar(self):
- self.progressBar = QProgressBar()
- self.progressBar.setRange(0, 10000)
- self.progressBar.setValue(0)
- timer = QTimer(self)
- timer.timeout.connect(self.advanceProgressBar)
- timer.start(1000)
- if __name__ == '__main__':
- import sys
- app = QApplication(sys.argv)
- gallery = WidgetGallery()
- gallery.show()
- sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement