Sha256: 1be3a52c9e629c6c7621dfd5ad34fda2fb5dc80909e019f448dc172c24592abf

Contents?: true

Size: 1.2 KB

Versions: 7

Compression:

Stored size: 1.2 KB

Contents

module Denko
  module SPI
    module Peripheral
      include Behaviors::OutputPin
      include Behaviors::Callbacks
      include Behaviors::BusPeripheral

      attr_reader :spi_frequency, :spi_mode, :spi_bit_order

      def before_initialize(options={})
        super(options)

        # Save SPI settings.
        @spi_frequency  = options[:spi_frequency]
        @spi_mode       = options[:spi_mode]
        @spi_bit_order  = options[:spi_bit_order]
      end

      #
      # Delegate methods to the bus.
      #
      def spi_transfer(write: [], read: 0)
        bus.transfer(pin, write: write, read: read, frequency: spi_frequency, mode: spi_mode, bit_order: spi_bit_order)
      end

      def spi_write(byte_array)
        bus.transfer(pin, write: byte_array, frequency: spi_frequency, mode: spi_mode, bit_order: spi_bit_order)
      end

      def spi_read(num_bytes)
        bus.transfer(pin, read: num_bytes, frequency: spi_frequency, mode: spi_mode, bit_order: spi_bit_order)
      end

      def spi_listen(num_bytes)
        bus.listen(pin, read: num_bytes, frequency: spi_frequency, mode: spi_mode, bit_order: spi_bit_order)
      end

      def spi_stop
        bus.stop(pin)
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
denko-0.13.6 lib/denko/spi/peripheral.rb
denko-0.13.5 lib/denko/spi/peripheral.rb
denko-0.13.4 lib/denko/spi/peripheral.rb
denko-0.13.3 lib/denko/spi/peripheral.rb
denko-0.13.2 lib/denko/spi/peripheral.rb
denko-0.13.1 lib/denko/spi/peripheral.rb
denko-0.13.0 lib/denko/spi/peripheral.rb