ICamera.cs 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. using Cognex.VisionPro;
  2. using LampInspectionMachine.Cameralibs;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. namespace LampInspectionMachine.Interfaces
  9. {
  10. public interface ICamera
  11. {
  12. string Name { get; }
  13. Guid ID { get; }
  14. /// <summary>
  15. /// 相机品牌
  16. /// </summary>
  17. CameraBrand CameraBrand { get; }
  18. /// <summary>
  19. /// 厂商名
  20. /// </summary>
  21. string ManufacturerName { get; }
  22. /// <summary>
  23. /// 相机型号
  24. /// </summary>
  25. string ModelName { get; }
  26. /// <summary>
  27. /// 相机序列号
  28. /// </summary>
  29. string SerialNumber { get; }
  30. /// <summary>
  31. /// 相机类型
  32. /// </summary>
  33. CameraType CameraType { get; }
  34. /// <summary>
  35. /// 正在采集图像
  36. /// </summary>
  37. bool IsGrabbing { get; }
  38. /// <summary>
  39. /// 相机图像
  40. /// </summary>
  41. ICogImage Image { get; }
  42. bool IsConnected { get; }
  43. /// <summary>
  44. /// 采集用时
  45. /// </summary>
  46. TimeSpan TotalTime { get; }
  47. /// <summary>
  48. /// 错误信息
  49. /// </summary>
  50. string ErrorMessage { get; }
  51. UInt32 ImageWidth { get; }
  52. UInt32 ImageHeight { get; }
  53. /// <summary>
  54. /// 打开相机
  55. /// </summary>
  56. /// <returns></returns>
  57. bool OpenDevice();
  58. /// <summary>
  59. /// 关闭相机
  60. /// </summary>
  61. void CloseDevice();
  62. /// <summary>
  63. /// 采集单张图片
  64. /// </summary>
  65. /// <returns></returns>
  66. ICogImage Grab();
  67. /// <summary>
  68. /// 开始实时采集图像
  69. /// </summary>
  70. void StartGrabbing();
  71. void StartTriggerGrabbing();
  72. /// <summary>
  73. /// 停止实时采集图像
  74. /// </summary>
  75. void StopGrabbing();
  76. /// <summary>
  77. /// 设置曝光时间
  78. /// </summary>
  79. /// <param name="ExposureTime"></param>
  80. /// <returns></returns>
  81. bool SetExposureTime(float ExposureTime);
  82. /// <summary>
  83. /// 获取曝光时间
  84. /// </summary>
  85. /// <returns></returns>
  86. float GetExposureTime();
  87. /// <summary>
  88. /// 设置增益
  89. /// </summary>
  90. /// <param name="Gain"></param>
  91. /// <returns></returns>
  92. bool SetGain(float Gain);
  93. /// <summary>
  94. /// 获取增益
  95. /// </summary>
  96. /// <returns></returns>
  97. float GetGain();
  98. /// <summary>
  99. /// 获取触发模式
  100. /// </summary>
  101. /// <returns></returns>
  102. bool GetTriggerMode();
  103. /// <summary>
  104. /// 设置触发模式
  105. /// </summary>
  106. /// <param name="mode"></param>
  107. /// <param name="triggerSource"></param>
  108. /// <returns></returns>
  109. bool SetTriggerMode(bool mode, int triggerSource);
  110. /// <summary>
  111. /// 设置触发源
  112. /// </summary>
  113. /// <param name="source"></param>
  114. /// <returns></returns>
  115. bool SetTriggerSource(int source);
  116. /// <summary>
  117. /// 获取触发源
  118. /// </summary>
  119. /// <returns></returns>
  120. int GetTriggerSource();
  121. /// <summary>
  122. /// 软触发
  123. /// </summary>
  124. void TriggerSoftware();
  125. /// <summary>
  126. /// 图像回调
  127. /// </summary>
  128. event Action<ICogImage, TimeSpan, string> ImageCallbackEvent;
  129. /// <summary>
  130. /// 触发取图回调事件
  131. /// </summary>
  132. event Action<ICogImage> GrabImageCallbackEvent;
  133. /// <summary>
  134. /// 相机连接状态变更时
  135. /// </summary>
  136. event Action<Guid, bool> CameraConnectChangedEvent;
  137. bool CheckGrabImageCallbackEventIsHas(Action<ICogImage> action);
  138. bool CheckImageCallbackEventIsHas(Action<ICogImage, TimeSpan, string> action);
  139. bool CheckCameraConnectChangedEventIsHas(Action<Guid, bool> action);
  140. }
  141. }