add new window
This commit is contained in:
		
							parent
							
								
									bf75188f82
								
							
						
					
					
						commit
						6846b95748
					
				| @ -17,6 +17,8 @@ from Abstract_window import AbstractWindow | ||||
| from Main_experiment_window import (MainExperimentDataWindow, | ||||
|                                     MainExperimentChartWindow) | ||||
| from GraduationWindow import GraduationWindow | ||||
| from SignWindow import SignWindow | ||||
| from ResistanceWindow import ResistanceWindow | ||||
| 
 | ||||
| 
 | ||||
| class Start: | ||||
| @ -28,7 +30,11 @@ class Start: | ||||
|         else: | ||||
|             self.app = QApplication.instance() | ||||
|         self.window = StartWindow(self) | ||||
|          | ||||
|         # self.add_ser() | ||||
|         # self.parent.amp_name= os.path.join('/dev', 'usbtmc1') | ||||
|         # self.volt_name = os.path.join('/dev', 'usbtmc0') | ||||
|          | ||||
|         self.draw() | ||||
|         self.app.exec() | ||||
| 
 | ||||
| @ -51,6 +57,9 @@ class Start: | ||||
|         if self.number == 30: | ||||
|             self.window.close() | ||||
|             self.window = SignWindow(self) | ||||
|         if self.number == 40: | ||||
|             self.window.close() | ||||
|             self.window = ResistanceWindow(self) | ||||
|         self.draw() | ||||
|          | ||||
|     def add_ser(self): | ||||
| @ -88,6 +97,11 @@ class StartWindow(AbstractWindow): | ||||
|         self.sign.clicked.connect(self.sign_click) | ||||
|         if not self.parent.foldername: | ||||
|             self.sign.setEnabled(False) | ||||
|              | ||||
|         self.res = QPushButton('Удельная проводимость') | ||||
|         self.res.clicked.connect(self.res_click) | ||||
|         if not self.parent.foldername: | ||||
|             self.res.setEnabled(False) | ||||
|                         | ||||
|         self.main = QPushButton('Основной эксперимент') | ||||
|         self.main.clicked.connect(self.main_click) | ||||
| @ -101,6 +115,7 @@ class StartWindow(AbstractWindow): | ||||
|         self.hbox_layout.addWidget(self.lineEdit, 1, 0, 1, 2) | ||||
|         self.hbox_layout.addWidget(self.flow, 2, 0) | ||||
|         self.hbox_layout.addWidget(self.sign, 3, 0) | ||||
|         self.hbox_layout.addWidget(self.res, 3, 1) | ||||
|         self.hbox_layout.addWidget(self.main, 2, 1) | ||||
| 
 | ||||
|     def flow_click(self): | ||||
| @ -111,6 +126,10 @@ class StartWindow(AbstractWindow): | ||||
|         self.parent.number = 20 | ||||
|         self.parent.change_number() | ||||
|          | ||||
|     def res_click(self): | ||||
|         self.parent.number = 40 | ||||
|         self.parent.change_number() | ||||
|          | ||||
|     def sign_click(self): | ||||
|         self.parent.number = 30 | ||||
|         self.parent.change_number() | ||||
| @ -125,71 +144,11 @@ class StartWindow(AbstractWindow): | ||||
|         self.flow.setEnabled(True) | ||||
|         self.main.setEnabled(True) | ||||
|         self.sign.setEnabled(True) | ||||
|         self.res.setEnabled(True) | ||||
|         self.lineEdit.setReadOnly(True) | ||||
| 
 | ||||
| class SignWindow(AbstractWindow): | ||||
|     def __init__(self, parent): | ||||
|         super().__init__() | ||||
| 
 | ||||
|         self.setWindowTitle('Определение знака носителей') | ||||
|         self.parent = parent | ||||
|          | ||||
|         self.start = QPushButton('Старт') | ||||
|         self.start.clicked.connect(self.start_clicked) | ||||
|         self.start.setEnabled(True) | ||||
| 
 | ||||
|         self.menu = QPushButton('Меню') | ||||
|         self.menu.setEnabled(False) | ||||
|         self.menu.clicked.connect(self.menu_clicked) | ||||
|          | ||||
|         self.with_field = QLabel('С полем: ', self) | ||||
|         self.without_field = QLabel('С полем: ', self) | ||||
|         self.with_field_value = QLabel(self) | ||||
|         self.without_field_value = QLabel(self) | ||||
|                  | ||||
|         self.centralwidget = QWidget() | ||||
|         self.resize(1400, 800) | ||||
|         self.setCentralWidget(self.centralwidget) | ||||
|         self.grid_layout = QGridLayout(self.centralwidget) | ||||
|          | ||||
|         self.grid_layout.addWidget(self.start, 0, 0, 1, -1) | ||||
|         self.grid_layout.addWidget(self.with_field, 1, 0) | ||||
|         self.grid_layout.addWidget(self.with_field_value, 1, 1) | ||||
|         self.grid_layout.addWidget(self.without_field, 2, 0) | ||||
|         self.grid_layout.addWidget(self.without_field_value, 2, 1) | ||||
|         self.grid_layout.addWidget(self.menu, 3, 0, 1, -1) | ||||
|          | ||||
|     def menu_clicked(self): | ||||
|         self.parent.number = 0 | ||||
|         self.parent.change_number() | ||||
| 
 | ||||
|     def start_clicked(self): | ||||
|         self.start.setEnabled(False) | ||||
|         with_field=10 | ||||
|         without_field=15 | ||||
|         # without_field, with_field = self.get_values() | ||||
|         self.with_field_value.setText(str(with_field)+', mV') | ||||
|         self.without_field_value.setText(str(without_field)+', mV') | ||||
|         self.menu.setEnabled(True) | ||||
|          | ||||
|     def measure(self, volt): | ||||
|         msg = 'VOLTage '+str(volt)+'\n' | ||||
|         self.parent.ser.write(msg.encode('ascii')) | ||||
|         time.sleep(1) | ||||
|         volt_name = os.path.join('/dev', 'usbtmc0') | ||||
|         f_volt = open(volt_name, 'w') | ||||
|         f_volt.write('Measure:Voltage:DC?\n') | ||||
|         f_volt.close() | ||||
|         f_volt = open(volt_name, 'r') | ||||
|         v = '{:.9f}'.format(float(f_volt.read(15))*10**3) | ||||
|         f_volt.close() | ||||
|         return v | ||||
|      | ||||
|     def get_values(self): | ||||
|         without_field = self.measure(0) | ||||
|         with_field = self.measure(10) | ||||
|         return without_field, with_field | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| start = Start() | ||||
|  | ||||
| @ -170,20 +170,18 @@ class MainExperimentDataWindow(AbstractWindow): | ||||
|         I_M = self.parent.ser.read(bytesToRead) | ||||
|         self.volt += 5 | ||||
| 
 | ||||
|         volt_name = os.path.join('/dev', 'usbtmc0') | ||||
|         f_volt = open(volt_name, 'w') | ||||
|         f_volt = open(self.parent.volt_name, 'w') | ||||
|         f_volt.write('Measure:Voltage:DC?\n') | ||||
|         f_volt.close() | ||||
|         amp_name = os.path.join('/dev', 'usbtmc1') | ||||
|         f_amp = open(amp_name, 'w') | ||||
|         f_amp = open(self.parent.amp_name, 'w') | ||||
|         f_amp.write('Measure:Current:DC?\n') | ||||
|         f_amp.close() | ||||
| 
 | ||||
|         f_volt = open(volt_name, 'r') | ||||
|         f_volt = open(self.parent.volt_name, 'r') | ||||
|         v = '{:.9f}'.format(float(f_volt.read(15))*10**3) | ||||
|         if self.volt == 0: | ||||
|             self.u_0 = v | ||||
|         f_amp = open(amp_name, 'r') | ||||
|         f_amp = open(self.parent.amp_name, 'r') | ||||
|         a = '{:.9f}'.format(float(f_amp.read(15))*10**3) | ||||
|         print(a) | ||||
|         # protect of errors: | ||||
|  | ||||
							
								
								
									
										95
									
								
								Automation/ResistanceWindow.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								Automation/ResistanceWindow.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,95 @@ | ||||
| #!/usr/bin/env python3 | ||||
| # -*- coding: utf-8 -*- | ||||
| """ | ||||
| Created on Mon Nov 14 21:31:55 2022 | ||||
| 
 | ||||
| @author: anna | ||||
| """ | ||||
| 
 | ||||
| from PyQt6.QtWidgets import (QPushButton, | ||||
|                              QWidget, | ||||
|                              QGridLayout, | ||||
|                              QLabel, | ||||
|                              QLineEdit | ||||
|                              ) | ||||
| from Abstract_window import AbstractWindow | ||||
| 
 | ||||
| 
 | ||||
| class ResistanceWindow(AbstractWindow): | ||||
|     def __init__(self, parent): | ||||
|         super().__init__() | ||||
|      | ||||
|         self.setWindowTitle('Определение удельной проводимости') | ||||
|         self.parent = parent | ||||
|          | ||||
|         self.start = QPushButton('Старт') | ||||
|         self.start.clicked.connect(self.start_clicked) | ||||
|         self.start.setEnabled(False) | ||||
|      | ||||
|         self.menu = QPushButton('Меню') | ||||
|         self.menu.setEnabled(False) | ||||
|         self.menu.clicked.connect(self.menu_clicked) | ||||
|          | ||||
|         self.current = QLabel('Ток через образец: ', self) | ||||
|         self.voltage= QLabel('Напряжение на 3_5: ', self) | ||||
|         self.current_value = QLabel(self) | ||||
|         self.voltage_value = QLabel(self) | ||||
|          | ||||
|         self.line_L = QLineEdit(placeholderText='Введите L_35, мм') | ||||
|         self.line_L.returnPressed.connect(self.enter_L) | ||||
|          | ||||
|         self.line_l = QLineEdit(placeholderText='Введите l, мм') | ||||
|         self.line_l.returnPressed.connect(self.enter_l) | ||||
|                  | ||||
|         self.centralwidget = QWidget() | ||||
|         self.resize(1400, 800) | ||||
|         self.setCentralWidget(self.centralwidget) | ||||
|         self.grid_layout = QGridLayout(self.centralwidget) | ||||
|          | ||||
|         self.grid_layout.addWidget(self.line_L, 0, 0) | ||||
|         self.grid_layout.addWidget(self.line_l, 0, 1) | ||||
|         self.grid_layout.addWidget(self.start, 1, 0, 1, -1) | ||||
|         self.grid_layout.addWidget(self.current, 2, 0) | ||||
|         self.grid_layout.addWidget(self.current_value, 2, 1) | ||||
|         self.grid_layout.addWidget(self.voltage, 3, 0) | ||||
|         self.grid_layout.addWidget(self.voltage_value, 3, 1) | ||||
|         self.grid_layout.addWidget(self.menu, 4, 0, 1, -1) | ||||
|          | ||||
|     def menu_clicked(self): | ||||
|         self.parent.number = 0 | ||||
|         self.parent.change_number() | ||||
|      | ||||
|     def enter_L(self): | ||||
|         self.parent.L=self.line_L.text() | ||||
|         self.line_L.setReadOnly(True) | ||||
|          | ||||
|     def enter_l(self): | ||||
|         self.parent.L=self.line_l.text() | ||||
|         self.start.setEnabled(True) | ||||
|         self.line_l.setReadOnly(True) | ||||
|      | ||||
|     def start_clicked(self): | ||||
|         self.start.setEnabled(False) | ||||
|         current=10 | ||||
|         voltage=15 | ||||
|         # voltage, current = self.measure() | ||||
|         self.current_value.setText(str(current)+', mA') | ||||
|         self.voltage_value.setText(str(voltage)+', mV') | ||||
|         self.menu.setEnabled(True) | ||||
|          | ||||
|     def measure(self): | ||||
|         f_amp = open(self.parent.amp_name, 'w') | ||||
|         f_amp.write('Measure:Current:DC?\n') | ||||
|         f_amp.close() | ||||
|         f_amp = open(self.parent.amp_name, 'r') | ||||
|         a = '{:.9f}'.format(float(f_amp.read(15))*10**3) | ||||
|         f_amp.close() | ||||
|          | ||||
|         f_amp.close() | ||||
|         f_volt = open(self.parent.volt_name, 'w') | ||||
|         f_volt.write('Measure:Voltage:DC?\n') | ||||
|         f_volt.close() | ||||
|         f_volt = open(self.parent.volt_name, 'r') | ||||
|         v = '{:.9f}'.format(float(f_volt.read(15))*10**3) | ||||
|         f_volt.close() | ||||
|         return v, a | ||||
							
								
								
									
										78
									
								
								Automation/SignWindow.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								Automation/SignWindow.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,78 @@ | ||||
| #!/usr/bin/env python3 | ||||
| # -*- coding: utf-8 -*- | ||||
| """ | ||||
| Created on Mon Nov 14 21:00:36 2022 | ||||
| 
 | ||||
| @author: anna | ||||
| """ | ||||
| import os | ||||
| import time | ||||
| from PyQt6.QtWidgets import (QPushButton, | ||||
|                              QWidget, | ||||
|                              QGridLayout, | ||||
|                              QLabel | ||||
|                              ) | ||||
| from Abstract_window import AbstractWindow | ||||
| 
 | ||||
| 
 | ||||
| class SignWindow(AbstractWindow): | ||||
|     def __init__(self, parent): | ||||
|         super().__init__() | ||||
| 
 | ||||
|         self.setWindowTitle('Определение знака носителей') | ||||
|         self.parent = parent | ||||
|          | ||||
|         self.start = QPushButton('Старт') | ||||
|         self.start.clicked.connect(self.start_clicked) | ||||
|         self.start.setEnabled(True) | ||||
| 
 | ||||
|         self.menu = QPushButton('Меню') | ||||
|         self.menu.setEnabled(False) | ||||
|         self.menu.clicked.connect(self.menu_clicked) | ||||
|          | ||||
|         self.with_field = QLabel('С полем: ', self) | ||||
|         self.without_field = QLabel('С полем: ', self) | ||||
|         self.with_field_value = QLabel(self) | ||||
|         self.without_field_value = QLabel(self) | ||||
|                  | ||||
|         self.centralwidget = QWidget() | ||||
|         self.resize(1400, 800) | ||||
|         self.setCentralWidget(self.centralwidget) | ||||
|         self.grid_layout = QGridLayout(self.centralwidget) | ||||
|          | ||||
|         self.grid_layout.addWidget(self.start, 0, 0, 1, -1) | ||||
|         self.grid_layout.addWidget(self.with_field, 1, 0) | ||||
|         self.grid_layout.addWidget(self.with_field_value, 1, 1) | ||||
|         self.grid_layout.addWidget(self.without_field, 2, 0) | ||||
|         self.grid_layout.addWidget(self.without_field_value, 2, 1) | ||||
|         self.grid_layout.addWidget(self.menu, 3, 0, 1, -1) | ||||
|          | ||||
|     def menu_clicked(self): | ||||
|         self.parent.number = 0 | ||||
|         self.parent.change_number() | ||||
| 
 | ||||
|     def start_clicked(self): | ||||
|         self.start.setEnabled(False) | ||||
|         with_field=10 | ||||
|         without_field=15 | ||||
|         # without_field, with_field = self.get_values() | ||||
|         self.with_field_value.setText(str(with_field)+', mV') | ||||
|         self.without_field_value.setText(str(without_field)+', mV') | ||||
|         self.menu.setEnabled(True) | ||||
|          | ||||
|     def measure(self, volt): | ||||
|         msg = 'VOLTage '+str(volt)+'\n' | ||||
|         self.parent.ser.write(msg.encode('ascii')) | ||||
|         time.sleep(1) | ||||
|         f_volt = open(self.parent.volt_name, 'w') | ||||
|         f_volt.write('Measure:Voltage:DC?\n') | ||||
|         f_volt.close() | ||||
|         f_volt = open(self.parent.volt_name, 'r') | ||||
|         v = '{:.9f}'.format(float(f_volt.read(15))*10**3) | ||||
|         f_volt.close() | ||||
|         return v | ||||
|      | ||||
|     def get_values(self): | ||||
|         without_field = self.measure(0) | ||||
|         with_field = self.measure(10) | ||||
|         return without_field, with_field | ||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Automation/__pycache__/ResistanceWindow.cpython-39.pyc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Automation/__pycache__/ResistanceWindow.cpython-39.pyc
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Automation/__pycache__/SignWindow.cpython-39.pyc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Automation/__pycache__/SignWindow.cpython-39.pyc
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user