✅ update 参数调试
This commit is contained in:
163
app.py
163
app.py
@ -2,6 +2,9 @@ import configparser
|
||||
import json
|
||||
import queue
|
||||
import sys
|
||||
from multiprocessing import Process
|
||||
from PySide6.QtCore import QThread, Signal, Slot
|
||||
from PySide6.QtGui import QIntValidator
|
||||
from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton
|
||||
from datetime import datetime
|
||||
from CU.Command import FeedCommand
|
||||
@ -17,17 +20,16 @@ from Model.Position import Real_Position
|
||||
from threading import Thread
|
||||
from CU.Command import Status
|
||||
|
||||
|
||||
|
||||
class MainWindow(QMainWindow,Ui_MainWindow):
|
||||
def __init__(self):
|
||||
super(MainWindow, self).__init__()
|
||||
self.setupUi(self)
|
||||
self.init_UI()
|
||||
self.init_Run()
|
||||
self.init_FeedLine()
|
||||
self.init_robot_info()
|
||||
start_Runing()
|
||||
self.init_FeedLine()
|
||||
self.start_Runing()
|
||||
|
||||
|
||||
def init_UI(self):
|
||||
self.horizontalSlider_J1.sliderReleased.connect(self.slider_valueChanged)
|
||||
@ -45,8 +47,15 @@ class MainWindow(QMainWindow,Ui_MainWindow):
|
||||
self.pushButton_AddNum.clicked.connect(self.send_addNum_button_click)
|
||||
self.pushButton_SubNum.clicked.connect(self.send_subNum_button_click)
|
||||
self.pushButton_num_free.clicked.connect(self.send_num_button_click)
|
||||
self.lineEdit_j1.returnPressed.connect(self.send_position_returnPressed)
|
||||
self.lineEdit_j2.returnPressed.connect(self.send_position_returnPressed)
|
||||
self.lineEdit_j3.returnPressed.connect(self.send_position_returnPressed)
|
||||
self.lineEdit_j4.returnPressed.connect(self.send_position_returnPressed)
|
||||
self.lineEdit_j5.returnPressed.connect(self.send_position_returnPressed)
|
||||
self.lineEdit_j6.returnPressed.connect(self.send_position_returnPressed)
|
||||
|
||||
self.lineEdit_num.returnPressed.connect(self.send_custom_num_returnPressed)
|
||||
int_validator = QIntValidator(0, 100, self)
|
||||
int_validator = QIntValidator(0, 100, self.lineEdit_num)
|
||||
self.lineEdit_num.setValidator(int_validator)
|
||||
|
||||
# self.horizontalSlider_J1.sliderReleased
|
||||
@ -58,7 +67,7 @@ class MainWindow(QMainWindow,Ui_MainWindow):
|
||||
|
||||
self.command_position_quene = Queue()
|
||||
self.status_address = DataAddress()
|
||||
self.feedLine_dict = dir()
|
||||
self.feedLine_dict = {}
|
||||
self.command_quene = Queue()
|
||||
self.main_threading = None
|
||||
|
||||
@ -66,65 +75,67 @@ class MainWindow(QMainWindow,Ui_MainWindow):
|
||||
ip = self.configReader.get('Robot_Feed', 'IPAddress')
|
||||
port = int(self.configReader.get('Robot_Feed', 'Port'))
|
||||
self.robotClient = RobotClient(ip, port, self.command_position_quene, self.status_address)
|
||||
self.feeding = Feeding(self.robotClient) # 临时
|
||||
self.last_time=time.time()
|
||||
try:
|
||||
self.robotClient.CreatConnect()
|
||||
except:
|
||||
self.set_label_status_style(False)
|
||||
return Error_Code.SYS_NETERROR
|
||||
|
||||
if self.robotClient.is_Connect():
|
||||
if self.robotClient.connected:
|
||||
return 0
|
||||
else:
|
||||
return Error_Code.NETERROR
|
||||
self.feeding = Feeding(self.robotClient) #临时
|
||||
return Error_Code.SYS_NETERROR
|
||||
|
||||
|
||||
def init_FeedLine(self):
|
||||
line_count = self.configReader.get('Robot_Feed', 'LineCount', fallback=0)
|
||||
self.configReader.read('Config/FeedLine.ini')
|
||||
for i in range(line_count):
|
||||
for i in range(int(line_count)):
|
||||
line_str = f'FeedLine{i+1}'
|
||||
safe_position = Real_Position()
|
||||
photo_position = Real_Position()
|
||||
feed_position = Real_Position()
|
||||
|
||||
safe_position.X = self.configReader.get(line_str, 'SafePosition_x', fallback=0)
|
||||
safe_position.Y = self.configReader.get(line_str, 'SafePosition_y', fallback=0)
|
||||
safe_position.Z = self.configReader.get(line_str, 'SafePosition_z', fallback=0)
|
||||
safe_position.U = self.configReader.get(line_str, 'SafePosition_u', fallback=0)
|
||||
safe_position.V = self.configReader.get(line_str, 'SafePosition_v', fallback=0)
|
||||
safe_position.W = self.configReader.get(line_str, 'SafePosition_w', fallback=0)
|
||||
safe_position.X = int(self.configReader.get(line_str, 'SafePosition_x', fallback=0))
|
||||
safe_position.Y = int(self.configReader.get(line_str, 'SafePosition_y', fallback=0))
|
||||
safe_position.Z = int(self.configReader.get(line_str, 'SafePosition_z', fallback=0))
|
||||
safe_position.U = int(self.configReader.get(line_str, 'SafePosition_u', fallback=0))
|
||||
safe_position.V = int(self.configReader.get(line_str, 'SafePosition_v', fallback=0))
|
||||
safe_position.W = int(self.configReader.get(line_str, 'SafePosition_w', fallback=0))
|
||||
|
||||
photo_position.X = self.configReader.get(line_str, 'PhotoPosition_x', fallback=0)
|
||||
photo_position.Y = self.configReader.get(line_str, 'PhotoPosition_y', fallback=0)
|
||||
photo_position.Z = self.configReader.get(line_str, 'PhotoPosition_z', fallback=0)
|
||||
photo_position.U = self.configReader.get(line_str, 'PhotoPosition_u', fallback=0)
|
||||
photo_position.V = self.configReader.get(line_str, 'PhotoPosition_v', fallback=0)
|
||||
photo_position.W = self.configReader.get(line_str, 'PhotoPosition_w', fallback=0)
|
||||
photo_position.X = int(self.configReader.get(line_str, 'PhotoPosition_x', fallback=0))
|
||||
photo_position.Y = int(self.configReader.get(line_str, 'PhotoPosition_y', fallback=0))
|
||||
photo_position.Z = int(self.configReader.get(line_str, 'PhotoPosition_z', fallback=0))
|
||||
photo_position.U = int(self.configReader.get(line_str, 'PhotoPosition_u', fallback=0))
|
||||
photo_position.V = int(self.configReader.get(line_str, 'PhotoPosition_v', fallback=0))
|
||||
photo_position.W = int(self.configReader.get(line_str, 'PhotoPosition_w', fallback=0))
|
||||
|
||||
|
||||
feed_position.X = self.configReader.get(line_str, 'FeedPosition_x', fallback=0)
|
||||
feed_position.Y = self.configReader.get(line_str, 'FeedPosition_y', fallback=0)
|
||||
feed_position.Z = self.configReader.get(line_str, 'FeedPosition_z', fallback=0)
|
||||
feed_position.U = self.configReader.get(line_str, 'FeedPosition_u', fallback=0)
|
||||
feed_position.V = self.configReader.get(line_str, 'FeedPosition_v', fallback=0)
|
||||
feed_position.W = self.configReader.get(line_str, 'FeedPosition_w', fallback=0)
|
||||
feed_position.X = int(self.configReader.get(line_str, 'FeedPosition_x', fallback=0))
|
||||
feed_position.Y = int(self.configReader.get(line_str, 'FeedPosition_y', fallback=0))
|
||||
feed_position.Z = int(self.configReader.get(line_str, 'FeedPosition_z', fallback=0))
|
||||
feed_position.U = int(self.configReader.get(line_str, 'FeedPosition_u', fallback=0))
|
||||
feed_position.V = int(self.configReader.get(line_str, 'FeedPosition_v', fallback=0))
|
||||
feed_position.W = int(self.configReader.get(line_str, 'FeedPosition_w', fallback=0))
|
||||
|
||||
self.feedLine_dict[str(i+1)] = FeedLine(safe_position, photo_position, feed_position)
|
||||
|
||||
pass
|
||||
|
||||
def init_robot_info(self):
|
||||
j1_min = int(self.configReader.get('Robot', 'j1_min'))
|
||||
j1_max = int(self.configReader.get('Robot', 'j1_max'))
|
||||
j2_min = int(self.configReader.get('Robot', 'j2_min'))
|
||||
j2_max = int(self.configReader.get('Robot', 'j2_max'))
|
||||
j3_min = int(self.configReader.get('Robot', 'j3_min'))
|
||||
j3_max = int(self.configReader.get('Robot', 'j3_max'))
|
||||
j4_min = int(self.configReader.get('Robot', 'j4_min'))
|
||||
j4_max = int(self.configReader.get('Robot', 'j4_max'))
|
||||
j5_min = int(self.configReader.get('Robot', 'j5_min'))
|
||||
j5_max = int(self.configReader.get('Robot', 'j5_max'))
|
||||
j6_min = int(self.configReader.get('Robot', 'j6_min'))
|
||||
j6_max = int(self.configReader.get('Robot', 'j6_max'))
|
||||
j1_min = int(self.configReader.get('Robot_Feed', 'j1_min'))
|
||||
j1_max = int(self.configReader.get('Robot_Feed', 'j1_max'))
|
||||
j2_min = int(self.configReader.get('Robot_Feed', 'j2_min'))
|
||||
j2_max = int(self.configReader.get('Robot_Feed', 'j2_max'))
|
||||
j3_min = int(self.configReader.get('Robot_Feed', 'j3_min'))
|
||||
j3_max = int(self.configReader.get('Robot_Feed', 'j3_max'))
|
||||
j4_min = int(self.configReader.get('Robot_Feed', 'j4_min'))
|
||||
j4_max = int(self.configReader.get('Robot_Feed', 'j4_max'))
|
||||
j5_min = int(self.configReader.get('Robot_Feed', 'j5_min'))
|
||||
j5_max = int(self.configReader.get('Robot_Feed', 'j5_max'))
|
||||
j6_min = int(self.configReader.get('Robot_Feed', 'j6_min'))
|
||||
j6_max = int(self.configReader.get('Robot_Feed', 'j6_max'))
|
||||
self.horizontalSlider_J1.setMinimum(j1_min)
|
||||
self.horizontalSlider_J1.setMaximum(j1_max)
|
||||
self.horizontalSlider_J2.setMinimum(j2_min)
|
||||
@ -151,9 +162,14 @@ class MainWindow(QMainWindow,Ui_MainWindow):
|
||||
self.label_j6_max.setText(str(j6_max))
|
||||
|
||||
def start_Runing(self):
|
||||
self.main_threading = Thread(target=run)
|
||||
self.main_threading = Thread(target=self.run)
|
||||
self.robot_connect_threading = Thread(target=self.robotClient.run)
|
||||
self.main_threading.start()
|
||||
|
||||
|
||||
self.robot_connect_threading.start()
|
||||
pass
|
||||
|
||||
def send_startFeed_button_click(self):
|
||||
num = self.horizontalSlider_feedingNum.value()
|
||||
line_index = str(self.comboBox_lineIndex.currentIndex()+1)
|
||||
@ -165,6 +181,7 @@ class MainWindow(QMainWindow,Ui_MainWindow):
|
||||
if button.text() != "自定义":
|
||||
num = int(button.text())
|
||||
self.horizontalSlider_feedingNum.setMaximum(num)
|
||||
self.label_maxNum.setText(str(num))
|
||||
self.horizontalSlider_feedingNum.setValue(0)
|
||||
else:
|
||||
self.pushButton_num_free.hide()
|
||||
@ -180,14 +197,16 @@ class MainWindow(QMainWindow,Ui_MainWindow):
|
||||
def send_custom_num_returnPressed(self):
|
||||
self.pushButton_num_free.show()
|
||||
self.lineEdit_num.hide()
|
||||
self.horizontalSlider_feedingNum.setValue(int(self.lineEdit_num.text()))
|
||||
self.horizontalSlider_feedingNum.setMaximum(int(self.lineEdit_num.text()))
|
||||
self.horizontalSlider_feedingNum.setValue(0)
|
||||
self.label_maxNum.setText(self.lineEdit_num.text())
|
||||
|
||||
def slider_valueChanged(self):
|
||||
global last_time
|
||||
|
||||
now_time = time.time()
|
||||
if(now_time-last_time) < 2:
|
||||
if(now_time-self.last_time) < 2:
|
||||
return
|
||||
last_time = now_time
|
||||
self.last_time = now_time
|
||||
position_instruction = Instruction()
|
||||
position_instruction.m0 = self.horizontalSlider_J1.value()
|
||||
position_instruction.m1 = self.horizontalSlider_J2.value()
|
||||
@ -196,12 +215,14 @@ class MainWindow(QMainWindow,Ui_MainWindow):
|
||||
position_instruction.m4 = self.horizontalSlider_J5.value()
|
||||
position_instruction.m5 = self.horizontalSlider_J6.value()
|
||||
|
||||
self.textEdit_j1.setText(str(self.horizontalSlider_J1.value()))
|
||||
self.textEdit_j2.setText(str(self.horizontalSlider_J2.value()))
|
||||
self.textEdit_j3.setText(str(self.horizontalSlider_J3.value()))
|
||||
self.textEdit_j4.setText(str(self.horizontalSlider_J4.value()))
|
||||
self.textEdit_j5.setText(str(self.horizontalSlider_J5.value()))
|
||||
self.textEdit_j6.setText(str(self.horizontalSlider_J6.value()))
|
||||
|
||||
|
||||
self.lineEdit_j1.setText(str(self.horizontalSlider_J1.value()))
|
||||
self.lineEdit_j2.setText(str(self.horizontalSlider_J2.value()))
|
||||
self.lineEdit_j3.setText(str(self.horizontalSlider_J3.value()))
|
||||
self.lineEdit_j4.setText(str(self.horizontalSlider_J4.value()))
|
||||
self.lineEdit_j5.setText(str(self.horizontalSlider_J5.value()))
|
||||
self.lineEdit_j6.setText(str(self.horizontalSlider_J6.value()))
|
||||
|
||||
instruction_command = CMDInstructRequest()
|
||||
instruction_command.instructions.append(vars(position_instruction))
|
||||
@ -219,7 +240,27 @@ class MainWindow(QMainWindow,Ui_MainWindow):
|
||||
# request_command = vars(cmd_command)
|
||||
# self.robotClient.add_sendQuene(request_command)
|
||||
return
|
||||
def send_position_returnPressed(self):
|
||||
position_instruction = Instruction()
|
||||
position_instruction.m0 = int(self.lineEdit_j1.text())
|
||||
position_instruction.m1 = int(self.lineEdit_j2.text())
|
||||
position_instruction.m2 = int(self.lineEdit_j3.text())
|
||||
position_instruction.m3 = int(self.lineEdit_j4.text())
|
||||
position_instruction.m4 = int(self.lineEdit_j5.text())
|
||||
position_instruction.m5 = int(self.lineEdit_j6.text())
|
||||
|
||||
self.horizontalSlider_J1.setValue(int(self.lineEdit_j1.text()))
|
||||
self.horizontalSlider_J2.setValue(int(self.lineEdit_j2.text()))
|
||||
self.horizontalSlider_J3.setValue(int(self.lineEdit_j3.text()))
|
||||
self.horizontalSlider_J4.setValue(int(self.lineEdit_j4.text()))
|
||||
self.horizontalSlider_J5.setValue(int(self.lineEdit_j5.text()))
|
||||
self.horizontalSlider_J6.setValue(int(self.lineEdit_j6.text()))
|
||||
|
||||
instruction_command = CMDInstructRequest()
|
||||
instruction_command.instructions.append(vars(position_instruction))
|
||||
request_command = vars(instruction_command)
|
||||
print(request_command)
|
||||
self.robotClient.add_sendQuene(request_command)
|
||||
|
||||
|
||||
|
||||
@ -229,7 +270,7 @@ class MainWindow(QMainWindow,Ui_MainWindow):
|
||||
|
||||
def run(self):
|
||||
while True:
|
||||
|
||||
time.sleep(0.2)
|
||||
if not self.command_quene.empty():
|
||||
command = self.command_quene.get()
|
||||
if isinstance(command, FeedCommand) and command.status == Status.Prepareing:
|
||||
@ -238,18 +279,21 @@ class MainWindow(QMainWindow,Ui_MainWindow):
|
||||
self.feeding.feedStatus = FeedStatus.FStart
|
||||
command.status = Status.Runing
|
||||
|
||||
|
||||
self.feeding.run()
|
||||
updateUI(self)
|
||||
try:
|
||||
self.feeding.run()
|
||||
except:
|
||||
print(Error_Code.SYS_NONEPoint)
|
||||
self.updateUI()
|
||||
|
||||
#pass #主线程
|
||||
|
||||
def updateUI(self):
|
||||
if self.robotClient.is_Connect():
|
||||
if self.robotClient.connected:
|
||||
self.set_label_status_style(True)
|
||||
else:
|
||||
self.set_label_status_style(False)
|
||||
self.horizontalSlider_feedingNum.setValue(self.horizontalSlider_feedingNum.maximum()-self.feeding.feedConfig.num)
|
||||
if self.feeding.feedStatus != FeedStatus.FNone:
|
||||
self.horizontalSlider_feedingNum.setValue(self.horizontalSlider_feedingNum.maximum()-self.feeding.feedConfig.num)
|
||||
if self.horizontalSlider_feedingNum.value() == 0:
|
||||
self.stackedWidget_num.setCurrentIndex(0)
|
||||
else:
|
||||
@ -258,8 +302,7 @@ class MainWindow(QMainWindow,Ui_MainWindow):
|
||||
self.label_date.setText(datetime.now().strftime("%Y-%m-%d"))
|
||||
self.label_time.setText(datetime.now().strftime("%H:%M:%S"))
|
||||
|
||||
def set_label_status_style(self,connected:bool):
|
||||
palette = self.label_connect_status.palette()
|
||||
def set_label_status_style(self, connected: bool):
|
||||
if connected:
|
||||
self.label_connect_status.setStyleSheet("""
|
||||
QLabel {
|
||||
|
||||
Reference in New Issue
Block a user