123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- #include "Tool.h"
- ToolImpl* m_pDllTool = nullptr;
- ///////////////////////////////////////////////////////////////////
- // 返回工具新实例的指针
- extern "C" CST_VISIONPLUS_TOOL_EXPORT DllTool * GetTool()
- {
- m_pDllTool = new ToolImpl();
- return m_pDllTool;
- }
- ///////////////////////////////////////////////////////////////////
- // 释放工具实例的指针
- extern "C" CST_VISIONPLUS_TOOL_EXPORT void ReleaseTool()
- {
- if (m_pDllTool != nullptr)
- {
- delete m_pDllTool;
- m_pDllTool = nullptr;
- }
- }
- ToolImpl::ToolImpl()
- {
- m_pDlgTool = nullptr;
- }
- ////////////////////////////////////////////////////////////////////
- // 不带参数初始化
- int ToolImpl::InitTool()
- {
- // 生成工具描述
- Description();
- // 生成接口默认描述
- InitDefaultInterfaces(false);
- return 0;
- }
- ////////////////////////////////////////////////////////////////////
- // 初始化
- int ToolImpl::InitTool(QWidget* pParent, QString strPouName, QString strInstanceName, QObject* pEventTarget)
- {
- m_pDlgTool = new ToolDialogImpl(pParent, this);
- m_pDlgTool->setParent(pParent);
- m_pDlgTool->hide();
- this->m_strInstanceName = strInstanceName;
- this->m_strPouName = strPouName;
- Q_ASSERT(pEventTarget != nullptr);
- m_pDlgTool->setEventTarget(pEventTarget);
- // 将pou名字和实例名字传入工具
- m_pDlgTool->SetToolInfo(strPouName, strInstanceName);
- // 生成工具描述
- Description();
- // 生成接口默认描述,并且给参数赋值
- InitDefaultInterfaces(true);
- return 0;
- }
- ToolImpl::~ToolImpl()
- {
- if (m_pDlgTool != nullptr)
- {
- delete m_pDlgTool;
- m_pDlgTool = nullptr;
- }
- //if (m_Even.hEvenHandle != NULL)
- //{
- // CloseHandle(m_Even.hEvenHandle);
- // m_Even.hEvenHandle = NULL;
- //}
- }
- /// <summary>
- /// 序列化至文件
- /// </summary>
- /// <param name="out"></param>
- /// <returns></returns>
- bool ToolImpl::SerializedToDoc(QDataStream& out)
- {
- ToolDialogImpl* pDlg = (ToolDialogImpl*)m_pDlgTool;
- return pDlg->Serialized(out, true);
- }
- /// <summary>
- /// 从文件反序列化
- /// </summary>
- /// <param name="in"></param>
- /// <returns></returns>
- bool ToolImpl::SerializedFromDoc(QDataStream& in)
- {
- ToolDialogImpl* pDlg = (ToolDialogImpl*)m_pDlgTool;
- return pDlg->Serialized(in, false);
- }
- /// <summary>
- /// 动态添加端口的变量绑定
- /// </summary>
- /// <param name="nIndex"></param>
- /// <returns></returns>
- bool ToolImpl::bindValuePtrByName(const QString strName, const int nIndex)
- {
- ToolDialogImpl* pDlg = (ToolDialogImpl*)m_pDlgTool;
- if (pDlg)
- {
- // return pDlg->bindValuePtrByName(strName, nIndex);
- }
- return false;
- }
|