TURBO-569:更新工程结构;将导航相机标定和校准功能迁移到XP.Camera类

This commit is contained in:
李伟
2026-04-20 16:09:17 +08:00
parent e166eca3d7
commit 9218384e3f
24 changed files with 2429 additions and 124 deletions
+64
View File
@@ -0,0 +1,64 @@
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);
}