CViewInterface.h 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. #pragma once
  2. #define C_MACHINE_EXPORTS
  3. #include "Machine.h"
  4. namespace ns_module
  5. {
  6. class __declspec(dllexport) CViewInterface
  7. {
  8. private:
  9. static CViewInterface* m_instance;
  10. bool m_bIsInitSuccess = false;
  11. CManageDB* m_pCManageDB = nullptr;
  12. Machine* m_pMachine = nullptr;
  13. CCameraManage* m_pCameraManage = nullptr;
  14. CResources* m_pResource = nullptr;
  15. LONG Init();
  16. public:
  17. static CViewInterface* GetInstance();
  18. #pragma region 界面方面接口
  19. private:
  20. CXYCalib* GetCalibXY(int iCameraId);
  21. public:
  22. /// <summary>
  23. /// 设置红光
  24. /// </summary>
  25. /// <param name="iCameraId">相机Id</param>
  26. /// <param name="LightValue">灯光值</param>
  27. /// <returns>成功返回0,否则返回错误码</returns>
  28. long SetRedLight(int iCameraId, int LightValue);
  29. /// <summary>
  30. /// 设置绿光
  31. /// </summary>
  32. /// <param name="LightValue">灯光值</param>
  33. /// <returns>成功返回0,否则返回错误码</returns>
  34. long SetGreenLight(int iCameraId, int LightValue);
  35. /// <summary>
  36. /// 设置蓝光
  37. /// </summary>
  38. /// <param name="iCameraId">相机Id</param>
  39. /// <param name="LightValue">灯光值</param>
  40. /// <returns>成功返回0,否则返回错误码</returns>
  41. long SetBlueLight(int iCameraId, int LightValue);
  42. /// <summary>
  43. /// 设置点光
  44. /// </summary>
  45. /// <param name="iCameraId">相机Id</param>
  46. /// <param name="LightValue">灯光值</param>
  47. /// <returns>成功返回0,否则返回错误码</returns>
  48. long SetPointLight(int iCameraId, int LightValue);
  49. /// <summary>
  50. /// 获取灯光值
  51. /// </summary>
  52. /// <param name="iCameraId">相机Id</param>
  53. /// <param name="redLightValue">红光。值为-1时,表示没有该灯</param>
  54. /// <param name="greenLightValue">绿光。值为-1时,表示没有该灯</param>
  55. /// <param name="blueLightValue">蓝光。值为-1时,表示没有该灯</param>
  56. /// <param name="pointLightValue">点光。值为-1时,表示没有该灯</param>
  57. /// <returns>成功返回0,否则返回错误码</returns>
  58. long GetLight(int iCameraId, int& redLightValue, int& greenLightValue, int& blueLightValue, int& pointLightValue);
  59. /// <summary>
  60. /// 获取相机图像。调用后会阻塞,直到有新的相机图像时才返回
  61. /// </summary>
  62. /// <param name="iCameraId">相机Id</param>
  63. /// <param name="image"></param>
  64. /// <returns>成功返回0,否则返回错误码</returns>
  65. long GrabImage(int iCameraId, ImageInfo& image);
  66. /// <summary>
  67. /// 获取CPK数据信息
  68. /// </summary>
  69. /// <param name="CpkList">CPK数据</param>
  70. /// <returns>成功返回0,否则返回错误码</returns>
  71. long GetCpkList(std::vector<CPK_LIST_STRUCT>& CpkList);
  72. /// <summary>
  73. /// 读取表中指定GroupId的配置信息
  74. /// </summary>
  75. /// <param name="iGroupId">组Id</param>
  76. /// <param name="strTableName">表名</param>
  77. /// <param name="vecConfig">返回的配置信息</param>
  78. /// <returns>成功返回0,否则返回错误码</returns>
  79. long LoadConfigDB(string strTableName, vector<int> iGroupId, vector<CONFIG_BASE_STRUCT>& vecConfig);
  80. /// <summary>
  81. /// 保存配置信息
  82. /// </summary>
  83. /// <param name="strTableName">表名</param>
  84. /// <param name="vecConfig">要保存的配置信息</param>
  85. /// <returns>成功返回0,否则返回错误码</returns>
  86. long SaveConfigDB(string strTableName, vector<CONFIG_BASE_STRUCT> vecConfig);
  87. /// <summary>
  88. /// 获取相机列表
  89. /// </summary>
  90. /// <param name="vecCamera">相机列表</param>
  91. /// <returns>成功返回0,否则返回错误码</returns>
  92. long GetCameraList(vector<CameraInfo>& vecCamera);
  93. /// <summary>
  94. /// 相机移动到显示位置
  95. /// </summary>
  96. /// <param name="iCameraId"></param>
  97. /// <param name="x"></param>
  98. /// <param name="y"></param>
  99. /// <returns></returns>
  100. long CameraMove(int iCameraId, double x, double y);
  101. long SetVideoCallBackFunc(int iCameraId, CallVideoBack func);
  102. //获取所有轴信息
  103. vector<CAxis*> GetAxisList();
  104. //移动轴
  105. long ModuleMove(string ModuleType, string AxisType, double pos);
  106. long ModuleMoveTo(string ModuleType, string AxisType, double pos);
  107. //数据更改后发送通知
  108. LONG DataChangNotice(string strDbName,string strTableName);
  109. //接收数据更改后的通知
  110. void RecvDataChangNotice(string strDbName, string strTableName, DataNoticeCallbackFun callBackFun);
  111. #pragma endregion
  112. };
  113. }