2026-06-05 13:44:39 +09:00

164 lines
9.5 KiB
XML

<UserControl x:Class="AuroraLaser.Trupulse.Views.UCTruPulseManual"
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:AuroraLaser.Trupulse.Views"
xmlns:usercontrols="clr-namespace:AuroraUIComponent.UserControls;assembly=AuroraUIComponent"
mc:Ignorable="d"
d:DataContext="{d:DesignInstance Type=local:UCTruPulseManualViewModel}"
d:DesignHeight="800" d:DesignWidth="1000">
<!-- 공통 여백 스타일 (원하면 사용) -->
<UserControl.Resources>
<Style x:Key="InlineGap" TargetType="FrameworkElement">
<Setter Property="Margin" Value="8,0,0,0"/>
</Style>
</UserControl.Resources>
<Grid Margin="12">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="170"/>
</Grid.RowDefinitions>
<!-- 상태 모니터 -->
<Border Grid.Row="0" BorderBrush="#333" BorderThickness="1" Padding="10" Margin="0,10,0,10">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
<!-- 상태 인디케이터 --><!--
<StackPanel Orientation="Horizontal">
<StackPanel>
<TextBlock Text="Laser Ready" Foreground="White"/>
<Ellipse x:Name="dotReady" Width="18" Height="18" Fill="#444" Stroke="#888" StrokeThickness="1"/>
</StackPanel>
<StackPanel Margin="16,0,0,0">
<TextBlock Text="Emission (Fast)" Foreground="White"/>
<Ellipse x:Name="dotEmitFast" Width="18" Height="18" Fill="#444" Stroke="#888" StrokeThickness="1"/>
</StackPanel>
<StackPanel Margin="16,0,0,0">
<TextBlock Text="Emission (Slow)" Foreground="White"/>
<Ellipse x:Name="dotEmitSlow" Width="18" Height="18" Fill="#444" Stroke="#888" StrokeThickness="1"/>
</StackPanel>
<StackPanel Margin="16,0,0,0">
<TextBlock Text="Alarm" Foreground="White"/>
<Ellipse x:Name="dotAlarm" Width="18" Height="18" Fill="#444" Stroke="#888" StrokeThickness="1"/>
</StackPanel>
</StackPanel>
--><!-- 현재값 표시 --><!--
<StackPanel Grid.Column="1" Orientation="Vertical" Margin="16,0,0,0">
<TextBlock Text="Temperatures (°C)" Foreground="#A0A0A0" Margin="0,0,0,4"/>
<TextBlock x:Name="lblTemp" Foreground="White" Text="-"/>
<TextBlock Text="Currents (A)" Foreground="#A0A0A0" Margin="0,8,0,4"/>
<TextBlock x:Name="lblCurrent" Foreground="White" Text="-"/>
</StackPanel>
--><!-- 모니터링 컨트롤 --><!--
<StackPanel Grid.Column="2" Orientation="Horizontal">
<ToggleButton x:Name="tglMonitor" Content="Start Monitoring" Width="150" Checked="tglMonitor_Checked" Unchecked="tglMonitor_Unchecked"/>
<TextBlock Text="Period (ms)" VerticalAlignment="Center" Foreground="White" Margin="8,0,0,0"/>
<TextBox x:Name="txtPeriod" Width="70" Text="500" Margin="6,0,0,0"/>
<Separator Width="16" Background="#333" Margin="8,0,8,0"/>
<ToggleButton x:Name="tglTTL" Content="TTL Simulator" Width="150" Checked="tglTTL_Checked" Unchecked="tglTTL_Unchecked"/>
<TextBlock Text="Freq (Hz)" VerticalAlignment="Center" Foreground="White" Margin="8,0,0,0"/>
<TextBox x:Name="txtTTLHz" Width="70" Text="1000" Margin="6,0,0,0"/>
<TextBlock Text="Duty (%)" VerticalAlignment="Center" Foreground="White" Margin="8,0,0,0"/>
<TextBox x:Name="txtTTLDuty" Width="70" Text="50" Margin="6,0,0,0"/>
</StackPanel>-->
</Grid>
</Border>
<!-- 명령 버튼 영역 -->
<UniformGrid Grid.Row="1" Columns="4" HorizontalAlignment="Left">
<usercontrols:UCKeyComboBoxOnOff
KeyText="Laser Disable" Grid.Row ="5" ValueText="{Binding LaserDisable}" Height="70" Width="150"
KeyTextFgColor="Black" KeyTextBgColor="White" KeyTextSize="15" KeyTextWidth="1*"
ValueTextFgColor="#efefef" ValueTextBgColor="#111111" ValueTextSize="15" ValueTextWidth="1*"
KeyHorizontalAlignment="Right"/>
<usercontrols:UCKeyComboBoxOnOff
KeyText="Laser" Grid.Row ="5" ValueText="{Binding LaserEnable}" Height="70" Width="150"
KeyTextFgColor="Black" KeyTextBgColor="White" KeyTextSize="15" KeyTextWidth="1*"
ValueTextFgColor="#efefef" ValueTextBgColor="#111111" ValueTextSize="15" ValueTextWidth="1*"
KeyHorizontalAlignment="Right"/>
<usercontrols:UCKeyComboBoxOnOff
KeyText="PliotLaser" Grid.Row ="5" ValueText="{Binding PilotLaser}" Height="70" Width="150"
KeyTextFgColor="Black" KeyTextBgColor="White" KeyTextSize="15" KeyTextWidth="1*"
ValueTextFgColor="#efefef" ValueTextBgColor="#111111" ValueTextSize="15" ValueTextWidth="1*"
KeyHorizontalAlignment="Right"/>
<usercontrols:UCKeyComboBoxOnOff
KeyText="CW Pulse" Grid.Row ="5" ValueText="{Binding CwPulse}" Height="70" Width="150"
KeyTextFgColor="Black" KeyTextBgColor="White" KeyTextSize="15" KeyTextWidth="1*"
ValueTextFgColor="#efefef" ValueTextBgColor="#111111" ValueTextSize="15" ValueTextWidth="1*"
KeyHorizontalAlignment="Right"/>
<usercontrols:UCKeyComboBoxNumber
KeyText="Mode&#10;Select" Grid.Row ="5" ValueText="{Binding Mode}" MaxValue="7" Height="70" Width="150"
KeyTextFgColor="Black" KeyTextBgColor="White" KeyTextSize="15" KeyTextWidth="1*"
ValueTextFgColor="#efefef" ValueTextBgColor="#111111" ValueTextSize="15" ValueTextWidth="1*"
KeyHorizontalAlignment="Right"/>
<usercontrols:UCKeyComboBoxNumber
KeyText="Waveform&#10;Select" Grid.Row ="5" ValueText="{Binding WaveForm}" MaxValue="63" Height="70" Width="150"
KeyTextFgColor="Black" KeyTextBgColor="White" KeyTextSize="15" KeyTextWidth="1*"
ValueTextFgColor="#efefef" ValueTextBgColor="#111111" ValueTextSize="15" ValueTextWidth="1*"
KeyHorizontalAlignment="Right"/>
<usercontrols:UCKeyValue
KeyText="Power amplifier&#10;active current&#10;set point" Value="{Binding ActiveCurrent}" Unit="" Height="70" Width="200"
KeyTextFgColor="Black" KeyTextBgColor="White" KeyTextSize="15" KeyTextWidth="1*"
ValueTextFgColor="#efefef" ValueTextBgColor="#111111" ValueTextSize="15" ValueTextWidth="1*"
KeyHorizontalAlignment="Right" ToolTip="Sets the values of the active or simmer current set points"/>
<usercontrols:UCKeyValue
KeyText="Power amplifier&#10;simmer current&#10;set point" Value="{Binding SimmerCurrent}" Unit="" Height="70" Width="200"
KeyTextFgColor="Black" KeyTextBgColor="White" KeyTextSize="15" KeyTextWidth="1*"
ValueTextFgColor="#efefef" ValueTextBgColor="#111111" ValueTextSize="15" ValueTextWidth="1*"
KeyHorizontalAlignment="Right" ToolTip="Sets the values of the active or simmer current set points"/>
<usercontrols:UCKeyValue
KeyText="Pulse&#10;Rate" Value="{Binding PulseRate}" Unit="prf" Height="70" Width="200"
KeyTextFgColor="Black" KeyTextBgColor="White" KeyTextSize="15" KeyTextWidth="1*"
ValueTextFgColor="#efefef" ValueTextBgColor="#111111" ValueTextSize="15" ValueTextWidth="1*"
KeyHorizontalAlignment="Right" ToolTip="Selects the pulse rate of the currently selected waveform (0 ~ 500,000)"/>
<usercontrols:UCKeyValue
KeyText="Pulse&#10;Burst Length" Value="{Binding PulseBurstLength}" Unit="" Height="70" Width="200"
KeyTextFgColor="Black" KeyTextBgColor="White" KeyTextSize="15" KeyTextWidth="1*"
ValueTextFgColor="#efefef" ValueTextBgColor="#111111" ValueTextSize="15" ValueTextWidth="1*"
KeyHorizontalAlignment="Right" ToolTip="Sets the pulse burst length (number of pulses) of the currently selected waveform (0 ~ 1,000,000)"/>
<usercontrols:UCKeyValue
KeyText="Pump&#10;Duty Factor" Value="{Binding PumpDutyFactor}" Unit="" Height="70" Width="200"
KeyTextFgColor="Black" KeyTextBgColor="White" KeyTextSize="15" KeyTextWidth="1*"
ValueTextFgColor="#efefef" ValueTextBgColor="#111111" ValueTextSize="15" ValueTextWidth="1*"
KeyHorizontalAlignment="Right" ToolTip="Sets the pulse burst length (number of pulses) of the currently selected waveform (0 ~ 1,000)"/>
<Button Content="Restart Pulse Generator" Margin="4" Command="{Binding CMD_RestartPulseGenerator}"/>
<Button Content="Log Clear" Margin="4" Command="{Binding CMD_LogClear}"/>
</UniformGrid>
<UniformGrid Grid.Row="2" Columns="7" HorizontalAlignment="Left">
<Button Content="Get InterfaceMode" Margin="4" Command="{Binding CMD_GetInterfaceMode}"/>
<Button Content="Get Status Lines" Margin="4" Command="{Binding CMD_GetStatusLines}"/>
<Button Content="Get Temperatures" Margin="4" Command="{Binding CMD_GetTemperatures}"/>
<Button Content="Get Currents" Margin="4" Command="{Binding CMD_GetCurrents}"/>
<Button Content="Get Operating Hours" Margin="4" Command="{Binding CMD_GetOperatingHours}"/>
<Button Content="Get Firmware" Margin="4" Command="{Binding CMD_GetFirmware}"/>
<Button Content="Get ExternalTriggerRate" Margin="4" Command="{Binding CMD_GetExternalTriggerRate}"/>
</UniformGrid>
<!-- 로그 -->
<TextBox Grid.Row="3"
Text="{Binding LogText, Mode=OneWay}"
Background="#111" Foreground="#0F0"
FontFamily="Consolas" FontSize="13"
TextWrapping="Wrap"
VerticalScrollBarVisibility="Auto"
IsReadOnly="True"/>
</Grid>
</UserControl>