require 'serialport' module MonoMatrix class Switcher def initialize(tty) # Instance variables @tty = tty @end_bytes = ["\xD5","\x7B"] @channels = { "A" => [ ["\x00", "\xFF"], ["\x01", "\xFE"], ["\x02", "\xFD"], ["\x03", "\xFC"] ], "B" => [ ["\x04", "\xFB"], ["\x05", "\xFA"], ["\x06", "\xF9"], ["\x07", "\xF8"] ] } end def switch(channel, input) channel = channel.upcase input = input.to_i - 1 # A = 1 "\x00\xFF\xD5\x7B"; # A = 2 "\x01\xFE\xD5\x7B"; # A = 3 "\x02\xFD\xD5\x7B"; # A = 4 "\x03\xFC\xD5\x7B"; # B = 1 "\x04\xFB\xD5\x7B"; # B = 2 "\x05\xFA\xD5\x7B"; # B = 3 "\x06\xF9\xD5\x7B"; # B = 4 "\x07\xF8\xD5\x7B"; bytes = @channels[channel][input] + @end_bytes if @channels[channel] && @channels[channel][input] if bytes puts channel +" to "+ input.to_s serialConnection = SerialPort.new @tty, 9600 bytes.each {|byte| serialConnection.write byte} bytes.each {|byte| serialConnection.write byte} serialConnection.close end end end end