如何检测正在使用的FTDI设备?

时间:2016-05-24 10:59:18

标签: c++ usb ftdi

我正在编写一个C ++应用程序,它通过FTD2xx.dll库使用几种类型的FTDI设备(我不使用虚拟COM端口)。我使用FT_CreateDeviceInfoList函数搜索连接的设备。

当我运行应用程序的多个实例时,问题就出现了,因为函数FT_CreateDeviceInfoList无法在当前正在使用的设备上提供任何其他信息。

我需要区分两个简单的案例:

  1. 系统中没有设备。
  2. 设备已连接,但当前正在使用中。
  3. 我该怎么做?

    感谢您的想法:)

2 个答案:

答案 0 :(得分:0)

锁定文件会吗?让你的应用程序为每个设备创建一个~FTDI_DeviceName.lock文件(如果在类似linux的系统上,则为.FTDI_DeviceName.lock),并检查它是否存在。

然后通过常用功能检查设备是否存在,锁定应确保您知道哪些设备正在使用中。

这显然只有在您的应用是使用这些设备的唯一程序时才有效。

答案 1 :(得分:0)

我就是这样做的

系统中不存在设备。     您可以使用GetDeviceList api返回连接的设备的FTDI列表     并使用SerialNumber属性或Description属性检查特定设备。

设备已连接,但目前正在使用中。     如果设备已在使用中,则api OpenBySerialNumber()或OpenByIndex()将失败。