获取COM端口号(串口,例如:COM1,COM2 ,,,) 当点击一个按钮时,我想在UI上显示可用的COM端口列表。首先点击成功获取COM号码,但第二次点击失败。你有什么理由吗?UWP,第二次调用时设备COM端口号为NULL SerialDevice.FromIdAsync
这是测试两次点击的简单代码。
public async Task<bool> test()
{
Debug.WriteLine("Start");
var aqs = SerialDevice.GetDeviceSelector();
var dis = await DeviceInformation.FindAllAsync(aqs);
var port = await SerialDevice.FromIdAsync(dis[0].Id);
Debug.WriteLine("COM=" + port?.PortName);
var aqs2 = SerialDevice.GetDeviceSelector();
var dis2 = await DeviceInformation.FindAllAsync(aqs2);
var port2 = await SerialDevice.FromIdAsync(dis2[0].Id);
//port2 will be null
Debug.WriteLine("COM=" + port2?.PortName);
Debug.WriteLine("end");
return true;
}
public MainPage()
{
this.InitializeComponent();
Task.Run(() => this.test()).Wait();
}
and Package.appxmanifext has this code。
<Capability Name="internetClient" />
<DeviceCapability Name="serialcommunication">
<Device Id="any">
<Function Type="name:serialPort" />
</Device>
</DeviceCapability>
</Capabilities>
这里是执行结果。
Start
COM=COM15
COM=
end
This post也指出了同样的问题。我在这里写了评论。但为了得到答案,我将其作为新问题发布。
问:要更改设备时获取COM端口列表和更新列表,应该写什么代码?
:)你是对的,呵呵..对不起,我的测试应用程序是错误的......但结果是一样的......我修改了我的上面的代码。 –