This commit is contained in:
backuppc
2025-12-15 17:34:43 +09:00
parent 9db88e5d6b
commit a7f938ff19
29 changed files with 535 additions and 1556 deletions

View File

@@ -1140,7 +1140,8 @@ namespace AGVNavigationCore.Controls
// 위쪽에 표시할 이름 (노드의 Name 속성)
string TopIDText = node.HasRfid() ? node.RfidId : $"[{node.Id}]";
string TopIDText = node.HasRfid() ? node.RfidId.ToString("0000") : $"[{node.Id}]";
// 아래쪽에 표시할 값 (RFID 우선, 없으면 노드ID)
string BottomLabelText = node.Text;

View File

@@ -121,7 +121,7 @@ namespace AGVNavigationCore.Controls
if (hitNode == null) return;
if (hitNode.Type == NodeType.Normal)
if (hitNode.Type == NodeType.Normal)
{
HandleNormalNodeDoubleClick(hitNode as MapNode);
}
@@ -146,15 +146,19 @@ namespace AGVNavigationCore.Controls
private void HandleNormalNodeDoubleClick(MapNode node)
{
// RFID 입력창 표시
string currentRfid = node.RfidId ?? "";
var currentRfid = node.RfidId;
string newRfid = Microsoft.VisualBasic.Interaction.InputBox(
$"노드 '{node.RfidId}[{node.Id}]'의 RFID를 입력하세요:",
"RFID 설정",
currentRfid);
currentRfid.ToString());
if (!string.IsNullOrWhiteSpace(newRfid) && newRfid != currentRfid)
if (ushort.TryParse(newRfid, out ushort newrfidvalue) == false) return;
if (newrfidvalue < 1) return;
if (newrfidvalue != currentRfid)
{
node.RfidId = newRfid.Trim();
node.RfidId = newrfidvalue;
MapChanged?.Invoke(this, EventArgs.Empty);
Invalidate();
}
@@ -229,7 +233,7 @@ namespace AGVNavigationCore.Controls
return;
}
}
// 팬 시작 (좌클릭 - 모드에 따라)
@@ -272,7 +276,7 @@ namespace AGVNavigationCore.Controls
// 호버 업데이트
var newHoveredNode = GetItemAt(worldPoint);
bool hoverChanged = (newHoveredNode != _hoveredNode) ;
bool hoverChanged = (newHoveredNode != _hoveredNode);
if (hoverChanged)
{
@@ -700,8 +704,8 @@ namespace AGVNavigationCore.Controls
{
// 연결선을 클릭했을 때 삭제 확인
var (fromNode, toNode) = connection.Value;
string fromDisplay = !string.IsNullOrEmpty(fromNode.RfidId) ? fromNode.RfidId : fromNode.Id;
string toDisplay = !string.IsNullOrEmpty(toNode.RfidId) ? toNode.RfidId : toNode.Id;
string fromDisplay = fromNode.HasRfid() ? fromNode.RfidId.ToString("0000") : fromNode.Id;
string toDisplay = toNode.HasRfid() ? toNode.RfidId.ToString("0000") : toNode.Id;
var result = MessageBox.Show(
$"연결을 삭제하시겠습니까?\n\n{fromDisplay} ↔ {toDisplay}",

View File

@@ -851,13 +851,13 @@ namespace AGVNavigationCore.Controls
return;
// RFID값과 해당 노드의 인덱스를 저장
var rfidToNodeIndex = new Dictionary<string, List<int>>();
var rfidToNodeIndex = new Dictionary<ushort, List<int>>();
// 모든 노드의 RFID값 수집
for (int i = 0; i < _nodes.Count; i++)
{
var node = _nodes[i];
if (!string.IsNullOrEmpty(node.RfidId))
if (node.HasRfid())
{
if (!rfidToNodeIndex.ContainsKey(node.RfidId))
{