Sha256: ed3a682f2167c3b299e261c2cc781a64511128e84da453bb535036d0302734af
Contents?: true
Size: 1.51 KB
Versions: 6
Compression:
Stored size: 1.51 KB
Contents
require 'artoo/drivers/wiidriver' module Artoo module Drivers # Wiichuck driver behaviors for i2c class Wiichuck < Wiidriver # Update button and joystick values # @param [Object] value def update(value) begin super adjust_origins update_buttons update_joystick rescue Exception => e Logger.error "wiichuck update exception!" Logger.error e.message Logger.error e.backtrace.inspect end end # Adjust x, y origin values def adjust_origins set_joystick_default_value(:sy_origin, data[:sy]) set_joystick_default_value(:sx_origin, data[:sx]) end # Publishes events for c and z buttons def update_buttons publish(event_topic_name("c_button")) if data[:c] == true publish(event_topic_name("z_button")) if data[:z] == true end # Publishes event for joystick def update_joystick publish(event_topic_name("joystick"), {:x => calculate_joystick_value(:sx, :sx_origin), :y => calculate_joystick_value(:sy, :sy_origin)}) end private def get_defaults { :sy_origin => nil, :sx_origin => nil } end def parse(value) return { :sx => decode_value(value, 0), :sy => decode_value(value, 1), :z => generate_bool(decode_value(value, 5) & 0x01), :c => generate_bool(decode_value(value, 5) & 0x02) } end end end end
Version data entries
6 entries across 6 versions & 1 rubygems