You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

181 lines
7.0 KiB

  1. <UserControl
  2. x:Class="ModbusDemo.VIew.CoilUC"
  3. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  4. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  5. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  6. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  7. xmlns:local="clr-namespace:ModbusDemo.VIew"
  8. xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
  9. xmlns:viewmodel="clr-namespace:ModbusDemo.VIewModel"
  10. d:DataContext="{d:DesignInstance Type=viewmodel:CoilUCViewModel,
  11. IsDesignTimeCreatable=True}"
  12. d:Background="White"
  13. d:DesignHeight="800"
  14. d:DesignWidth="1000"
  15. mc:Ignorable="d">
  16. <UserControl.Resources>
  17. <Style TargetType="TextBox">
  18. <Setter Property="Margin" Value="0,5" />
  19. <Setter Property="FontSize" Value="14" />
  20. </Style>
  21. </UserControl.Resources>
  22. <Grid>
  23. <Grid.RowDefinitions>
  24. <RowDefinition Height="60">
  25. </RowDefinition>
  26. <RowDefinition>
  27. </RowDefinition>
  28. <RowDefinition Height="120">
  29. </RowDefinition>
  30. <RowDefinition>
  31. </RowDefinition>
  32. </Grid.RowDefinitions>
  33. <TextBlock
  34. HorizontalAlignment="Center"
  35. VerticalAlignment="Center"
  36. Text="{Binding SerialPortInfo}"
  37. FontWeight="Black"
  38. FontSize="16">
  39. </TextBlock>
  40. <!-- 定义读取的数据 -->
  41. <Grid Grid.Row="1">
  42. <Grid.ColumnDefinitions>
  43. <ColumnDefinition>
  44. </ColumnDefinition>
  45. <ColumnDefinition>
  46. </ColumnDefinition>
  47. <ColumnDefinition>
  48. </ColumnDefinition>
  49. <ColumnDefinition>
  50. </ColumnDefinition>
  51. <ColumnDefinition>
  52. </ColumnDefinition>
  53. </Grid.ColumnDefinitions>
  54. <Grid.RowDefinitions>
  55. <RowDefinition>
  56. </RowDefinition>
  57. <RowDefinition>
  58. </RowDefinition>
  59. </Grid.RowDefinitions>
  60. <!-- 线圈的读取 -->
  61. <StackPanel HorizontalAlignment="Center" Orientation="Vertical">
  62. <TextBlock Margin="20" Text="从站地址">
  63. </TextBlock>
  64. <TextBox Margin="0,-10,0,0" Text="{Binding SlaveAddress}">
  65. </TextBox>
  66. </StackPanel>
  67. <StackPanel Grid.Column="1" HorizontalAlignment="Center" Orientation="Vertical">
  68. <TextBlock Margin="20" Text="起始地址">
  69. </TextBlock>
  70. <TextBox Margin="0,-10,0,0" Text="{Binding StartAddress}">
  71. </TextBox>
  72. </StackPanel>
  73. <StackPanel Grid.Column="2" HorizontalAlignment="Center" Orientation="Vertical">
  74. <TextBlock Margin="20" Text="读取位数">
  75. </TextBlock>
  76. <TextBox Margin="0,-10,0,0" Text="{Binding NumberOfPoints}">
  77. </TextBox>
  78. </StackPanel>
  79. <StackPanel Grid.Row="2" Grid.ColumnSpan="5" HorizontalAlignment="Center" Orientation="Horizontal">
  80. <TextBlock Margin="0,50,0,0" Text="读取结果:" FontWeight="Black" />
  81. <TextBox
  82. MinWidth="900"
  83. MaxWidth="900"
  84. Margin="20,0,0,0"
  85. AcceptsReturn="True"
  86. VerticalScrollBarVisibility="Auto"
  87. Text="{Binding ReadResult}"
  88. Style="{StaticResource MaterialDesignOutlinedTextBox}" />
  89. </StackPanel>
  90. <Button
  91. Grid.Column="4"
  92. Width="80"
  93. Height="40"
  94. materialDesign:ButtonAssist.CornerRadius="20"
  95. IsEnabled="{Binding IsEnable}"
  96. Command="{Binding ReadCoilCmm}"
  97. Content="读取"
  98. Style="{StaticResource MaterialDesignRaisedDarkButton}">
  99. </Button>
  100. </Grid>
  101. <Grid Grid.Row="2">
  102. <Grid.ColumnDefinitions>
  103. <ColumnDefinition>
  104. </ColumnDefinition>
  105. <ColumnDefinition>
  106. </ColumnDefinition>
  107. <ColumnDefinition>
  108. </ColumnDefinition>
  109. <ColumnDefinition>
  110. </ColumnDefinition>
  111. <ColumnDefinition>
  112. </ColumnDefinition>
  113. </Grid.ColumnDefinitions>
  114. <!-- 线圈的写入 -->
  115. <StackPanel HorizontalAlignment="Center" Orientation="Vertical">
  116. <TextBlock Margin="20" Text="从站地址">
  117. </TextBlock>
  118. <TextBox Margin="0,-10,0,0" Text="{Binding WriteSlaveAddress}">
  119. </TextBox>
  120. </StackPanel>
  121. <StackPanel Grid.Column="1" HorizontalAlignment="Center" Orientation="Vertical">
  122. <TextBlock Margin="20" Text="起始地址">
  123. </TextBlock>
  124. <TextBox Margin="0,-10,0,0" Text="{Binding WriteStartAddress}">
  125. </TextBox>
  126. </StackPanel>
  127. <StackPanel Grid.Column="2" HorizontalAlignment="Center" Orientation="Vertical">
  128. <TextBlock Margin="20" Text="写入数据">
  129. </TextBlock>
  130. <TextBox Margin="0,-10,0,0" Text="{Binding WriteData}">
  131. </TextBox>
  132. </StackPanel>
  133. <TextBlock
  134. Grid.Column="3"
  135. Margin="0,-50,0,0"
  136. HorizontalAlignment="Center"
  137. VerticalAlignment="Center"
  138. Text="1代表Ture,0代表flase">
  139. </TextBlock>
  140. <Button
  141. Grid.Column="4"
  142. Width="80"
  143. Height="40"
  144. materialDesign:ButtonAssist.CornerRadius="20"
  145. IsEnabled="{Binding IsEnable}"
  146. Command="{Binding WriteCoilCmm}"
  147. Content="写入"
  148. Style="{StaticResource MaterialDesignRaisedDarkButton}">
  149. </Button>
  150. </Grid>
  151. <!-- 展示历史读取数据 -->
  152. <Grid Grid.Row="3">
  153. <DataGrid ItemsSource="{Binding ModbusLogList}" AutoGenerateColumns="False" IsReadOnly="True" ColumnWidth="*">
  154. <DataGrid.Columns>
  155. <!-- 操作类型列 -->
  156. <DataGridTextColumn Width="100" Header="操作类型" Binding="{Binding OperationType}" />
  157. <!-- 请求数据列 -->
  158. <DataGridTextColumn Header="请求数据" Binding="{Binding RequestData}" />
  159. <!-- 响应数据列 -->
  160. <DataGridTextColumn Header="响应数据" Binding="{Binding ResponseData}" />
  161. <!-- 操作时间列 -->
  162. <DataGridTextColumn Width="200" Header="操作时间" Binding="{Binding Time, StringFormat='yyyy-MM-dd HH:mm:ss'}" />
  163. </DataGrid.Columns>
  164. </DataGrid>
  165. </Grid>
  166. </Grid>
  167. </UserControl>