diff --git a/Massage/MassageControl/hardware/dobot_nova5.py b/Massage/MassageControl/hardware/dobot_nova5.py
index d3d2b84..6021271 100644
--- a/Massage/MassageControl/hardware/dobot_nova5.py
+++ b/Massage/MassageControl/hardware/dobot_nova5.py
@@ -78,102 +78,78 @@ class dobot_nova5:
self.feedbackData = feedbackItem() # 自定义反馈数据结构体
self.logger = CustomLogger('Dobot_nova5')
- # try:
- # self.dashboard = DobotApiDashboard(self.ip, self.dashboardPort)
- # if not self.dashboard.connect():
- # print(f"[ERROR] 无法连接 Dashboard {self.ip}:{self.dashboardPort}")
- # self.dashboard = None
- # else:
- # print("[INFO] Dashboard 连接成功")
-
- # except Exception as e:
- # print(f"[ERROR] Dashboard 初始化失败: {e}")
- # self.dashboard = None
-
- # 尝试连接 Dashboard 控制接口(默认 29999 端口)
- try:
- self.dashboard = DobotApiDashboard(self.ip, self.dashboardPort)
- if self.dashboard.is_connected():
- print("[INFO] Dashboard 连接成功")
- else:
- print("[ERROR] Dashboard 未连接成功")
- self.dashboard = None
- except Exception as e:
- print(f"[ERROR] Dashboard 连接失败: {e}")
- self.dashboard = None
-
- # 尝试连接 Feedback 接口(默认 30003 端口)
- try:
- self.feedFour = DobotApiFeedBack(self.ip, self.feedFourPort)
- if self.feedFour.is_connected():
- print("[INFO] Feedback 连接成功")
- else:
- print("[ERROR] Feedback 未连接成功")
- self.feedFour = None
- except Exception as e:
- print(f"[ERROR] Feedback 连接失败: {e}")
- self.feedFour = None
-
-
-
- # self.dashboard = DobotApiDashboard(self.ip,self.dashboardPort)
- # self.feedFour = DobotApiFeedBack(self.ip,self.feedFourPort)
-
self.stop_feedback = threading.Event()
self.stop_feedback.clear()
# 状态反馈线程
self.feedback_thread = threading.Thread(
target=self.GetFeedback # 机器状态反馈线程
)
- self.feedback_thread.daemon = True
- self.feedback_thread.start()
- time.sleep(1)
- self.dashboard.RequestControl()
- max_retry_num = 5 #尝试连接次数
- cnt_num = 0
- while cnt_num < max_retry_num:
- if self.feedbackData.robotMode != -1:
- self.dashboard.EmergencyStop(mode=0) # 松开急停
- self.clearError() # 清除报警
- # stopId = self.dashboard.Stop()
- time.sleep(0.5)
- print("self.self.feedbackData.robotMode:",self.feedbackData.robotMode)
- if (self.feedbackData.robotMode == 3 or self.feedbackData.robotMode == 4): #and self.parseResultId(stopId)[0] == 0:
- # self.dashboard.RequestControl()
- if self.feedbackData.robotMode == 3:
- self.dashboard.PowerOn() # 复位
- # self.dashboard.Stop() # 停止
- if self.start_up(): # 启动
- self.logger.log_info(f"连接机械臂成功")
- break
+
+ try:
+ self.dashboard = DobotApiDashboard(self.ip, self.dashboardPort)
+ self.feedFour = DobotApiFeedBack(self.ip, self.feedFourPort)
+ if self.dashboard.is_connected() and self.feedFour.is_connected():
+ print("连接成功")
+ self.feedback_thread.daemon = True
+ self.feedback_thread.start()
+ time.sleep(1)
+ self.dashboard.RequestControl()
+ max_retry_num = 5 #尝试连接次数
+ cnt_num = 0
+ while cnt_num < max_retry_num:
+ if self.feedbackData.robotMode != -1:
+ self.dashboard.EmergencyStop(mode=0) # 松开急停
+ self.clearError() # 清除报警
+ # stopId = self.dashboard.Stop()
+ time.sleep(0.5)
+ print("self.self.feedbackData.robotMode:",self.feedbackData.robotMode)
+ if (self.feedbackData.robotMode == 3 or self.feedbackData.robotMode == 4): #and self.parseResultId(stopId)[0] == 0:
+ # self.dashboard.RequestControl()
+ if self.feedbackData.robotMode == 3:
+ self.dashboard.PowerOn() # 复位
+ # self.dashboard.Stop() # 停止
+ if self.start_up(): # 启动
+ self.logger.log_info(f"连接机械臂成功")
+ break
+ else:
+ self.logger.log_error(f"启动失败,尝试第{cnt_num+1}次连接")
+ cnt_num += 1
+ time.sleep(1)
+ else:
+ if self.feedbackData.robotMode == 9:# and self.parseResultId(stopId)[0] == -3:
+ print(robot_mode_types.get(self.feedbackData.robotMode, "未知模式"))
+
+ requests.post(
+ "http://127.0.0.1:5000/on_message", data={"message": "机械臂处于锁定状态
请解除锁定后再使用"}
+ )
+ instruction = {
+ "is_massaging": False,
+ "massage_service_started": False
+ }
+ requests.post(
+ "http://127.0.0.1:5000/update_massage_status", data=instruction
+ )
+ sys.exit(0)
+ self.disableRobot()
+ self.clearError() # 清除报警
+ cnt_num += 1
+ time.sleep(1)
else:
- self.logger.log_error(f"启动失败,尝试第{cnt_num+1}次连接")
+ self.logger.log_error(f"连接机械臂失败,尝试第{cnt_num+1}次连接")
cnt_num += 1
time.sleep(1)
- else:
- if self.feedbackData.robotMode == 9:# and self.parseResultId(stopId)[0] == -3:
- print(robot_mode_types.get(self.feedbackData.robotMode, "未知模式"))
-
- requests.post(
- "http://127.0.0.1:5000/on_message", data={"message": "机械臂处于锁定状态
请解除锁定后再使用"}
- )
- instruction = {
- "is_massaging": False,
- "massage_service_started": False
- }
- requests.post(
- "http://127.0.0.1:5000/update_massage_status", data=instruction
- )
- sys.exit(0)
- self.disableRobot()
- self.clearError() # 清除报警
- cnt_num += 1
- time.sleep(1)
-
else:
- self.logger.log_error(f"连接机械臂失败,尝试第{cnt_num+1}次连接")
- cnt_num += 1
- time.sleep(1)
+ print("[ERROR]未连接成功")
+ self.dashboard = None
+ self.feedFour = None
+ except Exception as e:
+ print(f"[ERROR] Dashboard 连接失败: {e}")
+ self.dashboard = None
+ self.feedFour = None
+
+
+
+
atexit.register(self.exit_task)
self.init_pos = [-45.0009079*np.pi/180,55.5785141*np.pi/180,-120.68821716*np.pi/180,5.11103201*np.pi/180,90.00195312*np.pi/180,-90.00085449*np.pi/180]