2026-03-30 17:09:29 +09:00

204 lines
16 KiB
XML

<UserControl x:Class="WeldingCommon.Views.UCScannerCalibration"
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:UCScannerCalibrationViewModel}"
mc:Ignorable="d"
d:DesignHeight="800" d:DesignWidth="1200" x:Name="uc"
IsVisibleChanged="UserControl_IsVisibleChanged">
<UserControl.Resources>
<ResourceDictionary>
<view:BoolConverter x:Key="convReverse" FalseValue="True" TrueValue="False"/>
<view:BoolConverter x:Key="convDeviceEnableColor" TrueValue="Green" FalseValue="Red"/>
</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 Margin="10">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1.5*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<Grid Grid.Column="0" Margin="0 0 0 0">
<Grid.RowDefinitions>
<RowDefinition Height="1.2*"></RowDefinition>
<RowDefinition Height="1*"></RowDefinition>
</Grid.RowDefinitions>
<GroupBox Header="Vision Correction List" Grid.Row="0" Grid.Column="0" Margin="0 0 0 0" Style="{StaticResource StGroupBox2nd}">
<DataGrid Name="GridEditorVisionCorrectionList" Margin="0 0 0 0" ItemsSource="{Binding VisionCorrectionList}" SelectionUnit="FullRow"
AutoGenerateColumns="False" HeadersVisibility="Column" CanUserAddRows="False"
RowHeight="30" MinRowHeight="30" MinColumnWidth="50" ColumnWidth="*"
KeyDown="GridEditorVisionCorrectionList_KeyDown"
SelectedCellsChanged="GridEditorVisionCorrectionList_SelectedCellsChanged" IsVisibleChanged="GridEditorVisionCorrectionList_IsVisibleChanged"
SelectionMode="Single"
ScrollViewer.CanContentScroll="True"
ScrollViewer.VerticalScrollBarVisibility="Auto" MouseDoubleClick="GridEditorVisionCorrectionList_MouseDoubleClick">
<behavior:Interaction.Behaviors>
<aurorauicomponent:DataGridBehavior ShowRowNumber="True" />
</behavior:Interaction.Behaviors>
<DataGrid.InputBindings>
<KeyBinding Key="V" Modifiers="Control" Command="Paste" />
</DataGrid.InputBindings>
<DataGrid.CommandBindings>
<CommandBinding Command="Paste" Executed="PasteCommand_Executed_VisionCorrectionList"/>
</DataGrid.CommandBindings>
<DataGrid.Columns>
<DataGridTextColumn Header="Column No." Binding="{Binding Column}"/>
<DataGridTextColumn Header="Row No." Binding="{Binding Row}"/>
<DataGridTextColumn Header="Master X" Binding="{Binding MasterX}"/>
<DataGridTextColumn Header="Master Y" Binding="{Binding MasterY}"/>
<DataGridTextColumn Header="Vision X" Binding="{Binding VisionX}"/>
<DataGridTextColumn Header="Vision Y" Binding="{Binding VisionY}"/>
</DataGrid.Columns>
</DataGrid>
</GroupBox>
<Grid x:Name="gridCalibrationCameraView" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Margin="0 5 0 0"/>
</Grid>
<Grid Grid.Column="1" Margin="5 0 0 0">
<Grid.RowDefinitions>
<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>
<GroupBox Header="Correction" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Margin="0 0 0 0" Style="{StaticResource StGroupBox2nd}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"></ColumnDefinition>
<ColumnDefinition Width="1*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<GroupBox Grid.Column="0" Header="Param" Style="{StaticResource StGroupBox4th}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"></ColumnDefinition>
<ColumnDefinition Width="1*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<UniformGrid Grid.Column="0" Rows="3">
<usercontrols:UCKeyValue KeyText="Row" Value="{Binding GridRowCount}" DecimalPlaces="0" Unit="count" KeyHorizontalAlignment="Right" KeyTextWidth="0.9*" />
<usercontrols:UCKeyValue KeyText="Column" Value="{Binding GridColumnCount}" DecimalPlaces="0" Unit="count" KeyHorizontalAlignment="Right" KeyTextWidth="0.9*" />
<usercontrols:UCKeyValue KeyText="Unit Length" Value="{Binding UnitLength}" DecimalPlaces="0" Unit="mm" KeyHorizontalAlignment="Right" KeyTextWidth="0.9*" />
</UniformGrid>
<UniformGrid Grid.Column="1" Rows="3">
<usercontrols:UCKeyValue KeyText="Tilting Degree" Value="{Binding TiltingDegree}" DecimalPlaces="0" Unit="º" KeyHorizontalAlignment="Right" KeyTextWidth="0.9*" />
<usercontrols:UCKeyValue KeyText="Current X" Value="{Binding CurrentX}" DecimalPlaces="2" Unit="mm" IsReadOnly="True" KeyHorizontalAlignment="Right" KeyTextWidth="0.9*" />
<usercontrols:UCKeyValue KeyText="Current Y" Value="{Binding CurrentY}" DecimalPlaces="2" Unit="mm" IsReadOnly="True" KeyHorizontalAlignment="Right" KeyTextWidth="0.9*" />
</UniformGrid>
</Grid>
</GroupBox>
<GroupBox Grid.Column="1" Header="Control" Style="{StaticResource StGroupBox4th}">
<UniformGrid Grid.Column="0" Rows="3">
<Button Margin="3" Command="{Binding CMD_ApplyGridItems}" Content="Apply" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" Style="{StaticResource StButtonAccentBlue}" />
<Button Margin="3" Command="{Binding CMD_SaveDataFile}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" Style="{StaticResource StButtonAccentBlue}">
<StackPanel Orientation="Horizontal">
<Image Width="20" Height="10" Margin="5 0 5 0" Source="../../Resource/Save.png"/>
<TextBlock Text="Save DataFile"/>
</StackPanel>
</Button>
<Button Margin="3" Command="{Binding CMD_RunCorreXionPro}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" Style="{StaticResource StButtonAccentBlue}">
<StackPanel Orientation="Horizontal">
<Image Width="20" Height="10" Margin="5 0 5 0" Source="../../Resource/CorrectionPro.png"/>
<TextBlock Text="Run CorrectionPro"/>
</StackPanel>
</Button>
</UniformGrid>
</GroupBox>
</Grid>
</GroupBox>
<GroupBox Header="Scanner Calibration" Grid.Row="1" Grid.Column="0" 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.5*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<GroupBox Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Header="Vision Param" Style="{StaticResource StGroupBox4th}">
<UniformGrid Grid.Column="0" Rows="5">
<usercontrols:UCKeyValue KeyText="MPosOffset X" Value="{Binding MPosOffsetX}" DecimalPlaces="1" Unit="mm" KeyHorizontalAlignment="Right" KeyTextWidth="0.9*" />
<usercontrols:UCKeyValue KeyText="MPosOffset Y" Value="{Binding MPosOffsetY}" DecimalPlaces="1" Unit="mm" KeyHorizontalAlignment="Right" KeyTextWidth="0.9*" />
<usercontrols:UCKeyValue KeyText="Align Distortion" Value="{Binding OffsetThreshold}" DecimalPlaces="3" Unit="mm" KeyHorizontalAlignment="Right" KeyTextWidth="0.9*" />
<CheckBox Content="One Step Calibration" IsChecked="{Binding Is1StepCalibration}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</UniformGrid>
</GroupBox>
<GroupBox Grid.Row="1" Grid.Column="0" Header="Calibration Type" Style="{StaticResource StGroupBox4th}" Height="70">
<Border BorderBrush="Gray" BorderThickness="0.5">
<mah:ToggleSwitch Grid.Column="0" HorizontalAlignment="Center" FontSize="12" FontWeight="Bold"
IsOn="{Binding IsVisionCalibration}"
OffContent="Laser Calib"
OnContent="Vision Calib"/>
</Border>
</GroupBox>
<Grid Grid.Row="1" Grid.Column="1">
<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_RunScannerCalibration}" Content="Run Sacanner Calib" IsEnabled="{Binding IsSequenceRunning_ScannerCalibration, Converter={StaticResource convReverse}}"/>
<Button Grid.Column="1" Margin="3" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" FontWeight="Bold" Style="{StaticResource StButtonAccentPurple}" Command="{Binding CMD_StopScannerCalibration}" Content="Stop" IsEnabled="{Binding IsSequenceRunning_ScannerCalibration}"/>
</Grid>
</Grid>
</GroupBox>
<GroupBox Header="Mark Grid" Grid.Row="1" Grid.Column="1" Margin="5 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.5*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<GroupBox Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Header="Laser Param" Style="{StaticResource StGroupBox4th}">
<UniformGrid Grid.Column="0" Rows="5">
<usercontrols:UCKeyValue KeyText="Mark Power" Value="{Binding MarkPower}" DecimalPlaces="1" Unit="%" KeyHorizontalAlignment="Right" KeyTextWidth="0.9*" />
<usercontrols:UCKeyValue KeyText="Mark Speed" Value="{Binding MarkSpeed}" DecimalPlaces="1" Unit="mm/s" KeyHorizontalAlignment="Right" KeyTextWidth="0.9*" />
<usercontrols:UCKeyValue KeyText="Mark Length" Value="{Binding MarkLength}" DecimalPlaces="3" Unit="mm" KeyHorizontalAlignment="Right" KeyTextWidth="0.9*" />
<usercontrols:UCKeyValue KeyText="Frequency" Value="{Binding MarkFreq}" DecimalPlaces="0" Unit="hz" KeyHorizontalAlignment="Right" KeyTextWidth="0.9*" />
<usercontrols:UCKeyValue KeyText="Pulse Width" Value="{Binding MarkPulseWidth}" DecimalPlaces="0" Unit="us" KeyHorizontalAlignment="Right" KeyTextWidth="0.9*" />
</UniformGrid>
</GroupBox>
<GroupBox Grid.Row="1" Grid.Column="0" Header="LaserStatus" Style="{StaticResource StGroupBox4th}" Height="70">
<TextBlock TextAlignment="Center" HorizontalAlignment="Stretch" Text="{Binding LaserStatus}"
Background ="{Binding LaserStatus, Converter={StaticResource convDeviceEnableColor}}"></TextBlock>
</GroupBox>
<Grid Grid.Row="1" Grid.Column="1">
<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_RunMarkGrid}" Content="Run Mark Grid" IsEnabled="{Binding IsSequenceRunning_MarkGrid, Converter={StaticResource convReverse}}"/>
<Button Grid.Column="1" Margin="3" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" FontWeight="Bold" Style="{StaticResource StButtonAccentPurple}" Command="{Binding CMD_StopMarkGrid}" Content="Stop" IsEnabled="{Binding IsSequenceRunning_MarkGrid}"/>
</Grid>
</Grid>
</GroupBox>
<GroupBox Header="Pattern List" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" Margin="0 5 0 0" Style="{StaticResource StGroupBox2nd}">
<Grid x:Name="gridPatternListView"></Grid>
</GroupBox>
</Grid>
</Grid>
</UserControl>