속도레벨을 기본 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

@@ -74,7 +74,7 @@ namespace AGVNavigationCore.Models
[Category("주행 설정")]
[Description("노드 통과 시 제한 속도입니다.")]
public SpeedLevel SpeedLimit { get; set; } = SpeedLevel.M;
public SpeedLevel SpeedLimit { get; set; } = SpeedLevel.L;
[Category("노드 설정")]
[Description("장비 ID 또는 별칭입니다.")]

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:
case ENIGProtocol.AGVCommandHE.RTurn180:
case ENIGProtocol.AGVCommandHE.LTurn:
case ENIGProtocol.AGVCommandHE.RTurn:
{
// 버퍼 작업 중일 경우 원격 턴 명령 거부
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();
break;
case ENIGProtocol.AGVCommandHE.RTurn180:
}
else if (cmd == ENIGProtocol.AGVCommandHE.RTurn180)
{
PUB.log.Add($"[{logPrefix}-RTurn180]");
PUB.sm.SetNewRunStep(ERunStep.REMOTECONTROL);
PUB.AGV.AGVMoveRight180Turn();
break;
case ENIGProtocol.AGVCommandHE.LTurn:
}
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);
break;
case ENIGProtocol.AGVCommandHE.RTurn:
}
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

View File

@@ -323,11 +323,6 @@ namespace arDev
#endregion
#region [] TAG()
System.Text.Encoding encoding = System.Text.Encoding.Default;
@@ -357,7 +352,6 @@ namespace arDev
old_TagString = tagnostr;
DataReceive?.Invoke(this, new DataEventArgs(DataType.TAG));
}
}
WriteData(MakeCheckSum("ACKTAG"));

View File

@@ -156,7 +156,7 @@
"CanTurnLeft": false,
"CanTurnRight": false,
"DisableCross": false,
"SpeedLimit": 0,
"SpeedLimit": 1,
"AliasName": "",
"IsActive": true,
"RfidId": 9,
@@ -180,7 +180,7 @@
"CanTurnLeft": false,
"CanTurnRight": false,
"DisableCross": false,
"SpeedLimit": 0,
"SpeedLimit": 1,
"AliasName": "",
"IsActive": true,
"RfidId": 8,
@@ -208,7 +208,7 @@
"CanTurnLeft": false,
"CanTurnRight": false,
"DisableCross": false,
"SpeedLimit": 0,
"SpeedLimit": 1,
"AliasName": "",
"IsActive": true,
"RfidId": 7,
@@ -279,7 +279,7 @@
"CanTurnLeft": true,
"CanTurnRight": true,
"DisableCross": false,
"SpeedLimit": 1,
"SpeedLimit": 0,
"AliasName": "",
"IsActive": true,
"RfidId": 91,
@@ -303,7 +303,7 @@
"CanTurnLeft": false,
"CanTurnRight": false,
"DisableCross": false,
"SpeedLimit": 1,
"SpeedLimit": 0,
"AliasName": "BUFFER5",
"IsActive": true,
"RfidId": 35,
@@ -327,7 +327,7 @@
"CanTurnLeft": false,
"CanTurnRight": false,
"DisableCross": false,
"SpeedLimit": 1,
"SpeedLimit": 0,
"AliasName": "BUFFER6",
"IsActive": true,
"RfidId": 36,
@@ -355,7 +355,7 @@
"CanTurnLeft": true,
"CanTurnRight": true,
"DisableCross": false,
"SpeedLimit": 1,
"SpeedLimit": 0,
"AliasName": "TURN",
"IsActive": true,
"RfidId": 3,
@@ -461,7 +461,7 @@
"CanTurnLeft": false,
"CanTurnRight": false,
"DisableCross": true,
"SpeedLimit": 1,
"SpeedLimit": 0,
"AliasName": "",
"IsActive": true,
"RfidId": 20,
@@ -790,6 +790,6 @@
"BackgroundColorArgb": -14671840,
"ShowGrid": false
},
"CreatedDate": "2026-02-25T11:11:11.6577105+09:00",
"CreatedDate": "2026-02-26T09:50:44.0545961+09:00",
"Version": "1.3"
}