1.CReadStep增加写入返回值或数据的功能;
| | |
| | | { |
| | | return &m_vcrEventReport; |
| | | } |
| | | |
| | | int CEqVcrEventStep::setReturnCode(short code) |
| | | { |
| | | memcpy(m_szReturnBuf, &code, sizeof(short)); |
| | | m_nReturnDataSize = sizeof(short); |
| | | } |
| | | } |
| | | |
| | |
| | | virtual int onTimeout(); |
| | | void setVcrEventReportDev(int nDev); |
| | | CVcrEventReport* getVcrEventReport(); |
| | | int setReturnCode(short code); |
| | | |
| | | private: |
| | | int m_nVcrEventReportDev; |
| | |
| | | m_listener.onVcrEventReport(this, pVcrEventReport); |
| | | } |
| | | |
| | | // 0426, å
åºå®è¿å1(OK) |
| | | pEqVcrEventStep->setReturnCode(1); |
| | | return 1; |
| | | } |
| | | } |
| | |
| | | CEqVcrEventStep* pStep = new CEqVcrEventStep(); |
| | | pStep->setName(STEP_EQ_VCR1_EVENT_REPORT); |
| | | pStep->setWriteSignalDev(0x4a); |
| | | pStep->setReturnDev(0x91e); |
| | | pStep->setVcrEventReportDev(0x5fef); |
| | | if (pEquipment->addStep(STEP_ID_VCR1_EVENT_REPORT, pStep) != 0) { |
| | | delete pStep; |
| | |
| | | m_hReadSignalOff = ::CreateEvent(NULL, TRUE, FALSE, NULL); |
| | | m_nSignalType = 0; |
| | | m_nCurStep = 0; |
| | | m_szReturnBuf[1024] = {0}; |
| | | m_nReturnDataSize = 0; |
| | | m_nReturnDevNo = 0; |
| | | } |
| | | |
| | | CReadStep::~CReadStep() |
| | |
| | | void CReadStep::setWriteSignalDev(int dev) |
| | | { |
| | | m_nWriteSignalDev = dev; |
| | | } |
| | | |
| | | void CReadStep::setReturnDev(int dev) |
| | | { |
| | | m_nReturnDevNo = dev; |
| | | } |
| | | |
| | | void CReadStep::onReadSignal(int nSignalType) |
| | |
| | | m_pEquipment->onStepEvent(this, STEP_EVENT_READDATA); |
| | | } |
| | | |
| | | // 0426æ°å¢ |
| | | // 1.1ï¼åreturn code or data |
| | | if (m_nReturnDataSize > 0) { |
| | | int nWriteRet = m_pCclink->WriteData(m_station, (short)DeviceType::W, |
| | | m_nReturnDevNo, m_nReturnDataSize, (short*)m_szReturnBuf); |
| | | if (0 != nWriteRet) { |
| | | onTimeout(); |
| | | goto RESET; |
| | | } |
| | | } |
| | | |
| | | // 2.ç»å¯¹æ¹åON |
| | | nextStep(); |
| | | m_pCclink->SetBitDeviceEx(m_station, (long)DeviceType::B, m_nWriteSignalDev); |
| | |
| | | ASSERT(m_pEquipment); |
| | | m_pEquipment->onStepEvent(this, STEP_EVENT_COMPLETE); |
| | | } |
| | | |
| | | // å夿°æ®æ¸
空 |
| | | m_nReturnDataSize = 0; |
| | | } |
| | | } |
| | | |
| | |
| | | public: |
| | | unsigned WorkingProc(); |
| | | virtual void setWriteSignalDev(int dev); |
| | | virtual void setReturnDev(int dev); |
| | | virtual void onReadSignal(int nSignalType); |
| | | virtual int onReadData(); |
| | | virtual void init(); |
| | |
| | | int m_nSignalType; |
| | | int m_nCurStep; |
| | | int m_nWriteSignalDev; // 对æ¹BITå°å |
| | | |
| | | // return code or data |
| | | protected: |
| | | char m_szReturnBuf[1024]; |
| | | int m_nReturnDataSize; |
| | | int m_nReturnDevNo; |
| | | }; |
| | | } |
| | | |
| | |
| | | // 1.åæ°æ® |
| | | nextStep(); |
| | | ASSERT(m_pCclink); |
| | | int nRet = m_pCclink->WriteData(m_station, (short)DeviceType::W, |
| | | int nWriteRet = m_pCclink->WriteData(m_station, (short)DeviceType::W, |
| | | m_nWriteDevNo, m_nWriteDataSize, (short*)m_szBuffer); |
| | | if (0 != nRet) { |
| | | if (0 != nWriteRet) { |
| | | onTimeout(); |
| | | goto RESET; |
| | | } |