Now uses rb_thread_blocking_region to read events (not for sixaxis). That way you can read events in another thread without locking up the whole RVM:

dev = Rjoystick::Device.new '/dev/input/js0'

Thread.new do
  dev.event
end

which is useful when you want to build another object that
holds the current joystick state to be queried anytime.

Rjoystick - Ruby c binding to linux/joystick event Copyright © 2008 Claudio Fiorini <claudio@cfiorini.it>

FIRST OF ALL

thanks to Ruby core developer, Linux kernel developer and Pascal at www.pabr.org/sixlinux/sixlinux.en.html and to other people…and code that help me out.


This is a very small code to read input/joystick information like pressing buttons on joysticks( PS3 Sixaxis too :)! ) to get things working i used jstest as example from Vojtech Pavlik and sixaxis patch from www.pabr.org

This Ruby extension is written in C and works only on Linux systems. I have tested on Debian 4.0 and Ubuntu 8.04. To install the code just run:

# ruby extconf.rb
# make
# ruby example.rb

1st example works ok with all joysticks that are good for linux. 2nd example is only for PlayStation 3(copyright Sony) Sixaxis controller because gets 3-Axis accelerometer values and to get it works follow this tutorial first help.ubuntu.com/community/Sixaxis and you can use it in BT mode :)

Sixaxis has a gyroscope but for now you can't get values from it with this extension…maybe in a future realease :) !!

Claudio Fiorini