150 lines
5.0 KiB
C#
150 lines
5.0 KiB
C#
/*
|
|
* Copyright (c) 2025 LG Electronics Inc.
|
|
* SPDX-License-Identifier: LicenseRef-LGE-Proprietary
|
|
*/
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using VisionCommon;
|
|
|
|
namespace VisionSequence.Setup {
|
|
/// <summary>
|
|
/// 비전 반복도 로그
|
|
/// </summary>
|
|
public class VisionRepeatLog : ICloneable {
|
|
/// <summary>
|
|
/// 걸린 시간
|
|
/// </summary>
|
|
public string Time { get; set; }
|
|
/// <summary>
|
|
/// 반복 Step
|
|
/// </summary>
|
|
public int Step { get; set; }
|
|
/// <summary>
|
|
/// 이미지 X 위치
|
|
/// </summary>
|
|
public double ImagePosX { get; set; }
|
|
/// <summary>
|
|
/// 이미지 Y위치
|
|
/// </summary>
|
|
public double ImagePosY { get; set; }
|
|
/// <summary>
|
|
/// 자재 X 위치
|
|
/// </summary>
|
|
public double StaticPosX { get; set; }
|
|
/// <summary>
|
|
/// 자재 Y위치
|
|
/// </summary>
|
|
public double StaticPosY { get; set; }
|
|
/// <summary>
|
|
/// 패턴 각도
|
|
/// </summary>
|
|
public double Angle { get; set; }
|
|
/// <summary>
|
|
/// 가로 길이(Shape)
|
|
/// </summary>
|
|
public double Width { get; set; }
|
|
/// <summary>
|
|
/// 세로 길이(Shape)
|
|
/// </summary>
|
|
public double Height { get; set; }
|
|
/// <summary>
|
|
/// 반지름 길이(Shape)
|
|
/// </summary>
|
|
public double Radius { get; set; }
|
|
|
|
public object Clone() {
|
|
return new VisionRepeatLog() {
|
|
Time = this.Time,
|
|
Step = this.Step,
|
|
ImagePosX = this.ImagePosX,
|
|
ImagePosY = this.ImagePosY,
|
|
StaticPosX = this.StaticPosX,
|
|
StaticPosY = this.StaticPosY,
|
|
Angle = this.Angle,
|
|
Width = this.Width,
|
|
Height = this.Height,
|
|
Radius = this.Radius
|
|
};
|
|
}
|
|
|
|
public VisionRepeatLog() { }
|
|
|
|
/// <summary>
|
|
/// 생성자 (for Shape)
|
|
/// </summary>
|
|
/// <param name="step">반복 Step</param>
|
|
/// <param name="imagePosX">이미지 X 위치</param>
|
|
/// <param name="imagePosY">이미지 Y 위치</param>
|
|
/// <param name="staticPosX">자재 X 위치</param>
|
|
/// <param name="staticPosY">자재 Y 위치</param>
|
|
/// <param name="angle">패턴 각도</param>
|
|
/// <param name="width">가로 길이</param>
|
|
/// <param name="height">세로 길이</param>
|
|
/// <param name="radius">반지름 길이</param>
|
|
public VisionRepeatLog(int step, double imagePosX, double imagePosY, double staticPosX, double staticPosY, double angle, double width, double height, double radius) {
|
|
Step = step;
|
|
ImagePosX = imagePosX;
|
|
ImagePosY = imagePosY;
|
|
StaticPosX = staticPosX;
|
|
StaticPosY = staticPosY;
|
|
Angle = angle;
|
|
Width = width;
|
|
Height = height;
|
|
Radius = radius;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 생성자 (for not Shape)
|
|
/// </summary>
|
|
/// <param name="step">반복 Step</param>
|
|
/// <param name="imagePosX">이미지 X 위치</param>
|
|
/// <param name="imagePosY">이미지 Y 위치</param>
|
|
/// <param name="staticPosX">자재 X 위치</param>
|
|
/// <param name="staticPosY">자재 Y 위치</param>
|
|
/// <param name="angle">패턴 각도</param>
|
|
public VisionRepeatLog(int step, double imagePosX, double imagePosY, double staticPosX, double staticPosY, double angle) {
|
|
Step = step;
|
|
ImagePosX = imagePosX;
|
|
ImagePosY = imagePosY;
|
|
StaticPosX = staticPosX;
|
|
StaticPosY = staticPosY;
|
|
Angle = angle;
|
|
Width = 0;
|
|
Height = 0;
|
|
Radius = 0;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 비전 반복도 결과 항목 매니저
|
|
/// </summary>
|
|
public class VisionRepeatResultItemManager : ItemManagerBase {
|
|
private static readonly object _Lock = new object();
|
|
/// <summary>
|
|
/// 비전 반복도 결과 항목을 Get 한다.
|
|
/// </summary>
|
|
/// <param name="subSysInfo"></param>
|
|
/// <param name="log"></param>
|
|
/// <returns>비전 반복도 결과 항목</returns>
|
|
public static VisionRepeatLog GetVisionRepeatLog(SubSysInfo subSysInfo, VisionRepeatLog log) {
|
|
lock (_Lock) {
|
|
return new VisionRepeatLog() {
|
|
Time = GetTimeStamp(subSysInfo, log),
|
|
Step = log.Step,
|
|
ImagePosX = log.ImagePosX,
|
|
ImagePosY = log.ImagePosY,
|
|
StaticPosX = log.StaticPosX,
|
|
StaticPosY = log.StaticPosY,
|
|
Angle = log.Angle,
|
|
Width = log.Width,
|
|
Height = log.Height,
|
|
Radius = log.Radius
|
|
};
|
|
}
|
|
}
|
|
}
|
|
}
|