NohDoyeon241104 4ed35cb94a feat: 레시피 화면에서 스캐너 카메라+모션 토글 창 추가 (이벤트 구동)
- 레시피 컨트롤박스에 'Scanner Cam' 버튼 추가 → 카메라+모션 창 Show/Hide 토글
- WDScannerCamMotion: 전용 displayType(Machine_C) 카메라뷰 + 매뉴얼 UCScannerMotion 재사용
- UCScannerMotionViewModel: publish/execute 모드 분리
  - 레시피(publish): 입력값을 EVENT_SCANNER_COMMAND_MOVE 로 발행
  - 매뉴얼(execute): 이벤트 구독해 동일 메소드로 실제 스캐너 이동(인터락 그대로 재사용)
- Move/Jog/Home 메소드를 인자형으로 리팩터해 UI·이벤트 경로가 같은 본체 공유
- 분석 문서 추가(docs/분석/2026/06/23)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 17:03:21 +09:00

223 lines
9.2 KiB
C#

namespace WeldingCommon
{
public enum eWorkingPosition
{
NONE = 0, // 시작 전
CHECKING_CONDITION, // 1. Check Init Condition
LOADING_CELL, // 2. CHECK PageNo (Cell 대기)
UPLOADING_WELD_LIST, // 3. Uploading Welding List (리스트 생성/전송)
WAITING_WELD_START, // 4. Wait Welding Start (PLC 용접 시작 대기)
EXECUTING_WELD, // 5. Execute Welding (실제 용접 수행)
REPORTING_RESULT, // 6. Save Result Data (결과 기록/저장)
CHECKING_CYCLE, // 7. Check Cycle Stop (사이클 정지 확인)
DONE, // 8. Complete (시퀀스 완료)
MAX,
UNLOADING_CELL
};
public enum eEqpStatus
{
Manual,
Auto,
}
internal class EquipDefCommon
{
}
public class CommonViewIds
{
// Recipe
public const string Recipe = "Recipe"; // Menu 1
public const string RecipeChangeHistory = "RecipeChangeHistory";
public const string RecipeEditor = "RecipeEditor";
public const string ModelEditor = "ModelEditor";
public const string AutoRun = "Auto Run";
public const string Setting = "Setting";
public const string AutoBackupView = "AutoBackupView";
public const string LogSetting = "LogSetting";
public const string Camera = "Camera";
public const string Manual = "Manual";
public const string Monitoring = "Monitoring";
public const string Device = "Device";
public const string Alarm = "Alarm";
public const string History = "History";
public const string Description = "Description";
public const string Laser = "Laser";
public const string Calibration = "Calibration";
public const string Scanner = "Scanner";
public const string Power = "Power";
public const string Teaching = "Teaching";
public const string PixelResolution = "PixelResolution";
//Manual
public const string ScannerCamera = "ScannerCamera/Operation";
public const string OCT = "OCT/Operation";
public const string LBAD = "LBAD";
//public const string PLCInterfaceView = "PLCInterfaceView";
public const string ConvEdgeObject = "RCC";
public const string ModelFinder = "ModelFinder";
public const string ScannerOperation = "ScannerOperation";
public const string TestDevice = "TestDevice"; // For Test Device
public const string TestSequence = "TestSequence"; // For Test Sequence
// Monitoring
public const string PLCBitMonitoring = "PLCBitMonitoring";
public const string PLCWordMonitoring = "PLCWordMonitoring";
public const string IOInterfaceView = "IOInterfaceView";
//calibration
public const string PowerCalProfile = "Power Profile";
public const string VisionLaserCal = "Vision/Laser Calibraion";
public const string StreamDevice = "StreamDevice";
}
public class CommonSettingIds
{
public const string Settings = "Settings";
public const string LaserSetting = "LaserSetting";
public const string SystemParameter = "SystemParameterILSOS";
public const string LaserPowerCalParam = "LaserPowerCalParam";
public const string DoorInterlock = "DoorInterlock";
public const string UploadDatas = "UploadDatas";
public const string RmsDatas = "RmsDatas";
public const string Sequence = "Sequence";
}
public class CommonRecipeIds
{
//public const string LaserScannerTeaching = "LaserScannerTeaching";
public const string ScannerObjectTeaching = "ScannerObjectTeaching";
}
public class CommonModelIds
{
public const string EquipmentSpecificModel = "EquipmentSpecificModel";
}
public class CommonDeviceIds
{
public const string Laser = "Laser";
public const string LaserCleaner = "LaserCleaner";
public const string Scanner = "Scanner";
public const string SmcChiller = "SmcChiller";
public const string PowerMeter = "PowerMeter";
public const string Light = "Light"; // Camera Light Controller
public const string PLCDevice = "PLC";
public const string IODevice = "IO_Board";
public const string CellTracker = "CellTracker";
public const string LBAD = "LBAD";
public const string OCT = "OCT";
//Temp const String for Device Test - 박준현
public const string CAS = "CAS";
public const string AJIN = "AJIN";
public const string AJINStageMotorZ = "AJINStageMotorZ";
}
public class CommonEventIds
{
public const string EVENT_EQUIPMENT_STATUS_CHANGE = "EventEquipmentStatusChange";
// PLC 로부터 EVENT_AUTO_RUN_START_REQUEST => 개별 장비 Project MainAutoRunViewModel 로 "EVENT_SEQ_AUTO_RUN_START" 을 보내서 Seq 실행함.
public const string EVENT_AUTO_RUN_START_REQUEST = "EventAutoRunStartRequest";
// PLC 로부터 EVENT_AUTO_RUN_STOP_REQUEST => 개별 장비 Project MainAutoRunViewModel 로 "EVENT_SEQ_AUTO_RUN_STOP" 을 보내서 Seq 멈춤.
public const string EVENT_AUTO_RUN_STOP_REQUEST = "EventAutoRunStopRequest";
public const string EVENT_RMS_PARAMETER_READ_REQUEST = "EventRmsParameterReadRequest";
public const string EVENT_RMS_RECIPE_CHECK_REQUEST = "EventRmsRecipeCheckRequest";
public const string EVENT_RMS_ACTIVATED_RECIPE_CHANGE_REQUEST = "EventRmsActivatedRecipeChangeRequest";
public const string EVENT_UPDATE_AUTURUN_STATE = "EVENT_UPDATE_AUTURUN_STATE";
public const string EVENT_RESET_ALL_ALARMS_REQUEST = "EventResetAllAlarmsRequest";
public const string EVENT_CHANGE_DOOR_LOCK = "EventChangeDoorLock";
public const string EVENT_CHANGE_RECIPE_INFO = "EventChangeRecipeInfo";
public const string EVENT_AUTO_RUN_UPDATE_PAGENUM = "EventAutoRunUpdatePageNum";
// 레시피 화면(publish) → 매뉴얼 스캐너 VM(subscribe)로 스캐너 모션 요청을 전달한다.
// Param: WeldingCommon.Views.ScannerCommandMoveParam
// 주의: 구독자(UCScannerMotionViewModel, execute 모드)는 RegisterViews에서 기동 시 1회 생성되어
// 프로세스 내내 생존하는 전제(EquipmentSetup.RegisterViews)에 의존한다. View 생성을
// 지연 생성으로 바꾸면 구독자가 없어 본 이벤트가 무시될 수 있으므로 함께 점검할 것.
public const string EVENT_SCANNER_COMMAND_MOVE = "EventScannerCommandMove";
}
public class CommonSequenceIds
{
//public const string SeqRMSResponse = "SeqRMSResponse";
public const string SeqManualRunRCC = "SeqManualRunRCC";
public const string SeqMarkGrid = "SeqMarkGrid";
public const string SeqScannerCalibration = "SeqScannerCalibration";
public const string SeqReceiveCellInfo = "SeqReceiveCellInfo";
public const string SeqReportCellResult = "SeqReportCellResult";
public const string SeqScoutFlyingVision = "SeqScoutFlyingVision";
public const string SeqScoutNormal = "SeqScoutNormal";
public const string SeqUploadWeldingList = "SeqUploadWeldingList";
public const string SeqExecutePlcBitInterface = "SeqExecutePlcBitInterface";
public const string SeqExecutePlcBitInterfaceForStatusChange = "SeqExecutePlcBitInterfaceForStatusChange";
public const string SeqCheckWeldingComplete = "SeqCheckWeldingComplete";
public const string SeqTeachingRun = "SeqTeachingRun";
public const string SeqComponentTeachingRun = "SeqComponentTeachingRun";
public const string SeqWaitWeldOrChangePage = "SeqWaitWeldOrChangePage";
public const string PLCMonitor = "PLCMonitor";
public const string AlarmMonitor = "AlarmMonitor";
public const string SeqAutoRun = "SeqAutoRun";
}
public class EquipEvent
{
public const string BOOT_COMPLETED = "BOOT_COMPLETED";
public const string WORKING_POS_UPDATED = "WORKING_POS_UPDATED";
}
public class CommonServiceIds
{
//PubSub
public const string StreamPubTest = "StreamPubTest";
public const string StreamSubTest = "StreamSubTest";
//RPC
public const string StreamServerTest = "StreamServerTest";
public const string StreamClientTest = "StreamClientTest";
//MessageBroadcasting
public const string StreamBroadcastPub = "StreamBroadcastPub";
public const string StreamBroadcastSub = "StreamBroadcastSub";
//LBAD
public const string StreamLBADClient = "StreamLBADClient";
}
public class CommonStreamServiceNames
{
public const string PubSubTest = "PubSubTest";
public const string LBADSubTest = "LBADSubTest";
public const string LBADRPC = "LBADRPC";
public const string LBADFeatureServer = "LBADFeatureServer";
}
public class CommonStreamTopicNames
{
public const string TOPIC1 = "TOPIC1";
}
class CommonShortcutIds
{
public const string StartMain = "Start Main";
public const string ScreenCapture = "Screen Capture";
}
}