ICamera.cs 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Drawing;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. namespace SDKCameraTool
  9. {
  10. public interface ICamera
  11. {
  12. /// <summary>
  13. /// CaemraID
  14. /// </summary>
  15. [CategoryAttribute("CaemraID")]
  16. int cameraID { get; }
  17. /// <summary>
  18. ///
  19. /// </summary>
  20. CamereaCompanyType CompanyType { get; }
  21. /// <summary>
  22. /// 相机名称
  23. /// </summary>
  24. [CategoryAttribute("相机名称")]
  25. string cameraName { get; set; }
  26. /// <summary>
  27. /// bmp图像
  28. /// </summary>
  29. [CategoryAttribute("获取的图像")]
  30. Bitmap bmpImage { get; }
  31. /// <summary>
  32. /// 曝光值
  33. /// </summary>
  34. [CategoryAttribute("相机曝光")]
  35. float fExpTime { get; set; }
  36. /// <summary>
  37. /// 触发方式
  38. /// </summary>
  39. [CategoryAttribute("相机触发模式")]
  40. TriggerMode triggerMode { get; set; }
  41. /// <summary>
  42. /// 触发源
  43. /// </summary>
  44. [CategoryAttribute("相机触发源")]
  45. TriggerSouce triggerSource { get; set; }
  46. /// <summary>
  47. /// 相机序列号,相机调用唯一标识
  48. /// </summary>
  49. [CategoryAttribute("相机序列号")]
  50. string sSerialNumber { get; set; }
  51. /// <summary>
  52. /// 增益
  53. /// </summary>
  54. [CategoryAttribute("相机增益")]
  55. float fGain { get; set; }
  56. /// <summary>
  57. /// 伽马
  58. /// </summary>
  59. [CategoryAttribute("相机伽马值")]
  60. float iGamma { get; set; }
  61. /// <summary>
  62. /// 伽马使能
  63. /// </summary>
  64. [CategoryAttribute("相机伽马使能")]
  65. bool bGammaEnable { get; set; }
  66. /// <summary>
  67. /// 感兴趣区域宽度
  68. /// </summary>
  69. [CategoryAttribute("ROI宽")]
  70. int Width { get; set; }
  71. /// <summary>
  72. /// 感兴趣区域高度
  73. /// </summary>
  74. [CategoryAttribute("ROI高")]
  75. int Height { get; set; }
  76. /// <summary>
  77. /// X偏移
  78. /// </summary>
  79. [CategoryAttribute("X偏移")]
  80. int OffsetX { get; set; }
  81. /// <summary>
  82. /// Y偏移
  83. /// </summary>
  84. [CategoryAttribute("Y偏移")]
  85. int OffsetY { get; set; }
  86. /// <summary>
  87. /// 触发拍照延时
  88. /// </summary>
  89. int TriggerDelay { get; set; }
  90. /// <summary>
  91. /// 是否作为飞拍使用
  92. /// </summary>
  93. bool isFlowAcq { get; set; }
  94. /// <summary>
  95. /// 该相机触发次数
  96. /// </summary>
  97. int TriggerCount { get; set; }
  98. /// <summary>
  99. /// 该相机出来的图像是否需要经过标定
  100. /// </summary>
  101. bool IsNeedCalibration { get; set; }
  102. string CxpFilePath { get; set; }
  103. /// <summary>
  104. /// 打开相机
  105. /// </summary>
  106. /// <returns></returns>
  107. int OpenCam(CaptureMode captureMode);
  108. /// <summary>
  109. /// 关闭相机
  110. /// </summary>
  111. /// <returns></returns>
  112. int CloseCam();
  113. /// <summary>
  114. /// 取图
  115. /// </summary>
  116. /// <returns></returns>
  117. int Snap();
  118. /// <summary>
  119. /// 被动触发事件
  120. /// </summary>
  121. event EventHandler<EventImageTrigger> ImageTrigger;
  122. }
  123. public enum CamereaCompanyType
  124. {
  125. HIKVision,
  126. HIKVision_CXP,
  127. Ajhua,
  128. Basler,
  129. FLIR,
  130. File,
  131. }
  132. [Serializable]
  133. public class EventImageTrigger : EventArgs
  134. {
  135. public string cameraName { get; set; }
  136. public Bitmap image { get; set; }
  137. public int TriggerCount { get; set; }
  138. }
  139. public class EventIntPtrImageTrigger : EventArgs
  140. {
  141. public string cameraName { get; set; }
  142. public IntPtr pImage { get; set; }
  143. public int imageWidth { get; set; }
  144. public int imageHeight { get; set; }
  145. }
  146. public enum TriggerMode
  147. {
  148. Off = 0,
  149. On
  150. }
  151. public enum TriggerSouce
  152. {
  153. HIKLine0 = 0,
  154. HIKSoftWare = 1,
  155. FLIRLine0 = 2,
  156. FLIRSoftWare = 3,
  157. SoftWareHIK = 7
  158. }
  159. public enum CaptureMode
  160. {
  161. Positive,
  162. CallBack
  163. }
  164. /// <summary>
  165. /// 每次需从相机读取的参数
  166. /// </summary>
  167. public class CameraInfo
  168. {
  169. }
  170. }