ing...
This commit is contained in:
@@ -1775,6 +1775,11 @@ namespace AGVNavigationCore.Controls
|
||||
/// </summary>
|
||||
private Color GetAGVCenterColor(AGVState state)
|
||||
{
|
||||
// Stop-Mark 상태 (Error 상태와 유사하게 처리하거나 별도 처리)
|
||||
// 여기서는 AGVState에 StopMark가 없으므로, 외부에서 상태를 Error로 설정하거나
|
||||
// 별도의 플래그를 확인해야 함. 하지만 IAGV 인터페이스에는 플래그가 없음.
|
||||
// 따라서 fMain에서 상태를 Error로 설정하는 것을 권장.
|
||||
|
||||
switch (state)
|
||||
{
|
||||
case AGVState.Moving: return Color.White;
|
||||
@@ -1794,7 +1799,7 @@ namespace AGVNavigationCore.Controls
|
||||
{
|
||||
case AGVState.Moving: return Color.DarkGreen;
|
||||
case AGVState.Charging: return Color.DarkBlue;
|
||||
case AGVState.Error: return Color.DarkRed;
|
||||
case AGVState.Error: return Color.DarkRed; // Stop-Mark 시 Error 상태 사용
|
||||
case AGVState.Docking: return Color.DarkOrange;
|
||||
default: return Color.DarkGray;
|
||||
}
|
||||
|
||||
@@ -17,6 +17,16 @@ namespace AGVNavigationCore.Controls
|
||||
var worldPoint = ScreenToWorld(e.Location);
|
||||
var hitNode = GetNodeAt(worldPoint);
|
||||
|
||||
// 에뮬레이터 모드 처리
|
||||
if (_canvasMode == CanvasMode.Emulator)
|
||||
{
|
||||
if (e.Button == MouseButtons.Right && hitNode != null)
|
||||
{
|
||||
NodeRightClicked?.Invoke(this, hitNode);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// 🔥 어떤 모드에서든 노드/빈 공간 클릭 시 선택 이벤트 발생 (속성창 업데이트)
|
||||
bool ctrlPressed = (ModifierKeys & Keys.Control) == Keys.Control;
|
||||
|
||||
|
||||
@@ -36,7 +36,8 @@ namespace AGVNavigationCore.Controls
|
||||
public enum CanvasMode
|
||||
{
|
||||
Edit, // 편집 가능 (맵 에디터)
|
||||
Sync // 동기화 모드 (장비 설정 동기화)
|
||||
Sync, // 동기화 모드 (장비 설정 동기화)
|
||||
Emulator // 에뮬레이터 모드
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -146,6 +147,9 @@ namespace AGVNavigationCore.Controls
|
||||
// 컨텍스트 메뉴
|
||||
private ContextMenuStrip _contextMenu;
|
||||
|
||||
// 이벤트
|
||||
public event EventHandler<MapNode> NodeRightClicked;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Events
|
||||
|
||||
Reference in New Issue
Block a user