Browse Source

충돌 병합

ys-hwang 5 years ago
parent
commit
0c4697238c

+ 208 - 24
Dev/OHV/OHV.Module.Interactivity/PopUp/DriveServoView.xaml

@@ -129,11 +129,176 @@
                         </DataGrid>
                         <!--</ScrollViewer>-->
                     </DockPanel>
-
                 </Grid>
 
                 <!--Axis  Grid View-->
                 <Grid Grid.Row="1">
+                    <Grid.RowDefinitions>
+                        <RowDefinition Height="*"/>
+                        <RowDefinition Height="*"/>
+                    </Grid.RowDefinitions>
+                    
+                    <Grid Grid.Row="0" Margin="15">
+                        <Grid.ColumnDefinitions>
+                            <ColumnDefinition Width="*"/>
+                            <ColumnDefinition Width="*"/>
+                        </Grid.ColumnDefinitions>
+
+                        <Grid Grid.Column="0">
+                            <Grid.ColumnDefinitions>
+                                <ColumnDefinition Width="*"/>
+                                <ColumnDefinition Width="*"/>
+                            </Grid.ColumnDefinitions>
+                            <Grid.RowDefinitions>
+                                <RowDefinition Height="*"/>
+                                <RowDefinition Height="*"/>
+                            </Grid.RowDefinitions>
+
+                            <Border BorderBrush="Gray" BorderThickness="1" Grid.Column="0" Grid.RowSpan="2">
+                                <StackPanel VerticalAlignment="Center" HorizontalAlignment="Center">
+                                    <TextBlock  Foreground="Orange" FontSize="20">
+                                        Vehicle
+                                    </TextBlock>
+                                    <TextBlock HorizontalAlignment="Center"  Foreground="Orange" FontSize="20">
+                                        Drive
+                                    </TextBlock>
+                                </StackPanel>
+                            </Border>
+
+                            <Border BorderBrush="Gray" BorderThickness="1" Grid.Column="1" Grid.Row="0">
+                                <StackPanel VerticalAlignment="Center" HorizontalAlignment="Center">
+                                    <TextBlock  Foreground="Orange" FontSize="20">
+                                        Current
+                                    </TextBlock>
+                                    <TextBlock HorizontalAlignment="Center"  Foreground="Orange" FontSize="20">
+                                        Position
+                                    </TextBlock>
+                                </StackPanel>
+                            </Border>
+
+                            <Border BorderBrush="Gray" BorderThickness="1" Grid.Column="1" Grid.Row="1">
+                                <StackPanel VerticalAlignment="Center" HorizontalAlignment="Center">
+                                    <TextBlock HorizontalAlignment="Center"  Foreground="White" FontSize="20">
+                                        0.00
+                                    </TextBlock>
+                                </StackPanel>
+                            </Border>
+
+                            <!--<Button Grid.Column="0" Grid.RowSpan="2" HorizontalAlignment="Stretch" Margin="5" Height="Auto" Width="Auto"
+                            Style="{StaticResource MaterialDesignRaisedButton}"
+                            materialDesign:ButtonAssist.CornerRadius="10"
+                            Command="{Binding SelectAxisCommand}"
+                            CommandParameter="Left">
+                                <StackPanel>
+                                    <TextBlock><Run Text="Vehicle" FontSize="20"/></TextBlock>
+                                    <TextBlock><Run Text="Drive" FontSize="20"/></TextBlock>
+                                </StackPanel>
+                            </Button>-->
+                        </Grid>
+
+                        <Grid Grid.Column="1">
+                            <Grid.ColumnDefinitions>
+                                <ColumnDefinition Width="*"/>
+                                <ColumnDefinition Width="*"/>
+                            </Grid.ColumnDefinitions>
+
+                            <Border BorderThickness="1" BorderBrush="#FF00FFD3" Margin="22,0,209,0"/>
+                            <Grid Grid.Column="0" Margin="70,10,0,10">
+                                <Button Width="150"
+                                    HorizontalAlignment="Stretch" 
+                                    Height="Auto" 
+                                    Style="{StaticResource MaterialDesignRaisedButton}"
+                                    materialDesign:ButtonAssist.CornerRadius="10"
+                                    BorderBrush="{Binding SteeringLeftBrushProperty}" 
+                                    BorderThickness="5" 
+                                    Command="{Binding SteeringMoveCommand}"
+                                    CommandParameter="CW" > 
+                                    <StackPanel>
+                                        <materialDesign:PackIcon Kind="ArrowLeft" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Height="42" Width="auto"/>
+                                        <TextBlock Text="Steering Left" VerticalAlignment="Stretch" HorizontalAlignment="Center" FontSize="20"/>
+                                    </StackPanel>
+                                </Button>
+                            </Grid>
+
+                            <Grid Grid.Column="1" Margin="0,10,30,10">
+                                <Button Width="150"
+                                    HorizontalAlignment="Stretch" 
+                                    Height="Auto" 
+                                    Style="{StaticResource MaterialDesignRaisedButton}"
+                                    materialDesign:ButtonAssist.CornerRadius="10"
+                                    BorderBrush="{Binding SteeringRightBrushProperty}" 
+                                    BorderThickness="5" 
+                                    Command="{Binding SteeringMoveCommand}"
+                                    CommandParameter="CCW"> 
+                                    <StackPanel>
+                                        <materialDesign:PackIcon Kind="ArrowRight" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Height="42" Width="auto"/>
+                                        <TextBlock Text="Steering Right" VerticalAlignment="Stretch" HorizontalAlignment="Center" FontSize="18"/>
+                                    </StackPanel>
+                                </Button>
+                            </Grid>
+                        </Grid>
+                    </Grid>
+
+                    <Grid Grid.Row="1">
+                        <Grid.ColumnDefinitions>
+                            <ColumnDefinition Width="*"/>
+                            <ColumnDefinition Width="*"/>
+                            <ColumnDefinition Width="*"/>
+                        </Grid.ColumnDefinitions>
+                    
+                        <Border BorderThickness="1" BorderBrush="#FF00FFD3" Margin="15,0,10,169" Grid.ColumnSpan="3"></Border>
+                        
+                        <Grid Grid.Column="0" Margin="20">
+                            <RepeatButton
+                            HorizontalAlignment="Right"
+                            VerticalAlignment="Bottom"
+                            Width="180"
+                            Height="90"
+                            Style="{StaticResource MaterialDesignRaisedButton}"
+                            materialDesign:ButtonAssist.CornerRadius="10"
+                            Command="{Binding JogCommand}" CommandParameter="-"
+                            >
+                                <StackPanel>
+                                    <materialDesign:PackIcon Kind="MinusBoxOutline" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Height="50" Width="auto"/>
+                                    <TextBlock><Run Text="BackWard" FontSize="25"/></TextBlock>
+                                </StackPanel>
+                            </RepeatButton>
+                        </Grid>
+
+                        <Grid Grid.Column="1" Margin="20">
+                            <Button
+                            HorizontalAlignment="Center"
+                            VerticalAlignment="Bottom"
+                            Width="180"
+                            Height="90"
+                            Style="{StaticResource MaterialDesignRaisedButton}"
+                            materialDesign:ButtonAssist.CornerRadius="10"
+                            Command="{Binding JogVelPopupCommand}" CommandParameter="-">
+                                <StackPanel>
+                                    <TextBlock HorizontalAlignment="Center"><Run Text="Jog Velocity" FontSize="25"/></TextBlock>
+                                    <TextBlock HorizontalAlignment="Center"><Run Text="{Binding JogVelocity, StringFormat={}{0:0.000}, FallbackValue=0.00}" FontSize="30" Foreground="Orange"/></TextBlock>
+                                </StackPanel>
+                            </Button>
+                        </Grid>
+
+                        <Grid Grid.Column="2" Margin="20">
+                            <RepeatButton
+                            HorizontalAlignment="Left"
+                            VerticalAlignment="Bottom"
+                            Width="180"
+                            Height="90"
+                            Style="{StaticResource MaterialDesignRaisedButton}"
+                            materialDesign:ButtonAssist.CornerRadius="10"
+                            Command="{Binding JogCommand}" CommandParameter="+">
+                                <StackPanel>
+                                    <materialDesign:PackIcon Kind="PlusBoxOutline" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Height="50" Width="auto"/>
+                                    <TextBlock><Run Text="Forward" FontSize="25"/></TextBlock>
+                                </StackPanel>
+                            </RepeatButton>
+                        </Grid>
+                    </Grid>
+                </Grid>
+                    <!--<Grid Grid.Row="1">
                     <Grid.RowDefinitions>
                         <RowDefinition Height="*"/>
                         <RowDefinition Height="*"/>
@@ -148,76 +313,87 @@
                         <ColumnDefinition Width="*"/>
                     </Grid.ColumnDefinitions>
 
-                    <Border Margin="0,5,189,5" BorderBrush="#FF00FFD3" BorderThickness="2" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Grid.RowSpan="4" Grid.Column="2"/>
+                    <Border Margin="10,5,179,0" BorderBrush="#FF00FFD3" BorderThickness="2" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Grid.RowSpan="2" Grid.Column="2"/>
                     <Border Margin="33,-2,34,82" BorderBrush="#FF00FFD3" BorderThickness="2" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Grid.Column="2" Grid.ColumnSpan="3" Grid.RowSpan="2"/>
 
-                    <Button Grid.Column="0" Grid.Row="1" HorizontalAlignment="Stretch" Margin="5" Height="auto"
+                    --><!--<Button Grid.Column="0" Grid.Row="1" HorizontalAlignment="Stretch" Margin="5" Height="auto"
                             Style="{StaticResource MaterialDesignRaisedButton}"
                             materialDesign:ButtonAssist.CornerRadius="10">
                         <StackPanel>
                             <TextBlock HorizontalAlignment="Center"><Run Text="Target" FontSize="20"/></TextBlock>
                             <TextBlock HorizontalAlignment="Center"><Run Text="Pos" FontSize="20"/></TextBlock>
                         </StackPanel>
-                    </Button>
+                    </Button>--><!--
 
-                    <Button Grid.Column="0" Grid.Row="2" HorizontalAlignment="Stretch" Margin="5" Height="auto"
+                    <Button Grid.Column="0" Grid.Row="1" HorizontalAlignment="Stretch" Margin="5" Height="auto"
                             Style="{StaticResource MaterialDesignRaisedButton}"
                             materialDesign:ButtonAssist.CornerRadius="10"
                             ToolTip="MaterialDesignRaisedButton with Round Corners">
                         <StackPanel>
-                            <TextBlock HorizontalAlignment="Center"><Run Text="Current" FontSize="20"/></TextBlock>
-                            <TextBlock HorizontalAlignment="Center"><Run Text="Pos" FontSize="20"/></TextBlock>
+                            <TextBlock HorizontalAlignment="Center"><Run Text="Vehicle" FontSize="20"/></TextBlock>
+                            <TextBlock HorizontalAlignment="Center"><Run Text="Drive" FontSize="20"/></TextBlock>
                         </StackPanel>
                     </Button>
 
-                    <Button Grid.Column="0" Grid.Row="3" HorizontalAlignment="Stretch" Margin="5" Height="auto"
+                    --><!--<Button Grid.Column="0" Grid.Row="3" HorizontalAlignment="Stretch" Margin="5" Height="auto"
                             Style="{StaticResource MaterialDesignRaisedButton}"
                             materialDesign:ButtonAssist.CornerRadius="10">
                         <StackPanel>
                             <TextBlock HorizontalAlignment="Center"><Run Text="Difference" FontSize="20"/></TextBlock>
                             <TextBlock HorizontalAlignment="Center"><Run Text="Pos" FontSize="20"/></TextBlock>
                         </StackPanel>
-                    </Button>
+                    </Button>-->
 
-                    <Button Grid.Column="1" Grid.Row="0" HorizontalAlignment="Stretch" Margin="5" Height="auto"
+                    <!--<Button Grid.Column="1" Grid.Row="0" HorizontalAlignment="Stretch" Margin="5" Height="auto"
                             Style="{StaticResource MaterialDesignRaisedButton}"
                             materialDesign:ButtonAssist.CornerRadius="10"
                             Command="{Binding SelectAxisCommand}"
                             CommandParameter="Left">
                         <TextBlock><Run Text="Drive" FontSize="20"/></TextBlock>
+                    </Button>--><!--
+
+                    <Button Grid.Column="1" Grid.Row="0" HorizontalAlignment="Stretch" Margin="5" Height="auto"
+                            Style="{StaticResource MaterialDesignRaisedButton}"
+                            materialDesign:ButtonAssist.CornerRadius="10"
+                            Command="{Binding SelectAxisCommand}"
+                            CommandParameter="Left">
+                        <StackPanel>
+                            <TextBlock><Run Text="Current" FontSize="20"/></TextBlock>
+                            <TextBlock><Run Text="Position" FontSize="20"/></TextBlock>
+                        </StackPanel>
                     </Button>
 
-                    <Button Background="{x:Null}" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Stretch" Margin="5" Height="auto"
+                    --><!--<Button Background="{x:Null}" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Stretch" Margin="5" Height="auto"
                             Style="{StaticResource MaterialDesignRaisedButton}"
                             materialDesign:ButtonAssist.CornerRadius="10">
                         <Button.InputBindings>
                             <MouseBinding Gesture="LeftClick" Command="{Binding KeyInTargetPosCommand}" CommandParameter="Left"/>
                         </Button.InputBindings>
                         <TextBlock><Run Text="{Binding DriveTargetPos, StringFormat=0.000, FallbackValue=0.000}" FontSize="20"/></TextBlock>
-                    </Button>
+                    </Button>--><!--
 
-                    <Button Background="{x:Null}" Grid.Column="1" Grid.Row="2" HorizontalAlignment="Stretch" Margin="5" Height="auto"
+                    <Button Background="{x:Null}" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Stretch" Margin="5" Height="auto"
                             Style="{StaticResource MaterialDesignRaisedButton}"
                             materialDesign:ButtonAssist.CornerRadius="10">
                         <TextBlock><Run Text="{Binding CurrentPosition, StringFormat=0.000, FallbackValue=0.000}" FontSize="20"/></TextBlock>
                     </Button>
 
-                    <Button Background="{x:Null}" Grid.Column="1" Grid.Row="3" HorizontalAlignment="Stretch" Margin="5" Height="auto"
+                    --><!--<Button Background="{x:Null}" Grid.Column="1" Grid.Row="3" HorizontalAlignment="Stretch" Margin="5" Height="auto"
                             Style="{StaticResource MaterialDesignRaisedButton}"
                             materialDesign:ButtonAssist.CornerRadius="10">
                         <TextBlock><Run Text="{Binding DifferenceDrive, StringFormat=0.000, FallbackValue=0.000}" FontSize="20"/></TextBlock>
-                    </Button>
+                    </Button>--><!--
 
                     <StackPanel Grid.Column="2" Grid.Row="1" Grid.ColumnSpan="3" Grid.RowSpan="3"  Orientation="Horizontal" HorizontalAlignment="Center" Margin="82,52,43,31" Width="379" >
-                        
+
                         <materialDesign:Badged Badge="Steering" BadgeColorZoneMode="Accent"></materialDesign:Badged>
-                        
+
                         <Button Margin="20,30" Width="150"
                         HorizontalAlignment="Stretch" 
                         Height="Auto" 
                         BorderBrush="{Binding SteeringLeftBrushProperty}" 
                         BorderThickness="5" 
-                        Command="{Binding SteeringCWCommand}"
+                        Command="{Binding SteeringMoveCommand}"
                         CommandParameter="CW" >
                             <StackPanel>
                                 <materialDesign:PackIcon Kind="ArrowLeft" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Height="42" Width="auto"/>
@@ -230,7 +406,7 @@
                         Height="Auto" 
                         BorderBrush="{Binding SteeringRightBrushProperty}" 
                         BorderThickness="5" 
-                        Command="{Binding SteeringCCWCommand}"
+                        Command="{Binding SteeringMoveCommand}"
                         CommandParameter="CCW">
                             <StackPanel>
                                 <materialDesign:PackIcon Kind="ArrowRight" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Height="42" Width="auto"/>
@@ -240,7 +416,7 @@
                     </StackPanel>
 
 
-                    <!--Jog Button-->
+                    --><!--Jog Button--><!--
                     <RepeatButton
                             Margin="5"
                             Grid.Row="0" 
@@ -282,7 +458,7 @@
                             <TextBlock><Run Text="Forward" FontSize="20"/></TextBlock>
                         </StackPanel>
                     </RepeatButton>
-                </Grid>
+                </Grid>-->
 
                 <!--Steering Control-->
                 <Grid Grid.Row="2">
@@ -357,6 +533,14 @@
                         </StackPanel>
                     </Button>
 
+                    <Button Margin="10,100,10,5" HorizontalAlignment="Stretch" Height="90" BorderBrush="Gray" BorderThickness="2" 
+                        Command="{Binding MoveToCommand}">
+                        <StackPanel>
+                            <!--<materialDesign:PackIcon Kind="MoveResizeVariant" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Height="42" Width="auto"/>-->
+                            <TextBlock Text="Move To" VerticalAlignment="Stretch" HorizontalAlignment="Center" FontSize="20"/>
+                        </StackPanel>
+                    </Button>
+
                     <!--<Button Margin="10,10,10,5" HorizontalAlignment="Stretch" Height="90" BorderBrush="Gray" BorderThickness="2" Command="{Binding OriginCommand}">
                     <StackPanel>
                         <materialDesign:PackIcon Kind="Origin" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Height="42" Width="auto"/>
@@ -366,13 +550,13 @@
                 </StackPanel>
 
                 <StackPanel VerticalAlignment="Bottom">
-                    <Button Margin="10,0,10,10" HorizontalAlignment="Stretch" Height="90" BorderBrush="Gray" BorderThickness="2" 
+                    <!--<Button Margin="10,0,10,10" HorizontalAlignment="Stretch" Height="90" BorderBrush="Gray" BorderThickness="2" 
                         Command="{Binding PositionSaveCommand}">
                         <StackPanel>
                             <materialDesign:PackIcon Kind="ContentSave" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Height="42" Width="auto"/>
                             <TextBlock Text="Save" VerticalAlignment="Stretch" HorizontalAlignment="Center" FontSize="20"/>
                         </StackPanel>
-                    </Button>
+                    </Button>-->
 
                     <Button Margin="10,0,10,10" HorizontalAlignment="Stretch" Height="90" BorderBrush="Gray" BorderThickness="2" Command="{Binding CloseDialogCommand}" CommandParameter="true">
                         <StackPanel>
@@ -384,5 +568,5 @@
             </Grid>
         </Grid>
     </Border>
-    
+
 </UserControl>

+ 226 - 180
Dev/OHV/OHV.Module.Interactivity/PopUp/DriveServoViewModel.cs.orig

@@ -21,7 +21,7 @@ namespace OHV.Module.Interactivity.PopUp
     {
         private DelegateCommand<string> _closeDialogCommand;
         public DelegateCommand<string> CloseDialogCommand =>
-            _closeDialogCommand ?? (_closeDialogCommand = new DelegateCommand<string>(CloseDialog));
+            _closeDialogCommand ?? ( _closeDialogCommand = new DelegateCommand<string>( CloseDialog ) );
 
         private string _title = "DriveServoView";
         public string Title
@@ -29,7 +29,7 @@ namespace OHV.Module.Interactivity.PopUp
             get { return this._title; }
             set
             {
-                this.SetProperty(ref this._title, value);
+                this.SetProperty( ref this._title, value );
             }
         }
 
@@ -39,7 +39,7 @@ namespace OHV.Module.Interactivity.PopUp
             get => this._selectedPosition;
             set
             {
-                this.SetProperty(ref this._selectedPosition, value);
+                this.SetProperty( ref this._selectedPosition, value );
             }
         }
 
@@ -47,7 +47,7 @@ namespace OHV.Module.Interactivity.PopUp
         public string SelectDirection
         {
             get => this._selectDirection;
-            set { this.SetProperty(ref this._selectDirection, value); }
+            set { this.SetProperty( ref this._selectDirection, value ); }
         }
 
         #region Motor Left Binding Value
@@ -55,33 +55,37 @@ namespace OHV.Module.Interactivity.PopUp
         public double DriveTargetPos
         {
             get { return this._driveTargetPos; }
-            set { this.SetProperty(ref this._driveTargetPos , value); }
+            set { this.SetProperty( ref this._driveTargetPos, value ); }
         }
 
-        private double _currentDrive;
-        public double CurrentDrive
+        private double _currentPosition;
+        /// <summary>
+        /// * Drive Current Position
+        /// </summary>
+        public double CurrentPosition
         {
-            get { return this._currentDrive; }
-            set { this.SetProperty(ref this._currentDrive, value); }
+            get { return this._currentPosition; }
+            set { this.SetProperty( ref this._currentPosition, value ); }
         }
 
         private double _differenceDrive;
         public double DifferenceDrive
         {
             get { return this._differenceDrive; }
-            set { this.SetProperty(ref this._differenceDrive, value); }
+            set { this.SetProperty( ref this._differenceDrive, value ); }
         }
 
-        private double _jogVelocity;
+        private double _jogVelocity = 5;
         public double JogVelocity
         {
             get { return this._jogVelocity; }
-            set { this.SetProperty(ref this._jogVelocity, value); }
+            set { this.SetProperty( ref this._jogVelocity, value ); }
         }
         #endregion
 
         public event Action<IDialogResult> RequestClose;
 
+        #region Commands
         public ICommand SelectAxisCommand { get; set; }
         public ICommand KeyInTargetPosCommand { get; set; }
         public ICommand SelectPosCommand { get; set; }
@@ -96,25 +100,25 @@ namespace OHV.Module.Interactivity.PopUp
         public ICommand PositionAddCommand { get; set; }
         public ICommand PositionDeleteCommand { get; set; }
         public ICommand PositionSaveCommand { get; set; }
-        public ICommand SteeringCWCommand { get; set; }
-        public ICommand SteeringCCWCommand { get; set; }
+        public ICommand SteeringMoveCommand { get; set; }
         public ICommand SelectedDirection { get; set; }
         public ICommand JogVelPopupCommand { get; set; }
-        public ICommand JogCommand { get; set; }
+        public ICommand JogCommand { get; set; } 
+        #endregion
 
         #region Brushes
         private Brush steeringLeftBrush = Brushes.Gray;
         public Brush SteeringLeftBrushProperty
         {
             get { return steeringLeftBrush; }
-            set { SetProperty(ref this.steeringLeftBrush, value); }
+            set { SetProperty( ref this.steeringLeftBrush, value ); }
         }
 
         private Brush steeringRightBrush = Brushes.Gray;
         public Brush SteeringRightBrushProperty
         {
             get { return steeringRightBrush; }
-            set { SetProperty(ref this.steeringRightBrush, value); }
+            set { SetProperty( ref this.steeringRightBrush, value ); }
         }
         #endregion
 
@@ -122,92 +126,110 @@ namespace OHV.Module.Interactivity.PopUp
         public ObservableCollection<Route> RouteList
         {
             get { return this._routeList; }
-            set { SetProperty(ref this._routeList, value); }
+            set { SetProperty( ref this._routeList, value ); }
         }
 
         public SqliteDAL.DAL.AxisPositionDataDAL axisPositionDataDal;
         SqliteManager sql;
         MessageController messageController;
 
-        public DriveServoViewModel(IEventAggregator _ea, SqliteManager _sql, MessageController _messageController)
+        public DriveServoViewModel( IEventAggregator _ea, SqliteManager _sql, MessageController _messageController )
         {
             this.eventAggregator = _ea;
             this.eventAggregator.GetEvent<DriveControlPubSubEvent>().Unsubscribe( DriveControlCallBack );
-            this.eventAggregator.GetEvent<DriveControlPubSubEvent>().Subscribe( DriveControlCallBack , ThreadOption.UIThread );
+            this.eventAggregator.GetEvent<DriveControlPubSubEvent>().Subscribe( DriveControlCallBack, ThreadOption.UIThread );
 
-            /*상태 회신을 받기 위함*/
             this.eventAggregator.GetEvent<GUIMessagePubSubEvent>().Unsubscribe( UICallBackCommunication );
-            this.eventAggregator.GetEvent<GUIMessagePubSubEvent>().Subscribe( UICallBackCommunication , ThreadOption.UIThread );
+            this.eventAggregator.GetEvent<GUIMessagePubSubEvent>().Subscribe( UICallBackCommunication, ThreadOption.UIThread );
 
             this.sql = _sql;
-            this.RouteList = new ObservableCollection<Route>(sql.RouteDal.All);
 
             this.messageController = _messageController;
 
-            this.SelectPosCommand = new DelegateCommand<object>(ExecuteSelectPosCommand);
-            this.MoveToCommand = new DelegateCommand(ExecuteMoveToCommand);
-            this.CurrentToTargetCommand = new DelegateCommand(ExecuteCurrentToTargetCommand);
-            this.KeyInTargetPosCommand = new DelegateCommand<object>(ExecuteKeyInCommadn);
+            this.SelectPosCommand = new DelegateCommand<object>( ExecuteSelectPosCommand );
+            this.MoveToCommand = new DelegateCommand( ExecuteMoveToCommand );
+            this.CurrentToTargetCommand = new DelegateCommand( ExecuteCurrentToTargetCommand );
+            this.KeyInTargetPosCommand = new DelegateCommand<object>( ExecuteKeyInCommadn );
+
+            this.ServoOnCommand = new DelegateCommand( ExecuteServoOnCommand );
+            this.ServoOffCommand = new DelegateCommand( ExecuteServoOffCommand );
+            this.FaultResetCommand = new DelegateCommand( ExecuteFaultResetCommand );
+            this.OriginCommand = new DelegateCommand( ExecuteOriginCommand );
 
-            this.ServoOnCommand = new DelegateCommand(ExecuteServoOnCommand);
-            this.ServoOffCommand = new DelegateCommand(ExecuteServoOffCommand);
-            this.FaultResetCommand = new DelegateCommand(ExecuteFaultResetCommand);
-            this.OriginCommand = new DelegateCommand(ExecuteOriginCommand);
+            this.PositionAddCommand = new DelegateCommand( ExecutePositionAddCommand );
+            this.PositionDeleteCommand = new DelegateCommand( ExecutePositionDeleteCommand );
+            this.PositionSaveCommand = new DelegateCommand( ExecutePositionSaveCommand );
 
-            this.PositionAddCommand = new DelegateCommand(ExecutePositionAddCommand);
-            this.PositionDeleteCommand = new DelegateCommand(ExecutePositionDeleteCommand);
-            this.PositionSaveCommand = new DelegateCommand(ExecutePositionSaveCommand);
+            this.SelectedDirection = new DelegateCommand<object>( ExecuteSelectedDirection );
+            this.SteeringMoveCommand = new DelegateCommand<object>( ExecuteSteeringMove );
+
+            this.JogVelPopupCommand = new DelegateCommand( ExecuteJogVelPopupCommand );
+            this.JogCommand = new DelegateCommand<object>( ExecuteJogCommand );
+        }
 
-            this.SelectedDirection = new DelegateCommand<object>(ExecuteSelectedDirection);
-            this.SteeringCWCommand = new DelegateCommand<object>(ExecuteSteeringCWCommand);
-            this.SteeringCCWCommand = new DelegateCommand<object>(ExecuteSteeringCCWCommand);
+        private void ExecuteSteeringMove( object obj )
+        {
+            var msg = new DriveControlEventArgs
+            {
+                EventDir = DriveControlEventArgs.eEventDir.ToBack ,
+                ControlKind = DriveControlEventArgs.eControlKind.Steering ,
+            };
+
+            if ( obj.ToString().Equals( "CW" ) )
+                msg.MoveDir = DriveControlEventArgs.eMoveDir.LEFT;
+            else
+                msg.MoveDir = DriveControlEventArgs.eMoveDir.RIGHT;
 
-            this.JogVelPopupCommand = new DelegateCommand(ExecuteJogVelPopupCommand);
-            this.JogCommand = new DelegateCommand<object>(ExecuteJogCommand);
+            this.PublishEvent( msg );
         }
 
         private void UICallBackCommunication( GUIMessageEventArgs obj )
         {
-            //Property 상태가 바뀔때 마다 표현만 하면 된다?
             if ( obj.Kind == GUIMessageEventArgs.eGUIMessageKind.ModelPropertyChange )
             {
                 if ( obj.MessageKey.Equals( MessageKey.Vehicle ) )
                 {
                     switch ( obj.ModelPropertyName )
                     {
+                        //변화될때 들어오는지 확인
                         case "SteeringState":
                             {
                                 var dir = CastTo<eSteeringState>.From<object>( obj.Args );
                                 this.ChangeSteeringDirection( dir );
                             }
                             break;
-<<<<<<< HEAD
                         case "VehicleStateProperty":
                             {
                                 var v = CastTo<eVehicleState>.From<object>( obj.Args );
                                 this.ChagneVehicleState( v );
                             }
                             break;
-                        case "ObstacleStateProperty":
-                            break;
-=======
                         case "CurrentPosition":
                             {
-                                var v = CastTo<double>.From<object>(obj.Args);
+                                var v = CastTo<double>.From<object>( obj.Args );
+                                this.CurrentPosition = v;
                             }
                             break;
->>>>>>> 944428eda961c69237f00f4b0ce920edb41b0a2e
+                        case "CurrentTag":
+                            break;
+                        case "CurrentSpeed":
+                            break;
+                        case "CurrentTorque":
+                            break;
                         default:
                             break;
                     }
                 }
             }
+
+            if ( obj.Kind == GUIMessageEventArgs.eGUIMessageKind.RspRouteManager )
+            {
+
+            }
         }
 
         private void ChagneVehicleState( eVehicleState v )
         {
-            //TODO:[20/03/20 ys-hwang] Vehicle Manual Move 할때? 상태를 보고 해야?, 아니면 Manual 이니까???? 
-            // 아니면 busy 상태 확인만 ?
             switch ( v )
             {
                 case eVehicleState.None:
@@ -231,35 +253,46 @@ namespace OHV.Module.Interactivity.PopUp
             }
         }
 
-        private void DriveControlCallBack( DriveControlEventArgs args)
+        private void DriveControlCallBack( DriveControlEventArgs args )
         {
-            //TODO:[20/03/19 ys-hwang] Drive UI return msg popup
-
-            if (args.EventDir == DriveControlEventArgs.eEventDir.ToFront)
+            if ( args.EventDir == DriveControlEventArgs.eEventDir.ToFront )
             {
                 switch ( args.ControlKind )
                 {
                     case DriveControlEventArgs.eControlKind.MOVE:
-                        ResponseMove(args);
+                        ResponseMove( args );
                         break;
                     case DriveControlEventArgs.eControlKind.STOP:
                         break;
                     case DriveControlEventArgs.eControlKind.Steering:
+<<<<<<< HEAD
+                        //response 주석 처리
+                        if ( args.Result.IsSuccess )
+                        {
+                            var dir = args.Result.ToResult<eSteeringState>().Value;
+                            this.ChangeSteeringDirection( dir );
+                        }
+=======
                         //if ( args.Result.IsSuccess )
                         //{
-                        //    var dir = args.Result.ToResult<DriveControlEventArgs.eMoveDir>().Value;
-                        //    this.ChangeSteeringDirection( dir == DriveControlEventArgs.eMoveDir.LEFT ? true : false );
+                        //    var dir = args.Result.ToResult<eSteeringState>().Value;
+                        //    this.ChangeSteeringDirection( dir );
                         //}
+>>>>>>> 5102bdb09d0f6db0d065bbce661dff3a85fda270
                         break;
                     case DriveControlEventArgs.eControlKind.SteeringState:
-                        //if ( args.Result.IsSuccess )
-                        //{
-                        //    var dir = args.Result.ToResult<DriveControlEventArgs.eMoveDir>().Value;
-                        //    this.ChangeSteeringDirection( dir == DriveControlEventArgs.eMoveDir.LEFT ? true : false );
-                        //}
+                        if ( args.Result.IsSuccess )
+                        {
+                            var dir = CastTo<eSteeringState>.From<object>( args.Args );
+                            this.ChangeSteeringDirection( dir );
+                        }
+                        else
+                        {
+                            this.ChangeSteeringDirection( eSteeringState.None );
+                        }
                         break;
                     case DriveControlEventArgs.eControlKind.ReqCurrentPos:
-                        this.CurrentDrive = args.CurrentPosition;
+                        this.CurrentPosition = args.CurrentPosition;
                         break;
                     case DriveControlEventArgs.eControlKind.ReqStopCurrentPos:
                         break;
@@ -271,45 +304,56 @@ namespace OHV.Module.Interactivity.PopUp
                         break;
                     case DriveControlEventArgs.eControlKind.JOG:
                         break;
+                    case DriveControlEventArgs.eControlKind.VehicleState:
+                        ResponseVehicleState( args );
+                        break;
                     default:
                         break;
                 }
             }
         }
 
+        private void ResponseVehicleState( DriveControlEventArgs args )
+        {
+            var state = CastTo<VehicleInfo>.From<object>( args.Args );
+
+            this.CurrentPosition = state.CurrentPosition;
+        }
+
         private void ResponseMove( DriveControlEventArgs args )
         {
             var msg = string.Empty;
-            if(args.Result.IsSuccess)
+            if ( args.Result.IsSuccess )
             {
-                msg = "Move Successs";
+                msg = "Move Success";
             }
             else
             {
                 var error = args.Result.Errors.FirstOrDefault();
-                var alarm = error.Metadata[ "Alarm" ] as Alarm;
+                var alarm = error.Metadata["Alarm"] as Alarm;
                 msg = alarm.Name + " " + alarm.Text;
             }
 
             this.messageController.ShowNotificationView( msg );
         }
 
-        void PublishEvent(DriveControlEventArgs args)
+        void PublishEvent( DriveControlEventArgs args )
         {
-            this.eventAggregator.GetEvent<DriveControlPubSubEvent>().Publish(args);
+            args.EventDir = DriveControlEventArgs.eEventDir.ToBack;
+            this.eventAggregator.GetEvent<DriveControlPubSubEvent>().Publish( args );
         }
 
-        void ChangeSteeringDirection(eSteeringState state)
+        void ChangeSteeringDirection( eSteeringState state )
         {
             if ( state == eSteeringState.Left )
             {
-                this.SteeringLeftBrushProperty = ( System.Windows.Media.Brush )new System.Windows.Media.BrushConverter().ConvertFromString( "#FF00FFD3" );
+                this.SteeringLeftBrushProperty = (Brush)new BrushConverter().ConvertFromString( "#FF00FFD3" );
                 this.SteeringRightBrushProperty = Brushes.Gray;
             }
             else if ( state == eSteeringState.Right )
             {
                 this.SteeringLeftBrushProperty = Brushes.Gray;
-                this.SteeringRightBrushProperty = ( System.Windows.Media.Brush )new System.Windows.Media.BrushConverter().ConvertFromString( "#FF00FFD3" );
+                this.SteeringRightBrushProperty = (Brush)new BrushConverter().ConvertFromString( "#FF00FFD3" );
             }
             else
             {
@@ -319,8 +363,14 @@ namespace OHV.Module.Interactivity.PopUp
         }
 
         #region Execute Method
-        private void ExecuteJogCommand(object obj)
+        private void ExecuteJogCommand( object obj )
         {
+            if ( this.JogVelocity <= 0 )
+            {
+                this.messageController.ShowNotificationView( "Check Jog Velocity" );
+                return;
+            }
+
             var msg = new DriveControlEventArgs
             {
                 EventDir = DriveControlEventArgs.eEventDir.ToBack,
@@ -338,114 +388,90 @@ namespace OHV.Module.Interactivity.PopUp
         private void ExecuteJogVelPopupCommand()
         {
             var numPad = new CalcuratorView();
-            var result = numPad.ShowDialog(this.JogVelocity);
+            var result = numPad.ShowDialog( this.JogVelocity );
 
             this.JogVelocity = result;
         }
 
-        private void ExecuteSelectedDirection(object obj)
+        private void ExecuteSelectedDirection( object obj )
         {
             this.SelectDirection = obj.ToString();
         }
 
-        private void ExecuteSteeringCCWCommand(object obj)
-        {
-            var msg = new DriveControlEventArgs
-            {
-                EventDir = DriveControlEventArgs.eEventDir.ToBack,
-                ControlKind = DriveControlEventArgs.eControlKind.Steering,
-            };
-
-            if (obj.ToString().Equals("CCW"))
-                msg.MoveDir = DriveControlEventArgs.eMoveDir.RIGHT;
-            else
-                msg.MoveDir = DriveControlEventArgs.eMoveDir.LEFT;
-
-            this.PublishEvent(msg);
-        }
 
-        private void ExecuteSteeringCWCommand(object obj)
+        private void ExecutePositionSaveCommand()
         {
-            var msg = new DriveControlEventArgs
-            {
-                EventDir = DriveControlEventArgs.eEventDir.ToBack,
-                ControlKind = DriveControlEventArgs.eControlKind.Steering,
-            };
+            this.messageController.ShowConfirmationPopupView( "Save To Data ?", r =>
+             {
+                 if ( r.Result == ButtonResult.OK )
+                 {
+                     var result = this.RouteList.Any( x => x.IsSelected != false );
 
-            if (obj.ToString().Equals("CW"))
-                msg.MoveDir = DriveControlEventArgs.eMoveDir.LEFT;
-            else
-                msg.MoveDir = DriveControlEventArgs.eMoveDir.RIGHT;
+                     if ( !result )
+                     {
+                         this.messageController.ShowNotificationView( "Pos Not Selected" );
+                         return;
+                     }
 
-            this.PublishEvent(msg);
-        }
-
-        private void ExecutePositionSaveCommand()
-        { 
-            this.messageController.ShowConfirmationPopupView("Save To Data ?", r =>
-            {
-              if (r.Result == ButtonResult.OK)
-              {
-                    //TODO:[20/03/18 ys-hwang] DB Table Update
-              }
-            });
+                     var ll = this.RouteList.Where( x => x.IsSelected ).FirstOrDefault();
+                 }
+             } );
         }
 
         private void ExecutePositionDeleteCommand()
         {
-            this.messageController.ShowConfirmationPopupView( "Select To Delete ?" , r =>
-            {
-                if ( r.Result == ButtonResult.OK )
-                {
-                    var deleteList = new List<Route>();
+            this.messageController.ShowConfirmationPopupView( "Select To Delete ?", r =>
+           {
+               if ( r.Result == ButtonResult.OK )
+               {
+                   var deleteList = new List<Route>();
 
-                    foreach ( var item in this.RouteList )
-                    {
-                        if ( item.IsSelected )
-                            deleteList.Add( item );
-                    }
-                    deleteList.ForEach( x => { this.RouteList.Remove( x ); } );
-                }
-            } );
+                   foreach ( var item in this.RouteList )
+                   {
+                       if ( item.IsSelected )
+                           deleteList.Add( item );
+                   }
+                   deleteList.ForEach( x => { this.RouteList.Remove( x ); } );
+               }
+           } );
         }
 
         private void ExecutePositionAddCommand()
         {
-            this.messageController.ShowConfirmationPopupView( "Position Add ?" , r =>
-            {
-                if ( r.Result == ButtonResult.OK )
-                {
-                    this.RouteList.Add( new Route() );
+            this.messageController.ShowConfirmationPopupView( "Position Add ?", r =>
+           {
+               if ( r.Result == ButtonResult.OK )
+               {
+                   this.RouteList.Add( new Route() );
 
-                    this.messageController.ShowNotificationView( "Create Success" );
-                }
-            } );
+                   this.messageController.ShowNotificationView( "Create Success" );
+               }
+           } );
         }
 
-        private void ExecuteKeyInCommadn(object obj)
+        private void ExecuteKeyInCommadn( object obj )
         {
             var numPad = new CalcuratorView();
-            var result = numPad.ShowDialog(this.DriveTargetPos );
+            var result = numPad.ShowDialog( this.DriveTargetPos );
             this.DriveTargetPos = result;
         }
 
         private void ExecuteOriginCommand()
         {
-            this.messageController.ShowConfirmationPopupView( "Origin ?" , r =>
-            {
-                if ( r.Result == ButtonResult.OK )
-                {
-                    //TODO: How to use
-                }
-            } );
+            this.messageController.ShowConfirmationPopupView( "Origin ?", r =>
+           {
+               if ( r.Result == ButtonResult.OK )
+               {
+               }
+           } );
         }
 
         private void ExecuteFaultResetCommand()
         {
             var msg = new DriveControlEventArgs
             {
-                EventDir = DriveControlEventArgs.eEventDir.ToBack ,
-                ControlKind = DriveControlEventArgs.eControlKind.FaultReset ,
+                EventDir = DriveControlEventArgs.eEventDir.ToBack,
+                ControlKind = DriveControlEventArgs.eControlKind.FaultReset,
             };
 
             this.PublishEvent( msg );
@@ -455,8 +481,8 @@ namespace OHV.Module.Interactivity.PopUp
         {
             var msg = new DriveControlEventArgs
             {
-                EventDir = DriveControlEventArgs.eEventDir.ToBack ,
-                ControlKind = DriveControlEventArgs.eControlKind.DriveOFF ,
+                EventDir = DriveControlEventArgs.eEventDir.ToBack,
+                ControlKind = DriveControlEventArgs.eControlKind.DriveOFF,
             };
 
             this.PublishEvent( msg );
@@ -466,8 +492,8 @@ namespace OHV.Module.Interactivity.PopUp
         {
             var msg = new DriveControlEventArgs
             {
-                EventDir = DriveControlEventArgs.eEventDir.ToBack ,
-                ControlKind = DriveControlEventArgs.eControlKind.DriveON ,
+                EventDir = DriveControlEventArgs.eEventDir.ToBack,
+                ControlKind = DriveControlEventArgs.eControlKind.DriveON,
             };
 
             this.PublishEvent( msg );
@@ -475,34 +501,43 @@ namespace OHV.Module.Interactivity.PopUp
 
         private void ExecuteCurrentToTargetCommand()
         {
-            this.messageController.ShowConfirmationPopupView( "Current To Target ?" , r =>
-            {
-                if ( r.Result == ButtonResult.OK )
-                {
-                    this.DriveTargetPos = this.CurrentDrive;
-                }
-            } );
+            this.messageController.ShowConfirmationPopupView( "Current To Target ?", r =>
+           {
+               if ( r.Result == ButtonResult.OK )
+               {
+                   this.DriveTargetPos = this.CurrentPosition;
+               }
+           } );
         }
 
         private void ExecuteMoveToCommand()
         {
-            this.messageController.ShowConfirmationPopupView( "Move To Pos ?" , r =>
-            {
-                if ( r.Result == ButtonResult.OK )
-                {
-                    var msg = new DriveControlEventArgs
-                    {
-                        EventDir = DriveControlEventArgs.eEventDir.ToBack ,
-                        ControlKind = DriveControlEventArgs.eControlKind.MOVE ,
-                        //PositionTag = 
-                    };
+            this.messageController.ShowConfirmationPopupView( "Move To Selected Position ?", r =>
+           {
+               if ( r.Result == ButtonResult.OK )
+               {
+                   var result = this.RouteList.Any( x => x.IsSelected != false );
+                   if ( !result )
+                   {
+                       this.messageController.ShowNotificationView( "Pos Not Selected" );
+                       return;
+                   }
 
-                    this.PublishEvent( msg );
-                }
-            } );
+                   var ll = this.RouteList.Where( x => x.IsSelected ).FirstOrDefault();
+
+                   var msg = new DriveControlEventArgs
+                   {
+                       EventDir = DriveControlEventArgs.eEventDir.ToBack,
+                       ControlKind = DriveControlEventArgs.eControlKind.MOVE,
+                       TargetRouteID = ll.Id,
+                   };
+
+                   this.PublishEvent( msg );
+               }
+           } );
         }
 
-        private void ExecuteSelectPosCommand(object obj)
+        private void ExecuteSelectPosCommand( object obj )
         {
             this.SelectedPosition = obj.ToString();
         }
@@ -517,37 +552,48 @@ namespace OHV.Module.Interactivity.PopUp
 
         public void OnDialogClosed()
         {
-            this.eventAggregator.GetEvent<DriveControlPubSubEvent>().Publish( new DriveControlEventArgs { EventDir = DriveControlEventArgs.eEventDir.ToBack , ControlKind = DriveControlEventArgs.eControlKind.ReqStopCurrentPos } );
+            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 void OnDialogOpened(IDialogParameters parameters)
+        public async void OnDialogOpened( IDialogParameters parameters )
         {
-            var msg = new DriveControlEventArgs
+            Task task = Task.Run( () =>
             {
-                EventDir = DriveControlEventArgs.eEventDir.ToBack,
-                ControlKind = DriveControlEventArgs.eControlKind.SteeringState,
-            };
-            this.PublishEvent(msg);
+                var msg = new DriveControlEventArgs
+                {
+                    EventDir = DriveControlEventArgs.eEventDir.ToBack,
+                    ControlKind = DriveControlEventArgs.eControlKind.SteeringState,
+                };
+                this.PublishEvent( msg );
+
+                this.eventAggregator.GetEvent<DriveControlPubSubEvent>().Publish( new DriveControlEventArgs { EventDir = DriveControlEventArgs.eEventDir.ToBack, ControlKind = DriveControlEventArgs.eControlKind.VehicleState } );
+
+                var vcsMsg = new VCSMessageEventArgs() { Kind = VCSMessageEventArgs.eVCSMessageKind.ReqRouteManager };
+                this.eventAggregator.GetEvent<VCSMessagePubSubEvent>().Publish( vcsMsg );
+
+                this.RouteList = new ObservableCollection<Route>( sql.RouteDal.All );
+            } );
 
-            this.eventAggregator.GetEvent<DriveControlPubSubEvent>().Publish( new DriveControlEventArgs { EventDir = DriveControlEventArgs.eEventDir.ToBack , ControlKind = DriveControlEventArgs.eControlKind.ReqCurrentPos } );
+            await task;
         }
 
-        private void CloseDialog(string parameter)
+        private void CloseDialog( string parameter )
         {
             ButtonResult result = ButtonResult.None;
 
-            if (parameter?.ToLower() == "true")
+            if ( parameter?.ToLower() == "true" )
                 result = ButtonResult.OK;
-            else if (parameter?.ToLower() == "false")
+            else if ( parameter?.ToLower() == "false" )
                 result = ButtonResult.Cancel;
 
-            RaiseRequestClose(new DialogResult(result));
+            RaiseRequestClose( new DialogResult( result ) );
         }
 
-        public virtual void RaiseRequestClose(IDialogResult dialogResult)
+        public virtual void RaiseRequestClose( IDialogResult dialogResult )
         {
-            RequestClose?.Invoke(dialogResult);
+            RequestClose?.Invoke( dialogResult );
         }
         #endregion
     }

+ 0 - 4
Dev/OHV/OHV.Module.Status/VehicleStatusViewModel.cs

@@ -100,8 +100,6 @@ namespace OHV.Module.Status
             {
                 switch ( obj.ControlKind )
                 {
-                    case DriveControlEventArgs.eControlKind.NONE:
-                        break;
                     case DriveControlEventArgs.eControlKind.MOVE:
                         break;
                     case DriveControlEventArgs.eControlKind.STOP:
@@ -126,8 +124,6 @@ namespace OHV.Module.Status
                         var state = CastTo<VehicleInfo>.From<object>( obj.Args );
                         this.VehicleCurrentPos = state.CurrentPosition;
                         break;
-                    case DriveControlEventArgs.eControlKind.Conveyor:
-                        break;
                 }
             }
         }

+ 7 - 26
Dev/OHV/OHV.Vehicle/Concept/D_MainWindow.xaml

@@ -186,35 +186,16 @@
                 </Grid>
 
                 <Grid Grid.Row="1">
-                    <Border Margin="5" BorderBrush="#FF00FFD3" BorderThickness="2">
-                    </Border>
-                    <StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center">
-                        <StackPanel Orientation="Vertical" VerticalAlignment="Center" HorizontalAlignment="Center">
-                            <!--<Button Content="Vehicle ID" Margin="3" Background="{x:Null}"/>
-                            <Button Content="Vehicle IP" Margin="3" Background="{x:Null}"/>
-                            <Button Content="OCS IP" Margin="3" Background="{x:Null}"/>-->
-                            <!--<Button Content="Version" Margin="3" Background="{x:Null}"/>
-                            <Button Content="CPU" Margin="3" Background="{x:Null}"/>-->
-                            <!--<Button Margin="3" Height="50" Background="{x:Null}">
-                                <StackPanel>
-                                    <TextBlock HorizontalAlignment="Center"><Run>Last Builded</Run></TextBlock>
-                                    <TextBlock HorizontalAlignment="Center"><Run>Time</Run></TextBlock>
-                                </StackPanel>
-                            </Button>-->
+                    <Border Margin="5" BorderBrush="#FF00FFD3" BorderThickness="2"/>
+                    <StackPanel Orientation="Vertical" VerticalAlignment="Center" HorizontalAlignment="Center">
+
+                        <StackPanel Orientation="Horizontal">
+                             <!--???    무엇을 표현 해야 할까... 흠...    -->
                         </StackPanel>
 
-                        <StackPanel Orientation="Vertical" VerticalAlignment="Center" HorizontalAlignment="Center">
-                            <!--<Button Content="{Binding VehicleID, FallbackValue=VM00001}" Margin="3" Background="{x:Null}"/>
-                            <Button Content="{Binding VehicleIP, FallbackValue=127.0.0.1}" Margin="3" Background="{x:Null}"/>
-                            <Button Content="{Binding OcsIP, FallbackValue=192.168.0.10}" Margin="3" Background="{x:Null}"/>-->
-                            <!--<Button Content="{Binding SwVersion, FallbackValue=OHV.1.0.0.1}" Margin="3" Background="{x:Null}"/>
-                            <Button Margin="0,4,0,0" Height="30" Width="auto" Background="{x:Null}">
-                                <TextBlock HorizontalAlignment="Center"><Run Text="{Binding CPU, StringFormat={}{0:0.0} %, FallbackValue=0%}"/></TextBlock>
-                            </Button>-->
-                            <!--<Button Height="50" Margin="3" Background="{x:Null}">
-                                <TextBlock Text="{Binding LastBuildedTime, FallbackValue=2020-03-09 14:53:06, StringFormat=' \{0:yyyy-MM-dd HH:mm:ss\}'}"/>
-                            </Button>-->
+                        <StackPanel Orientation="Horizontal">
                         </StackPanel>
+                    
                     </StackPanel>
                 </Grid>
 

+ 2 - 1
Dev/OHV/OHV.Vehicle/Concept/D_MainWindowViewModel.cs

@@ -525,13 +525,14 @@ namespace OHV.Vehicle.Concept
             {
                 switch(args.ModelPropertyName)
                 {
+                    //TODO:[20/04/27]::비클 상태 표시 변화 확인, 리셋 후에 변화 되는지 
                     case "VehicleStateProperty":
                         {
                             var vehicleState = CastTo<eVehicleState>.From<object>( args.Args );
                             if ( vehicleState == eVehicleState.Abnormal )
                                 this.IsVehicleAlarm = true;
                             else
-                                this.IsVehicleAlarm = false;
+                                this.IsVehicleAlarm = false; 
                         }
                         break;
                     case "MachineMode":

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

@@ -27,7 +27,6 @@ namespace VehicleControlSystem.ControlLayer
         IEventAggregator eventAggregator;
         TaskCancel taskCancel = new TaskCancel();
 
-        //TODO:[20/03/25 ys-hwang] Clamp State 필요함.
         eClampState _clampState;
         public eClampState ClampState
         {

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

@@ -106,7 +106,7 @@ namespace VehicleControlSystem.ControlLayer.Drive
                 try
                 {
                     LockUtils.Wait( 10 );
-                    this.GetReqSteeringState();
+                    //this.GetReqSteeringState();
                     //this.GetServoState();
                     //if (Redis.Instance.GetDriveMove() )
                     //{
@@ -145,13 +145,13 @@ namespace VehicleControlSystem.ControlLayer.Drive
                 {
                     LockUtils.Wait( 10 );
 
-                    if ( Redis.Instance.GetDriveMove() )
-                    {
-                        this.IsloggingStart = true;
-                        this.LoggingState();
-                    }
-                    else
-                        this.IsloggingStart = false;
+                    //if ( Redis.Instance.GetDriveMove() )
+                    //{
+                    //    this.IsloggingStart = true;
+                    //    this.LoggingState();
+                    //}
+                    //else
+                    //    this.IsloggingStart = false;
                 }
                 catch ( Exception e )
                 {