我正在编写一个C ++应用程序,它通过FTD2xx.dll库使用几种类型的FTDI设备(我不使用虚拟COM端口)。我使用FT_CreateDeviceInfoList
函数搜索连接的设备。
当我运行应用程序的多个实例时,问题就出现了,因为函数FT_CreateDeviceInfoList
无法在当前正在使用的设备上提供任何其他信息。
我需要区分两个简单的案例:
我该怎么做?
感谢您的想法:)
答案 0 :(得分:0)
锁定文件会吗?让你的应用程序为每个设备创建一个~FTDI_DeviceName.lock文件(如果在类似linux的系统上,则为.FTDI_DeviceName.lock),并检查它是否存在。
然后通过常用功能检查设备是否存在,锁定应确保您知道哪些设备正在使用中。
这显然只有在您的应用是使用这些设备的唯一程序时才有效。
答案 1 :(得分:0)
我就是这样做的
系统中不存在设备。 您可以使用GetDeviceList api返回连接的设备的FTDI列表 并使用SerialNumber属性或Description属性检查特定设备。
设备已连接,但目前正在使用中。 如果设备已在使用中,则api OpenBySerialNumber()或OpenByIndex()将失败。