ICamera.cs 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  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. /// <summary>
  72. /// 停止实时采集图像
  73. /// </summary>
  74. void StopGrabbing();
  75. /// <summary>
  76. /// 设置曝光时间
  77. /// </summary>
  78. /// <param name="ExposureTime"></param>
  79. /// <returns></returns>
  80. bool SetExposureTime(float ExposureTime);
  81. /// <summary>
  82. /// 获取曝光时间
  83. /// </summary>
  84. /// <returns></returns>
  85. float GetExposureTime();
  86. /// <summary>
  87. /// 设置增益
  88. /// </summary>
  89. /// <param name="Gain"></param>
  90. /// <returns></returns>
  91. bool SetGain(float Gain);
  92. /// <summary>
  93. /// 获取增益
  94. /// </summary>
  95. /// <returns></returns>
  96. float GetGain();
  97. /// <summary>
  98. /// 获取触发模式
  99. /// </summary>
  100. /// <returns></returns>
  101. bool GetTriggerMode();
  102. /// <summary>
  103. /// 设置触发模式
  104. /// </summary>
  105. /// <param name="mode"></param>
  106. /// <param name="triggerSource"></param>
  107. /// <returns></returns>
  108. bool SetTriggerMode(bool mode, int triggerSource);
  109. /// <summary>
  110. /// 设置触发源
  111. /// </summary>
  112. /// <param name="source"></param>
  113. /// <returns></returns>
  114. bool SetTriggerSource(int source);
  115. /// <summary>
  116. /// 获取触发源
  117. /// </summary>
  118. /// <returns></returns>
  119. int GetTriggerSource();
  120. /// <summary>
  121. /// 软触发
  122. /// </summary>
  123. void TriggerSoftware();
  124. /// <summary>
  125. /// 图像回调
  126. /// </summary>
  127. event Action<ICogImage, TimeSpan, string> ImageCallbackEvent;
  128. /// <summary>
  129. /// 触发取图回调事件
  130. /// </summary>
  131. event Action<ICogImage> GrabImageCallbackEvent;
  132. /// <summary>
  133. /// 相机连接状态变更时
  134. /// </summary>
  135. event Action<Guid, bool> CameraConnectChangedEvent;
  136. }
  137. }