64 lines
1.7 KiB
C#
64 lines
1.7 KiB
C#
namespace XP.Camera;
|
|
|
|
/// <summary>
|
|
/// 相机控制器接口,定义与品牌无关的相机操作契约。
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// <para>所有公共方法(Open/Close/StartGrabbing/StopGrabbing/ExecuteSoftwareTrigger/参数读写)保证线程安全。</para>
|
|
/// <para>事件回调在非 UI 线程上触发,调用方如需更新 WPF 界面,应通过 Dispatcher 调度。</para>
|
|
/// </remarks>
|
|
public interface ICameraController : IDisposable
|
|
{
|
|
bool IsConnected { get; }
|
|
bool IsGrabbing { get; }
|
|
|
|
/// <summary>打开相机连接并返回设备信息。</summary>
|
|
CameraInfo Open();
|
|
|
|
/// <summary>关闭相机连接并释放资源。</summary>
|
|
void Close();
|
|
|
|
/// <summary>以软件触发模式启动图像采集。</summary>
|
|
void StartGrabbing();
|
|
|
|
/// <summary>发送一次软件触发信号以采集一帧图像。</summary>
|
|
void ExecuteSoftwareTrigger();
|
|
|
|
/// <summary>停止图像采集。</summary>
|
|
void StopGrabbing();
|
|
|
|
double GetExposureTime();
|
|
|
|
void SetExposureTime(double microseconds);
|
|
|
|
double GetGain();
|
|
|
|
void SetGain(double value);
|
|
|
|
int GetWidth();
|
|
|
|
void SetWidth(int value);
|
|
|
|
int GetHeight();
|
|
|
|
void SetHeight(int value);
|
|
|
|
string GetPixelFormat();
|
|
|
|
void SetPixelFormat(string format);
|
|
|
|
event EventHandler<ImageGrabbedEventArgs> ImageGrabbed;
|
|
|
|
event EventHandler<GrabErrorEventArgs> GrabError;
|
|
|
|
event EventHandler ConnectionLost;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 相机工厂接口,负责根据品牌创建相机控制器实例。
|
|
/// </summary>
|
|
public interface ICameraFactory
|
|
{
|
|
/// <summary>根据相机品牌创建控制器实例。</summary>
|
|
ICameraController CreateController(string cameraType);
|
|
} |