..
This commit is contained in:
@@ -30,28 +30,11 @@ namespace Project.ViewForm
|
||||
|
||||
InitializeMapCanvas();
|
||||
|
||||
//PUB.mapctl = new AGVControl.MapControl();
|
||||
//PUB.mapctl.Dock = DockStyle.Fill;
|
||||
//PUB.mapctl.Visible = true;
|
||||
//PUB.mapctl.Font = this.panel1.Font;
|
||||
//PUB.mapctl.BackColor = Color.FromArgb(32, 32, 32);
|
||||
//this.panel1.Controls.Add(PUB.mapctl);
|
||||
}
|
||||
|
||||
private void InitializeMapCanvas()
|
||||
{
|
||||
// RfidMappings 제거 - MapNode에 통합됨
|
||||
|
||||
// 이벤트 연결
|
||||
//PUB._mapCanvas.NodeAdded += OnNodeAdded;
|
||||
// 이벤트 연결
|
||||
//PUB._mapCanvas.NodeAdded += OnNodeAdded;
|
||||
PUB._mapCanvas.NodeSelect += OnNodeSelected;
|
||||
//PUB._mapCanvas.NodeMoved += OnNodeMoved;
|
||||
//PUB._mapCanvas.NodeDeleted += OnNodeDeleted;
|
||||
//PUB._mapCanvas.ConnectionDeleted += OnConnectionDeleted;
|
||||
//PUB._mapCanvas.ImageNodeDoubleClicked += OnImageNodeDoubleClicked;
|
||||
//PUB._mapCanvas.MapChanged += OnMapChanged;
|
||||
PUB._mapCanvas.NodeSelect += OnNodeSelected;;
|
||||
|
||||
// 스플리터 패널에 맵 캔버스 추가
|
||||
panel1.Controls.Add(PUB._mapCanvas);
|
||||
@@ -153,84 +136,7 @@ namespace Project.ViewForm
|
||||
PUB.AGV.DataReceive += AGV_DataReceive;
|
||||
|
||||
|
||||
//auto load
|
||||
var mapPath = new System.IO.DirectoryInfo("route");
|
||||
if (mapPath.Exists == false) mapPath.Create();
|
||||
|
||||
|
||||
//맵파일로딩
|
||||
if (PUB.setting.LastMapFile.isEmpty()) PUB.setting.LastMapFile = System.IO.Path.Combine(mapPath.FullName, "default.json");
|
||||
System.IO.FileInfo filePath = new System.IO.FileInfo(PUB.setting.LastMapFile);
|
||||
if (filePath.Exists == false) filePath = new System.IO.FileInfo(System.IO.Path.Combine(mapPath.FullName, "default.json"));
|
||||
if (filePath.Exists == false) //그래도없다면 맵폴더에서 파일을 찾아본다.
|
||||
{
|
||||
var files = mapPath.GetFiles("*.json");
|
||||
if (files.Any()) filePath = files[0];
|
||||
}
|
||||
|
||||
if (filePath.Exists)
|
||||
{
|
||||
var result = MapLoader.LoadMapFromFile(filePath.FullName);
|
||||
|
||||
if (result.Success)
|
||||
{
|
||||
if (PUB._mapCanvas.Nodes == null) PUB._mapCanvas.Nodes = new List<MapNode>();
|
||||
else PUB._mapCanvas.Nodes.Clear();
|
||||
PUB._mapCanvas.Nodes.AddRange(result.Nodes);
|
||||
|
||||
// 맵 캔버스에 데이터 설정
|
||||
PUB._mapCanvas.Nodes = PUB._mapCanvas.Nodes;
|
||||
PUB._mapCanvas.MapFileName = filePath.FullName;
|
||||
|
||||
// 🔥 맵 설정 적용 (배경색, 그리드 표시)
|
||||
if (result.Settings != null)
|
||||
{
|
||||
PUB._mapCanvas.BackColor = System.Drawing.Color.FromArgb(result.Settings.BackgroundColorArgb);
|
||||
PUB._mapCanvas.ShowGrid = result.Settings.ShowGrid;
|
||||
}
|
||||
|
||||
// 🔥 가상 AGV 초기화 (첫 노드 위치에 생성)
|
||||
if (PUB._virtualAGV == null && PUB._mapCanvas.Nodes.Count > 0)
|
||||
{
|
||||
var startNode = PUB._mapCanvas.Nodes.FirstOrDefault(n => n.IsNavigationNode());
|
||||
if (startNode != null)
|
||||
{
|
||||
PUB._virtualAGV = new VirtualAGV(PUB.setting.MCID, startNode.Position, AgvDirection.Forward);
|
||||
PUB._virtualAGV.LowBatteryThreshold = PUB.setting.BatteryLimit_Low;
|
||||
PUB._virtualAGV.SetPosition(startNode, AgvDirection.Forward);
|
||||
|
||||
// 캔버스에 AGV 리스트 설정
|
||||
var agvList = new System.Collections.Generic.List<AGVNavigationCore.Controls.IAGV> { PUB._virtualAGV };
|
||||
PUB._mapCanvas.AGVList = agvList;
|
||||
|
||||
PUB.log.Add($"가상 AGV 생성: {startNode.Id} 위치");
|
||||
}
|
||||
}
|
||||
else if (PUB._virtualAGV != null)
|
||||
{
|
||||
PUB._virtualAGV.LowBatteryThreshold = PUB.setting.BatteryLimit_Low;
|
||||
// 기존 AGV가 있으면 캔버스에 다시 연결
|
||||
var agvList = new System.Collections.Generic.List<AGVNavigationCore.Controls.IAGV> { PUB._virtualAGV };
|
||||
PUB._mapCanvas.AGVList = agvList;
|
||||
}
|
||||
|
||||
// 맵 로드 후 자동으로 맵에 맞춤
|
||||
PUB._mapCanvas.FitToNodes();
|
||||
|
||||
PUB.log.Add($"맵 파일 로드 완료: {filePath.Name}, 노드 수: {result.Nodes.Count}");
|
||||
}
|
||||
else
|
||||
{
|
||||
PUB.log.Add($"맵 파일 로딩 실패: {result.ErrorMessage}");
|
||||
MessageBox.Show($"맵 파일 로딩 실패: {result.ErrorMessage}", "오류",
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
PUB.log.Add($"맵 파일을 찾을 수 없습니다: {filePath.FullName}");
|
||||
}
|
||||
|
||||
|
||||
//var fn = string.Empty;
|
||||
//if (files.Any() == false)
|
||||
//{
|
||||
|
||||
Reference in New Issue
Block a user