| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- using System;
- using System.Runtime.InteropServices;
- using System.Text;
- namespace AutoFocusTool.Camera
- {
- /// <summary>
- /// Microview MVC2000 USB2.0 相机 SDK 的 P/Invoke 声明。
- /// DLL 路径相对工作目录:DependFile\ccd\mvcapi.dll(随生成复制到输出目录)。
- /// 仅保留自动对焦测试程序需要的函数,抄自原工程 MVCAPI.cs。
- /// </summary>
- public static class MVCAPI
- {
- public delegate void LPMV_CALLBACK2(IntPtr lpParam, IntPtr lpUser);
- public const short ResSuccess = 0x0000;
- public const int WS_CHILD = 0x40000000;
- public const int WS_VISIBLE = 0x10000000;
- private const string DLL = @"DependFile\ccd\mvcapi.dll";
- /// <summary>初始化第 index 台型号为 pFilterName 的相机,返回 0 成功,得句柄 hImager</summary>
- [DllImport(DLL)]
- public static extern int MV_Usb2Init(string pFilterName, out int index, ref CapInfoStruct pCapInfo, out IntPtr hImager);
- /// <summary>读取相机序列号</summary>
- [DllImport(DLL)]
- public static extern int MV_Usb2GetSerial(IntPtr hImager, StringBuilder number);
- /// <summary>卸载相机</summary>
- [DllImport(DLL)]
- public static extern int MV_Usb2Uninit(ref IntPtr hImager);
- /// <summary>设置采集模式:nMode 0=拍照(单帧) 1=实时图像</summary>
- [DllImport(DLL)]
- public static extern int MV_Usb2SetOpMode(IntPtr hImager, byte nMode, bool bStrobe);
- /// <summary>下发部分采集参数(曝光、增益)</summary>
- [DllImport(DLL)]
- public static extern int MV_Usb2SetPartOfCapInfo(IntPtr hImager, ref CapInfoStruct pCapInfo);
- /// <summary>抓取一帧 RGB 图,写入 pDest(width*height*3 字节,24bpp)</summary>
- [DllImport(DLL)]
- public static extern int MV_Usb2GetRgbData(IntPtr hImager, ref CapInfoStruct pCapInfo, IntPtr pDest);
- /// <summary>抓取一帧 Raw 数据,写入 pCapInfo.Buffer</summary>
- [DllImport(DLL)]
- public static extern int MV_Usb2GetRawData(IntPtr hImager, ref CapInfoStruct pCapInfo);
- /// <summary>Raw → RGB 去马赛克</summary>
- [DllImport(DLL)]
- public static extern int MV_Usb2ConvertRawToRgb(IntPtr hImager, IntPtr pSrc, int width, int height, IntPtr pDest);
- /// <summary>获取帧率</summary>
- [DllImport(DLL)]
- public static extern int MV_Usb2GetFrameRate(IntPtr hImager, out float nRate);
- }
- }
|