Class: Artoo::Drivers::Wiiclassic

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

Overview

Wiiclassic driver behaviors for Firmata

Instance Attribute Summary

Attributes inherited from Wiidriver

#data, #joystick

Instance Method Summary collapse

Methods inherited from Wiidriver

#address, #handle_events, #initialize, #start_driver

Constructor Details

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

Instance Method Details

#adjust_originsObject

Adjust all origins



28
29
30
31
32
33
34
35
# File 'lib/artoo/drivers/wiiclassic.rb', line 28

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

Update buttons and joysticks values

Parameters:

  • value (Object)


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

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

Publish button event



49
50
51
# File 'lib/artoo/drivers/wiiclassic.rb', line 49

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

#update_buttonsObject

Update button values



38
39
40
41
42
43
44
45
46
# File 'lib/artoo/drivers/wiiclassic.rb', line 38

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

Publish left joystick event



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

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

Publish right joystick event



59
60
61
# File 'lib/artoo/drivers/wiiclassic.rb', line 59

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

Publish triggers events



64
65
66
67
# File 'lib/artoo/drivers/wiiclassic.rb', line 64

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