class Tlaloc::Adapter::Ospi::Controller

Constants

CLOCK_PIN

wiring pi pin numbers

DATA_PIN
LATCH_PIN
NUMBER_OF_STATIONS
PIN_SR_NOE

Public Class Methods

new(io = nil) click to toggle source
# File lib/tlaloc/adapter/ospi/controller.rb, line 14
def initialize(io = nil)
  @stations = [0] * 8
  @io = io || WiringPi::GPIO.new do |gpio|
    # Set the pinmode of pin 0 for output
    gpio.pin_mode(CLOCK_PIN, 1)
    gpio.pin_mode(DATA_PIN, 1)
    gpio.pin_mode(PIN_SR_NOE, 1)
    gpio.pin_mode(LATCH_PIN, 1)
  end
end

Public Instance Methods

close(station_number) click to toggle source
# File lib/tlaloc/adapter/ospi/controller.rb, line 29
def close(station_number)
  set_station station_number, 0
end
close_all() click to toggle source
# File lib/tlaloc/adapter/ospi/controller.rb, line 33
def close_all()
  @stations = [0] * 8
  send_array @stations
end
open(station_number) click to toggle source
# File lib/tlaloc/adapter/ospi/controller.rb, line 25
def open(station_number)
  set_station station_number, 1
end
send_array(array) click to toggle source
# File lib/tlaloc/adapter/ospi/controller.rb, line 44
def send_array(array)
  @io.digital_write(LATCH_PIN, 0)
  @io.shift_out(DATA_PIN, CLOCK_PIN, 0, array.join.to_i(2))
  @io.digital_write(LATCH_PIN, 1)
end
set_station(station_number, status) click to toggle source
# File lib/tlaloc/adapter/ospi/controller.rb, line 38
def set_station(station_number, status)
  station_index = station_number - 1
  @stations[station_index] = status
  send_array @stations
end