141 lines
7.8 KiB
XML
141 lines
7.8 KiB
XML
<Window x:Class="XP.App.Views.SignalDataDemoWindow"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
Title="ISignalDataService DEMO"
|
|
Width="800" Height="650"
|
|
MinWidth="700" MinHeight="550"
|
|
WindowStartupLocation="CenterScreen"
|
|
Background="#FFF5F5F5">
|
|
|
|
<Window.Resources>
|
|
<BooleanToVisibilityConverter x:Key="BoolToVis"/>
|
|
</Window.Resources>
|
|
|
|
<Grid Margin="10">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="*"/>
|
|
</Grid.RowDefinitions>
|
|
|
|
<!-- 连接区 -->
|
|
<GroupBox Grid.Row="0" Header="1. 连接 PLC 并加载信号定义" Margin="0,0,0,5">
|
|
<StackPanel Margin="8">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto"/>
|
|
<ColumnDefinition Width="*"/>
|
|
<ColumnDefinition Width="Auto"/>
|
|
<ColumnDefinition Width="Auto"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock Grid.Column="0" Text="信号定义文件:" VerticalAlignment="Center" Margin="0,0,5,0"/>
|
|
<TextBox Grid.Column="1" Text="{Binding XmlFilePath, UpdateSourceTrigger=PropertyChanged}"
|
|
VerticalContentAlignment="Center" Margin="0,0,8,0"/>
|
|
<Button Grid.Column="2" Content="连接并加载" Command="{Binding ConnectAndLoadCommand}"
|
|
Width="90" Padding="5,3" Margin="0,0,8,0"/>
|
|
<StackPanel Grid.Column="3" Orientation="Horizontal">
|
|
<Ellipse Width="12" Height="12" VerticalAlignment="Center" Margin="0,0,5,0">
|
|
<Ellipse.Style>
|
|
<Style TargetType="Ellipse">
|
|
<Setter Property="Fill" Value="#FFBDBDBD"/>
|
|
<Style.Triggers>
|
|
<DataTrigger Binding="{Binding IsConnected}" Value="True">
|
|
<Setter Property="Fill" Value="#FF4CAF50"/>
|
|
</DataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</Ellipse.Style>
|
|
</Ellipse>
|
|
<TextBlock Text="{Binding StatusText}" VerticalAlignment="Center"
|
|
Foreground="#FF666666" FontSize="11" MaxWidth="200" TextTrimming="CharacterEllipsis"/>
|
|
</StackPanel>
|
|
</Grid>
|
|
</StackPanel>
|
|
</GroupBox>
|
|
|
|
<!-- 信号读取区(批量缓存/单点自动路由)-->
|
|
<GroupBox Grid.Row="1" Header="2. 信号读取 (GetValueByName - 自动路由批量缓存/单点读取)" Margin="0,0,0,5">
|
|
<Grid Margin="8">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto"/>
|
|
<ColumnDefinition Width="*"/>
|
|
<ColumnDefinition Width="Auto"/>
|
|
<ColumnDefinition Width="Auto"/>
|
|
<ColumnDefinition Width="150"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock Grid.Column="0" Text="信号名称:" VerticalAlignment="Center" Margin="0,0,5,0"/>
|
|
<TextBox Grid.Column="1" Text="{Binding ReadSignalName, UpdateSourceTrigger=PropertyChanged}"
|
|
VerticalContentAlignment="Center" Margin="0,0,8,0"/>
|
|
<Button Grid.Column="2" Content="读取" Command="{Binding CacheReadCommand}"
|
|
Width="60" Padding="5,3" Margin="0,0,8,0"/>
|
|
<TextBlock Grid.Column="3" Text="结果:" VerticalAlignment="Center" Margin="0,0,5,0"/>
|
|
<TextBox Grid.Column="4" Text="{Binding ReadResult, Mode=OneWay}" IsReadOnly="True"
|
|
VerticalContentAlignment="Center" Background="#FFF0F0F0" Foreground="#FF1B5E20"/>
|
|
</Grid>
|
|
</GroupBox>
|
|
|
|
<!-- 队列写入区 -->
|
|
<GroupBox Grid.Row="2" Header="3. 队列写入 (EnqueueWrite)" Margin="0,0,0,5">
|
|
<Grid Margin="8">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto"/>
|
|
<ColumnDefinition Width="*"/>
|
|
<ColumnDefinition Width="Auto"/>
|
|
<ColumnDefinition Width="120"/>
|
|
<ColumnDefinition Width="Auto"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock Grid.Column="0" Text="信号名称:" VerticalAlignment="Center" Margin="0,0,5,0"/>
|
|
<TextBox Grid.Column="1" Text="{Binding QueueSignalName, UpdateSourceTrigger=PropertyChanged}"
|
|
VerticalContentAlignment="Center" Margin="0,0,8,0"/>
|
|
<TextBlock Grid.Column="2" Text="写入值:" VerticalAlignment="Center" Margin="0,0,5,0"/>
|
|
<TextBox Grid.Column="3" Text="{Binding QueueWriteValue, UpdateSourceTrigger=PropertyChanged}"
|
|
VerticalContentAlignment="Center" Margin="0,0,8,0"/>
|
|
<Button Grid.Column="4" Content="入队写入" Command="{Binding QueueWriteCommand}"
|
|
Width="70" Padding="5,3"/>
|
|
</Grid>
|
|
</GroupBox>
|
|
|
|
<!-- 直接写入+回读校验区 -->
|
|
<GroupBox Grid.Row="3" Header="4. 直接写入+回读校验 (WriteDirectWithVerify)" Margin="0,0,0,5">
|
|
<Grid Margin="8">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto"/>
|
|
<ColumnDefinition Width="*"/>
|
|
<ColumnDefinition Width="Auto"/>
|
|
<ColumnDefinition Width="120"/>
|
|
<ColumnDefinition Width="Auto"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock Grid.Column="0" Text="信号名称:" VerticalAlignment="Center" Margin="0,0,5,0"/>
|
|
<TextBox Grid.Column="1" Text="{Binding DirectSignalName, UpdateSourceTrigger=PropertyChanged}"
|
|
VerticalContentAlignment="Center" Margin="0,0,8,0"/>
|
|
<TextBlock Grid.Column="2" Text="写入值:" VerticalAlignment="Center" Margin="0,0,5,0"/>
|
|
<TextBox Grid.Column="3" Text="{Binding DirectWriteValue, UpdateSourceTrigger=PropertyChanged}"
|
|
VerticalContentAlignment="Center" Margin="0,0,8,0"/>
|
|
<Button Grid.Column="4" Content="直接写入" Command="{Binding DirectWriteCommand}"
|
|
Width="70" Padding="5,3"/>
|
|
</Grid>
|
|
</GroupBox>
|
|
|
|
<!-- 日志区 -->
|
|
<GroupBox Grid.Row="4" Header="操作日志">
|
|
<DockPanel Margin="5">
|
|
<Button DockPanel.Dock="Bottom" Content="清除日志" Command="{Binding ClearLogCommand}"
|
|
HorizontalAlignment="Right" Width="80" Margin="0,5,0,0" Padding="5,3"/>
|
|
<ListBox x:Name="LogListBox" ItemsSource="{Binding LogEntries}"
|
|
FontFamily="Consolas" FontSize="12"
|
|
Background="#FFF9F9F9" BorderBrush="#FFBDBDBD"
|
|
ScrollViewer.HorizontalScrollBarVisibility="Auto"
|
|
ScrollViewer.VerticalScrollBarVisibility="Auto">
|
|
<ListBox.ItemContainerStyle>
|
|
<Style TargetType="ListBoxItem">
|
|
<Setter Property="Padding" Value="2,1"/>
|
|
</Style>
|
|
</ListBox.ItemContainerStyle>
|
|
</ListBox>
|
|
</DockPanel>
|
|
</GroupBox>
|
|
</Grid>
|
|
</Window>
|