2026-04-14 20:44:08 +09:00

218 lines
15 KiB
XML

<UserControl x:Class="WeldingCommon.Views.UCScannerMotion"
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:UCScannerMotionViewModel}"
mc:Ignorable="d"
d:DesignHeight="500" d:DesignWidth="600" x:Name="uc">
<UserControl.Resources>
<ResourceDictionary>
<view:BoolConverter x:Key="convWorkConverter" FalseValue="Not Work" TrueValue="Work"/>
</ResourceDictionary>
</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>
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<!-- Scanner 위치 표시 -->
<Grid Grid.Row="0" Margin="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<GroupBox Header="X[mm]" Style="{StaticResource StGBMonitor}" Margin="0 0 3 3">
<TextBlock FontSize="18" FontWeight="Bold" HorizontalAlignment="Center" VerticalAlignment="Center"
Text="{Binding ScannerXPos, StringFormat={}{0:0.000000}}"/>
</GroupBox>
<GroupBox Grid.Column="1" Header="Y[mm]" Style="{StaticResource StGBMonitor}" Margin="3 0 3 3">
<TextBlock FontSize="18" FontWeight="Bold" HorizontalAlignment="Center" VerticalAlignment="Center"
Text="{Binding ScannerYPos, StringFormat={}{0:0.000000}}"/>
</GroupBox>
<GroupBox Grid.Column="2" Header="Status" Style="{StaticResource StGBMonitor}" Margin="3 0 3 3">
<TextBlock FontSize="18" FontWeight="Bold" HorizontalAlignment="Center" VerticalAlignment="Center"
Text="{Binding IsScannerBusy, Converter={StaticResource convWorkConverter}}"/>
</GroupBox>
</Grid>
<!-- Scanner Motion -->
<GroupBox Grid.Row="1" Header="Scanner Motion" Margin="0 3 3 0">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="230"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="230"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0" Grid.Column="0" Margin="5">
<usercontrols:UCKeyValue KeyText="Step Value" Value="{Binding StepValue}"
DecimalPlaces="3" Unit="mm"
KeyHorizontalAlignment="Right" KeyTextWidth="0.9*"
ToolTip="Scanner/MotorX에 대한 Step 설정값 들어갑니다."/>
</Grid>
<Grid Grid.Row="1" Grid.Column="0" Margin="20 5 15 5">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Button Grid.Row="0" Grid.Column="1" FontWeight="Bold" Margin="2" BorderBrush="#1e1e1e"
Command="{Binding CMD_JogMove}" CommandParameter="Up">▲</Button>
<Button Grid.Row="1" Grid.Column="0" FontWeight="Bold" Margin="2" BorderBrush="#1e1e1e"
Command="{Binding CMD_JogMove}" CommandParameter="Left">◀</Button>
<Button Grid.Row="1" Grid.Column="1" FontWeight="Bold" Margin="2" BorderBrush="#1e1e1e"
Command="{Binding CMD_JogMove}" CommandParameter="Home">⌂</Button>
<Button Grid.Row="1" Grid.Column="2" FontWeight="Bold" Margin="2" BorderBrush="#1e1e1e"
Command="{Binding CMD_JogMove}" CommandParameter="Right">▶</Button>
<Button Grid.Row="2" Grid.Column="1" FontWeight="Bold" Margin="2" BorderBrush="#1e1e1e"
Command="{Binding CMD_JogMove}" CommandParameter="Down">▼</Button>
</Grid>
<Grid Grid.Row="0" Grid.Column="1" Grid.RowSpan="2" Margin="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="0.3*"/>
<RowDefinition Height="2*"/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Style="{StaticResource StGuideTB}" VerticalAlignment="Center">Motion Speed</TextBlock>
<TextBlock Grid.Row="1" Grid.Column="0" Style="{StaticResource StGuideTB}" VerticalAlignment="Center">Motion Mode</TextBlock>
<Grid Grid.Row="0" Grid.Column="1" Margin="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<RadioButton Grid.Column="0" Command="{Binding CMD_SpeedChanged}" CommandParameter="Low"
Style="{StaticResource stRadio}" Content="LOW" Margin="3"/>
<RadioButton Grid.Column="1" Command="{Binding CMD_SpeedChanged}" CommandParameter="Mid"
Style="{StaticResource stRadio}" Content="MID" IsChecked="True" Margin="3"/>
<RadioButton Grid.Column="2" Command="{Binding CMD_SpeedChanged}" CommandParameter="High"
Style="{StaticResource stRadio}" Content="HIGH" Margin="3"/>
</Grid>
<Grid Grid.Row="1" Grid.Column="1" Margin="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<RadioButton Grid.Column="0" Command="{Binding CMD_MotionModeChanged}" CommandParameter="ABS"
Style="{StaticResource stRadio}" Content="ABS" Margin="3" IsChecked="True"/>
<RadioButton Grid.Column="1" Command="{Binding CMD_MotionModeChanged}" CommandParameter="REL"
Style="{StaticResource stRadio}" Content="REL" Margin="3"/>
</Grid>
<Grid Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2" Margin="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="0.8*"/>
<ColumnDefinition Width="0.2*"/>
<ColumnDefinition Width="0.8*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="1.5*"/>
<RowDefinition Height="1.5*"/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Grid.Column="1" Foreground="White" TextAlignment="Center" FontSize="8">MinLimit</TextBlock>
<TextBlock Grid.Row="1" Grid.Column="1" FontSize="8" Text="{Binding CommandPosLimitMinX, StringFormat={}{0:0.000}}" Foreground="Gray" HorizontalAlignment="Center" TextAlignment="Center"/>
<TextBlock Grid.Row="2" Grid.Column="1" FontSize="8" Text="{Binding CommandPosLimitMinY, StringFormat={}{0:0.000}}" Foreground="Gray" HorizontalAlignment="Center" TextAlignment="Center"/>
<TextBlock Grid.Row="0" Grid.Column="3" Foreground="White" TextAlignment="Center" FontSize="8">MaxLimit</TextBlock>
<TextBlock Grid.Row="1" Grid.Column="3" FontSize="8" Text="{Binding CommandPosLimitMaxX, StringFormat={}{0:0.000}}" Foreground="Gray" HorizontalAlignment="Center" TextAlignment="Center"/>
<TextBlock Grid.Row="2" Grid.Column="3" FontSize="8" Text="{Binding CommandPosLimitMaxY, StringFormat={}{0:0.000}}" Foreground="Gray" HorizontalAlignment="Center" TextAlignment="Center"/>
<TextBlock Grid.Row="1" Grid.Column="2" Foreground="White" TextAlignment="Center" VerticalAlignment="Center" FontSize="10" Text="~"/>
<TextBlock Grid.Row="2" Grid.Column="2" Foreground="White" TextAlignment="Center" VerticalAlignment="Center" FontSize="10" Text="~"/>
<usercontrols:UCKeyValue Grid.Row="1" Grid.Column="0" KeyText="Axis X" Value="{Binding CommandPosX}"
DecimalPlaces="3" Unit="mm" KeyHorizontalAlignment="Right" KeyTextWidth="0.6*"/>
<usercontrols:UCKeyValue Grid.Row="2" Grid.Column="0" KeyText="Axis Y" Value="{Binding CommandPosY}"
DecimalPlaces="3" Unit="mm" KeyHorizontalAlignment="Right" KeyTextWidth="0.6*"/>
<UniformGrid Grid.Row="1" Grid.Column="4" Grid.RowSpan="2" Columns="2">
<Button Margin="3" Command="{Binding CMD_CommandPosMove}" CommandParameter="X"
Content="Move X" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
Height="auto" Style="{StaticResource StButtonAccentBlue}"/>
<Button Margin="3" Command="{Binding CMD_CommandPosMove}" CommandParameter="Y"
Content="Move Y" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
Height="auto" Style="{StaticResource StButtonAccentBlue}"/>
</UniformGrid>
</Grid>
</Grid>
</Grid>
</GroupBox>
<!-- 26.04.06 NDY Stage X Motion 섹션 추가 -->
<GroupBox Grid.Row="2" Header="Stage X Y Motion (ACS)" Margin="0 3 3 0"
IsEnabled="{Binding IsStageXActivated}">
<UniformGrid Rows="2">
<Grid Margin="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<GroupBox Grid.Column="0" Header="Stage X[mm]"
Style="{StaticResource StGBMonitor}" Margin="0 0 5 0" MinWidth="120">
<TextBlock FontSize="18" FontWeight="Bold"
HorizontalAlignment="Center" VerticalAlignment="Center"
Text="{Binding StageXPos, StringFormat={}{0:0.000}}"/>
</GroupBox>
<Button Grid.Column="1" FontWeight="Bold" Margin="3"
Command="{Binding CMD_JogMove}" CommandParameter="Stage_X_Left" ToolTip="StageX 위치값 증가">◀ +</Button>
<Button Grid.Column="2" FontWeight="Bold" Margin="3"
Command="{Binding CMD_JogMove}" CommandParameter="Stage_X_Right" ToolTip="StageX 위치값 감소">- ▶</Button>
<TextBlock Grid.Column="3" FontSize="10" Foreground="Gray"
VerticalAlignment="Center" HorizontalAlignment="Center"
Text="* 이미지 방향 반전 적용"/>
</Grid>
<Grid Margin="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<GroupBox Grid.Column="0" Header="Stage Z[mm]"
Style="{StaticResource StGBMonitor}" Margin="0 0 5 0" MinWidth="120">
<TextBlock FontSize="18" FontWeight="Bold"
HorizontalAlignment="Center" VerticalAlignment="Center"
Text="{Binding StageZPos, StringFormat={}{0:0.000}}"/>
</GroupBox>
<Button Grid.Column="1" FontWeight="Bold" Margin="3"
Command="{Binding CMD_JogMove}" CommandParameter="Stage_Z_Left" ToolTip="StageZ 위치값 증가">◀ +</Button>
<Button Grid.Column="2" FontWeight="Bold" Margin="3"
Command="{Binding CMD_JogMove}" CommandParameter="Stage_Z_Right" ToolTip="StageZ 위치값 감소">- ▶</Button>
<TextBlock Grid.Column="3" FontSize="10" Foreground="Gray"
VerticalAlignment="Center" HorizontalAlignment="Center"
Text="* 이미지 방향 반전 적용"/>
</Grid>
</UniformGrid>
</GroupBox>
</Grid>
</UserControl>