230 lines
4.5 KiB
C#
230 lines
4.5 KiB
C#
namespace OrpaonVision.Model.Production;
|
||
|
||
/// <summary>
|
||
/// 运行部件判定模型。
|
||
/// </summary>
|
||
public sealed class RunPartJudgmentModel
|
||
{
|
||
/// <summary>
|
||
/// 判定ID。
|
||
/// </summary>
|
||
public Guid JudgmentId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 产品会话ID。
|
||
/// </summary>
|
||
public Guid SessionId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 层级会话ID。
|
||
/// </summary>
|
||
public Guid LayerSessionId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 部件序号(在层级中的序号)。
|
||
/// </summary>
|
||
public int PartSequence { get; set; }
|
||
|
||
/// <summary>
|
||
/// 部件编码。
|
||
/// </summary>
|
||
public string PartCode { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 部件名称。
|
||
/// </summary>
|
||
public string PartName { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 检测到的类别。
|
||
/// </summary>
|
||
public string DetectedClass { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 置信度。
|
||
/// </summary>
|
||
public decimal Confidence { get; set; }
|
||
|
||
/// <summary>
|
||
/// 边界框X坐标。
|
||
/// </summary>
|
||
public float BoundingBoxX { get; set; }
|
||
|
||
/// <summary>
|
||
/// 边界框Y坐标。
|
||
/// </summary>
|
||
public float BoundingBoxY { get; set; }
|
||
|
||
/// <summary>
|
||
/// 边界框宽度。
|
||
/// </summary>
|
||
public float BoundingBoxWidth { get; set; }
|
||
|
||
/// <summary>
|
||
/// 边界框高度。
|
||
/// </summary>
|
||
public float BoundingBoxHeight { get; set; }
|
||
|
||
/// <summary>
|
||
/// 实际中心点X坐标。
|
||
/// </summary>
|
||
public float ActualCenterX { get; set; }
|
||
|
||
/// <summary>
|
||
/// 实际中心点Y坐标。
|
||
/// </summary>
|
||
public float ActualCenterY { get; set; }
|
||
|
||
/// <summary>
|
||
/// 期望中心点X坐标。
|
||
/// </summary>
|
||
public float ExpectedCenterX { get; set; }
|
||
|
||
/// <summary>
|
||
/// 期望中心点Y坐标。
|
||
/// </summary>
|
||
public float ExpectedCenterY { get; set; }
|
||
|
||
/// <summary>
|
||
/// 位置偏差(像素)。
|
||
/// </summary>
|
||
public float PositionDeviation { get; set; }
|
||
|
||
/// <summary>
|
||
/// 判定状态。
|
||
/// </summary>
|
||
public RunPartJudgmentStatus Status { get; set; }
|
||
|
||
/// <summary>
|
||
/// 判定结果。
|
||
/// </summary>
|
||
public RunPartJudgmentResult Result { get; set; }
|
||
|
||
/// <summary>
|
||
/// 判定规则ID。
|
||
/// </summary>
|
||
public Guid? RuleId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 判定规则名称。
|
||
/// </summary>
|
||
public string? RuleName { get; set; }
|
||
|
||
/// <summary>
|
||
/// NG原因。
|
||
/// </summary>
|
||
public string? NgReason { get; set; }
|
||
|
||
/// <summary>
|
||
/// 截图路径。
|
||
/// </summary>
|
||
public string? ScreenshotPath { get; set; }
|
||
|
||
/// <summary>
|
||
/// 判定时间(UTC)。
|
||
/// </summary>
|
||
public DateTime JudgedAtUtc { get; set; }
|
||
|
||
/// <summary>
|
||
/// 推理耗时(毫秒)。
|
||
/// </summary>
|
||
public long InferenceTimeMs { 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 enum RunPartJudgmentStatus
|
||
{
|
||
/// <summary>
|
||
/// 待检测。
|
||
/// </summary>
|
||
Pending = 0,
|
||
|
||
/// <summary>
|
||
/// 检测中。
|
||
/// </summary>
|
||
Detecting = 1,
|
||
|
||
/// <summary>
|
||
/// 已检测。
|
||
/// </summary>
|
||
Detected = 2,
|
||
|
||
/// <summary>
|
||
/// 判定中。
|
||
/// </summary>
|
||
Judging = 3,
|
||
|
||
/// <summary>
|
||
/// 已判定。
|
||
/// </summary>
|
||
Judged = 4,
|
||
|
||
/// <summary>
|
||
/// 异常。
|
||
/// </summary>
|
||
Error = 5
|
||
}
|
||
|
||
/// <summary>
|
||
/// 违行部件判定结果。
|
||
/// </summary>
|
||
public enum RunPartJudgmentResult
|
||
{
|
||
/// <summary>
|
||
/// 待定。
|
||
/// </summary>
|
||
Pending = 0,
|
||
|
||
/// <summary>
|
||
/// 合格。
|
||
/// </summary>
|
||
Ok = 1,
|
||
|
||
/// <summary>
|
||
/// 不合格。
|
||
/// </summary>
|
||
Ng = 2,
|
||
|
||
/// <summary>
|
||
/// 缺失。
|
||
/// </summary>
|
||
Missing = 3,
|
||
|
||
/// <summary>
|
||
/// 位置错误。
|
||
/// </summary>
|
||
PositionError = 4,
|
||
|
||
/// <summary>
|
||
/// 禁装。
|
||
/// </summary>
|
||
Forbidden = 5,
|
||
|
||
/// <summary>
|
||
/// 重复。
|
||
/// </summary>
|
||
Duplicate = 6
|
||
}
|