Kaynağa Gözat

1. 조향감지관련 버그

VCS에서 maha로 "setm 3060/LL" 과 같은 조향데이터를 주는데,

VCS의 처음 가동시에 "setm 3060/1" 과 같이 LL, RR 같은 형태가 아닌 1이 들어오는 것으로 추정됩니다.

이 부분 확인 요청합니다.

2. 장애물 감지 패턴 Area 변경.

현재 VCS에서 ohv_map (json)파일에서, "obstacles", "fieldset" 데이터를 읽어가고 있는데,

이렇게 하지 않고 아래와 같이 바꾸고자 합니다.

* 자동모드일 경우,

 Fieldset이 변경될때마다 maha에서 VCS로 "set 3040/<Fieldset Number>" 문자열을 보냄.

 <Fieldset Number>는 0이상 31이하의 정수값을 가짐  (장애물감지센서 UBG-05의 스펙과 동일)

 VCS는 위 문자열에 따라서 UBG-05의 Digitial Input을 조절.

* 그외인 경우 (수동모드나 Fault/Alarm 발생시 등,,,  자동모드이면서 정상인 경우를 제외한 나머지 모든 경우)

 Fieldset Number는 무조건 30번을 사용.

 VCS에서 "set 3040/<Fieldset Number>"에 무관하게 UBG-5에 30번 Area를 사용함.
DESKTOP-Kang 4 yıl önce
ebeveyn
işleme
601a76ffa4

+ 31 - 13
Dev/OHV/VehicleControlSystem/ControlLayer/MQ/ZmqManager.cs

@@ -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])
                                 {

Dosya farkı çok büyük olduğundan ihmal edildi
+ 421 - 350
Dev/OHV/VehicleControlSystem/ControlLayer/Vehicle.cs