Browse Source

DryRun Random Move Command 생성 기능 추가.

DESKTOP-Kang 6 years ago
parent
commit
61a3c1e1ee

+ 2 - 5
Dev/OHV/VehicleControlSystem/ControlLayer/MQ/ZmqManager.cs

@@ -34,7 +34,6 @@ namespace VehicleControlSystem.ControlLayer.MQ
         NetMQPoller subPoller = null;
         NetMQMonitor monitor = null;
 
-        Vehicle vehicle = null;
         BMUManager bMUManager = null;
         Steering steering = null;
 
@@ -147,12 +146,11 @@ namespace VehicleControlSystem.ControlLayer.MQ
 
         #endregion
 
-        public ZmqManager( Vehicle vehicle, BMUManager bMU, Steering steering )
+        public ZmqManager( BMUManager bMU, Steering steering )
         {
             NetMQ.NetMQConfig.Cleanup();
 
             this.bMUManager = bMU;
-            this.vehicle = vehicle;
             this.steering = steering;
         }
 
@@ -191,7 +189,6 @@ namespace VehicleControlSystem.ControlLayer.MQ
             this.subPoller = new NetMQPoller { this.sub };
             this.subPoller.RunAsync();
 
-            //this.vehicle.PropertyChanged += Vehicle_PropertyChanged;
             this.bMUManager.OnChangedReceivedData += BMUManager_OnChangedReceivedData;
         }
 
@@ -309,7 +306,7 @@ namespace VehicleControlSystem.ControlLayer.MQ
                     {
                         case "3060":
                             {
-                                switch ( this.vehicle.GetESteeringState() )
+                                switch ( this.steering.GetSteeringState() )
                                 {
                                     case eSteeringState.None:
                                         rep.SendMoreFrame( "getm" ).SendFrame( $"ok/{v[0]}/0" );

+ 1 - 1
Dev/OHV/VehicleControlSystem/Managers/HostManager.cs

@@ -25,7 +25,7 @@ namespace VehicleControlSystem.Managers
 
         OHVConnector.Manager manager = new OHVConnector.Manager();
         IEventAggregator eventAggregator = null;
-        Vehicle vehicle;
+        Vehicle vehicle = null;
         SqliteManager sql = null;
 
         public HostManager( IEventAggregator ea, Vehicle vehicle, SqliteManager sqlite, AutoManager autoManager, Scheduler scheduler )

+ 25 - 1
Dev/OHV/VehicleControlSystem/Managers/Scheduler.cs

@@ -37,6 +37,8 @@ namespace VehicleControlSystem.Managers
 
         public event Action<Command> OnMaualAddedCommand;
 
+        public bool IsCreateDryRunCommand { get; set; } = false;
+
         public Scheduler( IEventAggregator ea, AutoManager autoManager, SqliteManager sqlite )
         {
             this.CommandsList = new List<Command>();
@@ -123,7 +125,12 @@ namespace VehicleControlSystem.Managers
                                         break;
                                     case OHV.Common.Shareds.eAutoModeState.Run:
                                         Command cmd = sql.CommandDAL.GetAll().FirstOrDefault();
-                                        if ( cmd == null ) continue;
+                                        if ( cmd == null )
+                                        {
+                                            this.DryRunTest();
+                                            continue;
+                                        }
+                                            
                                         DoWork( cmd );
                                         break;
                                     case OHV.Common.Shareds.eAutoModeState.Stop:
@@ -147,6 +154,23 @@ namespace VehicleControlSystem.Managers
             logger.D("[Scheduler] - Command Thread Dispose");
         }
 
+        void DryRunTest()
+        {
+            if ( !IsCreateDryRunCommand )
+                return;
+
+            var ram = NumUtils.Random( 0, RouteManager.Instance.Equipments.Count - 1 );
+            var target = RouteManager.Instance.Equipments[ram];
+            if ( target.Name.Equals( "CHARGING_01" ) || target.pointID == 17 )
+                return;
+
+            var targetPoint = target.pointID.ToString();
+            Command cmd = new Command() { TargetID = targetPoint, Type = eCommandType.Move };
+            cmd.ByWho = eCommandByWho.LocalSystem;
+
+            this.AddCommand( cmd );
+        }
+
         private void DoWork( Command cmd )
         {
             switch ( cmd.State )

+ 3 - 2
Dev/OHV/VehicleControlSystem/VCSystem.cs

@@ -92,7 +92,7 @@ namespace VehicleControlSystem
             this.steering = new Steering( this.IO, this.sql, this.eventAggregator );
 
             //ZeroMQ
-            this.zmqManager = new ZmqManager( vehicle, this.bMUManager, this.steering );
+            this.zmqManager = new ZmqManager( this.bMUManager, this.steering );
             this.zmqManager.Init();
 
             //Drive
@@ -437,7 +437,8 @@ namespace VehicleControlSystem
 
         private void ReqEStop()
         {
-            this.vehicle.EStop();
+            this.scheduler.IsCreateDryRunCommand = !this.scheduler.IsCreateDryRunCommand;
+            //this.vehicle.EStop();
         }
 
         private void ReqVehicleModeChange( VCSMessageEventArgs msg )