SpaceMousePRO SDK

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

Moderator: Moderators

Post Reply
developer_ITV
Posts: 5
Joined: Wed Oct 23, 2019 4:11 am

SpaceMousePRO SDK

Post by developer_ITV »

Dear Support team,

My name is Ismail, I am programmer of ITV Axxonsoft company.

Now I am working with integration of 3dconnexion SpaceMouse Pro Wireless.
There are some questions about this device.
I've downloaded from official web-site "SpaceMouse Module SDK".

1) Firstly, according to"Product Specification SpaceMouse® Module USB", device should work as a standard USB-joystick.

And actually, device is displaying as standard game joystick, but when I am trying test or calibration buttons and axises of device, there is no any reaction in window of properties. (attachment1)

So why device is displaying, but doesn't work as a standard game joystick?

2)Secondly, if it doesn't work as a standard game joystick, we need valid SDK (with samples and documentation) for integrating joystick in our soft.

In described above, downloaded folder, there is two sample project.

Although they are building successfully, no one of they is working.
For example, sample software usb doesn't react on any button or movement of joystick ((attachment2)

Is there any other valid example with SDK?

Also according to sources of samples, implimentation of SDK is related to HWND objects. For example, for recieving messages, window which is creating in sample should be active all time, otherwise there is no coming messages.
This implementation it's not quite suitable for us.

Don't you have some implementation of SDK without any relating to HWND object?
And if you don't have, could you please tell me how can I get around the problem of necessity to be active for HWND object to get messages?

Thank you, in advance.

Best regards,
Ismail Misirov

Software-engineer,
ITV Group | Axxonsoft
Attachments
attachment2.png
attachment2.png (9.93 KiB) Viewed 14454 times
attachment1.png
attachment1.png (126.11 KiB) Viewed 14454 times
jwick
Moderator
Moderator
Posts: 3331
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Re: SpaceMousePRO SDK

Post by jwick »

Hello Ismail,

That's the wrong SDK. The SpaceMouse Module is an industrial controller device we sell that is just the cap without the base and buttons.
I'll have a talk with the web site designer to see how we can make the more clear.
The correct SDK is called something like "3DxWare SDK".
developer_ITV
Posts: 5
Joined: Wed Oct 23, 2019 4:11 am

Re: SpaceMousePRO SDK

Post by developer_ITV »

Hello,

But anyway, I've downloaded and installed both of them. (pic1)

1) "SpaceMouse Pro" still is detected as a game joistick, but didn't work as a a game joystick. Is it OK?

2) What about second part of my question?
Yes, after installing drivers and SDK. There is a folder - "3DxWareSDK" with couple of demos. (pic2)
For example, 3DxTest solution. But it's also implemented with using HWND objects.
And the HWND object don't get messages about joystick's state if window is not active. (pic3)
It's not appropriate for us, because for our soft we want just get information about joystick movements and buttons without creating window and moreover, without keeping it active.

Don't you have some implementation of SDK without any relating to HWND object?
And if you don't have, at least could you please tell me how can I get around the problem of necessity to be active for HWND object to get messages? For example, can I just create empty window and receive messages not depending which window or process active now?
I googled it a lot, but didn't find anything.

Thank you.
Attachments
pic3.PNG
pic3.PNG (72.31 KiB) Viewed 14424 times
pic2.PNG
pic2.PNG (14.1 KiB) Viewed 14424 times
pic1.PNG
pic1.PNG (11.1 KiB) Viewed 14424 times
jwick
Moderator
Moderator
Posts: 3331
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Re: SpaceMousePRO SDK

Post by jwick »

Hi Ismail,

There is an API function that will grab the device so your application does not need to have focus.

Code: Select all

SiGrabDevice(devHdl, SPW_TRUE);
While your application is running, all device events will go to it.

Jim
developer_ITV
Posts: 5
Joined: Wed Oct 23, 2019 4:11 am

Re: SpaceMousePRO SDK

Post by developer_ITV »

Thank you, it helped.

One more question.
If i understand right, when I am using SDK, automatically launches 3DxService.exe (pic1).

And I suppose, the most important DLL's is these ones: (pic2)

Can I just pull out some important DLL's which are necessary for work of SDK's function, and use SDK directly without any additional process such as 3DxService.exe?

It needed, because of architecture of our soft there is some problems with auxiliary exe's.
Attachments
pic2.PNG
pic2.PNG (6.1 KiB) Viewed 14397 times
pic1.PNG
pic1.PNG (4.1 KiB) Viewed 14397 times
developer_ITV
Posts: 5
Joined: Wed Oct 23, 2019 4:11 am

Re: SpaceMousePRO SDK

Post by developer_ITV »

Hello Jim,

In continuation of last question.
Maybe you understood me wrong or I wasn't pretty clear.

The essence of problem is that our soft (Axxon Next) is working as a service.What means our soft and processes which is launched by our soft doesn't have access to desktop and as сonsequently there is no ability to create win_api window and recieve messages to it.
Thus SDK in current implimentation can not be integrated to our soft.

Coultdn't you please provide us SDK in kind of DLLs, which don't require launch any additional exe, such as, for example, 3DxService.exe and another requirement is implemetation of these DLLs (SDK) shouldn't be based on HWND win_api objects?

I am kindly ask you help us with that issue as soon as possible, because we have an important client, who wants to use your devices.
jwick
Moderator
Moderator
Posts: 3331
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Re: SpaceMousePRO SDK

Post by jwick »

The device is a standard USB device. You can access the device through standard Windows APIs.
In that case you don't need to run / install our driver or use our API.

But, you do give up a lot of flexibility.
In particular, you are more or less tied to a specific device. If your users buy a different device (and years from now they will), you probably have to change your software. If you are building a turnkey system that may not be so important.
You also might give up our GUI and the ability for users to modify the device to their own preference.

If you are building a turnkey system, like a video console, then the industrial controller may very well be the way you want to go. It is for building into a customized device, such as a robot controller.

Windows is just a communication mechanism. You don't need to display a window to use the API. I can be created and never displayed. A background service can have a hidden window. SiGrabDevice will allow you to override the event arbitration.

But you can also create your own mechanism for the driver to use to communicate with your app (non Windows based). Pipes, sockets, whatever.

What are you doing with the device? Are controlling a PTZ cameras?
developer_ITV
Posts: 5
Joined: Wed Oct 23, 2019 4:11 am

Re: SpaceMousePRO SDK

Post by developer_ITV »

What are you doing with the device? Are controlling a PTZ cameras?
yes, generally it's for controlling PTZ.
we are reporting coordinates of joystick to our soft and it redirects it for PTZ.

I understand that window is just mechanism. When our soft, which is launched as a service, creates the window, even though the window is hidden, we can't receive messages of that window.

I don't have idea for another mechanism, because only way I see in your example(3DxTest32) is by using window.
Is siapp.h interfaces intended for your customers?
I am interested, because there is no any explanations about they. And I don't know how use other functions.

BTW, is it you who answers on api-support e-mail?
I'am waiting answer there, I suppose, from you :)
jwick
Moderator
Moderator
Posts: 3331
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Re: SpaceMousePRO SDK

Post by jwick »

Hi Ismail,

There are three of us who answer the apisupport email. I try to sign my name at the bottom so you know who exactly you are communicating with.
I'm on vacation at the moment. I'll look through your emails with apisupport on Wednesday.

In the meantime, turn on driver logging (3Dx systray icon), restart the driver and start your application.
The log file (%localappdata%\3dconnexion\3dxware\3dxservice.log) will list a lot about what is going on.

The SiGrabDevice call will be needed if you don't have a displayed window. The doc is under the Windows Start menu icon.

Jim
Post Reply