Skip to content

Commit b2367d6

Browse files
committed
add get com port description
1 parent 7ae1799 commit b2367d6

File tree

5 files changed

+71
-40
lines changed

5 files changed

+71
-40
lines changed

MetaCom/App.xaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@
101101
<Setter Property="BorderBrush" Value="Black"/>
102102
</Style>
103103
<Style TargetType="Button" x:Key="AssistButton">
104-
<Setter Property="Height" Value="23"/>
104+
<Setter Property="Height" Value="25"/>
105105
<Setter Property="Background" Value="#f0f0f0"/>
106106
<Setter Property="BorderBrush" Value="Black"/>
107107
<Setter Property="HorizontalAlignment" Value="Stretch"/>

MetaCom/MetaCom.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,7 @@
223223
<Private>True</Private>
224224
<Private>True</Private>
225225
</Reference>
226+
<Reference Include="System.Management" />
226227
<Reference Include="System.Net.Http, Version=4.1.1.3, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
227228
<HintPath>..\packages\System.Net.Http.4.3.4\lib\net46\System.Net.Http.dll</HintPath>
228229
<Private>True</Private>

MetaCom/Models/SerialModel.cs

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
using MetaCom.ViewModels;
2+
using System;
23
using System.Collections.ObjectModel;
34
using System.IO.Ports;
5+
using System.Management;
6+
using System.Windows;
47
using System.Windows.Media;
58

69
namespace MetaCom.Models
@@ -583,9 +586,36 @@ public Brush DsrBrush
583586
}
584587
#endregion
585588

589+
public string GetPortInformation( String PortName )
590+
{
591+
ManagementClass processClass = new ManagementClass("Win32_PnPEntity");
592+
ManagementObjectCollection Ports = processClass.GetInstances();
593+
foreach (ManagementObject property in Ports)
594+
{
595+
var name = property.GetPropertyValue("Name");
596+
if (name != null && name.ToString().Contains(PortName))
597+
{
598+
Console.WriteLine("Port Name: " + name);
599+
Console.WriteLine("Port description: " + property.GetPropertyValue("Description"));
600+
return property.GetPropertyValue("Description").ToString();
601+
//Thats all information i got from port.
602+
//Do whatever you want with this information
603+
}
604+
}
605+
return string.Empty;
606+
}
607+
586608
public void SerialPortDataContext()
587609
{
588610
PortItemsSource = SerialPort.GetPortNames();
611+
int i = 0;
612+
foreach (var port in PortItemsSource)
613+
{
614+
String PortDesc = GetPortInformation(port.ToString());
615+
PortItemsSource[i] = PortItemsSource[i] + " " + PortDesc;
616+
i++;
617+
}
618+
589619
BaudRateItemsSource = new Collection<int>
590620
{
591621
1200, 2400, 4800, 7200, 9600, 14400, 19200, 28800, 38400, 57600, 115200, 128000, 153600, 230400, 256000
@@ -604,7 +634,7 @@ public void SerialPortDataContext()
604634
};
605635

606636
//RecvBufSize = 2;
607-
Port = string.Format(CultureInfos, "COM1");
637+
Port = string.Format(CultureInfos, "COM1 通信端口");
608638
BaudRate = 115200;
609639
DataBits = 8;
610640
StopBits = StopBits.One;

MetaCom/ViewModels/MainWindowVM.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -486,7 +486,7 @@ internal void OpenSP()
486486

487487
try
488488
{
489-
SerialPortBase.PortName = SerialPortModel.Port;
489+
SerialPortBase.PortName = SerialPortModel.Port.Split(' ')[0];//只获取端口号,去除端口描述信息
490490
SerialPortBase.BaudRate = SerialPortModel.BaudRate;
491491
SerialPortBase.DataBits = SerialPortModel.DataBits;
492492
SerialPortBase.StopBits = SerialPortModel.StopBits;

MetaCom/Views/MainWindow.xaml

Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
<DockPanel x:Name="RootDockPanel">
2424

2525
<!--菜单栏-->
26-
<Grid x:Name="MenuGrid" DockPanel.Dock="Top" WindowChrome.IsHitTestVisibleInChrome="True" MouseMove="MouseMove_Click">
26+
<Grid x:Name="MenuGrid" DockPanel.Dock="Top" WindowChrome.IsHitTestVisibleInChrome="True" MouseMove="MouseMove_Click" Margin="6,6,6,6">
2727
<Grid.RowDefinitions>
2828
<RowDefinition Height="Auto"/>
2929
<!--<RowDefinition Height="32.52"/>-->
@@ -179,7 +179,10 @@
179179
</Grid>
180180

181181
<!--状态栏-->
182-
<Grid x:Name="StatusBarGrid" DockPanel.Dock="Bottom" Background="#f0f0f0">
182+
<Grid x:Name="StatusBarGrid" DockPanel.Dock="Bottom" Background="#f0f0f0" VerticalAlignment="Center" UseLayoutRounding="True" >
183+
<Grid.RowDefinitions>
184+
<RowDefinition Height="30"/>
185+
</Grid.RowDefinitions>
183186
<Grid.ColumnDefinitions>
184187
<ColumnDefinition Width="2*"/>
185188
<ColumnDefinition Width="1*"/>
@@ -190,7 +193,7 @@
190193
<!--接收状态信息-->
191194
<Grid Grid.Column="0" UseLayoutRounding="True">
192195
<Border BorderBrush="Gainsboro" BorderThickness="0,0,2,2">
193-
<Border BorderBrush="Gray" BorderThickness="2,2,0,0">
196+
<Border BorderBrush="Gray" BorderThickness="2,2,0,0" VerticalAlignment="Center" Padding="5,0,0,2">
194197
<StatusBar x:Name="RecvStatus" Background="#f0f0f0" HorizontalAlignment="Left">
195198
<StatusBarItem Style="{StaticResource SBStatusBarItem}">
196199
<StatusBarItem.Content>
@@ -212,7 +215,7 @@
212215
<!--发送状态信息-->
213216
<Grid Grid.Column="1">
214217
<Border BorderBrush="Gainsboro" BorderThickness="0,0,2,2">
215-
<Border BorderBrush="Gray" BorderThickness="2,2,0,0">
218+
<Border BorderBrush="Gray" BorderThickness="2,2,0,0" VerticalAlignment="Center" Padding="0,0,0,2">
216219
<StatusBar x:Name="SendStatus" Background="#f0f0f0" HorizontalAlignment="Left">
217220
<StatusBarItem Style="{StaticResource SBStatusBarItem}">
218221
<StatusBarItem.Content>
@@ -233,7 +236,7 @@
233236
<!--串口状态信息-->
234237
<Grid Grid.Column="2">
235238
<Border BorderBrush="Gainsboro" BorderThickness="0,0,2,2">
236-
<Border BorderBrush="Gray" BorderThickness="2,2,0,0">
239+
<Border BorderBrush="Gray" BorderThickness="2,2,0,0" VerticalAlignment="Center" Padding="0,0,0,2">
237240
<StatusBar x:Name="SerialStatus" Background="#f0f0f0" HorizontalAlignment="Left" FontSize="10.5">
238241
<StatusBarItem x:Name="SeiralStatusBraItem" Content="{Binding SerialInfo}"
239242
Style="{StaticResource SBStatusBarItem}"/>
@@ -244,7 +247,7 @@
244247
<!--系统时间-->
245248
<Grid Grid.Column="3">
246249
<Border BorderBrush="Gainsboro" BorderThickness="0,0,2,2">
247-
<Border BorderBrush="Gray" BorderThickness="2,2,0,0">
250+
<Border BorderBrush="Gray" BorderThickness="2,2,0,0" VerticalAlignment="Center" Padding="0,0,0,2">
248251
<StatusBar x:Name="TimeStatus" Background="#f0f0f0" HorizontalAlignment="Left">
249252
<StatusBarItem x:Name="TimeStatusBraItem" Content="{Binding TimerModel.SystemTime}"
250253
Style="{StaticResource SBStatusBarItem}" FontSize="10.5"/>
@@ -255,7 +258,7 @@
255258
<!--状态提示-->
256259
<Grid Grid.Column="4">
257260
<Border BorderBrush="Gainsboro" BorderThickness="0,0,2,2">
258-
<Border BorderBrush="Gray" BorderThickness="2,2,0,0">
261+
<Border BorderBrush="Gray" BorderThickness="2,2,0,0" VerticalAlignment="Center" Padding="0,0,0,2">
259262
<StatusBar x:Name="InfoStatus" Background="#f0f0f0" HorizontalAlignment="Left">
260263
<StatusBarItem x:Name="InfoStatusBraItem" Content="{Binding DebugInfo}"
261264
Style="{StaticResource SBStatusBarItem}" FontSize="10.5"/>
@@ -271,7 +274,7 @@
271274
Background="#f0f0f0" BorderBrush="White" Foreground="LightGreen"
272275
Visibility="{Binding HelpModel.StatusBarProgressBarVisibility}"
273276
Value="{Binding HelpModel.StatusBarProgressBarValue}"
274-
IsIndeterminate="{Binding HelpModel.StatusBarProgressBarIsIndeterminate}" FontSize="10.5"/>
277+
IsIndeterminate="{Binding HelpModel.StatusBarProgressBarIsIndeterminate}" FontSize="10.5" VerticalAlignment="Center" Padding="0,0,0,2"/>
275278
</Grid>
276279
</Grid>
277280

@@ -286,11 +289,11 @@
286289
<ColumnDefinition Width="1*"/>
287290
</Grid.ColumnDefinitions>
288291
<!--数据接收区-->
289-
<Grid x:Name="DataGrid" Grid.Row="0">
292+
<Grid x:Name="DataGrid" Grid.Row="0" >
290293

291294
<!--接收区-->
292-
<Border BorderBrush="Gainsboro" BorderThickness="0,0,2,2">
293-
<Border BorderBrush="Gray" BorderThickness="2,2,0,0">
295+
<Border BorderBrush="Gainsboro" BorderThickness="0,0,1,1" Padding="5,0,4,0">
296+
<Border BorderBrush="Gray" BorderThickness="1,1,0,0">
294297
<TextBox x:Name="RecvTextBox" local:MvvmTextBox.Buffer="{Binding RecvModel.RecvData}"
295298
Style="{StaticResource RSTextBox}"
296299
TextChanged="RecvTextBox_TextChanged"
@@ -303,9 +306,9 @@
303306
</Grid>
304307

305308
<!--串口配置区和数据发送区-->
306-
<Grid x:Name="SerialPortGrid" Grid.Row="1" Grid.RowSpan="2">
309+
<Grid x:Name="SerialPortGrid" Grid.Row="1" Grid.RowSpan="2" Margin="5,0,5,0">
307310
<Grid.ColumnDefinitions>
308-
<ColumnDefinition Width="330"/>
311+
<ColumnDefinition Width="385"/>
309312
<ColumnDefinition Width="1*"/>
310313
</Grid.ColumnDefinitions>
311314
<Grid.RowDefinitions>
@@ -314,7 +317,7 @@
314317

315318
<!--串口配置区-->
316319
<GroupBox x:Name="ConfigGroupPort" Header="串口/接收" Grid.Row="0" Grid.Column="0"
317-
Margin="4,0,5,2"
320+
Margin="4,0,2,2"
318321
BorderBrush="Gray"
319322
Visibility="{Binding HelpModel.ViewVisibility}">
320323
<Grid x:Name="ConfigGrid" >
@@ -333,9 +336,10 @@
333336
<Grid Grid.Row="0">
334337
<Grid.ColumnDefinitions>
335338
<ColumnDefinition Width="35"/>
336-
<ColumnDefinition Width="150"/>
337-
<ColumnDefinition Width="45"/>
338-
<ColumnDefinition Width="75"/>
339+
<ColumnDefinition Width="175"/>
340+
<ColumnDefinition Width="30"/>
341+
<ColumnDefinition Width="60"/>
342+
<ColumnDefinition Width="65"/>
339343
</Grid.ColumnDefinitions>
340344
<TextBlock x:Name="ComTextBox" Text="端口:" Grid.Column="0"
341345
Style="{StaticResource ConfigTextBlock}"/>
@@ -351,6 +355,10 @@
351355
Grid.Column="3"
352356
Style="{DynamicResource ConfigButton}"
353357
Click="OpenCloseSP"/>
358+
<Button x:Name="ClearReceButton" Content="清空接收" Grid.Column="4"
359+
Style="{DynamicResource AssistButton}"
360+
Click="ClearReceData" Margin="8,0,0,0" >
361+
</Button>
354362
</Grid>
355363
<Grid Grid.Row="1">
356364
<Grid.ColumnDefinitions>
@@ -423,41 +431,33 @@
423431

424432
<Grid Grid.Row="3">
425433
<Grid.ColumnDefinitions>
426-
<ColumnDefinition Width="70"/>
427434
<ColumnDefinition Width="65"/>
428435
<ColumnDefinition Width="65"/>
429436
<ColumnDefinition Width="70"/>
437+
<ColumnDefinition Width="70"/>
430438
</Grid.ColumnDefinitions>
431-
<CheckBox x:Name="SaveReceCheckBox" Content="保存文件" Grid.Column="0"
439+
<CheckBox x:Name="TimeStampMenuItem" Content="时间戳" Grid.Column="0"
432440
Style="{StaticResource AssistCheckBox}"
433-
IsChecked="{Binding SaveRecv}"/>
434-
<CheckBox x:Name="TimeStampMenuItem" Content="时间戳" Grid.Column="1"
441+
IsChecked="{Binding TimerModel.TimeStampEnable}" HorizontalAlignment="Left"/>
442+
<CheckBox x:Name="HexReceCheckBox" Content="Hex接收" Grid.Column="1"
435443
Style="{StaticResource AssistCheckBox}"
436-
IsChecked="{Binding TimerModel.TimeStampEnable}" HorizontalAlignment="Center"/>
437-
<CheckBox x:Name="HexReceCheckBox" Content="Hex接收" Grid.Column="2"
444+
IsChecked="{Binding RecvModel.HexRecv}" HorizontalAlignment="Center"/>
445+
<CheckBox x:Name="SaveReceCheckBox" Content="保存文件" Grid.Column="2"
438446
Style="{StaticResource AssistCheckBox}"
439-
IsChecked="{Binding RecvModel.HexRecv}"/>
440-
<Button x:Name="ClearReceButton" Content="清空接收" Grid.Column="3"
441-
Style="{StaticResource AssistButton}"
442-
Margin="10,3,0,0"
443-
Click="ClearReceData" >
444-
</Button>
447+
IsChecked="{Binding SaveRecv}" HorizontalAlignment="Right"/>
445448

446449
</Grid>
447450

448451
<Grid Grid.Row="4">
449452
<Grid.ColumnDefinitions>
450-
<ColumnDefinition Width="60"/>
451453
<ColumnDefinition Width="1*"/>
452-
<ColumnDefinition Width="25"/>
454+
<ColumnDefinition Width="40"/>
453455
</Grid.ColumnDefinitions>
454456

455-
<TextBlock Text="保存路径:" Grid.Column="0"
456-
Style="{StaticResource ConfigTextBlock}"/>
457-
<Grid Background="#f0f0f0" Grid.Column="1">
457+
<Grid Background="#f0f0f0" Grid.Column="0">
458458
<Border BorderBrush="Gainsboro" BorderThickness="0,0,2,2">
459459
<Border BorderBrush="Gray" BorderThickness="2,2,0,0" ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.CanContentScroll="True" UseLayoutRounding="True" Focusable="True">
460-
<TextBlock FontSize="10" HorizontalAlignment="Left" ScrollViewer.HorizontalScrollBarVisibility="Auto" TextWrapping="WrapWithOverflow">
460+
<TextBlock FontSize="11" HorizontalAlignment="Left" ScrollViewer.HorizontalScrollBarVisibility="Auto" TextWrapping="WrapWithOverflow">
461461
<TextBlock.Text>
462462
<Binding Path="SavePathInfo"/>
463463
</TextBlock.Text>
@@ -466,9 +466,9 @@
466466
</Border>
467467
</Grid>
468468

469-
<Button x:Name="SaveReceButton" Content="..." Grid.Column="2"
469+
<Button x:Name="SaveReceButton" Content="..." Grid.Column="1"
470470
Style="{StaticResource AssistButton}"
471-
Click="SaveRecvPath">
471+
Click="SaveRecvPath" Margin="5,0,0,0">
472472
<Button.Effect>
473473
<DropShadowEffect ShadowDepth="-4" BlurRadius="5" Color="LightGray"/>
474474
</Button.Effect>

0 commit comments

Comments
 (0)