Files
HECO2/Simulator/DiffuserSimulator/MainWindow.xaml
T
jeon a502322188 chore: HERV 통합 저장소 재초기화 커밋
손상된 .git 히스토리(missing tree)로 재초기화 후 작업트리 전체 커밋.
.claude/ 만 제외(로컬 에이전트 설정). 구 저장소 백업(.git_corrupt_backup/) 포함.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 09:32:17 +09:00

112 lines
7.1 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"/>
<Button x:Name="btnAutoChange" Content="자동변경" Style="{StaticResource ModernButton}"
Background="{StaticResource AccentBlueBrush}" VerticalAlignment="Center"
Margin="0,0,12,0" Padding="14,7" FontSize="11" Click="AutoChange_Click"
ToolTip="거실→방1~3 순서로 30초마다 오염레벨 0→1→2→3→4 자동 변경"/>
<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>