ICamera.cs 3.6 KB

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