Files
2025-08-26 08:37:44 +08:00

85 lines
7.3 KiB
XML

<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignHeight="680" d:DesignWidth="815"
xmlns:vm ="clr-namespace:常用工具集.ViewModel._01PLC通信调试"
xmlns:i="clr-namespace:Avalonia.Xaml.Interactivity;assembly=Avalonia.Xaml.Interactivity"
x:Class="常用工具集.Socket调试"
x:CompileBindings="True"
x:DataType="vm:Socket调试ViewModel">
<!-- xmlns:b="clr-namespace:Avalonia.Xaml.Behaviors;assembly=Avalonia.Xaml.Behaviors" -->
<UserControl.DataContext>
<vm:Socket调试ViewModel />
</UserControl.DataContext>
<Grid>
<Border Theme="{StaticResource CardBorder}" HorizontalAlignment="Left" VerticalAlignment="Top" Height="324" Width="225" Margin="10,10,0,0">
<Grid>
<TextBlock HorizontalAlignment="Left" Margin="0,-20,0,0" TextWrapping="Wrap" Text="网络设置" VerticalAlignment="Top"/>
<TextBlock HorizontalAlignment="Left" Margin="5,16,0,0" TextWrapping="Wrap" Text="IP地址" VerticalAlignment="Top"/>
<TextBox IsEnabled="{Binding Enabled1}" HorizontalAlignment="Left" Margin="50,10,0,0" TextWrapping="Wrap" Text="{Binding IpAddress}" VerticalAlignment="Top" Width="140" />
<TextBlock HorizontalAlignment="Left" Margin="15,63,0,0" TextWrapping="Wrap" Text="端口" VerticalAlignment="Top"/>
<TextBox IsEnabled="{Binding Enabled1}" HorizontalAlignment="Left" Margin="50,57,0,0" TextWrapping="Wrap" Text="{Binding Port}" VerticalAlignment="Top" Width="140" />
<TextBlock HorizontalAlignment="Left" Margin="15,96,0,0" TextWrapping="Wrap" Text="超时" VerticalAlignment="Top"/>
<TextBox IsEnabled="{Binding Enabled1}" HorizontalAlignment="Left" Margin="50,90,0,0" TextWrapping="Wrap" Text="{Binding Timeout}" VerticalAlignment="Top" Width="140" />
<Button Content="{Binding ButtonText}" Command="{Binding OpenSerialCmd}" Width="75" />
</Grid>
</Border>
<Border Theme="{StaticResource CardBorder}" HorizontalAlignment="Left" VerticalAlignment="Top" Height="70" Width="225" Margin="10,350,0,0">
<Grid>
<TextBlock HorizontalAlignment="Left" Margin="0,-20,0,0" TextWrapping="Wrap" Text="接收设置" VerticalAlignment="Top"/>
<RadioButton Height="20" Content="ASCII" IsChecked="{Binding ReciveASCChecked}" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top"/>
<RadioButton Height="20" Content="HEX" IsChecked="{Binding ReciveHexChecked}" HorizontalAlignment="Left" Margin="97,10,0,0" VerticalAlignment="Top"/>
</Grid>
</Border>
<Border Theme="{StaticResource CardBorder}" HorizontalAlignment="Left" VerticalAlignment="Top" Height="230" Width="225" Margin="10,425,0,0">
<Grid>
<TextBlock HorizontalAlignment="Left" Margin="0,-20,0,0" TextWrapping="Wrap" Text="发送设置" VerticalAlignment="Top"/>
<RadioButton Height="20" Content="ASCII" IsChecked="{Binding SendASCChecked}" HorizontalAlignment="Left" Margin="0,10,0,0" VerticalAlignment="Top"/>
<RadioButton Height="20" Content="HEX" IsChecked="{Binding SendHexChecked}" HorizontalAlignment="Left" Margin="87,10,0,0" VerticalAlignment="Top"/>
<CheckBox IsChecked="{Binding ConvertChecked}" Content="自动解析转义符" Margin="0,43,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Height="25" RenderTransformOrigin="0.24,-0.2" />
<TextBlock HorizontalAlignment="Left" FontSize="9" Margin="120,35,0,0" TextWrapping="Wrap" Text="\r回车符 0x0D" Foreground="Red" VerticalAlignment="Top" Width="105" />
<TextBlock HorizontalAlignment="Left" FontSize="9" Margin="120,51,0,0" TextWrapping="Wrap" Text="\n换行符 0x0A" Foreground="Red" VerticalAlignment="Top" Width="105" />
<TextBlock HorizontalAlignment="Left" FontSize="9" Margin="120,67,0,0" TextWrapping="Wrap" Text="\t水平制表符 0x09" Foreground="Red" VerticalAlignment="Top" Width="105" />
<TextBlock HorizontalAlignment="Left" FontSize="9" Margin="120,81,0,0" TextWrapping="Wrap" Text="\v垂直制表符 0x0B" Foreground="Red" VerticalAlignment="Top" Width="105" />
<TextBlock HorizontalAlignment="Left" FontSize="9" Margin="120,98,0,0" TextWrapping="Wrap" Text="\a响铃(BEL) 0x07" Foreground="Red" VerticalAlignment="Top" Width="105" />
<TextBlock HorizontalAlignment="Left" FontSize="9" Margin="120,114,0,0" TextWrapping="Wrap" Text="\b退格符(BS) 0x08" Foreground="Red" VerticalAlignment="Top" Width="105" />
<TextBlock HorizontalAlignment="Left" FontSize="9" Margin="120,128,0,0" TextWrapping="Wrap" Text="\f换页符(FF) 0x0C" Foreground="Red" VerticalAlignment="Top" Width="105" />
<CheckBox IsChecked="{Binding CycleChecked}" Content="循环发送" Margin="0,115,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Height="25" RenderTransformOrigin="0.24,-0.2" Width="81" />
<TextBlock HorizontalAlignment="Left" Margin="10,151,0,0" TextWrapping="Wrap" Text="循环周期" VerticalAlignment="Top"/>
<TextBox HorizontalAlignment="Left" Margin="90,145,0,0" TextWrapping="Wrap" Text="{Binding CycleTime}" VerticalAlignment="Top" Width="53" />
<TextBlock HorizontalAlignment="Left" Margin="148,151,0,0" TextWrapping="Wrap" Text="ms" VerticalAlignment="Top" Width="24" />
</Grid>
</Border>
<Border Theme="{StaticResource CardBorder}" HorizontalAlignment="Left" VerticalAlignment="Top" Height="374" Width="535" Margin="250,10,0,0">
<Grid>
<TextBlock HorizontalAlignment="Left" Margin="0,-20,0,0" TextWrapping="Wrap" Text="数据日志" VerticalAlignment="Top"/>
<TextBox x:Name="TBInfo" TextWrapping="Wrap" ScrollViewer.VerticalScrollBarVisibility="Auto" Text="{Binding Message}" Margin="10,0,10,0" HorizontalContentAlignment="Left" VerticalContentAlignment="Top" Height="330">
<i:Interaction.Behaviors>
<DataTriggerBehavior Binding="{Binding Text.Length, ElementName=TBInfo}" ComparisonCondition="NotEqual" Value="0">
<ChangePropertyAction TargetObject="TBInfo" PropertyName="CaretIndex" Value="{Binding ElementName=TBInfo, Path=Text.Length}"/>
<CallMethodAction MethodName="ScrollToEnd" />
</DataTriggerBehavior>
</i:Interaction.Behaviors>
</TextBox>
</Grid>
</Border>
<Border Theme="{StaticResource CardBorder}" HorizontalAlignment="Left" VerticalAlignment="Top" Height="210" Width="535" Margin="250,425,0,0">
<Grid>
<TextBlock HorizontalAlignment="Left" Margin="0,-20,0,0" TextWrapping="Wrap" Text="数据发送" VerticalAlignment="Top"/>
<TextBox TextWrapping="Wrap" Height="170" ScrollViewer.VerticalScrollBarVisibility="Auto" Text="{Binding SendContent}" Margin="10,15,75,10" HorizontalContentAlignment="Left" VerticalContentAlignment="Top" />
<Button Content="发送" IsEnabled="{Binding Enabled2}" Command="{Binding SendCmd}" Margin="430,57,0,0" VerticalAlignment="Top" Width="60" HorizontalAlignment="Left" Height="78" />
</Grid>
</Border>
<Button Content="清除👆" Command="{Binding ClearReciveCmd}" Margin="420,389,0,0" VerticalAlignment="Top" Width="75" HorizontalAlignment="Left" />
<Button Content="清除👇" Command="{Binding ClearSendCmd}" Margin="518,389,0,0" VerticalAlignment="Top" Width="74" HorizontalAlignment="Left" />
</Grid>
</UserControl>