diff --git a/CU/Command.py b/CU/Command.py new file mode 100644 index 0000000..0c732db --- /dev/null +++ b/CU/Command.py @@ -0,0 +1,12 @@ +from enum import Enum +class Status(Enum): + Prepareing = 0 + Runing = 1 + End = 2 + + +class Command: + def __init__(self): + self.status = Status.Prepareing + pass + diff --git a/CU/Feeding.py b/CU/Feeding.py new file mode 100644 index 0000000..2330b3b --- /dev/null +++ b/CU/Feeding.py @@ -0,0 +1,23 @@ +from Model.Position import Real_Position + +class FeedLine: + def __init__(self,safe_position:Real_Position,photo_position:Real_Position,feed_position:Real_Position): + self.safe_position = safe_position + self.photo_position = photo_position + self.feed_position = feed_position + + + +class FeedingConfig: + def __init__(self, num:int, feedLine:FeedLine): + self.num = num + self.feedLine = feedLine + + + def get_line_info(self): + pass + + +class Feeding(): + def __init__(self,feedingConfig): + pass diff --git a/Config/FeedLine.ini b/Config/FeedLine.ini new file mode 100644 index 0000000..8c7d88a --- /dev/null +++ b/Config/FeedLine.ini @@ -0,0 +1,21 @@ +[FeedLine1] +SafePosition_x=0 +SafePosition_y=0 +SafePosition_z=0 +SafePosition_u=0 +SafePosition_v=0 +SafePosition_w=0 +PhotoPosition_x=0 +PhotoPosition_y=0 +PhotoPosition_z=0 +PhotoPosition_u=0 +PhotoPosition_v=0 +PhotoPosition_w=0 +FeedPosition_x=0 +FeedPosition_y=0 +FeedPosition_z=0 +FeedPosition_u=0 +FeedPosition_v=0 +FeedPosition_w=0 + + diff --git a/Model/Position.py b/Model/Position.py index 3930236..7336cba 100644 --- a/Model/Position.py +++ b/Model/Position.py @@ -13,6 +13,24 @@ class Detection_Position: self.W = 0.0 def init_position(self,X,Y,Z,U,V,W): + self.X = X + self.Y = Y + self.Z = Z + self.U = U + self.V = V + self.W = W + + +class Real_Position: + def __init__(self): + self.X = 0.0 + self.Y = 0.0 + self.Z = 0.0 + self.U = 0.0 + self.V = 0.0 + self.W = 0.0 + + def init_position(self, X, Y, Z, U, V, W): self.X = X self.Y = Y self.Z = Z diff --git a/Seting.ini b/Seting.ini index 9bc42b1..ead8ed5 100644 --- a/Seting.ini +++ b/Seting.ini @@ -16,6 +16,7 @@ j5_min=-150 j5_max=+150 j6_min=-150 j6_max=+150 +LineCount=1 [Camera_Feed] diff --git a/app.py b/app.py index 76721c5..8ef1854 100644 --- a/app.py +++ b/app.py @@ -3,13 +3,16 @@ import json import queue import sys from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton + +from CU.Feeding import FeedLine, FeedingConfig from ui_untitled import Ui_MainWindow from COM.COM_Robot import RobotClient -from Expection import ErrorCode +from Expection import Error_Code from queue import Queue from Model.RobotModel import * import time from queue import Queue +from Model.Position import Real_Position @@ -27,12 +30,18 @@ class MainWindow(QMainWindow,Ui_MainWindow): self.horizontalSlider_J5.sliderReleased.connect(self.slider_valueChanged) self.horizontalSlider_J6.sliderReleased.connect(self.slider_valueChanged) #self.horizontalSlider_J1.sliderReleased - self.command_quene = Queue() + self.pushButton_startFeed.clicked.connect(self.send_startFeed_button_click) + self.command_position_quene = Queue() self.status_address = DataAddress() + self.feedLine_dict = dir() + self.command_quene = Queue() self.init_Run() self.init_robot_info() - + def send_startFeed_button_click(self): + num = self.horizontalSlider_feedingNum.value() + line_index = str(self.comboBox_lineIndex.currentIndex()+1) + self.command_quene.put(FeedingConfig(num, line_index)) def slider_valueChanged(self): global last_time @@ -81,13 +90,52 @@ class MainWindow(QMainWindow,Ui_MainWindow): self.configReader.read('Seting.ini') ip = self.configReader.get('Robot_Feed', 'IPAddress') port= int(self.configReader.get('Robot_Feed', 'Port')) - self.robotClient = RobotClient(ip, port,self.command_quene,self.status_address) + self.robotClient = RobotClient(ip, port,self.command_position_quene,self.status_address) self.robotClient.CreatConnect() + self.read_FeedLine() + if self.robotClient.is_Connect(): return 0 else: - return ErrorCode.NETERROR + return Error_Code.NETERROR + + def read_FeedLine(self): + line_count = self.configReader.get('Robot_Feed', 'LineCount', fallback=0) + self.configReader.read('Config/FeedLine.ini') + for i in range(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) + + 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) + + + 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) + + 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')) @@ -126,7 +174,8 @@ class MainWindow(QMainWindow,Ui_MainWindow): self.label_j6_min.setText(j6_min.__str__()) self.label_j6_max.setText(str(j6_max)) - + def run(self): + pass #主线程 def send_position_command(self,position): diff --git a/test.py b/test.py index 99c2935..e69de29 100644 --- a/test.py +++ b/test.py @@ -1,35 +0,0 @@ -import asyncio - - -async def send_update_command(): - while True: - command = "update_position_command\n" - print('command') - await asyncio.sleep(2) - #await writer.drain() - await asyncio.sleep(1) - - -async def query_robot_status(): - while True: - command = "query_status_command\n" - print('status') - await asyncio.sleep(1) - # await writer.drain() - #feedback = await reader.read(1024) - #if feedback: - # print("Received feedback:", feedback.decode()) - await asyncio.sleep(2) - - -async def main(): - #reader, writer = await asyncio.open_connection('f', 'f') - - await asyncio.gather( - send_update_command(), - query_robot_status() - ) - - print('UI') - -asyncio.run(main()) diff --git a/ui_untitled.py b/ui_untitled.py index 532d989..eff2e9c 100644 --- a/ui_untitled.py +++ b/ui_untitled.py @@ -72,23 +72,22 @@ class Ui_MainWindow(object): self.pushButton_3.setObjectName(u"pushButton_3") self.pushButton_3.setGeometry(QRect(10, 0, 101, 31)) self.pushButton_3.setStyleSheet(u"background-color: #F9FAFC;\n" -"font: 12pt \"\u6977\u4f53\";\n" +"font: 700 9pt \"Microsoft YaHei UI\";\n" +"\n" "border: 1px solid #dcdfe6;\n" "border-radius: 10px;") - icon = QIcon(QIcon.fromTheme(QIcon.ThemeIcon.ListAdd)) - self.pushButton_3.setIcon(icon) self.pushButton_4 = QPushButton(self.frame_2) self.pushButton_4.setObjectName(u"pushButton_4") self.pushButton_4.setGeometry(QRect(140, 0, 101, 31)) self.pushButton_4.setStyleSheet(u"background-color: #F9FAFC;\n" -"font: 12pt \"\u6977\u4f53\";\n" +"font: 700 9pt \"Microsoft YaHei UI\";\n" "border: 1px solid #dcdfe6;\n" "border-radius: 10px;") self.pushButton_5 = QPushButton(self.frame_2) self.pushButton_5.setObjectName(u"pushButton_5") self.pushButton_5.setGeometry(QRect(270, 0, 101, 31)) self.pushButton_5.setStyleSheet(u"background-color: #F9FAFC;\n" -"font: 12pt \"\u6977\u4f53\";\n" +"font: 700 9pt \"Microsoft YaHei UI\";\n" "border: 1px solid #dcdfe6;\n" "border-radius: 10px;") self.frame_3 = QFrame(self.frame_2) @@ -100,14 +99,14 @@ class Ui_MainWindow(object): self.label_4 = QLabel(self.frame_3) self.label_4.setObjectName(u"label_4") self.label_4.setGeometry(QRect(10, 10, 481, 261)) - self.label_4.setStyleSheet(u"border-image: url(:/Image/Image/robot.png);\n" + self.label_4.setStyleSheet(u"border-image: url(:bg/Image/robot.png);\n" "background-position:center;\n" "background-repeat:no-repeat;") self.label_4.setScaledContents(True) - self.horizontalSlider = QSlider(self.frame_3) - self.horizontalSlider.setObjectName(u"horizontalSlider") - self.horizontalSlider.setGeometry(QRect(520, 150, 271, 41)) - self.horizontalSlider.setStyleSheet(u"QSlider\n" + self.horizontalSlider_feedingNum = QSlider(self.frame_3) + self.horizontalSlider_feedingNum.setObjectName(u"horizontalSlider_feedingNum") + self.horizontalSlider_feedingNum.setGeometry(QRect(520, 150, 271, 41)) + self.horizontalSlider_feedingNum.setStyleSheet(u"QSlider\n" "{\n" " background-color: #FFFFFF; \n" " border-style: outset; \n" @@ -129,8 +128,14 @@ class Ui_MainWindow(object): " margin: -5px 3px -5px 6px;\n" " border-radius:5px; \n" " border: 3px solid #007900;\n" -"}") - self.horizontalSlider.setOrientation(Qt.Orientation.Horizontal) +"}\n" +"\n" +"\n" +"\n" +"\n" +"\n" +"") + self.horizontalSlider_feedingNum.setOrientation(Qt.Orientation.Horizontal) self.label_5 = QLabel(self.frame_3) self.label_5.setObjectName(u"label_5") self.label_5.setGeometry(QRect(800, 160, 31, 21)) @@ -352,6 +357,7 @@ class Ui_MainWindow(object): " background-color:rgb(0, 255, 0);\n" "}\n" "") + icon = QIcon(QIcon.fromTheme(QIcon.ThemeIcon.ListAdd)) self.pushButton_27.setIcon(icon) self.pushButton_28 = QPushButton(self.frame_4) self.pushButton_28.setObjectName(u"pushButton_28") @@ -545,12 +551,12 @@ class Ui_MainWindow(object): " \n" " background-color: #E6ECF5;\n" "}") - self.comboBox = QComboBox(self.frame_3) - self.comboBox.addItem("") - self.comboBox.addItem("") - self.comboBox.setObjectName(u"comboBox") - self.comboBox.setGeometry(QRect(520, 10, 271, 41)) - self.comboBox.setStyleSheet(u"QComboBox {\n" + self.comboBox_lineIndex = QComboBox(self.frame_3) + self.comboBox_lineIndex.addItem("") + self.comboBox_lineIndex.addItem("") + self.comboBox_lineIndex.setObjectName(u"comboBox_lineIndex") + self.comboBox_lineIndex.setGeometry(QRect(520, 10, 271, 41)) + self.comboBox_lineIndex.setStyleSheet(u"QComboBox {\n" " border-radius: 10px;\n" " padding: 5px 5px 5px 5px;\n" " background-color: #2c2c2c;\n" @@ -578,7 +584,7 @@ class Ui_MainWindow(object): "}") self.lineEdit.raise_() self.label_4.raise_() - self.horizontalSlider.raise_() + self.horizontalSlider_feedingNum.raise_() self.label_5.raise_() self.pushButton_20.raise_() self.pushButton_21.raise_() @@ -589,7 +595,7 @@ class Ui_MainWindow(object): self.pushButton_26.raise_() self.frame_4.raise_() self.textEdit.raise_() - self.comboBox.raise_() + self.comboBox_lineIndex.raise_() self.pushButton_16 = QPushButton(self.frame_2) self.pushButton_16.setObjectName(u"pushButton_16") self.pushButton_16.setGeometry(QRect(560, 510, 91, 31)) @@ -642,10 +648,10 @@ class Ui_MainWindow(object): "") icon4 = QIcon(QIcon.fromTheme(QIcon.ThemeIcon.InputMouse)) self.pushButton_19.setIcon(icon4) - self.pushButton_17 = QPushButton(self.frame_2) - self.pushButton_17.setObjectName(u"pushButton_17") - self.pushButton_17.setGeometry(QRect(460, 510, 91, 31)) - self.pushButton_17.setStyleSheet(u"*{\n" + self.pushButton_startFeed = QPushButton(self.frame_2) + self.pushButton_startFeed.setObjectName(u"pushButton_startFeed") + self.pushButton_startFeed.setGeometry(QRect(360, 510, 91, 31)) + self.pushButton_startFeed.setStyleSheet(u"*{\n" "background-color: #499C54;\n" "font: 9pt \"\u6977\u4f53\";\n" "border: 1px solid #dcdfe6;\n" @@ -657,7 +663,23 @@ class Ui_MainWindow(object): "}\n" "") icon5 = QIcon(QIcon.fromTheme(QIcon.ThemeIcon.SystemShutdown)) - self.pushButton_17.setIcon(icon5) + self.pushButton_startFeed.setIcon(icon5) + self.pushButton_39 = QPushButton(self.frame_2) + self.pushButton_39.setObjectName(u"pushButton_39") + self.pushButton_39.setGeometry(QRect(460, 510, 91, 31)) + self.pushButton_39.setStyleSheet(u"*{\n" +"background-color: #FFFFBF;\n" +"font: 9pt \"\u6977\u4f53\";\n" +"border: 1px solid #dcdfe6;\n" +"border-radius: 10px;\n" +"}\n" +"*:pressed\n" +"{\n" +"background-color: #FFF000;\n" +"}\n" +"") + icon6 = QIcon(QIcon.fromTheme(u"media-optical")) + self.pushButton_39.setIcon(icon6) self.stackedWidget.addWidget(self.page) self.page_2 = QWidget() self.page_2.setObjectName(u"page_2") @@ -683,7 +705,7 @@ class Ui_MainWindow(object): self.retranslateUi(MainWindow) - self.tabWidget.setCurrentIndex(1) + self.tabWidget.setCurrentIndex(0) self.stackedWidget.setCurrentIndex(0) @@ -747,14 +769,15 @@ class Ui_MainWindow(object): "\n" "

2024-08-06 10:10:10\uff1a\u5f53\u524d\u6b63\u5728\u8fd0\u884c\u3002\u3002\u3002

\n" "

2024-08-06 11:10:10\uff1a\u79fb\u52a8\u673a\u68b0\u81c2\u81f3\u6240\u793a\u4f4d\u7f6e

", None)) - self.comboBox.setItemText(0, QCoreApplication.translate("MainWindow", u"1\u53f7\u7ebf", None)) - self.comboBox.setItemText(1, QCoreApplication.translate("MainWindow", u"\u65b0\u5efa\u7ebf", None)) + self.comboBox_lineIndex.setItemText(0, QCoreApplication.translate("MainWindow", u"1\u53f7\u7ebf", None)) + self.comboBox_lineIndex.setItemText(1, QCoreApplication.translate("MainWindow", u"\u65b0\u5efa\u7ebf", None)) - self.comboBox.setCurrentText(QCoreApplication.translate("MainWindow", u"1\u53f7\u7ebf", None)) + self.comboBox_lineIndex.setCurrentText(QCoreApplication.translate("MainWindow", u"1\u53f7\u7ebf", None)) self.pushButton_16.setText(QCoreApplication.translate("MainWindow", u"\u6025\u505c", None)) self.pushButton_18.setText(QCoreApplication.translate("MainWindow", u"\u6545\u969c\u8bca\u65ad", None)) self.pushButton_19.setText(QCoreApplication.translate("MainWindow", u"\u8c03\u8bd5", None)) - self.pushButton_17.setText(QCoreApplication.translate("MainWindow", u"\u542f\u52a8", None)) + self.pushButton_startFeed.setText(QCoreApplication.translate("MainWindow", u"\u542f\u52a8", None)) + self.pushButton_39.setText(QCoreApplication.translate("MainWindow", u"\u590d\u4f4d", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), QCoreApplication.translate("MainWindow", u"\u6295\u6599", None)) self.pushButton_2.setText(QCoreApplication.translate("MainWindow", u"PushButton", None)) self.pushButton.setText(QCoreApplication.translate("MainWindow", u"PushButton", None)) diff --git a/untitled.ui b/untitled.ui index b348e95..b3816dc 100644 --- a/untitled.ui +++ b/untitled.ui @@ -135,16 +135,14 @@ font: 290 9pt "Microsoft YaHei"; background-color: #F9FAFC; -font: 12pt "楷体"; +font: 700 9pt "Microsoft YaHei UI"; + border: 1px solid #dcdfe6; border-radius: 10px; 监控投料 - - - @@ -157,7 +155,7 @@ border-radius: 10px; background-color: #F9FAFC; -font: 12pt "楷体"; +font: 700 9pt "Microsoft YaHei UI"; border: 1px solid #dcdfe6; border-radius: 10px; @@ -176,7 +174,7 @@ border-radius: 10px; background-color: #F9FAFC; -font: 12pt "楷体"; +font: 700 9pt "Microsoft YaHei UI"; border: 1px solid #dcdfe6; border-radius: 10px; @@ -212,7 +210,7 @@ border-radius: 10px; - border-image: url(:/Image/data/robot.png); + border-image: url(:bg/Image/robot.png); background-position:center; background-repeat:no-repeat; @@ -223,7 +221,7 @@ background-repeat:no-repeat; true - + 520 @@ -255,7 +253,13 @@ QSlider::handle:horizontal margin: -5px 3px -5px 6px; border-radius:5px; border: 3px solid #007900; -} +} + + + + + + Qt::Orientation::Horizontal @@ -1231,7 +1235,7 @@ li.checked::marker { content: "\2612"; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">2024-08-06 11:10:10:移动机械臂至所示位置</p></body></html> - + 520 @@ -1284,7 +1288,7 @@ QComboBox QAbstractItemView { lineEdit label_4 - horizontalSlider + horizontalSlider_feedingNum label_5 pushButton_20 pushButton_21 @@ -1295,7 +1299,7 @@ QComboBox QAbstractItemView { pushButton_26 frame_4 textEdit - comboBox + comboBox_lineIndex @@ -1388,7 +1392,7 @@ background-color:#1053b2; - + 360