module Smalruby::Hardware
ハードウェアの名前空間
Public Instance Methods
create_hardware(klass, pin = nil)
click to toggle source
ハードウェアのインスタンスを生成する
作成したハードウェアのインスタンスはキャッシュする
@param [Class] klass ハードウェアのクラス @param [String|Numeric] pin ピン番号 @return [Object] ハードウェアのインスタンス
# File lib/smalruby/hardware.rb, line 74 def create_hardware(klass, pin = nil) klass = NullHardware unless @initialized_hardware key = [klass, pin] @hardware_cache.synchronize do @hardware_cache[key] ||= klass.new(pin: pin) end @hardware_cache[key] end
failed?()
click to toggle source
ハードウェアの初期化に失敗したかどうかを返す
# File lib/smalruby/hardware.rb, line 63 def failed? @failed_init_hardware end
init(options = {})
click to toggle source
ハードウェアを準備する
@param [Hash] options オプション @option options [String] :device シリアルポートのデバイス名。
WindowsだとCOM1など
# File lib/smalruby/hardware.rb, line 33 def init(options = {}) return if @initialized_hardware defaults = { device: ENV["SMALRUBOT_DEVICE"] || nil, baud: 19_200, } opt = Util.process_options(options, defaults) txrx = Smalrubot::TxRx.new(opt) begin world.board = Smalrubot::Board.new(txrx) @initialized_hardware = true rescue Exception Util.print_exception($!) @failed_init_hardware = true end end
stop()
click to toggle source
ハードウェアを停止させる
# File lib/smalruby/hardware.rb, line 53 def stop @hardware_cache.synchronize do @hardware_cache.values.each do |h| h.stop if h.respond_to?(:stop) end @hardware_cache.clear end end