Sha256: 50c5444a93f48c0da3c5fbb5addbc18ee918f4a4e2146b2f5ea37e84b99ae22e
Contents?: true
Size: 1.19 KB
Versions: 1
Compression:
Stored size: 1.19 KB
Contents
module RapiroWrapper # Controll class for RAPIRO class Body def initialize(device = '/dev/ttyAMA0') @commander = RapiroWrapper::Commander.new(device) servo_class = RapiroWrapper::ServoMotor.find_servos @servos = servo_class.inject({}) do |hash, klass| class_name = klass.to_s snake_case = class_name.gsub(/::/, '/') .gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2') .gsub(/([a-z\d])([A-Z])/, '\1_\2') .tr('-', '_').downcase hash[snake_case.split('/').last] = klass hash end @servos['eyes'] = RapiroWrapper::Eyes @servos.each do |s, k| self.class.class_eval <<-EOF def #{s}=(val) @#{s} = #{k}.new(val) end def #{s} @#{s} end EOF instance_variable_set('@'.concat(s).to_sym, k.new) end end def sequences(duration = 10) @commander.sequences( @servos.keys.map { |k| instance_variable_get('@'.concat(k).to_sym) }, duration ) end def execute!(duration = 10) @commander.write(sequences(duration)) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rapiro_wrapper-0.1.0 | lib/rapiro_wrapper/body.rb |