Sha256: 96a01186d59bdb9daac564c322d94bd61f623d9f9e224751ac14f03e4db23940

Contents?: true

Size: 924 Bytes

Versions: 2

Compression:

Stored size: 924 Bytes

Contents

module Denko
  module DigitalIO
    class Output
      include Behaviors::OutputPin
      include Behaviors::Callbacks
      include Behaviors::Threaded
      interrupt_with :digital_write

      def after_initialize(options={})
        super(options)
        board.digital_read(pin)
      end

      def pre_callback_filter(board_state)
        board_state.to_i
      end

      def digital_write(value)
        board.digital_write(pin, value)
        self.state = value
      end
      
      alias :write :digital_write

      def low
        digital_write(board.low)
      end

      def high
        digital_write(board.high)
      end

      def toggle
        state == board.low ? high : low
      end
      
      alias :off :low
      alias :on  :high
      
      def high?; state == board.high end
      def low?;  state == board.low  end
      
      alias :on?  :high?
      alias :off? :low?
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
denko-0.13.1 lib/denko/digital_io/output.rb
denko-0.13.0 lib/denko/digital_io/output.rb