| | |
| | | #include "CProcessData.h" |
| | | #include "CPortStatusReport.h" |
| | | #include "CSlot.h" |
| | | #include "CParam.h" |
| | | #include "CSVData.h" |
| | | |
| | | |
| | | namespace SERVO { |
| | |
| | | typedef std::function<void(void* pEiuipment, void* pReport)> ONVCREVENTREPORT; |
| | | typedef std::function<BOOL(void* pEiuipment, int port, CJobDataB* pJobDataB)> ONPREFETCHEDOUTJOB; |
| | | typedef std::function<BOOL(void* pEiuipment, int port, CJobDataB* pJobDataB, short& putSlot)> ONPRESTOREDJOB; |
| | | typedef std::function<void(void* pEiuipment, PROCESS_STATE state)> ONPROCESSSTATE; |
| | | typedef std::function<void(void* pEiuipment, int nSlotNo, PROCESS_STATE state)> ONPROCESSSTATE; |
| | | typedef std::function<void(void* pEiuipment, short scanMap, short downMap)> ONMAPMISMATCH; |
| | | typedef std::function<void(void* pEiuipment, short status, __int64 data)> ONPORTSTATUSCHANGED; |
| | | |
| | | typedef struct _EquipmentListener |
| | | { |
| | | ONALIVE onAlive; |
| | |
| | | ONPROCESSSTATE onProcessStateChanged; |
| | | ONMAPMISMATCH onMapMismatch; |
| | | ONPORTSTATUSCHANGED onPortStatusChanged; |
| | | |
| | | ONVCREVENTREPORT onSVDataReport; |
| | | ONVCREVENTREPORT onPanelDataReport; |
| | | } EquipmentListener; |
| | | |
| | | |
| | |
| | | std::vector<CPin*>& CEquipment::getInputPins(); |
| | | std::vector<CPin*>& CEquipment::getOutputPins(); |
| | | CRecipeList* getRecipeList(int unitNo); |
| | | bool saveRecipeList(int unitNo, std::string& strFilepath); |
| | | bool readRecipeList(int unitNo, std::string& strFilepath); |
| | | virtual int recvIntent(CPin* pPin, CIntent* pIntent); |
| | | virtual int fetchedOutJob(int port, CJobDataB* pJobDataB); |
| | | virtual int storedJob(int port, CJobDataB* pJobDataB, short putSlot); |
| | |
| | | virtual int onProcessData(CProcessData* pProcessData); |
| | | virtual int onSendAble(int port); |
| | | virtual int onReceiveAble(int port); |
| | | virtual int onProcessStateChanged(PROCESS_STATE state); |
| | | virtual int onProcessStateChanged(int nSlotNo, PROCESS_STATE state); |
| | | virtual int getIndexerOperationModeBaseValue(); |
| | | virtual bool isSlotProcessed(int slot) { return true; }; |
| | | bool isAlarmStep(SERVO::CStep* pStep); |
| | |
| | | int setDispatchingMode(DISPATCHING_MODE mode, ONWRITED onWritedBlock = nullptr); |
| | | int indexerOperationModeChange(IDNEXER_OPERATION_MODE mode, ONWRITEDRET onWritedRetBlock); |
| | | void printDebugString001(); |
| | | |
| | | std::vector<SERVO::CSVData>& getSVDatas(); |
| | | |
| | | // 请求主配方列表 |
| | | // unitNo: 0:local; Others:unit No |
| | |
| | | // masterRecipeId: 主配方id |
| | | // localRecipeId: 本地配方id |
| | | // unitNo: 0:local; Others:unit No |
| | | int recipeParameterRequest(short masterRecipeId, short localRecipeId, short unitNo); |
| | | int recipeParameterRequest(short masterRecipeId, short localRecipeId, short unitNo, ONSYNCINGSTATECHANGED block); |
| | | |
| | | // 解析配方参数列表 |
| | | virtual int parsingParams(const char* pszData, size_t size, std::vector<CParam>& params) { return 0; }; |
| | | virtual int parsingParams(const char* pszData, size_t size, std::string& strOut); |
| | | virtual int parsingProcessData(const char* pszData, size_t size, std::vector<CParam>& params) { return 0; }; |
| | | virtual int parsingSVData(const char* pszData, size_t size, std::vector<CParam>& params) { return 0; }; |
| | | |
| | | // 获取指定的Slot |
| | | CSlot* getSlot(int index); |
| | | CSlot* getSlotWithNo(int slotNo); |
| | | |
| | | // 获取一个可用的槽位 |
| | | CSlot* getAvailableSlot(); |
| | |
| | | CGlass* getGlassWithCassette(int cassetteSequenceNo, int jobSequenceNo); |
| | | CGlass* getAnyGlass(); |
| | | CGlass* getGlass(const char* pszGlassId); |
| | | int getAllGlass(std::vector<CGlass*>& glasses); |
| | | CJobDataS* getJobDataSWithCassette(int cassetteSequenceNo, int jobSequenceNo); |
| | | |
| | | // 验证玻璃和槽是否匹配 |
| | |
| | | int decodeJobProcessStartReport(CStep* pStep, const char* pszData, size_t size); |
| | | int decodeJobProcessEndReport(CStep* pStep, const char* pszData, size_t size); |
| | | BOOL compareJobData(CJobDataB* pJobDataB, CJobDataS* pJobDataS); |
| | | void setProcessState(PROCESS_STATE state); |
| | | void setProcessState(int nSlotNo, PROCESS_STATE state); |
| | | float toFloat(const char* pszAddr); |
| | | |
| | | protected: |
| | | // 部分优化/简化代码、暂实现部分,到时平铺开 |
| | | void addFacDataReportStep(int dataDev, int writeSignalDev, int port); |
| | | |
| | | |
| | | protected: |
| | | BOOL m_bEnable; |
| | |
| | | int m_nBaseAlarmId; |
| | | CRecipesManager m_recipesManager; |
| | | CSlot m_slot[SLOT_MAX]; |
| | | PROCESS_STATE m_processState; |
| | | PROCESS_STATE m_processState[SLOT_MAX] = { PROCESS_STATE::Ready }; |
| | | std::vector<SERVO::CSVData> m_svDatas; |
| | | |
| | | private: |
| | | CEquipment* m_pArm; |