#include "Tool.h" #include "../../VisionPlusSdk/VisionPlusTool.h" DLL_TOOL_DESC m_Description; /////////////////////////////////////////////////////////////////// // 获取工具描述 const DLL_TOOL_DESC& ToolImpl::Description() { // 生成dll描述 m_Description.Type = TOOL_TYPE::TOOL_TYPE_STANDARD; m_Description.strCategory = (CATEGORY_TOOL_HARDWARE); m_Description.strName = ("BaseDemo"); m_Description.strAliasName = "Get_Int"; m_Description.strVersion = ("1.3"); m_Description.strInfo = ("This Info"); return m_Description; } ///////////////////////////////////////////////// // 生成默认的接口描述 void ToolImpl::InitDefaultInterfaces(bool withValue) { // 接口 DLL_INF inf; inf.strName = ("Int1.in"); inf.Direction = INF_DIRECTION::INF_DIR_IN; inf.Type = INF_TYPE::INF_TYPE_STANDARD; inf.value.passMode = VALUE_PASS_MODE::PASS_BY_VALUE; inf.value.type = VALUE_TYPE::Type_Int; if (withValue) { inf.value.Ptr = (void**)&((ToolDialogImpl*)m_pDlgTool)->m_Value; } m_Interfaces.push_back(inf); inf.reset();////////////////////////////////////////////////////////////////////////// inf.strName = ("Int2.in"); inf.Direction = INF_DIRECTION::INF_DIR_IN; inf.Type = INF_TYPE::INF_TYPE_STANDARD; inf.value.passMode = VALUE_PASS_MODE::PASS_BY_VALUE; inf.value.type = VALUE_TYPE::Type_Int; if (withValue) { inf.value.Ptr = (void**)&((ToolDialogImpl*)m_pDlgTool)->m_Value2; } m_Interfaces.push_back(inf); inf.reset();////////////////////////////////////////////////////////////////////////// inf.strName = ("Int1.out"); inf.Direction = INF_DIRECTION::INF_DIR_OUT; inf.Type = INF_TYPE::INF_TYPE_STANDARD; inf.value.passMode = VALUE_PASS_MODE::PASS_BY_VALUE; inf.value.type = VALUE_TYPE::Type_Int; if (withValue) { inf.value.Ptr = (void**)&((ToolDialogImpl*)m_pDlgTool)->m_Value3; } m_Interfaces.push_back(inf); inf.reset();////////////////////////////////////////////////////////////////////////// inf.strName = ("QImage"); inf.Direction = INF_DIRECTION::INF_DIR_OUT; inf.Type = INF_TYPE::INF_TYPE_STANDARD; inf.value.passMode = VALUE_PASS_MODE::PASS_BY_VALUE; inf.value.type = VALUE_TYPE::Type_QImage; if (withValue) { inf.value.Ptr = (void**)&((ToolDialogImpl*)m_pDlgTool)->m_QImage; } m_Interfaces.push_back(inf); inf.reset();////////////////////////////////////////////////////////////////////////// inf.strName = ("HImage"); inf.Direction = INF_DIRECTION::INF_DIR_OUT; inf.Type = INF_TYPE::INF_TYPE_STANDARD; inf.value.passMode = VALUE_PASS_MODE::PASS_BY_VALUE; inf.value.type = VALUE_TYPE::Type_HImage; if (withValue) { inf.value.Ptr = (void**)&((ToolDialogImpl*)m_pDlgTool)->m_Image; } m_Interfaces.push_back(inf); inf.reset();////////////////////////////////////////////////////////////////////////// // 增加Event类型的接口 inf.strName = ("Event.Out"); inf.Direction = INF_DIRECTION::INF_DIR_OUT; inf.Type = INF_TYPE::INF_TYPE_CONTROL; inf.value.passMode = VALUE_PASS_MODE::PASS_BY_VALUE; //inf.value.type = VALUE_TYPE::Type_Event; if (withValue) { // 初始化event名字 ((ToolDialogImpl*)m_pDlgTool)->m_eventOut.setName(m_strPouName, this->m_strInstanceName + "." + inf.strName); inf.value.Ptr = (void**)&((ToolDialogImpl*)m_pDlgTool)->m_eventOut; } m_Interfaces.push_back(inf); inf.reset();////////////////////////////////////////////////////////////////////////// // 增加QButton类型的接口用于测试 inf.strName = ("QButton.Out"); inf.Direction = INF_DIRECTION::INF_DIR_OUT; inf.Type = INF_TYPE::INF_TYPE_CONTROL; inf.value.passMode = VALUE_PASS_MODE::PASS_BY_VALUE; inf.value.type = VALUE_TYPE::Control_Button; if (withValue) { inf.value.Ptr = (void**)((ToolDialogImpl*)m_pDlgTool)->ui.pushButton; } m_Interfaces.push_back(inf); inf.reset();////////////////////////////////////////////////////////////////////////// }