2026-01-26 18:56:53 +09:00

175 lines
12 KiB
XML

<UserControl x:Class="WeldingCommon.Views.UCPowerCalibration"
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:view="clr-namespace:Aurora.View;assembly=Aurora"
xmlns:lvc="clr-namespace:LiveChartsCore.SkiaSharpView.WPF;assembly=LiveChartsCore.SkiaSharpView.WPF"
xmlns:behavior ="http://schemas.microsoft.com/xaml/behaviors"
mc:Ignorable="d" d:DesignHeight="900" d:DesignWidth="1600" Name="uc"
d:DataContext="{d:DesignInstance Type=local:UCPowerCalibrationViewModel}">
<UserControl.Resources>
<ResourceDictionary>
<Style x:Key="StTextBlock" TargetType="TextBlock">
<Setter Property="Foreground" Value="White"/>
<Setter Property="FontSize" Value="17"/>
<Setter Property="HorizontalAlignment" Value="Stretch"/>
<Setter Property="VerticalAlignment" Value="Stretch"/>
<Setter Property="TextAlignment" Value="Center"/>
</Style>
<Style x:Key="StTextBox" TargetType="TextBox">
<Setter Property="Background" Value="White"/>
<Setter Property="FontSize" Value="18"/>
<Setter Property="Foreground" Value="Black"/>
<Setter Property="HorizontalAlignment" Value="Stretch"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="TextAlignment" Value="Center"/>
<Setter Property="Width" Value="auto"/>
</Style>
<Style x:Key="StButton" TargetType="Button">
<Setter Property="FontSize" Value="18"/>
<Setter Property="BorderThickness" Value="2"/>
</Style>
<view:BoolConverter x:Key="LaserEnableColor" 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>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0" Orientation="Vertical">
<GroupBox Margin="5" Header="Beam Setting">
<StackPanel Orientation="Vertical">
<Grid Height="50" Margin="5">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<RadioButton Grid.Column="0" GroupName="grBeamType" Name="radio_BeamCenter" Width="auto" Margin="5" FontSize="20" IsChecked="{Binding radioBeamTypeCenterChecked}" Command="{Binding SELECT_BeamType}" >Center</RadioButton>
<RadioButton Grid.Column="1" GroupName="grBeamType" Name="radio_BeamRing" Width="auto" Margin="5" FontSize="20" IsChecked="{Binding radioBeamTypeRingChecked}" Command="{Binding SELECT_BeamType}" >Ring</RadioButton>
</Grid>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="6*"/>
<ColumnDefinition Width="4*"/>
</Grid.ColumnDefinitions>
<StackPanel>
<StackPanel Orientation="Horizontal">
<ComboBox x:Name="comboOutputControl" Width="150" Text="{Binding cbOutputControl}" SelectionChanged="comboOutputControl_SelectionChanged"></ComboBox>
<TextBox Width=" 80" Margin="20,0,0,0" Text="{Binding dbControlValue, StringFormat={}{0:0.000}}" TextChanged="ControlValueChanged" >
</TextBox>
<TextBlock Width=" 80" Margin="20,0,0,0" Style="{StaticResource StTextBlock}" Text="{Binding strControlUnit}" ></TextBlock>
</StackPanel>
<Slider Height="40" Margin="20" Value="{Binding nSliderValue}" ValueChanged="Slider_ValueChanged" Maximum="{Binding nSliderMax}"></Slider>
</StackPanel>
<Grid Grid.Column="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="5*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Border Grid.Row="0" BorderBrush="White" BorderThickness="1" Margin="5">
<TextBlock Style="{StaticResource StTextBlock}" Text="{Binding dbPercent}"/>
</Border>
<Border Grid.Row="1" BorderBrush="White" BorderThickness="1" Margin="5">
<TextBlock Style="{StaticResource StTextBlock}" Text="{Binding dbVoltage}"/>
</Border>
<Border Grid.Row="2" BorderBrush="White" BorderThickness="1" Margin="5">
<TextBlock Style="{StaticResource StTextBlock}" Text="{Binding dbWatt}"/>
</Border>
<TextBlock Grid.Column="1" Grid.Row="0" Style="{StaticResource StTextBlock}" Margin="5">%</TextBlock>
<TextBlock Grid.Column="1" Grid.Row="1" Style="{StaticResource StTextBlock}" Margin="5">V</TextBlock>
<TextBlock Grid.Column="1" Grid.Row="2" Style="{StaticResource StTextBlock}" Margin="5">W</TextBlock>
</Grid>
</Grid>
</StackPanel>
</GroupBox>
<GroupBox Margin="5" Header="Laser Control">
<Grid Margin="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="5*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBlock Grid.Column="0" Grid.Row="0" Style="{StaticResource StTextBlock}" TextAlignment="Right" Margin="5">Power Reading Time (10000~60000)</TextBlock>
<TextBlock Grid.Column="0" Grid.Row="1" Style="{StaticResource StTextBlock}" TextAlignment="Right" Margin="5">Sampling Period (100~1000)</TextBlock>
<TextBlock Grid.Column="0" Grid.Row="2" Style="{StaticResource StTextBlock}" TextAlignment="Right" Margin="5">Average Power</TextBlock>
<TextBlock Grid.Column="0" Grid.Row="3" Style="{StaticResource StTextBlock}" TextAlignment="Right" Margin="5">Peak Power</TextBlock>
<TextBlock Grid.Column="0" Grid.Row="4" Style="{StaticResource StTextBlock}" TextAlignment="Right" Margin="5">Sampling Count</TextBlock>
<TextBox Grid.Column="1" Grid.Row="0" Style="{StaticResource StTextBox}" Margin="5" Text="{Binding nPowerReadingTime}"></TextBox>
<TextBox Grid.Column="1" Grid.Row="1" Style="{StaticResource StTextBox}" Margin="5" Text="{Binding nSamplingPeriod}"></TextBox>
<TextBlock Grid.Column="1" Grid.Row="2" Style="{StaticResource StTextBlock}" Margin="5" Text="{Binding dbAveragePower , StringFormat={}{0:0.0}}"></TextBlock>
<TextBlock Grid.Column="1" Grid.Row="3" Style="{StaticResource StTextBlock}" Margin="5" Text="{Binding dbPeakPower , StringFormat={}{0:0.0}}"></TextBlock>
<TextBlock Grid.Column="1" Grid.Row="4" Style="{StaticResource StTextBlock}" Margin="5" Text="{Binding nSampingCount}"></TextBlock>
<TextBlock Grid.Column="2" Grid.Row="0" Style="{StaticResource StTextBlock}" TextAlignment="Left" Margin="5">msec</TextBlock>
<TextBlock Grid.Column="2" Grid.Row="1" Style="{StaticResource StTextBlock}" TextAlignment="Left" Margin="5">msec</TextBlock>
<TextBlock Grid.Column="2" Grid.Row="2" Style="{StaticResource StTextBlock}" TextAlignment="Left" Margin="5">Watt</TextBlock>
<TextBlock Grid.Column="2" Grid.Row="3" Style="{StaticResource StTextBlock}" TextAlignment="Left" Margin="5">Watt</TextBlock>
<Button Grid.Column="0" Grid.Row="5" Command="{Binding CMD_PowerReading}" FontSize="18" Margin="10" Height="60" Content="Power Reading &#10;(Emission ON)" ></Button>
<Button Grid.Column="1" Grid.Row="5" Grid.ColumnSpan="2" Command="{Binding CMD_StopEmission}" FontSize="18" Margin="10">Stop Emission</Button>
</Grid>
</GroupBox>
<GroupBox Margin="5" Header="Graph">
<Grid Margin="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="5*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Button Grid.Column="0" Grid.Row="0" Command="{Binding CMD_Apply}" FontSize="30" Margin="10" Height="160" VerticalAlignment="Stretch" Content="Apply" ></Button>
<Button Grid.Column="0" Grid.Row="1" Command="{Binding CMD_AutoSet}" FontSize="30" Margin="10" Height="160" Content="Auto Set" ></Button>
<lvc:CartesianChart Series="{Binding Series}" Grid.Column="1" Grid.Row="0" Grid.RowSpan="2"
XAxes="{Binding XAxes}"
YAxes="{Binding YAxes}"
LegendPosition="Right"
LegendTextPaint="{Binding LegendTextPaint}"
ZoomMode="Both"
TooltipFindingStrategy="CompareOnlyXTakeClosest"
EasingFunction="{x:Null}"
/>
</Grid>
</GroupBox>
</StackPanel>
<GroupBox Grid.Column="1">
<StackPanel Orientation="Vertical">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<TextBlock Style="{StaticResource StTextBlock}" TextAlignment="Left" Margin="5">Interval(1~100)</TextBlock>
<TextBox Width="150" Style="{StaticResource StTextBox}" Margin="5" Text="{Binding nInterval}"></TextBox>
<TextBlock Style="{StaticResource StTextBlock}" TextAlignment="Left" Margin="40,5,5,5">Maximum Power</TextBlock>
<TextBox Width="150" Style="{StaticResource StTextBox}" Margin="5" Text="{Binding nMaximumPower}"></TextBox>
</StackPanel>
<Button Command="{Binding CMD_InitializeTable}" FontSize="30" Margin="20" Height="60" Content="Initialize Table" ></Button>
<DataGrid Margin="10" Height="730" ItemsSource="{Binding CalibrationDataTable}"
Background="Black" BorderThickness="1" ColumnHeaderHeight="18" ColumnWidth="100" HorizontalGridLinesBrush="DarkGray" VerticalGridLinesBrush="DarkGray" RowHeight="27" AutoGenerateColumns="True" GridLinesVisibility="All"
/>
</StackPanel>
</GroupBox>
</Grid>
</UserControl>