LAPTOP-SNT8I5JK\Boounion
2025-03-15 e7a450d2fdc99bd501e1af7dd7c16c477cfea75e
1.CimMessageClear(清除Cim消息)测试通过;
2.增加VCREanbleStep(启用/禁用)VCR;
已添加3个文件
已删除1个文件
已修改6个文件
135 ■■■■ 文件已修改
Document/ESWIN_EAS_Bonder_Inline_Mapping_Address_v1.1.1(1).xlsx 补丁 | 查看 | 原始文档 | blame | 历史
Document/ESWIN_EAS_Bonder_Inline_Mapping_Address_v1.1.1.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CEqVCREnableStep.cpp 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CEqVCREnableStep.h 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CEquipment.h 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CMaster.cpp 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/Common.h 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/Servo.vcxproj 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/Servo.vcxproj.filters 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/ServoDlg.cpp 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Document/ESWIN_EAS_Bonder_Inline_Mapping_Address_v1.1.1(1).xlsx
Binary files differ
Document/ESWIN_EAS_Bonder_Inline_Mapping_Address_v1.1.1.xlsx
Binary files differ
SourceCode/Bond/Servo/CEqVCREnableStep.cpp
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
#include "stdafx.h"
#include "CEqVCREnableStep.h"
#include "Log.h"
namespace SERVO {
    CEqVCREnableStep::CEqVCREnableStep() : CWriteStep()
    {
        m_nEqVCRModeDev = 0;
    }
    CEqVCREnableStep::~CEqVCREnableStep()
    {
    }
    void CEqVCREnableStep::setEqVCRModeDev(int nDev)
    {
        m_nEqVCRModeDev = nDev;
    }
    int CEqVCREnableStep::vcrEanble(short id)
    {
        char szBuffer[16];
        int mode = 1;
        memcpy(szBuffer, &id, sizeof(short));
        memcpy(&szBuffer[2], &mode, sizeof(short));
        return writeData(m_nEqVCRModeDev, (const char*)szBuffer, 4);
    }
    int CEqVCREnableStep::vcrDisable(short id)
    {
        char szBuffer[16];
        int mode = 2;
        memcpy(szBuffer, &id, sizeof(short));
        memcpy(&szBuffer[2], &mode, sizeof(short));
        return writeData(m_nEqVCRModeDev, (const char*)szBuffer, 4);
    }
    void CEqVCREnableStep::getAttributeVector(CAttributeVector& attrubutes)
    {
        CWriteStep::getAttributeVector(attrubutes);
        std::string strTemp;
        attrubutes.addAttribute(new CAttribute("VCR Mode Dev",
            ("W" + CToolUnits::toHexString(m_nEqVCRModeDev, strTemp)).c_str(), ""));
    }
}
SourceCode/Bond/Servo/CEqVCREnableStep.h
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
#pragma once
#include "CWriteStep.h"
namespace SERVO {
    class CEqVCREnableStep : public CWriteStep
    {
    public:
        CEqVCREnableStep();
        ~CEqVCREnableStep();
    public:
        void setEqVCRModeDev(int nDev);
        int vcrEanble(short id);
        int vcrDisable(short id);
        void getAttributeVector(CAttributeVector& attrubutes);
    private:
        int m_nEqVCRModeDev;
    };
}
SourceCode/Bond/Servo/CEquipment.h
@@ -10,6 +10,7 @@
#include "CEqCimMessageCmdStep.h"
#include "CEqCimMessageClearStep.h"
#include "CEqDateTimeSetCmdStep.h"
#include "CEqVCREnableStep.h"
#include <map>
SourceCode/Bond/Servo/CMaster.cpp
@@ -245,22 +245,12 @@
            }
        }
        {
            CEqModeChangeStep* pStep = new CEqModeChangeStep();
            pStep->setName(STEP_EQ_MODE_CHANGE);
            pStep->setListener(listener);
            pStep->setWriteSignalDev(0x51);
            pStep->setEqModeDev(0x1E);
            if (pEquipment->addStep(0x351, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqCimMessageCmdStep* pStep = new CEqCimMessageCmdStep();
            pStep->setName(STEP_CIM_MESSAGE_CMD);
            pStep->setListener(listener);
            pStep->setWriteSignalDev(0x53);
            pStep->setWriteSignalDev(0x51);
            pStep->setCimMessageDev(0x0);
            if (pEquipment->addStep(0x352, pStep) != 0) {
            if (pEquipment->addStep(0x351, pStep) != 0) {
                delete pStep;
            }
        }
@@ -268,9 +258,9 @@
            CEqCimMessageClearStep* pStep = new CEqCimMessageClearStep();
            pStep->setName(STEP_CIM_MESSAGE_CLEAR);
            pStep->setListener(listener);
            pStep->setWriteSignalDev(0x54);
            pStep->setWriteSignalDev(0x52);
            pStep->setClearCimMessageDev(0x13);
            if (pEquipment->addStep(0x353, pStep) != 0) {
            if (pEquipment->addStep(0x352, pStep) != 0) {
                delete pStep;
            }
        }
@@ -278,12 +268,33 @@
            CEqDateTimeSetCmdStep* pStep = new CEqDateTimeSetCmdStep();
            pStep->setName(STEP_DATETIME_SET_CMD);
            pStep->setListener(listener);
            pStep->setWriteSignalDev(0x55);
            pStep->setWriteSignalDev(0x53);
            pStep->setDateTimeDev(0x16);
            if (pEquipment->addStep(0x353, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqVCREnableStep* pStep = new CEqVCREnableStep();
            pStep->setName(STEP_EQ_VCR_ENABLE);
            pStep->setListener(listener);
            pStep->setWriteSignalDev(0x54);
            pStep->setEqVCRModeDev(0x1F);
            if (pEquipment->addStep(0x354, pStep) != 0) {
                delete pStep;
            }
        }
        {
            CEqModeChangeStep* pStep = new CEqModeChangeStep();
            pStep->setName(STEP_EQ_MODE_CHANGE);
            pStep->setListener(listener);
            pStep->setWriteSignalDev(0x55);
            pStep->setEqModeDev(0x1E);
            if (pEquipment->addStep(0x355, pStep) != 0) {
                delete pStep;
            }
        }
        pEquipment->init();
        LOGE("已添加“EFEM(ROBOT)”.");
        return 0;
SourceCode/Bond/Servo/Common.h
@@ -68,6 +68,7 @@
#define STEP_CIM_MESSAGE_CMD    _T("EQCimMessageCmd")
#define STEP_CIM_MESSAGE_CLEAR    _T("EQCimMessageClear")
#define STEP_DATETIME_SET_CMD    _T("EQDateTimeSetCmd")
#define STEP_EQ_VCR_ENABLE        _T("EQVCREnable")
#define BASE_ALARM_EFEM        10000
SourceCode/Bond/Servo/Servo.vcxproj
@@ -213,6 +213,7 @@
    <ClInclude Include="CEqModeStep.h" />
    <ClInclude Include="CEqProcessStep.h" />
    <ClInclude Include="CEqStatusStep.h" />
    <ClInclude Include="CEqVCREnableStep.h" />
    <ClInclude Include="CPanelAttributes.h" />
    <ClInclude Include="CPanelEquipment.h" />
    <ClInclude Include="CPanelMaster.h" />
@@ -264,6 +265,7 @@
    <ClCompile Include="CEqModeStep.cpp" />
    <ClCompile Include="CEqProcessStep.cpp" />
    <ClCompile Include="CEqStatusStep.cpp" />
    <ClCompile Include="CEqVCREnableStep.cpp" />
    <ClCompile Include="CPanelAttributes.cpp" />
    <ClCompile Include="CPanelEquipment.cpp" />
    <ClCompile Include="CPanelMaster.cpp" />
SourceCode/Bond/Servo/Servo.vcxproj.filters
@@ -57,6 +57,7 @@
    <ClCompile Include="CEqCimMessageCmdStep.cpp" />
    <ClCompile Include="CEqCimMessageClearStep.cpp" />
    <ClCompile Include="CEqDateTimeSetCmdStep.cpp" />
    <ClCompile Include="CEqVCREnableStep.cpp" />
  </ItemGroup>
  <ItemGroup>
    <ClInclude Include="AlarmManager.h" />
@@ -112,6 +113,7 @@
    <ClInclude Include="CEqCimMessageCmdStep.h" />
    <ClInclude Include="CEqCimMessageClearStep.h" />
    <ClInclude Include="CEqDateTimeSetCmdStep.h" />
    <ClInclude Include="CEqVCREnableStep.h" />
  </ItemGroup>
  <ItemGroup>
    <ResourceCompile Include="Servo.rc" />
SourceCode/Bond/Servo/ServoDlg.cpp
@@ -560,16 +560,8 @@
{
    SERVO::CEquipment* pEquipment = m_pPanelMaster->GetActiveEquipment();
    if (pEquipment != nullptr) {
        SERVO::CEqCimModeChangeStep* pStep = (SERVO::CEqCimModeChangeStep*)pEquipment->getStepWithName(STEP_CIM_MODE_CHANGE);
        if (pStep != nullptr) {
            static int i = 0;
            i++;
            if(i % 2 == 1)
                pStep->cimOn();
            else
                pStep->cimOff();
            AfxMessageBox(pStep->getName().c_str());
        }
        SERVO::CEqCimMessageCmdStep* pStep = (SERVO::CEqCimMessageCmdStep*)pEquipment->getStepWithName(STEP_CIM_MESSAGE_CMD);
        pStep->setCimMessage("HELLO 5007", 2, 3);
    }
}
@@ -580,7 +572,11 @@
void CServoDlg::OnMenuTestMessageClear()
{
    AfxMessageBox("OnMenuTestMessageClear");
    SERVO::CEquipment* pEquipment = m_pPanelMaster->GetActiveEquipment();
    if (pEquipment != nullptr) {
        SERVO::CEqCimMessageClearStep* pStep = (SERVO::CEqCimMessageClearStep*)pEquipment->getStepWithName(STEP_CIM_MESSAGE_CLEAR);
        pStep->clearCimMessage(2, 3);
    }
}
void CServoDlg::OnUpdateMenuTestMessageClear(CCmdUI* pCmdUI)