Class: Tlalok::Adapter::Ospi::Controller
- Inherits:
-
Object
- Object
- Tlalok::Adapter::Ospi::Controller
- Defined in:
- lib/tlalok/adapter/ospi/controller.rb
Constant Summary collapse
- CLOCK_PIN =
wiring pi pin numbers
7
- DATA_PIN =
2
- PIN_SR_NOE =
0
- LATCH_PIN =
3
- NUMBER_OF_STATIONS =
8
Instance Method Summary collapse
- #close(station_number) ⇒ Object
- #close_all ⇒ Object
-
#initialize(io = nil) ⇒ Controller
constructor
A new instance of Controller.
- #open(station_number) ⇒ Object
- #send_array(array) ⇒ Object
- #set_station(station_number, status) ⇒ Object
Constructor Details
#initialize(io = nil) ⇒ Controller
Returns a new instance of Controller.
14 15 16 17 18 19 20 21 22 23 |
# File 'lib/tlalok/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 |
Instance Method Details
#close(station_number) ⇒ Object
29 30 31 |
# File 'lib/tlalok/adapter/ospi/controller.rb', line 29 def close(station_number) set_station station_number, 0 end |
#close_all ⇒ Object
33 34 35 36 |
# File 'lib/tlalok/adapter/ospi/controller.rb', line 33 def close_all() @stations = [0] * 8 send_array @stations end |
#open(station_number) ⇒ Object
25 26 27 |
# File 'lib/tlalok/adapter/ospi/controller.rb', line 25 def open(station_number) set_station station_number, 1 end |
#send_array(array) ⇒ Object
44 45 46 47 48 |
# File 'lib/tlalok/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) ⇒ Object
38 39 40 41 42 |
# File 'lib/tlalok/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 |