Quellcode durchsuchen

Merge branch 'master' of http://unque781.synology.me:3000/GSI/OHV

# Conflicts:
#	Dev/OHV/VehicleControlSystem/ControlLayer/MQ/ZmqManager.cs
jangwon vor 4 Jahren
Ursprung
Commit
e6f42231fc

+ 2 - 2
Dev/OHV/OHV.Module.ListViews/Views/CommandListView.xaml

@@ -91,7 +91,7 @@
             </DataGrid>
             </DataGrid>
 
 
             <Grid Background="#263238" Grid.Column="1">
             <Grid Background="#263238" Grid.Column="1">
-                <!--<Grid.RowDefinitions>
+                <Grid.RowDefinitions>
                     <RowDefinition Height="30"/>
                     <RowDefinition Height="30"/>
                     <RowDefinition Height="140"/>
                     <RowDefinition Height="140"/>
                     <RowDefinition Height="*"/>
                     <RowDefinition Height="*"/>
@@ -129,7 +129,7 @@
                 <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Grid.Row="2" VerticalAlignment="Top" Margin="0,15,0,0">
                 <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Grid.Row="2" VerticalAlignment="Top" Margin="0,15,0,0">
                     <Button Margin="0,0,10,0" Height="45" Content="Add" Command="{Binding SaveCommand}" Width="100" IsEnabled="{c:Binding 'MachineMode == Shared:eMachineMode.LocalMode'}" />
                     <Button Margin="0,0,10,0" Height="45" Content="Add" Command="{Binding SaveCommand}" Width="100" IsEnabled="{c:Binding 'MachineMode == Shared:eMachineMode.LocalMode'}" />
                     <Button Height="45" Content="Delete" Command="{Binding DeleteCommand}" Width="100"/>
                     <Button Height="45" Content="Delete" Command="{Binding DeleteCommand}" Width="100"/>
-                </StackPanel>-->
+                </StackPanel>
             </Grid>
             </Grid>
 
 
 
 

+ 1 - 1
Dev/OHV/OHV.Vehicle/OHV.Vehicle.csproj

@@ -65,7 +65,7 @@
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Remote1|AnyCPU'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Remote1|AnyCPU'">
     <DebugSymbols>true</DebugSymbols>
     <DebugSymbols>true</DebugSymbols>
-    <OutputPath>\\192.168.127.103\VCS\</OutputPath>
+    <OutputPath>\\192.168.127.106\VCS\</OutputPath>
     <DefineConstants>TRACE;DEBUG</DefineConstants>
     <DefineConstants>TRACE;DEBUG</DefineConstants>
     <DebugType>full</DebugType>
     <DebugType>full</DebugType>
     <PlatformTarget>AnyCPU</PlatformTarget>
     <PlatformTarget>AnyCPU</PlatformTarget>

+ 37 - 20
Dev/OHV/VehicleControlSystem/ControlLayer/MQ/ZmqManager.cs

@@ -139,6 +139,10 @@ namespace VehicleControlSystem.ControlLayer.MQ
             }
             }
         }
         }
 
 
+        /// <summary>
+        /// 현재 SegmentID 를 받아서 장애물 감지 센서의 패턴을 변경한다.
+        /// NS2 Line 확장시 사용 안함 패턴 번호를 주행에서 받아서 바로 적용.
+        /// </summary>
         private int segmentID;
         private int segmentID;
         public 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;
         private double frontLoadFactor;
         public double FrontLoadFactor
         public double FrontLoadFactor
         {
         {
@@ -363,7 +378,13 @@ namespace VehicleControlSystem.ControlLayer.MQ
                 this.OperationMode = GetOperationMode();
                 this.OperationMode = GetOperationMode();
                 this.DriveState = this.GetCurrentDriveState();
                 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.LinearSpeed = this.GetDriveLinerSpeed();
                 this.CurveSpeed = this.GetDriveCurveSpeed();
                 this.CurveSpeed = this.GetDriveCurveSpeed();
@@ -415,8 +436,7 @@ namespace VehicleControlSystem.ControlLayer.MQ
             this.pubQueue.Enqueue(msg);
             this.pubQueue.Enqueue(msg);
         }
         }
 
 
-        #region Receive Event  
-
+        #region Receive Event
         private void Rsp_ReceiveReady(object sender, NetMQSocketEventArgs e)
         private void Rsp_ReceiveReady(object sender, NetMQSocketEventArgs e)
         {
         {
             try
             try
@@ -434,20 +454,17 @@ namespace VehicleControlSystem.ControlLayer.MQ
 
 
                     switch (v[0])
                     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]}");
                                 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;
                                 eSteerCommand command = eSteerCommand.None;
                                 switch (v[1])
                                 switch (v[1])
                                 {
                                 {
@@ -494,7 +511,7 @@ namespace VehicleControlSystem.ControlLayer.MQ
                             }
                             }
                             break;
                             break;
 
 
-                        case "111":  
+                        case "111":
                             {
                             {
                                 if (v[1].Equals("1"))
                                 if (v[1].Equals("1"))
                                     OperationMode = eOperatationMode.AutoMode;
                                     OperationMode = eOperatationMode.AutoMode;
@@ -508,7 +525,7 @@ namespace VehicleControlSystem.ControlLayer.MQ
                             }
                             }
                             break;
                             break;
 
 
-                        case "4012":  
+                        case "4012":
                             if (v[1].Equals("3"))
                             if (v[1].Equals("3"))
                                 IsDriveMoving = true;
                                 IsDriveMoving = true;
                             else
                             else
@@ -536,7 +553,7 @@ namespace VehicleControlSystem.ControlLayer.MQ
                             }
                             }
                             break;
                             break;
 
 
-                        case "3009":  
+                        case "3009":
                             {
                             {
                                 int iV = 0;
                                 int iV = 0;
 
 
@@ -635,7 +652,7 @@ namespace VehicleControlSystem.ControlLayer.MQ
 
 
                 switch (ret[0])
                 switch (ret[0])
                 {
                 {
-                    case "7028":  
+                    case "7028":
                         {
                         {
                             var ll = Convert.ToDouble(vl[0]);
                             var ll = Convert.ToDouble(vl[0]);
                             this.FrontRPM = Math.Truncate(ll * 100) / 100;
                             this.FrontRPM = Math.Truncate(ll * 100) / 100;
@@ -644,7 +661,7 @@ namespace VehicleControlSystem.ControlLayer.MQ
                         }
                         }
                         break;
                         break;
 
 
-                    case "7030":  
+                    case "7030":
                         {
                         {
                             var ll = Convert.ToDouble(vl[0]);
                             var ll = Convert.ToDouble(vl[0]);
                             this.FrontLoadFactor = Math.Truncate(ll * 100) / 100;
                             this.FrontLoadFactor = Math.Truncate(ll * 100) / 100;

+ 1 - 1
Dev/OHV/VehicleControlSystem/ControlLayer/Motion/GSIDrive.cs

@@ -295,7 +295,7 @@ namespace VehicleControlSystem.ControlLayer.Drive
             if (steeringState == eSteeringState.None ) //현재 가 None 이면 기다렸다가 다시 확인 필요.
             if (steeringState == eSteeringState.None ) //현재 가 None 이면 기다렸다가 다시 확인 필요.
                 LockUtils.Wait( 500 );
                 LockUtils.Wait( 500 );
 
 
-            zmq.SetCurrentSteeringState( steering.GetSteeringState() );
+            //zmq.SetCurrentSteeringState( steering.GetSteeringState() );
             LockUtils.Wait( 200 );
             LockUtils.Wait( 200 );
 
 
             StringBuilder sb = new StringBuilder();
             StringBuilder sb = new StringBuilder();

Datei-Diff unterdrückt, da er zu groß ist
+ 443 - 354
Dev/OHV/VehicleControlSystem/ControlLayer/Vehicle.cs


+ 10 - 6
Dev/OHV/VehicleControlSystem/VCSystem.cs

@@ -1,5 +1,4 @@
-//#define TEST
-using System;
+using System;
 using System.Collections.Generic;
 using System.Collections.Generic;
 using System.IO;
 using System.IO;
 using System.Linq;
 using System.Linq;
@@ -708,10 +707,10 @@ namespace VehicleControlSystem
             GUIMessageEventArgs reply;
             GUIMessageEventArgs reply;
             if (msg.MessageKey.Equals(MessageKey.AutoMode))
             if (msg.MessageKey.Equals(MessageKey.AutoMode))
             {
             {
-#if TEST
-                if (!QuartzUtils.StopSchedule("SteerTest"))
-                    return;
-#endif
+//#if TEST
+//                if (!QuartzUtils.StopSchedule("SteerTest"))
+//                    return;
+//#endif
 
 
                 if (!this.ZmqManager.IsReqConnected)
                 if (!this.ZmqManager.IsReqConnected)
                 {
                 {
@@ -741,6 +740,11 @@ namespace VehicleControlSystem
                 if (result != ConstInt.EXECUTE_SUCCESS)
                 if (result != ConstInt.EXECUTE_SUCCESS)
                 {
                 {
                     var al = this.Alarms.FirstOrDefault(a => a.AlarmId == result);
                     var al = this.Alarms.FirstOrDefault(a => a.AlarmId == result);
+                    if (al == null)
+                        al = new Alarm()
+                        {
+                            Text = "Not Define"
+                        };
                     reply = new GUIMessageEventArgs { Kind = GUIMessageEventArgs.eGUIMessageKind.RspVehicleModeChange, Result = FluentResults.Results.Fail(new Error(al.Text)), MessageKey = MessageKey.ManualMode };
                     reply = new GUIMessageEventArgs { Kind = GUIMessageEventArgs.eGUIMessageKind.RspVehicleModeChange, Result = FluentResults.Results.Fail(new Error(al.Text)), MessageKey = MessageKey.ManualMode };
                     GUIMessageEventPublish(reply);
                     GUIMessageEventPublish(reply);
                     return;
                     return;