In the reproduction project attached below, in the scene Assets/Scenes/HaplyHapticsTest.unity, There are two HapticRig gameobjects (LeftHapticRig and RightHapticRig).
I have a (single) haply haptic device connected on COM12 and haply handle device(device id D310) connected on COM16.
Observation:
When i run the scene as is, the device and handle successfully connects from COM12 and COM16 respectively, and i get handle rotations.
When i enable the RightHapticRig gameobject and run the scene the device connects successfully from COM12 but handle from COM16 is unable to connect.
Expected:
The device and handle should connect on the LeftHapticRig irrespective of the RightHapticRig being enabled or disabled.
reproduction project:
https://aisolve-my.sharepoint.com/:u:/p/shashank_c/EVdaGGH9yYRPrU4PXzZ8J_8B_-Oy1tX0KjEnh0gkuGX96w?e=WoTiRG
Apologies for the late answer as most of the team were off for the holidays. Given that this is a bit outside my area of expertise, I referred your question to one of my colleagues who is more familiar with Unity and the C# API.
That being said, I’d like to rule out the known bluetooth firmware issue where a handle can become unresponsive if the connection to the handle is not “properly” closed. This issue can be resolved by disconnecting the battery using the switch on the side of the handle while it’s not plugged in which will cause the blue LED to turn off. Once that’s done return the side switch to it’s original position and the blue LED should come back on. This in effect does a full reset of the firmware and might potentially resolve the issue you’re experiencing.
If that does it then the solution is to switch to the wired handle firmware which is a taking a bit longer then finish up and release.
UPDATE: Me and my colleagues have been able to reproduce the issue with your sample project and we can rule out the bluetooth firmware issue. Given that I believe you only have one inverse3 and handle available, the right effector is likely to be configured to use an invalid COM port or the same COM port as the left effector which means that the issue is triggered by an error condition being raised. We’ve also observed that the issue is somewhat random which indicates that the problem is likely to be some form of race condition.
All in all, there’s definitely a problem there that needs to be tracked down and solved but it will likely take some time to do so given the nature of the problem.