288 lines
5.3 KiB
C#
288 lines
5.3 KiB
C#
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
|
||
}
|