#pragma once #include "CEquipment.h" #include "CLoadPort.h" #include "CAligner.h" #include "CFliper.h" #include "CArmTray.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 onTimer(UINT nTimerid); virtual void serialize(CArchive& ar); virtual void getAttributeVector(CAttributeVector& attrubutes); virtual int recvIntent(CPin* pPin, CIntent* pIntent); virtual BOOL glassWillArrive(CGlass* pGlass); 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 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); // ¿ì½Ý·â×° int SendHome(int seq); int SendTransfer(int seq, int armNo, int fromPos, int toPos, int fromSlot, int toSlot); int SendMoveToGet(int seq, int armNo, int pos, int slot); int SendMoveToPut(int seq, int armNo, int pos, int slot); int SendGet(int seq, int armNo, int pos, int slot); int SendPut(int seq, int armNo, int pos, int slot); int SendExchange(int seq, int armNo, int pos, int getSlot, int putSlot); int SendCommandClear(int seq); int SendBatchGet(int seq, int getPos, int getSlot); int SendBatchPut(int seq, int putPos, int putSlot); int SendMoveToGetAndHome(int seq, int armNo, int getPos, int getSlot); int SendMoveToPutAndHome(int seq, int armNo, int putPos, int putSlot); int SendTransferAndHome(int seq, int armNo, int fromPos, int toPos, int fromSlot, int toSlot); int SendGetAndPut(int seq, int armNo, int getPos, int getSlot, int putPos, int putSlot); int SendPutAndHome(int seq, int armNo, int putPos, int putSlot); private: CLoadPort* m_pPort[4]; CAligner* m_pAligner; CFliper* m_pFliper; CArmTray* m_pArmTray[2]; }; }