|
|
@@ -139,6 +139,10 @@ namespace VehicleControlSystem.ControlLayer.MQ
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 현재 SegmentID 를 받아서 장애물 감지 센서의 패턴을 변경한다.
|
|
|
+ /// NS2 Line 확장시 사용 안함 패턴 번호를 주행에서 받아서 바로 적용.
|
|
|
+ /// </summary>
|
|
|
private int segmentID;
|
|
|
public int SegmentID
|
|
|
{
|
|
|
@@ -156,6 +160,17 @@ namespace VehicleControlSystem.ControlLayer.MQ
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 주행 측으로 받은 장애물 감지 패턴을 외부로 전달 한다.
|
|
|
+ /// Vehicle Class 에서 처리 하기위함.
|
|
|
+ /// </summary>
|
|
|
+ private int reqObstaclesPattern;
|
|
|
+ public int ReqObstaclesPattern
|
|
|
+ {
|
|
|
+ get { return reqObstaclesPattern; }
|
|
|
+ set { SetField(ref this.reqObstaclesPattern, value); }
|
|
|
+ }
|
|
|
+
|
|
|
private double frontLoadFactor;
|
|
|
public double FrontLoadFactor
|
|
|
{
|
|
|
@@ -363,7 +378,13 @@ namespace VehicleControlSystem.ControlLayer.MQ
|
|
|
this.OperationMode = GetOperationMode();
|
|
|
this.DriveState = this.GetCurrentDriveState();
|
|
|
|
|
|
- SetCurrentSteeringState(this.steering.GetSteeringState());
|
|
|
+ var frontLeft = this.iO.IsOn("IN_F_STEERING_DETECT_LEFT");
|
|
|
+ var frontRight = this.iO.IsOn("IN_F_STEERING_DETECT_RIGHT");
|
|
|
+ var rearLeft = this.iO.IsOn("IN_R_STEERING_DETECT_LEFT");
|
|
|
+ var rearRight = this.iO.IsOn("IN_R_STEERING_DETECT_RIGHT");
|
|
|
+
|
|
|
+ this.SetSteerDetectSensorState(frontLeft, frontRight, rearLeft, rearRight);
|
|
|
+ //SetCurrentSteeringState(this.steering.GetSteeringState());
|
|
|
|
|
|
this.LinearSpeed = this.GetDriveLinerSpeed();
|
|
|
this.CurveSpeed = this.GetDriveCurveSpeed();
|
|
|
@@ -433,20 +454,17 @@ namespace VehicleControlSystem.ControlLayer.MQ
|
|
|
|
|
|
switch (v[0])
|
|
|
{
|
|
|
- case "3050":
|
|
|
+ case "3040":
|
|
|
+ {
|
|
|
+ int iV = 0;
|
|
|
+ int.TryParse(v[1], out iV);
|
|
|
+ this.ReqObstaclesPattern = iV;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
+ case "3050": //! Steer Control
|
|
|
{
|
|
|
logger.D($"[Steering_Rep] - 3050/{v[0]}");
|
|
|
- //switch (v[1])
|
|
|
- //{
|
|
|
- // case "1":
|
|
|
- // this.RequestSteering = eSteeringState.Left;
|
|
|
- // break;
|
|
|
- // case "-1":
|
|
|
- // this.RequestSteering = eSteeringState.Right;
|
|
|
- // break;
|
|
|
- // default:
|
|
|
- // break;
|
|
|
- //}
|
|
|
eSteerCommand command = eSteerCommand.None;
|
|
|
switch (v[1])
|
|
|
{
|