1.StoredJob, Fetched out Job实现;
2.CStep增加定制的Attribute, 以便通过的Step不使用getAttributeVector也能添加不一样的Attribute;
| | |
| | | namespace SERVO { |
| | | CAttribute::CAttribute() |
| | | { |
| | | |
| | | m_nWeight = 0; |
| | | } |
| | | |
| | | CAttribute::CAttribute(const char* pszName, const char* pszValue, const char* pszDescription) |
| | | CAttribute::CAttribute(const char* pszName, const char* pszValue, const char* pszDescription, unsigned int weight) |
| | | { |
| | | m_strName = pszName; |
| | | m_strValue = pszValue; |
| | | m_strDescription = pszDescription; |
| | | m_nWeight = weight; |
| | | } |
| | | |
| | | CAttribute::~CAttribute() |
| | |
| | | { |
| | | return m_strDescription; |
| | | } |
| | | |
| | | unsigned int CAttribute::getWeight() |
| | | { |
| | | return m_nWeight; |
| | | } |
| | | } |
| | |
| | | { |
| | | public: |
| | | CAttribute(); |
| | | CAttribute(const char* pszName, const char* pszValue, const char* pszDescription); |
| | | CAttribute(const char* pszName, const char* pszValue, const char* pszDescription, unsigned int weight); |
| | | ~CAttribute(); |
| | | |
| | | public: |
| | | std::string& getName(); |
| | | std::string& getValue(); |
| | | std::string& getDescription(); |
| | | unsigned int getWeight(); |
| | | |
| | | private: |
| | | std::string m_strName; |
| | | std::string m_strValue; |
| | | std::string m_strDescription; |
| | | unsigned int m_nWeight; // 权重,用于排序 |
| | | }; |
| | | } |
| | | |
| | |
| | | #include "stdafx.h" |
| | | #include "CAttributeVector.h" |
| | | #include <algorithm> |
| | | |
| | | |
| | | namespace SERVO { |
| | |
| | | m_attributes.clear(); |
| | | } |
| | | |
| | | void CAttributeVector::addAttribute(CAttribute* pAttribute) |
| | | void CAttributeVector::addAttribute(CAttribute* pAttribute, BOOL bReplace/* = FALSE*/) |
| | | { |
| | | if (bReplace) { |
| | | for (auto it = m_attributes.begin(); it != m_attributes.end(); ) { |
| | | if ((*it)->getName().compare(pAttribute->getName()) == 0) { |
| | | delete (*it); |
| | | it = m_attributes.erase(it); |
| | | } |
| | | else { |
| | | ++it; |
| | | } |
| | | } |
| | | } |
| | | |
| | | m_attributes.push_back(pAttribute); |
| | | } |
| | | |
| | | void CAttributeVector::addAttributeVector(CAttributeVector& av) |
| | | { |
| | | for (auto item : av.m_attributes) { |
| | | m_attributes.push_back(item); |
| | | } |
| | | } |
| | | |
| | | unsigned int CAttributeVector::size() |
| | | { |
| | | return m_attributes.size(); |
| | | return (unsigned int)m_attributes.size(); |
| | | } |
| | | |
| | | void CAttributeVector::clear() |
| | |
| | | m_attributes.clear(); |
| | | } |
| | | |
| | | void CAttributeVector::sortWithWeight() |
| | | { |
| | | std::sort(m_attributes.begin(), m_attributes.end(), [](CAttribute* pAttribute1, CAttribute* pAttribut2) { |
| | | return pAttribute1->getWeight() < pAttribut2->getWeight(); |
| | | }); |
| | | } |
| | | |
| | | bool CAttributeVector::empty() |
| | | { |
| | | return m_attributes.empty(); |
| | |
| | | ~CAttributeVector(); |
| | | |
| | | public: |
| | | void addAttribute(CAttribute* pAttribute); |
| | | void addAttribute(CAttribute* pAttribute, BOOL bReplace = FALSE); |
| | | void addAttributeVector(CAttributeVector& av); |
| | | void clear(); |
| | | void sortWithWeight(); |
| | | unsigned int size(); |
| | | bool empty(); |
| | | CAttribute* getAttribute(unsigned int index); |
| | |
| | | if (code == ROK && pszData != nullptr && size > 0) { |
| | | int port = (int)(__int64)((CEqReadStep*)pFrom)->getProp("Port"); |
| | | if (port > 0) { |
| | | decodeFetchedOutJobReport(port, pszData, size); |
| | | decodeFetchedOutJobReport((CStep*)pFrom, port, pszData, size); |
| | | } |
| | | } |
| | | return -1; |
| | |
| | | if (code == ROK && pszData != nullptr && size > 0) { |
| | | int port = (int)(__int64)((CEqReadStep*)pFrom)->getProp("Port"); |
| | | if (port > 0) { |
| | | decodeStoredJobReport(port, pszData, size); |
| | | decodeStoredJobReport((CStep*)pFrom, port, pszData, size); |
| | | } |
| | | } |
| | | return -1; |
| | |
| | | STEP_ID_PORT4_CASSETTIE_BLOCKED, 0x60b0); |
| | | |
| | | { |
| | | // Received Job Report Upstream#1~9 |
| | | char szBuffer[256]; |
| | | for (int i = 0; i < 9; i++) { |
| | | CEqReadStep* pStep = new CEqReadStep(0x4c90 + 320 * i, 320 * 2, |
| | | [&](void* pFrom, int code, const char* pszData, size_t size) -> int { |
| | | if (code == ROK && pszData != nullptr && size > 0) { |
| | | int port = (int)(__int64)((CEqReadStep*)pFrom)->getProp("Port"); |
| | | if (port > 0) { |
| | | decodeFetchedOutJobReport((CStep*)pFrom, port, pszData, size); |
| | | } |
| | | } |
| | | return -1; |
| | | }); |
| | | sprintf_s(szBuffer, "%s%d", STEP_EQ_RECEIVED_JOBn, i + 1); |
| | | pStep->setName(szBuffer); |
| | | pStep->setProp("Upstream", (void*)(__int64)(i + 1)); |
| | | pStep->setWriteSignalDev(0x0 + i); |
| | | if (addStep(STEP_ID_FETCHED_OUT_JOB_REPORT1 + i, pStep) != 0) { |
| | | delete pStep; |
| | | } |
| | | } |
| | | } |
| | | |
| | | { |
| | | // Fetched Out Job Report #1~15 |
| | | char szBuffer[256]; |
| | | for (int i = 0; i < 15; i++) { |
| | |
| | | if (code == ROK && pszData != nullptr && size > 0) { |
| | | int port = (int)(__int64)((CEqReadStep*)pFrom)->getProp("Port"); |
| | | if (port > 0) { |
| | | decodeFetchedOutJobReport(port, pszData, size); |
| | | decodeFetchedOutJobReport((CStep*)pFrom, port, pszData, size); |
| | | } |
| | | } |
| | | return -1; |
| | |
| | | if (code == ROK && pszData != nullptr && size > 0) { |
| | | int port = (int)(__int64)((CEqReadStep*)pFrom)->getProp("Port"); |
| | | if (port > 0) { |
| | | decodeStoredJobReport(port, pszData, size); |
| | | decodeStoredJobReport((CStep*)pFrom, port, pszData, size); |
| | | } |
| | | } |
| | | return -1; |
| | |
| | | { |
| | | CReadStep::getAttributeVector(attrubutes); |
| | | |
| | | unsigned int weight = 31; |
| | | attrubutes.addAttribute(new CAttribute("Alarm State", |
| | | std::to_string(m_nAlarmState).c_str(), "")); |
| | | std::to_string(m_nAlarmState).c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("Unit ID", |
| | | std::to_string(m_nUnitId).c_str(), "")); |
| | | std::to_string(m_nUnitId).c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("Alarm Level", |
| | | std::to_string(m_nAlarmLevel).c_str(), "")); |
| | | std::to_string(m_nAlarmLevel).c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("Alarm Code", |
| | | std::to_string(m_nAlarmCode).c_str(), "")); |
| | | std::to_string(m_nAlarmCode).c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("Alarm ID", |
| | | std::to_string(m_nAlarmId).c_str(), "")); |
| | | std::to_string(m_nAlarmId).c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("Text", |
| | | m_strText.c_str(), "")); |
| | | m_strText.c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("Description", |
| | | m_strDescription.c_str(), "")); |
| | | m_strDescription.c_str(), "", weight++)); |
| | | } |
| | | |
| | | int CEqAlarmStep::onReadData() |
| | |
| | | { |
| | | CWriteStep::getAttributeVector(attrubutes); |
| | | |
| | | unsigned int weight = 31; |
| | | std::string strTemp; |
| | | attrubutes.addAttribute(new CAttribute("Control Command Dev", |
| | | ("W" + CToolUnits::toHexString(m_nCtrlCmdDev, strTemp)).c_str(), "")); |
| | | ("W" + CToolUnits::toHexString(m_nCtrlCmdDev, strTemp)).c_str(), "", weight++)); |
| | | } |
| | | } |
| | | |
| | |
| | | { |
| | | CReadStep::getAttributeVector(attrubutes); |
| | | |
| | | unsigned int weight = 31; |
| | | std::string strTemp; |
| | | attrubutes.addAttribute(new CAttribute("Dev", |
| | | ("W" + CToolUnits::toHexString(m_nPortStatusDev, strTemp)).c_str(), "")); |
| | | ("W" + CToolUnits::toHexString(m_nPortStatusDev, strTemp)).c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("Port Status", |
| | | getPortStatusDescription(strTemp).c_str(), "")); |
| | | getPortStatusDescription(strTemp).c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("CassetteSequenceNo", |
| | | std::to_string(m_nCassetteSequenceNo).c_str(), "")); |
| | | std::to_string(m_nCassetteSequenceNo).c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("CassetteID", |
| | | m_strCassetteID.c_str(), "")); |
| | | m_strCassetteID.c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("LoadingCassetteType", |
| | | getLoadingCassetteTypeDescription(strTemp).c_str(), "")); |
| | | getLoadingCassetteTypeDescription(strTemp).c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("Q-Time Flag", |
| | | getQTimeFlagDescription(strTemp).c_str(), "")); |
| | | getQTimeFlagDescription(strTemp).c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("CassetteMappingState", |
| | | getCassetteMappingStateDescription(strTemp).c_str(), "")); |
| | | getCassetteMappingStateDescription(strTemp).c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("CassetteStatus", |
| | | getCassetteStatusDescription(strTemp).c_str(), "")); |
| | | getCassetteStatusDescription(strTemp).c_str(), "", weight++)); |
| | | } |
| | | |
| | | int CEqCassetteTransferStateStep::onReadData() |
| | |
| | | { |
| | | CWriteStep::getAttributeVector(attrubutes); |
| | | |
| | | unsigned int weight = 31; |
| | | std::string strTemp; |
| | | attrubutes.addAttribute(new CAttribute("Clear Cim Message Dev", |
| | | ("W" + CToolUnits::toHexString(m_nClearCimMessageDev, strTemp)).c_str(), "")); |
| | | ("W" + CToolUnits::toHexString(m_nClearCimMessageDev, strTemp)).c_str(), "", weight++)); |
| | | } |
| | | } |
| | |
| | | { |
| | | CWriteStep::getAttributeVector(attrubutes); |
| | | |
| | | unsigned int weight = 31; |
| | | std::string strTemp; |
| | | attrubutes.addAttribute(new CAttribute("Cim Message Dev", |
| | | ("W" + CToolUnits::toHexString(m_nCimMessageDev, strTemp)).c_str(), "")); |
| | | ("W" + CToolUnits::toHexString(m_nCimMessageDev, strTemp)).c_str(), "", weight++)); |
| | | } |
| | | } |
| | |
| | | { |
| | | CWriteStep::getAttributeVector(attrubutes); |
| | | |
| | | unsigned int weight = 31; |
| | | std::string strTemp; |
| | | attrubutes.addAttribute(new CAttribute("Cim Mode Dev", |
| | | ("W" + CToolUnits::toHexString(m_nCimModeDev, strTemp)).c_str(), "")); |
| | | ("W" + CToolUnits::toHexString(m_nCimModeDev, strTemp)).c_str(), "", weight++)); |
| | | } |
| | | } |
| | |
| | | { |
| | | CReadStep::getAttributeVector(attrubutes); |
| | | |
| | | unsigned int weight = 31; |
| | | attrubutes.addAttribute(new CAttribute("UnitNo", |
| | | std::to_string(m_nUnitNo).c_str(), "")); |
| | | std::to_string(m_nUnitNo).c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("CurrentMasterRecipeId", |
| | | std::to_string(m_nCurrentMasterRecipeId).c_str(), "")); |
| | | std::to_string(m_nCurrentMasterRecipeId).c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("LocalRecipeId", |
| | | std::to_string(m_nLocalRecipeId).c_str(), "")); |
| | | std::to_string(m_nLocalRecipeId).c_str(), "", weight++)); |
| | | } |
| | | |
| | | int CEqCurrentRecipeChangeStep::onReadData() |
| | |
| | | { |
| | | CWriteStep::getAttributeVector(attrubutes); |
| | | |
| | | unsigned int weight = 31; |
| | | std::string strTemp; |
| | | attrubutes.addAttribute(new CAttribute("DateTime Dev", |
| | | ("W" + CToolUnits::toHexString(m_nDateTimeDev, strTemp)).c_str(), "")); |
| | | ("W" + CToolUnits::toHexString(m_nDateTimeDev, strTemp)).c_str(), "", weight++)); |
| | | } |
| | | } |
| | |
| | | { |
| | | CReadStep::getAttributeVector(attrubutes); |
| | | |
| | | unsigned int weight = 31; |
| | | std::string strTemp; |
| | | attrubutes.addAttribute(new CAttribute("Dev", |
| | | ("W" + CToolUnits::toHexString(m_nJobDataADev, strTemp)).c_str(), "")); |
| | | ("W" + CToolUnits::toHexString(m_nJobDataADev, strTemp)).c_str(), "", weight++)); |
| | | |
| | | attrubutes.addAttribute(new CAttribute("CassetteSequenceNo", |
| | | std::to_string(m_jobDataS.getCassetteSequenceNo()).c_str(), "")); |
| | | std::to_string(m_jobDataS.getCassetteSequenceNo()).c_str(), "", weight++)); |
| | | |
| | | attrubutes.addAttribute(new CAttribute("JobSequenceNo", |
| | | std::to_string(m_jobDataS.getJobSequenceNo()).c_str(), "")); |
| | | std::to_string(m_jobDataS.getJobSequenceNo()).c_str(), "", weight++)); |
| | | |
| | | attrubutes.addAttribute(new CAttribute("LotId", |
| | | m_jobDataS.getLotId().c_str(), "")); |
| | | m_jobDataS.getLotId().c_str(), "", weight++)); |
| | | |
| | | attrubutes.addAttribute(new CAttribute("ProductId", |
| | | m_jobDataS.getProductId().c_str(), "")); |
| | | m_jobDataS.getProductId().c_str(), "", weight++)); |
| | | |
| | | attrubutes.addAttribute(new CAttribute("OperationId", |
| | | m_jobDataS.getOperationId().c_str(), "")); |
| | | m_jobDataS.getOperationId().c_str(), "", weight++)); |
| | | |
| | | attrubutes.addAttribute(new CAttribute("Glass1Id", |
| | | m_jobDataS.getGlass1Id().c_str(), "")); |
| | | m_jobDataS.getGlass1Id().c_str(), "", weight++)); |
| | | |
| | | attrubutes.addAttribute(new CAttribute("Glass2Id", |
| | | m_jobDataS.getGlass2Id().c_str(), "")); |
| | | m_jobDataS.getGlass2Id().c_str(), "", weight++)); |
| | | |
| | | attrubutes.addAttribute(new CAttribute("JobType", |
| | | std::to_string(m_jobDataS.getJobType()).c_str(), "")); |
| | | std::to_string(m_jobDataS.getJobType()).c_str(), "", weight++)); |
| | | |
| | | attrubutes.addAttribute(new CAttribute("MaterialsType", |
| | | std::to_string(m_jobDataS.getMaterialsType()).c_str(), "")); |
| | | std::to_string(m_jobDataS.getMaterialsType()).c_str(), "", weight++)); |
| | | |
| | | attrubutes.addAttribute(new CAttribute("ProductType", |
| | | std::to_string(m_jobDataS.getProductType()).c_str(), "")); |
| | | std::to_string(m_jobDataS.getProductType()).c_str(), "", weight++)); |
| | | |
| | | attrubutes.addAttribute(new CAttribute("DummyType", |
| | | std::to_string(m_jobDataS.getDummyType()).c_str(), "")); |
| | | std::to_string(m_jobDataS.getDummyType()).c_str(), "", weight++)); |
| | | |
| | | attrubutes.addAttribute(new CAttribute("SkipFlag", |
| | | std::to_string(m_jobDataS.getSkipFlag()).c_str(), "")); |
| | | std::to_string(m_jobDataS.getSkipFlag()).c_str(), "", weight++)); |
| | | |
| | | attrubutes.addAttribute(new CAttribute("ProcessFlag", |
| | | std::to_string(m_jobDataS.getProcessFlag()).c_str(), "")); |
| | | std::to_string(m_jobDataS.getProcessFlag()).c_str(), "", weight++)); |
| | | |
| | | attrubutes.addAttribute(new CAttribute("ProcessResonCode", |
| | | std::to_string(m_jobDataS.getProcessResonCode()).c_str(), "")); |
| | | std::to_string(m_jobDataS.getProcessResonCode()).c_str(), "", weight++)); |
| | | |
| | | attrubutes.addAttribute(new CAttribute("LastGlassFlag", |
| | | std::to_string(m_jobDataS.getLastGlassFlag()).c_str(), "")); |
| | | std::to_string(m_jobDataS.getLastGlassFlag()).c_str(), "", weight++)); |
| | | |
| | | attrubutes.addAttribute(new CAttribute("FirstGlassFlag", |
| | | std::to_string(m_jobDataS.getFirstGlassFlag()).c_str(), "")); |
| | | std::to_string(m_jobDataS.getFirstGlassFlag()).c_str(), "", weight++)); |
| | | |
| | | attrubutes.addAttribute(new CAttribute("QTime1", |
| | | std::to_string(m_jobDataS.getQTime(0)).c_str(), "")); |
| | | std::to_string(m_jobDataS.getQTime(0)).c_str(), "", weight++)); |
| | | |
| | | attrubutes.addAttribute(new CAttribute("QTime2", |
| | | std::to_string(m_jobDataS.getQTime(1)).c_str(), "")); |
| | | std::to_string(m_jobDataS.getQTime(1)).c_str(), "", weight++)); |
| | | |
| | | attrubutes.addAttribute(new CAttribute("QTime3", |
| | | std::to_string(m_jobDataS.getQTime(2)).c_str(), "")); |
| | | std::to_string(m_jobDataS.getQTime(2)).c_str(), "", weight++)); |
| | | |
| | | attrubutes.addAttribute(new CAttribute("QTimeOverFlag", |
| | | std::to_string(m_jobDataS.getQTimeOverFlag()).c_str(), "")); |
| | | std::to_string(m_jobDataS.getQTimeOverFlag()).c_str(), "", weight++)); |
| | | |
| | | attrubutes.addAttribute(new CAttribute("MasterRecipe", |
| | | std::to_string(m_jobDataS.getMasterRecipe()).c_str(), "")); |
| | | std::to_string(m_jobDataS.getMasterRecipe()).c_str(), "", weight++)); |
| | | |
| | | attrubutes.addAttribute(new CAttribute("ProductRecipeId", |
| | | m_jobDataS.getProductRecipeId().c_str(), "")); |
| | | m_jobDataS.getProductRecipeId().c_str(), "", weight++)); |
| | | |
| | | attrubutes.addAttribute(new CAttribute("PCode", |
| | | m_jobDataS.getPCode().c_str(), "")); |
| | | m_jobDataS.getPCode().c_str(), "", weight++)); |
| | | |
| | | attrubutes.addAttribute(new CAttribute("UseType", |
| | | m_jobDataS.getUseType().c_str(), "")); |
| | | m_jobDataS.getUseType().c_str(), "", weight++)); |
| | | |
| | | attrubutes.addAttribute(new CAttribute("PanelMeasure", |
| | | m_jobDataS.getPanelMeasure().c_str(), "")); |
| | | m_jobDataS.getPanelMeasure().c_str(), "", weight++)); |
| | | |
| | | attrubutes.addAttribute(new CAttribute("SlotUnitSelectFlag", |
| | | std::to_string(m_jobDataS.getSlotUnitSelectFlag()).c_str(), "")); |
| | | std::to_string(m_jobDataS.getSlotUnitSelectFlag()).c_str(), "", weight++)); |
| | | |
| | | attrubutes.addAttribute(new CAttribute("SourcePortNo", |
| | | std::to_string(m_jobDataS.getSourcePortNo()).c_str(), "")); |
| | | std::to_string(m_jobDataS.getSourcePortNo()).c_str(), "", weight++)); |
| | | |
| | | attrubutes.addAttribute(new CAttribute("SourceSlotNo", |
| | | std::to_string(m_jobDataS.getSourceSlotNo()).c_str(), "")); |
| | | std::to_string(m_jobDataS.getSourceSlotNo()).c_str(), "", weight++)); |
| | | |
| | | attrubutes.addAttribute(new CAttribute("TargetPortNo", |
| | | std::to_string(m_jobDataS.getTargetPortNo()).c_str(), "")); |
| | | std::to_string(m_jobDataS.getTargetPortNo()).c_str(), "", weight++)); |
| | | |
| | | attrubutes.addAttribute(new CAttribute("TargetSlotNo", |
| | | std::to_string(m_jobDataS.getTargetSlotNo()).c_str(), "")); |
| | | std::to_string(m_jobDataS.getTargetSlotNo()).c_str(), "", weight++)); |
| | | } |
| | | |
| | | int CEqJobEventStep::onReadData() |
| | |
| | | { |
| | | CWriteStep::getAttributeVector(attrubutes); |
| | | |
| | | unsigned int weight = 31; |
| | | std::string strTemp; |
| | | attrubutes.addAttribute(new CAttribute("Equipment Mode Dev", |
| | | ("W" + CToolUnits::toHexString(m_nEqModeDev, strTemp)).c_str(), "")); |
| | | ("W" + CToolUnits::toHexString(m_nEqModeDev, strTemp)).c_str(), "", weight++)); |
| | | } |
| | | } |
| | |
| | | { |
| | | CReadStep::getAttributeVector(attrubutes); |
| | | |
| | | unsigned int weight = 31; |
| | | std::string strTemp; |
| | | attrubutes.addAttribute(new CAttribute("Mode", |
| | | std::to_string(m_nMode).c_str(), getModeDescription(strTemp).c_str())); |
| | | std::to_string(m_nMode).c_str(), getModeDescription(strTemp).c_str(), weight++)); |
| | | attrubutes.addAttribute(new CAttribute("Mode Dev", |
| | | ("W" + CToolUnits::toHexString(m_nModeDev, strTemp)).c_str(), "")); |
| | | ("W" + CToolUnits::toHexString(m_nModeDev, strTemp)).c_str(), "", weight++)); |
| | | } |
| | | |
| | | int CEqModeStep::onReadData() |
| | |
| | | { |
| | | CReadStep::getAttributeVector(attrubutes); |
| | | |
| | | unsigned int weight = 31; |
| | | std::string strTemp; |
| | | attrubutes.addAttribute(new CAttribute("Port Dev", |
| | | ("W" + CToolUnits::toHexString(m_nPortDev, strTemp)).c_str(), "")); |
| | | ("W" + CToolUnits::toHexString(m_nPortDev, strTemp)).c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("PortType", |
| | | std::to_string(m_nPortType).c_str(), getPortTypeDescription(strTemp).c_str())); |
| | | std::to_string(m_nPortType).c_str(), getPortTypeDescription(strTemp).c_str(), weight++)); |
| | | attrubutes.addAttribute(new CAttribute("PortMode", |
| | | std::to_string(m_nPortMode).c_str(), getPortModeDescription(strTemp).c_str())); |
| | | std::to_string(m_nPortMode).c_str(), getPortModeDescription(strTemp).c_str(), weight++)); |
| | | attrubutes.addAttribute(new CAttribute("PortCassetteType", |
| | | std::to_string(m_nPortCassetteType).c_str(), getPortCassetteTypeDescription(strTemp).c_str())); |
| | | std::to_string(m_nPortCassetteType).c_str(), getPortCassetteTypeDescription(strTemp).c_str(), weight++)); |
| | | attrubutes.addAttribute(new CAttribute("PortTransferMode", |
| | | std::to_string(m_nPortTransferMode).c_str(), getPortTransferModeDescription(strTemp).c_str())); |
| | | std::to_string(m_nPortTransferMode).c_str(), getPortTransferModeDescription(strTemp).c_str(), weight++)); |
| | | attrubutes.addAttribute(new CAttribute("PortEnableMode", |
| | | std::to_string(m_nPortEanbleMode).c_str(), getPortEnableModeDescription(strTemp).c_str())); |
| | | std::to_string(m_nPortEanbleMode).c_str(), getPortEnableModeDescription(strTemp).c_str(), weight++)); |
| | | attrubutes.addAttribute(new CAttribute("PortTypeAutoChangeMode", |
| | | std::to_string(m_nPortTypeAutoChangeMode).c_str(), getPortTypeAutoChangeModeDescription(strTemp).c_str())); |
| | | std::to_string(m_nPortTypeAutoChangeMode).c_str(), getPortTypeAutoChangeModeDescription(strTemp).c_str(), weight++)); |
| | | } |
| | | |
| | | int CEqPortChangeStep::onReadData() |
| | |
| | | { |
| | | CReadStep::getAttributeVector(attrubutes); |
| | | |
| | | unsigned int weight = 31; |
| | | attrubutes.addAttribute(new CAttribute("Glass ID", |
| | | m_strGlassId.c_str(), "")); |
| | | m_strGlassId.c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("Start Time", |
| | | m_strStartTime.c_str(), "")); |
| | | m_strStartTime.c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("End Time", |
| | | m_strEndTime.c_str(), "")); |
| | | m_strEndTime.c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("Total Parameter", |
| | | std::to_string(m_nTotalParameter).c_str(), "")); |
| | | std::to_string(m_nTotalParameter).c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("Total Group", |
| | | std::to_string(m_nTotalGroup).c_str(), "")); |
| | | std::to_string(m_nTotalGroup).c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("Current Group", |
| | | std::to_string(m_nCurrentGroup).c_str(), "")); |
| | | std::to_string(m_nCurrentGroup).c_str(), "", weight++)); |
| | | |
| | | char szName[256]; |
| | | int index = 0; |
| | | for (auto item : m_params) { |
| | | sprintf_s(szName, 256, "Parameter %d", ++index); |
| | | attrubutes.addAttribute(new CAttribute(szName, |
| | | item.c_str(), "")); |
| | | item.c_str(), "", weight++)); |
| | | } |
| | | } |
| | | |
| | |
| | | { |
| | | CReadStep::getAttributeVector(attrubutes); |
| | | |
| | | unsigned int weight = 31; |
| | | std::string strTemp; |
| | | attrubutes.addAttribute(new CAttribute("Dev", |
| | | ("W" + CToolUnits::toHexString(m_nValueDev, strTemp)).c_str(), "")); |
| | | ("W" + CToolUnits::toHexString(m_nValueDev, strTemp)).c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("Value", |
| | | std::to_string(m_nValue).c_str(), "")); |
| | | std::to_string(m_nValue).c_str(), "", weight++)); |
| | | } |
| | | |
| | | int CEqReadIntStep::onReadData() |
| | |
| | | { |
| | | CReadStep::getAttributeVector(attrubutes); |
| | | |
| | | unsigned int weight = 31; |
| | | std::string strTemp; |
| | | attrubutes.addAttribute(new CAttribute("Dev", |
| | | ("W" + CToolUnits::toHexString(m_nDataDev, strTemp)).c_str(), "")); |
| | | ("W" + CToolUnits::toHexString(m_nDataDev, strTemp)).c_str(), "", weight++)); |
| | | } |
| | | |
| | | int CEqReadStep::onReadData() |
| | |
| | | { |
| | | CReadStep::getAttributeVector(attrubutes); |
| | | |
| | | unsigned int weight = 31; |
| | | char szName[256]; |
| | | for (int i = 0; i < STATUS_MAX; i++) { |
| | | sprintf_s(szName, 256, "Status %d", i + 1); |
| | | attrubutes.addAttribute(new CAttribute(szName, |
| | | std::to_string(m_nStatus[i]).c_str(), "")); |
| | | std::to_string(m_nStatus[i]).c_str(), "", weight++)); |
| | | sprintf_s(szName, 256, "Reason Code %d", i + 1); |
| | | attrubutes.addAttribute(new CAttribute(szName, |
| | | std::to_string(m_nReasonCode[i]).c_str(), "")); |
| | | std::to_string(m_nReasonCode[i]).c_str(), "", weight++)); |
| | | } |
| | | |
| | | std::string strTemp; |
| | | attrubutes.addAttribute(new CAttribute("Status Dev", |
| | | ("W" + CToolUnits::toHexString(m_nStatusDev, strTemp)).c_str(), "")); |
| | | ("W" + CToolUnits::toHexString(m_nStatusDev, strTemp)).c_str(), "", weight++)); |
| | | } |
| | | |
| | | int CEqStatusStep::getStatus(unsigned int uint) |
| | |
| | | |
| | | std::string strTemp; |
| | | attrubutes.addAttribute(new CAttribute("VCR Mode Dev", |
| | | ("W" + CToolUnits::toHexString(m_nEqVCRModeDev, strTemp)).c_str(), "")); |
| | | ("W" + CToolUnits::toHexString(m_nEqVCRModeDev, strTemp)).c_str(), "", 31)); |
| | | } |
| | | } |
| | |
| | | { |
| | | CReadStep::getAttributeVector(attrubutes); |
| | | |
| | | unsigned int weight = 31; |
| | | std::string strTemp; |
| | | attrubutes.addAttribute(new CAttribute("Dev", |
| | | ("W" + CToolUnits::toHexString(m_nVcrEventReportDev, strTemp)).c_str(), "")); |
| | | ("W" + CToolUnits::toHexString(m_nVcrEventReportDev, strTemp)).c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("GlassId", |
| | | m_vcrEventReport.getGlassId().c_str(), "")); |
| | | m_vcrEventReport.getGlassId().c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("CassetteSequenceNo", |
| | | std::to_string(m_vcrEventReport.getCassetteSequenceNo()).c_str(), "")); |
| | | std::to_string(m_vcrEventReport.getCassetteSequenceNo()).c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("JobSequenceNo", |
| | | std::to_string(m_vcrEventReport.getJobSequenceNo()).c_str(), "")); |
| | | std::to_string(m_vcrEventReport.getJobSequenceNo()).c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("UnitNo", |
| | | std::to_string(m_vcrEventReport.getUnitNo()).c_str(), "")); |
| | | std::to_string(m_vcrEventReport.getUnitNo()).c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("VCR No", |
| | | std::to_string(m_vcrEventReport.getVcrNo()).c_str(), "")); |
| | | std::to_string(m_vcrEventReport.getVcrNo()).c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("VCR Result", |
| | | m_vcrEventReport.getVcrResultDescription(strTemp).c_str(), "")); |
| | | m_vcrEventReport.getVcrResultDescription(strTemp).c_str(), "", weight++)); |
| | | } |
| | | |
| | | int CEqVcrEventStep::onReadData() |
| | |
| | | { |
| | | CWriteStep::getAttributeVector(attrubutes); |
| | | |
| | | unsigned int weight = 31; |
| | | std::string strTemp; |
| | | attrubutes.addAttribute(new CAttribute("Data Dev", |
| | | ("W" + CToolUnits::toHexString(m_nDataDev, strTemp)).c_str(), "")); |
| | | ("W" + CToolUnits::toHexString(m_nDataDev, strTemp)).c_str(), "", weight++)); |
| | | } |
| | | |
| | | int CEqWriteStep::onComplete() |
| | |
| | | void CEquipment::getAttributeVector(CAttributeVector& attrubutes) |
| | | { |
| | | attrubutes.clear(); |
| | | |
| | | unsigned int weight = 0; |
| | | attrubutes.addAttribute(new CAttribute("Network", |
| | | std::to_string(m_station.nNetNo).c_str(), "")); |
| | | std::to_string(m_station.nNetNo).c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("Station", |
| | | std::to_string(m_station.nStNo).c_str(), "")); |
| | | std::to_string(m_station.nStNo).c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("ID", |
| | | std::to_string(m_nID).c_str(), "")); |
| | | std::to_string(m_nID).c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("Name", |
| | | m_strName.c_str(), "")); |
| | | m_strName.c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("Description", |
| | | m_strDescription.c_str(), "")); |
| | | m_strDescription.c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("Alive", |
| | | this->isAlive() ? _T("TRUE") : _T("FALSE"), "")); |
| | | this->isAlive() ? _T("TRUE") : _T("FALSE"), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("CIM State", |
| | | m_bCimState ? _T("ON") : _T("OFF"), "")); |
| | | m_bCimState ? _T("ON") : _T("OFF"), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("Upstream", |
| | | m_bUpstreamInline ? _T("Inline") : _T("Offline"), "")); |
| | | m_bUpstreamInline ? _T("Inline") : _T("Offline"), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("Downstream", |
| | | m_bDownstreamInline ? _T("Inline") : _T("Offline"), "")); |
| | | m_bDownstreamInline ? _T("Inline") : _T("Offline"), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("Local Alarm", |
| | | m_bLocalAlarm ? _T("TRUE") : _T("FALSE"), "")); |
| | | m_bLocalAlarm ? _T("TRUE") : _T("FALSE"), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("Auto Recipe Change", |
| | | m_bAutoRecipeChange ? _T("TRUE") : _T("FALSE"), "")); |
| | | m_bAutoRecipeChange ? _T("TRUE") : _T("FALSE"), "", weight++)); |
| | | char szTemp[256]; |
| | | for (int i = 0; i < VCR_MAX; i++) { |
| | | sprintf_s(szTemp, 256, "VCR-%d", i + 1); |
| | | attrubutes.addAttribute(new CAttribute(szTemp, |
| | | m_bVCREnable[i] ? _T("Enable") : _T("Disable"), "")); |
| | | m_bVCREnable[i] ? _T("Enable") : _T("Disable"), "", weight++)); |
| | | } |
| | | |
| | | for (auto item : m_inputPins) { |
| | | attrubutes.addAttribute(new CAttribute(item->getName().c_str(), |
| | | std::to_string((int)item->getType()).c_str(), "")); |
| | | std::to_string((int)item->getType()).c_str(), "", weight++)); |
| | | } |
| | | |
| | | for (auto item : m_outputPins) { |
| | | attrubutes.addAttribute(new CAttribute(item->getName().c_str(), |
| | | std::to_string((int)item->getType()).c_str(), "")); |
| | | std::to_string((int)item->getType()).c_str(), "", weight++)); |
| | | } |
| | | |
| | | for (auto item : m_glassList) { |
| | | attrubutes.addAttribute(new CAttribute("Glass", |
| | | item->getID().c_str(), "")); |
| | | item->getID().c_str(), "", weight++)); |
| | | } |
| | | } |
| | | |
| | |
| | | return m_recipesManager.decodeRecipeParameterReport(pszData, size); |
| | | } |
| | | |
| | | int CEquipment::decodeFetchedOutJobReport(int port, const char* pszData, size_t size) |
| | | int CEquipment::decodeFetchedOutJobReport(CStep* pStep, int port, const char* pszData, size_t size) |
| | | { |
| | | int index = 0; |
| | | short unitOrPort, unitOrPortNo, subUnitNo, subSlotNo; |
| | | CJobDataB jobDataB; |
| | | int nRet = jobDataB.unserialize(&pszData[index], size); |
| | | int nRet = jobDataB.unserialize(&pszData[index], (int)size); |
| | | if (nRet < 0) return nRet; |
| | | index += nRet; |
| | | |
| | |
| | | index += sizeof(short); |
| | | memcpy(&subSlotNo, &pszData[index], sizeof(short)); |
| | | index += sizeof(short); |
| | | |
| | | |
| | | // 缓存Attribute,用于调试时显示信息 |
| | | unsigned int weight = 201; |
| | | pStep->addAttribute(new CAttribute("UnitOrPort", |
| | | std::to_string(unitOrPort).c_str(), "", weight++)); |
| | | pStep->addAttribute(new CAttribute("UnitOrPortNo", |
| | | std::to_string(unitOrPortNo).c_str(), "", weight++)); |
| | | pStep->addAttribute(new CAttribute("SubUnitNo", |
| | | std::to_string(subUnitNo).c_str(), "", weight++)); |
| | | pStep->addAttribute(new CAttribute("SubSlotNo", |
| | | std::to_string(subSlotNo).c_str(), "", weight++)); |
| | | pStep->addAttribute(new CAttribute("CassetteSequenceNo", |
| | | std::to_string(jobDataB.getCassetteSequenceNo()).c_str(), "", weight++)); |
| | | pStep->addAttribute(new CAttribute("JobSequenceNo", |
| | | std::to_string(jobDataB.getJobSequenceNo()).c_str(), "", weight++)); |
| | | pStep->addAttribute(new CAttribute("GlassId", |
| | | jobDataB.getGlassId().c_str(), "", weight++)); |
| | | |
| | | |
| | | onFetchedOut(port, jobDataB.getGlassId().c_str()); |
| | | |
| | |
| | | |
| | | int CEquipment::onFetchedOut(int port, const char* pszGlassId) |
| | | { |
| | | LOGI("<CEquipment-%s>onFetchedOut:port:%d|GlassId:%s", |
| | | m_strName.c_str(), port, pszGlassId); |
| | | return fetchedOut(pszGlassId); |
| | | } |
| | | |
| | | int CEquipment::decodeStoredJobReport(int port, const char* pszData, size_t size) |
| | | int CEquipment::decodeStoredJobReport(CStep* pStep, int port, const char* pszData, size_t size) |
| | | { |
| | | int index = 0; |
| | | short unitOrPort, unitOrPortNo, subUnitNo, subSlotNo; |
| | | CJobDataB jobDataB; |
| | | int nRet = jobDataB.unserialize(&pszData[index], size); |
| | | int nRet = jobDataB.unserialize(&pszData[index], (int)size); |
| | | if (nRet < 0) return nRet; |
| | | index += nRet; |
| | | |
| | |
| | | memcpy(&subSlotNo, &pszData[index], sizeof(short)); |
| | | index += sizeof(short); |
| | | |
| | | |
| | | // 缓存Attribute,用于调试时显示信息 |
| | | unsigned int weight = 201; |
| | | pStep->addAttribute(new CAttribute("UnitOrPort", |
| | | std::to_string(unitOrPort).c_str(), "", weight++)); |
| | | pStep->addAttribute(new CAttribute("UnitOrPortNo", |
| | | std::to_string(unitOrPortNo).c_str(), "", weight++)); |
| | | pStep->addAttribute(new CAttribute("SubUnitNo", |
| | | std::to_string(subUnitNo).c_str(), "", weight++)); |
| | | pStep->addAttribute(new CAttribute("SubSlotNo", |
| | | std::to_string(subSlotNo).c_str(), "", weight++)); |
| | | pStep->addAttribute(new CAttribute("CassetteSequenceNo", |
| | | std::to_string(jobDataB.getCassetteSequenceNo()).c_str(), "", weight++)); |
| | | pStep->addAttribute(new CAttribute("JobSequenceNo", |
| | | std::to_string(jobDataB.getJobSequenceNo()).c_str(), "", weight++)); |
| | | pStep->addAttribute(new CAttribute("GlassId", |
| | | jobDataB.getGlassId().c_str(), "", weight++)); |
| | | |
| | | |
| | | onStore(port, jobDataB.getGlassId().c_str()); |
| | | |
| | | return index; |
| | |
| | | |
| | | int CEquipment::onStore(int port, const char* pszGlassId) |
| | | { |
| | | LOGI("<CEquipment-%s>onStore:port:%d|GlassId:%s", |
| | | m_strName.c_str(), port, pszGlassId); |
| | | return storedJob(pszGlassId); |
| | | } |
| | | } |
| | |
| | | void addGlassToList(CGlass* pGlass); |
| | | short decodeRecipeListReport(const char* pszData, size_t size); |
| | | short decodeRecipeParameterReport(const char* pszData, size_t size); |
| | | int decodeFetchedOutJobReport(int port, const char* pszData, size_t size); |
| | | int decodeStoredJobReport(int port, const char* pszData, size_t size); |
| | | int decodeFetchedOutJobReport(CStep* pStep, int port, const char* pszData, size_t size); |
| | | int decodeStoredJobReport(CStep* pStep, int port, const char* pszData, size_t size); |
| | | |
| | | protected: |
| | | EquipmentListener m_listener; |
| | |
| | | { |
| | | __super::getAttributeVector(attrubutes); |
| | | |
| | | unsigned int weight = 101; |
| | | std::string strTemp; |
| | | attrubutes.addAttribute(new CAttribute("Index", |
| | | std::to_string(m_nIndex).c_str(), "")); |
| | | std::to_string(m_nIndex).c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("Type", |
| | | getPortTypeDescription(m_nType, strTemp).c_str(), "")); |
| | | getPortTypeDescription(m_nType, strTemp).c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("Mode", |
| | | getPortModeDescription(m_nMode, strTemp).c_str(), "")); |
| | | getPortModeDescription(m_nMode, strTemp).c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("CassetteType", |
| | | getPortCassetteTypeDescription(m_nCassetteType, strTemp).c_str(), "")); |
| | | getPortCassetteTypeDescription(m_nCassetteType, strTemp).c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("TransferMode", |
| | | getPortTransferModeDescription(m_nTransferMode, strTemp).c_str(), "")); |
| | | getPortTransferModeDescription(m_nTransferMode, strTemp).c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("Enable", |
| | | m_bEnable ? "Eanble" : "Disable", "")); |
| | | m_bEnable ? "Eanble" : "Disable", "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("Auto Change", |
| | | m_bAutoChangeEnable ? "Eanble" : "Disable", "")); |
| | | m_bAutoChangeEnable ? "Eanble" : "Disable", "", weight++)); |
| | | } |
| | | |
| | | int CLoadPort::recvIntent(CPin* pPin, CIntent* pIntent) |
| | |
| | | SetDlgItemText(IDC_LABEL_TITLE, pStep->getName().c_str()); |
| | | SERVO::CAttributeVector attrubutes; |
| | | pStep->getAttributeVector(attrubutes); |
| | | attrubutes.sortWithWeight(); |
| | | unsigned int nSize = attrubutes.size(); |
| | | for (unsigned int i = 0; i < nSize; i++) { |
| | | SERVO::CAttribute* pAttribute = attrubutes.getAttribute(i); |
| | |
| | | CStep::getAttributeVector(attrubutes); |
| | | std::string strTemp; |
| | | |
| | | unsigned int weight = 21; |
| | | attrubutes.addAttribute(new CAttribute("Current Step", |
| | | std::to_string(m_nCurStep).c_str(), "")); |
| | | std::to_string(m_nCurStep).c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("Signal Dev", |
| | | ("W" + CToolUnits::toHexString(m_nWriteSignalDev, strTemp)).c_str(), "")); |
| | | ("W" + CToolUnits::toHexString(m_nWriteSignalDev, strTemp)).c_str(), "", weight++)); |
| | | } |
| | | |
| | | void CReadStep::init() |
| | |
| | | |
| | | void CStep::getAttributeVector(CAttributeVector& attrubutes) |
| | | { |
| | | unsigned int weight = 1; |
| | | attrubutes.clear(); |
| | | attrubutes.addAttribute(new CAttribute("Network", |
| | | std::to_string(m_station.nNetNo).c_str(), "")); |
| | | std::to_string(m_station.nNetNo).c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("Station", |
| | | std::to_string(m_station.nStNo).c_str(), "")); |
| | | std::to_string(m_station.nStNo).c_str(), "", weight++)); |
| | | attrubutes.addAttributeVector(m_attributeVector); |
| | | |
| | | } |
| | | |
| | | void CStep::init() |
| | |
| | | return iter->second; |
| | | } |
| | | |
| | | void CStep::addAttribute(CAttribute* pAttribute) |
| | | { |
| | | // 添加attribute时,要前删除存在的同名的attribute |
| | | m_attributeVector.addAttribute(pAttribute, TRUE); |
| | | } |
| | | |
| | | void CStep::convertString(const char* pszBuffer, int size, std::string& strOut) |
| | | { |
| | | strOut.clear(); |
| | |
| | | virtual void term(); |
| | | void setProp(const char* pszKey, void* pValue); |
| | | void* getProp(const char* pszKey); |
| | | void addAttribute(CAttribute* pAttribute); |
| | | |
| | | protected: |
| | | inline void Lock() { EnterCriticalSection(&m_criticalSection); } |
| | |
| | | CCCLinkIEControl* m_pCclink; |
| | | CRITICAL_SECTION m_criticalSection; |
| | | std::map<std::string, void*> m_mapProp; |
| | | CAttributeVector m_attributeVector; |
| | | }; |
| | | } |
| | | |
| | |
| | | CStep::getAttributeVector(attrubutes); |
| | | std::string temp; |
| | | |
| | | unsigned int weight = 20; |
| | | attrubutes.addAttribute(new CAttribute("Current Step", |
| | | std::to_string(m_nCurStep).c_str(), "")); |
| | | std::to_string(m_nCurStep).c_str(), "", weight++)); |
| | | attrubutes.addAttribute(new CAttribute("Signal Dev", |
| | | ("W" + CToolUnits::toHexString(m_nWriteSignalDev, temp)).c_str(), "")); |
| | | ("W" + CToolUnits::toHexString(m_nWriteSignalDev, temp)).c_str(), "", weight++)); |
| | | } |
| | | |
| | | void CWriteStep::init() |
| | |
| | | #define STEP_EQ_MASTER_RECIPE_LIST _T("EQMasterRecipeListReport") |
| | | #define STEP_EQ_RECIPE_PARAMETER_REQ _T("EQRecipeParameterReq") |
| | | #define STEP_EQ_RECIPE_PARAMETER _T("EQRecipeParameterReport") |
| | | #define STEP_EQ_RECEIVED_JOBn _T("EQReceivedJobReport") |
| | | #define STEP_EQ_RECEIVED_JOB1 _T("EQReceivedJobReport1") |
| | | #define STEP_EQ_RECEIVED_JOB2 _T("EQReceivedJobReport2") |
| | | #define STEP_EQ_RECEIVED_JOB3 _T("EQReceivedJobReport3") |
| | | #define STEP_EQ_RECEIVED_JOB4 _T("EQReceivedJobReport4") |
| | | #define STEP_EQ_RECEIVED_JOB5 _T("EQReceivedJobReport5") |
| | | #define STEP_EQ_RECEIVED_JOB6 _T("EQReceivedJobReport6") |
| | | #define STEP_EQ_RECEIVED_JOB7 _T("EQReceivedJobReport7") |
| | | #define STEP_EQ_RECEIVED_JOB8 _T("EQReceivedJobReport8") |
| | | #define STEP_EQ_RECEIVED_JOB9 _T("EQReceivedJobReport9") |
| | | #define STEP_EQ_FETCHED_OUT_JOBn _T("EQFetchedOutJobReport") |
| | | #define STEP_EQ_FETCHED_OUT_JOB1 _T("EQFetchedOutJobReport1") |
| | | #define STEP_EQ_FETCHED_OUT_JOB2 _T("EQFetchedOutJobReport2") |