bhaptics / VRChatOSC

GNU General Public License v3.0
17 stars 1 forks source link

VRChat's OSCquery update Issue. #7

Closed westside closed 11 months ago

westside commented 11 months ago

Starting with VRChat's OSCquery update, the bhaptics integration has had an issue where t he program will just tell the motors on any bhaptics devices to continue vibrating even after one has stopped being touched in VRC. I've tried packet filtering and a few other things, but I can't seem to get the looping to stop from happening.

auejin commented 11 months ago

Hello! I just did a quick test with my TactSuit X40, and it performed as expected. The vibrations stopped immediately when I removed my hand from the vest. Could you please double-check if your system is running the latest version of VRChatOSC.exe? You can easily get the latest version from our release page at this link.

I'll also upload a test video here so you can compare how your system is behaving with ours.

https://github.com/bhaptics/VRChatOSC/assets/10795479/d3d708fd-7901-46d4-a595-45685c6078af

botekastel commented 11 months ago

I replied on the unofficial official bhaptics discord about this, but I figure this would be more appropriate.

It's a difficult issues to replicate forcibly. It often seems to happen from being turned on and off too fast. I've monitored the OSC messages from VRChat and the application does send the message telling the motor to turn off.

The issue is that sometimes, when the vest is triggered in VRChat, a motor will stay on as if there was no message received to turn it off. You recover it by triggering the spots again. I have tried blocking all OSC messages that are unrelated to bhaptics and I have tried rate limiting the messages, but nothing seems to work.

auejin commented 11 months ago

Hello @botekastel ! I believe the ongoing motor vibrations might be caused by problems with the Bluetooth connection or issues with how VRChat is interacting with the motors (possibly stopping interaction before sending the halting commands to the motors). To help with this, I suggest checking the settings in the bHaptics Player and making sure that you have "Stable Connection" enabled (see the Figure below). Additionally, I'll be adding a motor reset button in the upcoming VRChatOSC.exe to make it easier to resolve motor issues.

image

botekastel commented 11 months ago

Thank you, that button will at least make things easier for us.

I don't believe it could be a bluetooth issue as this isn't an issue exclusive to me, unless everyone's bluetooth dongle broke at the same time. It's also just not an issue anywhere else but VRChat. I don't think it's an issue on VRChat's end as the off message is still being sent. I'll be using the software tonight to log the error it outputs and any other additional info I can provide

botekastel commented 11 months ago

Here is the error in the logs whenever the bug occurs:

"Object reference not set to an instance of an object. System.NullReferenceException: Object reference not set to an instance of an object. at bHapticsLib.WebSocketSender.Send()"

Also to my surprise I did manage to grab that VRChat isn't always sending the off message. I changed how I was checking the outgoing messages. Here's an example of what was in my debugging menu:

bHapticsOSC_Vest_Front_18=false bHapticsOSC_Vest_Front_19=false bHapticsOSC_Vest_Front_2=false bHapticsOSC_Vest_Front_20=true bHapticsOSC_Vest_Front_3=false bHapticsOSC_Vest_Front_4=false

auejin commented 11 months ago

Hello @botekastel ! We released a new update for the software. You can set up a config to automatically stop all the motors when no events are received for a given period of time. Please checkout this link to download the executable!

botekastel commented 11 months ago

Awesome, I'll test it later this evening after work. The automatic stopper seems like it'd be the solution here though.