81 lines
1.9 KiB
C#
81 lines
1.9 KiB
C#
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;
|
||
}
|