Class: Artoo::Drivers::Wiiclassic

Inherits:
Wiidriver show all
Defined in:
lib/artoo/drivers/wiiclassic.rb

Overview

Wiiclassic driver behaviors for Firmata

Instance Attribute Summary

Attributes inherited from Wiidriver

#data, #joystick

Attributes inherited from Driver

#parent

Instance Method Summary collapse

Methods inherited from Wiidriver

#address, #initialize, #start_driver

Methods inherited from Driver

#connection, #event_topic_name, #initialize, #interval, #method_missing, #pin, #start_driver

Methods included from Celluloid

#timers

Constructor Details

This class inherits a constructor from Artoo::Drivers::Wiidriver

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Artoo::Drivers::Driver

Instance Method Details

#adjust_originsObject



24
25
26
27
28
29
30
31
# File 'lib/artoo/drivers/wiiclassic.rb', line 24

def adjust_origins
  set_joystick_default_value(:ly_origin, data[:ly])
  set_joystick_default_value(:lx_origin, data[:lx])
  set_joystick_default_value(:ry_origin, data[:ry])
  set_joystick_default_value(:rx_origin, data[:rx])
  set_joystick_default_value(:rt_origin, data[:rt])
  set_joystick_default_value(:lt_origin, data[:lt])
end

#update(value) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/artoo/drivers/wiiclassic.rb', line 7

def update(value)
  begin
    super
    
    adjust_origins
    update_buttons
    update_left_joystick
    update_right_joystick
    update_triggers

  rescue Exception => e
    Logger.error "wiiclassic update exception!"
    Logger.error e.message
    Logger.error e.backtrace.inspect
  end
end

#update_button(name, key) ⇒ Object



43
44
45
# File 'lib/artoo/drivers/wiiclassic.rb', line 43

def update_button(name, key)
  publish(event_topic_name(name)) if data[key] == true
end

#update_buttonsObject



33
34
35
36
37
38
39
40
41
# File 'lib/artoo/drivers/wiiclassic.rb', line 33

def update_buttons
  update_button("a_button", :a)
  update_button("b_button", :b)
  update_button("x_button", :x)
  update_button("y_button", :y)
  update_button("home_button", :h)
  update_button("start_button", :+)
  update_button("select_button", :-)
end

#update_left_joystickObject



47
48
49
# File 'lib/artoo/drivers/wiiclassic.rb', line 47

def update_left_joystick
  publish(event_topic_name("left_joystick"), {:x => calculate_joystick_value(:lx, :lx_origin), :y => calculate_joystick_value(:ly, :ly_origin)})
end

#update_right_joystickObject



51
52
53
# File 'lib/artoo/drivers/wiiclassic.rb', line 51

def update_right_joystick
  publish(event_topic_name("right_joystick"), {:x => calculate_joystick_value(:rx, :rx_origin), :y => calculate_joystick_value(:ry, :ry_origin)})
end

#update_triggersObject



55
56
57
58
# File 'lib/artoo/drivers/wiiclassic.rb', line 55

def update_triggers
  publish(event_topic_name("right_trigger"), calculate_joystick_value(:rt, :rt_origin))
  publish(event_topic_name("left_trigger"), calculate_joystick_value(:lt, :lt_origin))
end