class Artoo::Drivers::Wiiclassic
Wiiclassic
driver behaviors for i2c
Public Instance Methods
adjust_origins()
click to toggle source
Adjust all origins
# 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)
click to toggle source
Update buttons and joysticks values @param [Object] value
Calls superclass method
# 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_left_joystick()
click to toggle source
Publish left joystick event
# 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_joystick()
click to toggle source
Publish right joystick event
# 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_triggers()
click to toggle source
Publish triggers events
# 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
Private Instance Methods
get_bool_decoded_value(value, offset1, offset2)
click to toggle source
# File lib/artoo/drivers/wiiclassic.rb, line 134 def get_bool_decoded_value(value, offset1, offset2) generate_bool(decode_value(value, offset1)[offset2]) end
get_defaults()
click to toggle source
# File lib/artoo/drivers/wiiclassic.rb, line 71 def get_defaults { :ry_origin => nil, :rx_origin => nil, :ly_origin => nil, :lx_origin => nil, :rt_origin => nil, :lt_origin => nil } end
parse(value)
click to toggle source
# File lib/artoo/drivers/wiiclassic.rb, line 82 def parse(value) return parse_joysticks(value). merge(parse_buttons(value)). merge(parse_triggers(value)). merge(parse_dpad(value)). merge(parse_zbuttons(value)) end
parse_dpad(value)
click to toggle source
# File lib/artoo/drivers/wiiclassic.rb, line 118 def parse_dpad(value) { :d_up => get_bool_decoded_value(value, 5, 0), :d_down => get_bool_decoded_value(value, 4, 6), :d_left => get_bool_decoded_value(value, 5, 1), :d_right => get_bool_decoded_value(value, 4, 7) } end
parse_joysticks(value)
click to toggle source
# File lib/artoo/drivers/wiiclassic.rb, line 90 def parse_joysticks(value) { :lx => decode_value(value, 0) & 0x3f, :ly => decode_value(value, 1) & 0x3f, :rx => ((decode_value(value, 0) & 0xC0) >> 3) | ((decode_value(value, 1) & 0xC0) >> 5) | (decode_value(value, 2)[7]), :ry => decode_value(value, 2) & 0x1f } end
parse_triggers(value)
click to toggle source
# File lib/artoo/drivers/wiiclassic.rb, line 111 def parse_triggers(value) { :lt => ((decode_value(value, 2) & 0x60) >> 3) | ((decode_value(value, 3) & 0xC0) >> 6), :rt => decode_value(value, 3) & 0x1f } end