针对界面显示的优化

This commit is contained in:
2025-12-27 14:16:50 +08:00
parent 127b07343e
commit 3718465463
14 changed files with 495 additions and 128 deletions

View File

@@ -2,10 +2,10 @@
namespace SHH.CameraSdk;
// ==============================================================================
// 2. 订阅策略 DTO (对应 A/B/C/D 进程需求)
// 用于多进程帧需求的注册与更新,支持显示帧和分析帧的独立配置
// ==============================================================================
/// <summary>
/// 视频流订阅配置请求对象
/// 用于定义第三方应用或内部模块对指定相机流的消费需求
/// </summary>
public class SubscriptionDto
{
/// <summary>
@@ -15,17 +15,62 @@ public class SubscriptionDto
[MaxLength(50, ErrorMessage = "AppId 长度不能超过 50 个字符")]
public string AppId { get; set; } = string.Empty;
/// <summary>
/// 订阅业务类型。
/// 决定了后端流控引擎后续的资源分配(如是否开启录像机或渲染器)。
/// </summary>
public SubscriptionType Type { get; set; }
/// <summary>
/// 显示帧率需求 (单位: fps)
/// <para>不需要显示则设为 0控制器会自动注销该类型需求</para>
/// </summary>
[Range(0, 60, ErrorMessage = "显示帧率需在 0-60 fps 范围内")]
[Range(0, 30, ErrorMessage = "显示帧率需在 0-30 fps 范围内")]
public int DisplayFps { get; set; }
/// <summary>
/// 分析帧率需求 (单位: fps)
/// <para>不需要分析则设为 0控制器会自动注销该类型需求</para>
/// 备注信息。
/// 用于记录订阅的用途、申请人或关联业务系统。
/// </summary>
[Range(0, 30, ErrorMessage = "分析帧率需在 0-30 fps 范围内")]
public int AnalysisFps { get; set; }
public string Memo { get; set; }
= string.Empty;
/// <summary>
/// 窗口句柄HWND
/// 仅在 Type 为 HandleDisplay 时必填。格式通常为十六进制或十进制字符串。
/// </summary>
public string Handle { get; set; }
= string.Empty;
/// <summary>
/// 录像持续时长(分钟,范围 1-60
/// 仅在 Type 为 LocalRecord 时有效。
/// </summary>
public int RecordDuration { get; set; }
/// <summary>
/// 录像文件存放绝对路径。
/// 仅在 Type 为 LocalRecord 时有效例如C:\Recordings\Room01。
/// </summary>
public string SavePath { get; set; }
= string.Empty;
/// <summary>
/// 通讯方式协议。
/// 仅在 Type 为 NetworkTrans 或 WebPush 时有效,默认为 Network。
/// </summary>
public TransportProtocol Protocol { get; set; }
/// <summary>
/// 目标接收端 IP 地址。
/// 仅在 Type 为 NetworkTrans 或 WebPush 且 Protocol 为 Network 时必填。
/// </summary>
public string TargetIp { get; set; }
= string.Empty;
/// <summary>
/// 目标接收端端口号。
/// 仅在 Type 为 NetworkTrans 或 WebPush 时必填。
/// </summary>
public int TargetPort { get; set; }
}