class PiMote::Sockets
Constants
- OFF_SIGNALS
- ON_SIGNALS
Public Class Methods
new(given_opt = {})
click to toggle source
Pin numbers in this method comes from energenie manual
# File lib/pi_mote.rb, line 23 def initialize(given_opt = {}) @opt = { signal_pins: [17, 22, 23, 27], on_off_pin: 24, enable_pin: 25, board_numbering: :bcm } @opt = @opt.merge(given_opt) if defined? given_opt RPi::GPIO.set_numbering @opt[:board_numbering] @opt[:signal_pins].map do |pin| RPi::GPIO.setup pin, as: :output, initialize: :low end RPi::GPIO.setup @opt[:on_off_pin], as: :output, initialize: :low RPi::GPIO.setup @opt[:enable_pin], as: :output, initialize: :low end
Public Instance Methods
change_plug_state(socket, signals_hash)
click to toggle source
# File lib/pi_mote.rb, line 41 def change_plug_state(socket, signals_hash) socket_signals = signals_hash[socket] @opt[:signal_pins].zip(socket_signals).each do |pin, signal| RPi::GPIO.send("set_#{signal}", pin) end sleep(0.1) RPi::GPIO.set_high @opt[:enable_pin] sleep(0.25) RPi::GPIO.set_low @opt[:enable_pin] end
cleanup()
click to toggle source
# File lib/pi_mote.rb, line 60 def cleanup @opt[:signal_pins].each { |pin| RPi::GPIO.clean_up pin } RPi::GPIO.clean_up @opt[:enable_pin] RPi::GPIO.clean_up @opt[:on_off_pin] end
switch_off(socket = 0)
click to toggle source
# File lib/pi_mote.rb, line 56 def switch_off(socket = 0) change_plug_state(socket, OFF_SIGNALS) end
switch_on(socket = 0)
click to toggle source
# File lib/pi_mote.rb, line 52 def switch_on(socket = 0) change_plug_state(socket, ON_SIGNALS) end