Different behavior old and new models?

Post questions, comments and feedback to our 3Dconnexion Windows Development Team.

Moderator: Moderators

Post Reply
alain@3d-head.com
Posts: 1
Joined: Sat Dec 25, 2021 2:29 am

Different behavior old and new models?

Post by alain@3d-head.com »

Hi all,

Best wishes for the holidays!

I have added support for the SpaceMouse in my software using DIRECTINPUTDEVICE8 and DIJOYSTATE2, but notice something strange:

When I use my old SpacePilot, the readings are cumulative, so when I press to left, the lX component is negative, and when I release the mouse, the reading will remain negative. That is not a problem, I can just subtract the old position from the new position to get a differential and all works fine.
That also goes for the lRx component etc.

However, I just purchased a SpaceMouse Wireless, which shows different behavior: if I press to the left, it gives a negative reading, but if I release the mouse, the reading returns to zero. So it's not cumulative and I don't have to subtract the previous reading from the current one.

This difference is also present when using the 3DxSMM_USB_SensorDemo.exe demo.

My questions:
1. Is there a setting to give them the same behaviour?
2. If not, which SpaceMouses have the old behavior, and which the new?
3. I'm using the DeviceInstance functions (pdidInstance->tszProductName) to identify different models. For now I found device strings "SpacePilot", "SpaceMouse Wireless" and "3Dconnexion Universal Reveiver". Is there a complete list available with all devices? (I don't mean the list shown here: https://3dconnexion.com/uk/support/faq/ ... y-windows/ , which doesn't show the tszProductName strings).

I would really appreciate your help!
jwick
Moderator
Moderator
Posts: 3331
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Re: Different behavior old and new models?

Post by jwick »

More than likely the older devices have a different device descriptor that DirectInput is handling differently.
There's nothing you can do about it, except test and adapt.

That's one of the advantages of using our API. It insulates your code from these device differences.
Post Reply