096111e983
.claude/ 제외(.gitignore 추가). 기존 초기커밋(5a96a69) 위에 신규·수정·이동분 커밋.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
119 lines
7.8 KiB
XML
119 lines
7.8 KiB
XML
<Window x:Class="DiffuserSimulator.MainWindow"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
Title="디퓨져 시뮬레이터 - Diffuser Simulator"
|
|
Width="1400" Height="970"
|
|
MinWidth="1300" MinHeight="930"
|
|
Background="{StaticResource PrimaryBgBrush}"
|
|
WindowStartupLocation="CenterScreen">
|
|
|
|
<Grid Margin="14">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="*"/>
|
|
<RowDefinition Height="120"/>
|
|
</Grid.RowDefinitions>
|
|
|
|
<!-- Row 0: 연결 설정 -->
|
|
<Border Grid.Row="0" Background="{StaticResource SecondaryBgBrush}"
|
|
CornerRadius="10" Padding="18,10" Margin="0,0,0,8">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto"/>
|
|
<ColumnDefinition Width="Auto"/>
|
|
<ColumnDefinition Width="*"/>
|
|
<ColumnDefinition Width="Auto"/>
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<StackPanel Grid.Column="0" Orientation="Horizontal" VerticalAlignment="Center">
|
|
<TextBlock Text="디퓨져 시뮬레이터" FontSize="18" FontWeight="Bold"
|
|
Foreground="{StaticResource AccentCyanBrush}" Margin="0,0,14,0"/>
|
|
</StackPanel>
|
|
|
|
<StackPanel Grid.Column="1" VerticalAlignment="Center" Margin="0,0,20,0">
|
|
<TextBlock Text="만든이 : 전경선" Foreground="{StaticResource TextSecondaryBrush}" FontSize="10"/>
|
|
<TextBlock Text="수정일 : 2026.03.28 ~ 2026.06.08" Foreground="{StaticResource TextSecondaryBrush}" FontSize="10"/>
|
|
</StackPanel>
|
|
|
|
<!-- 제품 모드 전역 선택 : 토글 버튼 (DL ⇄ 힘펠). DL=LED디밍 활성·RA2 비활성·방4 비활성 -->
|
|
<StackPanel Grid.Column="2" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
|
|
<TextBlock Text="제품사양" Foreground="{StaticResource TextPrimaryBrush}"
|
|
VerticalAlignment="Center" Margin="0,0,8,0" FontSize="12" FontWeight="SemiBold"/>
|
|
<Button x:Name="btnProductMode" Content="DL" Width="96" Padding="14,7"
|
|
Style="{StaticResource ModernButton}" Background="{StaticResource AccentBlueBrush}"
|
|
Click="ProductMode_Click"/>
|
|
</StackPanel>
|
|
|
|
<StackPanel Grid.Column="3" Orientation="Horizontal">
|
|
<TextBlock Text="통신포트" Foreground="{StaticResource TextPrimaryBrush}"
|
|
VerticalAlignment="Center" Margin="0,0,6,0" FontSize="12" FontWeight="SemiBold"/>
|
|
<ComboBox x:Name="cmbPort" Width="100" Style="{StaticResource ModernComboBox}"
|
|
VerticalAlignment="Center" Margin="0,0,6,0"/>
|
|
<Button Content="⟳" Width="30" Height="30" FontSize="13"
|
|
Style="{StaticResource ModernButton}" Click="RefreshPorts_Click"
|
|
Background="{StaticResource CardBgBrush}" Margin="0,0,12,0" Padding="0"/>
|
|
|
|
<StackPanel Orientation="Vertical" VerticalAlignment="Center" Margin="0,0,12,0">
|
|
<Button x:Name="btnAutoChange" Content="센서값 자동 변경" Style="{StaticResource ModernButton}"
|
|
Background="{StaticResource AccentBlueBrush}"
|
|
Padding="14,6" FontSize="11" Click="AutoChange_Click"
|
|
ToolTip="선택한 프리셋모드(ECO/NORMAL/TURBO) 밴드로 거실→방1~3 순서로 30초마다 오염레벨 0→1→2→3→4 자동 변경"/>
|
|
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Margin="0,4,0,0">
|
|
<RadioButton x:Name="RbAutoEco" Content="ECO" GroupName="AutoPreset" Style="{StaticResource PresetRadio}"/>
|
|
<RadioButton x:Name="RbAutoNorm" Content="NORMAL" GroupName="AutoPreset" Style="{StaticResource PresetRadio}" IsChecked="True"/>
|
|
<RadioButton x:Name="RbAutoTurbo" Content="TURBO" GroupName="AutoPreset" Style="{StaticResource PresetRadio}"/>
|
|
</StackPanel>
|
|
</StackPanel>
|
|
|
|
<TextBlock Text="폴링(ms)" Foreground="{StaticResource TextPrimaryBrush}"
|
|
VerticalAlignment="Center" Margin="0,0,6,0" FontSize="11" FontWeight="SemiBold"/>
|
|
<ComboBox x:Name="cmbInterval" Width="75" Style="{StaticResource ModernComboBox}"
|
|
VerticalAlignment="Center" Margin="0,0,12,0" SelectedIndex="3">
|
|
<ComboBoxItem Content="200"/>
|
|
<ComboBoxItem Content="300"/>
|
|
<ComboBoxItem Content="500"/>
|
|
<ComboBoxItem Content="1000"/>
|
|
<ComboBoxItem Content="2000"/>
|
|
</ComboBox>
|
|
|
|
<Ellipse x:Name="statusLed" Width="10" Height="10" Fill="#F7768E" Margin="0,0,6,0" VerticalAlignment="Center"/>
|
|
<TextBlock x:Name="txtStatus" Text="미연결" Foreground="{StaticResource TextSecondaryBrush}"
|
|
FontSize="12" VerticalAlignment="Center" Margin="0,0,12,0"/>
|
|
|
|
<Button x:Name="btnConnect" Content="연결" Style="{StaticResource ModernButton}"
|
|
Click="Connect_Click" Margin="0,0,6,0" Padding="14,7"/>
|
|
<Button x:Name="btnStart" Content="통신 시작" Style="{StaticResource ModernButton}"
|
|
Background="{StaticResource AccentGreenBrush}" Click="Start_Click"
|
|
IsEnabled="False" Margin="0,0,6,0" Padding="14,7"/>
|
|
<Button x:Name="btnStop" Content="통신 중지" Style="{StaticResource ModernButton}"
|
|
Background="{StaticResource AccentRedBrush}" Click="Stop_Click"
|
|
IsEnabled="False" Padding="14,7"/>
|
|
</StackPanel>
|
|
</Grid>
|
|
</Border>
|
|
|
|
<!-- Row 1: 5개 방 패널 -->
|
|
<UniformGrid Grid.Row="1" x:Name="roomGrid" Rows="1" Columns="5" Margin="0,0,0,8"/>
|
|
|
|
<!-- Row 2: 통신 로그 -->
|
|
<Border Grid.Row="2" Background="{StaticResource SecondaryBgBrush}" CornerRadius="10" Padding="12">
|
|
<DockPanel>
|
|
<Grid DockPanel.Dock="Top" Margin="0,0,0,5">
|
|
<TextBlock Text="통신 로그" FontSize="12" FontWeight="Bold" Foreground="{StaticResource TextPrimaryBrush}"/>
|
|
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
|
|
<Button Content="로그 저장" Style="{StaticResource ModernButton}" Background="{StaticResource AccentBlueBrush}"
|
|
Padding="10,3" FontSize="11" Click="SaveLog_Click" Margin="0,0,6,0"/>
|
|
<Button Content="로그 지우기" Style="{StaticResource ModernButton}" Background="{StaticResource CardBgBrush}"
|
|
Padding="10,3" FontSize="11" Click="ClearLog_Click"/>
|
|
</StackPanel>
|
|
</Grid>
|
|
<TextBox x:Name="txtLog" IsReadOnly="True" Background="{StaticResource CardBgBrush}"
|
|
Foreground="{StaticResource TextPrimaryBrush}" BorderBrush="{StaticResource BorderBrush}"
|
|
BorderThickness="1" FontFamily="Consolas" FontSize="10"
|
|
VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto"
|
|
TextWrapping="NoWrap" Padding="6"/>
|
|
</DockPanel>
|
|
</Border>
|
|
</Grid>
|
|
</Window>
|