Module: Ban

Defined in:
lib/ban.rb,
lib/ban/cli.rb,
lib/ban/board.rb,
lib/ban/event.rb,
lib/ban/server.rb,
lib/ban/version.rb,
lib/ban/events/ir_event.rb,
lib/ban/events/rc_event.rb,
lib/ban/events/door_event.rb

Defined Under Namespace

Classes: Board, CLI, DoorEvent, Event, IrEvent, RcEvent, Server

Constant Summary collapse

Logger =
Logger.new(STDOUT)
VERSION =
"0.1.1"

Class Method Summary collapse

Class Method Details

.decode7bit(data) ⇒ String

Returns ascii.

Parameters:

  • data (Array<Fixnum>)

    7 bit encoded data from firmata (midi)

Returns:

  • (String)

    ascii



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/ban.rb', line 18

def self.decode7bit(data)
  msg = ""
  i = 0
  while i < data.size
    lsb, msb = data[i], data[i + 1]

    if msb == 0
      msg << lsb.chr
    else
      msg << (lsb + 0b10000000).chr
    end
    i += 2
  end
  msg
end

.encode7bit(data) ⇒ Array<Fixnum>

Returns array of midi bytes.

Parameters:

  • data (String)

    the data to convert to midi 7 bit encoded string

Returns:

  • (Array<Fixnum>)

    array of midi bytes



36
37
38
39
40
41
42
43
# File 'lib/ban.rb', line 36

def self.encode7bit(data)
  msg = []
  data.each_byte do |byte|
    msg << (byte & 0b01111111) # LSB
    msg << (byte >> 7 & 0b01111111) # MSB
  end
  msg
end