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