같은 행 이동과 행 전환 이동(먼 거리)의 대기시간을 RowIdx 기준으로 분리. - SystemParameter: ScoutSameRowSleepMs(150)/ScoutRowChangeSleepMs(300) 추가 - Recipe View > Scout Image 그룹에 입력 UI 2줄 + 즉시 저장 - SeqScoutNormal.CaptureNextPosition: prevRowIdx 추적해 행 전환 시 분기 - 공유(WeldingCommon)라 같은행은 150(기존동일), 행전환 기본 300ms Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
169 lines
14 KiB
XML
169 lines
14 KiB
XML
<UserControl x:Class="WeldingCommon.Views.UCScannerObjectTeachingControlBox"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
xmlns:local="clr-namespace:WeldingCommon.Views"
|
|
xmlns:behavior="http://schemas.microsoft.com/xaml/behaviors"
|
|
xmlns:view="clr-namespace:Aurora.View;assembly=Aurora"
|
|
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
|
|
xmlns:aurorauicomponent="clr-namespace:AuroraUIComponent;assembly=AuroraUIComponent"
|
|
xmlns:usercontrols="clr-namespace:AuroraUIComponent.UserControls;assembly=AuroraUIComponent"
|
|
d:DataContext="{d:DesignInstance Type=local:UCScannerObjectTeachingControlBoxViewModel}"
|
|
mc:Ignorable="d"
|
|
d:DesignHeight="800" d:DesignWidth="300" x:Name="uc">
|
|
<UserControl.Resources>
|
|
<view:BoolConverter x:Key="convStatusColor" TrueValue="ForestGreen" FalseValue="#3E3E42"/>
|
|
<view:BoolConverter x:Key="convSelectedScoutType" TrueValue="Scout Normal" FalseValue="Scout Flying Vision" />
|
|
<view:BoolConverter x:Key="convTrueVisible" TrueValue="Visible" FalseValue="Collapsed"/>
|
|
<view:BoolConverter x:Key="convFalseVisible" TrueValue="Collapsed" FalseValue="Visible"/>
|
|
</UserControl.Resources>
|
|
<behavior:Interaction.Triggers>
|
|
<behavior:PropertyChangedTrigger Binding="{Binding IsVisible, ElementName=uc}">
|
|
<behavior:InvokeCommandAction Command="{Binding CMD_VisibleChanged}" CommandParameter="{Binding IsVisible, ElementName=uc}"/>
|
|
</behavior:PropertyChangedTrigger>
|
|
</behavior:Interaction.Triggers>
|
|
<Grid>
|
|
<GroupBox Header="Control">
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="auto"></RowDefinition>
|
|
<RowDefinition Height="auto"></RowDefinition>
|
|
<RowDefinition Height="auto"></RowDefinition>
|
|
</Grid.RowDefinitions>
|
|
|
|
<GroupBox Header="Scout Image" Grid.Row="0" Margin="0 3 0 0" Style="{StaticResource StGroupBox2nd}">
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="auto"></RowDefinition>
|
|
<RowDefinition Height="auto"></RowDefinition>
|
|
<RowDefinition Height="auto"></RowDefinition>
|
|
<RowDefinition Height="auto"></RowDefinition>
|
|
<RowDefinition Height="auto"></RowDefinition>
|
|
<RowDefinition Height="1*"></RowDefinition>
|
|
</Grid.RowDefinitions>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="1*"></ColumnDefinition>
|
|
<ColumnDefinition Width="1*"></ColumnDefinition>
|
|
</Grid.ColumnDefinitions>
|
|
<Border Grid.Row="0" Grid.Column="0" MinHeight="30">
|
|
<TextBlock Margin="10 0" FontSize="12" Foreground="#FFBBBBBB" FontWeight="Bold" Text="Selected Type" VerticalAlignment="Center" HorizontalAlignment="Right"/>
|
|
</Border>
|
|
<Border Grid.Row="0" Grid.Column="1" BorderThickness="1" BorderBrush="Gray">
|
|
<TextBlock Margin="10 0" FontSize="12" Foreground="#FFBBBBBB" FontWeight="Bold" Text="{Binding IsSelectedScoutNormal, Converter={StaticResource convSelectedScoutType}}" VerticalAlignment="Center" HorizontalAlignment="Left"/>
|
|
</Border>
|
|
<!-- Row 1 : Same Row Sleep -->
|
|
<Border Grid.Row="1" Grid.Column="0" MinHeight="30" Visibility="{Binding IsSelectedScoutNormal, Converter={StaticResource convTrueVisible}}">
|
|
<TextBlock Margin="10 0" FontSize="12" Foreground="#FFBBBBBB" FontWeight="Bold" Text="SameRow Sleep(ms)" VerticalAlignment="Center" HorizontalAlignment="Right"/>
|
|
</Border>
|
|
<TextBox Grid.Row="1" Grid.Column="1" Margin="10 3" VerticalAlignment="Center" Visibility="{Binding IsSelectedScoutNormal, Converter={StaticResource convTrueVisible}}" Text="{Binding ScoutSameRowSleepMs, UpdateSourceTrigger=PropertyChanged}"/>
|
|
|
|
<!-- Row 2 : Row Change Sleep -->
|
|
<Border Grid.Row="2" Grid.Column="0" MinHeight="30" Visibility="{Binding IsSelectedScoutNormal, Converter={StaticResource convTrueVisible}}">
|
|
<TextBlock Margin="10 0" FontSize="12" Foreground="#FFBBBBBB" FontWeight="Bold" Text="RowChange Sleep(ms)" VerticalAlignment="Center" HorizontalAlignment="Right"/>
|
|
</Border>
|
|
<TextBox Grid.Row="2" Grid.Column="1" Margin="10 3" VerticalAlignment="Center" Visibility="{Binding IsSelectedScoutNormal, Converter={StaticResource convTrueVisible}}" Text="{Binding ScoutRowChangeSleepMs, UpdateSourceTrigger=PropertyChanged}"/>
|
|
|
|
<Grid Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2" Height="50" Margin="0 5 0 0" Visibility="{Binding IsSelectedScoutNormal, Converter={StaticResource convTrueVisible}}">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="2*"></ColumnDefinition>
|
|
<ColumnDefinition Width="1*"></ColumnDefinition>
|
|
</Grid.ColumnDefinitions>
|
|
<Button Grid.Column="0" Margin="3" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" FontWeight="Bold" Style="{StaticResource StButtonAccentPurple}" Command="{Binding CMD_RunScoutNormal}" Content="Run Scout Normal" IsEnabled="{Binding IsSequenceRunning_ScoutNormal, Converter={StaticResource convReverse}}"/>
|
|
<Button Grid.Column="1" Margin="3" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" FontWeight="Bold" Style="{StaticResource StButtonAccentPurple}" Command="{Binding CMD_StopScoutNormal}" Content="Stop" IsEnabled="{Binding IsSequenceRunning_ScoutNormal}"/>
|
|
</Grid>
|
|
|
|
<Grid Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="2" Height="50" Margin="0" Visibility="{Binding IsSelectedScoutNormal, Converter={StaticResource convFalseVisible}}">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="2*"></ColumnDefinition>
|
|
<ColumnDefinition Width="1*"></ColumnDefinition>
|
|
</Grid.ColumnDefinitions>
|
|
<Button Grid.Column="0" Margin="3" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" FontWeight="Bold" Style="{StaticResource StButtonAccentPurple}" Command="{Binding CMD_RunScoutFlyingVision}" Content="Run Flying Vision" IsEnabled="{Binding IsSequenceRunning_ScoutFlyingVision, Converter={StaticResource convReverse}}"/>
|
|
<Button Grid.Column="1" Margin="3" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" FontWeight="Bold" Style="{StaticResource StButtonAccentPurple}" Command="{Binding CMD_StopScoutFlyingVision}" Content="Stop" IsEnabled="{Binding IsSequenceRunning_ScoutFlyingVision}"/>
|
|
</Grid>
|
|
</Grid>
|
|
</GroupBox>
|
|
|
|
<GroupBox Header="Laser Shot" Grid.Row="1" Margin="0 5 0 0" Style="{StaticResource StGroupBox2nd}">
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="auto"></RowDefinition>
|
|
<RowDefinition Height="auto"></RowDefinition>
|
|
<RowDefinition Height="auto"></RowDefinition>
|
|
</Grid.RowDefinitions>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="1*"></ColumnDefinition>
|
|
<ColumnDefinition Width="1*"></ColumnDefinition>
|
|
</Grid.ColumnDefinitions>
|
|
<GroupBox Header="Laser Control" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Margin="0 3 0 0" Style="{StaticResource StGroupBox4th}">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="1*"></ColumnDefinition>
|
|
<ColumnDefinition Width="1*"></ColumnDefinition>
|
|
</Grid.ColumnDefinitions>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="auto"></RowDefinition>
|
|
<RowDefinition Height="auto"></RowDefinition>
|
|
<RowDefinition Height="auto"></RowDefinition>
|
|
<RowDefinition Height="auto"></RowDefinition>
|
|
</Grid.RowDefinitions>
|
|
<Border Grid.Row="0" Grid.Column="0" MinHeight="30">
|
|
<TextBlock Margin="10 0" FontSize="12" Foreground="#FFBBBBBB" FontWeight="Bold" Text="Guid Beam Status" VerticalAlignment="Center" HorizontalAlignment="Right"/>
|
|
</Border>
|
|
<Border Grid.Row="0" Grid.Column="1" BorderThickness="1" BorderBrush="Gray">
|
|
<TextBlock Margin="10 0" FontSize="12" Foreground="#FFBBBBBB" FontWeight="Bold" Text="{Binding IsGuidBeam}" Background="{Binding IsGuidBeam, Converter={StaticResource convStatusColor}}" VerticalAlignment="Center" HorizontalAlignment="Left"/>
|
|
</Border>
|
|
<Button Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Margin="5 1 0 0" Command="{Binding CMD_LaserGuideBeam}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" Style="{StaticResource StButtonAccentBlue}">
|
|
<StackPanel Orientation="Horizontal">
|
|
<Image Width="20" Height="10" Margin="5 0 5 0" Source="../../Resource/guide.png"/>
|
|
<TextBlock Text="Guid Beam"/>
|
|
</StackPanel>
|
|
</Button>
|
|
|
|
<Border Grid.Row="2" Grid.Column="0" MinHeight="30" Margin="0 10 0 0">
|
|
<TextBlock Margin="10 0" FontSize="12" Foreground="#FFBBBBBB" FontWeight="Bold" Text="Laser Ready Status" VerticalAlignment="Center" HorizontalAlignment="Right"/>
|
|
</Border>
|
|
<Border Grid.Row="2" Grid.Column="1" BorderThickness="1" BorderBrush="Gray" Margin="0 10 0 0">
|
|
<TextBlock Margin="10 0" FontSize="12" Foreground="#FFBBBBBB" FontWeight="Bold" Text="{Binding IsLaserReady}" Background="{Binding IsLaserReady, Converter={StaticResource convStatusColor}}" VerticalAlignment="Center" HorizontalAlignment="Left"/>
|
|
</Border>
|
|
<Button Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2" Margin="5 1 0 0" Command="{Binding CMD_LaserReadyCheck}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" Style="{StaticResource StButtonAccentBlue}">
|
|
<StackPanel Orientation="Horizontal">
|
|
<Image Width="20" Height="10" Margin="5 0 5 0" Source="../../Resource/ready.png"/>
|
|
<TextBlock Text="Laser Ready"/>
|
|
</StackPanel>
|
|
</Button>
|
|
</Grid>
|
|
</GroupBox>
|
|
|
|
<GroupBox Header="Object Select" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Margin="0 3 0 0" Style="{StaticResource StGroupBox4th}">
|
|
<mah:ToggleSwitch Grid.Column="0" HorizontalAlignment="Center" FontSize="12" FontWeight="Bold"
|
|
IsOn="{Binding IsObjectSelectAll}"
|
|
OffContent="Selected Object"
|
|
OnContent="All Object"/>
|
|
</GroupBox>
|
|
<Grid Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" Margin="0 5 0 0" Height="50">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="2*"></ColumnDefinition>
|
|
<ColumnDefinition Width="1*"></ColumnDefinition>
|
|
</Grid.ColumnDefinitions>
|
|
<Button Margin="3" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" FontWeight="Bold" Style="{StaticResource StButtonAccentPurple}" Command="{Binding CMD_RunTeachingRun}" Content="Run Welding" IsEnabled="{Binding IsSequenceRunning_TeachingRun, Converter={StaticResource convReverse}}"/>
|
|
<Button Grid.Column="1" Margin="3" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" FontWeight="Bold" Style="{StaticResource StButtonAccentPurple}" Command="{Binding CMD_StopTeachingRun}" Content="Stop" IsEnabled="{Binding IsSequenceRunning_TeachingRun}"/>
|
|
</Grid>
|
|
|
|
</Grid>
|
|
</GroupBox>
|
|
|
|
<GroupBox Header="Import Object From DXF" Grid.Row="2" Margin="0 5 0 0" Style="{StaticResource StGroupBox2nd}">
|
|
<Button Margin="5" Command="{Binding CMD_ImportObjectFromDXF}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" Style="{StaticResource StButtonAccentBlue}">
|
|
<StackPanel Orientation="Horizontal">
|
|
<Image Width="20" Height="10" Margin="5 0 5 0" Source="../../Resource/dxf.png"/>
|
|
<TextBlock Text="Select Import File"/>
|
|
</StackPanel>
|
|
</Button>
|
|
</GroupBox>
|
|
</Grid>
|
|
</GroupBox>
|
|
|
|
</Grid>
|
|
</UserControl>
|