속도레벨을 기본 m->l 로 변경, 턴이되어있다면 오류로 처리한다.

This commit is contained in:
backuppc
2026-02-26 10:34:11 +09:00
parent e7cce4c201
commit c067a76462
4 changed files with 68 additions and 33 deletions

View File

@@ -178,6 +178,14 @@ namespace Project
{
Resultclear();
PUB.log.AddI($"XBEE:충전명령수신");
// 버퍼 작업 중일 경우 충전 명령 거부
if (PUB._virtualAGV.Turn != AGVTurn.None)
{
SetRunStepError(ENIGProtocol.AGVErrorCode.BUFFER_NOT_COMPLETE, $"[{logPrefix}-Charger] 버퍼 작업이 완료되지 않아 충전할 수 없습니다.");
return;
}
PUB.NextWorkCmd = ENIGProtocol.AGVCommandHE.Charger;
PUB.sm.SetNewRunStep(ERunStep.GOCHARGE);
}
@@ -226,7 +234,7 @@ namespace Project
//s/w턴이 걸려있다면 이동 불가로한다.(버퍼 작업중이다)
if (PUB._virtualAGV.Turn != AGVTurn.None)
{
SetRunStepError(ENIGProtocol.AGVErrorCode.BUFFER_NOT_COMPLETE, $"[{logPrefix}-Goto] 버퍼작업이 완료되지 않았습니다");
SetRunStepError(ENIGProtocol.AGVErrorCode.BUFFER_NOT_COMPLETE, $"[{logPrefix}-Goto] 버퍼 작업이 완료되지 않았습니다({PUB._virtualAGV.Turn})");
return;
}
@@ -265,25 +273,42 @@ namespace Project
break;
case ENIGProtocol.AGVCommandHE.LTurn180:
PUB.log.Add($"[{logPrefix}-LTurn180]");
PUB.sm.SetNewRunStep(ERunStep.REMOTECONTROL);
PUB.AGV.AGVMoveLeft180Turn();
break;
case ENIGProtocol.AGVCommandHE.RTurn180:
PUB.log.Add($"[{logPrefix}-RTurn180]");
PUB.sm.SetNewRunStep(ERunStep.REMOTECONTROL);
PUB.AGV.AGVMoveRight180Turn();
break;
case ENIGProtocol.AGVCommandHE.LTurn:
PUB.log.Add($"[{logPrefix}-LTurn]");
PUB.sm.SetNewRunStep(ERunStep.REMOTECONTROL);
PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.LT, arDev.Narumi.Speed.Low, arDev.Narumi.Sensor.AllOn);
break;
case ENIGProtocol.AGVCommandHE.RTurn:
PUB.log.Add($"[{logPrefix}-RTurn]");
PUB.sm.SetNewRunStep(ERunStep.REMOTECONTROL);
PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.RT, arDev.Narumi.Speed.Low, arDev.Narumi.Sensor.AllOn);
{
// 버퍼 작업 중일 경우 원격 턴 명령 거부
if (PUB._virtualAGV.Turn != AGVTurn.None)
{
SetRunStepError(ENIGProtocol.AGVErrorCode.BUFFER_NOT_COMPLETE, $"[{logPrefix}-{cmd}] 버퍼 작업 중에는 턴 명령을 수행할 수 없습니다.");
return;
}
if (cmd == ENIGProtocol.AGVCommandHE.LTurn180)
{
PUB.log.Add($"[{logPrefix}-LTurn180]");
PUB.sm.SetNewRunStep(ERunStep.REMOTECONTROL);
PUB.AGV.AGVMoveLeft180Turn();
}
else if (cmd == ENIGProtocol.AGVCommandHE.RTurn180)
{
PUB.log.Add($"[{logPrefix}-RTurn180]");
PUB.sm.SetNewRunStep(ERunStep.REMOTECONTROL);
PUB.AGV.AGVMoveRight180Turn();
}
else if (cmd == ENIGProtocol.AGVCommandHE.LTurn)
{
PUB.log.Add($"[{logPrefix}-LTurn]");
PUB.sm.SetNewRunStep(ERunStep.REMOTECONTROL);
PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.LT, arDev.Narumi.Speed.Low, arDev.Narumi.Sensor.AllOn);
}
else if (cmd == ENIGProtocol.AGVCommandHE.RTurn)
{
PUB.log.Add($"[{logPrefix}-RTurn]");
PUB.sm.SetNewRunStep(ERunStep.REMOTECONTROL);
PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.RT, arDev.Narumi.Speed.Low, arDev.Narumi.Sensor.AllOn);
}
}
break;
case ENIGProtocol.AGVCommandHE.Stop: //stop
PUB.log.Add($"[{logPrefix}-Stop]");
@@ -296,6 +321,14 @@ namespace Project
case ENIGProtocol.AGVCommandHE.Manual: //Manual Move (Direction, speed, runtime)
Resultclear();
// 버퍼 작업 중일 경우 수동 이동 거부
if (PUB._virtualAGV.Turn != AGVTurn.None)
{
SetRunStepError(ENIGProtocol.AGVErrorCode.BUFFER_NOT_COMPLETE, $"[{logPrefix}-Manual] 버퍼 작업 중에는 수동 이동을 할 수 없습니다.");
return;
}
PUB.sm.SetNewRunStep(ERunStep.REMOTECONTROL);
var Direction = data[1]; //0=back, 1=forward, 2=left, 3=right
var Speed = data[2]; //0=slow, 1=normal, 2=fast
@@ -318,6 +351,14 @@ namespace Project
case ENIGProtocol.AGVCommandHE.AutoMove:
Resultclear();
// 버퍼 작업 중일 경우 자동 이동 거부
if (PUB._virtualAGV.Turn != AGVTurn.None)
{
SetRunStepError(ENIGProtocol.AGVErrorCode.BUFFER_NOT_COMPLETE, $"[{logPrefix}-AutoMove] 버퍼 작업 중에는 이동할 수 없습니다.");
return;
}
PUB.sm.SetNewRunStep(ERunStep.REMOTECONTROL);
var MotDirection = data[1]; //0=back, 1=forward
var MagDirection = data[2]; //0=straight, 1=left, 2=right