From bdbaae9730e35bc593a74a5d2d5f5cc584ad1946 Mon Sep 17 00:00:00 2001 From: anna Date: Mon, 31 Oct 2022 18:29:30 +0300 Subject: [PATCH] small changes --- Main.py | 172 ++++++++++++++++++++++++++------------------------------ 1 file changed, 79 insertions(+), 93 deletions(-) diff --git a/Main.py b/Main.py index ce6d951..ba6f493 100644 --- a/Main.py +++ b/Main.py @@ -27,9 +27,8 @@ from PyQt6.QtWidgets import (QHBoxLayout, QGridLayout, QMenu, QTableWidgetItem, - - ) + ) class AbstractWindow(QMainWindow): @@ -37,7 +36,7 @@ class AbstractWindow(QMainWindow): super().__init__() self.create_actions() self.create_menuBar() - + def create_menuBar(self): menuBar = self.menuBar() self.fileMenu = QMenu("&Файл", self) @@ -47,7 +46,7 @@ class AbstractWindow(QMainWindow): self.fileMenu.addAction(self.exitAction) self.helpMenu.addAction(self.helpContentAction) self.helpMenu.addAction(self.aboutAction) - + def create_actions(self): self.exitAction = QAction("&Выход", self) self.exitAction.triggered.connect(self.exit_click) @@ -58,22 +57,20 @@ class AbstractWindow(QMainWindow): def exit_click(self): self.close() - + def help_click(self): print('Help') # TODO - + def about_click(self): print('About') # TODO - - class Start: def __init__(self): self.number = 0 - self.filename = '' + self.foldername = '' if not QApplication.instance(): self.app = QApplication(sys.argv) else: @@ -81,26 +78,26 @@ class Start: self.window = StartWindow(self) self.draw() self.app.exec() - + def __del__(self): print('destruct') - + def draw(self): self.window.show() - + def change_number(self): - if self.number==2: + if self.number == 2: self.window.close() self.window = MainExperiment1Window(self) if self.number == 1: pass self.draw() - + class StartWindow(AbstractWindow): def __init__(self, parent): super().__init__() - + self.setWindowTitle('Эффект Холла в полупроводниках') self.parent = parent self.centralwidget = QWidget() @@ -108,91 +105,101 @@ class StartWindow(AbstractWindow): self.setCentralWidget(self.centralwidget) self.lineEdit = QLineEdit(placeholderText='Введите фамилию') self.lineEdit.returnPressed.connect(self.enter_name) - + self.flow = QPushButton('измерение потока') self.flow.clicked.connect(self.flow_click) self.flow.setEnabled(False) self.main = QPushButton('основной эксперимент') self.main.clicked.connect(self.main_click) self.main.setEnabled(False) - - self.hbox_layout = QGridLayout(self.centralwidget) + + self.hbox_layout = QGridLayout(self.centralwidget) self.hbox_layout.setRowStretch(1, 1) - self.hbox_layout.addWidget(self.lineEdit, 1, 0, 1, 2) - self.hbox_layout.addWidget(self.flow, 2, 0) - self.hbox_layout.addWidget(self.main, 2, 1) - + self.hbox_layout.addWidget(self.lineEdit, 1, 0, 1, 2) + self.hbox_layout.addWidget(self.flow, 2, 0) + self.hbox_layout.addWidget(self.main, 2, 1) + def flow_click(self): - self.parent.number=1 + self.parent.number = 1 self.parent.change_number() - + def main_click(self): - self.parent.number=2 + self.parent.number = 2 self.parent.change_number() - + def enter_name(self): - self.parent.filename = self.lineEdit.text() + self.parent.foldername = self.lineEdit.text() self.flow.setEnabled(True) self.main.setEnabled(True) self.lineEdit.setReadOnly(True) - - + + class MainExperiment1Window(AbstractWindow): def __init__(self, parent): super().__init__() - + self.setWindowTitle('Основной эксперимент') + self.start_time = 0 self.parent = parent + + # make masthead + self.dataname = 'data.txt' + file = open(os(self.parent.foldername, self.dataname), 'w') + file.write('I_0, mA U_34, mV t, s') + file.close() + self.centralwidget = QWidget() self.resize(1400, 800) self.setCentralWidget(self.centralwidget) - + self.but = QPushButton('Измерение') - self.but.clicked.connect(self.but_click) + # self.but.clicked.connect(self.but_click) self.setCentralWidget(self.but) - - - # grid_layout = QGridLayout(self) # Create QGridLayout - # self.centralwidget.setLayout(grid_layout) # Set this layout in central widget - - # table = QTableWidget(self) # Create a table - # table.setColumnCount(3) #Set three columns - # table.setRowCount(1) # and one row - - # # Set the table headers - # table.setHorizontalHeaderLabels(["Header 1", "Header 2", "Header 3"]) - - # #Set the tooltips to headings - # table.horizontalHeaderItem(0).setToolTip("Column 1 ") - # table.horizontalHeaderItem(1).setToolTip("Column 2 ") - # table.horizontalHeaderItem(2).setToolTip("Column 3 ") - # table.setItem(0, 0, QTableWidgetItem("Text in column 1")) - # table.setItem(0, 1, QTableWidgetItem("Text in column 2")) - # table.setItem(0, 2, QTableWidgetItem("Text in column 3")) - - # # Do the resize of the columns by content - # table.resizeColumnsToContents() - - # grid_layout.addWidget(table, 0, 0) # Adding the table to the grid - + + grid_layout = QGridLayout(self) # Create QGridLayout + self.centralwidget.setLayout(grid_layout) # Set this layout in central widget + + table = QTableWidget(self) # Create a table + table.setColumnCount(3) #Set three columns + table.setRowCount(1) # and one row + + # Set the table headers + table.setHorizontalHeaderLabels(["Header 1", "Header 2", "Header 3"]) + + #Set the tooltips to headings + table.horizontalHeaderItem(0).setToolTip("Column 1 ") + table.horizontalHeaderItem(1).setToolTip("Column 2 ") + table.horizontalHeaderItem(2).setToolTip("Column 3 ") + table.setItem(0, 0, QTableWidgetItem("Text in column 1")) + table.setItem(0, 1, QTableWidgetItem("Text in column 2")) + table.setItem(0, 2, QTableWidgetItem("Text in column 3")) + + # Do the resize of the columns by content + table.resizeColumnsToContents() + + grid_layout.addWidget(table, 0, 0) # Adding the table to the grid + grid_layout.addWidget(self.but, 0, 3) + def but_click(self): + # measure voltage and current volt_name = os.path.join('/dev', 'usbtmc1') - f_volt = open (volt_name, 'w') + f_volt = open(volt_name, 'w') f_volt.write('Measure:Voltage:DC?\n') f_volt.close() amp_name = os.path.join('/dev', 'usbtmc2') - f_amp = open (amp_name, 'w') + f_amp = open(amp_name, 'w') f_amp.write('Measure:Current:DC?\n') f_amp.close() - - f_volt = open (volt_name, 'r') + + f_volt = open(volt_name, 'r') v = f_volt.read(15) - f_amp = open (amp_name, 'r') + f_amp = open(amp_name, 'r') a = f_amp.read(15) f_volt.close() f_amp.close() - s = v +' V '+a+' A '+'\n' - out = open(self.parent.filename, 'a') + current_time = round(time.time()*1000) + s = v + a + str(current_time - self.start_time) + out = open(os(self.parent.foldername, self.dataname), 'a') out.write(s) out.close() @@ -204,43 +211,22 @@ class MainExperiment1Window(AbstractWindow): import time import serial -# configure the serial connections (the parameters differs on the device you are connecting to) -ser = serial.Serial( +ser=serial.Serial( port='/dev/ttyUSB0', baudrate=9600, timeout=1 ) ser.isOpen() -msg = 'SYSTem:REMote\n' +msg='SYSTem:REMote\n' ser.write(msg.encode('ascii')) -# Reading the data from the serial port. This will be running in an infinite loop. -while 1 : - - msg = 'Read?\n' +while 1: + + msg='Read?\n' ser.write(msg.encode('ascii')) time.sleep(1) - - bytesToRead = ser.inWaiting() - data = ser.read(bytesToRead) + + bytesToRead=ser.inWaiting() + data=ser.read(bytesToRead) print(data) - -# ============================================================================= -# f = open (os.path.join('/dev', 'usbtmc1'), 'w') -# f.write('Measure:Voltage:DC?\n') -# f.close() -# f = open (os.path.join('/dev', 'usbtmc1'), 'r') -# a = f.read(15) -# print(a) -# f.close() -# -# f = open (os.path.join('/dev', 'usbtmc2'), 'w') -# f.write('Measure:Current:DC?\n') -# f.close() -# f = open (os.path.join('/dev', 'usbtmc2'), 'r') -# a = f.read(15) -# print(a) -# f.close() -# ============================================================================= -