1.变量(代EAP查询的数据)增加列表类型;
2.实现ProcessJob Queued上报功能;
| | |
| | | // S5F1 |
| | | replyAck(5, 2, pMessage->getHeader()->systemBytes, 0, _T("ACK0")); |
| | | } |
| | | else if (nStream == 6 && pHeader->function == 11) { |
| | | // S5F1 |
| | | replyAck(6, 12, pMessage->getHeader()->systemBytes, 0, _T("ACK0")); |
| | | } |
| | | }; |
| | | |
| | | ActiveListener listener; |
| | |
| | | |
| | | #define SVID_CJobSpace 5001 |
| | | #define SVID_PJobSpace 5002 |
| | | #define SVID_PJobQueued 5003 |
| | | |
| | | |
| | | typedef std::function<void(void* pFrom, ACTIVESTATE state)> STATECHANGED; |
| | |
| | | |
| | | void CEAPSimulatorDlg::OnBnClickedButtonQueryPjSpace() |
| | | { |
| | | theApp.m_model.m_pHsmsActive->hsmsSelectedEquipmentStatusRequest(SVID_PJobSpace); |
| | | theApp.m_model.m_pHsmsActive->hsmsSelectedEquipmentStatusRequest(SVID_PJobQueued); |
| | | } |
| | | |
| | | void CEAPSimulatorDlg::OnBnClickedButtonQueryPpidList() |
| | |
| | | ii++; |
| | | if (ii == 55) { |
| | | char szBuffer[64] = { 0 }; |
| | | CStep* pStep = getStepWithName(STEP_EQ_PORT1_INUSE); |
| | | CStep* pStep = getStepWithName(STEP_EQ_PORT2_INUSE); |
| | | CPortStatusReport portStatusReport; |
| | | portStatusReport.setPortStatus(PORT_INUSE); |
| | | portStatusReport.setJobExistenceSlot(0xf); |
| | |
| | | return m_processJobs.size(); |
| | | } |
| | | |
| | | std::vector<SERVO::CProcessJob*>& CMaster::getProcessJobs() |
| | | { |
| | | return m_processJobs; |
| | | } |
| | | |
| | | CLoadPort* CMaster::getPortWithCarrierId(const std::string& carrierId) const |
| | | { |
| | | CLoadPort* pPort; |
| | |
| | | int getContinuousTransferCount(); |
| | | void setContinuousTransferCount(int round); |
| | | int setProcessJobs(std::vector<SERVO::CProcessJob*>& pjs); |
| | | std::vector<SERVO::CProcessJob*>& getProcessJobs(); |
| | | CLoadPort* getPortWithCarrierId(const std::string& carrierId) const; |
| | | |
| | | private: |
| | |
| | | if (_strcmpi("A20", pszFormat) == 0) { |
| | | return SVFromat::A20; |
| | | } |
| | | if (_strcmpi("L", pszFormat) == 0) { |
| | | return SVFromat::L; |
| | | } |
| | | |
| | | return SVFromat::U1; |
| | | } |
| | |
| | | } |
| | | if (SVFromat::A20 == format) { |
| | | return "A20"; |
| | | } |
| | | if (SVFromat::L == format) { |
| | | return "L"; |
| | | } |
| | | |
| | | return "U1"; |
| | |
| | | m_strValue = strTemp; |
| | | } |
| | | |
| | | void CVariable::setValue(std::vector<CVariable>& vars) |
| | | { |
| | | m_varsValue = vars; |
| | | } |
| | | |
| | | std::string CVariable::getValue() |
| | | { |
| | | std::string strRet; |
| | |
| | | return 0; |
| | | } |
| | | |
| | | |
| | | std::vector<CVariable>& CVariable::getVarsValue() |
| | | { |
| | | return m_varsValue; |
| | | } |
| | | } |
| | |
| | | U2, |
| | | I2, |
| | | A20, |
| | | A50 |
| | | A50, |
| | | L |
| | | }; |
| | | |
| | | class CVariable |
| | |
| | | std::string& getRemark(); |
| | | void setValue(__int64 value); |
| | | void setValue(const char* pszValue); |
| | | void setValue(std::vector<CVariable>& vars); |
| | | std::string getValue(); |
| | | __int64 getIntValue(); |
| | | std::vector<CVariable>& getVarsValue(); |
| | | |
| | | private: |
| | | unsigned int m_nVarialbeId; |
| | |
| | | std::string m_strRemark; |
| | | __int64 m_nValue; |
| | | std::string m_strValue; |
| | | std::vector<CVariable> m_varsValue; |
| | | }; |
| | | } |
| | | |
| | |
| | | ASSERT(pParent); |
| | | ASSERT(pVariable); |
| | | |
| | | |
| | | ISECS2Item* pItemList; |
| | | SERVO::SVFromat format = pVariable->getFormat(); |
| | | switch (format) |
| | | { |
| | |
| | | case SERVO::SVFromat::A20: |
| | | case SERVO::SVFromat::A50: |
| | | pParent->addItem(pVariable->getValue().c_str(), "SV"); |
| | | break; |
| | | case SERVO::SVFromat::L: |
| | | pItemList = pParent->addItem(); |
| | | { |
| | | auto vars = pVariable->getVarsValue(); |
| | | for (auto v : vars) { |
| | | addVariableValueToItem(pItemList, &v); |
| | | } |
| | | } |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | |
| | | auto v = getVariable(pszName); |
| | | if (v != nullptr) { |
| | | v->setValue(value); |
| | | } |
| | | } |
| | | |
| | | void CHsmsPassive::setVariableValue(const char* pszName, std::vector<SERVO::CVariable>& vars) |
| | | { |
| | | auto v = getVariable(pszName); |
| | | if (v != nullptr) { |
| | | v->setValue(vars); |
| | | } |
| | | } |
| | | |
| | |
| | | return 0; |
| | | } |
| | | |
| | | // S1F3 |
| | | int CHsmsPassive::replySelectedEquipmentStatusData(IMessage* pRecv) |
| | | { |
| | | if (m_pPassive == NULL || STATE::SELECTED != m_pPassive->getState()) { |
| | |
| | | pItemList2->addU4Item(pReport->getReportId(), "RPTID"); |
| | | ISECS2Item* pItemList3 = pItemList2->addItem(); |
| | | |
| | | auto values = pReport->getVariables(); |
| | | for (auto item : values) { |
| | | pItemList3->addItem(item->getValue().c_str(), "V"); |
| | | auto vars = pReport->getVariables(); |
| | | for (auto var : vars) { |
| | | addVariableValueToItem(pItemList3, var); |
| | | } |
| | | pAction->setSendMessage(pMessage); |
| | | if (m_pPassive == NULL || STATE::SELECTED != m_pPassive->getState()) { |
| | |
| | | return requestEventReportSend("CarrierID_Readed"); |
| | | } |
| | | |
| | | int CHsmsPassive::requestEventReportSend_PJ_Queued() |
| | | { |
| | | return requestEventReportSend("PJ_Queued"); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | |
| | | // 设置åéå¼ |
| | | void setVariableValue(const char* pszName, __int64 value); |
| | | void setVariableValue(const char* pszName, const char* value); |
| | | void setVariableValue(const char* pszName, std::vector<SERVO::CVariable>& vars); |
| | | |
| | | // 仿件ä¸å è½½CReportå表 |
| | | int loadReports(const char* pszFilepath); |
| | |
| | | int requestEventReportSend(unsigned int CEID); |
| | | int requestEventReportSend(const char* pszEventName); |
| | | int requestEventReportSend_CarrierID_Readed(); |
| | | int requestEventReportSend_PJ_Queued(); |
| | | |
| | | private: |
| | | void replyAck(int s, int f, unsigned int systemBytes, BYTE ack, const char* pszAckName); |
| | |
| | | for (auto p : pjs) { |
| | | LOGI("<Model>onPRJobMultiCreate %s %s", p->id().c_str(), p->recipeSpec().c_str()); |
| | | } |
| | | return m_master.setProcessJobs(pjs); |
| | | int nRet = m_master.setProcessJobs(pjs); |
| | | auto processJobs = m_master.getProcessJobs(); |
| | | std::vector<SERVO::CVariable> vars; |
| | | for (auto pj : processJobs) { |
| | | SERVO::CVariable var("", "PRJOBID", "A50", "PRJOBID"); |
| | | var.setValue(pj->id().c_str()); |
| | | vars.push_back(var); |
| | | } |
| | | |
| | | m_hsmsPassive.setVariableValue("PJQueued", vars); |
| | | m_hsmsPassive.requestEventReportSend_PJ_Queued(); |
| | | return nRet; |
| | | }; |
| | | m_hsmsPassive.setListener(listener); |
| | | m_hsmsPassive.setEquipmentModelType((LPTSTR)(LPCTSTR)strModeType); |
| | |
| | | 40000,E90_SPSM_NoState_To_NeedsProcessing,,(40000) |
| | | 40001,E90_SPSM_InProcess_To_ProcessCompleted,,(40000) |
| | | 50000,CarrierID_Readed,,(50000) |
| | | 50001,PJ_Queued,,(50001) |
| | |
| | | 31000,(1,31000,31001) |
| | | 40000,(1,10203,20000) |
| | | 50000,(5000) |
| | | 50001,(5003) |
| | | |
| | |
| | | 2025,FFUParameter,U2,FFU设å®å¼ |
| | | 5000,CarrierID,A20,å¡å£ID |
| | | 5001,CJobSpace,U1,CJ Space |
| | | 5002,PJobSpace,U1,PJ Space |
| | | 5002,PJobSpace,U1,PJ Space |
| | | 5003,PJQueued,L,PJ Queued |