CapInfoStruct.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using System;
  2. using System.Runtime.InteropServices;
  3. namespace AutoFocusTool.Camera
  4. {
  5. /// <summary>
  6. /// 相机采集参数结构体。布局必须与 mvcapi.dll 约定完全一致(顺序敏感),
  7. /// 抄自原工程 ivf_tl_CameraHelper\CapInfoStruct.cs,勿改字段顺序。
  8. /// </summary>
  9. [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
  10. public struct CapInfoStruct
  11. {
  12. /// <summary>指向 Raw Data 的指针</summary>
  13. [MarshalAs(UnmanagedType.SysInt)]
  14. public IntPtr Buffer;
  15. /// <summary>捕获窗口高度</summary>
  16. [MarshalAs(UnmanagedType.U4)]
  17. public int Height;
  18. /// <summary>捕获窗口宽度</summary>
  19. [MarshalAs(UnmanagedType.U4)]
  20. public int Width;
  21. /// <summary>捕获窗口水平偏移</summary>
  22. [MarshalAs(UnmanagedType.U4)]
  23. public int HorizontalOffset;
  24. /// <summary>捕获窗口垂直偏移</summary>
  25. [MarshalAs(UnmanagedType.U4)]
  26. public int VerticalOffset;
  27. /// <summary>曝光时间(单位:100us)</summary>
  28. [MarshalAs(UnmanagedType.U4)]
  29. public int Exposure;
  30. /// <summary>Gain[0]红 Gain[1]绿 Gain[2]蓝,0-255</summary>
  31. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
  32. public byte[] Gain;
  33. /// <summary>命令参数位</summary>
  34. public byte Control;
  35. /// <summary>binning 等保留位</summary>
  36. [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
  37. public byte[] Reserved;
  38. }
  39. }