using System; using System.Collections.Generic; using System.ComponentModel; using System.Threading.Tasks; using TeamAAS.Camera.Enums; using TeamAAS.Camera.Images; namespace TeamAAS.Camera.Interfaces { /// /// 相机接口,定义了相机的基本属性和方法。所有相机类都应实现此接口,以确保一致的功能和行为。 /// public interface ICamera { /// /// 获取或设置相机的名称。此属性用于标识相机实例,便于在多个相机之间进行区分。 /// string Name { get; set; } /// /// 获取相机的唯一标识符(GUID)。此属性用于在系统中唯一标识每个相机实例,确保不会发生冲突。 /// Guid ID { get; } /// /// 获取或设置相机在系统中的索引位置。此属性用于在多个相机实例中进行排序和管理,便于快速访问特定相机。 /// int Index { get; set; } /// /// 是否用IP搜索相机 /// bool IsFindByIp { get; } /// /// 相机品牌 /// string CameraBrand { get; } /// /// 厂商信息 /// string ManufacturerName { get; } /// /// 模型信息 /// /// string ModelName { get; } /// /// 序列号信息 /// /// string SerialNumber { get; } /// /// 相机IP信息 /// /// string CameraIp { get; } /// /// 相机类型信息 /// /// CameraType CameraType { get; } /// /// 是否正在采集图像 /// /// bool IsGrabbing { get; } /// /// 获取当前采集的图像 /// /// GenImage Image { get; } /// /// 是否已连接相机 /// /// bool IsConnected { get; } /// /// 总采集时间 /// /// TimeSpan TotalTime { get; } /// /// 错误信息 /// /// string ErrorMessage { get; } /// /// 图像宽度 /// /// uint ImageWidth { get; } /// /// 图像高度 /// /// uint ImageHeight { get; } /// /// 打开相机设备 /// /// bool OpenDevice(); /// /// 异步打开相机设备 /// /// Task OpenDeviceAsync(); /// /// 关闭相机设备 /// void CloseDevice(); /// /// 采集图像 /// /// GenImage Grab(); /// /// 开始采集图像 /// void StartGrabbing(); /// /// 停止采集图像 /// void StopGrabbing(); /// /// 曝光时间 /// /// float ExposureTime { get; set; } /// ///增益 /// /// float Gain { get; set; } /// ///伽马值 /// /// float Gamma { get; set; } /// /// 设置曝光时间 /// /// /// bool SetExposureTime(float ExposureTime); /// /// 获取曝光时间 /// /// float GetExposureTime(); /// /// 设置增益 /// /// /// /// bool SetGain(float Gain); /// /// 获取增益 /// /// float GetGain(); /// /// 设置伽马值 /// /// /// bool SetGamma(float Gamma); /// /// 获取伽马值 /// /// float GetGamma(); /// /// 本相机支持的触发模式列表(各品牌 SDK 能力不同,故为动态列表)。 /// 调用方应据此生成可选项;列表始终包含 。 /// IReadOnlyList SupportedTriggerModes { get; } /// /// 当前生效的触发模式(未下发过时为该相机的默认模式) /// CameraTriggerMode TriggerMode { get; } /// /// 设置触发模式。不在 内时拒绝并置 ErrorMessage,返回 false。 /// /// 目标触发模式 /// 是否下发成功 bool SetTriggerMode(CameraTriggerMode mode); /// /// 图像采集事件 /// /// /// /// event Action ImageCallbackEvent; /// /// 相机连接状态改变事件 /// /// /// event Action CameraConnectChangedEvent; } }