Notice: MediaWiki has been updated. Report any rough edges to marcan@marcan.st

Difference between revisions of "Ruby Wrapper"

From OpenKinect
Jump to: navigation, search
(Took some sections from Actionscript 3 wrapper page that Juan Carlos wrote.)
(Sample Code)
Line 47: Line 47:
  
 
== Sample Code ==
 
== Sample Code ==
 +
 +
<source lang="ruby" border="1">
 +
require 'rubygems'
 +
require 'usb'
 +
 +
LED_STATES = {:off=>0, :green=>1, :red=>2, :yellow=>3, :blink_yellow=>4, :blink_green=>5, :blink_red_yellow=>6, :blink_red_green=>7}
 +
def set_led(state)
 +
  begin
 +
    @@led_device ||= USB.devices.select{|d| d.idVendor==0x045e && d.idProduct==0x02b0}.first
 +
    @@led_handle ||= @@led_device.usb_open
 +
    @@led_handle.usb_control_msg 0x40, 0x06, state, 0x0000, '', 0
 +
  rescue Exception => e 
 +
    puts e.message
 +
  end
 +
end
 +
 +
def set_motor(pitch)
 +
  begin
 +
    @@motor_device ||= USB.devices.select{|d| d.idVendor==0x045e && d.idProduct==0x02b0}.first
 +
    @@motor_handle ||= @@motor_device.usb_open
 +
    pitch = -35 if pitch < -35
 +
  pitch = 55 if pitch > 55
 +
    @@motor_handle.usb_control_msg 0x40,0x31,pitch,0x0000,'',0
 +
  rescue Exception => e 
 +
    puts e.message
 +
  end
 +
end
 +
</source>
 +
 
<source lang="ruby" border="1">
 
<source lang="ruby" border="1">
 
puts "puts works"
 
puts "puts works"

Revision as of 18:30, 11 December 2010

This effort will provide a wrapper to access the Kinect through Ruby.

About

Who is involved

Coordinator/Development: Aditya Gaddam (User:LostInCake)

Current Status

Feature Supported? Notes
Connect to Kinect (heh) No (Possible values are Yes/No/Partial) Not started main development
Control LED No
Control motor No
Get accelerometer data No
RGB data callback No
Depth data callback No

Demos / Videos

Some demo links / videos / images will go here

Installation/Configuration

  1. Step one
  2. Step two
  3. Step three


Sample Code

require 'rubygems'
require 'usb'

LED_STATES = {:off=>0, :green=>1, :red=>2, :yellow=>3, :blink_yellow=>4, :blink_green=>5, :blink_red_yellow=>6, :blink_red_green=>7}
def set_led(state)
  begin
    @@led_device ||= USB.devices.select{|d| d.idVendor==0x045e && d.idProduct==0x02b0}.first
    @@led_handle ||= @@led_device.usb_open
    @@led_handle.usb_control_msg 0x40, 0x06, state, 0x0000, '', 0
  rescue Exception => e  
    puts e.message
  end
end

def set_motor(pitch)
  begin
    @@motor_device ||= USB.devices.select{|d| d.idVendor==0x045e && d.idProduct==0x02b0}.first
    @@motor_handle ||= @@motor_device.usb_open
    pitch = -35 if pitch < -35
	  pitch = 55 if pitch > 55
    @@motor_handle.usb_control_msg 0x40,0x31,pitch,0x0000,'',0
  rescue Exception => e  
    puts e.message
  end
end
puts "puts works"
puts " with line breaks."

print "print works"
print " with no line breaks."

printf("\n\nprintf formats numbers like %7.2f, and
strings like %s.",3.14156,"me")

(Random code I lifted from somewhere that's not Kinect related just to show how this page should look)