Files
OrpaonVision/OrpaonVision.Model/Configuration/RoiConfigModel.cs
2026-04-06 22:04:05 +08:00

288 lines
5.3 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.
namespace OrpaonVision.Model.Configuration;
/// <summary>
/// ROI配置模型。
/// </summary>
public sealed class RoiConfigModel
{
/// <summary>
/// ROI ID。
/// </summary>
public Guid Id { get; set; }
/// <summary>
/// 部件ID。
/// </summary>
public Guid ComponentConfigId { get; set; }
/// <summary>
/// ROI名称。
/// </summary>
public string Name { get; set; } = string.Empty;
/// <summary>
/// ROI描述。
/// </summary>
public string? Description { get; set; }
/// <summary>
/// ROI类型。
/// </summary>
public RoiType Type { get; set; }
/// <summary>
/// X坐标相对坐标0-1
/// </summary>
public double X { get; set; }
/// <summary>
/// Y坐标相对坐标0-1
/// </summary>
public double Y { get; set; }
/// <summary>
/// 宽度相对坐标0-1
/// </summary>
public double Width { get; set; }
/// <summary>
/// 高度相对坐标0-1
/// </summary>
public double Height { get; set; }
/// <summary>
/// ROI状态。
/// </summary>
public RoiStatus Status { get; set; }
/// <summary>
/// 是否启用。
/// </summary>
public bool IsEnabled { get; set; }
/// <summary>
/// 排序序号。
/// </summary>
public int SortOrder { get; set; }
/// <summary>
/// 创建时间UTC
/// </summary>
public DateTime CreatedAtUtc { get; set; }
/// <summary>
/// 更新时间UTC
/// </summary>
public DateTime UpdatedAtUtc { get; set; }
/// <summary>
/// 创建人。
/// </summary>
public string CreatedBy { get; set; } = string.Empty;
/// <summary>
/// 更新人。
/// </summary>
public string UpdatedBy { get; set; } = string.Empty;
/// <summary>
/// 备注。
/// </summary>
public string? Remark { get; set; }
}
/// <summary>
/// ROI类型枚举。
/// </summary>
public enum RoiType
{
/// <summary>
/// 矩形。
/// </summary>
Rectangle = 0,
/// <summary>
/// 圆形。
/// </summary>
Circle = 1,
/// <summary>
/// 多边形。
/// </summary>
Polygon = 2,
/// <summary>
/// 椭圆形。
/// </summary>
Ellipse = 3
}
/// <summary>
/// ROI状态枚举。
/// </summary>
public enum RoiStatus
{
/// <summary>
/// 启用。
/// </summary>
Enabled = 0,
/// <summary>
/// 禁用。
/// </summary>
Disabled = 1,
/// <summary>
/// 隐藏。
/// </summary>
Hidden = 2
}
/// <summary>
/// 规则配置模型。
/// </summary>
public sealed class RuleConfigModel
{
/// <summary>
/// 规则ID。
/// </summary>
public Guid Id { get; set; }
/// <summary>
/// 部件ID。
/// </summary>
public Guid ComponentConfigId { get; set; }
/// <summary>
/// 规则名称。
/// </summary>
public string Name { get; set; } = string.Empty;
/// <summary>
/// 规则描述。
/// </summary>
public string? Description { get; set; }
/// <summary>
/// 规则类型。
/// </summary>
public RuleType Type { get; set; }
/// <summary>
/// 规则参数JSON。
/// </summary>
public string RuleParametersJson { get; set; } = string.Empty;
/// <summary>
/// 规则状态。
/// </summary>
public RuleStatus Status { get; set; }
/// <summary>
/// 优先级。
/// </summary>
public int Priority { get; set; }
/// <summary>
/// 是否启用。
/// </summary>
public bool IsEnabled { get; set; }
/// <summary>
/// 排序序号。
/// </summary>
public int SortOrder { get; set; }
/// <summary>
/// 创建时间UTC
/// </summary>
public DateTime CreatedAtUtc { get; set; }
/// <summary>
/// 更新时间UTC
/// </summary>
public DateTime UpdatedAtUtc { get; set; }
/// <summary>
/// 创建人。
/// </summary>
public string CreatedBy { get; set; } = string.Empty;
/// <summary>
/// 更新人。
/// </summary>
public string UpdatedBy { get; set; } = string.Empty;
/// <summary>
/// 备注。
/// </summary>
public string? Remark { get; set; }
}
/// <summary>
/// 规则类型枚举。
/// </summary>
public enum RuleType
{
/// <summary>
/// 数量规则。
/// </summary>
Quantity = 0,
/// <summary>
/// 位置规则。
/// </summary>
Position = 1,
/// <summary>
/// 到位规则。
/// </summary>
InPlace = 2,
/// <summary>
/// 顺序规则。
/// </summary>
Sequence = 3,
/// <summary>
/// 禁装规则。
/// </summary>
Forbidden = 4,
/// <summary>
/// 超时规则。
/// </summary>
Timeout = 5,
/// <summary>
/// 层切换规则。
/// </summary>
LayerSwitch = 6,
/// <summary>
/// 机完成规则。
/// </summary>
MachineComplete = 7
}
/// <summary>
/// 规则状态枚举。
/// </summary>
public enum RuleStatus
{
/// <summary>
/// 启用。
/// </summary>
Enabled = 0,
/// <summary>
/// 禁用。
/// </summary>
Disabled = 1,
/// <summary>
/// 测试中。
/// </summary>
Testing = 2
}