시뮬레이터에서 맵 로드시에 맵에 배경색이 있다면 적용 하게 함

Xbee Open 시에 return값 변경 return true -> return isopen
LogFlushAll 함수추가 (_step_close 에서 사용)
This commit is contained in:
backuppc
2025-12-08 15:12:41 +09:00
parent 98d638cd9a
commit 455e18f427
13 changed files with 175 additions and 127 deletions

View File

@@ -75,7 +75,7 @@ namespace Project.Device
try
{
base.Open();
return true;
return IsOpen;
}
catch (Exception ex)
{

View File

@@ -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", "종료");
}

View File

@@ -150,6 +150,7 @@ namespace Project
public static AR.Log log, logagv, logplc, logbms, logxbee;
public static Boolean bPlayMusic = false;
/// <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>

View File

@@ -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)
{
//############################
//#### 사용자 전용 코드
//############################

View File

@@ -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);
}
//태그를 읽었다면 상태를 바로 전송한다

View File

@@ -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;

View File

@@ -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 리스트 설정