【问题标题】:COM port number from Windows.Devices.Enumeration.DeviceInformation来自 Windows.Devices.Enumeration.DeviceInformation 的 COM 端口号
【发布时间】:2017-03-10 19:06:14
【问题描述】:

有没有办法通过DeviceInformation 获取设备的 COM 端口号?当我通过设备管理器查看 COM 端口号时,我可以看到它们。

我刚刚遇到了一些设备,它们没有将 COM 端口号列为 Name 属性的一部分。我插了两个,没有办法区分它们。理想情况下,我希望看到一个 COM 端口。有没有其他方法可以获取这些信息?

string _serialSelector = SerialDevice.GetDeviceSelector();
DeviceInformationCollection tempInfo = await DeviceInformation.FindAllAsync(_serialSelector);
    if (tempInfo.Count > 0)
    {
        foreach (var efefe in tempInfo)
        {
            if (efefe.Kind.Equals(DeviceInformationKind.DeviceInterface))
            {
                //efefe.Name                     
            }
        }
    }

【问题讨论】:

    标签: c# uwp


    【解决方案1】:

    您已经完成了大部分工作,那么您将需要使用您的 efefe 的 id 来使用 SerialDevice.FromIdAsync | fromIdAsync method 获取 SerialDevice 对象。

    这里是演示:

    string _serialSelector = SerialDevice.GetDeviceSelector();
    var infos = await DeviceInformation.FindAllAsync(_serialSelector);
    foreach (var info in infos)
    {
        var serialDevice = await SerialDevice.FromIdAsync(info.Id);
        if (serialDevice != null)
        {
            var port = serialDevice.PortName;
            Debug.WriteLine(port.ToString());
        }
    }
    

    请不要忘记在清单中添加DeviceCapability

    <DeviceCapability Name="serialcommunication">
      <Device Id="any">
        <Function Type="name:serialPort" />
      </Device>
    </DeviceCapability>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-05
      • 1970-01-01
      • 1970-01-01
      • 2013-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多