속도레벨을 기본 m->l 로 변경, 턴이되어있다면 오류로 처리한다.
This commit is contained in:
@@ -74,7 +74,7 @@ namespace AGVNavigationCore.Models
|
|||||||
|
|
||||||
[Category("주행 설정")]
|
[Category("주행 설정")]
|
||||||
[Description("노드 통과 시 제한 속도입니다.")]
|
[Description("노드 통과 시 제한 속도입니다.")]
|
||||||
public SpeedLevel SpeedLimit { get; set; } = SpeedLevel.M;
|
public SpeedLevel SpeedLimit { get; set; } = SpeedLevel.L;
|
||||||
|
|
||||||
[Category("노드 설정")]
|
[Category("노드 설정")]
|
||||||
[Description("장비 ID 또는 별칭입니다.")]
|
[Description("장비 ID 또는 별칭입니다.")]
|
||||||
|
|||||||
@@ -178,6 +178,14 @@ namespace Project
|
|||||||
{
|
{
|
||||||
Resultclear();
|
Resultclear();
|
||||||
PUB.log.AddI($"XBEE:충전명령수신");
|
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.NextWorkCmd = ENIGProtocol.AGVCommandHE.Charger;
|
||||||
PUB.sm.SetNewRunStep(ERunStep.GOCHARGE);
|
PUB.sm.SetNewRunStep(ERunStep.GOCHARGE);
|
||||||
}
|
}
|
||||||
@@ -226,7 +234,7 @@ namespace Project
|
|||||||
//s/w턴이 걸려있다면 이동 불가로한다.(버퍼 작업중이다)
|
//s/w턴이 걸려있다면 이동 불가로한다.(버퍼 작업중이다)
|
||||||
if (PUB._virtualAGV.Turn != AGVTurn.None)
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -265,25 +273,42 @@ namespace Project
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case ENIGProtocol.AGVCommandHE.LTurn180:
|
case ENIGProtocol.AGVCommandHE.LTurn180:
|
||||||
PUB.log.Add($"[{logPrefix}-LTurn180]");
|
|
||||||
PUB.sm.SetNewRunStep(ERunStep.REMOTECONTROL);
|
|
||||||
PUB.AGV.AGVMoveLeft180Turn();
|
|
||||||
break;
|
|
||||||
case ENIGProtocol.AGVCommandHE.RTurn180:
|
case ENIGProtocol.AGVCommandHE.RTurn180:
|
||||||
PUB.log.Add($"[{logPrefix}-RTurn180]");
|
|
||||||
PUB.sm.SetNewRunStep(ERunStep.REMOTECONTROL);
|
|
||||||
PUB.AGV.AGVMoveRight180Turn();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case ENIGProtocol.AGVCommandHE.LTurn:
|
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:
|
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;
|
break;
|
||||||
case ENIGProtocol.AGVCommandHE.Stop: //stop
|
case ENIGProtocol.AGVCommandHE.Stop: //stop
|
||||||
PUB.log.Add($"[{logPrefix}-Stop]");
|
PUB.log.Add($"[{logPrefix}-Stop]");
|
||||||
@@ -296,6 +321,14 @@ namespace Project
|
|||||||
|
|
||||||
case ENIGProtocol.AGVCommandHE.Manual: //Manual Move (Direction, speed, runtime)
|
case ENIGProtocol.AGVCommandHE.Manual: //Manual Move (Direction, speed, runtime)
|
||||||
Resultclear();
|
Resultclear();
|
||||||
|
|
||||||
|
// 버퍼 작업 중일 경우 수동 이동 거부
|
||||||
|
if (PUB._virtualAGV.Turn != AGVTurn.None)
|
||||||
|
{
|
||||||
|
SetRunStepError(ENIGProtocol.AGVErrorCode.BUFFER_NOT_COMPLETE, $"[{logPrefix}-Manual] 버퍼 작업 중에는 수동 이동을 할 수 없습니다.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
PUB.sm.SetNewRunStep(ERunStep.REMOTECONTROL);
|
PUB.sm.SetNewRunStep(ERunStep.REMOTECONTROL);
|
||||||
var Direction = data[1]; //0=back, 1=forward, 2=left, 3=right
|
var Direction = data[1]; //0=back, 1=forward, 2=left, 3=right
|
||||||
var Speed = data[2]; //0=slow, 1=normal, 2=fast
|
var Speed = data[2]; //0=slow, 1=normal, 2=fast
|
||||||
@@ -318,6 +351,14 @@ namespace Project
|
|||||||
|
|
||||||
case ENIGProtocol.AGVCommandHE.AutoMove:
|
case ENIGProtocol.AGVCommandHE.AutoMove:
|
||||||
Resultclear();
|
Resultclear();
|
||||||
|
|
||||||
|
// 버퍼 작업 중일 경우 자동 이동 거부
|
||||||
|
if (PUB._virtualAGV.Turn != AGVTurn.None)
|
||||||
|
{
|
||||||
|
SetRunStepError(ENIGProtocol.AGVErrorCode.BUFFER_NOT_COMPLETE, $"[{logPrefix}-AutoMove] 버퍼 작업 중에는 이동할 수 없습니다.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
PUB.sm.SetNewRunStep(ERunStep.REMOTECONTROL);
|
PUB.sm.SetNewRunStep(ERunStep.REMOTECONTROL);
|
||||||
var MotDirection = data[1]; //0=back, 1=forward
|
var MotDirection = data[1]; //0=back, 1=forward
|
||||||
var MagDirection = data[2]; //0=straight, 1=left, 2=right
|
var MagDirection = data[2]; //0=straight, 1=left, 2=right
|
||||||
|
|||||||
@@ -323,11 +323,6 @@ namespace arDev
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#region [수신] TAG(태그정보) 분석
|
#region [수신] TAG(태그정보) 분석
|
||||||
|
|
||||||
System.Text.Encoding encoding = System.Text.Encoding.Default;
|
System.Text.Encoding encoding = System.Text.Encoding.Default;
|
||||||
@@ -357,7 +352,6 @@ namespace arDev
|
|||||||
old_TagString = tagnostr;
|
old_TagString = tagnostr;
|
||||||
DataReceive?.Invoke(this, new DataEventArgs(DataType.TAG));
|
DataReceive?.Invoke(this, new DataEventArgs(DataType.TAG));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
WriteData(MakeCheckSum("ACKTAG"));
|
WriteData(MakeCheckSum("ACKTAG"));
|
||||||
|
|||||||
18
NewMap.json
18
NewMap.json
@@ -156,7 +156,7 @@
|
|||||||
"CanTurnLeft": false,
|
"CanTurnLeft": false,
|
||||||
"CanTurnRight": false,
|
"CanTurnRight": false,
|
||||||
"DisableCross": false,
|
"DisableCross": false,
|
||||||
"SpeedLimit": 0,
|
"SpeedLimit": 1,
|
||||||
"AliasName": "",
|
"AliasName": "",
|
||||||
"IsActive": true,
|
"IsActive": true,
|
||||||
"RfidId": 9,
|
"RfidId": 9,
|
||||||
@@ -180,7 +180,7 @@
|
|||||||
"CanTurnLeft": false,
|
"CanTurnLeft": false,
|
||||||
"CanTurnRight": false,
|
"CanTurnRight": false,
|
||||||
"DisableCross": false,
|
"DisableCross": false,
|
||||||
"SpeedLimit": 0,
|
"SpeedLimit": 1,
|
||||||
"AliasName": "",
|
"AliasName": "",
|
||||||
"IsActive": true,
|
"IsActive": true,
|
||||||
"RfidId": 8,
|
"RfidId": 8,
|
||||||
@@ -208,7 +208,7 @@
|
|||||||
"CanTurnLeft": false,
|
"CanTurnLeft": false,
|
||||||
"CanTurnRight": false,
|
"CanTurnRight": false,
|
||||||
"DisableCross": false,
|
"DisableCross": false,
|
||||||
"SpeedLimit": 0,
|
"SpeedLimit": 1,
|
||||||
"AliasName": "",
|
"AliasName": "",
|
||||||
"IsActive": true,
|
"IsActive": true,
|
||||||
"RfidId": 7,
|
"RfidId": 7,
|
||||||
@@ -279,7 +279,7 @@
|
|||||||
"CanTurnLeft": true,
|
"CanTurnLeft": true,
|
||||||
"CanTurnRight": true,
|
"CanTurnRight": true,
|
||||||
"DisableCross": false,
|
"DisableCross": false,
|
||||||
"SpeedLimit": 1,
|
"SpeedLimit": 0,
|
||||||
"AliasName": "",
|
"AliasName": "",
|
||||||
"IsActive": true,
|
"IsActive": true,
|
||||||
"RfidId": 91,
|
"RfidId": 91,
|
||||||
@@ -303,7 +303,7 @@
|
|||||||
"CanTurnLeft": false,
|
"CanTurnLeft": false,
|
||||||
"CanTurnRight": false,
|
"CanTurnRight": false,
|
||||||
"DisableCross": false,
|
"DisableCross": false,
|
||||||
"SpeedLimit": 1,
|
"SpeedLimit": 0,
|
||||||
"AliasName": "BUFFER5",
|
"AliasName": "BUFFER5",
|
||||||
"IsActive": true,
|
"IsActive": true,
|
||||||
"RfidId": 35,
|
"RfidId": 35,
|
||||||
@@ -327,7 +327,7 @@
|
|||||||
"CanTurnLeft": false,
|
"CanTurnLeft": false,
|
||||||
"CanTurnRight": false,
|
"CanTurnRight": false,
|
||||||
"DisableCross": false,
|
"DisableCross": false,
|
||||||
"SpeedLimit": 1,
|
"SpeedLimit": 0,
|
||||||
"AliasName": "BUFFER6",
|
"AliasName": "BUFFER6",
|
||||||
"IsActive": true,
|
"IsActive": true,
|
||||||
"RfidId": 36,
|
"RfidId": 36,
|
||||||
@@ -355,7 +355,7 @@
|
|||||||
"CanTurnLeft": true,
|
"CanTurnLeft": true,
|
||||||
"CanTurnRight": true,
|
"CanTurnRight": true,
|
||||||
"DisableCross": false,
|
"DisableCross": false,
|
||||||
"SpeedLimit": 1,
|
"SpeedLimit": 0,
|
||||||
"AliasName": "TURN",
|
"AliasName": "TURN",
|
||||||
"IsActive": true,
|
"IsActive": true,
|
||||||
"RfidId": 3,
|
"RfidId": 3,
|
||||||
@@ -461,7 +461,7 @@
|
|||||||
"CanTurnLeft": false,
|
"CanTurnLeft": false,
|
||||||
"CanTurnRight": false,
|
"CanTurnRight": false,
|
||||||
"DisableCross": true,
|
"DisableCross": true,
|
||||||
"SpeedLimit": 1,
|
"SpeedLimit": 0,
|
||||||
"AliasName": "",
|
"AliasName": "",
|
||||||
"IsActive": true,
|
"IsActive": true,
|
||||||
"RfidId": 20,
|
"RfidId": 20,
|
||||||
@@ -790,6 +790,6 @@
|
|||||||
"BackgroundColorArgb": -14671840,
|
"BackgroundColorArgb": -14671840,
|
||||||
"ShowGrid": false
|
"ShowGrid": false
|
||||||
},
|
},
|
||||||
"CreatedDate": "2026-02-25T11:11:11.6577105+09:00",
|
"CreatedDate": "2026-02-26T09:50:44.0545961+09:00",
|
||||||
"Version": "1.3"
|
"Version": "1.3"
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user