Class: LittleWire::Nunchuck::NunchuckFrame

Inherits:
Object
  • Object
show all
Defined in:
lib/littlewire/gadgets/nunchuck.rb

Defined Under Namespace

Classes: Buttons, Vector3D

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data) ⇒ NunchuckFrame

Returns a new instance of NunchuckFrame.



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/littlewire/gadgets/nunchuck.rb', line 46

def initialize data
  @data = data
  @joystick = Vector3D.new((data[0] / 127.5) - 1.0, (data[1] / 127.5) - 1.0)
  @buttons = Buttons.new(((data[5] >> 1) & 1) == 0, (data[5] & 1) == 0)
  
  #calculate accelerometer values
  @accelerometer = Vector3D.new(data[2] << 2, data[3] << 2, data[4] << 2)
  @accelerometer.x |= (data[5] >> 2) & 0b11
  @accelerometer.y |= (data[5] >> 4) & 0b11
  @accelerometer.z |= (data[5] >> 6) & 0b11
  
  @accelerometer.x = (@accelerometer.x / 511.5) - 1.0
  @accelerometer.y = (@accelerometer.y / 511.5) - 1.0
  @accelerometer.z = (@accelerometer.z / 511.5) - 1.0
end

Instance Attribute Details

#accelerometerObject (readonly)

Returns the value of attribute accelerometer.



62
63
64
# File 'lib/littlewire/gadgets/nunchuck.rb', line 62

def accelerometer
  @accelerometer
end

#buttonsObject (readonly)

Returns the value of attribute buttons.



62
63
64
# File 'lib/littlewire/gadgets/nunchuck.rb', line 62

def buttons
  @buttons
end

#joystickObject (readonly)

Returns the value of attribute joystick.



62
63
64
# File 'lib/littlewire/gadgets/nunchuck.rb', line 62

def joystick
  @joystick
end

Instance Method Details

#inspectObject



64
65
66
# File 'lib/littlewire/gadgets/nunchuck.rb', line 64

def inspect
  "<Nunchuck:#{buttons.inspect}:#{accelerometer.inspect}:#{joystick.inspect}"
end