Files
OrpaonVision/OrpaonVision.SiteApp/Runtime/Services/IHikCameraService.cs
2026-04-06 22:04:05 +08:00

81 lines
1.9 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using OrpaonVision.Core.Results;
using OrpaonVision.SiteApp.Runtime.Contracts;
namespace OrpaonVision.SiteApp.Runtime.Services;
/// <summary>
/// 海康相机服务接口。
/// </summary>
public interface IHikCameraService
{
/// <summary>
/// 枚举所有可用的海康相机设备。
/// </summary>
Result<IReadOnlyList<HikCameraDevice>> EnumerateDevices();
/// <summary>
/// 连接到指定的相机设备。
/// </summary>
Result ConnectToDevice(HikCameraDevice device);
/// <summary>
/// 连接到指定的相机通过序列号或IP
/// </summary>
Result ConnectToDevice(string serialNumberOrIp);
/// <summary>
/// 断开当前连接。
/// </summary>
Result Disconnect();
/// <summary>
/// 检查连接状态。
/// </summary>
bool IsConnected { get; }
/// <summary>
/// 获取当前连接的设备信息。
/// </summary>
HikCameraDevice? CurrentDevice { get; }
/// <summary>
/// 设置相机参数。
/// </summary>
Result SetCameraParameters(int width, int height, string pixelFormat, int triggerMode = 0);
/// <summary>
/// 开始图像采集。
/// </summary>
Result StartGrabbing();
/// <summary>
/// 停止图像采集。
/// </summary>
Result StopGrabbing();
/// <summary>
/// 软件触发一次采集。
/// </summary>
Result TriggerSoftware();
/// <summary>
/// 获取一帧图像。
/// </summary>
Result<byte[]> GetLatestFrame();
/// <summary>
/// 获取一帧图像(带时间戳)。
/// </summary>
Result<CameraFrameDto> GetLatestFrameWithTimestamp();
/// <summary>
/// 注册图像回调事件。
/// </summary>
event Action<byte[], DateTime>? OnImageReceived;
/// <summary>
/// 注册连接状态变化事件。
/// </summary>
event Action<bool, string>? OnConnectionStateChanged;
}