我通常已经针对Windows和C#研究了其中几个问题。我看到了一些使用ManagementObjectSearcher的答案,但据我所知,Unity默认没有System.Management.dll,这是可以的,因为如果可能的话,我宁愿使用另一种方法(我知道您可以手动添加,但我更喜欢使用其他方法)。
下面的问题与我的相似,但答案使用System.Management,并且作为备份测试SerialPort.GetPortNames()
列表上的每个COM。我不喜欢备份测试每次都需要创建新的SerialPort来测试设备是否已连接。检查每个COM端口似乎效率很低。这是问题与答案:
How can I discover if a device is connected to a specific serial (COM) port?
在Mac / Linux上,在/ dev /文件夹中查找设备,找到适用于USB和蓝牙的正确设备,并获得创建新SerialPort时要使用的正确端口名称是相当简单的:
string[] ttys = System.IO.Directory.GetFiles("/dev/", "tty.*");
// iterate over list looking for device by name for usb and bluetooth
Windows中是否有类似的方法来获取连接到Windows计算机的当前设备及其COM端口的列表,而无需使用System.Management或单独检查每个COM以获得反馈?
一种理想的解决方案是在Windows上查找设备而不使用System.Management。