update 修改qss带来的异常退出

This commit is contained in:
FrankCV2048
2024-11-07 23:14:15 +08:00
parent 5df4e7cadb
commit c8c1db727c
9 changed files with 2355 additions and 152 deletions

View File

@ -13,6 +13,7 @@ from Model.RobotModel import CMDInstructRequest, MoveType
from Util.util_time import CRisOrFall
from Vision.camera_coordinate_dete import Detection
from Util.util_log import log
from Model.RobotModel import Instruction
class FeedStatus(IntEnum):
FNone = 0
@ -90,13 +91,14 @@ class Feeding :
if self.feedConfig == None:
self.feedStatus = FeedStatus.FNone
elif self.feedConfig.num == 0:
self.feedStatus = FeedStatus.FNone
if self.feedStatus == FeedStatus.FNone or self.pause:
return
elif self.feedStatus == FeedStatus.FStart:
log.log_message(logging.INFO, Constant.str_feed_start)
self.feedStatus = FeedStatus.FCheck
self.feedStatus = FeedStatus.FCheck if self.feedStatus != FeedStatus.FNone else FeedStatus.FNone
pass
elif self.feedStatus == FeedStatus.FCheck:
log.log_message(logging.INFO, Constant.str_feed_check)
@ -106,7 +108,7 @@ class Feeding :
# pass
# else:
if self.feedConfig.num != 0:
self.feedStatus = FeedStatus.FSafeP
self.feedStatus = FeedStatus.FSafeP if self.feedStatus != FeedStatus.FNone else FeedStatus.FNone
self.sendTargPosition(self.feedConfig.feedLine.safe_position)
@ -114,7 +116,7 @@ class Feeding :
log.log_message(logging.INFO,Constant.str_feed_safe)
if self.feedConfig.feedLine.safe_position.compare(real_position):
self.error_photo_count=0
self.feedStatus = FeedStatus.FPhoto
self.feedStatus = FeedStatus.FPhoto if self.feedStatus != FeedStatus.FNone else FeedStatus.FNone
#self.sendTargPosition(self.feedConfig.feedLine.photo_position)
#判断是哪一个问题
@ -173,7 +175,7 @@ class Feeding :
else:
self.feedConfig.feedLine.take_position = detect_pos_list[max_z_index]
log.log_message(logging.INFO, Constant.str_feed_takePhoto_line)
self.feedStatus = FeedStatus.FTake
self.feedStatus = FeedStatus.FTake if self.feedStatus != FeedStatus.FNone else FeedStatus.FNone
self.sendTargPosition(self.feedConfig.feedLine.take_position)
except:
log.log_message(logging.ERROR, Constant.str_feed_takePhoto_fail)
@ -181,7 +183,7 @@ class Feeding :
else:
self.feedConfig.feedLine.take_position = self.feedConfig.feedLine.safe_position
self.sendTargPosition(self.feedConfig.feedLine.safe_position)
self.feedStatus = FeedStatus.FTake
self.feedStatus = FeedStatus.FTake if self.feedStatus != FeedStatus.FNone else FeedStatus.FNone
log.log_message(logging.INFO, Constant.str_feed_takePhoto_move)
elif self.feedStatus == FeedStatus.FTake:
@ -193,15 +195,17 @@ class Feeding :
self.sendIOControl(self.robotClient.con_ios[2],1)
# TODO 检测是否通 不然报警
time.sleep(self.robotClient.time_delay_take)
self.feedStatus = FeedStatus.FSafeF
self.feedStatus = FeedStatus.FSafeF if self.feedStatus != FeedStatus.FNone else FeedStatus.FNone
log.log_message(logging.INFO, Constant.str_feed_take_success)
self.sendTargPosition(self.feedConfig.feedLine.safe_position)
pass
elif self.feedStatus == FeedStatus.FSafeF:
log.log_message(logging.INFO, Constant.str_feed_mid)
log.log_message(logging.INFO, Constant.str_feed_safe)
if self.feedConfig.feedLine.safe_position.compare(real_position):
self.feedStatus = FeedStatus.FBroken
self.feedStatus = FeedStatus.FBroken if self.feedStatus != FeedStatus.FNone else FeedStatus.FNone
self.sendTargPosition(self.feedConfig.feedLine.broken1_position)
pass #吸嘴开始
@ -213,7 +217,9 @@ class Feeding :
# pass #破袋
elif self.feedStatus==FeedStatus.FBroken:
log.log_message(logging.INFO, Constant.str_feed_broken)
if self.feedConfig.feedLine.broken1_position.compare(real_position):
self.sendTargPosition(self.feedConfig.feedLine.broken2_position)
if self.feedConfig.feedLine.broken2_position.compare(real_position):
@ -221,7 +227,7 @@ class Feeding :
if self.feedConfig.feedLine.shake_position.compare(real_position): # 延迟判断如果最后点位延迟1s则认为阶段完成
# TODO 震动方案
time.sleep(self.robotClient.time_delay_shake)
self.feedStatus = FeedStatus.FDropBag
self.feedStatus = FeedStatus.FDropBag if self.feedStatus != FeedStatus.FNone else FeedStatus.FNone
self.sendTargPosition(self.feedConfig.feedLine.safe_position)
elif self.feedStatus == FeedStatus.FDropBag:
@ -243,7 +249,7 @@ class Feeding :
self.sendTargPosition(self.feedConfig.feedLine.safe_position)
self.init_detection_image()
else:
self.feedStatus = FeedStatus.FSafeP
self.feedStatus = FeedStatus.FSafeP if self.feedStatus != FeedStatus.FNone else FeedStatus.FNone
self.sendTargPosition(self.feedConfig.feedLine.safe_position)
@ -254,7 +260,7 @@ class Feeding :
self.sendIOControl(Constant.IO_EmergencyPoint, 0)
def sendIOControl(self,IO_bit,IO_Status:int):
from Model.RobotModel import Instruction
IO_command = CMDInstructRequest()
io_instruction = Instruction()
io_instruction.IO = True
@ -263,10 +269,10 @@ class Feeding :
IO_command.dsID = 'HCRemoteCommand'
IO_command.instructions.append(io_instruction)
self.robotClient.add_sendQuene(IO_command.toString())
log.log_message(logging.INFO, f'{Constant.str_feed_io_control}{IO_bit}{IO_Status}')
pass
def sendTargPosition(self,real_position,move_type:MoveType=MoveType.WORLD ,speed = Constant.speed):
from Model.RobotModel import Instruction
position_instruction = Instruction()
position_instruction.speed = speed
position_instruction.m0 = real_position.X
@ -279,7 +285,7 @@ class Feeding :
instruction_command = CMDInstructRequest()
instruction_command.instructions.append(position_instruction)
request_command = instruction_command.toString()
print(request_command)
log_str = f'移动到位置:{"姿势直线"}' \
f'X:{position_instruction.m0}-' \
@ -288,7 +294,12 @@ class Feeding :
f'U:{position_instruction.m3}-' \
f'V:{position_instruction.m4}-' \
f'W:{position_instruction.m5}'
log.log_message(logging.INFO, log_str)
try :
log.log_message(logging.INFO, log_str)
except:
print("error")
self.robotClient.add_sendQuene(request_command)
pass