LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

not all joystick inputs recognized

Hello, I am trying to use a joystick/throttle combination (Saitek X-55 Rhino) to control a robot. Most of the joystick inputs are recognized correctly but some do not function in LabVIEW for some reason. (I tried them in the Saitek software and there they do work.) The inputs in question are the Mode switch, the slide on the throttle and the cursor on the throttle (the small black one). 

 

Does anyone know a solution for this issue? I was really hoping to use the mode switch for my robot.

0 Kudos
Message 1 of 5
(2,441 Views)

Hi

Have you checked all 32 of the button booleans in the button info cluster of the Acquire Input Data vi ?

0 Kudos
Message 2 of 5
(2,433 Views)

Yes I have, I also checked all 8 axis and all 4 POV values. I even tried adding in 4 more booleans to check if they were somehow out of bounds as this joystick should use at least 34 booleans.

0 Kudos
Message 3 of 5
(2,429 Views)

I'm pretty sure that LabVIEW "hooks" the Microsoft DirectInput API, which has functions for communicating with the Joystick.  One problem with LabVIEW's implementation of their Joystick functions is that they provide a fixed-size table for DirectInput objects (which include keyboard, mice, and joysticks).  I've had Joysticks that failed to be recognized by LabVIEW because they were "Device 16", and LabVIEW only supported 12 Devices (I'm making these numbers up -- it has been several years since I reported this, and I don't think it has been fixed yet).  Here is a re-post, after the first request to fix this was denied because "not enough Users gave it Kudos" -- if you want to "vote" for it, go to the LabVIEW Idea Exchange Forum and search for "Joystick" -- my Post is titled "Allow Query Input Devices to Return All Available Devices".

 

The alternative, of course, is to pair up with a Visual Studio programmer and write your own "expanded" DLL that uses DirectInput to (a) find all of the Attached Joysticks, (b) provides "hooks" for all of the supported Joystick functions (which for your Saitek device, may include additional Axes, buttons, and possibly other capabiliities), and (c) provide code to Read/Write the various end-points (I added "Write" because Saitek does have some Joystick features that are "writeable").  You could "Thank the Community" (if this solves your problem) by providing your DLL as part of the "Solution".

 

Bob Schor

 

P.S. -- I was poking around, and noticed there are 8 "Axes" available (X, Y, Z, X Rotation, Y Rot, Z Rot, U, V).  Don't know what U and V mean, but might one or more of these be your Cursor?  [I suppose it could also be the Throttle ...].  It does mention two "sliders" (presumably U and V.  I also saw something that suggested up to 128 buttons might be accommodated.

0 Kudos
Message 4 of 5
(2,411 Views)

Thank you for your reply. I tried all the 8 available axes and the cursor is not connected to those. 

 

I also did some poking around in windows and some games to see which inputs those recognised with the following results:

Windows recognizes the same as LabVIEW, all the buttons and slides except for mode switch 2&3, the slide button and the cursor.

Star Wars Episode 1 Racer stated that it was a 6-axes 35-button controller but did also not recognise the mode switch 2&3, the slide or the cursor.

PCSX2 (Playstation 2 emulator) does recognize ALL the buttons.

I also tried reading the joystick data with a pygame program i found somewhere and that also did not recognize either the mode switch, the slide or the cursor.

 

At this point I'm not sure the problem lies solely with LabVIEW.

0 Kudos
Message 5 of 5
(2,391 Views)