using OrpaonVision.Core.Results;
using OrpaonVision.SiteApp.Runtime.Contracts;
namespace OrpaonVision.SiteApp.Runtime.Services;
///
/// 海康相机服务接口。
///
public interface IHikCameraService
{
///
/// 枚举所有可用的海康相机设备。
///
Result> EnumerateDevices();
///
/// 连接到指定的相机设备。
///
Result ConnectToDevice(HikCameraDevice device);
///
/// 连接到指定的相机(通过序列号或IP)。
///
Result ConnectToDevice(string serialNumberOrIp);
///
/// 断开当前连接。
///
Result Disconnect();
///
/// 检查连接状态。
///
bool IsConnected { get; }
///
/// 获取当前连接的设备信息。
///
HikCameraDevice? CurrentDevice { get; }
///
/// 设置相机参数。
///
Result SetCameraParameters(int width, int height, string pixelFormat, int triggerMode = 0);
///
/// 开始图像采集。
///
Result StartGrabbing();
///
/// 停止图像采集。
///
Result StopGrabbing();
///
/// 软件触发一次采集。
///
Result TriggerSoftware();
///
/// 获取一帧图像。
///
Result GetLatestFrame();
///
/// 获取一帧图像(带时间戳)。
///
Result GetLatestFrameWithTimestamp();
///
/// 注册图像回调事件。
///
event Action? OnImageReceived;
///
/// 注册连接状态变化事件。
///
event Action? OnConnectionStateChanged;
}