SK.Kang 6 роки тому
батько
коміт
1eedf4089e

+ 2 - 2
Dev/OHV/OHV.Module.Interactivity/PopUp/DriveServoView.xaml

@@ -252,7 +252,7 @@
                             >
                         <StackPanel>
                             <materialDesign:PackIcon Kind="MinusBoxOutline" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Height="30" Width="auto"/>
-                            <TextBlock><Run Text="Jog(-)" FontSize="20"/></TextBlock>
+                            <TextBlock><Run Text="BackWard" FontSize="20"/></TextBlock>
                         </StackPanel>
                     </RepeatButton>
 
@@ -279,7 +279,7 @@
                             Command="{Binding JogCommand}" CommandParameter="+">
                         <StackPanel>
                             <materialDesign:PackIcon Kind="PlusBoxOutline" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Height="30" Width="auto"/>
-                            <TextBlock><Run Text="Jog(+)" FontSize="20"/></TextBlock>
+                            <TextBlock><Run Text="Forward" FontSize="20"/></TextBlock>
                         </StackPanel>
                     </RepeatButton>
                 </Grid>

+ 5 - 3
Dev/OHV/OHV.Module.Interactivity/PopUp/DriveServoViewModel.cs

@@ -142,7 +142,6 @@ namespace OHV.Module.Interactivity.PopUp
             this.eventAggregator.GetEvent<GUIMessagePubSubEvent>().Subscribe( UICallBackCommunication, ThreadOption.UIThread );
 
             this.sql = _sql;
-            this.RouteList = new ObservableCollection<Route>( sql.RouteDal.All );
 
             this.messageController = _messageController;
 
@@ -256,7 +255,7 @@ namespace OHV.Module.Interactivity.PopUp
                     case DriveControlEventArgs.eControlKind.SteeringState:
                         if ( args.Result.IsSuccess )
                         {
-                            var dir = args.Result.ToResult<eSteeringState>().Value;
+                            var dir = CastTo<eSteeringState>.From<object>( args.Args );
                             this.ChangeSteeringDirection( dir );
                         }
                         else
@@ -298,7 +297,7 @@ namespace OHV.Module.Interactivity.PopUp
             var msg = string.Empty;
             if ( args.Result.IsSuccess )
             {
-                msg = "Move Successs";
+                msg = "Move Success";
             }
             else
             {
@@ -558,6 +557,7 @@ namespace OHV.Module.Interactivity.PopUp
         {
             this.eventAggregator.GetEvent<DriveControlPubSubEvent>().Publish( new DriveControlEventArgs { EventDir = DriveControlEventArgs.eEventDir.ToBack, ControlKind = DriveControlEventArgs.eControlKind.ReqStopCurrentPos } );
             this.eventAggregator.GetEvent<DriveControlPubSubEvent>().Unsubscribe( DriveControlCallBack );
+            this.eventAggregator.GetEvent<GUIMessagePubSubEvent>().Unsubscribe( UICallBackCommunication );
         }
 
         public async void OnDialogOpened( IDialogParameters parameters )
@@ -572,6 +572,8 @@ namespace OHV.Module.Interactivity.PopUp
                 this.PublishEvent( msg );
 
                 this.eventAggregator.GetEvent<DriveControlPubSubEvent>().Publish( new DriveControlEventArgs { EventDir = DriveControlEventArgs.eEventDir.ToBack, ControlKind = DriveControlEventArgs.eControlKind.VehicleState } );
+
+                this.RouteList = new ObservableCollection<Route>( sql.RouteDal.All );
             } );
 
             await task;

+ 9 - 3
Dev/OHV/OHV.Module.Interactivity/PopUp/LockServoViewModel.cs

@@ -397,7 +397,7 @@ namespace OHV.Module.Interactivity.PopUp
                         break;
                     case eAxisControlKind.AllOriginReturn:
                         {
-                            this.RspOriginState();
+                            this.RspOriginState( args );
                         }
                         break;
                     case eAxisControlKind.SyncMove:
@@ -410,15 +410,20 @@ namespace OHV.Module.Interactivity.PopUp
             }
         }
 
-        void RspOriginState()
+        void RspOriginState( AxisControlEventArgs args )
         {
             var msg = string.Empty;
 
-            if ( IsLeftServoOriginReturn && IsRightServoOriginReturn )
+            if ( args.Result.IsSuccess )
                 msg = "All Origin Success";
             else
                 msg = "Origin Fail";
 
+            //if ( IsLeftServoOriginReturn && IsRightServoOriginReturn )
+            //    msg = "All Origin Success";
+            //else
+            //    msg = "Origin Fail";
+
                 this.messageController.ShowNotificationView( msg );
 
         }
@@ -634,6 +639,7 @@ namespace OHV.Module.Interactivity.PopUp
         {
             this.eventAggregator.GetEvent<AxisControlPubSubEvent>().Publish( new AxisControlEventArgs { Dir = AxisControlEventArgs.eEventDir.ToBack , Kind = AxisControlEventArgs.eAxisControlKind.ReqStopCurrentPosition } );
             this.eventAggregator.GetEvent<AxisControlPubSubEvent>().Unsubscribe( AxisUICallbackCommunication );
+            this.eventAggregator.GetEvent<GUIMessagePubSubEvent>().Unsubscribe( UICallbackCommunication );
         }
 
         public async void OnDialogOpened( IDialogParameters parameters )

+ 2 - 1
Dev/OHV/VehicleControlSystem/ControlLayer/Clamp.cs

@@ -340,8 +340,9 @@ namespace VehicleControlSystem.ControlLayer
 
             var ll = this.AllOriginReturn();
 
-            var result = this.IsAllAxisOriginReturn();
+            LockUtils.Wait( 3000 );
 
+            var result = this.IsAllAxisOriginReturn();
             if ( result == 5 )
                 msg.Result = Results.Fail( "Left Fail" );
             else if ( result == 6 )

+ 54 - 18
Dev/OHV/VehicleControlSystem/ControlLayer/Vehicle.cs

@@ -434,9 +434,15 @@ namespace VehicleControlSystem.ControlLayer
                             var reply = new DriveControlEventArgs();
                             reply.ControlKind = DriveControlEventArgs.eControlKind.SteeringState;
                             if ( this.steering.IsLeft() )
-                                reply.Result = FluentResults.Results.Ok<eSteeringState>( eSteeringState.Left );
+                            {
+                                reply.Args = eSteeringState.Left;
+                                reply.Result = FluentResults.Results.Ok();
+                            }
                             else if ( this.steering.IsRight() )
-                                reply.Result = FluentResults.Results.Ok<eSteeringState>( eSteeringState.Right );
+                            {
+                                reply.Args = eSteeringState.Right;
+                                reply.Result = FluentResults.Results.Ok();
+                            }
                             else
                                 reply.Result = FluentResults.Results.Fail(new Error());
 
@@ -1094,9 +1100,6 @@ namespace VehicleControlSystem.ControlLayer
             PIOClear();
             loggerPIO.I( $"Start Battery Charge PIO" );
 
-            this.iO.WriteOutputIO( "OUT_PIO_RECEIVABLE", true );
-            loggerPIO.I( "[Vehicle] - 4 Receivable" );
-
             if ( !this.iO.WaitChangeInputIO( true, pioTimeout, "IN_PIO_SENDABLE" ) )
             {
                 PIOClear();
@@ -1105,11 +1108,10 @@ namespace VehicleControlSystem.ControlLayer
             }
             loggerPIO.E( "[Port] - 4 Ready On" );
 
-            this.iO.WriteOutputIO( "OUT_PIO_RECEIVE_RUN", true, 1000 ); //1Sec 이후 On
-            loggerPIO.I( "[Vehicle] - Conveyor Run" );
-            this.OnConveyorStart?.Invoke( true );
+            this.iO.WriteOutputIO( "OUT_PIO_RECEIVABLE", true );
+            loggerPIO.I( "[Vehicle] - 4 Receivable" );
 
-            if ( !this.iO.WaitChangeInputIO( true, pioTimeout, "IN_PIO_SEND_RUN" ) )
+            if ( !this.iO.WaitChangeInputIO( true, 20000, "IN_PIO_SEND_RUN" ) )
             {
                 PIOClear();
                 loggerPIO.E( "[Port] - 5 Sending Run Time Out" );
@@ -1117,6 +1119,9 @@ namespace VehicleControlSystem.ControlLayer
             }
             loggerPIO.I( "[Port] - 5 Sending Run On" );
 
+            this.iO.WriteOutputIO( "OUT_PIO_RECEIVE_RUN", true ); 
+            loggerPIO.I( "[Vehicle] - Receive Run On" );
+
             this.VehicleStateProperty = eVehicleState.Charge;
 
             return 0;
@@ -1132,7 +1137,7 @@ namespace VehicleControlSystem.ControlLayer
 
             this.iO.WriteOutputIO( "OUT_PIO_RECIVE_COMPLITE", true );
             loggerPIO.I( "[Vehicle] Receive Complete On" );
-            if ( !this.iO.WaitChangeInputIO( true, pioTimeout, "IN_PIO_SEND_COMPLITE" ) )
+            if ( !this.iO.WaitChangeInputIO( true, 20000, "IN_PIO_SEND_COMPLITE" ) )
             {
                 this.iO.WriteOutputIO( "OUT_PIO_RECIVE_COMPLITE", false );
                 loggerPIO.E( "[Port]  IN_PIO_SEND_COMPLITE On Time Out" );
@@ -1184,10 +1189,10 @@ namespace VehicleControlSystem.ControlLayer
 
             if ( this.iO.IsConnectError ) return;
 
-            if ( this.iO.IsOn( "IN_EMS_SW" ) ) this.OccurVehicleAlarm( 28 );
-            if ( !this.iO.IsOn( "IN_CP_ON_SAFETY" ) ) this.OccurVehicleAlarm( 31 );
-            if ( !this.iO.IsOn( "IN_CP_ON_24V" ) ) this.OccurVehicleAlarm( 30 );
-            if ( !this.iO.IsOn( "IN_MC_ON" ) ) this.OccurVehicleAlarm( 29 );
+            //if ( this.iO.IsOn( "IN_EMS_SW" ) ) this.OccurVehicleAlarm( 28 );
+            //if ( !this.iO.IsOn( "IN_CP_ON_SAFETY" ) ) this.OccurVehicleAlarm( 31 );
+            //if ( !this.iO.IsOn( "IN_CP_ON_24V" ) ) this.OccurVehicleAlarm( 30 );
+            //if ( !this.iO.IsOn( "IN_MC_ON" ) ) this.OccurVehicleAlarm( 29 );
         }
 
         #endregion
@@ -1362,13 +1367,14 @@ namespace VehicleControlSystem.ControlLayer
             this.OnLoadComplete?.Invoke();
 
             loggerPIO.I( $"End Load PIO - [{targetName}]" );
-#endif
-            int result = this.clamp.Lock_Sync();
+
+            result = this.clamp.Lock_Sync();
             if ( result != 0 )
             {
                 this.OccurVehicleAlarm( result );
                 return result;
             }
+#endif
 
             return 0;
         }
@@ -1794,9 +1800,39 @@ namespace VehicleControlSystem.ControlLayer
 
         private void IO_OnChangedIO( BitBlock bit )
         {
-            if ( bit.Tag.Equals( "IN_CV_DETECT_01" ) )
+            switch ( bit.Tag )
             {
-                this.IsContain = bit.IsBitOn;
+                case "IN_CV_DETECT_01":
+                    this.IsContain = bit.IsBitOn;
+                    break;
+
+                case "IN_MC_ON":
+                    if ( bit.IsBitOn )
+                    {
+                        if (!this.iO.IsOn( "IN_EMS_SW" ) && this.iO.IsOn( "IN_CP_ON_SAFETY" ) && this.iO.IsOn( "IN_CP_ON_24V" ) )
+                            this.VehicleStateProperty = eVehicleState.Idle;
+                    }
+                    else
+                        this.OccurVehicleAlarm( 29 );
+                    break;
+
+                case "IN_EMS_SW":
+                    if ( bit.IsBitOn)
+                        this.OccurVehicleAlarm( 28 );
+                    break;
+
+                case "IN_CP_ON_SAFETY":
+                    if ( !bit.IsBitOn)
+                        this.OccurVehicleAlarm( 31 );
+                    break;
+
+                case "IN_CP_ON_24V":
+                    if ( !bit.IsBitOn )
+                        this.OccurVehicleAlarm( 30 );
+                    break;
+
+                default:
+                    break;
             }
         }
 

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

@@ -179,12 +179,14 @@ namespace VehicleControlSystem
                     this.ReqBatteryState();
                     break;
                 case VCSMessageEventArgs.eVCSMessageKind.ReqPIOBatteryChargeStop:
+                    this.ReqBatteryChargeStop(msg);
                     break;
                 default:
                     break;
             }
         }
 
+
         void ReqBatteryState()
         {
             BatteryInfo battery = new BatteryInfo();
@@ -278,7 +280,6 @@ namespace VehicleControlSystem
 
         private void ReqPIOBattery(VCSMessageEventArgs msg)
         {
-            //TODO: PIOBattery Sub Cmd 필요
             int result = 1;
 
             var reply = new GUIMessageEventArgs()
@@ -287,16 +288,31 @@ namespace VehicleControlSystem
                 MessageText = msg.MessageText,
             };
 
-            var subCmd = this.sql.SubCmdDAL.GetSubCmd();
-            subCmd.Type = eSubCommandType.Charge;
+            result = this.vehicle.StartBatteryCharge();
+
+            if ( result <= 0 )
+                reply.Result = FluentResults.Results.Ok();
+            else
+                reply.Result = FluentResults.Results.Fail( "Battery Charge Start Fail" );
+
+            GUIMessageEventPublish( reply );
+        }
+        private void ReqBatteryChargeStop( VCSMessageEventArgs msg )
+        {
+            int result = 1;
+
+            var reply = new GUIMessageEventArgs()
+            {
+                Kind = GUIMessageEventArgs.eGUIMessageKind.RsqPIOBatteryChargeStop,
+                MessageText = msg.MessageText,
+            };
 
-            //result = this.vehicle.PIOBatteryCharge( subCmd );
-            this.vehicle.BatteryCharge( subCmd );
+            result = this.vehicle.StopBatteryCharge();
 
             if ( result <= 0 )
                 reply.Result = FluentResults.Results.Ok();
             else
-                reply.Result = FluentResults.Results.Fail( "Battery Charge Fail" );
+                reply.Result = FluentResults.Results.Fail( "Battery Charge Stop Fail" );
 
             GUIMessageEventPublish( reply );
         }