Class: Serial::Posix::LIBC::Termios

Inherits:
FFI::Struct
  • Object
show all
Defined in:
lib/ffi-serial/bsd.rb,
lib/ffi-serial/linux.rb,
lib/ffi-serial/posix.rb,
lib/ffi-serial/darwin.rb

Overview

:nodoc:

Instance Method Summary collapse

Instance Method Details

#data_bitsObject

:nodoc:



157
158
159
# File 'lib/ffi-serial/posix.rb', line 157

def data_bits #:nodoc:
  CONSTANTS['DATA_BITS_'].fetch(self[:c_cflag] & CONSTANTS['DATA_BITS_BITMASK'])
end

#data_bits=(val) ⇒ Object

:nodoc:



149
150
151
152
153
154
155
# File 'lib/ffi-serial/posix.rb', line 149

def data_bits=(val) #:nodoc:
  mask = CONSTANTS['DATA_BITS'].fetch(val, nil)
  if mask.nil?
    raise ArgumentError.new "Invalid data bits, supported values #{CONSTANTS['DATA_BITS'].keys.inspect}"
  end
  self[:c_cflag] = self[:c_cflag] | mask; val
end

#parityObject

:nodoc:



184
185
186
# File 'lib/ffi-serial/posix.rb', line 184

def parity #:nodoc:
  CONSTANTS['PARITY_'].fetch(self[:c_cflag] & CONSTANTS['PARITY_BITMASK'])
end

#parity=(val) ⇒ Object

:nodoc:



173
174
175
176
177
178
179
180
181
182
# File 'lib/ffi-serial/posix.rb', line 173

def parity=(val) #:nodoc:
  mask = CONSTANTS['PARITY'].fetch(val, nil)
  if mask.nil?
    raise ArgumentError.new "Invalid parity, supported values #{CONSTANTS['PARITY'].keys.inspect}"
  end
  if (:none == val)
    self[:c_iflag] = self[:c_iflag] | LIBC::CONSTANTS['IGNPAR']
  end
  self[:c_cflag] = self[:c_cflag] | mask; val
end

#stop_bitsObject

:nodoc:



169
170
171
# File 'lib/ffi-serial/posix.rb', line 169

def stop_bits #:nodoc:
  CONSTANTS['STOP_BITS_'].fetch(self[:c_cflag] & CONSTANTS['STOP_BITS_BITMASK'])
end

#stop_bits=(val) ⇒ Object

:nodoc:



161
162
163
164
165
166
167
# File 'lib/ffi-serial/posix.rb', line 161

def stop_bits=(val) #:nodoc:
  mask = CONSTANTS['STOP_BITS'].fetch(val, nil)
  if mask.nil?
    raise ArgumentError.new "Invalid stop bits, supported values #{CONSTANTS['STOP_BITS'].keys.inspect}"
  end
  self[:c_cflag] = self[:c_cflag] | mask; val
end