串口数据解析 ,

这里是引用的, 忘记那个前辈写的,帮助很大。

private string searchDevicesRegistry()
        {
            string[] available_spectrometers = SerialPort.GetPortNames();
            ManagementObjectCollection.ManagementObjectEnumerator enumerator = null;
            string commData = "";
            ManagementObjectSearcher mObjs = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM WIN32_PnPEntity");
            try
            {
                enumerator = mObjs.Get().GetEnumerator();
                while (enumerator.MoveNext())
                {
                    ManagementObject current = (ManagementObject)enumerator.Current;

                    if (Strings.InStr(Conversions.ToString(current["Caption"]), "(COM", CompareMethod.Binary) <= 0)
                    {
                        continue;
                    }
                    foreach (var property in current.Properties)
                    {
                        Console.WriteLine(property.Name + ":" + property.Value);
                    }
                    if (current["DeviceID"].ToString().Equals(@"FTDIBUS\VID_0413+PID_6111+FTZ6XM7RA\0000"))
                    {
                        commData = current["Name"].ToString().Substring(17, 4);
                        break;
                    }
                }
            }
            finally
            {
                if (enumerator != null)
                {
                    enumerator.Dispose();
                }
            }
            return commData;
        }

获取由USB改接的串口的数据,获取串口号。

private void GetPorts() {
            string[] available_spectrometers = SerialPort.GetPortNames();
            List<string> strList = new List<string>();// 串口列表
            ManagementObjectCollection.ManagementObjectEnumerator enumerator = null;
            ManagementObjectSearcher mObjs = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM WIN32_PnPEntity");
            try
            {
                enumerator = mObjs.Get().GetEnumerator();
                while (enumerator.MoveNext())
                {
                    ManagementObject current = (ManagementObject)enumerator.Current;
                    if (Strings.InStr( Conversions.ToString( current["Caption"]), "(COM", CompareMethod.Binary) <= 0)
                    {
                        continue;
                    }
                    string commData = current["Name"].ToString().Substring(0, 22);
                    if (commData == "Prolific USB-to-Serial")
                    {
                        String str = current["Name"].ToString().Substring(34, 5);
                        int num  = str.IndexOf(")");
                        if (num  == -1)
                        {
                            strList.Add(str);               
                        }
                        else
                        {
                            strList.Add(str.Substring(0, 4));
                        }
                    }
                }
            }
            finally
            {
                if (enumerator != null)
                {
                    enumerator.Dispose();
                }
            }
            
        }

串口数据 展示,

Availability:
Caption:Prolific USB-to-Serial Comm Port (COM8)
ClassGuid:{4d36e978-e325-11ce-bfc1-08002be10318}
CompatibleID:System.String[]
ConfigManagerErrorCode:0
ConfigManagerUserConfig:False
CreationClassName:Win32_PnPEntity
Description:Prolific USB-to-Serial Comm Port
DeviceID:USB\VID_067B&PID_2303\6&3DB33E8&0&3
ErrorCleared:
ErrorDescription:
HardwareID:System.String[]
InstallDate:
LastErrorCode:
Manufacturer:Prolific
Name:Prolific USB-to-Serial Comm Port (COM8)
PNPDeviceID:USB\VID_067B&PID_2303\6&3DB33E8&0&3
PowerManagementCapabilities:
PowerManagementSupported:
Service:Ser2pl
Status:OK
StatusInfo:
SystemCreationClassName:Win32_ComputerSystem
SystemName:JY05

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值