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.

174 lines
6.8 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="450"
  14. d:DesignWidth="800"
  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>
  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 Height="60">
  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="4" HorizontalAlignment="Center" Orientation="Horizontal">
  80. <TextBlock Margin="0,20,0,0" Text="读取结果:" FontWeight="Black" />
  81. <TextBox MinWidth="120" Margin="20,0,0,0" Text="{Binding ReadResult}" Style="{StaticResource MaterialDesignOutlinedTextBox}" />
  82. </StackPanel>
  83. <Button
  84. Grid.Column="4"
  85. Width="80"
  86. Height="40"
  87. materialDesign:ButtonAssist.CornerRadius="20"
  88. IsEnabled="{Binding IsEnable}"
  89. Command="{Binding ReadCoilCmm}"
  90. Content="读取"
  91. Style="{StaticResource MaterialDesignRaisedDarkButton}">
  92. </Button>
  93. </Grid>
  94. <Grid Grid.Row="2">
  95. <Grid.ColumnDefinitions>
  96. <ColumnDefinition>
  97. </ColumnDefinition>
  98. <ColumnDefinition>
  99. </ColumnDefinition>
  100. <ColumnDefinition>
  101. </ColumnDefinition>
  102. <ColumnDefinition>
  103. </ColumnDefinition>
  104. <ColumnDefinition>
  105. </ColumnDefinition>
  106. </Grid.ColumnDefinitions>
  107. <!-- 线圈的写入 -->
  108. <StackPanel HorizontalAlignment="Center" Orientation="Vertical">
  109. <TextBlock Margin="20" Text="从站地址">
  110. </TextBlock>
  111. <TextBox Margin="0,-10,0,0" Text="{Binding WriteSlaveAddress}">
  112. </TextBox>
  113. </StackPanel>
  114. <StackPanel Grid.Column="1" HorizontalAlignment="Center" Orientation="Vertical">
  115. <TextBlock Margin="20" Text="起始地址">
  116. </TextBlock>
  117. <TextBox Margin="0,-10,0,0" Text="{Binding WriteStartAddress}">
  118. </TextBox>
  119. </StackPanel>
  120. <StackPanel Grid.Column="2" HorizontalAlignment="Center" Orientation="Vertical">
  121. <TextBlock Margin="20" Text="写入数据">
  122. </TextBlock>
  123. <TextBox Margin="0,-10,0,0" Text="{Binding WriteData}">
  124. </TextBox>
  125. </StackPanel>
  126. <TextBlock
  127. Grid.Column="3"
  128. Margin="0,-50,0,0"
  129. HorizontalAlignment="Center"
  130. VerticalAlignment="Center"
  131. Text="1代表Ture,0代表flase">
  132. </TextBlock>
  133. <Button
  134. Grid.Column="4"
  135. Width="80"
  136. Height="40"
  137. materialDesign:ButtonAssist.CornerRadius="20"
  138. IsEnabled="{Binding IsEnable}"
  139. Command="{Binding WriteCoilCmm}"
  140. Content="写入"
  141. Style="{StaticResource MaterialDesignRaisedDarkButton}">
  142. </Button>
  143. </Grid>
  144. <!-- 展示历史读取数据 -->
  145. <Grid Grid.Row="3">
  146. <DataGrid ItemsSource="{Binding ModbusLogList}" AutoGenerateColumns="False" IsReadOnly="True" ColumnWidth="*">
  147. <DataGrid.Columns>
  148. <!-- 操作类型列 -->
  149. <DataGridTextColumn Width="100" Header="操作类型" Binding="{Binding OperationType}" />
  150. <!-- 请求数据列 -->
  151. <DataGridTextColumn Header="请求数据" Binding="{Binding RequestData}" />
  152. <!-- 响应数据列 -->
  153. <DataGridTextColumn Header="响应数据" Binding="{Binding ResponseData}" />
  154. <!-- 操作时间列 -->
  155. <DataGridTextColumn Width="200" Header="操作时间" Binding="{Binding Time, StringFormat='yyyy-MM-dd HH:mm:ss'}" />
  156. </DataGrid.Columns>
  157. </DataGrid>
  158. </Grid>
  159. </Grid>
  160. </UserControl>