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

292 lines
22 KiB
XML

<UserControl x:Class="WeldingCommon.Views.UCScannerLaserControl"
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:UCScannerLaserControlViewModel}"
mc:Ignorable="d"
d:DesignHeight="800" d:DesignWidth="600" x:Name="uc">
<UserControl.Resources>
<view:BoolConverter x:Key="convTrueVisible" TrueValue="Visible" FalseValue="Hidden"/>
<view:BoolConverter x:Key="convFalseVisible" TrueValue="Hidden" FalseValue="Visible"/>
<view:BoolConverter x:Key="convReverse" FalseValue="True" TrueValue="False"/>
<view:BoolConverter x:Key="convFieldColor" TrueValue="Red" FalseValue="Gray" />
</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>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<GroupBox Grid.Row="0" Header="Manual Laser Power Control" Margin="0 3 3 0">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="1*"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1.5*"></ColumnDefinition>
<ColumnDefinition Width="2*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<GroupBox Header="Control Setting" Grid.Column="0" Margin="0 5 0 0" Style="{StaticResource StGroupBox4th}">
<Grid Margin="3">
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="1*"></RowDefinition>
</Grid.RowDefinitions>
<UniformGrid Grid.Row="0" Rows="4">
<usercontrols:UCKeyValue KeyText="Power #1" Value="{Binding LaserPower1Percent}" DecimalPlaces="0" Unit="%" KeyHorizontalAlignment="Right" KeyTextWidth="0.5*" />
<usercontrols:UCKeyValue KeyText="Power #2" Value="{Binding LaserPower2Percent}" DecimalPlaces="0" Unit="%" KeyHorizontalAlignment="Right" KeyTextWidth="0.5*" />
<usercontrols:UCKeyValue KeyText="Frequency" Value="{Binding LaserPeriod}" DecimalPlaces="0" Unit="kHz" KeyHorizontalAlignment="Right" KeyTextWidth="0.5*" />
<usercontrols:UCKeyValue KeyText="Pulse Width" Value="{Binding LaserPulseWidth}" DecimalPlaces="0" Unit="us" KeyHorizontalAlignment="Right" KeyTextWidth="0.5*" />
</UniformGrid>
</Grid>
</GroupBox>
<GroupBox Header="Laser Shot Control" Grid.Column="1" Margin="5 5 0 0" Style="{StaticResource StGroupBox2nd}" FontSize="10">
<Grid Margin="3">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"></ColumnDefinition>
<ColumnDefinition Width="1*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="1*"></RowDefinition>
</Grid.RowDefinitions>
<GroupBox Grid.Row="0" Grid.Column="0" Grid.RowSpan="2" Header="Timer Set" Style="{StaticResource StGroupBox4th}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="1*"></RowDefinition>
</Grid.RowDefinitions>
<Border Grid.Row="0" BorderBrush="Gray" BorderThickness="0.5">
<mah:ToggleSwitch Grid.Row="0" HorizontalAlignment="Center" FontSize="12" FontWeight="Bold"
IsOn="{Binding IsUseLaserAutoOffChecked}"
OffContent="No Use Spot Time"
OnContent="Use Spot Time"/>
</Border>
<usercontrols:UCKeyValue Grid.Row="1" KeyText="Time" Value="{Binding LaserOnTime}" DecimalPlaces="0" Unit="ms" KeyHorizontalAlignment="Right" KeyTextWidth="0.9*" Visibility="{Binding IsUseLaserAutoOffChecked, Converter={StaticResource convTrueVisible}}" />
</Grid>
</GroupBox>
<GroupBox Grid.Row="0" Grid.Column="1" Header="Laser Shot Result" 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>
</Grid.RowDefinitions>
<Border Grid.Row="0" Grid.Column="0" MinHeight="30">
<TextBlock Margin="10 0" FontSize="12" Foreground="#FFBBBBBB" FontWeight="Bold" Text="List" 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 BusyStatus}" VerticalAlignment="Center" HorizontalAlignment="Left"/>
</Border>
<Border Grid.Row="1" Grid.Column="0" MinHeight="30">
<TextBlock Margin="10 0" FontSize="12" Foreground="#FFBBBBBB" FontWeight="Bold" Text="Repeat Count" VerticalAlignment="Center" HorizontalAlignment="Right"/>
</Border>
<Border Grid.Row="1" Grid.Column="1" BorderThickness="1" BorderBrush="Gray">
<TextBlock Margin="10 0" FontSize="12" Foreground="#FFBBBBBB" FontWeight="Bold" Text="{Binding ListInterationCount}" VerticalAlignment="Center" HorizontalAlignment="Left"/>
</Border>
</Grid>
</GroupBox>
<UniformGrid Grid.Row="1" Grid.Column="1" Columns="2">
<Button Margin="3" Command="{Binding CMD_LaserShotOnPercent}" Content="Laser On" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" Style="{StaticResource StButtonAccentBlue}" />
<Button Margin="3" Command="{Binding CMD_LaserShotOff}" Content="Laser Off" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" Style="{StaticResource StButtonAccentBlue}" />
</UniformGrid>
</Grid>
</GroupBox>
</Grid>
</GroupBox>
<GroupBox Grid.Row="1" Header="Manual Laser Power Control" Margin="0 3 3 0">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="1*"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1.5*"></ColumnDefinition>
<ColumnDefinition Width="2*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<GroupBox Header="Control Setting" Grid.Column="0" Margin="0 5 0 0" Style="{StaticResource StGroupBox4th}">
<Grid Margin="3">
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="1*"></RowDefinition>
</Grid.RowDefinitions>
<UniformGrid Grid.Row="0" Rows="4">
<usercontrols:UCKeyValue KeyText="Power #1" Value="{Binding LaserPower1Watt}" DecimalPlaces="0" Unit="W" KeyHorizontalAlignment="Right" KeyTextWidth="0.5*" />
<usercontrols:UCKeyValue KeyText="Power #2" Value="{Binding LaserPower2Watt}" DecimalPlaces="0" Unit="W" KeyHorizontalAlignment="Right" KeyTextWidth="0.5*" />
<usercontrols:UCKeyValue KeyText="Frequency" Value="{Binding LaserPeriod}" DecimalPlaces="0" Unit="kHz" KeyHorizontalAlignment="Right" KeyTextWidth="0.5*" />
<usercontrols:UCKeyValue KeyText="Pulse Width" Value="{Binding LaserPulseWidth}" DecimalPlaces="0" Unit="us" KeyHorizontalAlignment="Right" KeyTextWidth="0.5*" />
</UniformGrid>
</Grid>
</GroupBox>
<GroupBox Header="Laser Shot Control" Grid.Column="1" Margin="5 5 0 0" Style="{StaticResource StGroupBox2nd}" FontSize="10">
<Grid Margin="3">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"></ColumnDefinition>
<ColumnDefinition Width="1*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="1*"></RowDefinition>
</Grid.RowDefinitions>
<GroupBox Grid.Row="0" Grid.Column="0" Grid.RowSpan="2" Header="Timer Set" Style="{StaticResource StGroupBox4th}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="1*"></RowDefinition>
</Grid.RowDefinitions>
<Border Grid.Row="0" BorderBrush="Gray" BorderThickness="0.5">
<mah:ToggleSwitch Grid.Row="0" HorizontalAlignment="Center" FontSize="12" FontWeight="Bold"
IsOn="{Binding IsUseLaserAutoOffChecked}"
OffContent="No Use Spot Time"
OnContent="Use Spot Time"/>
</Border>
<usercontrols:UCKeyValue Grid.Row="1" KeyText="Time" Value="{Binding LaserOnTime}" DecimalPlaces="0" Unit="ms" KeyHorizontalAlignment="Right" KeyTextWidth="0.9*" Visibility="{Binding IsUseLaserAutoOffChecked, Converter={StaticResource convTrueVisible}}" />
</Grid>
</GroupBox>
<GroupBox Grid.Row="0" Grid.Column="1" Header="Laser Shot Result" 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>
</Grid.RowDefinitions>
<Border Grid.Row="0" Grid.Column="0" MinHeight="30">
<TextBlock Margin="10 0" FontSize="12" Foreground="#FFBBBBBB" FontWeight="Bold" Text="List" 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 BusyStatus}" VerticalAlignment="Center" HorizontalAlignment="Left"/>
</Border>
<Border Grid.Row="1" Grid.Column="0" MinHeight="30">
<TextBlock Margin="10 0" FontSize="12" Foreground="#FFBBBBBB" FontWeight="Bold" Text="Repeat Count" VerticalAlignment="Center" HorizontalAlignment="Right"/>
</Border>
<Border Grid.Row="1" Grid.Column="1" BorderThickness="1" BorderBrush="Gray">
<TextBlock Margin="10 0" FontSize="12" Foreground="#FFBBBBBB" FontWeight="Bold" Text="{Binding ListInterationCount}" VerticalAlignment="Center" HorizontalAlignment="Left"/>
</Border>
</Grid>
</GroupBox>
<UniformGrid Grid.Row="1" Grid.Column="1" Columns="2">
<Button Margin="3" Command="{Binding CMD_LaserShotOnWatt}" Content="Laser On" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" Style="{StaticResource StButtonAccentBlue}" />
<Button Margin="3" Command="{Binding CMD_LaserShotOff}" Content="Laser Off" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" Style="{StaticResource StButtonAccentBlue}" />
</UniformGrid>
</Grid>
</GroupBox>
</Grid>
</GroupBox>
<GroupBox Grid.Row="2" Header="Marking On The Fly" Margin="0 3 3 0" Visibility="{Binding IsUseMarkingOnTheFly, Converter={StaticResource convTrueVisible}}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="1*"></RowDefinition>
</Grid.RowDefinitions>
<GroupBox Header="Encoder Value" Grid.Row="0" Margin="0 5 0 0" Style="{StaticResource StGroupBox4th}">
<Grid Margin="3">
<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>
<UniformGrid Grid.Row="0" Grid.Column="0" Grid.RowSpan="2" Rows="4">
<usercontrols:UCKeyValue KeyText="Encoder X" Value="{Binding EncoderValueAxisX}" DecimalPlaces="3" Unit="mm" KeyHorizontalAlignment="Right" KeyTextWidth="0.9*" IsReadOnly="True"/>
<usercontrols:UCKeyValue KeyText="Encoder Y" Value="{Binding EncoderValueAxisY}" DecimalPlaces="3" Unit="mm" KeyHorizontalAlignment="Right" KeyTextWidth="0.9*" IsReadOnly="True"/>
<usercontrols:UCKeyValue KeyText="Encoder Rotate" Value="{Binding EncoderValueRotate}" DecimalPlaces="3" Unit="degree" KeyHorizontalAlignment="Right" KeyTextWidth="0.9*" IsReadOnly="True"/>
<usercontrols:UCKeyValue KeyText="Encoder Velocity" Value="{Binding EncoderValueVelocity}" DecimalPlaces="3" KeyHorizontalAlignment="Right" KeyTextWidth="0.9*" IsReadOnly="True"/>
</UniformGrid>
<GroupBox Grid.Row="0" Grid.Column="1" Header="FieldOut Status" 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="1*"></RowDefinition>
</Grid.RowDefinitions>
<Border Grid.Row="0" Grid.Column="0" MinHeight="30">
<TextBlock Margin="10 0" FontSize="12" Foreground="#FFBBBBBB" FontWeight="Bold" Text="X Dir FieldOut" 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 IsFieldOutX}" Background="{Binding IsFieldOutX, Converter={StaticResource convFieldColor}}" VerticalAlignment="Center" HorizontalAlignment="Left"/>
</Border>
<Border Grid.Row="1" Grid.Column="0" MinHeight="30">
<TextBlock Margin="10 0" FontSize="12" Foreground="#FFBBBBBB" FontWeight="Bold" Text="Y Dir FieldOut" VerticalAlignment="Center" HorizontalAlignment="Right"/>
</Border>
<Border Grid.Row="1" Grid.Column="1" BorderThickness="1" BorderBrush="Gray">
<TextBlock Margin="10 0" FontSize="12" Foreground="#FFBBBBBB" FontWeight="Bold" Text="{Binding IsFieldOutY}" Background="{Binding IsFieldOutY, Converter={StaticResource convFieldColor}}" VerticalAlignment="Center" HorizontalAlignment="Left"/>
</Border>
</Grid>
</GroupBox>
<UniformGrid Grid.Row="1" Grid.Column="1" Columns="3" Margin="5 0 5 0">
<Button Margin="3" Command="{Binding CMD_ResetEncoderValue}" Content="Reset Encoder" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" Style="{StaticResource StButtonAccentBlue}" />
<Button Margin="3" Command="{Binding CMD_SimulateEncoder}" Content="Simul X" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" Style="{StaticResource StButtonAccentBlue}" />
<Button Margin="3" Command="{Binding CMD_SimulateEncoderXY}" Content="XY" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" Style="{StaticResource StButtonAccentBlue}" />
</UniformGrid>
</Grid>
</GroupBox>
<GroupBox Header="Control Setting" Grid.Row="1" Margin="0 5 0 0" Style="{StaticResource StGroupBox4th}">
<Grid Margin="3">
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="1*"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"></ColumnDefinition>
<ColumnDefinition Width="1*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<UniformGrid Grid.Row="0" Rows="3">
<usercontrols:UCKeyValue KeyText="Rotate CenterX" Value="{Binding RotateCenterX}" DecimalPlaces="3" Unit="mm" KeyHorizontalAlignment="Right" KeyTextWidth="0.9*" />
<usercontrols:UCKeyValue KeyText="Rotate CenterY" Value="{Binding RotateCenterY}" DecimalPlaces="3" Unit="mm" KeyHorizontalAlignment="Right" KeyTextWidth="0.9*" />
<usercontrols:UCKeyValue KeyText="Encoder Resolution" Value="{Binding EncoderResolution}" DecimalPlaces="3" Unit="count/rev" KeyHorizontalAlignment="Right" KeyTextWidth="0.9*" />
</UniformGrid>
<UniformGrid Grid.Row="0" Grid.Column="1" Columns="2" Margin="5 0 5 0">
<Button Margin="3" Command="{Binding CMD_ActivateOnTheFly}" Content="Activate On The Fly" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" Style="{StaticResource StButtonAccentBlue}" />
<Button Margin="3" Command="{Binding CMD_DeactivateOnTheFly}" Content="Deactivate On The Fly" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="auto" Style="{StaticResource StButtonAccentBlue}" />
</UniformGrid>
</Grid>
</GroupBox>
</Grid>
</GroupBox>
</Grid>
</UserControl>