ToolInterface.cpp 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. #include "Tool.h"
  2. #include "../../VisionPlusSdk/VisionPlusTool.h"
  3. DLL_TOOL_DESC m_Description;
  4. ///////////////////////////////////////////////////////////////////
  5. // 获取工具描述
  6. const DLL_TOOL_DESC& ToolImpl::Description()
  7. {
  8. // 生成dll描述
  9. m_Description.Type = TOOL_TYPE::TOOL_TYPE_STANDARD;
  10. m_Description.strCategory = (CATEGORY_TOOL_HARDWARE);
  11. m_Description.strName = ("BaseDemo");
  12. m_Description.strAliasName = "Get_Int";
  13. m_Description.strVersion = ("1.3");
  14. m_Description.strInfo = ("This Info");
  15. return m_Description;
  16. }
  17. /////////////////////////////////////////////////
  18. // 生成默认的接口描述
  19. void ToolImpl::InitDefaultInterfaces(bool withValue)
  20. {
  21. // 接口
  22. DLL_INF inf;
  23. inf.strName = ("Int1.in");
  24. inf.Direction = INF_DIRECTION::INF_DIR_IN;
  25. inf.Type = INF_TYPE::INF_TYPE_STANDARD;
  26. inf.value.passMode = VALUE_PASS_MODE::PASS_BY_VALUE;
  27. inf.value.type = VALUE_TYPE::Type_Int;
  28. if (withValue)
  29. {
  30. inf.value.Ptr = (void**)&((ToolDialogImpl*)m_pDlgTool)->m_Value;
  31. }
  32. m_Interfaces.push_back(inf);
  33. inf.reset();//////////////////////////////////////////////////////////////////////////
  34. inf.strName = ("Int2.in");
  35. inf.Direction = INF_DIRECTION::INF_DIR_IN;
  36. inf.Type = INF_TYPE::INF_TYPE_STANDARD;
  37. inf.value.passMode = VALUE_PASS_MODE::PASS_BY_VALUE;
  38. inf.value.type = VALUE_TYPE::Type_Int;
  39. if (withValue)
  40. {
  41. inf.value.Ptr = (void**)&((ToolDialogImpl*)m_pDlgTool)->m_Value2;
  42. }
  43. m_Interfaces.push_back(inf);
  44. inf.reset();//////////////////////////////////////////////////////////////////////////
  45. inf.strName = ("Int1.out");
  46. inf.Direction = INF_DIRECTION::INF_DIR_OUT;
  47. inf.Type = INF_TYPE::INF_TYPE_STANDARD;
  48. inf.value.passMode = VALUE_PASS_MODE::PASS_BY_VALUE;
  49. inf.value.type = VALUE_TYPE::Type_Int;
  50. if (withValue)
  51. {
  52. inf.value.Ptr = (void**)&((ToolDialogImpl*)m_pDlgTool)->m_Value3;
  53. }
  54. m_Interfaces.push_back(inf);
  55. inf.reset();//////////////////////////////////////////////////////////////////////////
  56. inf.strName = ("QImage");
  57. inf.Direction = INF_DIRECTION::INF_DIR_OUT;
  58. inf.Type = INF_TYPE::INF_TYPE_STANDARD;
  59. inf.value.passMode = VALUE_PASS_MODE::PASS_BY_VALUE;
  60. inf.value.type = VALUE_TYPE::Type_QImage;
  61. if (withValue)
  62. {
  63. inf.value.Ptr = (void**)&((ToolDialogImpl*)m_pDlgTool)->m_QImage;
  64. }
  65. m_Interfaces.push_back(inf);
  66. inf.reset();//////////////////////////////////////////////////////////////////////////
  67. inf.strName = ("HImage");
  68. inf.Direction = INF_DIRECTION::INF_DIR_OUT;
  69. inf.Type = INF_TYPE::INF_TYPE_STANDARD;
  70. inf.value.passMode = VALUE_PASS_MODE::PASS_BY_VALUE;
  71. inf.value.type = VALUE_TYPE::Type_HImage;
  72. if (withValue)
  73. {
  74. inf.value.Ptr = (void**)&((ToolDialogImpl*)m_pDlgTool)->m_Image;
  75. }
  76. m_Interfaces.push_back(inf);
  77. inf.reset();//////////////////////////////////////////////////////////////////////////
  78. // 增加Event类型的接口
  79. inf.strName = ("Event.Out");
  80. inf.Direction = INF_DIRECTION::INF_DIR_OUT;
  81. inf.Type = INF_TYPE::INF_TYPE_CONTROL;
  82. inf.value.passMode = VALUE_PASS_MODE::PASS_BY_VALUE;
  83. //inf.value.type = VALUE_TYPE::Type_Event;
  84. if (withValue)
  85. {
  86. // 初始化event名字
  87. ((ToolDialogImpl*)m_pDlgTool)->m_eventOut.setName(m_strPouName, this->m_strInstanceName + "." + inf.strName);
  88. inf.value.Ptr = (void**)&((ToolDialogImpl*)m_pDlgTool)->m_eventOut;
  89. }
  90. m_Interfaces.push_back(inf);
  91. inf.reset();//////////////////////////////////////////////////////////////////////////
  92. // 增加QButton类型的接口用于测试
  93. inf.strName = ("QButton.Out");
  94. inf.Direction = INF_DIRECTION::INF_DIR_OUT;
  95. inf.Type = INF_TYPE::INF_TYPE_CONTROL;
  96. inf.value.passMode = VALUE_PASS_MODE::PASS_BY_VALUE;
  97. inf.value.type = VALUE_TYPE::Control_Button;
  98. if (withValue)
  99. {
  100. inf.value.Ptr = (void**)((ToolDialogImpl*)m_pDlgTool)->ui.pushButton;
  101. }
  102. m_Interfaces.push_back(inf);
  103. inf.reset();//////////////////////////////////////////////////////////////////////////
  104. }