#pragma once
|
#include "CEquipment.h"
|
#include "CLoadPort.h"
|
#include "CAligner.h"
|
#include "CFliper.h"
|
#include "CArmTray.h"
|
#include "Context.h"
|
|
|
namespace SERVO {
|
class CEFEM :
|
public CEquipment
|
{
|
public:
|
CEFEM();
|
virtual ~CEFEM();
|
|
public:
|
virtual const char* getClassName();
|
virtual void init();
|
virtual void term();
|
virtual void initPins();
|
virtual void initSteps();
|
virtual void initSlots();
|
virtual void onTimer(UINT nTimerid);
|
virtual void serialize(CArchive& ar);
|
virtual void getAttributeVector(CAttributeVector& attrubutes);
|
virtual int recvIntent(CPin* pPin, CIntent* pIntent);
|
virtual void onReceiveLBData(const char* pszData, size_t size);
|
virtual int onReceivedJob(int port, CJobDataS* pJobDataS);
|
virtual int onSentOutJob(int port, CJobDataS* pJobDataS);
|
virtual int onFetchedOutJob(int port, CJobDataB* pJobDataB);
|
virtual int onStoredJob(int port, CJobDataB* pJobDataB);
|
virtual int getIndexerOperationModeBaseValue();
|
|
public:
|
void setContext(CContext* pContext);
|
void setPort(unsigned int index, CLoadPort* pPort);
|
void setAligner(CAligner* pAligner);
|
void setFliper(CFliper* pFliper);
|
void setArmTray(unsigned int index, CArmTray* pArmTray);
|
int robotCmd(ROBOT_CMD_PARAM& robotCmdParam, ONWRITED onWritedBlock = nullptr);
|
int robotCmds(ROBOT_CMD_PARAM* robotCmdParam, unsigned int count, ONWRITED onWritedBlock = nullptr);
|
RMDATA& getRobotMonitoringData();
|
|
// ¿ì½Ý·â×°
|
int robotSendHome(int seq, ONWRITED onWritedBlock = nullptr);
|
int robotSendTransfer(int seq, int armNo, int fromPos, int toPos, int fromSlot, int toSlot, ONWRITED onWritedBlock = nullptr);
|
int robotSendMoveToGet(int seq, int armNo, int pos, int slot, ONWRITED onWritedBlock = nullptr);
|
int robotSendMoveToPut(int seq, int armNo, int pos, int slot, ONWRITED onWritedBlock = nullptr);
|
int robotSendGet(int seq, int armNo, int pos, int slot, ONWRITED onWritedBlock = nullptr);
|
int robotSendPut(int seq, int armNo, int pos, int slot, ONWRITED onWritedBlock = nullptr);
|
int robotSendExchange(int seq, int armNo, int pos, int getSlot, int putSlot, ONWRITED onWritedBlock = nullptr);
|
int robotSendCommandClear(int seq, ONWRITED onWritedBlock = nullptr);
|
int robotSendBatchGet(int seq, int getPos, int getSlot, ONWRITED onWritedBlock = nullptr);
|
int robotSendBatchPut(int seq, int putPos, int putSlot, ONWRITED onWritedBlock = nullptr);
|
int robotSendMoveToGetAndHome(int seq, int armNo, int getPos, int getSlot, ONWRITED onWritedBlock = nullptr);
|
int robotSendMoveToPutAndHome(int seq, int armNo, int putPos, int putSlot, ONWRITED onWritedBlock = nullptr);
|
int robotSendTransferAndHome(int seq, int armNo, int fromPos, int toPos, int fromSlot, int toSlot, ONWRITED onWritedBlock = nullptr);
|
int robotSendGetAndPut(int seq, int armNo, int getPos, int getSlot, int putPos, int putSlot, ONWRITED onWritedBlock = nullptr);
|
int robotSendPutAndHome(int seq, int armNo, int putPos, int putSlot, ONWRITED onWritedBlock = nullptr);
|
void printDebugRobotState();
|
|
private:
|
CLoadPort* m_pPort[4];
|
CAligner* m_pAligner;
|
CFliper* m_pFliper;
|
CArmTray* m_pArmTray[2];
|
RMDATA m_robotData;
|
CContext* m_pActiveContext;
|
};
|
}
|