UCDeviceUpgrade.xaml 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398
  1. <UserControl x:Class="MV485.uc.UCDeviceUpgrade"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  5. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  6. xmlns:local="clr-namespace:MV485.uc"
  7. xmlns:zdfflatui="clr-namespace:ZdfFlatUI;assembly=WPF.UI"
  8. mc:Ignorable="d"
  9. Padding="5 2 5 5"
  10. Background="WhiteSmoke"
  11. Unloaded="UserControl_Unloaded"
  12. SizeChanged="UserControl_SizeChanged"
  13. d:DesignHeight="600" d:DesignWidth="1366">
  14. <Grid Margin="10">
  15. <Grid.ColumnDefinitions>
  16. <ColumnDefinition Width="300" />
  17. <ColumnDefinition Width="750" />
  18. <ColumnDefinition Width="*" />
  19. </Grid.ColumnDefinitions>
  20. <Border Grid.Column="0" BorderBrush="DarkGray" BorderThickness="1">
  21. <StackPanel Orientation="Vertical" Margin="0">
  22. <Grid Height="35" Margin="10 0 0 0">
  23. <TextBlock Text="获取设备版本信息:" FontSize="14" FontWeight="Bold"
  24. VerticalAlignment="Center" Foreground="DarkBlue" />
  25. </Grid>
  26. <Grid Height="50" Margin="10 0 10 0">
  27. <Grid.ColumnDefinitions>
  28. <ColumnDefinition Width="65" />
  29. <ColumnDefinition Width="*" />
  30. <ColumnDefinition Width="40" />
  31. </Grid.ColumnDefinitions>
  32. <TextBlock Grid.Column="0" Text="端口号" FontSize="14" VerticalAlignment="Center" />
  33. <ComboBox x:Name="cmbPortNames" Grid.Column="1"
  34. DisplayMemberPath="ModelName" SelectedValuePath="PortName"
  35. SelectionChanged="CmbPortNames_SelectionChanged" Height="28"
  36. Padding="5 0 0 0" Margin="2" FontSize="14px" VerticalContentAlignment="Center"/>
  37. <zdfflatui:FlatButton Grid.Column="3"
  38. x:Name="btnRefreshPorts" HorizontalAlignment="Center" Background="#2196F3"
  39. Foreground="White" Content="🔄" ToolTip="刷新并重新加载串口列表"
  40. Click="btnRefreshPorts_Click" Margin="5 0 0 0" Width="30" Height="30" FontSize="20px" />
  41. </Grid>
  42. <Grid Height="50" Margin="10 0 10 0">
  43. <Grid.ColumnDefinitions>
  44. <ColumnDefinition Width="65" />
  45. <ColumnDefinition Width="*" />
  46. </Grid.ColumnDefinitions>
  47. <TextBlock Grid.Column="0" Text="波特率" FontSize="14" VerticalAlignment="Center" />
  48. <ComboBox x:Name="cmbBaudrate" Grid.Column="1" Height="28"
  49. Padding="5 0 0 0" Margin="2" FontSize="14px" VerticalContentAlignment="Center"/>
  50. </Grid>
  51. <Grid Height="50" Margin="10 0 10 0">
  52. <Grid.ColumnDefinitions>
  53. <ColumnDefinition Width="65" />
  54. <ColumnDefinition Width="*" />
  55. </Grid.ColumnDefinitions>
  56. <TextBlock Grid.Column="0" Text="设备地址" FontSize="14" VerticalAlignment="Center" />
  57. <ComboBox x:Name="cmbDevId" Grid.Column="1" Padding="5 0 0 0" Margin="0" FontSize="14"
  58. PreviewTextInput="TextBox_PreviewTextInput" VerticalContentAlignment="Center" Height="28" IsEditable="True"/>
  59. </Grid>
  60. <Grid Height="50" Margin="10 0 10 0">
  61. <Grid.ColumnDefinitions>
  62. <ColumnDefinition Width="65" />
  63. <ColumnDefinition Width="*" />
  64. </Grid.ColumnDefinitions>
  65. <TextBlock Grid.Column="0" Text="设备序号" FontSize="14" VerticalAlignment="Center" />
  66. <TextBox Grid.Column="1" IsReadOnly="True" x:Name="txtDeviceSn" VerticalContentAlignment="Center"
  67. Text="240505102203" FontSize="14" Height="26" Padding="5 0 0 0" Margin="0 0 0 0" />
  68. </Grid>
  69. <Grid Height="50" Margin="10 0 10 0">
  70. <Grid.ColumnDefinitions>
  71. <ColumnDefinition Width="65" />
  72. <ColumnDefinition Width="*" />
  73. </Grid.ColumnDefinitions>
  74. <TextBlock Grid.Column="0" Text="固件版本" FontSize="14" VerticalAlignment="Center" />
  75. <TextBox Grid.Column="1" IsReadOnly="True" x:Name="txtOldFireware" VerticalContentAlignment="Center"
  76. Text="240505102203" FontSize="14" Height="26" Padding="5 0 0 0" />
  77. </Grid>
  78. <Grid Height="40" Margin="0 0 0 0">
  79. <zdfflatui:FlatButton Grid.Column="0" x:Name="btnReadFireware" Background="#4CAF50" Foreground="White"
  80. Content="读取设备号及版本信息" Click="BtnReadFireware_Click"
  81. Height="28" FontSize="14" Margin="10 0 10 0" />
  82. </Grid>
  83. <Grid Height="35" Margin="10 0 0 0">
  84. <TextBlock Text="选择新固件版本文件:" FontSize="14" FontWeight="Bold"
  85. VerticalAlignment="Center" Foreground="DarkBlue" />
  86. </Grid>
  87. <Grid Height="50" Margin="10 0 10 0">
  88. <Grid.ColumnDefinitions>
  89. <ColumnDefinition Width="*" />
  90. <ColumnDefinition Width="40" />
  91. </Grid.ColumnDefinitions>
  92. <!--ComboBox x:Name="cmbNewFireware" Grid.Column="0" Padding="5 0 0 0" Margin="0" FontSize="14"
  93. VerticalContentAlignment="Center" Height="28" IsEditable="True" />-->
  94. <TextBox Grid.Column="0" IsReadOnly="True" x:Name="txtNewFirewarePath" VerticalContentAlignment="Center"
  95. Text="c:\sdfds.bin" FontSize="14" Height="26" Padding="5 0 0 0" />
  96. <Button x:Name="btnSelNewFireware" Content="..." Click="BtnSelNewFireware_Click"
  97. Grid.Column="1" Height="28" Margin="5 0 0 0"/>
  98. </Grid>
  99. <Grid Height="50" Margin="10 0 10 0">
  100. <Grid.ColumnDefinitions>
  101. <ColumnDefinition Width="65" />
  102. <ColumnDefinition Width="*" />
  103. </Grid.ColumnDefinitions>
  104. <TextBlock Grid.Column="0" Text="固件版本" FontSize="14" VerticalAlignment="Center" />
  105. <TextBox Grid.Column="1" IsReadOnly="True" x:Name="txtNewFireware" VerticalContentAlignment="Center"
  106. Text="240505102203" FontSize="14" Height="26" Padding="5 0 0 0" />
  107. </Grid>
  108. <Grid Height="40">
  109. <zdfflatui:FlatButton Grid.Column="1" x:Name="btnDeviceUpgrade" Background="#2196F3" Foreground="White"
  110. Content="开始升级固件" Click="BtnDeviceUpgrade_Click"
  111. Height="28" FontSize="14" Margin="10 0 10 0" />
  112. </Grid>
  113. <Grid Height="50" >
  114. <TextBlock Text="注意:要先读取到当前设备的版本信息后,再进行固件升级。"
  115. TextWrapping="Wrap" Foreground="Red" Margin="5 0 5 0"
  116. FontSize="14" VerticalAlignment="Center"/>
  117. </Grid>
  118. </StackPanel>
  119. </Border>
  120. <Border Grid.Column="1" Margin="10 0 0 0" BorderThickness="1" BorderBrush="DarkGray" Padding="0 0 0 5">
  121. <Grid>
  122. <Grid.RowDefinitions>
  123. <RowDefinition Height="35" />
  124. <RowDefinition Height="*" />
  125. <RowDefinition Height="40" />
  126. </Grid.RowDefinitions>
  127. <Grid Grid.Row="0" Margin="5 0 0 0">
  128. <TextBlock Text="固件升级历史" FontSize="14" FontWeight="Bold" Foreground="DarkBlue" VerticalAlignment="Center" />
  129. <StackPanel Orientation="Horizontal" Grid.Column="1" HorizontalAlignment="Right" VerticalAlignment="Center">
  130. <zdfflatui:FlatButton x:Name="btnClearUpgradeHis" HorizontalAlignment="Right"
  131. Background="#FF4C4C" Content="清空历史"
  132. Click="BtnClearUpgradeHis_Click" Foreground="White"
  133. Width="80" Height="28" FontSize="13" Margin="10 0 0 0" />
  134. <zdfflatui:FlatButton x:Name="btnRefreshUpgradeHis" HorizontalAlignment="Center"
  135. Background="#2196F3" Foreground="White" Content="🔄"
  136. ToolTip="刷新地址列表"
  137. Click="BtnRefreshUpgradeHis_Click" Margin="10 0 10 0" Width="30" Height="28" FontSize="20px" />
  138. <zdfflatui:FlatButton x:Name="btnClearDataA" HorizontalAlignment="Right"
  139. Background="Black" Content="测试增加" Visibility="Visible"
  140. Click="BtnClearDataA_Click" Foreground="White"
  141. Width="80" Height="28" FontSize="13" Margin="10 0 10 0" />
  142. </StackPanel>
  143. </Grid>
  144. <Border Grid.Row="1" BorderThickness="0" Padding="0">
  145. <!--RowHeight="80"-->
  146. <DataGrid Name="dgUpgradHis" GridLinesVisibility="All" HorizontalGridLinesBrush="#D3D3D3" VerticalGridLinesBrush="#D3D3D3"
  147. RowHeight="40"
  148. BorderBrush="#D3D3D3"
  149. HeadersVisibility="Column" SelectionMode="Single" SelectionUnit="FullRow" HorizontalScrollBarVisibility="Auto" CanUserResizeColumns="False"
  150. SelectedItem="{Binding SelectedHis,Mode=TwoWay}" FrozenColumnCount="2"
  151. AutoGenerateColumns="False" CanUserAddRows="False" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="White">
  152. <DataGrid.Resources>
  153. <Style TargetType="DataGridColumnHeader">
  154. <Setter Property="Height" Value="40" />
  155. <!--Setter Property="Background" Value="White" /-->
  156. <Setter Property="Foreground" Value="Black" />
  157. <Setter Property="FontSize" Value="13px" />
  158. <Setter Property="FontWeight" Value="Bold" />
  159. <Setter Property="BorderBrush" Value="#D3D3D3" />
  160. <Setter Property="BorderThickness" Value="0,0,1,1" />
  161. <Setter Property="HorizontalContentAlignment" Value="Center" />
  162. </Style>
  163. <!-- 自定义行的选中样式 -->
  164. <Style TargetType="DataGridRow">
  165. <Style.Triggers>
  166. <!-- 当行被选中时 -->
  167. <DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource Self}}" Value="True">
  168. <!-- 设置选中行的背景色 -->
  169. <Setter Property="Background" Value="#CCE5FF"/>
  170. </DataTrigger>
  171. </Style.Triggers>
  172. </Style>
  173. <!-- 自定义选中单元格的背景色 -->
  174. <Style TargetType="DataGridCell">
  175. <Style.Triggers>
  176. <DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource Self}}" Value="True">
  177. <!-- 设置选中单元格的背景色 -->
  178. <Setter Property="Background" Value="#CCE5FF"/>
  179. <Setter Property="BorderBrush" Value="Transparent" />
  180. </DataTrigger>
  181. </Style.Triggers>
  182. </Style>
  183. </DataGrid.Resources>
  184. <DataGrid.ContextMenu>
  185. <ContextMenu>
  186. <MenuItem x:Name="miDeleteHis" Header="删除" FontSize="13" Foreground="Blue" Click="MiDeleteHis_Click" >
  187. <MenuItem.Icon>
  188. <Image Source="pack://application:,,,/MV485;component/Assest/mi_delete.png" Width="16" Height="16"/>
  189. </MenuItem.Icon>
  190. </MenuItem>
  191. </ContextMenu>
  192. </DataGrid.ContextMenu>
  193. <DataGrid.Columns>
  194. <DataGridTemplateColumn Header="序号" Width="40">
  195. <DataGridTemplateColumn.CellTemplate>
  196. <DataTemplate>
  197. <TextBlock Text="{Binding Index}" FontSize="13px" Foreground="#000000" HorizontalAlignment="Center" VerticalAlignment="Center"/>
  198. </DataTemplate>
  199. </DataGridTemplateColumn.CellTemplate>
  200. </DataGridTemplateColumn>
  201. <DataGridTemplateColumn Header="设备SN" Width="100">
  202. <DataGridTemplateColumn.CellTemplate>
  203. <DataTemplate>
  204. <TextBlock Text="{Binding DeviceSn}" FontSize="13px" Foreground="Black"
  205. HorizontalAlignment="Left"
  206. VerticalAlignment="Center"
  207. Padding="5 0 0 0"/>
  208. </DataTemplate>
  209. </DataGridTemplateColumn.CellTemplate>
  210. </DataGridTemplateColumn>
  211. <DataGridTemplateColumn Header="485地址" Width="80">
  212. <DataGridTemplateColumn.CellTemplate>
  213. <DataTemplate>
  214. <TextBlock Text="{Binding AddressName}" FontSize="13px" Foreground="Black"
  215. HorizontalAlignment="Left"
  216. VerticalAlignment="Center"
  217. Padding="5 0 0 0"/>
  218. </DataTemplate>
  219. </DataGridTemplateColumn.CellTemplate>
  220. </DataGridTemplateColumn>
  221. <DataGridTemplateColumn Header="旧版本" Width="80">
  222. <DataGridTemplateColumn.CellTemplate>
  223. <DataTemplate>
  224. <TextBlock Text="{Binding OldFireware}" FontSize="13px" Foreground="Black"
  225. HorizontalAlignment="Left"
  226. VerticalAlignment="Center"
  227. Padding="5 0 0 0"/>
  228. </DataTemplate>
  229. </DataGridTemplateColumn.CellTemplate>
  230. </DataGridTemplateColumn>
  231. <DataGridTemplateColumn Header="升级时间" Width="140">
  232. <DataGridTemplateColumn.CellTemplate>
  233. <DataTemplate>
  234. <TextBlock Text="{Binding UpgradeTime}" FontSize="13px" Foreground="Black"
  235. HorizontalAlignment="Left"
  236. VerticalAlignment="Center"
  237. Padding="5 0 0 0"/>
  238. </DataTemplate>
  239. </DataGridTemplateColumn.CellTemplate>
  240. </DataGridTemplateColumn>
  241. <DataGridTemplateColumn Header="新版本" Width="80">
  242. <DataGridTemplateColumn.CellTemplate>
  243. <DataTemplate>
  244. <TextBlock Text="{Binding NewFireware}" FontSize="13px" Foreground="Black"
  245. HorizontalAlignment="Left"
  246. VerticalAlignment="Center"
  247. Padding="5 0 0 0"/>
  248. </DataTemplate>
  249. </DataGridTemplateColumn.CellTemplate>
  250. </DataGridTemplateColumn>
  251. <DataGridTemplateColumn Header="升级结果" Width="80">
  252. <DataGridTemplateColumn.CellTemplate>
  253. <DataTemplate>
  254. <TextBlock Text="{Binding UpgradeResultName}" FontSize="14px" Foreground="Black"
  255. HorizontalAlignment="Left"
  256. VerticalAlignment="Center"
  257. Padding="5 0 0 0"/>
  258. </DataTemplate>
  259. </DataGridTemplateColumn.CellTemplate>
  260. </DataGridTemplateColumn>
  261. <DataGridTemplateColumn Header="操作" Width="60">
  262. <DataGridTemplateColumn.CellTemplate>
  263. <DataTemplate>
  264. <StackPanel Orientation="Vertical" VerticalAlignment="Center">
  265. <Button x:Name="btnDelUpgradeHis" Width="Auto" FontSize="13px" Content="删除" Foreground="#2196F3" VerticalAlignment="Center"
  266. BorderBrush="Transparent" BorderThickness="0 0 0 0" Background="Transparent" Click="BtnDelUpgradeHis_Click" />
  267. </StackPanel>
  268. </DataTemplate>
  269. </DataGridTemplateColumn.CellTemplate>
  270. </DataGridTemplateColumn>
  271. </DataGrid.Columns>
  272. </DataGrid>
  273. </Border>
  274. <StackPanel Grid.Row="2" Height="35" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0">
  275. <!--<TextBlock Text="共 100 条数据" Margin="5" VerticalAlignment="Center" FontSize="13px"/>-->
  276. <!--Text="{Binding Path=SlaveRecords,StringFormat='共 {0} 个设备'}"-->
  277. <TextBlock Text="{Binding Path=HisRecords,StringFormat='共 {0} 条数据'}" Margin="5" VerticalAlignment="Center" FontSize="13px"/>
  278. <ComboBox x:Name="cmbPageSize" Width="55" Margin="5" FontSize="13px"
  279. ItemsSource="{Binding Path=PageSizeOptions}"
  280. SelectedValue="{Binding Path=CurPageSize}"/>
  281. <Button x:Name="btnDataFirstPage" Content="首页" Width="55" Margin="5" FontSize="13px" Click="BtnDataFirstPage_Click"/>
  282. <Button x:Name="btnDataPrePage" Content="上一页" Width="55" Margin="5" FontSize="13px" Click="BtnDataPrePage_Click"/>
  283. <!--<TextBlock Text="第 2 页 / 共 10 页" Margin="5" FontSize="13px" VerticalAlignment="Center"/>-->
  284. <TextBlock Margin="5" FontSize="13px" VerticalAlignment="Center">
  285. <TextBlock.Text>
  286. <MultiBinding StringFormat="第 {0} 页 / 共 {1} 页">
  287. <!--<Binding ElementName="ucPatchGird" Path="PatchDetailPage.PageNumber"/>
  288. <Binding ElementName="ucPatchGird" Path="PatchDetailPage.PageCount"/>-->
  289. <Binding Path="DetailPage.PageNumber"/>
  290. <Binding Path="DetailPage.PageCount"/>
  291. </MultiBinding>
  292. </TextBlock.Text>
  293. </TextBlock>
  294. <Button x:Name="btnDataNextPage" Content="下一页" Width="55" Margin="5" FontSize="13px" Click="BtnDataNextPage_Click"/>
  295. <Button x:Name="btnDataLastPage" Content="尾页" Width="55" Margin="5" FontSize="13px" Click="BtnDataLastPage_Click"/>
  296. <TextBox x:Name="txtDataPageNumber" Width="55" Margin="5" TextAlignment="Center" FontSize="13px"
  297. Text="{Binding Path=DetailPage.PageNumber,Mode=OneWay}"
  298. MaxLength="5" PreviewTextInput="TextBox_PreviewTextInput" VerticalContentAlignment="Center"/>
  299. <Button x:Name="btnDataSpeciPage" Content="跳转" Width="55" Margin="5" FontSize="13px" Click="BtnDataSpeciPage_Click"/>
  300. </StackPanel>
  301. </Grid>
  302. </Border>
  303. <Border Grid.Column="2" Margin="10 0 0 0" BorderThickness="1" BorderBrush="DarkGray" Padding="0 0 0 5">
  304. <Grid>
  305. <Grid.RowDefinitions>
  306. <RowDefinition Height="35" />
  307. <RowDefinition Height="*" />
  308. <!--<RowDefinition Height="40" />-->
  309. </Grid.RowDefinitions>
  310. <Grid Grid.Row="0" Margin="5 0 0 0">
  311. <TextBlock Text="升级日志" FontSize="14" FontWeight="Bold" Foreground="DarkBlue" VerticalAlignment="Center" />
  312. <StackPanel Orientation="Horizontal" Grid.Column="1" HorizontalAlignment="Right" VerticalAlignment="Center">
  313. <zdfflatui:FlatButton Grid.Column="1" x:Name="btnClearUpgradeLog" HorizontalAlignment="Right"
  314. Background="#FF4C4C" Content="清空历史"
  315. Click="BtnClearLog_Click" Foreground="White"
  316. Width="80" Height="28" FontSize="13" Margin="10 0 10 0" />
  317. </StackPanel>
  318. </Grid>
  319. <ListView x:Name="lvLogs" Grid.Row="1" Margin="0">
  320. <ListView.ContextMenu>
  321. <ContextMenu>
  322. <!--<MenuItem Header="复制消息" Click="MenuItem_CopyMessage_Click"/>-->
  323. <MenuItem x:Name="miDeleteSlave" Header="复制消息" FontSize="13" Foreground="Blue" Click="MenuItem_CopyMessage_Click" >
  324. <MenuItem.Icon>
  325. <Image Source="pack://application:,,,/MV485;component/Assest/copy.png" Width="16" Height="16"/>
  326. </MenuItem.Icon>
  327. </MenuItem>
  328. </ContextMenu>
  329. </ListView.ContextMenu>
  330. <ListView.Resources>
  331. <!-- 设置标题字体样式 -->
  332. <Style TargetType="GridViewColumnHeader">
  333. <Setter Property="FontSize" Value="14"/>
  334. <Setter Property="Foreground" Value="DarkBlue"/>
  335. <Setter Property="Height" Value="26"/>
  336. <!-- 设置标题的高度 -->
  337. <Setter Property="VerticalAlignment" Value="Center"/>
  338. <!-- 设置垂直对齐方式 -->
  339. </Style>
  340. <!-- 设置内容字体样式 -->
  341. <Style TargetType="TextBlock">
  342. <Setter Property="FontSize" Value="13"/>
  343. <Setter Property="Foreground" Value="Black"/>
  344. </Style>
  345. </ListView.Resources>
  346. <ListView.View>
  347. <GridView>
  348. <GridViewColumn Header="时间" Width="120" DisplayMemberBinding="{Binding Time}"/>
  349. <!--<GridViewColumn Header="消息" Width="600" DisplayMemberBinding="{Binding Message}"/>-->
  350. <!-- "消息" 列,支持换行 -->
  351. <GridViewColumn Header="消息" Width="400">
  352. <GridViewColumn.CellTemplate>
  353. <DataTemplate>
  354. <TextBlock Text="{Binding Message}" TextWrapping="Wrap"/>
  355. </DataTemplate>
  356. </GridViewColumn.CellTemplate>
  357. </GridViewColumn>
  358. </GridView>
  359. </ListView.View>
  360. </ListView>
  361. </Grid>
  362. </Border>
  363. </Grid>
  364. </UserControl>