123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254 |
- #include "Tool.h"
- #include "../../VisionPlusSdk/VisionPlusTool.h"
- DLL_TOOL_DESC m_Description;
- /// <summary>
- /// 获取工具描述
- /// </summary>
- /// <returns></returns>
- const DLL_TOOL_DESC& ToolImpl::Description()
- {
- // 生成dll描述
- m_Description.Type = TOOL_TYPE::TOOL_TYPE_STANDARD;
- m_Description.strCategory = ("硬件工具");
- m_Description.strName = ("ValueTest");
- m_Description.strVersion = ("3.0");
- m_Description.strInfo = ("This Info");
- return m_Description;
- }
- /////////////////////////////////////////////////
- // 生成默认的接口描述
- // 2021-8-3备注,其实 withValue 参数没有任何意义,因为目前的设计里exe是不会保存tool中的任何值的
- // 全部的数据都保存在dll自身中
- void ToolImpl::InitDefaultInterfaces(bool withValue)
- {
- m_Interfaces.clear();
- // 接口
- DLL_INF inf;
- inf.strName = ("Int.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;
- inf.Discard = INF_DISCARD::INF_DEFAULT;
- if (withValue)
- {
- inf.value.Ptr = (void**)&((ToolDialogImpl*)m_pDlgTool)->m_intInput;
- }
- // inf.bSmartLink = true;
- m_Interfaces.push_back(inf);
- inf.reset();//////////////////////////////////////////////////////////////////////////
- inf.strName = ("Int.InAddr");
- inf.Direction = INF_DIRECTION::INF_DIR_IN;
- inf.Type = INF_TYPE::INF_TYPE_STANDARD;
- inf.value.passMode = VALUE_PASS_MODE::PASS_BY_ADDRESS;
- inf.value.type = VALUE_TYPE::Type_Int;
- if (withValue)
- {
- inf.value.Ptr = (void**)&((ToolDialogImpl*)m_pDlgTool)->m_pInt;
- }
- // inf.bSmartLink = true;
- m_Interfaces.push_back(inf);
- inf.reset();//////////////////////////////////////////////////////////////////////////
- inf.strName = ("Int.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_intOutput;
- }
- // inf.bSmartLink = false;
- m_Interfaces.push_back(inf);
- inf.reset();//////////////////////////////////////////////////////////////////////////
- // 2021-12-18 增加复杂控件的索引接口供测试
- inf.strName = ("Index.Int");
- 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_nIndex;
- }
- m_Interfaces.push_back(inf);
- inf.reset();
- // 2021-12-27 增加另外一个复杂控件的索引接口供测试
- inf.strName = ("Index2.Int");
- 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_nIndex2;
- }
- m_Interfaces.push_back(inf);
- inf.reset();
- inf.strName = ("QString.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_String;
- if (withValue)
- {
- inf.value.Ptr = (void**)&((ToolDialogImpl*)m_pDlgTool)->m_strInput;
- }
- m_Interfaces.push_back(inf);
- inf.reset();//////////////////////////////////////////////////////////////////////////
- inf.strName = ("QString.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_String;
- if (withValue)
- {
- inf.value.Ptr = (void**)&((ToolDialogImpl*)m_pDlgTool)->m_strOutput;
- }
- 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_EVENT;
- inf.value.passMode = VALUE_PASS_MODE::PASS_BY_VALUE;
- 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();//////////////////////////////////////////////////////////////////////////
- // 增加Event类型的接口2
- inf.strName = ("Event2.Out");
- inf.Direction = INF_DIRECTION::INF_DIR_OUT;
- inf.Type = INF_TYPE::INF_TYPE_EVENT;
- inf.value.passMode = VALUE_PASS_MODE::PASS_BY_VALUE;
- // inf.value.type = VALUE_TYPE::Type_Event;
- if (withValue)
- {
- ((ToolDialogImpl*)m_pDlgTool)->m_eventOut2.setName(m_strPouName, this->m_strInstanceName + "." + inf.strName);
- inf.value.Ptr = (void**)&((ToolDialogImpl*)m_pDlgTool)->m_eventOut2;
- }
- 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_ADDRESS;
- inf.value.type = VALUE_TYPE::Control_Button;
- if (withValue)
- {
- // 注意提供控件指针的时候比起普通变量要少一个 & 否则内存地址就弄错了
- inf.value.Ptr = (void**)((ToolDialogImpl*)m_pDlgTool)->m_expButton;
- }
- m_Interfaces.push_back(inf);
- inf.reset();//////////////////////////////////////////////////////////////////////////
- // 增加QLineEdit输出类型的接口
- inf.strName = ("QLineEdit.Out");
- inf.Direction = INF_DIRECTION::INF_DIR_OUT;
- inf.Type = INF_TYPE::INF_TYPE_CONTROL;
- inf.value.passMode = VALUE_PASS_MODE::PASS_BY_ADDRESS;
- inf.value.type = VALUE_TYPE::Control_LineEdit;
- if (withValue)
- {
- // 注意提供控件指针的时候比起普通变量要少一个 & 否则内存地址就弄错了
- inf.value.Ptr = (void**)((ToolDialogImpl*)m_pDlgTool)->m_expEdit;
- }
- m_Interfaces.push_back(inf);
- inf.reset();//////////////////////////////////////////////////////////////////////////
- // 增加QRadioButton输出类型的接口
- inf.strName = ("QRadio.Out");
- inf.Direction = INF_DIRECTION::INF_DIR_OUT;
- inf.Type = INF_TYPE::INF_TYPE_CONTROL;
- inf.value.passMode = VALUE_PASS_MODE::PASS_BY_ADDRESS;
- inf.value.type = VALUE_TYPE::Control_RadioBox;
- if (withValue)
- {
- // 注意提供控件指针的时候比起普通变量要少一个 & 否则内存地址就弄错了
- inf.value.Ptr = (void**)((ToolDialogImpl*)m_pDlgTool)->m_expRadio;
- }
- m_Interfaces.push_back(inf);
- inf.reset();//////////////////////////////////////////////////////////////////////////
- // 增加QCheckBox输出类型的接口
- inf.strName = ("QCheck.Out");
- inf.Direction = INF_DIRECTION::INF_DIR_OUT;
- inf.Type = INF_TYPE::INF_TYPE_CONTROL;
- inf.value.passMode = VALUE_PASS_MODE::PASS_BY_ADDRESS;
- inf.value.type = VALUE_TYPE::Control_CheckBox;
- if (withValue)
- {
- // 注意提供控件指针的时候比起普通变量要少一个 & 否则内存地址就弄错了
- inf.value.Ptr = (void**)((ToolDialogImpl*)m_pDlgTool)->m_expCheck;
- }
- m_Interfaces.push_back(inf);
- inf.reset();//////////////////////////////////////////////////////////////////////////
- // 增加QListWidget输出类型的接口
- inf.strName = ("QList.Out");
- inf.Direction = INF_DIRECTION::INF_DIR_OUT;
- inf.Type = INF_TYPE::INF_TYPE_CONTROL;
- inf.value.passMode = VALUE_PASS_MODE::PASS_BY_ADDRESS;
- inf.value.type = VALUE_TYPE::Control_Listbox;
- if (withValue)
- {
- // 注意提供控件指针的时候比起普通变量要少一个 & 否则内存地址就弄错了
- inf.value.Ptr = (void**)((ToolDialogImpl*)m_pDlgTool)->m_expList;
- }
- m_Interfaces.push_back(inf);
- inf.reset();//////////////////////////////////////////////////////////////////////////
- // 增加QComboBox输出类型的接口
- inf.strName = ("QCombo.Out");
- inf.Direction = INF_DIRECTION::INF_DIR_OUT;
- inf.Type = INF_TYPE::INF_TYPE_CONTROL;
- inf.value.passMode = VALUE_PASS_MODE::PASS_BY_ADDRESS;
- inf.value.type = VALUE_TYPE::Control_ComboBox;
- if (withValue)
- {
- // 注意提供控件指针的时候比起普通变量要少一个 & 否则内存地址就弄错了
- inf.value.Ptr = (void**)((ToolDialogImpl*)m_pDlgTool)->m_expCombo;
- }
- m_Interfaces.push_back(inf);
- inf.reset();//////////////////////////////////////////////////////////////////////////
- }
|