class Kiss::KissSerial
Constants
- DEFAULT_READ_BYTES
- SERIAL_READ_TIMEOUT
Public Class Methods
new(com_port, baud=38400, parity=SerialPort::NONE, stop_bits=1, byte_size=8, read_bytes=DEFAULT_READ_BYTES, strip_df_start=true)
click to toggle source
Calls superclass method
Kiss::KissAbstract::new
# File lib/kiss/kiss_serial.rb, line 11 def initialize(com_port, baud=38400, parity=SerialPort::NONE, stop_bits=1, byte_size=8, read_bytes=DEFAULT_READ_BYTES, strip_df_start=true) super(strip_df_start) @com_port = com_port @baud = baud @parity = parity @stop_bits = stop_bits @byte_size = byte_size @read_bytes = read_bytes @serial = nil @exit_kiss = false end
Public Instance Methods
close(*args, **kwargs)
click to toggle source
Calls superclass method
Kiss::KissAbstract#close
# File lib/kiss/kiss_serial.rb, line 72 def close(*args, **kwargs) super if @exit_kiss write_interface(MODE_END) end if @serial == nil or @serial.closed? raise 'Attempting to close before the class has been started.' else @serial.close end end
connect(mode_init=nil, *args, **kwargs)
click to toggle source
Calls superclass method
Kiss::KissAbstract#connect
# File lib/kiss/kiss_serial.rb, line 49 def connect(mode_init=nil, *args, **kwargs) super @serial = SerialPort.new(@com_port, @baud, @byte_size, @stop_bits, @parity) @serial.read_timeout = SERIAL_READ_TIMEOUT if mode_init write_interface(mode_init) @exit_kiss = true else @exit_kiss = false end # Previous verious defaulted to Xastir-friendly configs. Unfortunately # those don't work with Bluetooth TNCs, so we're reverting to None. if kwargs kwargs.each do |name, value| write_setting(name, value) end end end
Protected Instance Methods
read_interface()
click to toggle source
# File lib/kiss/kiss_serial.rb, line 31 def read_interface read_data = @serial.read(@read_bytes) if read_data return read_data.chars.map { |c| c.ord } else return nil end end
write_interface(data)
click to toggle source
# File lib/kiss/kiss_serial.rb, line 41 def write_interface(data) unless data.is_a? String data = data.map { |b| b.chr }.join end @serial.write(data) end