Kyungshin-Welder/AuroraDevices/AuroraIO/View/UCIOInterfaceView.xaml
2026-01-26 14:51:28 +09:00

138 lines
8.1 KiB
XML

<UserControl x:Class="AuroraIO.View.UCIOInterfaceView"
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:view="clr-namespace:Aurora.View;assembly=Aurora"
xmlns:behavior="http://schemas.microsoft.com/xaml/behaviors"
xmlns:local="clr-namespace:AuroraIO.View"
d:DataContext="{d:DesignInstance Type=local:UCIOInterfaceViewModel}"
mc:Ignorable="d" Name="uc"
d:DesignHeight="800" d:DesignWidth="1700">
<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>
<UserControl.Resources>
<ResourceDictionary>
<view:BoolConverter x:Key="convStatusColor" TrueValue="Green" FalseValue="Gray"/>
<Style x:Key="StSignal" TargetType="Ellipse">
<Setter Property="Width" Value="15"/>
<Setter Property="Height" Value="15"/>
<Setter Property="StrokeThickness" Value="1"/>
<Setter Property="Stroke" Value="Black"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>
</ResourceDictionary>
</UserControl.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="5*"/>
</Grid.RowDefinitions>
<!-- Digital Input -->
<Grid Grid.Column="0" Grid.Row="0" Margin="5">
<StackPanel Orientation="Horizontal">
<TextBlock Margin="20" FontSize="20" FontWeight="Bold" Text="Digital Inputs"></TextBlock>
</StackPanel>
</Grid>
<DataGrid Grid.Column="0" Grid.Row="1" ItemsSource="{Binding DigitalInputsView}" Background="Black" BorderThickness="1" ColumnHeaderHeight="18" RowHeight="27"
HorizontalGridLinesBrush="#FFA0A0A0" VerticalGridLinesBrush="#FFA0A0A0" GridLinesVisibility="All"
AutoGenerateColumns="False" IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn Width="*" Header="Address" Binding="{Binding Address}" FontSize="12"/>
<DataGridTextColumn Width="2*" Header="Description" Binding="{Binding Description}" FontSize="12"/>
<DataGridTemplateColumn Width="*" Header="Status">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Ellipse Fill="{Binding DIStatus, Converter={StaticResource convStatusColor}}" Style="{StaticResource StSignal}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
<!-- Digital Output -->
<Grid Grid.Column="1" Grid.Row="0" Margin="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="4*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<TextBlock Margin="20" FontSize="20" FontWeight="Bold" Text="Digital Outputs"></TextBlock>
<GroupBox Grid.Column="2" Header="ChangeValue" Height="100">
<Button Margin="5" Command="{Binding CMD_SETBIT}">Set BIT</Button>
</GroupBox>
</Grid>
<DataGrid x:Name="DOOutputsView" Grid.Column="1" Grid.Row="1" ItemsSource="{Binding DigitalOutputsView}" SelectedItem="{Binding SelectedDOutputItem}"
SelectedIndex="{Binding SelectedDOutputIndex}" MouseDoubleClick="DOOutputsView_MouseDoubleClick"
Background="Black" BorderThickness="1" ColumnHeaderHeight="18" RowHeight="27"
HorizontalGridLinesBrush="#FFA0A0A0" VerticalGridLinesBrush="#FFA0A0A0" GridLinesVisibility="All"
AutoGenerateColumns="False" IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn Width="*" Header="Address" Binding="{Binding Address}" FontSize="12"/>
<DataGridTextColumn Width="2*" Header="Description" Binding="{Binding Description}" FontSize="12"/>
<DataGridTemplateColumn Width="*" Header="Status">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Ellipse Fill="{Binding DOStatus, Converter={StaticResource convStatusColor}}" Style="{StaticResource StSignal}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
<!-- Word Input -->
<Grid Grid.Column="2" Grid.Row="0" Margin="5">
<StackPanel Orientation="Horizontal">
<TextBlock Margin="20" FontSize="20" FontWeight="Bold" Text="Analog Inputs"></TextBlock>
</StackPanel>
</Grid>
<DataGrid Grid.Column="2" Grid.Row="1" ItemsSource="{Binding WordInputsView}" SelectedItem="{Binding SelectedWInputItem}"
SelectedIndex="{Binding SelectedWInputIndex}" Background="Black" BorderThickness="1" ColumnHeaderHeight="18" RowHeight="27"
HorizontalGridLinesBrush="#FFA0A0A0" VerticalGridLinesBrush="#FFA0A0A0" GridLinesVisibility="All"
AutoGenerateColumns="False" IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn Width="*" Header="Address" Binding="{Binding Address}" FontSize="12"/>
<DataGridTextColumn Width="2*" Header="Description" Binding="{Binding Description}" FontSize="12"/>
<DataGridTextColumn Width="*" Header="Status" Binding="{Binding WIStatus}" FontSize="12"/>
</DataGrid.Columns>
</DataGrid>
<!-- Word output -->
<Grid Grid.Column="3" Grid.Row="0" Margin="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Margin="20" FontSize="20" FontWeight="Bold" Text="Analog Outputs"></TextBlock>
<GroupBox Grid.Column="1" Header="ChangeValue" Height="100">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBox Margin="5" Text="{Binding InputWORD}"></TextBox>
<Button Grid.Column="1" Margin="5" Command="{Binding CMD_SETWORD}">Set WORD</Button>
</Grid>
</GroupBox>
</Grid>
<DataGrid Grid.Column="3" Grid.Row="1" ItemsSource="{Binding AnalogOutputsView}" SelectedItem="{Binding SelectedWOutputItem}"
SelectedIndex="{Binding SelectedWOutputIndex}" Background="Black" BorderThickness="1" ColumnHeaderHeight="18" RowHeight="27"
HorizontalGridLinesBrush="#FFA0A0A0" VerticalGridLinesBrush="#FFA0A0A0" GridLinesVisibility="All"
AutoGenerateColumns="False" IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn Width="*" Header="Address" Binding="{Binding Address}" FontSize="12"/>
<DataGridTextColumn Width="2*" Header="Description" Binding="{Binding Description}" FontSize="12"/>
<DataGridTextColumn Width="*" Header="Status" Binding="{Binding WOStatus}" FontSize="12"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
</UserControl>