how to do the "button mapping" in redhat linux ws

Questions and answers about 3Dconnexion devices on UNIX and Linux.

Moderator: Moderators

Post Reply
yfx2003
Posts: 6
Joined: Mon Jan 08, 2007 9:18 pm

how to do the "button mapping" in redhat linux ws

Post by yfx2003 »

how to do the "button mapping" in redhat linux ws

I have downloaded the latest xdriver for my linux os, released on Dec 4, 2006( I don't remeber exactly)

I install the xdriver correctly: it can run well with the samples, xcube, xvale.

but, when I set any button-map with the contral panel, for example, I just set the button 'C' as menu toggle, it then cann't work any longer...

what's the reason?

(even i log out the account and log in again...)
UtaSH
Moderator
Moderator
Posts: 3754
Joined: Mon Nov 27, 2006 10:34 am
Location: Munich, Germany
Contact:

Post by UtaSH »

Hi,

I moved the post to here ("Legacy devices for Unix/Linux"); looks like you have a SpaceBall 4000 or 5000.

We can not reproduce the problem you describe.
- What kernel version do you have?
- Do you have a x86_64 Linux?
- What device are you using? (SpaceBall 4000 or 5000? USB or serial?)

- Does the problem appear when you press the button with the new mapping or just when you do the mapping?
- Does the driver crash or is it still running?
- Do you get any error messages?

Uta Ludwig
3Dconnexion
yfx2003
Posts: 6
Joined: Mon Jan 08, 2007 9:18 pm

Post by yfx2003 »

I'm very sorry for my poor describtion.
The details are listed as following:

spaceball: 5000-flx(read from the device label), serial
driver: 3dxware-1.1.1-linux, download from www.3dconnexion.com
kernel version: linux 2.4.21.37-EL i686 athlon i386 GNU/LINUX(so, it is x86-32 linux of redhat ws 3.0)

Now, I will describe my operations as next paragraphs and name the '/tmp/xcube' demos as xcube, one of my program, written by Open Inventor (www.tgs.com, www.sgi.com, search the keyword 'openinventor') and c++ as 'magellan'. My steps are:

(1) Install the xdriver. With the file 3dxware-linux-v1-1-1.tgz, downloaded from www.3dconnexion.com, I followed the instructions in file InstallationInstructions_Linux.txt and the installation was completed successfully. When I login my account, "test", the xdriver starts by itself;
(2) Testing. xcube is ok, magellan is ok. The parameters in 3DxWare motion controller panel is:
3DxWare for: Any Application
In order to describe conveniently, I just test the device's rotatation.
(3) Modify the button's mapping. I close this 2 applications(xcube and magellan) and map Button C as "Menu Toggle", Button 9 as "RX Only". Then, I save the result as 'Any Application_test'. here, the parameters in the panel are:
3DxWare for: Any Application_test
Button C: Menu Toggle
Button 9: RX Only
I can pop up panel convienently when I press Button C of Spaceball 5000;
(4) log out my account and log in again and the default protocol is "Any Application_try" now;
(5) I cann't rotate the scenegraph in program 'magellan' now. But the xcube is ok and I still can popup the panel dialog with Button C. What's the reason?
(6) In order to rotate my scenegraph in magellan, I change the protocol to "Any Application" again. At this time, Button C and 9 lost their settings. but the Spaceball still does not respond my rotation.
(7) log out my account and log in again. The default "3DxWare for" still is 'Any Application_test', so, the magellan still cann't respond my rotate. Why it is not ''Any Application'?
(8) So, I delete my configuration from the panel by "Remove User Configurations". The protocol is "Any Application". My god, it still can popup with Button C. That is to say, it still remembers the settings of "Any Application_test". Then, I have to choose "Any Application" manually. But I still cann't rotate my scenegraph.
(9) log out my account and log in again. It change to "Any Application" and I can rotate my scene now.

as described in previous, we can know that the class SoXtSpaceball of Inventor and the device's connection is Ok.

my question is:
when I modify the "menu toggle" function for one button (i.e., C) and update the settings by login and logout, why the xdriver still cann't work well as is?
If my operations or steps are wrong, what are the corret sequences? Or can you give us a standard configuration process for one of the user's application?

Finally, I will say sorry for my Chinese-style english.

thank you in advance.
UtaSH
Moderator
Moderator
Posts: 3754
Joined: Mon Nov 27, 2006 10:34 am
Location: Munich, Germany
Contact:

Post by UtaSH »

Hi yfx2003,

the configuration Any Application is used by the driver for any application where no default configuration is available. (All default configurations are saved at /etc/3DxWare/)

As soon as you change anything (for example a button mapping) and save it this newly created configuration is just for the application that was the last in use!

That means for your case that you should start your applcation (magellan) and and do the mappings and settings that you need for it. Then save the configuration. You can use a meaningful name like "magellan". If you save the configuration please make sure that, before doing it, the last active window is the one of magellan. The driver takes the name of that window as an identifier.

If you then start the xcube you will notice that the driver switches to Any Application. Then you can do the sttings that you want to use with the xcube and save them as for example "xcube configuration".

Now the driver will switch between these two configurations everytime you switch between magellan and xcube.

Before you try this please delete all existing user configurations (Remove User Configurations) to avoid any further confusion. BTW: the user configurations are saved in $HOME/.3dxcfg/. If you delete the files manually from there please restart the driver.


Uta Ludwig
3Dconnexion
yfx2003
Posts: 6
Joined: Mon Jan 08, 2007 9:18 pm

Post by yfx2003 »

Do as uludwig said.

He is a real expert.

Thank you very much.
Post Reply