시뮬레이터에서 맵 로드시에 맵에 배경색이 있다면 적용 하게 함
Xbee Open 시에 return값 변경 return true -> return isopen LogFlushAll 함수추가 (_step_close 에서 사용)
This commit is contained in:
@@ -110,7 +110,7 @@ namespace AGVMapEditor.Forms
|
||||
|
||||
// 이벤트 연결
|
||||
_mapCanvas.NodeAdded += OnNodeAdded;
|
||||
_mapCanvas.NodeSelected += OnNodeSelected;
|
||||
//_mapCanvas.NodeSelected += OnNodeSelected;
|
||||
_mapCanvas.NodesSelected += OnNodesSelected; // 다중 선택 이벤트
|
||||
_mapCanvas.NodeMoved += OnNodeMoved;
|
||||
_mapCanvas.NodeDeleted += OnNodeDeleted;
|
||||
@@ -182,22 +182,22 @@ namespace AGVMapEditor.Forms
|
||||
// RFID 자동 할당
|
||||
}
|
||||
|
||||
private void OnNodeSelected(object sender, MapNode node)
|
||||
{
|
||||
_selectedNode = node;
|
||||
//private void OnNodeSelected(object sender, MapNode node)
|
||||
//{
|
||||
// _selectedNode = node;
|
||||
|
||||
if (node == null)
|
||||
{
|
||||
// 빈 공간 클릭 시 캔버스 속성 표시
|
||||
ShowCanvasProperties();
|
||||
}
|
||||
else
|
||||
{
|
||||
// 노드 클릭 시 노드 속성 표시
|
||||
UpdateNodeProperties();
|
||||
UpdateImageEditButton(); // 이미지 노드 선택 시 이미지 편집 버튼 활성화
|
||||
}
|
||||
}
|
||||
// if (node == null)
|
||||
// {
|
||||
// // 빈 공간 클릭 시 캔버스 속성 표시
|
||||
// ShowCanvasProperties();
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// // 노드 클릭 시 노드 속성 표시
|
||||
// UpdateNodeProperties();
|
||||
// UpdateImageEditButton(); // 이미지 노드 선택 시 이미지 편집 버튼 활성화
|
||||
// }
|
||||
//}
|
||||
|
||||
private void OnNodesSelected(object sender, List<MapNode> nodes)
|
||||
{
|
||||
|
||||
@@ -1468,6 +1468,7 @@ namespace AGVNavigationCore.Controls
|
||||
const int liftWidth = 16; // 리프트 너비 (더욱 크게)
|
||||
const int liftDistance = AGV_SIZE / 2 + 2; // AGV 본체 면에 바로 붙도록
|
||||
|
||||
|
||||
var currentPos = agv.CurrentPosition;
|
||||
var targetPos = agv.PrevPosition;
|
||||
var dockingDirection = agv.DockingDirection;
|
||||
|
||||
@@ -146,7 +146,6 @@ namespace AGVNavigationCore.Controls
|
||||
|
||||
// 맵 편집 이벤트
|
||||
public event EventHandler<MapNode> NodeAdded;
|
||||
public event EventHandler<MapNode> NodeSelected;
|
||||
public event EventHandler<List<MapNode>> NodesSelected; // 다중 선택 이벤트
|
||||
public event EventHandler<MapNode> NodeDeleted;
|
||||
public event EventHandler<MapNode> NodeMoved;
|
||||
|
||||
@@ -118,6 +118,8 @@ namespace AGVSimulator.Forms
|
||||
this._liftDirectionLabel = new System.Windows.Forms.Label();
|
||||
this._motorDirectionLabel = new System.Windows.Forms.Label();
|
||||
this.timer1 = new System.Windows.Forms.Timer(this.components);
|
||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||
this.propertyNode = new System.Windows.Forms.PropertyGrid();
|
||||
this._menuStrip.SuspendLayout();
|
||||
this._toolStrip.SuspendLayout();
|
||||
this._statusStrip.SuspendLayout();
|
||||
@@ -127,6 +129,7 @@ namespace AGVSimulator.Forms
|
||||
this._agvControlGroup.SuspendLayout();
|
||||
this._canvasPanel.SuspendLayout();
|
||||
this._agvInfoPanel.SuspendLayout();
|
||||
this.groupBox1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// _menuStrip
|
||||
@@ -455,6 +458,7 @@ namespace AGVSimulator.Forms
|
||||
// _controlPanel
|
||||
//
|
||||
this._controlPanel.BackColor = System.Drawing.SystemColors.Control;
|
||||
this._controlPanel.Controls.Add(this.groupBox1);
|
||||
this._controlPanel.Controls.Add(this._statusGroup);
|
||||
this._controlPanel.Controls.Add(this._pathGroup);
|
||||
this._controlPanel.Controls.Add(this._agvControlGroup);
|
||||
@@ -789,6 +793,25 @@ namespace AGVSimulator.Forms
|
||||
this.timer1.Interval = 500;
|
||||
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
|
||||
//
|
||||
// groupBox1
|
||||
//
|
||||
this.groupBox1.Controls.Add(this.propertyNode);
|
||||
this.groupBox1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.groupBox1.Location = new System.Drawing.Point(0, 546);
|
||||
this.groupBox1.Name = "groupBox1";
|
||||
this.groupBox1.Size = new System.Drawing.Size(233, 94);
|
||||
this.groupBox1.TabIndex = 4;
|
||||
this.groupBox1.TabStop = false;
|
||||
this.groupBox1.Text = "노드 정보";
|
||||
//
|
||||
// propertyNode
|
||||
//
|
||||
this.propertyNode.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.propertyNode.Location = new System.Drawing.Point(3, 17);
|
||||
this.propertyNode.Name = "propertyNode";
|
||||
this.propertyNode.Size = new System.Drawing.Size(227, 74);
|
||||
this.propertyNode.TabIndex = 0;
|
||||
//
|
||||
// SimulatorForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
|
||||
@@ -821,6 +844,7 @@ namespace AGVSimulator.Forms
|
||||
this._canvasPanel.ResumeLayout(false);
|
||||
this._agvInfoPanel.ResumeLayout(false);
|
||||
this._agvInfoPanel.PerformLayout();
|
||||
this.groupBox1.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
@@ -899,5 +923,7 @@ namespace AGVSimulator.Forms
|
||||
private System.Windows.Forms.ToolStripButton btMakeMap;
|
||||
private System.Windows.Forms.ToolStripMenuItem 맵저장SToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem 맵다른이름으로저장ToolStripMenuItem;
|
||||
private System.Windows.Forms.GroupBox groupBox1;
|
||||
private System.Windows.Forms.PropertyGrid propertyNode;
|
||||
}
|
||||
}
|
||||
@@ -104,7 +104,7 @@ namespace AGVSimulator.Forms
|
||||
_simulatorCanvas.Dock = DockStyle.Fill;
|
||||
|
||||
// 목적지 선택 이벤트 구독
|
||||
_simulatorCanvas.NodeSelected += OnTargetNodeSelected;
|
||||
_simulatorCanvas.NodesSelected += OnTargetNodeSelected;
|
||||
|
||||
_canvasPanel.Controls.Add(_simulatorCanvas);
|
||||
}
|
||||
@@ -394,10 +394,13 @@ namespace AGVSimulator.Forms
|
||||
}
|
||||
}
|
||||
|
||||
private void OnTargetNodeSelected(object sender, MapNode selectedNode)
|
||||
private void OnTargetNodeSelected(object sender, List<MapNode> selectedNodes)
|
||||
{
|
||||
try
|
||||
{
|
||||
// PropertyGrid 업데이트 (항상 수행)
|
||||
propertyNode.SelectedObject = selectedNodes.FirstOrDefault();
|
||||
|
||||
// 타겟계산 모드에서만 처리
|
||||
if (_isTargetCalcMode)
|
||||
{
|
||||
@@ -406,6 +409,7 @@ namespace AGVSimulator.Forms
|
||||
//_targetCalcButton.Text = "타겟계산";
|
||||
//_targetCalcButton.BackColor = SystemColors.Control;
|
||||
//_simulatorCanvas.CurrentEditMode = UnifiedAGVCanvas.EditMode.Select;
|
||||
var selectedNode = selectedNodes.FirstOrDefault();
|
||||
if (selectedNode == null) return;
|
||||
|
||||
// 목적지를 선택된 노드로 설정
|
||||
@@ -865,6 +869,13 @@ namespace AGVSimulator.Forms
|
||||
// 시뮬레이터 캔버스에 맵 설정
|
||||
_simulatorCanvas.Nodes = _mapNodes;
|
||||
|
||||
// 맵 설정 적용 (배경색, 그리드 표시)
|
||||
if (result.Settings != null)
|
||||
{
|
||||
_simulatorCanvas.BackColor = System.Drawing.Color.FromArgb(result.Settings.BackgroundColorArgb);
|
||||
_simulatorCanvas.ShowGrid = result.Settings.ShowGrid;
|
||||
}
|
||||
|
||||
// 설정에 마지막 맵 파일 경로 저장
|
||||
_config.LastMapFilePath = filePath;
|
||||
if (_config.AutoSave)
|
||||
@@ -1876,6 +1887,7 @@ namespace AGVSimulator.Forms
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 맵 데이터를 파일에 저장 (MapLoader 공통 저장 로직 사용)
|
||||
/// </summary>
|
||||
|
||||
@@ -13,10 +13,10 @@
|
||||
"StationId": "",
|
||||
"StationType": null,
|
||||
"CreatedDate": "2025-09-11T08:34:44.9548285+09:00",
|
||||
"ModifiedDate": "2025-11-06T17:17:49.1294796+09:00",
|
||||
"ModifiedDate": "2025-12-08T11:54:03.1730939+09:00",
|
||||
"IsActive": true,
|
||||
"DisplayColor": "Red",
|
||||
"RfidId": "001",
|
||||
"RfidId": "0001",
|
||||
"RfidStatus": "정상",
|
||||
"RfidDescription": "",
|
||||
"LabelText": "",
|
||||
@@ -35,7 +35,7 @@
|
||||
"Scale": "1, 1",
|
||||
"Opacity": 1.0,
|
||||
"Rotation": 0.0,
|
||||
"DisplayText": "N001 - UNLOADER - [001]"
|
||||
"DisplayText": "N001 - UNLOADER - [0001]"
|
||||
},
|
||||
{
|
||||
"NodeId": "N002",
|
||||
@@ -51,10 +51,10 @@
|
||||
"StationId": "",
|
||||
"StationType": null,
|
||||
"CreatedDate": "2025-09-11T08:34:48.2957516+09:00",
|
||||
"ModifiedDate": "2025-11-06T17:17:28.6401293+09:00",
|
||||
"ModifiedDate": "2025-12-08T11:54:05.9083675+09:00",
|
||||
"IsActive": true,
|
||||
"DisplayColor": "Cyan",
|
||||
"RfidId": "002",
|
||||
"RfidId": "0002",
|
||||
"RfidStatus": "정상",
|
||||
"RfidDescription": "",
|
||||
"LabelText": "",
|
||||
@@ -73,7 +73,7 @@
|
||||
"Scale": "1, 1",
|
||||
"Opacity": 1.0,
|
||||
"Rotation": 0.0,
|
||||
"DisplayText": "N002 - N002 - [002]"
|
||||
"DisplayText": "N002 - N002 - [0002]"
|
||||
},
|
||||
{
|
||||
"NodeId": "N003",
|
||||
@@ -89,10 +89,10 @@
|
||||
"StationId": "",
|
||||
"StationType": null,
|
||||
"CreatedDate": "2025-09-11T08:34:49.2226656+09:00",
|
||||
"ModifiedDate": "2025-11-06T17:17:28.6401293+09:00",
|
||||
"ModifiedDate": "2025-12-08T11:54:07.7966472+09:00",
|
||||
"IsActive": true,
|
||||
"DisplayColor": "Cyan",
|
||||
"RfidId": "003",
|
||||
"RfidId": "0003",
|
||||
"RfidStatus": "정상",
|
||||
"RfidDescription": "",
|
||||
"LabelText": "",
|
||||
@@ -111,7 +111,7 @@
|
||||
"Scale": "1, 1",
|
||||
"Opacity": 1.0,
|
||||
"Rotation": 0.0,
|
||||
"DisplayText": "N003 - N003 - [003]"
|
||||
"DisplayText": "N003 - N003 - [0003]"
|
||||
},
|
||||
{
|
||||
"NodeId": "N004",
|
||||
@@ -129,10 +129,10 @@
|
||||
"StationId": "",
|
||||
"StationType": null,
|
||||
"CreatedDate": "2025-09-11T08:34:50.1681027+09:00",
|
||||
"ModifiedDate": "2025-11-06T17:17:28.6401293+09:00",
|
||||
"ModifiedDate": "2025-12-08T11:54:09.4014966+09:00",
|
||||
"IsActive": true,
|
||||
"DisplayColor": "Cyan",
|
||||
"RfidId": "004",
|
||||
"RfidId": "0004",
|
||||
"RfidStatus": "정상",
|
||||
"RfidDescription": "",
|
||||
"LabelText": "",
|
||||
@@ -151,7 +151,7 @@
|
||||
"Scale": "1, 1",
|
||||
"Opacity": 1.0,
|
||||
"Rotation": 0.0,
|
||||
"DisplayText": "N004 - N004 - [004]"
|
||||
"DisplayText": "N004 - N004 - [0004]"
|
||||
},
|
||||
{
|
||||
"NodeId": "N006",
|
||||
@@ -167,10 +167,10 @@
|
||||
"StationId": "",
|
||||
"StationType": null,
|
||||
"CreatedDate": "2025-09-11T08:34:51.1111368+09:00",
|
||||
"ModifiedDate": "2025-11-06T17:17:28.6401293+09:00",
|
||||
"ModifiedDate": "2025-12-08T11:54:49.3718611+09:00",
|
||||
"IsActive": true,
|
||||
"DisplayColor": "Cyan",
|
||||
"RfidId": "013",
|
||||
"RfidId": "0013",
|
||||
"RfidStatus": "정상",
|
||||
"RfidDescription": "",
|
||||
"LabelText": "",
|
||||
@@ -189,7 +189,7 @@
|
||||
"Scale": "1, 1",
|
||||
"Opacity": 1.0,
|
||||
"Rotation": 0.0,
|
||||
"DisplayText": "N006 - N006 - [013]"
|
||||
"DisplayText": "N006 - N006 - [0013]"
|
||||
},
|
||||
{
|
||||
"NodeId": "N007",
|
||||
@@ -205,10 +205,10 @@
|
||||
"StationId": "",
|
||||
"StationType": null,
|
||||
"CreatedDate": "2025-09-11T08:34:51.9266982+09:00",
|
||||
"ModifiedDate": "2025-11-06T17:17:28.6401293+09:00",
|
||||
"ModifiedDate": "2025-12-08T11:54:51.4185821+09:00",
|
||||
"IsActive": true,
|
||||
"DisplayColor": "Cyan",
|
||||
"RfidId": "014",
|
||||
"RfidId": "0014",
|
||||
"RfidStatus": "정상",
|
||||
"RfidDescription": "",
|
||||
"LabelText": "",
|
||||
@@ -227,7 +227,7 @@
|
||||
"Scale": "1, 1",
|
||||
"Opacity": 1.0,
|
||||
"Rotation": 0.0,
|
||||
"DisplayText": "N007 - N007 - [014]"
|
||||
"DisplayText": "N007 - N007 - [0014]"
|
||||
},
|
||||
{
|
||||
"NodeId": "N008",
|
||||
@@ -243,10 +243,10 @@
|
||||
"StationId": "",
|
||||
"StationType": null,
|
||||
"CreatedDate": "2025-09-11T08:34:53.9595825+09:00",
|
||||
"ModifiedDate": "2025-11-06T17:17:28.6401293+09:00",
|
||||
"ModifiedDate": "2025-12-08T11:54:13.626916+09:00",
|
||||
"IsActive": true,
|
||||
"DisplayColor": "Cyan",
|
||||
"RfidId": "009",
|
||||
"RfidId": "0009",
|
||||
"RfidStatus": "정상",
|
||||
"RfidDescription": "",
|
||||
"LabelText": "",
|
||||
@@ -265,7 +265,7 @@
|
||||
"Scale": "1, 1",
|
||||
"Opacity": 1.0,
|
||||
"Rotation": 0.0,
|
||||
"DisplayText": "N008 - N008 - [009]"
|
||||
"DisplayText": "N008 - N008 - [0009]"
|
||||
},
|
||||
{
|
||||
"NodeId": "N009",
|
||||
@@ -281,10 +281,10 @@
|
||||
"StationId": "",
|
||||
"StationType": null,
|
||||
"CreatedDate": "2025-09-11T08:34:54.5035702+09:00",
|
||||
"ModifiedDate": "2025-11-06T17:17:28.6401293+09:00",
|
||||
"ModifiedDate": "2025-12-08T11:54:15.2395639+09:00",
|
||||
"IsActive": true,
|
||||
"DisplayColor": "Cyan",
|
||||
"RfidId": "010",
|
||||
"RfidId": "0010",
|
||||
"RfidStatus": "정상",
|
||||
"RfidDescription": "",
|
||||
"LabelText": "",
|
||||
@@ -303,7 +303,7 @@
|
||||
"Scale": "1, 1",
|
||||
"Opacity": 1.0,
|
||||
"Rotation": 0.0,
|
||||
"DisplayText": "N009 - N009 - [010]"
|
||||
"DisplayText": "N009 - N009 - [0010]"
|
||||
},
|
||||
{
|
||||
"NodeId": "N010",
|
||||
@@ -318,10 +318,10 @@
|
||||
"StationId": "",
|
||||
"StationType": null,
|
||||
"CreatedDate": "2025-09-11T08:34:55.0563237+09:00",
|
||||
"ModifiedDate": "2025-11-06T17:17:49.1294796+09:00",
|
||||
"ModifiedDate": "2025-12-08T11:54:17.075895+09:00",
|
||||
"IsActive": true,
|
||||
"DisplayColor": "Red",
|
||||
"RfidId": "011",
|
||||
"RfidId": "0011",
|
||||
"RfidStatus": "정상",
|
||||
"RfidDescription": "",
|
||||
"LabelText": "",
|
||||
@@ -340,7 +340,7 @@
|
||||
"Scale": "1, 1",
|
||||
"Opacity": 1.0,
|
||||
"Rotation": 0.0,
|
||||
"DisplayText": "N010 - TOPS - [011]"
|
||||
"DisplayText": "N010 - TOPS - [0011]"
|
||||
},
|
||||
{
|
||||
"NodeId": "N011",
|
||||
@@ -357,10 +357,10 @@
|
||||
"StationId": "",
|
||||
"StationType": null,
|
||||
"CreatedDate": "2025-09-11T08:34:55.8875335+09:00",
|
||||
"ModifiedDate": "2025-11-06T17:17:28.6401293+09:00",
|
||||
"ModifiedDate": "2025-12-08T11:54:30.5451017+09:00",
|
||||
"IsActive": true,
|
||||
"DisplayColor": "Cyan",
|
||||
"RfidId": "005",
|
||||
"RfidId": "0005",
|
||||
"RfidStatus": "정상",
|
||||
"RfidDescription": "",
|
||||
"LabelText": "",
|
||||
@@ -379,7 +379,7 @@
|
||||
"Scale": "1, 1",
|
||||
"Opacity": 1.0,
|
||||
"Rotation": 0.0,
|
||||
"DisplayText": "N011 - N011 - [005]"
|
||||
"DisplayText": "N011 - N011 - [0005]"
|
||||
},
|
||||
{
|
||||
"NodeId": "N012",
|
||||
@@ -395,10 +395,10 @@
|
||||
"StationId": "",
|
||||
"StationType": null,
|
||||
"CreatedDate": "2025-09-11T08:34:56.3678144+09:00",
|
||||
"ModifiedDate": "2025-11-06T17:17:28.6401293+09:00",
|
||||
"ModifiedDate": "2025-12-08T11:54:32.3566504+09:00",
|
||||
"IsActive": true,
|
||||
"DisplayColor": "Cyan",
|
||||
"RfidId": "006",
|
||||
"RfidId": "0006",
|
||||
"RfidStatus": "정상",
|
||||
"RfidDescription": "",
|
||||
"LabelText": "",
|
||||
@@ -417,7 +417,7 @@
|
||||
"Scale": "1, 1",
|
||||
"Opacity": 1.0,
|
||||
"Rotation": 0.0,
|
||||
"DisplayText": "N012 - N012 - [006]"
|
||||
"DisplayText": "N012 - N012 - [0006]"
|
||||
},
|
||||
{
|
||||
"NodeId": "N013",
|
||||
@@ -433,10 +433,10 @@
|
||||
"StationId": "",
|
||||
"StationType": null,
|
||||
"CreatedDate": "2025-09-11T08:34:56.8390845+09:00",
|
||||
"ModifiedDate": "2025-11-06T17:17:28.6401293+09:00",
|
||||
"ModifiedDate": "2025-12-08T11:54:34.1608589+09:00",
|
||||
"IsActive": true,
|
||||
"DisplayColor": "Cyan",
|
||||
"RfidId": "007",
|
||||
"RfidId": "0007",
|
||||
"RfidStatus": "정상",
|
||||
"RfidDescription": "",
|
||||
"LabelText": "",
|
||||
@@ -455,7 +455,7 @@
|
||||
"Scale": "1, 1",
|
||||
"Opacity": 1.0,
|
||||
"Rotation": 0.0,
|
||||
"DisplayText": "N013 - N013 - [007]"
|
||||
"DisplayText": "N013 - N013 - [0007]"
|
||||
},
|
||||
{
|
||||
"NodeId": "N014",
|
||||
@@ -470,10 +470,10 @@
|
||||
"StationId": "",
|
||||
"StationType": null,
|
||||
"CreatedDate": "2025-09-11T08:34:57.2549726+09:00",
|
||||
"ModifiedDate": "2025-11-06T17:17:49.1294796+09:00",
|
||||
"ModifiedDate": "2025-12-08T11:54:36.2103863+09:00",
|
||||
"IsActive": true,
|
||||
"DisplayColor": "Red",
|
||||
"RfidId": "008",
|
||||
"RfidId": "0008",
|
||||
"RfidStatus": "정상",
|
||||
"RfidDescription": "",
|
||||
"LabelText": "",
|
||||
@@ -492,7 +492,7 @@
|
||||
"Scale": "1, 1",
|
||||
"Opacity": 1.0,
|
||||
"Rotation": 0.0,
|
||||
"DisplayText": "N014 - LOADER - [008]"
|
||||
"DisplayText": "N014 - LOADER - [0008]"
|
||||
},
|
||||
{
|
||||
"NodeId": "N019",
|
||||
@@ -507,10 +507,10 @@
|
||||
"StationId": "",
|
||||
"StationType": null,
|
||||
"CreatedDate": "2025-09-11T08:35:56.5359098+09:00",
|
||||
"ModifiedDate": "2025-11-06T17:18:12.0236215+09:00",
|
||||
"ModifiedDate": "2025-12-08T11:54:53.4706808+09:00",
|
||||
"IsActive": true,
|
||||
"DisplayColor": "Magenta",
|
||||
"RfidId": "015",
|
||||
"RfidId": "0015",
|
||||
"RfidStatus": "정상",
|
||||
"RfidDescription": "",
|
||||
"LabelText": "",
|
||||
@@ -529,7 +529,7 @@
|
||||
"Scale": "1, 1",
|
||||
"Opacity": 1.0,
|
||||
"Rotation": 0.0,
|
||||
"DisplayText": "N019 - CHARGER #2 - [015]"
|
||||
"DisplayText": "N019 - CHARGER #2 - [0015]"
|
||||
},
|
||||
{
|
||||
"NodeId": "N022",
|
||||
@@ -546,10 +546,10 @@
|
||||
"StationId": "",
|
||||
"StationType": null,
|
||||
"CreatedDate": "2025-09-11T08:36:48.0311551+09:00",
|
||||
"ModifiedDate": "2025-11-06T17:17:28.6401293+09:00",
|
||||
"ModifiedDate": "2025-12-08T11:54:47.1279261+09:00",
|
||||
"IsActive": true,
|
||||
"DisplayColor": "Cyan",
|
||||
"RfidId": "012",
|
||||
"RfidId": "0012",
|
||||
"RfidStatus": "정상",
|
||||
"RfidDescription": "",
|
||||
"LabelText": "",
|
||||
@@ -568,7 +568,7 @@
|
||||
"Scale": "1, 1",
|
||||
"Opacity": 1.0,
|
||||
"Rotation": 0.0,
|
||||
"DisplayText": "N022 - N022 - [012]"
|
||||
"DisplayText": "N022 - N022 - [0012]"
|
||||
},
|
||||
{
|
||||
"NodeId": "N023",
|
||||
@@ -584,10 +584,10 @@
|
||||
"StationId": "",
|
||||
"StationType": null,
|
||||
"CreatedDate": "2025-09-11T09:41:36.8738794+09:00",
|
||||
"ModifiedDate": "2025-11-06T17:17:28.6401293+09:00",
|
||||
"ModifiedDate": "2025-12-08T11:55:02.2993636+09:00",
|
||||
"IsActive": true,
|
||||
"DisplayColor": "Cyan",
|
||||
"RfidId": "016",
|
||||
"RfidId": "0016",
|
||||
"RfidStatus": "정상",
|
||||
"RfidDescription": "",
|
||||
"LabelText": "",
|
||||
@@ -606,7 +606,7 @@
|
||||
"Scale": "1, 1",
|
||||
"Opacity": 1.0,
|
||||
"Rotation": 0.0,
|
||||
"DisplayText": "N023 - N023 - [016]"
|
||||
"DisplayText": "N023 - N023 - [0016]"
|
||||
},
|
||||
{
|
||||
"NodeId": "N024",
|
||||
@@ -622,10 +622,10 @@
|
||||
"StationId": "",
|
||||
"StationType": null,
|
||||
"CreatedDate": "2025-09-11T09:41:37.4551853+09:00",
|
||||
"ModifiedDate": "2025-11-06T17:17:28.6401293+09:00",
|
||||
"ModifiedDate": "2025-12-08T11:55:00.0899323+09:00",
|
||||
"IsActive": true,
|
||||
"DisplayColor": "Cyan",
|
||||
"RfidId": "017",
|
||||
"RfidId": "0017",
|
||||
"RfidStatus": "정상",
|
||||
"RfidDescription": "",
|
||||
"LabelText": "",
|
||||
@@ -644,7 +644,7 @@
|
||||
"Scale": "1, 1",
|
||||
"Opacity": 1.0,
|
||||
"Rotation": 0.0,
|
||||
"DisplayText": "N024 - N024 - [017]"
|
||||
"DisplayText": "N024 - N024 - [0017]"
|
||||
},
|
||||
{
|
||||
"NodeId": "N025",
|
||||
@@ -660,10 +660,10 @@
|
||||
"StationId": "",
|
||||
"StationType": null,
|
||||
"CreatedDate": "2025-09-11T09:41:38.0142374+09:00",
|
||||
"ModifiedDate": "2025-11-06T17:17:28.6401293+09:00",
|
||||
"ModifiedDate": "2025-12-08T11:54:57.8459375+09:00",
|
||||
"IsActive": true,
|
||||
"DisplayColor": "Cyan",
|
||||
"RfidId": "018",
|
||||
"RfidId": "0018",
|
||||
"RfidStatus": "정상",
|
||||
"RfidDescription": "",
|
||||
"LabelText": "",
|
||||
@@ -682,7 +682,7 @@
|
||||
"Scale": "1, 1",
|
||||
"Opacity": 1.0,
|
||||
"Rotation": 0.0,
|
||||
"DisplayText": "N025 - N025 - [018]"
|
||||
"DisplayText": "N025 - N025 - [0018]"
|
||||
},
|
||||
{
|
||||
"NodeId": "N026",
|
||||
@@ -697,10 +697,10 @@
|
||||
"StationId": "",
|
||||
"StationType": null,
|
||||
"CreatedDate": "2025-09-11T09:41:38.5834487+09:00",
|
||||
"ModifiedDate": "2025-11-06T17:18:12.0236215+09:00",
|
||||
"ModifiedDate": "2025-12-08T11:54:55.6038784+09:00",
|
||||
"IsActive": true,
|
||||
"DisplayColor": "Magenta",
|
||||
"RfidId": "019",
|
||||
"RfidId": "0019",
|
||||
"RfidStatus": "정상",
|
||||
"RfidDescription": "",
|
||||
"LabelText": "",
|
||||
@@ -719,7 +719,7 @@
|
||||
"Scale": "1, 1",
|
||||
"Opacity": 1.0,
|
||||
"Rotation": 0.0,
|
||||
"DisplayText": "N026 - CHARGER #1 - [019]"
|
||||
"DisplayText": "N026 - CHARGER #1 - [0019]"
|
||||
},
|
||||
{
|
||||
"NodeId": "LBL001",
|
||||
@@ -805,10 +805,10 @@
|
||||
"StationId": "",
|
||||
"StationType": null,
|
||||
"CreatedDate": "2025-09-12T17:22:47.8065756+09:00",
|
||||
"ModifiedDate": "2025-11-06T17:17:28.6401293+09:00",
|
||||
"ModifiedDate": "2025-12-08T11:54:28.0157957+09:00",
|
||||
"IsActive": true,
|
||||
"DisplayColor": "Cyan",
|
||||
"RfidId": "037",
|
||||
"RfidId": "0037",
|
||||
"RfidStatus": "정상",
|
||||
"RfidDescription": "",
|
||||
"LabelText": "",
|
||||
@@ -827,7 +827,7 @@
|
||||
"Scale": "1, 1",
|
||||
"Opacity": 1.0,
|
||||
"Rotation": 0.0,
|
||||
"DisplayText": "N015 - [037]"
|
||||
"DisplayText": "N015 - [0037]"
|
||||
},
|
||||
{
|
||||
"NodeId": "N016",
|
||||
@@ -843,10 +843,10 @@
|
||||
"StationId": "",
|
||||
"StationType": null,
|
||||
"CreatedDate": "2025-09-12T17:22:48.6628848+09:00",
|
||||
"ModifiedDate": "2025-11-06T17:17:28.6401293+09:00",
|
||||
"ModifiedDate": "2025-12-08T11:54:26.4584771+09:00",
|
||||
"IsActive": true,
|
||||
"DisplayColor": "Cyan",
|
||||
"RfidId": "036",
|
||||
"RfidId": "0036",
|
||||
"RfidStatus": "정상",
|
||||
"RfidDescription": "",
|
||||
"LabelText": "",
|
||||
@@ -865,7 +865,7 @@
|
||||
"Scale": "1, 1",
|
||||
"Opacity": 1.0,
|
||||
"Rotation": 0.0,
|
||||
"DisplayText": "N016 - [036]"
|
||||
"DisplayText": "N016 - [0036]"
|
||||
},
|
||||
{
|
||||
"NodeId": "N017",
|
||||
@@ -881,10 +881,10 @@
|
||||
"StationId": "",
|
||||
"StationType": null,
|
||||
"CreatedDate": "2025-09-12T17:22:49.8138877+09:00",
|
||||
"ModifiedDate": "2025-11-06T17:17:28.6401293+09:00",
|
||||
"ModifiedDate": "2025-12-08T11:54:24.9652264+09:00",
|
||||
"IsActive": true,
|
||||
"DisplayColor": "Cyan",
|
||||
"RfidId": "035",
|
||||
"RfidId": "0035",
|
||||
"RfidStatus": "정상",
|
||||
"RfidDescription": "",
|
||||
"LabelText": "",
|
||||
@@ -903,7 +903,7 @@
|
||||
"Scale": "1, 1",
|
||||
"Opacity": 1.0,
|
||||
"Rotation": 0.0,
|
||||
"DisplayText": "N017 - [035]"
|
||||
"DisplayText": "N017 - [0035]"
|
||||
},
|
||||
{
|
||||
"NodeId": "N018",
|
||||
@@ -920,10 +920,10 @@
|
||||
"StationId": "",
|
||||
"StationType": null,
|
||||
"CreatedDate": "2025-09-12T17:22:50.6790623+09:00",
|
||||
"ModifiedDate": "2025-11-06T17:17:28.6401293+09:00",
|
||||
"ModifiedDate": "2025-12-08T11:54:23.246666+09:00",
|
||||
"IsActive": true,
|
||||
"DisplayColor": "Cyan",
|
||||
"RfidId": "034",
|
||||
"RfidId": "0034",
|
||||
"RfidStatus": "정상",
|
||||
"RfidDescription": "",
|
||||
"LabelText": "",
|
||||
@@ -942,7 +942,7 @@
|
||||
"Scale": "1, 1",
|
||||
"Opacity": 1.0,
|
||||
"Rotation": 0.0,
|
||||
"DisplayText": "N018 - [034]"
|
||||
"DisplayText": "N018 - [0034]"
|
||||
},
|
||||
{
|
||||
"NodeId": "N005",
|
||||
@@ -959,10 +959,10 @@
|
||||
"StationId": "",
|
||||
"StationType": null,
|
||||
"CreatedDate": "2025-09-12T17:22:51.5267199+09:00",
|
||||
"ModifiedDate": "2025-11-06T17:17:28.6401293+09:00",
|
||||
"ModifiedDate": "2025-12-08T11:54:21.6078399+09:00",
|
||||
"IsActive": true,
|
||||
"DisplayColor": "Cyan",
|
||||
"RfidId": "033",
|
||||
"RfidId": "0033",
|
||||
"RfidStatus": "정상",
|
||||
"RfidDescription": "",
|
||||
"LabelText": "",
|
||||
@@ -981,7 +981,7 @@
|
||||
"Scale": "1, 1",
|
||||
"Opacity": 1.0,
|
||||
"Rotation": 0.0,
|
||||
"DisplayText": "N005 - [033]"
|
||||
"DisplayText": "N005 - [0033]"
|
||||
},
|
||||
{
|
||||
"NodeId": "N020",
|
||||
@@ -998,10 +998,10 @@
|
||||
"StationId": "",
|
||||
"StationType": null,
|
||||
"CreatedDate": "2025-09-12T17:22:52.3666114+09:00",
|
||||
"ModifiedDate": "2025-11-06T17:17:28.6401293+09:00",
|
||||
"ModifiedDate": "2025-12-08T11:54:20.2707567+09:00",
|
||||
"IsActive": true,
|
||||
"DisplayColor": "Cyan",
|
||||
"RfidId": "032",
|
||||
"RfidId": "0032",
|
||||
"RfidStatus": "정상",
|
||||
"RfidDescription": "",
|
||||
"LabelText": "",
|
||||
@@ -1020,7 +1020,7 @@
|
||||
"Scale": "1, 1",
|
||||
"Opacity": 1.0,
|
||||
"Rotation": 0.0,
|
||||
"DisplayText": "N020 - [032]"
|
||||
"DisplayText": "N020 - [0032]"
|
||||
},
|
||||
{
|
||||
"NodeId": "N021",
|
||||
@@ -1036,10 +1036,10 @@
|
||||
"StationId": "",
|
||||
"StationType": null,
|
||||
"CreatedDate": "2025-09-12T17:22:53.0958619+09:00",
|
||||
"ModifiedDate": "2025-11-06T17:17:37.2685386+09:00",
|
||||
"ModifiedDate": "2025-12-08T11:54:18.362104+09:00",
|
||||
"IsActive": true,
|
||||
"DisplayColor": "Cyan",
|
||||
"RfidId": "031",
|
||||
"RfidId": "0031",
|
||||
"RfidStatus": "정상",
|
||||
"RfidDescription": "",
|
||||
"LabelText": "",
|
||||
@@ -1058,7 +1058,7 @@
|
||||
"Scale": "1, 1",
|
||||
"Opacity": 1.0,
|
||||
"Rotation": 0.0,
|
||||
"DisplayText": "N021 - [031]"
|
||||
"DisplayText": "N021 - [0031]"
|
||||
},
|
||||
{
|
||||
"NodeId": "N027",
|
||||
@@ -1073,10 +1073,10 @@
|
||||
"StationId": "",
|
||||
"StationType": null,
|
||||
"CreatedDate": "2025-09-12T17:22:54.7345704+09:00",
|
||||
"ModifiedDate": "2025-11-06T17:10:24.191353+09:00",
|
||||
"ModifiedDate": "2025-12-08T11:54:43.1573737+09:00",
|
||||
"IsActive": true,
|
||||
"DisplayColor": "Green",
|
||||
"RfidId": "041",
|
||||
"RfidId": "0041",
|
||||
"RfidStatus": "정상",
|
||||
"RfidDescription": "",
|
||||
"LabelText": "",
|
||||
@@ -1095,7 +1095,7 @@
|
||||
"Scale": "1, 1",
|
||||
"Opacity": 1.0,
|
||||
"Rotation": 0.0,
|
||||
"DisplayText": "N027 - BUF1 - [041]"
|
||||
"DisplayText": "N027 - BUF1 - [0041]"
|
||||
},
|
||||
{
|
||||
"NodeId": "N028",
|
||||
@@ -1110,10 +1110,10 @@
|
||||
"StationId": "",
|
||||
"StationType": null,
|
||||
"CreatedDate": "2025-09-12T17:22:55.5263512+09:00",
|
||||
"ModifiedDate": "2025-11-06T17:10:29.1638454+09:00",
|
||||
"ModifiedDate": "2025-12-08T11:54:41.5219283+09:00",
|
||||
"IsActive": true,
|
||||
"DisplayColor": "Green",
|
||||
"RfidId": "040",
|
||||
"RfidId": "0040",
|
||||
"RfidStatus": "정상",
|
||||
"RfidDescription": "",
|
||||
"LabelText": "",
|
||||
@@ -1132,7 +1132,7 @@
|
||||
"Scale": "1, 1",
|
||||
"Opacity": 1.0,
|
||||
"Rotation": 0.0,
|
||||
"DisplayText": "N028 - BUF2 - [040]"
|
||||
"DisplayText": "N028 - BUF2 - [0040]"
|
||||
},
|
||||
{
|
||||
"NodeId": "N029",
|
||||
@@ -1147,10 +1147,10 @@
|
||||
"StationId": "",
|
||||
"StationType": null,
|
||||
"CreatedDate": "2025-09-12T17:22:56.6623294+09:00",
|
||||
"ModifiedDate": "2025-11-06T17:10:35.6234001+09:00",
|
||||
"ModifiedDate": "2025-12-08T11:54:39.9945926+09:00",
|
||||
"IsActive": true,
|
||||
"DisplayColor": "Green",
|
||||
"RfidId": "039",
|
||||
"RfidId": "0039",
|
||||
"RfidStatus": "정상",
|
||||
"RfidDescription": "",
|
||||
"LabelText": "",
|
||||
@@ -1169,7 +1169,7 @@
|
||||
"Scale": "1, 1",
|
||||
"Opacity": 1.0,
|
||||
"Rotation": 0.0,
|
||||
"DisplayText": "N029 - BUF3 - [039]"
|
||||
"DisplayText": "N029 - BUF3 - [0039]"
|
||||
},
|
||||
{
|
||||
"NodeId": "N030",
|
||||
@@ -1184,10 +1184,10 @@
|
||||
"StationId": "",
|
||||
"StationType": null,
|
||||
"CreatedDate": "2025-09-12T17:22:57.5510908+09:00",
|
||||
"ModifiedDate": "2025-11-06T17:10:38.6071751+09:00",
|
||||
"ModifiedDate": "2025-12-08T11:54:38.3326835+09:00",
|
||||
"IsActive": true,
|
||||
"DisplayColor": "Green",
|
||||
"RfidId": "038",
|
||||
"RfidId": "0038",
|
||||
"RfidStatus": "정상",
|
||||
"RfidDescription": "",
|
||||
"LabelText": "",
|
||||
@@ -1206,7 +1206,7 @@
|
||||
"Scale": "1, 1",
|
||||
"Opacity": 1.0,
|
||||
"Rotation": 0.0,
|
||||
"DisplayText": "N030 - BUF4 - [038]"
|
||||
"DisplayText": "N030 - BUF4 - [0038]"
|
||||
},
|
||||
{
|
||||
"NodeId": "N031",
|
||||
@@ -1222,10 +1222,10 @@
|
||||
"StationId": "",
|
||||
"StationType": null,
|
||||
"CreatedDate": "2025-09-15T11:18:40.5366059+09:00",
|
||||
"ModifiedDate": "2025-11-06T17:17:28.6401293+09:00",
|
||||
"ModifiedDate": "2025-12-08T11:54:12.0214781+09:00",
|
||||
"IsActive": true,
|
||||
"DisplayColor": "Cyan",
|
||||
"RfidId": "030",
|
||||
"RfidId": "0030",
|
||||
"RfidStatus": "정상",
|
||||
"RfidDescription": "",
|
||||
"LabelText": "",
|
||||
@@ -1244,13 +1244,13 @@
|
||||
"Scale": "1, 1",
|
||||
"Opacity": 1.0,
|
||||
"Rotation": 0.0,
|
||||
"DisplayText": "N031 - [030]"
|
||||
"DisplayText": "N031 - [0030]"
|
||||
}
|
||||
],
|
||||
"Settings": {
|
||||
"BackgroundColorArgb": -14671840,
|
||||
"ShowGrid": false
|
||||
},
|
||||
"CreatedDate": "2025-11-06T17:18:20.440108+09:00",
|
||||
"CreatedDate": "2025-12-08T11:55:04.9060276+09:00",
|
||||
"Version": "1.1"
|
||||
}
|
||||
@@ -75,7 +75,7 @@ namespace Project.Device
|
||||
try
|
||||
{
|
||||
base.Open();
|
||||
return true;
|
||||
return IsOpen;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
@@ -50,6 +50,7 @@ namespace Project
|
||||
|
||||
/// <summary>
|
||||
/// 장치 관리 태스크 종료
|
||||
/// File : /device/_DeviceManagement.cs
|
||||
/// </summary>
|
||||
public void StopDeviceManagementTask()
|
||||
{
|
||||
@@ -173,7 +174,6 @@ namespace Project
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
PUB.log.Add("DeviceManagementWorker", "종료");
|
||||
}
|
||||
|
||||
|
||||
@@ -151,6 +151,7 @@ namespace Project
|
||||
|
||||
public static Boolean bPlayMusic = false;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 사용자 인풋 감지 시간
|
||||
/// </summary>
|
||||
@@ -630,6 +631,18 @@ namespace Project
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 모든 로그를 플러시 합니다.
|
||||
/// </summary>
|
||||
public static void LogFlush()
|
||||
{
|
||||
PUB.log.Flush();
|
||||
PUB.logagv.Flush();
|
||||
PUB.logplc.Flush();
|
||||
PUB.logbms.Flush();
|
||||
PUB.logxbee.Flush();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// AGV 방향 업데이트
|
||||
/// </summary>
|
||||
|
||||
@@ -11,28 +11,21 @@ namespace Project
|
||||
{
|
||||
/// <summary>
|
||||
/// 프로그램을 닫을때 1회 실행되는 함수
|
||||
/// File : /Step/_Step_Close.cs
|
||||
/// </summary>
|
||||
private void _STEP_CLOSING_START(eSMStep step)
|
||||
{
|
||||
PUB.bShutdown = true;
|
||||
//if (PUB.PLC != null) PUB.PLC.Dispose();
|
||||
|
||||
// 장치 관리 태스크 종료
|
||||
StopDeviceManagementTask();
|
||||
|
||||
PUB.AddEEDB("프로그램 종료");
|
||||
PUB.log.Add("Program Close");
|
||||
PUB.log.Flush();
|
||||
PUB.logagv.Flush();
|
||||
PUB.logplc.Flush();
|
||||
PUB.logbms.Flush();
|
||||
PUB.logxbee.Flush();
|
||||
// PUB.sm.Stop();
|
||||
|
||||
PUB.LogFlush();
|
||||
}
|
||||
public StepResult _STEP_CLOSING(eSMStep step, TimeSpan stepTime, TimeSpan seqTime)
|
||||
{
|
||||
|
||||
//############################
|
||||
//#### 사용자 전용 코드
|
||||
//############################
|
||||
|
||||
@@ -221,8 +221,8 @@ namespace Project
|
||||
{
|
||||
//모터방향 확인해서 UI와 AGV클래스에 적용한다
|
||||
var MotDireciton = PUB.AGV.data.Direction == 'B' ? AGVNavigationCore.Models.AgvDirection.Backward : AGVNavigationCore.Models.AgvDirection.Forward;
|
||||
PUB._virtualAGV.SetPosition(CurrentNode, MotDireciton);
|
||||
PUB._mapCanvas.SetAGVPosition(PUB.setting.MCID, CurrentNode, MotDireciton);
|
||||
PUB._virtualAGV.SetPosition(CurrentNode, MotDireciton);
|
||||
}
|
||||
|
||||
//태그를 읽었다면 상태를 바로 전송한다
|
||||
|
||||
@@ -53,9 +53,13 @@ namespace Project
|
||||
PUB.log.AddE($"[{logPrefix}-SetCurrent] 노드정보를 찾을 수 없습니다 RFID:{currTag}");
|
||||
PUB.XBE.SendError(ENIGProtocol.AGVErrorCode.EmptyNode, $"{currTag}");
|
||||
return;
|
||||
}else
|
||||
{
|
||||
PUB.log.AddI($"XBEE:현재위치설정:[{node.RfidId}]{node.NodeId}");
|
||||
}
|
||||
|
||||
PUB._mapCanvas.SetAGVPosition(PUB.setting.MCID, node, PUB._virtualAGV.CurrentDirection);
|
||||
PUB._virtualAGV.SetPosition(node, PUB._virtualAGV.CurrentDirection);
|
||||
}
|
||||
else PUB.log.AddE($"[{logPrefix}-SetCurrent] TagString Lenght Errorr:{data.Length}");
|
||||
break;
|
||||
|
||||
@@ -119,7 +119,7 @@ namespace Project.ViewForm
|
||||
var startNode = PUB._mapNodes.FirstOrDefault(n => n.IsNavigationNode());
|
||||
if (startNode != null)
|
||||
{
|
||||
PUB._virtualAGV = new VirtualAGV("AGV-01", startNode.Position, AgvDirection.Forward);
|
||||
PUB._virtualAGV = new VirtualAGV(PUB.setting.MCID, startNode.Position, AgvDirection.Forward);
|
||||
PUB._virtualAGV.SetPosition(startNode, AgvDirection.Forward);
|
||||
|
||||
// 캔버스에 AGV 리스트 설정
|
||||
|
||||
Reference in New Issue
Block a user