Module: Smalruby::Hardware
- Extended by:
- ActiveSupport::Autoload
- Defined in:
- lib/smalruby/hardware.rb,
lib/smalruby/hardware/led.rb,
lib/smalruby/hardware/pin.rb,
lib/smalruby/hardware/servo.rb,
lib/smalruby/hardware/button.rb,
lib/smalruby/hardware/sensor.rb,
lib/smalruby/hardware/rgb_led_anode.rb,
lib/smalruby/hardware/rgb_led_cathode.rb
Overview
ハードウェアの名前空間
Defined Under Namespace
Modules: Pin Classes: Button, Led, RgbLedAnode, RgbLedCathode, Sensor, Servo
Class Method Summary collapse
-
.create_hardware(klass, pin) ⇒ Object
ハードウェアのインスタンスを生成する.
-
.init(options = {}) ⇒ Object
ハードウェアを準備する.
Class Method Details
.create_hardware(klass, pin) ⇒ Object
ハードウェアのインスタンスを生成する
作成したハードウェアのインスタンスはキャッシュする
50 51 52 53 54 55 56 |
# File 'lib/smalruby/hardware.rb', line 50 def create_hardware(klass, pin) key = [klass, pin] @hardware_cache.synchronize do @hardware_cache[key] ||= klass.new(pin: pin) end @hardware_cache[key] end |
.init(options = {}) ⇒ Object
ハードウェアを準備する
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/smalruby/hardware.rb', line 27 def init( = {}) return if @initialized_hardware fail 'already started.' if @started defaults = { device: nil } opt = Util.(, defaults) txrx = Dino::TxRx.new txrx.io = opt[:device] if opt[:device] world.board = Dino::Board.new(txrx) @initialized_hardware = true end |