| | |
| | | delete pStep; |
| | | } |
| | | } |
| | | |
| | | { |
| | | // FAC Data Report |
| | | CEqReadStep* pStep = new CEqReadStep(0xA60E, 108 * 2, |
| | | [&](void* pFrom, int code, const char* pszData, size_t size) -> int { |
| | | if (code == ROK && pszData != nullptr && size > 0) { |
| | | decodePanelDataReport((CStep*)pFrom, pszData, size); |
| | | } |
| | | return -1; |
| | | }); |
| | | pStep->setName(STEP_EQ_FAC_DATA_REPORT); |
| | | pStep->setProp("Port", (void*)1); |
| | | pStep->setWriteSignalDev(0x34d); |
| | | if (addStep(STEP_ID_FAC_DATA_REPORT, pStep) != 0) { |
| | | delete pStep; |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 必须要实现的虚函数,在此初始化Slot信息 |
| | |
| | | delete pStep; |
| | | } |
| | | } |
| | | |
| | | { |
| | | // FAC Data Report |
| | | CEqReadStep* pStep = new CEqReadStep(0x6301, 108 * 2, |
| | | [&](void* pFrom, int code, const char* pszData, size_t size) -> int { |
| | | if (code == ROK && pszData != nullptr && size > 0) { |
| | | decodePanelDataReport((CStep*)pFrom, pszData, size); |
| | | } |
| | | return -1; |
| | | }); |
| | | pStep->setName(STEP_EQ_FAC_DATA_REPORT); |
| | | pStep->setProp("Port", (void*)1); |
| | | pStep->setWriteSignalDev(0x04d); |
| | | if (addStep(STEP_ID_FAC_DATA_REPORT, pStep) != 0) { |
| | | delete pStep; |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 必须要实现的虚函数,在此初始化Slot信息 |
| | |
| | | return 0; |
| | | } |
| | | |
| | | int CEquipment::decodeFacDataReport(CStep* pStep, const char* pszData, size_t size) |
| | | { |
| | | int index = 0; |
| | | std::string strSvTimeRecord, strSvData; |
| | | CToolUnits::convertString(&pszData[index], 8 * 2, strSvTimeRecord); |
| | | index += 128 * 2; |
| | | CToolUnits::convertString(&pszData[index], 640 * 2, strSvData); |
| | | index += 256 * 2; |
| | | |
| | | |
| | | // 缓存Attribute,用于调试时显示信息 |
| | | unsigned int weight = 201; |
| | | pStep->addAttribute(new CAttribute("SV Time Record", |
| | | strSvTimeRecord.c_str(), "", weight++)); |
| | | pStep->addAttribute(new CAttribute("SV Data", |
| | | strSvData.c_str(), "", weight++)); |
| | | |
| | | |
| | | return 0; |
| | | } |
| | | |
| | | int CEquipment::onPreStoredJob(int port, CJobDataB* pJobDataB, short& putSlot) |
| | | { |
| | | LOGI("<CEquipment-%s>onPreStoredJob:port:%d|GlassId:%s", |
| | |
| | | int decodeStoredJobReport(CStep* pStep, int port, const char* pszData, size_t size); |
| | | int decodeVCREventReport(CStep* pStep, const char* pszData, size_t size); |
| | | int decodePanelDataReport(CStep* pStep, const char* pszData, size_t size); |
| | | int decodeFacDataReport(CStep* pStep, const char* pszData, size_t size); |
| | | int addJobDataB(CJobDataB* pJobDataB); |
| | | int removeJobDataB(int nCassetteSequenceNo, int nJobSequenceNo); |
| | | CJobDataB* getJobDataB(int nCassetteSequenceNo, int nJobSequenceNo); |
| | |
| | | #define STEP_PORT3_CASSETTE_TYPE_CHANGE _T("Port3CassetteTypeChange") |
| | | #define STEP_PORT4_CASSETTE_TYPE_CHANGE _T("Port4CassetteTypeChange") |
| | | #define STEP_EQ_PANEL_DATA_REPORT _T("EQPanelDataReport") |
| | | #define STEP_EQ_FAC_DATA_REPORT _T("EQFacDataReport") |
| | | |
| | | |
| | | /* Step ID */ |
| | |
| | | #define STEP_ID_VCR1_EVENT_REPORT 0x56A |
| | | #define STEP_ID_MASTER_RECIPE_LIST_REPORT 0x56B |
| | | #define STEP_ID_RECIPE_PARAMETER_REPORT 0x56C |
| | | #define STEP_ID_FAC_DATA_REPORT 0x56D |
| | | #define STEP_ID_RECIVE_JOB_UPS1 0x580 |
| | | #define STEP_ID_RECIVE_JOB_UPS2 0x581 |
| | | #define STEP_ID_RECIVE_JOB_UPS3 0x582 |
| | |
| | | #define STEP_ID_FETCHED_OUT_JOB_REPORT13 0x5BB |
| | | #define STEP_ID_FETCHED_OUT_JOB_REPORT14 0x5BC |
| | | #define STEP_ID_FETCHED_OUT_JOB_REPORT15 0x5BD |
| | | #define STEP_ID_PANEL_DATA_REPORT 0x5D1 |
| | | #define STEP_ID_IN_OP_CMD_REPLY 0x5F0 |
| | | #define STEP_ID_DISPATCHING_MODE_CHANGE_REPLY 0x5F1 |
| | | #define STEP_ID_PORT1_TYPE_CHANGE 0x600 |
| | |
| | | #define STEP_ID_PROT3_CASSETTE_TYPE_CHANGE_REPLY 0x69A |
| | | #define STEP_ID_PROT4_CASSETTE_TYPE_CHANGE_REPLY 0x69B |
| | | #define STEP_ID_ROBOT_CMD_REPLY 0x6b0 |
| | | #define STEP_ID_PANEL_DATA_REPORT 0x5D1 |
| | | |
| | | |
| | | |
| | | /* base alarm */ |