ICamera.cs 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  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. /// 相机图像
  54. /// </summary>
  55. ICogImage Image { get; }
  56. bool IsConnected { get; }
  57. /// <summary>
  58. /// 采集用时
  59. /// </summary>
  60. TimeSpan TotalTime { get; }
  61. /// <summary>
  62. /// 错误信息
  63. /// </summary>
  64. string ErrorMessage { get; }
  65. UInt32 ImageWidth { get;}
  66. UInt32 ImageHeight { get;}
  67. /// <summary>
  68. /// 打开相机
  69. /// </summary>
  70. /// <returns></returns>
  71. bool OpenDevice();
  72. /// <summary>
  73. /// 打开相机异步
  74. /// </summary>
  75. /// <returns></returns>
  76. Task<bool> OpenDeviceAsync();
  77. /// <summary>
  78. /// 关闭相机
  79. /// </summary>
  80. void CloseDevice();
  81. /// <summary>
  82. /// 采集单张图片
  83. /// </summary>
  84. /// <returns></returns>
  85. ICogImage Grab();
  86. /// <summary>
  87. /// 开始实时采集图像
  88. /// </summary>
  89. void StartGrabbing();
  90. /// <summary>
  91. /// 停止实时采集图像
  92. /// </summary>
  93. void StopGrabbing();
  94. /// <summary>
  95. /// 设置曝光时间
  96. /// </summary>
  97. /// <param name="ExposureTime"></param>
  98. /// <returns></returns>
  99. bool SetExposureTime(float ExposureTime);
  100. /// <summary>
  101. /// 获取曝光时间
  102. /// </summary>
  103. /// <returns></returns>
  104. float GetExposureTime();
  105. /// <summary>
  106. /// 设置增益
  107. /// </summary>
  108. /// <param name="Gain"></param>
  109. /// <returns></returns>
  110. bool SetGain(float Gain);
  111. /// <summary>
  112. /// 获取增益
  113. /// </summary>
  114. /// <returns></returns>
  115. float GetGain();
  116. /// <summary>
  117. /// 图像回调
  118. /// </summary>
  119. event Action<ICogImage,TimeSpan,string> ImageCallbackEvent;
  120. /// <summary>
  121. /// 相机连接状态变更时
  122. /// </summary>
  123. event Action<Guid, bool> CameraConnectChangedEvent;
  124. }
  125. }