18 Commits 85a12f201e ... 2f125ec586

Autor SHA1 Nachricht Datum
  ys-hwang 2f125ec586 3호기 현장 작업 업데이트 vor 5 Jahren
  ys-hwang 38466dd5a6 Merge branch 'master' of http://unque781.synology.me:3000/GSI/OHV vor 5 Jahren
  ys-hwang 60aec55e2f 충돌 병합 vor 5 Jahren
  ys-hwang fc857fb89f Merge branch 'master' of http://unque781.synology.me:3000/GSI/OHV vor 5 Jahren
  ys-hwang 152e38e93d 충돌 병합 vor 5 Jahren
  ys-hwang e286980ba9 Merge branch 'master' of http://unque781.synology.me:3000/GSI/OHV vor 5 Jahren
  ys-hwang 66baa678f1 충돌 병합 vor 5 Jahren
  ys-hwang b9119b91a2 Merge branch 'master' of http://unque781.synology.me:3000/GSI/OHV vor 5 Jahren
  ys-hwang 1c7d8a8f30 충돌 병합 vor 5 Jahren
  ys-hwang dc16f47b8d Merge branch 'master' of http://unque781.synology.me:3000/GSI/OHV vor 6 Jahren
  ys-hwang fa4a19595d 충돌 병합 vor 6 Jahren
  ys-hwang cabdb89304 Merge branch 'master' of http://unque781.synology.me:3000/GSI/OHV vor 6 Jahren
  ys-hwang d8f94141b7 충돌 병합 vor 6 Jahren
  ys-hwang ccef610425 충돌병합 vor 6 Jahren
  ys-hwang 941b81674d Merge branch 'master' of http://unque781.synology.me:3000/GSI/OHV vor 6 Jahren
  ys-hwang eee5f5116b 충돌 병합 vor 6 Jahren
  ys-hwang d82b93c88f Merge branch 'master' of http://unque781.synology.me:3000/GSI/OHV vor 6 Jahren
  ys-hwang de8ba4bc48 충돌 병합 vor 6 Jahren

+ 1 - 1
Dev/Connection/OHVProtocolServer/OHVConnector/Manager.cs

@@ -581,7 +581,7 @@ namespace OHVConnector
                 }
             }
         }
-        #endregion
+        #endregion`
 
     }
 }

BIN
Dev/OHV/Assambly/OHVConnector.dll


BIN
Dev/OHV/Assambly/OHVConnector.pdb


+ 172 - 238
Dev/OHV/OHV.Module.Interactivity/PopUp/ServoConfigView.xaml

@@ -43,264 +43,198 @@
             </Grid.RowDefinitions>
 
             <Grid Grid.Row="0">
-                <TextBlock Margin="15,0,0,0" Text="Drive View" FontSize="25" Foreground="White"/>
+                <TextBlock Margin="15,0,0,0" Text="Drive Config View" FontSize="25" Foreground="White"/>
             </Grid>
 
-            <Grid Grid.Column="0" Grid.Row="1">
-                <Grid Margin="15,15" Background="#37474f">
-                    <Grid.RowDefinitions>
-                        <RowDefinition Height="*"/>
-                        <RowDefinition Height="*"/>
-                    </Grid.RowDefinitions>
-
-                    <Grid Grid.Row="0">
-                        <Border BorderBrush="Gray" BorderThickness="1">
-                            <StackPanel>
-                                <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
-                                    <Grid.ColumnDefinitions>
-                                        <ColumnDefinition Width="*"/>
-                                        <ColumnDefinition Width="*"/>
-                                        <ColumnDefinition Width="*"/>
-                                        <ColumnDefinition Width="*"/>
-                                    </Grid.ColumnDefinitions>
-                                    <Grid.RowDefinitions>
-                                        <RowDefinition Height="*"/>
-                                        <RowDefinition Height="*"/>
-                                        <RowDefinition Height="*"/>
-                                        <RowDefinition Height="*"/>
-                                        <RowDefinition Height="*"/>
-                                        <RowDefinition Height="*"/>
-                                        <RowDefinition Height="*"/>
-                                        <RowDefinition Height="*"/>
-                                    </Grid.RowDefinitions>
-
-                                    <Grid Grid.Row="0">
-                                        <TextBlock/>
-                                    </Grid>
-
-                                    <Grid Grid.Row="1">
-                                        <Border BorderBrush="#FF349FDA" BorderThickness="1"/>
-                                        <TextBlock Text="Front" FontSize="30" Foreground="White" VerticalAlignment="Center" HorizontalAlignment="Center"/>
-                                    </Grid>
-                                    <Grid Grid.Row="2">
-                                        <TextBlock/>
-                                    </Grid>
-                                    <Grid Grid.Row="3">
-                                        <TextBlock/>
-                                    </Grid>
-                                    <Grid Grid.Row="4">
-                                        <TextBlock/>
-                                    </Grid>
-                                    <Grid Grid.Row="5">
-                                        <TextBlock/>
-                                    </Grid>
-                                    <Grid Grid.Row="6">
-                                        <TextBlock/>
-                                    </Grid>
-                                    <Grid Grid.Row="7">
-                                        <TextBlock/>
-                                    </Grid>
-
-                                    <Grid Grid.Row="4">
-                                        <Border BorderBrush="Gray" BorderThickness="1"/>
-                                        <TextBlock Text="Speed" FontSize="30" Foreground="White" VerticalAlignment="Center" HorizontalAlignment="Center"/>
-                                    </Grid>
-
-                                    <Grid Grid.Row="4"  Grid.Column="1">
-                                        <Border BorderBrush="Gray" BorderThickness="1"/>
-                                        <TextBlock Text="Torque" FontSize="30" Foreground="White" VerticalAlignment="Center" HorizontalAlignment="Center"/>
-                                    </Grid>
-
-                                    <Grid Grid.Row="4" Grid.Column="2">
-                                        <Border BorderBrush="Gray" BorderThickness="1"/>
-                                        <TextBlock Text="Rpm" FontSize="30" Foreground="White" VerticalAlignment="Center" HorizontalAlignment="Center"/>
-                                    </Grid>
-
-                                    <Grid Grid.Row="4" Grid.Column="3">
-                                        <Border BorderBrush="Gray" BorderThickness="1"/>
-                                        <TextBlock Text="Loadage" FontSize="30" Foreground="White" VerticalAlignment="Center" HorizontalAlignment="Center"/>
-                                    </Grid>
-
-                                    <Grid Grid.Row="5">
-                                        <Border BorderBrush="Gray" BorderThickness="1"/>
-                                        <TextBlock Text="{Binding FrontSpeed, FallbackValue=0.0}" FontSize="30" Foreground="Orange" VerticalAlignment="Center" HorizontalAlignment="Center"/>
-                                    </Grid>
-
-                                    <Grid Grid.Row="5" Grid.Column="1">
-                                        <Border BorderBrush="Gray" BorderThickness="1"/>
-                                        <TextBlock Text="{Binding FrontTorque, FallbackValue=0.0}" FontSize="30" Foreground="Orange" VerticalAlignment="Center" HorizontalAlignment="Center"/>
-                                    </Grid>
+            <Grid Grid.Row="1" Background="{x:Null}">
+                <Grid.RowDefinitions>
+                    <RowDefinition Height="40"/>
+                    <RowDefinition Height="*"/>
+                    <RowDefinition Height="*"/>
+                    <RowDefinition Height="*"/>
+                    <RowDefinition Height="*"/>
+                    <RowDefinition Height="*"/>
+                    <RowDefinition Height="*"/>
+                    <RowDefinition Height="*"/>
+                    <RowDefinition Height="*"/>
+                    <RowDefinition Height="*"/>
+                    <RowDefinition Height="*"/>
+                    <RowDefinition Height="*"/>
+                    <RowDefinition Height="*"/>
+                    <RowDefinition Height="*"/>
+                </Grid.RowDefinitions>
+                <Grid.ColumnDefinitions>
+                    <ColumnDefinition Width="*"/>
+                    <ColumnDefinition Width="*"/>
+                </Grid.ColumnDefinitions>
+
+                <Grid Grid.ColumnSpan="2" Background="#163238">
+                    <Border BorderBrush="Gray" BorderThickness="1">
+                        <TextBlock Margin="15,0,0,0" Text="Settings Auto" Foreground="Orange" HorizontalAlignment="Left" VerticalAlignment="Center" FontSize="20"/>
+                    </Border>
+                </Grid>
 
-                                    <Grid Grid.Row="5" Grid.Column="2">
-                                        <Border BorderBrush="Gray" BorderThickness="1"/>
-                                        <TextBlock Text="{Binding FrontRpm, FallbackValue=0.0}" FontSize="30" Foreground="Orange" VerticalAlignment="Center" HorizontalAlignment="Center"/>
-                                    </Grid>
+                <Grid Grid.Row="1">
+                    <Border BorderBrush="Gray" BorderThickness="1">
+                        <TextBlock Text="Acceleration m/s^2" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="17"/>
+                    </Border>
+                </Grid>
 
-                                    <Grid Grid.Row="5" Grid.Column="3">
-                                        <Border BorderBrush="Gray" BorderThickness="1"/>
-                                        <TextBlock Text="{Binding FrontLoadage, FallbackValue=0.0}" FontSize="30" Foreground="Orange" VerticalAlignment="Center" HorizontalAlignment="Center"/>
-                                    </Grid>
-                                </Grid>
-                            </StackPanel>
+                <Grid Grid.Row="2">
+                        <Border BorderBrush="Gray" BorderThickness="1">
+                        <TextBlock Text="Deceleration m/s^2" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="17"/>
                         </Border>
                     </Grid>
+                    <Grid Grid.Row="3">
+                    <Border BorderBrush="Gray" BorderThickness="1">
+                        <TextBlock Text="Creep Speed m/s" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="17"/>
+                    </Border>
+                        </Grid>
 
-                    <Grid Grid.Row="1">
+                    <Grid Grid.Row="4">
                         <Border BorderBrush="Gray" BorderThickness="1">
-                            <StackPanel>
-                                <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
-                                    <Grid.ColumnDefinitions>
-                                        <ColumnDefinition Width="*"/>
-                                        <ColumnDefinition Width="*"/>
-                                        <ColumnDefinition Width="*"/>
-                                        <ColumnDefinition Width="*"/>
-                                    </Grid.ColumnDefinitions>
-                                    <Grid.RowDefinitions>
-                                        <RowDefinition Height="*"/>
-                                        <RowDefinition Height="*"/>
-                                        <RowDefinition Height="*"/>
-                                        <RowDefinition Height="*"/>
-                                        <RowDefinition Height="*"/>
-                                        <RowDefinition Height="*"/>
-                                        <RowDefinition Height="*"/>
-                                        <RowDefinition Height="*"/>
-                                    </Grid.RowDefinitions>
-
-                                    <Grid Grid.Row="0">
-                                        <TextBlock/>
-                                    </Grid>
-
-                                    <Grid Grid.Row="1">
-                                        <Border BorderBrush="#FF349FDA" BorderThickness="1"/>
-                                        <TextBlock Text="Back" FontSize="30" Foreground="White" VerticalAlignment="Center" HorizontalAlignment="Center" TextAlignment="Center"/>
-                                    </Grid>
-                                    <Grid Grid.Row="2">
-                                        <TextBlock/>
-                                    </Grid>
-                                    <Grid Grid.Row="3">
-                                        <TextBlock/>
-                                    </Grid>
-                                    <Grid Grid.Row="4">
-                                        <TextBlock/>
-                                    </Grid>
-                                    <Grid Grid.Row="5">
-                                        <TextBlock/>
-                                    </Grid>
-                                    <Grid Grid.Row="6">
-                                        <TextBlock/>
-                                    </Grid>
-                                    <Grid Grid.Row="7">
-                                        <TextBlock/>
-                                    </Grid>
-
-                                    <Grid Grid.Row="4">
-                                        <Border BorderBrush="Gray" BorderThickness="1"/>
-                                        <TextBlock Text="Speed" FontSize="30" Foreground="White" VerticalAlignment="Center" HorizontalAlignment="Center"/>
-                                    </Grid>
-
-                                    <Grid Grid.Row="4"  Grid.Column="1">
-                                        <Border BorderBrush="Gray" BorderThickness="1"/>
-                                        <TextBlock Text="Torque" FontSize="30" Foreground="White" VerticalAlignment="Center" HorizontalAlignment="Center"/>
-                                    </Grid>
-
-                                    <Grid Grid.Row="4" Grid.Column="2">
-                                        <Border BorderBrush="Gray" BorderThickness="1"/>
-                                        <TextBlock Text="Rpm" FontSize="30" Foreground="White" VerticalAlignment="Center" HorizontalAlignment="Center"/>
-                                    </Grid>
-
-                                    <Grid Grid.Row="4" Grid.Column="3">
-                                        <Border BorderBrush="Gray" BorderThickness="1"/>
-                                        <TextBlock Text="Loadage" FontSize="30" Foreground="White" VerticalAlignment="Center" HorizontalAlignment="Center"/>
-                                    </Grid>
-
-                                    <Grid Grid.Row="5">
-                                        <Border BorderBrush="Gray" BorderThickness="1"/>
-                                        <TextBlock Text="{Binding BackSpeed, FallbackValue=0.0}" FontSize="30" Foreground="Orange" VerticalAlignment="Center" HorizontalAlignment="Center"/>
-                                    </Grid>
-
-                                    <Grid Grid.Row="5" Grid.Column="1">
-                                        <Border BorderBrush="Gray" BorderThickness="1"/>
-                                        <TextBlock Text="{Binding BackTorque, FallbackValue=0.0}" FontSize="30" Foreground="Orange" VerticalAlignment="Center" HorizontalAlignment="Center"/>
-                                    </Grid>
-
-                                    <Grid Grid.Row="5" Grid.Column="2">
-                                        <Border BorderBrush="Gray" BorderThickness="1"/>
-                                        <TextBlock Text="{Binding BackRpm, FallbackValue=0.0}" FontSize="30" Foreground="Orange" VerticalAlignment="Center" HorizontalAlignment="Center"/>
-                                    </Grid>
-
-                                    <Grid Grid.Row="5" Grid.Column="3">
-                                        <Border BorderBrush="Gray" BorderThickness="1"/>
-                                        <TextBlock Text="{Binding BackLoadage, FallbackValue=0.0}" FontSize="30" Foreground="Orange" VerticalAlignment="Center" HorizontalAlignment="Center"/>
-                                    </Grid>
-                                </Grid>
-                            </StackPanel>
+                        <TextBlock Text="Creep Distance" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="17"/>
                         </Border>
                     </Grid>
 
-                    <!--<Grid Grid.Row="0">
-                        <Border Margin="5" BorderBrush="Gray" BorderThickness="1" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"/>
-                        <Button Background="{x:Null}" Foreground="Orange" Margin="10,10,657,226" Height="Auto">
-                            <TextBlock Text="Drive" FontSize="20"/>
-                        </Button>
-                        <StackPanel Orientation="Horizontal"
-                                HorizontalAlignment="Center"
-                                VerticalAlignment="Center">
+                <Grid Grid.Row="5">
+                    <Border BorderBrush="Gray" BorderThickness="1">
+                        <TextBlock Text="Linear Speed(m/s) [Max: 2.5, Min: 0.5]" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="17"/>
+                    </Border>
+                </Grid>
+                <Grid Grid.Row="6">
+                    <Border BorderBrush="Gray" BorderThickness="1">
+                        <TextBlock Text="Curve Speed(m/s) [Max: 0.5, Min:0.05]" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="17"/>
+                    </Border>
+                </Grid>
+                <!--<Grid Grid.Row="7">
+                    <Border BorderBrush="Gray" BorderThickness="1">
+                        <TextBlock Text="Min Linear Speed(m/s)" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="17"/>
+                    </Border>
+                </Grid>
+                <Grid Grid.Row="8">
+                    <Border BorderBrush="Gray" BorderThickness="1">
+                        <TextBlock Text="Min curve Speed(m/s)" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="17"/>
+                    </Border>
+                </Grid>-->
+
+                <Grid Grid.Row="7">
+                    <Border BorderBrush="Gray" BorderThickness="1">
+                        <TextBlock Text="Steering Change Timeout (s)" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="17"/>
+                    </Border>
+                </Grid>
 
-                            <StackPanel Orientation="Vertical"
-                                    VerticalAlignment="Center">
-                                <Button Content="Name" Background="{x:Null}" FontSize="20"/>
-                                <Button Content="ID" Background="{x:Null}" FontSize="20"/>
-                                <Button Content="IP" Background="{x:Null}" FontSize="20"/>
-                                <Button Content="Scale" Background="{x:Null}" FontSize="20"/>
-                            </StackPanel>
+                <Grid Grid.Row="10" Grid.ColumnSpan="2" Background="#163238">
+                    <Border BorderBrush="Gray" BorderThickness="1">
+                        <TextBlock Margin="15,0,0,0" Text="Settings Manual" Foreground="Orange" HorizontalAlignment="Left" VerticalAlignment="Center" FontSize="20"/>
+                    </Border>
+                </Grid>
 
-                            <StackPanel Orientation="Vertical" 
-                                    VerticalAlignment="Center">
-                                <Button Content="{Binding DriveName, FallbackValue=OHV_DRIVE}" FontSize="20" Background="{x:Null}"/>
-                                <Button Content="{Binding DriveID, FallbackValue=Drive}" FontSize="20" Background="{x:Null}"/>
-                                <Button Content="{Binding DriveIP, FallbackValue=192.168.0.1}" FontSize="20" Background="{x:Null}"/>
-                                <Button Content="{Binding DriveScale, FallbackValue=0.001}" FontSize="20" Background="{x:Null}"/>
-                            </StackPanel>
-                        </StackPanel>
-                    </Grid>
+                <Grid Grid.Row="11">
+                    <Border BorderBrush="Gray" BorderThickness="1">
+                        <TextBlock Text="Max Linear Speed(m/s)" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="17"/>
+                    </Border>
+                </Grid>
 
-                    <Grid Grid.Row="1">
-                        <Border Margin="5" BorderBrush="Gray" BorderThickness="1" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"/>
-                        <Button Background="{x:Null}" Foreground="Orange" Margin="10,10,657,226" Height="Auto">
-                            <TextBlock Text="Lock Servo" FontSize="20"/>
-                        </Button>
-                        <StackPanel Orientation="Horizontal"
-                                HorizontalAlignment="Center"
-                                VerticalAlignment="Center">
+                <Grid Grid.Row="12">
+                    <Border BorderBrush="Gray" BorderThickness="1">
+                        <TextBlock Text="Max Curve Speed(m/s)" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="17"/>
+                    </Border>
+                </Grid>
 
-                            <StackPanel Orientation="Vertical"
-                                    VerticalAlignment="Center">
-                                <Button Content="Name" Background="{x:Null}" FontSize="20" Height="Auto"/>
-                                <Button Content="ID" Background="{x:Null}" FontSize="20" Height="Auto"/>
-                                <Button Content="IP" Background="{x:Null}" FontSize="20" Height="Auto"/>
-                                <Button Content="Scale" Background="{x:Null}" FontSize="20" Height="Auto"/>
-                            </StackPanel>
+                <Grid Grid.Row="13">
+                    <Border BorderBrush="Gray" BorderThickness="1">
+                        <TextBlock Text="Command TimeOut(msec)" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="17"/>
+                    </Border>
+                </Grid>
 
-                            <StackPanel Orientation="Vertical" 
-                                    VerticalAlignment="Center">
-                                <Button Content="{Binding LockLeftName, FallbackValue=Axis_CarrierLock_Left}" Background="{x:Null}" FontSize="20" Height="Auto"/>
-                                <Button Content="{Binding LockLeftID, FallbackValue=1}" Background="{x:Null}" FontSize="20" Height="Auto"/>
-                                <Button Content="{Binding LockLeftIP, FallbackValue=100.100.100.20}" Background="{x:Null}" FontSize="20" Height="Auto" />
-                                <Button Content="{Binding LockLeftScale, FallbackValue=0.001}" Background="{x:Null}" FontSize="20" Height="Auto"/>
-                            </StackPanel>
-                            <StackPanel Orientation="Vertical"
-                                    VerticalAlignment="Center">
-                                <Button Content="{Binding LockRightName, FallbackValue=Axis_CarrierLock_Right}" FontSize="20" Background="{x:Null}" Height="Auto"/>
-                                <Button Content="{Binding LockRightID, FallbackValue=2}" FontSize="20" Background="{x:Null}" Height="Auto"/>
-                                <Button Content="{Binding LockRightIP, FallbackValue=100.100.100.21}" FontSize="20" Background="{x:Null}" Height="Auto"/>
-                                <Button Content="{Binding LockRightScale, FallbackValue=0.001}" FontSize="20" Background="{x:Null}" Height="Auto"/>
-                            </StackPanel>
-                        </StackPanel>
-                    </Grid>-->
+                <Grid Grid.Row="1" Grid.Column="1">
+                    <Border BorderBrush="Gray" BorderThickness="1">
+                        <TextBlock Text="{Binding Acceleration, FallbackValue=0.00 m/s}" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="17"/>
+                    </Border>
+                </Grid>
+                <Grid Grid.Row="2" Grid.Column="1">
+                    <Border BorderBrush="Gray" BorderThickness="1">
+                        <TextBlock Text="{Binding Deceleration, FallbackValue=0.00 m/s}" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="17"/>
+                    </Border>
+                </Grid>
+                <Grid Grid.Row="3" Grid.Column="1">
+                    <Border BorderBrush="Gray" BorderThickness="1">
+                        <TextBlock Text="{Binding CreepSped, FallbackValue=0.00 m/s}" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="17"/>
+                    </Border>
+                </Grid>
+                <Grid Grid.Row="4" Grid.Column="1">
+                    <Border BorderBrush="Gray" BorderThickness="1">
+                        <TextBlock Text="{Binding CreepDistance, FallbackValue=0.00 m/s}" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="17"/>
+                    </Border>
+                </Grid>
+                <Grid Grid.Row="5" Grid.Column="1">
+                    <Border BorderBrush="Gray" BorderThickness="1">
+                        <TextBlock Text="{Binding LinearSpeed, FallbackValue=0.00 m/s}" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="17"/>
+                    </Border>
+                </Grid>
+                <Grid Grid.Row="6" Grid.Column="1">
+                    <Border BorderBrush="Gray" BorderThickness="1">
+                        <TextBlock Text="{Binding CurveSpeed, FallbackValue=0.00 m/s}" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="17"/>
+                    </Border>
+                </Grid>
+                <!--<Grid Grid.Row="7" Grid.Column="1">
+                    <Border BorderBrush="Gray" BorderThickness="1">
+                        <TextBlock Text="0.000 m/s" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="17"/>
+                    </Border>
+                </Grid>
+                <Grid Grid.Row="8" Grid.Column="1">
+                    <Border BorderBrush="Gray" BorderThickness="1">
+                        <TextBlock Text="0.000 m/s" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="17"/>
+                    </Border>
+                </Grid>-->
+                <Grid Grid.Row="7" Grid.Column="1">
+                    <Border BorderBrush="Gray" BorderThickness="1">
+                        <TextBlock Text="{Binding SteeringChageTimeout, FallbackValue=0.00 m/s}" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="17"/>
+                    </Border>
+                </Grid>
 
+                <Grid Grid.Row="11" Grid.Column="1">
+                    <Border BorderBrush="Gray" BorderThickness="1">
+                        <TextBlock Text="{Binding ManualMaxLinearSpeed, FallbackValue=0.00 m/s}" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="17"/>
+                    </Border>
+                </Grid>
+
+                <Grid Grid.Row="12" Grid.Column="1">
+                    <Border BorderBrush="Gray" BorderThickness="1">
+                        <TextBlock Text="{Binding ManualMaxCurveSpeed, FallbackValue=0.00 m/s}" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="17"/>
+                    </Border>
+                </Grid>
+
+                <Grid Grid.Row="13" Grid.Column="1">
+                    <Border BorderBrush="Gray" BorderThickness="1">
+                        <TextBlock Text="{Binding ManualCommandTimeout, FallbackValue=0.00 m/s}" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="17"/>
+                    </Border>
                 </Grid>
             </Grid>
 
+            <!--<Grid Grid.Row="1">
+                <DataGrid ItemsSource="{Binding ConfigListProperty}" CanUserSortColumns="True" CanUserAddRows="False" AutoGenerateColumns="False" materialDesign:DataGridAssist.CellPadding="13 8 8 8" 
+                                  materialDesign:DataGridAssist.ColumnHeaderPadding="8" Background="{x:Null}" IsReadOnly="False" Foreground="White">
+
+                    <DataGrid.Resources>
+                        <Style TargetType="{x:Type DataGridRow}">
+                            <Style.Triggers>
+                                <Trigger Property="IsSelected" Value="false">
+                                    <Setter Property="Background" Value="{x:Null}"></Setter>
+                                </Trigger>
+                            </Style.Triggers>
+                            <Setter Property="TextBlock.TextAlignment" Value="Center" />
+                            <Setter Property="FontSize" Value="15"/>
+                        </Style>
+                    </DataGrid.Resources>
+                    <DataGrid.Columns>
+                        <materialDesign:DataGridTextColumn Header="Name" Binding="{Binding Name}" Width="300" EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnPopupEditingStyle}" IsReadOnly="True"></materialDesign:DataGridTextColumn>
+                        <materialDesign:DataGridTextColumn Header="Value" Binding="{Binding Value}" EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnPopupEditingStyle}"></materialDesign:DataGridTextColumn>
+                    </DataGrid.Columns>
+                </DataGrid>
+            </Grid>-->
+
             <Grid Grid.Column="2" HorizontalAlignment="Stretch" Background="#263238" Grid.RowSpan="2">
                 <Border Margin="1" BorderBrush="#FF00FFD3" BorderThickness="2" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"/>
                 <StackPanel VerticalAlignment="Bottom">

+ 76 - 126
Dev/OHV/OHV.Module.Interactivity/PopUp/ServoConfigViewModel.cs

@@ -38,132 +38,124 @@ namespace OHV.Module.Interactivity.PopUp
             }
         }
 
-        #region Left
-        string _lockLeftName;
-        public string LockLeftName
-        {
-            get { return this._lockLeftName; }
-            set { this.SetProperty( ref this._lockLeftName , value ); }
-        }
+        #region Drive Property
 
-        int _lockLeftID;
-        public int LockLeftID
-        {
-            get { return this._lockLeftID; }
-            set { this.SetProperty( ref this._lockLeftID , value ); }
-        }
+        #region Auto
+        private double acceleration;
 
-        string _lockLeftIP;
-        public string LockLeftIP
+        public double Acceleration
         {
-            get { return this._lockLeftIP; }
-            set { this.SetProperty( ref this._lockLeftIP , value ); }
+            get { return acceleration; }
+            set
+            {
+                SetProperty( ref this.acceleration , value );
+            }
         }
 
-        double _lockLeftScale;
-        public double LockLeftScale
-        {
-            get { return this._lockLeftScale; }
-            set { this.SetProperty( ref this._lockLeftScale , value ); }
-        }
-        #endregion
-        #region Right
-        string _lockRightName;
-        public string LockRightName
-        {
-            get { return this._lockRightName; }
-            set { this.SetProperty( ref this._lockRightName , value ); }
-        }
+        private double deceleration;
 
-        int _lockRightID;
-        public int LockRightID
+        public double Deceleration
         {
-            get { return this._lockRightID; }
-            set { this.SetProperty( ref this._lockRightID , value ); }
+            get { return deceleration; }
+            set 
+            {
+                SetProperty( ref this.deceleration , value );
+            }
         }
 
-        string _lockRightIP;
-        public string LockRightIP
-        {
-            get { return this._lockRightIP; }
-            set { this.SetProperty( ref this._lockRightIP , value ); }
-        }
+        private double creepSpeed;
 
-        double _lockRightScale;
-        public double LockRightScale
+        public double CreepSpeed
         {
-            get { return this._lockRightScale; }
-            set { this.SetProperty( ref this._lockRightScale , value ); }
+            get { return creepSpeed; }
+            set 
+            {
+                SetProperty( ref this.creepSpeed , value );
+            }
         }
-        #endregion
 
-        #region Front Drive
-        private double frontSpeed;
+        private double creepDistance;
 
-        public double FrontSpeed
+        public double CreepDistance
         {
-            get { return frontSpeed; }
-            set { this.SetProperty( ref this.frontSpeed , value ); }
+            get { return creepDistance; }
+            set 
+            {
+                SetProperty( ref this.creepDistance , value );
+            }
         }
 
-        private double frontTorque;
+        private double linearSpeed;
 
-        public double FrontTorque
+        public double LinearSpeed
         {
-            get { return frontTorque; }
-            set { this.SetProperty( ref this.frontTorque , value ); }
+            get { return linearSpeed; }
+            set 
+            {
+                SetProperty( ref this.linearSpeed , value );
+            }
         }
 
-        private double frontRpm;
+        private double curveSpeed;
 
-        public double FrontRpm
+        public double CurveSpeed
         {
-            get { return frontRpm; }
-            set { this.SetProperty( ref this.frontRpm , value ); }
+            get { return curveSpeed; }
+            set 
+            {
+                SetProperty( ref this.curveSpeed , value );
+            }
         }
 
-        private double frontLoadage;
+        private int steeringChangeTimeout;
 
-        public double FrontLoadage
+        public int SteeringChangeTimeout
         {
-            get { return frontLoadage; }
-            set { this.SetProperty( ref this.frontLoadage , value ); }
+            get { return steeringChangeTimeout; }
+            set 
+            {
+                SetProperty( ref this.steeringChangeTimeout , value );
+            }
         }
-        #endregion
-
-        #region Back Drive
-        private double backSpeed;
 
-        public double BackSpeed
-        {
-            get { return backSpeed; }
-            set { this.SetProperty( ref this.backSpeed , value ); }
-        }
+        #endregion
 
-        private double backTorque;
+        #region Manual
+        private double manualMaxLinearSpeed;
 
-        public double BackTorque
+        public double ManualMaxLinearSpeed
         {
-            get { return backTorque; }
-            set { this.SetProperty( ref this.backTorque , value ); }
+            get { return manualMaxLinearSpeed; }
+            set 
+            {
+                SetProperty( ref this.manualMaxLinearSpeed , value );
+            }
         }
 
-        private double backRpm;
+        private double manualMaxCurveSpeed;
 
-        public double BackRpm
+        public double ManualMaxCurveSpeed
         {
-            get { return backRpm; }
-            set { this.SetProperty( ref this.backRpm , value ); }
+            get { return manualMaxCurveSpeed; }
+            set 
+            {
+                SetProperty( ref this.manualMaxCurveSpeed , value );
+            }
         }
 
-        private double backLoadage;
+        private int manualCommandTimeout;
 
-        public double BackLoadage
+        public int ManualCommandTimeout
         {
-            get { return backLoadage; }
-            set { this.SetProperty( ref this.backLoadage , value ); }
+            get { return manualCommandTimeout; }
+            set 
+            {
+                SetProperty( ref this.manualCommandTimeout , value );
+            }
         }
         #endregion
+        #endregion
+
 
         IEventAggregator eventAggregator = null;
         SqliteManager sql;
@@ -175,26 +167,6 @@ namespace OHV.Module.Interactivity.PopUp
             this.eventAggregator.GetEvent<GUIMessagePubSubEvent>().Subscribe( UICallbackCommunication , ThreadOption.UIThread );
 
             this.sql = _sql;
-
-            //this.LockLeftID = sql.AxisConfigDAL.GetK( ConstString.AXIS_CARRIER_LOCK_LEFT ).Id;
-            //sql.AxisConfigDAL.All.ForEach( x =>
-            // {
-            //     switch(x.Id)
-            //     {
-            //         case 1:
-            //             this.LockLeftID = x.Id;
-            //             this.LockLeftIP = x.Address;
-            //             this.LockLeftName = x.Name;
-            //             this.LockLeftScale = x.Scale;
-            //             break;
-            //         case 2:
-            //             this.LockRightID = x.Id;
-            //             this.LockRightIP = x.Address;
-            //             this.LockRightName = x.Name;
-            //             this.LockRightScale = x.Scale;
-            //             break;
-            //     }
-            // } );
         }
 
         private void UICallbackCommunication( GUIMessageEventArgs obj )
@@ -205,33 +177,11 @@ namespace OHV.Module.Interactivity.PopUp
                 {
                     switch(obj.ModelPropertyName)
                     {
-                        case "DriveState":
-                            var ds = CastTo<DriveState>.From<object>(obj.Args);
-                            this.ResponseDrive(ds);
-                            break;
                     }
                 }
             }
         }
 
-        private void ResponseDrive( DriveState ds )
-        {
-            if(ds.DirveName.Equals("Front"))
-            {
-                this.FrontSpeed = ds.Speed;
-                this.FrontTorque = ds.Torque;
-                this.FrontRpm = ds.Rpm;
-                this.FrontLoadage = ds.Loadage;
-            }
-            else
-            {
-                this.BackSpeed = ds.Speed;
-                this.backTorque = ds.Torque;
-                this.BackRpm = ds.Rpm;
-                this.BackLoadage = ds.Loadage;
-            }
-        }
-
         #region Dialog 
         public bool CanCloseDialog( )
         {

+ 1 - 1
Dev/OHV/OHV.Module.ListViews/Views/CommandListViewModel.cs

@@ -130,7 +130,7 @@ namespace OHV.Module.ListViews.Views
         void RefreshCommandLIst()
         {
             //TODO: null Exception
-            //TODO: Application Exit 중 Null Exception 발생됨
+            //TODO: Application Exit 중 Null Exception 발생됨 -> 또 발생됨 06/29/20:02
             //if ( this.CommandList.Count <= 0 )
             //    return;
 

+ 1 - 1
Dev/OHV/OHV.Module.ListViews/Views/SubCommandListViewModel.cs

@@ -121,7 +121,7 @@ namespace OHV.Module.ListViews.Views
         void RefreshLIst()
         {
             //TODO: Null Exception Check 
-            //TODO: Application 종료 시 TaskCancledException 발생됨
+            //TODO: Application 종료 시 TaskCancledException 발생됨 -> 또 발생됨 06/29/20:02
             Application.Current.Dispatcher.Invoke(() =>
             {
                 this.SubCmdList.Clear();

+ 12 - 0
Dev/OHV/OHV.SqliteDAL/DAL/DriveConfigDAL.cs

@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OHV.SqliteDAL.DAL
+{
+    //public class DriveConfigDAL : GenericDAL<AxisConfig>
+    //{
+    //}
+}

+ 1 - 0
Dev/OHV/OHV.SqliteDAL/OHV.SqliteDAL.csproj

@@ -100,6 +100,7 @@
     <Compile Include="DAL\AxisVelocityDataDAL.cs" />
     <Compile Include="DAL\CommandDAL.cs" />
     <Compile Include="DAL\ConfigDAL.cs" />
+    <Compile Include="DAL\DriveConfigDAL.cs" />
     <Compile Include="DAL\HisAlarmDAL.cs" />
     <Compile Include="DAL\RouteDAL.cs" />
     <Compile Include="DAL\SubCmdDAL.cs" />

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

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

+ 37 - 0
Dev/OHV/VehicleControlSystem/ControlLayer/MQ/Model/RecvDriveData.cs

@@ -0,0 +1,37 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace VehicleControlSystem.ControlLayer.MQ.Model
+{
+    public class RecvDriveData
+    {
+        public enum eDirection
+        {
+            Front,
+            Rear
+        }
+        public enum eKind
+        {
+            Rpm,
+            LoadFactor, 
+            Speed,
+            Torque
+        }
+
+        public eDirection Dir { get; set; }
+        public eKind Kind { get; set; }
+
+        public double Rpm { get; set; }
+        public double LoadFactor { get; set; }
+        public double Speed { get; set; }
+        public double Torque { get; set; }
+
+        public RecvDriveData(eDirection dir )
+        {
+            this.Dir = dir;
+        }
+    }
+}

+ 9 - 1
Dev/OHV/VehicleControlSystem/ControlLayer/MQ/ZmqManager.cs

@@ -367,6 +367,12 @@ namespace VehicleControlSystem.ControlLayer.MQ
                                 this.CurrentPointNo = iV;
                                 int.TryParse( v[2], out iV );
                                 this.SegmentID = iV;
+
+                                //TODO: 6.29 DriveAutoReadyState
+                                if ( v[ 3 ].Equals( "0" ) )
+                                    logger.D( $"Out Route" );
+                                else
+                                    logger.D( $"On Route" );
                             }
                             break;
 
@@ -965,7 +971,9 @@ namespace VehicleControlSystem.ControlLayer.MQ
             else
                 v = "-1";
 
-            var rll = this.RequestDrive( "setm", $"4091/1" );
+            logger.E( $"Jog Dir : <True +, False -> {isForward}" );
+
+            var rll = this.RequestDrive( "setm", $"4091/{v}" );
             if ( rll.Count == 0 )
             {
                 logger.E( $"[Set Jog Move] - Jog Move Time Out" );

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

@@ -271,7 +271,7 @@ namespace VehicleControlSystem.ControlLayer.Drive
             //if ( result != ConstInt.EXECUTE_SUCCESS )
             //    return result;
 
-            int waitTime = 10000;
+            int waitTime = 60000;
             long st = SwUtils.CurrentTimeMillis;
             while ( true )
             {

+ 5 - 2
Dev/OHV/VehicleControlSystem/ControlLayer/Serial/BatteryTabos/BMUManager.cs

@@ -3,8 +3,11 @@ using GSG.NET.Extensions;
 using GSG.NET.Logging;
 using GSG.NET.Quartz;
 using GSG.NET.Utils;
+using NPOI.HSSF.Record;
+using OHV.Common.Model;
 using System;
 using System.Collections.Generic;
+using System.Diagnostics;
 using System.Linq;
 using System.Text;
 using System.Threading;
@@ -44,7 +47,7 @@ namespace VehicleControlSystem.ControlLayer.Serial.BatteryTabos
         public event Action<string> OnDisconnect;
         public event Action<ReceivedData> OnChangedReceivedData;
         public event Action<List<ReceivedData>> OnFirstColtd;
-    #endregion
+        #endregion
 
         public BMUManager()
         {
@@ -53,7 +56,7 @@ namespace VehicleControlSystem.ControlLayer.Serial.BatteryTabos
         }
 
         private void Init()
-        {
+        {            
             EnumExtensions.GetValues<eDataKind>().ToList().ForEach( x => 
             {
                 var data = new ReceivedData( x );

+ 0 - 6
Dev/OHV/VehicleControlSystem/ControlLayer/Serial/BatteryTabos/Peak/Peak.cs

@@ -294,12 +294,6 @@ namespace VehicleControlSystem.ControlLayer.Serial.BatteryTabos
                 Thread.Sleep( 30 );
                 stsResult = PCANBasic.Read( this.handle , out canMsg , out CANTimeStamp );
 
-                //if ( canMsg.ID != 0x460 )
-                //{
-                //    this.IsConnected = false;
-                //    return 0;
-                //}
-
                 if ( stsResult == TPCANStatus.PCAN_ERROR_OK && canMsg.ID == 0x460 )
                     this.PeackCANRecv( canMsg );
                 else if ( canMsg.ID != 0x460 )

+ 8 - 2
Dev/OHV/VehicleControlSystem/ControlLayer/Serial/DataModel/ReceivedData.cs

@@ -1,8 +1,10 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Security.Cryptography.X509Certificates;
 using System.Text;
 using System.Threading.Tasks;
+using VehicleControlSystem.ControlLayer.Serial.BatteryTabos;
 
 namespace VehicleControlSystem.ControlLayer.Serial.DataModel
 {
@@ -61,8 +63,12 @@ namespace VehicleControlSystem.ControlLayer.Serial.DataModel
                 {
                     if ( DataKind == eDataKind.ChargeCompleteTime || DataKind == eDataKind.DisChargeCompleteTime )
                     {
-                        var ll = Math.Truncate(((double)value / Scale ) * 100 ) / 100;
-                        this.Orgvalue = ( ll ).ToString();
+                        this.Orgvalue = (Math.Truncate( ( ( double )value / Scale ) * 100 ) / 100 ).ToString();
+                    }
+                    else if ( DataKind == eDataKind.BatteryState)
+                    {
+                        var val = (eBatteryState)value;
+                        this.Orgvalue = value.ToString();
                     }
                     //else if (DataKind == eDataKind.BatteryState)
                     //{

+ 16 - 5
Dev/OHV/VehicleControlSystem/ControlLayer/Vehicle.cs

@@ -687,7 +687,10 @@ namespace VehicleControlSystem.ControlLayer
             else
                 result = this.refObjects.Clamp.Unlock_Sync();
 
-            if ( result != 0 )
+
+            result = 0;
+
+           if ( result != 0 )
             {
                 this.VehicleStateProperty = eVehicleState.Abnormal;
                 return result;
@@ -803,8 +806,12 @@ namespace VehicleControlSystem.ControlLayer
 
         void ReqDriveOn( DriveControlEventArgs _args )
         {
-            var drive = "Drive Name";
-            //drive.On();
+            var ll = this.refObjects.ZmqManager.SetDriveControl( eDriveControl.ServoOn );
+
+            if(ll == 38)
+            {
+                logger.E( $"Servo On Error" );
+            }
 
             var msg = new DriveControlEventArgs
             {
@@ -817,8 +824,12 @@ namespace VehicleControlSystem.ControlLayer
 
         void ReqDriveOff( DriveControlEventArgs _args )
         {
-            var drive = "Drive Name";
-            //drive.Off();
+            var ll = this.refObjects.ZmqManager.SetDriveControl( eDriveControl.ServoOff );
+
+            if ( ll == 38 )
+            {
+                logger.E( $"Servo Off Error" );
+            }
 
             var msg = new DriveControlEventArgs
             {

+ 39 - 39
Dev/OHV/VehicleControlSystem/Managers/Scheduler.cs

@@ -179,54 +179,54 @@ namespace VehicleControlSystem.Managers
                 return;
             }
 
-            string targetPoint = string.Empty;
-            if ( isSTK )
-            {
-                targetPoint = RouteManager.Instance.Equipments.Where( x => x.Name.Equals( "CHARGING_02" ) ).SingleOrDefault().pointID.ToString();
-                isSTK = false;
-            }
-            else
-            {
-                targetPoint = RouteManager.Instance.Equipments.Where( x => x.Name.Equals( "STOKER_LIFT_IP01" ) ).SingleOrDefault().pointID.ToString();
-                isSTK = true;
-            }
+            //string targetPoint = string.Empty;
+            //if ( isSTK )
+            //{
+            //    targetPoint = RouteManager.Instance.Equipments.Where( x => x.Name.Equals( "CHARGING_02" ) ).SingleOrDefault().pointID.ToString();
+            //    isSTK = false;
+            //}
+            //else
+            //{
+            //    targetPoint = RouteManager.Instance.Equipments.Where( x => x.Name.Equals( "STOKER_LIFT_IP01" ) ).SingleOrDefault().pointID.ToString();
+            //    isSTK = true;
+            //}
 
-            Command cmd = new Command() { TargetID = targetPoint, Type = eCommandType.Move };
-            cmd.ByWho = eCommandByWho.LocalSystem;
+            //Command cmd = new Command() { TargetID = targetPoint, Type = eCommandType.Move };
+            //cmd.ByWho = eCommandByWho.LocalSystem;
 
-            this.AddCommand( cmd );
-            LockUtils.Wait( 2500 );
+            //this.AddCommand( cmd );
+            //LockUtils.Wait( 2500 );
 
 
-            //var ram = NumUtils.Random( 0, RouteManager.Instance.Equipments.Count - 1 );
-            //if ( ram == this.copyTarget )
-            //    return;
-            //else
-            //{
-            //    var target = RouteManager.Instance.Equipments[ram];
-            //    this.copyTarget = ram;
+            var ram = NumUtils.Random( 0 , RouteManager.Instance.Equipments.Count - 1 );
+            if ( ram == this.copyTarget )
+                return;
+            else
+            {
+                var target = RouteManager.Instance.Equipments[ ram ];
+                this.copyTarget = ram;
 
-            //    var targetPoint = target.pointID.ToString();
-            //    Command cmd = new Command() { TargetID = targetPoint, Type = eCommandType.Move };
-            //    cmd.ByWho = eCommandByWho.LocalSystem;
+                var targetPoint = target.pointID.ToString();
+                Command cmd = new Command() { TargetID = targetPoint , Type = eCommandType.Move };
+                cmd.ByWho = eCommandByWho.LocalSystem;
 
-            //    this.AddCommand( cmd );
-            //    LockUtils.Wait( 2500 );
+                this.AddCommand( cmd );
+                LockUtils.Wait( 2500 );
 
-            //    //if ( ( target.Name.Equals( "CHARGING_02" ) ) || ( target.Name.Equals( "STOKER_LIFT_IP01" ) ) ||
-            //    //    ( target.Name.Equals( "STOKER_LIFT_OP01" ) ) || ( target.Name.Equals( "WORK_STATION_IP01" ) ) ||
-            //    //    ( target.Name.Equals( "WORK_STATION_OP01" ) ) )
-            //    //{
-            //    //    this.copyTarget = ram;
+                //if ( ( target.Name.Equals( "CHARGING_02" ) ) || ( target.Name.Equals( "STOKER_LIFT_IP01" ) ) ||
+                //    ( target.Name.Equals( "STOKER_LIFT_OP01" ) ) || ( target.Name.Equals( "WORK_STATION_IP01" ) ) ||
+                //    ( target.Name.Equals( "WORK_STATION_OP01" ) ) )
+                //{
+                //    this.copyTarget = ram;
 
-            //    //    var targetPoint = target.pointID.ToString();
-            //    //    Command cmd = new Command() { TargetID = targetPoint, Type = eCommandType.Move };
-            //    //    cmd.ByWho = eCommandByWho.LocalSystem;
+                //    var targetPoint = target.pointID.ToString();
+                //    Command cmd = new Command() { TargetID = targetPoint, Type = eCommandType.Move };
+                //    cmd.ByWho = eCommandByWho.LocalSystem;
 
-            //    //    this.AddCommand( cmd );
-            //    //    LockUtils.Wait( 2000 );
-            //    //}
-            //}
+                //    this.AddCommand( cmd );
+                //    LockUtils.Wait( 2000 );
+                //}
+            }
         }
 
         private void DoWork( Command cmd )