On Thu, Feb 3, 2022 at 7:25 PM stuart lynne <stuart.ly...@gmail.com> wrote: > > I am working with libant and pyusb to support Ant+ devices. > > The issue I am trying to fix is preventing access to a device that is already > open by another process. There may (usually will) be multiple Ant+ devices > plugged in, and one or more may be in active use by another program. > > I need to find an unused device and then open that, without interfering with > the use of the other open devices. > > Currently, I'm testing on Linux, but this will be deployed on Windows and > macOS as well. > > There doesn't appear to be anything to prevent multiple access, and at least > initial testing with two processes both using pyusb shows them interfering > with each other as they open, close while attempting to access the Ant device.
Hi Stuart, As far as I know there is no cross-platform way to unilaterally prevent other processes from accessing a USB device. However, careful use of [libusb_]claim_interface() by both processes can prevent one from trampling over the other: claiming the interface should fail if another process has already done it, so each process can use it as a pseudo-lock for the device it's working on. Note that I'm talking about *explicitly* claiming the interface – with usb.tools.claim_interface() – and not the automatic claiming/releasing that PyUSB does by default. Jonas > > Suggestions would be appreciated. > > Thanks! > > > -- > __________O___________ > _______-\<,____________ > _____(_)/_(_)___________ > _________________________ > Stuart_Lynne____<stuart.ly...@gmail.com>____604-518-1749(m)__604-461-7532(h) > _______________________________________________ > pyusb-users mailing list > pyusb-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/pyusb-users _______________________________________________ pyusb-users mailing list pyusb-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/pyusb-users