NohDoyeon241104 f5d68248c9 feat: [대면적 MOTF] 레시피 저장/로드 및 페이지 자동 생성 기반 구현 (26.04.10)
- [Line.cs] LargeMOTFPositionX/Y 프로퍼티 추가 ([XmlSerializable])
- [DrawingLayer.cs] LargeMOTFOffsetX/Y 프로퍼티 추가 ([XmlSerializable])
- [RecipeWeldingLines.cs] UseLargeMOTF, LargeMOTFPageCount 프로퍼티 추가 ([XmlSerializable])
  - Load() 에 XmlUtil.ParseProperties() 추가하여 로드 시 반영
- [MainPage.cs]
  - UpdateLargeMOTFPosition() 추가: 저장 직전 Layer별 마지막 Line PF2를 LargeMOTFPositionX/Y에 자동 SET
  - OnRecipeReloaded 이벤트 추가: 레시피 로드 완료 시 콜백
  - GenerateFlippedPages() 추가: EndSet 시 Page3(P2 Y플립), Page4(P1 Y플립) 자동 생성
- [UCScannerObjectTeachingViewModel.cs]
  - OnSaved(): UpdateLargeMOTFPosition, UseLargeMOTF/LargeMOTFPageCount 저장 직전 반영
  - OnChanged(), Reloaded(): 레시피 로드 시 IsUseLargeMOTF, LargeMOTFPageCount UI 반영
  - 생성자: OnRecipeReloaded 이벤트 등록하여 프로그램 시작 시 UI 반영
- [UCScannerObjectTeachingControlBoxViewModel.cs]
  - PerformCmdLargeMOTFEndSet(): LargeMOTFOffsetX 계산 후 GenerateFlippedPages() 호출
  - OnRecipeReloaded 시 LargeMOTFOffsetX UI 반영 (Layer[1] 기준)
2026-04-10 17:31:31 +09:00

57 lines
1.7 KiB
C#

using WeldingCommon;
namespace ILSOS_PrismaticScanner
{
internal class EquipDef
{
}
internal class DeviceIds : CommonDeviceIds
{
public const string MassFlowMeter = "MassFlowMeter";
// 26.04.06
public const string ACS = "ACS";
}
// 추가 26.04.06
internal class MotorIds
{
public const string AxisX2 = "AxisX2";
public const string AxisY1 = "AxisY1";
public const string AxisY2 = "AxisY2";
public const string AxisZ = "AxisZ";
// TODO: 이정인 선임 ACS 변수 맵 수신 후 실제 번호 검증
public enum eMotorIdx
{
AxisX2 = 1,
AxisY1 = 3,
AxisY2 = 4,
AxisZ = 5,
}
}
internal class SequenceIds : CommonSequenceIds
{
public const string SeqStreamTest = "SeqStreamTest";
public const string SeqEventQTest = "SeqEventQTest";
public const string SeqAutoRunComponentWeld = "SeqAutoRunComponentWeld";
public const string SeqAlarmMonitor = "SeqAlarmMonitor";
public const string SeqStatusMonitor = "SeqStatusMonitor";
// 26.04.09 NDY - ACS MOTF AutoRun - > SeqAutoRun은 CommonSequenceIds에 존재함.
public const string SeqAutoRunACS = "SeqAutoRunACS";
}
public class StreamMessageNames
{
public const string MESSAGE_NAME_STRING = "MessageNameString";
public const string MESSAGE_NAME_DOUBLE = "MessageNameDouble";
public const string MESSAGE_NAME_INT = "MessageNameInt";
public const string MESSAGE_NAME_JSON = "MessageNameJSON";
public const string MESSAGE_NAME_LBAD = "MessageNameLBAD";
}
}