Sha256: 9d25d24bfec1c1a97ddb4bcd0315eefbf7369b4cd87d1eea5759caa43df382bc

Contents?: true

Size: 752 Bytes

Versions: 8

Compression:

Stored size: 752 Bytes

Contents

module Denko
  class Board
    # CMD = 17
    def tone(pin, frequency, duration=nil)
      raise ArgumentError, "Tone cannot generate frequencies lower than 31Hz"     if frequency < 31
      raise ArgumentError, "Tone duration cannot be more than 65535 milliseconds" if (duration && (duration > 0xFFFF))

      # Pack the frequency and optional duration as binary.
      aux = pack(:uint16, frequency)
      aux << pack(:uint16, duration) if duration

      write Message.encode command: 17,
                                pin: pin,
                                value: duration ? 1 : 0,
                                aux_message: aux
    end

    # CMD = 18
    def no_tone(pin)
      write Message.encode command: 18, pin: pin
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
denko-0.14.0 lib/denko/board/tone.rb
denko-0.13.6 lib/denko/board/tone.rb
denko-0.13.5 lib/denko/board/tone.rb
denko-0.13.4 lib/denko/board/tone.rb
denko-0.13.3 lib/denko/board/tone.rb
denko-0.13.2 lib/denko/board/tone.rb
denko-0.13.1 lib/denko/board/tone.rb
denko-0.13.0 lib/denko/board/tone.rb