| | |
| | | transformPosAndSlot(toPos, toSlot, tarPos, tarSlot); |
| | | |
| | | m_robotCmdParam[ACTION_PICK] = {}; |
| | | m_robotCmdParam[ACTION_PICK].sequenceNo = static_cast<short>(seq+2); |
| | | m_robotCmdParam[ACTION_PICK].sequenceNo = static_cast<short>(seq+1); |
| | | m_robotCmdParam[ACTION_PICK].rcmd = static_cast<short>(SERVO::RCMD::Get); |
| | | m_robotCmdParam[ACTION_PICK].armNo = static_cast<short>(armNo); |
| | | m_robotCmdParam[ACTION_PICK].getPosition = static_cast<short>(srcPos); |
| | |
| | | m_robotCmdParam[ACTION_PLACE].putSlotNo = static_cast<short>(tarSlot); |
| | | |
| | | m_robotCmdParam[ACTION_RESTORE] = {}; |
| | | m_robotCmdParam[ACTION_RESTORE].sequenceNo = static_cast<short>(seq + 1); |
| | | m_robotCmdParam[ACTION_RESTORE].sequenceNo = static_cast<short>(seq + 3); |
| | | m_robotCmdParam[ACTION_RESTORE].rcmd = static_cast<short>(SERVO::RCMD::Put); |
| | | m_robotCmdParam[ACTION_RESTORE].armNo = static_cast<short>(armNo); |
| | | m_robotCmdParam[ACTION_RESTORE].putPosition = static_cast<short>(srcPos); |
| | | m_robotCmdParam[ACTION_RESTORE].putSlotNo = static_cast<short>(srcSlot); |
| | | |
| | | return seq + 1; |
| | | return seq + 3; |
| | | } |
| | | |
| | | ROBOT_CMD_PARAM& CRobotTask::getRobotCmdParam(int index) |
| | |
| | | return m_state == ROBOT_TASK_STATE::Picking; |
| | | } |
| | | |
| | | bool CRobotTask::isPicked() |
| | | { |
| | | return m_state == ROBOT_TASK_STATE::Picked; |
| | | } |
| | | |
| | | bool CRobotTask::isPlacing() |
| | | { |
| | | return m_state == ROBOT_TASK_STATE::Placing; |
| | |
| | | ASSERT(m_pEFEM); |
| | | m_state = ROBOT_TASK_STATE::Picking; |
| | | |
| | | m_pEFEM->robotSendMoveToGet(m_robotCmdParam->sequenceNo, |
| | | m_robotCmdParam[ACTION_PICK].armNo, |
| | | m_robotCmdParam[ACTION_PICK].getPosition, |
| | | m_robotCmdParam[ACTION_PICK].getSlotNo, |
| | | m_pEFEM->robotCmd(m_robotCmdParam[ACTION_PICK], |
| | | [&](int code) -> int { |
| | | if (code == WOK) { |
| | | LOGI(_T("RobotTask/get已下发到EFEM")); |
| | |
| | | }); |
| | | } |
| | | |
| | | void CRobotTask::picked() |
| | | { |
| | | m_state = ROBOT_TASK_STATE::Picked; |
| | | } |
| | | |
| | | void CRobotTask::place() |
| | | { |
| | | ASSERT(m_pEFEM); |
| | | m_state = ROBOT_TASK_STATE::Placing; |
| | | |
| | | m_pEFEM->robotSendMoveToPut(m_robotCmdParam->sequenceNo, |
| | | m_robotCmdParam[ACTION_PLACE].armNo, |
| | | m_robotCmdParam[ACTION_PLACE].putPosition, |
| | | m_robotCmdParam[ACTION_PLACE].putSlotNo, |
| | | m_pEFEM->robotCmd(m_robotCmdParam[ACTION_PLACE], |
| | | [&](int code) -> int { |
| | | if (code == WOK) { |
| | | LOGI(_T("RobotTask/put已下发到EFEM")); |
| | |
| | | ASSERT(m_pEFEM); |
| | | m_state = ROBOT_TASK_STATE::Restoring; |
| | | |
| | | m_pEFEM->robotSendMoveToPut(m_robotCmdParam->sequenceNo, |
| | | m_robotCmdParam[ACTION_RESTORE].armNo, |
| | | m_robotCmdParam[ACTION_RESTORE].putPosition, |
| | | m_robotCmdParam[ACTION_RESTORE].putSlotNo, |
| | | m_pEFEM->robotCmd(m_robotCmdParam[ACTION_RESTORE], |
| | | [&](int code) -> int { |
| | | if (code == WOK) { |
| | | LOGI(_T("RobotTask/restore-put已下发到EFEM")); |
| | |
| | | void CRobotTask::completed() |
| | | { |
| | | m_state = ROBOT_TASK_STATE::Completed; |
| | | } |
| | | |
| | | void CRobotTask::restored() |
| | | { |
| | | m_state = ROBOT_TASK_STATE::Restored; |
| | | } |
| | | |
| | | void CRobotTask::error() |
| | |
| | | break; |
| | | case EQ_ID_Bonder1: |
| | | if (1 <= srcSlot && srcSlot <= 2) { |
| | | tarPos = 9 + srcSlot; |
| | | tarPos = 9 + srcSlot - 1; |
| | | tarSlot = 1; |
| | | } |
| | | break; |
| | | case EQ_ID_Bonder2: |
| | | if (1 <= srcSlot && srcSlot <= 2) { |
| | | tarPos = 11 + srcSlot; |
| | | tarPos = 11 + srcSlot - 1; |
| | | tarSlot = 1; |
| | | } |
| | | break; |
| | | case EQ_ID_VACUUMBAKE: |
| | | if (1 <= srcSlot && srcSlot <= 2) { |
| | | tarPos = 13 + srcSlot; |
| | | tarPos = 13 + srcSlot - 1; |
| | | tarSlot = 1; |
| | | } |
| | | break; |
| | | case EQ_ID_BAKE_COOLING: |
| | | if (1 <= srcSlot && srcSlot <= 4) { |
| | | tarPos = 15 + srcSlot; |
| | | tarPos = 15 + srcSlot - 1; |
| | | tarSlot = 1; |
| | | } |
| | | break; |