update 参数调试

This commit is contained in:
FrankCV2048
2024-09-02 22:56:19 +08:00
parent 0ac8f8e86f
commit 76a9a2e676
8 changed files with 312 additions and 49981 deletions

163
app.py
View File

@ -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 {