update 完成控制基本逻辑

This commit is contained in:
FrankCV2048
2024-12-03 23:25:17 +08:00
parent 157e7edce5
commit aa93685862
8 changed files with 728 additions and 262 deletions

View File

@ -33,6 +33,13 @@ class FeedStatus(IntEnum):
FReverse = 11
FStartReverse = 12
class LineType(Enum):
Straight = 0
CureStart = 1
CureMid = 2
CureEnd = 3
class FeedMidStatus(Enum):
FMid_Start = 1
FMid_Take = 2
@ -374,7 +381,7 @@ class Feeding:
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):
def sendTargPosition(self, real_position, move_type: MoveType = MoveType.WORLD, speed=Constant.speed,real_position1=None):
position_instruction = Instruction()
position_instruction.speed = speed
position_instruction.m0 = real_position.X
@ -383,7 +390,15 @@ class Feeding:
position_instruction.m3 = real_position.U
position_instruction.m4 = real_position.V
position_instruction.m5 = real_position.W
position_instruction.action = move_type.value
if position_instruction.action == 17:
position_instruction.m0_p = real_position1.X
position_instruction.m1_p = real_position1.Y
position_instruction.m2_p = real_position1.Z
position_instruction.m3_p = real_position1.U
position_instruction.m4_p = real_position1.V
position_instruction.m5_p = real_position1.W
instruction_command = CMDInstructRequest()
instruction_command.instructions.append(position_instruction)
request_command = instruction_command.toString()
@ -408,19 +423,31 @@ class Feeding:
def next_start(self,reverse=False):
start_pos = self.feedConfig.feedLine.get_next_start_position(reverse)
self.feedStatus = start_pos.status if self.feedStatus != FeedStatus.FNone else FeedStatus.FNone
self.sendTargPosition(start_pos.position)
if start_pos.lineType == LineType.CureMid:
start_pos1 = self.feedConfig.feedLine.get_next_start_position(reverse)
self.sendTargPosition(real_position=start_pos.position, move_type=MoveType.Cure, real_position1=start_pos1.position)
else:
self.sendTargPosition(start_pos.position)
pass
def next_take(self,reverse=False):
take_pos = self.feedConfig.feedLine.get_next_take_position(reverse)
self.feedStatus = take_pos.status if self.feedStatus != FeedStatus.FNone else FeedStatus.FNone
self.sendTargPosition(take_pos.position)
if take_pos.lineType == LineType.CureMid:
take_pos1 = self.feedConfig.feedLine.get_next_take_position(reverse)
self.sendTargPosition(real_position=take_pos.position, move_type=MoveType.Cure, real_position1=take_pos1.position)
else:
self.sendTargPosition(take_pos.position)
pass
def next_Feed(self,reverse=False):
feed_pos = self.feedConfig.feedLine.get_next_feed_position(reverse)
self.feedStatus = feed_pos.status if self.feedStatus != FeedStatus.FNone else FeedStatus.FNone
self.sendTargPosition(feed_pos.position)
if feed_pos.lineType == LineType.CureMid:
feed_pos1 = self.feedConfig.feedLine.get_next_feed_position(reverse)
self.sendTargPosition(real_position=feed_pos.position, move_type=MoveType.Cure, real_position1=feed_pos1.position)
else:
self.sendTargPosition(feed_pos.position)
def get_current_position(self):
if self.feed_Mid_Status == FeedMidStatus.FMid_Start: