3DxWare SDK Version 3

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

Moderator: Moderators

jwick
Moderator
Moderator
Posts: 3339
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

3DxWare SDK Version 3

Post by jwick »

Use this topic to discuss the 3DxWare SDK Version 3.

The primary motivation for version 3 of the 3DxWare SDK is to support the new capabilities of 3DxWare 10:

· In conjunction with 3DxWare 10, your application can now support multiple simultaneously connected devices and run-time Plug-n-Play (PnP) of those devices.
· Your application can interrogate the number and type of connected devices. You can address each device separately if you want or them all as a group.
· This opens all sorts of interesting possibilities and fulfills one of the most popular requests we consistently receive.
· A 3Dx device no longer has to be connected when your application starts. The end-user can connect, disconnect and change devices at any time.
· A new event is sent to your application when a device leaves or arrives.
· 3DxWare 10 also supports the use of other Microsoft APIs (in addition to the API in this SDK).

Additional change details from previous releases:

· Simplify API structure. Deprecate SiCfg saving functions and SiSync extension.
· SDK license no longer allows redistribution of DLL binary files (these are always included in the driver user installation).
· Only USB devices are supported.
· The static libraries were all moved into the same directory under lib (x86/x64).
· Added prebuilt versions of the static libraries for four CRT usages: Multi-threaded DLL (default), Multi-threaded Debug DLL (D suffix), Multi-threaded (static) (MT suffix), Multi-threaded Debug (static) (MTD suffix).
· Some of the include files have been cleaned up and split. This should not affect existing code.
IBLUES1976
Posts: 10
Joined: Wed Feb 22, 2012 3:53 pm

Post by IBLUES1976 »

Hi,

When I try to run the win32 sample, it is asking for the dll. SiAPPDLL ...

thanks,
Francisco
IBlues1976
IBLUES1976
Posts: 10
Joined: Wed Feb 22, 2012 3:53 pm

Post by IBLUES1976 »

By the way, I'm running visual studio 2010...
so, I get that error in release mode. in debug mode I get an error. When I dod sxstrace, I get the following information

Code: Select all


=================
Begin Activation Context Generation.
Input Parameter:
	Flags = 0
	ProcessorArchitecture = AMD64
	CultureFallBacks = en-US;en
	ManifestPath = C:\Program Files (x86)\3Dconnexion\3DxWare SDK\Demos\3DxTest\bin\win32i\debug\3DxTest.exe
	AssemblyDirectory = C:\Program Files (x86)\3Dconnexion\3DxWare SDK\Demos\3DxTest\bin\win32i\debug\
	Application Config File = 
-----------------
INFO: Parsing Manifest File C:\Program Files (x86)\3Dconnexion\3DxWare SDK\Demos\3DxTest\bin\win32i\debug\3DxTest.exe.
	INFO: Manifest Definition Identity is (null).
	INFO: Reference: Microsoft.VC90.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8"
INFO: Resolving reference Microsoft.VC90.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8".
	INFO: Resolving reference for ProcessorArchitecture x86.
		INFO: Resolving reference for culture Neutral.
			INFO: Applying Binding Policy.
				INFO: No publisher policy found.
				INFO: No binding policy redirect found.
			INFO: Begin assembly probing.
				INFO: Did not find the assembly in WinSxS.
				INFO: Attempt to probe manifest at C:\Windows\assembly\GAC_32\Microsoft.VC90.DebugCRT\9.0.21022.8__1fc8b3b9a1e18e3b\Microsoft.VC90.DebugCRT.DLL.
				INFO: Attempt to probe manifest at C:\Program Files (x86)\3Dconnexion\3DxWare SDK\Demos\3DxTest\bin\win32i\debug\Microsoft.VC90.DebugCRT.DLL.
				INFO: Attempt to probe manifest at C:\Program Files (x86)\3Dconnexion\3DxWare SDK\Demos\3DxTest\bin\win32i\debug\Microsoft.VC90.DebugCRT.MANIFEST.
				INFO: Attempt to probe manifest at C:\Program Files (x86)\3Dconnexion\3DxWare SDK\Demos\3DxTest\bin\win32i\debug\Microsoft.VC90.DebugCRT\Microsoft.VC90.DebugCRT.DLL.
				INFO: Attempt to probe manifest at C:\Program Files (x86)\3Dconnexion\3DxWare SDK\Demos\3DxTest\bin\win32i\debug\Microsoft.VC90.DebugCRT\Microsoft.VC90.DebugCRT.MANIFEST.
				INFO: Did not find manifest for culture Neutral.
			INFO: End assembly probing.
	ERROR: Cannot resolve reference Microsoft.VC90.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8".
ERROR: Activation Context generation failed.
End Activation Context Generation.

=================
Begin Activation Context Generation.
Input Parameter:
	Flags = 0
	ProcessorArchitecture = Wow32
	CultureFallBacks = en-US;en
	ManifestPath = C:\Program Files (x86)\3Dconnexion\3DxWare SDK\Demos\3DxTest\bin\win32i\debug\3DxTest.exe
	AssemblyDirectory = C:\Program Files (x86)\3Dconnexion\3DxWare SDK\Demos\3DxTest\bin\win32i\debug\
	Application Config File = 
-----------------
INFO: Parsing Manifest File C:\Program Files (x86)\3Dconnexion\3DxWare SDK\Demos\3DxTest\bin\win32i\debug\3DxTest.exe.
	INFO: Manifest Definition Identity is (null).
	INFO: Reference: Microsoft.VC90.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8"
INFO: Resolving reference Microsoft.VC90.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8".
	INFO: Resolving reference for ProcessorArchitecture WOW64.
		INFO: Resolving reference for culture Neutral.
			INFO: Applying Binding Policy.
				INFO: No publisher policy found.
				INFO: No binding policy redirect found.
			INFO: Begin assembly probing.
				INFO: Did not find the assembly in WinSxS.
				INFO: Attempt to probe manifest at C:\Windows\assembly\GAC_32\Microsoft.VC90.DebugCRT\9.0.21022.8__1fc8b3b9a1e18e3b\Microsoft.VC90.DebugCRT.DLL.
				INFO: Did not find manifest for culture Neutral.
			INFO: End assembly probing.
	INFO: Resolving reference for ProcessorArchitecture x86.
		INFO: Resolving reference for culture Neutral.
			INFO: Applying Binding Policy.
				INFO: No publisher policy found.
				INFO: No binding policy redirect found.
			INFO: Begin assembly probing.
				INFO: Did not find the assembly in WinSxS.
				INFO: Attempt to probe manifest at C:\Windows\assembly\GAC_32\Microsoft.VC90.DebugCRT\9.0.21022.8__1fc8b3b9a1e18e3b\Microsoft.VC90.DebugCRT.DLL.
				INFO: Attempt to probe manifest at C:\Program Files (x86)\3Dconnexion\3DxWare SDK\Demos\3DxTest\bin\win32i\debug\Microsoft.VC90.DebugCRT.DLL.
				INFO: Attempt to probe manifest at C:\Program Files (x86)\3Dconnexion\3DxWare SDK\Demos\3DxTest\bin\win32i\debug\Microsoft.VC90.DebugCRT.MANIFEST.
				INFO: Attempt to probe manifest at C:\Program Files (x86)\3Dconnexion\3DxWare SDK\Demos\3DxTest\bin\win32i\debug\Microsoft.VC90.DebugCRT\Microsoft.VC90.DebugCRT.DLL.
				INFO: Attempt to probe manifest at C:\Program Files (x86)\3Dconnexion\3DxWare SDK\Demos\3DxTest\bin\win32i\debug\Microsoft.VC90.DebugCRT\Microsoft.VC90.DebugCRT.MANIFEST.
				INFO: Did not find manifest for culture Neutral.
			INFO: End assembly probing.
	ERROR: Cannot resolve reference Microsoft.VC90.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8".
ERROR: Activation Context generation failed.
End Activation Context Generation.

IBlues1976
IBLUES1976
Posts: 10
Joined: Wed Feb 22, 2012 3:53 pm

Post by IBLUES1976 »

It works under release mode. I had forgotten to install the setup for the 3d navigator.
However, it doesn't work for debug? It gives me the error that I specified in the previous post.
?
IBlues1976
jwick
Moderator
Moderator
Posts: 3339
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Post by jwick »

Yes, you do have to install the release (or beta) 3DxWare driver for the device.

We have had a couple of people test the debug builds of all the SDK samples with VS2010 SP1, on W7, both x86 and x64. The projects build and run for us, after conversion, of course. We also tested them with 3DxWare 6 and 3DxWare 10 beta.

I'll admit that I had to completely reinstall VS2010 on one of my machines, because VS hung when I tried to do anything at all. After the reinstall, it works fine. It could have been a dodgy install, as I can't recall ever using it on that machine.

Are you on an x86 machine or x64, building x86 or x64? I see manifest stitching going on in your sxstrace output.
ed_smith
Posts: 4
Joined: Mon Mar 05, 2012 7:28 pm

Button events

Post by ed_smith »

I never receive an SI_BUTTON_PRESS_EVENT nor an SI_BUTTON_RELEASE_EVENT event I only ever receive an SI_BUTTON_EVENT and I receive two of those in response to a single button press and release. I'm not sure if that's what you intended?

I understood the SI_BUTTON_EVENT event to be deprecated?

Thanks, Ed
ed_smith
Posts: 4
Joined: Mon Mar 05, 2012 7:28 pm

Button events

Post by ed_smith »

I never receive an SI_BUTTON_PRESS_EVENT nor an SI_BUTTON_RELEASE_EVENT event I only ever receive an SI_BUTTON_EVENT and I receive two of those in response to a single button press and release. I'm not sure if that's what you intended?

I understood the SI_BUTTON_EVENT event to be deprecated?

Thanks, Ed
jwick
Moderator
Moderator
Posts: 3339
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Re: Button events

Post by jwick »

ed_smith wrote:I never receive an SI_BUTTON_PRESS_EVENT nor an SI_BUTTON_RELEASE_EVENT event I only ever receive an SI_BUTTON_EVENT and I receive two of those in response to a single button press and release. I'm not sure if that's what you intended?

I understood the SI_BUTTON_EVENT event to be deprecated?

Thanks, Ed
Sorry Ed. The current state is that SI_BUTTON_EVENT is implemented (it always will be), and SI_BUTTON_PRESS/RELEASE_EVENT are TBD.

Thanks for bringing this up, so others won't be confused.
IBLUES1976
Posts: 10
Joined: Wed Feb 22, 2012 3:53 pm

Post by IBLUES1976 »

I endup using WM_INPUT events.
I will be submitting my code, which is modified version of the sample, with some observer design pattern and also to make it work for Ogre3D ... I will post it soon in the Ogre Site and I will give the link here.
IBlues1976
MarkusSenseGraphics
Posts: 11
Joined: Tue Nov 27, 2012 2:39 am

Re: 3DxWare SDK Version 3

Post by MarkusSenseGraphics »

Hello,

I recently started to test version 3 out, and I have two issues. I am using Windows 7 64 bit with a SpaceNavigator.

The first issue I am having is that I never get any SI_DEVICE_CHANGE_EVENT in my application. It also looks like I never get those events in the 3DxTest32 either (I never see anything printed about connection/disconnection as the code sample says that example should do). It does however work just fine to disconnect and then connect and continue using the spacenavigation without restarting. Did anyone else experience this issue?

The second issue I am having is more of a question. When a SI_DEVICE_CHANGE_EVENT is obtained it is possible to get a device ID. Is it also possible to get a device id connected to a Motion event when two devices are connected. I have not found anything about this in the documentation. I would like to have one window receiving events from multiple connected SpaceNavigators but differ between them by the device Id. Currently I only have one SpaceNavigator so I can not really test to see where they differ and/or if something in the data is consistent even after disconnecting/connecting a device.

Thank you for your response.
Markus
ngomes
Moderator
Moderator
Posts: 3334
Joined: Mon Nov 27, 2006 7:22 am
Contact:

Re: 3DxWare SDK Version 3

Post by ngomes »

Hi MarkusSenseGraphics,

SI_DEVICE_CHANGE_EVENT requires the last software stack: 3DxWare 10 for Windows, currently in beta.

If you do not have 3DxWare 10 installed, you can the latest beta build from 3Dconnexion's labs page.
MarkusSenseGraphics
Posts: 11
Joined: Tue Nov 27, 2012 2:39 am

Re: 3DxWare SDK Version 3

Post by MarkusSenseGraphics »

I forgot to add which version I was using.

I have 3dxSoftWare 3.16.1 (x64 edition) installed. I was under the impression that this was the correct one.
I guess it was not.
Sorry for asking such a stupid question. Thank you for your answer.

Do you have any idea regarding the second question?
ngomes
Moderator
Moderator
Posts: 3334
Joined: Mon Nov 27, 2006 7:22 am
Contact:

Re: 3DxWare SDK Version 3

Post by ngomes »

We're working on the SDK document to add the event and functions new in 3DxWare 10. We're sorry for the inconvience of not having this data.

You should be able to tell a device from another by using the "portName" (a string) member of the struct passed in to calls of SiOpenPort() and SiGetDevicePort().
MarkusSenseGraphics
Posts: 11
Joined: Tue Nov 27, 2012 2:39 am

Re: 3DxWare SDK Version 3

Post by MarkusSenseGraphics »

Thank you,

Documentation is always an ongoing project, never quite finished :)

I think I might have misunderstood the ways multiple device connections should work. I will make sure I get another device in order to test and implement properly.

Thank you for your patience.
jwick
Moderator
Moderator
Posts: 3339
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Re: 3DxWare SDK Version 3

Post by jwick »

Multiple devices work by opening one handle for each. The events from each device arrive on the handle that was opened for it.

You can handle the individual SI_DEVICE_CHANGE_CONNECTs using SiOpenPort with the portName in the event, or just close everything and open everything again with SiOpen (using indexes). Whichever works for your application. Our puzzle demo does the former, 3DxConfig does the latter.
Post Reply