Browse Source

Pull Commit

ys-hwang 6 years ago
parent
commit
3c5651d179

BIN
Dev/OHV/Assambly/DynamicExpresso.Core.dll


+ 9 - 0
Dev/OHV/OHV.Common/Events/MessageEventArgs.cs

@@ -192,6 +192,7 @@ namespace OHV.Common.Events
 
         
         public double CurrentPosition { get; set; }
+        public string PositionTag { get; set; }
 
         public eJogMoveDir JogDir { get; set; }
         public eEventDir EventDir { get; set; }
@@ -209,7 +210,15 @@ namespace OHV.Common.Events
             ToFront,
         }
 
+        public enum eControlKind
+        {
+            USE,
+            ON,
+            OFF,
+            STATE
+        }
 
+        public eControlKind ControlKind { get; set; }
         public string OutPutTag { get; set; }
         public eEventDir EventDir { get; set; }
         public object Args { get; set; }

+ 6 - 6
Dev/OHV/OHV.Module.Interactivity/OHV.Module.Interactivity.csproj

@@ -36,12 +36,16 @@
     <Reference Include="CommonServiceLocator, Version=2.0.4.0, Culture=neutral, PublicKeyToken=489b6accfaf20ef0, processorArchitecture=MSIL">
       <HintPath>..\packages\CommonServiceLocator.2.0.4\lib\net45\CommonServiceLocator.dll</HintPath>
     </Reference>
-    <Reference Include="DynamicExpresso.Core, Version=2.3.1.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\packages\DynamicExpresso.Core.2.3.1\lib\net45\DynamicExpresso.Core.dll</HintPath>
+    <Reference Include="DynamicExpresso.Core">
+      <HintPath>..\Assambly\DynamicExpresso.Core.dll</HintPath>
     </Reference>
     <Reference Include="FluentResults">
       <HintPath>..\Assambly\FluentResults.dll</HintPath>
     </Reference>
+    <Reference Include="GSG.NET.WPF, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\Assambly\GSG.NET.WPF.dll</HintPath>
+    </Reference>
     <Reference Include="MaterialDesignColors, Version=1.2.2.920, Culture=neutral, processorArchitecture=MSIL">
       <HintPath>..\packages\MaterialDesignColors.1.2.2\lib\net45\MaterialDesignColors.dll</HintPath>
     </Reference>
@@ -217,10 +221,6 @@
     </Page>
   </ItemGroup>
   <ItemGroup>
-    <ProjectReference Include="..\..\..\..\GSG\GSG\GSG.NET.WPF\GSG.NET.WPF.csproj">
-      <Project>{6b91fca2-0a26-41d5-8959-a6f27645dacd}</Project>
-      <Name>GSG.NET.WPF</Name>
-    </ProjectReference>
     <ProjectReference Include="..\OHV.Common\OHV.Common.csproj">
       <Project>{0d1f7fbc-bfb0-4ee4-852d-e2a8d62c5708}</Project>
       <Name>OHV.Common</Name>

+ 38 - 8
Dev/OHV/OHV.Module.Interactivity/PopUp/ConveyorControlView.xaml

@@ -164,7 +164,38 @@
                     </Grid.ColumnDefinitions>
                     
                     
-                    <Grid Grid.Column="0"></Grid>
+                    <Grid Grid.Column="0">
+                        <StackPanel VerticalAlignment="Center"
+                                    HorizontalAlignment="Center">
+                            <Button Background="{x:Null}">
+                                <StackPanel Orientation="Horizontal">
+                                    <Ellipse Margin="0,0,18,0" Width="20" Height="20" Fill="{Binding AxisLeftIsMove, FallbackValue=Red}"/>
+                                    <TextBlock Text="Axis-L IsMove"/>
+                                </StackPanel>
+                            </Button>
+
+                            <Button Background="{x:Null}">
+                                <StackPanel Orientation="Horizontal">
+                                    <Ellipse Margin="0,0,33,0" Width="20" Height="20" Fill="{Binding AxisLeftFault, FallbackValue=Red}"/>
+                                    <TextBlock Text="Axis-L Fault"/>
+                                </StackPanel>
+                            </Button>
+
+                            <Button Background="{x:Null}">
+                                <StackPanel Orientation="Horizontal">
+                                    <Ellipse Margin="0,0,16,0" Width="20" Height="20" Fill="{Binding AxisRightIsMove, FallbackValue=Red}"/>
+                                    <TextBlock Text="Axis-R IsMove"/>
+                                </StackPanel>
+                            </Button>
+
+                            <Button Background="{x:Null}">
+                                <StackPanel Orientation="Horizontal">
+                                    <Ellipse Margin="0,0,30,0" Width="20" Height="20" Fill="{Binding AxisRightFault, FallbackValue=Red}"/>
+                                    <TextBlock Text="Axis-R Fault"/>
+                                </StackPanel>
+                            </Button>
+                        </StackPanel>
+                    </Grid>
 
                     <Grid Grid.Column="1">
                         <StackPanel VerticalAlignment="Top" HorizontalAlignment="Center" Margin="20">
@@ -172,7 +203,7 @@
                             VerticalAlignment="Top" Width="Auto" Height="50"
                             HorizontalAlignment="Left"/>
                         </StackPanel>
-                        
+
                         <StackPanel Orientation="Horizontal"
                                 HorizontalAlignment="Center">
 
@@ -184,6 +215,7 @@
                                 CommandParameter="Lock">
                                 <StackPanel>
                                     <materialDesign:PackIcon Kind="ElectricSwitchClosed" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Height="42" Width="auto"/>
+                                    <TextBlock Text="Clamp" VerticalAlignment="Stretch" HorizontalAlignment="Center" />
                                     <TextBlock Text="Lock" VerticalAlignment="Stretch" HorizontalAlignment="Center" />
                                 </StackPanel>
                             </Button>
@@ -196,16 +228,14 @@
                                 CommandParameter="UnLock">
                                 <!--<Button.InputBindings>
                                 <MouseBinding Gesture="LeftClick" Command="{Binding KeyInTargetPosCommand}" CommandParameter="Left"/>
-                            </Button.InputBindings>-->
+                                </Button.InputBindings>-->
                                 <StackPanel>
-                                    <materialDesign:PackIcon Kind="ElectricSwitch" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Height="42" Width="auto"/>
+                                    <materialDesign:PackIcon Kind="ElectricSwitch" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Height="42" Width="auto"/>                                    <TextBlock Text="Clamp" VerticalAlignment="Stretch" HorizontalAlignment="Center" />
                                     <TextBlock Text="UnLock" VerticalAlignment="Stretch" HorizontalAlignment="Center" />
                                 </StackPanel>
                             </Button>
-
                         </StackPanel>
                     </Grid>
-
                     
                 </Grid>
             </Grid>
@@ -213,8 +243,8 @@
 
         <Grid Grid.Column="1" Background="#263238">
             <Border Margin="1" BorderBrush="#FF00FFD3" BorderThickness="2" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"/>
-            <StackPanel VerticalAlignment="Bottom">
-                <Button Margin="5,0,5,10" HorizontalAlignment="Stretch" Height="Auto" BorderBrush="Gray" BorderThickness="2" Command="{Binding CloseDialogCommand}" CommandParameter="true">
+            <StackPanel VerticalAlignment="Top">
+                <Button Margin="5,10,5,0" HorizontalAlignment="Stretch" Height="Auto" BorderBrush="Gray" BorderThickness="2" Command="{Binding CloseDialogCommand}" CommandParameter="true">
                     <StackPanel>
                         <materialDesign:PackIcon Kind="ExitToApp" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Height="42" Width="auto"/>
                         <TextBlock Text="Close" VerticalAlignment="Stretch" HorizontalAlignment="Center" />

+ 59 - 10
Dev/OHV/OHV.Module.Interactivity/PopUp/ConveyorControlViewModel.cs

@@ -66,7 +66,6 @@ namespace OHV.Module.Interactivity.PopUp
                     {
                         Dir = AxisControlEventArgs.eEventDir.ToBack ,
                         Kind = AxisControlEventArgs.eAxisControlKind.Move ,
-                        Axis = AxisControlEventArgs.eAxises.LR_SYNC ,
                     };
 
                     switch ( selectedPos )
@@ -93,15 +92,53 @@ namespace OHV.Module.Interactivity.PopUp
         {
             if ( _args.Dir == AxisControlEventArgs.eEventDir.ToFront )
             {
-
+                switch ( _args.Kind )
+                {
+                    case AxisControlEventArgs.eAxisControlKind.NONE:
+                        break;
+                    case AxisControlEventArgs.eAxisControlKind.OriginReturn:
+                        break;
+                    case AxisControlEventArgs.eAxisControlKind.Stop:
+                        break;
+                    case AxisControlEventArgs.eAxisControlKind.EStop:
+                        break;
+                    case AxisControlEventArgs.eAxisControlKind.Move:
+                        //Sync Move Success Return
+                        
+                        break;
+                    case AxisControlEventArgs.eAxisControlKind.Jog:
+                        break;
+                    case AxisControlEventArgs.eAxisControlKind.ServoOn:
+                        break;
+                    case AxisControlEventArgs.eAxisControlKind.ServoOff:
+                        break;
+                    case AxisControlEventArgs.eAxisControlKind.ReqCurrentPosition:
+                        break;
+                    case AxisControlEventArgs.eAxisControlKind.ReqStopCurrentPosition:
+                        break;
+                    case AxisControlEventArgs.eAxisControlKind.FaultReset:
+                        break;
+                    case AxisControlEventArgs.eAxisControlKind.AxisState:
+                        break;
+                }
             }
         }
 
         private void UICallbackCommunivation( IOControlEventArgs _args )
         {
-            if ( _args.EventDir == IOControlEventArgs.eEventDir.ToFront )
+            if ( _args.EventDir == IOControlEventArgs.eEventDir.ToBack )
             {
-
+                switch ( _args.ControlKind )
+                {
+                    case IOControlEventArgs.eControlKind.USE:
+                        break;
+                    case IOControlEventArgs.eControlKind.ON:
+                        break;
+                    case IOControlEventArgs.eControlKind.OFF:
+                        break;
+                    case IOControlEventArgs.eControlKind.STATE:
+                        break;
+                }
             }
         }
 
@@ -109,6 +146,7 @@ namespace OHV.Module.Interactivity.PopUp
         {
             var type = _obj.ToString();
             var order = string.Empty;
+
             switch(type)
             {
                 case "CW":
@@ -124,6 +162,7 @@ namespace OHV.Module.Interactivity.PopUp
 
             var msg = new IOControlEventArgs
             {
+                EventDir = IOControlEventArgs.eEventDir.ToBack,
                 OutPutTag = order.ToString()
             };
 
@@ -146,7 +185,7 @@ namespace OHV.Module.Interactivity.PopUp
             this.eventAggregator.GetEvent<IOControlPubSubEvent>().Publish( new IOControlEventArgs { EventDir = IOControlEventArgs.eEventDir.ToBack } );
             this.eventAggregator.GetEvent<IOControlPubSubEvent>().Unsubscribe( UICallbackCommunivation );
 
-            //TODO: - [03-14 ys-hwang] - Closed 해제 처리해줄때 Kind == OriginReturn 값이 들어와버림 그래서 NONE 생성 
+            //TODO:[03-14 ys-hwang] - Closed 해제 처리해줄때 Kind == OriginReturn 값이 들어와버림 그래서 NONE 생성 
             this.eventAggregator.GetEvent<AxisControlPubSubEvent>().Publish( new AxisControlEventArgs 
             { 
                 Dir = AxisControlEventArgs.eEventDir.ToBack, 
@@ -158,15 +197,25 @@ namespace OHV.Module.Interactivity.PopUp
         public void OnDialogOpened( IDialogParameters parameters )
         {
             /*IO*/
+            var ioMsg = new IOControlEventArgs
+            {
+                EventDir = IOControlEventArgs.eEventDir.ToBack ,
+                ControlKind = IOControlEventArgs.eControlKind.STATE
+            };
+            this.PublishEvent( ioMsg );
+
             this.eventAggregator.GetEvent<IOControlPubSubEvent>().Publish( new IOControlEventArgs { EventDir = IOControlEventArgs.eEventDir.ToBack } );
 
             /*Lock Axis*/
-            //TODO: - [03-14 ys-hwang] - Opened 할당 시 Kind == OriginReturn 값이 들어와버림 그래서 NONE 생성 
-            this.eventAggregator.GetEvent<AxisControlPubSubEvent>().Publish( new AxisControlEventArgs 
-            { 
-                Dir = AxisControlEventArgs.eEventDir.ToBack,
+            var axisMsg = new AxisControlEventArgs
+            {
+                Dir = AxisControlEventArgs.eEventDir.ToBack ,
                 Kind = AxisControlEventArgs.eAxisControlKind.NONE
-            } );
+            };
+
+            this.AxisPublishEvent(axisMsg);
+
+            this.eventAggregator.GetEvent<AxisControlPubSubEvent>().Publish( new AxisControlEventArgs { Dir = AxisControlEventArgs.eEventDir.ToBack , Kind = AxisControlEventArgs.eAxisControlKind.NONE } );
         }
 
         private void CloseDialog( string parameter )

+ 23 - 2
Dev/OHV/OHV.Module.Interactivity/PopUp/DriveServoViewModel.cs

@@ -162,12 +162,14 @@ namespace OHV.Module.Interactivity.PopUp
 
         private void UICallbackCommunication(DriveControlEventArgs args)
         {
-            //TODO: Drive, Steering 구분
+            //TODO:[20/03/19 ys-hwang] Drive UI return msg popup
+
             if (args.EventDir == DriveControlEventArgs.eEventDir.ToFront)
             {
                 switch ( args.ControlKind )
                 {
                     case DriveControlEventArgs.eControlKind.MOVE:
+                        ResponseMove(args);
                         break;
                     case DriveControlEventArgs.eControlKind.STOP:
                         break;
@@ -204,6 +206,23 @@ namespace OHV.Module.Interactivity.PopUp
             }
         }
 
+        private void ResponseMove( DriveControlEventArgs args )
+        {
+            var msg = string.Empty;
+            if(args.Result.IsSuccess)
+            {
+                msg = "Move Successs";
+            }
+            else
+            {
+                var error = args.Result.Errors.FirstOrDefault();
+                var alarm = error.Metadata[ "Alarm" ] as Alarm;
+                msg = alarm.Name + " " + alarm.Text;
+            }
+
+            this.messageController.ShowNotificationView( msg );
+        }
+
         void PublishEvent(DriveControlEventArgs args)
         {
             this.eventAggregator.GetEvent<DriveControlPubSubEvent>().Publish(args);
@@ -244,6 +263,7 @@ namespace OHV.Module.Interactivity.PopUp
         {
             var numPad = new CalcuratorView();
             var result = numPad.ShowDialog(this.JogVelocity);
+
             this.JogVelocity = result;
         }
 
@@ -321,7 +341,7 @@ namespace OHV.Module.Interactivity.PopUp
                 {
                     this.RouteList.Add( new Route() );
 
-                    this.messageController.ShowNotificationView( "Success" );
+                    this.messageController.ShowNotificationView( "Create Success" );
                 }
             } );
         }
@@ -398,6 +418,7 @@ namespace OHV.Module.Interactivity.PopUp
                     {
                         EventDir = DriveControlEventArgs.eEventDir.ToBack ,
                         ControlKind = DriveControlEventArgs.eControlKind.MOVE ,
+                        //PositionTag = 
                     };
 
                     this.PublishEvent( msg );

+ 1 - 1
Dev/OHV/OHV.Module.Interactivity/PopUp/LockServoView.xaml

@@ -212,7 +212,7 @@
                     <Button Grid.Column="3" Grid.Row="1" HorizontalAlignment="Stretch" Margin="5" Height="auto"
                             Style="{StaticResource MaterialDesignRaisedButton}"
                             materialDesign:ButtonAssist.CornerRadius="10"
-                            ToolTip="MaterialDesignRaisedButton with Round Corners" Background="{c:Binding 'IsLeftServoOn ? media:Brushes.DodgerBlue : media:Brushes.Transparent'}">
+                            Background="{c:Binding 'IsLeftServoOn ? media:Brushes.DodgerBlue : media:Brushes.Transparent'}">
                         <StackPanel>
                             <TextBlock HorizontalAlignment="Center"><Run Text="Servo On"/></TextBlock>
                         </StackPanel>

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

@@ -437,8 +437,15 @@ namespace OHV.Module.Interactivity.PopUp
             {
                 if (r.Result == ButtonResult.OK)
                 {
-                    this.TargetPosLockLeft = this.CurrentLockLeft;
-                    this.TargetPosLockRight = this.CurrentLockRight;
+                    switch(this.SelectAxis)
+                    {
+                        case ConstString.AXIS_CARRIER_LOCK_LEFT:
+                            this.TargetPosLockLeft = this.CurrentLockLeft;
+                            break;
+                        case ConstString.AXIS_CARRIER_LOCK_RIGHT:
+                            this.TargetPosLockRight = this.CurrentLockRight;
+                            break;
+                    }
                 }
             });
         }

+ 49 - 6
Dev/OHV/VehicleControlSystem/ControlLayer/Vehicle.cs

@@ -157,8 +157,35 @@ namespace VehicleControlSystem.ControlLayer
 
             this.eventAggregator = ea;
 
+            /*Drive*/
             this.eventAggregator.GetEvent<DriveControlPubSubEvent>().Unsubscribe( ReceiveDriveControlEvent );
             this.eventAggregator.GetEvent<DriveControlPubSubEvent>().Subscribe( ReceiveDriveControlEvent );
+
+            /*IO*/
+            this.eventAggregator.GetEvent<IOControlPubSubEvent>().Unsubscribe( ReceiveIOControlEvent );
+            this.eventAggregator.GetEvent<IOControlPubSubEvent>().Subscribe( ReceiveIOControlEvent );
+        }
+
+        private void ReceiveIOControlEvent( IOControlEventArgs _args )
+        {
+            if ( this.autoManager.OperationModeProperty != eOperatationMode.ManualMode )
+                return;
+
+            var msg = _args;
+            if(msg.EventDir == IOControlEventArgs.eEventDir.ToBack)
+            {
+                switch ( msg.ControlKind )
+                {
+                    case IOControlEventArgs.eControlKind.USE:
+                        break;
+                    case IOControlEventArgs.eControlKind.ON:
+                        break;
+                    case IOControlEventArgs.eControlKind.OFF:
+                        break;
+                    case IOControlEventArgs.eControlKind.STATE:
+                        break;
+                }
+            }
         }
 
         private void ReceiveDriveControlEvent( DriveControlEventArgs _args )
@@ -172,6 +199,7 @@ namespace VehicleControlSystem.ControlLayer
                 switch ( msg.ControlKind )
                 {
                     case DriveControlEventArgs.eControlKind.MOVE:
+                        this.ReqMoveToPos(_args);
                         break;
                     case DriveControlEventArgs.eControlKind.STOP:
                         break;
@@ -217,6 +245,7 @@ namespace VehicleControlSystem.ControlLayer
             }
         }
 
+
         private void DriveControlEventPublish( DriveControlEventArgs args )
         {
             args.EventDir = DriveControlEventArgs.eEventDir.ToFront;
@@ -252,6 +281,21 @@ namespace VehicleControlSystem.ControlLayer
         }
 
         #region Request Method
+
+        private void ReqMoveToPos( DriveControlEventArgs args )
+        {
+            var drive = 0;
+            //var result = drive.Move( args.PositionTag );
+
+            var msg = new DriveControlEventArgs
+            {
+                ControlKind = DriveControlEventArgs.eControlKind.FaultReset
+            };
+
+            msg.Result = Results.Ok( "Position Move" );
+            this.DriveControlEventPublish( msg );
+        }
+
         void ReqFaultReset(DriveControlEventArgs _args)
         {
             //TODO:[20/03/18 ys-hwang] Drive Assign
@@ -261,7 +305,7 @@ namespace VehicleControlSystem.ControlLayer
 
             var msg = new DriveControlEventArgs
             {
-
+                ControlKind = DriveControlEventArgs.eControlKind.FaultReset
             };
 
             msg.Result = Results.Ok( "Drive On" );
@@ -293,10 +337,10 @@ namespace VehicleControlSystem.ControlLayer
                      {
                          EventDir = DriveControlEventArgs.eEventDir.ToFront ,
                          ControlKind = DriveControlEventArgs.eControlKind.ReqCurrentPos ,
-                         //CurrentPosition = drive.CurrentPosition,
+                         CurrentPosition = new Random().Next(0, 1000),
                      };
                      
-                     //this.DriveControlEventPublish( msg );
+                     this.DriveControlEventPublish( msg );
                  }
              } );
 
@@ -305,13 +349,12 @@ namespace VehicleControlSystem.ControlLayer
 
         void ReqDriveOn( DriveControlEventArgs _args)
         {
-            //TODO:[20/03/18 ys-hwang] Drive On
             var drive = "Drive Name";
             //drive.On();
 
             var msg = new DriveControlEventArgs
             {
-
+                ControlKind = DriveControlEventArgs.eControlKind.DriveON
             };
             msg.Result = Results.Ok( "Drive On" );
 
@@ -325,7 +368,7 @@ namespace VehicleControlSystem.ControlLayer
 
             var msg = new DriveControlEventArgs
             {
-                
+                ControlKind = DriveControlEventArgs.eControlKind.DriveOFF
             };
             msg.Result = Results.Ok( "Drive On" );