LAPTOP-SNT8I5JK\Boounion
2025-04-26 9ad04a15d7f9438cf3e5f1b69b8d458ae767bdf5
1.CReadStep增加写入返回值或数据的功能;
已添加1个文件
已修改7个文件
43 ■■■■■ 文件已修改
Document/~$WIN_EAS_Equipment_Communication_Specification(CC-LINK)_v3.1(翻译结果).docx 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CEqVcrEventStep.cpp 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CEqVcrEventStep.h 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CEquipment.cpp 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CMaster.cpp 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CReadStep.cpp 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CReadStep.h 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CWriteStep.cpp 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Document/~$WIN_EAS_Equipment_Communication_Specification(CC-LINK)_v3.1(·­Òë½á¹û).docx
Binary files differ
SourceCode/Bond/Servo/CEqVcrEventStep.cpp
@@ -78,5 +78,11 @@
    {
        return &m_vcrEventReport;
    }
    int CEqVcrEventStep::setReturnCode(short code)
    {
        memcpy(m_szReturnBuf, &code, sizeof(short));
        m_nReturnDataSize = sizeof(short);
    }
}
SourceCode/Bond/Servo/CEqVcrEventStep.h
@@ -17,6 +17,7 @@
        virtual int onTimeout();
        void setVcrEventReportDev(int nDev);
        CVcrEventReport* getVcrEventReport();
        int setReturnCode(short code);
    private:
        int m_nVcrEventReportDev;
SourceCode/Bond/Servo/CEquipment.cpp
@@ -543,6 +543,8 @@
                    m_listener.onVcrEventReport(this, pVcrEventReport);
                }
                // 0426, å…ˆå›ºå®šè¿”回1(OK)
                pEqVcrEventStep->setReturnCode(1);
                return 1;
            }
        }
SourceCode/Bond/Servo/CMaster.cpp
@@ -445,6 +445,7 @@
            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;
SourceCode/Bond/Servo/CReadStep.cpp
@@ -22,6 +22,9 @@
        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()
@@ -38,6 +41,11 @@
    void CReadStep::setWriteSignalDev(int dev)
    {
        m_nWriteSignalDev = dev;
    }
    void CReadStep::setReturnDev(int dev)
    {
        m_nReturnDevNo = dev;
    }
    void CReadStep::onReadSignal(int nSignalType)
@@ -88,6 +96,17 @@
                    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);
@@ -115,6 +134,9 @@
                    ASSERT(m_pEquipment);
                    m_pEquipment->onStepEvent(this, STEP_EVENT_COMPLETE);
                }
                // å›žå¤æ•°æ®æ¸…空
                m_nReturnDataSize = 0;
            }
        }
SourceCode/Bond/Servo/CReadStep.h
@@ -12,6 +12,7 @@
    public:
        unsigned WorkingProc();
        virtual void setWriteSignalDev(int dev);
        virtual void setReturnDev(int dev);
        virtual void onReadSignal(int nSignalType);
        virtual int onReadData();
        virtual void init();
@@ -31,6 +32,12 @@
        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;
    };
}
SourceCode/Bond/Servo/CWriteStep.cpp
@@ -89,9 +89,9 @@
                // 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;
                }