Sha256: ab51dd896f2436407eef0a7a9ee522e8421846ff154b133e023d22a92435df65

Contents?: true

Size: 695 Bytes

Versions: 2

Compression:

Stored size: 695 Bytes

Contents

module Denko
  module PulseIO
    class IRTransmitter
      include Behaviors::OutputPin

      def emit(pulses=[], options={})
        if pulses.length > 256 || pulses.length < 1
          raise ArgumentError, 'wrong number of IR pulses (expected 1 to 256)'
        end

        pulses.each_with_index do |pulse, index|
          raise ArgumentError, 'non Numeric data in IR signal' unless pulse.is_a? Numeric
          pulses[index] = pulse.round unless pulse.is_a? Integer
          raise ArgumentError, 'pulse too long (max 65535 ms)' if pulse > 65535
        end

        frequency = options[:frequency] || 38
        board.infrared_emit(pin, frequency, pulses)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
denko-0.13.1 lib/denko/pulse_io/ir_transmitter.rb
denko-0.13.0 lib/denko/pulse_io/ir_transmitter.rb