添加配置连接窗口已经相关S7与ModbusTCP连接功能
This commit is contained in:
285
MainModule/Views/ConnectionConfigView.xaml
Normal file
285
MainModule/Views/ConnectionConfigView.xaml
Normal file
@@ -0,0 +1,285 @@
|
||||
<Window x:Class="MainModule.Views.ConnectionConfigView"
|
||||
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:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
|
||||
xmlns:prism="http://prismlibrary.com/"
|
||||
xmlns:converters="clr-namespace:UIShare.Converters;assembly=UIShare"
|
||||
Title="设备连接配置"
|
||||
Width="520"
|
||||
Height="550"
|
||||
MinWidth="400"
|
||||
MinHeight="450"
|
||||
WindowStartupLocation="CenterOwner"
|
||||
ResizeMode="CanResize">
|
||||
<Window.Resources>
|
||||
<converters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
|
||||
<Style TargetType="TextBlock" x:Key="LabelStyle">
|
||||
<Setter Property="FontSize" Value="13"/>
|
||||
<Setter Property="Foreground" Value="#4A5568"/>
|
||||
<Setter Property="Margin" Value="0,6,0,2"/>
|
||||
</Style>
|
||||
<Style TargetType="TextBox" x:Key="InputStyle">
|
||||
<Setter Property="Padding" Value="8"/>
|
||||
<Setter Property="Margin" Value="0,2,0,6"/>
|
||||
<Setter Property="BorderBrush" Value="#E2E8F0"/>
|
||||
<Setter Property="BorderThickness" Value="1"/>
|
||||
<Setter Property="FontSize" Value="13"/>
|
||||
</Style>
|
||||
<Style TargetType="ComboBox" x:Key="ComboStyle">
|
||||
<Setter Property="Padding" Value="8"/>
|
||||
<Setter Property="Margin" Value="0,2,0,6"/>
|
||||
<Setter Property="BorderBrush" Value="#E2E8F0"/>
|
||||
<Setter Property="BorderThickness" Value="1"/>
|
||||
<Setter Property="FontSize" Value="13"/>
|
||||
</Style>
|
||||
</Window.Resources>
|
||||
|
||||
<Grid Background="White">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<TextBlock Grid.Row="0" Text="设备连接配置" FontSize="18" FontWeight="Bold" Foreground="#2C3E50" Margin="20,20,20,16"/>
|
||||
|
||||
<ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto" Margin="20">
|
||||
<StackPanel>
|
||||
<TextBlock Text="选择协议类型" Style="{StaticResource LabelStyle}"/>
|
||||
<StackPanel Orientation="Horizontal" Margin="0,2,0,6">
|
||||
<Button Content="S7"
|
||||
Command="{Binding SelectS7Command}"
|
||||
Width="80" Height="36"
|
||||
Margin="0,0,4,0"/>
|
||||
<Button Content="Modbus TCP"
|
||||
Command="{Binding SelectModbusTCPCommand}"
|
||||
Width="100" Height="36"
|
||||
Margin="0,0,4,0"/>
|
||||
<Button Content="Modbus RTU"
|
||||
Command="{Binding SelectModbusRTUCommand}"
|
||||
Width="100" Height="36"
|
||||
Margin="0,0,4,0"/>
|
||||
<Button Content="TCP"
|
||||
Command="{Binding SelectTCPCommand}"
|
||||
Width="80" Height="36"
|
||||
Margin="0,0,4,0"/>
|
||||
<Button Content="HTTP"
|
||||
Command="{Binding SelectHTTPCommand}"
|
||||
Width="80" Height="36"/>
|
||||
</StackPanel>
|
||||
|
||||
<Border Visibility="{Binding IsS7Protocol, Converter={StaticResource BooleanToVisibilityConverter}}"
|
||||
BorderBrush="#E2E8F0" BorderThickness="1" CornerRadius="8" Padding="12" Margin="0,0,0,12">
|
||||
<StackPanel>
|
||||
<TextBlock Text="S7协议配置" FontSize="14" FontWeight="Bold" Foreground="#2C3E50" Margin="0,0,0,10"/>
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0" Text="IP地址" Style="{StaticResource LabelStyle}"/>
|
||||
<TextBox Grid.Column="1" Text="{Binding IpAddress}" Style="{StaticResource InputStyle}"/>
|
||||
</Grid>
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0" Text="CPU类型" Style="{StaticResource LabelStyle}"/>
|
||||
<ComboBox Grid.Column="1" ItemsSource="{Binding CpuTypes}"
|
||||
SelectedItem="{Binding CpuType}" Style="{StaticResource ComboStyle}"/>
|
||||
</Grid>
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0" Text="Rack" Style="{StaticResource LabelStyle}"/>
|
||||
<TextBox Grid.Column="1" Text="{Binding Rack}" Style="{StaticResource InputStyle}"/>
|
||||
</Grid>
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0" Text="Slot" Style="{StaticResource LabelStyle}"/>
|
||||
<TextBox Grid.Column="1" Text="{Binding Slot}" Style="{StaticResource InputStyle}"/>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<Border Visibility="{Binding IsModbusTCPProtocol, Converter={StaticResource BooleanToVisibilityConverter}}"
|
||||
BorderBrush="#E2E8F0" BorderThickness="1" CornerRadius="8" Padding="12" Margin="0,0,0,12">
|
||||
<StackPanel>
|
||||
<TextBlock Text="Modbus TCP配置" FontSize="14" FontWeight="Bold" Foreground="#2C3E50" Margin="0,0,0,10"/>
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0" Text="IP地址" Style="{StaticResource LabelStyle}"/>
|
||||
<TextBox Grid.Column="1" Text="{Binding IpAddress}" Style="{StaticResource InputStyle}"/>
|
||||
</Grid>
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0" Text="端口号" Style="{StaticResource LabelStyle}"/>
|
||||
<TextBox Grid.Column="1" Text="{Binding Port}" Style="{StaticResource InputStyle}"/>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<Border Visibility="{Binding IsModbusRTUProtocol, Converter={StaticResource BooleanToVisibilityConverter}}"
|
||||
BorderBrush="#E2E8F0" BorderThickness="1" CornerRadius="8" Padding="12" Margin="0,0,0,12">
|
||||
<StackPanel>
|
||||
<TextBlock Text="Modbus RTU配置" FontSize="14" FontWeight="Bold" Foreground="#2C3E50" Margin="0,0,0,10"/>
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0" Text="串口" Style="{StaticResource LabelStyle}"/>
|
||||
<ComboBox Grid.Column="1" ItemsSource="{Binding SerialPorts}"
|
||||
SelectedItem="{Binding SerialPort}" Style="{StaticResource ComboStyle}"/>
|
||||
</Grid>
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0" Text="波特率" Style="{StaticResource LabelStyle}"/>
|
||||
<ComboBox Grid.Column="1" ItemsSource="{Binding BaudRates}"
|
||||
SelectedItem="{Binding BaudRate}" Style="{StaticResource ComboStyle}"/>
|
||||
</Grid>
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0" Text="数据位" Style="{StaticResource LabelStyle}"/>
|
||||
<ComboBox Grid.Column="1" ItemsSource="{Binding DataBitsList}"
|
||||
SelectedItem="{Binding DataBits}" Style="{StaticResource ComboStyle}"/>
|
||||
</Grid>
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0" Text="校验位" Style="{StaticResource LabelStyle}"/>
|
||||
<ComboBox Grid.Column="1" ItemsSource="{Binding ParityList}"
|
||||
SelectedItem="{Binding Parity}" Style="{StaticResource ComboStyle}"/>
|
||||
</Grid>
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0" Text="停止位" Style="{StaticResource LabelStyle}"/>
|
||||
<ComboBox Grid.Column="1" ItemsSource="{Binding StopBitsList}"
|
||||
SelectedItem="{Binding StopBits}" Style="{StaticResource ComboStyle}"/>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<Border Visibility="{Binding IsTCPProtocol, Converter={StaticResource BooleanToVisibilityConverter}}"
|
||||
BorderBrush="#E2E8F0" BorderThickness="1" CornerRadius="8" Padding="12" Margin="0,0,0,12">
|
||||
<StackPanel>
|
||||
<TextBlock Text="TCP配置" FontSize="14" FontWeight="Bold" Foreground="#2C3E50" Margin="0,0,0,10"/>
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0" Text="IP地址" Style="{StaticResource LabelStyle}"/>
|
||||
<TextBox Grid.Column="1" Text="{Binding IpAddress}" Style="{StaticResource InputStyle}"/>
|
||||
</Grid>
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0" Text="端口号" Style="{StaticResource LabelStyle}"/>
|
||||
<TextBox Grid.Column="1" Text="{Binding Port}" Style="{StaticResource InputStyle}"/>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<Border Visibility="{Binding IsHTTPProtocol, Converter={StaticResource BooleanToVisibilityConverter}}"
|
||||
BorderBrush="#E2E8F0" BorderThickness="1" CornerRadius="8" Padding="12" Margin="0,0,0,12">
|
||||
<StackPanel>
|
||||
<TextBlock Text="HTTP配置" FontSize="14" FontWeight="Bold" Foreground="#2C3E50" Margin="0,0,0,10"/>
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0" Text="IP地址" Style="{StaticResource LabelStyle}"/>
|
||||
<TextBox Grid.Column="1" Text="{Binding IpAddress}" Style="{StaticResource InputStyle}"/>
|
||||
</Grid>
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0" Text="端口号" Style="{StaticResource LabelStyle}"/>
|
||||
<TextBox Grid.Column="1" Text="{Binding Port}" Style="{StaticResource InputStyle}"/>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<Border BorderBrush="#E2E8F0" BorderThickness="1" CornerRadius="8" Padding="12" Margin="0,0,0,12">
|
||||
<StackPanel>
|
||||
<TextBlock Text="超时设置" FontSize="14" FontWeight="Bold" Foreground="#2C3E50" Margin="0,0,0,10"/>
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0" Text="发送超时(ms)" Style="{StaticResource LabelStyle}"/>
|
||||
<TextBox Grid.Column="1" Text="{Binding SendTimeout}" Style="{StaticResource InputStyle}"/>
|
||||
</Grid>
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0" Text="接收超时(ms)" Style="{StaticResource LabelStyle}"/>
|
||||
<TextBox Grid.Column="1" Text="{Binding ReceiveTimeout}" Style="{StaticResource InputStyle}"/>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</StackPanel>
|
||||
</ScrollViewer>
|
||||
|
||||
<StackPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Right" Margin="20,16,20,20">
|
||||
<Button Content="取消"
|
||||
Command="{Binding CancelCommand}"
|
||||
Width="80" Height="36"
|
||||
Margin="0,0,8,0"/>
|
||||
<Button Content="确定"
|
||||
Command="{Binding ConfirmCommand}"
|
||||
Width="80" Height="36"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Window>
|
||||
18
MainModule/Views/ConnectionConfigView.xaml.cs
Normal file
18
MainModule/Views/ConnectionConfigView.xaml.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using MainModule.ViewModels;
|
||||
using System.Windows;
|
||||
|
||||
namespace MainModule.Views
|
||||
{
|
||||
public partial class ConnectionConfigView : Window
|
||||
{
|
||||
public ConnectionConfigView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
public ConnectionConfigView(ConnectionConfigViewModel viewModel) : this()
|
||||
{
|
||||
DataContext = viewModel;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
<UserControl x:Class="MainModule.Views.MainView"
|
||||
<UserControl x:Class="MainModule.Views.MainView"
|
||||
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"
|
||||
@@ -21,7 +21,45 @@
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<TextBlock Grid.Row="0" Text="环境箱监控状态面板" FontSize="20" FontWeight="Bold" Foreground="#2C3E50" Margin="12,4,0,16"/>
|
||||
<DockPanel Grid.Row="0" Margin="12,4,12,16">
|
||||
<TextBlock Text="环境箱监控状态面板" FontSize="20" FontWeight="Bold" Foreground="#2C3E50" VerticalAlignment="Center"/>
|
||||
|
||||
<!-- 顶部工具栏按钮 -->
|
||||
<StackPanel DockPanel.Dock="Right" Orientation="Horizontal">
|
||||
<!-- 配置连接按钮 -->
|
||||
<Button Content="配置连接"
|
||||
Command="{Binding ConfigCommand}"
|
||||
Style="{StaticResource MaterialDesignFlatButton}"
|
||||
Foreground="#805AD5"
|
||||
FontSize="13"
|
||||
Margin="0,0,8,0"
|
||||
ToolTip="配置设备连接参数"/>
|
||||
|
||||
<!-- 连接/断开按钮 -->
|
||||
<Button Content="{Binding ConnectButtonText}"
|
||||
Command="{Binding ConnectCommand}"
|
||||
Style="{StaticResource MaterialDesignFlatButton}"
|
||||
Foreground="#3182CE"
|
||||
FontSize="13"
|
||||
Margin="0,0,8,0"
|
||||
ToolTip="点击连接/断开设备">
|
||||
<Button.ContextMenu>
|
||||
<ContextMenu>
|
||||
<MenuItem Header="连接设备" Command="{Binding ConnectCommand}"/>
|
||||
<MenuItem Header="断开连接" Command="{Binding DisconnectCommand}"/>
|
||||
</ContextMenu>
|
||||
</Button.ContextMenu>
|
||||
</Button>
|
||||
|
||||
<!-- 刷新按钮 -->
|
||||
<Button Content="刷新数据"
|
||||
Command="{Binding RefreshCommand}"
|
||||
Style="{StaticResource MaterialDesignFlatButton}"
|
||||
Foreground="#38A169"
|
||||
FontSize="13"
|
||||
ToolTip="手动刷新设备数据"/>
|
||||
</StackPanel>
|
||||
</DockPanel>
|
||||
|
||||
<ItemsControl Grid.Row="1" ItemsSource="{Binding Chambers}">
|
||||
<ItemsControl.ItemsPanel>
|
||||
@@ -40,6 +78,7 @@
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<DockPanel Grid.Row="0" LastChildFill="False">
|
||||
@@ -95,10 +134,30 @@
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</UniformGrid>
|
||||
|
||||
<!-- 连接按钮 -->
|
||||
<StackPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Center" Margin="0,16,0,0">
|
||||
<Button Content="{Binding ConnectButtonText}"
|
||||
Command="{Binding DataContext.ConnectDeviceCommand, RelativeSource={RelativeSource AncestorType=ItemsControl}}"
|
||||
CommandParameter="{Binding}"
|
||||
Width="100"
|
||||
Height="36">
|
||||
<Button.Style>
|
||||
<Style TargetType="Button" BasedOn="{StaticResource MaterialDesignFlatButton}">
|
||||
<Setter Property="Foreground" Value="#3182CE"/>
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding IsConnected}" Value="True">
|
||||
<Setter Property="Foreground" Value="#E53E3E"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</Button.Style>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
</UserControl>
|
||||
|
||||
Reference in New Issue
Block a user