版本260406

This commit is contained in:
2026-04-06 22:04:05 +08:00
parent 7dc5e73af7
commit 0b150470be
216 changed files with 98993 additions and 33 deletions

View File

@@ -0,0 +1,287 @@
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
}