AstraSDK Beta-3 Treats Kinect 360 as an Astra

I made an interesting observation/discovery this morning. We have an application that supports a wide array of sensors (Astra, Kinect One, Kinect 360, webcams, RealSense, etc…). I just updated to the newly released beta-3 Astra SDK, and discovered that when I have the Kinect 360 and an Astra Pro connected to my PC, the AstraSDK lets me create two StreamSet instances, one for device/sensor0 (the Kinect 360) and a second one for device/sensor1 (the Astra Pro).

I’m assuming this is because the AstraSDK is using OpenNI under the hood for interacting with the hardware, and the Kinect360 is basically the old PrimeSense camera, with pretty good OpenNI support?

The problem I’m having with this behaviour is that in order to identify all compatible devices connected to the PC, I loop through all the connected USB devices, and check the Vendor and Product IDs, and pass those IDs to a factory class that returns a Camera subclass for the specific hardware. (The Camera class is an abstract class defined in the application and is just there to provide easier encapsulation for different underlying hardware.)

My USB device enumerator correctly identifies the single Astra Pro (2BC5:040*) as the only Astra device, so the factory class creates Camera instance that encapsulates a StreamSet for device/sensor0 – but with the Kinect 360 connected this is the wrong device; device/sensor1 is the Astra Pro, even though there is only one Astra present.

Is there a better way to enumerate all available Astra devices (that are actually Astra devices, and not OpenNI-compatible devices from other manufacturers) than to look for vendor/product IDs? And is there any chance that for Beta-4 the StreamSet class could just skip over the Kinect 360?

Forgot to mention that I don’t know if this problem existed in the earlier AstraSDK betas; I’ve only tested with a Kinect 360 connected to my dev machine with Beta-3. I suspect the problem probably existed in the earlier releases too, and it just went unnoticed.